{"id":"5c4365073db17a68d807bf985a612785","_format":"hh-sol-build-info-1","solcVersion":"0.8.25","solcLongVersion":"0.8.25+commit.b61c2a91","input":{"language":"Solidity","sources":{"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface AggregatorInterface {\n  function latestAnswer() external view returns (int256);\n\n  function latestTimestamp() external view returns (uint256);\n\n  function latestRound() external view returns (uint256);\n\n  function getAnswer(uint256 roundId) external view returns (int256);\n\n  function getTimestamp(uint256 roundId) external view returns (uint256);\n\n  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);\n\n  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./AggregatorInterface.sol\";\nimport \"./AggregatorV3Interface.sol\";\n\ninterface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface {}\n"},"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface AggregatorV3Interface {\n  function decimals() external view returns (uint8);\n\n  function description() external view returns (string memory);\n\n  function version() external view returns (uint256);\n\n  function getRoundData(uint80 _roundId)\n    external\n    view\n    returns (\n      uint80 roundId,\n      int256 answer,\n      uint256 startedAt,\n      uint256 updatedAt,\n      uint80 answeredInRound\n    );\n\n  function latestRoundData()\n    external\n    view\n    returns (\n      uint80 roundId,\n      int256 answer,\n      uint256 startedAt,\n      uint256 updatedAt,\n      uint80 answeredInRound\n    );\n}\n"},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./OwnableUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n    address private _pendingOwner;\n\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n    function __Ownable2Step_init() internal onlyInitializing {\n        __Ownable_init_unchained();\n    }\n\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev Returns the address of the pending owner.\n     */\n    function pendingOwner() public view virtual returns (address) {\n        return _pendingOwner;\n    }\n\n    /**\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\n        _pendingOwner = newOwner;\n        emit OwnershipTransferStarted(owner(), newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual override {\n        delete _pendingOwner;\n        super._transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev The new owner accepts the ownership transfer.\n     */\n    function acceptOwnership() public virtual {\n        address sender = _msgSender();\n        require(pendingOwner() == sender, \"Ownable2Step: caller is not the new owner\");\n        _transferOwnership(sender);\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../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/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/PausableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    function __Pausable_init() internal onlyInitializing {\n        __Pausable_init_unchained();\n    }\n\n    function __Pausable_init_unchained() internal onlyInitializing {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        require(!paused(), \"Pausable: paused\");\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        require(paused(), \"Pausable: not paused\");\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n\n    /**\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 (last updated v4.9.4) (utils/Context.sol)\n\npragma solidity ^0.8.0;\nimport {Initializable} from \"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\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/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/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n    mapping(address => uint256) private _balances;\n\n    mapping(address => mapping(address => uint256)) private _allowances;\n\n    uint256 private _totalSupply;\n\n    string private _name;\n    string private _symbol;\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * All two of these values are immutable: they can only be set once during\n     * construction.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the default value returned by this function, unless\n     * it's overridden.\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual override returns (uint8) {\n        return 18;\n    }\n\n    /**\n     * @dev See {IERC20-totalSupply}.\n     */\n    function totalSupply() public view virtual override returns (uint256) {\n        return _totalSupply;\n    }\n\n    /**\n     * @dev See {IERC20-balanceOf}.\n     */\n    function balanceOf(address account) public view virtual override returns (uint256) {\n        return _balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `amount`.\n     */\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-allowance}.\n     */\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Emits an {Approval} event indicating the updated allowance. This is not\n     * required by the EIP. See the note at the beginning of {ERC20}.\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `amount`.\n     */\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, amount);\n        _transfer(from, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\n        return true;\n    }\n\n    /**\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `spender` must have allowance for the caller of at least\n     * `subtractedValue`.\n     */\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        uint256 currentAllowance = allowance(owner, spender);\n        require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n        unchecked {\n            _approve(owner, spender, currentAllowance - subtractedValue);\n        }\n\n        return true;\n    }\n\n    /**\n     * @dev Moves `amount` of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     */\n    function _transfer(address from, address to, uint256 amount) internal virtual {\n        require(from != address(0), \"ERC20: transfer from the zero address\");\n        require(to != address(0), \"ERC20: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, amount);\n\n        uint256 fromBalance = _balances[from];\n        require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n        unchecked {\n            _balances[from] = fromBalance - amount;\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n            // decrementing then incrementing.\n            _balances[to] += amount;\n        }\n\n        emit Transfer(from, to, amount);\n\n        _afterTokenTransfer(from, to, amount);\n    }\n\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n     * the total supply.\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     */\n    function _mint(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: mint to the zero address\");\n\n        _beforeTokenTransfer(address(0), account, amount);\n\n        _totalSupply += amount;\n        unchecked {\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n            _balances[account] += amount;\n        }\n        emit Transfer(address(0), account, amount);\n\n        _afterTokenTransfer(address(0), account, amount);\n    }\n\n    /**\n     * @dev Destroys `amount` tokens from `account`, reducing the\n     * total supply.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     * - `account` must have at least `amount` tokens.\n     */\n    function _burn(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: burn from the zero address\");\n\n        _beforeTokenTransfer(account, address(0), amount);\n\n        uint256 accountBalance = _balances[account];\n        require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n        unchecked {\n            _balances[account] = accountBalance - amount;\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\n            _totalSupply -= amount;\n        }\n\n        emit Transfer(account, address(0), amount);\n\n        _afterTokenTransfer(account, address(0), amount);\n    }\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     */\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\n        require(owner != address(0), \"ERC20: approve from the zero address\");\n        require(spender != address(0), \"ERC20: approve to the zero address\");\n\n        _allowances[owner][spender] = amount;\n        emit Approval(owner, spender, amount);\n    }\n\n    /**\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n     *\n     * Does not update the allowance amount in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Might emit an {Approval} event.\n     */\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n            unchecked {\n                _approve(owner, spender, currentAllowance - amount);\n            }\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * will be transferred to `to`.\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * has been transferred to `to`.\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the symbol of the token.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the decimals places of the token.\n     */\n    function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n"},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\n\nimport \"./IAccessControlManagerV8.sol\";\n\n/**\n * @title AccessControlledV8\n * @author Venus\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\n */\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\n    /// @notice Access control manager contract\n    IAccessControlManagerV8 internal _accessControlManager;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n\n    /// @notice Emitted when access control manager contract address is changed\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\n\n    /// @notice Thrown when the action is prohibited by AccessControlManager\n    error Unauthorized(address sender, address calledContract, string methodSignature);\n\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\n        __Ownable2Step_init();\n        __AccessControlled_init_unchained(accessControlManager_);\n    }\n\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\n        _setAccessControlManager(accessControlManager_);\n    }\n\n    /**\n     * @notice Sets the address of AccessControlManager\n     * @dev Admin function to set address of AccessControlManager\n     * @param accessControlManager_ The new address of the AccessControlManager\n     * @custom:event Emits NewAccessControlManager event\n     * @custom:access Only Governance\n     */\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\n        _setAccessControlManager(accessControlManager_);\n    }\n\n    /**\n     * @notice Returns the address of the access control manager contract\n     */\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\n        return _accessControlManager;\n    }\n\n    /**\n     * @dev Internal function to set address of AccessControlManager\n     * @param accessControlManager_ The new address of the AccessControlManager\n     */\n    function _setAccessControlManager(address accessControlManager_) internal {\n        require(address(accessControlManager_) != address(0), \"invalid acess control manager address\");\n        address oldAccessControlManager = address(_accessControlManager);\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\n    }\n\n    /**\n     * @notice Reverts if the call is not allowed by AccessControlManager\n     * @param signature Method signature\n     */\n    function _checkAccessAllowed(string memory signature) internal view {\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\n\n        if (!isAllowedToCall) {\n            revert Unauthorized(msg.sender, address(this), signature);\n        }\n    }\n}\n"},"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\nimport \"@openzeppelin/contracts/access/IAccessControl.sol\";\n\n/**\n * @title IAccessControlManagerV8\n * @author Venus\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\n */\ninterface IAccessControlManagerV8 is IAccessControl {\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\n\n    function revokeCallPermission(\n        address contractAddress,\n        string calldata functionSig,\n        address accountToRevoke\n    ) external;\n\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\n\n    function hasPermission(\n        address account,\n        address contractAddress,\n        string calldata functionSig\n    ) external view returns (bool);\n}\n"},"@venusprotocol/solidity-utilities/contracts/constants.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\nuint256 constant EXP_SCALE = 1e18;\n\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\nuint256 constant MANTISSA_ONE = EXP_SCALE;\n\n/// @dev The approximate number of seconds per year\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\n"},"@venusprotocol/solidity-utilities/contracts/validators.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\nerror ZeroAddressNotAllowed();\n\n/// @notice Thrown if the supplied value is 0 where it is not allowed\nerror ZeroValueNotAllowed();\n\n/// @notice Checks if the provided address is nonzero, reverts otherwise\n/// @param address_ Address to check\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\nfunction ensureNonzeroAddress(address address_) pure {\n    if (address_ == address(0)) {\n        revert ZeroAddressNotAllowed();\n    }\n}\n\n/// @notice Checks if the provided value is nonzero, reverts otherwise\n/// @param value_ Value to check\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\nfunction ensureNonzeroValue(uint256 value_) pure {\n    if (value_ == 0) {\n        revert ZeroValueNotAllowed();\n    }\n}\n"},"contracts/hardhat-dependency-compiler/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport '@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol';\n"},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol';\n"},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol';\n"},"contracts/interfaces/FeedRegistryInterface.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\ninterface FeedRegistryInterface {\n    function latestRoundDataByName(\n        string memory base,\n        string memory quote\n    )\n        external\n        view\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);\n\n    function decimalsByName(string memory base, string memory quote) external view returns (uint8);\n}\n"},"contracts/interfaces/IAccountant.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IAccountant {\n    function getRateSafe() external view returns (uint256);\n}\n"},"contracts/interfaces/IAnkrBNB.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IAnkrBNB {\n    function sharesToBonds(uint256 amount) external view returns (uint256);\n    function decimals() external view returns (uint8);\n}\n"},"contracts/interfaces/IAsBNB.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IAsBNB {\n    function minter() external view returns (address);\n    function decimals() external view returns (uint8);\n}\n"},"contracts/interfaces/IAsBNBMinter.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IAsBNBMinter {\n    function convertToTokens(uint256 amount) external view returns (uint256);\n}\n"},"contracts/interfaces/ICappedOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface ICappedOracle {\n    function updateSnapshot() external;\n}\n"},"contracts/interfaces/IERC4626.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IERC4626 {\n    function convertToAssets(uint256 shares) external view returns (uint256);\n    function decimals() external view returns (uint8);\n}\n"},"contracts/interfaces/IEtherFiLiquidityPool.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IEtherFiLiquidityPool {\n    function amountForShare(uint256 _share) external view returns (uint256);\n}\n"},"contracts/interfaces/IPendlePtOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IPendlePtOracle {\n    function getPtToAssetRate(address market, uint32 duration) external view returns (uint256);\n\n    function getPtToSyRate(address market, uint32 duration) external view returns (uint256);\n\n    function getOracleState(\n        address market,\n        uint32 duration\n    )\n        external\n        view\n        returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied);\n}\n"},"contracts/interfaces/IPStakePool.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IPStakePool {\n    struct Data {\n        uint256 totalWei;\n        uint256 poolTokenSupply;\n    }\n\n    /**\n     * @dev The current exchange rate for converting stkBNB to BNB.\n     */\n    function exchangeRate() external view returns (Data memory);\n}\n"},"contracts/interfaces/ISFrax.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface ISFrax {\n    function convertToAssets(uint256 shares) external view returns (uint256);\n    function decimals() external view returns (uint8);\n}\n"},"contracts/interfaces/ISfrxEthFraxOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface ISfrxEthFraxOracle {\n    function getPrices() external view returns (bool _isbadData, uint256 _priceLow, uint256 _priceHigh);\n}\n"},"contracts/interfaces/IStaderStakeManager.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IStaderStakeManager {\n    function convertBnbXToBnb(uint256 _amount) external view returns (uint256);\n}\n"},"contracts/interfaces/IStETH.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\ninterface IStETH {\n    function getPooledEthByShares(uint256 _sharesAmount) external view returns (uint256);\n    function decimals() external view returns (uint8);\n}\n"},"contracts/interfaces/ISynclubStakeManager.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface ISynclubStakeManager {\n    function convertSnBnbToBnb(uint256 _amount) external view returns (uint256);\n}\n"},"contracts/interfaces/IWBETH.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IWBETH {\n    function exchangeRate() external view returns (uint256);\n    function decimals() external view returns (uint8);\n}\n"},"contracts/interfaces/IZkETH.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\ninterface IZkETH {\n    function LSTPerToken() external view returns (uint256);\n    function decimals() external view returns (uint8);\n}\n"},"contracts/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\ninterface OracleInterface {\n    function getPrice(address asset) external view returns (uint256);\n}\n\ninterface ResilientOracleInterface is OracleInterface {\n    function updatePrice(address vToken) external;\n\n    function updateAssetPrice(address asset) external;\n\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\n}\n\ninterface BoundValidatorInterface {\n    function validatePriceWithAnchorPrice(\n        address asset,\n        uint256 reporterPrice,\n        uint256 anchorPrice\n    ) external view returns (bool);\n}\n"},"contracts/interfaces/PublicResolverInterface.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\n// SPDX-FileCopyrightText: 2022 Venus\npragma solidity ^0.8.25;\n\ninterface PublicResolverInterface {\n    function addr(bytes32 node) external view returns (address payable);\n}\n"},"contracts/interfaces/SIDRegistryInterface.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\n// SPDX-FileCopyrightText: 2022 Venus\npragma solidity ^0.8.25;\n\ninterface SIDRegistryInterface {\n    function resolver(bytes32 node) external view returns (address);\n}\n"},"contracts/interfaces/VBep20Interface.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\nimport \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\n\ninterface VBep20Interface is IERC20Metadata {\n    /**\n     * @notice Underlying asset for this VToken\n     */\n    function underlying() external view returns (address);\n}\n"},"contracts/lib/Transient.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\nlibrary Transient {\n    /**\n     * @notice Cache the asset price into transient storage\n     * @param key address of the asset\n     * @param value asset price\n     */\n    function cachePrice(bytes32 cacheSlot, address key, uint256 value) internal {\n        bytes32 slot = keccak256(abi.encode(cacheSlot, key));\n        assembly (\"memory-safe\") {\n            tstore(slot, value)\n        }\n    }\n\n    /**\n     * @notice Read cached price from transient storage\n     * @param key address of the asset\n     * @return value cached asset price\n     */\n    function readCachedPrice(bytes32 cacheSlot, address key) internal view returns (uint256 value) {\n        bytes32 slot = keccak256(abi.encode(cacheSlot, key));\n        assembly (\"memory-safe\") {\n            value := tload(slot)\n        }\n    }\n}\n"},"contracts/oracles/AnkrBNBOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IAnkrBNB } from \"../interfaces/IAnkrBNB.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\n\n/**\n * @title AnkrBNBOracle\n * @author Venus\n * @notice This oracle fetches the price of ankrBNB asset\n */\ncontract AnkrBNBOracle is CorrelatedTokenOracle {\n    /// @notice This is used as token address of BNB on BSC\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address ankrBNB,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            ankrBNB,\n            NATIVE_TOKEN_ADDR,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {}\n\n    /**\n     * @notice Fetches the amount of BNB for 1 ankrBNB\n     * @return amount The amount of BNB for ankrBNB\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return IAnkrBNB(CORRELATED_TOKEN).sharesToBonds(EXP_SCALE);\n    }\n}\n"},"contracts/oracles/AsBNBOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IAsBNB } from \"../interfaces/IAsBNB.sol\";\nimport { IAsBNBMinter } from \"../interfaces/IAsBNBMinter.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\n\n/**\n * @title asBNBOracle\n * @author Venus\n * @notice This oracle fetches the price of asBNB asset\n */\ncontract AsBNBOracle is CorrelatedTokenOracle {\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address asBNB,\n        address slisBNB,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            asBNB,\n            slisBNB,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {}\n\n    /**\n     * @notice Fetches the amount of slisBNB for 1 asBNB\n     * @return price The amount of slisBNB for asBNB\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        IAsBNBMinter minter = IAsBNBMinter(IAsBNB(CORRELATED_TOKEN).minter());\n        return minter.convertToTokens(EXP_SCALE);\n    }\n}\n"},"contracts/oracles/BinanceOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport \"../interfaces/VBep20Interface.sol\";\nimport \"../interfaces/SIDRegistryInterface.sol\";\nimport \"../interfaces/FeedRegistryInterface.sol\";\nimport \"../interfaces/PublicResolverInterface.sol\";\nimport \"../interfaces/OracleInterface.sol\";\nimport \"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\";\nimport \"../interfaces/OracleInterface.sol\";\n\n/**\n * @title BinanceOracle\n * @author Venus\n * @notice This oracle fetches price of assets from Binance.\n */\ncontract BinanceOracle is AccessControlledV8, OracleInterface {\n    /// @notice Used to fetch feed registry address.\n    address public sidRegistryAddress;\n\n    /// @notice Set this as asset address for BNB. This is the underlying address for vBNB\n    address public constant BNB_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\n\n    /// @notice Max stale period configuration for assets\n    mapping(string => uint256) public maxStalePeriod;\n\n    /// @notice Override symbols to be compatible with Binance feed registry\n    mapping(string => string) public symbols;\n\n    /// @notice Used to fetch price of assets used directly when space ID is not supported by current chain.\n    address public feedRegistryAddress;\n\n    /// @notice Emits when asset stale period is updated.\n    event MaxStalePeriodAdded(string indexed asset, uint256 maxStalePeriod);\n\n    /// @notice Emits when symbol of the asset is updated.\n    event SymbolOverridden(string indexed symbol, string overriddenSymbol);\n\n    /// @notice Emits when address of feed registry is updated.\n    event FeedRegistryUpdated(address indexed oldFeedRegistry, address indexed newFeedRegistry);\n\n    /**\n     * @notice Checks whether an address is null or not\n     */\n    modifier notNullAddress(address someone) {\n        if (someone == address(0)) revert(\"can't be zero address\");\n        _;\n    }\n\n    /// @notice Constructor for the implementation contract.\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor() {\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Sets the contracts required to fetch prices\n     * @param _sidRegistryAddress Address of SID registry\n     * @param _acm Address of the access control manager contract\n     */\n    function initialize(address _sidRegistryAddress, address _acm) external initializer {\n        sidRegistryAddress = _sidRegistryAddress;\n        __AccessControlled_init(_acm);\n    }\n\n    /**\n     * @notice Used to set the max stale period of an asset\n     * @param symbol The symbol of the asset\n     * @param _maxStalePeriod The max stake period\n     */\n    function setMaxStalePeriod(string memory symbol, uint256 _maxStalePeriod) external {\n        _checkAccessAllowed(\"setMaxStalePeriod(string,uint256)\");\n        if (_maxStalePeriod == 0) revert(\"stale period can't be zero\");\n        if (bytes(symbol).length == 0) revert(\"symbol cannot be empty\");\n\n        maxStalePeriod[symbol] = _maxStalePeriod;\n        emit MaxStalePeriodAdded(symbol, _maxStalePeriod);\n    }\n\n    /**\n     * @notice Used to override a symbol when fetching price\n     * @param symbol The symbol to override\n     * @param overrideSymbol The symbol after override\n     */\n    function setSymbolOverride(string calldata symbol, string calldata overrideSymbol) external {\n        _checkAccessAllowed(\"setSymbolOverride(string,string)\");\n        if (bytes(symbol).length == 0) revert(\"symbol cannot be empty\");\n\n        symbols[symbol] = overrideSymbol;\n        emit SymbolOverridden(symbol, overrideSymbol);\n    }\n\n    /**\n     * @notice Used to set feed registry address when current chain does not support space ID.\n     * @param newfeedRegistryAddress Address of new feed registry.\n     */\n    function setFeedRegistryAddress(\n        address newfeedRegistryAddress\n    ) external notNullAddress(newfeedRegistryAddress) onlyOwner {\n        if (sidRegistryAddress != address(0)) revert(\"sidRegistryAddress must be zero\");\n        emit FeedRegistryUpdated(feedRegistryAddress, newfeedRegistryAddress);\n        feedRegistryAddress = newfeedRegistryAddress;\n    }\n\n    /**\n     * @notice Uses Space ID to fetch the feed registry address\n     * @return feedRegistryAddress Address of binance oracle feed registry.\n     */\n    function getFeedRegistryAddress() public view returns (address) {\n        bytes32 nodeHash = 0x94fe3821e0768eb35012484db4df61890f9a6ca5bfa984ef8ff717e73139faff;\n\n        SIDRegistryInterface sidRegistry = SIDRegistryInterface(sidRegistryAddress);\n        address publicResolverAddress = sidRegistry.resolver(nodeHash);\n        PublicResolverInterface publicResolver = PublicResolverInterface(publicResolverAddress);\n\n        return publicResolver.addr(nodeHash);\n    }\n\n    /**\n     * @notice Gets the price of a asset from the binance oracle\n     * @param asset Address of the asset\n     * @return Price in USD\n     */\n    function getPrice(address asset) public view returns (uint256) {\n        string memory symbol;\n        uint256 decimals;\n\n        if (asset == BNB_ADDR) {\n            symbol = \"BNB\";\n            decimals = 18;\n        } else {\n            IERC20Metadata token = IERC20Metadata(asset);\n            symbol = token.symbol();\n            decimals = token.decimals();\n        }\n\n        string memory overrideSymbol = symbols[symbol];\n\n        if (bytes(overrideSymbol).length != 0) {\n            symbol = overrideSymbol;\n        }\n\n        return _getPrice(symbol, decimals);\n    }\n\n    function _getPrice(string memory symbol, uint256 decimals) internal view returns (uint256) {\n        FeedRegistryInterface feedRegistry;\n\n        if (sidRegistryAddress != address(0)) {\n            // If sidRegistryAddress is available, fetch feedRegistryAddress from sidRegistry\n            feedRegistry = FeedRegistryInterface(getFeedRegistryAddress());\n        } else {\n            // Use feedRegistry directly if sidRegistryAddress is not available\n            feedRegistry = FeedRegistryInterface(feedRegistryAddress);\n        }\n\n        (, int256 answer, , uint256 updatedAt, ) = feedRegistry.latestRoundDataByName(symbol, \"USD\");\n        if (answer <= 0) revert(\"invalid binance oracle price\");\n        if (block.timestamp < updatedAt) revert(\"updatedAt exceeds block time\");\n\n        uint256 deltaTime;\n        unchecked {\n            deltaTime = block.timestamp - updatedAt;\n        }\n        if (deltaTime > maxStalePeriod[symbol]) revert(\"binance oracle price expired\");\n\n        uint256 decimalDelta = feedRegistry.decimalsByName(symbol, \"USD\");\n        return (uint256(answer) * (10 ** (18 - decimalDelta))) * (10 ** (18 - decimals));\n    }\n}\n"},"contracts/oracles/BNBxOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IStaderStakeManager } from \"../interfaces/IStaderStakeManager.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\n\n/**\n * @title BNBxOracle\n * @author Venus\n * @notice This oracle fetches the price of BNBx asset\n */\ncontract BNBxOracle is CorrelatedTokenOracle {\n    /// @notice This is used as token address of BNB on BSC\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\n\n    /// @notice Address of StakeManager\n    IStaderStakeManager public immutable STAKE_MANAGER;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address stakeManager,\n        address bnbx,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            bnbx,\n            NATIVE_TOKEN_ADDR,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(stakeManager);\n        STAKE_MANAGER = IStaderStakeManager(stakeManager);\n    }\n\n    /**\n     * @notice Fetches the amount of BNB for 1 BNBx\n     * @return price The amount of BNB for BNBx\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return STAKE_MANAGER.convertBnbXToBnb(EXP_SCALE);\n    }\n}\n"},"contracts/oracles/BoundValidator.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../interfaces/VBep20Interface.sol\";\nimport \"../interfaces/OracleInterface.sol\";\nimport \"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\";\n\n/**\n * @title BoundValidator\n * @author Venus\n * @notice The BoundValidator contract is used to validate prices fetched from two different sources.\n * Each asset has an upper and lower bound ratio set in the config. In order for a price to be valid\n * it must fall within this range of the validator price.\n */\ncontract BoundValidator is AccessControlledV8, BoundValidatorInterface {\n    struct ValidateConfig {\n        /// @notice asset address\n        address asset;\n        /// @notice Upper bound of deviation between reported price and anchor price,\n        /// beyond which the reported price will be invalidated\n        uint256 upperBoundRatio;\n        /// @notice Lower bound of deviation between reported price and anchor price,\n        /// below which the reported price will be invalidated\n        uint256 lowerBoundRatio;\n    }\n\n    /// @notice validation configs by asset\n    mapping(address => ValidateConfig) public validateConfigs;\n\n    /// @notice Emit this event when new validation configs are added\n    event ValidateConfigAdded(address indexed asset, uint256 indexed upperBound, uint256 indexed lowerBound);\n\n    /// @notice Constructor for the implementation contract. Sets immutable variables.\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor() {\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the owner of the contract\n     * @param accessControlManager_ Address of the access control manager contract\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Add multiple validation configs at the same time\n     * @param configs Array of validation configs\n     * @custom:access Only Governance\n     * @custom:error Zero length error is thrown if length of the config array is 0\n     * @custom:event Emits ValidateConfigAdded for each validation config that is successfully set\n     */\n    function setValidateConfigs(ValidateConfig[] memory configs) external {\n        uint256 length = configs.length;\n        if (length == 0) revert(\"invalid validate config length\");\n        for (uint256 i; i < length; ++i) {\n            setValidateConfig(configs[i]);\n        }\n    }\n\n    /**\n     * @notice Add a single validation config\n     * @param config Validation config struct\n     * @custom:access Only Governance\n     * @custom:error Null address error is thrown if asset address is null\n     * @custom:error Range error thrown if bound ratio is not positive\n     * @custom:error Range error thrown if lower bound is greater than or equal to upper bound\n     * @custom:event Emits ValidateConfigAdded when a validation config is successfully set\n     */\n    function setValidateConfig(ValidateConfig memory config) public {\n        _checkAccessAllowed(\"setValidateConfig(ValidateConfig)\");\n\n        if (config.asset == address(0)) revert(\"asset can't be zero address\");\n        if (config.upperBoundRatio == 0 || config.lowerBoundRatio == 0) revert(\"bound must be positive\");\n        if (config.upperBoundRatio <= config.lowerBoundRatio) revert(\"upper bound must be higher than lowner bound\");\n        validateConfigs[config.asset] = config;\n        emit ValidateConfigAdded(config.asset, config.upperBoundRatio, config.lowerBoundRatio);\n    }\n\n    /**\n     * @notice Test reported asset price against anchor price\n     * @param asset asset address\n     * @param reportedPrice The price to be tested\n     * @custom:error Missing error thrown if asset config is not set\n     * @custom:error Price error thrown if anchor price is not valid\n     */\n    function validatePriceWithAnchorPrice(\n        address asset,\n        uint256 reportedPrice,\n        uint256 anchorPrice\n    ) public view virtual override returns (bool) {\n        if (validateConfigs[asset].upperBoundRatio == 0) revert(\"validation config not exist\");\n        if (anchorPrice == 0) revert(\"anchor price is not valid\");\n        return _isWithinAnchor(asset, reportedPrice, anchorPrice);\n    }\n\n    /**\n     * @notice Test whether the reported price is within the valid bounds\n     * @param asset Asset address\n     * @param reportedPrice The price to be tested\n     * @param anchorPrice The reported price must be within the the valid bounds of this price\n     */\n    function _isWithinAnchor(address asset, uint256 reportedPrice, uint256 anchorPrice) private view returns (bool) {\n        if (reportedPrice != 0) {\n            // we need to multiply anchorPrice by 1e18 to make the ratio 18 decimals\n            uint256 anchorRatio = (anchorPrice * 1e18) / reportedPrice;\n            uint256 upperBoundAnchorRatio = validateConfigs[asset].upperBoundRatio;\n            uint256 lowerBoundAnchorRatio = validateConfigs[asset].lowerBoundRatio;\n            return anchorRatio <= upperBoundAnchorRatio && anchorRatio >= lowerBoundAnchorRatio;\n        }\n        return false;\n    }\n\n    // BoundValidator is to get inherited, so it's a good practice to add some storage gaps like\n    // OpenZepplin proposed in their contracts: https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n    // solhint-disable-next-line\n    uint256[49] private __gap;\n}\n"},"contracts/oracles/ChainlinkOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../interfaces/VBep20Interface.sol\";\nimport \"../interfaces/OracleInterface.sol\";\nimport \"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\";\nimport \"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\";\n\n/**\n * @title ChainlinkOracle\n * @author Venus\n * @notice This oracle fetches prices of assets from the Chainlink oracle.\n */\ncontract ChainlinkOracle is AccessControlledV8, OracleInterface {\n    struct TokenConfig {\n        /// @notice Underlying token address, which can't be a null address\n        /// @notice Used to check if a token is supported\n        /// @notice 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB address for native tokens\n        ///         (e.g BNB for BNB chain, ETH for Ethereum network)\n        address asset;\n        /// @notice Chainlink feed address\n        address feed;\n        /// @notice Price expiration period of this asset\n        uint256 maxStalePeriod;\n    }\n\n    /// @notice Set this as asset address for native token on each chain.\n    /// This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain.\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\n\n    /// @notice Manually set an override price, useful under extenuating conditions such as price feed failure\n    mapping(address => uint256) public prices;\n\n    /// @notice Token config by assets\n    mapping(address => TokenConfig) public tokenConfigs;\n\n    /// @notice Emit when a price is manually set\n    event PricePosted(address indexed asset, uint256 previousPriceMantissa, uint256 newPriceMantissa);\n\n    /// @notice Emit when a token config is added\n    event TokenConfigAdded(address indexed asset, address feed, uint256 maxStalePeriod);\n\n    modifier notNullAddress(address someone) {\n        if (someone == address(0)) revert(\"can't be zero address\");\n        _;\n    }\n\n    /// @notice Constructor for the implementation contract.\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor() {\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the owner of the contract\n     * @param accessControlManager_ Address of the access control manager contract\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Manually set the price of a given asset\n     * @param asset Asset address\n     * @param price Asset price in 18 decimals\n     * @custom:access Only Governance\n     * @custom:event Emits PricePosted event on successfully setup of asset price\n     */\n    function setDirectPrice(address asset, uint256 price) external notNullAddress(asset) {\n        _checkAccessAllowed(\"setDirectPrice(address,uint256)\");\n\n        uint256 previousPriceMantissa = prices[asset];\n        prices[asset] = price;\n        emit PricePosted(asset, previousPriceMantissa, price);\n    }\n\n    /**\n     * @notice Add multiple token configs at the same time\n     * @param tokenConfigs_ config array\n     * @custom:access Only Governance\n     * @custom:error Zero length error thrown, if length of the array in parameter is 0\n     */\n    function setTokenConfigs(TokenConfig[] memory tokenConfigs_) external {\n        if (tokenConfigs_.length == 0) revert(\"length can't be 0\");\n        uint256 numTokenConfigs = tokenConfigs_.length;\n        for (uint256 i; i < numTokenConfigs; ++i) {\n            setTokenConfig(tokenConfigs_[i]);\n        }\n    }\n\n    /**\n     * @notice Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive\n     * @param tokenConfig Token config struct\n     * @custom:access Only Governance\n     * @custom:error NotNullAddress error is thrown if asset address is null\n     * @custom:error NotNullAddress error is thrown if token feed address is null\n     * @custom:error Range error is thrown if maxStale period of token is not greater than zero\n     * @custom:event Emits TokenConfigAdded event on successfully setting of the token config\n     */\n    function setTokenConfig(\n        TokenConfig memory tokenConfig\n    ) public notNullAddress(tokenConfig.asset) notNullAddress(tokenConfig.feed) {\n        _checkAccessAllowed(\"setTokenConfig(TokenConfig)\");\n\n        if (tokenConfig.maxStalePeriod == 0) revert(\"stale period can't be zero\");\n        tokenConfigs[tokenConfig.asset] = tokenConfig;\n        emit TokenConfigAdded(tokenConfig.asset, tokenConfig.feed, tokenConfig.maxStalePeriod);\n    }\n\n    /**\n     * @notice Gets the price of a asset from the chainlink oracle\n     * @param asset Address of the asset\n     * @return Price in USD from Chainlink or a manually set price for the asset\n     */\n    function getPrice(address asset) public view virtual returns (uint256) {\n        uint256 decimals;\n\n        if (asset == NATIVE_TOKEN_ADDR) {\n            decimals = 18;\n        } else {\n            IERC20Metadata token = IERC20Metadata(asset);\n            decimals = token.decimals();\n        }\n\n        return _getPriceInternal(asset, decimals);\n    }\n\n    /**\n     * @notice Gets the Chainlink price for a given asset\n     * @param asset address of the asset\n     * @param decimals decimals of the asset\n     * @return price Asset price in USD or a manually set price of the asset\n     */\n    function _getPriceInternal(address asset, uint256 decimals) internal view returns (uint256 price) {\n        uint256 tokenPrice = prices[asset];\n        if (tokenPrice != 0) {\n            price = tokenPrice;\n        } else {\n            price = _getChainlinkPrice(asset);\n        }\n\n        uint256 decimalDelta = 18 - decimals;\n        return price * (10 ** decimalDelta);\n    }\n\n    /**\n     * @notice Get the Chainlink price for an asset, revert if token config doesn't exist\n     * @dev The precision of the price feed is used to ensure the returned price has 18 decimals of precision\n     * @param asset Address of the asset\n     * @return price Price in USD, with 18 decimals of precision\n     * @custom:error NotNullAddress error is thrown if the asset address is null\n     * @custom:error Price error is thrown if the Chainlink price of asset is not greater than zero\n     * @custom:error Timing error is thrown if current timestamp is less than the last updatedAt timestamp\n     * @custom:error Timing error is thrown if time difference between current time and last updated time\n     * is greater than maxStalePeriod\n     */\n    function _getChainlinkPrice(\n        address asset\n    ) private view notNullAddress(tokenConfigs[asset].asset) returns (uint256) {\n        TokenConfig memory tokenConfig = tokenConfigs[asset];\n        AggregatorV3Interface feed = AggregatorV3Interface(tokenConfig.feed);\n\n        // note: maxStalePeriod cannot be 0\n        uint256 maxStalePeriod = tokenConfig.maxStalePeriod;\n\n        // Chainlink USD-denominated feeds store answers at 8 decimals, mostly\n        uint256 decimalDelta = 18 - feed.decimals();\n\n        (, int256 answer, , uint256 updatedAt, ) = feed.latestRoundData();\n        if (answer <= 0) revert(\"chainlink price must be positive\");\n        if (block.timestamp < updatedAt) revert(\"updatedAt exceeds block time\");\n\n        uint256 deltaTime;\n        unchecked {\n            deltaTime = block.timestamp - updatedAt;\n        }\n\n        if (deltaTime > maxStalePeriod) revert(\"chainlink price expired\");\n\n        return uint256(answer) * (10 ** decimalDelta);\n    }\n}\n"},"contracts/oracles/common/CorrelatedTokenOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { OracleInterface, ResilientOracleInterface } from \"../../interfaces/OracleInterface.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { SECONDS_PER_YEAR } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\nimport { IERC20Metadata } from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport { ICappedOracle } from \"../../interfaces/ICappedOracle.sol\";\nimport { IAccessControlManagerV8 } from \"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\";\n\n/**\n * @title CorrelatedTokenOracle\n * @notice This oracle fetches the price of a token that is correlated to another token.\n */\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\n    /// @notice Address of the correlated token\n    address public immutable CORRELATED_TOKEN;\n\n    /// @notice Address of the underlying token\n    address public immutable UNDERLYING_TOKEN;\n\n    /// @notice Address of Resilient Oracle\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\n\n    /// @notice Address of the AccessControlManager contract\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\n\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\n    uint256 public growthRatePerSecond;\n\n    /// @notice Snapshot update interval\n    uint256 public snapshotInterval;\n\n    /// @notice Last stored snapshot maximum exchange rate\n    uint256 public snapshotMaxExchangeRate;\n\n    /// @notice Last stored snapshot timestamp\n    uint256 public snapshotTimestamp;\n\n    /// @notice Gap to add when updating the snapshot\n    uint256 public snapshotGap;\n\n    /// @notice Emitted when the snapshot is updated\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\n\n    /// @notice Emitted when the growth rate is updated\n    event GrowthRateUpdated(\n        uint256 indexed oldGrowthRatePerSecond,\n        uint256 indexed newGrowthRatePerSecond,\n        uint256 indexed oldSnapshotInterval,\n        uint256 newSnapshotInterval\n    );\n\n    /// @notice Emitted when the snapshot gap is updated\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\n\n    /// @notice Thrown if the token address is invalid\n    error InvalidTokenAddress();\n\n    /// @notice Thrown if the growth rate is invalid\n    error InvalidGrowthRate();\n\n    /// @notice Thrown if the initial snapshot is invalid\n    error InvalidInitialSnapshot();\n\n    /// @notice Thrown if the max snapshot exchange rate is invalid\n    error InvalidSnapshotMaxExchangeRate();\n\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\n    error Unauthorized(address sender, address calledContract, string methodSignature);\n\n    /**\n     * @notice Constructor for the implementation contract.\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\n     */\n    constructor(\n        address _correlatedToken,\n        address _underlyingToken,\n        address _resilientOracle,\n        uint256 _annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 _initialSnapshotMaxExchangeRate,\n        uint256 _initialSnapshotTimestamp,\n        address _accessControlManager,\n        uint256 _snapshotGap\n    ) {\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\n\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\n            revert InvalidGrowthRate();\n\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\n            revert InvalidInitialSnapshot();\n        }\n\n        ensureNonzeroAddress(_correlatedToken);\n        ensureNonzeroAddress(_underlyingToken);\n        ensureNonzeroAddress(_resilientOracle);\n        ensureNonzeroAddress(_accessControlManager);\n\n        CORRELATED_TOKEN = _correlatedToken;\n        UNDERLYING_TOKEN = _underlyingToken;\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\n        snapshotInterval = _snapshotInterval;\n\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\n        snapshotTimestamp = _initialSnapshotTimestamp;\n        snapshotGap = _snapshotGap;\n\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\n    }\n\n    /**\n     * @notice Directly sets the snapshot exchange rate and timestamp\n     * @param _snapshotMaxExchangeRate The exchange rate to set\n     * @param _snapshotTimestamp The timestamp to set\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\n     */\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\n        _checkAccessAllowed(\"setSnapshot(uint256,uint256)\");\n\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\n        snapshotTimestamp = _snapshotTimestamp;\n\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\n    }\n\n    /**\n     * @notice Sets the growth rate and snapshot interval\n     * @param _annualGrowthRate The annual growth rate to set\n     * @param _snapshotInterval The snapshot interval to set\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\n     */\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\n        _checkAccessAllowed(\"setGrowthRate(uint256,uint256)\");\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\n\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\n\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\n            revert InvalidGrowthRate();\n\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\n\n        snapshotInterval = _snapshotInterval;\n    }\n\n    /**\n     * @notice Sets the snapshot gap\n     * @param _snapshotGap The snapshot gap to set\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\n     */\n    function setSnapshotGap(uint256 _snapshotGap) external {\n        _checkAccessAllowed(\"setSnapshotGap(uint256)\");\n\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\n\n        snapshotGap = _snapshotGap;\n    }\n\n    /**\n     * @notice Returns if the price is capped\n     * @return isCapped Boolean indicating if the price is capped\n     */\n    function isCapped() external view virtual returns (bool) {\n        if (snapshotInterval == 0) {\n            return false;\n        }\n\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\n        if (maxAllowedExchangeRate == 0) {\n            return false;\n        }\n\n        uint256 exchangeRate = getUnderlyingAmount();\n\n        return exchangeRate > maxAllowedExchangeRate;\n    }\n\n    /**\n     * @notice Updates the snapshot price and timestamp\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\n     */\n    function updateSnapshot() public override {\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\n\n        uint256 exchangeRate = getUnderlyingAmount();\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\n\n        snapshotMaxExchangeRate =\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\n            snapshotGap;\n        snapshotTimestamp = block.timestamp;\n\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\n\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\n    }\n\n    /**\n     * @notice Fetches the price of the token\n     * @param asset Address of the token\n     * @return price The price of the token in scaled decimal places. It can be capped\n     * to a maximum value taking into account the growth rate\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\n     */\n    function getPrice(address asset) public view override returns (uint256) {\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\n\n        uint256 exchangeRate = getUnderlyingAmount();\n\n        if (snapshotInterval == 0) {\n            return _calculatePrice(exchangeRate);\n        }\n\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\n\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\n            ? maxAllowedExchangeRate\n            : exchangeRate;\n\n        return _calculatePrice(finalExchangeRate);\n    }\n\n    /**\n     * @notice Gets the maximum allowed exchange rate for token\n     * @return maxExchangeRate Maximum allowed exchange rate\n     */\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\n            1e18;\n        return maxExchangeRate;\n    }\n\n    /**\n     * @notice Gets the underlying amount for correlated token\n     * @return underlyingAmount Amount of underlying token\n     */\n    function getUnderlyingAmount() public view virtual returns (uint256);\n\n    /**\n     * @notice Fetches price of the token based on an underlying exchange rate\n     * @param exchangeRate The underlying exchange rate to use\n     * @return price The price of the token in scaled decimal places\n     */\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\n\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\n        uint256 decimals = token.decimals();\n\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\n    }\n\n    /**\n     * @notice Reverts if the call is not allowed by AccessControlManager\n     * @param signature Method signature\n     * @custom:error Unauthorized error is thrown if the call is not allowed\n     */\n    function _checkAccessAllowed(string memory signature) internal view {\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\n\n        if (!isAllowedToCall) {\n            revert Unauthorized(msg.sender, address(this), signature);\n        }\n    }\n}\n"},"contracts/oracles/ERC4626Oracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IERC4626 } from \"../interfaces/IERC4626.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\n\n/**\n * @title ERC4626Oracle\n * @author Venus\n * @notice This oracle fetches the price of ERC4626 tokens\n */\ncontract ERC4626Oracle is CorrelatedTokenOracle {\n    uint256 public immutable ONE_CORRELATED_TOKEN;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address correlatedToken,\n        address underlyingToken,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            correlatedToken,\n            underlyingToken,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ONE_CORRELATED_TOKEN = 10 ** IERC4626(correlatedToken).decimals();\n    }\n\n    /**\n     * @notice Fetches the amount of underlying token for 1 correlated token\n     * @return amount The amount of underlying token for correlated token\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return IERC4626(CORRELATED_TOKEN).convertToAssets(ONE_CORRELATED_TOKEN);\n    }\n}\n"},"contracts/oracles/EtherfiAccountantOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { IAccountant } from \"../interfaces/IAccountant.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title EtherfiAccountantOracle\n * @author Venus\n * @notice This oracle fetches the price of any Ether.fi asset that uses\n * Accountant contracts to derive the underlying price\n */\ncontract EtherfiAccountantOracle is CorrelatedTokenOracle {\n    /// @notice Address of Accountant\n    IAccountant public immutable ACCOUNTANT;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address accountant,\n        address correlatedToken,\n        address underlyingToken,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            correlatedToken,\n            underlyingToken,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(accountant);\n        ACCOUNTANT = IAccountant(accountant);\n    }\n\n    /**\n     * @notice Fetches the conversion rate from the ACCOUNTANT contract\n     * @return amount Amount of WBTC\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return ACCOUNTANT.getRateSafe();\n    }\n}\n"},"contracts/oracles/mocks/MockAccountant.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../../interfaces/IAccountant.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockAccountant is IAccountant, Ownable {\n    uint256 public rate;\n\n    constructor() Ownable() {}\n\n    function setRate(uint256 _rate) external onlyOwner {\n        rate = _rate;\n    }\n\n    function getRateSafe() external view override returns (uint256) {\n        return rate;\n    }\n}\n"},"contracts/oracles/mocks/MockBinanceFeedRegistry.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../../interfaces/FeedRegistryInterface.sol\";\n\ncontract MockBinanceFeedRegistry is FeedRegistryInterface {\n    mapping(string => uint256) public assetPrices;\n\n    function setAssetPrice(string memory base, uint256 price) external {\n        assetPrices[base] = price;\n    }\n\n    function latestRoundDataByName(\n        string memory base,\n        string memory quote\n    )\n        external\n        view\n        override\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)\n    {\n        quote;\n        return (0, int256(assetPrices[base]), 0, block.timestamp - 10, 0);\n    }\n\n    function decimalsByName(string memory base, string memory quote) external view override returns (uint8) {\n        return 8;\n    }\n}\n"},"contracts/oracles/mocks/MockBinanceOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { OracleInterface } from \"../../interfaces/OracleInterface.sol\";\n\ncontract MockBinanceOracle is OwnableUpgradeable, OracleInterface {\n    mapping(address => uint256) public assetPrices;\n\n    constructor() {}\n\n    function initialize() public initializer {}\n\n    function setPrice(address asset, uint256 price) external {\n        assetPrices[asset] = price;\n    }\n\n    function getPrice(address token) public view returns (uint256) {\n        return assetPrices[token];\n    }\n}\n"},"contracts/oracles/mocks/MockChainlinkOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { OracleInterface } from \"../../interfaces/OracleInterface.sol\";\n\ncontract MockChainlinkOracle is OwnableUpgradeable, OracleInterface {\n    mapping(address => uint256) public assetPrices;\n\n    //set price in 6 decimal precision\n    constructor() {}\n\n    function initialize() public initializer {\n        __Ownable_init();\n    }\n\n    function setPrice(address asset, uint256 price) external {\n        assetPrices[asset] = price;\n    }\n\n    //https://compound.finance/docs/prices\n    function getPrice(address token) public view returns (uint256) {\n        return assetPrices[token];\n    }\n}\n"},"contracts/oracles/mocks/MockPendlePtOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../../interfaces/IPendlePtOracle.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockPendlePtOracle is IPendlePtOracle, Ownable {\n    mapping(address => mapping(uint32 => uint256)) public ptToAssetRate;\n    mapping(address => mapping(uint32 => uint256)) public ptToSyRate;\n\n    constructor() Ownable() {}\n\n    function setPtToAssetRate(address market, uint32 duration, uint256 rate) external onlyOwner {\n        ptToAssetRate[market][duration] = rate;\n    }\n\n    function setPtToSyRate(address market, uint32 duration, uint256 rate) external onlyOwner {\n        ptToSyRate[market][duration] = rate;\n    }\n\n    function getPtToAssetRate(address market, uint32 duration) external view returns (uint256) {\n        return ptToAssetRate[market][duration];\n    }\n\n    function getPtToSyRate(address market, uint32 duration) external view returns (uint256) {\n        return ptToSyRate[market][duration];\n    }\n\n    function getOracleState(\n        address /* market */,\n        uint32 /* duration */\n    )\n        external\n        pure\n        returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied)\n    {\n        return (false, 0, true);\n    }\n}\n"},"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../../interfaces/ISfrxEthFraxOracle.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockSfrxEthFraxOracle is ISfrxEthFraxOracle, Ownable {\n    bool public isBadData;\n    uint256 public priceLow;\n    uint256 public priceHigh;\n\n    constructor() Ownable() {}\n\n    function setPrices(bool _isBadData, uint256 _priceLow, uint256 _priceHigh) external onlyOwner {\n        isBadData = _isBadData;\n        priceLow = _priceLow;\n        priceHigh = _priceHigh;\n    }\n\n    function getPrices() external view override returns (bool, uint256, uint256) {\n        return (isBadData, priceLow, priceHigh);\n    }\n}\n"},"contracts/oracles/OneJumpOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { OracleInterface } from \"../interfaces/OracleInterface.sol\";\nimport { IERC20Metadata } from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\n\n/**\n * @title OneJumpOracle\n * @author Venus\n * @notice This oracle fetches the price of an asset in through an intermediate asset\n */\ncontract OneJumpOracle is CorrelatedTokenOracle {\n    /// @notice Address of the intermediate oracle\n    OracleInterface public immutable INTERMEDIATE_ORACLE;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address correlatedToken,\n        address underlyingToken,\n        address resilientOracle,\n        address intermediateOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            correlatedToken,\n            underlyingToken,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(intermediateOracle);\n        INTERMEDIATE_ORACLE = OracleInterface(intermediateOracle);\n    }\n\n    /**\n     * @notice Fetches the amount of the underlying token for 1 correlated token, using the intermediate oracle\n     * @return amount The amount of the underlying token for 1 correlated token scaled by the underlying token decimals\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        uint256 underlyingDecimals = IERC20Metadata(UNDERLYING_TOKEN).decimals();\n        uint256 correlatedDecimals = IERC20Metadata(CORRELATED_TOKEN).decimals();\n\n        uint256 underlyingAmount = INTERMEDIATE_ORACLE.getPrice(CORRELATED_TOKEN);\n\n        return (underlyingAmount * (10 ** correlatedDecimals)) / (10 ** (36 - underlyingDecimals));\n    }\n}\n"},"contracts/oracles/PendleOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IPendlePtOracle } from \"../interfaces/IPendlePtOracle.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { ensureNonzeroAddress, ensureNonzeroValue } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { IERC20Metadata } from \"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\n\n/**\n * @title PendleOracle\n * @author Venus\n * @notice This oracle fetches the price of a pendle token\n * @dev As a base price the oracle uses either the price of the Pendle\n * market's asset (in this case PT_TO_ASSET rate should be used) or\n * the price of the Pendle market's interest bearing token (e.g. wstETH\n * for stETH; in this case PT_TO_SY rate should be used). Technically,\n * interest bearing token is different from standardized yield (SY) token,\n * but since SY is a wrapper around an interest bearing token, we can safely\n * assume the prices of the two are equal. This is not always true for asset\n * price though: using PT_TO_ASSET rate assumes that the yield token can\n * be seamlessly redeemed for the underlying asset. In reality, this might\n * not always be the case. For more details, see\n * https://docs.pendle.finance/Developers/Contracts/StandardizedYield\n */\ncontract PendleOracle is CorrelatedTokenOracle {\n    struct ConstructorParams {\n        /// @notice Pendle market\n        address market;\n        /// @notice Pendle oracle\n        address ptOracle;\n        /// @notice Either PT_TO_ASSET or PT_TO_SY\n        RateKind rateKind;\n        /// @notice Pendle PT token\n        address ptToken;\n        /// @notice Underlying token, can be either the market's asset or the interest bearing token\n        address underlyingToken;\n        /// @notice Resilient oracle to get the underlying token price from\n        address resilientOracle;\n        /// @notice TWAP duration to call Pendle oracle with\n        uint32 twapDuration;\n        /// @notice Annual growth rate of the underlying token\n        uint256 annualGrowthRate;\n        /// @notice Snapshot interval for the oracle\n        uint256 snapshotInterval;\n        /// @notice Initial exchange rate of the underlying token\n        uint256 initialSnapshotMaxExchangeRate;\n        /// @notice Initial timestamp of the underlying token\n        uint256 initialSnapshotTimestamp;\n        /// @notice Access control manager\n        address accessControlManager;\n        /// @notice Gap to add when updating the snapshot\n        uint256 snapshotGap;\n    }\n\n    /// @notice Which asset to use as a base for the returned PT\n    /// price. Can be either a standardized yield token (SY), in\n    /// this case PT/SY price is returned, or the Pendle\n    /// market's asset directly.\n    enum RateKind {\n        PT_TO_ASSET,\n        PT_TO_SY\n    }\n\n    /// @notice Address of the PT oracle\n    IPendlePtOracle public immutable PT_ORACLE;\n\n    /// @notice Whether to use PT/SY (standardized yield token) rate\n    /// or PT/market asset rate\n    RateKind public immutable RATE_KIND;\n\n    /// @notice Address of the market\n    address public immutable MARKET;\n\n    /// @notice Twap duration for the oracle\n    uint32 public immutable TWAP_DURATION;\n\n    /// @notice Decimals of the underlying token\n    /// @dev We make an assumption that the underlying decimals will\n    /// not change throughout the lifetime of the Pendle market\n    uint8 public immutable UNDERLYING_DECIMALS;\n\n    /// @notice Thrown if the duration is invalid\n    error InvalidDuration();\n\n    /**\n     * @notice Constructor for the implementation contract.\n     * @custom:error InvalidDuration Thrown if the duration is invalid\n     */\n    constructor(\n        ConstructorParams memory params\n    )\n        CorrelatedTokenOracle(\n            params.ptToken,\n            params.underlyingToken,\n            params.resilientOracle,\n            params.annualGrowthRate,\n            params.snapshotInterval,\n            params.initialSnapshotMaxExchangeRate,\n            params.initialSnapshotTimestamp,\n            params.accessControlManager,\n            params.snapshotGap\n        )\n    {\n        ensureNonzeroAddress(params.market);\n        ensureNonzeroAddress(params.ptOracle);\n        ensureNonzeroValue(params.twapDuration);\n\n        MARKET = params.market;\n        PT_ORACLE = IPendlePtOracle(params.ptOracle);\n        RATE_KIND = params.rateKind;\n        TWAP_DURATION = params.twapDuration;\n        UNDERLYING_DECIMALS = IERC20Metadata(UNDERLYING_TOKEN).decimals();\n\n        (bool increaseCardinalityRequired, , bool oldestObservationSatisfied) = PT_ORACLE.getOracleState(\n            MARKET,\n            TWAP_DURATION\n        );\n        if (increaseCardinalityRequired || !oldestObservationSatisfied) {\n            revert InvalidDuration();\n        }\n    }\n\n    /// @notice Fetches the amount of underlying token for 1 PT\n    /// @return amount The amount of underlying token (either the market's asset\n    /// or the yield token) for 1 PT, adjusted for decimals such that the result\n    /// has the same precision as the underlying token\n    function getUnderlyingAmount() public view override returns (uint256) {\n        uint256 rate;\n        if (RATE_KIND == RateKind.PT_TO_SY) {\n            rate = PT_ORACLE.getPtToSyRate(MARKET, TWAP_DURATION);\n        } else {\n            rate = PT_ORACLE.getPtToAssetRate(MARKET, TWAP_DURATION);\n        }\n        return ((10 ** UNDERLYING_DECIMALS) * rate) / 1e18;\n    }\n}\n"},"contracts/oracles/SequencerChainlinkOracle.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.25;\n\nimport { ChainlinkOracle } from \"./ChainlinkOracle.sol\";\nimport { AggregatorV3Interface } from \"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\";\n\n/**\n    @title Sequencer Chain Link Oracle\n    @notice Oracle to fetch price using chainlink oracles on L2s with sequencer\n*/\ncontract SequencerChainlinkOracle is ChainlinkOracle {\n    /// @notice L2 Sequencer feed\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    AggregatorV3Interface public immutable sequencer;\n\n    /// @notice L2 Sequencer grace period\n    uint256 public constant GRACE_PERIOD_TIME = 3600;\n\n    /**\n        @notice Contract constructor\n        @param _sequencer L2 sequencer\n        @custom:oz-upgrades-unsafe-allow constructor\n    */\n    constructor(AggregatorV3Interface _sequencer) ChainlinkOracle() {\n        require(address(_sequencer) != address(0), \"zero address\");\n\n        sequencer = _sequencer;\n    }\n\n    /// @inheritdoc ChainlinkOracle\n    function getPrice(address asset) public view override returns (uint) {\n        if (!isSequencerActive()) revert(\"L2 sequencer unavailable\");\n        return super.getPrice(asset);\n    }\n\n    function isSequencerActive() internal view returns (bool) {\n        // answer from oracle is a variable with a value of either 1 or 0\n        //  0: The sequencer is up\n        //  1: The sequencer is down\n        // startedAt: This timestamp indicates when the sequencer changed status\n        (, int256 answer, uint256 startedAt, , ) = sequencer.latestRoundData();\n        if (block.timestamp - startedAt <= GRACE_PERIOD_TIME || answer == 1) return false;\n        return true;\n    }\n}\n"},"contracts/oracles/SFraxOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { ISFrax } from \"../interfaces/ISFrax.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\n\n/**\n * @title SFraxOracle\n * @author Venus\n * @notice This oracle fetches the price of sFrax\n */\ncontract SFraxOracle is CorrelatedTokenOracle {\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address sFrax,\n        address frax,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            sFrax,\n            frax,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {}\n\n    /**\n     * @notice Fetches the amount of FRAX for 1 sFrax\n     * @return amount The amount of FRAX for sFrax\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return ISFrax(CORRELATED_TOKEN).convertToAssets(EXP_SCALE);\n    }\n}\n"},"contracts/oracles/SFrxETHOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { ISfrxEthFraxOracle } from \"../interfaces/ISfrxEthFraxOracle.sol\";\nimport { ensureNonzeroAddress, ensureNonzeroValue } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\nimport { AccessControlledV8 } from \"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\";\nimport { OracleInterface } from \"../interfaces/OracleInterface.sol\";\n\n/**\n * @title SFrxETHOracle\n * @author Venus\n * @notice This oracle fetches the price of sfrxETH\n */\ncontract SFrxETHOracle is AccessControlledV8, OracleInterface {\n    /// @notice Address of SfrxEthFraxOracle\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    ISfrxEthFraxOracle public immutable SFRXETH_FRAX_ORACLE;\n\n    /// @notice Address of sfrxETH\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    address public immutable SFRXETH;\n\n    /// @notice Maximum allowed price difference\n    uint256 public maxAllowedPriceDifference;\n\n    /// @notice Emits when the maximum allowed price difference is updated\n    event MaxAllowedPriceDifferenceUpdated(uint256 oldMaxAllowedPriceDifference, uint256 newMaxAllowedPriceDifference);\n\n    /// @notice Thrown if the price data is invalid\n    error BadPriceData();\n\n    /// @notice Thrown if the price difference exceeds the allowed limit\n    error PriceDifferenceExceeded();\n\n    /// @notice Thrown if the token address is invalid\n    error InvalidTokenAddress();\n\n    /// @notice Constructor for the implementation contract.\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    /// @custom:error ZeroAddressNotAllowed is thrown when `_sfrxEthFraxOracle` or `_sfrxETH` are the zero address\n    constructor(address _sfrxEthFraxOracle, address _sfrxETH) {\n        ensureNonzeroAddress(_sfrxEthFraxOracle);\n        ensureNonzeroAddress(_sfrxETH);\n\n        SFRXETH_FRAX_ORACLE = ISfrxEthFraxOracle(_sfrxEthFraxOracle);\n        SFRXETH = _sfrxETH;\n\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Sets the contracts required to fetch prices\n     * @param _acm Address of the access control manager contract\n     * @param _maxAllowedPriceDifference Maximum allowed price difference\n     * @custom:error ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero\n     */\n    function initialize(address _acm, uint256 _maxAllowedPriceDifference) external initializer {\n        ensureNonzeroValue(_maxAllowedPriceDifference);\n\n        __AccessControlled_init(_acm);\n        maxAllowedPriceDifference = _maxAllowedPriceDifference;\n    }\n\n    /**\n     * @notice Sets the maximum allowed price difference\n     * @param _maxAllowedPriceDifference Maximum allowed price difference\n     * @custom:error ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero\n     */\n    function setMaxAllowedPriceDifference(uint256 _maxAllowedPriceDifference) external {\n        _checkAccessAllowed(\"setMaxAllowedPriceDifference(uint256)\");\n        ensureNonzeroValue(_maxAllowedPriceDifference);\n\n        emit MaxAllowedPriceDifferenceUpdated(maxAllowedPriceDifference, _maxAllowedPriceDifference);\n        maxAllowedPriceDifference = _maxAllowedPriceDifference;\n    }\n\n    /**\n     * @notice Fetches the USD price of sfrxETH\n     * @param asset Address of the sfrxETH token\n     * @return price The price scaled by 1e18\n     * @custom:error InvalidTokenAddress is thrown when the `asset` is not the sfrxETH token (`SFRXETH`)\n     * @custom:error BadPriceData is thrown if the `SFRXETH_FRAX_ORACLE` oracle informs it has bad data\n     * @custom:error ZeroValueNotAllowed is thrown if the prices (low or high, in USD) are zero\n     * @custom:error PriceDifferenceExceeded is thrown if priceHigh/priceLow is greater than `maxAllowedPriceDifference`\n     */\n    function getPrice(address asset) external view returns (uint256) {\n        if (asset != SFRXETH) revert InvalidTokenAddress();\n\n        (bool isBadData, uint256 priceLow, uint256 priceHigh) = SFRXETH_FRAX_ORACLE.getPrices();\n\n        if (isBadData) revert BadPriceData();\n\n        // calculate price in USD\n        uint256 priceHighInUSD = (EXP_SCALE ** 2) / priceLow;\n        uint256 priceLowInUSD = (EXP_SCALE ** 2) / priceHigh;\n\n        ensureNonzeroValue(priceHighInUSD);\n        ensureNonzeroValue(priceLowInUSD);\n\n        // validate price difference\n        uint256 difference = (priceHighInUSD * EXP_SCALE) / priceLowInUSD;\n        if (difference > maxAllowedPriceDifference) revert PriceDifferenceExceeded();\n\n        // calculate and return average price\n        return (priceHighInUSD + priceLowInUSD) / 2;\n    }\n}\n"},"contracts/oracles/SlisBNBOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { ISynclubStakeManager } from \"../interfaces/ISynclubStakeManager.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\n\n/**\n * @title SlisBNBOracle\n * @author Venus\n * @notice This oracle fetches the price of slisBNB asset\n */\ncontract SlisBNBOracle is CorrelatedTokenOracle {\n    /// @notice This is used as token address of BNB on BSC\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\n\n    /// @notice Address of StakeManager\n    ISynclubStakeManager public immutable STAKE_MANAGER;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address stakeManager,\n        address slisBNB,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            slisBNB,\n            NATIVE_TOKEN_ADDR,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(stakeManager);\n        STAKE_MANAGER = ISynclubStakeManager(stakeManager);\n    }\n\n    /**\n     * @notice Fetches the amount of BNB for 1 slisBNB\n     * @return amount The amount of BNB for slisBNB\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return STAKE_MANAGER.convertSnBnbToBnb(EXP_SCALE);\n    }\n}\n"},"contracts/oracles/StkBNBOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IPStakePool } from \"../interfaces/IPStakePool.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\n\n/**\n * @title StkBNBOracle\n * @author Venus\n * @notice This oracle fetches the price of stkBNB asset\n */\ncontract StkBNBOracle is CorrelatedTokenOracle {\n    /// @notice This is used as token address of BNB on BSC\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\n\n    /// @notice Address of StakePool\n    IPStakePool public immutable STAKE_POOL;\n\n    /// @notice Thrown if the pool token supply is zero\n    error PoolTokenSupplyIsZero();\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address stakePool,\n        address stkBNB,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            stkBNB,\n            NATIVE_TOKEN_ADDR,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(stakePool);\n        STAKE_POOL = IPStakePool(stakePool);\n    }\n\n    /**\n     * @notice Fetches the amount of BNB for 1 stkBNB\n     * @return price The amount of BNB for stkBNB\n     * @custom:error PoolTokenSupplyIsZero error is thrown if the pool token supply is zero\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        IPStakePool.Data memory exchangeRateData = STAKE_POOL.exchangeRate();\n\n        if (exchangeRateData.poolTokenSupply == 0) {\n            revert PoolTokenSupplyIsZero();\n        }\n\n        return (exchangeRateData.totalWei * EXP_SCALE) / exchangeRateData.poolTokenSupply;\n    }\n}\n"},"contracts/oracles/WBETHOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IWBETH } from \"../interfaces/IWBETH.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\n\n/**\n * @title WBETHOracle\n * @author Venus\n * @notice This oracle fetches the price of wBETH asset\n */\ncontract WBETHOracle is CorrelatedTokenOracle {\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address wbeth,\n        address eth,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            wbeth,\n            eth,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {}\n\n    /**\n     * @notice Fetches the amount of ETH for 1 wBETH\n     * @return amount The amount of ETH for wBETH\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return IWBETH(CORRELATED_TOKEN).exchangeRate();\n    }\n}\n"},"contracts/oracles/WeETHAccountantOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { IAccountant } from \"../interfaces/IAccountant.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title WeETHAccountantOracle\n * @author Venus\n * @notice This oracle fetches the price of Ether.fi tokens based on an `Accountant` contract (i.e. weETHs and weETHk)\n */\ncontract WeETHAccountantOracle is CorrelatedTokenOracle {\n    /// @notice Address of Accountant\n    IAccountant public immutable ACCOUNTANT;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address accountant,\n        address weethLRT,\n        address weth,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            weethLRT,\n            weth,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(accountant);\n        ACCOUNTANT = IAccountant(accountant);\n    }\n\n    /**\n     * @notice Gets the WETH for 1 weETH LRT\n     * @return amount Amount of WETH\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return ACCOUNTANT.getRateSafe();\n    }\n}\n"},"contracts/oracles/WeETHOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { IEtherFiLiquidityPool } from \"../interfaces/IEtherFiLiquidityPool.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title WeETHOracle\n * @author Venus\n * @notice This oracle fetches the price of weETH\n */\ncontract WeETHOracle is CorrelatedTokenOracle {\n    /// @notice Address of Liqiudity pool\n    IEtherFiLiquidityPool public immutable LIQUIDITY_POOL;\n\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address liquidityPool,\n        address weETH,\n        address eETH,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            weETH,\n            eETH,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(liquidityPool);\n        LIQUIDITY_POOL = IEtherFiLiquidityPool(liquidityPool);\n    }\n\n    /**\n     * @notice Gets the eETH for 1 weETH\n     * @return amount Amount of eETH\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return LIQUIDITY_POOL.amountForShare(EXP_SCALE);\n    }\n}\n"},"contracts/oracles/WstETHOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { OracleInterface } from \"../interfaces/OracleInterface.sol\";\nimport { IStETH } from \"../interfaces/IStETH.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\n\n/**\n * @title WstETHOracle\n * @author Venus\n * @notice Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH\n *         or the price of stETH/USD (secondary market price) is obtained from the oracle.\n */\ncontract WstETHOracle is OracleInterface {\n    /// @notice A flag assuming 1:1 price equivalence between stETH/ETH\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    bool public immutable ASSUME_STETH_ETH_EQUIVALENCE;\n\n    /// @notice Address of stETH\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    IStETH public immutable STETH;\n\n    /// @notice Address of wstETH\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    address public immutable WSTETH_ADDRESS;\n\n    /// @notice Address of WETH\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    address public immutable WETH_ADDRESS;\n\n    /// @notice Address of Resilient Oracle\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    OracleInterface public immutable RESILIENT_ORACLE;\n\n    /// @notice Constructor for the implementation contract.\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor(\n        address wstETHAddress,\n        address wETHAddress,\n        address stETHAddress,\n        address resilientOracleAddress,\n        bool assumeEquivalence\n    ) {\n        ensureNonzeroAddress(wstETHAddress);\n        ensureNonzeroAddress(wETHAddress);\n        ensureNonzeroAddress(stETHAddress);\n        ensureNonzeroAddress(resilientOracleAddress);\n        WSTETH_ADDRESS = wstETHAddress;\n        WETH_ADDRESS = wETHAddress;\n        STETH = IStETH(stETHAddress);\n        RESILIENT_ORACLE = OracleInterface(resilientOracleAddress);\n        ASSUME_STETH_ETH_EQUIVALENCE = assumeEquivalence;\n    }\n\n    /**\n     * @notice Gets the USD price of wstETH asset\n     * @dev Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH\n     *      or the price of stETH/USD (secondary market price) is obtained from the oracle\n     * @param asset Address of wstETH\n     * @return wstETH Price in USD scaled by 1e18\n     */\n    function getPrice(address asset) public view returns (uint256) {\n        if (asset != WSTETH_ADDRESS) revert(\"wrong wstETH address\");\n\n        // get stETH amount for 1 wstETH scaled by 1e18\n        uint256 stETHAmount = STETH.getPooledEthByShares(1 ether);\n\n        // price is scaled 1e18 (oracle returns 36 - asset decimal scale)\n        uint256 stETHUSDPrice = RESILIENT_ORACLE.getPrice(ASSUME_STETH_ETH_EQUIVALENCE ? WETH_ADDRESS : address(STETH));\n\n        // stETHAmount (for 1 wstETH) * stETHUSDPrice / 1e18\n        return (stETHAmount * stETHUSDPrice) / EXP_SCALE;\n    }\n}\n"},"contracts/oracles/WstETHOracleV2.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IStETH } from \"../interfaces/IStETH.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\nimport { EXP_SCALE } from \"@venusprotocol/solidity-utilities/contracts/constants.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title WstETHOracleV2\n * @author Venus\n * @notice This oracle fetches the price of wstETH\n */\ncontract WstETHOracleV2 is CorrelatedTokenOracle {\n    /// @notice Address of stETH\n    IStETH public immutable STETH;\n\n    /// @notice Constructor for the implementation contract.\n    /// @dev The underlyingToken must be correlated so that 1 underlyingToken is equal to 1 stETH, because\n    /// getUnderlyingAmount() implicitly assumes that\n    constructor(\n        address stETH,\n        address wstETH,\n        address underlyingToken,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            wstETH,\n            underlyingToken,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {\n        ensureNonzeroAddress(stETH);\n        STETH = IStETH(stETH);\n    }\n\n    /**\n     * @notice Gets the amount of underlyingToken for 1 wstETH, assuming that 1 underlyingToken is equivalent to 1 stETH\n     * @return amount Amount of underlyingToken\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return STETH.getPooledEthByShares(EXP_SCALE);\n    }\n}\n"},"contracts/oracles/ZkETHOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IZkETH } from \"../interfaces/IZkETH.sol\";\nimport { CorrelatedTokenOracle } from \"./common/CorrelatedTokenOracle.sol\";\n\n/**\n * @title ZkETHOracle\n * @author Venus\n * @notice This oracle fetches the price of zkETH\n */\ncontract ZkETHOracle is CorrelatedTokenOracle {\n    /// @notice Constructor for the implementation contract.\n    constructor(\n        address zkETH,\n        address rzkETH,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 _snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 _snapshotGap\n    )\n        CorrelatedTokenOracle(\n            zkETH,\n            rzkETH,\n            resilientOracle,\n            annualGrowthRate,\n            _snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            _snapshotGap\n        )\n    {}\n\n    /**\n     * @notice Gets the amount of rzkETH for 1 zkETH\n     * @return amount Amount of rzkETH\n     */\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return IZkETH(CORRELATED_TOKEN).LSTPerToken();\n    }\n}\n"},"contracts/ReferenceOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\n// SPDX-FileCopyrightText: 2025 Venus\npragma solidity 0.8.25;\n\nimport { Ownable2StepUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { ResilientOracleInterface, OracleInterface } from \"./interfaces/OracleInterface.sol\";\n\n/**\n * @title ReferenceOracle\n * @author Venus\n * @notice Reference oracle is the oracle that is not used for production but required for\n * price monitoring. This oracle contains some extra configurations for assets required to\n * compute reference prices of their derivative assets (OneJump, ERC4626, Pendle, etc.)\n */\ncontract ReferenceOracle is Ownable2StepUpgradeable, OracleInterface {\n    struct ExternalPrice {\n        /// @notice asset address\n        address asset;\n        /// @notice price of the asset from an external source\n        uint256 price;\n    }\n\n    /// @notice Slot to temporarily store price information from external sources\n    /// like CMC/Coingecko, useful to compute prices of derivative assets based on\n    /// prices of the base assets with no on chain price information\n    bytes32 public constant PRICES_SLOT = keccak256(abi.encode(\"venus-protocol/oracle/ReferenceOracle/prices\"));\n\n    /// @notice Resilient oracle address\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\n\n    /// @notice Oracle configuration for assets\n    mapping(address => OracleInterface) public oracles;\n\n    /// @notice Event emitted when an oracle is set\n    event OracleConfigured(address indexed asset, address indexed oracle);\n\n    /**\n     * @notice Constructor for the implementation contract. Sets immutable variables.\n     * @param resilientOracle Resilient oracle address\n     * @custom:error ZeroAddressNotAllowed is thrown if resilient oracle address is null\n     * @custom:oz-upgrades-unsafe-allow constructor\n     */\n    constructor(ResilientOracleInterface resilientOracle) {\n        ensureNonzeroAddress(address(resilientOracle));\n        RESILIENT_ORACLE = resilientOracle;\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the contract admin\n     */\n    function initialize() external initializer {\n        __Ownable2Step_init();\n    }\n\n    /**\n     * @notice Sets an oracle to use for a specific asset\n     * @dev The production resilientOracle will be used if zero address is passed\n     * @param asset Asset address\n     * @param oracle Oracle address\n     * @custom:access Only owner\n     * @custom:error ZeroAddressNotAllowed is thrown if asset address is null\n     * @custom:event Emits OracleConfigured event\n     */\n    function setOracle(address asset, OracleInterface oracle) external onlyOwner {\n        ensureNonzeroAddress(asset);\n        oracles[asset] = OracleInterface(oracle);\n        emit OracleConfigured(asset, address(oracle));\n    }\n\n    /**\n     * @notice Gets price of the asset assuming other assets have the defined price\n     * @param asset asset address\n     * @param externalPrices an array of prices for other assets\n     * @return USD price in scaled decimal places\n     */\n    function getPriceAssuming(address asset, ExternalPrice[] memory externalPrices) external returns (uint256) {\n        uint256 externalPricesCount = externalPrices.length;\n        for (uint256 i = 0; i < externalPricesCount; ++i) {\n            _storeExternalPrice(externalPrices[i].asset, externalPrices[i].price);\n        }\n        return _getPrice(asset);\n    }\n\n    /**\n     * @notice Gets price of the asset\n     * @param asset asset address\n     * @return USD price in scaled decimal places\n     */\n    function getPrice(address asset) external view override returns (uint256) {\n        return _getPrice(asset);\n    }\n\n    function _storeExternalPrice(address asset, uint256 price) internal {\n        bytes32 slot = keccak256(abi.encode(PRICES_SLOT, asset));\n        // solhint-disable-next-line no-inline-assembly\n        assembly (\"memory-safe\") {\n            tstore(slot, price)\n        }\n    }\n\n    function _getPrice(address asset) internal view returns (uint256) {\n        uint256 externalPrice = _loadExternalPrice(asset);\n        if (externalPrice != 0) {\n            return externalPrice;\n        }\n        OracleInterface oracle = oracles[asset];\n        if (oracle != OracleInterface(address(0))) {\n            return oracle.getPrice(asset);\n        }\n        return RESILIENT_ORACLE.getPrice(asset);\n    }\n\n    function _loadExternalPrice(address asset) internal view returns (uint256 value) {\n        bytes32 slot = keccak256(abi.encode(PRICES_SLOT, asset));\n        // solhint-disable-next-line no-inline-assembly\n        assembly (\"memory-safe\") {\n            value := tload(slot)\n        }\n    }\n}\n"},"contracts/ResilientOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\n// SPDX-FileCopyrightText: 2022 Venus\npragma solidity 0.8.25;\n\nimport { PausableUpgradeable } from \"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\";\nimport { VBep20Interface } from \"./interfaces/VBep20Interface.sol\";\nimport { OracleInterface, ResilientOracleInterface, BoundValidatorInterface } from \"./interfaces/OracleInterface.sol\";\nimport { AccessControlledV8 } from \"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\";\nimport { ICappedOracle } from \"./interfaces/ICappedOracle.sol\";\nimport { Transient } from \"./lib/Transient.sol\";\n\n/**\n * @title ResilientOracle\n * @author Venus\n * @notice The Resilient Oracle is the main contract that the protocol uses to fetch prices of assets.\n *\n * DeFi protocols are vulnerable to price oracle failures including oracle manipulation and incorrectly\n * reported prices. If only one oracle is used, this creates a single point of failure and opens a vector\n * for attacking the protocol.\n *\n * The Resilient Oracle uses multiple sources and fallback mechanisms to provide accurate prices and protect\n * the protocol from oracle attacks.\n *\n * For every market (vToken) we configure the main, pivot and fallback oracles. The oracles are configured per\n * vToken's underlying asset address. The main oracle oracle is the most trustworthy price source, the pivot\n * oracle is used as a loose sanity checker and the fallback oracle is used as a backup price source.\n *\n * To validate prices returned from two oracles, we use an upper and lower bound ratio that is set for every\n * market. The upper bound ratio represents the deviation between reported price (the price that’s being\n * validated) and the anchor price (the price we are validating against) above which the reported price will\n * be invalidated. The lower bound ratio presents the deviation between reported price and anchor price below\n * which the reported price will be invalidated. So for oracle price to be considered valid the below statement\n * should be true:\n\n```\nanchorRatio = anchorPrice/reporterPrice\nisValid = anchorRatio <= upperBoundAnchorRatio && anchorRatio >= lowerBoundAnchorRatio\n```\n\n * In most cases, Chainlink is used as the main oracle, other oracles are used as the pivot oracle depending\n * on which supports the given market and Binance oracle is used as the fallback oracle.\n *\n * For a fetched price to be valid it must be positive and not stagnant. If the price is invalid then we consider the\n * oracle to be stagnant and treat it like it's disabled.\n */\ncontract ResilientOracle is PausableUpgradeable, AccessControlledV8, ResilientOracleInterface {\n    /**\n     * @dev Oracle roles:\n     * **main**: The most trustworthy price source\n     * **pivot**: Price oracle used as a loose sanity checker\n     * **fallback**: The backup source when main oracle price is invalidated\n     */\n    enum OracleRole {\n        MAIN,\n        PIVOT,\n        FALLBACK\n    }\n\n    struct TokenConfig {\n        /// @notice asset address\n        address asset;\n        /// @notice `oracles` stores the oracles based on their role in the following order:\n        /// [main, pivot, fallback],\n        /// It can be indexed with the corresponding enum OracleRole value\n        address[3] oracles;\n        /// @notice `enableFlagsForOracles` stores the enabled state\n        /// for each oracle in the same order as `oracles`\n        bool[3] enableFlagsForOracles;\n        /// @notice `cachingEnabled` is a flag that indicates whether the asset price should be cached\n        bool cachingEnabled;\n    }\n\n    uint256 public constant INVALID_PRICE = 0;\n\n    /// @notice Native market address\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    address public immutable nativeMarket;\n\n    /// @notice VAI address\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    address public immutable vai;\n\n    /// @notice Set this as asset address for Native token on each chain.This is the underlying for vBNB (on bsc)\n    /// and can serve as any underlying asset of a market that supports native tokens\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\n\n    /// @notice Slot to cache the asset's price, used for transient storage\n    /// custom:storage-location erc7201:venus-protocol/oracle/ResilientOracle/cache\n    /// keccak256(abi.encode(uint256(keccak256(\"venus-protocol/oracle/ResilientOracle/cache\")) - 1))\n    ///   & ~bytes32(uint256(0xff))\n    bytes32 public constant CACHE_SLOT = 0x4e99ec55972332f5e0ef9c6623192c0401b609161bffae64d9ccdd7ad6cc7800;\n\n    /// @notice Bound validator contract address\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    BoundValidatorInterface public immutable boundValidator;\n\n    mapping(address => TokenConfig) private tokenConfigs;\n\n    event TokenConfigAdded(\n        address indexed asset,\n        address indexed mainOracle,\n        address indexed pivotOracle,\n        address fallbackOracle\n    );\n\n    /// Event emitted when an oracle is set\n    event OracleSet(address indexed asset, address indexed oracle, uint256 indexed role);\n\n    /// Event emitted when an oracle is enabled or disabled\n    event OracleEnabled(address indexed asset, uint256 indexed role, bool indexed enable);\n\n    /// Event emitted when an asset cachingEnabled flag is set\n    event CachedEnabled(address indexed asset, bool indexed enabled);\n\n    /**\n     * @notice Checks whether an address is null or not\n     */\n    modifier notNullAddress(address someone) {\n        if (someone == address(0)) revert(\"can't be zero address\");\n        _;\n    }\n\n    /**\n     * @notice Checks whether token config exists by checking whether asset is null address\n     * @dev address can't be null, so it's suitable to be used to check the validity of the config\n     * @param asset asset address\n     */\n    modifier checkTokenConfigExistence(address asset) {\n        if (tokenConfigs[asset].asset == address(0)) revert(\"token config must exist\");\n        _;\n    }\n\n    /// @notice Constructor for the implementation contract. Sets immutable variables.\n    /// @dev nativeMarketAddress can be address(0) if on the chain we do not support native market\n    ///      (e.g vETH on ethereum would not be supported, only vWETH)\n    /// @param nativeMarketAddress The address of a native market (for bsc it would be vBNB address)\n    /// @param vaiAddress The address of the VAI token (if there is VAI on the deployed chain).\n    ///          Set to address(0) of VAI is not existent.\n    /// @param _boundValidator Address of the bound validator contract\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor(\n        address nativeMarketAddress,\n        address vaiAddress,\n        BoundValidatorInterface _boundValidator\n    ) notNullAddress(address(_boundValidator)) {\n        nativeMarket = nativeMarketAddress;\n        vai = vaiAddress;\n        boundValidator = _boundValidator;\n\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the contract admin and sets the BoundValidator contract address\n     * @param accessControlManager_ Address of the access control manager contract\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n        __Pausable_init();\n    }\n\n    /**\n     * @notice Pauses oracle\n     * @custom:access Only Governance\n     */\n    function pause() external {\n        _checkAccessAllowed(\"pause()\");\n        _pause();\n    }\n\n    /**\n     * @notice Unpauses oracle\n     * @custom:access Only Governance\n     */\n    function unpause() external {\n        _checkAccessAllowed(\"unpause()\");\n        _unpause();\n    }\n\n    /**\n     * @notice Batch sets token configs\n     * @param tokenConfigs_ Token config array\n     * @custom:access Only Governance\n     * @custom:error Throws a length error if the length of the token configs array is 0\n     */\n    function setTokenConfigs(TokenConfig[] memory tokenConfigs_) external {\n        if (tokenConfigs_.length == 0) revert(\"length can't be 0\");\n        uint256 numTokenConfigs = tokenConfigs_.length;\n        for (uint256 i; i < numTokenConfigs; ++i) {\n            setTokenConfig(tokenConfigs_[i]);\n        }\n    }\n\n    /**\n     * @notice Sets oracle for a given asset and role.\n     * @dev Supplied asset **must** exist and main oracle may not be null\n     * @param asset Asset address\n     * @param oracle Oracle address\n     * @param role Oracle role\n     * @custom:access Only Governance\n     * @custom:error Null address error if main-role oracle address is null\n     * @custom:error NotNullAddress error is thrown if asset address is null\n     * @custom:error TokenConfigExistance error is thrown if token config is not set\n     * @custom:event Emits OracleSet event with asset address, oracle address and role of the oracle for the asset\n     */\n    function setOracle(\n        address asset,\n        address oracle,\n        OracleRole role\n    ) external notNullAddress(asset) checkTokenConfigExistence(asset) {\n        _checkAccessAllowed(\"setOracle(address,address,uint8)\");\n        if (oracle == address(0) && role == OracleRole.MAIN) revert(\"can't set zero address to main oracle\");\n        tokenConfigs[asset].oracles[uint256(role)] = oracle;\n        emit OracleSet(asset, oracle, uint256(role));\n    }\n\n    /**\n     * @notice Enables/ disables oracle for the input asset. Token config for the input asset **must** exist\n     * @dev Configuration for the asset **must** already exist and the asset cannot be 0 address\n     * @param asset Asset address\n     * @param role Oracle role\n     * @param enable Enabled boolean of the oracle\n     * @custom:access Only Governance\n     * @custom:error NotNullAddress error is thrown if asset address is null\n     * @custom:error TokenConfigExistance error is thrown if token config is not set\n     * @custom:event Emits OracleEnabled event with asset address, role of the oracle and enabled flag\n     */\n    function enableOracle(\n        address asset,\n        OracleRole role,\n        bool enable\n    ) external notNullAddress(asset) checkTokenConfigExistence(asset) {\n        _checkAccessAllowed(\"enableOracle(address,uint8,bool)\");\n        tokenConfigs[asset].enableFlagsForOracles[uint256(role)] = enable;\n        emit OracleEnabled(asset, uint256(role), enable);\n    }\n\n    /**\n     * @notice Updates the capped main oracle snapshot.\n     * @dev This function should always be called before calling getUnderlyingPrice\n     * @param vToken vToken address\n     */\n    function updatePrice(address vToken) external override {\n        address asset = _getUnderlyingAsset(vToken);\n        _updateAssetPrice(asset);\n    }\n\n    /**\n     * @notice Updates the capped main oracle snapshot.\n     * @dev This function should always be called before calling getPrice\n     * @param asset asset address\n     */\n    function updateAssetPrice(address asset) external {\n        _updateAssetPrice(asset);\n    }\n\n    /**\n     * @dev Gets token config by asset address\n     * @param asset asset address\n     * @return tokenConfig Config for the asset\n     */\n    function getTokenConfig(address asset) external view returns (TokenConfig memory) {\n        return tokenConfigs[asset];\n    }\n\n    /**\n     * @notice Gets price of the underlying asset for a given vToken. Validation flow:\n     * - Check if the oracle is paused globally\n     * - Validate price from main oracle against pivot oracle\n     * - Validate price from fallback oracle against pivot oracle if the first validation failed\n     * - Validate price from main oracle against fallback oracle if the second validation failed\n     * In the case that the pivot oracle is not available but main price is available and validation is successful,\n     * main oracle price is returned.\n     * @param vToken vToken address\n     * @return price USD price in scaled decimal places.\n     * @custom:error Paused error is thrown when resilent oracle is paused\n     * @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid\n     */\n    function getUnderlyingPrice(address vToken) external view override returns (uint256) {\n        if (paused()) revert(\"resilient oracle is paused\");\n\n        address asset = _getUnderlyingAsset(vToken);\n        return _getPrice(asset);\n    }\n\n    /**\n     * @notice Gets price of the asset\n     * @param asset asset address\n     * @return price USD price in scaled decimal places.\n     * @custom:error Paused error is thrown when resilent oracle is paused\n     * @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid\n     */\n    function getPrice(address asset) external view override returns (uint256) {\n        if (paused()) revert(\"resilient oracle is paused\");\n        return _getPrice(asset);\n    }\n\n    /**\n     * @notice Sets/resets single token configs.\n     * @dev main oracle **must not** be a null address\n     * @param tokenConfig Token config struct\n     * @custom:access Only Governance\n     * @custom:error NotNullAddress is thrown if asset address is null\n     * @custom:error NotNullAddress is thrown if main-role oracle address for asset is null\n     * @custom:event Emits TokenConfigAdded event when the asset config is set successfully by the authorized account\n     * @custom:event Emits CachedEnabled event when the asset cachingEnabled flag is set successfully\n     */\n    function setTokenConfig(\n        TokenConfig memory tokenConfig\n    ) public notNullAddress(tokenConfig.asset) notNullAddress(tokenConfig.oracles[uint256(OracleRole.MAIN)]) {\n        _checkAccessAllowed(\"setTokenConfig(TokenConfig)\");\n\n        tokenConfigs[tokenConfig.asset] = tokenConfig;\n        emit TokenConfigAdded(\n            tokenConfig.asset,\n            tokenConfig.oracles[uint256(OracleRole.MAIN)],\n            tokenConfig.oracles[uint256(OracleRole.PIVOT)],\n            tokenConfig.oracles[uint256(OracleRole.FALLBACK)]\n        );\n        emit CachedEnabled(tokenConfig.asset, tokenConfig.cachingEnabled);\n    }\n\n    /**\n     * @notice Gets oracle and enabled status by asset address\n     * @param asset asset address\n     * @param role Oracle role\n     * @return oracle Oracle address based on role\n     * @return enabled Enabled flag of the oracle based on token config\n     */\n    function getOracle(address asset, OracleRole role) public view returns (address oracle, bool enabled) {\n        oracle = tokenConfigs[asset].oracles[uint256(role)];\n        enabled = tokenConfigs[asset].enableFlagsForOracles[uint256(role)];\n    }\n\n    /**\n     * @notice Updates the capped oracle snapshot.\n     * @dev Cache the asset price and return if already cached\n     * @param asset asset address\n     */\n    function _updateAssetPrice(address asset) internal {\n        if (Transient.readCachedPrice(CACHE_SLOT, asset) != 0) {\n            return;\n        }\n\n        (address mainOracle, bool mainOracleEnabled) = getOracle(asset, OracleRole.MAIN);\n        if (mainOracle != address(0) && mainOracleEnabled) {\n            // if main oracle is not CorrelatedTokenOracle it will revert so we need to catch the revert\n            try ICappedOracle(mainOracle).updateSnapshot() {} catch {}\n        }\n\n        if (_isCacheEnabled(asset)) {\n            uint256 price = _getPrice(asset);\n            Transient.cachePrice(CACHE_SLOT, asset, price);\n        }\n    }\n\n    /**\n     * @notice Gets price for the provided asset\n     * @param asset asset address\n     * @return price USD price in scaled decimal places.\n     * @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid\n     */\n    function _getPrice(address asset) internal view returns (uint256) {\n        uint256 pivotPrice = INVALID_PRICE;\n        uint256 price;\n\n        price = Transient.readCachedPrice(CACHE_SLOT, asset);\n        if (price != 0) {\n            return price;\n        }\n\n        // Get pivot oracle price, Invalid price if not available or error\n        (address pivotOracle, bool pivotOracleEnabled) = getOracle(asset, OracleRole.PIVOT);\n        if (pivotOracleEnabled && pivotOracle != address(0)) {\n            try OracleInterface(pivotOracle).getPrice(asset) returns (uint256 pricePivot) {\n                pivotPrice = pricePivot;\n            } catch {}\n        }\n\n        // Compare main price and pivot price, return main price and if validation was successful\n        // note: In case pivot oracle is not available but main price is available and\n        // validation is successful, the main oracle price is returned.\n        (uint256 mainPrice, bool validatedPivotMain) = _getMainOraclePrice(\n            asset,\n            pivotPrice,\n            pivotOracleEnabled && pivotOracle != address(0)\n        );\n        if (mainPrice != INVALID_PRICE && validatedPivotMain) return mainPrice;\n\n        // Compare fallback and pivot if main oracle comparision fails with pivot\n        // Return fallback price when fallback price is validated successfully with pivot oracle\n        (uint256 fallbackPrice, bool validatedPivotFallback) = _getFallbackOraclePrice(asset, pivotPrice);\n        if (fallbackPrice != INVALID_PRICE && validatedPivotFallback) return fallbackPrice;\n\n        // Lastly compare main price and fallback price\n        if (\n            mainPrice != INVALID_PRICE &&\n            fallbackPrice != INVALID_PRICE &&\n            boundValidator.validatePriceWithAnchorPrice(asset, mainPrice, fallbackPrice)\n        ) {\n            return mainPrice;\n        }\n\n        revert(\"invalid resilient oracle price\");\n    }\n\n    /**\n     * @notice Gets a price for the provided asset\n     * @dev This function won't revert when price is 0, because the fallback oracle may still be\n     * able to fetch a correct price\n     * @param asset asset address\n     * @param pivotPrice Pivot oracle price\n     * @param pivotEnabled If pivot oracle is not empty and enabled\n     * @return price USD price in scaled decimals\n     * e.g. asset decimals is 8 then price is returned as 10**18 * 10**(18-8) = 10**28 decimals\n     * @return pivotValidated Boolean representing if the validation of main oracle price\n     * and pivot oracle price were successful\n     * @custom:error Invalid price error is thrown if main oracle fails to fetch price of the asset\n     * @custom:error Invalid price error is thrown if main oracle is not enabled or main oracle\n     * address is null\n     */\n    function _getMainOraclePrice(\n        address asset,\n        uint256 pivotPrice,\n        bool pivotEnabled\n    ) internal view returns (uint256, bool) {\n        (address mainOracle, bool mainOracleEnabled) = getOracle(asset, OracleRole.MAIN);\n        if (mainOracleEnabled && mainOracle != address(0)) {\n            try OracleInterface(mainOracle).getPrice(asset) returns (uint256 mainOraclePrice) {\n                if (!pivotEnabled) {\n                    return (mainOraclePrice, true);\n                }\n                if (pivotPrice == INVALID_PRICE) {\n                    return (mainOraclePrice, false);\n                }\n                return (\n                    mainOraclePrice,\n                    boundValidator.validatePriceWithAnchorPrice(asset, mainOraclePrice, pivotPrice)\n                );\n            } catch {\n                return (INVALID_PRICE, false);\n            }\n        }\n\n        return (INVALID_PRICE, false);\n    }\n\n    /**\n     * @dev This function won't revert when the price is 0 because getPrice checks if price is > 0\n     * @param asset asset address\n     * @return price USD price in 18 decimals\n     * @return pivotValidated Boolean representing if the validation of fallback oracle price\n     * and pivot oracle price were successfully\n     * @custom:error Invalid price error is thrown if fallback oracle fails to fetch price of the asset\n     * @custom:error Invalid price error is thrown if fallback oracle is not enabled or fallback oracle\n     * address is null\n     */\n    function _getFallbackOraclePrice(address asset, uint256 pivotPrice) private view returns (uint256, bool) {\n        (address fallbackOracle, bool fallbackEnabled) = getOracle(asset, OracleRole.FALLBACK);\n        if (fallbackEnabled && fallbackOracle != address(0)) {\n            try OracleInterface(fallbackOracle).getPrice(asset) returns (uint256 fallbackOraclePrice) {\n                if (pivotPrice == INVALID_PRICE) {\n                    return (fallbackOraclePrice, false);\n                }\n                return (\n                    fallbackOraclePrice,\n                    boundValidator.validatePriceWithAnchorPrice(asset, fallbackOraclePrice, pivotPrice)\n                );\n            } catch {\n                return (INVALID_PRICE, false);\n            }\n        }\n\n        return (INVALID_PRICE, false);\n    }\n\n    /**\n     * @dev This function returns the underlying asset of a vToken\n     * @param vToken vToken address\n     * @return asset underlying asset address\n     */\n    function _getUnderlyingAsset(address vToken) private view notNullAddress(vToken) returns (address asset) {\n        if (vToken == nativeMarket) {\n            asset = NATIVE_TOKEN_ADDR;\n        } else if (vToken == vai) {\n            asset = vai;\n        } else {\n            asset = VBep20Interface(vToken).underlying();\n        }\n    }\n\n    /**\n     * @dev This function checks if the asset price should be cached\n     * @param asset asset address\n     * @return bool true if caching is enabled, false otherwise\n     */\n    function _isCacheEnabled(address asset) private view returns (bool) {\n        return tokenConfigs[asset].cachingEnabled;\n    }\n}\n"},"contracts/test/BEP20Harness.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract BEP20Harness is ERC20 {\n    uint8 public decimalsInternal = 18;\n\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) {\n        decimalsInternal = decimals_;\n    }\n\n    function faucet(uint256 amount) external {\n        _mint(msg.sender, amount);\n    }\n\n    function decimals() public view virtual override returns (uint8) {\n        return decimalsInternal;\n    }\n}\n"},"contracts/test/MockAnkrBNB.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport { IAnkrBNB } from \"../interfaces/IAnkrBNB.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockAnkrBNB is ERC20, Ownable, IAnkrBNB {\n    uint8 private immutable _decimals;\n    uint256 public exchangeRate;\n\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) Ownable() {\n        _decimals = decimals_;\n    }\n\n    function faucet(uint256 amount) external {\n        _mint(msg.sender, amount);\n    }\n\n    function setSharesToBonds(uint256 rate) external onlyOwner {\n        exchangeRate = rate;\n    }\n\n    function sharesToBonds(uint256 amount) external view override returns (uint256) {\n        return (amount * exchangeRate) / (10 ** uint256(_decimals));\n    }\n\n    function decimals() public view virtual override(ERC20, IAnkrBNB) returns (uint8) {\n        return _decimals;\n    }\n}\n"},"contracts/test/MockAsBNB.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport { IAsBNB } from \"../interfaces/IAsBNB.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockAsBNB is ERC20, Ownable, IAsBNB {\n    uint8 private immutable _decimals;\n    address public minter;\n\n    constructor(\n        string memory name_,\n        string memory symbol_,\n        uint8 decimals_,\n        address minter_\n    ) ERC20(name_, symbol_) Ownable() {\n        _decimals = decimals_;\n        minter = minter_;\n    }\n\n    function faucet(uint256 amount) external {\n        _mint(msg.sender, amount);\n    }\n\n    function setMinter(address minter_) external onlyOwner {\n        minter = minter_;\n    }\n\n    function decimals() public view virtual override(ERC20, IAsBNB) returns (uint8) {\n        return _decimals;\n    }\n}\n"},"contracts/test/MockAsBNBMinter.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport { IAsBNBMinter } from \"../interfaces/IAsBNBMinter.sol\";\n\ncontract MockAsBNBMinter is IAsBNBMinter {\n    function convertToTokens(uint256 _amount) external pure override returns (uint256) {\n        return _amount;\n    }\n}\n"},"contracts/test/MockCallPrice.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport { OracleInterface, ResilientOracleInterface } from \"../interfaces/OracleInterface.sol\";\n\ninterface CorrelatedTokenOracleInterface {\n    function updateSnapshot() external;\n    function getPrice(address asset) external view returns (uint256);\n}\n\ncontract MockCallPrice {\n    function getMultiPrice(CorrelatedTokenOracleInterface oracle, address asset) public returns (uint256, uint256) {\n        oracle.updateSnapshot();\n        return (oracle.getPrice(asset), oracle.getPrice(asset));\n    }\n\n    function getUnderlyingPriceResilientOracle(\n        ResilientOracleInterface oracle,\n        address vToken\n    ) public returns (uint256, uint256) {\n        oracle.updatePrice(vToken);\n        oracle.updatePrice(vToken);\n        return (oracle.getUnderlyingPrice(vToken), oracle.getUnderlyingPrice(vToken));\n    }\n\n    function getAssetPriceResilientOracle(\n        ResilientOracleInterface oracle,\n        address asset\n    ) public returns (uint256, uint256) {\n        oracle.updateAssetPrice(asset);\n        oracle.updateAssetPrice(asset);\n        return (oracle.getPrice(asset), oracle.getPrice(asset));\n    }\n}\n"},"contracts/test/MockEtherFiLiquidityPool.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../interfaces/IEtherFiLiquidityPool.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockEtherFiLiquidityPool is IEtherFiLiquidityPool, Ownable {\n    /// @notice The amount of eETH per weETH scaled by 1e18\n    uint256 public amountPerShare;\n\n    constructor() Ownable() {}\n\n    function setAmountPerShare(uint256 _amountPerShare) external onlyOwner {\n        amountPerShare = _amountPerShare;\n    }\n\n    function amountForShare(uint256 _share) external view override returns (uint256) {\n        return (_share * amountPerShare) / 1e18;\n    }\n}\n"},"contracts/test/MockSFrax.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport { ISFrax } from \"../interfaces/ISFrax.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockSFrax is ERC20, Ownable, ISFrax {\n    uint8 private immutable _decimals;\n    uint256 public exchangeRate;\n\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) Ownable() {\n        _decimals = decimals_;\n    }\n\n    function faucet(uint256 amount) external {\n        _mint(msg.sender, amount);\n    }\n\n    function setRate(uint256 rate) external onlyOwner {\n        exchangeRate = rate;\n    }\n\n    function convertToAssets(uint256 shares) external view override returns (uint256) {\n        return (shares * exchangeRate) / (10 ** uint256(_decimals));\n    }\n\n    function decimals() public view virtual override(ERC20, ISFrax) returns (uint8) {\n        return _decimals;\n    }\n}\n"},"contracts/test/MockSimpleOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../interfaces/OracleInterface.sol\";\n\ncontract MockSimpleOracle is OracleInterface {\n    mapping(address => uint256) public prices;\n\n    constructor() {\n        //\n    }\n\n    function getUnderlyingPrice(address vToken) external view returns (uint256) {\n        return prices[vToken];\n    }\n\n    function getPrice(address asset) external view returns (uint256) {\n        return prices[asset];\n    }\n\n    function setPrice(address vToken, uint256 price) public {\n        prices[vToken] = price;\n    }\n}\n\ncontract MockBoundValidator is BoundValidatorInterface {\n    mapping(address => bool) public validateResults;\n    bool public twapUpdated;\n\n    constructor() {\n        //\n    }\n\n    function validatePriceWithAnchorPrice(\n        address vToken,\n        uint256 reporterPrice,\n        uint256 anchorPrice\n    ) external view returns (bool) {\n        return validateResults[vToken];\n    }\n\n    function validateAssetPriceWithAnchorPrice(\n        address asset,\n        uint256 reporterPrice,\n        uint256 anchorPrice\n    ) external view returns (bool) {\n        return validateResults[asset];\n    }\n\n    function setValidateResult(address token, bool pass) public {\n        validateResults[token] = pass;\n    }\n}\n"},"contracts/test/MockV3Aggregator.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\";\n\n/**\n * @title MockV3Aggregator\n * @notice Based on the FluxAggregator contract\n * @notice Use this contract when you need to test\n * other contract's ability to read data from an\n * aggregator contract, but how the aggregator got\n * its answer is unimportant\n */\ncontract MockV3Aggregator is AggregatorV2V3Interface {\n    uint256 public constant version = 0;\n\n    uint8 public decimals;\n    int256 public latestAnswer;\n    uint256 public latestTimestamp;\n    uint256 public latestRound;\n\n    mapping(uint256 => int256) public getAnswer;\n    mapping(uint256 => uint256) public getTimestamp;\n    mapping(uint256 => uint256) private getStartedAt;\n\n    constructor(uint8 _decimals, int256 _initialAnswer) {\n        decimals = _decimals;\n        updateAnswer(_initialAnswer);\n    }\n\n    function getRoundData(\n        uint80 _roundId\n    )\n        external\n        view\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)\n    {\n        return (_roundId, getAnswer[_roundId], getStartedAt[_roundId], getTimestamp[_roundId], _roundId);\n    }\n\n    function latestRoundData()\n        external\n        view\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)\n    {\n        return (\n            uint80(latestRound),\n            getAnswer[latestRound],\n            getStartedAt[latestRound],\n            getTimestamp[latestRound],\n            uint80(latestRound)\n        );\n    }\n\n    function description() external pure returns (string memory) {\n        return \"v0.6/tests/MockV3Aggregator.sol\";\n    }\n\n    function updateAnswer(int256 _answer) public {\n        latestAnswer = _answer;\n        latestTimestamp = block.timestamp;\n        latestRound++;\n        getAnswer[latestRound] = _answer;\n        getTimestamp[latestRound] = block.timestamp;\n        getStartedAt[latestRound] = block.timestamp;\n    }\n\n    function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public {\n        latestRound = _roundId;\n        latestAnswer = _answer;\n        latestTimestamp = _timestamp;\n        getAnswer[latestRound] = _answer;\n        getTimestamp[latestRound] = _timestamp;\n        getStartedAt[latestRound] = _startedAt;\n    }\n}\n"},"contracts/test/MockWBETH.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport { IWBETH } from \"../interfaces/IWBETH.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MockWBETH is ERC20, Ownable, IWBETH {\n    uint8 private immutable _decimals;\n    uint256 public override exchangeRate;\n\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) Ownable() {\n        _decimals = decimals_;\n    }\n\n    function faucet(uint256 amount) external {\n        _mint(msg.sender, amount);\n    }\n\n    function setExchangeRate(uint256 rate) external onlyOwner {\n        exchangeRate = rate;\n    }\n\n    function decimals() public view virtual override(ERC20, IWBETH) returns (uint8) {\n        return _decimals;\n    }\n}\n"},"contracts/test/oracles/MockCorrelatedTokenOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { CorrelatedTokenOracle } from \"../../oracles/common/CorrelatedTokenOracle.sol\";\n\ncontract MockCorrelatedTokenOracle is CorrelatedTokenOracle {\n    uint256 public mockUnderlyingAmount;\n\n    constructor(\n        address correlatedToken,\n        address underlyingToken,\n        address resilientOracle,\n        uint256 annualGrowthRate,\n        uint256 snapshotInterval,\n        uint256 initialSnapshotMaxExchangeRate,\n        uint256 initialSnapshotTimestamp,\n        address accessControlManager,\n        uint256 snapshotGap\n    )\n        CorrelatedTokenOracle(\n            correlatedToken,\n            underlyingToken,\n            resilientOracle,\n            annualGrowthRate,\n            snapshotInterval,\n            initialSnapshotMaxExchangeRate,\n            initialSnapshotTimestamp,\n            accessControlManager,\n            snapshotGap\n        )\n    {}\n\n    function setMockUnderlyingAmount(uint256 amount) external {\n        mockUnderlyingAmount = amount;\n    }\n\n    function getUnderlyingAmount() public view override returns (uint256) {\n        return mockUnderlyingAmount;\n    }\n}\n"},"contracts/test/oracles/MockERC20.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract MockERC20 is ERC20 {\n    constructor(string memory name, string memory symbol, uint8 decimals) ERC20(name, symbol) {\n        _mint(msg.sender, 100000 * 10 ** uint256(decimals));\n    }\n}\n"},"contracts/test/oracles/MockResilientOracle.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../../interfaces/OracleInterface.sol\";\n\ncontract MockOracle is OracleInterface {\n    mapping(address => uint256) public prices;\n\n    function getPrice(address asset) external view returns (uint256) {\n        return prices[asset];\n    }\n\n    function setPrice(address vToken, uint256 price) public {\n        prices[vToken] = price;\n    }\n}\n"},"contracts/test/PancakePairHarness.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\n// a library for performing various math operations\n\nlibrary Math {\n    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n        z = x < y ? x : y;\n    }\n\n    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n    function sqrt(uint256 y) internal pure returns (uint256 z) {\n        if (y > 3) {\n            z = y;\n            uint256 x = y / 2 + 1;\n            while (x < z) {\n                z = x;\n                x = (y / x + x) / 2;\n            }\n        } else if (y != 0) {\n            z = 1;\n        }\n    }\n}\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n    //solhint-disable-next-line state-visibility\n    uint224 constant Q112 = 2 ** 112;\n\n    // encode a uint112 as a UQ112x112\n    function encode(uint112 y) internal pure returns (uint224 z) {\n        z = uint224(y) * Q112; // never overflows\n    }\n\n    // divide a UQ112x112 by a uint112, returning a UQ112x112\n    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n        z = x / uint224(y);\n    }\n}\n\ncontract PancakePairHarness {\n    using UQ112x112 for uint224;\n\n    address public token0;\n    address public token1;\n\n    uint112 private reserve0; // uses single storage slot, accessible via getReserves\n    uint112 private reserve1; // uses single storage slot, accessible via getReserves\n    uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n    uint256 public price0CumulativeLast;\n    uint256 public price1CumulativeLast;\n    uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n    // called once by the factory at time of deployment\n    function initialize(address _token0, address _token1) external {\n        token0 = _token0;\n        token1 = _token1;\n    }\n\n    // update reserves and, on the first call per block, price accumulators\n    function update(uint256 balance0, uint256 balance1, uint112 _reserve0, uint112 _reserve1) external {\n        require(balance0 <= type(uint112).max && balance1 <= type(uint112).max, \"PancakeV2: OVERFLOW\");\n        uint32 blockTimestamp = uint32(block.timestamp % 2 ** 32);\n        unchecked {\n            uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n            if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n                // * never overflows, and + overflow is desired\n                price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;\n                price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;\n            }\n        }\n        reserve0 = uint112(balance0);\n        reserve1 = uint112(balance1);\n        blockTimestampLast = blockTimestamp;\n    }\n\n    function currentBlockTimestamp() external view returns (uint32) {\n        return uint32(block.timestamp % 2 ** 32);\n    }\n\n    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {\n        _reserve0 = reserve0;\n        _reserve1 = reserve1;\n        _blockTimestampLast = blockTimestampLast;\n    }\n}\n"},"contracts/test/VBEP20Harness.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"./BEP20Harness.sol\";\n\ncontract VBEP20Harness is BEP20Harness {\n    /**\n     * @notice Underlying asset for this VToken\n     */\n    address public underlying;\n\n    constructor(\n        string memory name_,\n        string memory symbol_,\n        uint8 decimals,\n        address underlying_\n    ) BEP20Harness(name_, symbol_, decimals) {\n        underlying = underlying_;\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor (address initialOwner) {\n        _transferOwnership(initialOwner);\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n        _;\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby removing any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n    /**\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n     * address.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy.\n     */\n    function proxiableUUID() external view returns (bytes32);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n    /**\n     * @dev Must return an address that can be used as a delegate call target.\n     *\n     * {BeaconProxy} will check that this address is a contract.\n     */\n    function implementation() external view returns (address);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n    /**\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n     *\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\n     */\n    constructor(address _logic, bytes memory _data) payable {\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.implementation\")) - 1));\n        _upgradeToAndCall(_logic, _data, false);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _implementation() internal view virtual override returns (address impl) {\n        return ERC1967Upgrade._getImplementation();\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeacon.sol\";\nimport \"../../interfaces/draft-IERC1822.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract ERC1967Upgrade {\n    // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n    /**\n     * @dev Storage slot with the address of the current implementation.\n     * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @dev Emitted when the implementation is upgraded.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _getImplementation() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 implementation slot.\n     */\n    function _setImplementation(address newImplementation) private {\n        require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n    }\n\n    /**\n     * @dev Perform implementation upgrade\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeTo(address newImplementation) internal {\n        _setImplementation(newImplementation);\n        emit Upgraded(newImplementation);\n    }\n\n    /**\n     * @dev Perform implementation upgrade with additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCall(\n        address newImplementation,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        _upgradeTo(newImplementation);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(newImplementation, data);\n        }\n    }\n\n    /**\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCallUUPS(\n        address newImplementation,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\n            _setImplementation(newImplementation);\n        } else {\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n                require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n            } catch {\n                revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n            }\n            _upgradeToAndCall(newImplementation, data, forceCall);\n        }\n    }\n\n    /**\n     * @dev Storage slot with the admin of the contract.\n     * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @dev Emitted when the admin account has changed.\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _getAdmin() internal view virtual returns (address) {\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 admin slot.\n     */\n    function _setAdmin(address newAdmin) private {\n        require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     */\n    function _changeAdmin(address newAdmin) internal {\n        emit AdminChanged(_getAdmin(), newAdmin);\n        _setAdmin(newAdmin);\n    }\n\n    /**\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n     */\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n    /**\n     * @dev Emitted when the beacon is upgraded.\n     */\n    event BeaconUpgraded(address indexed beacon);\n\n    /**\n     * @dev Returns the current beacon.\n     */\n    function _getBeacon() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\n     */\n    function _setBeacon(address newBeacon) private {\n        require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \"ERC1967: beacon implementation is not a contract\");\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n    }\n\n    /**\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n     *\n     * Emits a {BeaconUpgraded} event.\n     */\n    function _upgradeBeaconToAndCall(\n        address newBeacon,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        _setBeacon(newBeacon);\n        emit BeaconUpgraded(newBeacon);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n    /**\n     * @dev Delegates the current call to `implementation`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _delegate(address implementation) internal virtual {\n        assembly {\n            // Copy msg.data. We take full control of memory in this inline assembly\n            // block because it will not return to Solidity code. We overwrite the\n            // Solidity scratch pad at memory position 0.\n            calldatacopy(0, 0, calldatasize())\n\n            // Call the implementation.\n            // out and outsize are 0 because we don't know the size yet.\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n            // Copy the returned data.\n            returndatacopy(0, 0, returndatasize())\n\n            switch result\n            // delegatecall returns 0 on error.\n            case 0 {\n                revert(0, returndatasize())\n            }\n            default {\n                return(0, returndatasize())\n            }\n        }\n    }\n\n    /**\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n     * and {_fallback} should delegate.\n     */\n    function _implementation() internal view virtual returns (address);\n\n    /**\n     * @dev Delegates the current call to the address returned by `_implementation()`.\n     *\n     * This function does not return to its internall call site, it will return directly to the external caller.\n     */\n    function _fallback() internal virtual {\n        _beforeFallback();\n        _delegate(_implementation());\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n     * function in the contract matches the call data.\n     */\n    fallback() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n     * is empty.\n     */\n    receive() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n     * call, or as part of the Solidity `fallback` or `receive` functions.\n     *\n     * If overriden should call `super._beforeFallback()`.\n     */\n    function _beforeFallback() internal virtual {}\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./TransparentUpgradeableProxy.sol\";\nimport \"../../access/Ownable.sol\";\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n\n    constructor (address initialOwner) Ownable(initialOwner) {}\n\n    /**\n     * @dev Returns the current implementation of `proxy`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n        // We need to manually run the static call since the getter cannot be flagged as view\n        // bytes4(keccak256(\"implementation()\")) == 0x5c60da1b\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"5c60da1b\");\n        require(success);\n        return abi.decode(returndata, (address));\n    }\n\n    /**\n     * @dev Returns the current admin of `proxy`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n        // We need to manually run the static call since the getter cannot be flagged as view\n        // bytes4(keccak256(\"admin()\")) == 0xf851a440\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"f851a440\");\n        require(success);\n        return abi.decode(returndata, (address));\n    }\n\n    /**\n     * @dev Changes the admin of `proxy` to `newAdmin`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the current admin of `proxy`.\n     */\n    function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\n        proxy.changeAdmin(newAdmin);\n    }\n\n    /**\n     * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\n        proxy.upgradeTo(implementation);\n    }\n\n    /**\n     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n     * {TransparentUpgradeableProxy-upgradeToAndCall}.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function upgradeAndCall(\n        TransparentUpgradeableProxy proxy,\n        address implementation,\n        bytes memory data\n    ) public payable virtual onlyOwner {\n        proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n    /**\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n     */\n    constructor(\n        address _logic,\n        address admin_,\n        bytes memory _data\n    ) payable ERC1967Proxy(_logic, _data) {\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n        _changeAdmin(admin_);\n    }\n\n    /**\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n     */\n    modifier ifAdmin() {\n        if (msg.sender == _getAdmin()) {\n            _;\n        } else {\n            _fallback();\n        }\n    }\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function admin() external ifAdmin returns (address admin_) {\n        admin_ = _getAdmin();\n    }\n\n    /**\n     * @dev Returns the current implementation.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function implementation() external ifAdmin returns (address implementation_) {\n        implementation_ = _implementation();\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\n     */\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\n        _changeAdmin(newAdmin);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n     */\n    function upgradeTo(address newImplementation) external ifAdmin {\n        _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n     * proxied contract.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n     */\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n        _upgradeToAndCall(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _admin() internal view virtual returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n     */\n    function _beforeFallback() internal virtual override {\n        require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n        super._beforeFallback();\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCall(target, data, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        require(isContract(target), \"Address: call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        require(isContract(target), \"Address: static call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(isContract(target), \"Address: delegate call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            // Look for revert reason and bubble it up if present\n            if (returndata.length > 0) {\n                // The easiest way to bubble the revert reason is using memory via assembly\n\n                assembly {\n                    let returndata_size := mload(returndata)\n                    revert(add(32, returndata), returndata_size)\n                }\n            } else {\n                revert(errorMessage);\n            }\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```\n * contract ERC1967 {\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n *     function _getImplementation() internal view returns (address) {\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n *     }\n *\n *     function _setImplementation(address newImplementation) internal {\n *         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\n */\nlibrary StorageSlot {\n    struct AddressSlot {\n        address value;\n    }\n\n    struct BooleanSlot {\n        bool value;\n    }\n\n    struct Bytes32Slot {\n        bytes32 value;\n    }\n\n    struct Uint256Slot {\n        uint256 value;\n    }\n\n    /**\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n     */\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\n    address internal immutable _ADMIN;\n\n    /**\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n     */\n    constructor(\n        address _logic,\n        address admin_,\n        bytes memory _data\n    ) payable ERC1967Proxy(_logic, _data) {\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n        _ADMIN = admin_;\n\n        // still store it to work with EIP-1967\n        bytes32 slot = _ADMIN_SLOT;\n        // solhint-disable-next-line no-inline-assembly\n        assembly {\n            sstore(slot, admin_)\n        }\n        emit AdminChanged(address(0), admin_);\n    }\n\n    /**\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n     */\n    modifier ifAdmin() {\n        if (msg.sender == _getAdmin()) {\n            _;\n        } else {\n            _fallback();\n        }\n    }\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function admin() external ifAdmin returns (address admin_) {\n        admin_ = _getAdmin();\n    }\n\n    /**\n     * @dev Returns the current implementation.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function implementation() external ifAdmin returns (address implementation_) {\n        implementation_ = _implementation();\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n     */\n    function upgradeTo(address newImplementation) external ifAdmin {\n        _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n     * proxied contract.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n     */\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n        _upgradeToAndCall(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _admin() internal view virtual returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n     */\n    function _beforeFallback() internal virtual override {\n        require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n        super._beforeFallback();\n    }\n\n    function _getAdmin() internal view virtual override returns (address) {\n        return _ADMIN;\n    }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200,"details":{"yul":false}},"evmVersion":"cancun","outputSelection":{"*":{"*":["storageLayout","abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"errors":[{"component":"general","errorCode":"2394","formattedMessage":"Warning: Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.\n   --> contracts/ReferenceOracle.sol:100:13:\n    |\n100 |             tstore(slot, price)\n    |             ^^^^^^\n\n","message":"Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.","severity":"warning","sourceLocation":{"end":4123,"file":"contracts/ReferenceOracle.sol","start":4117},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/oracles/mocks/MockBinanceFeedRegistry.sol:26:29:\n   |\n26 |     function decimalsByName(string memory base, string memory quote) external view override returns (uint8) {\n   |                             ^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":751,"file":"contracts/oracles/mocks/MockBinanceFeedRegistry.sol","start":733},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/oracles/mocks/MockBinanceFeedRegistry.sol:26:49:\n   |\n26 |     function decimalsByName(string memory base, string memory quote) external view override returns (uint8) {\n   |                                                 ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":772,"file":"contracts/oracles/mocks/MockBinanceFeedRegistry.sol","start":753},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/test/MockSimpleOracle.sol:36:9:\n   |\n36 |         uint256 reporterPrice,\n   |         ^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":849,"file":"contracts/test/MockSimpleOracle.sol","start":828},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/test/MockSimpleOracle.sol:37:9:\n   |\n37 |         uint256 anchorPrice\n   |         ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":878,"file":"contracts/test/MockSimpleOracle.sol","start":859},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/test/MockSimpleOracle.sol:44:9:\n   |\n44 |         uint256 reporterPrice,\n   |         ^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1063,"file":"contracts/test/MockSimpleOracle.sol","start":1042},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/test/MockSimpleOracle.sol:45:9:\n   |\n45 |         uint256 anchorPrice\n   |         ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1092,"file":"contracts/test/MockSimpleOracle.sol","start":1073},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n  --> contracts/oracles/mocks/MockBinanceFeedRegistry.sol:26:5:\n   |\n26 |     function decimalsByName(string memory base, string memory quote) external view override returns (uint8) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":838,"file":"contracts/oracles/mocks/MockBinanceFeedRegistry.sol","start":709},"type":"Warning"}],"sources":{"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol","exportedSymbols":{"AggregatorInterface":[47]},"id":48,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:0"},{"abstract":false,"baseContracts":[],"canonicalName":"AggregatorInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":47,"linearizedBaseContracts":[47],"name":"AggregatorInterface","nameLocation":"67:19:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"50d25bcd","id":6,"implemented":false,"kind":"function","modifiers":[],"name":"latestAnswer","nameLocation":"100:12:0","nodeType":"FunctionDefinition","parameters":{"id":2,"nodeType":"ParameterList","parameters":[],"src":"112:2:0"},"returnParameters":{"id":5,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6,"src":"138:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3,"name":"int256","nodeType":"ElementaryTypeName","src":"138:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"137:8:0"},"scope":47,"src":"91:55:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"8205bf6a","id":11,"implemented":false,"kind":"function","modifiers":[],"name":"latestTimestamp","nameLocation":"159:15:0","nodeType":"FunctionDefinition","parameters":{"id":7,"nodeType":"ParameterList","parameters":[],"src":"174:2:0"},"returnParameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11,"src":"200:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8,"name":"uint256","nodeType":"ElementaryTypeName","src":"200:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"199:9:0"},"scope":47,"src":"150:59:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"668a0f02","id":16,"implemented":false,"kind":"function","modifiers":[],"name":"latestRound","nameLocation":"222:11:0","nodeType":"FunctionDefinition","parameters":{"id":12,"nodeType":"ParameterList","parameters":[],"src":"233:2:0"},"returnParameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16,"src":"259:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13,"name":"uint256","nodeType":"ElementaryTypeName","src":"259:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"258:9:0"},"scope":47,"src":"213:55:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b5ab58dc","id":23,"implemented":false,"kind":"function","modifiers":[],"name":"getAnswer","nameLocation":"281:9:0","nodeType":"FunctionDefinition","parameters":{"id":19,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18,"mutability":"mutable","name":"roundId","nameLocation":"299:7:0","nodeType":"VariableDeclaration","scope":23,"src":"291:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"290:17:0"},"returnParameters":{"id":22,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23,"src":"331:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":20,"name":"int256","nodeType":"ElementaryTypeName","src":"331:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"330:8:0"},"scope":47,"src":"272:67:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b633620c","id":30,"implemented":false,"kind":"function","modifiers":[],"name":"getTimestamp","nameLocation":"352:12:0","nodeType":"FunctionDefinition","parameters":{"id":26,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25,"mutability":"mutable","name":"roundId","nameLocation":"373:7:0","nodeType":"VariableDeclaration","scope":30,"src":"365:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24,"name":"uint256","nodeType":"ElementaryTypeName","src":"365:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"364:17:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30,"src":"405:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27,"name":"uint256","nodeType":"ElementaryTypeName","src":"405:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"404:9:0"},"scope":47,"src":"343:71:0","stateMutability":"view","virtual":false,"visibility":"external"},{"anonymous":false,"eventSelector":"0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f","id":38,"name":"AnswerUpdated","nameLocation":"424:13:0","nodeType":"EventDefinition","parameters":{"id":37,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32,"indexed":true,"mutability":"mutable","name":"current","nameLocation":"453:7:0","nodeType":"VariableDeclaration","scope":38,"src":"438:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31,"name":"int256","nodeType":"ElementaryTypeName","src":"438:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34,"indexed":true,"mutability":"mutable","name":"roundId","nameLocation":"478:7:0","nodeType":"VariableDeclaration","scope":38,"src":"462:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33,"name":"uint256","nodeType":"ElementaryTypeName","src":"462:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36,"indexed":false,"mutability":"mutable","name":"updatedAt","nameLocation":"495:9:0","nodeType":"VariableDeclaration","scope":38,"src":"487:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"437:68:0"},"src":"418:88:0"},{"anonymous":false,"eventSelector":"0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac60271","id":46,"name":"NewRound","nameLocation":"516:8:0","nodeType":"EventDefinition","parameters":{"id":45,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40,"indexed":true,"mutability":"mutable","name":"roundId","nameLocation":"541:7:0","nodeType":"VariableDeclaration","scope":46,"src":"525:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint256","nodeType":"ElementaryTypeName","src":"525:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42,"indexed":true,"mutability":"mutable","name":"startedBy","nameLocation":"566:9:0","nodeType":"VariableDeclaration","scope":46,"src":"550:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"550:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44,"indexed":false,"mutability":"mutable","name":"startedAt","nameLocation":"585:9:0","nodeType":"VariableDeclaration","scope":46,"src":"577:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"524:71:0"},"src":"510:86:0"}],"scope":48,"src":"57:541:0","usedErrors":[],"usedEvents":[38,46]}],"src":"32:567:0"},"id":0},"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol","exportedSymbols":{"AggregatorInterface":[47],"AggregatorV2V3Interface":[56],"AggregatorV3Interface":[102]},"id":57,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":49,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol","file":"./AggregatorInterface.sol","id":50,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":57,"sourceUnit":48,"src":"57:35:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol","file":"./AggregatorV3Interface.sol","id":51,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":57,"sourceUnit":103,"src":"93:37:1","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":52,"name":"AggregatorInterface","nameLocations":["169:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":47,"src":"169:19:1"},"id":53,"nodeType":"InheritanceSpecifier","src":"169:19:1"},{"baseName":{"id":54,"name":"AggregatorV3Interface","nameLocations":["190:21:1"],"nodeType":"IdentifierPath","referencedDeclaration":102,"src":"190:21:1"},"id":55,"nodeType":"InheritanceSpecifier","src":"190:21:1"}],"canonicalName":"AggregatorV2V3Interface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":56,"linearizedBaseContracts":[56,102,47],"name":"AggregatorV2V3Interface","nameLocation":"142:23:1","nodeType":"ContractDefinition","nodes":[],"scope":57,"src":"132:82:1","usedErrors":[],"usedEvents":[38,46]}],"src":"32:183:1"},"id":1},"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol","exportedSymbols":{"AggregatorV3Interface":[102]},"id":103,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":58,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:2"},{"abstract":false,"baseContracts":[],"canonicalName":"AggregatorV3Interface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":102,"linearizedBaseContracts":[102],"name":"AggregatorV3Interface","nameLocation":"67:21:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"313ce567","id":63,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"102:8:2","nodeType":"FunctionDefinition","parameters":{"id":59,"nodeType":"ParameterList","parameters":[],"src":"110:2:2"},"returnParameters":{"id":62,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":63,"src":"136:5:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":60,"name":"uint8","nodeType":"ElementaryTypeName","src":"136:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"135:7:2"},"scope":102,"src":"93:50:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7284e416","id":68,"implemented":false,"kind":"function","modifiers":[],"name":"description","nameLocation":"156:11:2","nodeType":"FunctionDefinition","parameters":{"id":64,"nodeType":"ParameterList","parameters":[],"src":"167:2:2"},"returnParameters":{"id":67,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68,"src":"193:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":65,"name":"string","nodeType":"ElementaryTypeName","src":"193:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"192:15:2"},"scope":102,"src":"147:61:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"54fd4d50","id":73,"implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"221:7:2","nodeType":"FunctionDefinition","parameters":{"id":69,"nodeType":"ParameterList","parameters":[],"src":"228:2:2"},"returnParameters":{"id":72,"nodeType":"ParameterList","parameters":[{"constant":false,"id":71,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73,"src":"254:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70,"name":"uint256","nodeType":"ElementaryTypeName","src":"254:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"253:9:2"},"scope":102,"src":"212:51:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9a6fc8f5","id":88,"implemented":false,"kind":"function","modifiers":[],"name":"getRoundData","nameLocation":"276:12:2","nodeType":"FunctionDefinition","parameters":{"id":76,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75,"mutability":"mutable","name":"_roundId","nameLocation":"296:8:2","nodeType":"VariableDeclaration","scope":88,"src":"289:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":74,"name":"uint80","nodeType":"ElementaryTypeName","src":"289:6:2","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"288:17:2"},"returnParameters":{"id":87,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78,"mutability":"mutable","name":"roundId","nameLocation":"355:7:2","nodeType":"VariableDeclaration","scope":88,"src":"348:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":77,"name":"uint80","nodeType":"ElementaryTypeName","src":"348:6:2","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"answer","nameLocation":"377:6:2","nodeType":"VariableDeclaration","scope":88,"src":"370:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":79,"name":"int256","nodeType":"ElementaryTypeName","src":"370:6:2","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":82,"mutability":"mutable","name":"startedAt","nameLocation":"399:9:2","nodeType":"VariableDeclaration","scope":88,"src":"391:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81,"name":"uint256","nodeType":"ElementaryTypeName","src":"391:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84,"mutability":"mutable","name":"updatedAt","nameLocation":"424:9:2","nodeType":"VariableDeclaration","scope":88,"src":"416:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83,"name":"uint256","nodeType":"ElementaryTypeName","src":"416:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86,"mutability":"mutable","name":"answeredInRound","nameLocation":"448:15:2","nodeType":"VariableDeclaration","scope":88,"src":"441:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":85,"name":"uint80","nodeType":"ElementaryTypeName","src":"441:6:2","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"340:129:2"},"scope":102,"src":"267:203:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"feaf968c","id":101,"implemented":false,"kind":"function","modifiers":[],"name":"latestRoundData","nameLocation":"483:15:2","nodeType":"FunctionDefinition","parameters":{"id":89,"nodeType":"ParameterList","parameters":[],"src":"498:2:2"},"returnParameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91,"mutability":"mutable","name":"roundId","nameLocation":"550:7:2","nodeType":"VariableDeclaration","scope":101,"src":"543:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":90,"name":"uint80","nodeType":"ElementaryTypeName","src":"543:6:2","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"},{"constant":false,"id":93,"mutability":"mutable","name":"answer","nameLocation":"572:6:2","nodeType":"VariableDeclaration","scope":101,"src":"565:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92,"name":"int256","nodeType":"ElementaryTypeName","src":"565:6:2","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"startedAt","nameLocation":"594:9:2","nodeType":"VariableDeclaration","scope":101,"src":"586:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94,"name":"uint256","nodeType":"ElementaryTypeName","src":"586:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"updatedAt","nameLocation":"619:9:2","nodeType":"VariableDeclaration","scope":101,"src":"611:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96,"name":"uint256","nodeType":"ElementaryTypeName","src":"611:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99,"mutability":"mutable","name":"answeredInRound","nameLocation":"643:15:2","nodeType":"VariableDeclaration","scope":101,"src":"636:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":98,"name":"uint80","nodeType":"ElementaryTypeName","src":"636:6:2","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"535:129:2"},"scope":102,"src":"474:191:2","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":103,"src":"57:610:2","usedErrors":[],"usedEvents":[]}],"src":"32:636:2"},"id":2},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[1020],"Initializable":[511],"Ownable2StepUpgradeable":[209],"OwnableUpgradeable":[342]},"id":210,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":104,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:3"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"./OwnableUpgradeable.sol","id":105,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":210,"sourceUnit":343,"src":"132:34:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":107,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":210,"sourceUnit":512,"src":"167:63:3","symbolAliases":[{"foreign":{"id":106,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"175:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":109,"name":"Initializable","nameLocations":["719:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":511,"src":"719:13:3"},"id":110,"nodeType":"InheritanceSpecifier","src":"719:13:3"},{"baseName":{"id":111,"name":"OwnableUpgradeable","nameLocations":["734:18:3"],"nodeType":"IdentifierPath","referencedDeclaration":342,"src":"734:18:3"},"id":112,"nodeType":"InheritanceSpecifier","src":"734:18:3"}],"canonicalName":"Ownable2StepUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":108,"nodeType":"StructuredDocumentation","src":"232:441:3","text":" @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)."},"fullyImplemented":true,"id":209,"linearizedBaseContracts":[209,342,1020,511],"name":"Ownable2StepUpgradeable","nameLocation":"692:23:3","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":114,"mutability":"mutable","name":"_pendingOwner","nameLocation":"775:13:3","nodeType":"VariableDeclaration","scope":209,"src":"759:29:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":120,"name":"OwnershipTransferStarted","nameLocation":"801:24:3","nodeType":"EventDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":116,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"842:13:3","nodeType":"VariableDeclaration","scope":120,"src":"826:29:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":115,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":118,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"873:8:3","nodeType":"VariableDeclaration","scope":120,"src":"857:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":117,"name":"address","nodeType":"ElementaryTypeName","src":"857:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"825:57:3"},"src":"795:88:3"},{"body":{"id":128,"nodeType":"Block","src":"946:43:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":125,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":248,"src":"956:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"956:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":127,"nodeType":"ExpressionStatement","src":"956:26:3"}]},"id":129,"implemented":true,"kind":"function","modifiers":[{"id":123,"kind":"modifierInvocation","modifierName":{"id":122,"name":"onlyInitializing","nameLocations":["929:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"929:16:3"},"nodeType":"ModifierInvocation","src":"929:16:3"}],"name":"__Ownable2Step_init","nameLocation":"898:19:3","nodeType":"FunctionDefinition","parameters":{"id":121,"nodeType":"ParameterList","parameters":[],"src":"917:2:3"},"returnParameters":{"id":124,"nodeType":"ParameterList","parameters":[],"src":"946:0:3"},"scope":209,"src":"889:100:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":134,"nodeType":"Block","src":"1062:7:3","statements":[]},"id":135,"implemented":true,"kind":"function","modifiers":[{"id":132,"kind":"modifierInvocation","modifierName":{"id":131,"name":"onlyInitializing","nameLocations":["1045:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"1045:16:3"},"nodeType":"ModifierInvocation","src":"1045:16:3"}],"name":"__Ownable2Step_init_unchained","nameLocation":"1004:29:3","nodeType":"FunctionDefinition","parameters":{"id":130,"nodeType":"ParameterList","parameters":[],"src":"1033:2:3"},"returnParameters":{"id":133,"nodeType":"ParameterList","parameters":[],"src":"1062:0:3"},"scope":209,"src":"995:74:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":143,"nodeType":"Block","src":"1206:37:3","statements":[{"expression":{"id":141,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114,"src":"1223:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":140,"id":142,"nodeType":"Return","src":"1216:20:3"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"1074:65:3","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":144,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"1153:12:3","nodeType":"FunctionDefinition","parameters":{"id":137,"nodeType":"ParameterList","parameters":[],"src":"1165:2:3"},"returnParameters":{"id":140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":144,"src":"1197:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"1197:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1196:9:3"},"scope":209,"src":"1144:99:3","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[316],"body":{"id":163,"nodeType":"Block","src":"1515:99:3","statements":[{"expression":{"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":153,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114,"src":"1525:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":154,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"1541:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1525:24:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":156,"nodeType":"ExpressionStatement","src":"1525:24:3"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":158,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":265,"src":"1589:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:7:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":160,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"1598:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":157,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"1564:24:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":162,"nodeType":"EmitStatement","src":"1559:48:3"}]},"documentation":{"id":145,"nodeType":"StructuredDocumentation","src":"1249:182:3","text":" @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":164,"implemented":true,"kind":"function","modifiers":[{"id":151,"kind":"modifierInvocation","modifierName":{"id":150,"name":"onlyOwner","nameLocations":["1505:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":256,"src":"1505:9:3"},"nodeType":"ModifierInvocation","src":"1505:9:3"}],"name":"transferOwnership","nameLocation":"1445:17:3","nodeType":"FunctionDefinition","overrides":{"id":149,"nodeType":"OverrideSpecifier","overrides":[],"src":"1496:8:3"},"parameters":{"id":148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":147,"mutability":"mutable","name":"newOwner","nameLocation":"1471:8:3","nodeType":"VariableDeclaration","scope":164,"src":"1463:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":146,"name":"address","nodeType":"ElementaryTypeName","src":"1463:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1462:18:3"},"returnParameters":{"id":152,"nodeType":"ParameterList","parameters":[],"src":"1515:0:3"},"scope":209,"src":"1436:178:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[336],"body":{"id":180,"nodeType":"Block","src":"1870:81:3","statements":[{"expression":{"id":172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1880:20:3","subExpression":{"id":171,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114,"src":"1887:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173,"nodeType":"ExpressionStatement","src":"1880:20:3"},{"expression":{"arguments":[{"id":177,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":167,"src":"1935:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":174,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1910:5:3","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2StepUpgradeable_$209_$","typeString":"type(contract super Ownable2StepUpgradeable)"}},"id":176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:18:3","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":336,"src":"1910:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1910:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":179,"nodeType":"ExpressionStatement","src":"1910:34:3"}]},"documentation":{"id":165,"nodeType":"StructuredDocumentation","src":"1620:173:3","text":" @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."},"id":181,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1807:18:3","nodeType":"FunctionDefinition","overrides":{"id":169,"nodeType":"OverrideSpecifier","overrides":[],"src":"1861:8:3"},"parameters":{"id":168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":167,"mutability":"mutable","name":"newOwner","nameLocation":"1834:8:3","nodeType":"VariableDeclaration","scope":181,"src":"1826:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":166,"name":"address","nodeType":"ElementaryTypeName","src":"1826:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1825:18:3"},"returnParameters":{"id":170,"nodeType":"ParameterList","parameters":[],"src":"1870:0:3"},"scope":209,"src":"1798:153:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":202,"nodeType":"Block","src":"2073:170:3","statements":[{"assignments":[186],"declarations":[{"constant":false,"id":186,"mutability":"mutable","name":"sender","nameLocation":"2091:6:3","nodeType":"VariableDeclaration","scope":202,"src":"2083:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":185,"name":"address","nodeType":"ElementaryTypeName","src":"2083:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":189,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":187,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"2100:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2100:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2083:29:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":191,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2130:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":193,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"2148:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2130:24:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572","id":195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2156:43:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""},"value":"Ownable2Step: caller is not the new owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""}],"id":190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2122:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":197,"nodeType":"ExpressionStatement","src":"2122:78:3"},{"expression":{"arguments":[{"id":199,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"2229:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":198,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[181],"referencedDeclaration":181,"src":"2210:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":201,"nodeType":"ExpressionStatement","src":"2210:26:3"}]},"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"1957:69:3","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":203,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"2040:15:3","nodeType":"FunctionDefinition","parameters":{"id":183,"nodeType":"ParameterList","parameters":[],"src":"2055:2:3"},"returnParameters":{"id":184,"nodeType":"ParameterList","parameters":[],"src":"2073:0:3"},"scope":209,"src":"2031:212:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":204,"nodeType":"StructuredDocumentation","src":"2249:254:3","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":208,"mutability":"mutable","name":"__gap","nameLocation":"2528:5:3","nodeType":"VariableDeclaration","scope":209,"src":"2508:25:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":205,"name":"uint256","nodeType":"ElementaryTypeName","src":"2508:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":207,"length":{"hexValue":"3439","id":206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2516:2:3","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2508:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":210,"src":"674:1862:3","usedErrors":[],"usedEvents":[120,227,357]}],"src":"107:2430:3"},"id":3},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[1020],"Initializable":[511],"OwnableUpgradeable":[342]},"id":343,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":211,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:4"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":212,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":343,"sourceUnit":1021,"src":"127:41:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":214,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":343,"sourceUnit":512,"src":"169:63:4","symbolAliases":[{"foreign":{"id":213,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"177:13:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":216,"name":"Initializable","nameLocations":["769:13:4"],"nodeType":"IdentifierPath","referencedDeclaration":511,"src":"769:13:4"},"id":217,"nodeType":"InheritanceSpecifier","src":"769:13:4"},{"baseName":{"id":218,"name":"ContextUpgradeable","nameLocations":["784:18:4"],"nodeType":"IdentifierPath","referencedDeclaration":1020,"src":"784:18:4"},"id":219,"nodeType":"InheritanceSpecifier","src":"784:18:4"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":215,"nodeType":"StructuredDocumentation","src":"234:494:4","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":342,"linearizedBaseContracts":[342,1020,511],"name":"OwnableUpgradeable","nameLocation":"747:18:4","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":221,"mutability":"mutable","name":"_owner","nameLocation":"825:6:4","nodeType":"VariableDeclaration","scope":342,"src":"809:22:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":220,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":227,"name":"OwnershipTransferred","nameLocation":"844:20:4","nodeType":"EventDefinition","parameters":{"id":226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":223,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"881:13:4","nodeType":"VariableDeclaration","scope":227,"src":"865:29:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":222,"name":"address","nodeType":"ElementaryTypeName","src":"865:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":225,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"912:8:4","nodeType":"VariableDeclaration","scope":227,"src":"896:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":224,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"864:57:4"},"src":"838:84:4"},{"body":{"id":236,"nodeType":"Block","src":"1076:43:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":233,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":248,"src":"1086:24:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":235,"nodeType":"ExpressionStatement","src":"1086:26:4"}]},"documentation":{"id":228,"nodeType":"StructuredDocumentation","src":"928:91:4","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":237,"implemented":true,"kind":"function","modifiers":[{"id":231,"kind":"modifierInvocation","modifierName":{"id":230,"name":"onlyInitializing","nameLocations":["1059:16:4"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"1059:16:4"},"nodeType":"ModifierInvocation","src":"1059:16:4"}],"name":"__Ownable_init","nameLocation":"1033:14:4","nodeType":"FunctionDefinition","parameters":{"id":229,"nodeType":"ParameterList","parameters":[],"src":"1047:2:4"},"returnParameters":{"id":232,"nodeType":"ParameterList","parameters":[],"src":"1076:0:4"},"scope":342,"src":"1024:95:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":247,"nodeType":"Block","src":"1187:49:4","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":243,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"1216:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1216:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":242,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":336,"src":"1197:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1197:32:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":246,"nodeType":"ExpressionStatement","src":"1197:32:4"}]},"id":248,"implemented":true,"kind":"function","modifiers":[{"id":240,"kind":"modifierInvocation","modifierName":{"id":239,"name":"onlyInitializing","nameLocations":["1170:16:4"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"1170:16:4"},"nodeType":"ModifierInvocation","src":"1170:16:4"}],"name":"__Ownable_init_unchained","nameLocation":"1134:24:4","nodeType":"FunctionDefinition","parameters":{"id":238,"nodeType":"ParameterList","parameters":[],"src":"1158:2:4"},"returnParameters":{"id":241,"nodeType":"ParameterList","parameters":[],"src":"1187:0:4"},"scope":342,"src":"1125:111:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":255,"nodeType":"Block","src":"1345:41:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":251,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":279,"src":"1355:11:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":253,"nodeType":"ExpressionStatement","src":"1355:13:4"},{"id":254,"nodeType":"PlaceholderStatement","src":"1378:1:4"}]},"documentation":{"id":249,"nodeType":"StructuredDocumentation","src":"1242:77:4","text":" @dev Throws if called by any account other than the owner."},"id":256,"name":"onlyOwner","nameLocation":"1333:9:4","nodeType":"ModifierDefinition","parameters":{"id":250,"nodeType":"ParameterList","parameters":[],"src":"1342:2:4"},"src":"1324:62:4","virtual":false,"visibility":"internal"},{"body":{"id":264,"nodeType":"Block","src":"1517:30:4","statements":[{"expression":{"id":262,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"1534:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":261,"id":263,"nodeType":"Return","src":"1527:13:4"}]},"documentation":{"id":257,"nodeType":"StructuredDocumentation","src":"1392:65:4","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":265,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1471:5:4","nodeType":"FunctionDefinition","parameters":{"id":258,"nodeType":"ParameterList","parameters":[],"src":"1476:2:4"},"returnParameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":265,"src":"1508:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":259,"name":"address","nodeType":"ElementaryTypeName","src":"1508:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1507:9:4"},"scope":342,"src":"1462:85:4","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":278,"nodeType":"Block","src":"1665:85:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":270,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":265,"src":"1683:5:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1683:7:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":272,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"1694:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1683:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1708:34:4","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":269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1675:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":277,"nodeType":"ExpressionStatement","src":"1675:68:4"}]},"documentation":{"id":266,"nodeType":"StructuredDocumentation","src":"1553:62:4","text":" @dev Throws if the sender is not the owner."},"id":279,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1629:11:4","nodeType":"FunctionDefinition","parameters":{"id":267,"nodeType":"ParameterList","parameters":[],"src":"1640:2:4"},"returnParameters":{"id":268,"nodeType":"ParameterList","parameters":[],"src":"1665:0:4"},"scope":342,"src":"1620:130:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":292,"nodeType":"Block","src":"2139:47:4","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2176:1:4","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":287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2168:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":286,"name":"address","nodeType":"ElementaryTypeName","src":"2168:7:4","typeDescriptions":{}}},"id":289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":285,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":336,"src":"2149:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2149:30:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":291,"nodeType":"ExpressionStatement","src":"2149:30:4"}]},"documentation":{"id":280,"nodeType":"StructuredDocumentation","src":"1756:324:4","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":293,"implemented":true,"kind":"function","modifiers":[{"id":283,"kind":"modifierInvocation","modifierName":{"id":282,"name":"onlyOwner","nameLocations":["2129:9:4"],"nodeType":"IdentifierPath","referencedDeclaration":256,"src":"2129:9:4"},"nodeType":"ModifierInvocation","src":"2129:9:4"}],"name":"renounceOwnership","nameLocation":"2094:17:4","nodeType":"FunctionDefinition","parameters":{"id":281,"nodeType":"ParameterList","parameters":[],"src":"2111:2:4"},"returnParameters":{"id":284,"nodeType":"ParameterList","parameters":[],"src":"2139:0:4"},"scope":342,"src":"2085:101:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":315,"nodeType":"Block","src":"2405:128:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":302,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"2423:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2443:1:4","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":304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2435:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":303,"name":"address","nodeType":"ElementaryTypeName","src":"2435:7:4","typeDescriptions":{}}},"id":306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2435:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2423:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2447:40:4","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":301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2415:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2415:73:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":310,"nodeType":"ExpressionStatement","src":"2415:73:4"},{"expression":{"arguments":[{"id":312,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"2517:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":311,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":336,"src":"2498:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":314,"nodeType":"ExpressionStatement","src":"2498:28:4"}]},"documentation":{"id":294,"nodeType":"StructuredDocumentation","src":"2192:138:4","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":316,"implemented":true,"kind":"function","modifiers":[{"id":299,"kind":"modifierInvocation","modifierName":{"id":298,"name":"onlyOwner","nameLocations":["2395:9:4"],"nodeType":"IdentifierPath","referencedDeclaration":256,"src":"2395:9:4"},"nodeType":"ModifierInvocation","src":"2395:9:4"}],"name":"transferOwnership","nameLocation":"2344:17:4","nodeType":"FunctionDefinition","parameters":{"id":297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":296,"mutability":"mutable","name":"newOwner","nameLocation":"2370:8:4","nodeType":"VariableDeclaration","scope":316,"src":"2362:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":295,"name":"address","nodeType":"ElementaryTypeName","src":"2362:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2361:18:4"},"returnParameters":{"id":300,"nodeType":"ParameterList","parameters":[],"src":"2405:0:4"},"scope":342,"src":"2335:198:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":335,"nodeType":"Block","src":"2750:124:4","statements":[{"assignments":[323],"declarations":[{"constant":false,"id":323,"mutability":"mutable","name":"oldOwner","nameLocation":"2768:8:4","nodeType":"VariableDeclaration","scope":335,"src":"2760:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":322,"name":"address","nodeType":"ElementaryTypeName","src":"2760:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":325,"initialValue":{"id":324,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"2779:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2760:25:4"},{"expression":{"id":328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":326,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"2795:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":327,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"2804:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2795:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":329,"nodeType":"ExpressionStatement","src":"2795:17:4"},{"eventCall":{"arguments":[{"id":331,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"2848:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":332,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"2858:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":330,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"2827:20:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2827:40:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":334,"nodeType":"EmitStatement","src":"2822:45:4"}]},"documentation":{"id":317,"nodeType":"StructuredDocumentation","src":"2539:143:4","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":336,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2696:18:4","nodeType":"FunctionDefinition","parameters":{"id":320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":319,"mutability":"mutable","name":"newOwner","nameLocation":"2723:8:4","nodeType":"VariableDeclaration","scope":336,"src":"2715:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":318,"name":"address","nodeType":"ElementaryTypeName","src":"2715:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2714:18:4"},"returnParameters":{"id":321,"nodeType":"ParameterList","parameters":[],"src":"2750:0:4"},"scope":342,"src":"2687:187:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":337,"nodeType":"StructuredDocumentation","src":"2880:254:4","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":341,"mutability":"mutable","name":"__gap","nameLocation":"3159:5:4","nodeType":"VariableDeclaration","scope":342,"src":"3139:25:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":338,"name":"uint256","nodeType":"ElementaryTypeName","src":"3139:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":340,"length":{"hexValue":"3439","id":339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:2:4","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3139:11:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":343,"src":"729:2438:4","usedErrors":[],"usedEvents":[227,357]}],"src":"102:3066:4"},"id":4},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[969],"Initializable":[511]},"id":512,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":344,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:5"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":345,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":512,"sourceUnit":970,"src":"138:44:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":346,"nodeType":"StructuredDocumentation","src":"184:2209:5","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":511,"linearizedBaseContracts":[511],"name":"Initializable","nameLocation":"2412:13:5","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"2432:109:5","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":349,"mutability":"mutable","name":"_initialized","nameLocation":"2560:12:5","nodeType":"VariableDeclaration","scope":511,"src":"2546:26:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":348,"name":"uint8","nodeType":"ElementaryTypeName","src":"2546:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":350,"nodeType":"StructuredDocumentation","src":"2579:91:5","text":" @dev Indicates that the contract is in the process of being initialized."},"id":352,"mutability":"mutable","name":"_initializing","nameLocation":"2688:13:5","nodeType":"VariableDeclaration","scope":511,"src":"2675:26:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":351,"name":"bool","nodeType":"ElementaryTypeName","src":"2675:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":353,"nodeType":"StructuredDocumentation","src":"2708:90:5","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":357,"name":"Initialized","nameLocation":"2809:11:5","nodeType":"EventDefinition","parameters":{"id":356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":355,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2827:7:5","nodeType":"VariableDeclaration","scope":357,"src":"2821:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":354,"name":"uint8","nodeType":"ElementaryTypeName","src":"2821:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2820:15:5"},"src":"2803:33:5"},{"body":{"id":412,"nodeType":"Block","src":"3269:483:5","statements":[{"assignments":[361],"declarations":[{"constant":false,"id":361,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3284:14:5","nodeType":"VariableDeclaration","scope":412,"src":"3279:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":360,"name":"bool","nodeType":"ElementaryTypeName","src":"3279:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":364,"initialValue":{"id":363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3301:14:5","subExpression":{"id":362,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"3302:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3279:36:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":366,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"3347:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":367,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"3365:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3380:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3365:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3347:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":371,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3387:45:5","subExpression":{"arguments":[{"arguments":[{"id":376,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3426:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$511","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$511","typeString":"contract Initializable"}],"id":375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3418:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":374,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:5","typeDescriptions":{}}},"id":377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":372,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"3388:18:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$969_$","typeString":"type(library AddressUpgradeable)"}},"id":373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3407:10:5","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":657,"src":"3388:29:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:44:5","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":382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":380,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"3436:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3452:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3436:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3387:66:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":384,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3386:68:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3346:108:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3468:48:5","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":365,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3325:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:201:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":388,"nodeType":"ExpressionStatement","src":"3325:201:5"},{"expression":{"id":391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":389,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"3536:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3536:16:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":392,"nodeType":"ExpressionStatement","src":"3536:16:5"},{"condition":{"id":393,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"3566:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":399,"nodeType":"IfStatement","src":"3562:65:5","trueBody":{"id":398,"nodeType":"Block","src":"3582:45:5","statements":[{"expression":{"id":396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":394,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"3596:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3612:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3596:20:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":397,"nodeType":"ExpressionStatement","src":"3596:20:5"}]}},{"id":400,"nodeType":"PlaceholderStatement","src":"3636:1:5"},{"condition":{"id":401,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"3651:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":411,"nodeType":"IfStatement","src":"3647:99:5","trueBody":{"id":410,"nodeType":"Block","src":"3667:79:5","statements":[{"expression":{"id":404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":402,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"3681:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3697:5:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3681:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":405,"nodeType":"ExpressionStatement","src":"3681:21:5"},{"eventCall":{"arguments":[{"hexValue":"31","id":407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3733:1:5","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":406,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"3721:11:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":409,"nodeType":"EmitStatement","src":"3716:19:5"}]}}]},"documentation":{"id":358,"nodeType":"StructuredDocumentation","src":"2842:399:5","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":413,"name":"initializer","nameLocation":"3255:11:5","nodeType":"ModifierDefinition","parameters":{"id":359,"nodeType":"ParameterList","parameters":[],"src":"3266:2:5"},"src":"3246:506:5","virtual":false,"visibility":"internal"},{"body":{"id":445,"nodeType":"Block","src":"4863:255:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4881:14:5","subExpression":{"id":419,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"4882:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":421,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"4899:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":422,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"4914:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4899:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4881:40:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4923:48:5","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":418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4873:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:99:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":427,"nodeType":"ExpressionStatement","src":"4873:99:5"},{"expression":{"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":428,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"4982:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":429,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"4997:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4982:22:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":431,"nodeType":"ExpressionStatement","src":"4982:22:5"},{"expression":{"id":434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":432,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"5014:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5030:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5014:20:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":435,"nodeType":"ExpressionStatement","src":"5014:20:5"},{"id":436,"nodeType":"PlaceholderStatement","src":"5044:1:5"},{"expression":{"id":439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":437,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"5055:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5071:5:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5055:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":440,"nodeType":"ExpressionStatement","src":"5055:21:5"},{"eventCall":{"arguments":[{"id":442,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"5103:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":441,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"5091:11:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":444,"nodeType":"EmitStatement","src":"5086:25:5"}]},"documentation":{"id":414,"nodeType":"StructuredDocumentation","src":"3758:1062:5","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":446,"name":"reinitializer","nameLocation":"4834:13:5","nodeType":"ModifierDefinition","parameters":{"id":417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":416,"mutability":"mutable","name":"version","nameLocation":"4854:7:5","nodeType":"VariableDeclaration","scope":446,"src":"4848:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":415,"name":"uint8","nodeType":"ElementaryTypeName","src":"4848:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4847:15:5"},"src":"4825:293:5","virtual":false,"visibility":"internal"},{"body":{"id":455,"nodeType":"Block","src":"5356:97:5","statements":[{"expression":{"arguments":[{"id":450,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"5374:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5389:45:5","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":449,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5366:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5366:69:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":453,"nodeType":"ExpressionStatement","src":"5366:69:5"},{"id":454,"nodeType":"PlaceholderStatement","src":"5445:1:5"}]},"documentation":{"id":447,"nodeType":"StructuredDocumentation","src":"5124:199:5","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":456,"name":"onlyInitializing","nameLocation":"5337:16:5","nodeType":"ModifierDefinition","parameters":{"id":448,"nodeType":"ParameterList","parameters":[],"src":"5353:2:5"},"src":"5328:125:5","virtual":false,"visibility":"internal"},{"body":{"id":491,"nodeType":"Block","src":"5988:231:5","statements":[{"expression":{"arguments":[{"id":462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6006:14:5","subExpression":{"id":461,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"6007:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6022:41:5","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":460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5998:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:66:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":465,"nodeType":"ExpressionStatement","src":"5998:66:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":466,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"6078:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6099:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":468,"name":"uint8","nodeType":"ElementaryTypeName","src":"6099:5:5","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":467,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6094:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6094:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6106:3:5","memberName":"max","nodeType":"MemberAccess","src":"6094:15:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6078:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":490,"nodeType":"IfStatement","src":"6074:139:5","trueBody":{"id":489,"nodeType":"Block","src":"6111:102:5","statements":[{"expression":{"id":479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":473,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"6125:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6145:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":475,"name":"uint8","nodeType":"ElementaryTypeName","src":"6145:5:5","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":474,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6140:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6152:3:5","memberName":"max","nodeType":"MemberAccess","src":"6140:15:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6125:30:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":480,"nodeType":"ExpressionStatement","src":"6125:30:5"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":483,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:5","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":482,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6186:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6198:3:5","memberName":"max","nodeType":"MemberAccess","src":"6186:15:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":481,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"6174:11:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":488,"nodeType":"EmitStatement","src":"6169:33:5"}]}}]},"documentation":{"id":457,"nodeType":"StructuredDocumentation","src":"5459:475:5","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":492,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5948:20:5","nodeType":"FunctionDefinition","parameters":{"id":458,"nodeType":"ParameterList","parameters":[],"src":"5968:2:5"},"returnParameters":{"id":459,"nodeType":"ParameterList","parameters":[],"src":"5988:0:5"},"scope":511,"src":"5939:280:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":500,"nodeType":"Block","src":"6393:36:5","statements":[{"expression":{"id":498,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"6410:12:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":497,"id":499,"nodeType":"Return","src":"6403:19:5"}]},"documentation":{"id":493,"nodeType":"StructuredDocumentation","src":"6225:99:5","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":501,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6338:22:5","nodeType":"FunctionDefinition","parameters":{"id":494,"nodeType":"ParameterList","parameters":[],"src":"6360:2:5"},"returnParameters":{"id":497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":501,"src":"6386:5:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":495,"name":"uint8","nodeType":"ElementaryTypeName","src":"6386:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6385:7:5"},"scope":511,"src":"6329:100:5","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":509,"nodeType":"Block","src":"6601:37:5","statements":[{"expression":{"id":507,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"6618:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":506,"id":508,"nodeType":"Return","src":"6611:20:5"}]},"documentation":{"id":502,"nodeType":"StructuredDocumentation","src":"6435:105:5","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":510,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6554:15:5","nodeType":"FunctionDefinition","parameters":{"id":503,"nodeType":"ParameterList","parameters":[],"src":"6569:2:5"},"returnParameters":{"id":506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":510,"src":"6595:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":504,"name":"bool","nodeType":"ElementaryTypeName","src":"6595:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6594:6:5"},"scope":511,"src":"6545:93:5","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":512,"src":"2394:4246:5","usedErrors":[],"usedEvents":[357]}],"src":"113:6528:5"},"id":5},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[1020],"Initializable":[511],"PausableUpgradeable":[639]},"id":640,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":513,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:6"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":514,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":640,"sourceUnit":1021,"src":"130:41:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":516,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":640,"sourceUnit":512,"src":"172:63:6","symbolAliases":[{"foreign":{"id":515,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"180:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":518,"name":"Initializable","nameLocations":["718:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":511,"src":"718:13:6"},"id":519,"nodeType":"InheritanceSpecifier","src":"718:13:6"},{"baseName":{"id":520,"name":"ContextUpgradeable","nameLocations":["733:18:6"],"nodeType":"IdentifierPath","referencedDeclaration":1020,"src":"733:18:6"},"id":521,"nodeType":"InheritanceSpecifier","src":"733:18:6"}],"canonicalName":"PausableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":517,"nodeType":"StructuredDocumentation","src":"237:439:6","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":639,"linearizedBaseContracts":[639,1020,511],"name":"PausableUpgradeable","nameLocation":"695:19:6","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":522,"nodeType":"StructuredDocumentation","src":"758:73:6","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":526,"name":"Paused","nameLocation":"842:6:6","nodeType":"EventDefinition","parameters":{"id":525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":524,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"857:7:6","nodeType":"VariableDeclaration","scope":526,"src":"849:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":523,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"848:17:6"},"src":"836:30:6"},{"anonymous":false,"documentation":{"id":527,"nodeType":"StructuredDocumentation","src":"872:70:6","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":531,"name":"Unpaused","nameLocation":"953:8:6","nodeType":"EventDefinition","parameters":{"id":530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":529,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"970:7:6","nodeType":"VariableDeclaration","scope":531,"src":"962:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":528,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"961:17:6"},"src":"947:32:6"},{"constant":false,"id":533,"mutability":"mutable","name":"_paused","nameLocation":"998:7:6","nodeType":"VariableDeclaration","scope":639,"src":"985:20:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":532,"name":"bool","nodeType":"ElementaryTypeName","src":"985:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":542,"nodeType":"Block","src":"1137:44:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":539,"name":"__Pausable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"1147:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":541,"nodeType":"ExpressionStatement","src":"1147:27:6"}]},"documentation":{"id":534,"nodeType":"StructuredDocumentation","src":"1012:67:6","text":" @dev Initializes the contract in unpaused state."},"id":543,"implemented":true,"kind":"function","modifiers":[{"id":537,"kind":"modifierInvocation","modifierName":{"id":536,"name":"onlyInitializing","nameLocations":["1120:16:6"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"1120:16:6"},"nodeType":"ModifierInvocation","src":"1120:16:6"}],"name":"__Pausable_init","nameLocation":"1093:15:6","nodeType":"FunctionDefinition","parameters":{"id":535,"nodeType":"ParameterList","parameters":[],"src":"1108:2:6"},"returnParameters":{"id":538,"nodeType":"ParameterList","parameters":[],"src":"1137:0:6"},"scope":639,"src":"1084:97:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":552,"nodeType":"Block","src":"1250:32:6","statements":[{"expression":{"id":550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":548,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"1260:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1270:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1260:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":551,"nodeType":"ExpressionStatement","src":"1260:15:6"}]},"id":553,"implemented":true,"kind":"function","modifiers":[{"id":546,"kind":"modifierInvocation","modifierName":{"id":545,"name":"onlyInitializing","nameLocations":["1233:16:6"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"1233:16:6"},"nodeType":"ModifierInvocation","src":"1233:16:6"}],"name":"__Pausable_init_unchained","nameLocation":"1196:25:6","nodeType":"FunctionDefinition","parameters":{"id":544,"nodeType":"ParameterList","parameters":[],"src":"1221:2:6"},"returnParameters":{"id":547,"nodeType":"ParameterList","parameters":[],"src":"1250:0:6"},"scope":639,"src":"1187:95:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":560,"nodeType":"Block","src":"1493:47:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":556,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":590,"src":"1503:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":558,"nodeType":"ExpressionStatement","src":"1503:19:6"},{"id":559,"nodeType":"PlaceholderStatement","src":"1532:1:6"}]},"documentation":{"id":554,"nodeType":"StructuredDocumentation","src":"1288:175:6","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":561,"name":"whenNotPaused","nameLocation":"1477:13:6","nodeType":"ModifierDefinition","parameters":{"id":555,"nodeType":"ParameterList","parameters":[],"src":"1490:2:6"},"src":"1468:72:6","virtual":false,"visibility":"internal"},{"body":{"id":568,"nodeType":"Block","src":"1740:44:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":564,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"1750:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:16:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":566,"nodeType":"ExpressionStatement","src":"1750:16:6"},{"id":567,"nodeType":"PlaceholderStatement","src":"1776:1:6"}]},"documentation":{"id":562,"nodeType":"StructuredDocumentation","src":"1546:167:6","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":569,"name":"whenPaused","nameLocation":"1727:10:6","nodeType":"ModifierDefinition","parameters":{"id":563,"nodeType":"ParameterList","parameters":[],"src":"1737:2:6"},"src":"1718:66:6","virtual":false,"visibility":"internal"},{"body":{"id":577,"nodeType":"Block","src":"1932:31:6","statements":[{"expression":{"id":575,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"1949:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":574,"id":576,"nodeType":"Return","src":"1942:14:6"}]},"documentation":{"id":570,"nodeType":"StructuredDocumentation","src":"1790:84:6","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":578,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1888:6:6","nodeType":"FunctionDefinition","parameters":{"id":571,"nodeType":"ParameterList","parameters":[],"src":"1894:2:6"},"returnParameters":{"id":574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":578,"src":"1926:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":572,"name":"bool","nodeType":"ElementaryTypeName","src":"1926:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1925:6:6"},"scope":639,"src":"1879:84:6","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":589,"nodeType":"Block","src":"2082:55:6","statements":[{"expression":{"arguments":[{"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2100:9:6","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":583,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":578,"src":"2101:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:8:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:18:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":582,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2092:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":588,"nodeType":"ExpressionStatement","src":"2092:38:6"}]},"documentation":{"id":579,"nodeType":"StructuredDocumentation","src":"1969:57:6","text":" @dev Throws if the contract is paused."},"id":590,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"2040:17:6","nodeType":"FunctionDefinition","parameters":{"id":580,"nodeType":"ParameterList","parameters":[],"src":"2057:2:6"},"returnParameters":{"id":581,"nodeType":"ParameterList","parameters":[],"src":"2082:0:6"},"scope":639,"src":"2031:106:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":600,"nodeType":"Block","src":"2257:58:6","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":595,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":578,"src":"2275:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2275:8:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2285:22:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":594,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2267:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2267:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":599,"nodeType":"ExpressionStatement","src":"2267:41:6"}]},"documentation":{"id":591,"nodeType":"StructuredDocumentation","src":"2143:61:6","text":" @dev Throws if the contract is not paused."},"id":601,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"2218:14:6","nodeType":"FunctionDefinition","parameters":{"id":592,"nodeType":"ParameterList","parameters":[],"src":"2232:2:6"},"returnParameters":{"id":593,"nodeType":"ParameterList","parameters":[],"src":"2257:0:6"},"scope":639,"src":"2209:106:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":616,"nodeType":"Block","src":"2499:66:6","statements":[{"expression":{"id":609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":607,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"2509:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2519:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2509:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":610,"nodeType":"ExpressionStatement","src":"2509:14:6"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":612,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"2545:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2545:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":611,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":526,"src":"2538:6:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2538:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":615,"nodeType":"EmitStatement","src":"2533:25:6"}]},"documentation":{"id":602,"nodeType":"StructuredDocumentation","src":"2321:124:6","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":617,"implemented":true,"kind":"function","modifiers":[{"id":605,"kind":"modifierInvocation","modifierName":{"id":604,"name":"whenNotPaused","nameLocations":["2485:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":561,"src":"2485:13:6"},"nodeType":"ModifierInvocation","src":"2485:13:6"}],"name":"_pause","nameLocation":"2459:6:6","nodeType":"FunctionDefinition","parameters":{"id":603,"nodeType":"ParameterList","parameters":[],"src":"2465:2:6"},"returnParameters":{"id":606,"nodeType":"ParameterList","parameters":[],"src":"2499:0:6"},"scope":639,"src":"2450:115:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":632,"nodeType":"Block","src":"2745:69:6","statements":[{"expression":{"id":625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":623,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":533,"src":"2755:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2765:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2755:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":626,"nodeType":"ExpressionStatement","src":"2755:15:6"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":628,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"2794:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2794:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":627,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":531,"src":"2785:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2785:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":631,"nodeType":"EmitStatement","src":"2780:27:6"}]},"documentation":{"id":618,"nodeType":"StructuredDocumentation","src":"2571:121:6","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":633,"implemented":true,"kind":"function","modifiers":[{"id":621,"kind":"modifierInvocation","modifierName":{"id":620,"name":"whenPaused","nameLocations":["2734:10:6"],"nodeType":"IdentifierPath","referencedDeclaration":569,"src":"2734:10:6"},"nodeType":"ModifierInvocation","src":"2734:10:6"}],"name":"_unpause","nameLocation":"2706:8:6","nodeType":"FunctionDefinition","parameters":{"id":619,"nodeType":"ParameterList","parameters":[],"src":"2714:2:6"},"returnParameters":{"id":622,"nodeType":"ParameterList","parameters":[],"src":"2745:0:6"},"scope":639,"src":"2697:117:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":634,"nodeType":"StructuredDocumentation","src":"2820: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":638,"mutability":"mutable","name":"__gap","nameLocation":"3099:5:6","nodeType":"VariableDeclaration","scope":639,"src":"3079:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":635,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":637,"length":{"hexValue":"3439","id":636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3087:2:6","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3079:11:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":640,"src":"677:2430:6","usedErrors":[],"usedEvents":[357,526,531]}],"src":"105:3003:6"},"id":6},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[969]},"id":970,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":641,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:7"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":642,"nodeType":"StructuredDocumentation","src":"126:67:7","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":969,"linearizedBaseContracts":[969],"name":"AddressUpgradeable","nameLocation":"202:18:7","nodeType":"ContractDefinition","nodes":[{"body":{"id":656,"nodeType":"Block","src":"1489:254:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":650,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":645,"src":"1713:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1721:4:7","memberName":"code","nodeType":"MemberAccess","src":"1713:12:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1726:6:7","memberName":"length","nodeType":"MemberAccess","src":"1713:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1713:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":649,"id":655,"nodeType":"Return","src":"1706:30:7"}]},"documentation":{"id":643,"nodeType":"StructuredDocumentation","src":"227:1191:7","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":657,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1432:10:7","nodeType":"FunctionDefinition","parameters":{"id":646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":645,"mutability":"mutable","name":"account","nameLocation":"1451:7:7","nodeType":"VariableDeclaration","scope":657,"src":"1443:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":644,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1442:17:7"},"returnParameters":{"id":649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":648,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":657,"src":"1483:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":647,"name":"bool","nodeType":"ElementaryTypeName","src":"1483:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1482:6:7"},"scope":969,"src":"1423:320:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":690,"nodeType":"Block","src":"2729:241:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":668,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2755:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$969","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$969","typeString":"library AddressUpgradeable"}],"id":667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":666,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:7","typeDescriptions":{}}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2761:7:7","memberName":"balance","nodeType":"MemberAccess","src":"2747:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":671,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":662,"src":"2772:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2747:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2780:31:7","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":665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2739:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:73:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":675,"nodeType":"ExpressionStatement","src":"2739:73:7"},{"assignments":[677,null],"declarations":[{"constant":false,"id":677,"mutability":"mutable","name":"success","nameLocation":"2829:7:7","nodeType":"VariableDeclaration","scope":690,"src":"2824:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":676,"name":"bool","nodeType":"ElementaryTypeName","src":"2824:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":684,"initialValue":{"arguments":[{"hexValue":"","id":682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2872:2:7","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":678,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"2842:9:7","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:7","memberName":"call","nodeType":"MemberAccess","src":"2842:14:7","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":681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":680,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":662,"src":"2864:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2842:29:7","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":683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2842:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2823:52:7"},{"expression":{"arguments":[{"id":686,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":677,"src":"2893:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2902:60:7","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":685,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2885:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:78:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":689,"nodeType":"ExpressionStatement","src":"2885:78:7"}]},"documentation":{"id":658,"nodeType":"StructuredDocumentation","src":"1749:904:7","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":691,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2667:9:7","nodeType":"FunctionDefinition","parameters":{"id":663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":660,"mutability":"mutable","name":"recipient","nameLocation":"2693:9:7","nodeType":"VariableDeclaration","scope":691,"src":"2677:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":659,"name":"address","nodeType":"ElementaryTypeName","src":"2677:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":662,"mutability":"mutable","name":"amount","nameLocation":"2712:6:7","nodeType":"VariableDeclaration","scope":691,"src":"2704:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":661,"name":"uint256","nodeType":"ElementaryTypeName","src":"2704:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:43:7"},"returnParameters":{"id":664,"nodeType":"ParameterList","parameters":[],"src":"2729:0:7"},"scope":969,"src":"2658:312:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":708,"nodeType":"Block","src":"3801:96:7","statements":[{"expression":{"arguments":[{"id":702,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"3840:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":703,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"3848:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3857:32:7","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":701,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[749,793],"referencedDeclaration":793,"src":"3818:21:7","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":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":700,"id":707,"nodeType":"Return","src":"3811:79:7"}]},"documentation":{"id":692,"nodeType":"StructuredDocumentation","src":"2976:731:7","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":709,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3721:12:7","nodeType":"FunctionDefinition","parameters":{"id":697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":694,"mutability":"mutable","name":"target","nameLocation":"3742:6:7","nodeType":"VariableDeclaration","scope":709,"src":"3734:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":693,"name":"address","nodeType":"ElementaryTypeName","src":"3734:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":696,"mutability":"mutable","name":"data","nameLocation":"3763:4:7","nodeType":"VariableDeclaration","scope":709,"src":"3750:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":695,"name":"bytes","nodeType":"ElementaryTypeName","src":"3750:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3733:35:7"},"returnParameters":{"id":700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":709,"src":"3787:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":698,"name":"bytes","nodeType":"ElementaryTypeName","src":"3787:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3786:14:7"},"scope":969,"src":"3712:185:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":728,"nodeType":"Block","src":"4266:76:7","statements":[{"expression":{"arguments":[{"id":722,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"4305:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":723,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"4313:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4319:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":725,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"4322:12:7","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":721,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[749,793],"referencedDeclaration":793,"src":"4283:21:7","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":726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4283:52:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":720,"id":727,"nodeType":"Return","src":"4276:59:7"}]},"documentation":{"id":710,"nodeType":"StructuredDocumentation","src":"3903:211:7","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":729,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4128:12:7","nodeType":"FunctionDefinition","parameters":{"id":717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":712,"mutability":"mutable","name":"target","nameLocation":"4158:6:7","nodeType":"VariableDeclaration","scope":729,"src":"4150:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":711,"name":"address","nodeType":"ElementaryTypeName","src":"4150:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":714,"mutability":"mutable","name":"data","nameLocation":"4187:4:7","nodeType":"VariableDeclaration","scope":729,"src":"4174:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":713,"name":"bytes","nodeType":"ElementaryTypeName","src":"4174:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":716,"mutability":"mutable","name":"errorMessage","nameLocation":"4215:12:7","nodeType":"VariableDeclaration","scope":729,"src":"4201:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":715,"name":"string","nodeType":"ElementaryTypeName","src":"4201:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4140:93:7"},"returnParameters":{"id":720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":729,"src":"4252:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":718,"name":"bytes","nodeType":"ElementaryTypeName","src":"4252:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4251:14:7"},"scope":969,"src":"4119:223:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":748,"nodeType":"Block","src":"4817:111:7","statements":[{"expression":{"arguments":[{"id":742,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"4856:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":743,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"4864:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"4870:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4877:43:7","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":741,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[749,793],"referencedDeclaration":793,"src":"4834:21:7","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":746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4834:87:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":740,"id":747,"nodeType":"Return","src":"4827:94:7"}]},"documentation":{"id":730,"nodeType":"StructuredDocumentation","src":"4348:351:7","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":749,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4713:21:7","nodeType":"FunctionDefinition","parameters":{"id":737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"mutability":"mutable","name":"target","nameLocation":"4743:6:7","nodeType":"VariableDeclaration","scope":749,"src":"4735:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":731,"name":"address","nodeType":"ElementaryTypeName","src":"4735:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":734,"mutability":"mutable","name":"data","nameLocation":"4764:4:7","nodeType":"VariableDeclaration","scope":749,"src":"4751:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":733,"name":"bytes","nodeType":"ElementaryTypeName","src":"4751:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":736,"mutability":"mutable","name":"value","nameLocation":"4778:5:7","nodeType":"VariableDeclaration","scope":749,"src":"4770:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":735,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:50:7"},"returnParameters":{"id":740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":749,"src":"4803:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":738,"name":"bytes","nodeType":"ElementaryTypeName","src":"4803:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4802:14:7"},"scope":969,"src":"4704:224:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":792,"nodeType":"Block","src":"5355:267:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":766,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5381:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$969","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$969","typeString":"library AddressUpgradeable"}],"id":765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5373:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":764,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:7","typeDescriptions":{}}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:7:7","memberName":"balance","nodeType":"MemberAccess","src":"5373:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":769,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"5398:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5373:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5405:40:7","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":763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5365:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:81:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":773,"nodeType":"ExpressionStatement","src":"5365:81:7"},{"assignments":[775,777],"declarations":[{"constant":false,"id":775,"mutability":"mutable","name":"success","nameLocation":"5462:7:7","nodeType":"VariableDeclaration","scope":792,"src":"5457:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":774,"name":"bool","nodeType":"ElementaryTypeName","src":"5457:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":777,"mutability":"mutable","name":"returndata","nameLocation":"5484:10:7","nodeType":"VariableDeclaration","scope":792,"src":"5471:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":776,"name":"bytes","nodeType":"ElementaryTypeName","src":"5471:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":784,"initialValue":{"arguments":[{"id":782,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"5524:4:7","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":778,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":752,"src":"5498:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5505:4:7","memberName":"call","nodeType":"MemberAccess","src":"5498:11:7","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":781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":780,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"5517:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5498:25:7","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":783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5498:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5456:73:7"},{"expression":{"arguments":[{"id":786,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":752,"src":"5573:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":787,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"5581:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":788,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"5590:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":789,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"5602:12:7","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":785,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"5546:26:7","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":790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":762,"id":791,"nodeType":"Return","src":"5539:76:7"}]},"documentation":{"id":750,"nodeType":"StructuredDocumentation","src":"4934:237:7","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":793,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5185:21:7","nodeType":"FunctionDefinition","parameters":{"id":759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":752,"mutability":"mutable","name":"target","nameLocation":"5224:6:7","nodeType":"VariableDeclaration","scope":793,"src":"5216:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":751,"name":"address","nodeType":"ElementaryTypeName","src":"5216:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":754,"mutability":"mutable","name":"data","nameLocation":"5253:4:7","nodeType":"VariableDeclaration","scope":793,"src":"5240:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":753,"name":"bytes","nodeType":"ElementaryTypeName","src":"5240:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":756,"mutability":"mutable","name":"value","nameLocation":"5275:5:7","nodeType":"VariableDeclaration","scope":793,"src":"5267:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":755,"name":"uint256","nodeType":"ElementaryTypeName","src":"5267:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":758,"mutability":"mutable","name":"errorMessage","nameLocation":"5304:12:7","nodeType":"VariableDeclaration","scope":793,"src":"5290:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":757,"name":"string","nodeType":"ElementaryTypeName","src":"5290:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5206:116:7"},"returnParameters":{"id":762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":793,"src":"5341:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":760,"name":"bytes","nodeType":"ElementaryTypeName","src":"5341:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5340:14:7"},"scope":969,"src":"5176:446:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":809,"nodeType":"Block","src":"5899:97:7","statements":[{"expression":{"arguments":[{"id":804,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":796,"src":"5935:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":805,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"5943:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5949:39:7","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":803,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[810,839],"referencedDeclaration":839,"src":"5916:18:7","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":807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5916:73:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":802,"id":808,"nodeType":"Return","src":"5909:80:7"}]},"documentation":{"id":794,"nodeType":"StructuredDocumentation","src":"5628:166:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":810,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5808:18:7","nodeType":"FunctionDefinition","parameters":{"id":799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":796,"mutability":"mutable","name":"target","nameLocation":"5835:6:7","nodeType":"VariableDeclaration","scope":810,"src":"5827:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":795,"name":"address","nodeType":"ElementaryTypeName","src":"5827:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":798,"mutability":"mutable","name":"data","nameLocation":"5856:4:7","nodeType":"VariableDeclaration","scope":810,"src":"5843:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":797,"name":"bytes","nodeType":"ElementaryTypeName","src":"5843:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5826:35:7"},"returnParameters":{"id":802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":810,"src":"5885:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":800,"name":"bytes","nodeType":"ElementaryTypeName","src":"5885:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5884:14:7"},"scope":969,"src":"5799:197:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":838,"nodeType":"Block","src":"6338:168:7","statements":[{"assignments":[823,825],"declarations":[{"constant":false,"id":823,"mutability":"mutable","name":"success","nameLocation":"6354:7:7","nodeType":"VariableDeclaration","scope":838,"src":"6349:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":822,"name":"bool","nodeType":"ElementaryTypeName","src":"6349:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":825,"mutability":"mutable","name":"returndata","nameLocation":"6376:10:7","nodeType":"VariableDeclaration","scope":838,"src":"6363:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":824,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":830,"initialValue":{"arguments":[{"id":828,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"6408:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":826,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":813,"src":"6390:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6397:10:7","memberName":"staticcall","nodeType":"MemberAccess","src":"6390:17:7","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":829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6348:65:7"},{"expression":{"arguments":[{"id":832,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":813,"src":"6457:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":833,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":823,"src":"6465:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":834,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":825,"src":"6474:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":835,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"6486:12:7","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":831,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"6430:26:7","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":836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":821,"id":837,"nodeType":"Return","src":"6423:76:7"}]},"documentation":{"id":811,"nodeType":"StructuredDocumentation","src":"6002:173:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":839,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6189:18:7","nodeType":"FunctionDefinition","parameters":{"id":818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":813,"mutability":"mutable","name":"target","nameLocation":"6225:6:7","nodeType":"VariableDeclaration","scope":839,"src":"6217:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":812,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":815,"mutability":"mutable","name":"data","nameLocation":"6254:4:7","nodeType":"VariableDeclaration","scope":839,"src":"6241:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":814,"name":"bytes","nodeType":"ElementaryTypeName","src":"6241:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":817,"mutability":"mutable","name":"errorMessage","nameLocation":"6282:12:7","nodeType":"VariableDeclaration","scope":839,"src":"6268:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":816,"name":"string","nodeType":"ElementaryTypeName","src":"6268:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6207:93:7"},"returnParameters":{"id":821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":839,"src":"6324:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":819,"name":"bytes","nodeType":"ElementaryTypeName","src":"6324:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6323:14:7"},"scope":969,"src":"6180:326:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":855,"nodeType":"Block","src":"6782:101:7","statements":[{"expression":{"arguments":[{"id":850,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"6820:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":851,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":844,"src":"6828:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6834:41:7","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":849,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[856,885],"referencedDeclaration":885,"src":"6799:20:7","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":853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6799:77:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":848,"id":854,"nodeType":"Return","src":"6792:84:7"}]},"documentation":{"id":840,"nodeType":"StructuredDocumentation","src":"6512:168:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":856,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6694:20:7","nodeType":"FunctionDefinition","parameters":{"id":845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":842,"mutability":"mutable","name":"target","nameLocation":"6723:6:7","nodeType":"VariableDeclaration","scope":856,"src":"6715:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":841,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":844,"mutability":"mutable","name":"data","nameLocation":"6744:4:7","nodeType":"VariableDeclaration","scope":856,"src":"6731:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":843,"name":"bytes","nodeType":"ElementaryTypeName","src":"6731:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6714:35:7"},"returnParameters":{"id":848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":856,"src":"6768:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":846,"name":"bytes","nodeType":"ElementaryTypeName","src":"6768:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6767:14:7"},"scope":969,"src":"6685:198:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":884,"nodeType":"Block","src":"7224:170:7","statements":[{"assignments":[869,871],"declarations":[{"constant":false,"id":869,"mutability":"mutable","name":"success","nameLocation":"7240:7:7","nodeType":"VariableDeclaration","scope":884,"src":"7235:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":868,"name":"bool","nodeType":"ElementaryTypeName","src":"7235:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":871,"mutability":"mutable","name":"returndata","nameLocation":"7262:10:7","nodeType":"VariableDeclaration","scope":884,"src":"7249:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":870,"name":"bytes","nodeType":"ElementaryTypeName","src":"7249:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":876,"initialValue":{"arguments":[{"id":874,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"7296:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":872,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"7276:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7283:12:7","memberName":"delegatecall","nodeType":"MemberAccess","src":"7276:19:7","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":875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7276:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7234:67:7"},{"expression":{"arguments":[{"id":878,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"7345:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":879,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"7353:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":880,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":871,"src":"7362:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":881,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"7374:12:7","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":877,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"7318:26:7","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":882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7318:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":867,"id":883,"nodeType":"Return","src":"7311:76:7"}]},"documentation":{"id":857,"nodeType":"StructuredDocumentation","src":"6889:175:7","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":885,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7078:20:7","nodeType":"FunctionDefinition","parameters":{"id":864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":859,"mutability":"mutable","name":"target","nameLocation":"7116:6:7","nodeType":"VariableDeclaration","scope":885,"src":"7108:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":858,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":861,"mutability":"mutable","name":"data","nameLocation":"7145:4:7","nodeType":"VariableDeclaration","scope":885,"src":"7132:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":860,"name":"bytes","nodeType":"ElementaryTypeName","src":"7132:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":863,"mutability":"mutable","name":"errorMessage","nameLocation":"7173:12:7","nodeType":"VariableDeclaration","scope":885,"src":"7159:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":862,"name":"string","nodeType":"ElementaryTypeName","src":"7159:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7098:93:7"},"returnParameters":{"id":867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":885,"src":"7210:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":865,"name":"bytes","nodeType":"ElementaryTypeName","src":"7210:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7209:14:7"},"scope":969,"src":"7069:325:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":923,"nodeType":"Block","src":"7876:434:7","statements":[{"condition":{"id":899,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":890,"src":"7890:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":921,"nodeType":"Block","src":"8246:58:7","statements":[{"expression":{"arguments":[{"id":917,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":892,"src":"8268:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":918,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"8280:12:7","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":916,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"8260:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8260:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":920,"nodeType":"ExpressionStatement","src":"8260:33:7"}]},"id":922,"nodeType":"IfStatement","src":"7886:418:7","trueBody":{"id":915,"nodeType":"Block","src":"7899:341:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":900,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":892,"src":"7917:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7928:6:7","memberName":"length","nodeType":"MemberAccess","src":"7917:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7938:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7917:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":912,"nodeType":"IfStatement","src":"7913:286:7","trueBody":{"id":911,"nodeType":"Block","src":"7941:258:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":906,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":888,"src":"8143:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":905,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"8132:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8152:31:7","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":904,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8124:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8124:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":910,"nodeType":"ExpressionStatement","src":"8124:60:7"}]}},{"expression":{"id":913,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":892,"src":"8219:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":898,"id":914,"nodeType":"Return","src":"8212:17:7"}]}}]},"documentation":{"id":886,"nodeType":"StructuredDocumentation","src":"7400:277:7","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":924,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7691:26:7","nodeType":"FunctionDefinition","parameters":{"id":895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":888,"mutability":"mutable","name":"target","nameLocation":"7735:6:7","nodeType":"VariableDeclaration","scope":924,"src":"7727:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":887,"name":"address","nodeType":"ElementaryTypeName","src":"7727:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":890,"mutability":"mutable","name":"success","nameLocation":"7756:7:7","nodeType":"VariableDeclaration","scope":924,"src":"7751:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":889,"name":"bool","nodeType":"ElementaryTypeName","src":"7751:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":892,"mutability":"mutable","name":"returndata","nameLocation":"7786:10:7","nodeType":"VariableDeclaration","scope":924,"src":"7773:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":891,"name":"bytes","nodeType":"ElementaryTypeName","src":"7773:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":894,"mutability":"mutable","name":"errorMessage","nameLocation":"7820:12:7","nodeType":"VariableDeclaration","scope":924,"src":"7806:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":893,"name":"string","nodeType":"ElementaryTypeName","src":"7806:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7717:121:7"},"returnParameters":{"id":898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":924,"src":"7862:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":896,"name":"bytes","nodeType":"ElementaryTypeName","src":"7862:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7861:14:7"},"scope":969,"src":"7682:628:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":947,"nodeType":"Block","src":"8691:135:7","statements":[{"condition":{"id":936,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"8705:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":945,"nodeType":"Block","src":"8762:58:7","statements":[{"expression":{"arguments":[{"id":941,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"8784:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":942,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"8796:12:7","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":940,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"8776:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8776:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":944,"nodeType":"ExpressionStatement","src":"8776:33:7"}]},"id":946,"nodeType":"IfStatement","src":"8701:119:7","trueBody":{"id":939,"nodeType":"Block","src":"8714:42:7","statements":[{"expression":{"id":937,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"8735:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":935,"id":938,"nodeType":"Return","src":"8728:17:7"}]}}]},"documentation":{"id":925,"nodeType":"StructuredDocumentation","src":"8316:210:7","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":948,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8540:16:7","nodeType":"FunctionDefinition","parameters":{"id":932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":927,"mutability":"mutable","name":"success","nameLocation":"8571:7:7","nodeType":"VariableDeclaration","scope":948,"src":"8566:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":926,"name":"bool","nodeType":"ElementaryTypeName","src":"8566:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":929,"mutability":"mutable","name":"returndata","nameLocation":"8601:10:7","nodeType":"VariableDeclaration","scope":948,"src":"8588:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":928,"name":"bytes","nodeType":"ElementaryTypeName","src":"8588:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":931,"mutability":"mutable","name":"errorMessage","nameLocation":"8635:12:7","nodeType":"VariableDeclaration","scope":948,"src":"8621:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":930,"name":"string","nodeType":"ElementaryTypeName","src":"8621:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8556:97:7"},"returnParameters":{"id":935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":948,"src":"8677:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":933,"name":"bytes","nodeType":"ElementaryTypeName","src":"8677:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8676:14:7"},"scope":969,"src":"8531:295:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":967,"nodeType":"Block","src":"8915:457:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":955,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"8991:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:6:7","memberName":"length","nodeType":"MemberAccess","src":"8991:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9011:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8991:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":965,"nodeType":"Block","src":"9321:45:7","statements":[{"expression":{"arguments":[{"id":962,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"9342:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":961,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9335:6:7","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9335:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":964,"nodeType":"ExpressionStatement","src":"9335:20:7"}]},"id":966,"nodeType":"IfStatement","src":"8987:379:7","trueBody":{"id":960,"nodeType":"Block","src":"9014:301:7","statements":[{"AST":{"nativeSrc":"9172:133:7","nodeType":"YulBlock","src":"9172:133:7","statements":[{"nativeSrc":"9190:40:7","nodeType":"YulVariableDeclaration","src":"9190:40:7","value":{"arguments":[{"name":"returndata","nativeSrc":"9219:10:7","nodeType":"YulIdentifier","src":"9219:10:7"}],"functionName":{"name":"mload","nativeSrc":"9213:5:7","nodeType":"YulIdentifier","src":"9213:5:7"},"nativeSrc":"9213:17:7","nodeType":"YulFunctionCall","src":"9213:17:7"},"variables":[{"name":"returndata_size","nativeSrc":"9194:15:7","nodeType":"YulTypedName","src":"9194:15:7","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9258:2:7","nodeType":"YulLiteral","src":"9258:2:7","type":"","value":"32"},{"name":"returndata","nativeSrc":"9262:10:7","nodeType":"YulIdentifier","src":"9262:10:7"}],"functionName":{"name":"add","nativeSrc":"9254:3:7","nodeType":"YulIdentifier","src":"9254:3:7"},"nativeSrc":"9254:19:7","nodeType":"YulFunctionCall","src":"9254:19:7"},{"name":"returndata_size","nativeSrc":"9275:15:7","nodeType":"YulIdentifier","src":"9275:15:7"}],"functionName":{"name":"revert","nativeSrc":"9247:6:7","nodeType":"YulIdentifier","src":"9247:6:7"},"nativeSrc":"9247:44:7","nodeType":"YulFunctionCall","src":"9247:44:7"},"nativeSrc":"9247:44:7","nodeType":"YulExpressionStatement","src":"9247:44:7"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":950,"isOffset":false,"isSlot":false,"src":"9219:10:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"9262:10:7","valueSize":1}],"id":959,"nodeType":"InlineAssembly","src":"9163:142:7"}]}}]},"id":968,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8841:7:7","nodeType":"FunctionDefinition","parameters":{"id":953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":950,"mutability":"mutable","name":"returndata","nameLocation":"8862:10:7","nodeType":"VariableDeclaration","scope":968,"src":"8849:23:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":949,"name":"bytes","nodeType":"ElementaryTypeName","src":"8849:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":952,"mutability":"mutable","name":"errorMessage","nameLocation":"8888:12:7","nodeType":"VariableDeclaration","scope":968,"src":"8874:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":951,"name":"string","nodeType":"ElementaryTypeName","src":"8874:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8848:53:7"},"returnParameters":{"id":954,"nodeType":"ParameterList","parameters":[],"src":"8915:0:7"},"scope":969,"src":"8832:540:7","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":970,"src":"194:9180:7","usedErrors":[],"usedEvents":[]}],"src":"101:9274:7"},"id":7},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[1020],"Initializable":[511]},"id":1021,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":971,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:8"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":973,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1021,"sourceUnit":512,"src":"125:63:8","symbolAliases":[{"foreign":{"id":972,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"133:13:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":975,"name":"Initializable","nameLocations":["727:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":511,"src":"727:13:8"},"id":976,"nodeType":"InheritanceSpecifier","src":"727:13:8"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":974,"nodeType":"StructuredDocumentation","src":"190:496:8","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":1020,"linearizedBaseContracts":[1020,511],"name":"ContextUpgradeable","nameLocation":"705:18:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":981,"nodeType":"Block","src":"799:7:8","statements":[]},"id":982,"implemented":true,"kind":"function","modifiers":[{"id":979,"kind":"modifierInvocation","modifierName":{"id":978,"name":"onlyInitializing","nameLocations":["782:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"782:16:8"},"nodeType":"ModifierInvocation","src":"782:16:8"}],"name":"__Context_init","nameLocation":"756:14:8","nodeType":"FunctionDefinition","parameters":{"id":977,"nodeType":"ParameterList","parameters":[],"src":"770:2:8"},"returnParameters":{"id":980,"nodeType":"ParameterList","parameters":[],"src":"799:0:8"},"scope":1020,"src":"747:59:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":987,"nodeType":"Block","src":"874:7:8","statements":[]},"id":988,"implemented":true,"kind":"function","modifiers":[{"id":985,"kind":"modifierInvocation","modifierName":{"id":984,"name":"onlyInitializing","nameLocations":["857:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"857:16:8"},"nodeType":"ModifierInvocation","src":"857:16:8"}],"name":"__Context_init_unchained","nameLocation":"821:24:8","nodeType":"FunctionDefinition","parameters":{"id":983,"nodeType":"ParameterList","parameters":[],"src":"845:2:8"},"returnParameters":{"id":986,"nodeType":"ParameterList","parameters":[],"src":"874:0:8"},"scope":1020,"src":"812:69:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":996,"nodeType":"Block","src":"948:34:8","statements":[{"expression":{"expression":{"id":993,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"965:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"969:6:8","memberName":"sender","nodeType":"MemberAccess","src":"965:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":992,"id":995,"nodeType":"Return","src":"958:17:8"}]},"id":997,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"895:10:8","nodeType":"FunctionDefinition","parameters":{"id":989,"nodeType":"ParameterList","parameters":[],"src":"905:2:8"},"returnParameters":{"id":992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":997,"src":"939:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":990,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"938:9:8"},"scope":1020,"src":"886:96:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1005,"nodeType":"Block","src":"1055:32:8","statements":[{"expression":{"expression":{"id":1002,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1072:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1076:4:8","memberName":"data","nodeType":"MemberAccess","src":"1072:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1001,"id":1004,"nodeType":"Return","src":"1065:15:8"}]},"id":1006,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"997:8:8","nodeType":"FunctionDefinition","parameters":{"id":998,"nodeType":"ParameterList","parameters":[],"src":"1005:2:8"},"returnParameters":{"id":1001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1006,"src":"1039:14:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":999,"name":"bytes","nodeType":"ElementaryTypeName","src":"1039:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1038:16:8"},"scope":1020,"src":"988:99:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1013,"nodeType":"Block","src":"1165:25:8","statements":[{"expression":{"hexValue":"30","id":1011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1182:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1010,"id":1012,"nodeType":"Return","src":"1175:8:8"}]},"id":1014,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"1102:20:8","nodeType":"FunctionDefinition","parameters":{"id":1007,"nodeType":"ParameterList","parameters":[],"src":"1122:2:8"},"returnParameters":{"id":1010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1014,"src":"1156:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1008,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1155:9:8"},"scope":1020,"src":"1093:97:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1015,"nodeType":"StructuredDocumentation","src":"1196: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":1019,"mutability":"mutable","name":"__gap","nameLocation":"1475:5:8","nodeType":"VariableDeclaration","scope":1020,"src":"1455:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1016,"name":"uint256","nodeType":"ElementaryTypeName","src":"1455:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1018,"length":{"hexValue":"3530","id":1017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1463:2:8","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1455:11:8","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":1021,"src":"687:796:8","usedErrors":[],"usedEvents":[357]}],"src":"101:1383:8"},"id":8},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[1093]},"id":1094,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1022,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":1023,"nodeType":"StructuredDocumentation","src":"119:89:9","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":1093,"linearizedBaseContracts":[1093],"name":"IAccessControl","nameLocation":"219:14:9","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1024,"nodeType":"StructuredDocumentation","src":"240:292:9","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":1032,"name":"RoleAdminChanged","nameLocation":"543:16:9","nodeType":"EventDefinition","parameters":{"id":1031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1026,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:9","nodeType":"VariableDeclaration","scope":1032,"src":"560:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1028,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:9","nodeType":"VariableDeclaration","scope":1032,"src":"582:33:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1030,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:9","nodeType":"VariableDeclaration","scope":1032,"src":"617:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:9"},"src":"537:110:9"},{"anonymous":false,"documentation":{"id":1033,"nodeType":"StructuredDocumentation","src":"653:212:9","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":1041,"name":"RoleGranted","nameLocation":"876:11:9","nodeType":"EventDefinition","parameters":{"id":1040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1035,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:9","nodeType":"VariableDeclaration","scope":1041,"src":"888:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1037,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:9","nodeType":"VariableDeclaration","scope":1041,"src":"910:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1036,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1039,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:9","nodeType":"VariableDeclaration","scope":1041,"src":"935:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1038,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:9"},"src":"870:89:9"},{"anonymous":false,"documentation":{"id":1042,"nodeType":"StructuredDocumentation","src":"965:275:9","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":1050,"name":"RoleRevoked","nameLocation":"1251:11:9","nodeType":"EventDefinition","parameters":{"id":1049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1044,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:9","nodeType":"VariableDeclaration","scope":1050,"src":"1263:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1046,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:9","nodeType":"VariableDeclaration","scope":1050,"src":"1285:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1045,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1048,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:9","nodeType":"VariableDeclaration","scope":1050,"src":"1310:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1047,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:9"},"src":"1245:89:9"},{"documentation":{"id":1051,"nodeType":"StructuredDocumentation","src":"1340:76:9","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":1060,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:9","nodeType":"FunctionDefinition","parameters":{"id":1056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1053,"mutability":"mutable","name":"role","nameLocation":"1446:4:9","nodeType":"VariableDeclaration","scope":1060,"src":"1438:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1055,"mutability":"mutable","name":"account","nameLocation":"1460:7:9","nodeType":"VariableDeclaration","scope":1060,"src":"1452:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1054,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:9"},"returnParameters":{"id":1059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1060,"src":"1492:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1057,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:9"},"scope":1093,"src":"1421:77:9","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1061,"nodeType":"StructuredDocumentation","src":"1504:184:9","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":1068,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:9","nodeType":"FunctionDefinition","parameters":{"id":1064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1063,"mutability":"mutable","name":"role","nameLocation":"1723:4:9","nodeType":"VariableDeclaration","scope":1068,"src":"1715:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:9"},"returnParameters":{"id":1067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1068,"src":"1752:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:9"},"scope":1093,"src":"1693:68:9","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1069,"nodeType":"StructuredDocumentation","src":"1767:239:9","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":1076,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:9","nodeType":"FunctionDefinition","parameters":{"id":1074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1071,"mutability":"mutable","name":"role","nameLocation":"2038:4:9","nodeType":"VariableDeclaration","scope":1076,"src":"2030:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1073,"mutability":"mutable","name":"account","nameLocation":"2052:7:9","nodeType":"VariableDeclaration","scope":1076,"src":"2044:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1072,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:9"},"returnParameters":{"id":1075,"nodeType":"ParameterList","parameters":[],"src":"2069:0:9"},"scope":1093,"src":"2011:59:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1077,"nodeType":"StructuredDocumentation","src":"2076:223:9","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":1084,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:9","nodeType":"FunctionDefinition","parameters":{"id":1082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1079,"mutability":"mutable","name":"role","nameLocation":"2332:4:9","nodeType":"VariableDeclaration","scope":1084,"src":"2324:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1081,"mutability":"mutable","name":"account","nameLocation":"2346:7:9","nodeType":"VariableDeclaration","scope":1084,"src":"2338:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1080,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:9"},"returnParameters":{"id":1083,"nodeType":"ParameterList","parameters":[],"src":"2363:0:9"},"scope":1093,"src":"2304:60:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1085,"nodeType":"StructuredDocumentation","src":"2370:480:9","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":1092,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:9","nodeType":"FunctionDefinition","parameters":{"id":1090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1087,"mutability":"mutable","name":"role","nameLocation":"2885:4:9","nodeType":"VariableDeclaration","scope":1092,"src":"2877:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1089,"mutability":"mutable","name":"account","nameLocation":"2899:7:9","nodeType":"VariableDeclaration","scope":1092,"src":"2891:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1088,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:9"},"returnParameters":{"id":1091,"nodeType":"ParameterList","parameters":[],"src":"2916:0:9"},"scope":1093,"src":"2855:62:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1094,"src":"209:2710:9","usedErrors":[],"usedEvents":[1032,1041,1050]}],"src":"94:2826:9"},"id":9},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[1926],"Ownable":[1206]},"id":1207,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1095,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:10"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":1096,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1207,"sourceUnit":1927,"src":"127:30:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1098,"name":"Context","nameLocations":["683:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":1926,"src":"683:7:10"},"id":1099,"nodeType":"InheritanceSpecifier","src":"683:7:10"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1097,"nodeType":"StructuredDocumentation","src":"159:494:10","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":1206,"linearizedBaseContracts":[1206,1926],"name":"Ownable","nameLocation":"672:7:10","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1101,"mutability":"mutable","name":"_owner","nameLocation":"713:6:10","nodeType":"VariableDeclaration","scope":1206,"src":"697:22:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1100,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":1107,"name":"OwnershipTransferred","nameLocation":"732:20:10","nodeType":"EventDefinition","parameters":{"id":1106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1103,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:10","nodeType":"VariableDeclaration","scope":1107,"src":"753:29:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1102,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1105,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:10","nodeType":"VariableDeclaration","scope":1107,"src":"784:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1104,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:10"},"src":"726:84:10"},{"body":{"id":1116,"nodeType":"Block","src":"926:49:10","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1112,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"955:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1111,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"936:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1115,"nodeType":"ExpressionStatement","src":"936:32:10"}]},"documentation":{"id":1108,"nodeType":"StructuredDocumentation","src":"816:91:10","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":1117,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1109,"nodeType":"ParameterList","parameters":[],"src":"923:2:10"},"returnParameters":{"id":1110,"nodeType":"ParameterList","parameters":[],"src":"926:0:10"},"scope":1206,"src":"912:63:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1124,"nodeType":"Block","src":"1084:41:10","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1120,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"1094:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1122,"nodeType":"ExpressionStatement","src":"1094:13:10"},{"id":1123,"nodeType":"PlaceholderStatement","src":"1117:1:10"}]},"documentation":{"id":1118,"nodeType":"StructuredDocumentation","src":"981:77:10","text":" @dev Throws if called by any account other than the owner."},"id":1125,"name":"onlyOwner","nameLocation":"1072:9:10","nodeType":"ModifierDefinition","parameters":{"id":1119,"nodeType":"ParameterList","parameters":[],"src":"1081:2:10"},"src":"1063:62:10","virtual":false,"visibility":"internal"},{"body":{"id":1133,"nodeType":"Block","src":"1256:30:10","statements":[{"expression":{"id":1131,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"1273:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1130,"id":1132,"nodeType":"Return","src":"1266:13:10"}]},"documentation":{"id":1126,"nodeType":"StructuredDocumentation","src":"1131:65:10","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":1134,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:10","nodeType":"FunctionDefinition","parameters":{"id":1127,"nodeType":"ParameterList","parameters":[],"src":"1215:2:10"},"returnParameters":{"id":1130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1134,"src":"1247:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1128,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:10"},"scope":1206,"src":"1201:85:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1147,"nodeType":"Block","src":"1404:85:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1139,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1134,"src":"1422:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:7:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1141,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"1433:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":1144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:10","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":1138,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1146,"nodeType":"ExpressionStatement","src":"1414:68:10"}]},"documentation":{"id":1135,"nodeType":"StructuredDocumentation","src":"1292:62:10","text":" @dev Throws if the sender is not the owner."},"id":1148,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:10","nodeType":"FunctionDefinition","parameters":{"id":1136,"nodeType":"ParameterList","parameters":[],"src":"1379:2:10"},"returnParameters":{"id":1137,"nodeType":"ParameterList","parameters":[],"src":"1404:0:10"},"scope":1206,"src":"1359:130:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1161,"nodeType":"Block","src":"1878:47:10","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1907:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1155,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:10","typeDescriptions":{}}},"id":1158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1154,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"1888:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1160,"nodeType":"ExpressionStatement","src":"1888:30:10"}]},"documentation":{"id":1149,"nodeType":"StructuredDocumentation","src":"1495:324:10","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":1162,"implemented":true,"kind":"function","modifiers":[{"id":1152,"kind":"modifierInvocation","modifierName":{"id":1151,"name":"onlyOwner","nameLocations":["1868:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"1868:9:10"},"nodeType":"ModifierInvocation","src":"1868:9:10"}],"name":"renounceOwnership","nameLocation":"1833:17:10","nodeType":"FunctionDefinition","parameters":{"id":1150,"nodeType":"ParameterList","parameters":[],"src":"1850:2:10"},"returnParameters":{"id":1153,"nodeType":"ParameterList","parameters":[],"src":"1878:0:10"},"scope":1206,"src":"1824:101:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1184,"nodeType":"Block","src":"2144:128:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1171,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"2162:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2182:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2174:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1172,"name":"address","nodeType":"ElementaryTypeName","src":"2174:7:10","typeDescriptions":{}}},"id":1175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2174:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2162:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":1177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2186:40:10","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":1170,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2154:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:73:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1179,"nodeType":"ExpressionStatement","src":"2154:73:10"},{"expression":{"arguments":[{"id":1181,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"2256:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1180,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"2237:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2237:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1183,"nodeType":"ExpressionStatement","src":"2237:28:10"}]},"documentation":{"id":1163,"nodeType":"StructuredDocumentation","src":"1931:138:10","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":1185,"implemented":true,"kind":"function","modifiers":[{"id":1168,"kind":"modifierInvocation","modifierName":{"id":1167,"name":"onlyOwner","nameLocations":["2134:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"2134:9:10"},"nodeType":"ModifierInvocation","src":"2134:9:10"}],"name":"transferOwnership","nameLocation":"2083:17:10","nodeType":"FunctionDefinition","parameters":{"id":1166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1165,"mutability":"mutable","name":"newOwner","nameLocation":"2109:8:10","nodeType":"VariableDeclaration","scope":1185,"src":"2101:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1164,"name":"address","nodeType":"ElementaryTypeName","src":"2101:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2100:18:10"},"returnParameters":{"id":1169,"nodeType":"ParameterList","parameters":[],"src":"2144:0:10"},"scope":1206,"src":"2074:198:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1204,"nodeType":"Block","src":"2489:124:10","statements":[{"assignments":[1192],"declarations":[{"constant":false,"id":1192,"mutability":"mutable","name":"oldOwner","nameLocation":"2507:8:10","nodeType":"VariableDeclaration","scope":1204,"src":"2499:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1191,"name":"address","nodeType":"ElementaryTypeName","src":"2499:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1194,"initialValue":{"id":1193,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"2518:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2499:25:10"},{"expression":{"id":1197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1195,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"2534:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1196,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1188,"src":"2543:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2534:17:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1198,"nodeType":"ExpressionStatement","src":"2534:17:10"},{"eventCall":{"arguments":[{"id":1200,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"2587:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1201,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1188,"src":"2597:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1199,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"2566:20:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2566:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1203,"nodeType":"EmitStatement","src":"2561:45:10"}]},"documentation":{"id":1186,"nodeType":"StructuredDocumentation","src":"2278:143:10","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":1205,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2435:18:10","nodeType":"FunctionDefinition","parameters":{"id":1189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1188,"mutability":"mutable","name":"newOwner","nameLocation":"2462:8:10","nodeType":"VariableDeclaration","scope":1205,"src":"2454:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1187,"name":"address","nodeType":"ElementaryTypeName","src":"2454:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2453:18:10"},"returnParameters":{"id":1190,"nodeType":"ParameterList","parameters":[],"src":"2489:0:10"},"scope":1206,"src":"2426:187:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1207,"src":"654:1961:10","usedErrors":[],"usedEvents":[1107]}],"src":"102:2514:10"},"id":10},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[1926],"ERC20":[1793],"IERC20":[1871],"IERC20Metadata":[1896]},"id":1794,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1208,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:11"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":1209,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1794,"sourceUnit":1872,"src":"130:22:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":1210,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1794,"sourceUnit":1897,"src":"153:41:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":1211,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1794,"sourceUnit":1927,"src":"195:33:11","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1213,"name":"Context","nameLocations":["1550:7:11"],"nodeType":"IdentifierPath","referencedDeclaration":1926,"src":"1550:7:11"},"id":1214,"nodeType":"InheritanceSpecifier","src":"1550:7:11"},{"baseName":{"id":1215,"name":"IERC20","nameLocations":["1559:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1871,"src":"1559:6:11"},"id":1216,"nodeType":"InheritanceSpecifier","src":"1559:6:11"},{"baseName":{"id":1217,"name":"IERC20Metadata","nameLocations":["1567:14:11"],"nodeType":"IdentifierPath","referencedDeclaration":1896,"src":"1567:14:11"},"id":1218,"nodeType":"InheritanceSpecifier","src":"1567:14:11"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":1212,"nodeType":"StructuredDocumentation","src":"230:1301:11","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":1793,"linearizedBaseContracts":[1793,1896,1871,1926],"name":"ERC20","nameLocation":"1541:5:11","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1222,"mutability":"mutable","name":"_balances","nameLocation":"1624:9:11","nodeType":"VariableDeclaration","scope":1793,"src":"1588:45:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1221,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1219,"name":"address","nodeType":"ElementaryTypeName","src":"1596:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1588:27:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1228,"mutability":"mutable","name":"_allowances","nameLocation":"1696:11:11","nodeType":"VariableDeclaration","scope":1793,"src":"1640:67:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":1227,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1223,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1640:47:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1226,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1224,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:27:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1225,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":1230,"mutability":"mutable","name":"_totalSupply","nameLocation":"1730:12:11","nodeType":"VariableDeclaration","scope":1793,"src":"1714:28:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1229,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":1232,"mutability":"mutable","name":"_name","nameLocation":"1764:5:11","nodeType":"VariableDeclaration","scope":1793,"src":"1749:20:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1231,"name":"string","nodeType":"ElementaryTypeName","src":"1749:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":1234,"mutability":"mutable","name":"_symbol","nameLocation":"1790:7:11","nodeType":"VariableDeclaration","scope":1793,"src":"1775:22:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1233,"name":"string","nodeType":"ElementaryTypeName","src":"1775:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":1250,"nodeType":"Block","src":"2036:57:11","statements":[{"expression":{"id":1244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1242,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"2046:5:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1243,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1237,"src":"2054:5:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2046:13:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1245,"nodeType":"ExpressionStatement","src":"2046:13:11"},{"expression":{"id":1248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1246,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"2069:7:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1247,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1239,"src":"2079:7:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2069:17:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1249,"nodeType":"ExpressionStatement","src":"2069:17:11"}]},"documentation":{"id":1235,"nodeType":"StructuredDocumentation","src":"1804:171:11","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"id":1251,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1237,"mutability":"mutable","name":"name_","nameLocation":"2006:5:11","nodeType":"VariableDeclaration","scope":1251,"src":"1992:19:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1236,"name":"string","nodeType":"ElementaryTypeName","src":"1992:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1239,"mutability":"mutable","name":"symbol_","nameLocation":"2027:7:11","nodeType":"VariableDeclaration","scope":1251,"src":"2013:21:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1238,"name":"string","nodeType":"ElementaryTypeName","src":"2013:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1991:44:11"},"returnParameters":{"id":1241,"nodeType":"ParameterList","parameters":[],"src":"2036:0:11"},"scope":1793,"src":"1980:113:11","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1883],"body":{"id":1260,"nodeType":"Block","src":"2227:29:11","statements":[{"expression":{"id":1258,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"2244:5:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1257,"id":1259,"nodeType":"Return","src":"2237:12:11"}]},"documentation":{"id":1252,"nodeType":"StructuredDocumentation","src":"2099:54:11","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":1261,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2167:4:11","nodeType":"FunctionDefinition","overrides":{"id":1254,"nodeType":"OverrideSpecifier","overrides":[],"src":"2194:8:11"},"parameters":{"id":1253,"nodeType":"ParameterList","parameters":[],"src":"2171:2:11"},"returnParameters":{"id":1257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1261,"src":"2212:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1255,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2211:15:11"},"scope":1793,"src":"2158:98:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1889],"body":{"id":1270,"nodeType":"Block","src":"2440:31:11","statements":[{"expression":{"id":1268,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"2457:7:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1267,"id":1269,"nodeType":"Return","src":"2450:14:11"}]},"documentation":{"id":1262,"nodeType":"StructuredDocumentation","src":"2262:102:11","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":1271,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2378:6:11","nodeType":"FunctionDefinition","overrides":{"id":1264,"nodeType":"OverrideSpecifier","overrides":[],"src":"2407:8:11"},"parameters":{"id":1263,"nodeType":"ParameterList","parameters":[],"src":"2384:2:11"},"returnParameters":{"id":1267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1271,"src":"2425:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1265,"name":"string","nodeType":"ElementaryTypeName","src":"2425:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2424:15:11"},"scope":1793,"src":"2369:102:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1895],"body":{"id":1280,"nodeType":"Block","src":"3169:26:11","statements":[{"expression":{"hexValue":"3138","id":1278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3186:2:11","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":1277,"id":1279,"nodeType":"Return","src":"3179:9:11"}]},"documentation":{"id":1272,"nodeType":"StructuredDocumentation","src":"2477:622:11","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":1281,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3113:8:11","nodeType":"FunctionDefinition","overrides":{"id":1274,"nodeType":"OverrideSpecifier","overrides":[],"src":"3144:8:11"},"parameters":{"id":1273,"nodeType":"ParameterList","parameters":[],"src":"3121:2:11"},"returnParameters":{"id":1277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1281,"src":"3162:5:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1275,"name":"uint8","nodeType":"ElementaryTypeName","src":"3162:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3161:7:11"},"scope":1793,"src":"3104:91:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1820],"body":{"id":1290,"nodeType":"Block","src":"3325:36:11","statements":[{"expression":{"id":1288,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"3342:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1287,"id":1289,"nodeType":"Return","src":"3335:19:11"}]},"documentation":{"id":1282,"nodeType":"StructuredDocumentation","src":"3201:49:11","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":1291,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3264:11:11","nodeType":"FunctionDefinition","overrides":{"id":1284,"nodeType":"OverrideSpecifier","overrides":[],"src":"3298:8:11"},"parameters":{"id":1283,"nodeType":"ParameterList","parameters":[],"src":"3275:2:11"},"returnParameters":{"id":1287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1291,"src":"3316:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1285,"name":"uint256","nodeType":"ElementaryTypeName","src":"3316:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3315:9:11"},"scope":1793,"src":"3255:106:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1828],"body":{"id":1304,"nodeType":"Block","src":"3502:42:11","statements":[{"expression":{"baseExpression":{"id":1300,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"3519:9:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1302,"indexExpression":{"id":1301,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"3529:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3519:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1299,"id":1303,"nodeType":"Return","src":"3512:25:11"}]},"documentation":{"id":1292,"nodeType":"StructuredDocumentation","src":"3367:47:11","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":1305,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3428:9:11","nodeType":"FunctionDefinition","overrides":{"id":1296,"nodeType":"OverrideSpecifier","overrides":[],"src":"3475:8:11"},"parameters":{"id":1295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1294,"mutability":"mutable","name":"account","nameLocation":"3446:7:11","nodeType":"VariableDeclaration","scope":1305,"src":"3438:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1293,"name":"address","nodeType":"ElementaryTypeName","src":"3438:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3437:17:11"},"returnParameters":{"id":1299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1298,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1305,"src":"3493:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1297,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3492:9:11"},"scope":1793,"src":"3419:125:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1838],"body":{"id":1329,"nodeType":"Block","src":"3825:104:11","statements":[{"assignments":[1317],"declarations":[{"constant":false,"id":1317,"mutability":"mutable","name":"owner","nameLocation":"3843:5:11","nodeType":"VariableDeclaration","scope":1329,"src":"3835:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1316,"name":"address","nodeType":"ElementaryTypeName","src":"3835:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1320,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1318,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"3851:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3835:28:11"},{"expression":{"arguments":[{"id":1322,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1317,"src":"3883:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1323,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"3890:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1324,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"3894:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1321,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"3873:9:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1326,"nodeType":"ExpressionStatement","src":"3873:28:11"},{"expression":{"hexValue":"74727565","id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3918:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1315,"id":1328,"nodeType":"Return","src":"3911:11:11"}]},"documentation":{"id":1306,"nodeType":"StructuredDocumentation","src":"3550:185:11","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":1330,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3749:8:11","nodeType":"FunctionDefinition","overrides":{"id":1312,"nodeType":"OverrideSpecifier","overrides":[],"src":"3801:8:11"},"parameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1308,"mutability":"mutable","name":"to","nameLocation":"3766:2:11","nodeType":"VariableDeclaration","scope":1330,"src":"3758:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1307,"name":"address","nodeType":"ElementaryTypeName","src":"3758:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1310,"mutability":"mutable","name":"amount","nameLocation":"3778:6:11","nodeType":"VariableDeclaration","scope":1330,"src":"3770:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1309,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3757:28:11"},"returnParameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1330,"src":"3819:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1313,"name":"bool","nodeType":"ElementaryTypeName","src":"3819:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3818:6:11"},"scope":1793,"src":"3740:189:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1848],"body":{"id":1347,"nodeType":"Block","src":"4085:51:11","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1341,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"4102:11:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1343,"indexExpression":{"id":1342,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1333,"src":"4114:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:18:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1345,"indexExpression":{"id":1344,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1335,"src":"4121:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:27:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1340,"id":1346,"nodeType":"Return","src":"4095:34:11"}]},"documentation":{"id":1331,"nodeType":"StructuredDocumentation","src":"3935:47:11","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":1348,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3996:9:11","nodeType":"FunctionDefinition","overrides":{"id":1337,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:11"},"parameters":{"id":1336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1333,"mutability":"mutable","name":"owner","nameLocation":"4014:5:11","nodeType":"VariableDeclaration","scope":1348,"src":"4006:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1332,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1335,"mutability":"mutable","name":"spender","nameLocation":"4029:7:11","nodeType":"VariableDeclaration","scope":1348,"src":"4021:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1334,"name":"address","nodeType":"ElementaryTypeName","src":"4021:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:32:11"},"returnParameters":{"id":1340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1348,"src":"4076:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1338,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:9:11"},"scope":1793,"src":"3987:149:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1858],"body":{"id":1372,"nodeType":"Block","src":"4533:108:11","statements":[{"assignments":[1360],"declarations":[{"constant":false,"id":1360,"mutability":"mutable","name":"owner","nameLocation":"4551:5:11","nodeType":"VariableDeclaration","scope":1372,"src":"4543:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1359,"name":"address","nodeType":"ElementaryTypeName","src":"4543:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1363,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1361,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"4559:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4559:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4543:28:11"},{"expression":{"arguments":[{"id":1365,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1360,"src":"4590:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1366,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"4597:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1367,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"4606:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1364,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"4581:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1369,"nodeType":"ExpressionStatement","src":"4581:32:11"},{"expression":{"hexValue":"74727565","id":1370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4630:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1358,"id":1371,"nodeType":"Return","src":"4623:11:11"}]},"documentation":{"id":1349,"nodeType":"StructuredDocumentation","src":"4142:297:11","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":1373,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4453:7:11","nodeType":"FunctionDefinition","overrides":{"id":1355,"nodeType":"OverrideSpecifier","overrides":[],"src":"4509:8:11"},"parameters":{"id":1354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1351,"mutability":"mutable","name":"spender","nameLocation":"4469:7:11","nodeType":"VariableDeclaration","scope":1373,"src":"4461:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1350,"name":"address","nodeType":"ElementaryTypeName","src":"4461:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1353,"mutability":"mutable","name":"amount","nameLocation":"4486:6:11","nodeType":"VariableDeclaration","scope":1373,"src":"4478:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1352,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:33:11"},"returnParameters":{"id":1358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1373,"src":"4527:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1356,"name":"bool","nodeType":"ElementaryTypeName","src":"4527:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4526:6:11"},"scope":1793,"src":"4444:197:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1870],"body":{"id":1405,"nodeType":"Block","src":"5306:153:11","statements":[{"assignments":[1387],"declarations":[{"constant":false,"id":1387,"mutability":"mutable","name":"spender","nameLocation":"5324:7:11","nodeType":"VariableDeclaration","scope":1405,"src":"5316:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1386,"name":"address","nodeType":"ElementaryTypeName","src":"5316:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1390,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1388,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"5334:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5316:30:11"},{"expression":{"arguments":[{"id":1392,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"5372:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1393,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1387,"src":"5378:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"5387:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1391,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1770,"src":"5356:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:38:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1396,"nodeType":"ExpressionStatement","src":"5356:38:11"},{"expression":{"arguments":[{"id":1398,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"5414:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1399,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1378,"src":"5420:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1400,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"5424:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1397,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"5404:9:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:27:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1402,"nodeType":"ExpressionStatement","src":"5404:27:11"},{"expression":{"hexValue":"74727565","id":1403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5448:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1385,"id":1404,"nodeType":"Return","src":"5441:11:11"}]},"documentation":{"id":1374,"nodeType":"StructuredDocumentation","src":"4647:551:11","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":1406,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5212:12:11","nodeType":"FunctionDefinition","overrides":{"id":1382,"nodeType":"OverrideSpecifier","overrides":[],"src":"5282:8:11"},"parameters":{"id":1381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1376,"mutability":"mutable","name":"from","nameLocation":"5233:4:11","nodeType":"VariableDeclaration","scope":1406,"src":"5225:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1375,"name":"address","nodeType":"ElementaryTypeName","src":"5225:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1378,"mutability":"mutable","name":"to","nameLocation":"5247:2:11","nodeType":"VariableDeclaration","scope":1406,"src":"5239:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1377,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1380,"mutability":"mutable","name":"amount","nameLocation":"5259:6:11","nodeType":"VariableDeclaration","scope":1406,"src":"5251:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1379,"name":"uint256","nodeType":"ElementaryTypeName","src":"5251:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5224:42:11"},"returnParameters":{"id":1385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1406,"src":"5300:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1383,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5299:6:11"},"scope":1793,"src":"5203:256:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1434,"nodeType":"Block","src":"5948:140:11","statements":[{"assignments":[1417],"declarations":[{"constant":false,"id":1417,"mutability":"mutable","name":"owner","nameLocation":"5966:5:11","nodeType":"VariableDeclaration","scope":1434,"src":"5958:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1416,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1420,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1418,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"5974:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5974:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5958:28:11"},{"expression":{"arguments":[{"id":1422,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"6005:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1423,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1409,"src":"6012:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1425,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"6031:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1426,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1409,"src":"6038:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1424,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"6021:9:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1428,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1411,"src":"6049:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6021:38:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1421,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"5996:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5996:64:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1431,"nodeType":"ExpressionStatement","src":"5996:64:11"},{"expression":{"hexValue":"74727565","id":1432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6077:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1415,"id":1433,"nodeType":"Return","src":"6070:11:11"}]},"documentation":{"id":1407,"nodeType":"StructuredDocumentation","src":"5465:384:11","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":1435,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5863:17:11","nodeType":"FunctionDefinition","parameters":{"id":1412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"spender","nameLocation":"5889:7:11","nodeType":"VariableDeclaration","scope":1435,"src":"5881:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1408,"name":"address","nodeType":"ElementaryTypeName","src":"5881:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1411,"mutability":"mutable","name":"addedValue","nameLocation":"5906:10:11","nodeType":"VariableDeclaration","scope":1435,"src":"5898:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1410,"name":"uint256","nodeType":"ElementaryTypeName","src":"5898:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5880:37:11"},"returnParameters":{"id":1415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1435,"src":"5942:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1413,"name":"bool","nodeType":"ElementaryTypeName","src":"5942:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5941:6:11"},"scope":1793,"src":"5854:234:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1475,"nodeType":"Block","src":"6674:328:11","statements":[{"assignments":[1446],"declarations":[{"constant":false,"id":1446,"mutability":"mutable","name":"owner","nameLocation":"6692:5:11","nodeType":"VariableDeclaration","scope":1475,"src":"6684:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1445,"name":"address","nodeType":"ElementaryTypeName","src":"6684:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1449,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1447,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"6700:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6700:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6684:28:11"},{"assignments":[1451],"declarations":[{"constant":false,"id":1451,"mutability":"mutable","name":"currentAllowance","nameLocation":"6730:16:11","nodeType":"VariableDeclaration","scope":1475,"src":"6722:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1450,"name":"uint256","nodeType":"ElementaryTypeName","src":"6722:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1456,"initialValue":{"arguments":[{"id":1453,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"6759:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1454,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"6766:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1452,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"6749:9:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6749:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6722:52:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1458,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"6792:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1459,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"6812:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6792:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":1461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6829:39:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":1457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6784:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6784:85:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1463,"nodeType":"ExpressionStatement","src":"6784:85:11"},{"id":1472,"nodeType":"UncheckedBlock","src":"6879:95:11","statements":[{"expression":{"arguments":[{"id":1465,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"6912:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1466,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"6919:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1467,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"6928:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1468,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"6947:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6928:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1464,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"6903:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6903:60:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1471,"nodeType":"ExpressionStatement","src":"6903:60:11"}]},{"expression":{"hexValue":"74727565","id":1473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6991:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1444,"id":1474,"nodeType":"Return","src":"6984:11:11"}]},"documentation":{"id":1436,"nodeType":"StructuredDocumentation","src":"6094:476:11","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":1476,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6584:17:11","nodeType":"FunctionDefinition","parameters":{"id":1441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1438,"mutability":"mutable","name":"spender","nameLocation":"6610:7:11","nodeType":"VariableDeclaration","scope":1476,"src":"6602:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1437,"name":"address","nodeType":"ElementaryTypeName","src":"6602:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1440,"mutability":"mutable","name":"subtractedValue","nameLocation":"6627:15:11","nodeType":"VariableDeclaration","scope":1476,"src":"6619:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1439,"name":"uint256","nodeType":"ElementaryTypeName","src":"6619:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6601:42:11"},"returnParameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1476,"src":"6668:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1442,"name":"bool","nodeType":"ElementaryTypeName","src":"6668:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6667:6:11"},"scope":1793,"src":"6575:427:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1552,"nodeType":"Block","src":"7534:710:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1487,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"7552:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:11","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":1489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1488,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:11","typeDescriptions":{}}},"id":1491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7552:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":1493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7572:39:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":1486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7544:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:68:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1495,"nodeType":"ExpressionStatement","src":"7544:68:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1497,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"7630:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7644:1:11","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":1499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7636:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1498,"name":"address","nodeType":"ElementaryTypeName","src":"7636:7:11","typeDescriptions":{}}},"id":1501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7636:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7630:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":1503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7648:37:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":1496,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7622:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:64:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1505,"nodeType":"ExpressionStatement","src":"7622:64:11"},{"expression":{"arguments":[{"id":1507,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"7718:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1508,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"7724:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1509,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"7728:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1506,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"7697:20:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:38:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1511,"nodeType":"ExpressionStatement","src":"7697:38:11"},{"assignments":[1513],"declarations":[{"constant":false,"id":1513,"mutability":"mutable","name":"fromBalance","nameLocation":"7754:11:11","nodeType":"VariableDeclaration","scope":1552,"src":"7746:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1512,"name":"uint256","nodeType":"ElementaryTypeName","src":"7746:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1517,"initialValue":{"baseExpression":{"id":1514,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"7768:9:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1516,"indexExpression":{"id":1515,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"7778:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7768:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7746:37:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1519,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1513,"src":"7801:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1520,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"7816:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:21:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":1522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7824:40:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":1518,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7793:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7793:72:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1524,"nodeType":"ExpressionStatement","src":"7793:72:11"},{"id":1539,"nodeType":"UncheckedBlock","src":"7875:273:11","statements":[{"expression":{"id":1531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1525,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"7899:9:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1527,"indexExpression":{"id":1526,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"7909:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7899:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1528,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1513,"src":"7917:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1529,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"7931:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7917:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:38:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1532,"nodeType":"ExpressionStatement","src":"7899:38:11"},{"expression":{"id":1537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1533,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"8114:9:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1535,"indexExpression":{"id":1534,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"8124:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8114:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1536,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"8131:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8114:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1538,"nodeType":"ExpressionStatement","src":"8114:23:11"}]},{"eventCall":{"arguments":[{"id":1541,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"8172:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1542,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"8178:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1543,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"8182:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1540,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1805,"src":"8163:8:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1545,"nodeType":"EmitStatement","src":"8158:31:11"},{"expression":{"arguments":[{"id":1547,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"8220:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1548,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"8226:2:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1549,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"8230:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1546,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"8200:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8200:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1551,"nodeType":"ExpressionStatement","src":"8200:37:11"}]},"documentation":{"id":1477,"nodeType":"StructuredDocumentation","src":"7008:443:11","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":1553,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7465:9:11","nodeType":"FunctionDefinition","parameters":{"id":1484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"mutability":"mutable","name":"from","nameLocation":"7483:4:11","nodeType":"VariableDeclaration","scope":1553,"src":"7475:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1478,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1481,"mutability":"mutable","name":"to","nameLocation":"7497:2:11","nodeType":"VariableDeclaration","scope":1553,"src":"7489:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1480,"name":"address","nodeType":"ElementaryTypeName","src":"7489:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1483,"mutability":"mutable","name":"amount","nameLocation":"7509:6:11","nodeType":"VariableDeclaration","scope":1553,"src":"7501:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1482,"name":"uint256","nodeType":"ElementaryTypeName","src":"7501:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7474:42:11"},"returnParameters":{"id":1485,"nodeType":"ParameterList","parameters":[],"src":"7534:0:11"},"scope":1793,"src":"7456:788:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1609,"nodeType":"Block","src":"8585:470:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1562,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"8603:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8622:1:11","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":1564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8614:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1563,"name":"address","nodeType":"ElementaryTypeName","src":"8614:7:11","typeDescriptions":{}}},"id":1566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8603:21:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":1568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8626:33:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":1561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8595:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8595:65:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1570,"nodeType":"ExpressionStatement","src":"8595:65:11"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8700:1:11","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":1573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8692:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1572,"name":"address","nodeType":"ElementaryTypeName","src":"8692:7:11","typeDescriptions":{}}},"id":1575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8692:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1576,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"8704:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1577,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1558,"src":"8713:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1571,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"8671:20:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:49:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1579,"nodeType":"ExpressionStatement","src":"8671:49:11"},{"expression":{"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1580,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"8731:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1581,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1558,"src":"8747:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1583,"nodeType":"ExpressionStatement","src":"8731:22:11"},{"id":1590,"nodeType":"UncheckedBlock","src":"8763:175:11","statements":[{"expression":{"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1584,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"8899:9:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1586,"indexExpression":{"id":1585,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"8909:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8899:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1587,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1558,"src":"8921:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1589,"nodeType":"ExpressionStatement","src":"8899:28:11"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:11","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":1593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8961:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1592,"name":"address","nodeType":"ElementaryTypeName","src":"8961:7:11","typeDescriptions":{}}},"id":1595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8961:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1596,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"8973:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1597,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1558,"src":"8982:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1591,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1805,"src":"8952:8:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1599,"nodeType":"EmitStatement","src":"8947:42:11"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9028:1:11","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":1602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9020:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1601,"name":"address","nodeType":"ElementaryTypeName","src":"9020:7:11","typeDescriptions":{}}},"id":1604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1605,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"9032:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1606,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1558,"src":"9041:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1600,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9000:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9000:48:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1608,"nodeType":"ExpressionStatement","src":"9000:48:11"}]},"documentation":{"id":1554,"nodeType":"StructuredDocumentation","src":"8250:265:11","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":1610,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8529:5:11","nodeType":"FunctionDefinition","parameters":{"id":1559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"account","nameLocation":"8543:7:11","nodeType":"VariableDeclaration","scope":1610,"src":"8535:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1555,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1558,"mutability":"mutable","name":"amount","nameLocation":"8560:6:11","nodeType":"VariableDeclaration","scope":1610,"src":"8552:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1557,"name":"uint256","nodeType":"ElementaryTypeName","src":"8552:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8534:33:11"},"returnParameters":{"id":1560,"nodeType":"ParameterList","parameters":[],"src":"8585:0:11"},"scope":1793,"src":"8520:535:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1681,"nodeType":"Block","src":"9440:594:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1619,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"9458:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:1:11","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":1621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9469:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1620,"name":"address","nodeType":"ElementaryTypeName","src":"9469:7:11","typeDescriptions":{}}},"id":1623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9469:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9458:21:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":1625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9481:35:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":1618,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9450:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9450:67:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1627,"nodeType":"ExpressionStatement","src":"9450:67:11"},{"expression":{"arguments":[{"id":1629,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"9549:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9566:1:11","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":1631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9558:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1630,"name":"address","nodeType":"ElementaryTypeName","src":"9558:7:11","typeDescriptions":{}}},"id":1633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1634,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9570:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1628,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"9528:20:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9528:49:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1636,"nodeType":"ExpressionStatement","src":"9528:49:11"},{"assignments":[1638],"declarations":[{"constant":false,"id":1638,"mutability":"mutable","name":"accountBalance","nameLocation":"9596:14:11","nodeType":"VariableDeclaration","scope":1681,"src":"9588:22:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1637,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1642,"initialValue":{"baseExpression":{"id":1639,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"9613:9:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1641,"indexExpression":{"id":1640,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"9623:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9613:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9588:43:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1644,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"9649:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1645,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9667:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":1647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9675:36:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":1643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9641:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:71:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1649,"nodeType":"ExpressionStatement","src":"9641:71:11"},{"id":1662,"nodeType":"UncheckedBlock","src":"9722:194:11","statements":[{"expression":{"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1650,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"9746:9:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1652,"indexExpression":{"id":1651,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"9756:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9746:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1653,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"9767:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1654,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9784:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9767:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:44:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1657,"nodeType":"ExpressionStatement","src":"9746:44:11"},{"expression":{"id":1660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1658,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"9883:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1659,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9899:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9883:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1661,"nodeType":"ExpressionStatement","src":"9883:22:11"}]},{"eventCall":{"arguments":[{"id":1664,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"9940:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:11","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":1666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9949:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1665,"name":"address","nodeType":"ElementaryTypeName","src":"9949:7:11","typeDescriptions":{}}},"id":1668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1669,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9961:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1663,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1805,"src":"9931:8:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9931:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1671,"nodeType":"EmitStatement","src":"9926:42:11"},{"expression":{"arguments":[{"id":1673,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"9999:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10016:1:11","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":1675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1674,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:11","typeDescriptions":{}}},"id":1677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1678,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"10020:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1672,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9979:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9979:48:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1680,"nodeType":"ExpressionStatement","src":"9979:48:11"}]},"documentation":{"id":1611,"nodeType":"StructuredDocumentation","src":"9061:309:11","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":1682,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9384:5:11","nodeType":"FunctionDefinition","parameters":{"id":1616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1613,"mutability":"mutable","name":"account","nameLocation":"9398:7:11","nodeType":"VariableDeclaration","scope":1682,"src":"9390:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1612,"name":"address","nodeType":"ElementaryTypeName","src":"9390:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1615,"mutability":"mutable","name":"amount","nameLocation":"9415:6:11","nodeType":"VariableDeclaration","scope":1682,"src":"9407:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1614,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9389:33:11"},"returnParameters":{"id":1617,"nodeType":"ParameterList","parameters":[],"src":"9440:0:11"},"scope":1793,"src":"9375:659:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1726,"nodeType":"Block","src":"10540:257:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1693,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1685,"src":"10558:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10575:1:11","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":1695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10567:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1694,"name":"address","nodeType":"ElementaryTypeName","src":"10567:7:11","typeDescriptions":{}}},"id":1697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10567:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10558:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":1699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10579:38:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":1692,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10550:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:68:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1701,"nodeType":"ExpressionStatement","src":"10550:68:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1703,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1687,"src":"10636:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10655:1:11","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":1705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10647:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1704,"name":"address","nodeType":"ElementaryTypeName","src":"10647:7:11","typeDescriptions":{}}},"id":1707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10636:21:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":1709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:36:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":1702,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10628:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:68:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1711,"nodeType":"ExpressionStatement","src":"10628:68:11"},{"expression":{"id":1718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1712,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"10707:11:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1715,"indexExpression":{"id":1713,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1685,"src":"10719:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10707:18:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1716,"indexExpression":{"id":1714,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1687,"src":"10726:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10707:27:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"10737:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10707:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1719,"nodeType":"ExpressionStatement","src":"10707:36:11"},{"eventCall":{"arguments":[{"id":1721,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1685,"src":"10767:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1722,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1687,"src":"10774:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1723,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"10783:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1720,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"10758:8:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10758:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1725,"nodeType":"EmitStatement","src":"10753:37:11"}]},"documentation":{"id":1683,"nodeType":"StructuredDocumentation","src":"10040:412:11","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":1727,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10466:8:11","nodeType":"FunctionDefinition","parameters":{"id":1690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1685,"mutability":"mutable","name":"owner","nameLocation":"10483:5:11","nodeType":"VariableDeclaration","scope":1727,"src":"10475:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1684,"name":"address","nodeType":"ElementaryTypeName","src":"10475:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1687,"mutability":"mutable","name":"spender","nameLocation":"10498:7:11","nodeType":"VariableDeclaration","scope":1727,"src":"10490:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1686,"name":"address","nodeType":"ElementaryTypeName","src":"10490:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1689,"mutability":"mutable","name":"amount","nameLocation":"10515:6:11","nodeType":"VariableDeclaration","scope":1727,"src":"10507:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"10507:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10474:48:11"},"returnParameters":{"id":1691,"nodeType":"ParameterList","parameters":[],"src":"10540:0:11"},"scope":1793,"src":"10457:340:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1769,"nodeType":"Block","src":"11168:321:11","statements":[{"assignments":[1738],"declarations":[{"constant":false,"id":1738,"mutability":"mutable","name":"currentAllowance","nameLocation":"11186:16:11","nodeType":"VariableDeclaration","scope":1769,"src":"11178:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1737,"name":"uint256","nodeType":"ElementaryTypeName","src":"11178:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1743,"initialValue":{"arguments":[{"id":1740,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"11215:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1741,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1732,"src":"11222:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1739,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"11205:9:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11178:52:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1744,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1738,"src":"11244:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":1747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11269:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1746,"name":"uint256","nodeType":"ElementaryTypeName","src":"11269:7:11","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1745,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11264:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11264:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11278:3:11","memberName":"max","nodeType":"MemberAccess","src":"11264:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11244:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1768,"nodeType":"IfStatement","src":"11240:243:11","trueBody":{"id":1767,"nodeType":"Block","src":"11283:200:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1752,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1738,"src":"11305:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1753,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"11325:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11305:26:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":1755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11333:31:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":1751,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11297:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:68:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1757,"nodeType":"ExpressionStatement","src":"11297:68:11"},{"id":1766,"nodeType":"UncheckedBlock","src":"11379:94:11","statements":[{"expression":{"arguments":[{"id":1759,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"11416:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1760,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1732,"src":"11423:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1761,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1738,"src":"11432:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"11451:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11432:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1758,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"11407:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:51:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1765,"nodeType":"ExpressionStatement","src":"11407:51:11"}]}]}}]},"documentation":{"id":1728,"nodeType":"StructuredDocumentation","src":"10803:270:11","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":1770,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11087:15:11","nodeType":"FunctionDefinition","parameters":{"id":1735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1730,"mutability":"mutable","name":"owner","nameLocation":"11111:5:11","nodeType":"VariableDeclaration","scope":1770,"src":"11103:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1729,"name":"address","nodeType":"ElementaryTypeName","src":"11103:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1732,"mutability":"mutable","name":"spender","nameLocation":"11126:7:11","nodeType":"VariableDeclaration","scope":1770,"src":"11118:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1731,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1734,"mutability":"mutable","name":"amount","nameLocation":"11143:6:11","nodeType":"VariableDeclaration","scope":1770,"src":"11135:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1733,"name":"uint256","nodeType":"ElementaryTypeName","src":"11135:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11102:48:11"},"returnParameters":{"id":1736,"nodeType":"ParameterList","parameters":[],"src":"11168:0:11"},"scope":1793,"src":"11078:411:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1780,"nodeType":"Block","src":"12162:2:11","statements":[]},"documentation":{"id":1771,"nodeType":"StructuredDocumentation","src":"11495:573:11","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":1781,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12082:20:11","nodeType":"FunctionDefinition","parameters":{"id":1778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1773,"mutability":"mutable","name":"from","nameLocation":"12111:4:11","nodeType":"VariableDeclaration","scope":1781,"src":"12103:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1772,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1775,"mutability":"mutable","name":"to","nameLocation":"12125:2:11","nodeType":"VariableDeclaration","scope":1781,"src":"12117:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1774,"name":"address","nodeType":"ElementaryTypeName","src":"12117:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1777,"mutability":"mutable","name":"amount","nameLocation":"12137:6:11","nodeType":"VariableDeclaration","scope":1781,"src":"12129:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1776,"name":"uint256","nodeType":"ElementaryTypeName","src":"12129:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12102:42:11"},"returnParameters":{"id":1779,"nodeType":"ParameterList","parameters":[],"src":"12162:0:11"},"scope":1793,"src":"12073:91:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1791,"nodeType":"Block","src":"12840:2:11","statements":[]},"documentation":{"id":1782,"nodeType":"StructuredDocumentation","src":"12170:577:11","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":1792,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12761:19:11","nodeType":"FunctionDefinition","parameters":{"id":1789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"from","nameLocation":"12789:4:11","nodeType":"VariableDeclaration","scope":1792,"src":"12781:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1783,"name":"address","nodeType":"ElementaryTypeName","src":"12781:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1786,"mutability":"mutable","name":"to","nameLocation":"12803:2:11","nodeType":"VariableDeclaration","scope":1792,"src":"12795:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1785,"name":"address","nodeType":"ElementaryTypeName","src":"12795:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1788,"mutability":"mutable","name":"amount","nameLocation":"12815:6:11","nodeType":"VariableDeclaration","scope":1792,"src":"12807:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1787,"name":"uint256","nodeType":"ElementaryTypeName","src":"12807:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12780:42:11"},"returnParameters":{"id":1790,"nodeType":"ParameterList","parameters":[],"src":"12840:0:11"},"scope":1793,"src":"12752:90:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1794,"src":"1532:11312:11","usedErrors":[],"usedEvents":[1805,1814]}],"src":"105:12740:11"},"id":11},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[1871]},"id":1872,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1795,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":1796,"nodeType":"StructuredDocumentation","src":"131:70:12","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":1871,"linearizedBaseContracts":[1871],"name":"IERC20","nameLocation":"212:6:12","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1797,"nodeType":"StructuredDocumentation","src":"225:158:12","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":1805,"name":"Transfer","nameLocation":"394:8:12","nodeType":"EventDefinition","parameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1799,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:12","nodeType":"VariableDeclaration","scope":1805,"src":"403:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1798,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1801,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:12","nodeType":"VariableDeclaration","scope":1805,"src":"425:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1800,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1803,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:12","nodeType":"VariableDeclaration","scope":1805,"src":"445:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1802,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:12"},"src":"388:72:12"},{"anonymous":false,"documentation":{"id":1806,"nodeType":"StructuredDocumentation","src":"466:148:12","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":1814,"name":"Approval","nameLocation":"625:8:12","nodeType":"EventDefinition","parameters":{"id":1813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1808,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:12","nodeType":"VariableDeclaration","scope":1814,"src":"634:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1807,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1810,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:12","nodeType":"VariableDeclaration","scope":1814,"src":"657:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1809,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1812,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:12","nodeType":"VariableDeclaration","scope":1814,"src":"682:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1811,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:12"},"src":"619:78:12"},{"documentation":{"id":1815,"nodeType":"StructuredDocumentation","src":"703:66:12","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":1820,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:12","nodeType":"FunctionDefinition","parameters":{"id":1816,"nodeType":"ParameterList","parameters":[],"src":"794:2:12"},"returnParameters":{"id":1819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1820,"src":"820:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1817,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:12"},"scope":1871,"src":"774:55:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1821,"nodeType":"StructuredDocumentation","src":"835:72:12","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":1828,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:12","nodeType":"FunctionDefinition","parameters":{"id":1824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1823,"mutability":"mutable","name":"account","nameLocation":"939:7:12","nodeType":"VariableDeclaration","scope":1828,"src":"931:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1822,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:12"},"returnParameters":{"id":1827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1828,"src":"971:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1825,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:12"},"scope":1871,"src":"912:68:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1829,"nodeType":"StructuredDocumentation","src":"986:202:12","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":1838,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:12","nodeType":"FunctionDefinition","parameters":{"id":1834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1831,"mutability":"mutable","name":"to","nameLocation":"1219:2:12","nodeType":"VariableDeclaration","scope":1838,"src":"1211:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1830,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1833,"mutability":"mutable","name":"amount","nameLocation":"1231:6:12","nodeType":"VariableDeclaration","scope":1838,"src":"1223:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1832,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:12"},"returnParameters":{"id":1837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1838,"src":"1257:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1835,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:12"},"scope":1871,"src":"1193:70:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1839,"nodeType":"StructuredDocumentation","src":"1269:264:12","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":1848,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:12","nodeType":"FunctionDefinition","parameters":{"id":1844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1841,"mutability":"mutable","name":"owner","nameLocation":"1565:5:12","nodeType":"VariableDeclaration","scope":1848,"src":"1557:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1840,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1843,"mutability":"mutable","name":"spender","nameLocation":"1580:7:12","nodeType":"VariableDeclaration","scope":1848,"src":"1572:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1842,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:12"},"returnParameters":{"id":1847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1848,"src":"1612:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1845,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:12"},"scope":1871,"src":"1538:83:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1849,"nodeType":"StructuredDocumentation","src":"1627:642:12","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":1858,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:12","nodeType":"FunctionDefinition","parameters":{"id":1854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1851,"mutability":"mutable","name":"spender","nameLocation":"2299:7:12","nodeType":"VariableDeclaration","scope":1858,"src":"2291:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1850,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1853,"mutability":"mutable","name":"amount","nameLocation":"2316:6:12","nodeType":"VariableDeclaration","scope":1858,"src":"2308:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1852,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:12"},"returnParameters":{"id":1857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1858,"src":"2342:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1855,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:12"},"scope":1871,"src":"2274:74:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1859,"nodeType":"StructuredDocumentation","src":"2354:287:12","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":1870,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:12","nodeType":"FunctionDefinition","parameters":{"id":1866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1861,"mutability":"mutable","name":"from","nameLocation":"2676:4:12","nodeType":"VariableDeclaration","scope":1870,"src":"2668:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1860,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1863,"mutability":"mutable","name":"to","nameLocation":"2690:2:12","nodeType":"VariableDeclaration","scope":1870,"src":"2682:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1862,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1865,"mutability":"mutable","name":"amount","nameLocation":"2702:6:12","nodeType":"VariableDeclaration","scope":1870,"src":"2694:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1864,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:12"},"returnParameters":{"id":1869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1870,"src":"2728:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1867,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:12"},"scope":1871,"src":"2646:88:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1872,"src":"202:2534:12","usedErrors":[],"usedEvents":[1805,1814]}],"src":"106:2631:12"},"id":12},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[1871],"IERC20Metadata":[1896]},"id":1897,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1873,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:13"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":1874,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1897,"sourceUnit":1872,"src":"135:23:13","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1876,"name":"IERC20","nameLocations":["305:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":1871,"src":"305:6:13"},"id":1877,"nodeType":"InheritanceSpecifier","src":"305:6:13"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":1875,"nodeType":"StructuredDocumentation","src":"160:116:13","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":1896,"linearizedBaseContracts":[1896,1871],"name":"IERC20Metadata","nameLocation":"287:14:13","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1878,"nodeType":"StructuredDocumentation","src":"318:54:13","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":1883,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:13","nodeType":"FunctionDefinition","parameters":{"id":1879,"nodeType":"ParameterList","parameters":[],"src":"390:2:13"},"returnParameters":{"id":1882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1883,"src":"416:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1880,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:13"},"scope":1896,"src":"377:54:13","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1884,"nodeType":"StructuredDocumentation","src":"437:56:13","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":1889,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:13","nodeType":"FunctionDefinition","parameters":{"id":1885,"nodeType":"ParameterList","parameters":[],"src":"513:2:13"},"returnParameters":{"id":1888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1889,"src":"539:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1886,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:13"},"scope":1896,"src":"498:56:13","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1890,"nodeType":"StructuredDocumentation","src":"560:65:13","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":1895,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:13","nodeType":"FunctionDefinition","parameters":{"id":1891,"nodeType":"ParameterList","parameters":[],"src":"647:2:13"},"returnParameters":{"id":1894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1893,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1895,"src":"673:5:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1892,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:13"},"scope":1896,"src":"630:50:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1897,"src":"277:405:13","usedErrors":[],"usedEvents":[1805,1814]}],"src":"110:573:13"},"id":13},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[1926]},"id":1927,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1898,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:14"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1899,"nodeType":"StructuredDocumentation","src":"126:496:14","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":1926,"linearizedBaseContracts":[1926],"name":"Context","nameLocation":"641:7:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":1907,"nodeType":"Block","src":"717:34:14","statements":[{"expression":{"expression":{"id":1904,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"734:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"738:6:14","memberName":"sender","nodeType":"MemberAccess","src":"734:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1903,"id":1906,"nodeType":"Return","src":"727:17:14"}]},"id":1908,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"664:10:14","nodeType":"FunctionDefinition","parameters":{"id":1900,"nodeType":"ParameterList","parameters":[],"src":"674:2:14"},"returnParameters":{"id":1903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1902,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1908,"src":"708:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1901,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"707:9:14"},"scope":1926,"src":"655:96:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1916,"nodeType":"Block","src":"824:32:14","statements":[{"expression":{"expression":{"id":1913,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"841:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:4:14","memberName":"data","nodeType":"MemberAccess","src":"841:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1912,"id":1915,"nodeType":"Return","src":"834:15:14"}]},"id":1917,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"766:8:14","nodeType":"FunctionDefinition","parameters":{"id":1909,"nodeType":"ParameterList","parameters":[],"src":"774:2:14"},"returnParameters":{"id":1912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1917,"src":"808:14:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1910,"name":"bytes","nodeType":"ElementaryTypeName","src":"808:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"807:16:14"},"scope":1926,"src":"757:99:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1924,"nodeType":"Block","src":"934:25:14","statements":[{"expression":{"hexValue":"30","id":1922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1921,"id":1923,"nodeType":"Return","src":"944:8:14"}]},"id":1925,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"871:20:14","nodeType":"FunctionDefinition","parameters":{"id":1918,"nodeType":"ParameterList","parameters":[],"src":"891:2:14"},"returnParameters":{"id":1921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1925,"src":"925:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1919,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"924:9:14"},"scope":1926,"src":"862:97:14","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1927,"src":"623:338:14","usedErrors":[],"usedEvents":[]}],"src":"101:861:14"},"id":14},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"ast":{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","exportedSymbols":{"AccessControlledV8":[2080],"AddressUpgradeable":[969],"ContextUpgradeable":[1020],"IAccessControl":[1093],"IAccessControlManagerV8":[2125],"Initializable":[511],"Ownable2StepUpgradeable":[209],"OwnableUpgradeable":[342]},"id":2081,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":1928,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:15"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":1929,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2081,"sourceUnit":512,"src":"66:75:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":1930,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2081,"sourceUnit":210,"src":"142:80:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","file":"./IAccessControlManagerV8.sol","id":1931,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2081,"sourceUnit":2126,"src":"224:39:15","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1933,"name":"Initializable","nameLocations":["626:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":511,"src":"626:13:15"},"id":1934,"nodeType":"InheritanceSpecifier","src":"626:13:15"},{"baseName":{"id":1935,"name":"Ownable2StepUpgradeable","nameLocations":["641:23:15"],"nodeType":"IdentifierPath","referencedDeclaration":209,"src":"641:23:15"},"id":1936,"nodeType":"InheritanceSpecifier","src":"641:23:15"}],"canonicalName":"AccessControlledV8","contractDependencies":[],"contractKind":"contract","documentation":{"id":1932,"nodeType":"StructuredDocumentation","src":"265:320:15","text":" @title AccessControlledV8\n @author Venus\n @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\n to integrate access controlled mechanism. It provides initialise methods and verifying access methods."},"fullyImplemented":true,"id":2080,"linearizedBaseContracts":[2080,209,342,1020,511],"name":"AccessControlledV8","nameLocation":"604:18:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":1937,"nodeType":"StructuredDocumentation","src":"671:43:15","text":"@notice Access control manager contract"},"id":1940,"mutability":"mutable","name":"_accessControlManager","nameLocation":"752:21:15","nodeType":"VariableDeclaration","scope":2080,"src":"719:54:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":1939,"nodeType":"UserDefinedTypeName","pathNode":{"id":1938,"name":"IAccessControlManagerV8","nameLocations":["719:23:15"],"nodeType":"IdentifierPath","referencedDeclaration":2125,"src":"719:23:15"},"referencedDeclaration":2125,"src":"719:23:15","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"},{"constant":false,"documentation":{"id":1941,"nodeType":"StructuredDocumentation","src":"780:254:15","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":1945,"mutability":"mutable","name":"__gap","nameLocation":"1059:5:15","nodeType":"VariableDeclaration","scope":2080,"src":"1039:25:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":1942,"name":"uint256","nodeType":"ElementaryTypeName","src":"1039:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1944,"length":{"hexValue":"3439","id":1943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1047:2:15","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1039:11:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":1946,"nodeType":"StructuredDocumentation","src":"1071:75:15","text":"@notice Emitted when access control manager contract address is changed"},"eventSelector":"66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0","id":1952,"name":"NewAccessControlManager","nameLocation":"1157:23:15","nodeType":"EventDefinition","parameters":{"id":1951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1948,"indexed":false,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"1189:23:15","nodeType":"VariableDeclaration","scope":1952,"src":"1181:31:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1947,"name":"address","nodeType":"ElementaryTypeName","src":"1181:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1950,"indexed":false,"mutability":"mutable","name":"newAccessControlManager","nameLocation":"1222:23:15","nodeType":"VariableDeclaration","scope":1952,"src":"1214:31:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1949,"name":"address","nodeType":"ElementaryTypeName","src":"1214:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1180:66:15"},"src":"1151:96:15"},{"documentation":{"id":1953,"nodeType":"StructuredDocumentation","src":"1253:72:15","text":"@notice Thrown when the action is prohibited by AccessControlManager"},"errorSelector":"4a3fa293","id":1961,"name":"Unauthorized","nameLocation":"1336:12:15","nodeType":"ErrorDefinition","parameters":{"id":1960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1955,"mutability":"mutable","name":"sender","nameLocation":"1357:6:15","nodeType":"VariableDeclaration","scope":1961,"src":"1349:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1954,"name":"address","nodeType":"ElementaryTypeName","src":"1349:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1957,"mutability":"mutable","name":"calledContract","nameLocation":"1373:14:15","nodeType":"VariableDeclaration","scope":1961,"src":"1365:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1956,"name":"address","nodeType":"ElementaryTypeName","src":"1365:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1959,"mutability":"mutable","name":"methodSignature","nameLocation":"1396:15:15","nodeType":"VariableDeclaration","scope":1961,"src":"1389:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1958,"name":"string","nodeType":"ElementaryTypeName","src":"1389:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1348:64:15"},"src":"1330:83:15"},{"body":{"id":1975,"nodeType":"Block","src":"1509:104:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1968,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"1519:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1970,"nodeType":"ExpressionStatement","src":"1519:21:15"},{"expression":{"arguments":[{"id":1972,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1963,"src":"1584:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1971,"name":"__AccessControlled_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1988,"src":"1550:33:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1550:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1974,"nodeType":"ExpressionStatement","src":"1550:56:15"}]},"id":1976,"implemented":true,"kind":"function","modifiers":[{"id":1966,"kind":"modifierInvocation","modifierName":{"id":1965,"name":"onlyInitializing","nameLocations":["1492:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"1492:16:15"},"nodeType":"ModifierInvocation","src":"1492:16:15"}],"name":"__AccessControlled_init","nameLocation":"1428:23:15","nodeType":"FunctionDefinition","parameters":{"id":1964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1963,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1460:21:15","nodeType":"VariableDeclaration","scope":1976,"src":"1452:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1962,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1451:31:15"},"returnParameters":{"id":1967,"nodeType":"ParameterList","parameters":[],"src":"1509:0:15"},"scope":2080,"src":"1419:194:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1987,"nodeType":"Block","src":"1719:64:15","statements":[{"expression":{"arguments":[{"id":1984,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1978,"src":"1754:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1983,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"1729:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1729:47:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1986,"nodeType":"ExpressionStatement","src":"1729:47:15"}]},"id":1988,"implemented":true,"kind":"function","modifiers":[{"id":1981,"kind":"modifierInvocation","modifierName":{"id":1980,"name":"onlyInitializing","nameLocations":["1702:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":456,"src":"1702:16:15"},"nodeType":"ModifierInvocation","src":"1702:16:15"}],"name":"__AccessControlled_init_unchained","nameLocation":"1628:33:15","nodeType":"FunctionDefinition","parameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1670:21:15","nodeType":"VariableDeclaration","scope":1988,"src":"1662:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1977,"name":"address","nodeType":"ElementaryTypeName","src":"1662:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1661:31:15"},"returnParameters":{"id":1982,"nodeType":"ParameterList","parameters":[],"src":"1719:0:15"},"scope":2080,"src":"1619:164:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2000,"nodeType":"Block","src":"2185:64:15","statements":[{"expression":{"arguments":[{"id":1997,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"2220:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1996,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"2195:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2195:47:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1999,"nodeType":"ExpressionStatement","src":"2195:47:15"}]},"documentation":{"id":1989,"nodeType":"StructuredDocumentation","src":"1789:308:15","text":" @notice Sets the address of AccessControlManager\n @dev Admin function to set address of AccessControlManager\n @param accessControlManager_ The new address of the AccessControlManager\n @custom:event Emits NewAccessControlManager event\n @custom:access Only Governance"},"functionSelector":"0e32cb86","id":2001,"implemented":true,"kind":"function","modifiers":[{"id":1994,"kind":"modifierInvocation","modifierName":{"id":1993,"name":"onlyOwner","nameLocations":["2175:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":256,"src":"2175:9:15"},"nodeType":"ModifierInvocation","src":"2175:9:15"}],"name":"setAccessControlManager","nameLocation":"2111:23:15","nodeType":"FunctionDefinition","parameters":{"id":1992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1991,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2143:21:15","nodeType":"VariableDeclaration","scope":2001,"src":"2135:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1990,"name":"address","nodeType":"ElementaryTypeName","src":"2135:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2134:31:15"},"returnParameters":{"id":1995,"nodeType":"ParameterList","parameters":[],"src":"2185:0:15"},"scope":2080,"src":"2102:147:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2010,"nodeType":"Block","src":"2425:45:15","statements":[{"expression":{"id":2008,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1940,"src":"2442:21:15","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"functionReturnParameters":2007,"id":2009,"nodeType":"Return","src":"2435:28:15"}]},"documentation":{"id":2002,"nodeType":"StructuredDocumentation","src":"2255:85:15","text":" @notice Returns the address of the access control manager contract"},"functionSelector":"b4a0bdf3","id":2011,"implemented":true,"kind":"function","modifiers":[],"name":"accessControlManager","nameLocation":"2354:20:15","nodeType":"FunctionDefinition","parameters":{"id":2003,"nodeType":"ParameterList","parameters":[],"src":"2374:2:15"},"returnParameters":{"id":2007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2011,"src":"2400:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":2005,"nodeType":"UserDefinedTypeName","pathNode":{"id":2004,"name":"IAccessControlManagerV8","nameLocations":["2400:23:15"],"nodeType":"IdentifierPath","referencedDeclaration":2125,"src":"2400:23:15"},"referencedDeclaration":2125,"src":"2400:23:15","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"}],"src":"2399:25:15"},"scope":2080,"src":"2345:125:15","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2048,"nodeType":"Block","src":"2715:351:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2020,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"2741:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2733:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2018,"name":"address","nodeType":"ElementaryTypeName","src":"2733:7:15","typeDescriptions":{}}},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2733:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2775:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2767:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2022,"name":"address","nodeType":"ElementaryTypeName","src":"2767:7:15","typeDescriptions":{}}},"id":2025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2767:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2733:44:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e616765722061646472657373","id":2027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2779:39:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","typeString":"literal_string \"invalid acess control manager address\""},"value":"invalid acess control manager address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","typeString":"literal_string \"invalid acess control manager address\""}],"id":2017,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2725:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2725:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2029,"nodeType":"ExpressionStatement","src":"2725:94:15"},{"assignments":[2031],"declarations":[{"constant":false,"id":2031,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"2837:23:15","nodeType":"VariableDeclaration","scope":2048,"src":"2829:31:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"2829:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2036,"initialValue":{"arguments":[{"id":2034,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1940,"src":"2871:21:15","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}],"id":2033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2863:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2032,"name":"address","nodeType":"ElementaryTypeName","src":"2863:7:15","typeDescriptions":{}}},"id":2035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2863:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2829:64:15"},{"expression":{"id":2041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2037,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1940,"src":"2903:21:15","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2039,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"2951:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2038,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2125,"src":"2927:23:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$2125_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":2040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2927:46:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"src":"2903:70:15","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"id":2042,"nodeType":"ExpressionStatement","src":"2903:70:15"},{"eventCall":{"arguments":[{"id":2044,"name":"oldAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"3012:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2045,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"3037:21:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2043,"name":"NewAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1952,"src":"2988:23:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2988:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2047,"nodeType":"EmitStatement","src":"2983:76:15"}]},"documentation":{"id":2012,"nodeType":"StructuredDocumentation","src":"2476:160:15","text":" @dev Internal function to set address of AccessControlManager\n @param accessControlManager_ The new address of the AccessControlManager"},"id":2049,"implemented":true,"kind":"function","modifiers":[],"name":"_setAccessControlManager","nameLocation":"2650:24:15","nodeType":"FunctionDefinition","parameters":{"id":2015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2014,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2683:21:15","nodeType":"VariableDeclaration","scope":2049,"src":"2675:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2013,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2674:31:15"},"returnParameters":{"id":2016,"nodeType":"ParameterList","parameters":[],"src":"2715:0:15"},"scope":2080,"src":"2641:425:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2078,"nodeType":"Block","src":"3271:214:15","statements":[{"assignments":[2056],"declarations":[{"constant":false,"id":2056,"mutability":"mutable","name":"isAllowedToCall","nameLocation":"3286:15:15","nodeType":"VariableDeclaration","scope":2078,"src":"3281:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2055,"name":"bool","nodeType":"ElementaryTypeName","src":"3281:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2063,"initialValue":{"arguments":[{"expression":{"id":2059,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3342:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3346:6:15","memberName":"sender","nodeType":"MemberAccess","src":"3342:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2061,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2052,"src":"3354:9:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2057,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1940,"src":"3304:21:15","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"id":2058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3326:15:15","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":2113,"src":"3304:37:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (address,string memory) view external returns (bool)"}},"id":2062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3304:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3281:83:15"},{"condition":{"id":2065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3379:16:15","subExpression":{"id":2064,"name":"isAllowedToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"3380:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2077,"nodeType":"IfStatement","src":"3375:104:15","trueBody":{"id":2076,"nodeType":"Block","src":"3397:82:15","statements":[{"errorCall":{"arguments":[{"expression":{"id":2067,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3431:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3435:6:15","memberName":"sender","nodeType":"MemberAccess","src":"3431:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2071,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3451:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_AccessControlledV8_$2080","typeString":"contract AccessControlledV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AccessControlledV8_$2080","typeString":"contract AccessControlledV8"}],"id":2070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3443:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2069,"name":"address","nodeType":"ElementaryTypeName","src":"3443:7:15","typeDescriptions":{}}},"id":2072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3443:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2073,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2052,"src":"3458:9:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2066,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1961,"src":"3418:12:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory) pure"}},"id":2074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2075,"nodeType":"RevertStatement","src":"3411:57:15"}]}}]},"documentation":{"id":2050,"nodeType":"StructuredDocumentation","src":"3072:126:15","text":" @notice Reverts if the call is not allowed by AccessControlManager\n @param signature Method signature"},"id":2079,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAccessAllowed","nameLocation":"3212:19:15","nodeType":"FunctionDefinition","parameters":{"id":2053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2052,"mutability":"mutable","name":"signature","nameLocation":"3246:9:15","nodeType":"VariableDeclaration","scope":2079,"src":"3232:23:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2051,"name":"string","nodeType":"ElementaryTypeName","src":"3232:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3231:25:15"},"returnParameters":{"id":2054,"nodeType":"ParameterList","parameters":[],"src":"3271:0:15"},"scope":2080,"src":"3203:282:15","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2081,"src":"586:2901:15","usedErrors":[1961],"usedEvents":[120,227,357,1952]}],"src":"41:3447:15"},"id":15},"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol":{"ast":{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","exportedSymbols":{"IAccessControl":[1093],"IAccessControlManagerV8":[2125]},"id":2126,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":2082,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:16"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":2083,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2126,"sourceUnit":1094,"src":"67:59:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2085,"name":"IAccessControl","nameLocations":["299:14:16"],"nodeType":"IdentifierPath","referencedDeclaration":1093,"src":"299:14:16"},"id":2086,"nodeType":"InheritanceSpecifier","src":"299:14:16"}],"canonicalName":"IAccessControlManagerV8","contractDependencies":[],"contractKind":"interface","documentation":{"id":2084,"nodeType":"StructuredDocumentation","src":"128:133:16","text":" @title IAccessControlManagerV8\n @author Venus\n @notice Interface implemented by the `AccessControlManagerV8` contract."},"fullyImplemented":false,"id":2125,"linearizedBaseContracts":[2125,1093],"name":"IAccessControlManagerV8","nameLocation":"272:23:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"584f6b60","id":2095,"implemented":false,"kind":"function","modifiers":[],"name":"giveCallPermission","nameLocation":"329:18:16","nodeType":"FunctionDefinition","parameters":{"id":2093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2088,"mutability":"mutable","name":"contractAddress","nameLocation":"356:15:16","nodeType":"VariableDeclaration","scope":2095,"src":"348:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2087,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2090,"mutability":"mutable","name":"functionSig","nameLocation":"389:11:16","nodeType":"VariableDeclaration","scope":2095,"src":"373:27:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2089,"name":"string","nodeType":"ElementaryTypeName","src":"373:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2092,"mutability":"mutable","name":"accountToPermit","nameLocation":"410:15:16","nodeType":"VariableDeclaration","scope":2095,"src":"402:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2091,"name":"address","nodeType":"ElementaryTypeName","src":"402:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:79:16"},"returnParameters":{"id":2094,"nodeType":"ParameterList","parameters":[],"src":"435:0:16"},"scope":2125,"src":"320:116:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"545f7a32","id":2104,"implemented":false,"kind":"function","modifiers":[],"name":"revokeCallPermission","nameLocation":"451:20:16","nodeType":"FunctionDefinition","parameters":{"id":2102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2097,"mutability":"mutable","name":"contractAddress","nameLocation":"489:15:16","nodeType":"VariableDeclaration","scope":2104,"src":"481:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2096,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2099,"mutability":"mutable","name":"functionSig","nameLocation":"530:11:16","nodeType":"VariableDeclaration","scope":2104,"src":"514:27:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2098,"name":"string","nodeType":"ElementaryTypeName","src":"514:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2101,"mutability":"mutable","name":"accountToRevoke","nameLocation":"559:15:16","nodeType":"VariableDeclaration","scope":2104,"src":"551:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2100,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"471:109:16"},"returnParameters":{"id":2103,"nodeType":"ParameterList","parameters":[],"src":"589:0:16"},"scope":2125,"src":"442:148:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"18c5e8ab","id":2113,"implemented":false,"kind":"function","modifiers":[],"name":"isAllowedToCall","nameLocation":"605:15:16","nodeType":"FunctionDefinition","parameters":{"id":2109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2106,"mutability":"mutable","name":"account","nameLocation":"629:7:16","nodeType":"VariableDeclaration","scope":2113,"src":"621:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2105,"name":"address","nodeType":"ElementaryTypeName","src":"621:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2108,"mutability":"mutable","name":"functionSig","nameLocation":"654:11:16","nodeType":"VariableDeclaration","scope":2113,"src":"638:27:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2107,"name":"string","nodeType":"ElementaryTypeName","src":"638:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"620:46:16"},"returnParameters":{"id":2112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2113,"src":"690:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2110,"name":"bool","nodeType":"ElementaryTypeName","src":"690:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"689:6:16"},"scope":2125,"src":"596:100:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"82bfd0f0","id":2124,"implemented":false,"kind":"function","modifiers":[],"name":"hasPermission","nameLocation":"711:13:16","nodeType":"FunctionDefinition","parameters":{"id":2120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2115,"mutability":"mutable","name":"account","nameLocation":"742:7:16","nodeType":"VariableDeclaration","scope":2124,"src":"734:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2114,"name":"address","nodeType":"ElementaryTypeName","src":"734:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2117,"mutability":"mutable","name":"contractAddress","nameLocation":"767:15:16","nodeType":"VariableDeclaration","scope":2124,"src":"759:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2116,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2119,"mutability":"mutable","name":"functionSig","nameLocation":"808:11:16","nodeType":"VariableDeclaration","scope":2124,"src":"792:27:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2118,"name":"string","nodeType":"ElementaryTypeName","src":"792:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"724:101:16"},"returnParameters":{"id":2123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2124,"src":"849:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2121,"name":"bool","nodeType":"ElementaryTypeName","src":"849:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"848:6:16"},"scope":2125,"src":"702:153:16","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2126,"src":"262:595:16","usedErrors":[],"usedEvents":[1032,1041,1050]}],"src":"41:817:16"},"id":16},"@venusprotocol/solidity-utilities/contracts/constants.sol":{"ast":{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","exportedSymbols":{"EXP_SCALE":[2131],"MANTISSA_ONE":[2135],"SECONDS_PER_YEAR":[2139]},"id":2140,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":2127,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:17"},{"constant":true,"id":2131,"mutability":"constant","name":"EXP_SCALE","nameLocation":"174:9:17","nodeType":"VariableDeclaration","scope":2140,"src":"157:33:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2129,"name":"uint256","nodeType":"ElementaryTypeName","src":"157:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":2130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"186:4:17","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"constant":true,"id":2135,"mutability":"constant","name":"MANTISSA_ONE","nameLocation":"293:12:17","nodeType":"VariableDeclaration","scope":2140,"src":"276:41:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2133,"name":"uint256","nodeType":"ElementaryTypeName","src":"276:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"id":2134,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"308:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":true,"id":2139,"mutability":"constant","name":"SECONDS_PER_YEAR","nameLocation":"389:16:17","nodeType":"VariableDeclaration","scope":2140,"src":"372:46:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2137,"name":"uint256","nodeType":"ElementaryTypeName","src":"372:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33315f3533365f303030","id":2138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"408:10:17","typeDescriptions":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"},"value":"31_536_000"},"visibility":"internal"}],"src":"41:379:17"},"id":17},"@venusprotocol/solidity-utilities/contracts/validators.sol":{"ast":{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","exportedSymbols":{"ZeroAddressNotAllowed":[2144],"ZeroValueNotAllowed":[2147],"ensureNonzeroAddress":[2165],"ensureNonzeroValue":[2180]},"id":2181,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":2141,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:18"},{"documentation":{"id":2142,"nodeType":"StructuredDocumentation","src":"66:85:18","text":"@notice Thrown if the supplied address is a zero address where it is not allowed"},"errorSelector":"8579befe","id":2144,"name":"ZeroAddressNotAllowed","nameLocation":"157:21:18","nodeType":"ErrorDefinition","parameters":{"id":2143,"nodeType":"ParameterList","parameters":[],"src":"178:2:18"},"src":"151:30:18"},{"documentation":{"id":2145,"nodeType":"StructuredDocumentation","src":"183:70:18","text":"@notice Thrown if the supplied value is 0 where it is not allowed"},"errorSelector":"9cf8540c","id":2147,"name":"ZeroValueNotAllowed","nameLocation":"259:19:18","nodeType":"ErrorDefinition","parameters":{"id":2146,"nodeType":"ParameterList","parameters":[],"src":"278:2:18"},"src":"253:28:18"},{"body":{"id":2164,"nodeType":"Block","src":"538:83:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2153,"name":"address_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2150,"src":"548:8:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"568:1:18","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":2155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"560:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2154,"name":"address","nodeType":"ElementaryTypeName","src":"560:7:18","typeDescriptions":{}}},"id":2157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"548:22:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2163,"nodeType":"IfStatement","src":"544:75:18","trueBody":{"id":2162,"nodeType":"Block","src":"572:47:18","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2159,"name":"ZeroAddressNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"589:21:18","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"589:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2161,"nodeType":"RevertStatement","src":"582:30:18"}]}}]},"documentation":{"id":2148,"nodeType":"StructuredDocumentation","src":"283:202:18","text":"@notice Checks if the provided address is nonzero, reverts otherwise\n @param address_ Address to check\n @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address"},"id":2165,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroAddress","nameLocation":"494:20:18","nodeType":"FunctionDefinition","parameters":{"id":2151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2150,"mutability":"mutable","name":"address_","nameLocation":"523:8:18","nodeType":"VariableDeclaration","scope":2165,"src":"515:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2149,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"514:18:18"},"returnParameters":{"id":2152,"nodeType":"ParameterList","parameters":[],"src":"538:0:18"},"scope":2181,"src":"485:136:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2179,"nodeType":"Block","src":"851:70:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2171,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2168,"src":"861:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"871:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"861:11:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2178,"nodeType":"IfStatement","src":"857:62:18","trueBody":{"id":2177,"nodeType":"Block","src":"874:45:18","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2174,"name":"ZeroValueNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2147,"src":"891:19:18","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"891:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2176,"nodeType":"RevertStatement","src":"884:28:18"}]}}]},"documentation":{"id":2166,"nodeType":"StructuredDocumentation","src":"623:179:18","text":"@notice Checks if the provided value is nonzero, reverts otherwise\n @param value_ Value to check\n @custom:error ZeroValueNotAllowed is thrown if the provided value is 0"},"id":2180,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroValue","nameLocation":"811:18:18","nodeType":"FunctionDefinition","parameters":{"id":2169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2168,"mutability":"mutable","name":"value_","nameLocation":"838:6:18","nodeType":"VariableDeclaration","scope":2180,"src":"830:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2167,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"829:16:18"},"returnParameters":{"id":2170,"nodeType":"ParameterList","parameters":[],"src":"851:0:18"},"scope":2181,"src":"802:119:18","stateMutability":"pure","virtual":false,"visibility":"internal"}],"src":"41:881:18"},"id":18},"contracts/ReferenceOracle.sol":{"ast":{"absolutePath":"contracts/ReferenceOracle.sol","exportedSymbols":{"OracleInterface":[3666],"Ownable2StepUpgradeable":[209],"ReferenceOracle":[2437],"ResilientOracleInterface":[3686],"ensureNonzeroAddress":[2165]},"id":2438,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":2182,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"79:23:19"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":2184,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2438,"sourceUnit":210,"src":"104:113:19","symbolAliases":[{"foreign":{"id":2183,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"113:23:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":2186,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2438,"sourceUnit":2181,"src":"218:98:19","symbolAliases":[{"foreign":{"id":2185,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"227:20:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"./interfaces/OracleInterface.sol","id":2189,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2438,"sourceUnit":3699,"src":"317:93:19","symbolAliases":[{"foreign":{"id":2187,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"326:24:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2188,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"352:15:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2191,"name":"Ownable2StepUpgradeable","nameLocations":["761:23:19"],"nodeType":"IdentifierPath","referencedDeclaration":209,"src":"761:23:19"},"id":2192,"nodeType":"InheritanceSpecifier","src":"761:23:19"},{"baseName":{"id":2193,"name":"OracleInterface","nameLocations":["786:15:19"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"786:15:19"},"id":2194,"nodeType":"InheritanceSpecifier","src":"786:15:19"}],"canonicalName":"ReferenceOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":2190,"nodeType":"StructuredDocumentation","src":"412:320:19","text":" @title ReferenceOracle\n @author Venus\n @notice Reference oracle is the oracle that is not used for production but required for\n price monitoring. This oracle contains some extra configurations for assets required to\n compute reference prices of their derivative assets (OneJump, ERC4626, Pendle, etc.)"},"fullyImplemented":true,"id":2437,"linearizedBaseContracts":[2437,3666,209,342,1020,511],"name":"ReferenceOracle","nameLocation":"742:15:19","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ReferenceOracle.ExternalPrice","id":2201,"members":[{"constant":false,"id":2197,"mutability":"mutable","name":"asset","nameLocation":"881:5:19","nodeType":"VariableDeclaration","scope":2201,"src":"873:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2196,"name":"address","nodeType":"ElementaryTypeName","src":"873:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2200,"mutability":"mutable","name":"price","nameLocation":"967:5:19","nodeType":"VariableDeclaration","scope":2201,"src":"959:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2199,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ExternalPrice","nameLocation":"815:13:19","nodeType":"StructDefinition","scope":2437,"src":"808:171:19","visibility":"public"},{"constant":true,"documentation":{"id":2202,"nodeType":"StructuredDocumentation","src":"985:229:19","text":"@notice Slot to temporarily store price information from external sources\n like CMC/Coingecko, useful to compute prices of derivative assets based on\n prices of the base assets with no on chain price information"},"functionSelector":"539b18a1","id":2210,"mutability":"constant","name":"PRICES_SLOT","nameLocation":"1243:11:19","nodeType":"VariableDeclaration","scope":2437,"src":"1219:107:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1219:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"76656e75732d70726f746f636f6c2f6f7261636c652f5265666572656e63654f7261636c652f707269636573","id":2207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1278:46:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8","typeString":"literal_string \"venus-protocol/oracle/ReferenceOracle/prices\""},"value":"venus-protocol/oracle/ReferenceOracle/prices"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8","typeString":"literal_string \"venus-protocol/oracle/ReferenceOracle/prices\""}],"expression":{"id":2205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1267:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1271:6:19","memberName":"encode","nodeType":"MemberAccess","src":"1267:10:19","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1267:58:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2204,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1257:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1257:69:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":2211,"nodeType":"StructuredDocumentation","src":"1333:102:19","text":"@notice Resilient oracle address\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"a4edcd4c","id":2214,"mutability":"immutable","name":"RESILIENT_ORACLE","nameLocation":"1482:16:19","nodeType":"VariableDeclaration","scope":2437,"src":"1440:58:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"},"typeName":{"id":2213,"nodeType":"UserDefinedTypeName","pathNode":{"id":2212,"name":"ResilientOracleInterface","nameLocations":["1440:24:19"],"nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"1440:24:19"},"referencedDeclaration":3686,"src":"1440:24:19","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"visibility":"public"},{"constant":false,"documentation":{"id":2215,"nodeType":"StructuredDocumentation","src":"1505:43:19","text":"@notice Oracle configuration for assets"},"functionSelector":"addd5099","id":2220,"mutability":"mutable","name":"oracles","nameLocation":"1596:7:19","nodeType":"VariableDeclaration","scope":2437,"src":"1553:50:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_OracleInterface_$3666_$","typeString":"mapping(address => contract OracleInterface)"},"typeName":{"id":2219,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2216,"name":"address","nodeType":"ElementaryTypeName","src":"1561:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1553:35:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_OracleInterface_$3666_$","typeString":"mapping(address => contract OracleInterface)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2218,"nodeType":"UserDefinedTypeName","pathNode":{"id":2217,"name":"OracleInterface","nameLocations":["1572:15:19"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"1572:15:19"},"referencedDeclaration":3666,"src":"1572:15:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":2221,"nodeType":"StructuredDocumentation","src":"1610:47:19","text":"@notice Event emitted when an oracle is set"},"eventSelector":"e625c7b7d4661988d3a1140f3225faefa7b57c73524adb62fd77dbc945a6db82","id":2227,"name":"OracleConfigured","nameLocation":"1668:16:19","nodeType":"EventDefinition","parameters":{"id":2226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2223,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"1701:5:19","nodeType":"VariableDeclaration","scope":2227,"src":"1685:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2222,"name":"address","nodeType":"ElementaryTypeName","src":"1685:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2225,"indexed":true,"mutability":"mutable","name":"oracle","nameLocation":"1724:6:19","nodeType":"VariableDeclaration","scope":2227,"src":"1708:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2224,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1684:47:19"},"src":"1662:70:19"},{"body":{"id":2248,"nodeType":"Block","src":"2090:139:19","statements":[{"expression":{"arguments":[{"arguments":[{"id":2237,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"2129:15:19","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}],"id":2236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2121:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2235,"name":"address","nodeType":"ElementaryTypeName","src":"2121:7:19","typeDescriptions":{}}},"id":2238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2234,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"2100:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2100:46:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2240,"nodeType":"ExpressionStatement","src":"2100:46:19"},{"expression":{"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2241,"name":"RESILIENT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"2156:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2242,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"2175:15:19","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"src":"2156:34:19","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":2244,"nodeType":"ExpressionStatement","src":"2156:34:19"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2245,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"2200:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:22:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2247,"nodeType":"ExpressionStatement","src":"2200:22:19"}]},"documentation":{"id":2228,"nodeType":"StructuredDocumentation","src":"1738:293:19","text":" @notice Constructor for the implementation contract. Sets immutable variables.\n @param resilientOracle Resilient oracle address\n @custom:error ZeroAddressNotAllowed is thrown if resilient oracle address is null\n @custom:oz-upgrades-unsafe-allow constructor"},"id":2249,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2231,"mutability":"mutable","name":"resilientOracle","nameLocation":"2073:15:19","nodeType":"VariableDeclaration","scope":2249,"src":"2048:40:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"},"typeName":{"id":2230,"nodeType":"UserDefinedTypeName","pathNode":{"id":2229,"name":"ResilientOracleInterface","nameLocations":["2048:24:19"],"nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"2048:24:19"},"referencedDeclaration":3686,"src":"2048:24:19","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"visibility":"internal"}],"src":"2047:42:19"},"returnParameters":{"id":2233,"nodeType":"ParameterList","parameters":[],"src":"2090:0:19"},"scope":2437,"src":"2036:193:19","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2258,"nodeType":"Block","src":"2340:38:19","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2255,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2350:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:21:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2257,"nodeType":"ExpressionStatement","src":"2350:21:19"}]},"documentation":{"id":2250,"nodeType":"StructuredDocumentation","src":"2235:57:19","text":" @notice Initializes the contract admin"},"functionSelector":"8129fc1c","id":2259,"implemented":true,"kind":"function","modifiers":[{"id":2253,"kind":"modifierInvocation","modifierName":{"id":2252,"name":"initializer","nameLocations":["2328:11:19"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"2328:11:19"},"nodeType":"ModifierInvocation","src":"2328:11:19"}],"name":"initialize","nameLocation":"2306:10:19","nodeType":"FunctionDefinition","parameters":{"id":2251,"nodeType":"ParameterList","parameters":[],"src":"2316:2:19"},"returnParameters":{"id":2254,"nodeType":"ParameterList","parameters":[],"src":"2340:0:19"},"scope":2437,"src":"2297:81:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2290,"nodeType":"Block","src":"2848:149:19","statements":[{"expression":{"arguments":[{"id":2271,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2262,"src":"2879:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2270,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"2858:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":2272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2273,"nodeType":"ExpressionStatement","src":"2858:27:19"},{"expression":{"id":2280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2274,"name":"oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"2895:7:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_OracleInterface_$3666_$","typeString":"mapping(address => contract OracleInterface)"}},"id":2276,"indexExpression":{"id":2275,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2262,"src":"2903:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2895:14:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2278,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"2928:6:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}],"id":2277,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"2912:15:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OracleInterface_$3666_$","typeString":"type(contract OracleInterface)"}},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2912:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"src":"2895:40:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":2281,"nodeType":"ExpressionStatement","src":"2895:40:19"},{"eventCall":{"arguments":[{"id":2283,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2262,"src":"2967:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2286,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"2982:6:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}],"id":2285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2974:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2284,"name":"address","nodeType":"ElementaryTypeName","src":"2974:7:19","typeDescriptions":{}}},"id":2287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2974:15:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2282,"name":"OracleConfigured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"2950:16:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2950:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2289,"nodeType":"EmitStatement","src":"2945:45:19"}]},"documentation":{"id":2260,"nodeType":"StructuredDocumentation","src":"2384:382:19","text":" @notice Sets an oracle to use for a specific asset\n @dev The production resilientOracle will be used if zero address is passed\n @param asset Asset address\n @param oracle Oracle address\n @custom:access Only owner\n @custom:error ZeroAddressNotAllowed is thrown if asset address is null\n @custom:event Emits OracleConfigured event"},"functionSelector":"5c38eb3a","id":2291,"implemented":true,"kind":"function","modifiers":[{"id":2268,"kind":"modifierInvocation","modifierName":{"id":2267,"name":"onlyOwner","nameLocations":["2838:9:19"],"nodeType":"IdentifierPath","referencedDeclaration":256,"src":"2838:9:19"},"nodeType":"ModifierInvocation","src":"2838:9:19"}],"name":"setOracle","nameLocation":"2780:9:19","nodeType":"FunctionDefinition","parameters":{"id":2266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2262,"mutability":"mutable","name":"asset","nameLocation":"2798:5:19","nodeType":"VariableDeclaration","scope":2291,"src":"2790:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2261,"name":"address","nodeType":"ElementaryTypeName","src":"2790:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2265,"mutability":"mutable","name":"oracle","nameLocation":"2821:6:19","nodeType":"VariableDeclaration","scope":2291,"src":"2805:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"},"typeName":{"id":2264,"nodeType":"UserDefinedTypeName","pathNode":{"id":2263,"name":"OracleInterface","nameLocations":["2805:15:19"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"2805:15:19"},"referencedDeclaration":3666,"src":"2805:15:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"visibility":"internal"}],"src":"2789:39:19"},"returnParameters":{"id":2269,"nodeType":"ParameterList","parameters":[],"src":"2848:0:19"},"scope":2437,"src":"2771:226:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2335,"nodeType":"Block","src":"3359:254:19","statements":[{"assignments":[2304],"declarations":[{"constant":false,"id":2304,"mutability":"mutable","name":"externalPricesCount","nameLocation":"3377:19:19","nodeType":"VariableDeclaration","scope":2335,"src":"3369:27:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2303,"name":"uint256","nodeType":"ElementaryTypeName","src":"3369:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2307,"initialValue":{"expression":{"id":2305,"name":"externalPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"3399:14:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","typeString":"struct ReferenceOracle.ExternalPrice memory[] memory"}},"id":2306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3414:6:19","memberName":"length","nodeType":"MemberAccess","src":"3399:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3369:51:19"},{"body":{"id":2329,"nodeType":"Block","src":"3480:94:19","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":2319,"name":"externalPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"3514:14:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","typeString":"struct ReferenceOracle.ExternalPrice memory[] memory"}},"id":2321,"indexExpression":{"id":2320,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2309,"src":"3529:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3514:17:19","typeDescriptions":{"typeIdentifier":"t_struct$_ExternalPrice_$2201_memory_ptr","typeString":"struct ReferenceOracle.ExternalPrice memory"}},"id":2322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3532:5:19","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":2197,"src":"3514:23:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":2323,"name":"externalPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"3539:14:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","typeString":"struct ReferenceOracle.ExternalPrice memory[] memory"}},"id":2325,"indexExpression":{"id":2324,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2309,"src":"3554:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3539:17:19","typeDescriptions":{"typeIdentifier":"t_struct$_ExternalPrice_$2201_memory_ptr","typeString":"struct ReferenceOracle.ExternalPrice memory"}},"id":2326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3557:5:19","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":2200,"src":"3539:23:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2318,"name":"_storeExternalPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"3494:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3494:69:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2328,"nodeType":"ExpressionStatement","src":"3494:69:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2309,"src":"3450:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2313,"name":"externalPricesCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"3454:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3450:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2330,"initializationExpression":{"assignments":[2309],"declarations":[{"constant":false,"id":2309,"mutability":"mutable","name":"i","nameLocation":"3443:1:19","nodeType":"VariableDeclaration","scope":2330,"src":"3435:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3435:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2311,"initialValue":{"hexValue":"30","id":2310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3447:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3435:13:19"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":2316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3475:3:19","subExpression":{"id":2315,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2309,"src":"3477:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2317,"nodeType":"ExpressionStatement","src":"3475:3:19"},"nodeType":"ForStatement","src":"3430:144:19"},{"expression":{"arguments":[{"id":2332,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2294,"src":"3600:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2331,"name":"_getPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3590:9:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3590:16:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2302,"id":2334,"nodeType":"Return","src":"3583:23:19"}]},"documentation":{"id":2292,"nodeType":"StructuredDocumentation","src":"3003:244:19","text":" @notice Gets price of the asset assuming other assets have the defined price\n @param asset asset address\n @param externalPrices an array of prices for other assets\n @return USD price in scaled decimal places"},"functionSelector":"310770b5","id":2336,"implemented":true,"kind":"function","modifiers":[],"name":"getPriceAssuming","nameLocation":"3261:16:19","nodeType":"FunctionDefinition","parameters":{"id":2299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2294,"mutability":"mutable","name":"asset","nameLocation":"3286:5:19","nodeType":"VariableDeclaration","scope":2336,"src":"3278:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2293,"name":"address","nodeType":"ElementaryTypeName","src":"3278:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2298,"mutability":"mutable","name":"externalPrices","nameLocation":"3316:14:19","nodeType":"VariableDeclaration","scope":2336,"src":"3293:37:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","typeString":"struct ReferenceOracle.ExternalPrice[]"},"typeName":{"baseType":{"id":2296,"nodeType":"UserDefinedTypeName","pathNode":{"id":2295,"name":"ExternalPrice","nameLocations":["3293:13:19"],"nodeType":"IdentifierPath","referencedDeclaration":2201,"src":"3293:13:19"},"referencedDeclaration":2201,"src":"3293:13:19","typeDescriptions":{"typeIdentifier":"t_struct$_ExternalPrice_$2201_storage_ptr","typeString":"struct ReferenceOracle.ExternalPrice"}},"id":2297,"nodeType":"ArrayTypeName","src":"3293:15:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ExternalPrice_$2201_storage_$dyn_storage_ptr","typeString":"struct ReferenceOracle.ExternalPrice[]"}},"visibility":"internal"}],"src":"3277:54:19"},"returnParameters":{"id":2302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2336,"src":"3350:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2300,"name":"uint256","nodeType":"ElementaryTypeName","src":"3350:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3349:9:19"},"scope":2437,"src":"3252:361:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3665],"body":{"id":2349,"nodeType":"Block","src":"3832:40:19","statements":[{"expression":{"arguments":[{"id":2346,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2339,"src":"3859:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2345,"name":"_getPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3849:9:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:16:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2344,"id":2348,"nodeType":"Return","src":"3842:23:19"}]},"documentation":{"id":2337,"nodeType":"StructuredDocumentation","src":"3619:134:19","text":" @notice Gets price of the asset\n @param asset asset address\n @return USD price in scaled decimal places"},"functionSelector":"41976e09","id":2350,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"3767:8:19","nodeType":"FunctionDefinition","overrides":{"id":2341,"nodeType":"OverrideSpecifier","overrides":[],"src":"3805:8:19"},"parameters":{"id":2340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2339,"mutability":"mutable","name":"asset","nameLocation":"3784:5:19","nodeType":"VariableDeclaration","scope":2350,"src":"3776:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2338,"name":"address","nodeType":"ElementaryTypeName","src":"3776:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3775:15:19"},"returnParameters":{"id":2344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2350,"src":"3823:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2342,"name":"uint256","nodeType":"ElementaryTypeName","src":"3823:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3822:9:19"},"scope":2437,"src":"3758:114:19","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2368,"nodeType":"Block","src":"3946:206:19","statements":[{"assignments":[2358],"declarations":[{"constant":false,"id":2358,"mutability":"mutable","name":"slot","nameLocation":"3964:4:19","nodeType":"VariableDeclaration","scope":2368,"src":"3956:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3956:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2366,"initialValue":{"arguments":[{"arguments":[{"id":2362,"name":"PRICES_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2210,"src":"3992:11:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2363,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2352,"src":"4005:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2360,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3981:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3985:6:19","memberName":"encode","nodeType":"MemberAccess","src":"3981:10:19","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3981:30:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2359,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3971:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3971:41:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3956:56:19"},{"AST":{"nativeSrc":"4103:43:19","nodeType":"YulBlock","src":"4103:43:19","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"4124:4:19","nodeType":"YulIdentifier","src":"4124:4:19"},{"name":"price","nativeSrc":"4130:5:19","nodeType":"YulIdentifier","src":"4130:5:19"}],"functionName":{"name":"tstore","nativeSrc":"4117:6:19","nodeType":"YulIdentifier","src":"4117:6:19"},"nativeSrc":"4117:19:19","nodeType":"YulFunctionCall","src":"4117:19:19"},"nativeSrc":"4117:19:19","nodeType":"YulExpressionStatement","src":"4117:19:19"}]},"evmVersion":"cancun","externalReferences":[{"declaration":2354,"isOffset":false,"isSlot":false,"src":"4130:5:19","valueSize":1},{"declaration":2358,"isOffset":false,"isSlot":false,"src":"4124:4:19","valueSize":1}],"flags":["memory-safe"],"id":2367,"nodeType":"InlineAssembly","src":"4078:68:19"}]},"id":2369,"implemented":true,"kind":"function","modifiers":[],"name":"_storeExternalPrice","nameLocation":"3887:19:19","nodeType":"FunctionDefinition","parameters":{"id":2355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2352,"mutability":"mutable","name":"asset","nameLocation":"3915:5:19","nodeType":"VariableDeclaration","scope":2369,"src":"3907:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2351,"name":"address","nodeType":"ElementaryTypeName","src":"3907:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2354,"mutability":"mutable","name":"price","nameLocation":"3930:5:19","nodeType":"VariableDeclaration","scope":2369,"src":"3922:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2353,"name":"uint256","nodeType":"ElementaryTypeName","src":"3922:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3906:30:19"},"returnParameters":{"id":2356,"nodeType":"ParameterList","parameters":[],"src":"3946:0:19"},"scope":2437,"src":"3878:274:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2416,"nodeType":"Block","src":"4224:348:19","statements":[{"assignments":[2377],"declarations":[{"constant":false,"id":2377,"mutability":"mutable","name":"externalPrice","nameLocation":"4242:13:19","nodeType":"VariableDeclaration","scope":2416,"src":"4234:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2376,"name":"uint256","nodeType":"ElementaryTypeName","src":"4234:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2381,"initialValue":{"arguments":[{"id":2379,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"4277:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2378,"name":"_loadExternalPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"4258:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4258:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4234:49:19"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2382,"name":"externalPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"4297:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4314:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4297:18:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2388,"nodeType":"IfStatement","src":"4293:69:19","trueBody":{"id":2387,"nodeType":"Block","src":"4317:45:19","statements":[{"expression":{"id":2385,"name":"externalPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"4338:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2375,"id":2386,"nodeType":"Return","src":"4331:20:19"}]}},{"assignments":[2391],"declarations":[{"constant":false,"id":2391,"mutability":"mutable","name":"oracle","nameLocation":"4387:6:19","nodeType":"VariableDeclaration","scope":2416,"src":"4371:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"},"typeName":{"id":2390,"nodeType":"UserDefinedTypeName","pathNode":{"id":2389,"name":"OracleInterface","nameLocations":["4371:15:19"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"4371:15:19"},"referencedDeclaration":3666,"src":"4371:15:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"visibility":"internal"}],"id":2395,"initialValue":{"baseExpression":{"id":2392,"name":"oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"4396:7:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_OracleInterface_$3666_$","typeString":"mapping(address => contract OracleInterface)"}},"id":2394,"indexExpression":{"id":2393,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"4404:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4396:14:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"nodeType":"VariableDeclarationStatement","src":"4371:39:19"},{"condition":{"commonType":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"},"id":2403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2396,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2391,"src":"4424:6:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"hexValue":"30","id":2400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4458:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4450:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2398,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:19","typeDescriptions":{}}},"id":2401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4450:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2397,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"4434:15:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OracleInterface_$3666_$","typeString":"type(contract OracleInterface)"}},"id":2402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4434:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"src":"4424:37:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2410,"nodeType":"IfStatement","src":"4420:97:19","trueBody":{"id":2409,"nodeType":"Block","src":"4463:54:19","statements":[{"expression":{"arguments":[{"id":2406,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"4500:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2404,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2391,"src":"4484:6:19","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":2405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4491:8:19","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"4484:15:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4484:22:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2375,"id":2408,"nodeType":"Return","src":"4477:29:19"}]}},{"expression":{"arguments":[{"id":2413,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"4559:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2411,"name":"RESILIENT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"4533:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":2412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4550:8:19","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"4533:25:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4533:32:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2375,"id":2415,"nodeType":"Return","src":"4526:39:19"}]},"id":2417,"implemented":true,"kind":"function","modifiers":[],"name":"_getPrice","nameLocation":"4167:9:19","nodeType":"FunctionDefinition","parameters":{"id":2372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2371,"mutability":"mutable","name":"asset","nameLocation":"4185:5:19","nodeType":"VariableDeclaration","scope":2417,"src":"4177:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2370,"name":"address","nodeType":"ElementaryTypeName","src":"4177:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4176:15:19"},"returnParameters":{"id":2375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2417,"src":"4215:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4214:9:19"},"scope":2437,"src":"4158:414:19","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2435,"nodeType":"Block","src":"4659:207:19","statements":[{"assignments":[2425],"declarations":[{"constant":false,"id":2425,"mutability":"mutable","name":"slot","nameLocation":"4677:4:19","nodeType":"VariableDeclaration","scope":2435,"src":"4669:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4669:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2433,"initialValue":{"arguments":[{"arguments":[{"id":2429,"name":"PRICES_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2210,"src":"4705:11:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2430,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"4718:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2427,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4694:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4698:6:19","memberName":"encode","nodeType":"MemberAccess","src":"4694:10:19","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4694:30:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2426,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4684:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4684:41:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4669:56:19"},{"AST":{"nativeSrc":"4816:44:19","nodeType":"YulBlock","src":"4816:44:19","statements":[{"nativeSrc":"4830:20:19","nodeType":"YulAssignment","src":"4830:20:19","value":{"arguments":[{"name":"slot","nativeSrc":"4845:4:19","nodeType":"YulIdentifier","src":"4845:4:19"}],"functionName":{"name":"tload","nativeSrc":"4839:5:19","nodeType":"YulIdentifier","src":"4839:5:19"},"nativeSrc":"4839:11:19","nodeType":"YulFunctionCall","src":"4839:11:19"},"variableNames":[{"name":"value","nativeSrc":"4830:5:19","nodeType":"YulIdentifier","src":"4830:5:19"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2425,"isOffset":false,"isSlot":false,"src":"4845:4:19","valueSize":1},{"declaration":2422,"isOffset":false,"isSlot":false,"src":"4830:5:19","valueSize":1}],"flags":["memory-safe"],"id":2434,"nodeType":"InlineAssembly","src":"4791:69:19"}]},"id":2436,"implemented":true,"kind":"function","modifiers":[],"name":"_loadExternalPrice","nameLocation":"4587:18:19","nodeType":"FunctionDefinition","parameters":{"id":2420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2419,"mutability":"mutable","name":"asset","nameLocation":"4614:5:19","nodeType":"VariableDeclaration","scope":2436,"src":"4606:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2418,"name":"address","nodeType":"ElementaryTypeName","src":"4606:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4605:15:19"},"returnParameters":{"id":2423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2422,"mutability":"mutable","name":"value","nameLocation":"4652:5:19","nodeType":"VariableDeclaration","scope":2436,"src":"4644:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2421,"name":"uint256","nodeType":"ElementaryTypeName","src":"4644:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4643:15:19"},"scope":2437,"src":"4578:288:19","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2438,"src":"733:4135:19","usedErrors":[2144],"usedEvents":[120,227,357,2227]}],"src":"79:4790:19"},"id":19},"contracts/ResilientOracle.sol":{"ast":{"absolutePath":"contracts/ResilientOracle.sol","exportedSymbols":{"AccessControlledV8":[2080],"BoundValidatorInterface":[3698],"ICappedOracle":[3494],"OracleInterface":[3666],"PausableUpgradeable":[639],"ResilientOracle":[3404],"ResilientOracleInterface":[3686],"Transient":[3777],"VBep20Interface":[3730]},"id":3405,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":2439,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"79:23:20"},{"absolutePath":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol","id":2441,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3405,"sourceUnit":640,"src":"104:107:20","symbolAliases":[{"foreign":{"id":2440,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":639,"src":"113:19:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/VBep20Interface.sol","file":"./interfaces/VBep20Interface.sol","id":2443,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3405,"sourceUnit":3731,"src":"212:67:20","symbolAliases":[{"foreign":{"id":2442,"name":"VBep20Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3730,"src":"221:15:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"./interfaces/OracleInterface.sol","id":2447,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3405,"sourceUnit":3699,"src":"280:118:20","symbolAliases":[{"foreign":{"id":2444,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"289:15:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2445,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"306:24:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2446,"name":"BoundValidatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"332:23:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","id":2449,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3405,"sourceUnit":2081,"src":"399:117:20","symbolAliases":[{"foreign":{"id":2448,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"408:18:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICappedOracle.sol","file":"./interfaces/ICappedOracle.sol","id":2451,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3405,"sourceUnit":3495,"src":"517:63:20","symbolAliases":[{"foreign":{"id":2450,"name":"ICappedOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"526:13:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/lib/Transient.sol","file":"./lib/Transient.sol","id":2453,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3405,"sourceUnit":3778,"src":"581:48:20","symbolAliases":[{"foreign":{"id":2452,"name":"Transient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"590:9:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2455,"name":"PausableUpgradeable","nameLocations":["2614:19:20"],"nodeType":"IdentifierPath","referencedDeclaration":639,"src":"2614:19:20"},"id":2456,"nodeType":"InheritanceSpecifier","src":"2614:19:20"},{"baseName":{"id":2457,"name":"AccessControlledV8","nameLocations":["2635:18:20"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"2635:18:20"},"id":2458,"nodeType":"InheritanceSpecifier","src":"2635:18:20"},{"baseName":{"id":2459,"name":"ResilientOracleInterface","nameLocations":["2655:24:20"],"nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"2655:24:20"},"id":2460,"nodeType":"InheritanceSpecifier","src":"2655:24:20"}],"canonicalName":"ResilientOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":2454,"nodeType":"StructuredDocumentation","src":"631:1954:20","text":" @title ResilientOracle\n @author Venus\n @notice The Resilient Oracle is the main contract that the protocol uses to fetch prices of assets.\n DeFi protocols are vulnerable to price oracle failures including oracle manipulation and incorrectly\n reported prices. If only one oracle is used, this creates a single point of failure and opens a vector\n for attacking the protocol.\n The Resilient Oracle uses multiple sources and fallback mechanisms to provide accurate prices and protect\n the protocol from oracle attacks.\n For every market (vToken) we configure the main, pivot and fallback oracles. The oracles are configured per\n vToken's underlying asset address. The main oracle oracle is the most trustworthy price source, the pivot\n oracle is used as a loose sanity checker and the fallback oracle is used as a backup price source.\n To validate prices returned from two oracles, we use an upper and lower bound ratio that is set for every\n market. The upper bound ratio represents the deviation between reported price (the price that’s being\n validated) and the anchor price (the price we are validating against) above which the reported price will\n be invalidated. The lower bound ratio presents the deviation between reported price and anchor price below\n which the reported price will be invalidated. So for oracle price to be considered valid the below statement\n should be true:\n```\nanchorRatio = anchorPrice/reporterPrice\nisValid = anchorRatio <= upperBoundAnchorRatio && anchorRatio >= lowerBoundAnchorRatio\n```\n In most cases, Chainlink is used as the main oracle, other oracles are used as the pivot oracle depending\n on which supports the given market and Binance oracle is used as the fallback oracle.\n For a fetched price to be valid it must be positive and not stagnant. If the price is invalid then we consider the\n oracle to be stagnant and treat it like it's disabled."},"fullyImplemented":true,"id":3404,"linearizedBaseContracts":[3404,3686,3666,2080,209,342,639,1020,511],"name":"ResilientOracle","nameLocation":"2595:15:20","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ResilientOracle.OracleRole","documentation":{"id":2461,"nodeType":"StructuredDocumentation","src":"2686:227:20","text":" @dev Oracle roles:\n **main**: The most trustworthy price source\n **pivot**: Price oracle used as a loose sanity checker\n **fallback**: The backup source when main oracle price is invalidated"},"id":2465,"members":[{"id":2462,"name":"MAIN","nameLocation":"2944:4:20","nodeType":"EnumValue","src":"2944:4:20"},{"id":2463,"name":"PIVOT","nameLocation":"2958:5:20","nodeType":"EnumValue","src":"2958:5:20"},{"id":2464,"name":"FALLBACK","nameLocation":"2973:8:20","nodeType":"EnumValue","src":"2973:8:20"}],"name":"OracleRole","nameLocation":"2923:10:20","nodeType":"EnumDefinition","src":"2918:69:20"},{"canonicalName":"ResilientOracle.TokenConfig","id":2482,"members":[{"constant":false,"id":2468,"mutability":"mutable","name":"asset","nameLocation":"3064:5:20","nodeType":"VariableDeclaration","scope":2482,"src":"3056:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2467,"name":"address","nodeType":"ElementaryTypeName","src":"3056:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2473,"mutability":"mutable","name":"oracles","nameLocation":"3295:7:20","nodeType":"VariableDeclaration","scope":2482,"src":"3284:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_storage_ptr","typeString":"address[3]"},"typeName":{"baseType":{"id":2470,"name":"address","nodeType":"ElementaryTypeName","src":"3284:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2472,"length":{"hexValue":"33","id":2471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3292:1:20","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"3284:10:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_storage_ptr","typeString":"address[3]"}},"visibility":"internal"},{"constant":false,"id":2478,"mutability":"mutable","name":"enableFlagsForOracles","nameLocation":"3448:21:20","nodeType":"VariableDeclaration","scope":2482,"src":"3440:29:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$3_storage_ptr","typeString":"bool[3]"},"typeName":{"baseType":{"id":2475,"name":"bool","nodeType":"ElementaryTypeName","src":"3440:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2477,"length":{"hexValue":"33","id":2476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3445:1:20","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"3440:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$3_storage_ptr","typeString":"bool[3]"}},"visibility":"internal"},{"constant":false,"id":2481,"mutability":"mutable","name":"cachingEnabled","nameLocation":"3587:14:20","nodeType":"VariableDeclaration","scope":2482,"src":"3582:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2480,"name":"bool","nodeType":"ElementaryTypeName","src":"3582:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"TokenConfig","nameLocation":"3000:11:20","nodeType":"StructDefinition","scope":3404,"src":"2993:615:20","visibility":"public"},{"constant":true,"functionSelector":"4bf39cba","id":2485,"mutability":"constant","name":"INVALID_PRICE","nameLocation":"3638:13:20","nodeType":"VariableDeclaration","scope":3404,"src":"3614:41:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3614:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":2484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3654:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":false,"documentation":{"id":2486,"nodeType":"StructuredDocumentation","src":"3662:99:20","text":"@notice Native market address\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"8a2f7f6d","id":2488,"mutability":"immutable","name":"nativeMarket","nameLocation":"3791:12:20","nodeType":"VariableDeclaration","scope":3404,"src":"3766:37:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2487,"name":"address","nodeType":"ElementaryTypeName","src":"3766:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":2489,"nodeType":"StructuredDocumentation","src":"3810:89:20","text":"@notice VAI address\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"b62e4c92","id":2491,"mutability":"immutable","name":"vai","nameLocation":"3929:3:20","nodeType":"VariableDeclaration","scope":3404,"src":"3904:28:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2490,"name":"address","nodeType":"ElementaryTypeName","src":"3904:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"documentation":{"id":2492,"nodeType":"StructuredDocumentation","src":"3939:195:20","text":"@notice Set this as asset address for Native token on each chain.This is the underlying for vBNB (on bsc)\n and can serve as any underlying asset of a market that supports native tokens"},"functionSelector":"a9534f8a","id":2495,"mutability":"constant","name":"NATIVE_TOKEN_ADDR","nameLocation":"4163:17:20","nodeType":"VariableDeclaration","scope":3404,"src":"4139:86:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2493,"name":"address","nodeType":"ElementaryTypeName","src":"4139:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307862426242424242626242424262626242626242626262624242624262626262426242626242426242","id":2494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4183:42:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"},"visibility":"public"},{"constant":true,"documentation":{"id":2496,"nodeType":"StructuredDocumentation","src":"4232:292:20","text":"@notice Slot to cache the asset's price, used for transient storage\n custom:storage-location erc7201:venus-protocol/oracle/ResilientOracle/cache\n keccak256(abi.encode(uint256(keccak256(\"venus-protocol/oracle/ResilientOracle/cache\")) - 1))\n   & ~bytes32(uint256(0xff))"},"functionSelector":"e9d1284f","id":2499,"mutability":"constant","name":"CACHE_SLOT","nameLocation":"4553:10:20","nodeType":"VariableDeclaration","scope":3404,"src":"4529:103:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4529:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834653939656335353937323333326635653065663963363632333139326330343031623630393136316266666165363464396363646437616436636337383030","id":2498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4566:66:20","typeDescriptions":{"typeIdentifier":"t_rational_35552360910055816473539994211441046997876692168526005926700189501615120349184_by_1","typeString":"int_const 3555...(69 digits omitted)...9184"},"value":"0x4e99ec55972332f5e0ef9c6623192c0401b609161bffae64d9ccdd7ad6cc7800"},"visibility":"public"},{"constant":false,"documentation":{"id":2500,"nodeType":"StructuredDocumentation","src":"4639:110:20","text":"@notice Bound validator contract address\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"33d33494","id":2503,"mutability":"immutable","name":"boundValidator","nameLocation":"4795:14:20","nodeType":"VariableDeclaration","scope":3404,"src":"4754:55:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"},"typeName":{"id":2502,"nodeType":"UserDefinedTypeName","pathNode":{"id":2501,"name":"BoundValidatorInterface","nameLocations":["4754:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3698,"src":"4754:23:20"},"referencedDeclaration":3698,"src":"4754:23:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"visibility":"public"},{"constant":false,"id":2508,"mutability":"mutable","name":"tokenConfigs","nameLocation":"4856:12:20","nodeType":"VariableDeclaration","scope":3404,"src":"4816:52:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig)"},"typeName":{"id":2507,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2504,"name":"address","nodeType":"ElementaryTypeName","src":"4824:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4816:31:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2506,"nodeType":"UserDefinedTypeName","pathNode":{"id":2505,"name":"TokenConfig","nameLocations":["4835:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":2482,"src":"4835:11:20"},"referencedDeclaration":2482,"src":"4835:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage_ptr","typeString":"struct ResilientOracle.TokenConfig"}}},"visibility":"private"},{"anonymous":false,"eventSelector":"a51ad01e2270c314a7b78f0c60fe66c723f2d06c121d63fcdce776e654878fc1","id":2518,"name":"TokenConfigAdded","nameLocation":"4881:16:20","nodeType":"EventDefinition","parameters":{"id":2517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2510,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"4923:5:20","nodeType":"VariableDeclaration","scope":2518,"src":"4907:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2509,"name":"address","nodeType":"ElementaryTypeName","src":"4907:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2512,"indexed":true,"mutability":"mutable","name":"mainOracle","nameLocation":"4954:10:20","nodeType":"VariableDeclaration","scope":2518,"src":"4938:26:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2511,"name":"address","nodeType":"ElementaryTypeName","src":"4938:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2514,"indexed":true,"mutability":"mutable","name":"pivotOracle","nameLocation":"4990:11:20","nodeType":"VariableDeclaration","scope":2518,"src":"4974:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2513,"name":"address","nodeType":"ElementaryTypeName","src":"4974:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2516,"indexed":false,"mutability":"mutable","name":"fallbackOracle","nameLocation":"5019:14:20","nodeType":"VariableDeclaration","scope":2518,"src":"5011:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2515,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4897:142:20"},"src":"4875:165:20"},{"anonymous":false,"documentation":{"id":2519,"nodeType":"StructuredDocumentation","src":"5046:39:20","text":"Event emitted when an oracle is set"},"eventSelector":"ea681d3efb830ef032a9c29a7215b5ceeeb546250d2c463dbf87817aecda1bf1","id":2527,"name":"OracleSet","nameLocation":"5096:9:20","nodeType":"EventDefinition","parameters":{"id":2526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2521,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"5122:5:20","nodeType":"VariableDeclaration","scope":2527,"src":"5106:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2520,"name":"address","nodeType":"ElementaryTypeName","src":"5106:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2523,"indexed":true,"mutability":"mutable","name":"oracle","nameLocation":"5145:6:20","nodeType":"VariableDeclaration","scope":2527,"src":"5129:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2522,"name":"address","nodeType":"ElementaryTypeName","src":"5129:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2525,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"5169:4:20","nodeType":"VariableDeclaration","scope":2527,"src":"5153:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2524,"name":"uint256","nodeType":"ElementaryTypeName","src":"5153:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5105:69:20"},"src":"5090:85:20"},{"anonymous":false,"documentation":{"id":2528,"nodeType":"StructuredDocumentation","src":"5181:55:20","text":"Event emitted when an oracle is enabled or disabled"},"eventSelector":"cf3cad1ec87208efbde5d82a0557484a78d4182c3ad16926a5463bc1f7234b3d","id":2536,"name":"OracleEnabled","nameLocation":"5247:13:20","nodeType":"EventDefinition","parameters":{"id":2535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2530,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"5277:5:20","nodeType":"VariableDeclaration","scope":2536,"src":"5261:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2529,"name":"address","nodeType":"ElementaryTypeName","src":"5261:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2532,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"5300:4:20","nodeType":"VariableDeclaration","scope":2536,"src":"5284:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2531,"name":"uint256","nodeType":"ElementaryTypeName","src":"5284:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2534,"indexed":true,"mutability":"mutable","name":"enable","nameLocation":"5319:6:20","nodeType":"VariableDeclaration","scope":2536,"src":"5306:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2533,"name":"bool","nodeType":"ElementaryTypeName","src":"5306:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5260:66:20"},"src":"5241:86:20"},{"anonymous":false,"documentation":{"id":2537,"nodeType":"StructuredDocumentation","src":"5333:58:20","text":"Event emitted when an asset cachingEnabled flag is set"},"eventSelector":"ca250c5374abedcbf71c0e3eda7ff4cf940fa9e6561d8cd31d2bf480a140a93f","id":2543,"name":"CachedEnabled","nameLocation":"5402:13:20","nodeType":"EventDefinition","parameters":{"id":2542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2539,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"5432:5:20","nodeType":"VariableDeclaration","scope":2543,"src":"5416:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2538,"name":"address","nodeType":"ElementaryTypeName","src":"5416:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2541,"indexed":true,"mutability":"mutable","name":"enabled","nameLocation":"5452:7:20","nodeType":"VariableDeclaration","scope":2543,"src":"5439:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2540,"name":"bool","nodeType":"ElementaryTypeName","src":"5439:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5415:45:20"},"src":"5396:65:20"},{"body":{"id":2560,"nodeType":"Block","src":"5580:86:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2548,"name":"someone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"5594:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5613:1:20","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":2550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5605:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2549,"name":"address","nodeType":"ElementaryTypeName","src":"5605:7:20","typeDescriptions":{}}},"id":2552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5605:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5594:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2558,"nodeType":"IfStatement","src":"5590:58:20","trueBody":{"expression":{"arguments":[{"hexValue":"63616e2774206265207a65726f2061646472657373","id":2555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5624:23:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","typeString":"literal_string \"can't be zero address\""},"value":"can't be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","typeString":"literal_string \"can't be zero address\""}],"id":2554,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5617:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5617:31:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2557,"nodeType":"ExpressionStatement","src":"5617:31:20"}},{"id":2559,"nodeType":"PlaceholderStatement","src":"5658:1:20"}]},"documentation":{"id":2544,"nodeType":"StructuredDocumentation","src":"5467:67:20","text":" @notice Checks whether an address is null or not"},"id":2561,"name":"notNullAddress","nameLocation":"5548:14:20","nodeType":"ModifierDefinition","parameters":{"id":2547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2546,"mutability":"mutable","name":"someone","nameLocation":"5571:7:20","nodeType":"VariableDeclaration","scope":2561,"src":"5563:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2545,"name":"address","nodeType":"ElementaryTypeName","src":"5563:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5562:17:20"},"src":"5539:127:20","virtual":false,"visibility":"internal"},{"body":{"id":2581,"nodeType":"Block","src":"5963:106:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":2566,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"5977:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":2568,"indexExpression":{"id":2567,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2564,"src":"5990:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5977:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"id":2569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:5:20","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":2468,"src":"5977:25:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6014:1:20","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":2571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6006:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2570,"name":"address","nodeType":"ElementaryTypeName","src":"6006:7:20","typeDescriptions":{}}},"id":2573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6006:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5977:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2579,"nodeType":"IfStatement","src":"5973:78:20","trueBody":{"expression":{"arguments":[{"hexValue":"746f6b656e20636f6e666967206d757374206578697374","id":2576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6025:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67","typeString":"literal_string \"token config must exist\""},"value":"token config must exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67","typeString":"literal_string \"token config must exist\""}],"id":2575,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6018:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2578,"nodeType":"ExpressionStatement","src":"6018:33:20"}},{"id":2580,"nodeType":"PlaceholderStatement","src":"6061:1:20"}]},"documentation":{"id":2562,"nodeType":"StructuredDocumentation","src":"5672:236:20","text":" @notice Checks whether token config exists by checking whether asset is null address\n @dev address can't be null, so it's suitable to be used to check the validity of the config\n @param asset asset address"},"id":2582,"name":"checkTokenConfigExistence","nameLocation":"5922:25:20","nodeType":"ModifierDefinition","parameters":{"id":2565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2564,"mutability":"mutable","name":"asset","nameLocation":"5956:5:20","nodeType":"VariableDeclaration","scope":2582,"src":"5948:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2563,"name":"address","nodeType":"ElementaryTypeName","src":"5948:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5947:15:20"},"src":"5913:156:20","virtual":false,"visibility":"internal"},{"body":{"id":2614,"nodeType":"Block","src":"6885:152:20","statements":[{"expression":{"id":2601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2599,"name":"nativeMarket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"6895:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2600,"name":"nativeMarketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2585,"src":"6910:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6895:34:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2602,"nodeType":"ExpressionStatement","src":"6895:34:20"},{"expression":{"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2603,"name":"vai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"6939:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2604,"name":"vaiAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2587,"src":"6945:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6939:16:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2606,"nodeType":"ExpressionStatement","src":"6939:16:20"},{"expression":{"id":2609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2607,"name":"boundValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6965:14:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2608,"name":"_boundValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"6982:15:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"src":"6965:32:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"id":2610,"nodeType":"ExpressionStatement","src":"6965:32:20"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2611,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"7008:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7008:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2613,"nodeType":"ExpressionStatement","src":"7008:22:20"}]},"documentation":{"id":2583,"nodeType":"StructuredDocumentation","src":"6075:632:20","text":"@notice Constructor for the implementation contract. Sets immutable variables.\n @dev nativeMarketAddress can be address(0) if on the chain we do not support native market\n      (e.g vETH on ethereum would not be supported, only vWETH)\n @param nativeMarketAddress The address of a native market (for bsc it would be vBNB address)\n @param vaiAddress The address of the VAI token (if there is VAI on the deployed chain).\n          Set to address(0) of VAI is not existent.\n @param _boundValidator Address of the bound validator contract\n @custom:oz-upgrades-unsafe-allow constructor"},"id":2615,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":2595,"name":"_boundValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"6867:15:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}],"id":2594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6859:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2593,"name":"address","nodeType":"ElementaryTypeName","src":"6859:7:20","typeDescriptions":{}}},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6859:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2597,"kind":"modifierInvocation","modifierName":{"id":2592,"name":"notNullAddress","nameLocations":["6844:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":2561,"src":"6844:14:20"},"nodeType":"ModifierInvocation","src":"6844:40:20"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2585,"mutability":"mutable","name":"nativeMarketAddress","nameLocation":"6741:19:20","nodeType":"VariableDeclaration","scope":2615,"src":"6733:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2584,"name":"address","nodeType":"ElementaryTypeName","src":"6733:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2587,"mutability":"mutable","name":"vaiAddress","nameLocation":"6778:10:20","nodeType":"VariableDeclaration","scope":2615,"src":"6770:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2586,"name":"address","nodeType":"ElementaryTypeName","src":"6770:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2590,"mutability":"mutable","name":"_boundValidator","nameLocation":"6822:15:20","nodeType":"VariableDeclaration","scope":2615,"src":"6798:39:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"},"typeName":{"id":2589,"nodeType":"UserDefinedTypeName","pathNode":{"id":2588,"name":"BoundValidatorInterface","nameLocations":["6798:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3698,"src":"6798:23:20"},"referencedDeclaration":3698,"src":"6798:23:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"visibility":"internal"}],"src":"6723:120:20"},"returnParameters":{"id":2598,"nodeType":"ParameterList","parameters":[],"src":"6885:0:20"},"scope":3404,"src":"6712:325:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2630,"nodeType":"Block","src":"7305:90:20","statements":[{"expression":{"arguments":[{"id":2624,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2618,"src":"7339:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2623,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1976,"src":"7315:23:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2626,"nodeType":"ExpressionStatement","src":"7315:46:20"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2627,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":543,"src":"7371:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7371:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2629,"nodeType":"ExpressionStatement","src":"7371:17:20"}]},"documentation":{"id":2616,"nodeType":"StructuredDocumentation","src":"7043:185:20","text":" @notice Initializes the contract admin and sets the BoundValidator contract address\n @param accessControlManager_ Address of the access control manager contract"},"functionSelector":"c4d66de8","id":2631,"implemented":true,"kind":"function","modifiers":[{"id":2621,"kind":"modifierInvocation","modifierName":{"id":2620,"name":"initializer","nameLocations":["7293:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"7293:11:20"},"nodeType":"ModifierInvocation","src":"7293:11:20"}],"name":"initialize","nameLocation":"7242:10:20","nodeType":"FunctionDefinition","parameters":{"id":2619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2618,"mutability":"mutable","name":"accessControlManager_","nameLocation":"7261:21:20","nodeType":"VariableDeclaration","scope":2631,"src":"7253:29:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2617,"name":"address","nodeType":"ElementaryTypeName","src":"7253:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7252:31:20"},"returnParameters":{"id":2622,"nodeType":"ParameterList","parameters":[],"src":"7305:0:20"},"scope":3404,"src":"7233:162:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2642,"nodeType":"Block","src":"7510:65:20","statements":[{"expression":{"arguments":[{"hexValue":"70617573652829","id":2636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7540:9:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""},"value":"pause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""}],"id":2635,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"7520:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":2637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7520:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2638,"nodeType":"ExpressionStatement","src":"7520:30:20"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2639,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"7560:6:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:8:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2641,"nodeType":"ExpressionStatement","src":"7560:8:20"}]},"documentation":{"id":2632,"nodeType":"StructuredDocumentation","src":"7401:78:20","text":" @notice Pauses oracle\n @custom:access Only Governance"},"functionSelector":"8456cb59","id":2643,"implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"7493:5:20","nodeType":"FunctionDefinition","parameters":{"id":2633,"nodeType":"ParameterList","parameters":[],"src":"7498:2:20"},"returnParameters":{"id":2634,"nodeType":"ParameterList","parameters":[],"src":"7510:0:20"},"scope":3404,"src":"7484:91:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2654,"nodeType":"Block","src":"7694:69:20","statements":[{"expression":{"arguments":[{"hexValue":"756e70617573652829","id":2648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7724:11:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""},"value":"unpause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""}],"id":2647,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"7704:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7704:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2650,"nodeType":"ExpressionStatement","src":"7704:32:20"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2651,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":633,"src":"7746:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2653,"nodeType":"ExpressionStatement","src":"7746:10:20"}]},"documentation":{"id":2644,"nodeType":"StructuredDocumentation","src":"7581:80:20","text":" @notice Unpauses oracle\n @custom:access Only Governance"},"functionSelector":"3f4ba83a","id":2655,"implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"7675:7:20","nodeType":"FunctionDefinition","parameters":{"id":2645,"nodeType":"ParameterList","parameters":[],"src":"7682:2:20"},"returnParameters":{"id":2646,"nodeType":"ParameterList","parameters":[],"src":"7694:0:20"},"scope":3404,"src":"7666:97:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2694,"nodeType":"Block","src":"8069:239:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2663,"name":"tokenConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"8083:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory[] memory"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8097:6:20","memberName":"length","nodeType":"MemberAccess","src":"8083:20:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8107:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8083:25:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2671,"nodeType":"IfStatement","src":"8079:58:20","trueBody":{"expression":{"arguments":[{"hexValue":"6c656e6774682063616e27742062652030","id":2668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8117:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","typeString":"literal_string \"length can't be 0\""},"value":"length can't be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","typeString":"literal_string \"length can't be 0\""}],"id":2667,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8110:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8110:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2670,"nodeType":"ExpressionStatement","src":"8110:27:20"}},{"assignments":[2673],"declarations":[{"constant":false,"id":2673,"mutability":"mutable","name":"numTokenConfigs","nameLocation":"8155:15:20","nodeType":"VariableDeclaration","scope":2694,"src":"8147:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2672,"name":"uint256","nodeType":"ElementaryTypeName","src":"8147:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2676,"initialValue":{"expression":{"id":2674,"name":"tokenConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"8173:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory[] memory"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8187:6:20","memberName":"length","nodeType":"MemberAccess","src":"8173:20:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8147:46:20"},{"body":{"id":2692,"nodeType":"Block","src":"8245:57:20","statements":[{"expression":{"arguments":[{"baseExpression":{"id":2687,"name":"tokenConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"8274:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory[] memory"}},"id":2689,"indexExpression":{"id":2688,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"8288:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8274:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}],"id":2686,"name":"setTokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2957,"src":"8259:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_TokenConfig_$2482_memory_ptr_$returns$__$","typeString":"function (struct ResilientOracle.TokenConfig memory)"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2691,"nodeType":"ExpressionStatement","src":"8259:32:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2680,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"8219:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2681,"name":"numTokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"8223:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8219:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2693,"initializationExpression":{"assignments":[2678],"declarations":[{"constant":false,"id":2678,"mutability":"mutable","name":"i","nameLocation":"8216:1:20","nodeType":"VariableDeclaration","scope":2693,"src":"8208:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2677,"name":"uint256","nodeType":"ElementaryTypeName","src":"8208:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2679,"nodeType":"VariableDeclarationStatement","src":"8208:9:20"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8240:3:20","subExpression":{"id":2683,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"8242:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2685,"nodeType":"ExpressionStatement","src":"8240:3:20"},"nodeType":"ForStatement","src":"8203:99:20"}]},"documentation":{"id":2656,"nodeType":"StructuredDocumentation","src":"7769:225:20","text":" @notice Batch sets token configs\n @param tokenConfigs_ Token config array\n @custom:access Only Governance\n @custom:error Throws a length error if the length of the token configs array is 0"},"functionSelector":"883cfb91","id":2695,"implemented":true,"kind":"function","modifiers":[],"name":"setTokenConfigs","nameLocation":"8008:15:20","nodeType":"FunctionDefinition","parameters":{"id":2661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2660,"mutability":"mutable","name":"tokenConfigs_","nameLocation":"8045:13:20","nodeType":"VariableDeclaration","scope":2695,"src":"8024:34:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","typeString":"struct ResilientOracle.TokenConfig[]"},"typeName":{"baseType":{"id":2658,"nodeType":"UserDefinedTypeName","pathNode":{"id":2657,"name":"TokenConfig","nameLocations":["8024:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":2482,"src":"8024:11:20"},"referencedDeclaration":2482,"src":"8024:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage_ptr","typeString":"struct ResilientOracle.TokenConfig"}},"id":2659,"nodeType":"ArrayTypeName","src":"8024:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$2482_storage_$dyn_storage_ptr","typeString":"struct ResilientOracle.TokenConfig[]"}},"visibility":"internal"}],"src":"8023:36:20"},"returnParameters":{"id":2662,"nodeType":"ParameterList","parameters":[],"src":"8069:0:20"},"scope":3404,"src":"7999:309:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2753,"nodeType":"Block","src":"9112:297:20","statements":[{"expression":{"arguments":[{"hexValue":"7365744f7261636c6528616464726573732c616464726573732c75696e743829","id":2713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9142:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6b1344a5349a6c5dde4103cdf4e8bd779aee8aea49f0c2bdbbe369854af3648","typeString":"literal_string \"setOracle(address,address,uint8)\""},"value":"setOracle(address,address,uint8)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6b1344a5349a6c5dde4103cdf4e8bd779aee8aea49f0c2bdbbe369854af3648","typeString":"literal_string \"setOracle(address,address,uint8)\""}],"id":2712,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"9122:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9122:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2715,"nodeType":"ExpressionStatement","src":"9122:55:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2716,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"9191:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9209:1:20","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":2718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9201:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2717,"name":"address","nodeType":"ElementaryTypeName","src":"9201:7:20","typeDescriptions":{}}},"id":2720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9201:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9191:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"},"id":2725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2722,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"9215:4:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2723,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"9223:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":2724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9234:4:20","memberName":"MAIN","nodeType":"MemberAccess","referencedDeclaration":2462,"src":"9223:15:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}},"src":"9215:23:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9191:47:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2731,"nodeType":"IfStatement","src":"9187:100:20","trueBody":{"expression":{"arguments":[{"hexValue":"63616e277420736574207a65726f206164647265737320746f206d61696e206f7261636c65","id":2728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9247:39:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1","typeString":"literal_string \"can't set zero address to main oracle\""},"value":"can't set zero address to main oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1","typeString":"literal_string \"can't set zero address to main oracle\""}],"id":2727,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9240:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9240:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2730,"nodeType":"ExpressionStatement","src":"9240:47:20"}},{"expression":{"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":2732,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"9297:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":2734,"indexExpression":{"id":2733,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"9310:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9297:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"id":2735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9317:7:20","memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":2473,"src":"9297:27:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_storage","typeString":"address[3] storage ref"}},"id":2740,"indexExpression":{"arguments":[{"id":2738,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"9333:4:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9325:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2736,"name":"uint256","nodeType":"ElementaryTypeName","src":"9325:7:20","typeDescriptions":{}}},"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9325:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9297:42:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2741,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"9342:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9297:51:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2743,"nodeType":"ExpressionStatement","src":"9297:51:20"},{"eventCall":{"arguments":[{"id":2745,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"9373:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2746,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"9380:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2749,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2703,"src":"9396:4:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9388:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2747,"name":"uint256","nodeType":"ElementaryTypeName","src":"9388:7:20","typeDescriptions":{}}},"id":2750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9388:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2744,"name":"OracleSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2527,"src":"9363:9:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9363:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2752,"nodeType":"EmitStatement","src":"9358:44:20"}]},"documentation":{"id":2696,"nodeType":"StructuredDocumentation","src":"8314:632:20","text":" @notice Sets oracle for a given asset and role.\n @dev Supplied asset **must** exist and main oracle may not be null\n @param asset Asset address\n @param oracle Oracle address\n @param role Oracle role\n @custom:access Only Governance\n @custom:error Null address error if main-role oracle address is null\n @custom:error NotNullAddress error is thrown if asset address is null\n @custom:error TokenConfigExistance error is thrown if token config is not set\n @custom:event Emits OracleSet event with asset address, oracle address and role of the oracle for the asset"},"functionSelector":"a6b1344a","id":2754,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2706,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"9072:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2707,"kind":"modifierInvocation","modifierName":{"id":2705,"name":"notNullAddress","nameLocations":["9057:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":2561,"src":"9057:14:20"},"nodeType":"ModifierInvocation","src":"9057:21:20"},{"arguments":[{"id":2709,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"9105:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2710,"kind":"modifierInvocation","modifierName":{"id":2708,"name":"checkTokenConfigExistence","nameLocations":["9079:25:20"],"nodeType":"IdentifierPath","referencedDeclaration":2582,"src":"9079:25:20"},"nodeType":"ModifierInvocation","src":"9079:32:20"}],"name":"setOracle","nameLocation":"8960:9:20","nodeType":"FunctionDefinition","parameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2698,"mutability":"mutable","name":"asset","nameLocation":"8987:5:20","nodeType":"VariableDeclaration","scope":2754,"src":"8979:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2697,"name":"address","nodeType":"ElementaryTypeName","src":"8979:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2700,"mutability":"mutable","name":"oracle","nameLocation":"9010:6:20","nodeType":"VariableDeclaration","scope":2754,"src":"9002:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2699,"name":"address","nodeType":"ElementaryTypeName","src":"9002:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2703,"mutability":"mutable","name":"role","nameLocation":"9037:4:20","nodeType":"VariableDeclaration","scope":2754,"src":"9026:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"},"typeName":{"id":2702,"nodeType":"UserDefinedTypeName","pathNode":{"id":2701,"name":"OracleRole","nameLocations":["9026:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":2465,"src":"9026:10:20"},"referencedDeclaration":2465,"src":"9026:10:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}},"visibility":"internal"}],"src":"8969:78:20"},"returnParameters":{"id":2711,"nodeType":"ParameterList","parameters":[],"src":"9112:0:20"},"scope":3404,"src":"8951:458:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2796,"nodeType":"Block","src":"10217:205:20","statements":[{"expression":{"arguments":[{"hexValue":"656e61626c654f7261636c6528616464726573732c75696e74382c626f6f6c29","id":2772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10247:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b932b8f6c9428f30a19bd13e87971dde4a4a5a042670087e94f3517091819b0","typeString":"literal_string \"enableOracle(address,uint8,bool)\""},"value":"enableOracle(address,uint8,bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b932b8f6c9428f30a19bd13e87971dde4a4a5a042670087e94f3517091819b0","typeString":"literal_string \"enableOracle(address,uint8,bool)\""}],"id":2771,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"10227:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":2773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10227:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2774,"nodeType":"ExpressionStatement","src":"10227:55:20"},{"expression":{"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":2775,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"10292:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":2777,"indexExpression":{"id":2776,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"10305:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10292:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"id":2778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10312:21:20","memberName":"enableFlagsForOracles","nodeType":"MemberAccess","referencedDeclaration":2478,"src":"10292:41:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$3_storage","typeString":"bool[3] storage ref"}},"id":2783,"indexExpression":{"arguments":[{"id":2781,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2760,"src":"10342:4:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10334:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2779,"name":"uint256","nodeType":"ElementaryTypeName","src":"10334:7:20","typeDescriptions":{}}},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10334:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10292:56:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2784,"name":"enable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"10351:6:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10292:65:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2786,"nodeType":"ExpressionStatement","src":"10292:65:20"},{"eventCall":{"arguments":[{"id":2788,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"10386:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2791,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2760,"src":"10401:4:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10393:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2789,"name":"uint256","nodeType":"ElementaryTypeName","src":"10393:7:20","typeDescriptions":{}}},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10393:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2793,"name":"enable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"10408:6:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2787,"name":"OracleEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2536,"src":"10372:13:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10372:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2795,"nodeType":"EmitStatement","src":"10367:48:20"}]},"documentation":{"id":2755,"nodeType":"StructuredDocumentation","src":"9415:636:20","text":" @notice Enables/ disables oracle for the input asset. Token config for the input asset **must** exist\n @dev Configuration for the asset **must** already exist and the asset cannot be 0 address\n @param asset Asset address\n @param role Oracle role\n @param enable Enabled boolean of the oracle\n @custom:access Only Governance\n @custom:error NotNullAddress error is thrown if asset address is null\n @custom:error TokenConfigExistance error is thrown if token config is not set\n @custom:event Emits OracleEnabled event with asset address, role of the oracle and enabled flag"},"functionSelector":"4b932b8f","id":2797,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2765,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"10177:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2766,"kind":"modifierInvocation","modifierName":{"id":2764,"name":"notNullAddress","nameLocations":["10162:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":2561,"src":"10162:14:20"},"nodeType":"ModifierInvocation","src":"10162:21:20"},{"arguments":[{"id":2768,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"10210:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2769,"kind":"modifierInvocation","modifierName":{"id":2767,"name":"checkTokenConfigExistence","nameLocations":["10184:25:20"],"nodeType":"IdentifierPath","referencedDeclaration":2582,"src":"10184:25:20"},"nodeType":"ModifierInvocation","src":"10184:32:20"}],"name":"enableOracle","nameLocation":"10065:12:20","nodeType":"FunctionDefinition","parameters":{"id":2763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2757,"mutability":"mutable","name":"asset","nameLocation":"10095:5:20","nodeType":"VariableDeclaration","scope":2797,"src":"10087:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2756,"name":"address","nodeType":"ElementaryTypeName","src":"10087:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2760,"mutability":"mutable","name":"role","nameLocation":"10121:4:20","nodeType":"VariableDeclaration","scope":2797,"src":"10110:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"},"typeName":{"id":2759,"nodeType":"UserDefinedTypeName","pathNode":{"id":2758,"name":"OracleRole","nameLocations":["10110:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":2465,"src":"10110:10:20"},"referencedDeclaration":2465,"src":"10110:10:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}},"visibility":"internal"},{"constant":false,"id":2762,"mutability":"mutable","name":"enable","nameLocation":"10140:6:20","nodeType":"VariableDeclaration","scope":2797,"src":"10135:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2761,"name":"bool","nodeType":"ElementaryTypeName","src":"10135:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10077:75:20"},"returnParameters":{"id":2770,"nodeType":"ParameterList","parameters":[],"src":"10217:0:20"},"scope":3404,"src":"10056:366:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3673],"body":{"id":2814,"nodeType":"Block","src":"10675:94:20","statements":[{"assignments":[2805],"declarations":[{"constant":false,"id":2805,"mutability":"mutable","name":"asset","nameLocation":"10693:5:20","nodeType":"VariableDeclaration","scope":2814,"src":"10685:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2804,"name":"address","nodeType":"ElementaryTypeName","src":"10685:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2809,"initialValue":{"arguments":[{"id":2807,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"10721:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2806,"name":"_getUnderlyingAsset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3389,"src":"10701:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10701:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10685:43:20"},{"expression":{"arguments":[{"id":2811,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"10756:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2810,"name":"_updateAssetPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3061,"src":"10738:17:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10738:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2813,"nodeType":"ExpressionStatement","src":"10738:24:20"}]},"documentation":{"id":2798,"nodeType":"StructuredDocumentation","src":"10428:187:20","text":" @notice Updates the capped main oracle snapshot.\n @dev This function should always be called before calling getUnderlyingPrice\n @param vToken vToken address"},"functionSelector":"96e85ced","id":2815,"implemented":true,"kind":"function","modifiers":[],"name":"updatePrice","nameLocation":"10629:11:20","nodeType":"FunctionDefinition","overrides":{"id":2802,"nodeType":"OverrideSpecifier","overrides":[],"src":"10666:8:20"},"parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2800,"mutability":"mutable","name":"vToken","nameLocation":"10649:6:20","nodeType":"VariableDeclaration","scope":2815,"src":"10641:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2799,"name":"address","nodeType":"ElementaryTypeName","src":"10641:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10640:16:20"},"returnParameters":{"id":2803,"nodeType":"ParameterList","parameters":[],"src":"10675:0:20"},"scope":3404,"src":"10620:149:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3678],"body":{"id":2825,"nodeType":"Block","src":"11005:41:20","statements":[{"expression":{"arguments":[{"id":2822,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2818,"src":"11033:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2821,"name":"_updateAssetPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3061,"src":"11015:17:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11015:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2824,"nodeType":"ExpressionStatement","src":"11015:24:20"}]},"documentation":{"id":2816,"nodeType":"StructuredDocumentation","src":"10775:175:20","text":" @notice Updates the capped main oracle snapshot.\n @dev This function should always be called before calling getPrice\n @param asset asset address"},"functionSelector":"b62cad69","id":2826,"implemented":true,"kind":"function","modifiers":[],"name":"updateAssetPrice","nameLocation":"10964:16:20","nodeType":"FunctionDefinition","parameters":{"id":2819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2818,"mutability":"mutable","name":"asset","nameLocation":"10989:5:20","nodeType":"VariableDeclaration","scope":2826,"src":"10981:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2817,"name":"address","nodeType":"ElementaryTypeName","src":"10981:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10980:15:20"},"returnParameters":{"id":2820,"nodeType":"ParameterList","parameters":[],"src":"11005:0:20"},"scope":3404,"src":"10955:91:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2839,"nodeType":"Block","src":"11279:43:20","statements":[{"expression":{"baseExpression":{"id":2835,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"11296:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":2837,"indexExpression":{"id":2836,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2829,"src":"11309:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11296:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"functionReturnParameters":2834,"id":2838,"nodeType":"Return","src":"11289:26:20"}]},"documentation":{"id":2827,"nodeType":"StructuredDocumentation","src":"11052:140:20","text":" @dev Gets token config by asset address\n @param asset asset address\n @return tokenConfig Config for the asset"},"functionSelector":"cb67e3b1","id":2840,"implemented":true,"kind":"function","modifiers":[],"name":"getTokenConfig","nameLocation":"11206:14:20","nodeType":"FunctionDefinition","parameters":{"id":2830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"asset","nameLocation":"11229:5:20","nodeType":"VariableDeclaration","scope":2840,"src":"11221:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2828,"name":"address","nodeType":"ElementaryTypeName","src":"11221:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11220:15:20"},"returnParameters":{"id":2834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2840,"src":"11259:18:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig"},"typeName":{"id":2832,"nodeType":"UserDefinedTypeName","pathNode":{"id":2831,"name":"TokenConfig","nameLocations":["11259:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":2482,"src":"11259:11:20"},"referencedDeclaration":2482,"src":"11259:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage_ptr","typeString":"struct ResilientOracle.TokenConfig"}},"visibility":"internal"}],"src":"11258:20:20"},"scope":3404,"src":"11197:125:20","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3685],"body":{"id":2866,"nodeType":"Block","src":"12251:154:20","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":2849,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":578,"src":"12265:6:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12265:8:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2855,"nodeType":"IfStatement","src":"12261:50:20","trueBody":{"expression":{"arguments":[{"hexValue":"726573696c69656e74206f7261636c6520697320706175736564","id":2852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12282:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee","typeString":"literal_string \"resilient oracle is paused\""},"value":"resilient oracle is paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee","typeString":"literal_string \"resilient oracle is paused\""}],"id":2851,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"12275:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12275:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2854,"nodeType":"ExpressionStatement","src":"12275:36:20"}},{"assignments":[2857],"declarations":[{"constant":false,"id":2857,"mutability":"mutable","name":"asset","nameLocation":"12330:5:20","nodeType":"VariableDeclaration","scope":2866,"src":"12322:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2856,"name":"address","nodeType":"ElementaryTypeName","src":"12322:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2861,"initialValue":{"arguments":[{"id":2859,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"12358:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2858,"name":"_getUnderlyingAsset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3389,"src":"12338:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":2860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12338:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12322:43:20"},{"expression":{"arguments":[{"id":2863,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"12392:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2862,"name":"_getPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3194,"src":"12382:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12382:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2848,"id":2865,"nodeType":"Return","src":"12375:23:20"}]},"documentation":{"id":2841,"nodeType":"StructuredDocumentation","src":"11328:833:20","text":" @notice Gets price of the underlying asset for a given vToken. Validation flow:\n - Check if the oracle is paused globally\n - Validate price from main oracle against pivot oracle\n - Validate price from fallback oracle against pivot oracle if the first validation failed\n - Validate price from main oracle against fallback oracle if the second validation failed\n In the case that the pivot oracle is not available but main price is available and validation is successful,\n main oracle price is returned.\n @param vToken vToken address\n @return price USD price in scaled decimal places.\n @custom:error Paused error is thrown when resilent oracle is paused\n @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid"},"functionSelector":"fc57d4df","id":2867,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingPrice","nameLocation":"12175:18:20","nodeType":"FunctionDefinition","overrides":{"id":2845,"nodeType":"OverrideSpecifier","overrides":[],"src":"12224:8:20"},"parameters":{"id":2844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2843,"mutability":"mutable","name":"vToken","nameLocation":"12202:6:20","nodeType":"VariableDeclaration","scope":2867,"src":"12194:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2842,"name":"address","nodeType":"ElementaryTypeName","src":"12194:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12193:16:20"},"returnParameters":{"id":2848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2867,"src":"12242:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2846,"name":"uint256","nodeType":"ElementaryTypeName","src":"12242:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12241:9:20"},"scope":3404,"src":"12166:239:20","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3665],"body":{"id":2887,"nodeType":"Block","src":"12815:100:20","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":2876,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":578,"src":"12829:6:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12829:8:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2882,"nodeType":"IfStatement","src":"12825:50:20","trueBody":{"expression":{"arguments":[{"hexValue":"726573696c69656e74206f7261636c6520697320706175736564","id":2879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12846:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee","typeString":"literal_string \"resilient oracle is paused\""},"value":"resilient oracle is paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee","typeString":"literal_string \"resilient oracle is paused\""}],"id":2878,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"12839:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12839:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2881,"nodeType":"ExpressionStatement","src":"12839:36:20"}},{"expression":{"arguments":[{"id":2884,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2870,"src":"12902:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2883,"name":"_getPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3194,"src":"12892:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12892:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2875,"id":2886,"nodeType":"Return","src":"12885:23:20"}]},"documentation":{"id":2868,"nodeType":"StructuredDocumentation","src":"12411:325:20","text":" @notice Gets price of the asset\n @param asset asset address\n @return price USD price in scaled decimal places.\n @custom:error Paused error is thrown when resilent oracle is paused\n @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid"},"functionSelector":"41976e09","id":2888,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"12750:8:20","nodeType":"FunctionDefinition","overrides":{"id":2872,"nodeType":"OverrideSpecifier","overrides":[],"src":"12788:8:20"},"parameters":{"id":2871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2870,"mutability":"mutable","name":"asset","nameLocation":"12767:5:20","nodeType":"VariableDeclaration","scope":2888,"src":"12759:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2869,"name":"address","nodeType":"ElementaryTypeName","src":"12759:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12758:15:20"},"returnParameters":{"id":2875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2888,"src":"12806:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2873,"name":"uint256","nodeType":"ElementaryTypeName","src":"12806:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12805:9:20"},"scope":3404,"src":"12741:174:20","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2956,"nodeType":"Block","src":"13681:452:20","statements":[{"expression":{"arguments":[{"hexValue":"736574546f6b656e436f6e66696728546f6b656e436f6e66696729","id":2910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13711:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e5712572e46407c94b6201f222eec88396e5ee207af9ac6f4189acef9ab9ae8","typeString":"literal_string \"setTokenConfig(TokenConfig)\""},"value":"setTokenConfig(TokenConfig)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e5712572e46407c94b6201f222eec88396e5ee207af9ac6f4189acef9ab9ae8","typeString":"literal_string \"setTokenConfig(TokenConfig)\""}],"id":2909,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"13691:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13691:50:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2912,"nodeType":"ExpressionStatement","src":"13691:50:20"},{"expression":{"id":2918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2913,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"13752:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":2916,"indexExpression":{"expression":{"id":2914,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13765:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13777:5:20","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":2468,"src":"13765:17:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13752:31:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2917,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13786:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"src":"13752:45:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"id":2919,"nodeType":"ExpressionStatement","src":"13752:45:20"},{"eventCall":{"arguments":[{"expression":{"id":2921,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13842:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13854:5:20","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":2468,"src":"13842:17:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":2923,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13873:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13885:7:20","memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":2473,"src":"13873:19:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_memory_ptr","typeString":"address[3] memory"}},"id":2930,"indexExpression":{"arguments":[{"expression":{"id":2927,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"13901:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":2928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13912:4:20","memberName":"MAIN","nodeType":"MemberAccess","referencedDeclaration":2462,"src":"13901:15:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13893:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2925,"name":"uint256","nodeType":"ElementaryTypeName","src":"13893:7:20","typeDescriptions":{}}},"id":2929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13893:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13873:45:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":2931,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13932:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13944:7:20","memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":2473,"src":"13932:19:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_memory_ptr","typeString":"address[3] memory"}},"id":2938,"indexExpression":{"arguments":[{"expression":{"id":2935,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"13960:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":2936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13971:5:20","memberName":"PIVOT","nodeType":"MemberAccess","referencedDeclaration":2463,"src":"13960:16:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13952:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2933,"name":"uint256","nodeType":"ElementaryTypeName","src":"13952:7:20","typeDescriptions":{}}},"id":2937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13932:46:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":2939,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13992:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14004:7:20","memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":2473,"src":"13992:19:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_memory_ptr","typeString":"address[3] memory"}},"id":2946,"indexExpression":{"arguments":[{"expression":{"id":2943,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"14020:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":2944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14031:8:20","memberName":"FALLBACK","nodeType":"MemberAccess","referencedDeclaration":2464,"src":"14020:19:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14012:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2941,"name":"uint256","nodeType":"ElementaryTypeName","src":"14012:7:20","typeDescriptions":{}}},"id":2945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14012:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13992:49:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2920,"name":"TokenConfigAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2518,"src":"13812:16:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address,address)"}},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13812:239:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2948,"nodeType":"EmitStatement","src":"13807:244:20"},{"eventCall":{"arguments":[{"expression":{"id":2950,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"14080:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14092:5:20","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":2468,"src":"14080:17:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2952,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"14099:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14111:14:20","memberName":"cachingEnabled","nodeType":"MemberAccess","referencedDeclaration":2481,"src":"14099:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2949,"name":"CachedEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2543,"src":"14066:13:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":2954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14066:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2955,"nodeType":"EmitStatement","src":"14061:65:20"}]},"documentation":{"id":2889,"nodeType":"StructuredDocumentation","src":"12921:582:20","text":" @notice Sets/resets single token configs.\n @dev main oracle **must not** be a null address\n @param tokenConfig Token config struct\n @custom:access Only Governance\n @custom:error NotNullAddress is thrown if asset address is null\n @custom:error NotNullAddress is thrown if main-role oracle address for asset is null\n @custom:event Emits TokenConfigAdded event when the asset config is set successfully by the authorized account\n @custom:event Emits CachedEnabled event when the asset cachingEnabled flag is set successfully"},"functionSelector":"a8e68463","id":2957,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":2895,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13600:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13612:5:20","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":2468,"src":"13600:17:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2897,"kind":"modifierInvocation","modifierName":{"id":2894,"name":"notNullAddress","nameLocations":["13585:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":2561,"src":"13585:14:20"},"nodeType":"ModifierInvocation","src":"13585:33:20"},{"arguments":[{"baseExpression":{"expression":{"id":2899,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"13634:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig memory"}},"id":2900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13646:7:20","memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":2473,"src":"13634:19:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_memory_ptr","typeString":"address[3] memory"}},"id":2906,"indexExpression":{"arguments":[{"expression":{"id":2903,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"13662:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13673:4:20","memberName":"MAIN","nodeType":"MemberAccess","referencedDeclaration":2462,"src":"13662:15:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13654:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2901,"name":"uint256","nodeType":"ElementaryTypeName","src":"13654:7:20","typeDescriptions":{}}},"id":2905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13654:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13634:45:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2907,"kind":"modifierInvocation","modifierName":{"id":2898,"name":"notNullAddress","nameLocations":["13619:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":2561,"src":"13619:14:20"},"nodeType":"ModifierInvocation","src":"13619:61:20"}],"name":"setTokenConfig","nameLocation":"13517:14:20","nodeType":"FunctionDefinition","parameters":{"id":2893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2892,"mutability":"mutable","name":"tokenConfig","nameLocation":"13560:11:20","nodeType":"VariableDeclaration","scope":2957,"src":"13541:30:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_memory_ptr","typeString":"struct ResilientOracle.TokenConfig"},"typeName":{"id":2891,"nodeType":"UserDefinedTypeName","pathNode":{"id":2890,"name":"TokenConfig","nameLocations":["13541:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":2482,"src":"13541:11:20"},"referencedDeclaration":2482,"src":"13541:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage_ptr","typeString":"struct ResilientOracle.TokenConfig"}},"visibility":"internal"}],"src":"13531:46:20"},"returnParameters":{"id":2908,"nodeType":"ParameterList","parameters":[],"src":"13681:0:20"},"scope":3404,"src":"13508:625:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2994,"nodeType":"Block","src":"14508:144:20","statements":[{"expression":{"id":2980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2970,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2966,"src":"14518:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":2971,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"14527:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":2973,"indexExpression":{"id":2972,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"14540:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14527:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"id":2974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14547:7:20","memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":2473,"src":"14527:27:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$3_storage","typeString":"address[3] storage ref"}},"id":2979,"indexExpression":{"arguments":[{"id":2977,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"14563:4:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14555:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2975,"name":"uint256","nodeType":"ElementaryTypeName","src":"14555:7:20","typeDescriptions":{}}},"id":2978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14555:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14527:42:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14518:51:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2981,"nodeType":"ExpressionStatement","src":"14518:51:20"},{"expression":{"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2982,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2968,"src":"14579:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":2983,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"14589:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":2985,"indexExpression":{"id":2984,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"14602:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14589:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"id":2986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14609:21:20","memberName":"enableFlagsForOracles","nodeType":"MemberAccess","referencedDeclaration":2478,"src":"14589:41:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$3_storage","typeString":"bool[3] storage ref"}},"id":2991,"indexExpression":{"arguments":[{"id":2989,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"14639:4:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":2988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14631:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2987,"name":"uint256","nodeType":"ElementaryTypeName","src":"14631:7:20","typeDescriptions":{}}},"id":2990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14631:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14589:56:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14579:66:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2993,"nodeType":"ExpressionStatement","src":"14579:66:20"}]},"documentation":{"id":2958,"nodeType":"StructuredDocumentation","src":"14139:262:20","text":" @notice Gets oracle and enabled status by asset address\n @param asset asset address\n @param role Oracle role\n @return oracle Oracle address based on role\n @return enabled Enabled flag of the oracle based on token config"},"functionSelector":"8b855da4","id":2995,"implemented":true,"kind":"function","modifiers":[],"name":"getOracle","nameLocation":"14415:9:20","nodeType":"FunctionDefinition","parameters":{"id":2964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2960,"mutability":"mutable","name":"asset","nameLocation":"14433:5:20","nodeType":"VariableDeclaration","scope":2995,"src":"14425:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2959,"name":"address","nodeType":"ElementaryTypeName","src":"14425:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2963,"mutability":"mutable","name":"role","nameLocation":"14451:4:20","nodeType":"VariableDeclaration","scope":2995,"src":"14440:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"},"typeName":{"id":2962,"nodeType":"UserDefinedTypeName","pathNode":{"id":2961,"name":"OracleRole","nameLocations":["14440:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":2465,"src":"14440:10:20"},"referencedDeclaration":2465,"src":"14440:10:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}},"visibility":"internal"}],"src":"14424:32:20"},"returnParameters":{"id":2969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2966,"mutability":"mutable","name":"oracle","nameLocation":"14486:6:20","nodeType":"VariableDeclaration","scope":2995,"src":"14478:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2965,"name":"address","nodeType":"ElementaryTypeName","src":"14478:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2968,"mutability":"mutable","name":"enabled","nameLocation":"14499:7:20","nodeType":"VariableDeclaration","scope":2995,"src":"14494:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2967,"name":"bool","nodeType":"ElementaryTypeName","src":"14494:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14477:30:20"},"scope":3404,"src":"14406:246:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3060,"nodeType":"Block","src":"14873:595:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3003,"name":"CACHE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2499,"src":"14913:10:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3004,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2998,"src":"14925:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3001,"name":"Transient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"14887:9:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Transient_$3777_$","typeString":"type(library Transient)"}},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14897:15:20","memberName":"readCachedPrice","nodeType":"MemberAccess","referencedDeclaration":3776,"src":"14887:25:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view returns (uint256)"}},"id":3005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14887:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14935:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14887:49:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3010,"nodeType":"IfStatement","src":"14883:86:20","trueBody":{"id":3009,"nodeType":"Block","src":"14938:31:20","statements":[{"functionReturnParameters":3000,"id":3008,"nodeType":"Return","src":"14952:7:20"}]}},{"assignments":[3012,3014],"declarations":[{"constant":false,"id":3012,"mutability":"mutable","name":"mainOracle","nameLocation":"14988:10:20","nodeType":"VariableDeclaration","scope":3060,"src":"14980:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3011,"name":"address","nodeType":"ElementaryTypeName","src":"14980:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3014,"mutability":"mutable","name":"mainOracleEnabled","nameLocation":"15005:17:20","nodeType":"VariableDeclaration","scope":3060,"src":"15000:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3013,"name":"bool","nodeType":"ElementaryTypeName","src":"15000:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3020,"initialValue":{"arguments":[{"id":3016,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2998,"src":"15036:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3017,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"15043:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":3018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15054:4:20","memberName":"MAIN","nodeType":"MemberAccess","referencedDeclaration":2462,"src":"15043:15:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":3015,"name":"getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"15026:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_OracleRole_$2465_$returns$_t_address_$_t_bool_$","typeString":"function (address,enum ResilientOracle.OracleRole) view returns (address,bool)"}},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15026:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14979:80:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3021,"name":"mainOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"15073:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15095:1:20","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":3023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15087:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3022,"name":"address","nodeType":"ElementaryTypeName","src":"15087:7:20","typeDescriptions":{}}},"id":3025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15087:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15073:24:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":3027,"name":"mainOracleEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"15101:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15073:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3040,"nodeType":"IfStatement","src":"15069:238:20","trueBody":{"id":3039,"nodeType":"Block","src":"15120:187:20","statements":[{"clauses":[{"block":{"id":3034,"nodeType":"Block","src":"15286:2:20","statements":[]},"errorName":"","id":3035,"nodeType":"TryCatchClause","src":"15286:2:20"},{"block":{"id":3036,"nodeType":"Block","src":"15295:2:20","statements":[]},"errorName":"","id":3037,"nodeType":"TryCatchClause","src":"15289:8:20"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3030,"name":"mainOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"15257:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3029,"name":"ICappedOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"15243:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICappedOracle_$3494_$","typeString":"type(contract ICappedOracle)"}},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15243:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICappedOracle_$3494","typeString":"contract ICappedOracle"}},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15269:14:20","memberName":"updateSnapshot","nodeType":"MemberAccess","referencedDeclaration":3493,"src":"15243:40:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":3033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15243:42:20","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3038,"nodeType":"TryStatement","src":"15239:58:20"}]}},{"condition":{"arguments":[{"id":3042,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2998,"src":"15337:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3041,"name":"_isCacheEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"15321:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":3043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15321:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3059,"nodeType":"IfStatement","src":"15317:145:20","trueBody":{"id":3058,"nodeType":"Block","src":"15345:117:20","statements":[{"assignments":[3045],"declarations":[{"constant":false,"id":3045,"mutability":"mutable","name":"price","nameLocation":"15367:5:20","nodeType":"VariableDeclaration","scope":3058,"src":"15359:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3044,"name":"uint256","nodeType":"ElementaryTypeName","src":"15359:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3049,"initialValue":{"arguments":[{"id":3047,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2998,"src":"15385:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3046,"name":"_getPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3194,"src":"15375:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15375:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15359:32:20"},{"expression":{"arguments":[{"id":3053,"name":"CACHE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2499,"src":"15426:10:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3054,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2998,"src":"15438:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3055,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"15445:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3050,"name":"Transient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"15405:9:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Transient_$3777_$","typeString":"type(library Transient)"}},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15415:10:20","memberName":"cachePrice","nodeType":"MemberAccess","referencedDeclaration":3754,"src":"15405:20:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":3056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15405:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3057,"nodeType":"ExpressionStatement","src":"15405:46:20"}]}}]},"documentation":{"id":2996,"nodeType":"StructuredDocumentation","src":"14658:159:20","text":" @notice Updates the capped oracle snapshot.\n @dev Cache the asset price and return if already cached\n @param asset asset address"},"id":3061,"implemented":true,"kind":"function","modifiers":[],"name":"_updateAssetPrice","nameLocation":"14831:17:20","nodeType":"FunctionDefinition","parameters":{"id":2999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2998,"mutability":"mutable","name":"asset","nameLocation":"14857:5:20","nodeType":"VariableDeclaration","scope":3061,"src":"14849:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2997,"name":"address","nodeType":"ElementaryTypeName","src":"14849:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14848:15:20"},"returnParameters":{"id":3000,"nodeType":"ParameterList","parameters":[],"src":"14873:0:20"},"scope":3404,"src":"14822:646:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3193,"nodeType":"Block","src":"15805:1854:20","statements":[{"assignments":[3070],"declarations":[{"constant":false,"id":3070,"mutability":"mutable","name":"pivotPrice","nameLocation":"15823:10:20","nodeType":"VariableDeclaration","scope":3193,"src":"15815:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3069,"name":"uint256","nodeType":"ElementaryTypeName","src":"15815:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3072,"initialValue":{"id":3071,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"15836:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15815:34:20"},{"assignments":[3074],"declarations":[{"constant":false,"id":3074,"mutability":"mutable","name":"price","nameLocation":"15867:5:20","nodeType":"VariableDeclaration","scope":3193,"src":"15859:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3073,"name":"uint256","nodeType":"ElementaryTypeName","src":"15859:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3075,"nodeType":"VariableDeclarationStatement","src":"15859:13:20"},{"expression":{"id":3082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3076,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3074,"src":"15883:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3079,"name":"CACHE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2499,"src":"15917:10:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3080,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"15929:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3077,"name":"Transient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"15891:9:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Transient_$3777_$","typeString":"type(library Transient)"}},"id":3078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15901:15:20","memberName":"readCachedPrice","nodeType":"MemberAccess","referencedDeclaration":3776,"src":"15891:25:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view returns (uint256)"}},"id":3081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15891:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15883:52:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3083,"nodeType":"ExpressionStatement","src":"15883:52:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3084,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3074,"src":"15949:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15958:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15949:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3090,"nodeType":"IfStatement","src":"15945:53:20","trueBody":{"id":3089,"nodeType":"Block","src":"15961:37:20","statements":[{"expression":{"id":3087,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3074,"src":"15982:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3068,"id":3088,"nodeType":"Return","src":"15975:12:20"}]}},{"assignments":[3092,3094],"declarations":[{"constant":false,"id":3092,"mutability":"mutable","name":"pivotOracle","nameLocation":"16092:11:20","nodeType":"VariableDeclaration","scope":3193,"src":"16084:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3091,"name":"address","nodeType":"ElementaryTypeName","src":"16084:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3094,"mutability":"mutable","name":"pivotOracleEnabled","nameLocation":"16110:18:20","nodeType":"VariableDeclaration","scope":3193,"src":"16105:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3093,"name":"bool","nodeType":"ElementaryTypeName","src":"16105:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3100,"initialValue":{"arguments":[{"id":3096,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"16142:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3097,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"16149:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":3098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16160:5:20","memberName":"PIVOT","nodeType":"MemberAccess","referencedDeclaration":2463,"src":"16149:16:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":3095,"name":"getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"16132:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_OracleRole_$2465_$returns$_t_address_$_t_bool_$","typeString":"function (address,enum ResilientOracle.OracleRole) view returns (address,bool)"}},"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"nodeType":"VariableDeclarationStatement","src":"16083:83:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3101,"name":"pivotOracleEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3094,"src":"16180:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3102,"name":"pivotOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"16202:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16225:1:20","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":3104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16217:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3103,"name":"address","nodeType":"ElementaryTypeName","src":"16217:7:20","typeDescriptions":{}}},"id":3106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16217:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16202:25:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16180:47:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3128,"nodeType":"IfStatement","src":"16176:220:20","trueBody":{"id":3127,"nodeType":"Block","src":"16229:167:20","statements":[{"clauses":[{"block":{"id":3122,"nodeType":"Block","src":"16321:56:20","statements":[{"expression":{"id":3120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3118,"name":"pivotPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"16339:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3119,"name":"pricePivot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3116,"src":"16352:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16339:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3121,"nodeType":"ExpressionStatement","src":"16339:23:20"}]},"errorName":"","id":3123,"nodeType":"TryCatchClause","parameters":{"id":3117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3116,"mutability":"mutable","name":"pricePivot","nameLocation":"16309:10:20","nodeType":"VariableDeclaration","scope":3123,"src":"16301:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3115,"name":"uint256","nodeType":"ElementaryTypeName","src":"16301:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16300:20:20"},"src":"16292:85:20"},{"block":{"id":3124,"nodeType":"Block","src":"16384:2:20","statements":[]},"errorName":"","id":3125,"nodeType":"TryCatchClause","src":"16378:8:20"}],"externalCall":{"arguments":[{"id":3113,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"16285:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":3110,"name":"pivotOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"16263:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3109,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"16247:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OracleInterface_$3666_$","typeString":"type(contract OracleInterface)"}},"id":3111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16247:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16276:8:20","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"16247:37:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16247:44:20","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3126,"nodeType":"TryStatement","src":"16243:143:20"}]}},{"assignments":[3130,3132],"declarations":[{"constant":false,"id":3130,"mutability":"mutable","name":"mainPrice","nameLocation":"16672:9:20","nodeType":"VariableDeclaration","scope":3193,"src":"16664:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3129,"name":"uint256","nodeType":"ElementaryTypeName","src":"16664:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3132,"mutability":"mutable","name":"validatedPivotMain","nameLocation":"16688:18:20","nodeType":"VariableDeclaration","scope":3193,"src":"16683:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3131,"name":"bool","nodeType":"ElementaryTypeName","src":"16683:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3145,"initialValue":{"arguments":[{"id":3134,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"16743:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3135,"name":"pivotPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"16762:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3136,"name":"pivotOracleEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3094,"src":"16786:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3137,"name":"pivotOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"16808:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16831:1:20","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":3139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16823:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3138,"name":"address","nodeType":"ElementaryTypeName","src":"16823:7:20","typeDescriptions":{}}},"id":3141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16823:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16808:25:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16786:47:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3133,"name":"_getMainOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3277,"src":"16710:19:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_uint256_$_t_bool_$","typeString":"function (address,uint256,bool) view returns (uint256,bool)"}},"id":3144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16710:133:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"nodeType":"VariableDeclarationStatement","src":"16663:180:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3146,"name":"mainPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"16857:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3147,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"16870:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16857:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":3149,"name":"validatedPivotMain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3132,"src":"16887:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16857:48:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3153,"nodeType":"IfStatement","src":"16853:70:20","trueBody":{"expression":{"id":3151,"name":"mainPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"16914:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3068,"id":3152,"nodeType":"Return","src":"16907:16:20"}},{"assignments":[3155,3157],"declarations":[{"constant":false,"id":3155,"mutability":"mutable","name":"fallbackPrice","nameLocation":"17122:13:20","nodeType":"VariableDeclaration","scope":3193,"src":"17114:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3154,"name":"uint256","nodeType":"ElementaryTypeName","src":"17114:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3157,"mutability":"mutable","name":"validatedPivotFallback","nameLocation":"17142:22:20","nodeType":"VariableDeclaration","scope":3193,"src":"17137:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3156,"name":"bool","nodeType":"ElementaryTypeName","src":"17137:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3162,"initialValue":{"arguments":[{"id":3159,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"17192:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3160,"name":"pivotPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"17199:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3158,"name":"_getFallbackOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"17168:23:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$_t_bool_$","typeString":"function (address,uint256) view returns (uint256,bool)"}},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17168:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"nodeType":"VariableDeclarationStatement","src":"17113:97:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3163,"name":"fallbackPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3155,"src":"17224:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3164,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"17241:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17224:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":3166,"name":"validatedPivotFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3157,"src":"17258:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17224:56:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3170,"nodeType":"IfStatement","src":"17220:82:20","trueBody":{"expression":{"id":3168,"name":"fallbackPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3155,"src":"17289:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3068,"id":3169,"nodeType":"Return","src":"17282:20:20"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3171,"name":"mainPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"17386:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3172,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"17399:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17386:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3174,"name":"fallbackPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3155,"src":"17428:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3175,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"17445:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17428:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17386:72:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":3180,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"17518:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3181,"name":"mainPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"17525:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3182,"name":"fallbackPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3155,"src":"17536:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3178,"name":"boundValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"17474:14:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"id":3179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17489:28:20","memberName":"validatePriceWithAnchorPrice","nodeType":"MemberAccess","referencedDeclaration":3697,"src":"17474:43:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256) view external returns (bool)"}},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17474:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17386:164:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3188,"nodeType":"IfStatement","src":"17369:233:20","trueBody":{"id":3187,"nodeType":"Block","src":"17561:41:20","statements":[{"expression":{"id":3185,"name":"mainPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3130,"src":"17582:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3068,"id":3186,"nodeType":"Return","src":"17575:16:20"}]}},{"expression":{"arguments":[{"hexValue":"696e76616c696420726573696c69656e74206f7261636c65207072696365","id":3190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17619:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277","typeString":"literal_string \"invalid resilient oracle price\""},"value":"invalid resilient oracle price"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277","typeString":"literal_string \"invalid resilient oracle price\""}],"id":3189,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"17612:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17612:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3192,"nodeType":"ExpressionStatement","src":"17612:40:20"}]},"documentation":{"id":3062,"nodeType":"StructuredDocumentation","src":"15474:260:20","text":" @notice Gets price for the provided asset\n @param asset asset address\n @return price USD price in scaled decimal places.\n @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid"},"id":3194,"implemented":true,"kind":"function","modifiers":[],"name":"_getPrice","nameLocation":"15748:9:20","nodeType":"FunctionDefinition","parameters":{"id":3065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3064,"mutability":"mutable","name":"asset","nameLocation":"15766:5:20","nodeType":"VariableDeclaration","scope":3194,"src":"15758:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3063,"name":"address","nodeType":"ElementaryTypeName","src":"15758:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15757:15:20"},"returnParameters":{"id":3068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3194,"src":"15796:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3066,"name":"uint256","nodeType":"ElementaryTypeName","src":"15796:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15795:9:20"},"scope":3404,"src":"15739:1920:20","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3276,"nodeType":"Block","src":"18664:797:20","statements":[{"assignments":[3209,3211],"declarations":[{"constant":false,"id":3209,"mutability":"mutable","name":"mainOracle","nameLocation":"18683:10:20","nodeType":"VariableDeclaration","scope":3276,"src":"18675:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3208,"name":"address","nodeType":"ElementaryTypeName","src":"18675:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3211,"mutability":"mutable","name":"mainOracleEnabled","nameLocation":"18700:17:20","nodeType":"VariableDeclaration","scope":3276,"src":"18695:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3210,"name":"bool","nodeType":"ElementaryTypeName","src":"18695:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3217,"initialValue":{"arguments":[{"id":3213,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"18731:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3214,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"18738:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":3215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18749:4:20","memberName":"MAIN","nodeType":"MemberAccess","referencedDeclaration":2462,"src":"18738:15:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":3212,"name":"getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"18721:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_OracleRole_$2465_$returns$_t_address_$_t_bool_$","typeString":"function (address,enum ResilientOracle.OracleRole) view returns (address,bool)"}},"id":3216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18721:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"nodeType":"VariableDeclarationStatement","src":"18674:80:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3218,"name":"mainOracleEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"18768:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3219,"name":"mainOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3209,"src":"18789:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18811:1:20","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":3221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18803:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3220,"name":"address","nodeType":"ElementaryTypeName","src":"18803:7:20","typeDescriptions":{}}},"id":3223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18803:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18789:24:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18768:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3271,"nodeType":"IfStatement","src":"18764:651:20","trueBody":{"id":3270,"nodeType":"Block","src":"18815:600:20","statements":[{"clauses":[{"block":{"id":3261,"nodeType":"Block","src":"18911:425:20","statements":[{"condition":{"id":3236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18933:13:20","subExpression":{"id":3235,"name":"pivotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3201,"src":"18934:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3242,"nodeType":"IfStatement","src":"18929:90:20","trueBody":{"id":3241,"nodeType":"Block","src":"18948:71:20","statements":[{"expression":{"components":[{"id":3237,"name":"mainOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3233,"src":"18978:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":3238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18995:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":3239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18977:23:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3207,"id":3240,"nodeType":"Return","src":"18970:30:20"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3243,"name":"pivotPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"19040:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3244,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"19054:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19040:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3251,"nodeType":"IfStatement","src":"19036:105:20","trueBody":{"id":3250,"nodeType":"Block","src":"19069:72:20","statements":[{"expression":{"components":[{"id":3246,"name":"mainOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3233,"src":"19099:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":3247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19116:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":3248,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19098:24:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3207,"id":3249,"nodeType":"Return","src":"19091:31:20"}]}},{"expression":{"components":[{"id":3252,"name":"mainOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3233,"src":"19187:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3255,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"19268:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3256,"name":"mainOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3233,"src":"19275:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3257,"name":"pivotPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"19292:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3253,"name":"boundValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"19224:14:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"id":3254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19239:28:20","memberName":"validatePriceWithAnchorPrice","nodeType":"MemberAccess","referencedDeclaration":3697,"src":"19224:43:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256) view external returns (bool)"}},"id":3258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19224:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3259,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19165:156:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3207,"id":3260,"nodeType":"Return","src":"19158:163:20"}]},"errorName":"","id":3262,"nodeType":"TryCatchClause","parameters":{"id":3234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3233,"mutability":"mutable","name":"mainOraclePrice","nameLocation":"18894:15:20","nodeType":"VariableDeclaration","scope":3262,"src":"18886:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3232,"name":"uint256","nodeType":"ElementaryTypeName","src":"18886:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18885:25:20"},"src":"18877:459:20"},{"block":{"id":3267,"nodeType":"Block","src":"19343:62:20","statements":[{"expression":{"components":[{"id":3263,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"19369:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19384:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":3265,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19368:22:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3207,"id":3266,"nodeType":"Return","src":"19361:29:20"}]},"errorName":"","id":3268,"nodeType":"TryCatchClause","src":"19337:68:20"}],"externalCall":{"arguments":[{"id":3230,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"18870:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":3227,"name":"mainOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3209,"src":"18849:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3226,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"18833:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OracleInterface_$3666_$","typeString":"type(contract OracleInterface)"}},"id":3228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18833:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":3229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18861:8:20","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"18833:36:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18833:43:20","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3269,"nodeType":"TryStatement","src":"18829:576:20"}]}},{"expression":{"components":[{"id":3272,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"19433:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":3273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19448:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":3274,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19432:22:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3207,"id":3275,"nodeType":"Return","src":"19425:29:20"}]},"documentation":{"id":3195,"nodeType":"StructuredDocumentation","src":"17665:843:20","text":" @notice Gets a price for the provided asset\n @dev This function won't revert when price is 0, because the fallback oracle may still be\n able to fetch a correct price\n @param asset asset address\n @param pivotPrice Pivot oracle price\n @param pivotEnabled If pivot oracle is not empty and enabled\n @return price USD price in scaled decimals\n e.g. asset decimals is 8 then price is returned as 10**18 * 10**(18-8) = 10**28 decimals\n @return pivotValidated Boolean representing if the validation of main oracle price\n and pivot oracle price were successful\n @custom:error Invalid price error is thrown if main oracle fails to fetch price of the asset\n @custom:error Invalid price error is thrown if main oracle is not enabled or main oracle\n address is null"},"id":3277,"implemented":true,"kind":"function","modifiers":[],"name":"_getMainOraclePrice","nameLocation":"18522:19:20","nodeType":"FunctionDefinition","parameters":{"id":3202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3197,"mutability":"mutable","name":"asset","nameLocation":"18559:5:20","nodeType":"VariableDeclaration","scope":3277,"src":"18551:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3196,"name":"address","nodeType":"ElementaryTypeName","src":"18551:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3199,"mutability":"mutable","name":"pivotPrice","nameLocation":"18582:10:20","nodeType":"VariableDeclaration","scope":3277,"src":"18574:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3198,"name":"uint256","nodeType":"ElementaryTypeName","src":"18574:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3201,"mutability":"mutable","name":"pivotEnabled","nameLocation":"18607:12:20","nodeType":"VariableDeclaration","scope":3277,"src":"18602:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3200,"name":"bool","nodeType":"ElementaryTypeName","src":"18602:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18541:84:20"},"returnParameters":{"id":3207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3277,"src":"18649:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3203,"name":"uint256","nodeType":"ElementaryTypeName","src":"18649:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3277,"src":"18658:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3205,"name":"bool","nodeType":"ElementaryTypeName","src":"18658:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18648:15:20"},"scope":3404,"src":"18513:948:20","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3349,"nodeType":"Block","src":"20140:718:20","statements":[{"assignments":[3290,3292],"declarations":[{"constant":false,"id":3290,"mutability":"mutable","name":"fallbackOracle","nameLocation":"20159:14:20","nodeType":"VariableDeclaration","scope":3349,"src":"20151:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3289,"name":"address","nodeType":"ElementaryTypeName","src":"20151:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3292,"mutability":"mutable","name":"fallbackEnabled","nameLocation":"20180:15:20","nodeType":"VariableDeclaration","scope":3349,"src":"20175:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3291,"name":"bool","nodeType":"ElementaryTypeName","src":"20175:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3298,"initialValue":{"arguments":[{"id":3294,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3280,"src":"20209:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3295,"name":"OracleRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"20216:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OracleRole_$2465_$","typeString":"type(enum ResilientOracle.OracleRole)"}},"id":3296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20227:8:20","memberName":"FALLBACK","nodeType":"MemberAccess","referencedDeclaration":2464,"src":"20216:19:20","typeDescriptions":{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_OracleRole_$2465","typeString":"enum ResilientOracle.OracleRole"}],"id":3293,"name":"getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"20199:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_OracleRole_$2465_$returns$_t_address_$_t_bool_$","typeString":"function (address,enum ResilientOracle.OracleRole) view returns (address,bool)"}},"id":3297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20199:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bool_$","typeString":"tuple(address,bool)"}},"nodeType":"VariableDeclarationStatement","src":"20150:86:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3299,"name":"fallbackEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"20250:15:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3300,"name":"fallbackOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3290,"src":"20269:14:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20295:1:20","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":3302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20287:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3301,"name":"address","nodeType":"ElementaryTypeName","src":"20287:7:20","typeDescriptions":{}}},"id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20287:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20269:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20250:47:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3344,"nodeType":"IfStatement","src":"20246:566:20","trueBody":{"id":3343,"nodeType":"Block","src":"20299:513:20","statements":[{"clauses":[{"block":{"id":3334,"nodeType":"Block","src":"20403:330:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3316,"name":"pivotPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"20425:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3317,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"20439:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20425:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3324,"nodeType":"IfStatement","src":"20421:109:20","trueBody":{"id":3323,"nodeType":"Block","src":"20454:76:20","statements":[{"expression":{"components":[{"id":3319,"name":"fallbackOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3314,"src":"20484:19:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":3320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20505:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":3321,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20483:28:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3288,"id":3322,"nodeType":"Return","src":"20476:35:20"}]}},{"expression":{"components":[{"id":3325,"name":"fallbackOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3314,"src":"20576:19:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3328,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3280,"src":"20661:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3329,"name":"fallbackOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3314,"src":"20668:19:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3330,"name":"pivotPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"20689:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3326,"name":"boundValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"20617:14:20","typeDescriptions":{"typeIdentifier":"t_contract$_BoundValidatorInterface_$3698","typeString":"contract BoundValidatorInterface"}},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20632:28:20","memberName":"validatePriceWithAnchorPrice","nodeType":"MemberAccess","referencedDeclaration":3697,"src":"20617:43:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256) view external returns (bool)"}},"id":3331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20617:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3332,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20554:164:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3288,"id":3333,"nodeType":"Return","src":"20547:171:20"}]},"errorName":"","id":3335,"nodeType":"TryCatchClause","parameters":{"id":3315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3314,"mutability":"mutable","name":"fallbackOraclePrice","nameLocation":"20382:19:20","nodeType":"VariableDeclaration","scope":3335,"src":"20374:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3313,"name":"uint256","nodeType":"ElementaryTypeName","src":"20374:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20373:29:20"},"src":"20365:368:20"},{"block":{"id":3340,"nodeType":"Block","src":"20740:62:20","statements":[{"expression":{"components":[{"id":3336,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"20766:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":3337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20781:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":3338,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20765:22:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3288,"id":3339,"nodeType":"Return","src":"20758:29:20"}]},"errorName":"","id":3341,"nodeType":"TryCatchClause","src":"20734:68:20"}],"externalCall":{"arguments":[{"id":3311,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3280,"src":"20358:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":3308,"name":"fallbackOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3290,"src":"20333:14:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3307,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"20317:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OracleInterface_$3666_$","typeString":"type(contract OracleInterface)"}},"id":3309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20317:31:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20349:8:20","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"20317:40:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":3312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20317:47:20","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3342,"nodeType":"TryStatement","src":"20313:489:20"}]}},{"expression":{"components":[{"id":3345,"name":"INVALID_PRICE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"20830:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":3346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20845:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":3347,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20829:22:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":3288,"id":3348,"nodeType":"Return","src":"20822:29:20"}]},"documentation":{"id":3278,"nodeType":"StructuredDocumentation","src":"19467:563:20","text":" @dev This function won't revert when the price is 0 because getPrice checks if price is > 0\n @param asset asset address\n @return price USD price in 18 decimals\n @return pivotValidated Boolean representing if the validation of fallback oracle price\n and pivot oracle price were successfully\n @custom:error Invalid price error is thrown if fallback oracle fails to fetch price of the asset\n @custom:error Invalid price error is thrown if fallback oracle is not enabled or fallback oracle\n address is null"},"id":3350,"implemented":true,"kind":"function","modifiers":[],"name":"_getFallbackOraclePrice","nameLocation":"20044:23:20","nodeType":"FunctionDefinition","parameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3280,"mutability":"mutable","name":"asset","nameLocation":"20076:5:20","nodeType":"VariableDeclaration","scope":3350,"src":"20068:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3279,"name":"address","nodeType":"ElementaryTypeName","src":"20068:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3282,"mutability":"mutable","name":"pivotPrice","nameLocation":"20091:10:20","nodeType":"VariableDeclaration","scope":3350,"src":"20083:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3281,"name":"uint256","nodeType":"ElementaryTypeName","src":"20083:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20067:35:20"},"returnParameters":{"id":3288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3350,"src":"20125:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3284,"name":"uint256","nodeType":"ElementaryTypeName","src":"20125:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3350,"src":"20134:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3286,"name":"bool","nodeType":"ElementaryTypeName","src":"20134:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20124:15:20"},"scope":3404,"src":"20035:823:20","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3388,"nodeType":"Block","src":"21134:230:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3361,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"21148:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3362,"name":"nativeMarket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"21158:12:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21148:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3369,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"21232:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3370,"name":"vai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"21242:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21232:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3385,"nodeType":"Block","src":"21289:69:20","statements":[{"expression":{"id":3383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3377,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"21303:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3379,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"21327:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3378,"name":"VBep20Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3730,"src":"21311:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VBep20Interface_$3730_$","typeString":"type(contract VBep20Interface)"}},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21311:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VBep20Interface_$3730","typeString":"contract VBep20Interface"}},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21335:10:20","memberName":"underlying","nodeType":"MemberAccess","referencedDeclaration":3729,"src":"21311:34:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21311:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21303:44:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3384,"nodeType":"ExpressionStatement","src":"21303:44:20"}]},"id":3386,"nodeType":"IfStatement","src":"21228:130:20","trueBody":{"id":3376,"nodeType":"Block","src":"21247:36:20","statements":[{"expression":{"id":3374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3372,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"21261:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3373,"name":"vai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"21269:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21261:11:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3375,"nodeType":"ExpressionStatement","src":"21261:11:20"}]}},"id":3387,"nodeType":"IfStatement","src":"21144:214:20","trueBody":{"id":3368,"nodeType":"Block","src":"21172:50:20","statements":[{"expression":{"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3364,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"21186:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3365,"name":"NATIVE_TOKEN_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"21194:17:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21186:25:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3367,"nodeType":"ExpressionStatement","src":"21186:25:20"}]}}]},"documentation":{"id":3351,"nodeType":"StructuredDocumentation","src":"20864:160:20","text":" @dev This function returns the underlying asset of a vToken\n @param vToken vToken address\n @return asset underlying asset address"},"id":3389,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":3356,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"21102:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3357,"kind":"modifierInvocation","modifierName":{"id":3355,"name":"notNullAddress","nameLocations":["21087:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":2561,"src":"21087:14:20"},"nodeType":"ModifierInvocation","src":"21087:22:20"}],"name":"_getUnderlyingAsset","nameLocation":"21038:19:20","nodeType":"FunctionDefinition","parameters":{"id":3354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3353,"mutability":"mutable","name":"vToken","nameLocation":"21066:6:20","nodeType":"VariableDeclaration","scope":3389,"src":"21058:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3352,"name":"address","nodeType":"ElementaryTypeName","src":"21058:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21057:16:20"},"returnParameters":{"id":3360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3359,"mutability":"mutable","name":"asset","nameLocation":"21127:5:20","nodeType":"VariableDeclaration","scope":3389,"src":"21119:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3358,"name":"address","nodeType":"ElementaryTypeName","src":"21119:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21118:15:20"},"scope":3404,"src":"21029:335:20","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3402,"nodeType":"Block","src":"21621:58:20","statements":[{"expression":{"expression":{"baseExpression":{"id":3397,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"21638:12:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$2482_storage_$","typeString":"mapping(address => struct ResilientOracle.TokenConfig storage ref)"}},"id":3399,"indexExpression":{"id":3398,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3392,"src":"21651:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21638:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$2482_storage","typeString":"struct ResilientOracle.TokenConfig storage ref"}},"id":3400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21658:14:20","memberName":"cachingEnabled","nodeType":"MemberAccess","referencedDeclaration":2481,"src":"21638:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3396,"id":3401,"nodeType":"Return","src":"21631:41:20"}]},"documentation":{"id":3390,"nodeType":"StructuredDocumentation","src":"21370:178:20","text":" @dev This function checks if the asset price should be cached\n @param asset asset address\n @return bool true if caching is enabled, false otherwise"},"id":3403,"implemented":true,"kind":"function","modifiers":[],"name":"_isCacheEnabled","nameLocation":"21562:15:20","nodeType":"FunctionDefinition","parameters":{"id":3393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3392,"mutability":"mutable","name":"asset","nameLocation":"21586:5:20","nodeType":"VariableDeclaration","scope":3403,"src":"21578:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3391,"name":"address","nodeType":"ElementaryTypeName","src":"21578:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21577:15:20"},"returnParameters":{"id":3396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3403,"src":"21615:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3394,"name":"bool","nodeType":"ElementaryTypeName","src":"21615:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21614:6:20"},"scope":3404,"src":"21553:126:20","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":3405,"src":"2586:19095:20","usedErrors":[1961],"usedEvents":[120,227,357,526,531,1952,2518,2527,2536,2543]}],"src":"79:21603:20"},"id":20},"contracts/hardhat-dependency-compiler/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","exportedSymbols":{"AccessControlledV8":[2080],"AddressUpgradeable":[969],"ContextUpgradeable":[1020],"IAccessControl":[1093],"IAccessControlManagerV8":[2125],"Initializable":[511],"Ownable2StepUpgradeable":[209],"OwnableUpgradeable":[342]},"id":3408,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":3406,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:21"},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","id":3407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3408,"sourceUnit":2081,"src":"63:89:21","symbolAliases":[],"unitAlias":""}],"src":"39:114:21"},"id":21},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[10025],"Context":[10047],"ERC1967Proxy":[9041],"ERC1967Upgrade":[9359],"IBeacon":[9421],"IERC1822Proxiable":[8988],"Ownable":[8978],"Proxy":[9411],"ProxyAdmin":[9566],"StorageSlot":[10107],"TransparentUpgradeableProxy":[9730]},"id":3411,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":3409,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:22"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","file":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","id":3410,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3411,"sourceUnit":9567,"src":"63:79:22","symbolAliases":[],"unitAlias":""}],"src":"39:104:22"},"id":22},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[10025],"ERC1967Proxy":[9041],"ERC1967Upgrade":[9359],"IBeacon":[9421],"IERC1822Proxiable":[8988],"OptimizedTransparentUpgradeableProxy":[10282],"Proxy":[9411],"StorageSlot":[10107]},"id":3414,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":3412,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:23"},{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","file":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","id":3413,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3414,"sourceUnit":10283,"src":"63:80:23","symbolAliases":[],"unitAlias":""}],"src":"39:105:23"},"id":23},"contracts/interfaces/FeedRegistryInterface.sol":{"ast":{"absolutePath":"contracts/interfaces/FeedRegistryInterface.sol","exportedSymbols":{"FeedRegistryInterface":[3442]},"id":3443,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3415,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:24"},{"abstract":false,"baseContracts":[],"canonicalName":"FeedRegistryInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3442,"linearizedBaseContracts":[3442],"name":"FeedRegistryInterface","nameLocation":"77:21:24","nodeType":"ContractDefinition","nodes":[{"functionSelector":"bfda5e71","id":3432,"implemented":false,"kind":"function","modifiers":[],"name":"latestRoundDataByName","nameLocation":"114:21:24","nodeType":"FunctionDefinition","parameters":{"id":3420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3417,"mutability":"mutable","name":"base","nameLocation":"159:4:24","nodeType":"VariableDeclaration","scope":3432,"src":"145:18:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3416,"name":"string","nodeType":"ElementaryTypeName","src":"145:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3419,"mutability":"mutable","name":"quote","nameLocation":"187:5:24","nodeType":"VariableDeclaration","scope":3432,"src":"173:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3418,"name":"string","nodeType":"ElementaryTypeName","src":"173:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"135:63:24"},"returnParameters":{"id":3431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3422,"mutability":"mutable","name":"roundId","nameLocation":"253:7:24","nodeType":"VariableDeclaration","scope":3432,"src":"246:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":3421,"name":"uint80","nodeType":"ElementaryTypeName","src":"246:6:24","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"},{"constant":false,"id":3424,"mutability":"mutable","name":"answer","nameLocation":"269:6:24","nodeType":"VariableDeclaration","scope":3432,"src":"262:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3423,"name":"int256","nodeType":"ElementaryTypeName","src":"262:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3426,"mutability":"mutable","name":"startedAt","nameLocation":"285:9:24","nodeType":"VariableDeclaration","scope":3432,"src":"277:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3425,"name":"uint256","nodeType":"ElementaryTypeName","src":"277:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3428,"mutability":"mutable","name":"updatedAt","nameLocation":"304:9:24","nodeType":"VariableDeclaration","scope":3432,"src":"296:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3427,"name":"uint256","nodeType":"ElementaryTypeName","src":"296:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3430,"mutability":"mutable","name":"answeredInRound","nameLocation":"322:15:24","nodeType":"VariableDeclaration","scope":3432,"src":"315:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":3429,"name":"uint80","nodeType":"ElementaryTypeName","src":"315:6:24","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"245:93:24"},"scope":3442,"src":"105:234:24","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6e91995a","id":3441,"implemented":false,"kind":"function","modifiers":[],"name":"decimalsByName","nameLocation":"354:14:24","nodeType":"FunctionDefinition","parameters":{"id":3437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3434,"mutability":"mutable","name":"base","nameLocation":"383:4:24","nodeType":"VariableDeclaration","scope":3441,"src":"369:18:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3433,"name":"string","nodeType":"ElementaryTypeName","src":"369:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3436,"mutability":"mutable","name":"quote","nameLocation":"403:5:24","nodeType":"VariableDeclaration","scope":3441,"src":"389:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3435,"name":"string","nodeType":"ElementaryTypeName","src":"389:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"368:41:24"},"returnParameters":{"id":3440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3441,"src":"433:5:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3438,"name":"uint8","nodeType":"ElementaryTypeName","src":"433:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"432:7:24"},"scope":3442,"src":"345:95:24","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3443,"src":"67:375:24","usedErrors":[],"usedEvents":[]}],"src":"41:402:24"},"id":24},"contracts/interfaces/IAccountant.sol":{"ast":{"absolutePath":"contracts/interfaces/IAccountant.sol","exportedSymbols":{"IAccountant":[3450]},"id":3451,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3444,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:25"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccountant","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3450,"linearizedBaseContracts":[3450],"name":"IAccountant","nameLocation":"76:11:25","nodeType":"ContractDefinition","nodes":[{"functionSelector":"282a8700","id":3449,"implemented":false,"kind":"function","modifiers":[],"name":"getRateSafe","nameLocation":"103:11:25","nodeType":"FunctionDefinition","parameters":{"id":3445,"nodeType":"ParameterList","parameters":[],"src":"114:2:25"},"returnParameters":{"id":3448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3449,"src":"140:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3446,"name":"uint256","nodeType":"ElementaryTypeName","src":"140:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"139:9:25"},"scope":3450,"src":"94:55:25","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3451,"src":"66:85:25","usedErrors":[],"usedEvents":[]}],"src":"41:111:25"},"id":25},"contracts/interfaces/IAnkrBNB.sol":{"ast":{"absolutePath":"contracts/interfaces/IAnkrBNB.sol","exportedSymbols":{"IAnkrBNB":[3465]},"id":3466,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3452,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:26"},{"abstract":false,"baseContracts":[],"canonicalName":"IAnkrBNB","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3465,"linearizedBaseContracts":[3465],"name":"IAnkrBNB","nameLocation":"76:8:26","nodeType":"ContractDefinition","nodes":[{"functionSelector":"6c58d43d","id":3459,"implemented":false,"kind":"function","modifiers":[],"name":"sharesToBonds","nameLocation":"100:13:26","nodeType":"FunctionDefinition","parameters":{"id":3455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3454,"mutability":"mutable","name":"amount","nameLocation":"122:6:26","nodeType":"VariableDeclaration","scope":3459,"src":"114:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3453,"name":"uint256","nodeType":"ElementaryTypeName","src":"114:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113:16:26"},"returnParameters":{"id":3458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3459,"src":"153:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3456,"name":"uint256","nodeType":"ElementaryTypeName","src":"153:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"152:9:26"},"scope":3465,"src":"91:71:26","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":3464,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"176:8:26","nodeType":"FunctionDefinition","parameters":{"id":3460,"nodeType":"ParameterList","parameters":[],"src":"184:2:26"},"returnParameters":{"id":3463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3464,"src":"210:5:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3461,"name":"uint8","nodeType":"ElementaryTypeName","src":"210:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"209:7:26"},"scope":3465,"src":"167:50:26","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3466,"src":"66:153:26","usedErrors":[],"usedEvents":[]}],"src":"41:179:26"},"id":26},"contracts/interfaces/IAsBNB.sol":{"ast":{"absolutePath":"contracts/interfaces/IAsBNB.sol","exportedSymbols":{"IAsBNB":[3478]},"id":3479,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3467,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:27"},{"abstract":false,"baseContracts":[],"canonicalName":"IAsBNB","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3478,"linearizedBaseContracts":[3478],"name":"IAsBNB","nameLocation":"76:6:27","nodeType":"ContractDefinition","nodes":[{"functionSelector":"07546172","id":3472,"implemented":false,"kind":"function","modifiers":[],"name":"minter","nameLocation":"98:6:27","nodeType":"FunctionDefinition","parameters":{"id":3468,"nodeType":"ParameterList","parameters":[],"src":"104:2:27"},"returnParameters":{"id":3471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3470,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3472,"src":"130:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3469,"name":"address","nodeType":"ElementaryTypeName","src":"130:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"129:9:27"},"scope":3478,"src":"89:50:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":3477,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"153:8:27","nodeType":"FunctionDefinition","parameters":{"id":3473,"nodeType":"ParameterList","parameters":[],"src":"161:2:27"},"returnParameters":{"id":3476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3477,"src":"187:5:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3474,"name":"uint8","nodeType":"ElementaryTypeName","src":"187:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"186:7:27"},"scope":3478,"src":"144:50:27","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3479,"src":"66:130:27","usedErrors":[],"usedEvents":[]}],"src":"41:156:27"},"id":27},"contracts/interfaces/IAsBNBMinter.sol":{"ast":{"absolutePath":"contracts/interfaces/IAsBNBMinter.sol","exportedSymbols":{"IAsBNBMinter":[3488]},"id":3489,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3480,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:28"},{"abstract":false,"baseContracts":[],"canonicalName":"IAsBNBMinter","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3488,"linearizedBaseContracts":[3488],"name":"IAsBNBMinter","nameLocation":"76:12:28","nodeType":"ContractDefinition","nodes":[{"functionSelector":"85906256","id":3487,"implemented":false,"kind":"function","modifiers":[],"name":"convertToTokens","nameLocation":"104:15:28","nodeType":"FunctionDefinition","parameters":{"id":3483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3482,"mutability":"mutable","name":"amount","nameLocation":"128:6:28","nodeType":"VariableDeclaration","scope":3487,"src":"120:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3481,"name":"uint256","nodeType":"ElementaryTypeName","src":"120:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"119:16:28"},"returnParameters":{"id":3486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3487,"src":"159:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3484,"name":"uint256","nodeType":"ElementaryTypeName","src":"159:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"158:9:28"},"scope":3488,"src":"95:73:28","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3489,"src":"66:104:28","usedErrors":[],"usedEvents":[]}],"src":"41:130:28"},"id":28},"contracts/interfaces/ICappedOracle.sol":{"ast":{"absolutePath":"contracts/interfaces/ICappedOracle.sol","exportedSymbols":{"ICappedOracle":[3494]},"id":3495,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3490,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:29"},{"abstract":false,"baseContracts":[],"canonicalName":"ICappedOracle","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3494,"linearizedBaseContracts":[3494],"name":"ICappedOracle","nameLocation":"76:13:29","nodeType":"ContractDefinition","nodes":[{"functionSelector":"69240426","id":3493,"implemented":false,"kind":"function","modifiers":[],"name":"updateSnapshot","nameLocation":"105:14:29","nodeType":"FunctionDefinition","parameters":{"id":3491,"nodeType":"ParameterList","parameters":[],"src":"119:2:29"},"returnParameters":{"id":3492,"nodeType":"ParameterList","parameters":[],"src":"130:0:29"},"scope":3494,"src":"96:35:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3495,"src":"66:67:29","usedErrors":[],"usedEvents":[]}],"src":"41:93:29"},"id":29},"contracts/interfaces/IERC4626.sol":{"ast":{"absolutePath":"contracts/interfaces/IERC4626.sol","exportedSymbols":{"IERC4626":[3509]},"id":3510,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3496,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:30"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC4626","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3509,"linearizedBaseContracts":[3509],"name":"IERC4626","nameLocation":"76:8:30","nodeType":"ContractDefinition","nodes":[{"functionSelector":"07a2d13a","id":3503,"implemented":false,"kind":"function","modifiers":[],"name":"convertToAssets","nameLocation":"100:15:30","nodeType":"FunctionDefinition","parameters":{"id":3499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3498,"mutability":"mutable","name":"shares","nameLocation":"124:6:30","nodeType":"VariableDeclaration","scope":3503,"src":"116:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3497,"name":"uint256","nodeType":"ElementaryTypeName","src":"116:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"115:16:30"},"returnParameters":{"id":3502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3501,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3503,"src":"155:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3500,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"154:9:30"},"scope":3509,"src":"91:73:30","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":3508,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"178:8:30","nodeType":"FunctionDefinition","parameters":{"id":3504,"nodeType":"ParameterList","parameters":[],"src":"186:2:30"},"returnParameters":{"id":3507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3508,"src":"212:5:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3505,"name":"uint8","nodeType":"ElementaryTypeName","src":"212:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"211:7:30"},"scope":3509,"src":"169:50:30","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3510,"src":"66:155:30","usedErrors":[],"usedEvents":[]}],"src":"41:181:30"},"id":30},"contracts/interfaces/IEtherFiLiquidityPool.sol":{"ast":{"absolutePath":"contracts/interfaces/IEtherFiLiquidityPool.sol","exportedSymbols":{"IEtherFiLiquidityPool":[3519]},"id":3520,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3511,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:31"},{"abstract":false,"baseContracts":[],"canonicalName":"IEtherFiLiquidityPool","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3519,"linearizedBaseContracts":[3519],"name":"IEtherFiLiquidityPool","nameLocation":"76:21:31","nodeType":"ContractDefinition","nodes":[{"functionSelector":"561bddf8","id":3518,"implemented":false,"kind":"function","modifiers":[],"name":"amountForShare","nameLocation":"113:14:31","nodeType":"FunctionDefinition","parameters":{"id":3514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3513,"mutability":"mutable","name":"_share","nameLocation":"136:6:31","nodeType":"VariableDeclaration","scope":3518,"src":"128:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3512,"name":"uint256","nodeType":"ElementaryTypeName","src":"128:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"127:16:31"},"returnParameters":{"id":3517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3518,"src":"167:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3515,"name":"uint256","nodeType":"ElementaryTypeName","src":"167:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"166:9:31"},"scope":3519,"src":"104:72:31","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3520,"src":"66:112:31","usedErrors":[],"usedEvents":[]}],"src":"41:138:31"},"id":31},"contracts/interfaces/IPStakePool.sol":{"ast":{"absolutePath":"contracts/interfaces/IPStakePool.sol","exportedSymbols":{"IPStakePool":[3534]},"id":3535,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3521,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:32"},{"abstract":false,"baseContracts":[],"canonicalName":"IPStakePool","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3534,"linearizedBaseContracts":[3534],"name":"IPStakePool","nameLocation":"76:11:32","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IPStakePool.Data","id":3526,"members":[{"constant":false,"id":3523,"mutability":"mutable","name":"totalWei","nameLocation":"124:8:32","nodeType":"VariableDeclaration","scope":3526,"src":"116:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3522,"name":"uint256","nodeType":"ElementaryTypeName","src":"116:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3525,"mutability":"mutable","name":"poolTokenSupply","nameLocation":"150:15:32","nodeType":"VariableDeclaration","scope":3526,"src":"142:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3524,"name":"uint256","nodeType":"ElementaryTypeName","src":"142:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Data","nameLocation":"101:4:32","nodeType":"StructDefinition","scope":3534,"src":"94:78:32","visibility":"public"},{"documentation":{"id":3527,"nodeType":"StructuredDocumentation","src":"178:79:32","text":" @dev The current exchange rate for converting stkBNB to BNB."},"functionSelector":"3ba0b9a9","id":3533,"implemented":false,"kind":"function","modifiers":[],"name":"exchangeRate","nameLocation":"271:12:32","nodeType":"FunctionDefinition","parameters":{"id":3528,"nodeType":"ParameterList","parameters":[],"src":"283:2:32"},"returnParameters":{"id":3532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3533,"src":"309:11:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_memory_ptr","typeString":"struct IPStakePool.Data"},"typeName":{"id":3530,"nodeType":"UserDefinedTypeName","pathNode":{"id":3529,"name":"Data","nameLocations":["309:4:32"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"309:4:32"},"referencedDeclaration":3526,"src":"309:4:32","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_storage_ptr","typeString":"struct IPStakePool.Data"}},"visibility":"internal"}],"src":"308:13:32"},"scope":3534,"src":"262:60:32","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3535,"src":"66:258:32","usedErrors":[],"usedEvents":[]}],"src":"41:284:32"},"id":32},"contracts/interfaces/IPendlePtOracle.sol":{"ast":{"absolutePath":"contracts/interfaces/IPendlePtOracle.sol","exportedSymbols":{"IPendlePtOracle":[3568]},"id":3569,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3536,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:33"},{"abstract":false,"baseContracts":[],"canonicalName":"IPendlePtOracle","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3568,"linearizedBaseContracts":[3568],"name":"IPendlePtOracle","nameLocation":"76:15:33","nodeType":"ContractDefinition","nodes":[{"functionSelector":"abca0eab","id":3545,"implemented":false,"kind":"function","modifiers":[],"name":"getPtToAssetRate","nameLocation":"107:16:33","nodeType":"FunctionDefinition","parameters":{"id":3541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3538,"mutability":"mutable","name":"market","nameLocation":"132:6:33","nodeType":"VariableDeclaration","scope":3545,"src":"124:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3537,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3540,"mutability":"mutable","name":"duration","nameLocation":"147:8:33","nodeType":"VariableDeclaration","scope":3545,"src":"140:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3539,"name":"uint32","nodeType":"ElementaryTypeName","src":"140:6:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"123:33:33"},"returnParameters":{"id":3544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3545,"src":"180:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3542,"name":"uint256","nodeType":"ElementaryTypeName","src":"180:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"179:9:33"},"scope":3568,"src":"98:91:33","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a31426d1","id":3554,"implemented":false,"kind":"function","modifiers":[],"name":"getPtToSyRate","nameLocation":"204:13:33","nodeType":"FunctionDefinition","parameters":{"id":3550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3547,"mutability":"mutable","name":"market","nameLocation":"226:6:33","nodeType":"VariableDeclaration","scope":3554,"src":"218:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3546,"name":"address","nodeType":"ElementaryTypeName","src":"218:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3549,"mutability":"mutable","name":"duration","nameLocation":"241:8:33","nodeType":"VariableDeclaration","scope":3554,"src":"234:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3548,"name":"uint32","nodeType":"ElementaryTypeName","src":"234:6:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"217:33:33"},"returnParameters":{"id":3553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3554,"src":"274:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3551,"name":"uint256","nodeType":"ElementaryTypeName","src":"274:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"273:9:33"},"scope":3568,"src":"195:88:33","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"873e9600","id":3567,"implemented":false,"kind":"function","modifiers":[],"name":"getOracleState","nameLocation":"298:14:33","nodeType":"FunctionDefinition","parameters":{"id":3559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3556,"mutability":"mutable","name":"market","nameLocation":"330:6:33","nodeType":"VariableDeclaration","scope":3567,"src":"322:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3555,"name":"address","nodeType":"ElementaryTypeName","src":"322:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3558,"mutability":"mutable","name":"duration","nameLocation":"353:8:33","nodeType":"VariableDeclaration","scope":3567,"src":"346:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3557,"name":"uint32","nodeType":"ElementaryTypeName","src":"346:6:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"312:55:33"},"returnParameters":{"id":3566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3561,"mutability":"mutable","name":"increaseCardinalityRequired","nameLocation":"420:27:33","nodeType":"VariableDeclaration","scope":3567,"src":"415:32:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3560,"name":"bool","nodeType":"ElementaryTypeName","src":"415:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3563,"mutability":"mutable","name":"cardinalityRequired","nameLocation":"456:19:33","nodeType":"VariableDeclaration","scope":3567,"src":"449:26:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3562,"name":"uint16","nodeType":"ElementaryTypeName","src":"449:6:33","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3565,"mutability":"mutable","name":"oldestObservationSatisfied","nameLocation":"482:26:33","nodeType":"VariableDeclaration","scope":3567,"src":"477:31:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3564,"name":"bool","nodeType":"ElementaryTypeName","src":"477:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"414:95:33"},"scope":3568,"src":"289:221:33","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3569,"src":"66:446:33","usedErrors":[],"usedEvents":[]}],"src":"41:472:33"},"id":33},"contracts/interfaces/ISFrax.sol":{"ast":{"absolutePath":"contracts/interfaces/ISFrax.sol","exportedSymbols":{"ISFrax":[3583]},"id":3584,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3570,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:34"},{"abstract":false,"baseContracts":[],"canonicalName":"ISFrax","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3583,"linearizedBaseContracts":[3583],"name":"ISFrax","nameLocation":"76:6:34","nodeType":"ContractDefinition","nodes":[{"functionSelector":"07a2d13a","id":3577,"implemented":false,"kind":"function","modifiers":[],"name":"convertToAssets","nameLocation":"98:15:34","nodeType":"FunctionDefinition","parameters":{"id":3573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3572,"mutability":"mutable","name":"shares","nameLocation":"122:6:34","nodeType":"VariableDeclaration","scope":3577,"src":"114:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3571,"name":"uint256","nodeType":"ElementaryTypeName","src":"114:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113:16:34"},"returnParameters":{"id":3576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3577,"src":"153:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3574,"name":"uint256","nodeType":"ElementaryTypeName","src":"153:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"152:9:34"},"scope":3583,"src":"89:73:34","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":3582,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"176:8:34","nodeType":"FunctionDefinition","parameters":{"id":3578,"nodeType":"ParameterList","parameters":[],"src":"184:2:34"},"returnParameters":{"id":3581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3582,"src":"210:5:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3579,"name":"uint8","nodeType":"ElementaryTypeName","src":"210:5:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"209:7:34"},"scope":3583,"src":"167:50:34","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3584,"src":"66:153:34","usedErrors":[],"usedEvents":[]}],"src":"41:179:34"},"id":34},"contracts/interfaces/ISfrxEthFraxOracle.sol":{"ast":{"absolutePath":"contracts/interfaces/ISfrxEthFraxOracle.sol","exportedSymbols":{"ISfrxEthFraxOracle":[3595]},"id":3596,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3585,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:35"},{"abstract":false,"baseContracts":[],"canonicalName":"ISfrxEthFraxOracle","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3595,"linearizedBaseContracts":[3595],"name":"ISfrxEthFraxOracle","nameLocation":"76:18:35","nodeType":"ContractDefinition","nodes":[{"functionSelector":"bd9a548b","id":3594,"implemented":false,"kind":"function","modifiers":[],"name":"getPrices","nameLocation":"110:9:35","nodeType":"FunctionDefinition","parameters":{"id":3586,"nodeType":"ParameterList","parameters":[],"src":"119:2:35"},"returnParameters":{"id":3593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3588,"mutability":"mutable","name":"_isbadData","nameLocation":"150:10:35","nodeType":"VariableDeclaration","scope":3594,"src":"145:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3587,"name":"bool","nodeType":"ElementaryTypeName","src":"145:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3590,"mutability":"mutable","name":"_priceLow","nameLocation":"170:9:35","nodeType":"VariableDeclaration","scope":3594,"src":"162:17:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3589,"name":"uint256","nodeType":"ElementaryTypeName","src":"162:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3592,"mutability":"mutable","name":"_priceHigh","nameLocation":"189:10:35","nodeType":"VariableDeclaration","scope":3594,"src":"181:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3591,"name":"uint256","nodeType":"ElementaryTypeName","src":"181:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"144:56:35"},"scope":3595,"src":"101:100:35","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3596,"src":"66:137:35","usedErrors":[],"usedEvents":[]}],"src":"41:163:35"},"id":35},"contracts/interfaces/IStETH.sol":{"ast":{"absolutePath":"contracts/interfaces/IStETH.sol","exportedSymbols":{"IStETH":[3610]},"id":3611,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3597,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:36"},{"abstract":false,"baseContracts":[],"canonicalName":"IStETH","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3610,"linearizedBaseContracts":[3610],"name":"IStETH","nameLocation":"77:6:36","nodeType":"ContractDefinition","nodes":[{"functionSelector":"7a28fb88","id":3604,"implemented":false,"kind":"function","modifiers":[],"name":"getPooledEthByShares","nameLocation":"99:20:36","nodeType":"FunctionDefinition","parameters":{"id":3600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3599,"mutability":"mutable","name":"_sharesAmount","nameLocation":"128:13:36","nodeType":"VariableDeclaration","scope":3604,"src":"120:21:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3598,"name":"uint256","nodeType":"ElementaryTypeName","src":"120:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"119:23:36"},"returnParameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3604,"src":"166:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3601,"name":"uint256","nodeType":"ElementaryTypeName","src":"166:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"165:9:36"},"scope":3610,"src":"90:85:36","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":3609,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"189:8:36","nodeType":"FunctionDefinition","parameters":{"id":3605,"nodeType":"ParameterList","parameters":[],"src":"197:2:36"},"returnParameters":{"id":3608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3609,"src":"223:5:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3606,"name":"uint8","nodeType":"ElementaryTypeName","src":"223:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"222:7:36"},"scope":3610,"src":"180:50:36","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3611,"src":"67:165:36","usedErrors":[],"usedEvents":[]}],"src":"41:192:36"},"id":36},"contracts/interfaces/IStaderStakeManager.sol":{"ast":{"absolutePath":"contracts/interfaces/IStaderStakeManager.sol","exportedSymbols":{"IStaderStakeManager":[3620]},"id":3621,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3612,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:37"},{"abstract":false,"baseContracts":[],"canonicalName":"IStaderStakeManager","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3620,"linearizedBaseContracts":[3620],"name":"IStaderStakeManager","nameLocation":"76:19:37","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ca0506e8","id":3619,"implemented":false,"kind":"function","modifiers":[],"name":"convertBnbXToBnb","nameLocation":"111:16:37","nodeType":"FunctionDefinition","parameters":{"id":3615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"_amount","nameLocation":"136:7:37","nodeType":"VariableDeclaration","scope":3619,"src":"128:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3613,"name":"uint256","nodeType":"ElementaryTypeName","src":"128:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"127:17:37"},"returnParameters":{"id":3618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3619,"src":"168:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3616,"name":"uint256","nodeType":"ElementaryTypeName","src":"168:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"167:9:37"},"scope":3620,"src":"102:75:37","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3621,"src":"66:113:37","usedErrors":[],"usedEvents":[]}],"src":"41:139:37"},"id":37},"contracts/interfaces/ISynclubStakeManager.sol":{"ast":{"absolutePath":"contracts/interfaces/ISynclubStakeManager.sol","exportedSymbols":{"ISynclubStakeManager":[3630]},"id":3631,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3622,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:38"},{"abstract":false,"baseContracts":[],"canonicalName":"ISynclubStakeManager","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3630,"linearizedBaseContracts":[3630],"name":"ISynclubStakeManager","nameLocation":"76:20:38","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ce6298e1","id":3629,"implemented":false,"kind":"function","modifiers":[],"name":"convertSnBnbToBnb","nameLocation":"112:17:38","nodeType":"FunctionDefinition","parameters":{"id":3625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3624,"mutability":"mutable","name":"_amount","nameLocation":"138:7:38","nodeType":"VariableDeclaration","scope":3629,"src":"130:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3623,"name":"uint256","nodeType":"ElementaryTypeName","src":"130:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"129:17:38"},"returnParameters":{"id":3628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3629,"src":"170:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3626,"name":"uint256","nodeType":"ElementaryTypeName","src":"170:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"169:9:38"},"scope":3630,"src":"103:76:38","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3631,"src":"66:115:38","usedErrors":[],"usedEvents":[]}],"src":"41:141:38"},"id":38},"contracts/interfaces/IWBETH.sol":{"ast":{"absolutePath":"contracts/interfaces/IWBETH.sol","exportedSymbols":{"IWBETH":[3643]},"id":3644,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3632,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:39"},{"abstract":false,"baseContracts":[],"canonicalName":"IWBETH","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3643,"linearizedBaseContracts":[3643],"name":"IWBETH","nameLocation":"76:6:39","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3ba0b9a9","id":3637,"implemented":false,"kind":"function","modifiers":[],"name":"exchangeRate","nameLocation":"98:12:39","nodeType":"FunctionDefinition","parameters":{"id":3633,"nodeType":"ParameterList","parameters":[],"src":"110:2:39"},"returnParameters":{"id":3636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3637,"src":"136:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3634,"name":"uint256","nodeType":"ElementaryTypeName","src":"136:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"135:9:39"},"scope":3643,"src":"89:56:39","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":3642,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"159:8:39","nodeType":"FunctionDefinition","parameters":{"id":3638,"nodeType":"ParameterList","parameters":[],"src":"167:2:39"},"returnParameters":{"id":3641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3642,"src":"193:5:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3639,"name":"uint8","nodeType":"ElementaryTypeName","src":"193:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"192:7:39"},"scope":3643,"src":"150:50:39","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3644,"src":"66:136:39","usedErrors":[],"usedEvents":[]}],"src":"41:162:39"},"id":39},"contracts/interfaces/IZkETH.sol":{"ast":{"absolutePath":"contracts/interfaces/IZkETH.sol","exportedSymbols":{"IZkETH":[3656]},"id":3657,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3645,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:40"},{"abstract":false,"baseContracts":[],"canonicalName":"IZkETH","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3656,"linearizedBaseContracts":[3656],"name":"IZkETH","nameLocation":"77:6:40","nodeType":"ContractDefinition","nodes":[{"functionSelector":"39648e00","id":3650,"implemented":false,"kind":"function","modifiers":[],"name":"LSTPerToken","nameLocation":"99:11:40","nodeType":"FunctionDefinition","parameters":{"id":3646,"nodeType":"ParameterList","parameters":[],"src":"110:2:40"},"returnParameters":{"id":3649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3648,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3650,"src":"136:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3647,"name":"uint256","nodeType":"ElementaryTypeName","src":"136:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"135:9:40"},"scope":3656,"src":"90:55:40","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":3655,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"159:8:40","nodeType":"FunctionDefinition","parameters":{"id":3651,"nodeType":"ParameterList","parameters":[],"src":"167:2:40"},"returnParameters":{"id":3654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3655,"src":"193:5:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3652,"name":"uint8","nodeType":"ElementaryTypeName","src":"193:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"192:7:40"},"scope":3656,"src":"150:50:40","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3657,"src":"67:135:40","usedErrors":[],"usedEvents":[]}],"src":"41:162:40"},"id":40},"contracts/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"contracts/interfaces/OracleInterface.sol","exportedSymbols":{"BoundValidatorInterface":[3698],"OracleInterface":[3666],"ResilientOracleInterface":[3686]},"id":3699,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3658,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:41"},{"abstract":false,"baseContracts":[],"canonicalName":"OracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3666,"linearizedBaseContracts":[3666],"name":"OracleInterface","nameLocation":"77:15:41","nodeType":"ContractDefinition","nodes":[{"functionSelector":"41976e09","id":3665,"implemented":false,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"108:8:41","nodeType":"FunctionDefinition","parameters":{"id":3661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3660,"mutability":"mutable","name":"asset","nameLocation":"125:5:41","nodeType":"VariableDeclaration","scope":3665,"src":"117:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3659,"name":"address","nodeType":"ElementaryTypeName","src":"117:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"116:15:41"},"returnParameters":{"id":3664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3665,"src":"155:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3662,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"154:9:41"},"scope":3666,"src":"99:65:41","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3699,"src":"67:99:41","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":3667,"name":"OracleInterface","nameLocations":["206:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"206:15:41"},"id":3668,"nodeType":"InheritanceSpecifier","src":"206:15:41"}],"canonicalName":"ResilientOracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3686,"linearizedBaseContracts":[3686,3666],"name":"ResilientOracleInterface","nameLocation":"178:24:41","nodeType":"ContractDefinition","nodes":[{"functionSelector":"96e85ced","id":3673,"implemented":false,"kind":"function","modifiers":[],"name":"updatePrice","nameLocation":"237:11:41","nodeType":"FunctionDefinition","parameters":{"id":3671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3670,"mutability":"mutable","name":"vToken","nameLocation":"257:6:41","nodeType":"VariableDeclaration","scope":3673,"src":"249:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3669,"name":"address","nodeType":"ElementaryTypeName","src":"249:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"248:16:41"},"returnParameters":{"id":3672,"nodeType":"ParameterList","parameters":[],"src":"273:0:41"},"scope":3686,"src":"228:46:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b62cad69","id":3678,"implemented":false,"kind":"function","modifiers":[],"name":"updateAssetPrice","nameLocation":"289:16:41","nodeType":"FunctionDefinition","parameters":{"id":3676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3675,"mutability":"mutable","name":"asset","nameLocation":"314:5:41","nodeType":"VariableDeclaration","scope":3678,"src":"306:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3674,"name":"address","nodeType":"ElementaryTypeName","src":"306:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"305:15:41"},"returnParameters":{"id":3677,"nodeType":"ParameterList","parameters":[],"src":"329:0:41"},"scope":3686,"src":"280:50:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fc57d4df","id":3685,"implemented":false,"kind":"function","modifiers":[],"name":"getUnderlyingPrice","nameLocation":"345:18:41","nodeType":"FunctionDefinition","parameters":{"id":3681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3680,"mutability":"mutable","name":"vToken","nameLocation":"372:6:41","nodeType":"VariableDeclaration","scope":3685,"src":"364:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3679,"name":"address","nodeType":"ElementaryTypeName","src":"364:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"363:16:41"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3685,"src":"403:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3682,"name":"uint256","nodeType":"ElementaryTypeName","src":"403:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:9:41"},"scope":3686,"src":"336:76:41","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3699,"src":"168:246:41","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"BoundValidatorInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3698,"linearizedBaseContracts":[3698],"name":"BoundValidatorInterface","nameLocation":"426:23:41","nodeType":"ContractDefinition","nodes":[{"functionSelector":"97c7033e","id":3697,"implemented":false,"kind":"function","modifiers":[],"name":"validatePriceWithAnchorPrice","nameLocation":"465:28:41","nodeType":"FunctionDefinition","parameters":{"id":3693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3688,"mutability":"mutable","name":"asset","nameLocation":"511:5:41","nodeType":"VariableDeclaration","scope":3697,"src":"503:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3687,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3690,"mutability":"mutable","name":"reporterPrice","nameLocation":"534:13:41","nodeType":"VariableDeclaration","scope":3697,"src":"526:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3689,"name":"uint256","nodeType":"ElementaryTypeName","src":"526:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3692,"mutability":"mutable","name":"anchorPrice","nameLocation":"565:11:41","nodeType":"VariableDeclaration","scope":3697,"src":"557:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3691,"name":"uint256","nodeType":"ElementaryTypeName","src":"557:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:89:41"},"returnParameters":{"id":3696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3697,"src":"606:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3694,"name":"bool","nodeType":"ElementaryTypeName","src":"606:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"605:6:41"},"scope":3698,"src":"456:156:41","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3699,"src":"416:198:41","usedErrors":[],"usedEvents":[]}],"src":"41:574:41"},"id":41},"contracts/interfaces/PublicResolverInterface.sol":{"ast":{"absolutePath":"contracts/interfaces/PublicResolverInterface.sol","exportedSymbols":{"PublicResolverInterface":[3708]},"id":3709,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3700,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"79:24:42"},{"abstract":false,"baseContracts":[],"canonicalName":"PublicResolverInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3708,"linearizedBaseContracts":[3708],"name":"PublicResolverInterface","nameLocation":"115:23:42","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3b3b57de","id":3707,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"154:4:42","nodeType":"FunctionDefinition","parameters":{"id":3703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3702,"mutability":"mutable","name":"node","nameLocation":"167:4:42","nodeType":"VariableDeclaration","scope":3707,"src":"159:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"158:14:42"},"returnParameters":{"id":3706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3707,"src":"196:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3704,"name":"address","nodeType":"ElementaryTypeName","src":"196:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"195:17:42"},"scope":3708,"src":"145:68:42","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3709,"src":"105:110:42","usedErrors":[],"usedEvents":[]}],"src":"79:137:42"},"id":42},"contracts/interfaces/SIDRegistryInterface.sol":{"ast":{"absolutePath":"contracts/interfaces/SIDRegistryInterface.sol","exportedSymbols":{"SIDRegistryInterface":[3718]},"id":3719,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3710,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"79:24:43"},{"abstract":false,"baseContracts":[],"canonicalName":"SIDRegistryInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3718,"linearizedBaseContracts":[3718],"name":"SIDRegistryInterface","nameLocation":"115:20:43","nodeType":"ContractDefinition","nodes":[{"functionSelector":"0178b8bf","id":3717,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"151:8:43","nodeType":"FunctionDefinition","parameters":{"id":3713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3712,"mutability":"mutable","name":"node","nameLocation":"168:4:43","nodeType":"VariableDeclaration","scope":3717,"src":"160:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"160:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"159:14:43"},"returnParameters":{"id":3716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3717,"src":"197:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3714,"name":"address","nodeType":"ElementaryTypeName","src":"197:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"196:9:43"},"scope":3718,"src":"142:64:43","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3719,"src":"105:103:43","usedErrors":[],"usedEvents":[]}],"src":"79:130:43"},"id":43},"contracts/interfaces/VBep20Interface.sol":{"ast":{"absolutePath":"contracts/interfaces/VBep20Interface.sol","exportedSymbols":{"IERC20":[1871],"IERC20Metadata":[1896],"VBep20Interface":[3730]},"id":3731,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3720,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:44"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":3721,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3731,"sourceUnit":1897,"src":"67:75:44","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3722,"name":"IERC20Metadata","nameLocations":["173:14:44"],"nodeType":"IdentifierPath","referencedDeclaration":1896,"src":"173:14:44"},"id":3723,"nodeType":"InheritanceSpecifier","src":"173:14:44"}],"canonicalName":"VBep20Interface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3730,"linearizedBaseContracts":[3730,1896,1871],"name":"VBep20Interface","nameLocation":"154:15:44","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3724,"nodeType":"StructuredDocumentation","src":"194:59:44","text":" @notice Underlying asset for this VToken"},"functionSelector":"6f307dc3","id":3729,"implemented":false,"kind":"function","modifiers":[],"name":"underlying","nameLocation":"267:10:44","nodeType":"FunctionDefinition","parameters":{"id":3725,"nodeType":"ParameterList","parameters":[],"src":"277:2:44"},"returnParameters":{"id":3728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3729,"src":"303:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3726,"name":"address","nodeType":"ElementaryTypeName","src":"303:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"302:9:44"},"scope":3730,"src":"258:54:44","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3731,"src":"144:170:44","usedErrors":[],"usedEvents":[1805,1814]}],"src":"41:274:44"},"id":44},"contracts/lib/Transient.sol":{"ast":{"absolutePath":"contracts/lib/Transient.sol","exportedSymbols":{"Transient":[3777]},"id":3778,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3732,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:45"},{"abstract":false,"baseContracts":[],"canonicalName":"Transient","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3777,"linearizedBaseContracts":[3777],"name":"Transient","nameLocation":"75:9:45","nodeType":"ContractDefinition","nodes":[{"body":{"id":3753,"nodeType":"Block","src":"314:146:45","statements":[{"assignments":[3743],"declarations":[{"constant":false,"id":3743,"mutability":"mutable","name":"slot","nameLocation":"332:4:45","nodeType":"VariableDeclaration","scope":3753,"src":"324:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3751,"initialValue":{"arguments":[{"arguments":[{"id":3747,"name":"cacheSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"360:9:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3748,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3737,"src":"371:3:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"349:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"353:6:45","memberName":"encode","nodeType":"MemberAccess","src":"349:10:45","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"349:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"339:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"339:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"324:52:45"},{"AST":{"nativeSrc":"411:43:45","nodeType":"YulBlock","src":"411:43:45","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"432:4:45","nodeType":"YulIdentifier","src":"432:4:45"},{"name":"value","nativeSrc":"438:5:45","nodeType":"YulIdentifier","src":"438:5:45"}],"functionName":{"name":"tstore","nativeSrc":"425:6:45","nodeType":"YulIdentifier","src":"425:6:45"},"nativeSrc":"425:19:45","nodeType":"YulFunctionCall","src":"425:19:45"},"nativeSrc":"425:19:45","nodeType":"YulExpressionStatement","src":"425:19:45"}]},"evmVersion":"cancun","externalReferences":[{"declaration":3743,"isOffset":false,"isSlot":false,"src":"432:4:45","valueSize":1},{"declaration":3739,"isOffset":false,"isSlot":false,"src":"438:5:45","valueSize":1}],"flags":["memory-safe"],"id":3752,"nodeType":"InlineAssembly","src":"386:68:45"}]},"documentation":{"id":3733,"nodeType":"StructuredDocumentation","src":"91:142:45","text":" @notice Cache the asset price into transient storage\n @param key address of the asset\n @param value asset price"},"id":3754,"implemented":true,"kind":"function","modifiers":[],"name":"cachePrice","nameLocation":"247:10:45","nodeType":"FunctionDefinition","parameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3735,"mutability":"mutable","name":"cacheSlot","nameLocation":"266:9:45","nodeType":"VariableDeclaration","scope":3754,"src":"258:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3737,"mutability":"mutable","name":"key","nameLocation":"285:3:45","nodeType":"VariableDeclaration","scope":3754,"src":"277:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3736,"name":"address","nodeType":"ElementaryTypeName","src":"277:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3739,"mutability":"mutable","name":"value","nameLocation":"298:5:45","nodeType":"VariableDeclaration","scope":3754,"src":"290:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3738,"name":"uint256","nodeType":"ElementaryTypeName","src":"290:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"257:47:45"},"returnParameters":{"id":3741,"nodeType":"ParameterList","parameters":[],"src":"314:0:45"},"scope":3777,"src":"238:222:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3775,"nodeType":"Block","src":"712:147:45","statements":[{"assignments":[3765],"declarations":[{"constant":false,"id":3765,"mutability":"mutable","name":"slot","nameLocation":"730:4:45","nodeType":"VariableDeclaration","scope":3775,"src":"722:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3764,"name":"bytes32","nodeType":"ElementaryTypeName","src":"722:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3773,"initialValue":{"arguments":[{"arguments":[{"id":3769,"name":"cacheSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"758:9:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3770,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3759,"src":"769:3:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"747:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"751:6:45","memberName":"encode","nodeType":"MemberAccess","src":"747:10:45","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"747:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3766,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"737:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"737:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"722:52:45"},{"AST":{"nativeSrc":"809:44:45","nodeType":"YulBlock","src":"809:44:45","statements":[{"nativeSrc":"823:20:45","nodeType":"YulAssignment","src":"823:20:45","value":{"arguments":[{"name":"slot","nativeSrc":"838:4:45","nodeType":"YulIdentifier","src":"838:4:45"}],"functionName":{"name":"tload","nativeSrc":"832:5:45","nodeType":"YulIdentifier","src":"832:5:45"},"nativeSrc":"832:11:45","nodeType":"YulFunctionCall","src":"832:11:45"},"variableNames":[{"name":"value","nativeSrc":"823:5:45","nodeType":"YulIdentifier","src":"823:5:45"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3765,"isOffset":false,"isSlot":false,"src":"838:4:45","valueSize":1},{"declaration":3762,"isOffset":false,"isSlot":false,"src":"823:5:45","valueSize":1}],"flags":["memory-safe"],"id":3774,"nodeType":"InlineAssembly","src":"784:69:45"}]},"documentation":{"id":3755,"nodeType":"StructuredDocumentation","src":"466:146:45","text":" @notice Read cached price from transient storage\n @param key address of the asset\n @return value cached asset price"},"id":3776,"implemented":true,"kind":"function","modifiers":[],"name":"readCachedPrice","nameLocation":"626:15:45","nodeType":"FunctionDefinition","parameters":{"id":3760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3757,"mutability":"mutable","name":"cacheSlot","nameLocation":"650:9:45","nodeType":"VariableDeclaration","scope":3776,"src":"642:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"642:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3759,"mutability":"mutable","name":"key","nameLocation":"669:3:45","nodeType":"VariableDeclaration","scope":3776,"src":"661:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3758,"name":"address","nodeType":"ElementaryTypeName","src":"661:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"641:32:45"},"returnParameters":{"id":3763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3762,"mutability":"mutable","name":"value","nameLocation":"705:5:45","nodeType":"VariableDeclaration","scope":3776,"src":"697:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3761,"name":"uint256","nodeType":"ElementaryTypeName","src":"697:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"696:15:45"},"scope":3777,"src":"617:242:45","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3778,"src":"67:794:45","usedErrors":[],"usedEvents":[]}],"src":"41:821:45"},"id":45},"contracts/oracles/AnkrBNBOracle.sol":{"ast":{"absolutePath":"contracts/oracles/AnkrBNBOracle.sol","exportedSymbols":{"AnkrBNBOracle":[3840],"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"IAnkrBNB":[3465]},"id":3841,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3779,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:46"},{"absolutePath":"contracts/interfaces/IAnkrBNB.sol","file":"../interfaces/IAnkrBNB.sol","id":3781,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3841,"sourceUnit":3466,"src":"66:54:46","symbolAliases":[{"foreign":{"id":3780,"name":"IAnkrBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3465,"src":"75:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":3783,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3841,"sourceUnit":7138,"src":"121:75:46","symbolAliases":[{"foreign":{"id":3782,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"130:21:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":3785,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3841,"sourceUnit":2140,"src":"197:86:46","symbolAliases":[{"foreign":{"id":3784,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"206:9:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3787,"name":"CorrelatedTokenOracle","nameLocations":["418:21:46"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"418:21:46"},"id":3788,"nodeType":"InheritanceSpecifier","src":"418:21:46"}],"canonicalName":"AnkrBNBOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":3786,"nodeType":"StructuredDocumentation","src":"285:106:46","text":" @title AnkrBNBOracle\n @author Venus\n @notice This oracle fetches the price of ankrBNB asset"},"fullyImplemented":true,"id":3840,"linearizedBaseContracts":[3840,7137,3494,3666],"name":"AnkrBNBOracle","nameLocation":"401:13:46","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":3789,"nodeType":"StructuredDocumentation","src":"446:55:46","text":"@notice This is used as token address of BNB on BSC"},"functionSelector":"a9534f8a","id":3792,"mutability":"constant","name":"NATIVE_TOKEN_ADDR","nameLocation":"530:17:46","nodeType":"VariableDeclaration","scope":3840,"src":"506:86:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3790,"name":"address","nodeType":"ElementaryTypeName","src":"506:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307862426242424242626242424262626242626242626262624242624262626262426242626242426242","id":3791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"550:42:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"},"visibility":"public"},{"body":{"id":3823,"nodeType":"Block","src":"1291:2:46","statements":[]},"documentation":{"id":3793,"nodeType":"StructuredDocumentation","src":"599:56:46","text":"@notice Constructor for the implementation contract."},"id":3824,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3812,"name":"ankrBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"1006:7:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3813,"name":"NATIVE_TOKEN_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"1027:17:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3814,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"1058:15:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3815,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"1087:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3816,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"1117:17:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3817,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"1148:30:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3818,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"1192:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3819,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3807,"src":"1230:20:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3820,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3809,"src":"1264:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3821,"kind":"baseConstructorSpecifier","modifierName":{"id":3811,"name":"CorrelatedTokenOracle","nameLocations":["971:21:46"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"971:21:46"},"nodeType":"ModifierInvocation","src":"971:315:46"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3795,"mutability":"mutable","name":"ankrBNB","nameLocation":"689:7:46","nodeType":"VariableDeclaration","scope":3824,"src":"681:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3794,"name":"address","nodeType":"ElementaryTypeName","src":"681:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3797,"mutability":"mutable","name":"resilientOracle","nameLocation":"714:15:46","nodeType":"VariableDeclaration","scope":3824,"src":"706:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3796,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3799,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"747:16:46","nodeType":"VariableDeclaration","scope":3824,"src":"739:24:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3798,"name":"uint256","nodeType":"ElementaryTypeName","src":"739:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3801,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"781:17:46","nodeType":"VariableDeclaration","scope":3824,"src":"773:25:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3800,"name":"uint256","nodeType":"ElementaryTypeName","src":"773:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3803,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"816:30:46","nodeType":"VariableDeclaration","scope":3824,"src":"808:38:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3802,"name":"uint256","nodeType":"ElementaryTypeName","src":"808:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3805,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"864:24:46","nodeType":"VariableDeclaration","scope":3824,"src":"856:32:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3804,"name":"uint256","nodeType":"ElementaryTypeName","src":"856:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3807,"mutability":"mutable","name":"accessControlManager","nameLocation":"906:20:46","nodeType":"VariableDeclaration","scope":3824,"src":"898:28:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3806,"name":"address","nodeType":"ElementaryTypeName","src":"898:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3809,"mutability":"mutable","name":"_snapshotGap","nameLocation":"944:12:46","nodeType":"VariableDeclaration","scope":3824,"src":"936:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3808,"name":"uint256","nodeType":"ElementaryTypeName","src":"936:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"671:291:46"},"returnParameters":{"id":3822,"nodeType":"ParameterList","parameters":[],"src":"1291:0:46"},"scope":3840,"src":"660:633:46","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":3838,"nodeType":"Block","src":"1492:75:46","statements":[{"expression":{"arguments":[{"id":3835,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1550:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3832,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"1518:16:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3831,"name":"IAnkrBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3465,"src":"1509:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAnkrBNB_$3465_$","typeString":"type(contract IAnkrBNB)"}},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1509:26:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAnkrBNB_$3465","typeString":"contract IAnkrBNB"}},"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1536:13:46","memberName":"sharesToBonds","nodeType":"MemberAccess","referencedDeclaration":3459,"src":"1509:40:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1509:51:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3830,"id":3837,"nodeType":"Return","src":"1502:58:46"}]},"documentation":{"id":3825,"nodeType":"StructuredDocumentation","src":"1299:118:46","text":" @notice Fetches the amount of BNB for 1 ankrBNB\n @return amount The amount of BNB for ankrBNB"},"functionSelector":"abb85613","id":3839,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1431:19:46","nodeType":"FunctionDefinition","overrides":{"id":3827,"nodeType":"OverrideSpecifier","overrides":[],"src":"1465:8:46"},"parameters":{"id":3826,"nodeType":"ParameterList","parameters":[],"src":"1450:2:46"},"returnParameters":{"id":3830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3839,"src":"1483:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3828,"name":"uint256","nodeType":"ElementaryTypeName","src":"1483:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1482:9:46"},"scope":3840,"src":"1422:145:46","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":3841,"src":"392:1177:46","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1529:46"},"id":46},"contracts/oracles/AsBNBOracle.sol":{"ast":{"absolutePath":"contracts/oracles/AsBNBOracle.sol","exportedSymbols":{"AsBNBOracle":[3912],"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"IAsBNB":[3478],"IAsBNBMinter":[3488]},"id":3913,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3842,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:47"},{"absolutePath":"contracts/interfaces/IAsBNB.sol","file":"../interfaces/IAsBNB.sol","id":3844,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3913,"sourceUnit":3479,"src":"66:50:47","symbolAliases":[{"foreign":{"id":3843,"name":"IAsBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3478,"src":"75:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAsBNBMinter.sol","file":"../interfaces/IAsBNBMinter.sol","id":3846,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3913,"sourceUnit":3489,"src":"117:62:47","symbolAliases":[{"foreign":{"id":3845,"name":"IAsBNBMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3488,"src":"126:12:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":3848,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3913,"sourceUnit":2140,"src":"180:86:47","symbolAliases":[{"foreign":{"id":3847,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"189:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":3850,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3913,"sourceUnit":7138,"src":"267:75:47","symbolAliases":[{"foreign":{"id":3849,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"276:21:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3852,"name":"CorrelatedTokenOracle","nameLocations":["471:21:47"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"471:21:47"},"id":3853,"nodeType":"InheritanceSpecifier","src":"471:21:47"}],"canonicalName":"AsBNBOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":3851,"nodeType":"StructuredDocumentation","src":"344:102:47","text":" @title asBNBOracle\n @author Venus\n @notice This oracle fetches the price of asBNB asset"},"fullyImplemented":true,"id":3912,"linearizedBaseContracts":[3912,7137,3494,3666],"name":"AsBNBOracle","nameLocation":"456:11:47","nodeType":"ContractDefinition","nodes":[{"body":{"id":3886,"nodeType":"Block","src":"1202:2:47","statements":[]},"documentation":{"id":3854,"nodeType":"StructuredDocumentation","src":"499:56:47","text":"@notice Constructor for the implementation contract."},"id":3887,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3875,"name":"asBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"929:5:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3876,"name":"slisBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"948:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3877,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"969:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3878,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3862,"src":"998:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3879,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"1028:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3880,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"1059:30:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3881,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"1103:24:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3882,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3870,"src":"1141:20:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3883,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3872,"src":"1175:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3884,"kind":"baseConstructorSpecifier","modifierName":{"id":3874,"name":"CorrelatedTokenOracle","nameLocations":["894:21:47"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"894:21:47"},"nodeType":"ModifierInvocation","src":"894:303:47"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"asBNB","nameLocation":"589:5:47","nodeType":"VariableDeclaration","scope":3887,"src":"581:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3855,"name":"address","nodeType":"ElementaryTypeName","src":"581:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3858,"mutability":"mutable","name":"slisBNB","nameLocation":"612:7:47","nodeType":"VariableDeclaration","scope":3887,"src":"604:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3857,"name":"address","nodeType":"ElementaryTypeName","src":"604:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3860,"mutability":"mutable","name":"resilientOracle","nameLocation":"637:15:47","nodeType":"VariableDeclaration","scope":3887,"src":"629:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3859,"name":"address","nodeType":"ElementaryTypeName","src":"629:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3862,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"670:16:47","nodeType":"VariableDeclaration","scope":3887,"src":"662:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3861,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3864,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"704:17:47","nodeType":"VariableDeclaration","scope":3887,"src":"696:25:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3863,"name":"uint256","nodeType":"ElementaryTypeName","src":"696:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3866,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"739:30:47","nodeType":"VariableDeclaration","scope":3887,"src":"731:38:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3865,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3868,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"787:24:47","nodeType":"VariableDeclaration","scope":3887,"src":"779:32:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3867,"name":"uint256","nodeType":"ElementaryTypeName","src":"779:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3870,"mutability":"mutable","name":"accessControlManager","nameLocation":"829:20:47","nodeType":"VariableDeclaration","scope":3887,"src":"821:28:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3869,"name":"address","nodeType":"ElementaryTypeName","src":"821:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3872,"mutability":"mutable","name":"_snapshotGap","nameLocation":"867:12:47","nodeType":"VariableDeclaration","scope":3887,"src":"859:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3871,"name":"uint256","nodeType":"ElementaryTypeName","src":"859:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"571:314:47"},"returnParameters":{"id":3885,"nodeType":"ParameterList","parameters":[],"src":"1202:0:47"},"scope":3912,"src":"560:644:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":3910,"nodeType":"Block","src":"1406:136:47","statements":[{"assignments":[3896],"declarations":[{"constant":false,"id":3896,"mutability":"mutable","name":"minter","nameLocation":"1429:6:47","nodeType":"VariableDeclaration","scope":3910,"src":"1416:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAsBNBMinter_$3488","typeString":"contract IAsBNBMinter"},"typeName":{"id":3895,"nodeType":"UserDefinedTypeName","pathNode":{"id":3894,"name":"IAsBNBMinter","nameLocations":["1416:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":3488,"src":"1416:12:47"},"referencedDeclaration":3488,"src":"1416:12:47","typeDescriptions":{"typeIdentifier":"t_contract$_IAsBNBMinter_$3488","typeString":"contract IAsBNBMinter"}},"visibility":"internal"}],"id":3904,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3899,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"1458:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3898,"name":"IAsBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3478,"src":"1451:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAsBNB_$3478_$","typeString":"type(contract IAsBNB)"}},"id":3900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAsBNB_$3478","typeString":"contract IAsBNB"}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1476:6:47","memberName":"minter","nodeType":"MemberAccess","referencedDeclaration":3472,"src":"1451:31:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3897,"name":"IAsBNBMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3488,"src":"1438:12:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAsBNBMinter_$3488_$","typeString":"type(contract IAsBNBMinter)"}},"id":3903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1438:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAsBNBMinter_$3488","typeString":"contract IAsBNBMinter"}},"nodeType":"VariableDeclarationStatement","src":"1416:69:47"},{"expression":{"arguments":[{"id":3907,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1525:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3905,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"1502:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_IAsBNBMinter_$3488","typeString":"contract IAsBNBMinter"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1509:15:47","memberName":"convertToTokens","nodeType":"MemberAccess","referencedDeclaration":3487,"src":"1502:22:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1502:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3893,"id":3909,"nodeType":"Return","src":"1495:40:47"}]},"documentation":{"id":3888,"nodeType":"StructuredDocumentation","src":"1210:121:47","text":" @notice Fetches the amount of slisBNB for 1 asBNB\n @return price The amount of slisBNB for asBNB"},"functionSelector":"abb85613","id":3911,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1345:19:47","nodeType":"FunctionDefinition","overrides":{"id":3890,"nodeType":"OverrideSpecifier","overrides":[],"src":"1379:8:47"},"parameters":{"id":3889,"nodeType":"ParameterList","parameters":[],"src":"1364:2:47"},"returnParameters":{"id":3893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3911,"src":"1397:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3891,"name":"uint256","nodeType":"ElementaryTypeName","src":"1397:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1396:9:47"},"scope":3912,"src":"1336:206:47","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":3913,"src":"447:1097:47","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1504:47"},"id":47},"contracts/oracles/BNBxOracle.sol":{"ast":{"absolutePath":"contracts/oracles/BNBxOracle.sol","exportedSymbols":{"BNBxOracle":[3991],"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"IStaderStakeManager":[3620],"ensureNonzeroAddress":[2165]},"id":3992,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3914,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:48"},{"absolutePath":"contracts/interfaces/IStaderStakeManager.sol","file":"../interfaces/IStaderStakeManager.sol","id":3916,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3992,"sourceUnit":3621,"src":"66:76:48","symbolAliases":[{"foreign":{"id":3915,"name":"IStaderStakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3620,"src":"75:19:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":3918,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3992,"sourceUnit":2181,"src":"143:98:48","symbolAliases":[{"foreign":{"id":3917,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"152:20:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":3920,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3992,"sourceUnit":2140,"src":"242:86:48","symbolAliases":[{"foreign":{"id":3919,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"251:9:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":3922,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3992,"sourceUnit":7138,"src":"329:75:48","symbolAliases":[{"foreign":{"id":3921,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"338:21:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3924,"name":"CorrelatedTokenOracle","nameLocations":["530:21:48"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"530:21:48"},"id":3925,"nodeType":"InheritanceSpecifier","src":"530:21:48"}],"canonicalName":"BNBxOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":3923,"nodeType":"StructuredDocumentation","src":"406:100:48","text":" @title BNBxOracle\n @author Venus\n @notice This oracle fetches the price of BNBx asset"},"fullyImplemented":true,"id":3991,"linearizedBaseContracts":[3991,7137,3494,3666],"name":"BNBxOracle","nameLocation":"516:10:48","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":3926,"nodeType":"StructuredDocumentation","src":"558:55:48","text":"@notice This is used as token address of BNB on BSC"},"functionSelector":"a9534f8a","id":3929,"mutability":"constant","name":"NATIVE_TOKEN_ADDR","nameLocation":"642:17:48","nodeType":"VariableDeclaration","scope":3991,"src":"618:86:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3927,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307862426242424242626242424262626242626242626262624242624262626262426242626242426242","id":3928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:42:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"},"visibility":"public"},{"constant":false,"documentation":{"id":3930,"nodeType":"StructuredDocumentation","src":"711:35:48","text":"@notice Address of StakeManager"},"functionSelector":"7353847a","id":3933,"mutability":"immutable","name":"STAKE_MANAGER","nameLocation":"788:13:48","nodeType":"VariableDeclaration","scope":3991,"src":"751:50:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStaderStakeManager_$3620","typeString":"contract IStaderStakeManager"},"typeName":{"id":3932,"nodeType":"UserDefinedTypeName","pathNode":{"id":3931,"name":"IStaderStakeManager","nameLocations":["751:19:48"],"nodeType":"IdentifierPath","referencedDeclaration":3620,"src":"751:19:48"},"referencedDeclaration":3620,"src":"751:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_IStaderStakeManager_$3620","typeString":"contract IStaderStakeManager"}},"visibility":"public"},{"body":{"id":3976,"nodeType":"Block","src":"1524:110:48","statements":[{"expression":{"arguments":[{"id":3967,"name":"stakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3936,"src":"1555:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3966,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1534:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":3968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3969,"nodeType":"ExpressionStatement","src":"1534:34:48"},{"expression":{"id":3974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3970,"name":"STAKE_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"1578:13:48","typeDescriptions":{"typeIdentifier":"t_contract$_IStaderStakeManager_$3620","typeString":"contract IStaderStakeManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3972,"name":"stakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3936,"src":"1614:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3971,"name":"IStaderStakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3620,"src":"1594:19:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStaderStakeManager_$3620_$","typeString":"type(contract IStaderStakeManager)"}},"id":3973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStaderStakeManager_$3620","typeString":"contract IStaderStakeManager"}},"src":"1578:49:48","typeDescriptions":{"typeIdentifier":"t_contract$_IStaderStakeManager_$3620","typeString":"contract IStaderStakeManager"}},"id":3975,"nodeType":"ExpressionStatement","src":"1578:49:48"}]},"documentation":{"id":3934,"nodeType":"StructuredDocumentation","src":"808:56:48","text":"@notice Constructor for the implementation contract."},"id":3977,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3955,"name":"bnbx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"1242:4:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3956,"name":"NATIVE_TOKEN_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3929,"src":"1260:17:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3957,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3940,"src":"1291:15:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3958,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"1320:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3959,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3944,"src":"1350:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3960,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3946,"src":"1381:30:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3961,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3948,"src":"1425:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3962,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3950,"src":"1463:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3963,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"1497:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3964,"kind":"baseConstructorSpecifier","modifierName":{"id":3954,"name":"CorrelatedTokenOracle","nameLocations":["1207:21:48"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1207:21:48"},"nodeType":"ModifierInvocation","src":"1207:312:48"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3936,"mutability":"mutable","name":"stakeManager","nameLocation":"898:12:48","nodeType":"VariableDeclaration","scope":3977,"src":"890:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3935,"name":"address","nodeType":"ElementaryTypeName","src":"890:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3938,"mutability":"mutable","name":"bnbx","nameLocation":"928:4:48","nodeType":"VariableDeclaration","scope":3977,"src":"920:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3937,"name":"address","nodeType":"ElementaryTypeName","src":"920:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3940,"mutability":"mutable","name":"resilientOracle","nameLocation":"950:15:48","nodeType":"VariableDeclaration","scope":3977,"src":"942:23:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3939,"name":"address","nodeType":"ElementaryTypeName","src":"942:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3942,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"983:16:48","nodeType":"VariableDeclaration","scope":3977,"src":"975:24:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3941,"name":"uint256","nodeType":"ElementaryTypeName","src":"975:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3944,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"1017:17:48","nodeType":"VariableDeclaration","scope":3977,"src":"1009:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1009:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3946,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"1052:30:48","nodeType":"VariableDeclaration","scope":3977,"src":"1044:38:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3945,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3948,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"1100:24:48","nodeType":"VariableDeclaration","scope":3977,"src":"1092:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3947,"name":"uint256","nodeType":"ElementaryTypeName","src":"1092:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3950,"mutability":"mutable","name":"accessControlManager","nameLocation":"1142:20:48","nodeType":"VariableDeclaration","scope":3977,"src":"1134:28:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3949,"name":"address","nodeType":"ElementaryTypeName","src":"1134:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3952,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1180:12:48","nodeType":"VariableDeclaration","scope":3977,"src":"1172:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3951,"name":"uint256","nodeType":"ElementaryTypeName","src":"1172:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"880:318:48"},"returnParameters":{"id":3965,"nodeType":"ParameterList","parameters":[],"src":"1524:0:48"},"scope":3991,"src":"869:765:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":3989,"nodeType":"Block","src":"1826:65:48","statements":[{"expression":{"arguments":[{"id":3986,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1874:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3984,"name":"STAKE_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"1843:13:48","typeDescriptions":{"typeIdentifier":"t_contract$_IStaderStakeManager_$3620","typeString":"contract IStaderStakeManager"}},"id":3985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1857:16:48","memberName":"convertBnbXToBnb","nodeType":"MemberAccess","referencedDeclaration":3619,"src":"1843:30:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1843:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3983,"id":3988,"nodeType":"Return","src":"1836:48:48"}]},"documentation":{"id":3978,"nodeType":"StructuredDocumentation","src":"1640:111:48","text":" @notice Fetches the amount of BNB for 1 BNBx\n @return price The amount of BNB for BNBx"},"functionSelector":"abb85613","id":3990,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1765:19:48","nodeType":"FunctionDefinition","overrides":{"id":3980,"nodeType":"OverrideSpecifier","overrides":[],"src":"1799:8:48"},"parameters":{"id":3979,"nodeType":"ParameterList","parameters":[],"src":"1784:2:48"},"returnParameters":{"id":3983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3990,"src":"1817:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3981,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:9:48"},"scope":3991,"src":"1756:135:48","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":3992,"src":"507:1386:48","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1853:48"},"id":48},"contracts/oracles/BinanceOracle.sol":{"ast":{"absolutePath":"contracts/oracles/BinanceOracle.sol","exportedSymbols":{"AccessControlledV8":[2080],"AddressUpgradeable":[969],"BinanceOracle":[4428],"BoundValidatorInterface":[3698],"ContextUpgradeable":[1020],"FeedRegistryInterface":[3442],"IAccessControl":[1093],"IAccessControlManagerV8":[2125],"IERC20":[1871],"IERC20Metadata":[1896],"Initializable":[511],"OracleInterface":[3666],"Ownable2StepUpgradeable":[209],"OwnableUpgradeable":[342],"PublicResolverInterface":[3708],"ResilientOracleInterface":[3686],"SIDRegistryInterface":[3718],"VBep20Interface":[3730]},"id":4429,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":3993,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:49"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":3994,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":1897,"src":"66:75:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/VBep20Interface.sol","file":"../interfaces/VBep20Interface.sol","id":3995,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":3731,"src":"142:43:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/SIDRegistryInterface.sol","file":"../interfaces/SIDRegistryInterface.sol","id":3996,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":3719,"src":"186:48:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/FeedRegistryInterface.sol","file":"../interfaces/FeedRegistryInterface.sol","id":3997,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":3443,"src":"235:49:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/PublicResolverInterface.sol","file":"../interfaces/PublicResolverInterface.sol","id":3998,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":3709,"src":"285:51:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":3999,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":3699,"src":"337:43:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","id":4000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":2081,"src":"381:89:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":4001,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":3699,"src":"471:43:49","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4003,"name":"AccessControlledV8","nameLocations":["652:18:49"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"652:18:49"},"id":4004,"nodeType":"InheritanceSpecifier","src":"652:18:49"},{"baseName":{"id":4005,"name":"OracleInterface","nameLocations":["672:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"672:15:49"},"id":4006,"nodeType":"InheritanceSpecifier","src":"672:15:49"}],"canonicalName":"BinanceOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":4002,"nodeType":"StructuredDocumentation","src":"516:109:49","text":" @title BinanceOracle\n @author Venus\n @notice This oracle fetches price of assets from Binance."},"fullyImplemented":true,"id":4428,"linearizedBaseContracts":[4428,3666,2080,209,342,1020,511],"name":"BinanceOracle","nameLocation":"635:13:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":4007,"nodeType":"StructuredDocumentation","src":"694:48:49","text":"@notice Used to fetch feed registry address."},"functionSelector":"475e7de5","id":4009,"mutability":"mutable","name":"sidRegistryAddress","nameLocation":"762:18:49","nodeType":"VariableDeclaration","scope":4428,"src":"747:33:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4008,"name":"address","nodeType":"ElementaryTypeName","src":"747:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"documentation":{"id":4010,"nodeType":"StructuredDocumentation","src":"787:86:49","text":"@notice Set this as asset address for BNB. This is the underlying address for vBNB"},"functionSelector":"3e83b6b8","id":4013,"mutability":"constant","name":"BNB_ADDR","nameLocation":"902:8:49","nodeType":"VariableDeclaration","scope":4428,"src":"878:77:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4011,"name":"address","nodeType":"ElementaryTypeName","src":"878:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307862426242424242626242424262626242626242626262624242624262626262426242626242426242","id":4012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"913:42:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"},"visibility":"public"},{"constant":false,"documentation":{"id":4014,"nodeType":"StructuredDocumentation","src":"962:53:49","text":"@notice Max stale period configuration for assets"},"functionSelector":"fdfbc277","id":4018,"mutability":"mutable","name":"maxStalePeriod","nameLocation":"1054:14:49","nodeType":"VariableDeclaration","scope":4428,"src":"1020:48:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string => uint256)"},"typeName":{"id":4017,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4015,"name":"string","nodeType":"ElementaryTypeName","src":"1028:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"1020:26:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4016,"name":"uint256","nodeType":"ElementaryTypeName","src":"1038:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":4019,"nodeType":"StructuredDocumentation","src":"1075:72:49","text":"@notice Override symbols to be compatible with Binance feed registry"},"functionSelector":"047a74b2","id":4023,"mutability":"mutable","name":"symbols","nameLocation":"1185:7:49","nodeType":"VariableDeclaration","scope":4428,"src":"1152:40:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"typeName":{"id":4022,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4020,"name":"string","nodeType":"ElementaryTypeName","src":"1160:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"1152:25:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4021,"name":"string","nodeType":"ElementaryTypeName","src":"1170:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"public"},{"constant":false,"documentation":{"id":4024,"nodeType":"StructuredDocumentation","src":"1199:104:49","text":"@notice Used to fetch price of assets used directly when space ID is not supported by current chain."},"functionSelector":"011d3962","id":4026,"mutability":"mutable","name":"feedRegistryAddress","nameLocation":"1323:19:49","nodeType":"VariableDeclaration","scope":4428,"src":"1308:34:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4025,"name":"address","nodeType":"ElementaryTypeName","src":"1308:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":4027,"nodeType":"StructuredDocumentation","src":"1349:53:49","text":"@notice Emits when asset stale period is updated."},"eventSelector":"37839d4a80c5e3f2578f59515c911ee8cce42383d7ebaa1c92afcde9871c4b58","id":4033,"name":"MaxStalePeriodAdded","nameLocation":"1413:19:49","nodeType":"EventDefinition","parameters":{"id":4032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4029,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"1448:5:49","nodeType":"VariableDeclaration","scope":4033,"src":"1433:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4028,"name":"string","nodeType":"ElementaryTypeName","src":"1433:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4031,"indexed":false,"mutability":"mutable","name":"maxStalePeriod","nameLocation":"1463:14:49","nodeType":"VariableDeclaration","scope":4033,"src":"1455:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4030,"name":"uint256","nodeType":"ElementaryTypeName","src":"1455:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1432:46:49"},"src":"1407:72:49"},{"anonymous":false,"documentation":{"id":4034,"nodeType":"StructuredDocumentation","src":"1485:54:49","text":"@notice Emits when symbol of the asset is updated."},"eventSelector":"ceb1f47aa91b96f02ea70e1deed25fe154ad1885aea509bd7222f9eec0a0bda5","id":4040,"name":"SymbolOverridden","nameLocation":"1550:16:49","nodeType":"EventDefinition","parameters":{"id":4039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4036,"indexed":true,"mutability":"mutable","name":"symbol","nameLocation":"1582:6:49","nodeType":"VariableDeclaration","scope":4040,"src":"1567:21:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4035,"name":"string","nodeType":"ElementaryTypeName","src":"1567:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4038,"indexed":false,"mutability":"mutable","name":"overriddenSymbol","nameLocation":"1597:16:49","nodeType":"VariableDeclaration","scope":4040,"src":"1590:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4037,"name":"string","nodeType":"ElementaryTypeName","src":"1590:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1566:48:49"},"src":"1544:71:49"},{"anonymous":false,"documentation":{"id":4041,"nodeType":"StructuredDocumentation","src":"1621:59:49","text":"@notice Emits when address of feed registry is updated."},"eventSelector":"6d1006252b3dd171af76c28c184327bfddc39f439a50e0ac7f418c660b8894b5","id":4047,"name":"FeedRegistryUpdated","nameLocation":"1691:19:49","nodeType":"EventDefinition","parameters":{"id":4046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4043,"indexed":true,"mutability":"mutable","name":"oldFeedRegistry","nameLocation":"1727:15:49","nodeType":"VariableDeclaration","scope":4047,"src":"1711:31:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4042,"name":"address","nodeType":"ElementaryTypeName","src":"1711:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4045,"indexed":true,"mutability":"mutable","name":"newFeedRegistry","nameLocation":"1760:15:49","nodeType":"VariableDeclaration","scope":4047,"src":"1744:31:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4044,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1710:66:49"},"src":"1685:92:49"},{"body":{"id":4064,"nodeType":"Block","src":"1896:86:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4052,"name":"someone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4050,"src":"1910:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1929:1:49","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":4054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1921:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4053,"name":"address","nodeType":"ElementaryTypeName","src":"1921:7:49","typeDescriptions":{}}},"id":4056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1921:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1910:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4062,"nodeType":"IfStatement","src":"1906:58:49","trueBody":{"expression":{"arguments":[{"hexValue":"63616e2774206265207a65726f2061646472657373","id":4059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1940:23:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","typeString":"literal_string \"can't be zero address\""},"value":"can't be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","typeString":"literal_string \"can't be zero address\""}],"id":4058,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1933:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:31:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4061,"nodeType":"ExpressionStatement","src":"1933:31:49"}},{"id":4063,"nodeType":"PlaceholderStatement","src":"1974:1:49"}]},"documentation":{"id":4048,"nodeType":"StructuredDocumentation","src":"1783:67:49","text":" @notice Checks whether an address is null or not"},"id":4065,"name":"notNullAddress","nameLocation":"1864:14:49","nodeType":"ModifierDefinition","parameters":{"id":4051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4050,"mutability":"mutable","name":"someone","nameLocation":"1887:7:49","nodeType":"VariableDeclaration","scope":4065,"src":"1879:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4049,"name":"address","nodeType":"ElementaryTypeName","src":"1879:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1878:17:49"},"src":"1855:127:49","virtual":false,"visibility":"internal"},{"body":{"id":4072,"nodeType":"Block","src":"2116:39:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4069,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"2126:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4071,"nodeType":"ExpressionStatement","src":"2126:22:49"}]},"documentation":{"id":4066,"nodeType":"StructuredDocumentation","src":"1988:109:49","text":"@notice Constructor for the implementation contract.\n @custom:oz-upgrades-unsafe-allow constructor"},"id":4073,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4067,"nodeType":"ParameterList","parameters":[],"src":"2113:2:49"},"returnParameters":{"id":4068,"nodeType":"ParameterList","parameters":[],"src":"2116:0:49"},"scope":4428,"src":"2102:53:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4091,"nodeType":"Block","src":"2444:96:49","statements":[{"expression":{"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4083,"name":"sidRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"2454:18:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4084,"name":"_sidRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4076,"src":"2475:19:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2454:40:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4086,"nodeType":"ExpressionStatement","src":"2454:40:49"},{"expression":{"arguments":[{"id":4088,"name":"_acm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4078,"src":"2528:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4087,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1976,"src":"2504:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2504:29:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4090,"nodeType":"ExpressionStatement","src":"2504:29:49"}]},"documentation":{"id":4074,"nodeType":"StructuredDocumentation","src":"2161:194:49","text":" @notice Sets the contracts required to fetch prices\n @param _sidRegistryAddress Address of SID registry\n @param _acm Address of the access control manager contract"},"functionSelector":"485cc955","id":4092,"implemented":true,"kind":"function","modifiers":[{"id":4081,"kind":"modifierInvocation","modifierName":{"id":4080,"name":"initializer","nameLocations":["2432:11:49"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"2432:11:49"},"nodeType":"ModifierInvocation","src":"2432:11:49"}],"name":"initialize","nameLocation":"2369:10:49","nodeType":"FunctionDefinition","parameters":{"id":4079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4076,"mutability":"mutable","name":"_sidRegistryAddress","nameLocation":"2388:19:49","nodeType":"VariableDeclaration","scope":4092,"src":"2380:27:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4075,"name":"address","nodeType":"ElementaryTypeName","src":"2380:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4078,"mutability":"mutable","name":"_acm","nameLocation":"2417:4:49","nodeType":"VariableDeclaration","scope":4092,"src":"2409:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4077,"name":"address","nodeType":"ElementaryTypeName","src":"2409:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2379:43:49"},"returnParameters":{"id":4082,"nodeType":"ParameterList","parameters":[],"src":"2444:0:49"},"scope":4428,"src":"2360:180:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4135,"nodeType":"Block","src":"2801:328:49","statements":[{"expression":{"arguments":[{"hexValue":"7365744d61785374616c65506572696f6428737472696e672c75696e7432353629","id":4101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2831:35:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_636b999aa368c0912a25086b6677c3ed41f3204c3a8de257c7c28e282cb6d8c0","typeString":"literal_string \"setMaxStalePeriod(string,uint256)\""},"value":"setMaxStalePeriod(string,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_636b999aa368c0912a25086b6677c3ed41f3204c3a8de257c7c28e282cb6d8c0","typeString":"literal_string \"setMaxStalePeriod(string,uint256)\""}],"id":4100,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"2811:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":4102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:56:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4103,"nodeType":"ExpressionStatement","src":"2811:56:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4104,"name":"_maxStalePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4097,"src":"2881:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2881:20:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4111,"nodeType":"IfStatement","src":"2877:62:49","trueBody":{"expression":{"arguments":[{"hexValue":"7374616c6520706572696f642063616e2774206265207a65726f","id":4108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2910:28:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","typeString":"literal_string \"stale period can't be zero\""},"value":"stale period can't be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","typeString":"literal_string \"stale period can't be zero\""}],"id":4107,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2903:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2903:36:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4110,"nodeType":"ExpressionStatement","src":"2903:36:49"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4114,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4095,"src":"2959:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2953:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4112,"name":"bytes","nodeType":"ElementaryTypeName","src":"2953:5:49","typeDescriptions":{}}},"id":4115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2953:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2967:6:49","memberName":"length","nodeType":"MemberAccess","src":"2953:20:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2977:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2953:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4123,"nodeType":"IfStatement","src":"2949:63:49","trueBody":{"expression":{"arguments":[{"hexValue":"73796d626f6c2063616e6e6f7420626520656d707479","id":4120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2987:24:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a","typeString":"literal_string \"symbol cannot be empty\""},"value":"symbol cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a","typeString":"literal_string \"symbol cannot be empty\""}],"id":4119,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2980:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4122,"nodeType":"ExpressionStatement","src":"2980:32:49"}},{"expression":{"id":4128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4124,"name":"maxStalePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4018,"src":"3023:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":4126,"indexExpression":{"id":4125,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4095,"src":"3038:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3023:22:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4127,"name":"_maxStalePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4097,"src":"3048:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3023:40:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4129,"nodeType":"ExpressionStatement","src":"3023:40:49"},{"eventCall":{"arguments":[{"id":4131,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4095,"src":"3098:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4132,"name":"_maxStalePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4097,"src":"3106:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4130,"name":"MaxStalePeriodAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4033,"src":"3078:19:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":4133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3078:44:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4134,"nodeType":"EmitStatement","src":"3073:49:49"}]},"documentation":{"id":4093,"nodeType":"StructuredDocumentation","src":"2546:167:49","text":" @notice Used to set the max stale period of an asset\n @param symbol The symbol of the asset\n @param _maxStalePeriod The max stake period"},"functionSelector":"636b999a","id":4136,"implemented":true,"kind":"function","modifiers":[],"name":"setMaxStalePeriod","nameLocation":"2727:17:49","nodeType":"FunctionDefinition","parameters":{"id":4098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4095,"mutability":"mutable","name":"symbol","nameLocation":"2759:6:49","nodeType":"VariableDeclaration","scope":4136,"src":"2745:20:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4094,"name":"string","nodeType":"ElementaryTypeName","src":"2745:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4097,"mutability":"mutable","name":"_maxStalePeriod","nameLocation":"2775:15:49","nodeType":"VariableDeclaration","scope":4136,"src":"2767:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4096,"name":"uint256","nodeType":"ElementaryTypeName","src":"2767:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2744:47:49"},"returnParameters":{"id":4099,"nodeType":"ParameterList","parameters":[],"src":"2801:0:49"},"scope":4428,"src":"2718:411:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4171,"nodeType":"Block","src":"3403:243:49","statements":[{"expression":{"arguments":[{"hexValue":"73657453796d626f6c4f7665727269646528737472696e672c737472696e6729","id":4145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3433:34:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eab1ad6a07448c939fc1d2bec3ab8bedf21c796ce31ab5da1ec7c12fafd9f46","typeString":"literal_string \"setSymbolOverride(string,string)\""},"value":"setSymbolOverride(string,string)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9eab1ad6a07448c939fc1d2bec3ab8bedf21c796ce31ab5da1ec7c12fafd9f46","typeString":"literal_string \"setSymbolOverride(string,string)\""}],"id":4144,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"3413:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":4146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3413:55:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4147,"nodeType":"ExpressionStatement","src":"3413:55:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4150,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"3488:6:49","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":4149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3482:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4148,"name":"bytes","nodeType":"ElementaryTypeName","src":"3482:5:49","typeDescriptions":{}}},"id":4151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3482:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3496:6:49","memberName":"length","nodeType":"MemberAccess","src":"3482:20:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3506:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3482:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4159,"nodeType":"IfStatement","src":"3478:63:49","trueBody":{"expression":{"arguments":[{"hexValue":"73796d626f6c2063616e6e6f7420626520656d707479","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3516:24:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a","typeString":"literal_string \"symbol cannot be empty\""},"value":"symbol cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a","typeString":"literal_string \"symbol cannot be empty\""}],"id":4155,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3509:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3509:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4158,"nodeType":"ExpressionStatement","src":"3509:32:49"}},{"expression":{"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4160,"name":"symbols","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"3552:7:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":4162,"indexExpression":{"id":4161,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"3560:6:49","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3552:15:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4163,"name":"overrideSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"3570:14:49","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"3552:32:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4165,"nodeType":"ExpressionStatement","src":"3552:32:49"},{"eventCall":{"arguments":[{"id":4167,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"3616:6:49","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":4168,"name":"overrideSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"3624:14:49","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":4166,"name":"SymbolOverridden","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4040,"src":"3599:16:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":4169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3599:40:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4170,"nodeType":"EmitStatement","src":"3594:45:49"}]},"documentation":{"id":4137,"nodeType":"StructuredDocumentation","src":"3135:171:49","text":" @notice Used to override a symbol when fetching price\n @param symbol The symbol to override\n @param overrideSymbol The symbol after override"},"functionSelector":"9eab1ad6","id":4172,"implemented":true,"kind":"function","modifiers":[],"name":"setSymbolOverride","nameLocation":"3320:17:49","nodeType":"FunctionDefinition","parameters":{"id":4142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4139,"mutability":"mutable","name":"symbol","nameLocation":"3354:6:49","nodeType":"VariableDeclaration","scope":4172,"src":"3338:22:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":4138,"name":"string","nodeType":"ElementaryTypeName","src":"3338:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4141,"mutability":"mutable","name":"overrideSymbol","nameLocation":"3378:14:49","nodeType":"VariableDeclaration","scope":4172,"src":"3362:30:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":4140,"name":"string","nodeType":"ElementaryTypeName","src":"3362:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3337:56:49"},"returnParameters":{"id":4143,"nodeType":"ParameterList","parameters":[],"src":"3403:0:49"},"scope":4428,"src":"3311:335:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4203,"nodeType":"Block","src":"3966:229:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4183,"name":"sidRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"3980:18:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4010:1:49","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":4185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4002:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4184,"name":"address","nodeType":"ElementaryTypeName","src":"4002:7:49","typeDescriptions":{}}},"id":4187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4002:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3980:32:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4193,"nodeType":"IfStatement","src":"3976:79:49","trueBody":{"expression":{"arguments":[{"hexValue":"736964526567697374727941646472657373206d757374206265207a65726f","id":4190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4021:33:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a","typeString":"literal_string \"sidRegistryAddress must be zero\""},"value":"sidRegistryAddress must be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a","typeString":"literal_string \"sidRegistryAddress must be zero\""}],"id":4189,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4014:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4014:41:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4192,"nodeType":"ExpressionStatement","src":"4014:41:49"}},{"eventCall":{"arguments":[{"id":4195,"name":"feedRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4026,"src":"4090:19:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4196,"name":"newfeedRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4175,"src":"4111:22:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4194,"name":"FeedRegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4047,"src":"4070:19:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4070:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4198,"nodeType":"EmitStatement","src":"4065:69:49"},{"expression":{"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4199,"name":"feedRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4026,"src":"4144:19:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4200,"name":"newfeedRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4175,"src":"4166:22:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4144:44:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4202,"nodeType":"ExpressionStatement","src":"4144:44:49"}]},"documentation":{"id":4173,"nodeType":"StructuredDocumentation","src":"3652:173:49","text":" @notice Used to set feed registry address when current chain does not support space ID.\n @param newfeedRegistryAddress Address of new feed registry."},"functionSelector":"255ce37a","id":4204,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4178,"name":"newfeedRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4175,"src":"3932:22:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4179,"kind":"modifierInvocation","modifierName":{"id":4177,"name":"notNullAddress","nameLocations":["3917:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":4065,"src":"3917:14:49"},"nodeType":"ModifierInvocation","src":"3917:38:49"},{"id":4181,"kind":"modifierInvocation","modifierName":{"id":4180,"name":"onlyOwner","nameLocations":["3956:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":256,"src":"3956:9:49"},"nodeType":"ModifierInvocation","src":"3956:9:49"}],"name":"setFeedRegistryAddress","nameLocation":"3839:22:49","nodeType":"FunctionDefinition","parameters":{"id":4176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4175,"mutability":"mutable","name":"newfeedRegistryAddress","nameLocation":"3879:22:49","nodeType":"VariableDeclaration","scope":4204,"src":"3871:30:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4174,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3861:46:49"},"returnParameters":{"id":4182,"nodeType":"ParameterList","parameters":[],"src":"3966:0:49"},"scope":4428,"src":"3830:365:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4240,"nodeType":"Block","src":"4421:404:49","statements":[{"assignments":[4211],"declarations":[{"constant":false,"id":4211,"mutability":"mutable","name":"nodeHash","nameLocation":"4439:8:49","nodeType":"VariableDeclaration","scope":4240,"src":"4431:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4431:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4213,"initialValue":{"hexValue":"307839346665333832316530373638656233353031323438346462346466363138393066396136636135626661393834656638666637313765373331333966616666","id":4212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4450:66:49","typeDescriptions":{"typeIdentifier":"t_rational_67391468155889520415473969054846594015821251862030124361684481397244703668991_by_1","typeString":"int_const 6739...(69 digits omitted)...8991"},"value":"0x94fe3821e0768eb35012484db4df61890f9a6ca5bfa984ef8ff717e73139faff"},"nodeType":"VariableDeclarationStatement","src":"4431:85:49"},{"assignments":[4216],"declarations":[{"constant":false,"id":4216,"mutability":"mutable","name":"sidRegistry","nameLocation":"4548:11:49","nodeType":"VariableDeclaration","scope":4240,"src":"4527:32:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SIDRegistryInterface_$3718","typeString":"contract SIDRegistryInterface"},"typeName":{"id":4215,"nodeType":"UserDefinedTypeName","pathNode":{"id":4214,"name":"SIDRegistryInterface","nameLocations":["4527:20:49"],"nodeType":"IdentifierPath","referencedDeclaration":3718,"src":"4527:20:49"},"referencedDeclaration":3718,"src":"4527:20:49","typeDescriptions":{"typeIdentifier":"t_contract$_SIDRegistryInterface_$3718","typeString":"contract SIDRegistryInterface"}},"visibility":"internal"}],"id":4220,"initialValue":{"arguments":[{"id":4218,"name":"sidRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"4583:18:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4217,"name":"SIDRegistryInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3718,"src":"4562:20:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SIDRegistryInterface_$3718_$","typeString":"type(contract SIDRegistryInterface)"}},"id":4219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4562:40:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SIDRegistryInterface_$3718","typeString":"contract SIDRegistryInterface"}},"nodeType":"VariableDeclarationStatement","src":"4527:75:49"},{"assignments":[4222],"declarations":[{"constant":false,"id":4222,"mutability":"mutable","name":"publicResolverAddress","nameLocation":"4620:21:49","nodeType":"VariableDeclaration","scope":4240,"src":"4612:29:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4221,"name":"address","nodeType":"ElementaryTypeName","src":"4612:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4227,"initialValue":{"arguments":[{"id":4225,"name":"nodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4211,"src":"4665:8:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4223,"name":"sidRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4216,"src":"4644:11:49","typeDescriptions":{"typeIdentifier":"t_contract$_SIDRegistryInterface_$3718","typeString":"contract SIDRegistryInterface"}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4656:8:49","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":3717,"src":"4644:20:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":4226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4644:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4612:62:49"},{"assignments":[4230],"declarations":[{"constant":false,"id":4230,"mutability":"mutable","name":"publicResolver","nameLocation":"4708:14:49","nodeType":"VariableDeclaration","scope":4240,"src":"4684:38:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PublicResolverInterface_$3708","typeString":"contract PublicResolverInterface"},"typeName":{"id":4229,"nodeType":"UserDefinedTypeName","pathNode":{"id":4228,"name":"PublicResolverInterface","nameLocations":["4684:23:49"],"nodeType":"IdentifierPath","referencedDeclaration":3708,"src":"4684:23:49"},"referencedDeclaration":3708,"src":"4684:23:49","typeDescriptions":{"typeIdentifier":"t_contract$_PublicResolverInterface_$3708","typeString":"contract PublicResolverInterface"}},"visibility":"internal"}],"id":4234,"initialValue":{"arguments":[{"id":4232,"name":"publicResolverAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4222,"src":"4749:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4231,"name":"PublicResolverInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"4725:23:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PublicResolverInterface_$3708_$","typeString":"type(contract PublicResolverInterface)"}},"id":4233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4725:46:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PublicResolverInterface_$3708","typeString":"contract PublicResolverInterface"}},"nodeType":"VariableDeclarationStatement","src":"4684:87:49"},{"expression":{"arguments":[{"id":4237,"name":"nodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4211,"src":"4809:8:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4235,"name":"publicResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4230,"src":"4789:14:49","typeDescriptions":{"typeIdentifier":"t_contract$_PublicResolverInterface_$3708","typeString":"contract PublicResolverInterface"}},"id":4236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4804:4:49","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":3707,"src":"4789:19:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_payable_$","typeString":"function (bytes32) view external returns (address payable)"}},"id":4238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4789:29:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":4209,"id":4239,"nodeType":"Return","src":"4782:36:49"}]},"documentation":{"id":4205,"nodeType":"StructuredDocumentation","src":"4201:151:49","text":" @notice Uses Space ID to fetch the feed registry address\n @return feedRegistryAddress Address of binance oracle feed registry."},"functionSelector":"99fe040e","id":4241,"implemented":true,"kind":"function","modifiers":[],"name":"getFeedRegistryAddress","nameLocation":"4366:22:49","nodeType":"FunctionDefinition","parameters":{"id":4206,"nodeType":"ParameterList","parameters":[],"src":"4388:2:49"},"returnParameters":{"id":4209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4241,"src":"4412:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4207,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4411:9:49"},"scope":4428,"src":"4357:468:49","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3665],"body":{"id":4312,"nodeType":"Block","src":"5044:514:49","statements":[{"assignments":[4250],"declarations":[{"constant":false,"id":4250,"mutability":"mutable","name":"symbol","nameLocation":"5068:6:49","nodeType":"VariableDeclaration","scope":4312,"src":"5054:20:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4249,"name":"string","nodeType":"ElementaryTypeName","src":"5054:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4251,"nodeType":"VariableDeclarationStatement","src":"5054:20:49"},{"assignments":[4253],"declarations":[{"constant":false,"id":4253,"mutability":"mutable","name":"decimals","nameLocation":"5092:8:49","nodeType":"VariableDeclaration","scope":4312,"src":"5084:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4252,"name":"uint256","nodeType":"ElementaryTypeName","src":"5084:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4254,"nodeType":"VariableDeclarationStatement","src":"5084:16:49"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4255,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"5115:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4256,"name":"BNB_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4013,"src":"5124:8:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5115:17:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4286,"nodeType":"Block","src":"5206:147:49","statements":[{"assignments":[4269],"declarations":[{"constant":false,"id":4269,"mutability":"mutable","name":"token","nameLocation":"5235:5:49","nodeType":"VariableDeclaration","scope":4286,"src":"5220:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"},"typeName":{"id":4268,"nodeType":"UserDefinedTypeName","pathNode":{"id":4267,"name":"IERC20Metadata","nameLocations":["5220:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":1896,"src":"5220:14:49"},"referencedDeclaration":1896,"src":"5220:14:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"id":4273,"initialValue":{"arguments":[{"id":4271,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"5258:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4270,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"5243:14:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$1896_$","typeString":"type(contract IERC20Metadata)"}},"id":4272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5243:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"nodeType":"VariableDeclarationStatement","src":"5220:44:49"},{"expression":{"id":4278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4274,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"5278:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4275,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"5287:5:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"id":4276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5293:6:49","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":1889,"src":"5287:12:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":4277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5287:14:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5278:23:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4279,"nodeType":"ExpressionStatement","src":"5278:23:49"},{"expression":{"id":4284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4280,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4253,"src":"5315:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4281,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"5326:5:49","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5332:8:49","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":1895,"src":"5326:14:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":4283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5326:16:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5315:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4285,"nodeType":"ExpressionStatement","src":"5315:27:49"}]},"id":4287,"nodeType":"IfStatement","src":"5111:242:49","trueBody":{"id":4266,"nodeType":"Block","src":"5134:66:49","statements":[{"expression":{"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4258,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"5148:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"424e42","id":4259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5157:5:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae","typeString":"literal_string \"BNB\""},"value":"BNB"},"src":"5148:14:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4261,"nodeType":"ExpressionStatement","src":"5148:14:49"},{"expression":{"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4262,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4253,"src":"5176:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3138","id":4263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5187:2:49","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"5176:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4265,"nodeType":"ExpressionStatement","src":"5176:13:49"}]}},{"assignments":[4289],"declarations":[{"constant":false,"id":4289,"mutability":"mutable","name":"overrideSymbol","nameLocation":"5377:14:49","nodeType":"VariableDeclaration","scope":4312,"src":"5363:28:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4288,"name":"string","nodeType":"ElementaryTypeName","src":"5363:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4293,"initialValue":{"baseExpression":{"id":4290,"name":"symbols","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"5394:7:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":4292,"indexExpression":{"id":4291,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"5402:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5394:15:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5363:46:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4296,"name":"overrideSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"5430:14:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5424:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4294,"name":"bytes","nodeType":"ElementaryTypeName","src":"5424:5:49","typeDescriptions":{}}},"id":4297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5424:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5446:6:49","memberName":"length","nodeType":"MemberAccess","src":"5424:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5456:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5424:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4306,"nodeType":"IfStatement","src":"5420:87:49","trueBody":{"id":4305,"nodeType":"Block","src":"5459:48:49","statements":[{"expression":{"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4301,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"5473:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4302,"name":"overrideSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"5482:14:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5473:23:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4304,"nodeType":"ExpressionStatement","src":"5473:23:49"}]}},{"expression":{"arguments":[{"id":4308,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"5534:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4309,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4253,"src":"5542:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4307,"name":"_getPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"5524:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,uint256) view returns (uint256)"}},"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5524:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4248,"id":4311,"nodeType":"Return","src":"5517:34:49"}]},"documentation":{"id":4242,"nodeType":"StructuredDocumentation","src":"4831:145:49","text":" @notice Gets the price of a asset from the binance oracle\n @param asset Address of the asset\n @return Price in USD"},"functionSelector":"41976e09","id":4313,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"4990:8:49","nodeType":"FunctionDefinition","parameters":{"id":4245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4244,"mutability":"mutable","name":"asset","nameLocation":"5007:5:49","nodeType":"VariableDeclaration","scope":4313,"src":"4999:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4243,"name":"address","nodeType":"ElementaryTypeName","src":"4999:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4998:15:49"},"returnParameters":{"id":4248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4313,"src":"5035:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4246,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5034:9:49"},"scope":4428,"src":"4981:577:49","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4426,"nodeType":"Block","src":"5655:1062:49","statements":[{"assignments":[4324],"declarations":[{"constant":false,"id":4324,"mutability":"mutable","name":"feedRegistry","nameLocation":"5687:12:49","nodeType":"VariableDeclaration","scope":4426,"src":"5665:34:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"},"typeName":{"id":4323,"nodeType":"UserDefinedTypeName","pathNode":{"id":4322,"name":"FeedRegistryInterface","nameLocations":["5665:21:49"],"nodeType":"IdentifierPath","referencedDeclaration":3442,"src":"5665:21:49"},"referencedDeclaration":3442,"src":"5665:21:49","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"visibility":"internal"}],"id":4325,"nodeType":"VariableDeclarationStatement","src":"5665:34:49"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4326,"name":"sidRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"5714:18:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5744:1:49","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":4328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5736:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4327,"name":"address","nodeType":"ElementaryTypeName","src":"5736:7:49","typeDescriptions":{}}},"id":4330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5736:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5714:32:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4346,"nodeType":"Block","src":"5935:162:49","statements":[{"expression":{"id":4344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4340,"name":"feedRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"6029:12:49","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4342,"name":"feedRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4026,"src":"6066:19:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4341,"name":"FeedRegistryInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"6044:21:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FeedRegistryInterface_$3442_$","typeString":"type(contract FeedRegistryInterface)"}},"id":4343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6044:42:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"src":"6029:57:49","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"id":4345,"nodeType":"ExpressionStatement","src":"6029:57:49"}]},"id":4347,"nodeType":"IfStatement","src":"5710:387:49","trueBody":{"id":4339,"nodeType":"Block","src":"5748:181:49","statements":[{"expression":{"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4332,"name":"feedRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"5856:12:49","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4334,"name":"getFeedRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"5893:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5893:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4333,"name":"FeedRegistryInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"5871:21:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FeedRegistryInterface_$3442_$","typeString":"type(contract FeedRegistryInterface)"}},"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:47:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"src":"5856:62:49","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"id":4338,"nodeType":"ExpressionStatement","src":"5856:62:49"}]}},{"assignments":[null,4349,null,4351,null],"declarations":[null,{"constant":false,"id":4349,"mutability":"mutable","name":"answer","nameLocation":"6117:6:49","nodeType":"VariableDeclaration","scope":4426,"src":"6110:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4348,"name":"int256","nodeType":"ElementaryTypeName","src":"6110:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},null,{"constant":false,"id":4351,"mutability":"mutable","name":"updatedAt","nameLocation":"6135:9:49","nodeType":"VariableDeclaration","scope":4426,"src":"6127:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4350,"name":"uint256","nodeType":"ElementaryTypeName","src":"6127:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":4357,"initialValue":{"arguments":[{"id":4354,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4315,"src":"6185:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"555344","id":4355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6193:5:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e","typeString":"literal_string \"USD\""},"value":"USD"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e","typeString":"literal_string \"USD\""}],"expression":{"id":4352,"name":"feedRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"6150:12:49","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"id":4353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6163:21:49","memberName":"latestRoundDataByName","nodeType":"MemberAccess","referencedDeclaration":3432,"src":"6150:34:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"function (string memory,string memory) view external returns (uint80,int256,uint256,uint256,uint80)"}},"id":4356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6150:49:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"tuple(uint80,int256,uint256,uint256,uint80)"}},"nodeType":"VariableDeclarationStatement","src":"6107:92:49"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4358,"name":"answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"6213:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":4359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6223:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6213:11:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4365,"nodeType":"IfStatement","src":"6209:55:49","trueBody":{"expression":{"arguments":[{"hexValue":"696e76616c69642062696e616e6365206f7261636c65207072696365","id":4362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6233:30:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e","typeString":"literal_string \"invalid binance oracle price\""},"value":"invalid binance oracle price"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e","typeString":"literal_string \"invalid binance oracle price\""}],"id":4361,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6226:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6226:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4364,"nodeType":"ExpressionStatement","src":"6226:38:49"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4366,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6278:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6284:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"6278:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4368,"name":"updatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"6296:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6278:27:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4374,"nodeType":"IfStatement","src":"6274:71:49","trueBody":{"expression":{"arguments":[{"hexValue":"757064617465644174206578636565647320626c6f636b2074696d65","id":4371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6314:30:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","typeString":"literal_string \"updatedAt exceeds block time\""},"value":"updatedAt exceeds block time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","typeString":"literal_string \"updatedAt exceeds block time\""}],"id":4370,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6307:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6307:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4373,"nodeType":"ExpressionStatement","src":"6307:38:49"}},{"assignments":[4376],"declarations":[{"constant":false,"id":4376,"mutability":"mutable","name":"deltaTime","nameLocation":"6364:9:49","nodeType":"VariableDeclaration","scope":4426,"src":"6356:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4375,"name":"uint256","nodeType":"ElementaryTypeName","src":"6356:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4377,"nodeType":"VariableDeclarationStatement","src":"6356:17:49"},{"id":4385,"nodeType":"UncheckedBlock","src":"6383:74:49","statements":[{"expression":{"id":4383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4378,"name":"deltaTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4376,"src":"6407:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4379,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6419:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6425:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"6419:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4381,"name":"updatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"6437:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6419:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6407:39:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4384,"nodeType":"ExpressionStatement","src":"6407:39:49"}]},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4386,"name":"deltaTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4376,"src":"6470:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"baseExpression":{"id":4387,"name":"maxStalePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4018,"src":"6482:14:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":4389,"indexExpression":{"id":4388,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4315,"src":"6497:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6482:22:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6470:34:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4395,"nodeType":"IfStatement","src":"6466:78:49","trueBody":{"expression":{"arguments":[{"hexValue":"62696e616e6365206f7261636c652070726963652065787069726564","id":4392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6513:30:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1","typeString":"literal_string \"binance oracle price expired\""},"value":"binance oracle price expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1","typeString":"literal_string \"binance oracle price expired\""}],"id":4391,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6506:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6506:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4394,"nodeType":"ExpressionStatement","src":"6506:38:49"}},{"assignments":[4397],"declarations":[{"constant":false,"id":4397,"mutability":"mutable","name":"decimalDelta","nameLocation":"6563:12:49","nodeType":"VariableDeclaration","scope":4426,"src":"6555:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4396,"name":"uint256","nodeType":"ElementaryTypeName","src":"6555:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4403,"initialValue":{"arguments":[{"id":4400,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4315,"src":"6606:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"555344","id":4401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6614:5:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e","typeString":"literal_string \"USD\""},"value":"USD"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e","typeString":"literal_string \"USD\""}],"expression":{"id":4398,"name":"feedRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"6578:12:49","typeDescriptions":{"typeIdentifier":"t_contract$_FeedRegistryInterface_$3442","typeString":"contract FeedRegistryInterface"}},"id":4399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6591:14:49","memberName":"decimalsByName","nodeType":"MemberAccess","referencedDeclaration":3441,"src":"6578:27:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint8_$","typeString":"function (string memory,string memory) view external returns (uint8)"}},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6578:42:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"6555:65:49"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4406,"name":"answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"6646:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6638:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4404,"name":"uint256","nodeType":"ElementaryTypeName","src":"6638:7:49","typeDescriptions":{}}},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6638:15:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6657:2:49","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3138","id":4409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6664:2:49","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4410,"name":"decimalDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"6669:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6664:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4412,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6663:19:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6657:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6656:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6638:45:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4416,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6637:47:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6688:2:49","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3138","id":4418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6695:2:49","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4419,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4317,"src":"6700:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6695:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6694:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6688:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6687:23:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6637:73:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4321,"id":4425,"nodeType":"Return","src":"6630:80:49"}]},"id":4427,"implemented":true,"kind":"function","modifiers":[],"name":"_getPrice","nameLocation":"5573:9:49","nodeType":"FunctionDefinition","parameters":{"id":4318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4315,"mutability":"mutable","name":"symbol","nameLocation":"5597:6:49","nodeType":"VariableDeclaration","scope":4427,"src":"5583:20:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4314,"name":"string","nodeType":"ElementaryTypeName","src":"5583:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4317,"mutability":"mutable","name":"decimals","nameLocation":"5613:8:49","nodeType":"VariableDeclaration","scope":4427,"src":"5605:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4316,"name":"uint256","nodeType":"ElementaryTypeName","src":"5605:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5582:40:49"},"returnParameters":{"id":4321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4427,"src":"5646:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4319,"name":"uint256","nodeType":"ElementaryTypeName","src":"5646:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5645:9:49"},"scope":4428,"src":"5564:1153:49","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4429,"src":"626:6093:49","usedErrors":[1961],"usedEvents":[120,227,357,1952,4033,4040,4047]}],"src":"41:6679:49"},"id":49},"contracts/oracles/BoundValidator.sol":{"ast":{"absolutePath":"contracts/oracles/BoundValidator.sol","exportedSymbols":{"AccessControlledV8":[2080],"AddressUpgradeable":[969],"BoundValidator":[4682],"BoundValidatorInterface":[3698],"ContextUpgradeable":[1020],"IAccessControl":[1093],"IAccessControlManagerV8":[2125],"IERC20":[1871],"IERC20Metadata":[1896],"Initializable":[511],"OracleInterface":[3666],"Ownable2StepUpgradeable":[209],"OwnableUpgradeable":[342],"ResilientOracleInterface":[3686],"VBep20Interface":[3730]},"id":4683,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":4430,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:50"},{"absolutePath":"contracts/interfaces/VBep20Interface.sol","file":"../interfaces/VBep20Interface.sol","id":4431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4683,"sourceUnit":3731,"src":"66:43:50","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":4432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4683,"sourceUnit":3699,"src":"110:43:50","symbolAliases":[],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","id":4433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4683,"sourceUnit":2081,"src":"154:89:50","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4435,"name":"AccessControlledV8","nameLocations":["583:18:50"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"583:18:50"},"id":4436,"nodeType":"InheritanceSpecifier","src":"583:18:50"},{"baseName":{"id":4437,"name":"BoundValidatorInterface","nameLocations":["603:23:50"],"nodeType":"IdentifierPath","referencedDeclaration":3698,"src":"603:23:50"},"id":4438,"nodeType":"InheritanceSpecifier","src":"603:23:50"}],"canonicalName":"BoundValidator","contractDependencies":[],"contractKind":"contract","documentation":{"id":4434,"nodeType":"StructuredDocumentation","src":"245:310:50","text":" @title BoundValidator\n @author Venus\n @notice The BoundValidator contract is used to validate prices fetched from two different sources.\n Each asset has an upper and lower bound ratio set in the config. In order for a price to be valid\n it must fall within this range of the validator price."},"fullyImplemented":true,"id":4682,"linearizedBaseContracts":[4682,3698,2080,209,342,1020,511],"name":"BoundValidator","nameLocation":"565:14:50","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BoundValidator.ValidateConfig","id":4448,"members":[{"constant":false,"id":4441,"mutability":"mutable","name":"asset","nameLocation":"707:5:50","nodeType":"VariableDeclaration","scope":4448,"src":"699:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4440,"name":"address","nodeType":"ElementaryTypeName","src":"699:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4444,"mutability":"mutable","name":"upperBoundRatio","nameLocation":"880:15:50","nodeType":"VariableDeclaration","scope":4448,"src":"872:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4443,"name":"uint256","nodeType":"ElementaryTypeName","src":"872:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4447,"mutability":"mutable","name":"lowerBoundRatio","nameLocation":"1062:15:50","nodeType":"VariableDeclaration","scope":4448,"src":"1054:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4446,"name":"uint256","nodeType":"ElementaryTypeName","src":"1054:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidateConfig","nameLocation":"640:14:50","nodeType":"StructDefinition","scope":4682,"src":"633:451:50","visibility":"public"},{"constant":false,"documentation":{"id":4449,"nodeType":"StructuredDocumentation","src":"1090:39:50","text":"@notice validation configs by asset"},"functionSelector":"bca9e116","id":4454,"mutability":"mutable","name":"validateConfigs","nameLocation":"1176:15:50","nodeType":"VariableDeclaration","scope":4682,"src":"1134:57:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidateConfig_$4448_storage_$","typeString":"mapping(address => struct BoundValidator.ValidateConfig)"},"typeName":{"id":4453,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4450,"name":"address","nodeType":"ElementaryTypeName","src":"1142:7:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1134:34:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidateConfig_$4448_storage_$","typeString":"mapping(address => struct BoundValidator.ValidateConfig)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4452,"nodeType":"UserDefinedTypeName","pathNode":{"id":4451,"name":"ValidateConfig","nameLocations":["1153:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":4448,"src":"1153:14:50"},"referencedDeclaration":4448,"src":"1153:14:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage_ptr","typeString":"struct BoundValidator.ValidateConfig"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":4455,"nodeType":"StructuredDocumentation","src":"1198:65:50","text":"@notice Emit this event when new validation configs are added"},"eventSelector":"28e2d96bdcf74fe6203e40d159d27ec2e15230239c0aee4a0a914196c550e6d1","id":4463,"name":"ValidateConfigAdded","nameLocation":"1274:19:50","nodeType":"EventDefinition","parameters":{"id":4462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4457,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"1310:5:50","nodeType":"VariableDeclaration","scope":4463,"src":"1294:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4456,"name":"address","nodeType":"ElementaryTypeName","src":"1294:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4459,"indexed":true,"mutability":"mutable","name":"upperBound","nameLocation":"1333:10:50","nodeType":"VariableDeclaration","scope":4463,"src":"1317:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1317:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4461,"indexed":true,"mutability":"mutable","name":"lowerBound","nameLocation":"1361:10:50","nodeType":"VariableDeclaration","scope":4463,"src":"1345:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4460,"name":"uint256","nodeType":"ElementaryTypeName","src":"1345:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1293:79:50"},"src":"1268:105:50"},{"body":{"id":4470,"nodeType":"Block","src":"1533:39:50","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4467,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"1543:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4469,"nodeType":"ExpressionStatement","src":"1543:22:50"}]},"documentation":{"id":4464,"nodeType":"StructuredDocumentation","src":"1379:135:50","text":"@notice Constructor for the implementation contract. Sets immutable variables.\n @custom:oz-upgrades-unsafe-allow constructor"},"id":4471,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4465,"nodeType":"ParameterList","parameters":[],"src":"1530:2:50"},"returnParameters":{"id":4466,"nodeType":"ParameterList","parameters":[],"src":"1533:0:50"},"scope":4682,"src":"1519:53:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4483,"nodeType":"Block","src":"1802:63:50","statements":[{"expression":{"arguments":[{"id":4480,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4474,"src":"1836:21:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4479,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1976,"src":"1812:23:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1812:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4482,"nodeType":"ExpressionStatement","src":"1812:46:50"}]},"documentation":{"id":4472,"nodeType":"StructuredDocumentation","src":"1578:147:50","text":" @notice Initializes the owner of the contract\n @param accessControlManager_ Address of the access control manager contract"},"functionSelector":"c4d66de8","id":4484,"implemented":true,"kind":"function","modifiers":[{"id":4477,"kind":"modifierInvocation","modifierName":{"id":4476,"name":"initializer","nameLocations":["1790:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"1790:11:50"},"nodeType":"ModifierInvocation","src":"1790:11:50"}],"name":"initialize","nameLocation":"1739:10:50","nodeType":"FunctionDefinition","parameters":{"id":4475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4474,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1758:21:50","nodeType":"VariableDeclaration","scope":4484,"src":"1750:29:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4473,"name":"address","nodeType":"ElementaryTypeName","src":"1750:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1749:31:50"},"returnParameters":{"id":4478,"nodeType":"ParameterList","parameters":[],"src":"1802:0:50"},"scope":4682,"src":"1730:135:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4522,"nodeType":"Block","src":"2292:211:50","statements":[{"assignments":[4493],"declarations":[{"constant":false,"id":4493,"mutability":"mutable","name":"length","nameLocation":"2310:6:50","nodeType":"VariableDeclaration","scope":4522,"src":"2302:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4492,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4496,"initialValue":{"expression":{"id":4494,"name":"configs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"2319:7:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory[] memory"}},"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2327:6:50","memberName":"length","nodeType":"MemberAccess","src":"2319:14:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2302:31:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4497,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"2347:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2357:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2347:11:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4504,"nodeType":"IfStatement","src":"2343:57:50","trueBody":{"expression":{"arguments":[{"hexValue":"696e76616c69642076616c696461746520636f6e666967206c656e677468","id":4501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2367:32:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc","typeString":"literal_string \"invalid validate config length\""},"value":"invalid validate config length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc","typeString":"literal_string \"invalid validate config length\""}],"id":4500,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2360:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2360:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4503,"nodeType":"ExpressionStatement","src":"2360:40:50"}},{"body":{"id":4520,"nodeType":"Block","src":"2443:54:50","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4515,"name":"configs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"2475:7:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory[] memory"}},"id":4517,"indexExpression":{"id":4516,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"2483:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2475:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}],"id":4514,"name":"setValidateConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"2457:17:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidateConfig_$4448_memory_ptr_$returns$__$","typeString":"function (struct BoundValidator.ValidateConfig memory)"}},"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4519,"nodeType":"ExpressionStatement","src":"2457:29:50"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4508,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"2426:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4509,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"2430:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2426:10:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4521,"initializationExpression":{"assignments":[4506],"declarations":[{"constant":false,"id":4506,"mutability":"mutable","name":"i","nameLocation":"2423:1:50","nodeType":"VariableDeclaration","scope":4521,"src":"2415:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4505,"name":"uint256","nodeType":"ElementaryTypeName","src":"2415:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4507,"nodeType":"VariableDeclarationStatement","src":"2415:9:50"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2438:3:50","subExpression":{"id":4511,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"2440:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4513,"nodeType":"ExpressionStatement","src":"2438:3:50"},"nodeType":"ForStatement","src":"2410:87:50"}]},"documentation":{"id":4485,"nodeType":"StructuredDocumentation","src":"1871:346:50","text":" @notice Add multiple validation configs at the same time\n @param configs Array of validation configs\n @custom:access Only Governance\n @custom:error Zero length error is thrown if length of the config array is 0\n @custom:event Emits ValidateConfigAdded for each validation config that is successfully set"},"functionSelector":"9c357615","id":4523,"implemented":true,"kind":"function","modifiers":[],"name":"setValidateConfigs","nameLocation":"2231:18:50","nodeType":"FunctionDefinition","parameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"configs","nameLocation":"2274:7:50","nodeType":"VariableDeclaration","scope":4523,"src":"2250:31:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","typeString":"struct BoundValidator.ValidateConfig[]"},"typeName":{"baseType":{"id":4487,"nodeType":"UserDefinedTypeName","pathNode":{"id":4486,"name":"ValidateConfig","nameLocations":["2250:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":4448,"src":"2250:14:50"},"referencedDeclaration":4448,"src":"2250:14:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage_ptr","typeString":"struct BoundValidator.ValidateConfig"}},"id":4488,"nodeType":"ArrayTypeName","src":"2250:16:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidateConfig_$4448_storage_$dyn_storage_ptr","typeString":"struct BoundValidator.ValidateConfig[]"}},"visibility":"internal"}],"src":"2249:33:50"},"returnParameters":{"id":4491,"nodeType":"ParameterList","parameters":[],"src":"2292:0:50"},"scope":4682,"src":"2222:281:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4586,"nodeType":"Block","src":"3052:521:50","statements":[{"expression":{"arguments":[{"hexValue":"73657456616c6964617465436f6e6669672856616c6964617465436f6e66696729","id":4531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3082:35:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_2008091d9013432264f9f40c0930f2951e4e98cc9e9422af2739dc5f160ff84a","typeString":"literal_string \"setValidateConfig(ValidateConfig)\""},"value":"setValidateConfig(ValidateConfig)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2008091d9013432264f9f40c0930f2951e4e98cc9e9422af2739dc5f160ff84a","typeString":"literal_string \"setValidateConfig(ValidateConfig)\""}],"id":4530,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"3062:19:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":4532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3062:56:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4533,"nodeType":"ExpressionStatement","src":"3062:56:50"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4534,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3133:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3140:5:50","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4441,"src":"3133:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3157:1:50","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":4537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3149:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4536,"name":"address","nodeType":"ElementaryTypeName","src":"3149:7:50","typeDescriptions":{}}},"id":4539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3149:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3133:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4545,"nodeType":"IfStatement","src":"3129:69:50","trueBody":{"expression":{"arguments":[{"hexValue":"61737365742063616e2774206265207a65726f2061646472657373","id":4542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3168:29:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937","typeString":"literal_string \"asset can't be zero address\""},"value":"asset can't be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937","typeString":"literal_string \"asset can't be zero address\""}],"id":4541,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3161:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3161:37:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4544,"nodeType":"ExpressionStatement","src":"3161:37:50"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4546,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3212:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3219:15:50","memberName":"upperBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4444,"src":"3212:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3212:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4550,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3243:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3250:15:50","memberName":"lowerBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4447,"src":"3243:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3243:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3212:58:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4559,"nodeType":"IfStatement","src":"3208:96:50","trueBody":{"expression":{"arguments":[{"hexValue":"626f756e64206d75737420626520706f736974697665","id":4556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3279:24:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c","typeString":"literal_string \"bound must be positive\""},"value":"bound must be positive"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c","typeString":"literal_string \"bound must be positive\""}],"id":4555,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3272:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3272:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4558,"nodeType":"ExpressionStatement","src":"3272:32:50"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4560,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3318:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3325:15:50","memberName":"upperBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4444,"src":"3318:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":4562,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3344:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3351:15:50","memberName":"lowerBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4447,"src":"3344:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3318:48:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4569,"nodeType":"IfStatement","src":"3314:108:50","trueBody":{"expression":{"arguments":[{"hexValue":"757070657220626f756e64206d75737420626520686967686572207468616e206c6f776e657220626f756e64","id":4566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3375:46:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a","typeString":"literal_string \"upper bound must be higher than lowner bound\""},"value":"upper bound must be higher than lowner bound"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a","typeString":"literal_string \"upper bound must be higher than lowner bound\""}],"id":4565,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3368:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3368:54:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4568,"nodeType":"ExpressionStatement","src":"3368:54:50"}},{"expression":{"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4570,"name":"validateConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"3432:15:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidateConfig_$4448_storage_$","typeString":"mapping(address => struct BoundValidator.ValidateConfig storage ref)"}},"id":4573,"indexExpression":{"expression":{"id":4571,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3448:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3455:5:50","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4441,"src":"3448:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3432:29:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage","typeString":"struct BoundValidator.ValidateConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4574,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3464:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"src":"3432:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage","typeString":"struct BoundValidator.ValidateConfig storage ref"}},"id":4576,"nodeType":"ExpressionStatement","src":"3432:38:50"},{"eventCall":{"arguments":[{"expression":{"id":4578,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3505:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3512:5:50","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4441,"src":"3505:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4580,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3519:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3526:15:50","memberName":"upperBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4444,"src":"3519:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4582,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"3543:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig memory"}},"id":4583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3550:15:50","memberName":"lowerBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4447,"src":"3543:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4577,"name":"ValidateConfigAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4463,"src":"3485:19:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":4584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3485:81:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4585,"nodeType":"EmitStatement","src":"3480:86:50"}]},"documentation":{"id":4524,"nodeType":"StructuredDocumentation","src":"2509:474:50","text":" @notice Add a single validation config\n @param config Validation config struct\n @custom:access Only Governance\n @custom:error Null address error is thrown if asset address is null\n @custom:error Range error thrown if bound ratio is not positive\n @custom:error Range error thrown if lower bound is greater than or equal to upper bound\n @custom:event Emits ValidateConfigAdded when a validation config is successfully set"},"functionSelector":"af9e6c5b","id":4587,"implemented":true,"kind":"function","modifiers":[],"name":"setValidateConfig","nameLocation":"2997:17:50","nodeType":"FunctionDefinition","parameters":{"id":4528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4527,"mutability":"mutable","name":"config","nameLocation":"3037:6:50","nodeType":"VariableDeclaration","scope":4587,"src":"3015:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_memory_ptr","typeString":"struct BoundValidator.ValidateConfig"},"typeName":{"id":4526,"nodeType":"UserDefinedTypeName","pathNode":{"id":4525,"name":"ValidateConfig","nameLocations":["3015:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":4448,"src":"3015:14:50"},"referencedDeclaration":4448,"src":"3015:14:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage_ptr","typeString":"struct BoundValidator.ValidateConfig"}},"visibility":"internal"}],"src":"3014:30:50"},"returnParameters":{"id":4529,"nodeType":"ParameterList","parameters":[],"src":"3052:0:50"},"scope":4682,"src":"2988:585:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3697],"body":{"id":4625,"nodeType":"Block","src":"4051:237:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":4600,"name":"validateConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"4065:15:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidateConfig_$4448_storage_$","typeString":"mapping(address => struct BoundValidator.ValidateConfig storage ref)"}},"id":4602,"indexExpression":{"id":4601,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"4081:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4065:22:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage","typeString":"struct BoundValidator.ValidateConfig storage ref"}},"id":4603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4088:15:50","memberName":"upperBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4444,"src":"4065:38:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4107:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4065:43:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4610,"nodeType":"IfStatement","src":"4061:86:50","trueBody":{"expression":{"arguments":[{"hexValue":"76616c69646174696f6e20636f6e666967206e6f74206578697374","id":4607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4117:29:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9","typeString":"literal_string \"validation config not exist\""},"value":"validation config not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9","typeString":"literal_string \"validation config not exist\""}],"id":4606,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4110:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:37:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4609,"nodeType":"ExpressionStatement","src":"4110:37:50"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4611,"name":"anchorPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4594,"src":"4161:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4176:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4161:16:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4618,"nodeType":"IfStatement","src":"4157:57:50","trueBody":{"expression":{"arguments":[{"hexValue":"616e63686f72207072696365206973206e6f742076616c6964","id":4615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4186:27:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3","typeString":"literal_string \"anchor price is not valid\""},"value":"anchor price is not valid"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3","typeString":"literal_string \"anchor price is not valid\""}],"id":4614,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4179:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4179:35:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4617,"nodeType":"ExpressionStatement","src":"4179:35:50"}},{"expression":{"arguments":[{"id":4620,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"4247:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4621,"name":"reportedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"4254:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4622,"name":"anchorPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4594,"src":"4269:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4619,"name":"_isWithinAnchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4677,"src":"4231:15:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256) view returns (bool)"}},"id":4623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4231:50:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4599,"id":4624,"nodeType":"Return","src":"4224:57:50"}]},"documentation":{"id":4588,"nodeType":"StructuredDocumentation","src":"3579:296:50","text":" @notice Test reported asset price against anchor price\n @param asset asset address\n @param reportedPrice The price to be tested\n @custom:error Missing error thrown if asset config is not set\n @custom:error Price error thrown if anchor price is not valid"},"functionSelector":"97c7033e","id":4626,"implemented":true,"kind":"function","modifiers":[],"name":"validatePriceWithAnchorPrice","nameLocation":"3889:28:50","nodeType":"FunctionDefinition","overrides":{"id":4596,"nodeType":"OverrideSpecifier","overrides":[],"src":"4027:8:50"},"parameters":{"id":4595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4590,"mutability":"mutable","name":"asset","nameLocation":"3935:5:50","nodeType":"VariableDeclaration","scope":4626,"src":"3927:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4589,"name":"address","nodeType":"ElementaryTypeName","src":"3927:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4592,"mutability":"mutable","name":"reportedPrice","nameLocation":"3958:13:50","nodeType":"VariableDeclaration","scope":4626,"src":"3950:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4591,"name":"uint256","nodeType":"ElementaryTypeName","src":"3950:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4594,"mutability":"mutable","name":"anchorPrice","nameLocation":"3989:11:50","nodeType":"VariableDeclaration","scope":4626,"src":"3981:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4593,"name":"uint256","nodeType":"ElementaryTypeName","src":"3981:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3917:89:50"},"returnParameters":{"id":4599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4626,"src":"4045:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4597,"name":"bool","nodeType":"ElementaryTypeName","src":"4045:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4044:6:50"},"scope":4682,"src":"3880:408:50","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4676,"nodeType":"Block","src":"4676:495:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4638,"name":"reportedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4631,"src":"4690:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4707:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4690:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4673,"nodeType":"IfStatement","src":"4686:457:50","trueBody":{"id":4672,"nodeType":"Block","src":"4710:433:50","statements":[{"assignments":[4642],"declarations":[{"constant":false,"id":4642,"mutability":"mutable","name":"anchorRatio","nameLocation":"4817:11:50","nodeType":"VariableDeclaration","scope":4672,"src":"4809:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4641,"name":"uint256","nodeType":"ElementaryTypeName","src":"4809:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4649,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4643,"name":"anchorPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4633,"src":"4832:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":4644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4846:4:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"4832:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4646,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4831:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4647,"name":"reportedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4631,"src":"4854:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4831:36:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4809:58:50"},{"assignments":[4651],"declarations":[{"constant":false,"id":4651,"mutability":"mutable","name":"upperBoundAnchorRatio","nameLocation":"4889:21:50","nodeType":"VariableDeclaration","scope":4672,"src":"4881:29:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4650,"name":"uint256","nodeType":"ElementaryTypeName","src":"4881:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4656,"initialValue":{"expression":{"baseExpression":{"id":4652,"name":"validateConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"4913:15:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidateConfig_$4448_storage_$","typeString":"mapping(address => struct BoundValidator.ValidateConfig storage ref)"}},"id":4654,"indexExpression":{"id":4653,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"4929:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4913:22:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage","typeString":"struct BoundValidator.ValidateConfig storage ref"}},"id":4655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4936:15:50","memberName":"upperBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4444,"src":"4913:38:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4881:70:50"},{"assignments":[4658],"declarations":[{"constant":false,"id":4658,"mutability":"mutable","name":"lowerBoundAnchorRatio","nameLocation":"4973:21:50","nodeType":"VariableDeclaration","scope":4672,"src":"4965:29:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4657,"name":"uint256","nodeType":"ElementaryTypeName","src":"4965:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4663,"initialValue":{"expression":{"baseExpression":{"id":4659,"name":"validateConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"4997:15:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidateConfig_$4448_storage_$","typeString":"mapping(address => struct BoundValidator.ValidateConfig storage ref)"}},"id":4661,"indexExpression":{"id":4660,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4629,"src":"5013:5:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4997:22:50","typeDescriptions":{"typeIdentifier":"t_struct$_ValidateConfig_$4448_storage","typeString":"struct BoundValidator.ValidateConfig storage ref"}},"id":4662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5020:15:50","memberName":"lowerBoundRatio","nodeType":"MemberAccess","referencedDeclaration":4447,"src":"4997:38:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4965:70:50"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4664,"name":"anchorRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"5056:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":4665,"name":"upperBoundAnchorRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4651,"src":"5071:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5056:36:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4667,"name":"anchorRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"5096:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4668,"name":"lowerBoundAnchorRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"5111:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5096:36:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5056:76:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4637,"id":4671,"nodeType":"Return","src":"5049:83:50"}]}},{"expression":{"hexValue":"66616c7365","id":4674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5159:5:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4637,"id":4675,"nodeType":"Return","src":"5152:12:50"}]},"documentation":{"id":4627,"nodeType":"StructuredDocumentation","src":"4294:265:50","text":" @notice Test whether the reported price is within the valid bounds\n @param asset Asset address\n @param reportedPrice The price to be tested\n @param anchorPrice The reported price must be within the the valid bounds of this price"},"id":4677,"implemented":true,"kind":"function","modifiers":[],"name":"_isWithinAnchor","nameLocation":"4573:15:50","nodeType":"FunctionDefinition","parameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4629,"mutability":"mutable","name":"asset","nameLocation":"4597:5:50","nodeType":"VariableDeclaration","scope":4677,"src":"4589:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4628,"name":"address","nodeType":"ElementaryTypeName","src":"4589:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4631,"mutability":"mutable","name":"reportedPrice","nameLocation":"4612:13:50","nodeType":"VariableDeclaration","scope":4677,"src":"4604:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4630,"name":"uint256","nodeType":"ElementaryTypeName","src":"4604:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4633,"mutability":"mutable","name":"anchorPrice","nameLocation":"4635:11:50","nodeType":"VariableDeclaration","scope":4677,"src":"4627:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4632,"name":"uint256","nodeType":"ElementaryTypeName","src":"4627:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4588:59:50"},"returnParameters":{"id":4637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4677,"src":"4670:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4635,"name":"bool","nodeType":"ElementaryTypeName","src":"4670:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4669:6:50"},"scope":4682,"src":"4564:607:50","stateMutability":"view","virtual":false,"visibility":"private"},{"constant":false,"id":4681,"mutability":"mutable","name":"__gap","nameLocation":"5444:5:50","nodeType":"VariableDeclaration","scope":4682,"src":"5424:25:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":4678,"name":"uint256","nodeType":"ElementaryTypeName","src":"5424:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4680,"length":{"hexValue":"3439","id":4679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5432:2:50","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"5424:11:50","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":4683,"src":"556:4896:50","usedErrors":[1961],"usedEvents":[120,227,357,1952,4463]}],"src":"41:5412:50"},"id":50},"contracts/oracles/ChainlinkOracle.sol":{"ast":{"absolutePath":"contracts/oracles/ChainlinkOracle.sol","exportedSymbols":{"AccessControlledV8":[2080],"AddressUpgradeable":[969],"AggregatorV3Interface":[102],"BoundValidatorInterface":[3698],"ChainlinkOracle":[5077],"ContextUpgradeable":[1020],"IAccessControl":[1093],"IAccessControlManagerV8":[2125],"IERC20":[1871],"IERC20Metadata":[1896],"Initializable":[511],"OracleInterface":[3666],"Ownable2StepUpgradeable":[209],"OwnableUpgradeable":[342],"ResilientOracleInterface":[3686],"VBep20Interface":[3730]},"id":5078,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":4684,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:51"},{"absolutePath":"contracts/interfaces/VBep20Interface.sol","file":"../interfaces/VBep20Interface.sol","id":4685,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5078,"sourceUnit":3731,"src":"66:43:51","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":4686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5078,"sourceUnit":3699,"src":"110:43:51","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol","file":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol","id":4687,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5078,"sourceUnit":103,"src":"154:76:51","symbolAliases":[],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","id":4688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5078,"sourceUnit":2081,"src":"231:89:51","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4690,"name":"AccessControlledV8","nameLocations":["476:18:51"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"476:18:51"},"id":4691,"nodeType":"InheritanceSpecifier","src":"476:18:51"},{"baseName":{"id":4692,"name":"OracleInterface","nameLocations":["496:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"496:15:51"},"id":4693,"nodeType":"InheritanceSpecifier","src":"496:15:51"}],"canonicalName":"ChainlinkOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":4689,"nodeType":"StructuredDocumentation","src":"322:125:51","text":" @title ChainlinkOracle\n @author Venus\n @notice This oracle fetches prices of assets from the Chainlink oracle."},"fullyImplemented":true,"id":5077,"linearizedBaseContracts":[5077,3666,2080,209,342,1020,511],"name":"ChainlinkOracle","nameLocation":"457:15:51","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ChainlinkOracle.TokenConfig","id":4703,"members":[{"constant":false,"id":4696,"mutability":"mutable","name":"asset","nameLocation":"848:5:51","nodeType":"VariableDeclaration","scope":4703,"src":"840:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4695,"name":"address","nodeType":"ElementaryTypeName","src":"840:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4699,"mutability":"mutable","name":"feed","nameLocation":"914:4:51","nodeType":"VariableDeclaration","scope":4703,"src":"906:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4698,"name":"address","nodeType":"ElementaryTypeName","src":"906:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4702,"mutability":"mutable","name":"maxStalePeriod","nameLocation":"994:14:51","nodeType":"VariableDeclaration","scope":4703,"src":"986:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4701,"name":"uint256","nodeType":"ElementaryTypeName","src":"986:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TokenConfig","nameLocation":"525:11:51","nodeType":"StructDefinition","scope":5077,"src":"518:497:51","visibility":"public"},{"constant":true,"documentation":{"id":4704,"nodeType":"StructuredDocumentation","src":"1021:187:51","text":"@notice Set this as asset address for native token on each chain.\n This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain."},"functionSelector":"a9534f8a","id":4707,"mutability":"constant","name":"NATIVE_TOKEN_ADDR","nameLocation":"1237:17:51","nodeType":"VariableDeclaration","scope":5077,"src":"1213:86:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4705,"name":"address","nodeType":"ElementaryTypeName","src":"1213:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307862426242424242626242424262626242626242626262624242624262626262426242626242426242","id":4706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1257:42:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"},"visibility":"public"},{"constant":false,"documentation":{"id":4708,"nodeType":"StructuredDocumentation","src":"1306:106:51","text":"@notice Manually set an override price, useful under extenuating conditions such as price feed failure"},"functionSelector":"cfed246b","id":4712,"mutability":"mutable","name":"prices","nameLocation":"1452:6:51","nodeType":"VariableDeclaration","scope":5077,"src":"1417:41:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4711,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4709,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1417:27:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":4713,"nodeType":"StructuredDocumentation","src":"1465:34:51","text":"@notice Token config by assets"},"functionSelector":"1b69dc5f","id":4718,"mutability":"mutable","name":"tokenConfigs","nameLocation":"1543:12:51","nodeType":"VariableDeclaration","scope":5077,"src":"1504:51:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$4703_storage_$","typeString":"mapping(address => struct ChainlinkOracle.TokenConfig)"},"typeName":{"id":4717,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4714,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1504:31:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$4703_storage_$","typeString":"mapping(address => struct ChainlinkOracle.TokenConfig)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4716,"nodeType":"UserDefinedTypeName","pathNode":{"id":4715,"name":"TokenConfig","nameLocations":["1523:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":4703,"src":"1523:11:51"},"referencedDeclaration":4703,"src":"1523:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage_ptr","typeString":"struct ChainlinkOracle.TokenConfig"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":4719,"nodeType":"StructuredDocumentation","src":"1562:45:51","text":"@notice Emit when a price is manually set"},"eventSelector":"a0844d44570b5ec5ac55e9e7d1e7fc8149b4f33b4b61f3c8fc08bacce058faee","id":4727,"name":"PricePosted","nameLocation":"1618:11:51","nodeType":"EventDefinition","parameters":{"id":4726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4721,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"1646:5:51","nodeType":"VariableDeclaration","scope":4727,"src":"1630:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4720,"name":"address","nodeType":"ElementaryTypeName","src":"1630:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4723,"indexed":false,"mutability":"mutable","name":"previousPriceMantissa","nameLocation":"1661:21:51","nodeType":"VariableDeclaration","scope":4727,"src":"1653:29:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4722,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4725,"indexed":false,"mutability":"mutable","name":"newPriceMantissa","nameLocation":"1692:16:51","nodeType":"VariableDeclaration","scope":4727,"src":"1684:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4724,"name":"uint256","nodeType":"ElementaryTypeName","src":"1684:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1629:80:51"},"src":"1612:98:51"},{"anonymous":false,"documentation":{"id":4728,"nodeType":"StructuredDocumentation","src":"1716:45:51","text":"@notice Emit when a token config is added"},"eventSelector":"3cc8d9cb9370a23a8b9ffa75efa24cecb65c4693980e58260841adc474983c5f","id":4736,"name":"TokenConfigAdded","nameLocation":"1772:16:51","nodeType":"EventDefinition","parameters":{"id":4735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4730,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"1805:5:51","nodeType":"VariableDeclaration","scope":4736,"src":"1789:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4729,"name":"address","nodeType":"ElementaryTypeName","src":"1789:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4732,"indexed":false,"mutability":"mutable","name":"feed","nameLocation":"1820:4:51","nodeType":"VariableDeclaration","scope":4736,"src":"1812:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4731,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4734,"indexed":false,"mutability":"mutable","name":"maxStalePeriod","nameLocation":"1834:14:51","nodeType":"VariableDeclaration","scope":4736,"src":"1826:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4733,"name":"uint256","nodeType":"ElementaryTypeName","src":"1826:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1788:61:51"},"src":"1766:84:51"},{"body":{"id":4752,"nodeType":"Block","src":"1897:86:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4740,"name":"someone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"1911:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1930:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1922:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4741,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:51","typeDescriptions":{}}},"id":4744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1922:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1911:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4750,"nodeType":"IfStatement","src":"1907:58:51","trueBody":{"expression":{"arguments":[{"hexValue":"63616e2774206265207a65726f2061646472657373","id":4747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:23:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","typeString":"literal_string \"can't be zero address\""},"value":"can't be zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","typeString":"literal_string \"can't be zero address\""}],"id":4746,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1934:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:31:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4749,"nodeType":"ExpressionStatement","src":"1934:31:51"}},{"id":4751,"nodeType":"PlaceholderStatement","src":"1975:1:51"}]},"id":4753,"name":"notNullAddress","nameLocation":"1865:14:51","nodeType":"ModifierDefinition","parameters":{"id":4739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4738,"mutability":"mutable","name":"someone","nameLocation":"1888:7:51","nodeType":"VariableDeclaration","scope":4753,"src":"1880:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4737,"name":"address","nodeType":"ElementaryTypeName","src":"1880:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1879:17:51"},"src":"1856:127:51","virtual":false,"visibility":"internal"},{"body":{"id":4760,"nodeType":"Block","src":"2117:39:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4757,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"2127:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2127:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4759,"nodeType":"ExpressionStatement","src":"2127:22:51"}]},"documentation":{"id":4754,"nodeType":"StructuredDocumentation","src":"1989:109:51","text":"@notice Constructor for the implementation contract.\n @custom:oz-upgrades-unsafe-allow constructor"},"id":4761,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4755,"nodeType":"ParameterList","parameters":[],"src":"2114:2:51"},"returnParameters":{"id":4756,"nodeType":"ParameterList","parameters":[],"src":"2117:0:51"},"scope":5077,"src":"2103:53:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4773,"nodeType":"Block","src":"2386:63:51","statements":[{"expression":{"arguments":[{"id":4770,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4764,"src":"2420:21:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4769,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1976,"src":"2396:23:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2396:46:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4772,"nodeType":"ExpressionStatement","src":"2396:46:51"}]},"documentation":{"id":4762,"nodeType":"StructuredDocumentation","src":"2162:147:51","text":" @notice Initializes the owner of the contract\n @param accessControlManager_ Address of the access control manager contract"},"functionSelector":"c4d66de8","id":4774,"implemented":true,"kind":"function","modifiers":[{"id":4767,"kind":"modifierInvocation","modifierName":{"id":4766,"name":"initializer","nameLocations":["2374:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"2374:11:51"},"nodeType":"ModifierInvocation","src":"2374:11:51"}],"name":"initialize","nameLocation":"2323:10:51","nodeType":"FunctionDefinition","parameters":{"id":4765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4764,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2342:21:51","nodeType":"VariableDeclaration","scope":4774,"src":"2334:29:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4763,"name":"address","nodeType":"ElementaryTypeName","src":"2334:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2333:31:51"},"returnParameters":{"id":4768,"nodeType":"ParameterList","parameters":[],"src":"2386:0:51"},"scope":5077,"src":"2314:135:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4807,"nodeType":"Block","src":"2812:221:51","statements":[{"expression":{"arguments":[{"hexValue":"736574446972656374507269636528616464726573732c75696e7432353629","id":4786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2842:33:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_09a8acb065fe5043ed4a969f967435770ffd8450e4a35e94d24bdd23267a218a","typeString":"literal_string \"setDirectPrice(address,uint256)\""},"value":"setDirectPrice(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_09a8acb065fe5043ed4a969f967435770ffd8450e4a35e94d24bdd23267a218a","typeString":"literal_string \"setDirectPrice(address,uint256)\""}],"id":4785,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"2822:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":4787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2822:54:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4788,"nodeType":"ExpressionStatement","src":"2822:54:51"},{"assignments":[4790],"declarations":[{"constant":false,"id":4790,"mutability":"mutable","name":"previousPriceMantissa","nameLocation":"2895:21:51","nodeType":"VariableDeclaration","scope":4807,"src":"2887:29:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4789,"name":"uint256","nodeType":"ElementaryTypeName","src":"2887:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4794,"initialValue":{"baseExpression":{"id":4791,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4712,"src":"2919:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4793,"indexExpression":{"id":4792,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"2926:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2919:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2887:45:51"},{"expression":{"id":4799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4795,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4712,"src":"2942:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4797,"indexExpression":{"id":4796,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"2949:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2942:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4798,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4779,"src":"2958:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2942:21:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4800,"nodeType":"ExpressionStatement","src":"2942:21:51"},{"eventCall":{"arguments":[{"id":4802,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"2990:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4803,"name":"previousPriceMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"2997:21:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4804,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4779,"src":"3020:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4801,"name":"PricePosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"2978:11:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":4805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2978:48:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4806,"nodeType":"EmitStatement","src":"2973:53:51"}]},"documentation":{"id":4775,"nodeType":"StructuredDocumentation","src":"2455:267:51","text":" @notice Manually set the price of a given asset\n @param asset Asset address\n @param price Asset price in 18 decimals\n @custom:access Only Governance\n @custom:event Emits PricePosted event on successfully setup of asset price"},"functionSelector":"09a8acb0","id":4808,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4782,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"2805:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4783,"kind":"modifierInvocation","modifierName":{"id":4781,"name":"notNullAddress","nameLocations":["2790:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":4753,"src":"2790:14:51"},"nodeType":"ModifierInvocation","src":"2790:21:51"}],"name":"setDirectPrice","nameLocation":"2736:14:51","nodeType":"FunctionDefinition","parameters":{"id":4780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4777,"mutability":"mutable","name":"asset","nameLocation":"2759:5:51","nodeType":"VariableDeclaration","scope":4808,"src":"2751:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4776,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4779,"mutability":"mutable","name":"price","nameLocation":"2774:5:51","nodeType":"VariableDeclaration","scope":4808,"src":"2766:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4778,"name":"uint256","nodeType":"ElementaryTypeName","src":"2766:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2750:30:51"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[],"src":"2812:0:51"},"scope":5077,"src":"2727:306:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4847,"nodeType":"Block","src":"3351:239:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4816,"name":"tokenConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4813,"src":"3365:13:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory[] memory"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3379:6:51","memberName":"length","nodeType":"MemberAccess","src":"3365:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3389:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3365:25:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4824,"nodeType":"IfStatement","src":"3361:58:51","trueBody":{"expression":{"arguments":[{"hexValue":"6c656e6774682063616e27742062652030","id":4821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3399:19:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","typeString":"literal_string \"length can't be 0\""},"value":"length can't be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","typeString":"literal_string \"length can't be 0\""}],"id":4820,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3392:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4823,"nodeType":"ExpressionStatement","src":"3392:27:51"}},{"assignments":[4826],"declarations":[{"constant":false,"id":4826,"mutability":"mutable","name":"numTokenConfigs","nameLocation":"3437:15:51","nodeType":"VariableDeclaration","scope":4847,"src":"3429:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4825,"name":"uint256","nodeType":"ElementaryTypeName","src":"3429:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4829,"initialValue":{"expression":{"id":4827,"name":"tokenConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4813,"src":"3455:13:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory[] memory"}},"id":4828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3469:6:51","memberName":"length","nodeType":"MemberAccess","src":"3455:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3429:46:51"},{"body":{"id":4845,"nodeType":"Block","src":"3527:57:51","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4840,"name":"tokenConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4813,"src":"3556:13:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory[] memory"}},"id":4842,"indexExpression":{"id":4841,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4831,"src":"3570:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3556:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}],"id":4839,"name":"setTokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4893,"src":"3541:14:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_TokenConfig_$4703_memory_ptr_$returns$__$","typeString":"function (struct ChainlinkOracle.TokenConfig memory)"}},"id":4843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4844,"nodeType":"ExpressionStatement","src":"3541:32:51"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4831,"src":"3501:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4834,"name":"numTokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4826,"src":"3505:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3501:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4846,"initializationExpression":{"assignments":[4831],"declarations":[{"constant":false,"id":4831,"mutability":"mutable","name":"i","nameLocation":"3498:1:51","nodeType":"VariableDeclaration","scope":4846,"src":"3490:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4830,"name":"uint256","nodeType":"ElementaryTypeName","src":"3490:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4832,"nodeType":"VariableDeclarationStatement","src":"3490:9:51"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3522:3:51","subExpression":{"id":4836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4831,"src":"3524:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4838,"nodeType":"ExpressionStatement","src":"3522:3:51"},"nodeType":"ForStatement","src":"3485:99:51"}]},"documentation":{"id":4809,"nodeType":"StructuredDocumentation","src":"3039:237:51","text":" @notice Add multiple token configs at the same time\n @param tokenConfigs_ config array\n @custom:access Only Governance\n @custom:error Zero length error thrown, if length of the array in parameter is 0"},"functionSelector":"0431710e","id":4848,"implemented":true,"kind":"function","modifiers":[],"name":"setTokenConfigs","nameLocation":"3290:15:51","nodeType":"FunctionDefinition","parameters":{"id":4814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4813,"mutability":"mutable","name":"tokenConfigs_","nameLocation":"3327:13:51","nodeType":"VariableDeclaration","scope":4848,"src":"3306:34:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig[]"},"typeName":{"baseType":{"id":4811,"nodeType":"UserDefinedTypeName","pathNode":{"id":4810,"name":"TokenConfig","nameLocations":["3306:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":4703,"src":"3306:11:51"},"referencedDeclaration":4703,"src":"3306:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage_ptr","typeString":"struct ChainlinkOracle.TokenConfig"}},"id":4812,"nodeType":"ArrayTypeName","src":"3306:13:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TokenConfig_$4703_storage_$dyn_storage_ptr","typeString":"struct ChainlinkOracle.TokenConfig[]"}},"visibility":"internal"}],"src":"3305:36:51"},"returnParameters":{"id":4815,"nodeType":"ParameterList","parameters":[],"src":"3351:0:51"},"scope":5077,"src":"3281:309:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4892,"nodeType":"Block","src":"4303:302:51","statements":[{"expression":{"arguments":[{"hexValue":"736574546f6b656e436f6e66696728546f6b656e436f6e66696729","id":4864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4333:29:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e5712572e46407c94b6201f222eec88396e5ee207af9ac6f4189acef9ab9ae8","typeString":"literal_string \"setTokenConfig(TokenConfig)\""},"value":"setTokenConfig(TokenConfig)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e5712572e46407c94b6201f222eec88396e5ee207af9ac6f4189acef9ab9ae8","typeString":"literal_string \"setTokenConfig(TokenConfig)\""}],"id":4863,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"4313:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":4865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4313:50:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4866,"nodeType":"ExpressionStatement","src":"4313:50:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4867,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4378:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":4868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4390:14:51","memberName":"maxStalePeriod","nodeType":"MemberAccess","referencedDeclaration":4702,"src":"4378:26:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4378:31:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4875,"nodeType":"IfStatement","src":"4374:73:51","trueBody":{"expression":{"arguments":[{"hexValue":"7374616c6520706572696f642063616e2774206265207a65726f","id":4872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4418:28:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","typeString":"literal_string \"stale period can't be zero\""},"value":"stale period can't be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","typeString":"literal_string \"stale period can't be zero\""}],"id":4871,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4411:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4411:36:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4874,"nodeType":"ExpressionStatement","src":"4411:36:51"}},{"expression":{"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4876,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"4457:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$4703_storage_$","typeString":"mapping(address => struct ChainlinkOracle.TokenConfig storage ref)"}},"id":4879,"indexExpression":{"expression":{"id":4877,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4470:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":4878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4482:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4696,"src":"4470:17:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4457:31:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage","typeString":"struct ChainlinkOracle.TokenConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4880,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4491:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"src":"4457:45:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage","typeString":"struct ChainlinkOracle.TokenConfig storage ref"}},"id":4882,"nodeType":"ExpressionStatement","src":"4457:45:51"},{"eventCall":{"arguments":[{"expression":{"id":4884,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4534:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":4885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4546:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4696,"src":"4534:17:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4886,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4553:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":4887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4565:4:51","memberName":"feed","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"4553:16:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4888,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4571:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":4889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4583:14:51","memberName":"maxStalePeriod","nodeType":"MemberAccess","referencedDeclaration":4702,"src":"4571:26:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4883,"name":"TokenConfigAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"4517:16:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4517:81:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4891,"nodeType":"EmitStatement","src":"4512:86:51"}]},"documentation":{"id":4849,"nodeType":"StructuredDocumentation","src":"3596:558:51","text":" @notice Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive\n @param tokenConfig Token config struct\n @custom:access Only Governance\n @custom:error NotNullAddress error is thrown if asset address is null\n @custom:error NotNullAddress error is thrown if token feed address is null\n @custom:error Range error is thrown if maxStale period of token is not greater than zero\n @custom:event Emits TokenConfigAdded event on successfully setting of the token config"},"functionSelector":"392787d2","id":4893,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":4855,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4251:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":4856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4263:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4696,"src":"4251:17:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4857,"kind":"modifierInvocation","modifierName":{"id":4854,"name":"notNullAddress","nameLocations":["4236:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":4753,"src":"4236:14:51"},"nodeType":"ModifierInvocation","src":"4236:33:51"},{"arguments":[{"expression":{"id":4859,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"4285:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":4860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4297:4:51","memberName":"feed","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"4285:16:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4861,"kind":"modifierInvocation","modifierName":{"id":4858,"name":"notNullAddress","nameLocations":["4270:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":4753,"src":"4270:14:51"},"nodeType":"ModifierInvocation","src":"4270:32:51"}],"name":"setTokenConfig","nameLocation":"4168:14:51","nodeType":"FunctionDefinition","parameters":{"id":4853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4852,"mutability":"mutable","name":"tokenConfig","nameLocation":"4211:11:51","nodeType":"VariableDeclaration","scope":4893,"src":"4192:30:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig"},"typeName":{"id":4851,"nodeType":"UserDefinedTypeName","pathNode":{"id":4850,"name":"TokenConfig","nameLocations":["4192:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":4703,"src":"4192:11:51"},"referencedDeclaration":4703,"src":"4192:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage_ptr","typeString":"struct ChainlinkOracle.TokenConfig"}},"visibility":"internal"}],"src":"4182:46:51"},"returnParameters":{"id":4862,"nodeType":"ParameterList","parameters":[],"src":"4303:0:51"},"scope":5077,"src":"4159:446:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3665],"body":{"id":4932,"nodeType":"Block","src":"4887:281:51","statements":[{"assignments":[4902],"declarations":[{"constant":false,"id":4902,"mutability":"mutable","name":"decimals","nameLocation":"4905:8:51","nodeType":"VariableDeclaration","scope":4932,"src":"4897:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4901,"name":"uint256","nodeType":"ElementaryTypeName","src":"4897:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4903,"nodeType":"VariableDeclarationStatement","src":"4897:16:51"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4904,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4896,"src":"4928:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4905,"name":"NATIVE_TOKEN_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4707,"src":"4937:17:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4928:26:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4925,"nodeType":"Block","src":"5000:110:51","statements":[{"assignments":[4914],"declarations":[{"constant":false,"id":4914,"mutability":"mutable","name":"token","nameLocation":"5029:5:51","nodeType":"VariableDeclaration","scope":4925,"src":"5014:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"},"typeName":{"id":4913,"nodeType":"UserDefinedTypeName","pathNode":{"id":4912,"name":"IERC20Metadata","nameLocations":["5014:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":1896,"src":"5014:14:51"},"referencedDeclaration":1896,"src":"5014:14:51","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"id":4918,"initialValue":{"arguments":[{"id":4916,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4896,"src":"5052:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4915,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"5037:14:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$1896_$","typeString":"type(contract IERC20Metadata)"}},"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5037:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"nodeType":"VariableDeclarationStatement","src":"5014:44:51"},{"expression":{"id":4923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4919,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4902,"src":"5072:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4920,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"5083:5:51","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"id":4921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5089:8:51","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":1895,"src":"5083:14:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":4922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5083:16:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5072:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4924,"nodeType":"ExpressionStatement","src":"5072:27:51"}]},"id":4926,"nodeType":"IfStatement","src":"4924:186:51","trueBody":{"id":4911,"nodeType":"Block","src":"4956:38:51","statements":[{"expression":{"id":4909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4907,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4902,"src":"4970:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3138","id":4908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4981:2:51","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"4970:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4910,"nodeType":"ExpressionStatement","src":"4970:13:51"}]}},{"expression":{"arguments":[{"id":4928,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4896,"src":"5145:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4929,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4902,"src":"5152:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4927,"name":"_getPriceInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"5127:17:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":4930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5127:34:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4900,"id":4931,"nodeType":"Return","src":"5120:41:51"}]},"documentation":{"id":4894,"nodeType":"StructuredDocumentation","src":"4611:200:51","text":" @notice Gets the price of a asset from the chainlink oracle\n @param asset Address of the asset\n @return Price in USD from Chainlink or a manually set price for the asset"},"functionSelector":"41976e09","id":4933,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"4825:8:51","nodeType":"FunctionDefinition","parameters":{"id":4897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4896,"mutability":"mutable","name":"asset","nameLocation":"4842:5:51","nodeType":"VariableDeclaration","scope":4933,"src":"4834:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4895,"name":"address","nodeType":"ElementaryTypeName","src":"4834:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4833:15:51"},"returnParameters":{"id":4900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4933,"src":"4878:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4898,"name":"uint256","nodeType":"ElementaryTypeName","src":"4878:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4877:9:51"},"scope":5077,"src":"4816:352:51","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4978,"nodeType":"Block","src":"5509:280:51","statements":[{"assignments":[4944],"declarations":[{"constant":false,"id":4944,"mutability":"mutable","name":"tokenPrice","nameLocation":"5527:10:51","nodeType":"VariableDeclaration","scope":4978,"src":"5519:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4943,"name":"uint256","nodeType":"ElementaryTypeName","src":"5519:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4948,"initialValue":{"baseExpression":{"id":4945,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4712,"src":"5540:6:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4947,"indexExpression":{"id":4946,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4936,"src":"5547:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5540:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5519:34:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4949,"name":"tokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4944,"src":"5567:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5581:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5567:15:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4963,"nodeType":"Block","src":"5633:58:51","statements":[{"expression":{"id":4961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4957,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4941,"src":"5647:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4959,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4936,"src":"5674:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4958,"name":"_getChainlinkPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5076,"src":"5655:18:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":4960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5655:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5647:33:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4962,"nodeType":"ExpressionStatement","src":"5647:33:51"}]},"id":4964,"nodeType":"IfStatement","src":"5563:128:51","trueBody":{"id":4956,"nodeType":"Block","src":"5584:43:51","statements":[{"expression":{"id":4954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4952,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4941,"src":"5598:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4953,"name":"tokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4944,"src":"5606:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5598:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4955,"nodeType":"ExpressionStatement","src":"5598:18:51"}]}},{"assignments":[4966],"declarations":[{"constant":false,"id":4966,"mutability":"mutable","name":"decimalDelta","nameLocation":"5709:12:51","nodeType":"VariableDeclaration","scope":4978,"src":"5701:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4965,"name":"uint256","nodeType":"ElementaryTypeName","src":"5701:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4970,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3138","id":4967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5724:2:51","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4968,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4938,"src":"5729:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5724:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5701:36:51"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4971,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4941,"src":"5754:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5763:2:51","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":4973,"name":"decimalDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4966,"src":"5769:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5763:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5762:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5754:28:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4942,"id":4977,"nodeType":"Return","src":"5747:35:51"}]},"documentation":{"id":4934,"nodeType":"StructuredDocumentation","src":"5174:232:51","text":" @notice Gets the Chainlink price for a given asset\n @param asset address of the asset\n @param decimals decimals of the asset\n @return price Asset price in USD or a manually set price of the asset"},"id":4979,"implemented":true,"kind":"function","modifiers":[],"name":"_getPriceInternal","nameLocation":"5420:17:51","nodeType":"FunctionDefinition","parameters":{"id":4939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4936,"mutability":"mutable","name":"asset","nameLocation":"5446:5:51","nodeType":"VariableDeclaration","scope":4979,"src":"5438:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4935,"name":"address","nodeType":"ElementaryTypeName","src":"5438:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4938,"mutability":"mutable","name":"decimals","nameLocation":"5461:8:51","nodeType":"VariableDeclaration","scope":4979,"src":"5453:16:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4937,"name":"uint256","nodeType":"ElementaryTypeName","src":"5453:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5437:33:51"},"returnParameters":{"id":4942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4941,"mutability":"mutable","name":"price","nameLocation":"5502:5:51","nodeType":"VariableDeclaration","scope":4979,"src":"5494:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4940,"name":"uint256","nodeType":"ElementaryTypeName","src":"5494:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5493:15:51"},"scope":5077,"src":"5411:378:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5075,"nodeType":"Block","src":"6679:855:51","statements":[{"assignments":[4995],"declarations":[{"constant":false,"id":4995,"mutability":"mutable","name":"tokenConfig","nameLocation":"6708:11:51","nodeType":"VariableDeclaration","scope":5075,"src":"6689:30:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig"},"typeName":{"id":4994,"nodeType":"UserDefinedTypeName","pathNode":{"id":4993,"name":"TokenConfig","nameLocations":["6689:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":4703,"src":"6689:11:51"},"referencedDeclaration":4703,"src":"6689:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage_ptr","typeString":"struct ChainlinkOracle.TokenConfig"}},"visibility":"internal"}],"id":4999,"initialValue":{"baseExpression":{"id":4996,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"6722:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$4703_storage_$","typeString":"mapping(address => struct ChainlinkOracle.TokenConfig storage ref)"}},"id":4998,"indexExpression":{"id":4997,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"6735:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6722:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage","typeString":"struct ChainlinkOracle.TokenConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6689:52:51"},{"assignments":[5002],"declarations":[{"constant":false,"id":5002,"mutability":"mutable","name":"feed","nameLocation":"6773:4:51","nodeType":"VariableDeclaration","scope":5075,"src":"6751:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"},"typeName":{"id":5001,"nodeType":"UserDefinedTypeName","pathNode":{"id":5000,"name":"AggregatorV3Interface","nameLocations":["6751:21:51"],"nodeType":"IdentifierPath","referencedDeclaration":102,"src":"6751:21:51"},"referencedDeclaration":102,"src":"6751:21:51","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"visibility":"internal"}],"id":5007,"initialValue":{"arguments":[{"expression":{"id":5004,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4995,"src":"6802:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":5005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6814:4:51","memberName":"feed","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"6802:16:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5003,"name":"AggregatorV3Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102,"src":"6780:21:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AggregatorV3Interface_$102_$","typeString":"type(contract AggregatorV3Interface)"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6780:39:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"nodeType":"VariableDeclarationStatement","src":"6751:68:51"},{"assignments":[5009],"declarations":[{"constant":false,"id":5009,"mutability":"mutable","name":"maxStalePeriod","nameLocation":"6882:14:51","nodeType":"VariableDeclaration","scope":5075,"src":"6874:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5008,"name":"uint256","nodeType":"ElementaryTypeName","src":"6874:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5012,"initialValue":{"expression":{"id":5010,"name":"tokenConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4995,"src":"6899:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_memory_ptr","typeString":"struct ChainlinkOracle.TokenConfig memory"}},"id":5011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6911:14:51","memberName":"maxStalePeriod","nodeType":"MemberAccess","referencedDeclaration":4702,"src":"6899:26:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6874:51:51"},{"assignments":[5014],"declarations":[{"constant":false,"id":5014,"mutability":"mutable","name":"decimalDelta","nameLocation":"7023:12:51","nodeType":"VariableDeclaration","scope":5075,"src":"7015:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5013,"name":"uint256","nodeType":"ElementaryTypeName","src":"7015:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5020,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3138","id":5015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7038:2:51","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5016,"name":"feed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5002,"src":"7043:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"id":5017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7048:8:51","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":63,"src":"7043:13:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7043:15:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7038:20:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"7015:43:51"},{"assignments":[null,5022,null,5024,null],"declarations":[null,{"constant":false,"id":5022,"mutability":"mutable","name":"answer","nameLocation":"7079:6:51","nodeType":"VariableDeclaration","scope":5075,"src":"7072:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5021,"name":"int256","nodeType":"ElementaryTypeName","src":"7072:6:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},null,{"constant":false,"id":5024,"mutability":"mutable","name":"updatedAt","nameLocation":"7097:9:51","nodeType":"VariableDeclaration","scope":5075,"src":"7089:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5023,"name":"uint256","nodeType":"ElementaryTypeName","src":"7089:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":5028,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5025,"name":"feed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5002,"src":"7112:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7117:15:51","memberName":"latestRoundData","nodeType":"MemberAccess","referencedDeclaration":101,"src":"7112:20:51","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"function () view external returns (uint80,int256,uint256,uint256,uint80)"}},"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7112:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"tuple(uint80,int256,uint256,uint256,uint80)"}},"nodeType":"VariableDeclarationStatement","src":"7069:65:51"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5029,"name":"answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7148:6:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":5030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7158:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7148:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5036,"nodeType":"IfStatement","src":"7144:59:51","trueBody":{"expression":{"arguments":[{"hexValue":"636861696e6c696e6b207072696365206d75737420626520706f736974697665","id":5033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7168:34:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444","typeString":"literal_string \"chainlink price must be positive\""},"value":"chainlink price must be positive"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444","typeString":"literal_string \"chainlink price must be positive\""}],"id":5032,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7161:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7161:42:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5035,"nodeType":"ExpressionStatement","src":"7161:42:51"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5037,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7217:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7223:9:51","memberName":"timestamp","nodeType":"MemberAccess","src":"7217:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5039,"name":"updatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"7235:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7217:27:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5045,"nodeType":"IfStatement","src":"7213:71:51","trueBody":{"expression":{"arguments":[{"hexValue":"757064617465644174206578636565647320626c6f636b2074696d65","id":5042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7253:30:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","typeString":"literal_string \"updatedAt exceeds block time\""},"value":"updatedAt exceeds block time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","typeString":"literal_string \"updatedAt exceeds block time\""}],"id":5041,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7246:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7246:38:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5044,"nodeType":"ExpressionStatement","src":"7246:38:51"}},{"assignments":[5047],"declarations":[{"constant":false,"id":5047,"mutability":"mutable","name":"deltaTime","nameLocation":"7303:9:51","nodeType":"VariableDeclaration","scope":5075,"src":"7295:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5046,"name":"uint256","nodeType":"ElementaryTypeName","src":"7295:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5048,"nodeType":"VariableDeclarationStatement","src":"7295:17:51"},{"id":5056,"nodeType":"UncheckedBlock","src":"7322:74:51","statements":[{"expression":{"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5049,"name":"deltaTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5047,"src":"7346:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5050,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7358:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7364:9:51","memberName":"timestamp","nodeType":"MemberAccess","src":"7358:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5052,"name":"updatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5024,"src":"7376:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7358:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7346:39:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5055,"nodeType":"ExpressionStatement","src":"7346:39:51"}]},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5057,"name":"deltaTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5047,"src":"7410:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5058,"name":"maxStalePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5009,"src":"7422:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7410:26:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5064,"nodeType":"IfStatement","src":"7406:65:51","trueBody":{"expression":{"arguments":[{"hexValue":"636861696e6c696e6b2070726963652065787069726564","id":5061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7445:25:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb","typeString":"literal_string \"chainlink price expired\""},"value":"chainlink price expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb","typeString":"literal_string \"chainlink price expired\""}],"id":5060,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7438:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7438:33:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5063,"nodeType":"ExpressionStatement","src":"7438:33:51"}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5067,"name":"answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7497:6:51","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7489:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5065,"name":"uint256","nodeType":"ElementaryTypeName","src":"7489:7:51","typeDescriptions":{}}},"id":5068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7489:15:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7508:2:51","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":5070,"name":"decimalDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5014,"src":"7514:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7508:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5072,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7507:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7489:38:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4992,"id":5074,"nodeType":"Return","src":"7482:45:51"}]},"documentation":{"id":4980,"nodeType":"StructuredDocumentation","src":"5795:749:51","text":" @notice Get the Chainlink price for an asset, revert if token config doesn't exist\n @dev The precision of the price feed is used to ensure the returned price has 18 decimals of precision\n @param asset Address of the asset\n @return price Price in USD, with 18 decimals of precision\n @custom:error NotNullAddress error is thrown if the asset address is null\n @custom:error Price error is thrown if the Chainlink price of asset is not greater than zero\n @custom:error Timing error is thrown if current timestamp is less than the last updatedAt timestamp\n @custom:error Timing error is thrown if time difference between current time and last updated time\n is greater than maxStalePeriod"},"id":5076,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"baseExpression":{"id":4985,"name":"tokenConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"6634:12:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_TokenConfig_$4703_storage_$","typeString":"mapping(address => struct ChainlinkOracle.TokenConfig storage ref)"}},"id":4987,"indexExpression":{"id":4986,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"6647:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6634:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_TokenConfig_$4703_storage","typeString":"struct ChainlinkOracle.TokenConfig storage ref"}},"id":4988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6654:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":4696,"src":"6634:25:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4989,"kind":"modifierInvocation","modifierName":{"id":4984,"name":"notNullAddress","nameLocations":["6619:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":4753,"src":"6619:14:51"},"nodeType":"ModifierInvocation","src":"6619:41:51"}],"name":"_getChainlinkPrice","nameLocation":"6558:18:51","nodeType":"FunctionDefinition","parameters":{"id":4983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4982,"mutability":"mutable","name":"asset","nameLocation":"6594:5:51","nodeType":"VariableDeclaration","scope":5076,"src":"6586:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4981,"name":"address","nodeType":"ElementaryTypeName","src":"6586:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6576:29:51"},"returnParameters":{"id":4992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5076,"src":"6670:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4990,"name":"uint256","nodeType":"ElementaryTypeName","src":"6670:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6669:9:51"},"scope":5077,"src":"6549:985:51","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":5078,"src":"448:7088:51","usedErrors":[1961],"usedEvents":[120,227,357,1952,4727,4736]}],"src":"41:7496:51"},"id":51},"contracts/oracles/ERC4626Oracle.sol":{"ast":{"absolutePath":"contracts/oracles/ERC4626Oracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"ERC4626Oracle":[5148],"IERC4626":[3509]},"id":5149,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5079,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:52"},{"absolutePath":"contracts/interfaces/IERC4626.sol","file":"../interfaces/IERC4626.sol","id":5081,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5149,"sourceUnit":3510,"src":"66:54:52","symbolAliases":[{"foreign":{"id":5080,"name":"IERC4626","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"75:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":5083,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5149,"sourceUnit":7138,"src":"121:75:52","symbolAliases":[{"foreign":{"id":5082,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"130:21:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5085,"name":"CorrelatedTokenOracle","nameLocations":["332:21:52"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"332:21:52"},"id":5086,"nodeType":"InheritanceSpecifier","src":"332:21:52"}],"canonicalName":"ERC4626Oracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5084,"nodeType":"StructuredDocumentation","src":"198:107:52","text":" @title ERC4626Oracle\n @author Venus\n @notice This oracle fetches the price of ERC4626 tokens"},"fullyImplemented":true,"id":5148,"linearizedBaseContracts":[5148,7137,3494,3666],"name":"ERC4626Oracle","nameLocation":"315:13:52","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"86f23a75","id":5088,"mutability":"immutable","name":"ONE_CORRELATED_TOKEN","nameLocation":"385:20:52","nodeType":"VariableDeclaration","scope":5148,"src":"360:45:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5087,"name":"uint256","nodeType":"ElementaryTypeName","src":"360:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":5131,"nodeType":"Block","src":"1151:82:52","statements":[{"expression":{"id":5129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5121,"name":"ONE_CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"1161:20:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1184:2:52","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":5124,"name":"correlatedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5091,"src":"1199:15:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5123,"name":"IERC4626","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"1190:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC4626_$3509_$","typeString":"type(contract IERC4626)"}},"id":5125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1190:25:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$3509","typeString":"contract IERC4626"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1216:8:52","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":3508,"src":"1190:34:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":5127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1190:36:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1184:42:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1161:65:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5130,"nodeType":"ExpressionStatement","src":"1161:65:52"}]},"documentation":{"id":5089,"nodeType":"StructuredDocumentation","src":"412:56:52","text":"@notice Constructor for the implementation contract."},"id":5132,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5110,"name":"correlatedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5091,"src":"860:15:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5111,"name":"underlyingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5093,"src":"889:15:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5112,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5095,"src":"918:15:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5113,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5097,"src":"947:16:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5114,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"977:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5115,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"1008:30:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5116,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"1052:24:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5117,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5105,"src":"1090:20:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5118,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"1124:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5119,"kind":"baseConstructorSpecifier","modifierName":{"id":5109,"name":"CorrelatedTokenOracle","nameLocations":["825:21:52"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"825:21:52"},"nodeType":"ModifierInvocation","src":"825:321:52"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5091,"mutability":"mutable","name":"correlatedToken","nameLocation":"502:15:52","nodeType":"VariableDeclaration","scope":5132,"src":"494:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5090,"name":"address","nodeType":"ElementaryTypeName","src":"494:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5093,"mutability":"mutable","name":"underlyingToken","nameLocation":"535:15:52","nodeType":"VariableDeclaration","scope":5132,"src":"527:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5092,"name":"address","nodeType":"ElementaryTypeName","src":"527:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5095,"mutability":"mutable","name":"resilientOracle","nameLocation":"568:15:52","nodeType":"VariableDeclaration","scope":5132,"src":"560:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5094,"name":"address","nodeType":"ElementaryTypeName","src":"560:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5097,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"601:16:52","nodeType":"VariableDeclaration","scope":5132,"src":"593:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5096,"name":"uint256","nodeType":"ElementaryTypeName","src":"593:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5099,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"635:17:52","nodeType":"VariableDeclaration","scope":5132,"src":"627:25:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5098,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5101,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"670:30:52","nodeType":"VariableDeclaration","scope":5132,"src":"662:38:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5100,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5103,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"718:24:52","nodeType":"VariableDeclaration","scope":5132,"src":"710:32:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5102,"name":"uint256","nodeType":"ElementaryTypeName","src":"710:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5105,"mutability":"mutable","name":"accessControlManager","nameLocation":"760:20:52","nodeType":"VariableDeclaration","scope":5132,"src":"752:28:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5104,"name":"address","nodeType":"ElementaryTypeName","src":"752:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5107,"mutability":"mutable","name":"_snapshotGap","nameLocation":"798:12:52","nodeType":"VariableDeclaration","scope":5132,"src":"790:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5106,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"484:332:52"},"returnParameters":{"id":5120,"nodeType":"ParameterList","parameters":[],"src":"1151:0:52"},"scope":5148,"src":"473:760:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":5146,"nodeType":"Block","src":"1476:88:52","statements":[{"expression":{"arguments":[{"id":5143,"name":"ONE_CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"1536:20:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5140,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"1502:16:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5139,"name":"IERC4626","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"1493:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC4626_$3509_$","typeString":"type(contract IERC4626)"}},"id":5141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:26:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC4626_$3509","typeString":"contract IERC4626"}},"id":5142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1520:15:52","memberName":"convertToAssets","nodeType":"MemberAccess","referencedDeclaration":3503,"src":"1493:42:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":5144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:64:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5138,"id":5145,"nodeType":"Return","src":"1486:71:52"}]},"documentation":{"id":5133,"nodeType":"StructuredDocumentation","src":"1239:162:52","text":" @notice Fetches the amount of underlying token for 1 correlated token\n @return amount The amount of underlying token for correlated token"},"functionSelector":"abb85613","id":5147,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1415:19:52","nodeType":"FunctionDefinition","overrides":{"id":5135,"nodeType":"OverrideSpecifier","overrides":[],"src":"1449:8:52"},"parameters":{"id":5134,"nodeType":"ParameterList","parameters":[],"src":"1434:2:52"},"returnParameters":{"id":5138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5147,"src":"1467:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5136,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1466:9:52"},"scope":5148,"src":"1406:158:52","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5149,"src":"306:1260:52","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1526:52"},"id":52},"contracts/oracles/EtherfiAccountantOracle.sol":{"ast":{"absolutePath":"contracts/oracles/EtherfiAccountantOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"EtherfiAccountantOracle":[5222],"IAccountant":[3450],"ensureNonzeroAddress":[2165]},"id":5223,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5150,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:53"},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":5152,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5223,"sourceUnit":7138,"src":"66:75:53","symbolAliases":[{"foreign":{"id":5151,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"75:21:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccountant.sol","file":"../interfaces/IAccountant.sol","id":5154,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5223,"sourceUnit":3451,"src":"142:60:53","symbolAliases":[{"foreign":{"id":5153,"name":"IAccountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3450,"src":"151:11:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5156,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5223,"sourceUnit":2181,"src":"203:98:53","symbolAliases":[{"foreign":{"id":5155,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"212:20:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5158,"name":"CorrelatedTokenOracle","nameLocations":["526:21:53"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"526:21:53"},"id":5159,"nodeType":"InheritanceSpecifier","src":"526:21:53"}],"canonicalName":"EtherfiAccountantOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5157,"nodeType":"StructuredDocumentation","src":"303:186:53","text":" @title EtherfiAccountantOracle\n @author Venus\n @notice This oracle fetches the price of any Ether.fi asset that uses\n Accountant contracts to derive the underlying price"},"fullyImplemented":true,"id":5222,"linearizedBaseContracts":[5222,7137,3494,3666],"name":"EtherfiAccountantOracle","nameLocation":"499:23:53","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":5160,"nodeType":"StructuredDocumentation","src":"554:33:53","text":"@notice Address of Accountant"},"functionSelector":"8b9d2940","id":5163,"mutability":"immutable","name":"ACCOUNTANT","nameLocation":"621:10:53","nodeType":"VariableDeclaration","scope":5222,"src":"592:39:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"},"typeName":{"id":5162,"nodeType":"UserDefinedTypeName","pathNode":{"id":5161,"name":"IAccountant","nameLocations":["592:11:53"],"nodeType":"IdentifierPath","referencedDeclaration":3450,"src":"592:11:53"},"referencedDeclaration":3450,"src":"592:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"visibility":"public"},{"body":{"id":5208,"nodeType":"Block","src":"1405:95:53","statements":[{"expression":{"arguments":[{"id":5199,"name":"accountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5166,"src":"1436:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5198,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1415:20:53","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:32:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5201,"nodeType":"ExpressionStatement","src":"1415:32:53"},{"expression":{"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5202,"name":"ACCOUNTANT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"1457:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5204,"name":"accountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5166,"src":"1482:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5203,"name":"IAccountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3450,"src":"1470:11:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccountant_$3450_$","typeString":"type(contract IAccountant)"}},"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1470:23:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"src":"1457:36:53","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"id":5207,"nodeType":"ExpressionStatement","src":"1457:36:53"}]},"documentation":{"id":5164,"nodeType":"StructuredDocumentation","src":"638:56:53","text":"@notice Constructor for the implementation contract."},"id":5209,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5187,"name":"correlatedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5168,"src":"1114:15:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5188,"name":"underlyingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5170,"src":"1143:15:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5189,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"1172:15:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5190,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"1201:16:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5191,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"1231:17:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5192,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"1262:30:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5193,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5180,"src":"1306:24:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5194,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5182,"src":"1344:20:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5195,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5184,"src":"1378:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5196,"kind":"baseConstructorSpecifier","modifierName":{"id":5186,"name":"CorrelatedTokenOracle","nameLocations":["1079:21:53"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1079:21:53"},"nodeType":"ModifierInvocation","src":"1079:321:53"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5166,"mutability":"mutable","name":"accountant","nameLocation":"728:10:53","nodeType":"VariableDeclaration","scope":5209,"src":"720:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5165,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5168,"mutability":"mutable","name":"correlatedToken","nameLocation":"756:15:53","nodeType":"VariableDeclaration","scope":5209,"src":"748:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5167,"name":"address","nodeType":"ElementaryTypeName","src":"748:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5170,"mutability":"mutable","name":"underlyingToken","nameLocation":"789:15:53","nodeType":"VariableDeclaration","scope":5209,"src":"781:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5169,"name":"address","nodeType":"ElementaryTypeName","src":"781:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5172,"mutability":"mutable","name":"resilientOracle","nameLocation":"822:15:53","nodeType":"VariableDeclaration","scope":5209,"src":"814:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5171,"name":"address","nodeType":"ElementaryTypeName","src":"814:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5174,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"855:16:53","nodeType":"VariableDeclaration","scope":5209,"src":"847:24:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5173,"name":"uint256","nodeType":"ElementaryTypeName","src":"847:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5176,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"889:17:53","nodeType":"VariableDeclaration","scope":5209,"src":"881:25:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5175,"name":"uint256","nodeType":"ElementaryTypeName","src":"881:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5178,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"924:30:53","nodeType":"VariableDeclaration","scope":5209,"src":"916:38:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5177,"name":"uint256","nodeType":"ElementaryTypeName","src":"916:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5180,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"972:24:53","nodeType":"VariableDeclaration","scope":5209,"src":"964:32:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5179,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5182,"mutability":"mutable","name":"accessControlManager","nameLocation":"1014:20:53","nodeType":"VariableDeclaration","scope":5209,"src":"1006:28:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5181,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5184,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1052:12:53","nodeType":"VariableDeclaration","scope":5209,"src":"1044:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5183,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"710:360:53"},"returnParameters":{"id":5197,"nodeType":"ParameterList","parameters":[],"src":"1405:0:53"},"scope":5222,"src":"699:801:53","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":5220,"nodeType":"Block","src":"1701:48:53","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5216,"name":"ACCOUNTANT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"1718:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1729:11:53","memberName":"getRateSafe","nodeType":"MemberAccess","referencedDeclaration":3449,"src":"1718:22:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":5218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1718:24:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5215,"id":5219,"nodeType":"Return","src":"1711:31:53"}]},"documentation":{"id":5210,"nodeType":"StructuredDocumentation","src":"1506:120:53","text":" @notice Fetches the conversion rate from the ACCOUNTANT contract\n @return amount Amount of WBTC"},"functionSelector":"abb85613","id":5221,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1640:19:53","nodeType":"FunctionDefinition","overrides":{"id":5212,"nodeType":"OverrideSpecifier","overrides":[],"src":"1674:8:53"},"parameters":{"id":5211,"nodeType":"ParameterList","parameters":[],"src":"1659:2:53"},"returnParameters":{"id":5215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5221,"src":"1692:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1691:9:53"},"scope":5222,"src":"1631:118:53","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5223,"src":"490:1261:53","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1711:53"},"id":53},"contracts/oracles/OneJumpOracle.sol":{"ast":{"absolutePath":"contracts/oracles/OneJumpOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"IERC20Metadata":[1896],"OneJumpOracle":[5333],"OracleInterface":[3666],"ensureNonzeroAddress":[2165]},"id":5334,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5224,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:54"},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":5226,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5334,"sourceUnit":7138,"src":"66:75:54","symbolAliases":[{"foreign":{"id":5225,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"75:21:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5228,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5334,"sourceUnit":2181,"src":"142:98:54","symbolAliases":[{"foreign":{"id":5227,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"151:20:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":5230,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5334,"sourceUnit":3699,"src":"241:68:54","symbolAliases":[{"foreign":{"id":5229,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"250:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":5232,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5334,"sourceUnit":1897,"src":"310:99:54","symbolAliases":[{"foreign":{"id":5231,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"319:14:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5234,"name":"CorrelatedTokenOracle","nameLocations":["572:21:54"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"572:21:54"},"id":5235,"nodeType":"InheritanceSpecifier","src":"572:21:54"}],"canonicalName":"OneJumpOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5233,"nodeType":"StructuredDocumentation","src":"411:134:54","text":" @title OneJumpOracle\n @author Venus\n @notice This oracle fetches the price of an asset in through an intermediate asset"},"fullyImplemented":true,"id":5333,"linearizedBaseContracts":[5333,7137,3494,3666],"name":"OneJumpOracle","nameLocation":"555:13:54","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":5236,"nodeType":"StructuredDocumentation","src":"600:46:54","text":"@notice Address of the intermediate oracle"},"functionSelector":"ef4fa51b","id":5239,"mutability":"immutable","name":"INTERMEDIATE_ORACLE","nameLocation":"684:19:54","nodeType":"VariableDeclaration","scope":5333,"src":"651:52:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"},"typeName":{"id":5238,"nodeType":"UserDefinedTypeName","pathNode":{"id":5237,"name":"OracleInterface","nameLocations":["651:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"651:15:54"},"referencedDeclaration":3666,"src":"651:15:54","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"visibility":"public"},{"body":{"id":5284,"nodeType":"Block","src":"1485:124:54","statements":[{"expression":{"arguments":[{"id":5275,"name":"intermediateOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"1516:18:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5274,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1495:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1495:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5277,"nodeType":"ExpressionStatement","src":"1495:40:54"},{"expression":{"id":5282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5278,"name":"INTERMEDIATE_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5239,"src":"1545:19:54","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5280,"name":"intermediateOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"1583:18:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5279,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"1567:15:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OracleInterface_$3666_$","typeString":"type(contract OracleInterface)"}},"id":5281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"src":"1545:57:54","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":5283,"nodeType":"ExpressionStatement","src":"1545:57:54"}]},"documentation":{"id":5240,"nodeType":"StructuredDocumentation","src":"710:56:54","text":"@notice Constructor for the implementation contract."},"id":5285,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5263,"name":"correlatedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"1194:15:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5264,"name":"underlyingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5244,"src":"1223:15:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5265,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5246,"src":"1252:15:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5266,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"1281:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5267,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5252,"src":"1311:17:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5268,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"1342:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5269,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"1386:24:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5270,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5258,"src":"1424:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5271,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5260,"src":"1458:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5272,"kind":"baseConstructorSpecifier","modifierName":{"id":5262,"name":"CorrelatedTokenOracle","nameLocations":["1159:21:54"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1159:21:54"},"nodeType":"ModifierInvocation","src":"1159:321:54"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5242,"mutability":"mutable","name":"correlatedToken","nameLocation":"800:15:54","nodeType":"VariableDeclaration","scope":5285,"src":"792:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5241,"name":"address","nodeType":"ElementaryTypeName","src":"792:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5244,"mutability":"mutable","name":"underlyingToken","nameLocation":"833:15:54","nodeType":"VariableDeclaration","scope":5285,"src":"825:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5243,"name":"address","nodeType":"ElementaryTypeName","src":"825:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5246,"mutability":"mutable","name":"resilientOracle","nameLocation":"866:15:54","nodeType":"VariableDeclaration","scope":5285,"src":"858:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5245,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5248,"mutability":"mutable","name":"intermediateOracle","nameLocation":"899:18:54","nodeType":"VariableDeclaration","scope":5285,"src":"891:26:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5247,"name":"address","nodeType":"ElementaryTypeName","src":"891:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5250,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"935:16:54","nodeType":"VariableDeclaration","scope":5285,"src":"927:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5249,"name":"uint256","nodeType":"ElementaryTypeName","src":"927:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5252,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"969:17:54","nodeType":"VariableDeclaration","scope":5285,"src":"961:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5251,"name":"uint256","nodeType":"ElementaryTypeName","src":"961:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5254,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"1004:30:54","nodeType":"VariableDeclaration","scope":5285,"src":"996:38:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5253,"name":"uint256","nodeType":"ElementaryTypeName","src":"996:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5256,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"1052:24:54","nodeType":"VariableDeclaration","scope":5285,"src":"1044:32:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5255,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5258,"mutability":"mutable","name":"accessControlManager","nameLocation":"1094:20:54","nodeType":"VariableDeclaration","scope":5285,"src":"1086:28:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5257,"name":"address","nodeType":"ElementaryTypeName","src":"1086:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5260,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1132:12:54","nodeType":"VariableDeclaration","scope":5285,"src":"1124:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5259,"name":"uint256","nodeType":"ElementaryTypeName","src":"1124:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"782:368:54"},"returnParameters":{"id":5273,"nodeType":"ParameterList","parameters":[],"src":"1485:0:54"},"scope":5333,"src":"771:838:54","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":5331,"nodeType":"Block","src":"1933:356:54","statements":[{"assignments":[5293],"declarations":[{"constant":false,"id":5293,"mutability":"mutable","name":"underlyingDecimals","nameLocation":"1951:18:54","nodeType":"VariableDeclaration","scope":5331,"src":"1943:26:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5292,"name":"uint256","nodeType":"ElementaryTypeName","src":"1943:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5299,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":5295,"name":"UNDERLYING_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"1987:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5294,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"1972:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$1896_$","typeString":"type(contract IERC20Metadata)"}},"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1972:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"id":5297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2005:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":1895,"src":"1972:41:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":5298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1972:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"1943:72:54"},{"assignments":[5301],"declarations":[{"constant":false,"id":5301,"mutability":"mutable","name":"correlatedDecimals","nameLocation":"2033:18:54","nodeType":"VariableDeclaration","scope":5331,"src":"2025:26:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5300,"name":"uint256","nodeType":"ElementaryTypeName","src":"2025:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5307,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":5303,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"2069:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5302,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"2054:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$1896_$","typeString":"type(contract IERC20Metadata)"}},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"id":5305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:8:54","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":1895,"src":"2054:41:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"2025:72:54"},{"assignments":[5309],"declarations":[{"constant":false,"id":5309,"mutability":"mutable","name":"underlyingAmount","nameLocation":"2116:16:54","nodeType":"VariableDeclaration","scope":5331,"src":"2108:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5314,"initialValue":{"arguments":[{"id":5312,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"2164:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5310,"name":"INTERMEDIATE_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5239,"src":"2135:19:54","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":5311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2155:8:54","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"2135:28:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2108:73:54"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5315,"name":"underlyingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5309,"src":"2200:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2220:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":5317,"name":"correlatedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"2226:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2220:24:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5319,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2219:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2200:45:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5321,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2199:47:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2250:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3336","id":5323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2257:2:54","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5324,"name":"underlyingDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5293,"src":"2262:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2257:23:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5326,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2256:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2250:31:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5328,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2249:33:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2199:83:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5291,"id":5330,"nodeType":"Return","src":"2192:90:54"}]},"documentation":{"id":5286,"nodeType":"StructuredDocumentation","src":"1615:243:54","text":" @notice Fetches the amount of the underlying token for 1 correlated token, using the intermediate oracle\n @return amount The amount of the underlying token for 1 correlated token scaled by the underlying token decimals"},"functionSelector":"abb85613","id":5332,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1872:19:54","nodeType":"FunctionDefinition","overrides":{"id":5288,"nodeType":"OverrideSpecifier","overrides":[],"src":"1906:8:54"},"parameters":{"id":5287,"nodeType":"ParameterList","parameters":[],"src":"1891:2:54"},"returnParameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5332,"src":"1924:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1923:9:54"},"scope":5333,"src":"1863:426:54","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5334,"src":"546:1745:54","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:2251:54"},"id":54},"contracts/oracles/PendleOracle.sol":{"ast":{"absolutePath":"contracts/oracles/PendleOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"IERC20Metadata":[1896],"IPendlePtOracle":[3568],"PendleOracle":[5549],"ensureNonzeroAddress":[2165],"ensureNonzeroValue":[2180]},"id":5550,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5335,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:55"},{"absolutePath":"contracts/interfaces/IPendlePtOracle.sol","file":"../interfaces/IPendlePtOracle.sol","id":5337,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5550,"sourceUnit":3569,"src":"66:68:55","symbolAliases":[{"foreign":{"id":5336,"name":"IPendlePtOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"75:15:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":5339,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5550,"sourceUnit":7138,"src":"135:75:55","symbolAliases":[{"foreign":{"id":5338,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"144:21:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5342,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5550,"sourceUnit":2181,"src":"211:118:55","symbolAliases":[{"foreign":{"id":5340,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"220:20:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5341,"name":"ensureNonzeroValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"242:18:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":5344,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5550,"sourceUnit":1897,"src":"330:99:55","symbolAliases":[{"foreign":{"id":5343,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"339:14:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5346,"name":"CorrelatedTokenOracle","nameLocations":["1341:21:55"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1341:21:55"},"id":5347,"nodeType":"InheritanceSpecifier","src":"1341:21:55"}],"canonicalName":"PendleOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5345,"nodeType":"StructuredDocumentation","src":"431:884:55","text":" @title PendleOracle\n @author Venus\n @notice This oracle fetches the price of a pendle token\n @dev As a base price the oracle uses either the price of the Pendle\n market's asset (in this case PT_TO_ASSET rate should be used) or\n the price of the Pendle market's interest bearing token (e.g. wstETH\n for stETH; in this case PT_TO_SY rate should be used). Technically,\n interest bearing token is different from standardized yield (SY) token,\n but since SY is a wrapper around an interest bearing token, we can safely\n assume the prices of the two are equal. This is not always true for asset\n price though: using PT_TO_ASSET rate assumes that the yield token can\n be seamlessly redeemed for the underlying asset. In reality, this might\n not always be the case. For more details, see\n https://docs.pendle.finance/Developers/Contracts/StandardizedYield"},"fullyImplemented":true,"id":5549,"linearizedBaseContracts":[5549,7137,3494,3666],"name":"PendleOracle","nameLocation":"1325:12:55","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PendleOracle.ConstructorParams","id":5388,"members":[{"constant":false,"id":5350,"mutability":"mutable","name":"market","nameLocation":"1446:6:55","nodeType":"VariableDeclaration","scope":5388,"src":"1438:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5349,"name":"address","nodeType":"ElementaryTypeName","src":"1438:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5353,"mutability":"mutable","name":"ptOracle","nameLocation":"1504:8:55","nodeType":"VariableDeclaration","scope":5388,"src":"1496:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5352,"name":"address","nodeType":"ElementaryTypeName","src":"1496:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5357,"mutability":"mutable","name":"rateKind","nameLocation":"1582:8:55","nodeType":"VariableDeclaration","scope":5388,"src":"1573:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"},"typeName":{"id":5356,"nodeType":"UserDefinedTypeName","pathNode":{"id":5355,"name":"RateKind","nameLocations":["1573:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":5392,"src":"1573:8:55"},"referencedDeclaration":5392,"src":"1573:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"}},"visibility":"internal"},{"constant":false,"id":5360,"mutability":"mutable","name":"ptToken","nameLocation":"1644:7:55","nodeType":"VariableDeclaration","scope":5388,"src":"1636:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5359,"name":"address","nodeType":"ElementaryTypeName","src":"1636:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5363,"mutability":"mutable","name":"underlyingToken","nameLocation":"1770:15:55","nodeType":"VariableDeclaration","scope":5388,"src":"1762:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5362,"name":"address","nodeType":"ElementaryTypeName","src":"1762:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5366,"mutability":"mutable","name":"resilientOracle","nameLocation":"1879:15:55","nodeType":"VariableDeclaration","scope":5388,"src":"1871:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5365,"name":"address","nodeType":"ElementaryTypeName","src":"1871:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5369,"mutability":"mutable","name":"twapDuration","nameLocation":"1972:12:55","nodeType":"VariableDeclaration","scope":5388,"src":"1965:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5368,"name":"uint32","nodeType":"ElementaryTypeName","src":"1965:6:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":5372,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"2065:16:55","nodeType":"VariableDeclaration","scope":5388,"src":"2057:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5371,"name":"uint256","nodeType":"ElementaryTypeName","src":"2057:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5375,"mutability":"mutable","name":"snapshotInterval","nameLocation":"2152:16:55","nodeType":"VariableDeclaration","scope":5388,"src":"2144:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5374,"name":"uint256","nodeType":"ElementaryTypeName","src":"2144:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5378,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"2252:30:55","nodeType":"VariableDeclaration","scope":5388,"src":"2244:38:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2244:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5381,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"2362:24:55","nodeType":"VariableDeclaration","scope":5388,"src":"2354:32:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5380,"name":"uint256","nodeType":"ElementaryTypeName","src":"2354:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5384,"mutability":"mutable","name":"accessControlManager","nameLocation":"2447:20:55","nodeType":"VariableDeclaration","scope":5388,"src":"2439:28:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5383,"name":"address","nodeType":"ElementaryTypeName","src":"2439:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5387,"mutability":"mutable","name":"snapshotGap","nameLocation":"2543:11:55","nodeType":"VariableDeclaration","scope":5388,"src":"2535:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5386,"name":"uint256","nodeType":"ElementaryTypeName","src":"2535:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1376:17:55","nodeType":"StructDefinition","scope":5549,"src":"1369:1192:55","visibility":"public"},{"canonicalName":"PendleOracle.RateKind","documentation":{"id":5389,"nodeType":"StructuredDocumentation","src":"2567:215:55","text":"@notice Which asset to use as a base for the returned PT\n price. Can be either a standardized yield token (SY), in\n this case PT/SY price is returned, or the Pendle\n market's asset directly."},"id":5392,"members":[{"id":5390,"name":"PT_TO_ASSET","nameLocation":"2811:11:55","nodeType":"EnumValue","src":"2811:11:55"},{"id":5391,"name":"PT_TO_SY","nameLocation":"2832:8:55","nodeType":"EnumValue","src":"2832:8:55"}],"name":"RateKind","nameLocation":"2792:8:55","nodeType":"EnumDefinition","src":"2787:59:55"},{"constant":false,"documentation":{"id":5393,"nodeType":"StructuredDocumentation","src":"2852:36:55","text":"@notice Address of the PT oracle"},"functionSelector":"809d7b31","id":5396,"mutability":"immutable","name":"PT_ORACLE","nameLocation":"2926:9:55","nodeType":"VariableDeclaration","scope":5549,"src":"2893:42:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"},"typeName":{"id":5395,"nodeType":"UserDefinedTypeName","pathNode":{"id":5394,"name":"IPendlePtOracle","nameLocations":["2893:15:55"],"nodeType":"IdentifierPath","referencedDeclaration":3568,"src":"2893:15:55"},"referencedDeclaration":3568,"src":"2893:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"}},"visibility":"public"},{"constant":false,"documentation":{"id":5397,"nodeType":"StructuredDocumentation","src":"2942:96:55","text":"@notice Whether to use PT/SY (standardized yield token) rate\n or PT/market asset rate"},"functionSelector":"02125d09","id":5400,"mutability":"immutable","name":"RATE_KIND","nameLocation":"3069:9:55","nodeType":"VariableDeclaration","scope":5549,"src":"3043:35:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"},"typeName":{"id":5399,"nodeType":"UserDefinedTypeName","pathNode":{"id":5398,"name":"RateKind","nameLocations":["3043:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":5392,"src":"3043:8:55"},"referencedDeclaration":5392,"src":"3043:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"}},"visibility":"public"},{"constant":false,"documentation":{"id":5401,"nodeType":"StructuredDocumentation","src":"3085:33:55","text":"@notice Address of the market"},"functionSelector":"f46f16c2","id":5403,"mutability":"immutable","name":"MARKET","nameLocation":"3148:6:55","nodeType":"VariableDeclaration","scope":5549,"src":"3123:31:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5402,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":5404,"nodeType":"StructuredDocumentation","src":"3161:40:55","text":"@notice Twap duration for the oracle"},"functionSelector":"879ac8f8","id":5406,"mutability":"immutable","name":"TWAP_DURATION","nameLocation":"3230:13:55","nodeType":"VariableDeclaration","scope":5549,"src":"3206:37:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5405,"name":"uint32","nodeType":"ElementaryTypeName","src":"3206:6:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"constant":false,"documentation":{"id":5407,"nodeType":"StructuredDocumentation","src":"3250:177:55","text":"@notice Decimals of the underlying token\n @dev We make an assumption that the underlying decimals will\n not change throughout the lifetime of the Pendle market"},"functionSelector":"3dae7c22","id":5409,"mutability":"immutable","name":"UNDERLYING_DECIMALS","nameLocation":"3455:19:55","nodeType":"VariableDeclaration","scope":5549,"src":"3432:42:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5408,"name":"uint8","nodeType":"ElementaryTypeName","src":"3432:5:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"public"},{"documentation":{"id":5410,"nodeType":"StructuredDocumentation","src":"3481:45:55","text":"@notice Thrown if the duration is invalid"},"errorSelector":"76166401","id":5412,"name":"InvalidDuration","nameLocation":"3537:15:55","nodeType":"ErrorDefinition","parameters":{"id":5411,"nodeType":"ParameterList","parameters":[],"src":"3552:2:55"},"src":"3531:24:55"},{"body":{"id":5503,"nodeType":"Block","src":"4154:678:55","statements":[{"expression":{"arguments":[{"expression":{"id":5440,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4185:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4192:6:55","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":5350,"src":"4185:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5439,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"4164:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4164:35:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5443,"nodeType":"ExpressionStatement","src":"4164:35:55"},{"expression":{"arguments":[{"expression":{"id":5445,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4230:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4237:8:55","memberName":"ptOracle","nodeType":"MemberAccess","referencedDeclaration":5353,"src":"4230:15:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5444,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"4209:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4209:37:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5448,"nodeType":"ExpressionStatement","src":"4209:37:55"},{"expression":{"arguments":[{"expression":{"id":5450,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4275:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4282:12:55","memberName":"twapDuration","nodeType":"MemberAccess","referencedDeclaration":5369,"src":"4275:19:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":5449,"name":"ensureNonzeroValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"4256:18:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4256:39:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5453,"nodeType":"ExpressionStatement","src":"4256:39:55"},{"expression":{"id":5457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5454,"name":"MARKET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5403,"src":"4306:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5455,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4315:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4322:6:55","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":5350,"src":"4315:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4306:22:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5458,"nodeType":"ExpressionStatement","src":"4306:22:55"},{"expression":{"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5459,"name":"PT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"4338:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":5461,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4366:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4373:8:55","memberName":"ptOracle","nodeType":"MemberAccess","referencedDeclaration":5353,"src":"4366:15:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5460,"name":"IPendlePtOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"4350:15:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPendlePtOracle_$3568_$","typeString":"type(contract IPendlePtOracle)"}},"id":5463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:32:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"}},"src":"4338:44:55","typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"}},"id":5465,"nodeType":"ExpressionStatement","src":"4338:44:55"},{"expression":{"id":5469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5466,"name":"RATE_KIND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"4392:9:55","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5467,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4404:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4411:8:55","memberName":"rateKind","nodeType":"MemberAccess","referencedDeclaration":5357,"src":"4404:15:55","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"}},"src":"4392:27:55","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"}},"id":5470,"nodeType":"ExpressionStatement","src":"4392:27:55"},{"expression":{"id":5474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5471,"name":"TWAP_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"4429:13:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5472,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4445:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4452:12:55","memberName":"twapDuration","nodeType":"MemberAccess","referencedDeclaration":5369,"src":"4445:19:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"4429:35:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":5475,"nodeType":"ExpressionStatement","src":"4429:35:55"},{"expression":{"id":5482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5476,"name":"UNDERLYING_DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5409,"src":"4474:19:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":5478,"name":"UNDERLYING_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"4511:16:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5477,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"4496:14:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$1896_$","typeString":"type(contract IERC20Metadata)"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4496:32:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"id":5480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4529:8:55","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":1895,"src":"4496:41:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4496:43:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4474:65:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5483,"nodeType":"ExpressionStatement","src":"4474:65:55"},{"assignments":[5485,null,5487],"declarations":[{"constant":false,"id":5485,"mutability":"mutable","name":"increaseCardinalityRequired","nameLocation":"4556:27:55","nodeType":"VariableDeclaration","scope":5503,"src":"4551:32:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5484,"name":"bool","nodeType":"ElementaryTypeName","src":"4551:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,{"constant":false,"id":5487,"mutability":"mutable","name":"oldestObservationSatisfied","nameLocation":"4592:26:55","nodeType":"VariableDeclaration","scope":5503,"src":"4587:31:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5486,"name":"bool","nodeType":"ElementaryTypeName","src":"4587:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5493,"initialValue":{"arguments":[{"id":5490,"name":"MARKET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5403,"src":"4660:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5491,"name":"TWAP_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"4680:13:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":5488,"name":"PT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"4622:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"}},"id":5489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4632:14:55","memberName":"getOracleState","nodeType":"MemberAccess","referencedDeclaration":3567,"src":"4622:24:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint32_$returns$_t_bool_$_t_uint16_$_t_bool_$","typeString":"function (address,uint32) view external returns (bool,uint16,bool)"}},"id":5492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:81:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint16_$_t_bool_$","typeString":"tuple(bool,uint16,bool)"}},"nodeType":"VariableDeclarationStatement","src":"4550:153:55"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5494,"name":"increaseCardinalityRequired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5485,"src":"4717:27:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":5496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4748:27:55","subExpression":{"id":5495,"name":"oldestObservationSatisfied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5487,"src":"4749:26:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4717:58:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5502,"nodeType":"IfStatement","src":"4713:113:55","trueBody":{"id":5501,"nodeType":"Block","src":"4777:49:55","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5498,"name":"InvalidDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5412,"src":"4798:15:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4798:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5500,"nodeType":"RevertStatement","src":"4791:24:55"}]}}]},"documentation":{"id":5413,"nodeType":"StructuredDocumentation","src":"3561:142:55","text":" @notice Constructor for the implementation contract.\n @custom:error InvalidDuration Thrown if the duration is invalid"},"id":5504,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":5419,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"3810:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3817:7:55","memberName":"ptToken","nodeType":"MemberAccess","referencedDeclaration":5360,"src":"3810:14:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5421,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"3838:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3845:15:55","memberName":"underlyingToken","nodeType":"MemberAccess","referencedDeclaration":5363,"src":"3838:22:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5423,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"3874:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3881:15:55","memberName":"resilientOracle","nodeType":"MemberAccess","referencedDeclaration":5366,"src":"3874:22:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5425,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"3910:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3917:16:55","memberName":"annualGrowthRate","nodeType":"MemberAccess","referencedDeclaration":5372,"src":"3910:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5427,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"3947:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3954:16:55","memberName":"snapshotInterval","nodeType":"MemberAccess","referencedDeclaration":5375,"src":"3947:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5429,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"3984:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3991:30:55","memberName":"initialSnapshotMaxExchangeRate","nodeType":"MemberAccess","referencedDeclaration":5378,"src":"3984:37:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5431,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4035:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4042:24:55","memberName":"initialSnapshotTimestamp","nodeType":"MemberAccess","referencedDeclaration":5381,"src":"4035:31:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5433,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4080:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4087:20:55","memberName":"accessControlManager","nodeType":"MemberAccess","referencedDeclaration":5384,"src":"4080:27:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5435,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"4121:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams memory"}},"id":5436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4128:11:55","memberName":"snapshotGap","nodeType":"MemberAccess","referencedDeclaration":5387,"src":"4121:18:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5437,"kind":"baseConstructorSpecifier","modifierName":{"id":5418,"name":"CorrelatedTokenOracle","nameLocations":["3775:21:55"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"3775:21:55"},"nodeType":"ModifierInvocation","src":"3775:374:55"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5416,"mutability":"mutable","name":"params","nameLocation":"3754:6:55","nodeType":"VariableDeclaration","scope":5504,"src":"3729:31:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_memory_ptr","typeString":"struct PendleOracle.ConstructorParams"},"typeName":{"id":5415,"nodeType":"UserDefinedTypeName","pathNode":{"id":5414,"name":"ConstructorParams","nameLocations":["3729:17:55"],"nodeType":"IdentifierPath","referencedDeclaration":5388,"src":"3729:17:55"},"referencedDeclaration":5388,"src":"3729:17:55","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$5388_storage_ptr","typeString":"struct PendleOracle.ConstructorParams"}},"visibility":"internal"}],"src":"3719:47:55"},"returnParameters":{"id":5438,"nodeType":"ParameterList","parameters":[],"src":"4154:0:55"},"scope":5549,"src":"3708:1124:55","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":5547,"nodeType":"Block","src":"5189:299:55","statements":[{"assignments":[5512],"declarations":[{"constant":false,"id":5512,"mutability":"mutable","name":"rate","nameLocation":"5207:4:55","nodeType":"VariableDeclaration","scope":5547,"src":"5199:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5199:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5513,"nodeType":"VariableDeclarationStatement","src":"5199:12:55"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"},"id":5517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5514,"name":"RATE_KIND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"5225:9:55","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5515,"name":"RateKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"5238:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateKind_$5392_$","typeString":"type(enum PendleOracle.RateKind)"}},"id":5516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5247:8:55","memberName":"PT_TO_SY","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"5238:17:55","typeDescriptions":{"typeIdentifier":"t_enum$_RateKind_$5392","typeString":"enum PendleOracle.RateKind"}},"src":"5225:30:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5535,"nodeType":"Block","src":"5341:81:55","statements":[{"expression":{"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5527,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"5355:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5530,"name":"MARKET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5403,"src":"5389:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5531,"name":"TWAP_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"5397:13:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":5528,"name":"PT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"5362:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"}},"id":5529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5372:16:55","memberName":"getPtToAssetRate","nodeType":"MemberAccess","referencedDeclaration":3545,"src":"5362:26:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint32_$returns$_t_uint256_$","typeString":"function (address,uint32) view external returns (uint256)"}},"id":5532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:49:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5355:56:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5534,"nodeType":"ExpressionStatement","src":"5355:56:55"}]},"id":5536,"nodeType":"IfStatement","src":"5221:201:55","trueBody":{"id":5526,"nodeType":"Block","src":"5257:78:55","statements":[{"expression":{"id":5524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5518,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"5271:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5521,"name":"MARKET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5403,"src":"5302:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5522,"name":"TWAP_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"5310:13:55","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":5519,"name":"PT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"5278:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_IPendlePtOracle_$3568","typeString":"contract IPendlePtOracle"}},"id":5520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5288:13:55","memberName":"getPtToSyRate","nodeType":"MemberAccess","referencedDeclaration":3554,"src":"5278:23:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint32_$returns$_t_uint256_$","typeString":"function (address,uint32) view external returns (uint256)"}},"id":5523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5278:46:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:53:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5525,"nodeType":"ExpressionStatement","src":"5271:53:55"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5440:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":5538,"name":"UNDERLYING_DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5409,"src":"5446:19:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5440:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5540,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5439:27:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5541,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"5469:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5439:34:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5543,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5438:36:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31653138","id":5544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:4:55","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"5438:43:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5510,"id":5546,"nodeType":"Return","src":"5431:50:55"}]},"documentation":{"id":5505,"nodeType":"StructuredDocumentation","src":"4838:276:55","text":"@notice Fetches the amount of underlying token for 1 PT\n @return amount The amount of underlying token (either the market's asset\n or the yield token) for 1 PT, adjusted for decimals such that the result\n has the same precision as the underlying token"},"functionSelector":"abb85613","id":5548,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"5128:19:55","nodeType":"FunctionDefinition","overrides":{"id":5507,"nodeType":"OverrideSpecifier","overrides":[],"src":"5162:8:55"},"parameters":{"id":5506,"nodeType":"ParameterList","parameters":[],"src":"5147:2:55"},"returnParameters":{"id":5510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5509,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5548,"src":"5180:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5508,"name":"uint256","nodeType":"ElementaryTypeName","src":"5180:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5179:9:55"},"scope":5549,"src":"5119:369:55","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5550,"src":"1316:4174:55","usedErrors":[2144,2147,5412,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:5450:55"},"id":55},"contracts/oracles/SFraxOracle.sol":{"ast":{"absolutePath":"contracts/oracles/SFraxOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"ISFrax":[3583],"SFraxOracle":[5610]},"id":5611,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5551,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:56"},{"absolutePath":"contracts/interfaces/ISFrax.sol","file":"../interfaces/ISFrax.sol","id":5553,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5611,"sourceUnit":3584,"src":"66:50:56","symbolAliases":[{"foreign":{"id":5552,"name":"ISFrax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"75:6:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":5555,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5611,"sourceUnit":7138,"src":"117:75:56","symbolAliases":[{"foreign":{"id":5554,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"126:21:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":5557,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5611,"sourceUnit":2140,"src":"193:86:56","symbolAliases":[{"foreign":{"id":5556,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"202:9:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5559,"name":"CorrelatedTokenOracle","nameLocations":["402:21:56"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"402:21:56"},"id":5560,"nodeType":"InheritanceSpecifier","src":"402:21:56"}],"canonicalName":"SFraxOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5558,"nodeType":"StructuredDocumentation","src":"281:96:56","text":" @title SFraxOracle\n @author Venus\n @notice This oracle fetches the price of sFrax"},"fullyImplemented":true,"id":5610,"linearizedBaseContracts":[5610,7137,3494,3666],"name":"SFraxOracle","nameLocation":"387:11:56","nodeType":"ContractDefinition","nodes":[{"body":{"id":5593,"nodeType":"Block","src":"1127:2:56","statements":[]},"documentation":{"id":5561,"nodeType":"StructuredDocumentation","src":"430:56:56","text":"@notice Constructor for the implementation contract."},"id":5594,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5582,"name":"sFrax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"857:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5583,"name":"frax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5565,"src":"876:4:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5584,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"894:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5585,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5569,"src":"923:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5586,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5571,"src":"953:17:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5587,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5573,"src":"984:30:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5588,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"1028:24:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5589,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5577,"src":"1066:20:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5590,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"1100:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5591,"kind":"baseConstructorSpecifier","modifierName":{"id":5581,"name":"CorrelatedTokenOracle","nameLocations":["822:21:56"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"822:21:56"},"nodeType":"ModifierInvocation","src":"822:300:56"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5563,"mutability":"mutable","name":"sFrax","nameLocation":"520:5:56","nodeType":"VariableDeclaration","scope":5594,"src":"512:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5562,"name":"address","nodeType":"ElementaryTypeName","src":"512:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5565,"mutability":"mutable","name":"frax","nameLocation":"543:4:56","nodeType":"VariableDeclaration","scope":5594,"src":"535:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5564,"name":"address","nodeType":"ElementaryTypeName","src":"535:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5567,"mutability":"mutable","name":"resilientOracle","nameLocation":"565:15:56","nodeType":"VariableDeclaration","scope":5594,"src":"557:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5566,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5569,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"598:16:56","nodeType":"VariableDeclaration","scope":5594,"src":"590:24:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5568,"name":"uint256","nodeType":"ElementaryTypeName","src":"590:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5571,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"632:17:56","nodeType":"VariableDeclaration","scope":5594,"src":"624:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5570,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5573,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"667:30:56","nodeType":"VariableDeclaration","scope":5594,"src":"659:38:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5572,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5575,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"715:24:56","nodeType":"VariableDeclaration","scope":5594,"src":"707:32:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5574,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5577,"mutability":"mutable","name":"accessControlManager","nameLocation":"757:20:56","nodeType":"VariableDeclaration","scope":5594,"src":"749:28:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5576,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5579,"mutability":"mutable","name":"_snapshotGap","nameLocation":"795:12:56","nodeType":"VariableDeclaration","scope":5594,"src":"787:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5578,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"502:311:56"},"returnParameters":{"id":5592,"nodeType":"ParameterList","parameters":[],"src":"1127:0:56"},"scope":5610,"src":"491:638:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":5608,"nodeType":"Block","src":"1326:75:56","statements":[{"expression":{"arguments":[{"id":5605,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1384:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5602,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"1350:16:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5601,"name":"ISFrax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"1343:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISFrax_$3583_$","typeString":"type(contract ISFrax)"}},"id":5603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1343:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISFrax_$3583","typeString":"contract ISFrax"}},"id":5604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1368:15:56","memberName":"convertToAssets","nodeType":"MemberAccess","referencedDeclaration":3577,"src":"1343:40:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1343:51:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5600,"id":5607,"nodeType":"Return","src":"1336:58:56"}]},"documentation":{"id":5595,"nodeType":"StructuredDocumentation","src":"1135:116:56","text":" @notice Fetches the amount of FRAX for 1 sFrax\n @return amount The amount of FRAX for sFrax"},"functionSelector":"abb85613","id":5609,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1265:19:56","nodeType":"FunctionDefinition","overrides":{"id":5597,"nodeType":"OverrideSpecifier","overrides":[],"src":"1299:8:56"},"parameters":{"id":5596,"nodeType":"ParameterList","parameters":[],"src":"1284:2:56"},"returnParameters":{"id":5600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5609,"src":"1317:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5598,"name":"uint256","nodeType":"ElementaryTypeName","src":"1317:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1316:9:56"},"scope":5610,"src":"1256:145:56","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5611,"src":"378:1025:56","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1363:56"},"id":56},"contracts/oracles/SFrxETHOracle.sol":{"ast":{"absolutePath":"contracts/oracles/SFrxETHOracle.sol","exportedSymbols":{"AccessControlledV8":[2080],"EXP_SCALE":[2131],"ISfrxEthFraxOracle":[3595],"OracleInterface":[3666],"SFrxETHOracle":[5812],"ensureNonzeroAddress":[2165],"ensureNonzeroValue":[2180]},"id":5813,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5612,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:57"},{"absolutePath":"contracts/interfaces/ISfrxEthFraxOracle.sol","file":"../interfaces/ISfrxEthFraxOracle.sol","id":5614,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5813,"sourceUnit":3596,"src":"66:74:57","symbolAliases":[{"foreign":{"id":5613,"name":"ISfrxEthFraxOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"75:18:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5617,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5813,"sourceUnit":2181,"src":"141:118:57","symbolAliases":[{"foreign":{"id":5615,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"150:20:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5616,"name":"ensureNonzeroValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"172:18:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":5619,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5813,"sourceUnit":2140,"src":"260:86:57","symbolAliases":[{"foreign":{"id":5618,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"269:9:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","id":5621,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5813,"sourceUnit":2081,"src":"347:117:57","symbolAliases":[{"foreign":{"id":5620,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"356:18:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":5623,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5813,"sourceUnit":3699,"src":"465:68:57","symbolAliases":[{"foreign":{"id":5622,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"474:15:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5625,"name":"AccessControlledV8","nameLocations":["662:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"662:18:57"},"id":5626,"nodeType":"InheritanceSpecifier","src":"662:18:57"},{"baseName":{"id":5627,"name":"OracleInterface","nameLocations":["682:15:57"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"682:15:57"},"id":5628,"nodeType":"InheritanceSpecifier","src":"682:15:57"}],"canonicalName":"SFrxETHOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5624,"nodeType":"StructuredDocumentation","src":"535:100:57","text":" @title SFrxETHOracle\n @author Venus\n @notice This oracle fetches the price of sfrxETH"},"fullyImplemented":true,"id":5812,"linearizedBaseContracts":[5812,3666,2080,209,342,1020,511],"name":"SFrxETHOracle","nameLocation":"645:13:57","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":5629,"nodeType":"StructuredDocumentation","src":"704:106:57","text":"@notice Address of SfrxEthFraxOracle\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"127cac45","id":5632,"mutability":"immutable","name":"SFRXETH_FRAX_ORACLE","nameLocation":"851:19:57","nodeType":"VariableDeclaration","scope":5812,"src":"815:55:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISfrxEthFraxOracle_$3595","typeString":"contract ISfrxEthFraxOracle"},"typeName":{"id":5631,"nodeType":"UserDefinedTypeName","pathNode":{"id":5630,"name":"ISfrxEthFraxOracle","nameLocations":["815:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":3595,"src":"815:18:57"},"referencedDeclaration":3595,"src":"815:18:57","typeDescriptions":{"typeIdentifier":"t_contract$_ISfrxEthFraxOracle_$3595","typeString":"contract ISfrxEthFraxOracle"}},"visibility":"public"},{"constant":false,"documentation":{"id":5633,"nodeType":"StructuredDocumentation","src":"877:96:57","text":"@notice Address of sfrxETH\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"35da603d","id":5635,"mutability":"immutable","name":"SFRXETH","nameLocation":"1003:7:57","nodeType":"VariableDeclaration","scope":5812,"src":"978:32:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5634,"name":"address","nodeType":"ElementaryTypeName","src":"978:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":5636,"nodeType":"StructuredDocumentation","src":"1017:44:57","text":"@notice Maximum allowed price difference"},"functionSelector":"9fd1944f","id":5638,"mutability":"mutable","name":"maxAllowedPriceDifference","nameLocation":"1081:25:57","nodeType":"VariableDeclaration","scope":5812,"src":"1066:40:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5637,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":5639,"nodeType":"StructuredDocumentation","src":"1113:70:57","text":"@notice Emits when the maximum allowed price difference is updated"},"eventSelector":"8d4d923222e4a17f030a7f3fe695e9e6c13b437df4b3b48c2332f584395aba90","id":5645,"name":"MaxAllowedPriceDifferenceUpdated","nameLocation":"1194:32:57","nodeType":"EventDefinition","parameters":{"id":5644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5641,"indexed":false,"mutability":"mutable","name":"oldMaxAllowedPriceDifference","nameLocation":"1235:28:57","nodeType":"VariableDeclaration","scope":5645,"src":"1227:36:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5643,"indexed":false,"mutability":"mutable","name":"newMaxAllowedPriceDifference","nameLocation":"1273:28:57","nodeType":"VariableDeclaration","scope":5645,"src":"1265:36:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5642,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1226:76:57"},"src":"1188:115:57"},{"documentation":{"id":5646,"nodeType":"StructuredDocumentation","src":"1309:47:57","text":"@notice Thrown if the price data is invalid"},"errorSelector":"a40e3291","id":5648,"name":"BadPriceData","nameLocation":"1367:12:57","nodeType":"ErrorDefinition","parameters":{"id":5647,"nodeType":"ParameterList","parameters":[],"src":"1379:2:57"},"src":"1361:21:57"},{"documentation":{"id":5649,"nodeType":"StructuredDocumentation","src":"1388:68:57","text":"@notice Thrown if the price difference exceeds the allowed limit"},"errorSelector":"501973da","id":5651,"name":"PriceDifferenceExceeded","nameLocation":"1467:23:57","nodeType":"ErrorDefinition","parameters":{"id":5650,"nodeType":"ParameterList","parameters":[],"src":"1490:2:57"},"src":"1461:32:57"},{"documentation":{"id":5652,"nodeType":"StructuredDocumentation","src":"1499:50:57","text":"@notice Thrown if the token address is invalid"},"errorSelector":"1eb00b06","id":5654,"name":"InvalidTokenAddress","nameLocation":"1560:19:57","nodeType":"ErrorDefinition","parameters":{"id":5653,"nodeType":"ParameterList","parameters":[],"src":"1579:2:57"},"src":"1554:28:57"},{"body":{"id":5683,"nodeType":"Block","src":"1875:229:57","statements":[{"expression":{"arguments":[{"id":5663,"name":"_sfrxEthFraxOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"1906:18:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5662,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1885:20:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:40:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5665,"nodeType":"ExpressionStatement","src":"1885:40:57"},{"expression":{"arguments":[{"id":5667,"name":"_sfrxETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"1956:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5666,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1935:20:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1935:30:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5669,"nodeType":"ExpressionStatement","src":"1935:30:57"},{"expression":{"id":5674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5670,"name":"SFRXETH_FRAX_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5632,"src":"1976:19:57","typeDescriptions":{"typeIdentifier":"t_contract$_ISfrxEthFraxOracle_$3595","typeString":"contract ISfrxEthFraxOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5672,"name":"_sfrxEthFraxOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"2017:18:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5671,"name":"ISfrxEthFraxOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3595,"src":"1998:18:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISfrxEthFraxOracle_$3595_$","typeString":"type(contract ISfrxEthFraxOracle)"}},"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:38:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISfrxEthFraxOracle_$3595","typeString":"contract ISfrxEthFraxOracle"}},"src":"1976:60:57","typeDescriptions":{"typeIdentifier":"t_contract$_ISfrxEthFraxOracle_$3595","typeString":"contract ISfrxEthFraxOracle"}},"id":5675,"nodeType":"ExpressionStatement","src":"1976:60:57"},{"expression":{"id":5678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5676,"name":"SFRXETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"2046:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5677,"name":"_sfrxETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"2056:8:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2046:18:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5679,"nodeType":"ExpressionStatement","src":"2046:18:57"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5680,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"2075:20:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2075:22:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5682,"nodeType":"ExpressionStatement","src":"2075:22:57"}]},"documentation":{"id":5655,"nodeType":"StructuredDocumentation","src":"1588:224:57","text":"@notice Constructor for the implementation contract.\n @custom:oz-upgrades-unsafe-allow constructor\n @custom:error ZeroAddressNotAllowed is thrown when `_sfrxEthFraxOracle` or `_sfrxETH` are the zero address"},"id":5684,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5657,"mutability":"mutable","name":"_sfrxEthFraxOracle","nameLocation":"1837:18:57","nodeType":"VariableDeclaration","scope":5684,"src":"1829:26:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5656,"name":"address","nodeType":"ElementaryTypeName","src":"1829:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5659,"mutability":"mutable","name":"_sfrxETH","nameLocation":"1865:8:57","nodeType":"VariableDeclaration","scope":5684,"src":"1857:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5658,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1828:46:57"},"returnParameters":{"id":5661,"nodeType":"ParameterList","parameters":[],"src":"1875:0:57"},"scope":5812,"src":"1817:287:57","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5706,"nodeType":"Block","src":"2507:167:57","statements":[{"expression":{"arguments":[{"id":5695,"name":"_maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"2536:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5694,"name":"ensureNonzeroValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"2517:18:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:46:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5697,"nodeType":"ExpressionStatement","src":"2517:46:57"},{"expression":{"arguments":[{"id":5699,"name":"_acm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"2598:4:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5698,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1976,"src":"2574:23:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:29:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5701,"nodeType":"ExpressionStatement","src":"2574:29:57"},{"expression":{"id":5704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5702,"name":"maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"2613:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5703,"name":"_maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"2641:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2613:54:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5705,"nodeType":"ExpressionStatement","src":"2613:54:57"}]},"documentation":{"id":5685,"nodeType":"StructuredDocumentation","src":"2110:301:57","text":" @notice Sets the contracts required to fetch prices\n @param _acm Address of the access control manager contract\n @param _maxAllowedPriceDifference Maximum allowed price difference\n @custom:error ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero"},"functionSelector":"cd6dc687","id":5707,"implemented":true,"kind":"function","modifiers":[{"id":5692,"kind":"modifierInvocation","modifierName":{"id":5691,"name":"initializer","nameLocations":["2495:11:57"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"2495:11:57"},"nodeType":"ModifierInvocation","src":"2495:11:57"}],"name":"initialize","nameLocation":"2425:10:57","nodeType":"FunctionDefinition","parameters":{"id":5690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5687,"mutability":"mutable","name":"_acm","nameLocation":"2444:4:57","nodeType":"VariableDeclaration","scope":5707,"src":"2436:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5686,"name":"address","nodeType":"ElementaryTypeName","src":"2436:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5689,"mutability":"mutable","name":"_maxAllowedPriceDifference","nameLocation":"2458:26:57","nodeType":"VariableDeclaration","scope":5707,"src":"2450:34:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5688,"name":"uint256","nodeType":"ElementaryTypeName","src":"2450:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2435:50:57"},"returnParameters":{"id":5693,"nodeType":"ParameterList","parameters":[],"src":"2507:0:57"},"scope":5812,"src":"2416:258:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5730,"nodeType":"Block","src":"3001:300:57","statements":[{"expression":{"arguments":[{"hexValue":"7365744d6178416c6c6f7765645072696365446966666572656e63652875696e7432353629","id":5714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3031:39:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_d54459507b3614ba0c1def9884af797c23c521b900a79ceea792d32666919127","typeString":"literal_string \"setMaxAllowedPriceDifference(uint256)\""},"value":"setMaxAllowedPriceDifference(uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d54459507b3614ba0c1def9884af797c23c521b900a79ceea792d32666919127","typeString":"literal_string \"setMaxAllowedPriceDifference(uint256)\""}],"id":5713,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"3011:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3011:60:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5716,"nodeType":"ExpressionStatement","src":"3011:60:57"},{"expression":{"arguments":[{"id":5718,"name":"_maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5710,"src":"3100:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5717,"name":"ensureNonzeroValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"3081:18:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3081:46:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5720,"nodeType":"ExpressionStatement","src":"3081:46:57"},{"eventCall":{"arguments":[{"id":5722,"name":"maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"3176:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5723,"name":"_maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5710,"src":"3203:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5721,"name":"MaxAllowedPriceDifferenceUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5645,"src":"3143:32:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":5724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3143:87:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5725,"nodeType":"EmitStatement","src":"3138:92:57"},{"expression":{"id":5728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5726,"name":"maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"3240:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5727,"name":"_maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5710,"src":"3268:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3240:54:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5729,"nodeType":"ExpressionStatement","src":"3240:54:57"}]},"documentation":{"id":5708,"nodeType":"StructuredDocumentation","src":"2680:233:57","text":" @notice Sets the maximum allowed price difference\n @param _maxAllowedPriceDifference Maximum allowed price difference\n @custom:error ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero"},"functionSelector":"d5445950","id":5731,"implemented":true,"kind":"function","modifiers":[],"name":"setMaxAllowedPriceDifference","nameLocation":"2927:28:57","nodeType":"FunctionDefinition","parameters":{"id":5711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5710,"mutability":"mutable","name":"_maxAllowedPriceDifference","nameLocation":"2964:26:57","nodeType":"VariableDeclaration","scope":5731,"src":"2956:34:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5709,"name":"uint256","nodeType":"ElementaryTypeName","src":"2956:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2955:36:57"},"returnParameters":{"id":5712,"nodeType":"ParameterList","parameters":[],"src":"3001:0:57"},"scope":5812,"src":"2918:383:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3665],"body":{"id":5810,"nodeType":"Block","src":"3957:758:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5739,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"3971:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5740,"name":"SFRXETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"3980:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3971:16:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5745,"nodeType":"IfStatement","src":"3967:50:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5742,"name":"InvalidTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"3996:19:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3996:21:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5744,"nodeType":"RevertStatement","src":"3989:28:57"}},{"assignments":[5747,5749,5751],"declarations":[{"constant":false,"id":5747,"mutability":"mutable","name":"isBadData","nameLocation":"4034:9:57","nodeType":"VariableDeclaration","scope":5810,"src":"4029:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5746,"name":"bool","nodeType":"ElementaryTypeName","src":"4029:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5749,"mutability":"mutable","name":"priceLow","nameLocation":"4053:8:57","nodeType":"VariableDeclaration","scope":5810,"src":"4045:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5748,"name":"uint256","nodeType":"ElementaryTypeName","src":"4045:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5751,"mutability":"mutable","name":"priceHigh","nameLocation":"4071:9:57","nodeType":"VariableDeclaration","scope":5810,"src":"4063:17:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5750,"name":"uint256","nodeType":"ElementaryTypeName","src":"4063:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5755,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5752,"name":"SFRXETH_FRAX_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5632,"src":"4084:19:57","typeDescriptions":{"typeIdentifier":"t_contract$_ISfrxEthFraxOracle_$3595","typeString":"contract ISfrxEthFraxOracle"}},"id":5753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4104:9:57","memberName":"getPrices","nodeType":"MemberAccess","referencedDeclaration":3594,"src":"4084:29:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function () view external returns (bool,uint256,uint256)"}},"id":5754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4084:31:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4028:87:57"},{"condition":{"id":5756,"name":"isBadData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5747,"src":"4130:9:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5760,"nodeType":"IfStatement","src":"4126:36:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5757,"name":"BadPriceData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"4148:12:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4148:14:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5759,"nodeType":"RevertStatement","src":"4141:21:57"}},{"assignments":[5762],"declarations":[{"constant":false,"id":5762,"mutability":"mutable","name":"priceHighInUSD","nameLocation":"4215:14:57","nodeType":"VariableDeclaration","scope":5810,"src":"4207:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4207:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5769,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":5763,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"4233:9:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":5764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4246:1:57","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4233:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5766,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4232:16:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5767,"name":"priceLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"4251:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4232:27:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4207:52:57"},{"assignments":[5771],"declarations":[{"constant":false,"id":5771,"mutability":"mutable","name":"priceLowInUSD","nameLocation":"4277:13:57","nodeType":"VariableDeclaration","scope":5810,"src":"4269:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5770,"name":"uint256","nodeType":"ElementaryTypeName","src":"4269:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5778,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":5772,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"4294:9:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":5773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4307:1:57","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4294:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4293:16:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5776,"name":"priceHigh","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5751,"src":"4312:9:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4293:28:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4269:52:57"},{"expression":{"arguments":[{"id":5780,"name":"priceHighInUSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5762,"src":"4351:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5779,"name":"ensureNonzeroValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"4332:18:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4332:34:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5782,"nodeType":"ExpressionStatement","src":"4332:34:57"},{"expression":{"arguments":[{"id":5784,"name":"priceLowInUSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"4395:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5783,"name":"ensureNonzeroValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"4376:18:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4376:33:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5786,"nodeType":"ExpressionStatement","src":"4376:33:57"},{"assignments":[5788],"declarations":[{"constant":false,"id":5788,"mutability":"mutable","name":"difference","nameLocation":"4465:10:57","nodeType":"VariableDeclaration","scope":5810,"src":"4457:18:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5795,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5789,"name":"priceHighInUSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5762,"src":"4479:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5790,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"4496:9:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4479:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4478:28:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5793,"name":"priceLowInUSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"4509:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4478:44:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4457:65:57"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5796,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5788,"src":"4536:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5797,"name":"maxAllowedPriceDifference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"4549:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4536:38:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5802,"nodeType":"IfStatement","src":"4532:76:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5799,"name":"PriceDifferenceExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5651,"src":"4583:23:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:25:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5801,"nodeType":"RevertStatement","src":"4576:32:57"}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5803,"name":"priceHighInUSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5762,"src":"4673:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5804,"name":"priceLowInUSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"4690:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4673:30:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5806,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4672:32:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":5807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4707:1:57","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4672:36:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5738,"id":5809,"nodeType":"Return","src":"4665:43:57"}]},"documentation":{"id":5732,"nodeType":"StructuredDocumentation","src":"3307:580:57","text":" @notice Fetches the USD price of sfrxETH\n @param asset Address of the sfrxETH token\n @return price The price scaled by 1e18\n @custom:error InvalidTokenAddress is thrown when the `asset` is not the sfrxETH token (`SFRXETH`)\n @custom:error BadPriceData is thrown if the `SFRXETH_FRAX_ORACLE` oracle informs it has bad data\n @custom:error ZeroValueNotAllowed is thrown if the prices (low or high, in USD) are zero\n @custom:error PriceDifferenceExceeded is thrown if priceHigh/priceLow is greater than `maxAllowedPriceDifference`"},"functionSelector":"41976e09","id":5811,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"3901:8:57","nodeType":"FunctionDefinition","parameters":{"id":5735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5734,"mutability":"mutable","name":"asset","nameLocation":"3918:5:57","nodeType":"VariableDeclaration","scope":5811,"src":"3910:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5733,"name":"address","nodeType":"ElementaryTypeName","src":"3910:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3909:15:57"},"returnParameters":{"id":5738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5811,"src":"3948:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5736,"name":"uint256","nodeType":"ElementaryTypeName","src":"3948:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3947:9:57"},"scope":5812,"src":"3892:823:57","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5813,"src":"636:4081:57","usedErrors":[1961,2144,2147,5648,5651,5654],"usedEvents":[120,227,357,1952,5645]}],"src":"41:4677:57"},"id":57},"contracts/oracles/SequencerChainlinkOracle.sol":{"ast":{"absolutePath":"contracts/oracles/SequencerChainlinkOracle.sol","exportedSymbols":{"AggregatorV3Interface":[102],"ChainlinkOracle":[5077],"SequencerChainlinkOracle":[5909]},"id":5910,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5814,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"32:23:58"},{"absolutePath":"contracts/oracles/ChainlinkOracle.sol","file":"./ChainlinkOracle.sol","id":5816,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5910,"sourceUnit":5078,"src":"57:56:58","symbolAliases":[{"foreign":{"id":5815,"name":"ChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5077,"src":"66:15:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol","file":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol","id":5818,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5910,"sourceUnit":103,"src":"114:107:58","symbolAliases":[{"foreign":{"id":5817,"name":"AggregatorV3Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102,"src":"123:21:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5820,"name":"ChainlinkOracle","nameLocations":["386:15:58"],"nodeType":"IdentifierPath","referencedDeclaration":5077,"src":"386:15:58"},"id":5821,"nodeType":"InheritanceSpecifier","src":"386:15:58"}],"canonicalName":"SequencerChainlinkOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5819,"nodeType":"StructuredDocumentation","src":"223:125:58","text":"@title Sequencer Chain Link Oracle\n@notice Oracle to fetch price using chainlink oracles on L2s with sequencer"},"fullyImplemented":true,"id":5909,"linearizedBaseContracts":[5909,5077,3666,2080,209,342,1020,511],"name":"SequencerChainlinkOracle","nameLocation":"358:24:58","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":5822,"nodeType":"StructuredDocumentation","src":"408:95:58","text":"@notice L2 Sequencer feed\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"5c1bba38","id":5825,"mutability":"immutable","name":"sequencer","nameLocation":"547:9:58","nodeType":"VariableDeclaration","scope":5909,"src":"508:48:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"},"typeName":{"id":5824,"nodeType":"UserDefinedTypeName","pathNode":{"id":5823,"name":"AggregatorV3Interface","nameLocations":["508:21:58"],"nodeType":"IdentifierPath","referencedDeclaration":102,"src":"508:21:58"},"referencedDeclaration":102,"src":"508:21:58","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"visibility":"public"},{"constant":true,"documentation":{"id":5826,"nodeType":"StructuredDocumentation","src":"563:37:58","text":"@notice L2 Sequencer grace period"},"functionSelector":"ed2f8603","id":5829,"mutability":"constant","name":"GRACE_PERIOD_TIME","nameLocation":"629:17:58","nodeType":"VariableDeclaration","scope":5909,"src":"605:48:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5827,"name":"uint256","nodeType":"ElementaryTypeName","src":"605:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33363030","id":5828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"649:4:58","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"visibility":"public"},{"body":{"id":5855,"nodeType":"Block","src":"868:108:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5841,"name":"_sequencer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"894:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}],"id":5840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"886:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5839,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:58","typeDescriptions":{}}},"id":5842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"886:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"917:1:58","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":5844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"909:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5843,"name":"address","nodeType":"ElementaryTypeName","src":"909:7:58","typeDescriptions":{}}},"id":5846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"886:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7a65726f2061646472657373","id":5848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"921:14:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7","typeString":"literal_string \"zero address\""},"value":"zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7","typeString":"literal_string \"zero address\""}],"id":5838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"878:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"878:58:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5850,"nodeType":"ExpressionStatement","src":"878:58:58"},{"expression":{"id":5853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5851,"name":"sequencer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5825,"src":"947:9:58","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5852,"name":"_sequencer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"959:10:58","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"src":"947:22:58","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"id":5854,"nodeType":"ExpressionStatement","src":"947:22:58"}]},"documentation":{"id":5830,"nodeType":"StructuredDocumentation","src":"660:139:58","text":"@notice Contract constructor\n@param _sequencer L2 sequencer\n@custom:oz-upgrades-unsafe-allow constructor"},"id":5856,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":5836,"kind":"baseConstructorSpecifier","modifierName":{"id":5835,"name":"ChainlinkOracle","nameLocations":["850:15:58"],"nodeType":"IdentifierPath","referencedDeclaration":5077,"src":"850:15:58"},"nodeType":"ModifierInvocation","src":"850:17:58"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5833,"mutability":"mutable","name":"_sequencer","nameLocation":"838:10:58","nodeType":"VariableDeclaration","scope":5856,"src":"816:32:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"},"typeName":{"id":5832,"nodeType":"UserDefinedTypeName","pathNode":{"id":5831,"name":"AggregatorV3Interface","nameLocations":["816:21:58"],"nodeType":"IdentifierPath","referencedDeclaration":102,"src":"816:21:58"},"referencedDeclaration":102,"src":"816:21:58","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"visibility":"internal"}],"src":"815:34:58"},"returnParameters":{"id":5837,"nodeType":"ParameterList","parameters":[],"src":"868:0:58"},"scope":5909,"src":"804:172:58","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4933],"body":{"id":5878,"nodeType":"Block","src":"1087:115:58","statements":[{"condition":{"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1101:20:58","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5865,"name":"isSequencerActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"1102:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":5866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1102:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5872,"nodeType":"IfStatement","src":"1097:60:58","trueBody":{"expression":{"arguments":[{"hexValue":"4c322073657175656e63657220756e617661696c61626c65","id":5869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1130:26:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b","typeString":"literal_string \"L2 sequencer unavailable\""},"value":"L2 sequencer unavailable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b","typeString":"literal_string \"L2 sequencer unavailable\""}],"id":5868,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1123:6:58","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1123:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5871,"nodeType":"ExpressionStatement","src":"1123:34:58"}},{"expression":{"arguments":[{"id":5875,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5859,"src":"1189:5:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5873,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1174:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_SequencerChainlinkOracle_$5909_$","typeString":"type(contract super SequencerChainlinkOracle)"}},"id":5874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1180:8:58","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"1174:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1174:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5864,"id":5877,"nodeType":"Return","src":"1167:28:58"}]},"documentation":{"id":5857,"nodeType":"StructuredDocumentation","src":"982:31:58","text":"@inheritdoc ChainlinkOracle"},"functionSelector":"41976e09","id":5879,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"1027:8:58","nodeType":"FunctionDefinition","overrides":{"id":5861,"nodeType":"OverrideSpecifier","overrides":[],"src":"1063:8:58"},"parameters":{"id":5860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5859,"mutability":"mutable","name":"asset","nameLocation":"1044:5:58","nodeType":"VariableDeclaration","scope":5879,"src":"1036:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5858,"name":"address","nodeType":"ElementaryTypeName","src":"1036:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1035:15:58"},"returnParameters":{"id":5864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5879,"src":"1081:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5862,"name":"uint","nodeType":"ElementaryTypeName","src":"1081:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1080:6:58"},"scope":5909,"src":"1018:184:58","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":5907,"nodeType":"Block","src":"1266:426:58","statements":[{"assignments":[null,5885,5887,null,null],"declarations":[null,{"constant":false,"id":5885,"mutability":"mutable","name":"answer","nameLocation":"1513:6:58","nodeType":"VariableDeclaration","scope":5907,"src":"1506:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5884,"name":"int256","nodeType":"ElementaryTypeName","src":"1506:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":5887,"mutability":"mutable","name":"startedAt","nameLocation":"1529:9:58","nodeType":"VariableDeclaration","scope":5907,"src":"1521:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5886,"name":"uint256","nodeType":"ElementaryTypeName","src":"1521:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":5891,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5888,"name":"sequencer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5825,"src":"1546:9:58","typeDescriptions":{"typeIdentifier":"t_contract$_AggregatorV3Interface_$102","typeString":"contract AggregatorV3Interface"}},"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1556:15:58","memberName":"latestRoundData","nodeType":"MemberAccess","referencedDeclaration":101,"src":"1546:25:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"function () view external returns (uint80,int256,uint256,uint256,uint80)"}},"id":5890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1546:27:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"tuple(uint80,int256,uint256,uint256,uint80)"}},"nodeType":"VariableDeclarationStatement","src":"1503:70:58"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5892,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1587:5:58","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1593:9:58","memberName":"timestamp","nodeType":"MemberAccess","src":"1587:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5894,"name":"startedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"1605:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1587:27:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5896,"name":"GRACE_PERIOD_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5829,"src":"1618:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1587:48:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5898,"name":"answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5885,"src":"1639:6:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":5899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1649:1:58","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1639:11:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1587:63:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5904,"nodeType":"IfStatement","src":"1583:81:58","trueBody":{"expression":{"hexValue":"66616c7365","id":5902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1659:5:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":5883,"id":5903,"nodeType":"Return","src":"1652:12:58"}},{"expression":{"hexValue":"74727565","id":5905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1681:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5883,"id":5906,"nodeType":"Return","src":"1674:11:58"}]},"id":5908,"implemented":true,"kind":"function","modifiers":[],"name":"isSequencerActive","nameLocation":"1217:17:58","nodeType":"FunctionDefinition","parameters":{"id":5880,"nodeType":"ParameterList","parameters":[],"src":"1234:2:58"},"returnParameters":{"id":5883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5908,"src":"1260:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5881,"name":"bool","nodeType":"ElementaryTypeName","src":"1260:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1259:6:58"},"scope":5909,"src":"1208:484:58","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":5910,"src":"349:1345:58","usedErrors":[1961],"usedEvents":[120,227,357,1952,4727,4736]}],"src":"32:1663:58"},"id":58},"contracts/oracles/SlisBNBOracle.sol":{"ast":{"absolutePath":"contracts/oracles/SlisBNBOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"ISynclubStakeManager":[3630],"SlisBNBOracle":[5988],"ensureNonzeroAddress":[2165]},"id":5989,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5911,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:59"},{"absolutePath":"contracts/interfaces/ISynclubStakeManager.sol","file":"../interfaces/ISynclubStakeManager.sol","id":5913,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5989,"sourceUnit":3631,"src":"66:78:59","symbolAliases":[{"foreign":{"id":5912,"name":"ISynclubStakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"75:20:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5915,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5989,"sourceUnit":2181,"src":"145:98:59","symbolAliases":[{"foreign":{"id":5914,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"154:20:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":5917,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5989,"sourceUnit":7138,"src":"244:75:59","symbolAliases":[{"foreign":{"id":5916,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"253:21:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":5919,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5989,"sourceUnit":2140,"src":"320:86:59","symbolAliases":[{"foreign":{"id":5918,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"329:9:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5921,"name":"CorrelatedTokenOracle","nameLocations":["541:21:59"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"541:21:59"},"id":5922,"nodeType":"InheritanceSpecifier","src":"541:21:59"}],"canonicalName":"SlisBNBOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5920,"nodeType":"StructuredDocumentation","src":"408:106:59","text":" @title SlisBNBOracle\n @author Venus\n @notice This oracle fetches the price of slisBNB asset"},"fullyImplemented":true,"id":5988,"linearizedBaseContracts":[5988,7137,3494,3666],"name":"SlisBNBOracle","nameLocation":"524:13:59","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":5923,"nodeType":"StructuredDocumentation","src":"569:55:59","text":"@notice This is used as token address of BNB on BSC"},"functionSelector":"a9534f8a","id":5926,"mutability":"constant","name":"NATIVE_TOKEN_ADDR","nameLocation":"653:17:59","nodeType":"VariableDeclaration","scope":5988,"src":"629:86:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5924,"name":"address","nodeType":"ElementaryTypeName","src":"629:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307862426242424242626242424262626242626242626262624242624262626262426242626242426242","id":5925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"673:42:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"},"visibility":"public"},{"constant":false,"documentation":{"id":5927,"nodeType":"StructuredDocumentation","src":"722:35:59","text":"@notice Address of StakeManager"},"functionSelector":"7353847a","id":5930,"mutability":"immutable","name":"STAKE_MANAGER","nameLocation":"800:13:59","nodeType":"VariableDeclaration","scope":5988,"src":"762:51:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISynclubStakeManager_$3630","typeString":"contract ISynclubStakeManager"},"typeName":{"id":5929,"nodeType":"UserDefinedTypeName","pathNode":{"id":5928,"name":"ISynclubStakeManager","nameLocations":["762:20:59"],"nodeType":"IdentifierPath","referencedDeclaration":3630,"src":"762:20:59"},"referencedDeclaration":3630,"src":"762:20:59","typeDescriptions":{"typeIdentifier":"t_contract$_ISynclubStakeManager_$3630","typeString":"contract ISynclubStakeManager"}},"visibility":"public"},{"body":{"id":5973,"nodeType":"Block","src":"1542:111:59","statements":[{"expression":{"arguments":[{"id":5964,"name":"stakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"1573:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5963,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1552:20:59","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1552:34:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5966,"nodeType":"ExpressionStatement","src":"1552:34:59"},{"expression":{"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5967,"name":"STAKE_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5930,"src":"1596:13:59","typeDescriptions":{"typeIdentifier":"t_contract$_ISynclubStakeManager_$3630","typeString":"contract ISynclubStakeManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5969,"name":"stakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"1633:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5968,"name":"ISynclubStakeManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"1612:20:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISynclubStakeManager_$3630_$","typeString":"type(contract ISynclubStakeManager)"}},"id":5970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1612:34:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISynclubStakeManager_$3630","typeString":"contract ISynclubStakeManager"}},"src":"1596:50:59","typeDescriptions":{"typeIdentifier":"t_contract$_ISynclubStakeManager_$3630","typeString":"contract ISynclubStakeManager"}},"id":5972,"nodeType":"ExpressionStatement","src":"1596:50:59"}]},"documentation":{"id":5931,"nodeType":"StructuredDocumentation","src":"820:56:59","text":"@notice Constructor for the implementation contract."},"id":5974,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5952,"name":"slisBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"1257:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5953,"name":"NATIVE_TOKEN_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5926,"src":"1278:17:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5954,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"1309:15:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5955,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5939,"src":"1338:16:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5956,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5941,"src":"1368:17:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5957,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5943,"src":"1399:30:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5958,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5945,"src":"1443:24:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5959,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"1481:20:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5960,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5949,"src":"1515:12:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5961,"kind":"baseConstructorSpecifier","modifierName":{"id":5951,"name":"CorrelatedTokenOracle","nameLocations":["1222:21:59"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1222:21:59"},"nodeType":"ModifierInvocation","src":"1222:315:59"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5933,"mutability":"mutable","name":"stakeManager","nameLocation":"910:12:59","nodeType":"VariableDeclaration","scope":5974,"src":"902:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5932,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5935,"mutability":"mutable","name":"slisBNB","nameLocation":"940:7:59","nodeType":"VariableDeclaration","scope":5974,"src":"932:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5934,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5937,"mutability":"mutable","name":"resilientOracle","nameLocation":"965:15:59","nodeType":"VariableDeclaration","scope":5974,"src":"957:23:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5936,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5939,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"998:16:59","nodeType":"VariableDeclaration","scope":5974,"src":"990:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5938,"name":"uint256","nodeType":"ElementaryTypeName","src":"990:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5941,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"1032:17:59","nodeType":"VariableDeclaration","scope":5974,"src":"1024:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5940,"name":"uint256","nodeType":"ElementaryTypeName","src":"1024:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5943,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"1067:30:59","nodeType":"VariableDeclaration","scope":5974,"src":"1059:38:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5942,"name":"uint256","nodeType":"ElementaryTypeName","src":"1059:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5945,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"1115:24:59","nodeType":"VariableDeclaration","scope":5974,"src":"1107:32:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5944,"name":"uint256","nodeType":"ElementaryTypeName","src":"1107:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5947,"mutability":"mutable","name":"accessControlManager","nameLocation":"1157:20:59","nodeType":"VariableDeclaration","scope":5974,"src":"1149:28:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5946,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5949,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1195:12:59","nodeType":"VariableDeclaration","scope":5974,"src":"1187:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"892:321:59"},"returnParameters":{"id":5962,"nodeType":"ParameterList","parameters":[],"src":"1542:0:59"},"scope":5988,"src":"881:772:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":5986,"nodeType":"Block","src":"1852:66:59","statements":[{"expression":{"arguments":[{"id":5983,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1901:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5981,"name":"STAKE_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5930,"src":"1869:13:59","typeDescriptions":{"typeIdentifier":"t_contract$_ISynclubStakeManager_$3630","typeString":"contract ISynclubStakeManager"}},"id":5982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1883:17:59","memberName":"convertSnBnbToBnb","nodeType":"MemberAccess","referencedDeclaration":3629,"src":"1869:31:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":5984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:42:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5980,"id":5985,"nodeType":"Return","src":"1862:49:59"}]},"documentation":{"id":5975,"nodeType":"StructuredDocumentation","src":"1659:118:59","text":" @notice Fetches the amount of BNB for 1 slisBNB\n @return amount The amount of BNB for slisBNB"},"functionSelector":"abb85613","id":5987,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1791:19:59","nodeType":"FunctionDefinition","overrides":{"id":5977,"nodeType":"OverrideSpecifier","overrides":[],"src":"1825:8:59"},"parameters":{"id":5976,"nodeType":"ParameterList","parameters":[],"src":"1810:2:59"},"returnParameters":{"id":5980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5987,"src":"1843:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5978,"name":"uint256","nodeType":"ElementaryTypeName","src":"1843:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1842:9:59"},"scope":5988,"src":"1782:136:59","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5989,"src":"515:1405:59","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1880:59"},"id":59},"contracts/oracles/StkBNBOracle.sol":{"ast":{"absolutePath":"contracts/oracles/StkBNBOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"IPStakePool":[3534],"StkBNBOracle":[6092],"ensureNonzeroAddress":[2165]},"id":6093,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5990,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:60"},{"absolutePath":"contracts/interfaces/IPStakePool.sol","file":"../interfaces/IPStakePool.sol","id":5992,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6093,"sourceUnit":3535,"src":"66:60:60","symbolAliases":[{"foreign":{"id":5991,"name":"IPStakePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"75:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5994,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6093,"sourceUnit":2181,"src":"127:98:60","symbolAliases":[{"foreign":{"id":5993,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"136:20:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":5996,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6093,"sourceUnit":2140,"src":"226:86:60","symbolAliases":[{"foreign":{"id":5995,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"235:9:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":5998,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6093,"sourceUnit":7138,"src":"313:75:60","symbolAliases":[{"foreign":{"id":5997,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"322:21:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6000,"name":"CorrelatedTokenOracle","nameLocations":["520:21:60"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"520:21:60"},"id":6001,"nodeType":"InheritanceSpecifier","src":"520:21:60"}],"canonicalName":"StkBNBOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":5999,"nodeType":"StructuredDocumentation","src":"390:104:60","text":" @title StkBNBOracle\n @author Venus\n @notice This oracle fetches the price of stkBNB asset"},"fullyImplemented":true,"id":6092,"linearizedBaseContracts":[6092,7137,3494,3666],"name":"StkBNBOracle","nameLocation":"504:12:60","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":6002,"nodeType":"StructuredDocumentation","src":"548:55:60","text":"@notice This is used as token address of BNB on BSC"},"functionSelector":"a9534f8a","id":6005,"mutability":"constant","name":"NATIVE_TOKEN_ADDR","nameLocation":"632:17:60","nodeType":"VariableDeclaration","scope":6092,"src":"608:86:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6003,"name":"address","nodeType":"ElementaryTypeName","src":"608:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307862426242424242626242424262626242626242626262624242624262626262426242626242426242","id":6004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"652:42:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"},"visibility":"public"},{"constant":false,"documentation":{"id":6006,"nodeType":"StructuredDocumentation","src":"701:32:60","text":"@notice Address of StakePool"},"functionSelector":"3a26dc4f","id":6009,"mutability":"immutable","name":"STAKE_POOL","nameLocation":"767:10:60","nodeType":"VariableDeclaration","scope":6092,"src":"738:39:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPStakePool_$3534","typeString":"contract IPStakePool"},"typeName":{"id":6008,"nodeType":"UserDefinedTypeName","pathNode":{"id":6007,"name":"IPStakePool","nameLocations":["738:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":3534,"src":"738:11:60"},"referencedDeclaration":3534,"src":"738:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPStakePool_$3534","typeString":"contract IPStakePool"}},"visibility":"public"},{"documentation":{"id":6010,"nodeType":"StructuredDocumentation","src":"784:51:60","text":"@notice Thrown if the pool token supply is zero"},"errorSelector":"e1b25e0c","id":6012,"name":"PoolTokenSupplyIsZero","nameLocation":"846:21:60","nodeType":"ErrorDefinition","parameters":{"id":6011,"nodeType":"ParameterList","parameters":[],"src":"867:2:60"},"src":"840:30:60"},{"body":{"id":6055,"nodeType":"Block","src":"1593:93:60","statements":[{"expression":{"arguments":[{"id":6046,"name":"stakePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6015,"src":"1624:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6045,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1603:20:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:31:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6048,"nodeType":"ExpressionStatement","src":"1603:31:60"},{"expression":{"id":6053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6049,"name":"STAKE_POOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"1644:10:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPStakePool_$3534","typeString":"contract IPStakePool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6051,"name":"stakePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6015,"src":"1669:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6050,"name":"IPStakePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"1657:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPStakePool_$3534_$","typeString":"type(contract IPStakePool)"}},"id":6052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1657:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPStakePool_$3534","typeString":"contract IPStakePool"}},"src":"1644:35:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPStakePool_$3534","typeString":"contract IPStakePool"}},"id":6054,"nodeType":"ExpressionStatement","src":"1644:35:60"}]},"documentation":{"id":6013,"nodeType":"StructuredDocumentation","src":"876:56:60","text":"@notice Constructor for the implementation contract."},"id":6056,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":6034,"name":"stkBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"1309:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6035,"name":"NATIVE_TOKEN_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"1329:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6036,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6019,"src":"1360:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6037,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"1389:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6038,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"1419:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6039,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"1450:30:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6040,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"1494:24:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6041,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6029,"src":"1532:20:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6042,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"1566:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6043,"kind":"baseConstructorSpecifier","modifierName":{"id":6033,"name":"CorrelatedTokenOracle","nameLocations":["1274:21:60"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1274:21:60"},"nodeType":"ModifierInvocation","src":"1274:314:60"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6015,"mutability":"mutable","name":"stakePool","nameLocation":"966:9:60","nodeType":"VariableDeclaration","scope":6056,"src":"958:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6014,"name":"address","nodeType":"ElementaryTypeName","src":"958:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6017,"mutability":"mutable","name":"stkBNB","nameLocation":"993:6:60","nodeType":"VariableDeclaration","scope":6056,"src":"985:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6016,"name":"address","nodeType":"ElementaryTypeName","src":"985:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6019,"mutability":"mutable","name":"resilientOracle","nameLocation":"1017:15:60","nodeType":"VariableDeclaration","scope":6056,"src":"1009:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6018,"name":"address","nodeType":"ElementaryTypeName","src":"1009:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6021,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"1050:16:60","nodeType":"VariableDeclaration","scope":6056,"src":"1042:24:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6020,"name":"uint256","nodeType":"ElementaryTypeName","src":"1042:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6023,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"1084:17:60","nodeType":"VariableDeclaration","scope":6056,"src":"1076:25:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6025,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"1119:30:60","nodeType":"VariableDeclaration","scope":6056,"src":"1111:38:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1111:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6027,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"1167:24:60","nodeType":"VariableDeclaration","scope":6056,"src":"1159:32:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6026,"name":"uint256","nodeType":"ElementaryTypeName","src":"1159:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6029,"mutability":"mutable","name":"accessControlManager","nameLocation":"1209:20:60","nodeType":"VariableDeclaration","scope":6056,"src":"1201:28:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6028,"name":"address","nodeType":"ElementaryTypeName","src":"1201:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6031,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1247:12:60","nodeType":"VariableDeclaration","scope":6056,"src":"1239:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6030,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"948:317:60"},"returnParameters":{"id":6044,"nodeType":"ParameterList","parameters":[],"src":"1593:0:60"},"scope":6092,"src":"937:749:60","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":6090,"nodeType":"Block","src":"1974:285:60","statements":[{"assignments":[6067],"declarations":[{"constant":false,"id":6067,"mutability":"mutable","name":"exchangeRateData","nameLocation":"2008:16:60","nodeType":"VariableDeclaration","scope":6090,"src":"1984:40:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_memory_ptr","typeString":"struct IPStakePool.Data"},"typeName":{"id":6066,"nodeType":"UserDefinedTypeName","pathNode":{"id":6065,"name":"IPStakePool.Data","nameLocations":["1984:11:60","1996:4:60"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"1984:16:60"},"referencedDeclaration":3526,"src":"1984:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_storage_ptr","typeString":"struct IPStakePool.Data"}},"visibility":"internal"}],"id":6071,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6068,"name":"STAKE_POOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"2027:10:60","typeDescriptions":{"typeIdentifier":"t_contract$_IPStakePool_$3534","typeString":"contract IPStakePool"}},"id":6069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2038:12:60","memberName":"exchangeRate","nodeType":"MemberAccess","referencedDeclaration":3533,"src":"2027:23:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_Data_$3526_memory_ptr_$","typeString":"function () view external returns (struct IPStakePool.Data memory)"}},"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:25:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_memory_ptr","typeString":"struct IPStakePool.Data memory"}},"nodeType":"VariableDeclarationStatement","src":"1984:68:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6072,"name":"exchangeRateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"2067:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_memory_ptr","typeString":"struct IPStakePool.Data memory"}},"id":6073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2084:15:60","memberName":"poolTokenSupply","nodeType":"MemberAccess","referencedDeclaration":3525,"src":"2067:32:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2103:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2067:37:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6080,"nodeType":"IfStatement","src":"2063:98:60","trueBody":{"id":6079,"nodeType":"Block","src":"2106:55:60","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6076,"name":"PoolTokenSupplyIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6012,"src":"2127:21:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2127:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6078,"nodeType":"RevertStatement","src":"2120:30:60"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6081,"name":"exchangeRateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"2179:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_memory_ptr","typeString":"struct IPStakePool.Data memory"}},"id":6082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2196:8:60","memberName":"totalWei","nodeType":"MemberAccess","referencedDeclaration":3523,"src":"2179:25:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6083,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"2207:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2179:37:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6085,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2178:39:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":6086,"name":"exchangeRateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"2220:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$3526_memory_ptr","typeString":"struct IPStakePool.Data memory"}},"id":6087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2237:15:60","memberName":"poolTokenSupply","nodeType":"MemberAccess","referencedDeclaration":3525,"src":"2220:32:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2178:74:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6062,"id":6089,"nodeType":"Return","src":"2171:81:60"}]},"documentation":{"id":6057,"nodeType":"StructuredDocumentation","src":"1692:207:60","text":" @notice Fetches the amount of BNB for 1 stkBNB\n @return price The amount of BNB for stkBNB\n @custom:error PoolTokenSupplyIsZero error is thrown if the pool token supply is zero"},"functionSelector":"abb85613","id":6091,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1913:19:60","nodeType":"FunctionDefinition","overrides":{"id":6059,"nodeType":"OverrideSpecifier","overrides":[],"src":"1947:8:60"},"parameters":{"id":6058,"nodeType":"ParameterList","parameters":[],"src":"1932:2:60"},"returnParameters":{"id":6062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6091,"src":"1965:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6060,"name":"uint256","nodeType":"ElementaryTypeName","src":"1965:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1964:9:60"},"scope":6092,"src":"1904:355:60","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":6093,"src":"495:1766:60","usedErrors":[2144,6012,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:2221:60"},"id":60},"contracts/oracles/WBETHOracle.sol":{"ast":{"absolutePath":"contracts/oracles/WBETHOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"IWBETH":[3643],"WBETHOracle":[6150]},"id":6151,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":6094,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:61"},{"absolutePath":"contracts/interfaces/IWBETH.sol","file":"../interfaces/IWBETH.sol","id":6096,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6151,"sourceUnit":3644,"src":"66:50:61","symbolAliases":[{"foreign":{"id":6095,"name":"IWBETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"75:6:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":6098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6151,"sourceUnit":7138,"src":"117:75:61","symbolAliases":[{"foreign":{"id":6097,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"126:21:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6100,"name":"CorrelatedTokenOracle","nameLocations":["321:21:61"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"321:21:61"},"id":6101,"nodeType":"InheritanceSpecifier","src":"321:21:61"}],"canonicalName":"WBETHOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":6099,"nodeType":"StructuredDocumentation","src":"194:102:61","text":" @title WBETHOracle\n @author Venus\n @notice This oracle fetches the price of wBETH asset"},"fullyImplemented":true,"id":6150,"linearizedBaseContracts":[6150,7137,3494,3666],"name":"WBETHOracle","nameLocation":"306:11:61","nodeType":"ContractDefinition","nodes":[{"body":{"id":6134,"nodeType":"Block","src":"1044:2:61","statements":[]},"documentation":{"id":6102,"nodeType":"StructuredDocumentation","src":"349:56:61","text":"@notice Constructor for the implementation contract."},"id":6135,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":6123,"name":"wbeth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"775:5:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6124,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6106,"src":"794:3:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6125,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"811:15:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6126,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6110,"src":"840:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6127,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6112,"src":"870:17:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6128,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"901:30:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6129,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6116,"src":"945:24:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6130,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6118,"src":"983:20:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6131,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"1017:12:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6132,"kind":"baseConstructorSpecifier","modifierName":{"id":6122,"name":"CorrelatedTokenOracle","nameLocations":["740:21:61"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"740:21:61"},"nodeType":"ModifierInvocation","src":"740:299:61"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6104,"mutability":"mutable","name":"wbeth","nameLocation":"439:5:61","nodeType":"VariableDeclaration","scope":6135,"src":"431:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6103,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6106,"mutability":"mutable","name":"eth","nameLocation":"462:3:61","nodeType":"VariableDeclaration","scope":6135,"src":"454:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6105,"name":"address","nodeType":"ElementaryTypeName","src":"454:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6108,"mutability":"mutable","name":"resilientOracle","nameLocation":"483:15:61","nodeType":"VariableDeclaration","scope":6135,"src":"475:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6107,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6110,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"516:16:61","nodeType":"VariableDeclaration","scope":6135,"src":"508:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6109,"name":"uint256","nodeType":"ElementaryTypeName","src":"508:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6112,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"550:17:61","nodeType":"VariableDeclaration","scope":6135,"src":"542:25:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6111,"name":"uint256","nodeType":"ElementaryTypeName","src":"542:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6114,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"585:30:61","nodeType":"VariableDeclaration","scope":6135,"src":"577:38:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6113,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6116,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"633:24:61","nodeType":"VariableDeclaration","scope":6135,"src":"625:32:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6115,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6118,"mutability":"mutable","name":"accessControlManager","nameLocation":"675:20:61","nodeType":"VariableDeclaration","scope":6135,"src":"667:28:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6117,"name":"address","nodeType":"ElementaryTypeName","src":"667:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6120,"mutability":"mutable","name":"_snapshotGap","nameLocation":"713:12:61","nodeType":"VariableDeclaration","scope":6135,"src":"705:20:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6119,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"421:310:61"},"returnParameters":{"id":6133,"nodeType":"ParameterList","parameters":[],"src":"1044:0:61"},"scope":6150,"src":"410:636:61","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":6148,"nodeType":"Block","src":"1241:63:61","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":6143,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"1265:16:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6142,"name":"IWBETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"1258:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWBETH_$3643_$","typeString":"type(contract IWBETH)"}},"id":6144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWBETH_$3643","typeString":"contract IWBETH"}},"id":6145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1283:12:61","memberName":"exchangeRate","nodeType":"MemberAccess","referencedDeclaration":3637,"src":"1258:37:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:39:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6141,"id":6147,"nodeType":"Return","src":"1251:46:61"}]},"documentation":{"id":6136,"nodeType":"StructuredDocumentation","src":"1052:114:61","text":" @notice Fetches the amount of ETH for 1 wBETH\n @return amount The amount of ETH for wBETH"},"functionSelector":"abb85613","id":6149,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1180:19:61","nodeType":"FunctionDefinition","overrides":{"id":6138,"nodeType":"OverrideSpecifier","overrides":[],"src":"1214:8:61"},"parameters":{"id":6137,"nodeType":"ParameterList","parameters":[],"src":"1199:2:61"},"returnParameters":{"id":6141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6149,"src":"1232:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6139,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1231:9:61"},"scope":6150,"src":"1171:133:61","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":6151,"src":"297:1009:61","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1266:61"},"id":61},"contracts/oracles/WeETHAccountantOracle.sol":{"ast":{"absolutePath":"contracts/oracles/WeETHAccountantOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"IAccountant":[3450],"WeETHAccountantOracle":[6224],"ensureNonzeroAddress":[2165]},"id":6225,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":6152,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:62"},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":6154,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6225,"sourceUnit":7138,"src":"66:75:62","symbolAliases":[{"foreign":{"id":6153,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"75:21:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAccountant.sol","file":"../interfaces/IAccountant.sol","id":6156,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6225,"sourceUnit":3451,"src":"142:60:62","symbolAliases":[{"foreign":{"id":6155,"name":"IAccountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3450,"src":"151:11:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":6158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6225,"sourceUnit":2181,"src":"203:98:62","symbolAliases":[{"foreign":{"id":6157,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"212:20:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6160,"name":"CorrelatedTokenOracle","nameLocations":["513:21:62"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"513:21:62"},"id":6161,"nodeType":"InheritanceSpecifier","src":"513:21:62"}],"canonicalName":"WeETHAccountantOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":6159,"nodeType":"StructuredDocumentation","src":"303:175:62","text":" @title WeETHAccountantOracle\n @author Venus\n @notice This oracle fetches the price of Ether.fi tokens based on an `Accountant` contract (i.e. weETHs and weETHk)"},"fullyImplemented":true,"id":6224,"linearizedBaseContracts":[6224,7137,3494,3666],"name":"WeETHAccountantOracle","nameLocation":"488:21:62","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":6162,"nodeType":"StructuredDocumentation","src":"541:33:62","text":"@notice Address of Accountant"},"functionSelector":"8b9d2940","id":6165,"mutability":"immutable","name":"ACCOUNTANT","nameLocation":"608:10:62","nodeType":"VariableDeclaration","scope":6224,"src":"579:39:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"},"typeName":{"id":6164,"nodeType":"UserDefinedTypeName","pathNode":{"id":6163,"name":"IAccountant","nameLocations":["579:11:62"],"nodeType":"IdentifierPath","referencedDeclaration":3450,"src":"579:11:62"},"referencedDeclaration":3450,"src":"579:11:62","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"visibility":"public"},{"body":{"id":6210,"nodeType":"Block","src":"1356:95:62","statements":[{"expression":{"arguments":[{"id":6201,"name":"accountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6168,"src":"1387:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6200,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1366:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:32:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6203,"nodeType":"ExpressionStatement","src":"1366:32:62"},{"expression":{"id":6208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6204,"name":"ACCOUNTANT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"1408:10:62","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6206,"name":"accountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6168,"src":"1433:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6205,"name":"IAccountant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3450,"src":"1421:11:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccountant_$3450_$","typeString":"type(contract IAccountant)"}},"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:23:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"src":"1408:36:62","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"id":6209,"nodeType":"ExpressionStatement","src":"1408:36:62"}]},"documentation":{"id":6166,"nodeType":"StructuredDocumentation","src":"625:56:62","text":"@notice Constructor for the implementation contract."},"id":6211,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":6189,"name":"weethLRT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6170,"src":"1083:8:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6190,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6172,"src":"1105:4:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6191,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6174,"src":"1123:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6192,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6176,"src":"1152:16:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6193,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6178,"src":"1182:17:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6194,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6180,"src":"1213:30:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6195,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"1257:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6196,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6184,"src":"1295:20:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6197,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6186,"src":"1329:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6198,"kind":"baseConstructorSpecifier","modifierName":{"id":6188,"name":"CorrelatedTokenOracle","nameLocations":["1048:21:62"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1048:21:62"},"nodeType":"ModifierInvocation","src":"1048:303:62"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6168,"mutability":"mutable","name":"accountant","nameLocation":"715:10:62","nodeType":"VariableDeclaration","scope":6211,"src":"707:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6167,"name":"address","nodeType":"ElementaryTypeName","src":"707:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6170,"mutability":"mutable","name":"weethLRT","nameLocation":"743:8:62","nodeType":"VariableDeclaration","scope":6211,"src":"735:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6169,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6172,"mutability":"mutable","name":"weth","nameLocation":"769:4:62","nodeType":"VariableDeclaration","scope":6211,"src":"761:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6171,"name":"address","nodeType":"ElementaryTypeName","src":"761:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6174,"mutability":"mutable","name":"resilientOracle","nameLocation":"791:15:62","nodeType":"VariableDeclaration","scope":6211,"src":"783:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6173,"name":"address","nodeType":"ElementaryTypeName","src":"783:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6176,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"824:16:62","nodeType":"VariableDeclaration","scope":6211,"src":"816:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6175,"name":"uint256","nodeType":"ElementaryTypeName","src":"816:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6178,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"858:17:62","nodeType":"VariableDeclaration","scope":6211,"src":"850:25:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6177,"name":"uint256","nodeType":"ElementaryTypeName","src":"850:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6180,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"893:30:62","nodeType":"VariableDeclaration","scope":6211,"src":"885:38:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6179,"name":"uint256","nodeType":"ElementaryTypeName","src":"885:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6182,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"941:24:62","nodeType":"VariableDeclaration","scope":6211,"src":"933:32:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6181,"name":"uint256","nodeType":"ElementaryTypeName","src":"933:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6184,"mutability":"mutable","name":"accessControlManager","nameLocation":"983:20:62","nodeType":"VariableDeclaration","scope":6211,"src":"975:28:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6183,"name":"address","nodeType":"ElementaryTypeName","src":"975:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6186,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1021:12:62","nodeType":"VariableDeclaration","scope":6211,"src":"1013:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"697:342:62"},"returnParameters":{"id":6199,"nodeType":"ParameterList","parameters":[],"src":"1356:0:62"},"scope":6224,"src":"686:765:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":6222,"nodeType":"Block","src":"1625:48:62","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6218,"name":"ACCOUNTANT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"1642:10:62","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountant_$3450","typeString":"contract IAccountant"}},"id":6219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1653:11:62","memberName":"getRateSafe","nodeType":"MemberAccess","referencedDeclaration":3449,"src":"1642:22:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1642:24:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6217,"id":6221,"nodeType":"Return","src":"1635:31:62"}]},"documentation":{"id":6212,"nodeType":"StructuredDocumentation","src":"1457:93:62","text":" @notice Gets the WETH for 1 weETH LRT\n @return amount Amount of WETH"},"functionSelector":"abb85613","id":6223,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1564:19:62","nodeType":"FunctionDefinition","overrides":{"id":6214,"nodeType":"OverrideSpecifier","overrides":[],"src":"1598:8:62"},"parameters":{"id":6213,"nodeType":"ParameterList","parameters":[],"src":"1583:2:62"},"returnParameters":{"id":6217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6223,"src":"1616:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6215,"name":"uint256","nodeType":"ElementaryTypeName","src":"1616:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1615:9:62"},"scope":6224,"src":"1555:118:62","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":6225,"src":"479:1196:62","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1635:62"},"id":62},"contracts/oracles/WeETHOracle.sol":{"ast":{"absolutePath":"contracts/oracles/WeETHOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"IEtherFiLiquidityPool":[3519],"WeETHOracle":[6301],"ensureNonzeroAddress":[2165]},"id":6302,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":6226,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:63"},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":6228,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6302,"sourceUnit":7138,"src":"66:75:63","symbolAliases":[{"foreign":{"id":6227,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"75:21:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IEtherFiLiquidityPool.sol","file":"../interfaces/IEtherFiLiquidityPool.sol","id":6230,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6302,"sourceUnit":3520,"src":"142:80:63","symbolAliases":[{"foreign":{"id":6229,"name":"IEtherFiLiquidityPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3519,"src":"151:21:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":6232,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6302,"sourceUnit":2140,"src":"223:86:63","symbolAliases":[{"foreign":{"id":6231,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"232:9:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":6234,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6302,"sourceUnit":2181,"src":"310:98:63","symbolAliases":[{"foreign":{"id":6233,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"319:20:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6236,"name":"CorrelatedTokenOracle","nameLocations":["531:21:63"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"531:21:63"},"id":6237,"nodeType":"InheritanceSpecifier","src":"531:21:63"}],"canonicalName":"WeETHOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":6235,"nodeType":"StructuredDocumentation","src":"410:96:63","text":" @title WeETHOracle\n @author Venus\n @notice This oracle fetches the price of weETH"},"fullyImplemented":true,"id":6301,"linearizedBaseContracts":[6301,7137,3494,3666],"name":"WeETHOracle","nameLocation":"516:11:63","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":6238,"nodeType":"StructuredDocumentation","src":"559:37:63","text":"@notice Address of Liqiudity pool"},"functionSelector":"2cca9dfd","id":6241,"mutability":"immutable","name":"LIQUIDITY_POOL","nameLocation":"640:14:63","nodeType":"VariableDeclaration","scope":6301,"src":"601:53:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEtherFiLiquidityPool_$3519","typeString":"contract IEtherFiLiquidityPool"},"typeName":{"id":6240,"nodeType":"UserDefinedTypeName","pathNode":{"id":6239,"name":"IEtherFiLiquidityPool","nameLocations":["601:21:63"],"nodeType":"IdentifierPath","referencedDeclaration":3519,"src":"601:21:63"},"referencedDeclaration":3519,"src":"601:21:63","typeDescriptions":{"typeIdentifier":"t_contract$_IEtherFiLiquidityPool_$3519","typeString":"contract IEtherFiLiquidityPool"}},"visibility":"public"},{"body":{"id":6286,"nodeType":"Block","src":"1389:115:63","statements":[{"expression":{"arguments":[{"id":6277,"name":"liquidityPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"1420:13:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6276,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1399:20:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6279,"nodeType":"ExpressionStatement","src":"1399:35:63"},{"expression":{"id":6284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6280,"name":"LIQUIDITY_POOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"1444:14:63","typeDescriptions":{"typeIdentifier":"t_contract$_IEtherFiLiquidityPool_$3519","typeString":"contract IEtherFiLiquidityPool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6282,"name":"liquidityPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"1483:13:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6281,"name":"IEtherFiLiquidityPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3519,"src":"1461:21:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEtherFiLiquidityPool_$3519_$","typeString":"type(contract IEtherFiLiquidityPool)"}},"id":6283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEtherFiLiquidityPool_$3519","typeString":"contract IEtherFiLiquidityPool"}},"src":"1444:53:63","typeDescriptions":{"typeIdentifier":"t_contract$_IEtherFiLiquidityPool_$3519","typeString":"contract IEtherFiLiquidityPool"}},"id":6285,"nodeType":"ExpressionStatement","src":"1444:53:63"}]},"documentation":{"id":6242,"nodeType":"StructuredDocumentation","src":"661:56:63","text":"@notice Constructor for the implementation contract."},"id":6287,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":6265,"name":"weETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6246,"src":"1119:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6266,"name":"eETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"1138:4:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6267,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6250,"src":"1156:15:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6268,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6252,"src":"1185:16:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6269,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6254,"src":"1215:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6270,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6256,"src":"1246:30:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6271,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6258,"src":"1290:24:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6272,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6260,"src":"1328:20:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6273,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"1362:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6274,"kind":"baseConstructorSpecifier","modifierName":{"id":6264,"name":"CorrelatedTokenOracle","nameLocations":["1084:21:63"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1084:21:63"},"nodeType":"ModifierInvocation","src":"1084:300:63"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6244,"mutability":"mutable","name":"liquidityPool","nameLocation":"751:13:63","nodeType":"VariableDeclaration","scope":6287,"src":"743:21:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6243,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6246,"mutability":"mutable","name":"weETH","nameLocation":"782:5:63","nodeType":"VariableDeclaration","scope":6287,"src":"774:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6245,"name":"address","nodeType":"ElementaryTypeName","src":"774:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6248,"mutability":"mutable","name":"eETH","nameLocation":"805:4:63","nodeType":"VariableDeclaration","scope":6287,"src":"797:12:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6247,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6250,"mutability":"mutable","name":"resilientOracle","nameLocation":"827:15:63","nodeType":"VariableDeclaration","scope":6287,"src":"819:23:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6249,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6252,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"860:16:63","nodeType":"VariableDeclaration","scope":6287,"src":"852:24:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6251,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6254,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"894:17:63","nodeType":"VariableDeclaration","scope":6287,"src":"886:25:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6253,"name":"uint256","nodeType":"ElementaryTypeName","src":"886:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6256,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"929:30:63","nodeType":"VariableDeclaration","scope":6287,"src":"921:38:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6255,"name":"uint256","nodeType":"ElementaryTypeName","src":"921:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6258,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"977:24:63","nodeType":"VariableDeclaration","scope":6287,"src":"969:32:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6257,"name":"uint256","nodeType":"ElementaryTypeName","src":"969:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6260,"mutability":"mutable","name":"accessControlManager","nameLocation":"1019:20:63","nodeType":"VariableDeclaration","scope":6287,"src":"1011:28:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6259,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6262,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1057:12:63","nodeType":"VariableDeclaration","scope":6287,"src":"1049:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6261,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"733:342:63"},"returnParameters":{"id":6275,"nodeType":"ParameterList","parameters":[],"src":"1389:0:63"},"scope":6301,"src":"722:782:63","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":6299,"nodeType":"Block","src":"1674:64:63","statements":[{"expression":{"arguments":[{"id":6296,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1721:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6294,"name":"LIQUIDITY_POOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"1691:14:63","typeDescriptions":{"typeIdentifier":"t_contract$_IEtherFiLiquidityPool_$3519","typeString":"contract IEtherFiLiquidityPool"}},"id":6295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1706:14:63","memberName":"amountForShare","nodeType":"MemberAccess","referencedDeclaration":3518,"src":"1691:29:63","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1691:40:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6293,"id":6298,"nodeType":"Return","src":"1684:47:63"}]},"documentation":{"id":6288,"nodeType":"StructuredDocumentation","src":"1510:89:63","text":" @notice Gets the eETH for 1 weETH\n @return amount Amount of eETH"},"functionSelector":"abb85613","id":6300,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1613:19:63","nodeType":"FunctionDefinition","overrides":{"id":6290,"nodeType":"OverrideSpecifier","overrides":[],"src":"1647:8:63"},"parameters":{"id":6289,"nodeType":"ParameterList","parameters":[],"src":"1632:2:63"},"returnParameters":{"id":6293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6300,"src":"1665:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6291,"name":"uint256","nodeType":"ElementaryTypeName","src":"1665:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1664:9:63"},"scope":6301,"src":"1604:134:63","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":6302,"src":"507:1233:63","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1700:63"},"id":63},"contracts/oracles/WstETHOracle.sol":{"ast":{"absolutePath":"contracts/oracles/WstETHOracle.sol","exportedSymbols":{"EXP_SCALE":[2131],"IStETH":[3610],"OracleInterface":[3666],"WstETHOracle":[6431],"ensureNonzeroAddress":[2165]},"id":6432,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":6303,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:64"},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":6305,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6432,"sourceUnit":3699,"src":"66:68:64","symbolAliases":[{"foreign":{"id":6304,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"75:15:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IStETH.sol","file":"../interfaces/IStETH.sol","id":6307,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6432,"sourceUnit":3611,"src":"135:50:64","symbolAliases":[{"foreign":{"id":6306,"name":"IStETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3610,"src":"144:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":6309,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6432,"sourceUnit":2181,"src":"186:98:64","symbolAliases":[{"foreign":{"id":6308,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"195:20:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":6311,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6432,"sourceUnit":2140,"src":"285:86:64","symbolAliases":[{"foreign":{"id":6310,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"294:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6313,"name":"OracleInterface","nameLocations":["639:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"639:15:64"},"id":6314,"nodeType":"InheritanceSpecifier","src":"639:15:64"}],"canonicalName":"WstETHOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":6312,"nodeType":"StructuredDocumentation","src":"373:240:64","text":" @title WstETHOracle\n @author Venus\n @notice Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH\n         or the price of stETH/USD (secondary market price) is obtained from the oracle."},"fullyImplemented":true,"id":6431,"linearizedBaseContracts":[6431,3666],"name":"WstETHOracle","nameLocation":"623:12:64","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":6315,"nodeType":"StructuredDocumentation","src":"661:133:64","text":"@notice A flag assuming 1:1 price equivalence between stETH/ETH\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"ed0142b7","id":6317,"mutability":"immutable","name":"ASSUME_STETH_ETH_EQUIVALENCE","nameLocation":"821:28:64","nodeType":"VariableDeclaration","scope":6431,"src":"799:50:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6316,"name":"bool","nodeType":"ElementaryTypeName","src":"799:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"documentation":{"id":6318,"nodeType":"StructuredDocumentation","src":"856:94:64","text":"@notice Address of stETH\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"e00bfe50","id":6321,"mutability":"immutable","name":"STETH","nameLocation":"979:5:64","nodeType":"VariableDeclaration","scope":6431,"src":"955:29:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"},"typeName":{"id":6320,"nodeType":"UserDefinedTypeName","pathNode":{"id":6319,"name":"IStETH","nameLocations":["955:6:64"],"nodeType":"IdentifierPath","referencedDeclaration":3610,"src":"955:6:64"},"referencedDeclaration":3610,"src":"955:6:64","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"visibility":"public"},{"constant":false,"documentation":{"id":6322,"nodeType":"StructuredDocumentation","src":"991:95:64","text":"@notice Address of wstETH\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"36e6372f","id":6324,"mutability":"immutable","name":"WSTETH_ADDRESS","nameLocation":"1116:14:64","nodeType":"VariableDeclaration","scope":6431,"src":"1091:39:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6323,"name":"address","nodeType":"ElementaryTypeName","src":"1091:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":6325,"nodeType":"StructuredDocumentation","src":"1137:93:64","text":"@notice Address of WETH\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"040141e5","id":6327,"mutability":"immutable","name":"WETH_ADDRESS","nameLocation":"1260:12:64","nodeType":"VariableDeclaration","scope":6431,"src":"1235:37:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6326,"name":"address","nodeType":"ElementaryTypeName","src":"1235:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":6328,"nodeType":"StructuredDocumentation","src":"1279:105:64","text":"@notice Address of Resilient Oracle\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"a4edcd4c","id":6331,"mutability":"immutable","name":"RESILIENT_ORACLE","nameLocation":"1422:16:64","nodeType":"VariableDeclaration","scope":6431,"src":"1389:49:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"},"typeName":{"id":6330,"nodeType":"UserDefinedTypeName","pathNode":{"id":6329,"name":"OracleInterface","nameLocations":["1389:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"1389:15:64"},"referencedDeclaration":3666,"src":"1389:15:64","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"visibility":"public"},{"body":{"id":6385,"nodeType":"Block","src":"1739:433:64","statements":[{"expression":{"arguments":[{"id":6346,"name":"wstETHAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6334,"src":"1770:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6345,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1749:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1749:35:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6348,"nodeType":"ExpressionStatement","src":"1749:35:64"},{"expression":{"arguments":[{"id":6350,"name":"wETHAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"1815:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6349,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1794:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1794:33:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6352,"nodeType":"ExpressionStatement","src":"1794:33:64"},{"expression":{"arguments":[{"id":6354,"name":"stETHAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"1858:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6353,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1837:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6356,"nodeType":"ExpressionStatement","src":"1837:34:64"},{"expression":{"arguments":[{"id":6358,"name":"resilientOracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6340,"src":"1902:22:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6357,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1881:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1881:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6360,"nodeType":"ExpressionStatement","src":"1881:44:64"},{"expression":{"id":6363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6361,"name":"WSTETH_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"1935:14:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6362,"name":"wstETHAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6334,"src":"1952:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1935:30:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6364,"nodeType":"ExpressionStatement","src":"1935:30:64"},{"expression":{"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6365,"name":"WETH_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6327,"src":"1975:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6366,"name":"wETHAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"1990:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1975:26:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6368,"nodeType":"ExpressionStatement","src":"1975:26:64"},{"expression":{"id":6373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6369,"name":"STETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"2011:5:64","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6371,"name":"stETHAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"2026:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6370,"name":"IStETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3610,"src":"2019:6:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStETH_$3610_$","typeString":"type(contract IStETH)"}},"id":6372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"src":"2011:28:64","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"id":6374,"nodeType":"ExpressionStatement","src":"2011:28:64"},{"expression":{"id":6379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6375,"name":"RESILIENT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6331,"src":"2049:16:64","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6377,"name":"resilientOracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6340,"src":"2084:22:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6376,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"2068:15:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OracleInterface_$3666_$","typeString":"type(contract OracleInterface)"}},"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2068:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"src":"2049:58:64","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":6380,"nodeType":"ExpressionStatement","src":"2049:58:64"},{"expression":{"id":6383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6381,"name":"ASSUME_STETH_ETH_EQUIVALENCE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6317,"src":"2117:28:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6382,"name":"assumeEquivalence","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6342,"src":"2148:17:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2117:48:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6384,"nodeType":"ExpressionStatement","src":"2117:48:64"}]},"documentation":{"id":6332,"nodeType":"StructuredDocumentation","src":"1445:109:64","text":"@notice Constructor for the implementation contract.\n @custom:oz-upgrades-unsafe-allow constructor"},"id":6386,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6334,"mutability":"mutable","name":"wstETHAddress","nameLocation":"1588:13:64","nodeType":"VariableDeclaration","scope":6386,"src":"1580:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6333,"name":"address","nodeType":"ElementaryTypeName","src":"1580:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6336,"mutability":"mutable","name":"wETHAddress","nameLocation":"1619:11:64","nodeType":"VariableDeclaration","scope":6386,"src":"1611:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6335,"name":"address","nodeType":"ElementaryTypeName","src":"1611:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6338,"mutability":"mutable","name":"stETHAddress","nameLocation":"1648:12:64","nodeType":"VariableDeclaration","scope":6386,"src":"1640:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6337,"name":"address","nodeType":"ElementaryTypeName","src":"1640:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6340,"mutability":"mutable","name":"resilientOracleAddress","nameLocation":"1678:22:64","nodeType":"VariableDeclaration","scope":6386,"src":"1670:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6339,"name":"address","nodeType":"ElementaryTypeName","src":"1670:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6342,"mutability":"mutable","name":"assumeEquivalence","nameLocation":"1715:17:64","nodeType":"VariableDeclaration","scope":6386,"src":"1710:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6341,"name":"bool","nodeType":"ElementaryTypeName","src":"1710:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1570:168:64"},"returnParameters":{"id":6344,"nodeType":"ParameterList","parameters":[],"src":"1739:0:64"},"scope":6431,"src":"1559:613:64","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3665],"body":{"id":6429,"nodeType":"Block","src":"2589:516:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6394,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6389,"src":"2603:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6395,"name":"WSTETH_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"2612:14:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2603:23:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6401,"nodeType":"IfStatement","src":"2599:59:64","trueBody":{"expression":{"arguments":[{"hexValue":"77726f6e67207773744554482061646472657373","id":6398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2635:22:64","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f","typeString":"literal_string \"wrong wstETH address\""},"value":"wrong wstETH address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f","typeString":"literal_string \"wrong wstETH address\""}],"id":6397,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2628:6:64","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2628:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6400,"nodeType":"ExpressionStatement","src":"2628:30:64"}},{"assignments":[6403],"declarations":[{"constant":false,"id":6403,"mutability":"mutable","name":"stETHAmount","nameLocation":"2733:11:64","nodeType":"VariableDeclaration","scope":6429,"src":"2725:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6402,"name":"uint256","nodeType":"ElementaryTypeName","src":"2725:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6408,"initialValue":{"arguments":[{"hexValue":"31","id":6406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2774:7:64","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"expression":{"id":6404,"name":"STETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"2747:5:64","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"id":6405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2753:20:64","memberName":"getPooledEthByShares","nodeType":"MemberAccess","referencedDeclaration":3604,"src":"2747:26:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:35:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2725:57:64"},{"assignments":[6410],"declarations":[{"constant":false,"id":6410,"mutability":"mutable","name":"stETHUSDPrice","nameLocation":"2875:13:64","nodeType":"VariableDeclaration","scope":6429,"src":"2867:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6409,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6421,"initialValue":{"arguments":[{"condition":{"id":6413,"name":"ASSUME_STETH_ETH_EQUIVALENCE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6317,"src":"2917:28:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":6417,"name":"STETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"2971:5:64","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}],"id":6416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2963:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6415,"name":"address","nodeType":"ElementaryTypeName","src":"2963:7:64","typeDescriptions":{}}},"id":6418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2917:60:64","trueExpression":{"id":6414,"name":"WETH_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6327,"src":"2948:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6411,"name":"RESILIENT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6331,"src":"2891:16:64","typeDescriptions":{"typeIdentifier":"t_contract$_OracleInterface_$3666","typeString":"contract OracleInterface"}},"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2908:8:64","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"2891:25:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2891:87:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:111:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6422,"name":"stETHAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6403,"src":"3058:11:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6423,"name":"stETHUSDPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6410,"src":"3072:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3058:27:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3057:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6426,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"3089:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3057:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6393,"id":6428,"nodeType":"Return","src":"3050:48:64"}]},"documentation":{"id":6387,"nodeType":"StructuredDocumentation","src":"2178:343:64","text":" @notice Gets the USD price of wstETH asset\n @dev Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH\n      or the price of stETH/USD (secondary market price) is obtained from the oracle\n @param asset Address of wstETH\n @return wstETH Price in USD scaled by 1e18"},"functionSelector":"41976e09","id":6430,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"2535:8:64","nodeType":"FunctionDefinition","parameters":{"id":6390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6389,"mutability":"mutable","name":"asset","nameLocation":"2552:5:64","nodeType":"VariableDeclaration","scope":6430,"src":"2544:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6388,"name":"address","nodeType":"ElementaryTypeName","src":"2544:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2543:15:64"},"returnParameters":{"id":6393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6430,"src":"2580:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6391,"name":"uint256","nodeType":"ElementaryTypeName","src":"2580:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2579:9:64"},"scope":6431,"src":"2526:579:64","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":6432,"src":"614:2493:64","usedErrors":[2144],"usedEvents":[]}],"src":"41:3067:64"},"id":64},"contracts/oracles/WstETHOracleV2.sol":{"ast":{"absolutePath":"contracts/oracles/WstETHOracleV2.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"EXP_SCALE":[2131],"IStETH":[3610],"WstETHOracleV2":[6508],"ensureNonzeroAddress":[2165]},"id":6509,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":6433,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:65"},{"absolutePath":"contracts/interfaces/IStETH.sol","file":"../interfaces/IStETH.sol","id":6435,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6509,"sourceUnit":3611,"src":"66:50:65","symbolAliases":[{"foreign":{"id":6434,"name":"IStETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3610,"src":"75:6:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":6437,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6509,"sourceUnit":7138,"src":"117:75:65","symbolAliases":[{"foreign":{"id":6436,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"126:21:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":6439,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6509,"sourceUnit":2140,"src":"193:86:65","symbolAliases":[{"foreign":{"id":6438,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"202:9:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":6441,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6509,"sourceUnit":2181,"src":"280:98:65","symbolAliases":[{"foreign":{"id":6440,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"289:20:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6443,"name":"CorrelatedTokenOracle","nameLocations":["508:21:65"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"508:21:65"},"id":6444,"nodeType":"InheritanceSpecifier","src":"508:21:65"}],"canonicalName":"WstETHOracleV2","contractDependencies":[],"contractKind":"contract","documentation":{"id":6442,"nodeType":"StructuredDocumentation","src":"380:100:65","text":" @title WstETHOracleV2\n @author Venus\n @notice This oracle fetches the price of wstETH"},"fullyImplemented":true,"id":6508,"linearizedBaseContracts":[6508,7137,3494,3666],"name":"WstETHOracleV2","nameLocation":"490:14:65","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":6445,"nodeType":"StructuredDocumentation","src":"536:28:65","text":"@notice Address of stETH"},"functionSelector":"e00bfe50","id":6448,"mutability":"immutable","name":"STETH","nameLocation":"593:5:65","nodeType":"VariableDeclaration","scope":6508,"src":"569:29:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"},"typeName":{"id":6447,"nodeType":"UserDefinedTypeName","pathNode":{"id":6446,"name":"IStETH","nameLocations":["569:6:65"],"nodeType":"IdentifierPath","referencedDeclaration":3610,"src":"569:6:65"},"referencedDeclaration":3610,"src":"569:6:65","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"visibility":"public"},{"body":{"id":6493,"nodeType":"Block","src":"1510:75:65","statements":[{"expression":{"arguments":[{"id":6484,"name":"stETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6451,"src":"1541:5:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6483,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"1520:20:65","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:27:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6486,"nodeType":"ExpressionStatement","src":"1520:27:65"},{"expression":{"id":6491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6487,"name":"STETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6448,"src":"1557:5:65","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6489,"name":"stETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6451,"src":"1572:5:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6488,"name":"IStETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3610,"src":"1565:6:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStETH_$3610_$","typeString":"type(contract IStETH)"}},"id":6490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1565:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"src":"1557:21:65","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"id":6492,"nodeType":"ExpressionStatement","src":"1557:21:65"}]},"documentation":{"id":6449,"nodeType":"StructuredDocumentation","src":"605:217:65","text":"@notice Constructor for the implementation contract.\n @dev The underlyingToken must be correlated so that 1 underlyingToken is equal to 1 stETH, because\n getUnderlyingAmount() implicitly assumes that"},"id":6494,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":6472,"name":"wstETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"1228:6:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6473,"name":"underlyingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6455,"src":"1248:15:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6474,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6457,"src":"1277:15:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6475,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6459,"src":"1306:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6476,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6461,"src":"1336:17:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6477,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6463,"src":"1367:30:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6478,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6465,"src":"1411:24:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6479,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"1449:20:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6480,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6469,"src":"1483:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6481,"kind":"baseConstructorSpecifier","modifierName":{"id":6471,"name":"CorrelatedTokenOracle","nameLocations":["1193:21:65"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"1193:21:65"},"nodeType":"ModifierInvocation","src":"1193:312:65"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6451,"mutability":"mutable","name":"stETH","nameLocation":"856:5:65","nodeType":"VariableDeclaration","scope":6494,"src":"848:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6450,"name":"address","nodeType":"ElementaryTypeName","src":"848:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6453,"mutability":"mutable","name":"wstETH","nameLocation":"879:6:65","nodeType":"VariableDeclaration","scope":6494,"src":"871:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6452,"name":"address","nodeType":"ElementaryTypeName","src":"871:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6455,"mutability":"mutable","name":"underlyingToken","nameLocation":"903:15:65","nodeType":"VariableDeclaration","scope":6494,"src":"895:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6454,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6457,"mutability":"mutable","name":"resilientOracle","nameLocation":"936:15:65","nodeType":"VariableDeclaration","scope":6494,"src":"928:23:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6456,"name":"address","nodeType":"ElementaryTypeName","src":"928:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6459,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"969:16:65","nodeType":"VariableDeclaration","scope":6494,"src":"961:24:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6458,"name":"uint256","nodeType":"ElementaryTypeName","src":"961:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6461,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"1003:17:65","nodeType":"VariableDeclaration","scope":6494,"src":"995:25:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6460,"name":"uint256","nodeType":"ElementaryTypeName","src":"995:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6463,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"1038:30:65","nodeType":"VariableDeclaration","scope":6494,"src":"1030:38:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1030:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6465,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"1086:24:65","nodeType":"VariableDeclaration","scope":6494,"src":"1078:32:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6464,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6467,"mutability":"mutable","name":"accessControlManager","nameLocation":"1128:20:65","nodeType":"VariableDeclaration","scope":6494,"src":"1120:28:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6466,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6469,"mutability":"mutable","name":"_snapshotGap","nameLocation":"1166:12:65","nodeType":"VariableDeclaration","scope":6494,"src":"1158:20:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6468,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"838:346:65"},"returnParameters":{"id":6482,"nodeType":"ParameterList","parameters":[],"src":"1510:0:65"},"scope":6508,"src":"827:758:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":6506,"nodeType":"Block","src":"1846:61:65","statements":[{"expression":{"arguments":[{"id":6503,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1890:9:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6501,"name":"STETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6448,"src":"1863:5:65","typeDescriptions":{"typeIdentifier":"t_contract$_IStETH_$3610","typeString":"contract IStETH"}},"id":6502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1869:20:65","memberName":"getPooledEthByShares","nodeType":"MemberAccess","referencedDeclaration":3604,"src":"1863:26:65","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":6504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:37:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6500,"id":6505,"nodeType":"Return","src":"1856:44:65"}]},"documentation":{"id":6495,"nodeType":"StructuredDocumentation","src":"1591:180:65","text":" @notice Gets the amount of underlyingToken for 1 wstETH, assuming that 1 underlyingToken is equivalent to 1 stETH\n @return amount Amount of underlyingToken"},"functionSelector":"abb85613","id":6507,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1785:19:65","nodeType":"FunctionDefinition","overrides":{"id":6497,"nodeType":"OverrideSpecifier","overrides":[],"src":"1819:8:65"},"parameters":{"id":6496,"nodeType":"ParameterList","parameters":[],"src":"1804:2:65"},"returnParameters":{"id":6500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6507,"src":"1837:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6498,"name":"uint256","nodeType":"ElementaryTypeName","src":"1837:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1836:9:65"},"scope":6508,"src":"1776:131:65","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":6509,"src":"481:1428:65","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1869:65"},"id":65},"contracts/oracles/ZkETHOracle.sol":{"ast":{"absolutePath":"contracts/oracles/ZkETHOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"IZkETH":[3656],"ZkETHOracle":[6566]},"id":6567,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":6510,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:66"},{"absolutePath":"contracts/interfaces/IZkETH.sol","file":"../interfaces/IZkETH.sol","id":6512,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6567,"sourceUnit":3657,"src":"66:50:66","symbolAliases":[{"foreign":{"id":6511,"name":"IZkETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3656,"src":"75:6:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"./common/CorrelatedTokenOracle.sol","id":6514,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6567,"sourceUnit":7138,"src":"117:75:66","symbolAliases":[{"foreign":{"id":6513,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"126:21:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6516,"name":"CorrelatedTokenOracle","nameLocations":["315:21:66"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"315:21:66"},"id":6517,"nodeType":"InheritanceSpecifier","src":"315:21:66"}],"canonicalName":"ZkETHOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":6515,"nodeType":"StructuredDocumentation","src":"194:96:66","text":" @title ZkETHOracle\n @author Venus\n @notice This oracle fetches the price of zkETH"},"fullyImplemented":true,"id":6566,"linearizedBaseContracts":[6566,7137,3494,3666],"name":"ZkETHOracle","nameLocation":"300:11:66","nodeType":"ContractDefinition","nodes":[{"body":{"id":6550,"nodeType":"Block","src":"1044:2:66","statements":[]},"documentation":{"id":6518,"nodeType":"StructuredDocumentation","src":"343:56:66","text":"@notice Constructor for the implementation contract."},"id":6551,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":6539,"name":"zkETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6520,"src":"772:5:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6540,"name":"rzkETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6522,"src":"791:6:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6541,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6524,"src":"811:15:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6542,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"840:16:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6543,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6528,"src":"870:17:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6544,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6530,"src":"901:30:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6545,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6532,"src":"945:24:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6546,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"983:20:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6547,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6536,"src":"1017:12:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6548,"kind":"baseConstructorSpecifier","modifierName":{"id":6538,"name":"CorrelatedTokenOracle","nameLocations":["737:21:66"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"737:21:66"},"nodeType":"ModifierInvocation","src":"737:302:66"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6520,"mutability":"mutable","name":"zkETH","nameLocation":"433:5:66","nodeType":"VariableDeclaration","scope":6551,"src":"425:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6519,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6522,"mutability":"mutable","name":"rzkETH","nameLocation":"456:6:66","nodeType":"VariableDeclaration","scope":6551,"src":"448:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6521,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6524,"mutability":"mutable","name":"resilientOracle","nameLocation":"480:15:66","nodeType":"VariableDeclaration","scope":6551,"src":"472:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6523,"name":"address","nodeType":"ElementaryTypeName","src":"472:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6526,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"513:16:66","nodeType":"VariableDeclaration","scope":6551,"src":"505:24:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6525,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6528,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"547:17:66","nodeType":"VariableDeclaration","scope":6551,"src":"539:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6527,"name":"uint256","nodeType":"ElementaryTypeName","src":"539:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6530,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"582:30:66","nodeType":"VariableDeclaration","scope":6551,"src":"574:38:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6529,"name":"uint256","nodeType":"ElementaryTypeName","src":"574:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6532,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"630:24:66","nodeType":"VariableDeclaration","scope":6551,"src":"622:32:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6531,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6534,"mutability":"mutable","name":"accessControlManager","nameLocation":"672:20:66","nodeType":"VariableDeclaration","scope":6551,"src":"664:28:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6533,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6536,"mutability":"mutable","name":"_snapshotGap","nameLocation":"710:12:66","nodeType":"VariableDeclaration","scope":6551,"src":"702:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6535,"name":"uint256","nodeType":"ElementaryTypeName","src":"702:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"415:313:66"},"returnParameters":{"id":6549,"nodeType":"ParameterList","parameters":[],"src":"1044:0:66"},"scope":6566,"src":"404:642:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7067],"body":{"id":6564,"nodeType":"Block","src":"1230:62:66","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":6559,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"1254:16:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6558,"name":"IZkETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3656,"src":"1247:6:66","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IZkETH_$3656_$","typeString":"type(contract IZkETH)"}},"id":6560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1247:24:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IZkETH_$3656","typeString":"contract IZkETH"}},"id":6561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1272:11:66","memberName":"LSTPerToken","nodeType":"MemberAccess","referencedDeclaration":3650,"src":"1247:36:66","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1247:38:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6557,"id":6563,"nodeType":"Return","src":"1240:45:66"}]},"documentation":{"id":6552,"nodeType":"StructuredDocumentation","src":"1052:103:66","text":" @notice Gets the amount of rzkETH for 1 zkETH\n @return amount Amount of rzkETH"},"functionSelector":"abb85613","id":6565,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1169:19:66","nodeType":"FunctionDefinition","overrides":{"id":6554,"nodeType":"OverrideSpecifier","overrides":[],"src":"1203:8:66"},"parameters":{"id":6553,"nodeType":"ParameterList","parameters":[],"src":"1188:2:66"},"returnParameters":{"id":6557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6565,"src":"1221:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6555,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:9:66"},"scope":6566,"src":"1160:132:66","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":6567,"src":"291:1003:66","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1254:66"},"id":66},"contracts/oracles/common/CorrelatedTokenOracle.sol":{"ast":{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"IAccessControlManagerV8":[2125],"ICappedOracle":[3494],"IERC20Metadata":[1896],"OracleInterface":[3666],"ResilientOracleInterface":[3686],"SECONDS_PER_YEAR":[2139],"ensureNonzeroAddress":[2165]},"id":7138,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":6568,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:67"},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../../interfaces/OracleInterface.sol","id":6571,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7138,"sourceUnit":3699,"src":"66:97:67","symbolAliases":[{"foreign":{"id":6569,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"75:15:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":6570,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"92:24:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":6573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7138,"sourceUnit":2181,"src":"164:98:67","symbolAliases":[{"foreign":{"id":6572,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"173:20:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"@venusprotocol/solidity-utilities/contracts/constants.sol","id":6575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7138,"sourceUnit":2140,"src":"263:93:67","symbolAliases":[{"foreign":{"id":6574,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"272:16:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":6577,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7138,"sourceUnit":1897,"src":"357:99:67","symbolAliases":[{"foreign":{"id":6576,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"366:14:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICappedOracle.sol","file":"../../interfaces/ICappedOracle.sol","id":6579,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7138,"sourceUnit":3495,"src":"457:67:67","symbolAliases":[{"foreign":{"id":6578,"name":"ICappedOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3494,"src":"466:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","id":6581,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7138,"sourceUnit":2126,"src":"525:127:67","symbolAliases":[{"foreign":{"id":6580,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2125,"src":"534:23:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6583,"name":"OracleInterface","nameLocations":["826:15:67"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"826:15:67"},"id":6584,"nodeType":"InheritanceSpecifier","src":"826:15:67"},{"baseName":{"id":6585,"name":"ICappedOracle","nameLocations":["843:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":3494,"src":"843:13:67"},"id":6586,"nodeType":"InheritanceSpecifier","src":"843:13:67"}],"canonicalName":"CorrelatedTokenOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":6582,"nodeType":"StructuredDocumentation","src":"654:128:67","text":" @title CorrelatedTokenOracle\n @notice This oracle fetches the price of a token that is correlated to another token."},"fullyImplemented":false,"id":7137,"linearizedBaseContracts":[7137,3494,3666],"name":"CorrelatedTokenOracle","nameLocation":"801:21:67","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":6587,"nodeType":"StructuredDocumentation","src":"863:43:67","text":"@notice Address of the correlated token"},"functionSelector":"69818a35","id":6589,"mutability":"immutable","name":"CORRELATED_TOKEN","nameLocation":"936:16:67","nodeType":"VariableDeclaration","scope":7137,"src":"911:41:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6588,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":6590,"nodeType":"StructuredDocumentation","src":"959:43:67","text":"@notice Address of the underlying token"},"functionSelector":"29db1be6","id":6592,"mutability":"immutable","name":"UNDERLYING_TOKEN","nameLocation":"1032:16:67","nodeType":"VariableDeclaration","scope":7137,"src":"1007:41:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6591,"name":"address","nodeType":"ElementaryTypeName","src":"1007:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":6593,"nodeType":"StructuredDocumentation","src":"1055:39:67","text":"@notice Address of Resilient Oracle"},"functionSelector":"a4edcd4c","id":6596,"mutability":"immutable","name":"RESILIENT_ORACLE","nameLocation":"1141:16:67","nodeType":"VariableDeclaration","scope":7137,"src":"1099:58:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"},"typeName":{"id":6595,"nodeType":"UserDefinedTypeName","pathNode":{"id":6594,"name":"ResilientOracleInterface","nameLocations":["1099:24:67"],"nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"1099:24:67"},"referencedDeclaration":3686,"src":"1099:24:67","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"visibility":"public"},{"constant":false,"documentation":{"id":6597,"nodeType":"StructuredDocumentation","src":"1164:56:67","text":"@notice Address of the AccessControlManager contract"},"functionSelector":"45be2dc7","id":6600,"mutability":"immutable","name":"ACCESS_CONTROL_MANAGER","nameLocation":"1266:22:67","nodeType":"VariableDeclaration","scope":7137,"src":"1225:63:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":6599,"nodeType":"UserDefinedTypeName","pathNode":{"id":6598,"name":"IAccessControlManagerV8","nameLocations":["1225:23:67"],"nodeType":"IdentifierPath","referencedDeclaration":2125,"src":"1225:23:67"},"referencedDeclaration":2125,"src":"1225:23:67","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"visibility":"public"},{"constant":false,"functionSelector":"ac5a693e","id":6602,"mutability":"mutable","name":"growthRatePerSecond","nameLocation":"1379:19:67","nodeType":"VariableDeclaration","scope":7137,"src":"1364:34:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1364:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":6603,"nodeType":"StructuredDocumentation","src":"1405:36:67","text":"@notice Snapshot update interval"},"functionSelector":"07d0413c","id":6605,"mutability":"mutable","name":"snapshotInterval","nameLocation":"1461:16:67","nodeType":"VariableDeclaration","scope":7137,"src":"1446:31:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6604,"name":"uint256","nodeType":"ElementaryTypeName","src":"1446:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":6606,"nodeType":"StructuredDocumentation","src":"1484:54:67","text":"@notice Last stored snapshot maximum exchange rate"},"functionSelector":"596efe6f","id":6608,"mutability":"mutable","name":"snapshotMaxExchangeRate","nameLocation":"1558:23:67","nodeType":"VariableDeclaration","scope":7137,"src":"1543:38:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6607,"name":"uint256","nodeType":"ElementaryTypeName","src":"1543:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":6609,"nodeType":"StructuredDocumentation","src":"1588:42:67","text":"@notice Last stored snapshot timestamp"},"functionSelector":"9c43eb54","id":6611,"mutability":"mutable","name":"snapshotTimestamp","nameLocation":"1650:17:67","nodeType":"VariableDeclaration","scope":7137,"src":"1635:32:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6610,"name":"uint256","nodeType":"ElementaryTypeName","src":"1635:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":6612,"nodeType":"StructuredDocumentation","src":"1674:49:67","text":"@notice Gap to add when updating the snapshot"},"functionSelector":"4169d245","id":6614,"mutability":"mutable","name":"snapshotGap","nameLocation":"1743:11:67","nodeType":"VariableDeclaration","scope":7137,"src":"1728:26:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6613,"name":"uint256","nodeType":"ElementaryTypeName","src":"1728:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":6615,"nodeType":"StructuredDocumentation","src":"1761:48:67","text":"@notice Emitted when the snapshot is updated"},"eventSelector":"2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d","id":6621,"name":"SnapshotUpdated","nameLocation":"1820:15:67","nodeType":"EventDefinition","parameters":{"id":6620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6617,"indexed":true,"mutability":"mutable","name":"maxExchangeRate","nameLocation":"1852:15:67","nodeType":"VariableDeclaration","scope":6621,"src":"1836:31:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6616,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6619,"indexed":true,"mutability":"mutable","name":"timestamp","nameLocation":"1885:9:67","nodeType":"VariableDeclaration","scope":6621,"src":"1869:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1835:60:67"},"src":"1814:82:67"},{"anonymous":false,"documentation":{"id":6622,"nodeType":"StructuredDocumentation","src":"1902:51:67","text":"@notice Emitted when the growth rate is updated"},"eventSelector":"a65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608","id":6632,"name":"GrowthRateUpdated","nameLocation":"1964:17:67","nodeType":"EventDefinition","parameters":{"id":6631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6624,"indexed":true,"mutability":"mutable","name":"oldGrowthRatePerSecond","nameLocation":"2007:22:67","nodeType":"VariableDeclaration","scope":6632,"src":"1991:38:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6623,"name":"uint256","nodeType":"ElementaryTypeName","src":"1991:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6626,"indexed":true,"mutability":"mutable","name":"newGrowthRatePerSecond","nameLocation":"2055:22:67","nodeType":"VariableDeclaration","scope":6632,"src":"2039:38:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2039:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6628,"indexed":true,"mutability":"mutable","name":"oldSnapshotInterval","nameLocation":"2103:19:67","nodeType":"VariableDeclaration","scope":6632,"src":"2087:35:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6627,"name":"uint256","nodeType":"ElementaryTypeName","src":"2087:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6630,"indexed":false,"mutability":"mutable","name":"newSnapshotInterval","nameLocation":"2140:19:67","nodeType":"VariableDeclaration","scope":6632,"src":"2132:27:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2132:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1981:184:67"},"src":"1958:208:67"},{"anonymous":false,"documentation":{"id":6633,"nodeType":"StructuredDocumentation","src":"2172:52:67","text":"@notice Emitted when the snapshot gap is updated"},"eventSelector":"eb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f","id":6639,"name":"SnapshotGapUpdated","nameLocation":"2235:18:67","nodeType":"EventDefinition","parameters":{"id":6638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6635,"indexed":true,"mutability":"mutable","name":"oldSnapshotGap","nameLocation":"2270:14:67","nodeType":"VariableDeclaration","scope":6639,"src":"2254:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6634,"name":"uint256","nodeType":"ElementaryTypeName","src":"2254:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6637,"indexed":true,"mutability":"mutable","name":"newSnapshotGap","nameLocation":"2302:14:67","nodeType":"VariableDeclaration","scope":6639,"src":"2286:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6636,"name":"uint256","nodeType":"ElementaryTypeName","src":"2286:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2253:64:67"},"src":"2229:89:67"},{"documentation":{"id":6640,"nodeType":"StructuredDocumentation","src":"2324:50:67","text":"@notice Thrown if the token address is invalid"},"errorSelector":"1eb00b06","id":6642,"name":"InvalidTokenAddress","nameLocation":"2385:19:67","nodeType":"ErrorDefinition","parameters":{"id":6641,"nodeType":"ParameterList","parameters":[],"src":"2404:2:67"},"src":"2379:28:67"},{"documentation":{"id":6643,"nodeType":"StructuredDocumentation","src":"2413:48:67","text":"@notice Thrown if the growth rate is invalid"},"errorSelector":"a76fcc8a","id":6645,"name":"InvalidGrowthRate","nameLocation":"2472:17:67","nodeType":"ErrorDefinition","parameters":{"id":6644,"nodeType":"ParameterList","parameters":[],"src":"2489:2:67"},"src":"2466:26:67"},{"documentation":{"id":6646,"nodeType":"StructuredDocumentation","src":"2498:53:67","text":"@notice Thrown if the initial snapshot is invalid"},"errorSelector":"b8a5589b","id":6648,"name":"InvalidInitialSnapshot","nameLocation":"2562:22:67","nodeType":"ErrorDefinition","parameters":{"id":6647,"nodeType":"ParameterList","parameters":[],"src":"2584:2:67"},"src":"2556:31:67"},{"documentation":{"id":6649,"nodeType":"StructuredDocumentation","src":"2593:63:67","text":"@notice Thrown if the max snapshot exchange rate is invalid"},"errorSelector":"5f183887","id":6651,"name":"InvalidSnapshotMaxExchangeRate","nameLocation":"2667:30:67","nodeType":"ErrorDefinition","parameters":{"id":6650,"nodeType":"ParameterList","parameters":[],"src":"2697:2:67"},"src":"2661:39:67"},{"documentation":{"id":6652,"nodeType":"StructuredDocumentation","src":"2706:80:67","text":"@notice @notice Thrown when the action is prohibited by AccessControlManager"},"errorSelector":"4a3fa293","id":6660,"name":"Unauthorized","nameLocation":"2797:12:67","nodeType":"ErrorDefinition","parameters":{"id":6659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6654,"mutability":"mutable","name":"sender","nameLocation":"2818:6:67","nodeType":"VariableDeclaration","scope":6660,"src":"2810:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6653,"name":"address","nodeType":"ElementaryTypeName","src":"2810:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6656,"mutability":"mutable","name":"calledContract","nameLocation":"2834:14:67","nodeType":"VariableDeclaration","scope":6660,"src":"2826:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6655,"name":"address","nodeType":"ElementaryTypeName","src":"2826:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6658,"mutability":"mutable","name":"methodSignature","nameLocation":"2857:15:67","nodeType":"VariableDeclaration","scope":6660,"src":"2850:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6657,"name":"string","nodeType":"ElementaryTypeName","src":"2850:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2809:64:67"},"src":"2791:83:67"},{"body":{"id":6778,"nodeType":"Block","src":"3495:1052:67","statements":[{"expression":{"id":6686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6682,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"3505:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6683,"name":"_annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6669,"src":"3527:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6684,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"3547:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3527:36:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3505:58:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6687,"nodeType":"ExpressionStatement","src":"3505:58:67"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6688,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"3579:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3602:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3579:24:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6691,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6671,"src":"3607:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3627:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3607:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3579:49:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6695,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3578:51:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6696,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"3634:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3656:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3634:23:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6699,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6671,"src":"3661:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3682:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3661:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3634:49:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6703,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3633:51:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3578:106:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6708,"nodeType":"IfStatement","src":"3574:150:67","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6705,"name":"InvalidGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6645,"src":"3705:17:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3705:19:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6707,"nodeType":"RevertStatement","src":"3698:26:67"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6709,"name":"_initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6673,"src":"3740:31:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3775:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3740:36:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6712,"name":"_initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6675,"src":"3780:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3809:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3780:30:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3740:70:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6716,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3739:72:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6717,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6671,"src":"3815:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3835:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3815:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3739:97:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6725,"nodeType":"IfStatement","src":"3735:159:67","trueBody":{"id":6724,"nodeType":"Block","src":"3838:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6721,"name":"InvalidInitialSnapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6648,"src":"3859:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3859:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6723,"nodeType":"RevertStatement","src":"3852:31:67"}]}},{"expression":{"arguments":[{"id":6727,"name":"_correlatedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"3925:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6726,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"3904:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3904:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6729,"nodeType":"ExpressionStatement","src":"3904:38:67"},{"expression":{"arguments":[{"id":6731,"name":"_underlyingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6665,"src":"3973:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6730,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"3952:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3952:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6733,"nodeType":"ExpressionStatement","src":"3952:38:67"},{"expression":{"arguments":[{"id":6735,"name":"_resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6667,"src":"4021:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6734,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"4000:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4000:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6737,"nodeType":"ExpressionStatement","src":"4000:38:67"},{"expression":{"arguments":[{"id":6739,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"4069:21:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6738,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"4048:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4048:43:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6741,"nodeType":"ExpressionStatement","src":"4048:43:67"},{"expression":{"id":6744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6742,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"4102:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6743,"name":"_correlatedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"4121:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4102:35:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6745,"nodeType":"ExpressionStatement","src":"4102:35:67"},{"expression":{"id":6748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6746,"name":"UNDERLYING_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"4147:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6747,"name":"_underlyingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6665,"src":"4166:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4147:35:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6749,"nodeType":"ExpressionStatement","src":"4147:35:67"},{"expression":{"id":6754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6750,"name":"RESILIENT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"4192:16:67","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6752,"name":"_resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6667,"src":"4236:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6751,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"4211:24:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResilientOracleInterface_$3686_$","typeString":"type(contract ResilientOracleInterface)"}},"id":6753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4211:42:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"src":"4192:61:67","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":6755,"nodeType":"ExpressionStatement","src":"4192:61:67"},{"expression":{"id":6758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6756,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"4263:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6757,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6671,"src":"4282:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4263:36:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6759,"nodeType":"ExpressionStatement","src":"4263:36:67"},{"expression":{"id":6762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6760,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"4310:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6761,"name":"_initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6673,"src":"4336:31:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4310:57:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6763,"nodeType":"ExpressionStatement","src":"4310:57:67"},{"expression":{"id":6766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6764,"name":"snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6611,"src":"4377:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6765,"name":"_initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6675,"src":"4397:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4377:45:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6767,"nodeType":"ExpressionStatement","src":"4377:45:67"},{"expression":{"id":6770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6768,"name":"snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6614,"src":"4432:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6769,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6679,"src":"4446:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4432:26:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6771,"nodeType":"ExpressionStatement","src":"4432:26:67"},{"expression":{"id":6776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6772,"name":"ACCESS_CONTROL_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6600,"src":"4469:22:67","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6774,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"4518:21:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6773,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2125,"src":"4494:23:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$2125_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":6775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"src":"4469:71:67","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"id":6777,"nodeType":"ExpressionStatement","src":"4469:71:67"}]},"documentation":{"id":6661,"nodeType":"StructuredDocumentation","src":"2880:259:67","text":" @notice Constructor for the implementation contract.\n @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\n @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid"},"id":6779,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6663,"mutability":"mutable","name":"_correlatedToken","nameLocation":"3173:16:67","nodeType":"VariableDeclaration","scope":6779,"src":"3165:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6662,"name":"address","nodeType":"ElementaryTypeName","src":"3165:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6665,"mutability":"mutable","name":"_underlyingToken","nameLocation":"3207:16:67","nodeType":"VariableDeclaration","scope":6779,"src":"3199:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6664,"name":"address","nodeType":"ElementaryTypeName","src":"3199:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6667,"mutability":"mutable","name":"_resilientOracle","nameLocation":"3241:16:67","nodeType":"VariableDeclaration","scope":6779,"src":"3233:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6666,"name":"address","nodeType":"ElementaryTypeName","src":"3233:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6669,"mutability":"mutable","name":"_annualGrowthRate","nameLocation":"3275:17:67","nodeType":"VariableDeclaration","scope":6779,"src":"3267:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6668,"name":"uint256","nodeType":"ElementaryTypeName","src":"3267:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6671,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"3310:17:67","nodeType":"VariableDeclaration","scope":6779,"src":"3302:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6670,"name":"uint256","nodeType":"ElementaryTypeName","src":"3302:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6673,"mutability":"mutable","name":"_initialSnapshotMaxExchangeRate","nameLocation":"3345:31:67","nodeType":"VariableDeclaration","scope":6779,"src":"3337:39:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6672,"name":"uint256","nodeType":"ElementaryTypeName","src":"3337:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6675,"mutability":"mutable","name":"_initialSnapshotTimestamp","nameLocation":"3394:25:67","nodeType":"VariableDeclaration","scope":6779,"src":"3386:33:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6674,"name":"uint256","nodeType":"ElementaryTypeName","src":"3386:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6677,"mutability":"mutable","name":"_accessControlManager","nameLocation":"3437:21:67","nodeType":"VariableDeclaration","scope":6779,"src":"3429:29:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6676,"name":"address","nodeType":"ElementaryTypeName","src":"3429:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6679,"mutability":"mutable","name":"_snapshotGap","nameLocation":"3476:12:67","nodeType":"VariableDeclaration","scope":6779,"src":"3468:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6678,"name":"uint256","nodeType":"ElementaryTypeName","src":"3468:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3155:339:67"},"returnParameters":{"id":6681,"nodeType":"ParameterList","parameters":[],"src":"3495:0:67"},"scope":7137,"src":"3144:1403:67","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6804,"nodeType":"Block","src":"4935:252:67","statements":[{"expression":{"arguments":[{"hexValue":"736574536e617073686f742875696e743235362c75696e7432353629","id":6788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4965:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_7fc4e4a0635974110f3286221107f8652764591d4a7006b75510dca4b631b224","typeString":"literal_string \"setSnapshot(uint256,uint256)\""},"value":"setSnapshot(uint256,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7fc4e4a0635974110f3286221107f8652764591d4a7006b75510dca4b631b224","typeString":"literal_string \"setSnapshot(uint256,uint256)\""}],"id":6787,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"4945:19:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":6789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4945:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6790,"nodeType":"ExpressionStatement","src":"4945:51:67"},{"expression":{"id":6793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6791,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"5007:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6792,"name":"_snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6782,"src":"5033:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:50:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6794,"nodeType":"ExpressionStatement","src":"5007:50:67"},{"expression":{"id":6797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6795,"name":"snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6611,"src":"5067:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6796,"name":"_snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6784,"src":"5087:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5067:38:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6798,"nodeType":"ExpressionStatement","src":"5067:38:67"},{"eventCall":{"arguments":[{"id":6800,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"5137:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6801,"name":"snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6611,"src":"5162:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6799,"name":"SnapshotUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"5121:15:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":6802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5121:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6803,"nodeType":"EmitStatement","src":"5116:64:67"}]},"documentation":{"id":6780,"nodeType":"StructuredDocumentation","src":"4553:285:67","text":" @notice Directly sets the snapshot exchange rate and timestamp\n @param _snapshotMaxExchangeRate The exchange rate to set\n @param _snapshotTimestamp The timestamp to set\n @custom:event Emits SnapshotUpdated event on successful update of the snapshot"},"functionSelector":"7fc4e4a0","id":6805,"implemented":true,"kind":"function","modifiers":[],"name":"setSnapshot","nameLocation":"4852:11:67","nodeType":"FunctionDefinition","parameters":{"id":6785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6782,"mutability":"mutable","name":"_snapshotMaxExchangeRate","nameLocation":"4872:24:67","nodeType":"VariableDeclaration","scope":6805,"src":"4864:32:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6781,"name":"uint256","nodeType":"ElementaryTypeName","src":"4864:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6784,"mutability":"mutable","name":"_snapshotTimestamp","nameLocation":"4906:18:67","nodeType":"VariableDeclaration","scope":6805,"src":"4898:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6783,"name":"uint256","nodeType":"ElementaryTypeName","src":"4898:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4863:62:67"},"returnParameters":{"id":6786,"nodeType":"ParameterList","parameters":[],"src":"4935:0:67"},"scope":7137,"src":"4843:344:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6859,"nodeType":"Block","src":"5652:524:67","statements":[{"expression":{"arguments":[{"hexValue":"73657447726f777468526174652875696e743235362c75696e7432353629","id":6814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5682:32:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_643d813d07b410278bbf40c48f3bb7a1e319e798cf9794db078269ce38100918","typeString":"literal_string \"setGrowthRate(uint256,uint256)\""},"value":"setGrowthRate(uint256,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643d813d07b410278bbf40c48f3bb7a1e319e798cf9794db078269ce38100918","typeString":"literal_string \"setGrowthRate(uint256,uint256)\""}],"id":6813,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"5662:19:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":6815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5662:53:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6816,"nodeType":"ExpressionStatement","src":"5662:53:67"},{"assignments":[6818],"declarations":[{"constant":false,"id":6818,"mutability":"mutable","name":"oldGrowthRatePerSecond","nameLocation":"5733:22:67","nodeType":"VariableDeclaration","scope":6859,"src":"5725:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6817,"name":"uint256","nodeType":"ElementaryTypeName","src":"5725:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6820,"initialValue":{"id":6819,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"5758:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5725:52:67"},{"expression":{"id":6825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6821,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"5788:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6822,"name":"_annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6808,"src":"5810:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6823,"name":"SECONDS_PER_YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2139,"src":"5830:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5810:36:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5788:58:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6826,"nodeType":"ExpressionStatement","src":"5788:58:67"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6827,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"5862:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5885:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5862:24:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6830,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6810,"src":"5890:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5910:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5890:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5862:49:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6834,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5861:51:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6835,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"5917:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5939:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5917:23:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6838,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6810,"src":"5944:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5965:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5944:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5917:49:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6842,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5916:51:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5861:106:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6847,"nodeType":"IfStatement","src":"5857:150:67","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6844,"name":"InvalidGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6645,"src":"5988:17:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5988:19:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6846,"nodeType":"RevertStatement","src":"5981:26:67"}},{"eventCall":{"arguments":[{"id":6849,"name":"oldGrowthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6818,"src":"6041:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6850,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"6065:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6851,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"6086:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6852,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6810,"src":"6104:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6848,"name":"GrowthRateUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"6023:17:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":6853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6023:99:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6854,"nodeType":"EmitStatement","src":"6018:104:67"},{"expression":{"id":6857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6855,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"6133:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6856,"name":"_snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6810,"src":"6152:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6133:36:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6858,"nodeType":"ExpressionStatement","src":"6133:36:67"}]},"documentation":{"id":6806,"nodeType":"StructuredDocumentation","src":"5193:368:67","text":" @notice Sets the growth rate and snapshot interval\n @param _annualGrowthRate The annual growth rate to set\n @param _snapshotInterval The snapshot interval to set\n @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\n @custom:event Emits GrowthRateUpdated event on successful update of the growth rate"},"functionSelector":"643d813d","id":6860,"implemented":true,"kind":"function","modifiers":[],"name":"setGrowthRate","nameLocation":"5575:13:67","nodeType":"FunctionDefinition","parameters":{"id":6811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6808,"mutability":"mutable","name":"_annualGrowthRate","nameLocation":"5597:17:67","nodeType":"VariableDeclaration","scope":6860,"src":"5589:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6807,"name":"uint256","nodeType":"ElementaryTypeName","src":"5589:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6810,"mutability":"mutable","name":"_snapshotInterval","nameLocation":"5624:17:67","nodeType":"VariableDeclaration","scope":6860,"src":"5616:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6809,"name":"uint256","nodeType":"ElementaryTypeName","src":"5616:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5588:54:67"},"returnParameters":{"id":6812,"nodeType":"ParameterList","parameters":[],"src":"5652:0:67"},"scope":7137,"src":"5566:610:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6879,"nodeType":"Block","src":"6434:161:67","statements":[{"expression":{"arguments":[{"hexValue":"736574536e617073686f744761702875696e7432353629","id":6867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6464:25:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_5213f9c8fe46854afc99d359660a7454b1e9fe4bb0082b1dc2ec55d43e0e044d","typeString":"literal_string \"setSnapshotGap(uint256)\""},"value":"setSnapshotGap(uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5213f9c8fe46854afc99d359660a7454b1e9fe4bb0082b1dc2ec55d43e0e044d","typeString":"literal_string \"setSnapshotGap(uint256)\""}],"id":6866,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"6444:19:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6444:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6869,"nodeType":"ExpressionStatement","src":"6444:46:67"},{"eventCall":{"arguments":[{"id":6871,"name":"snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6614,"src":"6525:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6872,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"6538:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6870,"name":"SnapshotGapUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6639,"src":"6506:18:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":6873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6506:45:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6874,"nodeType":"EmitStatement","src":"6501:50:67"},{"expression":{"id":6877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6875,"name":"snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6614,"src":"6562:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6876,"name":"_snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"6576:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6562:26:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6878,"nodeType":"ExpressionStatement","src":"6562:26:67"}]},"documentation":{"id":6861,"nodeType":"StructuredDocumentation","src":"6182:192:67","text":" @notice Sets the snapshot gap\n @param _snapshotGap The snapshot gap to set\n @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap"},"functionSelector":"5213f9c8","id":6880,"implemented":true,"kind":"function","modifiers":[],"name":"setSnapshotGap","nameLocation":"6388:14:67","nodeType":"FunctionDefinition","parameters":{"id":6864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6863,"mutability":"mutable","name":"_snapshotGap","nameLocation":"6411:12:67","nodeType":"VariableDeclaration","scope":6880,"src":"6403:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6862,"name":"uint256","nodeType":"ElementaryTypeName","src":"6403:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6402:22:67"},"returnParameters":{"id":6865,"nodeType":"ParameterList","parameters":[],"src":"6434:0:67"},"scope":7137,"src":"6379:216:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6914,"nodeType":"Block","src":"6786:340:67","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6886,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"6800:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6820:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6800:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6892,"nodeType":"IfStatement","src":"6796:64:67","trueBody":{"id":6891,"nodeType":"Block","src":"6823:37:67","statements":[{"expression":{"hexValue":"66616c7365","id":6889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6844:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6885,"id":6890,"nodeType":"Return","src":"6837:12:67"}]}},{"assignments":[6894],"declarations":[{"constant":false,"id":6894,"mutability":"mutable","name":"maxAllowedExchangeRate","nameLocation":"6878:22:67","nodeType":"VariableDeclaration","scope":6914,"src":"6870:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6893,"name":"uint256","nodeType":"ElementaryTypeName","src":"6870:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6897,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6895,"name":"getMaxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7061,"src":"6903:25:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6903:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6870:60:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6898,"name":"maxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6894,"src":"6944:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6970:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6944:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6904,"nodeType":"IfStatement","src":"6940:70:67","trueBody":{"id":6903,"nodeType":"Block","src":"6973:37:67","statements":[{"expression":{"hexValue":"66616c7365","id":6901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6994:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6885,"id":6902,"nodeType":"Return","src":"6987:12:67"}]}},{"assignments":[6906],"declarations":[{"constant":false,"id":6906,"mutability":"mutable","name":"exchangeRate","nameLocation":"7028:12:67","nodeType":"VariableDeclaration","scope":6914,"src":"7020:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6905,"name":"uint256","nodeType":"ElementaryTypeName","src":"7020:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6909,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6907,"name":"getUnderlyingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"7043:19:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7043:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7020:44:67"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6910,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6906,"src":"7082:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":6911,"name":"maxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6894,"src":"7097:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7082:37:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6885,"id":6913,"nodeType":"Return","src":"7075:44:67"}]},"documentation":{"id":6881,"nodeType":"StructuredDocumentation","src":"6601:123:67","text":" @notice Returns if the price is capped\n @return isCapped Boolean indicating if the price is capped"},"functionSelector":"671528d4","id":6915,"implemented":true,"kind":"function","modifiers":[],"name":"isCapped","nameLocation":"6738:8:67","nodeType":"FunctionDefinition","parameters":{"id":6882,"nodeType":"ParameterList","parameters":[],"src":"6746:2:67"},"returnParameters":{"id":6885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6915,"src":"6780:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6883,"name":"bool","nodeType":"ElementaryTypeName","src":"6780:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6779:6:67"},"scope":7137,"src":"6729:397:67","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[3493],"body":{"id":6977,"nodeType":"Block","src":"7442:652:67","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6920,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7456:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7462:9:67","memberName":"timestamp","nodeType":"MemberAccess","src":"7456:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6922,"name":"snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6611,"src":"7474:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7456:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6924,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"7494:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7456:54:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6926,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"7514:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7534:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7514:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7456:79:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6931,"nodeType":"IfStatement","src":"7452:92:67","trueBody":{"functionReturnParameters":6919,"id":6930,"nodeType":"Return","src":"7537:7:67"}},{"assignments":[6933],"declarations":[{"constant":false,"id":6933,"mutability":"mutable","name":"exchangeRate","nameLocation":"7562:12:67","nodeType":"VariableDeclaration","scope":6977,"src":"7554:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6932,"name":"uint256","nodeType":"ElementaryTypeName","src":"7554:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6936,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6934,"name":"getUnderlyingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"7577:19:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7577:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7554:44:67"},{"assignments":[6938],"declarations":[{"constant":false,"id":6938,"mutability":"mutable","name":"maxAllowedExchangeRate","nameLocation":"7616:22:67","nodeType":"VariableDeclaration","scope":6977,"src":"7608:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6937,"name":"uint256","nodeType":"ElementaryTypeName","src":"7608:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6941,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6939,"name":"getMaxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7061,"src":"7641:25:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7641:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7608:60:67"},{"expression":{"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6942,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"7679:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6943,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6933,"src":"7718:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":6944,"name":"maxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6938,"src":"7733:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7718:37:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":6947,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6933,"src":"7783:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7718:77:67","trueExpression":{"id":6946,"name":"maxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6938,"src":"7758:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6949,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7717:79:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6950,"name":"snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6614,"src":"7811:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7717:105:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7679:143:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6953,"nodeType":"ExpressionStatement","src":"7679:143:67"},{"expression":{"id":6957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6954,"name":"snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6611,"src":"7832:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":6955,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7852:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7858:9:67","memberName":"timestamp","nodeType":"MemberAccess","src":"7852:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7832:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6958,"nodeType":"ExpressionStatement","src":"7832:35:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6959,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"7882:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7909:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7882:28:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6965,"nodeType":"IfStatement","src":"7878:73:67","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6962,"name":"InvalidSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"7919:30:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7919:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6964,"nodeType":"RevertStatement","src":"7912:39:67"}},{"expression":{"arguments":[{"id":6969,"name":"UNDERLYING_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"7996:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6966,"name":"RESILIENT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"7962:16:67","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":6968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7979:16:67","memberName":"updateAssetPrice","nodeType":"MemberAccess","referencedDeclaration":3678,"src":"7962:33:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":6970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7962:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6971,"nodeType":"ExpressionStatement","src":"7962:51:67"},{"eventCall":{"arguments":[{"id":6973,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"8044:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6974,"name":"snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6611,"src":"8069:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6972,"name":"SnapshotUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"8028:15:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":6975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6976,"nodeType":"EmitStatement","src":"8023:64:67"}]},"documentation":{"id":6916,"nodeType":"StructuredDocumentation","src":"7132:263:67","text":" @notice Updates the snapshot price and timestamp\n @custom:event Emits SnapshotUpdated event on successful update of the snapshot\n @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero"},"functionSelector":"69240426","id":6978,"implemented":true,"kind":"function","modifiers":[],"name":"updateSnapshot","nameLocation":"7409:14:67","nodeType":"FunctionDefinition","overrides":{"id":6918,"nodeType":"OverrideSpecifier","overrides":[],"src":"7433:8:67"},"parameters":{"id":6917,"nodeType":"ParameterList","parameters":[],"src":"7423:2:67"},"returnParameters":{"id":6919,"nodeType":"ParameterList","parameters":[],"src":"7442:0:67"},"scope":7137,"src":"7400:694:67","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3665],"body":{"id":7031,"nodeType":"Block","src":"8513:525:67","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6987,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8527:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6988,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"8536:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8527:25:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6993,"nodeType":"IfStatement","src":"8523:59:67","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6990,"name":"InvalidTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6642,"src":"8561:19:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8561:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6992,"nodeType":"RevertStatement","src":"8554:28:67"}},{"assignments":[6995],"declarations":[{"constant":false,"id":6995,"mutability":"mutable","name":"exchangeRate","nameLocation":"8601:12:67","nodeType":"VariableDeclaration","scope":7031,"src":"8593:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6994,"name":"uint256","nodeType":"ElementaryTypeName","src":"8593:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6996,"name":"getUnderlyingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"8616:19:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8616:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8593:44:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6999,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"8652:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8672:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8652:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7007,"nodeType":"IfStatement","src":"8648:88:67","trueBody":{"id":7006,"nodeType":"Block","src":"8675:61:67","statements":[{"expression":{"arguments":[{"id":7003,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6995,"src":"8712:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7002,"name":"_calculatePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7106,"src":"8696:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8696:29:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6986,"id":7005,"nodeType":"Return","src":"8689:36:67"}]}},{"assignments":[7009],"declarations":[{"constant":false,"id":7009,"mutability":"mutable","name":"maxAllowedExchangeRate","nameLocation":"8754:22:67","nodeType":"VariableDeclaration","scope":7031,"src":"8746:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7008,"name":"uint256","nodeType":"ElementaryTypeName","src":"8746:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7012,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":7010,"name":"getMaxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7061,"src":"8779:25:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":7011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8779:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8746:60:67"},{"assignments":[7014],"declarations":[{"constant":false,"id":7014,"mutability":"mutable","name":"finalExchangeRate","nameLocation":"8825:17:67","nodeType":"VariableDeclaration","scope":7031,"src":"8817:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8817:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7026,"initialValue":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7015,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6995,"src":"8846:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7016,"name":"maxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"8861:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8846:37:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7018,"name":"maxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"8887:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8913:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8887:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8846:68:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8845:70:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7024,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6995,"src":"8967:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8845:134:67","trueExpression":{"id":7023,"name":"maxAllowedExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"8930:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8817:162:67"},{"expression":{"arguments":[{"id":7028,"name":"finalExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7014,"src":"9013:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7027,"name":"_calculatePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7106,"src":"8997:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8997:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6986,"id":7030,"nodeType":"Return","src":"8990:41:67"}]},"documentation":{"id":6979,"nodeType":"StructuredDocumentation","src":"8100:336:67","text":" @notice Fetches the price of the token\n @param asset Address of the token\n @return price The price of the token in scaled decimal places. It can be capped\n to a maximum value taking into account the growth rate\n @custom:error InvalidTokenAddress error is thrown if the token address is invalid"},"functionSelector":"41976e09","id":7032,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"8450:8:67","nodeType":"FunctionDefinition","overrides":{"id":6983,"nodeType":"OverrideSpecifier","overrides":[],"src":"8486:8:67"},"parameters":{"id":6982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6981,"mutability":"mutable","name":"asset","nameLocation":"8467:5:67","nodeType":"VariableDeclaration","scope":7032,"src":"8459:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6980,"name":"address","nodeType":"ElementaryTypeName","src":"8459:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8458:15:67"},"returnParameters":{"id":6986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7032,"src":"8504:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6984,"name":"uint256","nodeType":"ElementaryTypeName","src":"8504:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8503:9:67"},"scope":7137,"src":"8441:597:67","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7060,"nodeType":"Block","src":"9252:260:67","statements":[{"assignments":[7039],"declarations":[{"constant":false,"id":7039,"mutability":"mutable","name":"timeElapsed","nameLocation":"9270:11:67","nodeType":"VariableDeclaration","scope":7060,"src":"9262:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7038,"name":"uint256","nodeType":"ElementaryTypeName","src":"9262:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7044,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7040,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9284:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9290:9:67","memberName":"timestamp","nodeType":"MemberAccess","src":"9284:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7042,"name":"snapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6611,"src":"9302:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9284:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9262:57:67"},{"assignments":[7046],"declarations":[{"constant":false,"id":7046,"mutability":"mutable","name":"maxExchangeRate","nameLocation":"9337:15:67","nodeType":"VariableDeclaration","scope":7060,"src":"9329:23:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7045,"name":"uint256","nodeType":"ElementaryTypeName","src":"9329:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7057,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7047,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"9355:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7048,"name":"snapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"9394:23:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7049,"name":"growthRatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"9420:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9394:45:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7051,"name":"timeElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7039,"src":"9442:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9394:59:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7053,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9393:61:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31653138","id":7054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9469:4:67","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"9393:80:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9355:118:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9329:144:67"},{"expression":{"id":7058,"name":"maxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7046,"src":"9490:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7037,"id":7059,"nodeType":"Return","src":"9483:22:67"}]},"documentation":{"id":7033,"nodeType":"StructuredDocumentation","src":"9044:136:67","text":" @notice Gets the maximum allowed exchange rate for token\n @return maxExchangeRate Maximum allowed exchange rate"},"functionSelector":"bdf13af2","id":7061,"implemented":true,"kind":"function","modifiers":[],"name":"getMaxAllowedExchangeRate","nameLocation":"9194:25:67","nodeType":"FunctionDefinition","parameters":{"id":7034,"nodeType":"ParameterList","parameters":[],"src":"9219:2:67"},"returnParameters":{"id":7037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7061,"src":"9243:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7035,"name":"uint256","nodeType":"ElementaryTypeName","src":"9243:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9242:9:67"},"scope":7137,"src":"9185:327:67","stateMutability":"view","virtual":false,"visibility":"public"},{"documentation":{"id":7062,"nodeType":"StructuredDocumentation","src":"9518:133:67","text":" @notice Gets the underlying amount for correlated token\n @return underlyingAmount Amount of underlying token"},"functionSelector":"abb85613","id":7067,"implemented":false,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"9665:19:67","nodeType":"FunctionDefinition","parameters":{"id":7063,"nodeType":"ParameterList","parameters":[],"src":"9684:2:67"},"returnParameters":{"id":7066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7065,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7067,"src":"9716:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7064,"name":"uint256","nodeType":"ElementaryTypeName","src":"9716:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9715:9:67"},"scope":7137,"src":"9656:69:67","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7105,"nodeType":"Block","src":"10037:272:67","statements":[{"assignments":[7076],"declarations":[{"constant":false,"id":7076,"mutability":"mutable","name":"underlyingUSDPrice","nameLocation":"10055:18:67","nodeType":"VariableDeclaration","scope":7105,"src":"10047:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7075,"name":"uint256","nodeType":"ElementaryTypeName","src":"10047:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7081,"initialValue":{"arguments":[{"id":7079,"name":"UNDERLYING_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"10102:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7077,"name":"RESILIENT_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"10076:16:67","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10093:8:67","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"10076:25:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10076:43:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10047:72:67"},{"assignments":[7084],"declarations":[{"constant":false,"id":7084,"mutability":"mutable","name":"token","nameLocation":"10145:5:67","nodeType":"VariableDeclaration","scope":7105,"src":"10130:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"},"typeName":{"id":7083,"nodeType":"UserDefinedTypeName","pathNode":{"id":7082,"name":"IERC20Metadata","nameLocations":["10130:14:67"],"nodeType":"IdentifierPath","referencedDeclaration":1896,"src":"10130:14:67"},"referencedDeclaration":1896,"src":"10130:14:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"id":7088,"initialValue":{"arguments":[{"id":7086,"name":"CORRELATED_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"10168:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7085,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1896,"src":"10153:14:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$1896_$","typeString":"type(contract IERC20Metadata)"}},"id":7087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10153:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"nodeType":"VariableDeclarationStatement","src":"10130:55:67"},{"assignments":[7090],"declarations":[{"constant":false,"id":7090,"mutability":"mutable","name":"decimals","nameLocation":"10203:8:67","nodeType":"VariableDeclaration","scope":7105,"src":"10195:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7089,"name":"uint256","nodeType":"ElementaryTypeName","src":"10195:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7094,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7091,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"10214:5:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$1896","typeString":"contract IERC20Metadata"}},"id":7092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10220:8:67","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":1895,"src":"10214:14:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10214:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"10195:35:67"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7095,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7070,"src":"10249:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7096,"name":"underlyingUSDPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7076,"src":"10264:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10249:33:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10248:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10287:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":7100,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7090,"src":"10293:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10287:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7102,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10286:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10248:54:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7074,"id":7104,"nodeType":"Return","src":"10241:61:67"}]},"documentation":{"id":7068,"nodeType":"StructuredDocumentation","src":"9731:222:67","text":" @notice Fetches price of the token based on an underlying exchange rate\n @param exchangeRate The underlying exchange rate to use\n @return price The price of the token in scaled decimal places"},"id":7106,"implemented":true,"kind":"function","modifiers":[],"name":"_calculatePrice","nameLocation":"9967:15:67","nodeType":"FunctionDefinition","parameters":{"id":7071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7070,"mutability":"mutable","name":"exchangeRate","nameLocation":"9991:12:67","nodeType":"VariableDeclaration","scope":7106,"src":"9983:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7069,"name":"uint256","nodeType":"ElementaryTypeName","src":"9983:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9982:22:67"},"returnParameters":{"id":7074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7106,"src":"10028:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7072,"name":"uint256","nodeType":"ElementaryTypeName","src":"10028:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10027:9:67"},"scope":7137,"src":"9958:351:67","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7135,"nodeType":"Block","src":"10591:215:67","statements":[{"assignments":[7113],"declarations":[{"constant":false,"id":7113,"mutability":"mutable","name":"isAllowedToCall","nameLocation":"10606:15:67","nodeType":"VariableDeclaration","scope":7135,"src":"10601:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7112,"name":"bool","nodeType":"ElementaryTypeName","src":"10601:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7120,"initialValue":{"arguments":[{"expression":{"id":7116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10663:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10667:6:67","memberName":"sender","nodeType":"MemberAccess","src":"10663:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7118,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7109,"src":"10675:9:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7114,"name":"ACCESS_CONTROL_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6600,"src":"10624:22:67","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$2125","typeString":"contract IAccessControlManagerV8"}},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10647:15:67","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":2113,"src":"10624:38:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (address,string memory) view external returns (bool)"}},"id":7119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10624:61:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10601:84:67"},{"condition":{"id":7122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10700:16:67","subExpression":{"id":7121,"name":"isAllowedToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7113,"src":"10701:15:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7134,"nodeType":"IfStatement","src":"10696:104:67","trueBody":{"id":7133,"nodeType":"Block","src":"10718:82:67","statements":[{"errorCall":{"arguments":[{"expression":{"id":7124,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10752:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10756:6:67","memberName":"sender","nodeType":"MemberAccess","src":"10752:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":7128,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10772:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_CorrelatedTokenOracle_$7137","typeString":"contract CorrelatedTokenOracle"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CorrelatedTokenOracle_$7137","typeString":"contract CorrelatedTokenOracle"}],"id":7127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10764:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7126,"name":"address","nodeType":"ElementaryTypeName","src":"10764:7:67","typeDescriptions":{}}},"id":7129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10764:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7130,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7109,"src":"10779:9:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7123,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"10739:12:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory) pure"}},"id":7131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10739:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7132,"nodeType":"RevertStatement","src":"10732:57:67"}]}}]},"documentation":{"id":7107,"nodeType":"StructuredDocumentation","src":"10315:203:67","text":" @notice Reverts if the call is not allowed by AccessControlManager\n @param signature Method signature\n @custom:error Unauthorized error is thrown if the call is not allowed"},"id":7136,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAccessAllowed","nameLocation":"10532:19:67","nodeType":"FunctionDefinition","parameters":{"id":7110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7109,"mutability":"mutable","name":"signature","nameLocation":"10566:9:67","nodeType":"VariableDeclaration","scope":7136,"src":"10552:23:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7108,"name":"string","nodeType":"ElementaryTypeName","src":"10552:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10551:25:67"},"returnParameters":{"id":7111,"nodeType":"ParameterList","parameters":[],"src":"10591:0:67"},"scope":7137,"src":"10523:283:67","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":7138,"src":"783:10025:67","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:10768:67"},"id":67},"contracts/oracles/mocks/MockAccountant.sol":{"ast":{"absolutePath":"contracts/oracles/mocks/MockAccountant.sol","exportedSymbols":{"Context":[1926],"IAccountant":[3450],"MockAccountant":[7175],"Ownable":[1206]},"id":7176,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7139,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:68"},{"absolutePath":"contracts/interfaces/IAccountant.sol","file":"../../interfaces/IAccountant.sol","id":7140,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7176,"sourceUnit":3451,"src":"66:42:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7176,"sourceUnit":1207,"src":"109:52:68","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7142,"name":"IAccountant","nameLocations":["190:11:68"],"nodeType":"IdentifierPath","referencedDeclaration":3450,"src":"190:11:68"},"id":7143,"nodeType":"InheritanceSpecifier","src":"190:11:68"},{"baseName":{"id":7144,"name":"Ownable","nameLocations":["203:7:68"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"203:7:68"},"id":7145,"nodeType":"InheritanceSpecifier","src":"203:7:68"}],"canonicalName":"MockAccountant","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7175,"linearizedBaseContracts":[7175,1206,1926,3450],"name":"MockAccountant","nameLocation":"172:14:68","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"2c4e722e","id":7147,"mutability":"mutable","name":"rate","nameLocation":"232:4:68","nodeType":"VariableDeclaration","scope":7175,"src":"217:19:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7146,"name":"uint256","nodeType":"ElementaryTypeName","src":"217:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":7152,"nodeType":"Block","src":"267:2:68","statements":[]},"id":7153,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":7150,"kind":"baseConstructorSpecifier","modifierName":{"id":7149,"name":"Ownable","nameLocations":["257:7:68"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"257:7:68"},"nodeType":"ModifierInvocation","src":"257:9:68"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7148,"nodeType":"ParameterList","parameters":[],"src":"254:2:68"},"returnParameters":{"id":7151,"nodeType":"ParameterList","parameters":[],"src":"267:0:68"},"scope":7175,"src":"243:26:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7164,"nodeType":"Block","src":"326:29:68","statements":[{"expression":{"id":7162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7160,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7147,"src":"336:4:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7161,"name":"_rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7155,"src":"343:5:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"336:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7163,"nodeType":"ExpressionStatement","src":"336:12:68"}]},"functionSelector":"34fcf437","id":7165,"implemented":true,"kind":"function","modifiers":[{"id":7158,"kind":"modifierInvocation","modifierName":{"id":7157,"name":"onlyOwner","nameLocations":["316:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"316:9:68"},"nodeType":"ModifierInvocation","src":"316:9:68"}],"name":"setRate","nameLocation":"284:7:68","nodeType":"FunctionDefinition","parameters":{"id":7156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7155,"mutability":"mutable","name":"_rate","nameLocation":"300:5:68","nodeType":"VariableDeclaration","scope":7165,"src":"292:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7154,"name":"uint256","nodeType":"ElementaryTypeName","src":"292:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"291:15:68"},"returnParameters":{"id":7159,"nodeType":"ParameterList","parameters":[],"src":"326:0:68"},"scope":7175,"src":"275:80:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3449],"body":{"id":7173,"nodeType":"Block","src":"425:28:68","statements":[{"expression":{"id":7171,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7147,"src":"442:4:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7170,"id":7172,"nodeType":"Return","src":"435:11:68"}]},"functionSelector":"282a8700","id":7174,"implemented":true,"kind":"function","modifiers":[],"name":"getRateSafe","nameLocation":"370:11:68","nodeType":"FunctionDefinition","overrides":{"id":7167,"nodeType":"OverrideSpecifier","overrides":[],"src":"398:8:68"},"parameters":{"id":7166,"nodeType":"ParameterList","parameters":[],"src":"381:2:68"},"returnParameters":{"id":7170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7174,"src":"416:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7168,"name":"uint256","nodeType":"ElementaryTypeName","src":"416:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"415:9:68"},"scope":7175,"src":"361:92:68","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7176,"src":"163:292:68","usedErrors":[],"usedEvents":[1107]}],"src":"41:415:68"},"id":68},"contracts/oracles/mocks/MockBinanceFeedRegistry.sol":{"ast":{"absolutePath":"contracts/oracles/mocks/MockBinanceFeedRegistry.sol","exportedSymbols":{"FeedRegistryInterface":[3442],"MockBinanceFeedRegistry":[7248]},"id":7249,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7177,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:69"},{"absolutePath":"contracts/interfaces/FeedRegistryInterface.sol","file":"../../interfaces/FeedRegistryInterface.sol","id":7178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7249,"sourceUnit":3443,"src":"66:52:69","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7179,"name":"FeedRegistryInterface","nameLocations":["156:21:69"],"nodeType":"IdentifierPath","referencedDeclaration":3442,"src":"156:21:69"},"id":7180,"nodeType":"InheritanceSpecifier","src":"156:21:69"}],"canonicalName":"MockBinanceFeedRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7248,"linearizedBaseContracts":[7248,3442],"name":"MockBinanceFeedRegistry","nameLocation":"129:23:69","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"f9172888","id":7184,"mutability":"mutable","name":"assetPrices","nameLocation":"218:11:69","nodeType":"VariableDeclaration","scope":7248,"src":"184:45:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string => uint256)"},"typeName":{"id":7183,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7181,"name":"string","nodeType":"ElementaryTypeName","src":"192:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"184:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7182,"name":"uint256","nodeType":"ElementaryTypeName","src":"202:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":7197,"nodeType":"Block","src":"303:42:69","statements":[{"expression":{"id":7195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7191,"name":"assetPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"313:11:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":7193,"indexExpression":{"id":7192,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"325:4:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"313:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7194,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"333:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"313:25:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7196,"nodeType":"ExpressionStatement","src":"313:25:69"}]},"functionSelector":"b78107ca","id":7198,"implemented":true,"kind":"function","modifiers":[],"name":"setAssetPrice","nameLocation":"245:13:69","nodeType":"FunctionDefinition","parameters":{"id":7189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7186,"mutability":"mutable","name":"base","nameLocation":"273:4:69","nodeType":"VariableDeclaration","scope":7198,"src":"259:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7185,"name":"string","nodeType":"ElementaryTypeName","src":"259:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7188,"mutability":"mutable","name":"price","nameLocation":"287:5:69","nodeType":"VariableDeclaration","scope":7198,"src":"279:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7187,"name":"uint256","nodeType":"ElementaryTypeName","src":"279:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"258:35:69"},"returnParameters":{"id":7190,"nodeType":"ParameterList","parameters":[],"src":"303:0:69"},"scope":7248,"src":"236:109:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3432],"body":{"id":7233,"nodeType":"Block","src":"606:97:69","statements":[{"expression":{"id":7216,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7202,"src":"616:5:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":7217,"nodeType":"ExpressionStatement","src":"616:5:69"},{"expression":{"components":[{"hexValue":"30","id":7218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"639:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"baseExpression":{"id":7221,"name":"assetPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"649:11:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":7223,"indexExpression":{"id":7222,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"661:4:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"649:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"642:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":7219,"name":"int256","nodeType":"ElementaryTypeName","src":"642:6:69","typeDescriptions":{}}},"id":7224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"642:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"hexValue":"30","id":7225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"669:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7226,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"672:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"678:9:69","memberName":"timestamp","nodeType":"MemberAccess","src":"672:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3130","id":7228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"690:2:69","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"672:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":7230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"694:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"638:58:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_int256_$_t_rational_0_by_1_$_t_uint256_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int256,int_const 0,uint256,int_const 0)"}},"functionReturnParameters":7215,"id":7232,"nodeType":"Return","src":"631:65:69"}]},"functionSelector":"bfda5e71","id":7234,"implemented":true,"kind":"function","modifiers":[],"name":"latestRoundDataByName","nameLocation":"360:21:69","nodeType":"FunctionDefinition","overrides":{"id":7204,"nodeType":"OverrideSpecifier","overrides":[],"src":"483:8:69"},"parameters":{"id":7203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7200,"mutability":"mutable","name":"base","nameLocation":"405:4:69","nodeType":"VariableDeclaration","scope":7234,"src":"391:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7199,"name":"string","nodeType":"ElementaryTypeName","src":"391:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7202,"mutability":"mutable","name":"quote","nameLocation":"433:5:69","nodeType":"VariableDeclaration","scope":7234,"src":"419:19:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7201,"name":"string","nodeType":"ElementaryTypeName","src":"419:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"381:63:69"},"returnParameters":{"id":7215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7206,"mutability":"mutable","name":"roundId","nameLocation":"516:7:69","nodeType":"VariableDeclaration","scope":7234,"src":"509:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":7205,"name":"uint80","nodeType":"ElementaryTypeName","src":"509:6:69","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"},{"constant":false,"id":7208,"mutability":"mutable","name":"answer","nameLocation":"532:6:69","nodeType":"VariableDeclaration","scope":7234,"src":"525:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7207,"name":"int256","nodeType":"ElementaryTypeName","src":"525:6:69","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7210,"mutability":"mutable","name":"startedAt","nameLocation":"548:9:69","nodeType":"VariableDeclaration","scope":7234,"src":"540:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7209,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7212,"mutability":"mutable","name":"updatedAt","nameLocation":"567:9:69","nodeType":"VariableDeclaration","scope":7234,"src":"559:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7211,"name":"uint256","nodeType":"ElementaryTypeName","src":"559:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7214,"mutability":"mutable","name":"answeredInRound","nameLocation":"585:15:69","nodeType":"VariableDeclaration","scope":7234,"src":"578:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":7213,"name":"uint80","nodeType":"ElementaryTypeName","src":"578:6:69","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"508:93:69"},"scope":7248,"src":"351:352:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3441],"body":{"id":7246,"nodeType":"Block","src":"813:25:69","statements":[{"expression":{"hexValue":"38","id":7244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"830:1:69","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":7243,"id":7245,"nodeType":"Return","src":"823:8:69"}]},"functionSelector":"6e91995a","id":7247,"implemented":true,"kind":"function","modifiers":[],"name":"decimalsByName","nameLocation":"718:14:69","nodeType":"FunctionDefinition","overrides":{"id":7240,"nodeType":"OverrideSpecifier","overrides":[],"src":"788:8:69"},"parameters":{"id":7239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7236,"mutability":"mutable","name":"base","nameLocation":"747:4:69","nodeType":"VariableDeclaration","scope":7247,"src":"733:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7235,"name":"string","nodeType":"ElementaryTypeName","src":"733:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7238,"mutability":"mutable","name":"quote","nameLocation":"767:5:69","nodeType":"VariableDeclaration","scope":7247,"src":"753:19:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7237,"name":"string","nodeType":"ElementaryTypeName","src":"753:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"732:41:69"},"returnParameters":{"id":7243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7247,"src":"806:5:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7241,"name":"uint8","nodeType":"ElementaryTypeName","src":"806:5:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"805:7:69"},"scope":7248,"src":"709:129:69","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7249,"src":"120:720:69","usedErrors":[],"usedEvents":[]}],"src":"41:800:69"},"id":69},"contracts/oracles/mocks/MockBinanceOracle.sol":{"ast":{"absolutePath":"contracts/oracles/mocks/MockBinanceOracle.sol","exportedSymbols":{"MockBinanceOracle":[7299],"OracleInterface":[3666],"OwnableUpgradeable":[342]},"id":7300,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7250,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:70"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":7252,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7300,"sourceUnit":343,"src":"66:103:70","symbolAliases":[{"foreign":{"id":7251,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"75:18:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../../interfaces/OracleInterface.sol","id":7254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7300,"sourceUnit":3699,"src":"170:71:70","symbolAliases":[{"foreign":{"id":7253,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"179:15:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7255,"name":"OwnableUpgradeable","nameLocations":["273:18:70"],"nodeType":"IdentifierPath","referencedDeclaration":342,"src":"273:18:70"},"id":7256,"nodeType":"InheritanceSpecifier","src":"273:18:70"},{"baseName":{"id":7257,"name":"OracleInterface","nameLocations":["293:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"293:15:70"},"id":7258,"nodeType":"InheritanceSpecifier","src":"293:15:70"}],"canonicalName":"MockBinanceOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7299,"linearizedBaseContracts":[7299,3666,342,1020,511],"name":"MockBinanceOracle","nameLocation":"252:17:70","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"5e9a523c","id":7262,"mutability":"mutable","name":"assetPrices","nameLocation":"350:11:70","nodeType":"VariableDeclaration","scope":7299,"src":"315:46:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":7261,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7259,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"315:27:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7260,"name":"uint256","nodeType":"ElementaryTypeName","src":"334:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":7265,"nodeType":"Block","src":"382:2:70","statements":[]},"id":7266,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7263,"nodeType":"ParameterList","parameters":[],"src":"379:2:70"},"returnParameters":{"id":7264,"nodeType":"ParameterList","parameters":[],"src":"382:0:70"},"scope":7299,"src":"368:16:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7271,"nodeType":"Block","src":"431:2:70","statements":[]},"functionSelector":"8129fc1c","id":7272,"implemented":true,"kind":"function","modifiers":[{"id":7269,"kind":"modifierInvocation","modifierName":{"id":7268,"name":"initializer","nameLocations":["419:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"419:11:70"},"nodeType":"ModifierInvocation","src":"419:11:70"}],"name":"initialize","nameLocation":"399:10:70","nodeType":"FunctionDefinition","parameters":{"id":7267,"nodeType":"ParameterList","parameters":[],"src":"409:2:70"},"returnParameters":{"id":7270,"nodeType":"ParameterList","parameters":[],"src":"431:0:70"},"scope":7299,"src":"390:43:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7285,"nodeType":"Block","src":"496:43:70","statements":[{"expression":{"id":7283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7279,"name":"assetPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7262,"src":"506:11:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7281,"indexExpression":{"id":7280,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7274,"src":"518:5:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"506:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7282,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7276,"src":"527:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"506:26:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7284,"nodeType":"ExpressionStatement","src":"506:26:70"}]},"functionSelector":"00e4768b","id":7286,"implemented":true,"kind":"function","modifiers":[],"name":"setPrice","nameLocation":"448:8:70","nodeType":"FunctionDefinition","parameters":{"id":7277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7274,"mutability":"mutable","name":"asset","nameLocation":"465:5:70","nodeType":"VariableDeclaration","scope":7286,"src":"457:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7273,"name":"address","nodeType":"ElementaryTypeName","src":"457:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7276,"mutability":"mutable","name":"price","nameLocation":"480:5:70","nodeType":"VariableDeclaration","scope":7286,"src":"472:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7275,"name":"uint256","nodeType":"ElementaryTypeName","src":"472:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"456:30:70"},"returnParameters":{"id":7278,"nodeType":"ParameterList","parameters":[],"src":"496:0:70"},"scope":7299,"src":"439:100:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3665],"body":{"id":7297,"nodeType":"Block","src":"608:42:70","statements":[{"expression":{"baseExpression":{"id":7293,"name":"assetPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7262,"src":"625:11:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7295,"indexExpression":{"id":7294,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"637:5:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"625:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7292,"id":7296,"nodeType":"Return","src":"618:25:70"}]},"functionSelector":"41976e09","id":7298,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"554:8:70","nodeType":"FunctionDefinition","parameters":{"id":7289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7288,"mutability":"mutable","name":"token","nameLocation":"571:5:70","nodeType":"VariableDeclaration","scope":7298,"src":"563:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7287,"name":"address","nodeType":"ElementaryTypeName","src":"563:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"562:15:70"},"returnParameters":{"id":7292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7298,"src":"599:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7290,"name":"uint256","nodeType":"ElementaryTypeName","src":"599:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"598:9:70"},"scope":7299,"src":"545:105:70","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":7300,"src":"243:409:70","usedErrors":[],"usedEvents":[227,357]}],"src":"41:612:70"},"id":70},"contracts/oracles/mocks/MockChainlinkOracle.sol":{"ast":{"absolutePath":"contracts/oracles/mocks/MockChainlinkOracle.sol","exportedSymbols":{"MockChainlinkOracle":[7353],"OracleInterface":[3666],"OwnableUpgradeable":[342]},"id":7354,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7301,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:71"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":7303,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7354,"sourceUnit":343,"src":"66:103:71","symbolAliases":[{"foreign":{"id":7302,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"75:18:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../../interfaces/OracleInterface.sol","id":7305,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7354,"sourceUnit":3699,"src":"170:71:71","symbolAliases":[{"foreign":{"id":7304,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"179:15:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7306,"name":"OwnableUpgradeable","nameLocations":["275:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":342,"src":"275:18:71"},"id":7307,"nodeType":"InheritanceSpecifier","src":"275:18:71"},{"baseName":{"id":7308,"name":"OracleInterface","nameLocations":["295:15:71"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"295:15:71"},"id":7309,"nodeType":"InheritanceSpecifier","src":"295:15:71"}],"canonicalName":"MockChainlinkOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7353,"linearizedBaseContracts":[7353,3666,342,1020,511],"name":"MockChainlinkOracle","nameLocation":"252:19:71","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"5e9a523c","id":7313,"mutability":"mutable","name":"assetPrices","nameLocation":"352:11:71","nodeType":"VariableDeclaration","scope":7353,"src":"317:46:71","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":7312,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7310,"name":"address","nodeType":"ElementaryTypeName","src":"325:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"317:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7311,"name":"uint256","nodeType":"ElementaryTypeName","src":"336:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":7316,"nodeType":"Block","src":"423:2:71","statements":[]},"id":7317,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7314,"nodeType":"ParameterList","parameters":[],"src":"420:2:71"},"returnParameters":{"id":7315,"nodeType":"ParameterList","parameters":[],"src":"423:0:71"},"scope":7353,"src":"409:16:71","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7325,"nodeType":"Block","src":"472:33:71","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7322,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"482:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"482:16:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7324,"nodeType":"ExpressionStatement","src":"482:16:71"}]},"functionSelector":"8129fc1c","id":7326,"implemented":true,"kind":"function","modifiers":[{"id":7320,"kind":"modifierInvocation","modifierName":{"id":7319,"name":"initializer","nameLocations":["460:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":413,"src":"460:11:71"},"nodeType":"ModifierInvocation","src":"460:11:71"}],"name":"initialize","nameLocation":"440:10:71","nodeType":"FunctionDefinition","parameters":{"id":7318,"nodeType":"ParameterList","parameters":[],"src":"450:2:71"},"returnParameters":{"id":7321,"nodeType":"ParameterList","parameters":[],"src":"472:0:71"},"scope":7353,"src":"431:74:71","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7339,"nodeType":"Block","src":"568:43:71","statements":[{"expression":{"id":7337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7333,"name":"assetPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"578:11:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7335,"indexExpression":{"id":7334,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7328,"src":"590:5:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"578:18:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7336,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7330,"src":"599:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"578:26:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7338,"nodeType":"ExpressionStatement","src":"578:26:71"}]},"functionSelector":"00e4768b","id":7340,"implemented":true,"kind":"function","modifiers":[],"name":"setPrice","nameLocation":"520:8:71","nodeType":"FunctionDefinition","parameters":{"id":7331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7328,"mutability":"mutable","name":"asset","nameLocation":"537:5:71","nodeType":"VariableDeclaration","scope":7340,"src":"529:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7327,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7330,"mutability":"mutable","name":"price","nameLocation":"552:5:71","nodeType":"VariableDeclaration","scope":7340,"src":"544:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7329,"name":"uint256","nodeType":"ElementaryTypeName","src":"544:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"528:30:71"},"returnParameters":{"id":7332,"nodeType":"ParameterList","parameters":[],"src":"568:0:71"},"scope":7353,"src":"511:100:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3665],"body":{"id":7351,"nodeType":"Block","src":"723:42:71","statements":[{"expression":{"baseExpression":{"id":7347,"name":"assetPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7313,"src":"740:11:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7349,"indexExpression":{"id":7348,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"752:5:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"740:18:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7346,"id":7350,"nodeType":"Return","src":"733:25:71"}]},"functionSelector":"41976e09","id":7352,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"669:8:71","nodeType":"FunctionDefinition","parameters":{"id":7343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7342,"mutability":"mutable","name":"token","nameLocation":"686:5:71","nodeType":"VariableDeclaration","scope":7352,"src":"678:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7341,"name":"address","nodeType":"ElementaryTypeName","src":"678:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"677:15:71"},"returnParameters":{"id":7346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7352,"src":"714:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7344,"name":"uint256","nodeType":"ElementaryTypeName","src":"714:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"713:9:71"},"scope":7353,"src":"660:105:71","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":7354,"src":"243:524:71","usedErrors":[],"usedEvents":[227,357]}],"src":"41:727:71"},"id":71},"contracts/oracles/mocks/MockPendlePtOracle.sol":{"ast":{"absolutePath":"contracts/oracles/mocks/MockPendlePtOracle.sol","exportedSymbols":{"Context":[1926],"IPendlePtOracle":[3568],"MockPendlePtOracle":[7471],"Ownable":[1206]},"id":7472,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7355,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:72"},{"absolutePath":"contracts/interfaces/IPendlePtOracle.sol","file":"../../interfaces/IPendlePtOracle.sol","id":7356,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7472,"sourceUnit":3569,"src":"66:46:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7357,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7472,"sourceUnit":1207,"src":"113:52:72","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7358,"name":"IPendlePtOracle","nameLocations":["198:15:72"],"nodeType":"IdentifierPath","referencedDeclaration":3568,"src":"198:15:72"},"id":7359,"nodeType":"InheritanceSpecifier","src":"198:15:72"},{"baseName":{"id":7360,"name":"Ownable","nameLocations":["215:7:72"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"215:7:72"},"id":7361,"nodeType":"InheritanceSpecifier","src":"215:7:72"}],"canonicalName":"MockPendlePtOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7471,"linearizedBaseContracts":[7471,1206,1926,3568],"name":"MockPendlePtOracle","nameLocation":"176:18:72","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"67848275","id":7367,"mutability":"mutable","name":"ptToAssetRate","nameLocation":"283:13:72","nodeType":"VariableDeclaration","scope":7471,"src":"229:67:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"},"typeName":{"id":7366,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7362,"name":"address","nodeType":"ElementaryTypeName","src":"237:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"229:46:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7365,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7363,"name":"uint32","nodeType":"ElementaryTypeName","src":"256:6:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Mapping","src":"248:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_uint256_$","typeString":"mapping(uint32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7364,"name":"uint256","nodeType":"ElementaryTypeName","src":"266:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"b151c07f","id":7373,"mutability":"mutable","name":"ptToSyRate","nameLocation":"356:10:72","nodeType":"VariableDeclaration","scope":7471,"src":"302:64:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"},"typeName":{"id":7372,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7368,"name":"address","nodeType":"ElementaryTypeName","src":"310:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"302:46:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7371,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7369,"name":"uint32","nodeType":"ElementaryTypeName","src":"329:6:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Mapping","src":"321:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_uint256_$","typeString":"mapping(uint32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7370,"name":"uint256","nodeType":"ElementaryTypeName","src":"339:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"body":{"id":7378,"nodeType":"Block","src":"397:2:72","statements":[]},"id":7379,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":7376,"kind":"baseConstructorSpecifier","modifierName":{"id":7375,"name":"Ownable","nameLocations":["387:7:72"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"387:7:72"},"nodeType":"ModifierInvocation","src":"387:9:72"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7374,"nodeType":"ParameterList","parameters":[],"src":"384:2:72"},"returnParameters":{"id":7377,"nodeType":"ParameterList","parameters":[],"src":"397:0:72"},"scope":7471,"src":"373:26:72","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7398,"nodeType":"Block","src":"497:55:72","statements":[{"expression":{"id":7396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":7390,"name":"ptToAssetRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7367,"src":"507:13:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"}},"id":7393,"indexExpression":{"id":7391,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7381,"src":"521:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"507:21:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_uint256_$","typeString":"mapping(uint32 => uint256)"}},"id":7394,"indexExpression":{"id":7392,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7383,"src":"529:8:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"507:31:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7395,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7385,"src":"541:4:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"507:38:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7397,"nodeType":"ExpressionStatement","src":"507:38:72"}]},"functionSelector":"b861c67c","id":7399,"implemented":true,"kind":"function","modifiers":[{"id":7388,"kind":"modifierInvocation","modifierName":{"id":7387,"name":"onlyOwner","nameLocations":["487:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"487:9:72"},"nodeType":"ModifierInvocation","src":"487:9:72"}],"name":"setPtToAssetRate","nameLocation":"414:16:72","nodeType":"FunctionDefinition","parameters":{"id":7386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7381,"mutability":"mutable","name":"market","nameLocation":"439:6:72","nodeType":"VariableDeclaration","scope":7399,"src":"431:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7380,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7383,"mutability":"mutable","name":"duration","nameLocation":"454:8:72","nodeType":"VariableDeclaration","scope":7399,"src":"447:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7382,"name":"uint32","nodeType":"ElementaryTypeName","src":"447:6:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":7385,"mutability":"mutable","name":"rate","nameLocation":"472:4:72","nodeType":"VariableDeclaration","scope":7399,"src":"464:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7384,"name":"uint256","nodeType":"ElementaryTypeName","src":"464:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"430:47:72"},"returnParameters":{"id":7389,"nodeType":"ParameterList","parameters":[],"src":"497:0:72"},"scope":7471,"src":"405:147:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7418,"nodeType":"Block","src":"647:52:72","statements":[{"expression":{"id":7416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":7410,"name":"ptToSyRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7373,"src":"657:10:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"}},"id":7413,"indexExpression":{"id":7411,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7401,"src":"668:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"657:18:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_uint256_$","typeString":"mapping(uint32 => uint256)"}},"id":7414,"indexExpression":{"id":7412,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7403,"src":"676:8:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"657:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7415,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7405,"src":"688:4:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"657:35:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7417,"nodeType":"ExpressionStatement","src":"657:35:72"}]},"functionSelector":"a109e12a","id":7419,"implemented":true,"kind":"function","modifiers":[{"id":7408,"kind":"modifierInvocation","modifierName":{"id":7407,"name":"onlyOwner","nameLocations":["637:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"637:9:72"},"nodeType":"ModifierInvocation","src":"637:9:72"}],"name":"setPtToSyRate","nameLocation":"567:13:72","nodeType":"FunctionDefinition","parameters":{"id":7406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7401,"mutability":"mutable","name":"market","nameLocation":"589:6:72","nodeType":"VariableDeclaration","scope":7419,"src":"581:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7400,"name":"address","nodeType":"ElementaryTypeName","src":"581:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7403,"mutability":"mutable","name":"duration","nameLocation":"604:8:72","nodeType":"VariableDeclaration","scope":7419,"src":"597:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7402,"name":"uint32","nodeType":"ElementaryTypeName","src":"597:6:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":7405,"mutability":"mutable","name":"rate","nameLocation":"622:4:72","nodeType":"VariableDeclaration","scope":7419,"src":"614:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7404,"name":"uint256","nodeType":"ElementaryTypeName","src":"614:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:47:72"},"returnParameters":{"id":7409,"nodeType":"ParameterList","parameters":[],"src":"647:0:72"},"scope":7471,"src":"558:141:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3545],"body":{"id":7434,"nodeType":"Block","src":"796:55:72","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":7428,"name":"ptToAssetRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7367,"src":"813:13:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"}},"id":7430,"indexExpression":{"id":7429,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7421,"src":"827:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"813:21:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_uint256_$","typeString":"mapping(uint32 => uint256)"}},"id":7432,"indexExpression":{"id":7431,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7423,"src":"835:8:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"813:31:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7427,"id":7433,"nodeType":"Return","src":"806:38:72"}]},"functionSelector":"abca0eab","id":7435,"implemented":true,"kind":"function","modifiers":[],"name":"getPtToAssetRate","nameLocation":"714:16:72","nodeType":"FunctionDefinition","parameters":{"id":7424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7421,"mutability":"mutable","name":"market","nameLocation":"739:6:72","nodeType":"VariableDeclaration","scope":7435,"src":"731:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7420,"name":"address","nodeType":"ElementaryTypeName","src":"731:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7423,"mutability":"mutable","name":"duration","nameLocation":"754:8:72","nodeType":"VariableDeclaration","scope":7435,"src":"747:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7422,"name":"uint32","nodeType":"ElementaryTypeName","src":"747:6:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"730:33:72"},"returnParameters":{"id":7427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7435,"src":"787:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7425,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"786:9:72"},"scope":7471,"src":"705:146:72","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3554],"body":{"id":7450,"nodeType":"Block","src":"945:52:72","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":7444,"name":"ptToSyRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7373,"src":"962:10:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint32 => uint256))"}},"id":7446,"indexExpression":{"id":7445,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"973:6:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"962:18:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_uint256_$","typeString":"mapping(uint32 => uint256)"}},"id":7448,"indexExpression":{"id":7447,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7439,"src":"981:8:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"962:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7443,"id":7449,"nodeType":"Return","src":"955:35:72"}]},"functionSelector":"a31426d1","id":7451,"implemented":true,"kind":"function","modifiers":[],"name":"getPtToSyRate","nameLocation":"866:13:72","nodeType":"FunctionDefinition","parameters":{"id":7440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7437,"mutability":"mutable","name":"market","nameLocation":"888:6:72","nodeType":"VariableDeclaration","scope":7451,"src":"880:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7436,"name":"address","nodeType":"ElementaryTypeName","src":"880:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7439,"mutability":"mutable","name":"duration","nameLocation":"903:8:72","nodeType":"VariableDeclaration","scope":7451,"src":"896:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7438,"name":"uint32","nodeType":"ElementaryTypeName","src":"896:6:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"879:33:72"},"returnParameters":{"id":7443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7451,"src":"936:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7441,"name":"uint256","nodeType":"ElementaryTypeName","src":"936:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"935:9:72"},"scope":7471,"src":"857:140:72","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3567],"body":{"id":7469,"nodeType":"Block","src":"1240:40:72","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":7464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1258:5:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1265:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"74727565","id":7466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1268:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":7467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1257:16:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$_t_bool_$","typeString":"tuple(bool,int_const 0,bool)"}},"functionReturnParameters":7463,"id":7468,"nodeType":"Return","src":"1250:23:72"}]},"functionSelector":"873e9600","id":7470,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleState","nameLocation":"1012:14:72","nodeType":"FunctionDefinition","parameters":{"id":7456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7470,"src":"1036:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7452,"name":"address","nodeType":"ElementaryTypeName","src":"1036:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7470,"src":"1066:6:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7454,"name":"uint32","nodeType":"ElementaryTypeName","src":"1066:6:72","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1026:67:72"},"returnParameters":{"id":7463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7458,"mutability":"mutable","name":"increaseCardinalityRequired","nameLocation":"1146:27:72","nodeType":"VariableDeclaration","scope":7470,"src":"1141:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7457,"name":"bool","nodeType":"ElementaryTypeName","src":"1141:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7460,"mutability":"mutable","name":"cardinalityRequired","nameLocation":"1182:19:72","nodeType":"VariableDeclaration","scope":7470,"src":"1175:26:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7459,"name":"uint16","nodeType":"ElementaryTypeName","src":"1175:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7462,"mutability":"mutable","name":"oldestObservationSatisfied","nameLocation":"1208:26:72","nodeType":"VariableDeclaration","scope":7470,"src":"1203:31:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7461,"name":"bool","nodeType":"ElementaryTypeName","src":"1203:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1140:95:72"},"scope":7471,"src":"1003:277:72","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":7472,"src":"167:1115:72","usedErrors":[],"usedEvents":[1107]}],"src":"41:1242:72"},"id":72},"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol":{"ast":{"absolutePath":"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol","exportedSymbols":{"Context":[1926],"ISfrxEthFraxOracle":[3595],"MockSfrxEthFraxOracle":[7532],"Ownable":[1206]},"id":7533,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7473,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:73"},{"absolutePath":"contracts/interfaces/ISfrxEthFraxOracle.sol","file":"../../interfaces/ISfrxEthFraxOracle.sol","id":7474,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7533,"sourceUnit":3596,"src":"66:49:73","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7475,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7533,"sourceUnit":1207,"src":"116:52:73","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7476,"name":"ISfrxEthFraxOracle","nameLocations":["204:18:73"],"nodeType":"IdentifierPath","referencedDeclaration":3595,"src":"204:18:73"},"id":7477,"nodeType":"InheritanceSpecifier","src":"204:18:73"},{"baseName":{"id":7478,"name":"Ownable","nameLocations":["224:7:73"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"224:7:73"},"id":7479,"nodeType":"InheritanceSpecifier","src":"224:7:73"}],"canonicalName":"MockSfrxEthFraxOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7532,"linearizedBaseContracts":[7532,1206,1926,3595],"name":"MockSfrxEthFraxOracle","nameLocation":"179:21:73","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"5648718b","id":7481,"mutability":"mutable","name":"isBadData","nameLocation":"250:9:73","nodeType":"VariableDeclaration","scope":7532,"src":"238:21:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7480,"name":"bool","nodeType":"ElementaryTypeName","src":"238:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"0683e4ca","id":7483,"mutability":"mutable","name":"priceLow","nameLocation":"280:8:73","nodeType":"VariableDeclaration","scope":7532,"src":"265:23:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7482,"name":"uint256","nodeType":"ElementaryTypeName","src":"265:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"be00a66e","id":7485,"mutability":"mutable","name":"priceHigh","nameLocation":"309:9:73","nodeType":"VariableDeclaration","scope":7532,"src":"294:24:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7484,"name":"uint256","nodeType":"ElementaryTypeName","src":"294:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":7490,"nodeType":"Block","src":"349:2:73","statements":[]},"id":7491,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":7488,"kind":"baseConstructorSpecifier","modifierName":{"id":7487,"name":"Ownable","nameLocations":["339:7:73"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"339:7:73"},"nodeType":"ModifierInvocation","src":"339:9:73"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7486,"nodeType":"ParameterList","parameters":[],"src":"336:2:73"},"returnParameters":{"id":7489,"nodeType":"ParameterList","parameters":[],"src":"349:0:73"},"scope":7532,"src":"325:26:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7514,"nodeType":"Block","src":"451:101:73","statements":[{"expression":{"id":7504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7502,"name":"isBadData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"461:9:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7503,"name":"_isBadData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7493,"src":"473:10:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"461:22:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7505,"nodeType":"ExpressionStatement","src":"461:22:73"},{"expression":{"id":7508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7506,"name":"priceLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"493:8:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7507,"name":"_priceLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7495,"src":"504:9:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"493:20:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7509,"nodeType":"ExpressionStatement","src":"493:20:73"},{"expression":{"id":7512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7510,"name":"priceHigh","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"523:9:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7511,"name":"_priceHigh","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7497,"src":"535:10:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"523:22:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7513,"nodeType":"ExpressionStatement","src":"523:22:73"}]},"functionSelector":"2ade707e","id":7515,"implemented":true,"kind":"function","modifiers":[{"id":7500,"kind":"modifierInvocation","modifierName":{"id":7499,"name":"onlyOwner","nameLocations":["441:9:73"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"441:9:73"},"nodeType":"ModifierInvocation","src":"441:9:73"}],"name":"setPrices","nameLocation":"366:9:73","nodeType":"FunctionDefinition","parameters":{"id":7498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7493,"mutability":"mutable","name":"_isBadData","nameLocation":"381:10:73","nodeType":"VariableDeclaration","scope":7515,"src":"376:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7492,"name":"bool","nodeType":"ElementaryTypeName","src":"376:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7495,"mutability":"mutable","name":"_priceLow","nameLocation":"401:9:73","nodeType":"VariableDeclaration","scope":7515,"src":"393:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7494,"name":"uint256","nodeType":"ElementaryTypeName","src":"393:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7497,"mutability":"mutable","name":"_priceHigh","nameLocation":"420:10:73","nodeType":"VariableDeclaration","scope":7515,"src":"412:18:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7496,"name":"uint256","nodeType":"ElementaryTypeName","src":"412:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"375:56:73"},"returnParameters":{"id":7501,"nodeType":"ParameterList","parameters":[],"src":"451:0:73"},"scope":7532,"src":"357:195:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3594],"body":{"id":7530,"nodeType":"Block","src":"635:56:73","statements":[{"expression":{"components":[{"id":7525,"name":"isBadData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"653:9:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7526,"name":"priceLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"664:8:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7527,"name":"priceHigh","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"674:9:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7528,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"652:32:73","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"functionReturnParameters":7524,"id":7529,"nodeType":"Return","src":"645:39:73"}]},"functionSelector":"bd9a548b","id":7531,"implemented":true,"kind":"function","modifiers":[],"name":"getPrices","nameLocation":"567:9:73","nodeType":"FunctionDefinition","overrides":{"id":7517,"nodeType":"OverrideSpecifier","overrides":[],"src":"593:8:73"},"parameters":{"id":7516,"nodeType":"ParameterList","parameters":[],"src":"576:2:73"},"returnParameters":{"id":7524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7531,"src":"611:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7518,"name":"bool","nodeType":"ElementaryTypeName","src":"611:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7531,"src":"617:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7520,"name":"uint256","nodeType":"ElementaryTypeName","src":"617:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7531,"src":"626:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7522,"name":"uint256","nodeType":"ElementaryTypeName","src":"626:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"610:24:73"},"scope":7532,"src":"558:133:73","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7533,"src":"170:523:73","usedErrors":[],"usedEvents":[1107]}],"src":"41:653:73"},"id":73},"contracts/test/BEP20Harness.sol":{"ast":{"absolutePath":"contracts/test/BEP20Harness.sol","exportedSymbols":{"BEP20Harness":[7580],"Context":[1926],"ERC20":[1793],"IERC20":[1871],"IERC20Metadata":[1896]},"id":7581,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7534,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:74"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":7535,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7581,"sourceUnit":1794,"src":"66:55:74","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7536,"name":"ERC20","nameLocations":["148:5:74"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"148:5:74"},"id":7537,"nodeType":"InheritanceSpecifier","src":"148:5:74"}],"canonicalName":"BEP20Harness","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7580,"linearizedBaseContracts":[7580,1793,1896,1871,1926],"name":"BEP20Harness","nameLocation":"132:12:74","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"4511bf6b","id":7540,"mutability":"mutable","name":"decimalsInternal","nameLocation":"173:16:74","nodeType":"VariableDeclaration","scope":7580,"src":"160:34:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7538,"name":"uint8","nodeType":"ElementaryTypeName","src":"160:5:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3138","id":7539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"192:2:74","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"body":{"id":7557,"nodeType":"Block","src":"296:45:74","statements":[{"expression":{"id":7555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7553,"name":"decimalsInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7540,"src":"306:16:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7554,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7546,"src":"325:9:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"306:28:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7556,"nodeType":"ExpressionStatement","src":"306:28:74"}]},"id":7558,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7549,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"280:5:74","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7550,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"287:7:74","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":7551,"kind":"baseConstructorSpecifier","modifierName":{"id":7548,"name":"ERC20","nameLocations":["274:5:74"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"274:5:74"},"nodeType":"ModifierInvocation","src":"274:21:74"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7542,"mutability":"mutable","name":"name_","nameLocation":"227:5:74","nodeType":"VariableDeclaration","scope":7558,"src":"213:19:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7541,"name":"string","nodeType":"ElementaryTypeName","src":"213:6:74","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7544,"mutability":"mutable","name":"symbol_","nameLocation":"248:7:74","nodeType":"VariableDeclaration","scope":7558,"src":"234:21:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7543,"name":"string","nodeType":"ElementaryTypeName","src":"234:6:74","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7546,"mutability":"mutable","name":"decimals_","nameLocation":"263:9:74","nodeType":"VariableDeclaration","scope":7558,"src":"257:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7545,"name":"uint8","nodeType":"ElementaryTypeName","src":"257:5:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"212:61:74"},"returnParameters":{"id":7552,"nodeType":"ParameterList","parameters":[],"src":"296:0:74"},"scope":7580,"src":"201:140:74","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7569,"nodeType":"Block","src":"388:42:74","statements":[{"expression":{"arguments":[{"expression":{"id":7564,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"404:3:74","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"408:6:74","memberName":"sender","nodeType":"MemberAccess","src":"404:10:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7560,"src":"416:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7563,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"398:5:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"398:25:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7568,"nodeType":"ExpressionStatement","src":"398:25:74"}]},"functionSelector":"57915897","id":7570,"implemented":true,"kind":"function","modifiers":[],"name":"faucet","nameLocation":"356:6:74","nodeType":"FunctionDefinition","parameters":{"id":7561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7560,"mutability":"mutable","name":"amount","nameLocation":"371:6:74","nodeType":"VariableDeclaration","scope":7570,"src":"363:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7559,"name":"uint256","nodeType":"ElementaryTypeName","src":"363:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"362:16:74"},"returnParameters":{"id":7562,"nodeType":"ParameterList","parameters":[],"src":"388:0:74"},"scope":7580,"src":"347:83:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1281],"body":{"id":7578,"nodeType":"Block","src":"501:40:74","statements":[{"expression":{"id":7576,"name":"decimalsInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7540,"src":"518:16:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":7575,"id":7577,"nodeType":"Return","src":"511:23:74"}]},"functionSelector":"313ce567","id":7579,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"445:8:74","nodeType":"FunctionDefinition","overrides":{"id":7572,"nodeType":"OverrideSpecifier","overrides":[],"src":"476:8:74"},"parameters":{"id":7571,"nodeType":"ParameterList","parameters":[],"src":"453:2:74"},"returnParameters":{"id":7575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7574,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7579,"src":"494:5:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7573,"name":"uint8","nodeType":"ElementaryTypeName","src":"494:5:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"493:7:74"},"scope":7580,"src":"436:105:74","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":7581,"src":"123:420:74","usedErrors":[],"usedEvents":[1805,1814]}],"src":"41:503:74"},"id":74},"contracts/test/MockAnkrBNB.sol":{"ast":{"absolutePath":"contracts/test/MockAnkrBNB.sol","exportedSymbols":{"Context":[1926],"ERC20":[1793],"IAnkrBNB":[3465],"MockAnkrBNB":[7675],"Ownable":[1206]},"id":7676,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7582,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:75"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":7584,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7676,"sourceUnit":1794,"src":"130:70:75","symbolAliases":[{"foreign":{"id":7583,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"139:5:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAnkrBNB.sol","file":"../interfaces/IAnkrBNB.sol","id":7586,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7676,"sourceUnit":3466,"src":"201:54:75","symbolAliases":[{"foreign":{"id":7585,"name":"IAnkrBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3465,"src":"210:8:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7587,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7676,"sourceUnit":1207,"src":"256:52:75","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7588,"name":"ERC20","nameLocations":["334:5:75"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"334:5:75"},"id":7589,"nodeType":"InheritanceSpecifier","src":"334:5:75"},{"baseName":{"id":7590,"name":"Ownable","nameLocations":["341:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"341:7:75"},"id":7591,"nodeType":"InheritanceSpecifier","src":"341:7:75"},{"baseName":{"id":7592,"name":"IAnkrBNB","nameLocations":["350:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":3465,"src":"350:8:75"},"id":7593,"nodeType":"InheritanceSpecifier","src":"350:8:75"}],"canonicalName":"MockAnkrBNB","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7675,"linearizedBaseContracts":[7675,3465,1206,1793,1896,1871,1926],"name":"MockAnkrBNB","nameLocation":"319:11:75","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7595,"mutability":"immutable","name":"_decimals","nameLocation":"389:9:75","nodeType":"VariableDeclaration","scope":7675,"src":"365:33:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7594,"name":"uint8","nodeType":"ElementaryTypeName","src":"365:5:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"functionSelector":"3ba0b9a9","id":7597,"mutability":"mutable","name":"exchangeRate","nameLocation":"419:12:75","nodeType":"VariableDeclaration","scope":7675,"src":"404:27:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7596,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":7616,"nodeType":"Block","src":"543:38:75","statements":[{"expression":{"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7612,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7595,"src":"553:9:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7613,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7603,"src":"565:9:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"553:21:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7615,"nodeType":"ExpressionStatement","src":"553:21:75"}]},"id":7617,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7606,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7599,"src":"517:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7607,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7601,"src":"524:7:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":7608,"kind":"baseConstructorSpecifier","modifierName":{"id":7605,"name":"ERC20","nameLocations":["511:5:75"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"511:5:75"},"nodeType":"ModifierInvocation","src":"511:21:75"},{"arguments":[],"id":7610,"kind":"baseConstructorSpecifier","modifierName":{"id":7609,"name":"Ownable","nameLocations":["533:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"533:7:75"},"nodeType":"ModifierInvocation","src":"533:9:75"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7599,"mutability":"mutable","name":"name_","nameLocation":"464:5:75","nodeType":"VariableDeclaration","scope":7617,"src":"450:19:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7598,"name":"string","nodeType":"ElementaryTypeName","src":"450:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7601,"mutability":"mutable","name":"symbol_","nameLocation":"485:7:75","nodeType":"VariableDeclaration","scope":7617,"src":"471:21:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7600,"name":"string","nodeType":"ElementaryTypeName","src":"471:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7603,"mutability":"mutable","name":"decimals_","nameLocation":"500:9:75","nodeType":"VariableDeclaration","scope":7617,"src":"494:15:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7602,"name":"uint8","nodeType":"ElementaryTypeName","src":"494:5:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"449:61:75"},"returnParameters":{"id":7611,"nodeType":"ParameterList","parameters":[],"src":"543:0:75"},"scope":7675,"src":"438:143:75","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7628,"nodeType":"Block","src":"628:42:75","statements":[{"expression":{"arguments":[{"expression":{"id":7623,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"644:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"648:6:75","memberName":"sender","nodeType":"MemberAccess","src":"644:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7625,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7619,"src":"656:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7622,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"638:5:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"638:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7627,"nodeType":"ExpressionStatement","src":"638:25:75"}]},"functionSelector":"57915897","id":7629,"implemented":true,"kind":"function","modifiers":[],"name":"faucet","nameLocation":"596:6:75","nodeType":"FunctionDefinition","parameters":{"id":7620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7619,"mutability":"mutable","name":"amount","nameLocation":"611:6:75","nodeType":"VariableDeclaration","scope":7629,"src":"603:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7618,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"602:16:75"},"returnParameters":{"id":7621,"nodeType":"ParameterList","parameters":[],"src":"628:0:75"},"scope":7675,"src":"587:83:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7640,"nodeType":"Block","src":"735:36:75","statements":[{"expression":{"id":7638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7636,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7597,"src":"745:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7637,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7631,"src":"760:4:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"745:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7639,"nodeType":"ExpressionStatement","src":"745:19:75"}]},"functionSelector":"0904af85","id":7641,"implemented":true,"kind":"function","modifiers":[{"id":7634,"kind":"modifierInvocation","modifierName":{"id":7633,"name":"onlyOwner","nameLocations":["725:9:75"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"725:9:75"},"nodeType":"ModifierInvocation","src":"725:9:75"}],"name":"setSharesToBonds","nameLocation":"685:16:75","nodeType":"FunctionDefinition","parameters":{"id":7632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7631,"mutability":"mutable","name":"rate","nameLocation":"710:4:75","nodeType":"VariableDeclaration","scope":7641,"src":"702:12:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7630,"name":"uint256","nodeType":"ElementaryTypeName","src":"702:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"701:14:75"},"returnParameters":{"id":7635,"nodeType":"ParameterList","parameters":[],"src":"735:0:75"},"scope":7675,"src":"676:95:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3459],"body":{"id":7662,"nodeType":"Block","src":"857:76:75","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7649,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7643,"src":"875:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7650,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7597,"src":"884:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"875:21:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7652,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"874:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"901:2:75","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[{"id":7656,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7595,"src":"915:9:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"907:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7654,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:75","typeDescriptions":{}}},"id":7657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"907:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"901:24:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7659,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"900:26:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"874:52:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7648,"id":7661,"nodeType":"Return","src":"867:59:75"}]},"functionSelector":"6c58d43d","id":7663,"implemented":true,"kind":"function","modifiers":[],"name":"sharesToBonds","nameLocation":"786:13:75","nodeType":"FunctionDefinition","overrides":{"id":7645,"nodeType":"OverrideSpecifier","overrides":[],"src":"830:8:75"},"parameters":{"id":7644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7643,"mutability":"mutable","name":"amount","nameLocation":"808:6:75","nodeType":"VariableDeclaration","scope":7663,"src":"800:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7642,"name":"uint256","nodeType":"ElementaryTypeName","src":"800:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"799:16:75"},"returnParameters":{"id":7648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7663,"src":"848:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7646,"name":"uint256","nodeType":"ElementaryTypeName","src":"848:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"847:9:75"},"scope":7675,"src":"777:156:75","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1281,3464],"body":{"id":7673,"nodeType":"Block","src":"1021:33:75","statements":[{"expression":{"id":7671,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7595,"src":"1038:9:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":7670,"id":7672,"nodeType":"Return","src":"1031:16:75"}]},"functionSelector":"313ce567","id":7674,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"948:8:75","nodeType":"FunctionDefinition","overrides":{"id":7667,"nodeType":"OverrideSpecifier","overrides":[{"id":7665,"name":"ERC20","nameLocations":["988:5:75"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"988:5:75"},{"id":7666,"name":"IAnkrBNB","nameLocations":["995:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":3465,"src":"995:8:75"}],"src":"979:25:75"},"parameters":{"id":7664,"nodeType":"ParameterList","parameters":[],"src":"956:2:75"},"returnParameters":{"id":7670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7674,"src":"1014:5:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7668,"name":"uint8","nodeType":"ElementaryTypeName","src":"1014:5:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1013:7:75"},"scope":7675,"src":"939:115:75","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":7676,"src":"310:746:75","usedErrors":[],"usedEvents":[1107,1805,1814]}],"src":"105:952:75"},"id":75},"contracts/test/MockAsBNB.sol":{"ast":{"absolutePath":"contracts/test/MockAsBNB.sol","exportedSymbols":{"Context":[1926],"ERC20":[1793],"IAsBNB":[3478],"MockAsBNB":[7754],"Ownable":[1206]},"id":7755,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7677,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:76"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":7679,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7755,"sourceUnit":1794,"src":"130:70:76","symbolAliases":[{"foreign":{"id":7678,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"139:5:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IAsBNB.sol","file":"../interfaces/IAsBNB.sol","id":7681,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7755,"sourceUnit":3479,"src":"201:50:76","symbolAliases":[{"foreign":{"id":7680,"name":"IAsBNB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3478,"src":"210:6:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7682,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7755,"sourceUnit":1207,"src":"252:52:76","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7683,"name":"ERC20","nameLocations":["328:5:76"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"328:5:76"},"id":7684,"nodeType":"InheritanceSpecifier","src":"328:5:76"},{"baseName":{"id":7685,"name":"Ownable","nameLocations":["335:7:76"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"335:7:76"},"id":7686,"nodeType":"InheritanceSpecifier","src":"335:7:76"},{"baseName":{"id":7687,"name":"IAsBNB","nameLocations":["344:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":3478,"src":"344:6:76"},"id":7688,"nodeType":"InheritanceSpecifier","src":"344:6:76"}],"canonicalName":"MockAsBNB","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7754,"linearizedBaseContracts":[7754,3478,1206,1793,1896,1871,1926],"name":"MockAsBNB","nameLocation":"315:9:76","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7690,"mutability":"immutable","name":"_decimals","nameLocation":"381:9:76","nodeType":"VariableDeclaration","scope":7754,"src":"357:33:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7689,"name":"uint8","nodeType":"ElementaryTypeName","src":"357:5:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"baseFunctions":[3472],"constant":false,"functionSelector":"07546172","id":7692,"mutability":"mutable","name":"minter","nameLocation":"411:6:76","nodeType":"VariableDeclaration","scope":7754,"src":"396:21:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7691,"name":"address","nodeType":"ElementaryTypeName","src":"396:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":7717,"nodeType":"Block","src":"584:64:76","statements":[{"expression":{"id":7711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7709,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"594:9:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7710,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7698,"src":"606:9:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"594:21:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7712,"nodeType":"ExpressionStatement","src":"594:21:76"},{"expression":{"id":7715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7713,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7692,"src":"625:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7714,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7700,"src":"634:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"625:16:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7716,"nodeType":"ExpressionStatement","src":"625:16:76"}]},"id":7718,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7703,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7694,"src":"558:5:76","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7704,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7696,"src":"565:7:76","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":7705,"kind":"baseConstructorSpecifier","modifierName":{"id":7702,"name":"ERC20","nameLocations":["552:5:76"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"552:5:76"},"nodeType":"ModifierInvocation","src":"552:21:76"},{"arguments":[],"id":7707,"kind":"baseConstructorSpecifier","modifierName":{"id":7706,"name":"Ownable","nameLocations":["574:7:76"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"574:7:76"},"nodeType":"ModifierInvocation","src":"574:9:76"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7694,"mutability":"mutable","name":"name_","nameLocation":"459:5:76","nodeType":"VariableDeclaration","scope":7718,"src":"445:19:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7693,"name":"string","nodeType":"ElementaryTypeName","src":"445:6:76","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7696,"mutability":"mutable","name":"symbol_","nameLocation":"488:7:76","nodeType":"VariableDeclaration","scope":7718,"src":"474:21:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7695,"name":"string","nodeType":"ElementaryTypeName","src":"474:6:76","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7698,"mutability":"mutable","name":"decimals_","nameLocation":"511:9:76","nodeType":"VariableDeclaration","scope":7718,"src":"505:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7697,"name":"uint8","nodeType":"ElementaryTypeName","src":"505:5:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7700,"mutability":"mutable","name":"minter_","nameLocation":"538:7:76","nodeType":"VariableDeclaration","scope":7718,"src":"530:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7699,"name":"address","nodeType":"ElementaryTypeName","src":"530:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"435:116:76"},"returnParameters":{"id":7708,"nodeType":"ParameterList","parameters":[],"src":"584:0:76"},"scope":7754,"src":"424:224:76","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7729,"nodeType":"Block","src":"695:42:76","statements":[{"expression":{"arguments":[{"expression":{"id":7724,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"711:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"715:6:76","memberName":"sender","nodeType":"MemberAccess","src":"711:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7720,"src":"723:6:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7723,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"705:5:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"705:25:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7728,"nodeType":"ExpressionStatement","src":"705:25:76"}]},"functionSelector":"57915897","id":7730,"implemented":true,"kind":"function","modifiers":[],"name":"faucet","nameLocation":"663:6:76","nodeType":"FunctionDefinition","parameters":{"id":7721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7720,"mutability":"mutable","name":"amount","nameLocation":"678:6:76","nodeType":"VariableDeclaration","scope":7730,"src":"670:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7719,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"669:16:76"},"returnParameters":{"id":7722,"nodeType":"ParameterList","parameters":[],"src":"695:0:76"},"scope":7754,"src":"654:83:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7741,"nodeType":"Block","src":"798:33:76","statements":[{"expression":{"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7737,"name":"minter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7692,"src":"808:6:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7738,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7732,"src":"817:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"808:16:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7740,"nodeType":"ExpressionStatement","src":"808:16:76"}]},"functionSelector":"fca3b5aa","id":7742,"implemented":true,"kind":"function","modifiers":[{"id":7735,"kind":"modifierInvocation","modifierName":{"id":7734,"name":"onlyOwner","nameLocations":["788:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"788:9:76"},"nodeType":"ModifierInvocation","src":"788:9:76"}],"name":"setMinter","nameLocation":"752:9:76","nodeType":"FunctionDefinition","parameters":{"id":7733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7732,"mutability":"mutable","name":"minter_","nameLocation":"770:7:76","nodeType":"VariableDeclaration","scope":7742,"src":"762:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7731,"name":"address","nodeType":"ElementaryTypeName","src":"762:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"761:17:76"},"returnParameters":{"id":7736,"nodeType":"ParameterList","parameters":[],"src":"798:0:76"},"scope":7754,"src":"743:88:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1281,3477],"body":{"id":7752,"nodeType":"Block","src":"917:33:76","statements":[{"expression":{"id":7750,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"934:9:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":7749,"id":7751,"nodeType":"Return","src":"927:16:76"}]},"functionSelector":"313ce567","id":7753,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"846:8:76","nodeType":"FunctionDefinition","overrides":{"id":7746,"nodeType":"OverrideSpecifier","overrides":[{"id":7744,"name":"ERC20","nameLocations":["886:5:76"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"886:5:76"},{"id":7745,"name":"IAsBNB","nameLocations":["893:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":3478,"src":"893:6:76"}],"src":"877:23:76"},"parameters":{"id":7743,"nodeType":"ParameterList","parameters":[],"src":"854:2:76"},"returnParameters":{"id":7749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7753,"src":"910:5:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7747,"name":"uint8","nodeType":"ElementaryTypeName","src":"910:5:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"909:7:76"},"scope":7754,"src":"837:113:76","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":7755,"src":"306:646:76","usedErrors":[],"usedEvents":[1107,1805,1814]}],"src":"105:848:76"},"id":76},"contracts/test/MockAsBNBMinter.sol":{"ast":{"absolutePath":"contracts/test/MockAsBNBMinter.sol","exportedSymbols":{"IAsBNBMinter":[3488],"MockAsBNBMinter":[7772]},"id":7773,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7756,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:77"},{"absolutePath":"contracts/interfaces/IAsBNBMinter.sol","file":"../interfaces/IAsBNBMinter.sol","id":7758,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7773,"sourceUnit":3489,"src":"130:62:77","symbolAliases":[{"foreign":{"id":7757,"name":"IAsBNBMinter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3488,"src":"139:12:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7759,"name":"IAsBNBMinter","nameLocations":["222:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":3488,"src":"222:12:77"},"id":7760,"nodeType":"InheritanceSpecifier","src":"222:12:77"}],"canonicalName":"MockAsBNBMinter","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7772,"linearizedBaseContracts":[7772,3488],"name":"MockAsBNBMinter","nameLocation":"203:15:77","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[3487],"body":{"id":7770,"nodeType":"Block","src":"324:31:77","statements":[{"expression":{"id":7768,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7762,"src":"341:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7767,"id":7769,"nodeType":"Return","src":"334:14:77"}]},"functionSelector":"85906256","id":7771,"implemented":true,"kind":"function","modifiers":[],"name":"convertToTokens","nameLocation":"250:15:77","nodeType":"FunctionDefinition","overrides":{"id":7764,"nodeType":"OverrideSpecifier","overrides":[],"src":"297:8:77"},"parameters":{"id":7763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7762,"mutability":"mutable","name":"_amount","nameLocation":"274:7:77","nodeType":"VariableDeclaration","scope":7771,"src":"266:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7761,"name":"uint256","nodeType":"ElementaryTypeName","src":"266:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"265:17:77"},"returnParameters":{"id":7767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7771,"src":"315:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7765,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"314:9:77"},"scope":7772,"src":"241:114:77","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":7773,"src":"194:163:77","usedErrors":[],"usedEvents":[]}],"src":"105:253:77"},"id":77},"contracts/test/MockCallPrice.sol":{"ast":{"absolutePath":"contracts/test/MockCallPrice.sol","exportedSymbols":{"CorrelatedTokenOracleInterface":[7788],"MockCallPrice":[7887],"OracleInterface":[3666],"ResilientOracleInterface":[3686]},"id":7888,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7774,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:78"},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":7777,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7888,"sourceUnit":3699,"src":"130:94:78","symbolAliases":[{"foreign":{"id":7775,"name":"OracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"139:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7776,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"156:24:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"CorrelatedTokenOracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":7788,"linearizedBaseContracts":[7788],"name":"CorrelatedTokenOracleInterface","nameLocation":"236:30:78","nodeType":"ContractDefinition","nodes":[{"functionSelector":"69240426","id":7780,"implemented":false,"kind":"function","modifiers":[],"name":"updateSnapshot","nameLocation":"282:14:78","nodeType":"FunctionDefinition","parameters":{"id":7778,"nodeType":"ParameterList","parameters":[],"src":"296:2:78"},"returnParameters":{"id":7779,"nodeType":"ParameterList","parameters":[],"src":"307:0:78"},"scope":7788,"src":"273:35:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"41976e09","id":7787,"implemented":false,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"322:8:78","nodeType":"FunctionDefinition","parameters":{"id":7783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7782,"mutability":"mutable","name":"asset","nameLocation":"339:5:78","nodeType":"VariableDeclaration","scope":7787,"src":"331:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7781,"name":"address","nodeType":"ElementaryTypeName","src":"331:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"330:15:78"},"returnParameters":{"id":7786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7787,"src":"369:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7784,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"368:9:78"},"scope":7788,"src":"313:65:78","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7888,"src":"226:154:78","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"MockCallPrice","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7887,"linearizedBaseContracts":[7887],"name":"MockCallPrice","nameLocation":"391:13:78","nodeType":"ContractDefinition","nodes":[{"body":{"id":7815,"nodeType":"Block","src":"522:105:78","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7800,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"532:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_CorrelatedTokenOracleInterface_$7788","typeString":"contract CorrelatedTokenOracleInterface"}},"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"539:14:78","memberName":"updateSnapshot","nodeType":"MemberAccess","referencedDeclaration":7780,"src":"532:21:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":7803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"532:23:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7804,"nodeType":"ExpressionStatement","src":"532:23:78"},{"expression":{"components":[{"arguments":[{"id":7807,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"589:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7805,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"573:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_CorrelatedTokenOracleInterface_$7788","typeString":"contract CorrelatedTokenOracleInterface"}},"id":7806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"580:8:78","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":7787,"src":"573:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"573:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":7811,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"613:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7809,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"597:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_CorrelatedTokenOracleInterface_$7788","typeString":"contract CorrelatedTokenOracleInterface"}},"id":7810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"604:8:78","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":7787,"src":"597:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"597:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7813,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"572:48:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":7799,"id":7814,"nodeType":"Return","src":"565:55:78"}]},"functionSelector":"2cf689b4","id":7816,"implemented":true,"kind":"function","modifiers":[],"name":"getMultiPrice","nameLocation":"420:13:78","nodeType":"FunctionDefinition","parameters":{"id":7794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7791,"mutability":"mutable","name":"oracle","nameLocation":"465:6:78","nodeType":"VariableDeclaration","scope":7816,"src":"434:37:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CorrelatedTokenOracleInterface_$7788","typeString":"contract CorrelatedTokenOracleInterface"},"typeName":{"id":7790,"nodeType":"UserDefinedTypeName","pathNode":{"id":7789,"name":"CorrelatedTokenOracleInterface","nameLocations":["434:30:78"],"nodeType":"IdentifierPath","referencedDeclaration":7788,"src":"434:30:78"},"referencedDeclaration":7788,"src":"434:30:78","typeDescriptions":{"typeIdentifier":"t_contract$_CorrelatedTokenOracleInterface_$7788","typeString":"contract CorrelatedTokenOracleInterface"}},"visibility":"internal"},{"constant":false,"id":7793,"mutability":"mutable","name":"asset","nameLocation":"481:5:78","nodeType":"VariableDeclaration","scope":7816,"src":"473:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7792,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"433:54:78"},"returnParameters":{"id":7799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7816,"src":"504:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7795,"name":"uint256","nodeType":"ElementaryTypeName","src":"504:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7816,"src":"513:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7797,"name":"uint256","nodeType":"ElementaryTypeName","src":"513:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"503:18:78"},"scope":7887,"src":"411:216:78","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7850,"nodeType":"Block","src":"781:166:78","statements":[{"expression":{"arguments":[{"id":7831,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7821,"src":"810:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7828,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7819,"src":"791:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"798:11:78","memberName":"updatePrice","nodeType":"MemberAccess","referencedDeclaration":3673,"src":"791:18:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":7832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"791:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7833,"nodeType":"ExpressionStatement","src":"791:26:78"},{"expression":{"arguments":[{"id":7837,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7821,"src":"846:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7834,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7819,"src":"827:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"834:11:78","memberName":"updatePrice","nodeType":"MemberAccess","referencedDeclaration":3673,"src":"827:18:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":7838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7839,"nodeType":"ExpressionStatement","src":"827:26:78"},{"expression":{"components":[{"arguments":[{"id":7842,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7821,"src":"897:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7840,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7819,"src":"871:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"878:18:78","memberName":"getUnderlyingPrice","nodeType":"MemberAccess","referencedDeclaration":3685,"src":"871:25:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":7846,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7821,"src":"932:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7844,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7819,"src":"906:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"913:18:78","memberName":"getUnderlyingPrice","nodeType":"MemberAccess","referencedDeclaration":3685,"src":"906:25:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"906:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7848,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:70:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":7827,"id":7849,"nodeType":"Return","src":"863:77:78"}]},"functionSelector":"2bd6ec3e","id":7851,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingPriceResilientOracle","nameLocation":"642:33:78","nodeType":"FunctionDefinition","parameters":{"id":7822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7819,"mutability":"mutable","name":"oracle","nameLocation":"710:6:78","nodeType":"VariableDeclaration","scope":7851,"src":"685:31:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"},"typeName":{"id":7818,"nodeType":"UserDefinedTypeName","pathNode":{"id":7817,"name":"ResilientOracleInterface","nameLocations":["685:24:78"],"nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"685:24:78"},"referencedDeclaration":3686,"src":"685:24:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"visibility":"internal"},{"constant":false,"id":7821,"mutability":"mutable","name":"vToken","nameLocation":"734:6:78","nodeType":"VariableDeclaration","scope":7851,"src":"726:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7820,"name":"address","nodeType":"ElementaryTypeName","src":"726:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"675:71:78"},"returnParameters":{"id":7827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7851,"src":"763:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7823,"name":"uint256","nodeType":"ElementaryTypeName","src":"763:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7851,"src":"772:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7825,"name":"uint256","nodeType":"ElementaryTypeName","src":"772:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"762:18:78"},"scope":7887,"src":"633:314:78","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7885,"nodeType":"Block","src":"1095:152:78","statements":[{"expression":{"arguments":[{"id":7866,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"1129:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7863,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"1105:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1112:16:78","memberName":"updateAssetPrice","nodeType":"MemberAccess","referencedDeclaration":3678,"src":"1105:23:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":7867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1105:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7868,"nodeType":"ExpressionStatement","src":"1105:30:78"},{"expression":{"arguments":[{"id":7872,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"1169:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7869,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"1145:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1152:16:78","memberName":"updateAssetPrice","nodeType":"MemberAccess","referencedDeclaration":3678,"src":"1145:23:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":7873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1145:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7874,"nodeType":"ExpressionStatement","src":"1145:30:78"},{"expression":{"components":[{"arguments":[{"id":7877,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"1209:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7875,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"1193:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1200:8:78","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"1193:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1193:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":7881,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"1233:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7879,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"1217:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"id":7880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1224:8:78","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"1217:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1217:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1192:48:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":7862,"id":7884,"nodeType":"Return","src":"1185:55:78"}]},"functionSelector":"0ddd2e27","id":7886,"implemented":true,"kind":"function","modifiers":[],"name":"getAssetPriceResilientOracle","nameLocation":"962:28:78","nodeType":"FunctionDefinition","parameters":{"id":7857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7854,"mutability":"mutable","name":"oracle","nameLocation":"1025:6:78","nodeType":"VariableDeclaration","scope":7886,"src":"1000:31:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"},"typeName":{"id":7853,"nodeType":"UserDefinedTypeName","pathNode":{"id":7852,"name":"ResilientOracleInterface","nameLocations":["1000:24:78"],"nodeType":"IdentifierPath","referencedDeclaration":3686,"src":"1000:24:78"},"referencedDeclaration":3686,"src":"1000:24:78","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$3686","typeString":"contract ResilientOracleInterface"}},"visibility":"internal"},{"constant":false,"id":7856,"mutability":"mutable","name":"asset","nameLocation":"1049:5:78","nodeType":"VariableDeclaration","scope":7886,"src":"1041:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7855,"name":"address","nodeType":"ElementaryTypeName","src":"1041:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"990:70:78"},"returnParameters":{"id":7862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7886,"src":"1077:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7858,"name":"uint256","nodeType":"ElementaryTypeName","src":"1077:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7886,"src":"1086:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7860,"name":"uint256","nodeType":"ElementaryTypeName","src":"1086:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1076:18:78"},"scope":7887,"src":"953:294:78","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":7888,"src":"382:867:78","usedErrors":[],"usedEvents":[]}],"src":"105:1145:78"},"id":78},"contracts/test/MockEtherFiLiquidityPool.sol":{"ast":{"absolutePath":"contracts/test/MockEtherFiLiquidityPool.sol","exportedSymbols":{"Context":[1926],"IEtherFiLiquidityPool":[3519],"MockEtherFiLiquidityPool":[7933],"Ownable":[1206]},"id":7934,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7889,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:79"},{"absolutePath":"contracts/interfaces/IEtherFiLiquidityPool.sol","file":"../interfaces/IEtherFiLiquidityPool.sol","id":7890,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7934,"sourceUnit":3520,"src":"66:49:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7891,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7934,"sourceUnit":1207,"src":"116:52:79","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7892,"name":"IEtherFiLiquidityPool","nameLocations":["207:21:79"],"nodeType":"IdentifierPath","referencedDeclaration":3519,"src":"207:21:79"},"id":7893,"nodeType":"InheritanceSpecifier","src":"207:21:79"},{"baseName":{"id":7894,"name":"Ownable","nameLocations":["230:7:79"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"230:7:79"},"id":7895,"nodeType":"InheritanceSpecifier","src":"230:7:79"}],"canonicalName":"MockEtherFiLiquidityPool","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7933,"linearizedBaseContracts":[7933,1206,1926,3519],"name":"MockEtherFiLiquidityPool","nameLocation":"179:24:79","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":7896,"nodeType":"StructuredDocumentation","src":"244:55:79","text":"@notice The amount of eETH per weETH scaled by 1e18"},"functionSelector":"7c5a227c","id":7898,"mutability":"mutable","name":"amountPerShare","nameLocation":"319:14:79","nodeType":"VariableDeclaration","scope":7933,"src":"304:29:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7897,"name":"uint256","nodeType":"ElementaryTypeName","src":"304:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":7903,"nodeType":"Block","src":"364:2:79","statements":[]},"id":7904,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":7901,"kind":"baseConstructorSpecifier","modifierName":{"id":7900,"name":"Ownable","nameLocations":["354:7:79"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"354:7:79"},"nodeType":"ModifierInvocation","src":"354:9:79"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7899,"nodeType":"ParameterList","parameters":[],"src":"351:2:79"},"returnParameters":{"id":7902,"nodeType":"ParameterList","parameters":[],"src":"364:0:79"},"scope":7933,"src":"340:26:79","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7915,"nodeType":"Block","src":"443:49:79","statements":[{"expression":{"id":7913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7911,"name":"amountPerShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"453:14:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7912,"name":"_amountPerShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7906,"src":"470:15:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"453:32:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7914,"nodeType":"ExpressionStatement","src":"453:32:79"}]},"functionSelector":"b1ef362d","id":7916,"implemented":true,"kind":"function","modifiers":[{"id":7909,"kind":"modifierInvocation","modifierName":{"id":7908,"name":"onlyOwner","nameLocations":["433:9:79"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"433:9:79"},"nodeType":"ModifierInvocation","src":"433:9:79"}],"name":"setAmountPerShare","nameLocation":"381:17:79","nodeType":"FunctionDefinition","parameters":{"id":7907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7906,"mutability":"mutable","name":"_amountPerShare","nameLocation":"407:15:79","nodeType":"VariableDeclaration","scope":7916,"src":"399:23:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7905,"name":"uint256","nodeType":"ElementaryTypeName","src":"399:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"398:25:79"},"returnParameters":{"id":7910,"nodeType":"ParameterList","parameters":[],"src":"443:0:79"},"scope":7933,"src":"372:120:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3518],"body":{"id":7931,"nodeType":"Block","src":"579:56:79","statements":[{"expression":{"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":{"id":7924,"name":"_share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"597:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7925,"name":"amountPerShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"606:14:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"597:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"596:25:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31653138","id":7928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"624:4:79","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"596:32:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7923,"id":7930,"nodeType":"Return","src":"589:39:79"}]},"functionSelector":"561bddf8","id":7932,"implemented":true,"kind":"function","modifiers":[],"name":"amountForShare","nameLocation":"507:14:79","nodeType":"FunctionDefinition","overrides":{"id":7920,"nodeType":"OverrideSpecifier","overrides":[],"src":"552:8:79"},"parameters":{"id":7919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7918,"mutability":"mutable","name":"_share","nameLocation":"530:6:79","nodeType":"VariableDeclaration","scope":7932,"src":"522:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7917,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"521:16:79"},"returnParameters":{"id":7923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7932,"src":"570:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7921,"name":"uint256","nodeType":"ElementaryTypeName","src":"570:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"569:9:79"},"scope":7933,"src":"498:137:79","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7934,"src":"170:467:79","usedErrors":[],"usedEvents":[1107]}],"src":"41:597:79"},"id":79},"contracts/test/MockSFrax.sol":{"ast":{"absolutePath":"contracts/test/MockSFrax.sol","exportedSymbols":{"Context":[1926],"ERC20":[1793],"ISFrax":[3583],"MockSFrax":[8028],"Ownable":[1206]},"id":8029,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7935,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:80"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":7937,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8029,"sourceUnit":1794,"src":"130:70:80","symbolAliases":[{"foreign":{"id":7936,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"139:5:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ISFrax.sol","file":"../interfaces/ISFrax.sol","id":7939,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8029,"sourceUnit":3584,"src":"201:50:80","symbolAliases":[{"foreign":{"id":7938,"name":"ISFrax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"210:6:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7940,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8029,"sourceUnit":1207,"src":"252:52:80","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7941,"name":"ERC20","nameLocations":["328:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"328:5:80"},"id":7942,"nodeType":"InheritanceSpecifier","src":"328:5:80"},{"baseName":{"id":7943,"name":"Ownable","nameLocations":["335:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"335:7:80"},"id":7944,"nodeType":"InheritanceSpecifier","src":"335:7:80"},{"baseName":{"id":7945,"name":"ISFrax","nameLocations":["344:6:80"],"nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"344:6:80"},"id":7946,"nodeType":"InheritanceSpecifier","src":"344:6:80"}],"canonicalName":"MockSFrax","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8028,"linearizedBaseContracts":[8028,3583,1206,1793,1896,1871,1926],"name":"MockSFrax","nameLocation":"315:9:80","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7948,"mutability":"immutable","name":"_decimals","nameLocation":"381:9:80","nodeType":"VariableDeclaration","scope":8028,"src":"357:33:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7947,"name":"uint8","nodeType":"ElementaryTypeName","src":"357:5:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"functionSelector":"3ba0b9a9","id":7950,"mutability":"mutable","name":"exchangeRate","nameLocation":"411:12:80","nodeType":"VariableDeclaration","scope":8028,"src":"396:27:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7949,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":7969,"nodeType":"Block","src":"535:38:80","statements":[{"expression":{"id":7967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7965,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7948,"src":"545:9:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7966,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7956,"src":"557:9:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"545:21:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7968,"nodeType":"ExpressionStatement","src":"545:21:80"}]},"id":7970,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7959,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"509:5:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7960,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7954,"src":"516:7:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":7961,"kind":"baseConstructorSpecifier","modifierName":{"id":7958,"name":"ERC20","nameLocations":["503:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"503:5:80"},"nodeType":"ModifierInvocation","src":"503:21:80"},{"arguments":[],"id":7963,"kind":"baseConstructorSpecifier","modifierName":{"id":7962,"name":"Ownable","nameLocations":["525:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"525:7:80"},"nodeType":"ModifierInvocation","src":"525:9:80"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7952,"mutability":"mutable","name":"name_","nameLocation":"456:5:80","nodeType":"VariableDeclaration","scope":7970,"src":"442:19:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7951,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7954,"mutability":"mutable","name":"symbol_","nameLocation":"477:7:80","nodeType":"VariableDeclaration","scope":7970,"src":"463:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7953,"name":"string","nodeType":"ElementaryTypeName","src":"463:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7956,"mutability":"mutable","name":"decimals_","nameLocation":"492:9:80","nodeType":"VariableDeclaration","scope":7970,"src":"486:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7955,"name":"uint8","nodeType":"ElementaryTypeName","src":"486:5:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"441:61:80"},"returnParameters":{"id":7964,"nodeType":"ParameterList","parameters":[],"src":"535:0:80"},"scope":8028,"src":"430:143:80","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7981,"nodeType":"Block","src":"620:42:80","statements":[{"expression":{"arguments":[{"expression":{"id":7976,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"636:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"640:6:80","memberName":"sender","nodeType":"MemberAccess","src":"636:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7978,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7972,"src":"648:6:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7975,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"630:5:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"630:25:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7980,"nodeType":"ExpressionStatement","src":"630:25:80"}]},"functionSelector":"57915897","id":7982,"implemented":true,"kind":"function","modifiers":[],"name":"faucet","nameLocation":"588:6:80","nodeType":"FunctionDefinition","parameters":{"id":7973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7972,"mutability":"mutable","name":"amount","nameLocation":"603:6:80","nodeType":"VariableDeclaration","scope":7982,"src":"595:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7971,"name":"uint256","nodeType":"ElementaryTypeName","src":"595:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"594:16:80"},"returnParameters":{"id":7974,"nodeType":"ParameterList","parameters":[],"src":"620:0:80"},"scope":8028,"src":"579:83:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7993,"nodeType":"Block","src":"718:36:80","statements":[{"expression":{"id":7991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7989,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"728:12:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7990,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7984,"src":"743:4:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"728:19:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7992,"nodeType":"ExpressionStatement","src":"728:19:80"}]},"functionSelector":"34fcf437","id":7994,"implemented":true,"kind":"function","modifiers":[{"id":7987,"kind":"modifierInvocation","modifierName":{"id":7986,"name":"onlyOwner","nameLocations":["708:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"708:9:80"},"nodeType":"ModifierInvocation","src":"708:9:80"}],"name":"setRate","nameLocation":"677:7:80","nodeType":"FunctionDefinition","parameters":{"id":7985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7984,"mutability":"mutable","name":"rate","nameLocation":"693:4:80","nodeType":"VariableDeclaration","scope":7994,"src":"685:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7983,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"684:14:80"},"returnParameters":{"id":7988,"nodeType":"ParameterList","parameters":[],"src":"718:0:80"},"scope":8028,"src":"668:86:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3577],"body":{"id":8015,"nodeType":"Block","src":"842:76:80","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8002,"name":"shares","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"860:6:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8003,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"869:12:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"860:21:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8005,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"859:23:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"886:2:80","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[{"id":8009,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7948,"src":"900:9:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"892:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8007,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:80","typeDescriptions":{}}},"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"892:18:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"886:24:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8012,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"885:26:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"859:52:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8001,"id":8014,"nodeType":"Return","src":"852:59:80"}]},"functionSelector":"07a2d13a","id":8016,"implemented":true,"kind":"function","modifiers":[],"name":"convertToAssets","nameLocation":"769:15:80","nodeType":"FunctionDefinition","overrides":{"id":7998,"nodeType":"OverrideSpecifier","overrides":[],"src":"815:8:80"},"parameters":{"id":7997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7996,"mutability":"mutable","name":"shares","nameLocation":"793:6:80","nodeType":"VariableDeclaration","scope":8016,"src":"785:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7995,"name":"uint256","nodeType":"ElementaryTypeName","src":"785:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"784:16:80"},"returnParameters":{"id":8001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8016,"src":"833:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7999,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:9:80"},"scope":8028,"src":"760:158:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1281,3582],"body":{"id":8026,"nodeType":"Block","src":"1004:33:80","statements":[{"expression":{"id":8024,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7948,"src":"1021:9:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8023,"id":8025,"nodeType":"Return","src":"1014:16:80"}]},"functionSelector":"313ce567","id":8027,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"933:8:80","nodeType":"FunctionDefinition","overrides":{"id":8020,"nodeType":"OverrideSpecifier","overrides":[{"id":8018,"name":"ERC20","nameLocations":["973:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"973:5:80"},{"id":8019,"name":"ISFrax","nameLocations":["980:6:80"],"nodeType":"IdentifierPath","referencedDeclaration":3583,"src":"980:6:80"}],"src":"964:23:80"},"parameters":{"id":8017,"nodeType":"ParameterList","parameters":[],"src":"941:2:80"},"returnParameters":{"id":8023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8022,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8027,"src":"997:5:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8021,"name":"uint8","nodeType":"ElementaryTypeName","src":"997:5:80","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"996:7:80"},"scope":8028,"src":"924:113:80","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":8029,"src":"306:733:80","usedErrors":[],"usedEvents":[1107,1805,1814]}],"src":"105:935:80"},"id":80},"contracts/test/MockSimpleOracle.sol":{"ast":{"absolutePath":"contracts/test/MockSimpleOracle.sol","exportedSymbols":{"BoundValidatorInterface":[3698],"MockBoundValidator":[8139],"MockSimpleOracle":[8080],"OracleInterface":[3666],"ResilientOracleInterface":[3686]},"id":8140,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8030,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:81"},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../interfaces/OracleInterface.sol","id":8031,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8140,"sourceUnit":3699,"src":"66:43:81","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8032,"name":"OracleInterface","nameLocations":["140:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"140:15:81"},"id":8033,"nodeType":"InheritanceSpecifier","src":"140:15:81"}],"canonicalName":"MockSimpleOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8080,"linearizedBaseContracts":[8080,3666],"name":"MockSimpleOracle","nameLocation":"120:16:81","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"cfed246b","id":8037,"mutability":"mutable","name":"prices","nameLocation":"197:6:81","nodeType":"VariableDeclaration","scope":8080,"src":"162:41:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8036,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8034,"name":"address","nodeType":"ElementaryTypeName","src":"170:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"162:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8035,"name":"uint256","nodeType":"ElementaryTypeName","src":"181:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":8040,"nodeType":"Block","src":"224:18:81","statements":[]},"id":8041,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8038,"nodeType":"ParameterList","parameters":[],"src":"221:2:81"},"returnParameters":{"id":8039,"nodeType":"ParameterList","parameters":[],"src":"224:0:81"},"scope":8080,"src":"210:32:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8052,"nodeType":"Block","src":"324:38:81","statements":[{"expression":{"baseExpression":{"id":8048,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8037,"src":"341:6:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8050,"indexExpression":{"id":8049,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8043,"src":"348:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"341:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8047,"id":8051,"nodeType":"Return","src":"334:21:81"}]},"functionSelector":"fc57d4df","id":8053,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingPrice","nameLocation":"257:18:81","nodeType":"FunctionDefinition","parameters":{"id":8044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8043,"mutability":"mutable","name":"vToken","nameLocation":"284:6:81","nodeType":"VariableDeclaration","scope":8053,"src":"276:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8042,"name":"address","nodeType":"ElementaryTypeName","src":"276:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"275:16:81"},"returnParameters":{"id":8047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8053,"src":"315:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8045,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"314:9:81"},"scope":8080,"src":"248:114:81","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3665],"body":{"id":8064,"nodeType":"Block","src":"433:37:81","statements":[{"expression":{"baseExpression":{"id":8060,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8037,"src":"450:6:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8062,"indexExpression":{"id":8061,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8055,"src":"457:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"450:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8059,"id":8063,"nodeType":"Return","src":"443:20:81"}]},"functionSelector":"41976e09","id":8065,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"377:8:81","nodeType":"FunctionDefinition","parameters":{"id":8056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8055,"mutability":"mutable","name":"asset","nameLocation":"394:5:81","nodeType":"VariableDeclaration","scope":8065,"src":"386:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8054,"name":"address","nodeType":"ElementaryTypeName","src":"386:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"385:15:81"},"returnParameters":{"id":8059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8065,"src":"424:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8057,"name":"uint256","nodeType":"ElementaryTypeName","src":"424:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"423:9:81"},"scope":8080,"src":"368:102:81","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":8078,"nodeType":"Block","src":"532:39:81","statements":[{"expression":{"id":8076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8072,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8037,"src":"542:6:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8074,"indexExpression":{"id":8073,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8067,"src":"549:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"542:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8075,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"559:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"542:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8077,"nodeType":"ExpressionStatement","src":"542:22:81"}]},"functionSelector":"00e4768b","id":8079,"implemented":true,"kind":"function","modifiers":[],"name":"setPrice","nameLocation":"485:8:81","nodeType":"FunctionDefinition","parameters":{"id":8070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8067,"mutability":"mutable","name":"vToken","nameLocation":"502:6:81","nodeType":"VariableDeclaration","scope":8079,"src":"494:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8066,"name":"address","nodeType":"ElementaryTypeName","src":"494:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8069,"mutability":"mutable","name":"price","nameLocation":"518:5:81","nodeType":"VariableDeclaration","scope":8079,"src":"510:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8068,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:31:81"},"returnParameters":{"id":8071,"nodeType":"ParameterList","parameters":[],"src":"532:0:81"},"scope":8080,"src":"476:95:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8140,"src":"111:462:81","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":8081,"name":"BoundValidatorInterface","nameLocations":["606:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":3698,"src":"606:23:81"},"id":8082,"nodeType":"InheritanceSpecifier","src":"606:23:81"}],"canonicalName":"MockBoundValidator","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8139,"linearizedBaseContracts":[8139,3698],"name":"MockBoundValidator","nameLocation":"584:18:81","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"a050bcb3","id":8086,"mutability":"mutable","name":"validateResults","nameLocation":"668:15:81","nodeType":"VariableDeclaration","scope":8139,"src":"636:47:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8085,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8083,"name":"address","nodeType":"ElementaryTypeName","src":"644:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"636:24:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8084,"name":"bool","nodeType":"ElementaryTypeName","src":"655:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"8146bf7f","id":8088,"mutability":"mutable","name":"twapUpdated","nameLocation":"701:11:81","nodeType":"VariableDeclaration","scope":8139,"src":"689:23:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8087,"name":"bool","nodeType":"ElementaryTypeName","src":"689:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"body":{"id":8091,"nodeType":"Block","src":"733:18:81","statements":[]},"id":8092,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8089,"nodeType":"ParameterList","parameters":[],"src":"730:2:81"},"returnParameters":{"id":8090,"nodeType":"ParameterList","parameters":[],"src":"733:0:81"},"scope":8139,"src":"719:32:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3697],"body":{"id":8107,"nodeType":"Block","src":"914:47:81","statements":[{"expression":{"baseExpression":{"id":8103,"name":"validateResults","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"931:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8105,"indexExpression":{"id":8104,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8094,"src":"947:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"931:23:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8102,"id":8106,"nodeType":"Return","src":"924:30:81"}]},"functionSelector":"97c7033e","id":8108,"implemented":true,"kind":"function","modifiers":[],"name":"validatePriceWithAnchorPrice","nameLocation":"766:28:81","nodeType":"FunctionDefinition","parameters":{"id":8099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8094,"mutability":"mutable","name":"vToken","nameLocation":"812:6:81","nodeType":"VariableDeclaration","scope":8108,"src":"804:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8093,"name":"address","nodeType":"ElementaryTypeName","src":"804:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8096,"mutability":"mutable","name":"reporterPrice","nameLocation":"836:13:81","nodeType":"VariableDeclaration","scope":8108,"src":"828:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8095,"name":"uint256","nodeType":"ElementaryTypeName","src":"828:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8098,"mutability":"mutable","name":"anchorPrice","nameLocation":"867:11:81","nodeType":"VariableDeclaration","scope":8108,"src":"859:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8097,"name":"uint256","nodeType":"ElementaryTypeName","src":"859:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"794:90:81"},"returnParameters":{"id":8102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8108,"src":"908:4:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8100,"name":"bool","nodeType":"ElementaryTypeName","src":"908:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"907:6:81"},"scope":8139,"src":"757:204:81","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":8123,"nodeType":"Block","src":"1128:46:81","statements":[{"expression":{"baseExpression":{"id":8119,"name":"validateResults","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"1145:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8121,"indexExpression":{"id":8120,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8110,"src":"1161:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1145:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8118,"id":8122,"nodeType":"Return","src":"1138:29:81"}]},"functionSelector":"28d0ef67","id":8124,"implemented":true,"kind":"function","modifiers":[],"name":"validateAssetPriceWithAnchorPrice","nameLocation":"976:33:81","nodeType":"FunctionDefinition","parameters":{"id":8115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8110,"mutability":"mutable","name":"asset","nameLocation":"1027:5:81","nodeType":"VariableDeclaration","scope":8124,"src":"1019:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8109,"name":"address","nodeType":"ElementaryTypeName","src":"1019:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8112,"mutability":"mutable","name":"reporterPrice","nameLocation":"1050:13:81","nodeType":"VariableDeclaration","scope":8124,"src":"1042:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8111,"name":"uint256","nodeType":"ElementaryTypeName","src":"1042:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8114,"mutability":"mutable","name":"anchorPrice","nameLocation":"1081:11:81","nodeType":"VariableDeclaration","scope":8124,"src":"1073:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8113,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1009:89:81"},"returnParameters":{"id":8118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8124,"src":"1122:4:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8116,"name":"bool","nodeType":"ElementaryTypeName","src":"1122:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1121:6:81"},"scope":8139,"src":"967:207:81","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":8137,"nodeType":"Block","src":"1240:46:81","statements":[{"expression":{"id":8135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8131,"name":"validateResults","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"1250:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8133,"indexExpression":{"id":8132,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8126,"src":"1266:5:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1250:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8134,"name":"pass","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8128,"src":"1275:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1250:29:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8136,"nodeType":"ExpressionStatement","src":"1250:29:81"}]},"functionSelector":"79c5e512","id":8138,"implemented":true,"kind":"function","modifiers":[],"name":"setValidateResult","nameLocation":"1189:17:81","nodeType":"FunctionDefinition","parameters":{"id":8129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8126,"mutability":"mutable","name":"token","nameLocation":"1215:5:81","nodeType":"VariableDeclaration","scope":8138,"src":"1207:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8125,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8128,"mutability":"mutable","name":"pass","nameLocation":"1227:4:81","nodeType":"VariableDeclaration","scope":8138,"src":"1222:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8127,"name":"bool","nodeType":"ElementaryTypeName","src":"1222:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1206:26:81"},"returnParameters":{"id":8130,"nodeType":"ParameterList","parameters":[],"src":"1240:0:81"},"scope":8139,"src":"1180:106:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8140,"src":"575:713:81","usedErrors":[],"usedEvents":[]}],"src":"41:1248:81"},"id":81},"contracts/test/MockV3Aggregator.sol":{"ast":{"absolutePath":"contracts/test/MockV3Aggregator.sol","exportedSymbols":{"AggregatorInterface":[47],"AggregatorV2V3Interface":[56],"AggregatorV3Interface":[102],"MockV3Aggregator":[8335]},"id":8336,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8141,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:82"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol","file":"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol","id":8142,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8336,"sourceUnit":57,"src":"66:78:82","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8144,"name":"AggregatorV2V3Interface","nameLocations":["438:23:82"],"nodeType":"IdentifierPath","referencedDeclaration":56,"src":"438:23:82"},"id":8145,"nodeType":"InheritanceSpecifier","src":"438:23:82"}],"canonicalName":"MockV3Aggregator","contractDependencies":[],"contractKind":"contract","documentation":{"id":8143,"nodeType":"StructuredDocumentation","src":"146:262:82","text":" @title MockV3Aggregator\n @notice Based on the FluxAggregator contract\n @notice Use this contract when you need to test\n other contract's ability to read data from an\n aggregator contract, but how the aggregator got\n its answer is unimportant"},"fullyImplemented":true,"id":8335,"linearizedBaseContracts":[8335,56,102,47],"name":"MockV3Aggregator","nameLocation":"418:16:82","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[73],"constant":true,"functionSelector":"54fd4d50","id":8148,"mutability":"constant","name":"version","nameLocation":"492:7:82","nodeType":"VariableDeclaration","scope":8335,"src":"468:35:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8146,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":8147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"502:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"baseFunctions":[63],"constant":false,"functionSelector":"313ce567","id":8150,"mutability":"mutable","name":"decimals","nameLocation":"523:8:82","nodeType":"VariableDeclaration","scope":8335,"src":"510:21:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8149,"name":"uint8","nodeType":"ElementaryTypeName","src":"510:5:82","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"public"},{"baseFunctions":[6],"constant":false,"functionSelector":"50d25bcd","id":8152,"mutability":"mutable","name":"latestAnswer","nameLocation":"551:12:82","nodeType":"VariableDeclaration","scope":8335,"src":"537:26:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8151,"name":"int256","nodeType":"ElementaryTypeName","src":"537:6:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"public"},{"baseFunctions":[11],"constant":false,"functionSelector":"8205bf6a","id":8154,"mutability":"mutable","name":"latestTimestamp","nameLocation":"584:15:82","nodeType":"VariableDeclaration","scope":8335,"src":"569:30:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8153,"name":"uint256","nodeType":"ElementaryTypeName","src":"569:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"baseFunctions":[16],"constant":false,"functionSelector":"668a0f02","id":8156,"mutability":"mutable","name":"latestRound","nameLocation":"620:11:82","nodeType":"VariableDeclaration","scope":8335,"src":"605:26:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8155,"name":"uint256","nodeType":"ElementaryTypeName","src":"605:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"baseFunctions":[23],"constant":false,"functionSelector":"b5ab58dc","id":8160,"mutability":"mutable","name":"getAnswer","nameLocation":"672:9:82","nodeType":"VariableDeclaration","scope":8335,"src":"638:43:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int256_$","typeString":"mapping(uint256 => int256)"},"typeName":{"id":8159,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8157,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"638:26:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int256_$","typeString":"mapping(uint256 => int256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8158,"name":"int256","nodeType":"ElementaryTypeName","src":"657:6:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},"visibility":"public"},{"baseFunctions":[30],"constant":false,"functionSelector":"b633620c","id":8164,"mutability":"mutable","name":"getTimestamp","nameLocation":"722:12:82","nodeType":"VariableDeclaration","scope":8335,"src":"687:47:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":8163,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8161,"name":"uint256","nodeType":"ElementaryTypeName","src":"695:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"687:27:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8162,"name":"uint256","nodeType":"ElementaryTypeName","src":"706:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":8168,"mutability":"mutable","name":"getStartedAt","nameLocation":"776:12:82","nodeType":"VariableDeclaration","scope":8335,"src":"740:48:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":8167,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8165,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"740:27:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8166,"name":"uint256","nodeType":"ElementaryTypeName","src":"759:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"body":{"id":8183,"nodeType":"Block","src":"847:75:82","statements":[{"expression":{"id":8177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8175,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8150,"src":"857:8:82","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8176,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"868:9:82","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"857:20:82","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8178,"nodeType":"ExpressionStatement","src":"857:20:82"},{"expression":{"arguments":[{"id":8180,"name":"_initialAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8172,"src":"900:14:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8179,"name":"updateAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8292,"src":"887:12:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":8181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"887:28:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8182,"nodeType":"ExpressionStatement","src":"887:28:82"}]},"id":8184,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8170,"mutability":"mutable","name":"_decimals","nameLocation":"813:9:82","nodeType":"VariableDeclaration","scope":8184,"src":"807:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8169,"name":"uint8","nodeType":"ElementaryTypeName","src":"807:5:82","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8172,"mutability":"mutable","name":"_initialAnswer","nameLocation":"831:14:82","nodeType":"VariableDeclaration","scope":8184,"src":"824:21:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8171,"name":"int256","nodeType":"ElementaryTypeName","src":"824:6:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"806:40:82"},"returnParameters":{"id":8174,"nodeType":"ParameterList","parameters":[],"src":"847:0:82"},"scope":8335,"src":"795:127:82","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[88],"body":{"id":8212,"nodeType":"Block","src":"1125:113:82","statements":[{"expression":{"components":[{"id":8199,"name":"_roundId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8186,"src":"1143:8:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},{"baseExpression":{"id":8200,"name":"getAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"1153:9:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int256_$","typeString":"mapping(uint256 => int256)"}},"id":8202,"indexExpression":{"id":8201,"name":"_roundId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8186,"src":"1163:8:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1153:19:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"baseExpression":{"id":8203,"name":"getStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8168,"src":"1174:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8205,"indexExpression":{"id":8204,"name":"_roundId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8186,"src":"1187:8:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1174:22:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":8206,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"1198:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8208,"indexExpression":{"id":8207,"name":"_roundId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8186,"src":"1211:8:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1198:22:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8209,"name":"_roundId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8186,"src":"1222:8:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}}],"id":8210,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1142:89:82","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"tuple(uint80,int256,uint256,uint256,uint80)"}},"functionReturnParameters":8198,"id":8211,"nodeType":"Return","src":"1135:96:82"}]},"functionSelector":"9a6fc8f5","id":8213,"implemented":true,"kind":"function","modifiers":[],"name":"getRoundData","nameLocation":"937:12:82","nodeType":"FunctionDefinition","parameters":{"id":8187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8186,"mutability":"mutable","name":"_roundId","nameLocation":"966:8:82","nodeType":"VariableDeclaration","scope":8213,"src":"959:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":8185,"name":"uint80","nodeType":"ElementaryTypeName","src":"959:6:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"949:31:82"},"returnParameters":{"id":8198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8189,"mutability":"mutable","name":"roundId","nameLocation":"1035:7:82","nodeType":"VariableDeclaration","scope":8213,"src":"1028:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":8188,"name":"uint80","nodeType":"ElementaryTypeName","src":"1028:6:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"},{"constant":false,"id":8191,"mutability":"mutable","name":"answer","nameLocation":"1051:6:82","nodeType":"VariableDeclaration","scope":8213,"src":"1044:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8190,"name":"int256","nodeType":"ElementaryTypeName","src":"1044:6:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8193,"mutability":"mutable","name":"startedAt","nameLocation":"1067:9:82","nodeType":"VariableDeclaration","scope":8213,"src":"1059:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8192,"name":"uint256","nodeType":"ElementaryTypeName","src":"1059:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8195,"mutability":"mutable","name":"updatedAt","nameLocation":"1086:9:82","nodeType":"VariableDeclaration","scope":8213,"src":"1078:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8197,"mutability":"mutable","name":"answeredInRound","nameLocation":"1104:15:82","nodeType":"VariableDeclaration","scope":8213,"src":"1097:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":8196,"name":"uint80","nodeType":"ElementaryTypeName","src":"1097:6:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"1027:93:82"},"scope":8335,"src":"928:310:82","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[101],"body":{"id":8245,"nodeType":"Block","src":"1415:214:82","statements":[{"expression":{"components":[{"arguments":[{"id":8228,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1453:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1446:6:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":8226,"name":"uint80","nodeType":"ElementaryTypeName","src":"1446:6:82","typeDescriptions":{}}},"id":8229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1446:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},{"baseExpression":{"id":8230,"name":"getAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"1479:9:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int256_$","typeString":"mapping(uint256 => int256)"}},"id":8232,"indexExpression":{"id":8231,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1489:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1479:22:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"baseExpression":{"id":8233,"name":"getStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8168,"src":"1515:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8235,"indexExpression":{"id":8234,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1528:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1515:25:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":8236,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"1554:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8238,"indexExpression":{"id":8237,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1567:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1554:25:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":8241,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1600:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1593:6:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":8239,"name":"uint80","nodeType":"ElementaryTypeName","src":"1593:6:82","typeDescriptions":{}}},"id":8242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}}],"id":8243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1432:190:82","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$","typeString":"tuple(uint80,int256,uint256,uint256,uint80)"}},"functionReturnParameters":8225,"id":8244,"nodeType":"Return","src":"1425:197:82"}]},"functionSelector":"feaf968c","id":8246,"implemented":true,"kind":"function","modifiers":[],"name":"latestRoundData","nameLocation":"1253:15:82","nodeType":"FunctionDefinition","parameters":{"id":8214,"nodeType":"ParameterList","parameters":[],"src":"1268:2:82"},"returnParameters":{"id":8225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8216,"mutability":"mutable","name":"roundId","nameLocation":"1325:7:82","nodeType":"VariableDeclaration","scope":8246,"src":"1318:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":8215,"name":"uint80","nodeType":"ElementaryTypeName","src":"1318:6:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"},{"constant":false,"id":8218,"mutability":"mutable","name":"answer","nameLocation":"1341:6:82","nodeType":"VariableDeclaration","scope":8246,"src":"1334:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8217,"name":"int256","nodeType":"ElementaryTypeName","src":"1334:6:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8220,"mutability":"mutable","name":"startedAt","nameLocation":"1357:9:82","nodeType":"VariableDeclaration","scope":8246,"src":"1349:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8219,"name":"uint256","nodeType":"ElementaryTypeName","src":"1349:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8222,"mutability":"mutable","name":"updatedAt","nameLocation":"1376:9:82","nodeType":"VariableDeclaration","scope":8246,"src":"1368:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8221,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8224,"mutability":"mutable","name":"answeredInRound","nameLocation":"1394:15:82","nodeType":"VariableDeclaration","scope":8246,"src":"1387:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":8223,"name":"uint80","nodeType":"ElementaryTypeName","src":"1387:6:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"1317:93:82"},"scope":8335,"src":"1244:385:82","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[68],"body":{"id":8253,"nodeType":"Block","src":"1696:57:82","statements":[{"expression":{"hexValue":"76302e362f74657374732f4d6f636b563341676772656761746f722e736f6c","id":8251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1713:33:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_f07fb5b1ad79aac528cd96a1cc4b4ec6f7cefc63060a932b3b6750094ba19ff0","typeString":"literal_string \"v0.6/tests/MockV3Aggregator.sol\""},"value":"v0.6/tests/MockV3Aggregator.sol"},"functionReturnParameters":8250,"id":8252,"nodeType":"Return","src":"1706:40:82"}]},"functionSelector":"7284e416","id":8254,"implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1644:11:82","nodeType":"FunctionDefinition","parameters":{"id":8247,"nodeType":"ParameterList","parameters":[],"src":"1655:2:82"},"returnParameters":{"id":8250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8254,"src":"1681:13:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8248,"name":"string","nodeType":"ElementaryTypeName","src":"1681:6:82","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1680:15:82"},"scope":8335,"src":"1635:118:82","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":8291,"nodeType":"Block","src":"1804:253:82","statements":[{"expression":{"id":8261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8259,"name":"latestAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"1814:12:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8260,"name":"_answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"1829:7:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1814:22:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8262,"nodeType":"ExpressionStatement","src":"1814:22:82"},{"expression":{"id":8266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8263,"name":"latestTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"1846:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8264,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1864:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1870:9:82","memberName":"timestamp","nodeType":"MemberAccess","src":"1864:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1846:33:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8267,"nodeType":"ExpressionStatement","src":"1846:33:82"},{"expression":{"id":8269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1889:13:82","subExpression":{"id":8268,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1889:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8270,"nodeType":"ExpressionStatement","src":"1889:13:82"},{"expression":{"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8271,"name":"getAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"1912:9:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int256_$","typeString":"mapping(uint256 => int256)"}},"id":8273,"indexExpression":{"id":8272,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1922:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1912:22:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8274,"name":"_answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"1937:7:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1912:32:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8276,"nodeType":"ExpressionStatement","src":"1912:32:82"},{"expression":{"id":8282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8277,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"1954:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8279,"indexExpression":{"id":8278,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1967:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1954:25:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8280,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1982:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1988:9:82","memberName":"timestamp","nodeType":"MemberAccess","src":"1982:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1954:43:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8283,"nodeType":"ExpressionStatement","src":"1954:43:82"},{"expression":{"id":8289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8284,"name":"getStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8168,"src":"2007:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8286,"indexExpression":{"id":8285,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"2020:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2007:25:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8287,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2035:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2041:9:82","memberName":"timestamp","nodeType":"MemberAccess","src":"2035:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2007:43:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8290,"nodeType":"ExpressionStatement","src":"2007:43:82"}]},"functionSelector":"a87a20ce","id":8292,"implemented":true,"kind":"function","modifiers":[],"name":"updateAnswer","nameLocation":"1768:12:82","nodeType":"FunctionDefinition","parameters":{"id":8257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"mutability":"mutable","name":"_answer","nameLocation":"1788:7:82","nodeType":"VariableDeclaration","scope":8292,"src":"1781:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8255,"name":"int256","nodeType":"ElementaryTypeName","src":"1781:6:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1780:16:82"},"returnParameters":{"id":8258,"nodeType":"ParameterList","parameters":[],"src":"1804:0:82"},"scope":8335,"src":"1759:298:82","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8333,"nodeType":"Block","src":"2168:247:82","statements":[{"expression":{"id":8305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8303,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"2178:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8304,"name":"_roundId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8294,"src":"2192:8:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"2178:22:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8306,"nodeType":"ExpressionStatement","src":"2178:22:82"},{"expression":{"id":8309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8307,"name":"latestAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"2210:12:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8308,"name":"_answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8296,"src":"2225:7:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2210:22:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8310,"nodeType":"ExpressionStatement","src":"2210:22:82"},{"expression":{"id":8313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8311,"name":"latestTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"2242:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8312,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"2260:10:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2242:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8314,"nodeType":"ExpressionStatement","src":"2242:28:82"},{"expression":{"id":8319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8315,"name":"getAnswer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"2280:9:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_int256_$","typeString":"mapping(uint256 => int256)"}},"id":8317,"indexExpression":{"id":8316,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"2290:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2280:22:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8318,"name":"_answer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8296,"src":"2305:7:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2280:32:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8320,"nodeType":"ExpressionStatement","src":"2280:32:82"},{"expression":{"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8321,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"2322:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8323,"indexExpression":{"id":8322,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"2335:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2322:25:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8324,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"2350:10:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2322:38:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8326,"nodeType":"ExpressionStatement","src":"2322:38:82"},{"expression":{"id":8331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8327,"name":"getStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8168,"src":"2370:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8329,"indexExpression":{"id":8328,"name":"latestRound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"2383:11:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2370:25:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8330,"name":"_startedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8300,"src":"2398:10:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2370:38:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8332,"nodeType":"ExpressionStatement","src":"2370:38:82"}]},"functionSelector":"4aa2011f","id":8334,"implemented":true,"kind":"function","modifiers":[],"name":"updateRoundData","nameLocation":"2072:15:82","nodeType":"FunctionDefinition","parameters":{"id":8301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8294,"mutability":"mutable","name":"_roundId","nameLocation":"2095:8:82","nodeType":"VariableDeclaration","scope":8334,"src":"2088:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":8293,"name":"uint80","nodeType":"ElementaryTypeName","src":"2088:6:82","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"},{"constant":false,"id":8296,"mutability":"mutable","name":"_answer","nameLocation":"2112:7:82","nodeType":"VariableDeclaration","scope":8334,"src":"2105:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8295,"name":"int256","nodeType":"ElementaryTypeName","src":"2105:6:82","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8298,"mutability":"mutable","name":"_timestamp","nameLocation":"2129:10:82","nodeType":"VariableDeclaration","scope":8334,"src":"2121:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8297,"name":"uint256","nodeType":"ElementaryTypeName","src":"2121:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8300,"mutability":"mutable","name":"_startedAt","nameLocation":"2149:10:82","nodeType":"VariableDeclaration","scope":8334,"src":"2141:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8299,"name":"uint256","nodeType":"ElementaryTypeName","src":"2141:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2087:73:82"},"returnParameters":{"id":8302,"nodeType":"ParameterList","parameters":[],"src":"2168:0:82"},"scope":8335,"src":"2063:352:82","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8336,"src":"409:2008:82","usedErrors":[],"usedEvents":[38,46]}],"src":"41:2377:82"},"id":82},"contracts/test/MockWBETH.sol":{"ast":{"absolutePath":"contracts/test/MockWBETH.sol","exportedSymbols":{"Context":[1926],"ERC20":[1793],"IWBETH":[3643],"MockWBETH":[8409],"Ownable":[1206]},"id":8410,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8337,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:83"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8339,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8410,"sourceUnit":1794,"src":"130:70:83","symbolAliases":[{"foreign":{"id":8338,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"139:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IWBETH.sol","file":"../interfaces/IWBETH.sol","id":8341,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8410,"sourceUnit":3644,"src":"201:50:83","symbolAliases":[{"foreign":{"id":8340,"name":"IWBETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"210:6:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":8342,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8410,"sourceUnit":1207,"src":"252:52:83","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8343,"name":"ERC20","nameLocations":["328:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"328:5:83"},"id":8344,"nodeType":"InheritanceSpecifier","src":"328:5:83"},{"baseName":{"id":8345,"name":"Ownable","nameLocations":["335:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"335:7:83"},"id":8346,"nodeType":"InheritanceSpecifier","src":"335:7:83"},{"baseName":{"id":8347,"name":"IWBETH","nameLocations":["344:6:83"],"nodeType":"IdentifierPath","referencedDeclaration":3643,"src":"344:6:83"},"id":8348,"nodeType":"InheritanceSpecifier","src":"344:6:83"}],"canonicalName":"MockWBETH","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8409,"linearizedBaseContracts":[8409,3643,1206,1793,1896,1871,1926],"name":"MockWBETH","nameLocation":"315:9:83","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8350,"mutability":"immutable","name":"_decimals","nameLocation":"381:9:83","nodeType":"VariableDeclaration","scope":8409,"src":"357:33:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8349,"name":"uint8","nodeType":"ElementaryTypeName","src":"357:5:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"baseFunctions":[3637],"constant":false,"functionSelector":"3ba0b9a9","id":8353,"mutability":"mutable","name":"exchangeRate","nameLocation":"420:12:83","nodeType":"VariableDeclaration","overrides":{"id":8352,"nodeType":"OverrideSpecifier","overrides":[],"src":"411:8:83"},"scope":8409,"src":"396:36:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8351,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":8372,"nodeType":"Block","src":"544:38:83","statements":[{"expression":{"id":8370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8368,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8350,"src":"554:9:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8369,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8359,"src":"566:9:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"554:21:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8371,"nodeType":"ExpressionStatement","src":"554:21:83"}]},"id":8373,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8362,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8355,"src":"518:5:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8363,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"525:7:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":8364,"kind":"baseConstructorSpecifier","modifierName":{"id":8361,"name":"ERC20","nameLocations":["512:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"512:5:83"},"nodeType":"ModifierInvocation","src":"512:21:83"},{"arguments":[],"id":8366,"kind":"baseConstructorSpecifier","modifierName":{"id":8365,"name":"Ownable","nameLocations":["534:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":1206,"src":"534:7:83"},"nodeType":"ModifierInvocation","src":"534:9:83"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8355,"mutability":"mutable","name":"name_","nameLocation":"465:5:83","nodeType":"VariableDeclaration","scope":8373,"src":"451:19:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8354,"name":"string","nodeType":"ElementaryTypeName","src":"451:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8357,"mutability":"mutable","name":"symbol_","nameLocation":"486:7:83","nodeType":"VariableDeclaration","scope":8373,"src":"472:21:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8356,"name":"string","nodeType":"ElementaryTypeName","src":"472:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8359,"mutability":"mutable","name":"decimals_","nameLocation":"501:9:83","nodeType":"VariableDeclaration","scope":8373,"src":"495:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8358,"name":"uint8","nodeType":"ElementaryTypeName","src":"495:5:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"450:61:83"},"returnParameters":{"id":8367,"nodeType":"ParameterList","parameters":[],"src":"544:0:83"},"scope":8409,"src":"439:143:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8384,"nodeType":"Block","src":"629:42:83","statements":[{"expression":{"arguments":[{"expression":{"id":8379,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"645:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"649:6:83","memberName":"sender","nodeType":"MemberAccess","src":"645:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8381,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8375,"src":"657:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8378,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"639:5:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"639:25:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8383,"nodeType":"ExpressionStatement","src":"639:25:83"}]},"functionSelector":"57915897","id":8385,"implemented":true,"kind":"function","modifiers":[],"name":"faucet","nameLocation":"597:6:83","nodeType":"FunctionDefinition","parameters":{"id":8376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8375,"mutability":"mutable","name":"amount","nameLocation":"612:6:83","nodeType":"VariableDeclaration","scope":8385,"src":"604:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8374,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"603:16:83"},"returnParameters":{"id":8377,"nodeType":"ParameterList","parameters":[],"src":"629:0:83"},"scope":8409,"src":"588:83:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8396,"nodeType":"Block","src":"735:36:83","statements":[{"expression":{"id":8394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8392,"name":"exchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8353,"src":"745:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8393,"name":"rate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8387,"src":"760:4:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"745:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8395,"nodeType":"ExpressionStatement","src":"745:19:83"}]},"functionSelector":"db068e0e","id":8397,"implemented":true,"kind":"function","modifiers":[{"id":8390,"kind":"modifierInvocation","modifierName":{"id":8389,"name":"onlyOwner","nameLocations":["725:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":1125,"src":"725:9:83"},"nodeType":"ModifierInvocation","src":"725:9:83"}],"name":"setExchangeRate","nameLocation":"686:15:83","nodeType":"FunctionDefinition","parameters":{"id":8388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8387,"mutability":"mutable","name":"rate","nameLocation":"710:4:83","nodeType":"VariableDeclaration","scope":8397,"src":"702:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8386,"name":"uint256","nodeType":"ElementaryTypeName","src":"702:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"701:14:83"},"returnParameters":{"id":8391,"nodeType":"ParameterList","parameters":[],"src":"735:0:83"},"scope":8409,"src":"677:94:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1281,3642],"body":{"id":8407,"nodeType":"Block","src":"857:33:83","statements":[{"expression":{"id":8405,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8350,"src":"874:9:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8404,"id":8406,"nodeType":"Return","src":"867:16:83"}]},"functionSelector":"313ce567","id":8408,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"786:8:83","nodeType":"FunctionDefinition","overrides":{"id":8401,"nodeType":"OverrideSpecifier","overrides":[{"id":8399,"name":"ERC20","nameLocations":["826:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"826:5:83"},{"id":8400,"name":"IWBETH","nameLocations":["833:6:83"],"nodeType":"IdentifierPath","referencedDeclaration":3643,"src":"833:6:83"}],"src":"817:23:83"},"parameters":{"id":8398,"nodeType":"ParameterList","parameters":[],"src":"794:2:83"},"returnParameters":{"id":8404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8408,"src":"850:5:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8402,"name":"uint8","nodeType":"ElementaryTypeName","src":"850:5:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"849:7:83"},"scope":8409,"src":"777:113:83","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":8410,"src":"306:586:83","usedErrors":[],"usedEvents":[1107,1805,1814]}],"src":"105:788:83"},"id":83},"contracts/test/PancakePairHarness.sol":{"ast":{"absolutePath":"contracts/test/PancakePairHarness.sol","exportedSymbols":{"Math":[8485],"PancakePairHarness":[8712],"UQ112x112":[8527]},"id":8713,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8411,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:84"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8485,"linearizedBaseContracts":[8485],"name":"Math","nameLocation":"127:4:84","nodeType":"ContractDefinition","nodes":[{"body":{"id":8429,"nodeType":"Block","src":"207:34:84","statements":[{"expression":{"id":8427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8420,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8418,"src":"217:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8421,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8413,"src":"221:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8422,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"225:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"221:5:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8425,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"233:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"221:13:84","trueExpression":{"id":8424,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8413,"src":"229:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"217:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8428,"nodeType":"ExpressionStatement","src":"217:17:84"}]},"id":8430,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"147:3:84","nodeType":"FunctionDefinition","parameters":{"id":8416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8413,"mutability":"mutable","name":"x","nameLocation":"159:1:84","nodeType":"VariableDeclaration","scope":8430,"src":"151:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8412,"name":"uint256","nodeType":"ElementaryTypeName","src":"151:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8415,"mutability":"mutable","name":"y","nameLocation":"170:1:84","nodeType":"VariableDeclaration","scope":8430,"src":"162:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8414,"name":"uint256","nodeType":"ElementaryTypeName","src":"162:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"150:22:84"},"returnParameters":{"id":8419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8418,"mutability":"mutable","name":"z","nameLocation":"204:1:84","nodeType":"VariableDeclaration","scope":8430,"src":"196:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8417,"name":"uint256","nodeType":"ElementaryTypeName","src":"196:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"195:11:84"},"scope":8485,"src":"138:103:84","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8483,"nodeType":"Block","src":"415:242:84","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8437,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8432,"src":"429:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"33","id":8438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"433:1:84","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"429:5:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8473,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8432,"src":"613:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"618:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"613:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8481,"nodeType":"IfStatement","src":"609:42:84","trueBody":{"id":8480,"nodeType":"Block","src":"621:30:84","statements":[{"expression":{"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8476,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8435,"src":"635:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":8477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"639:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"635:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8479,"nodeType":"ExpressionStatement","src":"635:5:84"}]}},"id":8482,"nodeType":"IfStatement","src":"425:226:84","trueBody":{"id":8472,"nodeType":"Block","src":"436:167:84","statements":[{"expression":{"id":8442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8440,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8435,"src":"450:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8441,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8432,"src":"454:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"450:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8443,"nodeType":"ExpressionStatement","src":"450:5:84"},{"assignments":[8445],"declarations":[{"constant":false,"id":8445,"mutability":"mutable","name":"x","nameLocation":"477:1:84","nodeType":"VariableDeclaration","scope":8472,"src":"469:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8444,"name":"uint256","nodeType":"ElementaryTypeName","src":"469:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8451,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8446,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8432,"src":"481:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":8447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"485:1:84","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"481:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"489:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"481:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"469:21:84"},{"body":{"id":8470,"nodeType":"Block","src":"518:75:84","statements":[{"expression":{"id":8457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8455,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8435,"src":"536:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8456,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"540:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"536:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8458,"nodeType":"ExpressionStatement","src":"536:5:84"},{"expression":{"id":8468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8459,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"559:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8460,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8432,"src":"564:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8461,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"568:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"564:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8463,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"572:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"564:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8465,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"563:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":8466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"577:1:84","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"563:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"559:19:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8469,"nodeType":"ExpressionStatement","src":"559:19:84"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8452,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"511:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8453,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8435,"src":"515:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"511:5:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8471,"nodeType":"WhileStatement","src":"504:89:84"}]}}]},"id":8484,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"365:4:84","nodeType":"FunctionDefinition","parameters":{"id":8433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8432,"mutability":"mutable","name":"y","nameLocation":"378:1:84","nodeType":"VariableDeclaration","scope":8484,"src":"370:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8431,"name":"uint256","nodeType":"ElementaryTypeName","src":"370:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"369:11:84"},"returnParameters":{"id":8436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8435,"mutability":"mutable","name":"z","nameLocation":"412:1:84","nodeType":"VariableDeclaration","scope":8484,"src":"404:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8434,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:11:84"},"scope":8485,"src":"356:301:84","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8713,"src":"119:540:84","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"UQ112x112","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8527,"linearizedBaseContracts":[8527],"name":"UQ112x112","nameLocation":"722:9:84","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8490,"mutability":"constant","name":"Q112","nameLocation":"804:4:84","nodeType":"VariableDeclaration","scope":8527,"src":"787:32:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8486,"name":"uint224","nodeType":"ElementaryTypeName","src":"787:7:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"value":{"commonType":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"},"id":8489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"811:1:84","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313132","id":8488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"816:3:84","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},"src":"811:8:84","typeDescriptions":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"}},"visibility":"internal"},{"body":{"id":8506,"nodeType":"Block","src":"926:57:84","statements":[{"expression":{"id":8504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8497,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8495,"src":"936:1:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":8503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8500,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8492,"src":"948:1:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":8499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"940:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8498,"name":"uint224","nodeType":"ElementaryTypeName","src":"940:7:84","typeDescriptions":{}}},"id":8501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"940:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8502,"name":"Q112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8490,"src":"953:4:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"940:17:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"936:21:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":8505,"nodeType":"ExpressionStatement","src":"936:21:84"}]},"id":8507,"implemented":true,"kind":"function","modifiers":[],"name":"encode","nameLocation":"874:6:84","nodeType":"FunctionDefinition","parameters":{"id":8493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8492,"mutability":"mutable","name":"y","nameLocation":"889:1:84","nodeType":"VariableDeclaration","scope":8507,"src":"881:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8491,"name":"uint112","nodeType":"ElementaryTypeName","src":"881:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"880:11:84"},"returnParameters":{"id":8496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8495,"mutability":"mutable","name":"z","nameLocation":"923:1:84","nodeType":"VariableDeclaration","scope":8507,"src":"915:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8494,"name":"uint224","nodeType":"ElementaryTypeName","src":"915:7:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"914:11:84"},"scope":8527,"src":"865:118:84","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8525,"nodeType":"Block","src":"1122:35:84","statements":[{"expression":{"id":8523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8516,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"1132:1:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint224","typeString":"uint224"},"id":8522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8517,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8509,"src":"1136:1:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":8520,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8511,"src":"1148:1:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"id":8519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1140:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8518,"name":"uint224","nodeType":"ElementaryTypeName","src":"1140:7:84","typeDescriptions":{}}},"id":8521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"1136:14:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"1132:18:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":8524,"nodeType":"ExpressionStatement","src":"1132:18:84"}]},"id":8526,"implemented":true,"kind":"function","modifiers":[],"name":"uqdiv","nameLocation":"1060:5:84","nodeType":"FunctionDefinition","parameters":{"id":8512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8509,"mutability":"mutable","name":"x","nameLocation":"1074:1:84","nodeType":"VariableDeclaration","scope":8526,"src":"1066:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8508,"name":"uint224","nodeType":"ElementaryTypeName","src":"1066:7:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"},{"constant":false,"id":8511,"mutability":"mutable","name":"y","nameLocation":"1085:1:84","nodeType":"VariableDeclaration","scope":8526,"src":"1077:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8510,"name":"uint112","nodeType":"ElementaryTypeName","src":"1077:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"1065:22:84"},"returnParameters":{"id":8515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8514,"mutability":"mutable","name":"z","nameLocation":"1119:1:84","nodeType":"VariableDeclaration","scope":8526,"src":"1111:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8513,"name":"uint224","nodeType":"ElementaryTypeName","src":"1111:7:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"1110:11:84"},"scope":8527,"src":"1051:106:84","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8713,"src":"714:445:84","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"PancakePairHarness","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8712,"linearizedBaseContracts":[8712],"name":"PancakePairHarness","nameLocation":"1170:18:84","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8530,"libraryName":{"id":8528,"name":"UQ112x112","nameLocations":["1201:9:84"],"nodeType":"IdentifierPath","referencedDeclaration":8527,"src":"1201:9:84"},"nodeType":"UsingForDirective","src":"1195:28:84","typeName":{"id":8529,"name":"uint224","nodeType":"ElementaryTypeName","src":"1215:7:84","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}},{"constant":false,"functionSelector":"0dfe1681","id":8532,"mutability":"mutable","name":"token0","nameLocation":"1244:6:84","nodeType":"VariableDeclaration","scope":8712,"src":"1229:21:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8531,"name":"address","nodeType":"ElementaryTypeName","src":"1229:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"d21220a7","id":8534,"mutability":"mutable","name":"token1","nameLocation":"1271:6:84","nodeType":"VariableDeclaration","scope":8712,"src":"1256:21:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8533,"name":"address","nodeType":"ElementaryTypeName","src":"1256:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"id":8536,"mutability":"mutable","name":"reserve0","nameLocation":"1300:8:84","nodeType":"VariableDeclaration","scope":8712,"src":"1284:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8535,"name":"uint112","nodeType":"ElementaryTypeName","src":"1284:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"private"},{"constant":false,"id":8538,"mutability":"mutable","name":"reserve1","nameLocation":"1386:8:84","nodeType":"VariableDeclaration","scope":8712,"src":"1370:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8537,"name":"uint112","nodeType":"ElementaryTypeName","src":"1370:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"private"},{"constant":false,"id":8540,"mutability":"mutable","name":"blockTimestampLast","nameLocation":"1471:18:84","nodeType":"VariableDeclaration","scope":8712,"src":"1456:33:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8539,"name":"uint32","nodeType":"ElementaryTypeName","src":"1456:6:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"private"},{"constant":false,"functionSelector":"5909c0d5","id":8542,"mutability":"mutable","name":"price0CumulativeLast","nameLocation":"1567:20:84","nodeType":"VariableDeclaration","scope":8712,"src":"1552:35:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8541,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"5a3d5493","id":8544,"mutability":"mutable","name":"price1CumulativeLast","nameLocation":"1608:20:84","nodeType":"VariableDeclaration","scope":8712,"src":"1593:35:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8543,"name":"uint256","nodeType":"ElementaryTypeName","src":"1593:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"7464fc3d","id":8546,"mutability":"mutable","name":"kLast","nameLocation":"1649:5:84","nodeType":"VariableDeclaration","scope":8712,"src":"1634:20:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8545,"name":"uint256","nodeType":"ElementaryTypeName","src":"1634:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":8561,"nodeType":"Block","src":"1860:59:84","statements":[{"expression":{"id":8555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8553,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8532,"src":"1870:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8554,"name":"_token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"1879:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1870:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8556,"nodeType":"ExpressionStatement","src":"1870:16:84"},{"expression":{"id":8559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8557,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8534,"src":"1896:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8558,"name":"_token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"1905:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1896:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8560,"nodeType":"ExpressionStatement","src":"1896:16:84"}]},"functionSelector":"485cc955","id":8562,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1806:10:84","nodeType":"FunctionDefinition","parameters":{"id":8551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8548,"mutability":"mutable","name":"_token0","nameLocation":"1825:7:84","nodeType":"VariableDeclaration","scope":8562,"src":"1817:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8547,"name":"address","nodeType":"ElementaryTypeName","src":"1817:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8550,"mutability":"mutable","name":"_token1","nameLocation":"1842:7:84","nodeType":"VariableDeclaration","scope":8562,"src":"1834:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8549,"name":"address","nodeType":"ElementaryTypeName","src":"1834:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1816:34:84"},"returnParameters":{"id":8552,"nodeType":"ParameterList","parameters":[],"src":"1860:0:84"},"scope":8712,"src":"1797:122:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8672,"nodeType":"Block","src":"2100:789:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8574,"name":"balance0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"2118:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2135:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":8576,"name":"uint112","nodeType":"ElementaryTypeName","src":"2135:7:84","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":8575,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2130:4:84","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":8579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2144:3:84","memberName":"max","nodeType":"MemberAccess","src":"2130:17:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"2118:29:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8581,"name":"balance1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"2151:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2168:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":8583,"name":"uint112","nodeType":"ElementaryTypeName","src":"2168:7:84","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":8582,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2163:4:84","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":8586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2177:3:84","memberName":"max","nodeType":"MemberAccess","src":"2163:17:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"2151:29:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2118:62:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50616e63616b6556323a204f564552464c4f57","id":8589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:21:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df","typeString":"literal_string \"PancakeV2: OVERFLOW\""},"value":"PancakeV2: OVERFLOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df","typeString":"literal_string \"PancakeV2: OVERFLOW\""}],"id":8573,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2110:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:94:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8591,"nodeType":"ExpressionStatement","src":"2110:94:84"},{"assignments":[8593],"declarations":[{"constant":false,"id":8593,"mutability":"mutable","name":"blockTimestamp","nameLocation":"2221:14:84","nodeType":"VariableDeclaration","scope":8672,"src":"2214:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8592,"name":"uint32","nodeType":"ElementaryTypeName","src":"2214:6:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":8603,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8596,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2245:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2251:9:84","memberName":"timestamp","nodeType":"MemberAccess","src":"2245:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":8600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2263:1:84","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2268:2:84","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2263:7:84","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"2245:25:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2238:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":8594,"name":"uint32","nodeType":"ElementaryTypeName","src":"2238:6:84","typeDescriptions":{}}},"id":8602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2238:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"2214:57:84"},{"id":8653,"nodeType":"UncheckedBlock","src":"2281:481:84","statements":[{"assignments":[8605],"declarations":[{"constant":false,"id":8605,"mutability":"mutable","name":"timeElapsed","nameLocation":"2312:11:84","nodeType":"VariableDeclaration","scope":8653,"src":"2305:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8604,"name":"uint32","nodeType":"ElementaryTypeName","src":"2305:6:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":8609,"initialValue":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":8608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8606,"name":"blockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8593,"src":"2326:14:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8607,"name":"blockTimestampLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8540,"src":"2343:18:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2326:35:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"2305:56:84"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":8612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8610,"name":"timeElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"2402:11:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2416:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2402:15:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8613,"name":"_reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8568,"src":"2421:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2434:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2421:14:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2402:33:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint112","typeString":"uint112"},"id":8619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8617,"name":"_reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"2439:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2452:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2439:14:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2402:51:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8652,"nodeType":"IfStatement","src":"2398:354:84","trueBody":{"id":8651,"nodeType":"Block","src":"2455:297:84","statements":[{"expression":{"id":8634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8621,"name":"price0CumulativeLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8542,"src":"2537:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":8629,"name":"_reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8568,"src":"2603:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"expression":{"arguments":[{"id":8626,"name":"_reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"2586:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"expression":{"id":8624,"name":"UQ112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"2569:9:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_UQ112x112_$8527_$","typeString":"type(library UQ112x112)"}},"id":8625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2579:6:84","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":8507,"src":"2569:16:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint112_$returns$_t_uint224_$","typeString":"function (uint112) pure returns (uint224)"}},"id":8627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2569:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":8628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2597:5:84","memberName":"uqdiv","nodeType":"MemberAccess","referencedDeclaration":8526,"src":"2569:33:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$attached_to$_t_uint224_$","typeString":"function (uint224,uint112) pure returns (uint224)"}},"id":8630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2569:44:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":8623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2561:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8622,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:84","typeDescriptions":{}}},"id":8631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2561:53:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8632,"name":"timeElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"2617:11:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2561:67:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2537:91:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8635,"nodeType":"ExpressionStatement","src":"2537:91:84"},{"expression":{"id":8649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8636,"name":"price1CumulativeLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8544,"src":"2646:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":8644,"name":"_reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"2712:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"expression":{"arguments":[{"id":8641,"name":"_reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8568,"src":"2695:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint112","typeString":"uint112"}],"expression":{"id":8639,"name":"UQ112x112","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"2678:9:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_UQ112x112_$8527_$","typeString":"type(library UQ112x112)"}},"id":8640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2688:6:84","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":8507,"src":"2678:16:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint112_$returns$_t_uint224_$","typeString":"function (uint112) pure returns (uint224)"}},"id":8642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2678:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":8643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2706:5:84","memberName":"uqdiv","nodeType":"MemberAccess","referencedDeclaration":8526,"src":"2678:33:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$attached_to$_t_uint224_$","typeString":"function (uint224,uint112) pure returns (uint224)"}},"id":8645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2678:44:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":8638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2670:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8637,"name":"uint256","nodeType":"ElementaryTypeName","src":"2670:7:84","typeDescriptions":{}}},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2670:53:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8647,"name":"timeElapsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"2726:11:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2670:67:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2646:91:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8650,"nodeType":"ExpressionStatement","src":"2646:91:84"}]}}]},{"expression":{"id":8659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8654,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8536,"src":"2771:8:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8657,"name":"balance0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"2790:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2782:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":8655,"name":"uint112","nodeType":"ElementaryTypeName","src":"2782:7:84","typeDescriptions":{}}},"id":8658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2782:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"2771:28:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":8660,"nodeType":"ExpressionStatement","src":"2771:28:84"},{"expression":{"id":8666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8661,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8538,"src":"2809:8:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8664,"name":"balance1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"2828:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2820:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":8662,"name":"uint112","nodeType":"ElementaryTypeName","src":"2820:7:84","typeDescriptions":{}}},"id":8665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2820:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"2809:28:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":8667,"nodeType":"ExpressionStatement","src":"2809:28:84"},{"expression":{"id":8670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8668,"name":"blockTimestampLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8540,"src":"2847:18:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8669,"name":"blockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8593,"src":"2868:14:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2847:35:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":8671,"nodeType":"ExpressionStatement","src":"2847:35:84"}]},"functionSelector":"d9fc83c6","id":8673,"implemented":true,"kind":"function","modifiers":[],"name":"update","nameLocation":"2010:6:84","nodeType":"FunctionDefinition","parameters":{"id":8571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8564,"mutability":"mutable","name":"balance0","nameLocation":"2025:8:84","nodeType":"VariableDeclaration","scope":8673,"src":"2017:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8563,"name":"uint256","nodeType":"ElementaryTypeName","src":"2017:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8566,"mutability":"mutable","name":"balance1","nameLocation":"2043:8:84","nodeType":"VariableDeclaration","scope":8673,"src":"2035:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2035:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8568,"mutability":"mutable","name":"_reserve0","nameLocation":"2061:9:84","nodeType":"VariableDeclaration","scope":8673,"src":"2053:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8567,"name":"uint112","nodeType":"ElementaryTypeName","src":"2053:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":8570,"mutability":"mutable","name":"_reserve1","nameLocation":"2080:9:84","nodeType":"VariableDeclaration","scope":8673,"src":"2072:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8569,"name":"uint112","nodeType":"ElementaryTypeName","src":"2072:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"2016:74:84"},"returnParameters":{"id":8572,"nodeType":"ParameterList","parameters":[],"src":"2100:0:84"},"scope":8712,"src":"2001:888:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8688,"nodeType":"Block","src":"2959:57:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8680,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2983:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2989:9:84","memberName":"timestamp","nodeType":"MemberAccess","src":"2983:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":8684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3001:1:84","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3006:2:84","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3001:7:84","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"2983:25:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2976:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":8678,"name":"uint32","nodeType":"ElementaryTypeName","src":"2976:6:84","typeDescriptions":{}}},"id":8686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2976:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":8677,"id":8687,"nodeType":"Return","src":"2969:40:84"}]},"functionSelector":"abf81272","id":8689,"implemented":true,"kind":"function","modifiers":[],"name":"currentBlockTimestamp","nameLocation":"2904:21:84","nodeType":"FunctionDefinition","parameters":{"id":8674,"nodeType":"ParameterList","parameters":[],"src":"2925:2:84"},"returnParameters":{"id":8677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8689,"src":"2951:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8675,"name":"uint32","nodeType":"ElementaryTypeName","src":"2951:6:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2950:8:84"},"scope":8712,"src":"2895:121:84","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":8710,"nodeType":"Block","src":"3132:117:84","statements":[{"expression":{"id":8700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8698,"name":"_reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8692,"src":"3142:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8699,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8536,"src":"3154:8:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3142:20:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":8701,"nodeType":"ExpressionStatement","src":"3142:20:84"},{"expression":{"id":8704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8702,"name":"_reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"3172:9:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8703,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8538,"src":"3184:8:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"3172:20:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"id":8705,"nodeType":"ExpressionStatement","src":"3172:20:84"},{"expression":{"id":8708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8706,"name":"_blockTimestampLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"3202:19:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8707,"name":"blockTimestampLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8540,"src":"3224:18:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3202:40:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":8709,"nodeType":"ExpressionStatement","src":"3202:40:84"}]},"functionSelector":"0902f1ac","id":8711,"implemented":true,"kind":"function","modifiers":[],"name":"getReserves","nameLocation":"3031:11:84","nodeType":"FunctionDefinition","parameters":{"id":8690,"nodeType":"ParameterList","parameters":[],"src":"3042:2:84"},"returnParameters":{"id":8697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8692,"mutability":"mutable","name":"_reserve0","nameLocation":"3074:9:84","nodeType":"VariableDeclaration","scope":8711,"src":"3066:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8691,"name":"uint112","nodeType":"ElementaryTypeName","src":"3066:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":8694,"mutability":"mutable","name":"_reserve1","nameLocation":"3093:9:84","nodeType":"VariableDeclaration","scope":8711,"src":"3085:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8693,"name":"uint112","nodeType":"ElementaryTypeName","src":"3085:7:84","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":8696,"mutability":"mutable","name":"_blockTimestampLast","nameLocation":"3111:19:84","nodeType":"VariableDeclaration","scope":8711,"src":"3104:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8695,"name":"uint32","nodeType":"ElementaryTypeName","src":"3104:6:84","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3065:66:84"},"scope":8712,"src":"3022:227:84","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":8713,"src":"1161:2090:84","usedErrors":[],"usedEvents":[]}],"src":"41:3211:84"},"id":84},"contracts/test/VBEP20Harness.sol":{"ast":{"absolutePath":"contracts/test/VBEP20Harness.sol","exportedSymbols":{"BEP20Harness":[7580],"Context":[1926],"ERC20":[1793],"IERC20":[1871],"IERC20Metadata":[1896],"VBEP20Harness":[8742]},"id":8743,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8714,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:85"},{"absolutePath":"contracts/test/BEP20Harness.sol","file":"./BEP20Harness.sol","id":8715,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8743,"sourceUnit":7581,"src":"66:28:85","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8716,"name":"BEP20Harness","nameLocations":["122:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":7580,"src":"122:12:85"},"id":8717,"nodeType":"InheritanceSpecifier","src":"122:12:85"}],"canonicalName":"VBEP20Harness","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8742,"linearizedBaseContracts":[8742,7580,1793,1896,1871,1926],"name":"VBEP20Harness","nameLocation":"105:13:85","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":8718,"nodeType":"StructuredDocumentation","src":"141:59:85","text":" @notice Underlying asset for this VToken"},"functionSelector":"6f307dc3","id":8720,"mutability":"mutable","name":"underlying","nameLocation":"220:10:85","nodeType":"VariableDeclaration","scope":8742,"src":"205:25:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8719,"name":"address","nodeType":"ElementaryTypeName","src":"205:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":8740,"nodeType":"Block","src":"407:41:85","statements":[{"expression":{"id":8738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8736,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8720,"src":"417:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8737,"name":"underlying_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8728,"src":"430:11:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"417:24:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8739,"nodeType":"ExpressionStatement","src":"417:24:85"}]},"id":8741,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8731,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8722,"src":"381:5:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8732,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"388:7:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8733,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8726,"src":"397:8:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8734,"kind":"baseConstructorSpecifier","modifierName":{"id":8730,"name":"BEP20Harness","nameLocations":["368:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":7580,"src":"368:12:85"},"nodeType":"ModifierInvocation","src":"368:38:85"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8722,"mutability":"mutable","name":"name_","nameLocation":"272:5:85","nodeType":"VariableDeclaration","scope":8741,"src":"258:19:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8721,"name":"string","nodeType":"ElementaryTypeName","src":"258:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8724,"mutability":"mutable","name":"symbol_","nameLocation":"301:7:85","nodeType":"VariableDeclaration","scope":8741,"src":"287:21:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8723,"name":"string","nodeType":"ElementaryTypeName","src":"287:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8726,"mutability":"mutable","name":"decimals","nameLocation":"324:8:85","nodeType":"VariableDeclaration","scope":8741,"src":"318:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8725,"name":"uint8","nodeType":"ElementaryTypeName","src":"318:5:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8728,"mutability":"mutable","name":"underlying_","nameLocation":"350:11:85","nodeType":"VariableDeclaration","scope":8741,"src":"342:19:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8727,"name":"address","nodeType":"ElementaryTypeName","src":"342:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"248:119:85"},"returnParameters":{"id":8735,"nodeType":"ParameterList","parameters":[],"src":"407:0:85"},"scope":8742,"src":"237:211:85","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8743,"src":"96:354:85","usedErrors":[],"usedEvents":[1805,1814]}],"src":"41:410:85"},"id":85},"contracts/test/oracles/MockCorrelatedTokenOracle.sol":{"ast":{"absolutePath":"contracts/test/oracles/MockCorrelatedTokenOracle.sol","exportedSymbols":{"CorrelatedTokenOracle":[7137],"MockCorrelatedTokenOracle":[8803]},"id":8804,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8744,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:86"},{"absolutePath":"contracts/oracles/common/CorrelatedTokenOracle.sol","file":"../../oracles/common/CorrelatedTokenOracle.sol","id":8746,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8804,"sourceUnit":7138,"src":"66:87:86","symbolAliases":[{"foreign":{"id":8745,"name":"CorrelatedTokenOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"75:21:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8747,"name":"CorrelatedTokenOracle","nameLocations":["193:21:86"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"193:21:86"},"id":8748,"nodeType":"InheritanceSpecifier","src":"193:21:86"}],"canonicalName":"MockCorrelatedTokenOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8803,"linearizedBaseContracts":[8803,7137,3494,3666],"name":"MockCorrelatedTokenOracle","nameLocation":"164:25:86","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"99fd8939","id":8750,"mutability":"mutable","name":"mockUnderlyingAmount","nameLocation":"236:20:86","nodeType":"VariableDeclaration","scope":8803,"src":"221:35:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8749,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":8782,"nodeType":"Block","src":"937:2:86","statements":[]},"id":8783,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8771,"name":"correlatedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"648:15:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8772,"name":"underlyingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8754,"src":"677:15:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8773,"name":"resilientOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"706:15:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8774,"name":"annualGrowthRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8758,"src":"735:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8775,"name":"snapshotInterval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8760,"src":"765:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8776,"name":"initialSnapshotMaxExchangeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"795:30:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8777,"name":"initialSnapshotTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8764,"src":"839:24:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8778,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8766,"src":"877:20:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8779,"name":"snapshotGap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8768,"src":"911:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8780,"kind":"baseConstructorSpecifier","modifierName":{"id":8770,"name":"CorrelatedTokenOracle","nameLocations":["613:21:86"],"nodeType":"IdentifierPath","referencedDeclaration":7137,"src":"613:21:86"},"nodeType":"ModifierInvocation","src":"613:319:86"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8752,"mutability":"mutable","name":"correlatedToken","nameLocation":"292:15:86","nodeType":"VariableDeclaration","scope":8783,"src":"284:23:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8751,"name":"address","nodeType":"ElementaryTypeName","src":"284:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8754,"mutability":"mutable","name":"underlyingToken","nameLocation":"325:15:86","nodeType":"VariableDeclaration","scope":8783,"src":"317:23:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8753,"name":"address","nodeType":"ElementaryTypeName","src":"317:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8756,"mutability":"mutable","name":"resilientOracle","nameLocation":"358:15:86","nodeType":"VariableDeclaration","scope":8783,"src":"350:23:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8755,"name":"address","nodeType":"ElementaryTypeName","src":"350:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8758,"mutability":"mutable","name":"annualGrowthRate","nameLocation":"391:16:86","nodeType":"VariableDeclaration","scope":8783,"src":"383:24:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8757,"name":"uint256","nodeType":"ElementaryTypeName","src":"383:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8760,"mutability":"mutable","name":"snapshotInterval","nameLocation":"425:16:86","nodeType":"VariableDeclaration","scope":8783,"src":"417:24:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8759,"name":"uint256","nodeType":"ElementaryTypeName","src":"417:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8762,"mutability":"mutable","name":"initialSnapshotMaxExchangeRate","nameLocation":"459:30:86","nodeType":"VariableDeclaration","scope":8783,"src":"451:38:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8761,"name":"uint256","nodeType":"ElementaryTypeName","src":"451:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8764,"mutability":"mutable","name":"initialSnapshotTimestamp","nameLocation":"507:24:86","nodeType":"VariableDeclaration","scope":8783,"src":"499:32:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8763,"name":"uint256","nodeType":"ElementaryTypeName","src":"499:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8766,"mutability":"mutable","name":"accessControlManager","nameLocation":"549:20:86","nodeType":"VariableDeclaration","scope":8783,"src":"541:28:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8765,"name":"address","nodeType":"ElementaryTypeName","src":"541:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8768,"mutability":"mutable","name":"snapshotGap","nameLocation":"587:11:86","nodeType":"VariableDeclaration","scope":8783,"src":"579:19:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8767,"name":"uint256","nodeType":"ElementaryTypeName","src":"579:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"274:330:86"},"returnParameters":{"id":8781,"nodeType":"ParameterList","parameters":[],"src":"937:0:86"},"scope":8803,"src":"263:676:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8792,"nodeType":"Block","src":"1003:46:86","statements":[{"expression":{"id":8790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8788,"name":"mockUnderlyingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8750,"src":"1013:20:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8789,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8785,"src":"1036:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1013:29:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8791,"nodeType":"ExpressionStatement","src":"1013:29:86"}]},"functionSelector":"df67747a","id":8793,"implemented":true,"kind":"function","modifiers":[],"name":"setMockUnderlyingAmount","nameLocation":"954:23:86","nodeType":"FunctionDefinition","parameters":{"id":8786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8785,"mutability":"mutable","name":"amount","nameLocation":"986:6:86","nodeType":"VariableDeclaration","scope":8793,"src":"978:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8784,"name":"uint256","nodeType":"ElementaryTypeName","src":"978:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"977:16:86"},"returnParameters":{"id":8787,"nodeType":"ParameterList","parameters":[],"src":"1003:0:86"},"scope":8803,"src":"945:104:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7067],"body":{"id":8801,"nodeType":"Block","src":"1125:44:86","statements":[{"expression":{"id":8799,"name":"mockUnderlyingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8750,"src":"1142:20:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8798,"id":8800,"nodeType":"Return","src":"1135:27:86"}]},"functionSelector":"abb85613","id":8802,"implemented":true,"kind":"function","modifiers":[],"name":"getUnderlyingAmount","nameLocation":"1064:19:86","nodeType":"FunctionDefinition","overrides":{"id":8795,"nodeType":"OverrideSpecifier","overrides":[],"src":"1098:8:86"},"parameters":{"id":8794,"nodeType":"ParameterList","parameters":[],"src":"1083:2:86"},"returnParameters":{"id":8798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8802,"src":"1116:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8796,"name":"uint256","nodeType":"ElementaryTypeName","src":"1116:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1115:9:86"},"scope":8803,"src":"1055:114:86","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":8804,"src":"155:1016:86","usedErrors":[2144,6642,6645,6648,6651,6660],"usedEvents":[6621,6632,6639]}],"src":"41:1131:86"},"id":86},"contracts/test/oracles/MockERC20.sol":{"ast":{"absolutePath":"contracts/test/oracles/MockERC20.sol","exportedSymbols":{"Context":[1926],"ERC20":[1793],"IERC20":[1871],"IERC20Metadata":[1896],"MockERC20":[8836]},"id":8837,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8805,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:87"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8806,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8837,"sourceUnit":1794,"src":"66:55:87","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8807,"name":"ERC20","nameLocations":["145:5:87"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"145:5:87"},"id":8808,"nodeType":"InheritanceSpecifier","src":"145:5:87"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8836,"linearizedBaseContracts":[8836,1793,1896,1871,1926],"name":"MockERC20","nameLocation":"132:9:87","nodeType":"ContractDefinition","nodes":[{"body":{"id":8834,"nodeType":"Block","src":"247:68:87","statements":[{"expression":{"arguments":[{"expression":{"id":8822,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"263:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"267:6:87","memberName":"sender","nodeType":"MemberAccess","src":"263:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030303030","id":8824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"275:6:87","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"284:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[{"id":8828,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8814,"src":"298:8:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"290:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8826,"name":"uint256","nodeType":"ElementaryTypeName","src":"290:7:87","typeDescriptions":{}}},"id":8829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290:17:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"284:23:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"275:32:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8821,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"257:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"257:51:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8833,"nodeType":"ExpressionStatement","src":"257:51:87"}]},"id":8835,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8817,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8810,"src":"233:4:87","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8818,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8812,"src":"239:6:87","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":8819,"kind":"baseConstructorSpecifier","modifierName":{"id":8816,"name":"ERC20","nameLocations":["227:5:87"],"nodeType":"IdentifierPath","referencedDeclaration":1793,"src":"227:5:87"},"nodeType":"ModifierInvocation","src":"227:19:87"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8810,"mutability":"mutable","name":"name","nameLocation":"183:4:87","nodeType":"VariableDeclaration","scope":8835,"src":"169:18:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8809,"name":"string","nodeType":"ElementaryTypeName","src":"169:6:87","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8812,"mutability":"mutable","name":"symbol","nameLocation":"203:6:87","nodeType":"VariableDeclaration","scope":8835,"src":"189:20:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8811,"name":"string","nodeType":"ElementaryTypeName","src":"189:6:87","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8814,"mutability":"mutable","name":"decimals","nameLocation":"217:8:87","nodeType":"VariableDeclaration","scope":8835,"src":"211:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8813,"name":"uint8","nodeType":"ElementaryTypeName","src":"211:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"168:58:87"},"returnParameters":{"id":8820,"nodeType":"ParameterList","parameters":[],"src":"247:0:87"},"scope":8836,"src":"157:158:87","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8837,"src":"123:194:87","usedErrors":[],"usedEvents":[1805,1814]}],"src":"41:277:87"},"id":87},"contracts/test/oracles/MockResilientOracle.sol":{"ast":{"absolutePath":"contracts/test/oracles/MockResilientOracle.sol","exportedSymbols":{"BoundValidatorInterface":[3698],"MockOracle":[8872],"OracleInterface":[3666],"ResilientOracleInterface":[3686]},"id":8873,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8838,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:88"},{"absolutePath":"contracts/interfaces/OracleInterface.sol","file":"../../interfaces/OracleInterface.sol","id":8839,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8873,"sourceUnit":3699,"src":"66:46:88","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8840,"name":"OracleInterface","nameLocations":["137:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"137:15:88"},"id":8841,"nodeType":"InheritanceSpecifier","src":"137:15:88"}],"canonicalName":"MockOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8872,"linearizedBaseContracts":[8872,3666],"name":"MockOracle","nameLocation":"123:10:88","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"cfed246b","id":8845,"mutability":"mutable","name":"prices","nameLocation":"194:6:88","nodeType":"VariableDeclaration","scope":8872,"src":"159:41:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8844,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8842,"name":"address","nodeType":"ElementaryTypeName","src":"167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"159:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8843,"name":"uint256","nodeType":"ElementaryTypeName","src":"178:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"baseFunctions":[3665],"body":{"id":8856,"nodeType":"Block","src":"272:37:88","statements":[{"expression":{"baseExpression":{"id":8852,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8845,"src":"289:6:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8854,"indexExpression":{"id":8853,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8847,"src":"296:5:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"289:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8851,"id":8855,"nodeType":"Return","src":"282:20:88"}]},"functionSelector":"41976e09","id":8857,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"216:8:88","nodeType":"FunctionDefinition","parameters":{"id":8848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8847,"mutability":"mutable","name":"asset","nameLocation":"233:5:88","nodeType":"VariableDeclaration","scope":8857,"src":"225:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8846,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"224:15:88"},"returnParameters":{"id":8851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8857,"src":"263:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8849,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"262:9:88"},"scope":8872,"src":"207:102:88","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":8870,"nodeType":"Block","src":"371:39:88","statements":[{"expression":{"id":8868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8864,"name":"prices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8845,"src":"381:6:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8866,"indexExpression":{"id":8865,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8859,"src":"388:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"381:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8867,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8861,"src":"398:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"381:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8869,"nodeType":"ExpressionStatement","src":"381:22:88"}]},"functionSelector":"00e4768b","id":8871,"implemented":true,"kind":"function","modifiers":[],"name":"setPrice","nameLocation":"324:8:88","nodeType":"FunctionDefinition","parameters":{"id":8862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8859,"mutability":"mutable","name":"vToken","nameLocation":"341:6:88","nodeType":"VariableDeclaration","scope":8871,"src":"333:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8858,"name":"address","nodeType":"ElementaryTypeName","src":"333:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8861,"mutability":"mutable","name":"price","nameLocation":"357:5:88","nodeType":"VariableDeclaration","scope":8871,"src":"349:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8860,"name":"uint256","nodeType":"ElementaryTypeName","src":"349:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"332:31:88"},"returnParameters":{"id":8863,"nodeType":"ParameterList","parameters":[],"src":"371:0:88"},"scope":8872,"src":"315:95:88","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8873,"src":"114:298:88","usedErrors":[],"usedEvents":[]}],"src":"41:372:88"},"id":88},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","exportedSymbols":{"Context":[10047],"Ownable":[8978]},"id":8979,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8874,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:89"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","file":"../utils/Context.sol","id":8875,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8979,"sourceUnit":10048,"src":"112:30:89","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8877,"name":"Context","nameLocations":["668:7:89"],"nodeType":"IdentifierPath","referencedDeclaration":10047,"src":"668:7:89"},"id":8878,"nodeType":"InheritanceSpecifier","src":"668:7:89"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":8876,"nodeType":"StructuredDocumentation","src":"144:494:89","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":8978,"linearizedBaseContracts":[8978,10047],"name":"Ownable","nameLocation":"657:7:89","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8880,"mutability":"mutable","name":"_owner","nameLocation":"698:6:89","nodeType":"VariableDeclaration","scope":8978,"src":"682:22:89","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8879,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":8886,"name":"OwnershipTransferred","nameLocation":"717:20:89","nodeType":"EventDefinition","parameters":{"id":8885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8882,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"754:13:89","nodeType":"VariableDeclaration","scope":8886,"src":"738:29:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8881,"name":"address","nodeType":"ElementaryTypeName","src":"738:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8884,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"785:8:89","nodeType":"VariableDeclaration","scope":8886,"src":"769:24:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8883,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:57:89"},"src":"711:84:89"},{"body":{"id":8896,"nodeType":"Block","src":"932:49:89","statements":[{"expression":{"arguments":[{"id":8893,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8889,"src":"961:12:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8892,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8977,"src":"942:18:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"942:32:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8895,"nodeType":"ExpressionStatement","src":"942:32:89"}]},"documentation":{"id":8887,"nodeType":"StructuredDocumentation","src":"801:91:89","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":8897,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8889,"mutability":"mutable","name":"initialOwner","nameLocation":"918:12:89","nodeType":"VariableDeclaration","scope":8897,"src":"910:20:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8888,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"909:22:89"},"returnParameters":{"id":8891,"nodeType":"ParameterList","parameters":[],"src":"932:0:89"},"scope":8978,"src":"897:84:89","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8905,"nodeType":"Block","src":"1112:30:89","statements":[{"expression":{"id":8903,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8880,"src":"1129:6:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8902,"id":8904,"nodeType":"Return","src":"1122:13:89"}]},"documentation":{"id":8898,"nodeType":"StructuredDocumentation","src":"987:65:89","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":8906,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1066:5:89","nodeType":"FunctionDefinition","parameters":{"id":8899,"nodeType":"ParameterList","parameters":[],"src":"1071:2:89"},"returnParameters":{"id":8902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8906,"src":"1103:7:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8900,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1102:9:89"},"scope":8978,"src":"1057:85:89","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8919,"nodeType":"Block","src":"1251:96:89","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8910,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8906,"src":"1269:5:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:7:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8912,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10037,"src":"1280:10:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1280:12:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1269:23:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":8915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1294:34:89","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":8909,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1261:7:89","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:68:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8917,"nodeType":"ExpressionStatement","src":"1261:68:89"},{"id":8918,"nodeType":"PlaceholderStatement","src":"1339:1:89"}]},"documentation":{"id":8907,"nodeType":"StructuredDocumentation","src":"1148:77:89","text":" @dev Throws if called by any account other than the owner."},"id":8920,"name":"onlyOwner","nameLocation":"1239:9:89","nodeType":"ModifierDefinition","parameters":{"id":8908,"nodeType":"ParameterList","parameters":[],"src":"1248:2:89"},"src":"1230:117:89","virtual":false,"visibility":"internal"},{"body":{"id":8933,"nodeType":"Block","src":"1743:47:89","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1780:1:89","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":8928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1772:7:89","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8927,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:89","typeDescriptions":{}}},"id":8930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:10:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8926,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8977,"src":"1753:18:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:30:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8932,"nodeType":"ExpressionStatement","src":"1753:30:89"}]},"documentation":{"id":8921,"nodeType":"StructuredDocumentation","src":"1353:331:89","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":8934,"implemented":true,"kind":"function","modifiers":[{"id":8924,"kind":"modifierInvocation","modifierName":{"id":8923,"name":"onlyOwner","nameLocations":["1733:9:89"],"nodeType":"IdentifierPath","referencedDeclaration":8920,"src":"1733:9:89"},"nodeType":"ModifierInvocation","src":"1733:9:89"}],"name":"renounceOwnership","nameLocation":"1698:17:89","nodeType":"FunctionDefinition","parameters":{"id":8922,"nodeType":"ParameterList","parameters":[],"src":"1715:2:89"},"returnParameters":{"id":8925,"nodeType":"ParameterList","parameters":[],"src":"1743:0:89"},"scope":8978,"src":"1689:101:89","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8956,"nodeType":"Block","src":"2009:128:89","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8943,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8937,"src":"2027:8:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2047:1:89","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":8945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2039:7:89","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8944,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:89","typeDescriptions":{}}},"id":8947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:10:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2027:22:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":8949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2051:40:89","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":8942,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2019:7:89","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:73:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8951,"nodeType":"ExpressionStatement","src":"2019:73:89"},{"expression":{"arguments":[{"id":8953,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8937,"src":"2121:8:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8952,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8977,"src":"2102:18:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:28:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8955,"nodeType":"ExpressionStatement","src":"2102:28:89"}]},"documentation":{"id":8935,"nodeType":"StructuredDocumentation","src":"1796:138:89","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":8957,"implemented":true,"kind":"function","modifiers":[{"id":8940,"kind":"modifierInvocation","modifierName":{"id":8939,"name":"onlyOwner","nameLocations":["1999:9:89"],"nodeType":"IdentifierPath","referencedDeclaration":8920,"src":"1999:9:89"},"nodeType":"ModifierInvocation","src":"1999:9:89"}],"name":"transferOwnership","nameLocation":"1948:17:89","nodeType":"FunctionDefinition","parameters":{"id":8938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8937,"mutability":"mutable","name":"newOwner","nameLocation":"1974:8:89","nodeType":"VariableDeclaration","scope":8957,"src":"1966:16:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8936,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1965:18:89"},"returnParameters":{"id":8941,"nodeType":"ParameterList","parameters":[],"src":"2009:0:89"},"scope":8978,"src":"1939:198:89","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8976,"nodeType":"Block","src":"2354:124:89","statements":[{"assignments":[8964],"declarations":[{"constant":false,"id":8964,"mutability":"mutable","name":"oldOwner","nameLocation":"2372:8:89","nodeType":"VariableDeclaration","scope":8976,"src":"2364:16:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8963,"name":"address","nodeType":"ElementaryTypeName","src":"2364:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8966,"initialValue":{"id":8965,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8880,"src":"2383:6:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2364:25:89"},{"expression":{"id":8969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8967,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8880,"src":"2399:6:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8968,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"2408:8:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2399:17:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8970,"nodeType":"ExpressionStatement","src":"2399:17:89"},{"eventCall":{"arguments":[{"id":8972,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8964,"src":"2452:8:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8973,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"2462:8:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8971,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8886,"src":"2431:20:89","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":8974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:40:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8975,"nodeType":"EmitStatement","src":"2426:45:89"}]},"documentation":{"id":8958,"nodeType":"StructuredDocumentation","src":"2143:143:89","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":8977,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2300:18:89","nodeType":"FunctionDefinition","parameters":{"id":8961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8960,"mutability":"mutable","name":"newOwner","nameLocation":"2327:8:89","nodeType":"VariableDeclaration","scope":8977,"src":"2319:16:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8959,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:18:89"},"returnParameters":{"id":8962,"nodeType":"ParameterList","parameters":[],"src":"2354:0:89"},"scope":8978,"src":"2291:187:89","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8979,"src":"639:1841:89","usedErrors":[],"usedEvents":[8886]}],"src":"87:2394:89"},"id":89},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[8988]},"id":8989,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8980,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:90"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":8981,"nodeType":"StructuredDocumentation","src":"143:203:90","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":8988,"linearizedBaseContracts":[8988],"name":"IERC1822Proxiable","nameLocation":"357:17:90","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8982,"nodeType":"StructuredDocumentation","src":"381:438:90","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":8987,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"833:13:90","nodeType":"FunctionDefinition","parameters":{"id":8983,"nodeType":"ParameterList","parameters":[],"src":"846:2:90"},"returnParameters":{"id":8986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8987,"src":"872:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"872:7:90","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"871:9:90"},"scope":8988,"src":"824:57:90","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8989,"src":"347:536:90","usedErrors":[],"usedEvents":[]}],"src":"118:766:90"},"id":90},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[10025],"ERC1967Proxy":[9041],"ERC1967Upgrade":[9359],"IBeacon":[9421],"IERC1822Proxiable":[8988],"Proxy":[9411],"StorageSlot":[10107]},"id":9042,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8990,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:91"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","file":"../Proxy.sol","id":8991,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9042,"sourceUnit":9412,"src":"124:22:91","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":8992,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9042,"sourceUnit":9360,"src":"147:30:91","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8994,"name":"Proxy","nameLocations":["577:5:91"],"nodeType":"IdentifierPath","referencedDeclaration":9411,"src":"577:5:91"},"id":8995,"nodeType":"InheritanceSpecifier","src":"577:5:91"},{"baseName":{"id":8996,"name":"ERC1967Upgrade","nameLocations":["584:14:91"],"nodeType":"IdentifierPath","referencedDeclaration":9359,"src":"584:14:91"},"id":8997,"nodeType":"InheritanceSpecifier","src":"584:14:91"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":8993,"nodeType":"StructuredDocumentation","src":"179:372:91","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":9041,"linearizedBaseContracts":[9041,9359,9411],"name":"ERC1967Proxy","nameLocation":"561:12:91","nodeType":"ContractDefinition","nodes":[{"body":{"id":9027,"nodeType":"Block","src":"1001:161:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":9006,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"1018:20:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e696d706c656d656e746174696f6e","id":9012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1068:30:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""},"value":"eip1967.proxy.implementation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""}],"id":9011,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1058:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1050:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9009,"name":"uint256","nodeType":"ElementaryTypeName","src":"1050:7:91","typeDescriptions":{}}},"id":9014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1050:54:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1042:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1042:7:91","typeDescriptions":{}}},"id":9017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1042:63:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1018:87:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9005,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1011:6:91","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:95:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9020,"nodeType":"ExpressionStatement","src":"1011:95:91"},{"expression":{"arguments":[{"id":9022,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9000,"src":"1134:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9023,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9002,"src":"1142:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":9024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1149:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9021,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"1116:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":9025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:39:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9026,"nodeType":"ExpressionStatement","src":"1116:39:91"}]},"documentation":{"id":8998,"nodeType":"StructuredDocumentation","src":"605:335:91","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializating the storage of the proxy like a Solidity constructor."},"id":9028,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9000,"mutability":"mutable","name":"_logic","nameLocation":"965:6:91","nodeType":"VariableDeclaration","scope":9028,"src":"957:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8999,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9002,"mutability":"mutable","name":"_data","nameLocation":"986:5:91","nodeType":"VariableDeclaration","scope":9028,"src":"973:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9001,"name":"bytes","nodeType":"ElementaryTypeName","src":"973:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"956:36:91"},"returnParameters":{"id":9004,"nodeType":"ParameterList","parameters":[],"src":"1001:0:91"},"scope":9041,"src":"945:217:91","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[9376],"body":{"id":9039,"nodeType":"Block","src":"1321:59:91","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9035,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9359,"src":"1338:14:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$9359_$","typeString":"type(contract ERC1967Upgrade)"}},"id":9036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1353:18:91","memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":9073,"src":"1338:33:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9034,"id":9038,"nodeType":"Return","src":"1331:42:91"}]},"documentation":{"id":9029,"nodeType":"StructuredDocumentation","src":"1168:67:91","text":" @dev Returns the current implementation address."},"id":9040,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1249:15:91","nodeType":"FunctionDefinition","overrides":{"id":9031,"nodeType":"OverrideSpecifier","overrides":[],"src":"1289:8:91"},"parameters":{"id":9030,"nodeType":"ParameterList","parameters":[],"src":"1264:2:91"},"returnParameters":{"id":9034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9033,"mutability":"mutable","name":"impl","nameLocation":"1315:4:91","nodeType":"VariableDeclaration","scope":9040,"src":"1307:12:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9032,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1306:14:91"},"scope":9041,"src":"1240:140:91","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":9042,"src":"552:830:91","usedErrors":[],"usedEvents":[9060,9206,9271]}],"src":"99:1284:91"},"id":91},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[10025],"ERC1967Upgrade":[9359],"IBeacon":[9421],"IERC1822Proxiable":[8988],"StorageSlot":[10107]},"id":9360,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9043,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"121:23:92"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":9044,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9360,"sourceUnit":9422,"src":"146:31:92","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":9045,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9360,"sourceUnit":8989,"src":"178:45:92","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","file":"../../utils/Address.sol","id":9046,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9360,"sourceUnit":10026,"src":"224:33:92","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":9047,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9360,"sourceUnit":10108,"src":"258:37:92","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1967Upgrade","contractDependencies":[],"contractKind":"contract","documentation":{"id":9048,"nodeType":"StructuredDocumentation","src":"297:236:92","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._\n @custom:oz-upgrades-unsafe-allow delegatecall"},"fullyImplemented":true,"id":9359,"linearizedBaseContracts":[9359],"name":"ERC1967Upgrade","nameLocation":"552:14:92","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9051,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"677:14:92","nodeType":"VariableDeclaration","scope":9359,"src":"652:108:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"652:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":9050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"694:66:92","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":9052,"nodeType":"StructuredDocumentation","src":"767:214:92","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":9055,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1012:20:92","nodeType":"VariableDeclaration","scope":9359,"src":"986:115:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"986:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":9054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:66:92","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":9056,"nodeType":"StructuredDocumentation","src":"1108:68:92","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":9060,"name":"Upgraded","nameLocation":"1187:8:92","nodeType":"EventDefinition","parameters":{"id":9059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9058,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1212:14:92","nodeType":"VariableDeclaration","scope":9060,"src":"1196:30:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9057,"name":"address","nodeType":"ElementaryTypeName","src":"1196:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1195:32:92"},"src":"1181:47:92"},{"body":{"id":9072,"nodeType":"Block","src":"1368:78:92","statements":[{"expression":{"expression":{"arguments":[{"id":9068,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"1412:20:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9066,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"1385:11:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10107_$","typeString":"type(library StorageSlot)"}},"id":9067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1397:14:92","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10073,"src":"1385:26:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10053_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:48:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1434:5:92","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10052,"src":"1385:54:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9065,"id":9071,"nodeType":"Return","src":"1378:61:92"}]},"documentation":{"id":9061,"nodeType":"StructuredDocumentation","src":"1234:67:92","text":" @dev Returns the current implementation address."},"id":9073,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1315:18:92","nodeType":"FunctionDefinition","parameters":{"id":9062,"nodeType":"ParameterList","parameters":[],"src":"1333:2:92"},"returnParameters":{"id":9065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9073,"src":"1359:7:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9063,"name":"address","nodeType":"ElementaryTypeName","src":"1359:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1358:9:92"},"scope":9359,"src":"1306:140:92","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9096,"nodeType":"Block","src":"1600:196:92","statements":[{"expression":{"arguments":[{"arguments":[{"id":9082,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9076,"src":"1637:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9080,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10025,"src":"1618:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10025_$","typeString":"type(library Address)"}},"id":9081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:10:92","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":9748,"src":"1618:18:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1618:37:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":9084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1657:47:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":9079,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1610:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:95:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9086,"nodeType":"ExpressionStatement","src":"1610:95:92"},{"expression":{"id":9094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":9090,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"1742:20:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9087,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"1715:11:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10107_$","typeString":"type(library StorageSlot)"}},"id":9089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1727:14:92","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10073,"src":"1715:26:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10053_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:48:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1764:5:92","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10052,"src":"1715:54:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9093,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9076,"src":"1772:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1715:74:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9095,"nodeType":"ExpressionStatement","src":"1715:74:92"}]},"documentation":{"id":9074,"nodeType":"StructuredDocumentation","src":"1452:80:92","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":9097,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1546:18:92","nodeType":"FunctionDefinition","parameters":{"id":9077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9076,"mutability":"mutable","name":"newImplementation","nameLocation":"1573:17:92","nodeType":"VariableDeclaration","scope":9097,"src":"1565:25:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9075,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1564:27:92"},"returnParameters":{"id":9078,"nodeType":"ParameterList","parameters":[],"src":"1600:0:92"},"scope":9359,"src":"1537:259:92","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":9111,"nodeType":"Block","src":"1958:96:92","statements":[{"expression":{"arguments":[{"id":9104,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9100,"src":"1987:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9103,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"1968:18:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:37:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9106,"nodeType":"ExpressionStatement","src":"1968:37:92"},{"eventCall":{"arguments":[{"id":9108,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9100,"src":"2029:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9107,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9060,"src":"2020:8:92","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:27:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9110,"nodeType":"EmitStatement","src":"2015:32:92"}]},"documentation":{"id":9098,"nodeType":"StructuredDocumentation","src":"1802:95:92","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":9112,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1911:10:92","nodeType":"FunctionDefinition","parameters":{"id":9101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9100,"mutability":"mutable","name":"newImplementation","nameLocation":"1930:17:92","nodeType":"VariableDeclaration","scope":9112,"src":"1922:25:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9099,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1921:27:92"},"returnParameters":{"id":9102,"nodeType":"ParameterList","parameters":[],"src":"1958:0:92"},"scope":9359,"src":"1902:152:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9141,"nodeType":"Block","src":"2316:167:92","statements":[{"expression":{"arguments":[{"id":9123,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2337:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9122,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"2326:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:29:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9125,"nodeType":"ExpressionStatement","src":"2326:29:92"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9126,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"2369:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:6:92","memberName":"length","nodeType":"MemberAccess","src":"2369:11:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2369:15:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":9130,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"2388:9:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2369:28:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9140,"nodeType":"IfStatement","src":"2365:112:92","trueBody":{"id":9139,"nodeType":"Block","src":"2399:78:92","statements":[{"expression":{"arguments":[{"id":9135,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2442:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9136,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"2461:4:92","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":9132,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10025,"src":"2413:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10025_$","typeString":"type(library Address)"}},"id":9134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2421:20:92","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":9958,"src":"2413:28:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":9137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:53:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9138,"nodeType":"ExpressionStatement","src":"2413:53:92"}]}}]},"documentation":{"id":9113,"nodeType":"StructuredDocumentation","src":"2060:123:92","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":9142,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2197:17:92","nodeType":"FunctionDefinition","parameters":{"id":9120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9115,"mutability":"mutable","name":"newImplementation","nameLocation":"2232:17:92","nodeType":"VariableDeclaration","scope":9142,"src":"2224:25:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9114,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9117,"mutability":"mutable","name":"data","nameLocation":"2272:4:92","nodeType":"VariableDeclaration","scope":9142,"src":"2259:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9116,"name":"bytes","nodeType":"ElementaryTypeName","src":"2259:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9119,"mutability":"mutable","name":"forceCall","nameLocation":"2291:9:92","nodeType":"VariableDeclaration","scope":9142,"src":"2286:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9118,"name":"bool","nodeType":"ElementaryTypeName","src":"2286:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2214:92:92"},"returnParameters":{"id":9121,"nodeType":"ParameterList","parameters":[],"src":"2316:0:92"},"scope":9359,"src":"2188:295:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9194,"nodeType":"Block","src":"2787:820:92","statements":[{"condition":{"expression":{"arguments":[{"id":9154,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9051,"src":"3128:14:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9152,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"3101:11:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10107_$","typeString":"type(library StorageSlot)"}},"id":9153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3113:14:92","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":10084,"src":"3101:26:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$10056_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":9155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3101:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10056_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":9156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3144:5:92","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10055,"src":"3101:48:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9192,"nodeType":"Block","src":"3219:382:92","statements":[{"clauses":[{"block":{"id":9177,"nodeType":"Block","src":"3313:115:92","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9171,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9168,"src":"3339:4:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9172,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"3347:20:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3339:28:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":9174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3369:43:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":9170,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3331:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3331:82:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9176,"nodeType":"ExpressionStatement","src":"3331:82:92"}]},"errorName":"","id":9178,"nodeType":"TryCatchClause","parameters":{"id":9169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9168,"mutability":"mutable","name":"slot","nameLocation":"3307:4:92","nodeType":"VariableDeclaration","scope":9178,"src":"3299:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3299:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3298:14:92"},"src":"3290:138:92"},{"block":{"id":9183,"nodeType":"Block","src":"3435:89:92","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":9180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3460:48:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":9179,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3453:6:92","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:56:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9182,"nodeType":"ExpressionStatement","src":"3453:56:92"}]},"errorName":"","id":9184,"nodeType":"TryCatchClause","src":"3429:95:92"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9163,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"3255:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9162,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8988,"src":"3237:17:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$8988_$","typeString":"type(contract IERC1822Proxiable)"}},"id":9164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:36:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$8988","typeString":"contract IERC1822Proxiable"}},"id":9165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3274:13:92","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":8987,"src":"3237:50:92","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":9166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:52:92","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9185,"nodeType":"TryStatement","src":"3233:291:92"},{"expression":{"arguments":[{"id":9187,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"3555:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9188,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9147,"src":"3574:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9189,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9149,"src":"3580:9:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9186,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"3537:17:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":9190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:53:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9191,"nodeType":"ExpressionStatement","src":"3537:53:92"}]},"id":9193,"nodeType":"IfStatement","src":"3097:504:92","trueBody":{"id":9161,"nodeType":"Block","src":"3151:62:92","statements":[{"expression":{"arguments":[{"id":9158,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"3184:17:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9157,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"3165:18:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:37:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9160,"nodeType":"ExpressionStatement","src":"3165:37:92"}]}}]},"documentation":{"id":9143,"nodeType":"StructuredDocumentation","src":"2489:161:92","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":9195,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2664:21:92","nodeType":"FunctionDefinition","parameters":{"id":9150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9145,"mutability":"mutable","name":"newImplementation","nameLocation":"2703:17:92","nodeType":"VariableDeclaration","scope":9195,"src":"2695:25:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9144,"name":"address","nodeType":"ElementaryTypeName","src":"2695:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9147,"mutability":"mutable","name":"data","nameLocation":"2743:4:92","nodeType":"VariableDeclaration","scope":9195,"src":"2730:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9146,"name":"bytes","nodeType":"ElementaryTypeName","src":"2730:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9149,"mutability":"mutable","name":"forceCall","nameLocation":"2762:9:92","nodeType":"VariableDeclaration","scope":9195,"src":"2757:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9148,"name":"bool","nodeType":"ElementaryTypeName","src":"2757:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2685:92:92"},"returnParameters":{"id":9151,"nodeType":"ParameterList","parameters":[],"src":"2787:0:92"},"scope":9359,"src":"2655:952:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":9196,"nodeType":"StructuredDocumentation","src":"3613:189:92","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":9199,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3833:11:92","nodeType":"VariableDeclaration","scope":9359,"src":"3807:106:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3807:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":9198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3847:66:92","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":9200,"nodeType":"StructuredDocumentation","src":"3920:67:92","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":9206,"name":"AdminChanged","nameLocation":"3998:12:92","nodeType":"EventDefinition","parameters":{"id":9205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9202,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4019:13:92","nodeType":"VariableDeclaration","scope":9206,"src":"4011:21:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9201,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9204,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4042:8:92","nodeType":"VariableDeclaration","scope":9206,"src":"4034:16:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9203,"name":"address","nodeType":"ElementaryTypeName","src":"4034:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:41:92"},"src":"3992:60:92"},{"body":{"id":9218,"nodeType":"Block","src":"4174:69:92","statements":[{"expression":{"expression":{"arguments":[{"id":9214,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"4218:11:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9212,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"4191:11:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10107_$","typeString":"type(library StorageSlot)"}},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4203:14:92","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10073,"src":"4191:26:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10053_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:39:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4231:5:92","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10052,"src":"4191:45:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9211,"id":9217,"nodeType":"Return","src":"4184:52:92"}]},"documentation":{"id":9207,"nodeType":"StructuredDocumentation","src":"4058:50:92","text":" @dev Returns the current admin."},"id":9219,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4122:9:92","nodeType":"FunctionDefinition","parameters":{"id":9208,"nodeType":"ParameterList","parameters":[],"src":"4131:2:92"},"returnParameters":{"id":9211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9219,"src":"4165:7:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9209,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4164:9:92"},"scope":9359,"src":"4113:130:92","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9244,"nodeType":"Block","src":"4370:156:92","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9226,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9222,"src":"4388:8:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408:1:92","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":9228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4400:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9227,"name":"address","nodeType":"ElementaryTypeName","src":"4400:7:92","typeDescriptions":{}}},"id":9230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4400:10:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4388:22:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":9232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4412:40:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":9225,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4380:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:73:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9234,"nodeType":"ExpressionStatement","src":"4380:73:92"},{"expression":{"id":9242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":9238,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"4490:11:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9235,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"4463:11:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10107_$","typeString":"type(library StorageSlot)"}},"id":9237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4475:14:92","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10073,"src":"4463:26:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10053_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:39:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4503:5:92","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10052,"src":"4463:45:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9241,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9222,"src":"4511:8:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4463:56:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9243,"nodeType":"ExpressionStatement","src":"4463:56:92"}]},"documentation":{"id":9220,"nodeType":"StructuredDocumentation","src":"4249:71:92","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":9245,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4334:9:92","nodeType":"FunctionDefinition","parameters":{"id":9223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9222,"mutability":"mutable","name":"newAdmin","nameLocation":"4352:8:92","nodeType":"VariableDeclaration","scope":9245,"src":"4344:16:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9221,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4343:18:92"},"returnParameters":{"id":9224,"nodeType":"ParameterList","parameters":[],"src":"4370:0:92"},"scope":9359,"src":"4325:201:92","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":9261,"nodeType":"Block","src":"4686:86:92","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9252,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"4714:9:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:11:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9254,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9248,"src":"4727:8:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9251,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9206,"src":"4701:12:92","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":9255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:35:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9256,"nodeType":"EmitStatement","src":"4696:40:92"},{"expression":{"arguments":[{"id":9258,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9248,"src":"4756:8:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9257,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9245,"src":"4746:9:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4746:19:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9260,"nodeType":"ExpressionStatement","src":"4746:19:92"}]},"documentation":{"id":9246,"nodeType":"StructuredDocumentation","src":"4532:100:92","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":9262,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4646:12:92","nodeType":"FunctionDefinition","parameters":{"id":9249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9248,"mutability":"mutable","name":"newAdmin","nameLocation":"4667:8:92","nodeType":"VariableDeclaration","scope":9262,"src":"4659:16:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9247,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4658:18:92"},"returnParameters":{"id":9250,"nodeType":"ParameterList","parameters":[],"src":"4686:0:92"},"scope":9359,"src":"4637:135:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":9263,"nodeType":"StructuredDocumentation","src":"4778:232:92","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":9266,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5041:12:92","nodeType":"VariableDeclaration","scope":9359,"src":"5015:107:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5015:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":9265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5056:66:92","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":9267,"nodeType":"StructuredDocumentation","src":"5129:60:92","text":" @dev Emitted when the beacon is upgraded."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":9271,"name":"BeaconUpgraded","nameLocation":"5200:14:92","nodeType":"EventDefinition","parameters":{"id":9270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9269,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5231:6:92","nodeType":"VariableDeclaration","scope":9271,"src":"5215:22:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9268,"name":"address","nodeType":"ElementaryTypeName","src":"5215:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5214:24:92"},"src":"5194:45:92"},{"body":{"id":9283,"nodeType":"Block","src":"5355:70:92","statements":[{"expression":{"expression":{"arguments":[{"id":9279,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9266,"src":"5399:12:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9277,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"5372:11:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10107_$","typeString":"type(library StorageSlot)"}},"id":9278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5384:14:92","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10073,"src":"5372:26:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10053_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5372:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5413:5:92","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10052,"src":"5372:46:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9276,"id":9282,"nodeType":"Return","src":"5365:53:92"}]},"documentation":{"id":9272,"nodeType":"StructuredDocumentation","src":"5245:51:92","text":" @dev Returns the current beacon."},"id":9284,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5310:10:92","nodeType":"FunctionDefinition","parameters":{"id":9273,"nodeType":"ParameterList","parameters":[],"src":"5320:2:92"},"returnParameters":{"id":9276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9284,"src":"5346:7:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9274,"name":"address","nodeType":"ElementaryTypeName","src":"5346:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5345:9:92"},"scope":9359,"src":"5301:124:92","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9319,"nodeType":"Block","src":"5554:290:92","statements":[{"expression":{"arguments":[{"arguments":[{"id":9293,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9287,"src":"5591:9:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9291,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10025,"src":"5572:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10025_$","typeString":"type(library Address)"}},"id":9292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5580:10:92","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":9748,"src":"5572:18:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5572:29:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":9295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5603:39:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":9290,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5564:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5564:79:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9297,"nodeType":"ExpressionStatement","src":"5564:79:92"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9302,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9287,"src":"5688:9:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9301,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"5680:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$9421_$","typeString":"type(contract IBeacon)"}},"id":9303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$9421","typeString":"contract IBeacon"}},"id":9304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5699:14:92","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":9420,"src":"5680:33:92","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":9305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:35:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9299,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10025,"src":"5661:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10025_$","typeString":"type(library Address)"}},"id":9300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5669:10:92","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":9748,"src":"5661:18:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:55:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":9307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5718:50:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":9298,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5653:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:116:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9309,"nodeType":"ExpressionStatement","src":"5653:116:92"},{"expression":{"id":9317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":9313,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9266,"src":"5806:12:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9310,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"5779:11:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10107_$","typeString":"type(library StorageSlot)"}},"id":9312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5791:14:92","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10073,"src":"5779:26:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10053_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5779:40:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5820:5:92","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10052,"src":"5779:46:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9316,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9287,"src":"5828:9:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5779:58:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9318,"nodeType":"ExpressionStatement","src":"5779:58:92"}]},"documentation":{"id":9285,"nodeType":"StructuredDocumentation","src":"5431:71:92","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":9320,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5516:10:92","nodeType":"FunctionDefinition","parameters":{"id":9288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9287,"mutability":"mutable","name":"newBeacon","nameLocation":"5535:9:92","nodeType":"VariableDeclaration","scope":9320,"src":"5527:17:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9286,"name":"address","nodeType":"ElementaryTypeName","src":"5527:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5526:19:92"},"returnParameters":{"id":9289,"nodeType":"ParameterList","parameters":[],"src":"5554:0:92"},"scope":9359,"src":"5507:337:92","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":9357,"nodeType":"Block","src":"6273:217:92","statements":[{"expression":{"arguments":[{"id":9331,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9323,"src":"6294:9:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9330,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9320,"src":"6283:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:21:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9333,"nodeType":"ExpressionStatement","src":"6283:21:92"},{"eventCall":{"arguments":[{"id":9335,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9323,"src":"6334:9:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9334,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9271,"src":"6319:14:92","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6319:25:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9337,"nodeType":"EmitStatement","src":"6314:30:92"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9338,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9325,"src":"6358:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6363:6:92","memberName":"length","nodeType":"MemberAccess","src":"6358:11:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6372:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6358:15:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":9342,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9327,"src":"6377:9:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6358:28:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9356,"nodeType":"IfStatement","src":"6354:130:92","trueBody":{"id":9355,"nodeType":"Block","src":"6388:96:92","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9348,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9323,"src":"6439:9:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9347,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"6431:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$9421_$","typeString":"type(contract IBeacon)"}},"id":9349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$9421","typeString":"contract IBeacon"}},"id":9350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6450:14:92","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":9420,"src":"6431:33:92","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":9351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:35:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9352,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9325,"src":"6468:4:92","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":9344,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10025,"src":"6402:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10025_$","typeString":"type(library Address)"}},"id":9346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6410:20:92","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":9958,"src":"6402:28:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":9353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6402:71:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9354,"nodeType":"ExpressionStatement","src":"6402:71:92"}]}}]},"documentation":{"id":9321,"nodeType":"StructuredDocumentation","src":"5850:292:92","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":9358,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6156:23:92","nodeType":"FunctionDefinition","parameters":{"id":9328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9323,"mutability":"mutable","name":"newBeacon","nameLocation":"6197:9:92","nodeType":"VariableDeclaration","scope":9358,"src":"6189:17:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"6189:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9325,"mutability":"mutable","name":"data","nameLocation":"6229:4:92","nodeType":"VariableDeclaration","scope":9358,"src":"6216:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9324,"name":"bytes","nodeType":"ElementaryTypeName","src":"6216:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9327,"mutability":"mutable","name":"forceCall","nameLocation":"6248:9:92","nodeType":"VariableDeclaration","scope":9358,"src":"6243:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9326,"name":"bool","nodeType":"ElementaryTypeName","src":"6243:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6179:84:92"},"returnParameters":{"id":9329,"nodeType":"ParameterList","parameters":[],"src":"6273:0:92"},"scope":9359,"src":"6147:343:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":9360,"src":"534:5958:92","usedErrors":[],"usedEvents":[9060,9206,9271]}],"src":"121:6372:92"},"id":92},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","exportedSymbols":{"Proxy":[9411]},"id":9412,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9361,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:93"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":9362,"nodeType":"StructuredDocumentation","src":"129:598:93","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":9411,"linearizedBaseContracts":[9411],"name":"Proxy","nameLocation":"746:5:93","nodeType":"ContractDefinition","nodes":[{"body":{"id":9369,"nodeType":"Block","src":"1013:835:93","statements":[{"AST":{"nativeSrc":"1032:810:93","nodeType":"YulBlock","src":"1032:810:93","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:93","nodeType":"YulLiteral","src":"1285:1:93","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:93","nodeType":"YulLiteral","src":"1288:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1291:12:93","nodeType":"YulIdentifier","src":"1291:12:93"},"nativeSrc":"1291:14:93","nodeType":"YulFunctionCall","src":"1291:14:93"}],"functionName":{"name":"calldatacopy","nativeSrc":"1272:12:93","nodeType":"YulIdentifier","src":"1272:12:93"},"nativeSrc":"1272:34:93","nodeType":"YulFunctionCall","src":"1272:34:93"},"nativeSrc":"1272:34:93","nodeType":"YulExpressionStatement","src":"1272:34:93"},{"nativeSrc":"1433:74:93","nodeType":"YulVariableDeclaration","src":"1433:74:93","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1460:3:93","nodeType":"YulIdentifier","src":"1460:3:93"},"nativeSrc":"1460:5:93","nodeType":"YulFunctionCall","src":"1460:5:93"},{"name":"implementation","nativeSrc":"1467:14:93","nodeType":"YulIdentifier","src":"1467:14:93"},{"kind":"number","nativeSrc":"1483:1:93","nodeType":"YulLiteral","src":"1483:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1486:12:93","nodeType":"YulIdentifier","src":"1486:12:93"},"nativeSrc":"1486:14:93","nodeType":"YulFunctionCall","src":"1486:14:93"},{"kind":"number","nativeSrc":"1502:1:93","nodeType":"YulLiteral","src":"1502:1:93","type":"","value":"0"},{"kind":"number","nativeSrc":"1505:1:93","nodeType":"YulLiteral","src":"1505:1:93","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1447:12:93","nodeType":"YulIdentifier","src":"1447:12:93"},"nativeSrc":"1447:60:93","nodeType":"YulFunctionCall","src":"1447:60:93"},"variables":[{"name":"result","nativeSrc":"1437:6:93","nodeType":"YulTypedName","src":"1437:6:93","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1575:1:93","nodeType":"YulLiteral","src":"1575:1:93","type":"","value":"0"},{"kind":"number","nativeSrc":"1578:1:93","nodeType":"YulLiteral","src":"1578:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1581:14:93","nodeType":"YulIdentifier","src":"1581:14:93"},"nativeSrc":"1581:16:93","nodeType":"YulFunctionCall","src":"1581:16:93"}],"functionName":{"name":"returndatacopy","nativeSrc":"1560:14:93","nodeType":"YulIdentifier","src":"1560:14:93"},"nativeSrc":"1560:38:93","nodeType":"YulFunctionCall","src":"1560:38:93"},"nativeSrc":"1560:38:93","nodeType":"YulExpressionStatement","src":"1560:38:93"},{"cases":[{"body":{"nativeSrc":"1693:59:93","nodeType":"YulBlock","src":"1693:59:93","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1718:1:93","nodeType":"YulLiteral","src":"1718:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1721:14:93","nodeType":"YulIdentifier","src":"1721:14:93"},"nativeSrc":"1721:16:93","nodeType":"YulFunctionCall","src":"1721:16:93"}],"functionName":{"name":"revert","nativeSrc":"1711:6:93","nodeType":"YulIdentifier","src":"1711:6:93"},"nativeSrc":"1711:27:93","nodeType":"YulFunctionCall","src":"1711:27:93"},"nativeSrc":"1711:27:93","nodeType":"YulExpressionStatement","src":"1711:27:93"}]},"nativeSrc":"1686:66:93","nodeType":"YulCase","src":"1686:66:93","value":{"kind":"number","nativeSrc":"1691:1:93","nodeType":"YulLiteral","src":"1691:1:93","type":"","value":"0"}},{"body":{"nativeSrc":"1773:59:93","nodeType":"YulBlock","src":"1773:59:93","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:93","nodeType":"YulLiteral","src":"1798:1:93","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1801:14:93","nodeType":"YulIdentifier","src":"1801:14:93"},"nativeSrc":"1801:16:93","nodeType":"YulFunctionCall","src":"1801:16:93"}],"functionName":{"name":"return","nativeSrc":"1791:6:93","nodeType":"YulIdentifier","src":"1791:6:93"},"nativeSrc":"1791:27:93","nodeType":"YulFunctionCall","src":"1791:27:93"},"nativeSrc":"1791:27:93","nodeType":"YulExpressionStatement","src":"1791:27:93"}]},"nativeSrc":"1765:67:93","nodeType":"YulCase","src":"1765:67:93","value":"default"}],"expression":{"name":"result","nativeSrc":"1619:6:93","nodeType":"YulIdentifier","src":"1619:6:93"},"nativeSrc":"1612:220:93","nodeType":"YulSwitch","src":"1612:220:93"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9365,"isOffset":false,"isSlot":false,"src":"1467:14:93","valueSize":1}],"id":9368,"nodeType":"InlineAssembly","src":"1023:819:93"}]},"documentation":{"id":9363,"nodeType":"StructuredDocumentation","src":"758:190:93","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":9370,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"962:9:93","nodeType":"FunctionDefinition","parameters":{"id":9366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9365,"mutability":"mutable","name":"implementation","nameLocation":"980:14:93","nodeType":"VariableDeclaration","scope":9370,"src":"972:22:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9364,"name":"address","nodeType":"ElementaryTypeName","src":"972:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"971:24:93"},"returnParameters":{"id":9367,"nodeType":"ParameterList","parameters":[],"src":"1013:0:93"},"scope":9411,"src":"953:895:93","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":9371,"nodeType":"StructuredDocumentation","src":"1854:172:93","text":" @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":9376,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2040:15:93","nodeType":"FunctionDefinition","parameters":{"id":9372,"nodeType":"ParameterList","parameters":[],"src":"2055:2:93"},"returnParameters":{"id":9375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9376,"src":"2089:7:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9373,"name":"address","nodeType":"ElementaryTypeName","src":"2089:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2088:9:93"},"scope":9411,"src":"2031:67:93","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9388,"nodeType":"Block","src":"2365:72:93","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9380,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9410,"src":"2375:15:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:17:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9382,"nodeType":"ExpressionStatement","src":"2375:17:93"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9384,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2412:15:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:17:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9383,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9370,"src":"2402:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2402:28:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9387,"nodeType":"ExpressionStatement","src":"2402:28:93"}]},"documentation":{"id":9377,"nodeType":"StructuredDocumentation","src":"2104:218:93","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internall call site, it will return directly to the external caller."},"id":9389,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2336:9:93","nodeType":"FunctionDefinition","parameters":{"id":9378,"nodeType":"ParameterList","parameters":[],"src":"2345:2:93"},"returnParameters":{"id":9379,"nodeType":"ParameterList","parameters":[],"src":"2365:0:93"},"scope":9411,"src":"2327:110:93","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9396,"nodeType":"Block","src":"2670:28:93","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9393,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"2680:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:11:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9395,"nodeType":"ExpressionStatement","src":"2680:11:93"}]},"documentation":{"id":9390,"nodeType":"StructuredDocumentation","src":"2443:186:93","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":9397,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9391,"nodeType":"ParameterList","parameters":[],"src":"2642:2:93"},"returnParameters":{"id":9392,"nodeType":"ParameterList","parameters":[],"src":"2670:0:93"},"scope":9411,"src":"2634:64:93","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":9404,"nodeType":"Block","src":"2893:28:93","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9401,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"2903:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2903:11:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9403,"nodeType":"ExpressionStatement","src":"2903:11:93"}]},"documentation":{"id":9398,"nodeType":"StructuredDocumentation","src":"2704:149:93","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":9405,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9399,"nodeType":"ParameterList","parameters":[],"src":"2865:2:93"},"returnParameters":{"id":9400,"nodeType":"ParameterList","parameters":[],"src":"2893:0:93"},"scope":9411,"src":"2858:63:93","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":9409,"nodeType":"Block","src":"3246:2:93","statements":[]},"documentation":{"id":9406,"nodeType":"StructuredDocumentation","src":"2927:270:93","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overriden should call `super._beforeFallback()`."},"id":9410,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3211:15:93","nodeType":"FunctionDefinition","parameters":{"id":9407,"nodeType":"ParameterList","parameters":[],"src":"3226:2:93"},"returnParameters":{"id":9408,"nodeType":"ParameterList","parameters":[],"src":"3246:0:93"},"scope":9411,"src":"3202:46:93","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":9412,"src":"728:2522:93","usedErrors":[],"usedEvents":[]}],"src":"104:3147:93"},"id":93},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[9421]},"id":9422,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9413,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:94"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":9414,"nodeType":"StructuredDocumentation","src":"118:79:94","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":9421,"linearizedBaseContracts":[9421],"name":"IBeacon","nameLocation":"208:7:94","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9415,"nodeType":"StructuredDocumentation","src":"222:162:94","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":9420,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:94","nodeType":"FunctionDefinition","parameters":{"id":9416,"nodeType":"ParameterList","parameters":[],"src":"412:2:94"},"returnParameters":{"id":9419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9420,"src":"438:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9417,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:94"},"scope":9421,"src":"389:58:94","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9422,"src":"198:251:94","usedErrors":[],"usedEvents":[]}],"src":"93:357:94"},"id":94},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[10025],"Context":[10047],"ERC1967Proxy":[9041],"ERC1967Upgrade":[9359],"IBeacon":[9421],"IERC1822Proxiable":[8988],"Ownable":[8978],"Proxy":[9411],"ProxyAdmin":[9566],"StorageSlot":[10107],"TransparentUpgradeableProxy":[9730]},"id":9567,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9423,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:95"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","file":"./TransparentUpgradeableProxy.sol","id":9424,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9567,"sourceUnit":9731,"src":"126:43:95","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","file":"../../access/Ownable.sol","id":9425,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9567,"sourceUnit":8979,"src":"170:34:95","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9427,"name":"Ownable","nameLocations":["458:7:95"],"nodeType":"IdentifierPath","referencedDeclaration":8978,"src":"458:7:95"},"id":9428,"nodeType":"InheritanceSpecifier","src":"458:7:95"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":9426,"nodeType":"StructuredDocumentation","src":"206:228:95","text":" @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}."},"fullyImplemented":true,"id":9566,"linearizedBaseContracts":[9566,8978,10047],"name":"ProxyAdmin","nameLocation":"444:10:95","nodeType":"ContractDefinition","nodes":[{"body":{"id":9436,"nodeType":"Block","src":"530:2:95","statements":[]},"id":9437,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9433,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"516:12:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":9434,"kind":"baseConstructorSpecifier","modifierName":{"id":9432,"name":"Ownable","nameLocations":["508:7:95"],"nodeType":"IdentifierPath","referencedDeclaration":8978,"src":"508:7:95"},"nodeType":"ModifierInvocation","src":"508:21:95"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9430,"mutability":"mutable","name":"initialOwner","nameLocation":"494:12:95","nodeType":"VariableDeclaration","scope":9437,"src":"486:20:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9429,"name":"address","nodeType":"ElementaryTypeName","src":"486:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"485:22:95"},"returnParameters":{"id":9435,"nodeType":"ParameterList","parameters":[],"src":"530:0:95"},"scope":9566,"src":"473:59:95","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9470,"nodeType":"Block","src":"806:332:95","statements":[{"assignments":[9447,9449],"declarations":[{"constant":false,"id":9447,"mutability":"mutable","name":"success","nameLocation":"979:7:95","nodeType":"VariableDeclaration","scope":9470,"src":"974:12:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9446,"name":"bool","nodeType":"ElementaryTypeName","src":"974:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9449,"mutability":"mutable","name":"returndata","nameLocation":"1001:10:95","nodeType":"VariableDeclaration","scope":9470,"src":"988:23:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9448,"name":"bytes","nodeType":"ElementaryTypeName","src":"988:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9457,"initialValue":{"arguments":[{"hexValue":"5c60da1b","id":9455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1041:13:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}],"expression":{"arguments":[{"id":9452,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9441,"src":"1023:5:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}],"id":9451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9450,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:95","typeDescriptions":{}}},"id":9453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:14:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:10:95","memberName":"staticcall","nodeType":"MemberAccess","src":"1015:25:95","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":9456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:40:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"973:82:95"},{"expression":{"arguments":[{"id":9459,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9447,"src":"1073:7:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9458,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1065:7:95","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:16:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9461,"nodeType":"ExpressionStatement","src":"1065:16:95"},{"expression":{"arguments":[{"id":9464,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9449,"src":"1109:10:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1122:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9465,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:95","typeDescriptions":{}}}],"id":9467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1121:9:95","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":9462,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1098:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1102:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1098:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:33:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":9445,"id":9469,"nodeType":"Return","src":"1091:40:95"}]},"documentation":{"id":9438,"nodeType":"StructuredDocumentation","src":"538:158:95","text":" @dev Returns the current implementation of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"204e1c7a","id":9471,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyImplementation","nameLocation":"710:22:95","nodeType":"FunctionDefinition","parameters":{"id":9442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9441,"mutability":"mutable","name":"proxy","nameLocation":"761:5:95","nodeType":"VariableDeclaration","scope":9471,"src":"733:33:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9440,"nodeType":"UserDefinedTypeName","pathNode":{"id":9439,"name":"TransparentUpgradeableProxy","nameLocations":["733:27:95"],"nodeType":"IdentifierPath","referencedDeclaration":9730,"src":"733:27:95"},"referencedDeclaration":9730,"src":"733:27:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"732:35:95"},"returnParameters":{"id":9445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9471,"src":"797:7:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9443,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"796:9:95"},"scope":9566,"src":"701:437:95","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9504,"nodeType":"Block","src":"1394:323:95","statements":[{"assignments":[9481,9483],"declarations":[{"constant":false,"id":9481,"mutability":"mutable","name":"success","nameLocation":"1558:7:95","nodeType":"VariableDeclaration","scope":9504,"src":"1553:12:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9480,"name":"bool","nodeType":"ElementaryTypeName","src":"1553:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9483,"mutability":"mutable","name":"returndata","nameLocation":"1580:10:95","nodeType":"VariableDeclaration","scope":9504,"src":"1567:23:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9482,"name":"bytes","nodeType":"ElementaryTypeName","src":"1567:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9491,"initialValue":{"arguments":[{"hexValue":"f851a440","id":9489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1620:13:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}],"expression":{"arguments":[{"id":9486,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9475,"src":"1602:5:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}],"id":9485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9484,"name":"address","nodeType":"ElementaryTypeName","src":"1594:7:95","typeDescriptions":{}}},"id":9487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:14:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1609:10:95","memberName":"staticcall","nodeType":"MemberAccess","src":"1594:25:95","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":9490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:40:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1552:82:95"},{"expression":{"arguments":[{"id":9493,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9481,"src":"1652:7:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1644:7:95","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:16:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9495,"nodeType":"ExpressionStatement","src":"1644:16:95"},{"expression":{"arguments":[{"id":9498,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"1688:10:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9499,"name":"address","nodeType":"ElementaryTypeName","src":"1701:7:95","typeDescriptions":{}}}],"id":9501,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1700:9:95","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":9496,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1677:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1681:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1677:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:33:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":9479,"id":9503,"nodeType":"Return","src":"1670:40:95"}]},"documentation":{"id":9472,"nodeType":"StructuredDocumentation","src":"1144:149:95","text":" @dev Returns the current admin of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"f3b7dead","id":9505,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyAdmin","nameLocation":"1307:13:95","nodeType":"FunctionDefinition","parameters":{"id":9476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9475,"mutability":"mutable","name":"proxy","nameLocation":"1349:5:95","nodeType":"VariableDeclaration","scope":9505,"src":"1321:33:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9474,"nodeType":"UserDefinedTypeName","pathNode":{"id":9473,"name":"TransparentUpgradeableProxy","nameLocations":["1321:27:95"],"nodeType":"IdentifierPath","referencedDeclaration":9730,"src":"1321:27:95"},"referencedDeclaration":9730,"src":"1321:27:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"1320:35:95"},"returnParameters":{"id":9479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9505,"src":"1385:7:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9477,"name":"address","nodeType":"ElementaryTypeName","src":"1385:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1384:9:95"},"scope":9566,"src":"1298:419:95","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9522,"nodeType":"Block","src":"1995:44:95","statements":[{"expression":{"arguments":[{"id":9519,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9511,"src":"2023:8:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9516,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9509,"src":"2005:5:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"id":9518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2011:11:95","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":9664,"src":"2005:17:95","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9521,"nodeType":"ExpressionStatement","src":"2005:27:95"}]},"documentation":{"id":9506,"nodeType":"StructuredDocumentation","src":"1723:163:95","text":" @dev Changes the admin of `proxy` to `newAdmin`.\n Requirements:\n - This contract must be the current admin of `proxy`."},"functionSelector":"7eff275e","id":9523,"implemented":true,"kind":"function","modifiers":[{"id":9514,"kind":"modifierInvocation","modifierName":{"id":9513,"name":"onlyOwner","nameLocations":["1985:9:95"],"nodeType":"IdentifierPath","referencedDeclaration":8920,"src":"1985:9:95"},"nodeType":"ModifierInvocation","src":"1985:9:95"}],"name":"changeProxyAdmin","nameLocation":"1900:16:95","nodeType":"FunctionDefinition","parameters":{"id":9512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9509,"mutability":"mutable","name":"proxy","nameLocation":"1945:5:95","nodeType":"VariableDeclaration","scope":9523,"src":"1917:33:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9508,"nodeType":"UserDefinedTypeName","pathNode":{"id":9507,"name":"TransparentUpgradeableProxy","nameLocations":["1917:27:95"],"nodeType":"IdentifierPath","referencedDeclaration":9730,"src":"1917:27:95"},"referencedDeclaration":9730,"src":"1917:27:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":9511,"mutability":"mutable","name":"newAdmin","nameLocation":"1960:8:95","nodeType":"VariableDeclaration","scope":9523,"src":"1952:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9510,"name":"address","nodeType":"ElementaryTypeName","src":"1952:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:53:95"},"returnParameters":{"id":9515,"nodeType":"ParameterList","parameters":[],"src":"1995:0:95"},"scope":9566,"src":"1891:148:95","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9540,"nodeType":"Block","src":"2345:48:95","statements":[{"expression":{"arguments":[{"id":9537,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9529,"src":"2371:14:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9534,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9527,"src":"2355:5:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"id":9536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2361:9:95","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":9682,"src":"2355:15:95","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:31:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9539,"nodeType":"ExpressionStatement","src":"2355:31:95"}]},"documentation":{"id":9524,"nodeType":"StructuredDocumentation","src":"2045:194:95","text":" @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"99a88ec4","id":9541,"implemented":true,"kind":"function","modifiers":[{"id":9532,"kind":"modifierInvocation","modifierName":{"id":9531,"name":"onlyOwner","nameLocations":["2335:9:95"],"nodeType":"IdentifierPath","referencedDeclaration":8920,"src":"2335:9:95"},"nodeType":"ModifierInvocation","src":"2335:9:95"}],"name":"upgrade","nameLocation":"2253:7:95","nodeType":"FunctionDefinition","parameters":{"id":9530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9527,"mutability":"mutable","name":"proxy","nameLocation":"2289:5:95","nodeType":"VariableDeclaration","scope":9541,"src":"2261:33:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9526,"nodeType":"UserDefinedTypeName","pathNode":{"id":9525,"name":"TransparentUpgradeableProxy","nameLocations":["2261:27:95"],"nodeType":"IdentifierPath","referencedDeclaration":9730,"src":"2261:27:95"},"referencedDeclaration":9730,"src":"2261:27:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":9529,"mutability":"mutable","name":"implementation","nameLocation":"2304:14:95","nodeType":"VariableDeclaration","scope":9541,"src":"2296:22:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9528,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2260:59:95"},"returnParameters":{"id":9533,"nodeType":"ParameterList","parameters":[],"src":"2345:0:95"},"scope":9566,"src":"2244:149:95","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9564,"nodeType":"Block","src":"2824:79:95","statements":[{"expression":{"arguments":[{"id":9560,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9547,"src":"2875:14:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9561,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"2891:4:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9554,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9545,"src":"2834:5:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"id":9556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2840:16:95","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":9699,"src":"2834:22:95","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":9559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":9557,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2864:3:95","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:5:95","memberName":"value","nodeType":"MemberAccess","src":"2864:9:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2834:40:95","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":9562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:62:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9563,"nodeType":"ExpressionStatement","src":"2834:62:95"}]},"documentation":{"id":9542,"nodeType":"StructuredDocumentation","src":"2399:255:95","text":" @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n {TransparentUpgradeableProxy-upgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"9623609d","id":9565,"implemented":true,"kind":"function","modifiers":[{"id":9552,"kind":"modifierInvocation","modifierName":{"id":9551,"name":"onlyOwner","nameLocations":["2814:9:95"],"nodeType":"IdentifierPath","referencedDeclaration":8920,"src":"2814:9:95"},"nodeType":"ModifierInvocation","src":"2814:9:95"}],"name":"upgradeAndCall","nameLocation":"2668:14:95","nodeType":"FunctionDefinition","parameters":{"id":9550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9545,"mutability":"mutable","name":"proxy","nameLocation":"2720:5:95","nodeType":"VariableDeclaration","scope":9565,"src":"2692:33:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9544,"nodeType":"UserDefinedTypeName","pathNode":{"id":9543,"name":"TransparentUpgradeableProxy","nameLocations":["2692:27:95"],"nodeType":"IdentifierPath","referencedDeclaration":9730,"src":"2692:27:95"},"referencedDeclaration":9730,"src":"2692:27:95","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$9730","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":9547,"mutability":"mutable","name":"implementation","nameLocation":"2743:14:95","nodeType":"VariableDeclaration","scope":9565,"src":"2735:22:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9546,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9549,"mutability":"mutable","name":"data","nameLocation":"2780:4:95","nodeType":"VariableDeclaration","scope":9565,"src":"2767:17:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9548,"name":"bytes","nodeType":"ElementaryTypeName","src":"2767:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2682:108:95"},"returnParameters":{"id":9553,"nodeType":"ParameterList","parameters":[],"src":"2824:0:95"},"scope":9566,"src":"2659:244:95","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":9567,"src":"435:2470:95","usedErrors":[],"usedEvents":[8886]}],"src":"101:2805:95"},"id":95},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[10025],"ERC1967Proxy":[9041],"ERC1967Upgrade":[9359],"IBeacon":[9421],"IERC1822Proxiable":[8988],"Proxy":[9411],"StorageSlot":[10107],"TransparentUpgradeableProxy":[9730]},"id":9731,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9568,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:96"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","id":9569,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9731,"sourceUnit":9042,"src":"143:37:96","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9571,"name":"ERC1967Proxy","nameLocations":["1674:12:96"],"nodeType":"IdentifierPath","referencedDeclaration":9041,"src":"1674:12:96"},"id":9572,"nodeType":"InheritanceSpecifier","src":"1674:12:96"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":9570,"nodeType":"StructuredDocumentation","src":"182:1451:96","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":9730,"linearizedBaseContracts":[9730,9041,9359,9411],"name":"TransparentUpgradeableProxy","nameLocation":"1643:27:96","nodeType":"ContractDefinition","nodes":[{"body":{"id":9606,"nodeType":"Block","src":"2038:124:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":9587,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"2055:11:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":9593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2096:21:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":9592,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2086:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2078:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9590,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:96","typeDescriptions":{}}},"id":9595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2078:41:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2122:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2078:45:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2070:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2070:7:96","typeDescriptions":{}}},"id":9598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:54:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2055:69:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9586,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2048:6:96","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:77:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9601,"nodeType":"ExpressionStatement","src":"2048:77:96"},{"expression":{"arguments":[{"id":9603,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"2148:6:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9602,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"2135:12:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:20:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9605,"nodeType":"ExpressionStatement","src":"2135:20:96"}]},"documentation":{"id":9573,"nodeType":"StructuredDocumentation","src":"1693:210:96","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":9607,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9582,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"2023:6:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9583,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9579,"src":"2031:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":9584,"kind":"baseConstructorSpecifier","modifierName":{"id":9581,"name":"ERC1967Proxy","nameLocations":["2010:12:96"],"nodeType":"IdentifierPath","referencedDeclaration":9041,"src":"2010:12:96"},"nodeType":"ModifierInvocation","src":"2010:27:96"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9575,"mutability":"mutable","name":"_logic","nameLocation":"1937:6:96","nodeType":"VariableDeclaration","scope":9607,"src":"1929:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9574,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9577,"mutability":"mutable","name":"admin_","nameLocation":"1961:6:96","nodeType":"VariableDeclaration","scope":9607,"src":"1953:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9576,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9579,"mutability":"mutable","name":"_data","nameLocation":"1990:5:96","nodeType":"VariableDeclaration","scope":9607,"src":"1977:18:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9578,"name":"bytes","nodeType":"ElementaryTypeName","src":"1977:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1919:82:96"},"returnParameters":{"id":9585,"nodeType":"ParameterList","parameters":[],"src":"2038:0:96"},"scope":9730,"src":"1908:254:96","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":9622,"nodeType":"Block","src":"2322:115:96","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9610,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2336:3:96","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2340:6:96","memberName":"sender","nodeType":"MemberAccess","src":"2336:10:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9612,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"2350:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2336:25:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9620,"nodeType":"Block","src":"2395:36:96","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9617,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"2409:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9619,"nodeType":"ExpressionStatement","src":"2409:11:96"}]},"id":9621,"nodeType":"IfStatement","src":"2332:99:96","trueBody":{"id":9616,"nodeType":"Block","src":"2363:26:96","statements":[{"id":9615,"nodeType":"PlaceholderStatement","src":"2377:1:96"}]}}]},"documentation":{"id":9608,"nodeType":"StructuredDocumentation","src":"2168:130:96","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":9623,"name":"ifAdmin","nameLocation":"2312:7:96","nodeType":"ModifierDefinition","parameters":{"id":9609,"nodeType":"ParameterList","parameters":[],"src":"2319:2:96"},"src":"2303:134:96","virtual":false,"visibility":"internal"},{"body":{"id":9636,"nodeType":"Block","src":"2938:37:96","statements":[{"expression":{"id":9634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9631,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9629,"src":"2948:6:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":9632,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"2957:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:20:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9635,"nodeType":"ExpressionStatement","src":"2948:20:96"}]},"documentation":{"id":9624,"nodeType":"StructuredDocumentation","src":"2443:431:96","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":9637,"implemented":true,"kind":"function","modifiers":[{"id":9627,"kind":"modifierInvocation","modifierName":{"id":9626,"name":"ifAdmin","nameLocations":["2905:7:96"],"nodeType":"IdentifierPath","referencedDeclaration":9623,"src":"2905:7:96"},"nodeType":"ModifierInvocation","src":"2905:7:96"}],"name":"admin","nameLocation":"2888:5:96","nodeType":"FunctionDefinition","parameters":{"id":9625,"nodeType":"ParameterList","parameters":[],"src":"2893:2:96"},"returnParameters":{"id":9630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9629,"mutability":"mutable","name":"admin_","nameLocation":"2930:6:96","nodeType":"VariableDeclaration","scope":9637,"src":"2922:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9628,"name":"address","nodeType":"ElementaryTypeName","src":"2922:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2921:16:96"},"scope":9730,"src":"2879:96:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9650,"nodeType":"Block","src":"3512:52:96","statements":[{"expression":{"id":9648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9645,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9643,"src":"3522:15:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":9646,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[9040],"referencedDeclaration":9040,"src":"3540:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3540:17:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3522:35:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9649,"nodeType":"ExpressionStatement","src":"3522:35:96"}]},"documentation":{"id":9638,"nodeType":"StructuredDocumentation","src":"2981:449:96","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":9651,"implemented":true,"kind":"function","modifiers":[{"id":9641,"kind":"modifierInvocation","modifierName":{"id":9640,"name":"ifAdmin","nameLocations":["3470:7:96"],"nodeType":"IdentifierPath","referencedDeclaration":9623,"src":"3470:7:96"},"nodeType":"ModifierInvocation","src":"3470:7:96"}],"name":"implementation","nameLocation":"3444:14:96","nodeType":"FunctionDefinition","parameters":{"id":9639,"nodeType":"ParameterList","parameters":[],"src":"3458:2:96"},"returnParameters":{"id":9644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9643,"mutability":"mutable","name":"implementation_","nameLocation":"3495:15:96","nodeType":"VariableDeclaration","scope":9651,"src":"3487:23:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9642,"name":"address","nodeType":"ElementaryTypeName","src":"3487:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3486:25:96"},"scope":9730,"src":"3435:129:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9663,"nodeType":"Block","src":"3833:39:96","statements":[{"expression":{"arguments":[{"id":9660,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"3856:8:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9659,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"3843:12:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9662,"nodeType":"ExpressionStatement","src":"3843:22:96"}]},"documentation":{"id":9652,"nodeType":"StructuredDocumentation","src":"3570:194:96","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.\n NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"functionSelector":"8f283970","id":9664,"implemented":true,"kind":"function","modifiers":[{"id":9657,"kind":"modifierInvocation","modifierName":{"id":9656,"name":"ifAdmin","nameLocations":["3825:7:96"],"nodeType":"IdentifierPath","referencedDeclaration":9623,"src":"3825:7:96"},"nodeType":"ModifierInvocation","src":"3825:7:96"}],"name":"changeAdmin","nameLocation":"3778:11:96","nodeType":"FunctionDefinition","parameters":{"id":9655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9654,"mutability":"mutable","name":"newAdmin","nameLocation":"3798:8:96","nodeType":"VariableDeclaration","scope":9664,"src":"3790:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9653,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3789:18:96"},"returnParameters":{"id":9658,"nodeType":"ParameterList","parameters":[],"src":"3833:0:96"},"scope":9730,"src":"3769:103:96","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":9681,"nodeType":"Block","src":"4095:71:96","statements":[{"expression":{"arguments":[{"id":9673,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9667,"src":"4123:17:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":9676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4148:2:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4142:5:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9674,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:96","typeDescriptions":{}}},"id":9677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4142:9:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":9678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9672,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4105:17:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":9679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4105:54:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9680,"nodeType":"ExpressionStatement","src":"4105:54:96"}]},"documentation":{"id":9665,"nodeType":"StructuredDocumentation","src":"3878:149:96","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":9682,"implemented":true,"kind":"function","modifiers":[{"id":9670,"kind":"modifierInvocation","modifierName":{"id":9669,"name":"ifAdmin","nameLocations":["4087:7:96"],"nodeType":"IdentifierPath","referencedDeclaration":9623,"src":"4087:7:96"},"nodeType":"ModifierInvocation","src":"4087:7:96"}],"name":"upgradeTo","nameLocation":"4041:9:96","nodeType":"FunctionDefinition","parameters":{"id":9668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9667,"mutability":"mutable","name":"newImplementation","nameLocation":"4059:17:96","nodeType":"VariableDeclaration","scope":9682,"src":"4051:25:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9666,"name":"address","nodeType":"ElementaryTypeName","src":"4051:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4050:27:96"},"returnParameters":{"id":9671,"nodeType":"ParameterList","parameters":[],"src":"4095:0:96"},"scope":9730,"src":"4032:134:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9698,"nodeType":"Block","src":"4641:65:96","statements":[{"expression":{"arguments":[{"id":9693,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9685,"src":"4669:17:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9694,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"4688:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":9695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4694:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9692,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4651:17:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":9696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4651:48:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9697,"nodeType":"ExpressionStatement","src":"4651:48:96"}]},"documentation":{"id":9683,"nodeType":"StructuredDocumentation","src":"4172:365:96","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":9699,"implemented":true,"kind":"function","modifiers":[{"id":9690,"kind":"modifierInvocation","modifierName":{"id":9689,"name":"ifAdmin","nameLocations":["4633:7:96"],"nodeType":"IdentifierPath","referencedDeclaration":9623,"src":"4633:7:96"},"nodeType":"ModifierInvocation","src":"4633:7:96"}],"name":"upgradeToAndCall","nameLocation":"4551:16:96","nodeType":"FunctionDefinition","parameters":{"id":9688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9685,"mutability":"mutable","name":"newImplementation","nameLocation":"4576:17:96","nodeType":"VariableDeclaration","scope":9699,"src":"4568:25:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9684,"name":"address","nodeType":"ElementaryTypeName","src":"4568:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9687,"mutability":"mutable","name":"data","nameLocation":"4610:4:96","nodeType":"VariableDeclaration","scope":9699,"src":"4595:19:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9686,"name":"bytes","nodeType":"ElementaryTypeName","src":"4595:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4567:48:96"},"returnParameters":{"id":9691,"nodeType":"ParameterList","parameters":[],"src":"4641:0:96"},"scope":9730,"src":"4542:164:96","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":9708,"nodeType":"Block","src":"4825:35:96","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9705,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"4842:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9704,"id":9707,"nodeType":"Return","src":"4835:18:96"}]},"documentation":{"id":9700,"nodeType":"StructuredDocumentation","src":"4712:50:96","text":" @dev Returns the current admin."},"id":9709,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4776:6:96","nodeType":"FunctionDefinition","parameters":{"id":9701,"nodeType":"ParameterList","parameters":[],"src":"4782:2:96"},"returnParameters":{"id":9704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9709,"src":"4816:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9702,"name":"address","nodeType":"ElementaryTypeName","src":"4816:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4815:9:96"},"scope":9730,"src":"4767:93:96","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[9410],"body":{"id":9728,"nodeType":"Block","src":"5034:154:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9715,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5052:3:96","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:96","memberName":"sender","nodeType":"MemberAccess","src":"5052:10:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9717,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"5066:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5052:25:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":9720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5079:68:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":9714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5044:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:104:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9722,"nodeType":"ExpressionStatement","src":"5044:104:96"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9723,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5158:5:96","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$9730_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":9725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:15:96","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":9410,"src":"5158:21:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:23:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9727,"nodeType":"ExpressionStatement","src":"5158:23:96"}]},"documentation":{"id":9710,"nodeType":"StructuredDocumentation","src":"4866:110:96","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":9729,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4990:15:96","nodeType":"FunctionDefinition","overrides":{"id":9712,"nodeType":"OverrideSpecifier","overrides":[],"src":"5025:8:96"},"parameters":{"id":9711,"nodeType":"ParameterList","parameters":[],"src":"5005:2:96"},"returnParameters":{"id":9713,"nodeType":"ParameterList","parameters":[],"src":"5034:0:96"},"scope":9730,"src":"4981:207:96","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":9731,"src":"1634:3556:96","usedErrors":[],"usedEvents":[9060,9206,9271]}],"src":"118:5073:96"},"id":96},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","exportedSymbols":{"Address":[10025]},"id":10026,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9732,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"106:23:97"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":9733,"nodeType":"StructuredDocumentation","src":"131:67:97","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":10025,"linearizedBaseContracts":[10025],"name":"Address","nameLocation":"207:7:97","nodeType":"ContractDefinition","nodes":[{"body":{"id":9747,"nodeType":"Block","src":"1246:254:97","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9741,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9736,"src":"1470:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:4:97","memberName":"code","nodeType":"MemberAccess","src":"1470:12:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1483:6:97","memberName":"length","nodeType":"MemberAccess","src":"1470:19:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1492:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1470:23:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9740,"id":9746,"nodeType":"Return","src":"1463:30:97"}]},"documentation":{"id":9734,"nodeType":"StructuredDocumentation","src":"221:954:97","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":9748,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1189:10:97","nodeType":"FunctionDefinition","parameters":{"id":9737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9736,"mutability":"mutable","name":"account","nameLocation":"1208:7:97","nodeType":"VariableDeclaration","scope":9748,"src":"1200:15:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9735,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1199:17:97"},"returnParameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9748,"src":"1240:4:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9738,"name":"bool","nodeType":"ElementaryTypeName","src":"1240:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1239:6:97"},"scope":10025,"src":"1180:320:97","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9781,"nodeType":"Block","src":"2488:241:97","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9759,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2514:4:97","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10025","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10025","typeString":"library Address"}],"id":9758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2506:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9757,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:97","typeDescriptions":{}}},"id":9760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:13:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:97","memberName":"balance","nodeType":"MemberAccess","src":"2506:21:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"2531:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2506:31:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":9764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2539:31:97","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":9756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2498:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:73:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9766,"nodeType":"ExpressionStatement","src":"2498:73:97"},{"assignments":[9768,null],"declarations":[{"constant":false,"id":9768,"mutability":"mutable","name":"success","nameLocation":"2588:7:97","nodeType":"VariableDeclaration","scope":9781,"src":"2583:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9767,"name":"bool","nodeType":"ElementaryTypeName","src":"2583:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":9775,"initialValue":{"arguments":[{"hexValue":"","id":9773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2631:2:97","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":9769,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"2601:9:97","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2611:4:97","memberName":"call","nodeType":"MemberAccess","src":"2601:14:97","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":9772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9771,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"2623:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2601:29:97","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":9774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2601:33:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2582:52:97"},{"expression":{"arguments":[{"id":9777,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9768,"src":"2652:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":9778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2661:60:97","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":9776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2644:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:78:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9780,"nodeType":"ExpressionStatement","src":"2644:78:97"}]},"documentation":{"id":9749,"nodeType":"StructuredDocumentation","src":"1506:906:97","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":9782,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2426:9:97","nodeType":"FunctionDefinition","parameters":{"id":9754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9751,"mutability":"mutable","name":"recipient","nameLocation":"2452:9:97","nodeType":"VariableDeclaration","scope":9782,"src":"2436:25:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9750,"name":"address","nodeType":"ElementaryTypeName","src":"2436:15:97","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9753,"mutability":"mutable","name":"amount","nameLocation":"2471:6:97","nodeType":"VariableDeclaration","scope":9782,"src":"2463:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9752,"name":"uint256","nodeType":"ElementaryTypeName","src":"2463:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2435:43:97"},"returnParameters":{"id":9755,"nodeType":"ParameterList","parameters":[],"src":"2488:0:97"},"scope":10025,"src":"2417:312:97","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9798,"nodeType":"Block","src":"3560:84:97","statements":[{"expression":{"arguments":[{"id":9793,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9785,"src":"3590:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9794,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9787,"src":"3598:4:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":9795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3604:32:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":9792,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[9799,9819],"referencedDeclaration":9819,"src":"3577:12:97","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":9796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:60:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9791,"id":9797,"nodeType":"Return","src":"3570:67:97"}]},"documentation":{"id":9783,"nodeType":"StructuredDocumentation","src":"2735:731:97","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":9799,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3480:12:97","nodeType":"FunctionDefinition","parameters":{"id":9788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9785,"mutability":"mutable","name":"target","nameLocation":"3501:6:97","nodeType":"VariableDeclaration","scope":9799,"src":"3493:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9784,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9787,"mutability":"mutable","name":"data","nameLocation":"3522:4:97","nodeType":"VariableDeclaration","scope":9799,"src":"3509:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9786,"name":"bytes","nodeType":"ElementaryTypeName","src":"3509:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3492:35:97"},"returnParameters":{"id":9791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9799,"src":"3546:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9789,"name":"bytes","nodeType":"ElementaryTypeName","src":"3546:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3545:14:97"},"scope":10025,"src":"3471:173:97","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9818,"nodeType":"Block","src":"4013:76:97","statements":[{"expression":{"arguments":[{"id":9812,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"4052:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9813,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9804,"src":"4060:4:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":9814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4066:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9815,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9806,"src":"4069:12:97","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":9811,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[9839,9889],"referencedDeclaration":9889,"src":"4030:21:97","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":9816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:52:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9810,"id":9817,"nodeType":"Return","src":"4023:59:97"}]},"documentation":{"id":9800,"nodeType":"StructuredDocumentation","src":"3650:211:97","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":9819,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3875:12:97","nodeType":"FunctionDefinition","parameters":{"id":9807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"target","nameLocation":"3905:6:97","nodeType":"VariableDeclaration","scope":9819,"src":"3897:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9801,"name":"address","nodeType":"ElementaryTypeName","src":"3897:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9804,"mutability":"mutable","name":"data","nameLocation":"3934:4:97","nodeType":"VariableDeclaration","scope":9819,"src":"3921:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9803,"name":"bytes","nodeType":"ElementaryTypeName","src":"3921:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9806,"mutability":"mutable","name":"errorMessage","nameLocation":"3962:12:97","nodeType":"VariableDeclaration","scope":9819,"src":"3948:26:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9805,"name":"string","nodeType":"ElementaryTypeName","src":"3948:6:97","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3887:93:97"},"returnParameters":{"id":9810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9819,"src":"3999:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9808,"name":"bytes","nodeType":"ElementaryTypeName","src":"3999:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3998:14:97"},"scope":10025,"src":"3866:223:97","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9838,"nodeType":"Block","src":"4594:111:97","statements":[{"expression":{"arguments":[{"id":9832,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"4633:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9833,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"4641:4:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9834,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"4647:5:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":9835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4654:43:97","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":9831,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[9839,9889],"referencedDeclaration":9889,"src":"4611:21:97","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":9836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:87:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9830,"id":9837,"nodeType":"Return","src":"4604:94:97"}]},"documentation":{"id":9820,"nodeType":"StructuredDocumentation","src":"4095:351:97","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":9839,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4460:21:97","nodeType":"FunctionDefinition","parameters":{"id":9827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9822,"mutability":"mutable","name":"target","nameLocation":"4499:6:97","nodeType":"VariableDeclaration","scope":9839,"src":"4491:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9821,"name":"address","nodeType":"ElementaryTypeName","src":"4491:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9824,"mutability":"mutable","name":"data","nameLocation":"4528:4:97","nodeType":"VariableDeclaration","scope":9839,"src":"4515:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9823,"name":"bytes","nodeType":"ElementaryTypeName","src":"4515:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9826,"mutability":"mutable","name":"value","nameLocation":"4550:5:97","nodeType":"VariableDeclaration","scope":9839,"src":"4542:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9825,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4481:80:97"},"returnParameters":{"id":9830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9839,"src":"4580:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9828,"name":"bytes","nodeType":"ElementaryTypeName","src":"4580:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4579:14:97"},"scope":10025,"src":"4451:254:97","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9888,"nodeType":"Block","src":"5132:320:97","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9856,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5158:4:97","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10025","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10025","typeString":"library Address"}],"id":9855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5150:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9854,"name":"address","nodeType":"ElementaryTypeName","src":"5150:7:97","typeDescriptions":{}}},"id":9857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5150:13:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:7:97","memberName":"balance","nodeType":"MemberAccess","src":"5150:21:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9859,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9846,"src":"5175:5:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:30:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":9861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5182:40:97","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":9853,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5142:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:81:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9863,"nodeType":"ExpressionStatement","src":"5142:81:97"},{"expression":{"arguments":[{"arguments":[{"id":9866,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9842,"src":"5252:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9865,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9748,"src":"5241:10:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5241:18:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":9868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5261:31:97","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":9864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5233:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:60:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9870,"nodeType":"ExpressionStatement","src":"5233:60:97"},{"assignments":[9872,9874],"declarations":[{"constant":false,"id":9872,"mutability":"mutable","name":"success","nameLocation":"5310:7:97","nodeType":"VariableDeclaration","scope":9888,"src":"5305:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9871,"name":"bool","nodeType":"ElementaryTypeName","src":"5305:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9874,"mutability":"mutable","name":"returndata","nameLocation":"5332:10:97","nodeType":"VariableDeclaration","scope":9888,"src":"5319:23:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9873,"name":"bytes","nodeType":"ElementaryTypeName","src":"5319:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9881,"initialValue":{"arguments":[{"id":9879,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9844,"src":"5372:4:97","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":9875,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9842,"src":"5346:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5353:4:97","memberName":"call","nodeType":"MemberAccess","src":"5346:11:97","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":9878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9846,"src":"5365:5:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5346:25:97","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":9880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5304:73:97"},{"expression":{"arguments":[{"id":9883,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9872,"src":"5411:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9884,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9874,"src":"5420:10:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9885,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9848,"src":"5432:12:97","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9882,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10024,"src":"5394:16:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":9886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:51:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9852,"id":9887,"nodeType":"Return","src":"5387:58:97"}]},"documentation":{"id":9840,"nodeType":"StructuredDocumentation","src":"4711:237:97","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":9889,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4962:21:97","nodeType":"FunctionDefinition","parameters":{"id":9849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9842,"mutability":"mutable","name":"target","nameLocation":"5001:6:97","nodeType":"VariableDeclaration","scope":9889,"src":"4993:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9841,"name":"address","nodeType":"ElementaryTypeName","src":"4993:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9844,"mutability":"mutable","name":"data","nameLocation":"5030:4:97","nodeType":"VariableDeclaration","scope":9889,"src":"5017:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9843,"name":"bytes","nodeType":"ElementaryTypeName","src":"5017:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9846,"mutability":"mutable","name":"value","nameLocation":"5052:5:97","nodeType":"VariableDeclaration","scope":9889,"src":"5044:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9845,"name":"uint256","nodeType":"ElementaryTypeName","src":"5044:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9848,"mutability":"mutable","name":"errorMessage","nameLocation":"5081:12:97","nodeType":"VariableDeclaration","scope":9889,"src":"5067:26:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9847,"name":"string","nodeType":"ElementaryTypeName","src":"5067:6:97","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4983:116:97"},"returnParameters":{"id":9852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9889,"src":"5118:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9850,"name":"bytes","nodeType":"ElementaryTypeName","src":"5118:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5117:14:97"},"scope":10025,"src":"4953:499:97","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9905,"nodeType":"Block","src":"5729:97:97","statements":[{"expression":{"arguments":[{"id":9900,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9892,"src":"5765:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9901,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9894,"src":"5773:4:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":9902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5779:39:97","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":9899,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[9906,9941],"referencedDeclaration":9941,"src":"5746:18:97","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":9903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:73:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9898,"id":9904,"nodeType":"Return","src":"5739:80:97"}]},"documentation":{"id":9890,"nodeType":"StructuredDocumentation","src":"5458:166:97","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":9906,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5638:18:97","nodeType":"FunctionDefinition","parameters":{"id":9895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9892,"mutability":"mutable","name":"target","nameLocation":"5665:6:97","nodeType":"VariableDeclaration","scope":9906,"src":"5657:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9891,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9894,"mutability":"mutable","name":"data","nameLocation":"5686:4:97","nodeType":"VariableDeclaration","scope":9906,"src":"5673:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9893,"name":"bytes","nodeType":"ElementaryTypeName","src":"5673:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5656:35:97"},"returnParameters":{"id":9898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9906,"src":"5715:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9896,"name":"bytes","nodeType":"ElementaryTypeName","src":"5715:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5714:14:97"},"scope":10025,"src":"5629:197:97","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9940,"nodeType":"Block","src":"6168:228:97","statements":[{"expression":{"arguments":[{"arguments":[{"id":9920,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"6197:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9919,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9748,"src":"6186:10:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:18:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":9922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6206:38:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":9918,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6178:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:67:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9924,"nodeType":"ExpressionStatement","src":"6178:67:97"},{"assignments":[9926,9928],"declarations":[{"constant":false,"id":9926,"mutability":"mutable","name":"success","nameLocation":"6262:7:97","nodeType":"VariableDeclaration","scope":9940,"src":"6257:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9925,"name":"bool","nodeType":"ElementaryTypeName","src":"6257:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9928,"mutability":"mutable","name":"returndata","nameLocation":"6284:10:97","nodeType":"VariableDeclaration","scope":9940,"src":"6271:23:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9927,"name":"bytes","nodeType":"ElementaryTypeName","src":"6271:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9933,"initialValue":{"arguments":[{"id":9931,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9911,"src":"6316:4:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9929,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"6298:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6305:10:97","memberName":"staticcall","nodeType":"MemberAccess","src":"6298:17:97","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":9932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6256:65:97"},{"expression":{"arguments":[{"id":9935,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9926,"src":"6355:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9936,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9928,"src":"6364:10:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9937,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"6376:12:97","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9934,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10024,"src":"6338:16:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":9938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:51:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9917,"id":9939,"nodeType":"Return","src":"6331:58:97"}]},"documentation":{"id":9907,"nodeType":"StructuredDocumentation","src":"5832:173:97","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":9941,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6019:18:97","nodeType":"FunctionDefinition","parameters":{"id":9914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9909,"mutability":"mutable","name":"target","nameLocation":"6055:6:97","nodeType":"VariableDeclaration","scope":9941,"src":"6047:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9908,"name":"address","nodeType":"ElementaryTypeName","src":"6047:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9911,"mutability":"mutable","name":"data","nameLocation":"6084:4:97","nodeType":"VariableDeclaration","scope":9941,"src":"6071:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9910,"name":"bytes","nodeType":"ElementaryTypeName","src":"6071:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9913,"mutability":"mutable","name":"errorMessage","nameLocation":"6112:12:97","nodeType":"VariableDeclaration","scope":9941,"src":"6098:26:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9912,"name":"string","nodeType":"ElementaryTypeName","src":"6098:6:97","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6037:93:97"},"returnParameters":{"id":9917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9941,"src":"6154:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9915,"name":"bytes","nodeType":"ElementaryTypeName","src":"6154:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6153:14:97"},"scope":10025,"src":"6010:386:97","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9957,"nodeType":"Block","src":"6672:101:97","statements":[{"expression":{"arguments":[{"id":9952,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"6710:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9953,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9946,"src":"6718:4:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":9954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6724:41:97","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":9951,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[9958,9993],"referencedDeclaration":9993,"src":"6689:20:97","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":9955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:77:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9950,"id":9956,"nodeType":"Return","src":"6682:84:97"}]},"documentation":{"id":9942,"nodeType":"StructuredDocumentation","src":"6402:168:97","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":9958,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6584:20:97","nodeType":"FunctionDefinition","parameters":{"id":9947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9944,"mutability":"mutable","name":"target","nameLocation":"6613:6:97","nodeType":"VariableDeclaration","scope":9958,"src":"6605:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9943,"name":"address","nodeType":"ElementaryTypeName","src":"6605:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9946,"mutability":"mutable","name":"data","nameLocation":"6634:4:97","nodeType":"VariableDeclaration","scope":9958,"src":"6621:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9945,"name":"bytes","nodeType":"ElementaryTypeName","src":"6621:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6604:35:97"},"returnParameters":{"id":9950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9958,"src":"6658:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9948,"name":"bytes","nodeType":"ElementaryTypeName","src":"6658:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6657:14:97"},"scope":10025,"src":"6575:198:97","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9992,"nodeType":"Block","src":"7114:232:97","statements":[{"expression":{"arguments":[{"arguments":[{"id":9972,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9961,"src":"7143:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9971,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9748,"src":"7132:10:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7132:18:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":9974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7152:40:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":9970,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7124:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7124:69:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9976,"nodeType":"ExpressionStatement","src":"7124:69:97"},{"assignments":[9978,9980],"declarations":[{"constant":false,"id":9978,"mutability":"mutable","name":"success","nameLocation":"7210:7:97","nodeType":"VariableDeclaration","scope":9992,"src":"7205:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9977,"name":"bool","nodeType":"ElementaryTypeName","src":"7205:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9980,"mutability":"mutable","name":"returndata","nameLocation":"7232:10:97","nodeType":"VariableDeclaration","scope":9992,"src":"7219:23:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9979,"name":"bytes","nodeType":"ElementaryTypeName","src":"7219:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9985,"initialValue":{"arguments":[{"id":9983,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9963,"src":"7266:4:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9981,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9961,"src":"7246:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7253:12:97","memberName":"delegatecall","nodeType":"MemberAccess","src":"7246:19:97","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":9984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7246:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7204:67:97"},{"expression":{"arguments":[{"id":9987,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9978,"src":"7305:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9988,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9980,"src":"7314:10:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9989,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"7326:12:97","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9986,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10024,"src":"7288:16:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":9990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7288:51:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9969,"id":9991,"nodeType":"Return","src":"7281:58:97"}]},"documentation":{"id":9959,"nodeType":"StructuredDocumentation","src":"6779:175:97","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":9993,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6968:20:97","nodeType":"FunctionDefinition","parameters":{"id":9966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9961,"mutability":"mutable","name":"target","nameLocation":"7006:6:97","nodeType":"VariableDeclaration","scope":9993,"src":"6998:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9960,"name":"address","nodeType":"ElementaryTypeName","src":"6998:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9963,"mutability":"mutable","name":"data","nameLocation":"7035:4:97","nodeType":"VariableDeclaration","scope":9993,"src":"7022:17:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9962,"name":"bytes","nodeType":"ElementaryTypeName","src":"7022:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9965,"mutability":"mutable","name":"errorMessage","nameLocation":"7063:12:97","nodeType":"VariableDeclaration","scope":9993,"src":"7049:26:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9964,"name":"string","nodeType":"ElementaryTypeName","src":"7049:6:97","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6988:93:97"},"returnParameters":{"id":9969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9993,"src":"7100:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9967,"name":"bytes","nodeType":"ElementaryTypeName","src":"7100:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7099:14:97"},"scope":10025,"src":"6959:387:97","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10023,"nodeType":"Block","src":"7726:532:97","statements":[{"condition":{"id":10005,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"7740:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10021,"nodeType":"Block","src":"7797:455:97","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10009,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9998,"src":"7881:10:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7892:6:97","memberName":"length","nodeType":"MemberAccess","src":"7881:17:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7901:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7881:21:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10019,"nodeType":"Block","src":"8189:53:97","statements":[{"expression":{"arguments":[{"id":10016,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10000,"src":"8214:12:97","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10015,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8207:6:97","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":10017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8207:20:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10018,"nodeType":"ExpressionStatement","src":"8207:20:97"}]},"id":10020,"nodeType":"IfStatement","src":"7877:365:97","trueBody":{"id":10014,"nodeType":"Block","src":"7904:279:97","statements":[{"AST":{"nativeSrc":"8024:145:97","nodeType":"YulBlock","src":"8024:145:97","statements":[{"nativeSrc":"8046:40:97","nodeType":"YulVariableDeclaration","src":"8046:40:97","value":{"arguments":[{"name":"returndata","nativeSrc":"8075:10:97","nodeType":"YulIdentifier","src":"8075:10:97"}],"functionName":{"name":"mload","nativeSrc":"8069:5:97","nodeType":"YulIdentifier","src":"8069:5:97"},"nativeSrc":"8069:17:97","nodeType":"YulFunctionCall","src":"8069:17:97"},"variables":[{"name":"returndata_size","nativeSrc":"8050:15:97","nodeType":"YulTypedName","src":"8050:15:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8118:2:97","nodeType":"YulLiteral","src":"8118:2:97","type":"","value":"32"},{"name":"returndata","nativeSrc":"8122:10:97","nodeType":"YulIdentifier","src":"8122:10:97"}],"functionName":{"name":"add","nativeSrc":"8114:3:97","nodeType":"YulIdentifier","src":"8114:3:97"},"nativeSrc":"8114:19:97","nodeType":"YulFunctionCall","src":"8114:19:97"},{"name":"returndata_size","nativeSrc":"8135:15:97","nodeType":"YulIdentifier","src":"8135:15:97"}],"functionName":{"name":"revert","nativeSrc":"8107:6:97","nodeType":"YulIdentifier","src":"8107:6:97"},"nativeSrc":"8107:44:97","nodeType":"YulFunctionCall","src":"8107:44:97"},"nativeSrc":"8107:44:97","nodeType":"YulExpressionStatement","src":"8107:44:97"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9998,"isOffset":false,"isSlot":false,"src":"8075:10:97","valueSize":1},{"declaration":9998,"isOffset":false,"isSlot":false,"src":"8122:10:97","valueSize":1}],"id":10013,"nodeType":"InlineAssembly","src":"8015:154:97"}]}}]},"id":10022,"nodeType":"IfStatement","src":"7736:516:97","trueBody":{"id":10008,"nodeType":"Block","src":"7749:42:97","statements":[{"expression":{"id":10006,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9998,"src":"7770:10:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10004,"id":10007,"nodeType":"Return","src":"7763:17:97"}]}}]},"documentation":{"id":9994,"nodeType":"StructuredDocumentation","src":"7352:209:97","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"id":10024,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7575:16:97","nodeType":"FunctionDefinition","parameters":{"id":10001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9996,"mutability":"mutable","name":"success","nameLocation":"7606:7:97","nodeType":"VariableDeclaration","scope":10024,"src":"7601:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9995,"name":"bool","nodeType":"ElementaryTypeName","src":"7601:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9998,"mutability":"mutable","name":"returndata","nameLocation":"7636:10:97","nodeType":"VariableDeclaration","scope":10024,"src":"7623:23:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9997,"name":"bytes","nodeType":"ElementaryTypeName","src":"7623:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10000,"mutability":"mutable","name":"errorMessage","nameLocation":"7670:12:97","nodeType":"VariableDeclaration","scope":10024,"src":"7656:26:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9999,"name":"string","nodeType":"ElementaryTypeName","src":"7656:6:97","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7591:97:97"},"returnParameters":{"id":10004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10024,"src":"7712:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10002,"name":"bytes","nodeType":"ElementaryTypeName","src":"7712:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7711:14:97"},"scope":10025,"src":"7566:692:97","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10026,"src":"199:8061:97","usedErrors":[],"usedEvents":[]}],"src":"106:8155:97"},"id":97},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","exportedSymbols":{"Context":[10047]},"id":10048,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10027,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:98"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":10028,"nodeType":"StructuredDocumentation","src":"111:496:98","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":10047,"linearizedBaseContracts":[10047],"name":"Context","nameLocation":"626:7:98","nodeType":"ContractDefinition","nodes":[{"body":{"id":10036,"nodeType":"Block","src":"702:34:98","statements":[{"expression":{"expression":{"id":10033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:98","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:98","memberName":"sender","nodeType":"MemberAccess","src":"719:10:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10032,"id":10035,"nodeType":"Return","src":"712:17:98"}]},"id":10037,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:98","nodeType":"FunctionDefinition","parameters":{"id":10029,"nodeType":"ParameterList","parameters":[],"src":"659:2:98"},"returnParameters":{"id":10032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10037,"src":"693:7:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10030,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:98"},"scope":10047,"src":"640:96:98","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":10045,"nodeType":"Block","src":"809:32:98","statements":[{"expression":{"expression":{"id":10042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:98","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:98","memberName":"data","nodeType":"MemberAccess","src":"826:8:98","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":10041,"id":10044,"nodeType":"Return","src":"819:15:98"}]},"id":10046,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:98","nodeType":"FunctionDefinition","parameters":{"id":10038,"nodeType":"ParameterList","parameters":[],"src":"759:2:98"},"returnParameters":{"id":10041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10046,"src":"793:14:98","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10039,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:98","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:98"},"scope":10047,"src":"742:99:98","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":10048,"src":"608:235:98","usedErrors":[],"usedEvents":[]}],"src":"86:758:98"},"id":98},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[10107]},"id":10108,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10049,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"90:23:99"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":10050,"nodeType":"StructuredDocumentation","src":"115:1148:99","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```\n contract ERC1967 {\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._"},"fullyImplemented":true,"id":10107,"linearizedBaseContracts":[10107],"name":"StorageSlot","nameLocation":"1272:11:99","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":10053,"members":[{"constant":false,"id":10052,"mutability":"mutable","name":"value","nameLocation":"1327:5:99","nodeType":"VariableDeclaration","scope":10053,"src":"1319:13:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10051,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1297:11:99","nodeType":"StructDefinition","scope":10107,"src":"1290:49:99","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":10056,"members":[{"constant":false,"id":10055,"mutability":"mutable","name":"value","nameLocation":"1379:5:99","nodeType":"VariableDeclaration","scope":10056,"src":"1374:10:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10054,"name":"bool","nodeType":"ElementaryTypeName","src":"1374:4:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1352:11:99","nodeType":"StructDefinition","scope":10107,"src":"1345:46:99","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":10059,"members":[{"constant":false,"id":10058,"mutability":"mutable","name":"value","nameLocation":"1434:5:99","nodeType":"VariableDeclaration","scope":10059,"src":"1426:13:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1404:11:99","nodeType":"StructDefinition","scope":10107,"src":"1397:49:99","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":10062,"members":[{"constant":false,"id":10061,"mutability":"mutable","name":"value","nameLocation":"1489:5:99","nodeType":"VariableDeclaration","scope":10062,"src":"1481:13:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10060,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1459:11:99","nodeType":"StructDefinition","scope":10107,"src":"1452:49:99","visibility":"public"},{"body":{"id":10072,"nodeType":"Block","src":"1683:63:99","statements":[{"AST":{"nativeSrc":"1702:38:99","nodeType":"YulBlock","src":"1702:38:99","statements":[{"nativeSrc":"1716:14:99","nodeType":"YulAssignment","src":"1716:14:99","value":{"name":"slot","nativeSrc":"1726:4:99","nodeType":"YulIdentifier","src":"1726:4:99"},"variableNames":[{"name":"r.slot","nativeSrc":"1716:6:99","nodeType":"YulIdentifier","src":"1716:6:99"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":10069,"isOffset":false,"isSlot":true,"src":"1716:6:99","suffix":"slot","valueSize":1},{"declaration":10065,"isOffset":false,"isSlot":false,"src":"1726:4:99","valueSize":1}],"id":10071,"nodeType":"InlineAssembly","src":"1693:47:99"}]},"documentation":{"id":10063,"nodeType":"StructuredDocumentation","src":"1507:87:99","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":10073,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1608:14:99","nodeType":"FunctionDefinition","parameters":{"id":10066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10065,"mutability":"mutable","name":"slot","nameLocation":"1631:4:99","nodeType":"VariableDeclaration","scope":10073,"src":"1623:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1622:14:99"},"returnParameters":{"id":10070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10069,"mutability":"mutable","name":"r","nameLocation":"1680:1:99","nodeType":"VariableDeclaration","scope":10073,"src":"1660:21:99","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":10068,"nodeType":"UserDefinedTypeName","pathNode":{"id":10067,"name":"AddressSlot","nameLocations":["1660:11:99"],"nodeType":"IdentifierPath","referencedDeclaration":10053,"src":"1660:11:99"},"referencedDeclaration":10053,"src":"1660:11:99","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10053_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1659:23:99"},"scope":10107,"src":"1599:147:99","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10083,"nodeType":"Block","src":"1928:63:99","statements":[{"AST":{"nativeSrc":"1947:38:99","nodeType":"YulBlock","src":"1947:38:99","statements":[{"nativeSrc":"1961:14:99","nodeType":"YulAssignment","src":"1961:14:99","value":{"name":"slot","nativeSrc":"1971:4:99","nodeType":"YulIdentifier","src":"1971:4:99"},"variableNames":[{"name":"r.slot","nativeSrc":"1961:6:99","nodeType":"YulIdentifier","src":"1961:6:99"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":10080,"isOffset":false,"isSlot":true,"src":"1961:6:99","suffix":"slot","valueSize":1},{"declaration":10076,"isOffset":false,"isSlot":false,"src":"1971:4:99","valueSize":1}],"id":10082,"nodeType":"InlineAssembly","src":"1938:47:99"}]},"documentation":{"id":10074,"nodeType":"StructuredDocumentation","src":"1752:87:99","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":10084,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1853:14:99","nodeType":"FunctionDefinition","parameters":{"id":10077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10076,"mutability":"mutable","name":"slot","nameLocation":"1876:4:99","nodeType":"VariableDeclaration","scope":10084,"src":"1868:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10075,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1868:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1867:14:99"},"returnParameters":{"id":10081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10080,"mutability":"mutable","name":"r","nameLocation":"1925:1:99","nodeType":"VariableDeclaration","scope":10084,"src":"1905:21:99","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10056_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":10079,"nodeType":"UserDefinedTypeName","pathNode":{"id":10078,"name":"BooleanSlot","nameLocations":["1905:11:99"],"nodeType":"IdentifierPath","referencedDeclaration":10056,"src":"1905:11:99"},"referencedDeclaration":10056,"src":"1905:11:99","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10056_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1904:23:99"},"scope":10107,"src":"1844:147:99","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10094,"nodeType":"Block","src":"2173:63:99","statements":[{"AST":{"nativeSrc":"2192:38:99","nodeType":"YulBlock","src":"2192:38:99","statements":[{"nativeSrc":"2206:14:99","nodeType":"YulAssignment","src":"2206:14:99","value":{"name":"slot","nativeSrc":"2216:4:99","nodeType":"YulIdentifier","src":"2216:4:99"},"variableNames":[{"name":"r.slot","nativeSrc":"2206:6:99","nodeType":"YulIdentifier","src":"2206:6:99"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":10091,"isOffset":false,"isSlot":true,"src":"2206:6:99","suffix":"slot","valueSize":1},{"declaration":10087,"isOffset":false,"isSlot":false,"src":"2216:4:99","valueSize":1}],"id":10093,"nodeType":"InlineAssembly","src":"2183:47:99"}]},"documentation":{"id":10085,"nodeType":"StructuredDocumentation","src":"1997:87:99","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":10095,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2098:14:99","nodeType":"FunctionDefinition","parameters":{"id":10088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10087,"mutability":"mutable","name":"slot","nameLocation":"2121:4:99","nodeType":"VariableDeclaration","scope":10095,"src":"2113:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2113:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2112:14:99"},"returnParameters":{"id":10092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10091,"mutability":"mutable","name":"r","nameLocation":"2170:1:99","nodeType":"VariableDeclaration","scope":10095,"src":"2150:21:99","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10059_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":10090,"nodeType":"UserDefinedTypeName","pathNode":{"id":10089,"name":"Bytes32Slot","nameLocations":["2150:11:99"],"nodeType":"IdentifierPath","referencedDeclaration":10059,"src":"2150:11:99"},"referencedDeclaration":10059,"src":"2150:11:99","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10059_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2149:23:99"},"scope":10107,"src":"2089:147:99","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10105,"nodeType":"Block","src":"2418:63:99","statements":[{"AST":{"nativeSrc":"2437:38:99","nodeType":"YulBlock","src":"2437:38:99","statements":[{"nativeSrc":"2451:14:99","nodeType":"YulAssignment","src":"2451:14:99","value":{"name":"slot","nativeSrc":"2461:4:99","nodeType":"YulIdentifier","src":"2461:4:99"},"variableNames":[{"name":"r.slot","nativeSrc":"2451:6:99","nodeType":"YulIdentifier","src":"2451:6:99"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":10102,"isOffset":false,"isSlot":true,"src":"2451:6:99","suffix":"slot","valueSize":1},{"declaration":10098,"isOffset":false,"isSlot":false,"src":"2461:4:99","valueSize":1}],"id":10104,"nodeType":"InlineAssembly","src":"2428:47:99"}]},"documentation":{"id":10096,"nodeType":"StructuredDocumentation","src":"2242:87:99","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":10106,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2343:14:99","nodeType":"FunctionDefinition","parameters":{"id":10099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10098,"mutability":"mutable","name":"slot","nameLocation":"2366:4:99","nodeType":"VariableDeclaration","scope":10106,"src":"2358:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2358:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2357:14:99"},"returnParameters":{"id":10103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10102,"mutability":"mutable","name":"r","nameLocation":"2415:1:99","nodeType":"VariableDeclaration","scope":10106,"src":"2395:21:99","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10062_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":10101,"nodeType":"UserDefinedTypeName","pathNode":{"id":10100,"name":"Uint256Slot","nameLocations":["2395:11:99"],"nodeType":"IdentifierPath","referencedDeclaration":10062,"src":"2395:11:99"},"referencedDeclaration":10062,"src":"2395:11:99","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10062_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2394:23:99"},"scope":10107,"src":"2334:147:99","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10108,"src":"1264:1219:99","usedErrors":[],"usedEvents":[]}],"src":"90:2394:99"},"id":99},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[10025],"ERC1967Proxy":[9041],"ERC1967Upgrade":[9359],"IBeacon":[9421],"IERC1822Proxiable":[8988],"OptimizedTransparentUpgradeableProxy":[10282],"Proxy":[9411],"StorageSlot":[10107]},"id":10283,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10109,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:100"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","id":10110,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10283,"sourceUnit":9042,"src":"143:56:100","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10112,"name":"ERC1967Proxy","nameLocations":["1702:12:100"],"nodeType":"IdentifierPath","referencedDeclaration":9041,"src":"1702:12:100"},"id":10113,"nodeType":"InheritanceSpecifier","src":"1702:12:100"}],"canonicalName":"OptimizedTransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":10111,"nodeType":"StructuredDocumentation","src":"201:1451:100","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":10282,"linearizedBaseContracts":[10282,9041,9359,9411],"name":"OptimizedTransparentUpgradeableProxy","nameLocation":"1662:36:100","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10115,"mutability":"immutable","name":"_ADMIN","nameLocation":"1748:6:100","nodeType":"VariableDeclaration","scope":10282,"src":"1721:33:100","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10114,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":10162,"nodeType":"Block","src":"2106:369:100","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":10130,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"2123:11:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":10136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:21:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":10135,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2154:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10133,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:100","typeDescriptions":{}}},"id":10138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:41:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2190:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2146:45:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:100","typeDescriptions":{}}},"id":10141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:54:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2123:69:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10129,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2116:6:100","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:77:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10144,"nodeType":"ExpressionStatement","src":"2116:77:100"},{"expression":{"id":10147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10145,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10115,"src":"2203:6:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10146,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10120,"src":"2212:6:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2203:15:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10148,"nodeType":"ExpressionStatement","src":"2203:15:100"},{"assignments":[10150],"declarations":[{"constant":false,"id":10150,"mutability":"mutable","name":"slot","nameLocation":"2285:4:100","nodeType":"VariableDeclaration","scope":10162,"src":"2277:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2277:7:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10152,"initialValue":{"id":10151,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"2292:11:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2277:26:100"},{"AST":{"nativeSrc":"2378:44:100","nodeType":"YulBlock","src":"2378:44:100","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"2399:4:100","nodeType":"YulIdentifier","src":"2399:4:100"},{"name":"admin_","nativeSrc":"2405:6:100","nodeType":"YulIdentifier","src":"2405:6:100"}],"functionName":{"name":"sstore","nativeSrc":"2392:6:100","nodeType":"YulIdentifier","src":"2392:6:100"},"nativeSrc":"2392:20:100","nodeType":"YulFunctionCall","src":"2392:20:100"},"nativeSrc":"2392:20:100","nodeType":"YulExpressionStatement","src":"2392:20:100"}]},"evmVersion":"cancun","externalReferences":[{"declaration":10120,"isOffset":false,"isSlot":false,"src":"2405:6:100","valueSize":1},{"declaration":10150,"isOffset":false,"isSlot":false,"src":"2399:4:100","valueSize":1}],"id":10153,"nodeType":"InlineAssembly","src":"2369:53:100"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":10157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457:1:100","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":10156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2449:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10155,"name":"address","nodeType":"ElementaryTypeName","src":"2449:7:100","typeDescriptions":{}}},"id":10158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2449:10:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10159,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10120,"src":"2461:6:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10154,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9206,"src":"2436:12:100","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":10160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2436:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10161,"nodeType":"EmitStatement","src":"2431:37:100"}]},"documentation":{"id":10116,"nodeType":"StructuredDocumentation","src":"1761:210:100","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":10163,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10125,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10118,"src":"2091:6:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10126,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"2099:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":10127,"kind":"baseConstructorSpecifier","modifierName":{"id":10124,"name":"ERC1967Proxy","nameLocations":["2078:12:100"],"nodeType":"IdentifierPath","referencedDeclaration":9041,"src":"2078:12:100"},"nodeType":"ModifierInvocation","src":"2078:27:100"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10118,"mutability":"mutable","name":"_logic","nameLocation":"2005:6:100","nodeType":"VariableDeclaration","scope":10163,"src":"1997:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10117,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10120,"mutability":"mutable","name":"admin_","nameLocation":"2029:6:100","nodeType":"VariableDeclaration","scope":10163,"src":"2021:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10119,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10122,"mutability":"mutable","name":"_data","nameLocation":"2058:5:100","nodeType":"VariableDeclaration","scope":10163,"src":"2045:18:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10121,"name":"bytes","nodeType":"ElementaryTypeName","src":"2045:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1987:82:100"},"returnParameters":{"id":10128,"nodeType":"ParameterList","parameters":[],"src":"2106:0:100"},"scope":10282,"src":"1976:499:100","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":10178,"nodeType":"Block","src":"2635:115:100","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10166,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:100","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:100","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10168,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10281],"referencedDeclaration":10281,"src":"2663:9:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:11:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:25:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10176,"nodeType":"Block","src":"2708:36:100","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10173,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"2722:9:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:11:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10175,"nodeType":"ExpressionStatement","src":"2722:11:100"}]},"id":10177,"nodeType":"IfStatement","src":"2645:99:100","trueBody":{"id":10172,"nodeType":"Block","src":"2676:26:100","statements":[{"id":10171,"nodeType":"PlaceholderStatement","src":"2690:1:100"}]}}]},"documentation":{"id":10164,"nodeType":"StructuredDocumentation","src":"2481:130:100","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":10179,"name":"ifAdmin","nameLocation":"2625:7:100","nodeType":"ModifierDefinition","parameters":{"id":10165,"nodeType":"ParameterList","parameters":[],"src":"2632:2:100"},"src":"2616:134:100","virtual":false,"visibility":"internal"},{"body":{"id":10192,"nodeType":"Block","src":"3251:37:100","statements":[{"expression":{"id":10190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10187,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10185,"src":"3261:6:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":10188,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10281],"referencedDeclaration":10281,"src":"3270:9:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3270:11:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3261:20:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10191,"nodeType":"ExpressionStatement","src":"3261:20:100"}]},"documentation":{"id":10180,"nodeType":"StructuredDocumentation","src":"2756:431:100","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":10193,"implemented":true,"kind":"function","modifiers":[{"id":10183,"kind":"modifierInvocation","modifierName":{"id":10182,"name":"ifAdmin","nameLocations":["3218:7:100"],"nodeType":"IdentifierPath","referencedDeclaration":10179,"src":"3218:7:100"},"nodeType":"ModifierInvocation","src":"3218:7:100"}],"name":"admin","nameLocation":"3201:5:100","nodeType":"FunctionDefinition","parameters":{"id":10181,"nodeType":"ParameterList","parameters":[],"src":"3206:2:100"},"returnParameters":{"id":10186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10185,"mutability":"mutable","name":"admin_","nameLocation":"3243:6:100","nodeType":"VariableDeclaration","scope":10193,"src":"3235:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10184,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3234:16:100"},"scope":10282,"src":"3192:96:100","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10206,"nodeType":"Block","src":"3825:52:100","statements":[{"expression":{"id":10204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10201,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"3835:15:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":10202,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[9040],"referencedDeclaration":9040,"src":"3853:15:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:17:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3835:35:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10205,"nodeType":"ExpressionStatement","src":"3835:35:100"}]},"documentation":{"id":10194,"nodeType":"StructuredDocumentation","src":"3294:449:100","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":10207,"implemented":true,"kind":"function","modifiers":[{"id":10197,"kind":"modifierInvocation","modifierName":{"id":10196,"name":"ifAdmin","nameLocations":["3783:7:100"],"nodeType":"IdentifierPath","referencedDeclaration":10179,"src":"3783:7:100"},"nodeType":"ModifierInvocation","src":"3783:7:100"}],"name":"implementation","nameLocation":"3757:14:100","nodeType":"FunctionDefinition","parameters":{"id":10195,"nodeType":"ParameterList","parameters":[],"src":"3771:2:100"},"returnParameters":{"id":10200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10199,"mutability":"mutable","name":"implementation_","nameLocation":"3808:15:100","nodeType":"VariableDeclaration","scope":10207,"src":"3800:23:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10198,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3799:25:100"},"scope":10282,"src":"3748:129:100","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10224,"nodeType":"Block","src":"4100:71:100","statements":[{"expression":{"arguments":[{"id":10216,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10210,"src":"4128:17:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":10219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4153:2:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":10218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4147:5:100","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10217,"name":"bytes","nodeType":"ElementaryTypeName","src":"4147:5:100","typeDescriptions":{}}},"id":10220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:9:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":10221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4158:5:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10215,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4110:17:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":10222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:54:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10223,"nodeType":"ExpressionStatement","src":"4110:54:100"}]},"documentation":{"id":10208,"nodeType":"StructuredDocumentation","src":"3883:149:100","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":10225,"implemented":true,"kind":"function","modifiers":[{"id":10213,"kind":"modifierInvocation","modifierName":{"id":10212,"name":"ifAdmin","nameLocations":["4092:7:100"],"nodeType":"IdentifierPath","referencedDeclaration":10179,"src":"4092:7:100"},"nodeType":"ModifierInvocation","src":"4092:7:100"}],"name":"upgradeTo","nameLocation":"4046:9:100","nodeType":"FunctionDefinition","parameters":{"id":10211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10210,"mutability":"mutable","name":"newImplementation","nameLocation":"4064:17:100","nodeType":"VariableDeclaration","scope":10225,"src":"4056:25:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10209,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4055:27:100"},"returnParameters":{"id":10214,"nodeType":"ParameterList","parameters":[],"src":"4100:0:100"},"scope":10282,"src":"4037:134:100","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10241,"nodeType":"Block","src":"4646:65:100","statements":[{"expression":{"arguments":[{"id":10236,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10228,"src":"4674:17:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10237,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10230,"src":"4693:4:100","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":10238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4699:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10235,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4656:17:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":10239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:48:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10240,"nodeType":"ExpressionStatement","src":"4656:48:100"}]},"documentation":{"id":10226,"nodeType":"StructuredDocumentation","src":"4177:365:100","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":10242,"implemented":true,"kind":"function","modifiers":[{"id":10233,"kind":"modifierInvocation","modifierName":{"id":10232,"name":"ifAdmin","nameLocations":["4638:7:100"],"nodeType":"IdentifierPath","referencedDeclaration":10179,"src":"4638:7:100"},"nodeType":"ModifierInvocation","src":"4638:7:100"}],"name":"upgradeToAndCall","nameLocation":"4556:16:100","nodeType":"FunctionDefinition","parameters":{"id":10231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10228,"mutability":"mutable","name":"newImplementation","nameLocation":"4581:17:100","nodeType":"VariableDeclaration","scope":10242,"src":"4573:25:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10227,"name":"address","nodeType":"ElementaryTypeName","src":"4573:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10230,"mutability":"mutable","name":"data","nameLocation":"4615:4:100","nodeType":"VariableDeclaration","scope":10242,"src":"4600:19:100","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10229,"name":"bytes","nodeType":"ElementaryTypeName","src":"4600:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4572:48:100"},"returnParameters":{"id":10234,"nodeType":"ParameterList","parameters":[],"src":"4646:0:100"},"scope":10282,"src":"4547:164:100","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":10251,"nodeType":"Block","src":"4830:35:100","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10248,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10281],"referencedDeclaration":10281,"src":"4847:9:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:11:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10247,"id":10250,"nodeType":"Return","src":"4840:18:100"}]},"documentation":{"id":10243,"nodeType":"StructuredDocumentation","src":"4717:50:100","text":" @dev Returns the current admin."},"id":10252,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4781:6:100","nodeType":"FunctionDefinition","parameters":{"id":10244,"nodeType":"ParameterList","parameters":[],"src":"4787:2:100"},"returnParameters":{"id":10247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10252,"src":"4821:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10245,"name":"address","nodeType":"ElementaryTypeName","src":"4821:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4820:9:100"},"scope":10282,"src":"4772:93:100","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[9410],"body":{"id":10271,"nodeType":"Block","src":"5039:154:100","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5057:3:100","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5061:6:100","memberName":"sender","nodeType":"MemberAccess","src":"5057:10:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10260,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10281],"referencedDeclaration":10281,"src":"5071:9:100","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5071:11:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5057:25:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":10263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5084:68:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":10257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5049:7:100","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5049:104:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10265,"nodeType":"ExpressionStatement","src":"5049:104:100"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10266,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5163:5:100","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OptimizedTransparentUpgradeableProxy_$10282_$","typeString":"type(contract super OptimizedTransparentUpgradeableProxy)"}},"id":10268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5169:15:100","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":9410,"src":"5163:21:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:23:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10270,"nodeType":"ExpressionStatement","src":"5163:23:100"}]},"documentation":{"id":10253,"nodeType":"StructuredDocumentation","src":"4871:110:100","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":10272,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4995:15:100","nodeType":"FunctionDefinition","overrides":{"id":10255,"nodeType":"OverrideSpecifier","overrides":[],"src":"5030:8:100"},"parameters":{"id":10254,"nodeType":"ParameterList","parameters":[],"src":"5010:2:100"},"returnParameters":{"id":10256,"nodeType":"ParameterList","parameters":[],"src":"5039:0:100"},"scope":10282,"src":"4986:207:100","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[9219],"body":{"id":10280,"nodeType":"Block","src":"5269:30:100","statements":[{"expression":{"id":10278,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10115,"src":"5286:6:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10277,"id":10279,"nodeType":"Return","src":"5279:13:100"}]},"id":10281,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"5208:9:100","nodeType":"FunctionDefinition","overrides":{"id":10274,"nodeType":"OverrideSpecifier","overrides":[],"src":"5242:8:100"},"parameters":{"id":10273,"nodeType":"ParameterList","parameters":[],"src":"5217:2:100"},"returnParameters":{"id":10277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10281,"src":"5260:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10275,"name":"address","nodeType":"ElementaryTypeName","src":"5260:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5259:9:100"},"scope":10282,"src":"5199:100:100","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":10283,"src":"1653:3648:100","usedErrors":[],"usedEvents":[9060,9206,9271]}],"src":"118:5184:100"},"id":100}},"contracts":{"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol":{"AggregatorInterface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatedAt","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":true,"internalType":"address","name":"startedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"startedAt","type":"uint256"}],"name":"NewRound","type":"event"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getAnswer(uint256)":"b5ab58dc","getTimestamp(uint256)":"b633620c","latestAnswer()":"50d25bcd","latestRound()":"668a0f02","latestTimestamp()":"8205bf6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"int256\",\"name\":\"current\",\"type\":\"int256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"name\":\"AnswerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"}],\"name\":\"NewRound\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"getAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol\":\"AggregatorInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorInterface {\\n  function latestAnswer() external view returns (int256);\\n\\n  function latestTimestamp() external view returns (uint256);\\n\\n  function latestRound() external view returns (uint256);\\n\\n  function getAnswer(uint256 roundId) external view returns (int256);\\n\\n  function getTimestamp(uint256 roundId) external view returns (uint256);\\n\\n  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);\\n\\n  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);\\n}\\n\",\"keccak256\":\"0xb496651006b9a2a07920ffe116928b11e2a6458e21361cecca51409522488ca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol":{"AggregatorV2V3Interface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatedAt","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":true,"internalType":"address","name":"startedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"startedAt","type":"uint256"}],"name":"NewRound","type":"event"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"decimals()":"313ce567","description()":"7284e416","getAnswer(uint256)":"b5ab58dc","getRoundData(uint80)":"9a6fc8f5","getTimestamp(uint256)":"b633620c","latestAnswer()":"50d25bcd","latestRound()":"668a0f02","latestRoundData()":"feaf968c","latestTimestamp()":"8205bf6a","version()":"54fd4d50"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"int256\",\"name\":\"current\",\"type\":\"int256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"name\":\"AnswerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"}],\"name\":\"NewRound\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"getAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint80\",\"name\":\"_roundId\",\"type\":\"uint80\"}],\"name\":\"getRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\":\"AggregatorV2V3Interface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorInterface {\\n  function latestAnswer() external view returns (int256);\\n\\n  function latestTimestamp() external view returns (uint256);\\n\\n  function latestRound() external view returns (uint256);\\n\\n  function getAnswer(uint256 roundId) external view returns (int256);\\n\\n  function getTimestamp(uint256 roundId) external view returns (uint256);\\n\\n  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);\\n\\n  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);\\n}\\n\",\"keccak256\":\"0xb496651006b9a2a07920ffe116928b11e2a6458e21361cecca51409522488ca7\",\"license\":\"MIT\"},\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport \\\"./AggregatorInterface.sol\\\";\\nimport \\\"./AggregatorV3Interface.sol\\\";\\n\\ninterface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface {}\\n\",\"keccak256\":\"0x4a7757ff7bbafe044cd49c2a45c7c18ec50eff7c7af6869face5e1e9cda976f2\",\"license\":\"MIT\"},\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorV3Interface {\\n  function decimals() external view returns (uint8);\\n\\n  function description() external view returns (string memory);\\n\\n  function version() external view returns (uint256);\\n\\n  function getRoundData(uint80 _roundId)\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n\\n  function latestRoundData()\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n}\\n\",\"keccak256\":\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol":{"AggregatorV3Interface":{"abi":[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"decimals()":"313ce567","description()":"7284e416","getRoundData(uint80)":"9a6fc8f5","latestRoundData()":"feaf968c","version()":"54fd4d50"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint80\",\"name\":\"_roundId\",\"type\":\"uint80\"}],\"name\":\"getRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":\"AggregatorV3Interface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorV3Interface {\\n  function decimals() external view returns (uint8);\\n\\n  function description() external view returns (string memory);\\n\\n  function version() external view returns (uint256);\\n\\n  function getRoundData(uint80 _roundId)\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n\\n  function latestRoundData()\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n}\\n\",\"keccak256\":\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"Ownable2StepUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"OwnableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"constructor constructor() {     _disableInitializers(); } ``` ====","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol":{"PausableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."},"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"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/PausableUpgradeable.sol\":\"PausableUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    function __Pausable_init() internal onlyInitializing {\\n        __Pausable_init_unchained();\\n    }\\n\\n    function __Pausable_init_unchained() internal onlyInitializing {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":533,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"_paused","offset":0,"slot":"51","type":"t_bool"},{"astId":638,"contract":"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:PausableUpgradeable","label":"__gap","offset":0,"slot":"52","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_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"AddressUpgradeable":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220c39077e25426b4312605c0fc38fd875d95e6d6a4a38157fc949c355455287f6164736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 SWAP1 PUSH24 0xE25426B4312605C0FC38FD875D95E6D6A4A38157FC949C35 SLOAD SSTORE 0x28 PUSH32 0x6164736F6C634300081900330000000000000000000000000000000000000000 ","sourceMap":"194:9180:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9180:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220c39077e25426b4312605c0fc38fd875d95e6d6a4a38157fc949c355455287f6164736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 SWAP1 PUSH24 0xE25426B4312605C0FC38FD875D95E6D6A4A38157FC949C35 SLOAD SSTORE 0x28 PUSH32 0x6164736F6C634300081900330000000000000000000000000000000000000000 ","sourceMap":"194:9180:7:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"_revert(bytes memory,string memory)":"infinite","functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite","verifyCallResultFromTarget(address,bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"External interface of AccessControl declared to support ERC165 detection.","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1101,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":222,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":285,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":327,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":143,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":170,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":601,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":571,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":499,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":664,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":211,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":455,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":99,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":435,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":79,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":554,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":519,"id":null,"parameterSlots":3,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:8467:101","nodeType":"YulBlock","src":"0:8467:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2684:739:101","nodeType":"YulBlock","src":"2684:739:101","statements":[{"body":{"nativeSrc":"2730:83:101","nodeType":"YulBlock","src":"2730:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2732:77:101","nodeType":"YulIdentifier","src":"2732:77:101"},"nativeSrc":"2732:79:101","nodeType":"YulFunctionCall","src":"2732:79:101"},"nativeSrc":"2732:79:101","nodeType":"YulExpressionStatement","src":"2732:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2705:7:101","nodeType":"YulIdentifier","src":"2705:7:101"},{"name":"headStart","nativeSrc":"2714:9:101","nodeType":"YulIdentifier","src":"2714:9:101"}],"functionName":{"name":"sub","nativeSrc":"2701:3:101","nodeType":"YulIdentifier","src":"2701:3:101"},"nativeSrc":"2701:23:101","nodeType":"YulFunctionCall","src":"2701:23:101"},{"kind":"number","nativeSrc":"2726:2:101","nodeType":"YulLiteral","src":"2726:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2697:3:101","nodeType":"YulIdentifier","src":"2697:3:101"},"nativeSrc":"2697:32:101","nodeType":"YulFunctionCall","src":"2697:32:101"},"nativeSrc":"2694:119:101","nodeType":"YulIf","src":"2694:119:101"},{"nativeSrc":"2823:291:101","nodeType":"YulBlock","src":"2823:291:101","statements":[{"nativeSrc":"2838:38:101","nodeType":"YulVariableDeclaration","src":"2838:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2862:9:101","nodeType":"YulIdentifier","src":"2862:9:101"},{"kind":"number","nativeSrc":"2873:1:101","nodeType":"YulLiteral","src":"2873:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2858:3:101","nodeType":"YulIdentifier","src":"2858:3:101"},"nativeSrc":"2858:17:101","nodeType":"YulFunctionCall","src":"2858:17:101"}],"functionName":{"name":"mload","nativeSrc":"2852:5:101","nodeType":"YulIdentifier","src":"2852:5:101"},"nativeSrc":"2852:24:101","nodeType":"YulFunctionCall","src":"2852:24:101"},"variables":[{"name":"offset","nativeSrc":"2842:6:101","nodeType":"YulTypedName","src":"2842:6:101","type":""}]},{"body":{"nativeSrc":"2923:83:101","nodeType":"YulBlock","src":"2923:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2925:77:101","nodeType":"YulIdentifier","src":"2925:77:101"},"nativeSrc":"2925:79:101","nodeType":"YulFunctionCall","src":"2925:79:101"},"nativeSrc":"2925:79:101","nodeType":"YulExpressionStatement","src":"2925:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2895:6:101","nodeType":"YulIdentifier","src":"2895:6:101"},{"kind":"number","nativeSrc":"2903:18:101","nodeType":"YulLiteral","src":"2903:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2892:2:101","nodeType":"YulIdentifier","src":"2892:2:101"},"nativeSrc":"2892:30:101","nodeType":"YulFunctionCall","src":"2892:30:101"},"nativeSrc":"2889:117:101","nodeType":"YulIf","src":"2889:117:101"},{"nativeSrc":"3020:84:101","nodeType":"YulAssignment","src":"3020:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3076:9:101","nodeType":"YulIdentifier","src":"3076:9:101"},{"name":"offset","nativeSrc":"3087:6:101","nodeType":"YulIdentifier","src":"3087:6:101"}],"functionName":{"name":"add","nativeSrc":"3072:3:101","nodeType":"YulIdentifier","src":"3072:3:101"},"nativeSrc":"3072:22:101","nodeType":"YulFunctionCall","src":"3072:22:101"},{"name":"dataEnd","nativeSrc":"3096:7:101","nodeType":"YulIdentifier","src":"3096:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3030:41:101","nodeType":"YulIdentifier","src":"3030:41:101"},"nativeSrc":"3030:74:101","nodeType":"YulFunctionCall","src":"3030:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3020:6:101","nodeType":"YulIdentifier","src":"3020:6:101"}]}]},{"nativeSrc":"3124:292:101","nodeType":"YulBlock","src":"3124:292:101","statements":[{"nativeSrc":"3139:39:101","nodeType":"YulVariableDeclaration","src":"3139:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3163:9:101","nodeType":"YulIdentifier","src":"3163:9:101"},{"kind":"number","nativeSrc":"3174:2:101","nodeType":"YulLiteral","src":"3174:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3159:3:101","nodeType":"YulIdentifier","src":"3159:3:101"},"nativeSrc":"3159:18:101","nodeType":"YulFunctionCall","src":"3159:18:101"}],"functionName":{"name":"mload","nativeSrc":"3153:5:101","nodeType":"YulIdentifier","src":"3153:5:101"},"nativeSrc":"3153:25:101","nodeType":"YulFunctionCall","src":"3153:25:101"},"variables":[{"name":"offset","nativeSrc":"3143:6:101","nodeType":"YulTypedName","src":"3143:6:101","type":""}]},{"body":{"nativeSrc":"3225:83:101","nodeType":"YulBlock","src":"3225:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3227:77:101","nodeType":"YulIdentifier","src":"3227:77:101"},"nativeSrc":"3227:79:101","nodeType":"YulFunctionCall","src":"3227:79:101"},"nativeSrc":"3227:79:101","nodeType":"YulExpressionStatement","src":"3227:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3197:6:101","nodeType":"YulIdentifier","src":"3197:6:101"},{"kind":"number","nativeSrc":"3205:18:101","nodeType":"YulLiteral","src":"3205:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3194:2:101","nodeType":"YulIdentifier","src":"3194:2:101"},"nativeSrc":"3194:30:101","nodeType":"YulFunctionCall","src":"3194:30:101"},"nativeSrc":"3191:117:101","nodeType":"YulIf","src":"3191:117:101"},{"nativeSrc":"3322:84:101","nodeType":"YulAssignment","src":"3322:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3378:9:101","nodeType":"YulIdentifier","src":"3378:9:101"},{"name":"offset","nativeSrc":"3389:6:101","nodeType":"YulIdentifier","src":"3389:6:101"}],"functionName":{"name":"add","nativeSrc":"3374:3:101","nodeType":"YulIdentifier","src":"3374:3:101"},"nativeSrc":"3374:22:101","nodeType":"YulFunctionCall","src":"3374:22:101"},{"name":"dataEnd","nativeSrc":"3398:7:101","nodeType":"YulIdentifier","src":"3398:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3332:41:101","nodeType":"YulIdentifier","src":"3332:41:101"},"nativeSrc":"3332:74:101","nodeType":"YulFunctionCall","src":"3332:74:101"},"variableNames":[{"name":"value1","nativeSrc":"3322:6:101","nodeType":"YulIdentifier","src":"3322:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nativeSrc":"2570:853:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2646:9:101","nodeType":"YulTypedName","src":"2646:9:101","type":""},{"name":"dataEnd","nativeSrc":"2657:7:101","nodeType":"YulTypedName","src":"2657:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2669:6:101","nodeType":"YulTypedName","src":"2669:6:101","type":""},{"name":"value1","nativeSrc":"2677:6:101","nodeType":"YulTypedName","src":"2677:6:101","type":""}],"src":"2570:853:101"},{"body":{"nativeSrc":"3488:40:101","nodeType":"YulBlock","src":"3488:40:101","statements":[{"nativeSrc":"3499:22:101","nodeType":"YulAssignment","src":"3499:22:101","value":{"arguments":[{"name":"value","nativeSrc":"3515:5:101","nodeType":"YulIdentifier","src":"3515:5:101"}],"functionName":{"name":"mload","nativeSrc":"3509:5:101","nodeType":"YulIdentifier","src":"3509:5:101"},"nativeSrc":"3509:12:101","nodeType":"YulFunctionCall","src":"3509:12:101"},"variableNames":[{"name":"length","nativeSrc":"3499:6:101","nodeType":"YulIdentifier","src":"3499:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3429:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3471:5:101","nodeType":"YulTypedName","src":"3471:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3481:6:101","nodeType":"YulTypedName","src":"3481:6:101","type":""}],"src":"3429:99:101"},{"body":{"nativeSrc":"3562:152:101","nodeType":"YulBlock","src":"3562:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3579:1:101","nodeType":"YulLiteral","src":"3579:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3582:77:101","nodeType":"YulLiteral","src":"3582:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3572:6:101","nodeType":"YulIdentifier","src":"3572:6:101"},"nativeSrc":"3572:88:101","nodeType":"YulFunctionCall","src":"3572:88:101"},"nativeSrc":"3572:88:101","nodeType":"YulExpressionStatement","src":"3572:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3676:1:101","nodeType":"YulLiteral","src":"3676:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3679:4:101","nodeType":"YulLiteral","src":"3679:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"3669:6:101","nodeType":"YulIdentifier","src":"3669:6:101"},"nativeSrc":"3669:15:101","nodeType":"YulFunctionCall","src":"3669:15:101"},"nativeSrc":"3669:15:101","nodeType":"YulExpressionStatement","src":"3669:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3700:1:101","nodeType":"YulLiteral","src":"3700:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3703:4:101","nodeType":"YulLiteral","src":"3703:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3693:6:101","nodeType":"YulIdentifier","src":"3693:6:101"},"nativeSrc":"3693:15:101","nodeType":"YulFunctionCall","src":"3693:15:101"},"nativeSrc":"3693:15:101","nodeType":"YulExpressionStatement","src":"3693:15:101"}]},"name":"panic_error_0x22","nativeSrc":"3534:180:101","nodeType":"YulFunctionDefinition","src":"3534:180:101"},{"body":{"nativeSrc":"3771:269:101","nodeType":"YulBlock","src":"3771:269:101","statements":[{"nativeSrc":"3781:22:101","nodeType":"YulAssignment","src":"3781:22:101","value":{"arguments":[{"name":"data","nativeSrc":"3795:4:101","nodeType":"YulIdentifier","src":"3795:4:101"},{"kind":"number","nativeSrc":"3801:1:101","nodeType":"YulLiteral","src":"3801:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"3791:3:101","nodeType":"YulIdentifier","src":"3791:3:101"},"nativeSrc":"3791:12:101","nodeType":"YulFunctionCall","src":"3791:12:101"},"variableNames":[{"name":"length","nativeSrc":"3781:6:101","nodeType":"YulIdentifier","src":"3781:6:101"}]},{"nativeSrc":"3812:38:101","nodeType":"YulVariableDeclaration","src":"3812:38:101","value":{"arguments":[{"name":"data","nativeSrc":"3842:4:101","nodeType":"YulIdentifier","src":"3842:4:101"},{"kind":"number","nativeSrc":"3848:1:101","nodeType":"YulLiteral","src":"3848:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"3838:3:101","nodeType":"YulIdentifier","src":"3838:3:101"},"nativeSrc":"3838:12:101","nodeType":"YulFunctionCall","src":"3838:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"3816:18:101","nodeType":"YulTypedName","src":"3816:18:101","type":""}]},{"body":{"nativeSrc":"3889:51:101","nodeType":"YulBlock","src":"3889:51:101","statements":[{"nativeSrc":"3903:27:101","nodeType":"YulAssignment","src":"3903:27:101","value":{"arguments":[{"name":"length","nativeSrc":"3917:6:101","nodeType":"YulIdentifier","src":"3917:6:101"},{"kind":"number","nativeSrc":"3925:4:101","nodeType":"YulLiteral","src":"3925:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"3913:3:101","nodeType":"YulIdentifier","src":"3913:3:101"},"nativeSrc":"3913:17:101","nodeType":"YulFunctionCall","src":"3913:17:101"},"variableNames":[{"name":"length","nativeSrc":"3903:6:101","nodeType":"YulIdentifier","src":"3903:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"3869:18:101","nodeType":"YulIdentifier","src":"3869:18:101"}],"functionName":{"name":"iszero","nativeSrc":"3862:6:101","nodeType":"YulIdentifier","src":"3862:6:101"},"nativeSrc":"3862:26:101","nodeType":"YulFunctionCall","src":"3862:26:101"},"nativeSrc":"3859:81:101","nodeType":"YulIf","src":"3859:81:101"},{"body":{"nativeSrc":"3992:42:101","nodeType":"YulBlock","src":"3992:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4006:16:101","nodeType":"YulIdentifier","src":"4006:16:101"},"nativeSrc":"4006:18:101","nodeType":"YulFunctionCall","src":"4006:18:101"},"nativeSrc":"4006:18:101","nodeType":"YulExpressionStatement","src":"4006:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"3956:18:101","nodeType":"YulIdentifier","src":"3956:18:101"},{"arguments":[{"name":"length","nativeSrc":"3979:6:101","nodeType":"YulIdentifier","src":"3979:6:101"},{"kind":"number","nativeSrc":"3987:2:101","nodeType":"YulLiteral","src":"3987:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"3976:2:101","nodeType":"YulIdentifier","src":"3976:2:101"},"nativeSrc":"3976:14:101","nodeType":"YulFunctionCall","src":"3976:14:101"}],"functionName":{"name":"eq","nativeSrc":"3953:2:101","nodeType":"YulIdentifier","src":"3953:2:101"},"nativeSrc":"3953:38:101","nodeType":"YulFunctionCall","src":"3953:38:101"},"nativeSrc":"3950:84:101","nodeType":"YulIf","src":"3950:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"3720:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3755:4:101","nodeType":"YulTypedName","src":"3755:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3764:6:101","nodeType":"YulTypedName","src":"3764:6:101","type":""}],"src":"3720:320:101"},{"body":{"nativeSrc":"4100:87:101","nodeType":"YulBlock","src":"4100:87:101","statements":[{"nativeSrc":"4110:11:101","nodeType":"YulAssignment","src":"4110:11:101","value":{"name":"ptr","nativeSrc":"4118:3:101","nodeType":"YulIdentifier","src":"4118:3:101"},"variableNames":[{"name":"data","nativeSrc":"4110:4:101","nodeType":"YulIdentifier","src":"4110:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4138:1:101","nodeType":"YulLiteral","src":"4138:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"4141:3:101","nodeType":"YulIdentifier","src":"4141:3:101"}],"functionName":{"name":"mstore","nativeSrc":"4131:6:101","nodeType":"YulIdentifier","src":"4131:6:101"},"nativeSrc":"4131:14:101","nodeType":"YulFunctionCall","src":"4131:14:101"},"nativeSrc":"4131:14:101","nodeType":"YulExpressionStatement","src":"4131:14:101"},{"nativeSrc":"4154:26:101","nodeType":"YulAssignment","src":"4154:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"4172:1:101","nodeType":"YulLiteral","src":"4172:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4175:4:101","nodeType":"YulLiteral","src":"4175:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4162:9:101","nodeType":"YulIdentifier","src":"4162:9:101"},"nativeSrc":"4162:18:101","nodeType":"YulFunctionCall","src":"4162:18:101"},"variableNames":[{"name":"data","nativeSrc":"4154:4:101","nodeType":"YulIdentifier","src":"4154:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4046:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4087:3:101","nodeType":"YulTypedName","src":"4087:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4095:4:101","nodeType":"YulTypedName","src":"4095:4:101","type":""}],"src":"4046:141:101"},{"body":{"nativeSrc":"4237:49:101","nodeType":"YulBlock","src":"4237:49:101","statements":[{"nativeSrc":"4247:33:101","nodeType":"YulAssignment","src":"4247:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4265:5:101","nodeType":"YulIdentifier","src":"4265:5:101"},{"kind":"number","nativeSrc":"4272:2:101","nodeType":"YulLiteral","src":"4272:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4261:3:101","nodeType":"YulIdentifier","src":"4261:3:101"},"nativeSrc":"4261:14:101","nodeType":"YulFunctionCall","src":"4261:14:101"},{"kind":"number","nativeSrc":"4277:2:101","nodeType":"YulLiteral","src":"4277:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4257:3:101","nodeType":"YulIdentifier","src":"4257:3:101"},"nativeSrc":"4257:23:101","nodeType":"YulFunctionCall","src":"4257:23:101"},"variableNames":[{"name":"result","nativeSrc":"4247:6:101","nodeType":"YulIdentifier","src":"4247:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4193:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4220:5:101","nodeType":"YulTypedName","src":"4220:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4230:6:101","nodeType":"YulTypedName","src":"4230:6:101","type":""}],"src":"4193:93:101"},{"body":{"nativeSrc":"4345:54:101","nodeType":"YulBlock","src":"4345:54:101","statements":[{"nativeSrc":"4355:37:101","nodeType":"YulAssignment","src":"4355:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"4380:4:101","nodeType":"YulIdentifier","src":"4380:4:101"},{"name":"value","nativeSrc":"4386:5:101","nodeType":"YulIdentifier","src":"4386:5:101"}],"functionName":{"name":"shl","nativeSrc":"4376:3:101","nodeType":"YulIdentifier","src":"4376:3:101"},"nativeSrc":"4376:16:101","nodeType":"YulFunctionCall","src":"4376:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"4355:8:101","nodeType":"YulIdentifier","src":"4355:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"4292:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4320:4:101","nodeType":"YulTypedName","src":"4320:4:101","type":""},{"name":"value","nativeSrc":"4326:5:101","nodeType":"YulTypedName","src":"4326:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4336:8:101","nodeType":"YulTypedName","src":"4336:8:101","type":""}],"src":"4292:107:101"},{"body":{"nativeSrc":"4481:317:101","nodeType":"YulBlock","src":"4481:317:101","statements":[{"nativeSrc":"4491:35:101","nodeType":"YulVariableDeclaration","src":"4491:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"4512:10:101","nodeType":"YulIdentifier","src":"4512:10:101"},{"kind":"number","nativeSrc":"4524:1:101","nodeType":"YulLiteral","src":"4524:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"4508:3:101","nodeType":"YulIdentifier","src":"4508:3:101"},"nativeSrc":"4508:18:101","nodeType":"YulFunctionCall","src":"4508:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"4495:9:101","nodeType":"YulTypedName","src":"4495:9:101","type":""}]},{"nativeSrc":"4535:109:101","nodeType":"YulVariableDeclaration","src":"4535:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"4566:9:101","nodeType":"YulIdentifier","src":"4566:9:101"},{"kind":"number","nativeSrc":"4577:66:101","nodeType":"YulLiteral","src":"4577:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"4547:18:101","nodeType":"YulIdentifier","src":"4547:18:101"},"nativeSrc":"4547:97:101","nodeType":"YulFunctionCall","src":"4547:97:101"},"variables":[{"name":"mask","nativeSrc":"4539:4:101","nodeType":"YulTypedName","src":"4539:4:101","type":""}]},{"nativeSrc":"4653:51:101","nodeType":"YulAssignment","src":"4653:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"4684:9:101","nodeType":"YulIdentifier","src":"4684:9:101"},{"name":"toInsert","nativeSrc":"4695:8:101","nodeType":"YulIdentifier","src":"4695:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"4665:18:101","nodeType":"YulIdentifier","src":"4665:18:101"},"nativeSrc":"4665:39:101","nodeType":"YulFunctionCall","src":"4665:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"4653:8:101","nodeType":"YulIdentifier","src":"4653:8:101"}]},{"nativeSrc":"4713:30:101","nodeType":"YulAssignment","src":"4713:30:101","value":{"arguments":[{"name":"value","nativeSrc":"4726:5:101","nodeType":"YulIdentifier","src":"4726:5:101"},{"arguments":[{"name":"mask","nativeSrc":"4737:4:101","nodeType":"YulIdentifier","src":"4737:4:101"}],"functionName":{"name":"not","nativeSrc":"4733:3:101","nodeType":"YulIdentifier","src":"4733:3:101"},"nativeSrc":"4733:9:101","nodeType":"YulFunctionCall","src":"4733:9:101"}],"functionName":{"name":"and","nativeSrc":"4722:3:101","nodeType":"YulIdentifier","src":"4722:3:101"},"nativeSrc":"4722:21:101","nodeType":"YulFunctionCall","src":"4722:21:101"},"variableNames":[{"name":"value","nativeSrc":"4713:5:101","nodeType":"YulIdentifier","src":"4713:5:101"}]},{"nativeSrc":"4752:40:101","nodeType":"YulAssignment","src":"4752:40:101","value":{"arguments":[{"name":"value","nativeSrc":"4765:5:101","nodeType":"YulIdentifier","src":"4765:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"4776:8:101","nodeType":"YulIdentifier","src":"4776:8:101"},{"name":"mask","nativeSrc":"4786:4:101","nodeType":"YulIdentifier","src":"4786:4:101"}],"functionName":{"name":"and","nativeSrc":"4772:3:101","nodeType":"YulIdentifier","src":"4772:3:101"},"nativeSrc":"4772:19:101","nodeType":"YulFunctionCall","src":"4772:19:101"}],"functionName":{"name":"or","nativeSrc":"4762:2:101","nodeType":"YulIdentifier","src":"4762:2:101"},"nativeSrc":"4762:30:101","nodeType":"YulFunctionCall","src":"4762:30:101"},"variableNames":[{"name":"result","nativeSrc":"4752:6:101","nodeType":"YulIdentifier","src":"4752:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"4405:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4442:5:101","nodeType":"YulTypedName","src":"4442:5:101","type":""},{"name":"shiftBytes","nativeSrc":"4449:10:101","nodeType":"YulTypedName","src":"4449:10:101","type":""},{"name":"toInsert","nativeSrc":"4461:8:101","nodeType":"YulTypedName","src":"4461:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4474:6:101","nodeType":"YulTypedName","src":"4474:6:101","type":""}],"src":"4405:393:101"},{"body":{"nativeSrc":"4849:32:101","nodeType":"YulBlock","src":"4849:32:101","statements":[{"nativeSrc":"4859:16:101","nodeType":"YulAssignment","src":"4859:16:101","value":{"name":"value","nativeSrc":"4870:5:101","nodeType":"YulIdentifier","src":"4870:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4859:7:101","nodeType":"YulIdentifier","src":"4859:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"4804:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4831:5:101","nodeType":"YulTypedName","src":"4831:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4841:7:101","nodeType":"YulTypedName","src":"4841:7:101","type":""}],"src":"4804:77:101"},{"body":{"nativeSrc":"4919:28:101","nodeType":"YulBlock","src":"4919:28:101","statements":[{"nativeSrc":"4929:12:101","nodeType":"YulAssignment","src":"4929:12:101","value":{"name":"value","nativeSrc":"4936:5:101","nodeType":"YulIdentifier","src":"4936:5:101"},"variableNames":[{"name":"ret","nativeSrc":"4929:3:101","nodeType":"YulIdentifier","src":"4929:3:101"}]}]},"name":"identity","nativeSrc":"4887:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4905:5:101","nodeType":"YulTypedName","src":"4905:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4915:3:101","nodeType":"YulTypedName","src":"4915:3:101","type":""}],"src":"4887:60:101"},{"body":{"nativeSrc":"5013:82:101","nodeType":"YulBlock","src":"5013:82:101","statements":[{"nativeSrc":"5023:66:101","nodeType":"YulAssignment","src":"5023:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5081:5:101","nodeType":"YulIdentifier","src":"5081:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5063:17:101","nodeType":"YulIdentifier","src":"5063:17:101"},"nativeSrc":"5063:24:101","nodeType":"YulFunctionCall","src":"5063:24:101"}],"functionName":{"name":"identity","nativeSrc":"5054:8:101","nodeType":"YulIdentifier","src":"5054:8:101"},"nativeSrc":"5054:34:101","nodeType":"YulFunctionCall","src":"5054:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5036:17:101","nodeType":"YulIdentifier","src":"5036:17:101"},"nativeSrc":"5036:53:101","nodeType":"YulFunctionCall","src":"5036:53:101"},"variableNames":[{"name":"converted","nativeSrc":"5023:9:101","nodeType":"YulIdentifier","src":"5023:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"4953:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4993:5:101","nodeType":"YulTypedName","src":"4993:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5003:9:101","nodeType":"YulTypedName","src":"5003:9:101","type":""}],"src":"4953:142:101"},{"body":{"nativeSrc":"5148:28:101","nodeType":"YulBlock","src":"5148:28:101","statements":[{"nativeSrc":"5158:12:101","nodeType":"YulAssignment","src":"5158:12:101","value":{"name":"value","nativeSrc":"5165:5:101","nodeType":"YulIdentifier","src":"5165:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5158:3:101","nodeType":"YulIdentifier","src":"5158:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5101:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5134:5:101","nodeType":"YulTypedName","src":"5134:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5144:3:101","nodeType":"YulTypedName","src":"5144:3:101","type":""}],"src":"5101:75:101"},{"body":{"nativeSrc":"5258:193:101","nodeType":"YulBlock","src":"5258:193:101","statements":[{"nativeSrc":"5268:63:101","nodeType":"YulVariableDeclaration","src":"5268:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"5323:7:101","nodeType":"YulIdentifier","src":"5323:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5292:30:101","nodeType":"YulIdentifier","src":"5292:30:101"},"nativeSrc":"5292:39:101","nodeType":"YulFunctionCall","src":"5292:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"5272:16:101","nodeType":"YulTypedName","src":"5272:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5347:4:101","nodeType":"YulIdentifier","src":"5347:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5387:4:101","nodeType":"YulIdentifier","src":"5387:4:101"}],"functionName":{"name":"sload","nativeSrc":"5381:5:101","nodeType":"YulIdentifier","src":"5381:5:101"},"nativeSrc":"5381:11:101","nodeType":"YulFunctionCall","src":"5381:11:101"},{"name":"offset","nativeSrc":"5394:6:101","nodeType":"YulIdentifier","src":"5394:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"5426:16:101","nodeType":"YulIdentifier","src":"5426:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"5402:23:101","nodeType":"YulIdentifier","src":"5402:23:101"},"nativeSrc":"5402:41:101","nodeType":"YulFunctionCall","src":"5402:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5353:27:101","nodeType":"YulIdentifier","src":"5353:27:101"},"nativeSrc":"5353:91:101","nodeType":"YulFunctionCall","src":"5353:91:101"}],"functionName":{"name":"sstore","nativeSrc":"5340:6:101","nodeType":"YulIdentifier","src":"5340:6:101"},"nativeSrc":"5340:105:101","nodeType":"YulFunctionCall","src":"5340:105:101"},"nativeSrc":"5340:105:101","nodeType":"YulExpressionStatement","src":"5340:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5182:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5235:4:101","nodeType":"YulTypedName","src":"5235:4:101","type":""},{"name":"offset","nativeSrc":"5241:6:101","nodeType":"YulTypedName","src":"5241:6:101","type":""},{"name":"value_0","nativeSrc":"5249:7:101","nodeType":"YulTypedName","src":"5249:7:101","type":""}],"src":"5182:269:101"},{"body":{"nativeSrc":"5506:24:101","nodeType":"YulBlock","src":"5506:24:101","statements":[{"nativeSrc":"5516:8:101","nodeType":"YulAssignment","src":"5516:8:101","value":{"kind":"number","nativeSrc":"5523:1:101","nodeType":"YulLiteral","src":"5523:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"5516:3:101","nodeType":"YulIdentifier","src":"5516:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"5457:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"5502:3:101","nodeType":"YulTypedName","src":"5502:3:101","type":""}],"src":"5457:73:101"},{"body":{"nativeSrc":"5589:136:101","nodeType":"YulBlock","src":"5589:136:101","statements":[{"nativeSrc":"5599:46:101","nodeType":"YulVariableDeclaration","src":"5599:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"5613:30:101","nodeType":"YulIdentifier","src":"5613:30:101"},"nativeSrc":"5613:32:101","nodeType":"YulFunctionCall","src":"5613:32:101"},"variables":[{"name":"zero_0","nativeSrc":"5603:6:101","nodeType":"YulTypedName","src":"5603:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5698:4:101","nodeType":"YulIdentifier","src":"5698:4:101"},{"name":"offset","nativeSrc":"5704:6:101","nodeType":"YulIdentifier","src":"5704:6:101"},{"name":"zero_0","nativeSrc":"5712:6:101","nodeType":"YulIdentifier","src":"5712:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5654:43:101","nodeType":"YulIdentifier","src":"5654:43:101"},"nativeSrc":"5654:65:101","nodeType":"YulFunctionCall","src":"5654:65:101"},"nativeSrc":"5654:65:101","nodeType":"YulExpressionStatement","src":"5654:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"5536:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5575:4:101","nodeType":"YulTypedName","src":"5575:4:101","type":""},{"name":"offset","nativeSrc":"5581:6:101","nodeType":"YulTypedName","src":"5581:6:101","type":""}],"src":"5536:189:101"},{"body":{"nativeSrc":"5781:136:101","nodeType":"YulBlock","src":"5781:136:101","statements":[{"body":{"nativeSrc":"5848:63:101","nodeType":"YulBlock","src":"5848:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"5892:5:101","nodeType":"YulIdentifier","src":"5892:5:101"},{"kind":"number","nativeSrc":"5899:1:101","nodeType":"YulLiteral","src":"5899:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"5862:29:101","nodeType":"YulIdentifier","src":"5862:29:101"},"nativeSrc":"5862:39:101","nodeType":"YulFunctionCall","src":"5862:39:101"},"nativeSrc":"5862:39:101","nodeType":"YulExpressionStatement","src":"5862:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"5801:5:101","nodeType":"YulIdentifier","src":"5801:5:101"},{"name":"end","nativeSrc":"5808:3:101","nodeType":"YulIdentifier","src":"5808:3:101"}],"functionName":{"name":"lt","nativeSrc":"5798:2:101","nodeType":"YulIdentifier","src":"5798:2:101"},"nativeSrc":"5798:14:101","nodeType":"YulFunctionCall","src":"5798:14:101"},"nativeSrc":"5791:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"5813:26:101","nodeType":"YulBlock","src":"5813:26:101","statements":[{"nativeSrc":"5815:22:101","nodeType":"YulAssignment","src":"5815:22:101","value":{"arguments":[{"name":"start","nativeSrc":"5828:5:101","nodeType":"YulIdentifier","src":"5828:5:101"},{"kind":"number","nativeSrc":"5835:1:101","nodeType":"YulLiteral","src":"5835:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5824:3:101","nodeType":"YulIdentifier","src":"5824:3:101"},"nativeSrc":"5824:13:101","nodeType":"YulFunctionCall","src":"5824:13:101"},"variableNames":[{"name":"start","nativeSrc":"5815:5:101","nodeType":"YulIdentifier","src":"5815:5:101"}]}]},"pre":{"nativeSrc":"5795:2:101","nodeType":"YulBlock","src":"5795:2:101","statements":[]},"src":"5791:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"5731:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"5769:5:101","nodeType":"YulTypedName","src":"5769:5:101","type":""},{"name":"end","nativeSrc":"5776:3:101","nodeType":"YulTypedName","src":"5776:3:101","type":""}],"src":"5731:186:101"},{"body":{"nativeSrc":"6002:464:101","nodeType":"YulBlock","src":"6002:464:101","statements":[{"body":{"nativeSrc":"6028:431:101","nodeType":"YulBlock","src":"6028:431:101","statements":[{"nativeSrc":"6042:54:101","nodeType":"YulVariableDeclaration","src":"6042:54:101","value":{"arguments":[{"name":"array","nativeSrc":"6090:5:101","nodeType":"YulIdentifier","src":"6090:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6058:31:101","nodeType":"YulIdentifier","src":"6058:31:101"},"nativeSrc":"6058:38:101","nodeType":"YulFunctionCall","src":"6058:38:101"},"variables":[{"name":"dataArea","nativeSrc":"6046:8:101","nodeType":"YulTypedName","src":"6046:8:101","type":""}]},{"nativeSrc":"6109:63:101","nodeType":"YulVariableDeclaration","src":"6109:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"6132:8:101","nodeType":"YulIdentifier","src":"6132:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"6160:10:101","nodeType":"YulIdentifier","src":"6160:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6142:17:101","nodeType":"YulIdentifier","src":"6142:17:101"},"nativeSrc":"6142:29:101","nodeType":"YulFunctionCall","src":"6142:29:101"}],"functionName":{"name":"add","nativeSrc":"6128:3:101","nodeType":"YulIdentifier","src":"6128:3:101"},"nativeSrc":"6128:44:101","nodeType":"YulFunctionCall","src":"6128:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"6113:11:101","nodeType":"YulTypedName","src":"6113:11:101","type":""}]},{"body":{"nativeSrc":"6329:27:101","nodeType":"YulBlock","src":"6329:27:101","statements":[{"nativeSrc":"6331:23:101","nodeType":"YulAssignment","src":"6331:23:101","value":{"name":"dataArea","nativeSrc":"6346:8:101","nodeType":"YulIdentifier","src":"6346:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"6331:11:101","nodeType":"YulIdentifier","src":"6331:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6313:10:101","nodeType":"YulIdentifier","src":"6313:10:101"},{"kind":"number","nativeSrc":"6325:2:101","nodeType":"YulLiteral","src":"6325:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6310:2:101","nodeType":"YulIdentifier","src":"6310:2:101"},"nativeSrc":"6310:18:101","nodeType":"YulFunctionCall","src":"6310:18:101"},"nativeSrc":"6307:49:101","nodeType":"YulIf","src":"6307:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"6398:11:101","nodeType":"YulIdentifier","src":"6398:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"6415:8:101","nodeType":"YulIdentifier","src":"6415:8:101"},{"arguments":[{"name":"len","nativeSrc":"6443:3:101","nodeType":"YulIdentifier","src":"6443:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6425:17:101","nodeType":"YulIdentifier","src":"6425:17:101"},"nativeSrc":"6425:22:101","nodeType":"YulFunctionCall","src":"6425:22:101"}],"functionName":{"name":"add","nativeSrc":"6411:3:101","nodeType":"YulIdentifier","src":"6411:3:101"},"nativeSrc":"6411:37:101","nodeType":"YulFunctionCall","src":"6411:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6369:28:101","nodeType":"YulIdentifier","src":"6369:28:101"},"nativeSrc":"6369:80:101","nodeType":"YulFunctionCall","src":"6369:80:101"},"nativeSrc":"6369:80:101","nodeType":"YulExpressionStatement","src":"6369:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6019:3:101","nodeType":"YulIdentifier","src":"6019:3:101"},{"kind":"number","nativeSrc":"6024:2:101","nodeType":"YulLiteral","src":"6024:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6016:2:101","nodeType":"YulIdentifier","src":"6016:2:101"},"nativeSrc":"6016:11:101","nodeType":"YulFunctionCall","src":"6016:11:101"},"nativeSrc":"6013:446:101","nodeType":"YulIf","src":"6013:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"5923:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"5978:5:101","nodeType":"YulTypedName","src":"5978:5:101","type":""},{"name":"len","nativeSrc":"5985:3:101","nodeType":"YulTypedName","src":"5985:3:101","type":""},{"name":"startIndex","nativeSrc":"5990:10:101","nodeType":"YulTypedName","src":"5990:10:101","type":""}],"src":"5923:543:101"},{"body":{"nativeSrc":"6535:54:101","nodeType":"YulBlock","src":"6535:54:101","statements":[{"nativeSrc":"6545:37:101","nodeType":"YulAssignment","src":"6545:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"6570:4:101","nodeType":"YulIdentifier","src":"6570:4:101"},{"name":"value","nativeSrc":"6576:5:101","nodeType":"YulIdentifier","src":"6576:5:101"}],"functionName":{"name":"shr","nativeSrc":"6566:3:101","nodeType":"YulIdentifier","src":"6566:3:101"},"nativeSrc":"6566:16:101","nodeType":"YulFunctionCall","src":"6566:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"6545:8:101","nodeType":"YulIdentifier","src":"6545:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"6472:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"6510:4:101","nodeType":"YulTypedName","src":"6510:4:101","type":""},{"name":"value","nativeSrc":"6516:5:101","nodeType":"YulTypedName","src":"6516:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6526:8:101","nodeType":"YulTypedName","src":"6526:8:101","type":""}],"src":"6472:117:101"},{"body":{"nativeSrc":"6646:118:101","nodeType":"YulBlock","src":"6646:118:101","statements":[{"nativeSrc":"6656:68:101","nodeType":"YulVariableDeclaration","src":"6656:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6705:1:101","nodeType":"YulLiteral","src":"6705:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"6708:5:101","nodeType":"YulIdentifier","src":"6708:5:101"}],"functionName":{"name":"mul","nativeSrc":"6701:3:101","nodeType":"YulIdentifier","src":"6701:3:101"},"nativeSrc":"6701:13:101","nodeType":"YulFunctionCall","src":"6701:13:101"},{"arguments":[{"kind":"number","nativeSrc":"6720:1:101","nodeType":"YulLiteral","src":"6720:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"6716:3:101","nodeType":"YulIdentifier","src":"6716:3:101"},"nativeSrc":"6716:6:101","nodeType":"YulFunctionCall","src":"6716:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"6672:28:101","nodeType":"YulIdentifier","src":"6672:28:101"},"nativeSrc":"6672:51:101","nodeType":"YulFunctionCall","src":"6672:51:101"}],"functionName":{"name":"not","nativeSrc":"6668:3:101","nodeType":"YulIdentifier","src":"6668:3:101"},"nativeSrc":"6668:56:101","nodeType":"YulFunctionCall","src":"6668:56:101"},"variables":[{"name":"mask","nativeSrc":"6660:4:101","nodeType":"YulTypedName","src":"6660:4:101","type":""}]},{"nativeSrc":"6733:25:101","nodeType":"YulAssignment","src":"6733:25:101","value":{"arguments":[{"name":"data","nativeSrc":"6747:4:101","nodeType":"YulIdentifier","src":"6747:4:101"},{"name":"mask","nativeSrc":"6753:4:101","nodeType":"YulIdentifier","src":"6753:4:101"}],"functionName":{"name":"and","nativeSrc":"6743:3:101","nodeType":"YulIdentifier","src":"6743:3:101"},"nativeSrc":"6743:15:101","nodeType":"YulFunctionCall","src":"6743:15:101"},"variableNames":[{"name":"result","nativeSrc":"6733:6:101","nodeType":"YulIdentifier","src":"6733:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"6595:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6623:4:101","nodeType":"YulTypedName","src":"6623:4:101","type":""},{"name":"bytes","nativeSrc":"6629:5:101","nodeType":"YulTypedName","src":"6629:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"6639:6:101","nodeType":"YulTypedName","src":"6639:6:101","type":""}],"src":"6595:169:101"},{"body":{"nativeSrc":"6850:214:101","nodeType":"YulBlock","src":"6850:214:101","statements":[{"nativeSrc":"6983:37:101","nodeType":"YulAssignment","src":"6983:37:101","value":{"arguments":[{"name":"data","nativeSrc":"7010:4:101","nodeType":"YulIdentifier","src":"7010:4:101"},{"name":"len","nativeSrc":"7016:3:101","nodeType":"YulIdentifier","src":"7016:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"6991:18:101","nodeType":"YulIdentifier","src":"6991:18:101"},"nativeSrc":"6991:29:101","nodeType":"YulFunctionCall","src":"6991:29:101"},"variableNames":[{"name":"data","nativeSrc":"6983:4:101","nodeType":"YulIdentifier","src":"6983:4:101"}]},{"nativeSrc":"7029:29:101","nodeType":"YulAssignment","src":"7029:29:101","value":{"arguments":[{"name":"data","nativeSrc":"7040:4:101","nodeType":"YulIdentifier","src":"7040:4:101"},{"arguments":[{"kind":"number","nativeSrc":"7050:1:101","nodeType":"YulLiteral","src":"7050:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"7053:3:101","nodeType":"YulIdentifier","src":"7053:3:101"}],"functionName":{"name":"mul","nativeSrc":"7046:3:101","nodeType":"YulIdentifier","src":"7046:3:101"},"nativeSrc":"7046:11:101","nodeType":"YulFunctionCall","src":"7046:11:101"}],"functionName":{"name":"or","nativeSrc":"7037:2:101","nodeType":"YulIdentifier","src":"7037:2:101"},"nativeSrc":"7037:21:101","nodeType":"YulFunctionCall","src":"7037:21:101"},"variableNames":[{"name":"used","nativeSrc":"7029:4:101","nodeType":"YulIdentifier","src":"7029:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"6769:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6831:4:101","nodeType":"YulTypedName","src":"6831:4:101","type":""},{"name":"len","nativeSrc":"6837:3:101","nodeType":"YulTypedName","src":"6837:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"6845:4:101","nodeType":"YulTypedName","src":"6845:4:101","type":""}],"src":"6769:295:101"},{"body":{"nativeSrc":"7161:1303:101","nodeType":"YulBlock","src":"7161:1303:101","statements":[{"nativeSrc":"7172:51:101","nodeType":"YulVariableDeclaration","src":"7172:51:101","value":{"arguments":[{"name":"src","nativeSrc":"7219:3:101","nodeType":"YulIdentifier","src":"7219:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7186:32:101","nodeType":"YulIdentifier","src":"7186:32:101"},"nativeSrc":"7186:37:101","nodeType":"YulFunctionCall","src":"7186:37:101"},"variables":[{"name":"newLen","nativeSrc":"7176:6:101","nodeType":"YulTypedName","src":"7176:6:101","type":""}]},{"body":{"nativeSrc":"7308:22:101","nodeType":"YulBlock","src":"7308:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7310:16:101","nodeType":"YulIdentifier","src":"7310:16:101"},"nativeSrc":"7310:18:101","nodeType":"YulFunctionCall","src":"7310:18:101"},"nativeSrc":"7310:18:101","nodeType":"YulExpressionStatement","src":"7310:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7280:6:101","nodeType":"YulIdentifier","src":"7280:6:101"},{"kind":"number","nativeSrc":"7288:18:101","nodeType":"YulLiteral","src":"7288:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7277:2:101","nodeType":"YulIdentifier","src":"7277:2:101"},"nativeSrc":"7277:30:101","nodeType":"YulFunctionCall","src":"7277:30:101"},"nativeSrc":"7274:56:101","nodeType":"YulIf","src":"7274:56:101"},{"nativeSrc":"7340:52:101","nodeType":"YulVariableDeclaration","src":"7340:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"7386:4:101","nodeType":"YulIdentifier","src":"7386:4:101"}],"functionName":{"name":"sload","nativeSrc":"7380:5:101","nodeType":"YulIdentifier","src":"7380:5:101"},"nativeSrc":"7380:11:101","nodeType":"YulFunctionCall","src":"7380:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7354:25:101","nodeType":"YulIdentifier","src":"7354:25:101"},"nativeSrc":"7354:38:101","nodeType":"YulFunctionCall","src":"7354:38:101"},"variables":[{"name":"oldLen","nativeSrc":"7344:6:101","nodeType":"YulTypedName","src":"7344:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7485:4:101","nodeType":"YulIdentifier","src":"7485:4:101"},{"name":"oldLen","nativeSrc":"7491:6:101","nodeType":"YulIdentifier","src":"7491:6:101"},{"name":"newLen","nativeSrc":"7499:6:101","nodeType":"YulIdentifier","src":"7499:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7439:45:101","nodeType":"YulIdentifier","src":"7439:45:101"},"nativeSrc":"7439:67:101","nodeType":"YulFunctionCall","src":"7439:67:101"},"nativeSrc":"7439:67:101","nodeType":"YulExpressionStatement","src":"7439:67:101"},{"nativeSrc":"7516:18:101","nodeType":"YulVariableDeclaration","src":"7516:18:101","value":{"kind":"number","nativeSrc":"7533:1:101","nodeType":"YulLiteral","src":"7533:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"7520:9:101","nodeType":"YulTypedName","src":"7520:9:101","type":""}]},{"nativeSrc":"7544:17:101","nodeType":"YulAssignment","src":"7544:17:101","value":{"kind":"number","nativeSrc":"7557:4:101","nodeType":"YulLiteral","src":"7557:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"7544:9:101","nodeType":"YulIdentifier","src":"7544:9:101"}]},{"cases":[{"body":{"nativeSrc":"7608:611:101","nodeType":"YulBlock","src":"7608:611:101","statements":[{"nativeSrc":"7622:37:101","nodeType":"YulVariableDeclaration","src":"7622:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"7641:6:101","nodeType":"YulIdentifier","src":"7641:6:101"},{"arguments":[{"kind":"number","nativeSrc":"7653:4:101","nodeType":"YulLiteral","src":"7653:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"7649:3:101","nodeType":"YulIdentifier","src":"7649:3:101"},"nativeSrc":"7649:9:101","nodeType":"YulFunctionCall","src":"7649:9:101"}],"functionName":{"name":"and","nativeSrc":"7637:3:101","nodeType":"YulIdentifier","src":"7637:3:101"},"nativeSrc":"7637:22:101","nodeType":"YulFunctionCall","src":"7637:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"7626:7:101","nodeType":"YulTypedName","src":"7626:7:101","type":""}]},{"nativeSrc":"7673:51:101","nodeType":"YulVariableDeclaration","src":"7673:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"7719:4:101","nodeType":"YulIdentifier","src":"7719:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"7687:31:101","nodeType":"YulIdentifier","src":"7687:31:101"},"nativeSrc":"7687:37:101","nodeType":"YulFunctionCall","src":"7687:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"7677:6:101","nodeType":"YulTypedName","src":"7677:6:101","type":""}]},{"nativeSrc":"7737:10:101","nodeType":"YulVariableDeclaration","src":"7737:10:101","value":{"kind":"number","nativeSrc":"7746:1:101","nodeType":"YulLiteral","src":"7746:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7741:1:101","nodeType":"YulTypedName","src":"7741:1:101","type":""}]},{"body":{"nativeSrc":"7805:163:101","nodeType":"YulBlock","src":"7805:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"7830:6:101","nodeType":"YulIdentifier","src":"7830:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7848:3:101","nodeType":"YulIdentifier","src":"7848:3:101"},{"name":"srcOffset","nativeSrc":"7853:9:101","nodeType":"YulIdentifier","src":"7853:9:101"}],"functionName":{"name":"add","nativeSrc":"7844:3:101","nodeType":"YulIdentifier","src":"7844:3:101"},"nativeSrc":"7844:19:101","nodeType":"YulFunctionCall","src":"7844:19:101"}],"functionName":{"name":"mload","nativeSrc":"7838:5:101","nodeType":"YulIdentifier","src":"7838:5:101"},"nativeSrc":"7838:26:101","nodeType":"YulFunctionCall","src":"7838:26:101"}],"functionName":{"name":"sstore","nativeSrc":"7823:6:101","nodeType":"YulIdentifier","src":"7823:6:101"},"nativeSrc":"7823:42:101","nodeType":"YulFunctionCall","src":"7823:42:101"},"nativeSrc":"7823:42:101","nodeType":"YulExpressionStatement","src":"7823:42:101"},{"nativeSrc":"7882:24:101","nodeType":"YulAssignment","src":"7882:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"7896:6:101","nodeType":"YulIdentifier","src":"7896:6:101"},{"kind":"number","nativeSrc":"7904:1:101","nodeType":"YulLiteral","src":"7904:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7892:3:101","nodeType":"YulIdentifier","src":"7892:3:101"},"nativeSrc":"7892:14:101","nodeType":"YulFunctionCall","src":"7892:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"7882:6:101","nodeType":"YulIdentifier","src":"7882:6:101"}]},{"nativeSrc":"7923:31:101","nodeType":"YulAssignment","src":"7923:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"7940:9:101","nodeType":"YulIdentifier","src":"7940:9:101"},{"kind":"number","nativeSrc":"7951:2:101","nodeType":"YulLiteral","src":"7951:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7936:3:101","nodeType":"YulIdentifier","src":"7936:3:101"},"nativeSrc":"7936:18:101","nodeType":"YulFunctionCall","src":"7936:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"7923:9:101","nodeType":"YulIdentifier","src":"7923:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7771:1:101","nodeType":"YulIdentifier","src":"7771:1:101"},{"name":"loopEnd","nativeSrc":"7774:7:101","nodeType":"YulIdentifier","src":"7774:7:101"}],"functionName":{"name":"lt","nativeSrc":"7768:2:101","nodeType":"YulIdentifier","src":"7768:2:101"},"nativeSrc":"7768:14:101","nodeType":"YulFunctionCall","src":"7768:14:101"},"nativeSrc":"7760:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"7783:21:101","nodeType":"YulBlock","src":"7783:21:101","statements":[{"nativeSrc":"7785:17:101","nodeType":"YulAssignment","src":"7785:17:101","value":{"arguments":[{"name":"i","nativeSrc":"7794:1:101","nodeType":"YulIdentifier","src":"7794:1:101"},{"kind":"number","nativeSrc":"7797:4:101","nodeType":"YulLiteral","src":"7797:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7790:3:101","nodeType":"YulIdentifier","src":"7790:3:101"},"nativeSrc":"7790:12:101","nodeType":"YulFunctionCall","src":"7790:12:101"},"variableNames":[{"name":"i","nativeSrc":"7785:1:101","nodeType":"YulIdentifier","src":"7785:1:101"}]}]},"pre":{"nativeSrc":"7764:3:101","nodeType":"YulBlock","src":"7764:3:101","statements":[]},"src":"7760:208:101"},{"body":{"nativeSrc":"8004:156:101","nodeType":"YulBlock","src":"8004:156:101","statements":[{"nativeSrc":"8022:43:101","nodeType":"YulVariableDeclaration","src":"8022:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8049:3:101","nodeType":"YulIdentifier","src":"8049:3:101"},{"name":"srcOffset","nativeSrc":"8054:9:101","nodeType":"YulIdentifier","src":"8054:9:101"}],"functionName":{"name":"add","nativeSrc":"8045:3:101","nodeType":"YulIdentifier","src":"8045:3:101"},"nativeSrc":"8045:19:101","nodeType":"YulFunctionCall","src":"8045:19:101"}],"functionName":{"name":"mload","nativeSrc":"8039:5:101","nodeType":"YulIdentifier","src":"8039:5:101"},"nativeSrc":"8039:26:101","nodeType":"YulFunctionCall","src":"8039:26:101"},"variables":[{"name":"lastValue","nativeSrc":"8026:9:101","nodeType":"YulTypedName","src":"8026:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8089:6:101","nodeType":"YulIdentifier","src":"8089:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"8116:9:101","nodeType":"YulIdentifier","src":"8116:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"8131:6:101","nodeType":"YulIdentifier","src":"8131:6:101"},{"kind":"number","nativeSrc":"8139:4:101","nodeType":"YulLiteral","src":"8139:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8127:3:101","nodeType":"YulIdentifier","src":"8127:3:101"},"nativeSrc":"8127:17:101","nodeType":"YulFunctionCall","src":"8127:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8097:18:101","nodeType":"YulIdentifier","src":"8097:18:101"},"nativeSrc":"8097:48:101","nodeType":"YulFunctionCall","src":"8097:48:101"}],"functionName":{"name":"sstore","nativeSrc":"8082:6:101","nodeType":"YulIdentifier","src":"8082:6:101"},"nativeSrc":"8082:64:101","nodeType":"YulFunctionCall","src":"8082:64:101"},"nativeSrc":"8082:64:101","nodeType":"YulExpressionStatement","src":"8082:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"7987:7:101","nodeType":"YulIdentifier","src":"7987:7:101"},{"name":"newLen","nativeSrc":"7996:6:101","nodeType":"YulIdentifier","src":"7996:6:101"}],"functionName":{"name":"lt","nativeSrc":"7984:2:101","nodeType":"YulIdentifier","src":"7984:2:101"},"nativeSrc":"7984:19:101","nodeType":"YulFunctionCall","src":"7984:19:101"},"nativeSrc":"7981:179:101","nodeType":"YulIf","src":"7981:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8180:4:101","nodeType":"YulIdentifier","src":"8180:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8194:6:101","nodeType":"YulIdentifier","src":"8194:6:101"},{"kind":"number","nativeSrc":"8202:1:101","nodeType":"YulLiteral","src":"8202:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8190:3:101","nodeType":"YulIdentifier","src":"8190:3:101"},"nativeSrc":"8190:14:101","nodeType":"YulFunctionCall","src":"8190:14:101"},{"kind":"number","nativeSrc":"8206:1:101","nodeType":"YulLiteral","src":"8206:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8186:3:101","nodeType":"YulIdentifier","src":"8186:3:101"},"nativeSrc":"8186:22:101","nodeType":"YulFunctionCall","src":"8186:22:101"}],"functionName":{"name":"sstore","nativeSrc":"8173:6:101","nodeType":"YulIdentifier","src":"8173:6:101"},"nativeSrc":"8173:36:101","nodeType":"YulFunctionCall","src":"8173:36:101"},"nativeSrc":"8173:36:101","nodeType":"YulExpressionStatement","src":"8173:36:101"}]},"nativeSrc":"7601:618:101","nodeType":"YulCase","src":"7601:618:101","value":{"kind":"number","nativeSrc":"7606:1:101","nodeType":"YulLiteral","src":"7606:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8236:222:101","nodeType":"YulBlock","src":"8236:222:101","statements":[{"nativeSrc":"8250:14:101","nodeType":"YulVariableDeclaration","src":"8250:14:101","value":{"kind":"number","nativeSrc":"8263:1:101","nodeType":"YulLiteral","src":"8263:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8254:5:101","nodeType":"YulTypedName","src":"8254:5:101","type":""}]},{"body":{"nativeSrc":"8287:67:101","nodeType":"YulBlock","src":"8287:67:101","statements":[{"nativeSrc":"8305:35:101","nodeType":"YulAssignment","src":"8305:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8324:3:101","nodeType":"YulIdentifier","src":"8324:3:101"},{"name":"srcOffset","nativeSrc":"8329:9:101","nodeType":"YulIdentifier","src":"8329:9:101"}],"functionName":{"name":"add","nativeSrc":"8320:3:101","nodeType":"YulIdentifier","src":"8320:3:101"},"nativeSrc":"8320:19:101","nodeType":"YulFunctionCall","src":"8320:19:101"}],"functionName":{"name":"mload","nativeSrc":"8314:5:101","nodeType":"YulIdentifier","src":"8314:5:101"},"nativeSrc":"8314:26:101","nodeType":"YulFunctionCall","src":"8314:26:101"},"variableNames":[{"name":"value","nativeSrc":"8305:5:101","nodeType":"YulIdentifier","src":"8305:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"8280:6:101","nodeType":"YulIdentifier","src":"8280:6:101"},"nativeSrc":"8277:77:101","nodeType":"YulIf","src":"8277:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8374:4:101","nodeType":"YulIdentifier","src":"8374:4:101"},{"arguments":[{"name":"value","nativeSrc":"8433:5:101","nodeType":"YulIdentifier","src":"8433:5:101"},{"name":"newLen","nativeSrc":"8440:6:101","nodeType":"YulIdentifier","src":"8440:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8380:52:101","nodeType":"YulIdentifier","src":"8380:52:101"},"nativeSrc":"8380:67:101","nodeType":"YulFunctionCall","src":"8380:67:101"}],"functionName":{"name":"sstore","nativeSrc":"8367:6:101","nodeType":"YulIdentifier","src":"8367:6:101"},"nativeSrc":"8367:81:101","nodeType":"YulFunctionCall","src":"8367:81:101"},"nativeSrc":"8367:81:101","nodeType":"YulExpressionStatement","src":"8367:81:101"}]},"nativeSrc":"8228:230:101","nodeType":"YulCase","src":"8228:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"7581:6:101","nodeType":"YulIdentifier","src":"7581:6:101"},{"kind":"number","nativeSrc":"7589:2:101","nodeType":"YulLiteral","src":"7589:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"7578:2:101","nodeType":"YulIdentifier","src":"7578:2:101"},"nativeSrc":"7578:14:101","nodeType":"YulFunctionCall","src":"7578:14:101"},"nativeSrc":"7571:887:101","nodeType":"YulSwitch","src":"7571:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7069:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7150:4:101","nodeType":"YulTypedName","src":"7150:4:101","type":""},{"name":"src","nativeSrc":"7156:3:101","nodeType":"YulTypedName","src":"7156:3:101","type":""}],"src":"7069:1395:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b50604051610ccd380380610ccd83398101604081905261002e91610147565b600361003a8382610298565b5060046100478282610298565b505050610357565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156100885761008861004f565b6040525050565b5f61009960405190565b90506100a58282610063565b919050565b5f6001600160401b038211156100c2576100c261004f565b601f19601f83011660200192915050565b8281835e505f910152565b5f6100f06100eb846100aa565b61008f565b90508281526020810184848401111561010a5761010a5f80fd5b6101158482856100d3565b509392505050565b5f82601f83011261012f5761012f5f80fd5b815161013f8482602086016100de565b949350505050565b5f806040838503121561015b5761015b5f80fd5b82516001600160401b03811115610173576101735f80fd5b61017f8582860161011d565b92505060208301516001600160401b0381111561019d5761019d5f80fd5b6101a98582860161011d565b9150509250929050565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806101db57607f821691505b6020821081036101ed576101ed6101b3565b50919050565b5f6102016101fe8381565b90565b92915050565b610210836101f3565b81545f1960089490940293841b1916921b91909117905550565b5f610236818484610207565b505050565b818110156102555761024d5f8261022a565b60010161023b565b5050565b601f821115610236575f818152602090206020601f8501048101602085101561027f5750805b6102916020601f86010483018261023b565b5050505050565b81516001600160401b038111156102b1576102b161004f565b6102bb82546101c7565b6102c6828285610259565b6020601f8311600181146102f8575f84156102e15750858201515b5f19600886021c198116600286021786555061034f565b5f85815260208120601f198616915b828110156103275788850151825560209485019460019092019101610307565b8683101561034257848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b610969806103645f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea26469706673582212202b67c68371b9eedd0aaed137f1f059f11824c24045e1ec694ebc756d346d2e0664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xCCD CODESIZE SUB DUP1 PUSH2 0xCCD DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x147 JUMP JUMPDEST PUSH1 0x3 PUSH2 0x3A DUP4 DUP3 PUSH2 0x298 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x47 DUP3 DUP3 PUSH2 0x298 JUMP JUMPDEST POP POP POP PUSH2 0x357 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x88 JUMPI PUSH2 0x88 PUSH2 0x4F JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x99 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xA5 DUP3 DUP3 PUSH2 0x63 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0xC2 JUMPI PUSH2 0xC2 PUSH2 0x4F JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xF0 PUSH2 0xEB DUP5 PUSH2 0xAA JUMP JUMPDEST PUSH2 0x8F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x10A JUMPI PUSH2 0x10A PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x115 DUP5 DUP3 DUP6 PUSH2 0xD3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12F JUMPI PUSH2 0x12F PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x13F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xDE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15B JUMPI PUSH2 0x15B PUSH0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x173 JUMPI PUSH2 0x173 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x17F DUP6 DUP3 DUP7 ADD PUSH2 0x11D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x19D JUMPI PUSH2 0x19D PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1A9 DUP6 DUP3 DUP7 ADD PUSH2 0x11D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1DB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1ED JUMPI PUSH2 0x1ED PUSH2 0x1B3 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x201 PUSH2 0x1FE DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x210 DUP4 PUSH2 0x1F3 JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x236 DUP2 DUP5 DUP5 PUSH2 0x207 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x255 JUMPI PUSH2 0x24D PUSH0 DUP3 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x23B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x236 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x27F JUMPI POP DUP1 JUMPDEST PUSH2 0x291 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x23B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B1 JUMPI PUSH2 0x2B1 PUSH2 0x4F JUMP JUMPDEST PUSH2 0x2BB DUP3 SLOAD PUSH2 0x1C7 JUMP JUMPDEST PUSH2 0x2C6 DUP3 DUP3 DUP6 PUSH2 0x259 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2F8 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x2E1 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x34F JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x327 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x307 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x342 JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x969 DUP1 PUSH2 0x364 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x184 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x10C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB2 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x240 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x649 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x657 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB2 PUSH2 0x284 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0x67D JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 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 0x1D2 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x21D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x21D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x200 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x30F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x24D DUP6 DUP3 DUP6 PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0x258 DUP6 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x275 DUP4 DUP4 PUSH2 0x2E5 JUMP JUMPDEST PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2A0 DUP3 DUP7 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x758 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x258 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x3B5 SWAP1 DUP6 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3CD DUP5 DUP5 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x404 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x806 JUMP JUMPDEST PUSH2 0x404 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x882 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x8D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x923 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x4EB SWAP1 DUP7 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x404 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x50C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x523 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x545 DUP2 DUP5 PUSH2 0x503 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x565 DUP2 PUSH2 0x54C JUMP JUMPDEST DUP2 EQ PUSH2 0x56F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x55C JUMP JUMPDEST DUP1 PUSH2 0x565 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x57D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x5AD DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5C8 JUMP JUMPDEST DUP1 PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5E0 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x609 JUMPI PUSH2 0x609 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x614 DUP7 DUP7 PUSH2 0x572 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x625 DUP7 DUP3 DUP8 ADD PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x636 DUP7 DUP3 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x640 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66A JUMPI PUSH2 0x66A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x675 DUP5 DUP5 PUSH2 0x572 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x691 JUMPI PUSH2 0x691 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x69C DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x572 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6E7 JUMPI PUSH2 0x6E7 PUSH2 0x6AD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x23A JUMPI PUSH2 0x23A PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x714 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x768 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH1 0x1D DUP2 MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x8E1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B PUSH8 0xC68371B9EEDD0AAE 0xD1 CALLDATACOPY CALL CREATE MSIZE CALL XOR 0x24 0xC2 BLOCKHASH GASLIMIT 0xE1 0xEC PUSH10 0x4EBC756D346D2E066473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"1532:11312:11:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;688:180:101;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;197:1;194;187:12;2732:79;2852:24;;-1:-1:-1;;;;;2892:30:101;;2889:117;;;2925:79;197:1;194;187:12;2925:79;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;-1:-1:-1;;;;;3197:6:101;3194:30;3191:117;;;3227:79;197:1;194;187:12;3227:79;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3534:180::-;-1:-1:-1;;;3579:1:101;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3801:1;3791:12;;3848:1;3838:12;;;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3771:269;3720:320;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5081:5;5054:34;4804:77;5063:24;4870:5;4804:77;5036:53;5023:66;4953:142;-1:-1:-1;;4953:142:101:o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5381:11;;-1:-1:-1;;4524:1:101;4508:18;;;;4376:16;;;4733:9;4722:21;4376:16;;4762:30;;;;5340:105;;-1:-1:-1;5182:269:101:o;5536:189::-;5502:3;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:186::-;5808:3;5801:5;5798:14;5791:120;;;5862:39;5899:1;5892:5;5862:39;:::i;:::-;5835:1;5824:13;5791:120;;;5731:186;;:::o;5923:543::-;6024:2;6019:3;6016:11;6013:446;;;4095:4;4131:14;;;4175:4;4162:18;;4277:2;4272;4261:14;;4257:23;6132:8;6128:44;6325:2;6313:10;6310:18;6307:49;;;-1:-1:-1;6346:8:101;6307:49;6369:80;4277:2;4272;4261:14;;4257:23;6415:8;6411:37;6398:11;6369:80;:::i;:::-;6028:431;;5923:543;;;:::o;7069:1395::-;3509:12;;-1:-1:-1;;;;;7280:6:101;7277:30;7274:56;;;7310:18;;:::i;:::-;7354:38;7386:4;7380:11;7354:38;:::i;:::-;7439:67;7499:6;7491;7485:4;7439:67;:::i;:::-;7557:4;7589:2;7578:14;;7606:1;7601:618;;;;8263:1;8280:6;8277:77;;;-1:-1:-1;8320:19:101;;;8314:26;8277:77;-1:-1:-1;;6705:1:101;6701:13;;6566:16;6668:56;6743:15;;7050:1;7046:11;;7037:21;8374:4;8367:81;8236:222;7571:887;;7601:618;4095:4;4131:14;;;4175:4;4162:18;;-1:-1:-1;;7637:22:101;;;7760:208;7774:7;7771:1;7768:14;7760:208;;;7844:19;;;7838:26;7823:42;;7951:2;7936:18;;;;7904:1;7892:14;;;;7790:12;7760:208;;;7996:6;7987:7;7984:19;7981:179;;;8045:19;;;8039:26;-1:-1:-1;;8139:4:101;8127:17;;6705:1;6701:13;6566:16;6668:56;6743:15;8082:64;;7981:179;8206:1;8202;8194:6;8190:14;8186:22;8180:4;8173:36;7608:611;;;7571:887;;7161:1303;;;7069:1395;;:::o;:::-;1532:11312:11;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":783,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":962,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transfer_1553":{"entryPoint":1034,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":741,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":551,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@decimals_1281":{"entryPoint":null,"id":1281,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":659,"id":1476,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_1435":{"entryPoint":611,"id":1435,"parameterSlots":2,"returnSlots":1},"@name_1261":{"entryPoint":407,"id":1261,"parameterSlots":0,"returnSlots":1},"@symbol_1271":{"entryPoint":644,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":576,"id":1406,"parameterSlots":3,"returnSlots":1},"@transfer_1330":{"entryPoint":728,"id":1330,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1394,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1411,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1661,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1524,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1422,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1480,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1283,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2194,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":1976,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":2273,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2113,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":1896,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":1812,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1504,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":1600,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1490,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1332,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2257,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2038,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2054,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2339,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2178,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1880,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1510,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":1609,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1793,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1356,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1272,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1729,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":1773,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":1709,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1372,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1405,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13592:101","nodeType":"YulBlock","src":"0:13592:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1282:35:101","nodeType":"YulBlock","src":"1282:35:101","statements":[{"nativeSrc":"1292:19:101","nodeType":"YulAssignment","src":"1292:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:101","nodeType":"YulLiteral","src":"1308:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:101","nodeType":"YulIdentifier","src":"1302:5:101"},"nativeSrc":"1302:9:101","nodeType":"YulFunctionCall","src":"1302:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:101","nodeType":"YulIdentifier","src":"1292:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:101","nodeType":"YulTypedName","src":"1275:6:101","type":""}],"src":"1242:75:101"},{"body":{"nativeSrc":"1412:28:101","nodeType":"YulBlock","src":"1412:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:101","nodeType":"YulLiteral","src":"1429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:101","nodeType":"YulLiteral","src":"1432:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:101","nodeType":"YulIdentifier","src":"1422:6:101"},"nativeSrc":"1422:12:101","nodeType":"YulFunctionCall","src":"1422:12:101"},"nativeSrc":"1422:12:101","nodeType":"YulExpressionStatement","src":"1422:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:101","nodeType":"YulFunctionDefinition","src":"1323:117:101"},{"body":{"nativeSrc":"1535:28:101","nodeType":"YulBlock","src":"1535:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:101","nodeType":"YulLiteral","src":"1552:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:101","nodeType":"YulLiteral","src":"1555:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:101","nodeType":"YulIdentifier","src":"1545:6:101"},"nativeSrc":"1545:12:101","nodeType":"YulFunctionCall","src":"1545:12:101"},"nativeSrc":"1545:12:101","nodeType":"YulExpressionStatement","src":"1545:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:101","nodeType":"YulFunctionDefinition","src":"1446:117:101"},{"body":{"nativeSrc":"1614:81:101","nodeType":"YulBlock","src":"1614:81:101","statements":[{"nativeSrc":"1624:65:101","nodeType":"YulAssignment","src":"1624:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:101","nodeType":"YulIdentifier","src":"1639:5:101"},{"kind":"number","nativeSrc":"1646:42:101","nodeType":"YulLiteral","src":"1646:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:101","nodeType":"YulIdentifier","src":"1635:3:101"},"nativeSrc":"1635:54:101","nodeType":"YulFunctionCall","src":"1635:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:101","nodeType":"YulIdentifier","src":"1624:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulTypedName","src":"1596:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:101","nodeType":"YulTypedName","src":"1606:7:101","type":""}],"src":"1569:126:101"},{"body":{"nativeSrc":"1746:51:101","nodeType":"YulBlock","src":"1746:51:101","statements":[{"nativeSrc":"1756:35:101","nodeType":"YulAssignment","src":"1756:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:101","nodeType":"YulIdentifier","src":"1785:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:101","nodeType":"YulIdentifier","src":"1767:17:101"},"nativeSrc":"1767:24:101","nodeType":"YulFunctionCall","src":"1767:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:101","nodeType":"YulIdentifier","src":"1756:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:101","nodeType":"YulTypedName","src":"1728:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:101","nodeType":"YulTypedName","src":"1738:7:101","type":""}],"src":"1701:96:101"},{"body":{"nativeSrc":"1846:79:101","nodeType":"YulBlock","src":"1846:79:101","statements":[{"body":{"nativeSrc":"1903:16:101","nodeType":"YulBlock","src":"1903:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:101","nodeType":"YulLiteral","src":"1912:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:101","nodeType":"YulLiteral","src":"1915:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:101","nodeType":"YulIdentifier","src":"1905:6:101"},"nativeSrc":"1905:12:101","nodeType":"YulFunctionCall","src":"1905:12:101"},"nativeSrc":"1905:12:101","nodeType":"YulExpressionStatement","src":"1905:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:101","nodeType":"YulIdentifier","src":"1869:5:101"},{"arguments":[{"name":"value","nativeSrc":"1894:5:101","nodeType":"YulIdentifier","src":"1894:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:101","nodeType":"YulIdentifier","src":"1876:17:101"},"nativeSrc":"1876:24:101","nodeType":"YulFunctionCall","src":"1876:24:101"}],"functionName":{"name":"eq","nativeSrc":"1866:2:101","nodeType":"YulIdentifier","src":"1866:2:101"},"nativeSrc":"1866:35:101","nodeType":"YulFunctionCall","src":"1866:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:101","nodeType":"YulIdentifier","src":"1859:6:101"},"nativeSrc":"1859:43:101","nodeType":"YulFunctionCall","src":"1859:43:101"},"nativeSrc":"1856:63:101","nodeType":"YulIf","src":"1856:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:101","nodeType":"YulTypedName","src":"1839:5:101","type":""}],"src":"1803:122:101"},{"body":{"nativeSrc":"1983:87:101","nodeType":"YulBlock","src":"1983:87:101","statements":[{"nativeSrc":"1993:29:101","nodeType":"YulAssignment","src":"1993:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:101","nodeType":"YulIdentifier","src":"2015:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:101","nodeType":"YulIdentifier","src":"2002:12:101"},"nativeSrc":"2002:20:101","nodeType":"YulFunctionCall","src":"2002:20:101"},"variableNames":[{"name":"value","nativeSrc":"1993:5:101","nodeType":"YulIdentifier","src":"1993:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:101","nodeType":"YulIdentifier","src":"2058:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:101","nodeType":"YulIdentifier","src":"2031:26:101"},"nativeSrc":"2031:33:101","nodeType":"YulFunctionCall","src":"2031:33:101"},"nativeSrc":"2031:33:101","nodeType":"YulExpressionStatement","src":"2031:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:101","nodeType":"YulTypedName","src":"1961:6:101","type":""},{"name":"end","nativeSrc":"1969:3:101","nodeType":"YulTypedName","src":"1969:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:101","nodeType":"YulTypedName","src":"1977:5:101","type":""}],"src":"1931:139:101"},{"body":{"nativeSrc":"2121:32:101","nodeType":"YulBlock","src":"2121:32:101","statements":[{"nativeSrc":"2131:16:101","nodeType":"YulAssignment","src":"2131:16:101","value":{"name":"value","nativeSrc":"2142:5:101","nodeType":"YulIdentifier","src":"2142:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:101","nodeType":"YulIdentifier","src":"2131:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:101","nodeType":"YulTypedName","src":"2103:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:101","nodeType":"YulTypedName","src":"2113:7:101","type":""}],"src":"2076:77:101"},{"body":{"nativeSrc":"2202:79:101","nodeType":"YulBlock","src":"2202:79:101","statements":[{"body":{"nativeSrc":"2259:16:101","nodeType":"YulBlock","src":"2259:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:101","nodeType":"YulLiteral","src":"2268:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:101","nodeType":"YulLiteral","src":"2271:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:101","nodeType":"YulIdentifier","src":"2261:6:101"},"nativeSrc":"2261:12:101","nodeType":"YulFunctionCall","src":"2261:12:101"},"nativeSrc":"2261:12:101","nodeType":"YulExpressionStatement","src":"2261:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:101","nodeType":"YulIdentifier","src":"2225:5:101"},{"arguments":[{"name":"value","nativeSrc":"2250:5:101","nodeType":"YulIdentifier","src":"2250:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:101","nodeType":"YulIdentifier","src":"2232:17:101"},"nativeSrc":"2232:24:101","nodeType":"YulFunctionCall","src":"2232:24:101"}],"functionName":{"name":"eq","nativeSrc":"2222:2:101","nodeType":"YulIdentifier","src":"2222:2:101"},"nativeSrc":"2222:35:101","nodeType":"YulFunctionCall","src":"2222:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:101","nodeType":"YulIdentifier","src":"2215:6:101"},"nativeSrc":"2215:43:101","nodeType":"YulFunctionCall","src":"2215:43:101"},"nativeSrc":"2212:63:101","nodeType":"YulIf","src":"2212:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:101","nodeType":"YulTypedName","src":"2195:5:101","type":""}],"src":"2159:122:101"},{"body":{"nativeSrc":"2339:87:101","nodeType":"YulBlock","src":"2339:87:101","statements":[{"nativeSrc":"2349:29:101","nodeType":"YulAssignment","src":"2349:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:101","nodeType":"YulIdentifier","src":"2371:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:101","nodeType":"YulIdentifier","src":"2358:12:101"},"nativeSrc":"2358:20:101","nodeType":"YulFunctionCall","src":"2358:20:101"},"variableNames":[{"name":"value","nativeSrc":"2349:5:101","nodeType":"YulIdentifier","src":"2349:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:101","nodeType":"YulIdentifier","src":"2414:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:101","nodeType":"YulIdentifier","src":"2387:26:101"},"nativeSrc":"2387:33:101","nodeType":"YulFunctionCall","src":"2387:33:101"},"nativeSrc":"2387:33:101","nodeType":"YulExpressionStatement","src":"2387:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:101","nodeType":"YulTypedName","src":"2317:6:101","type":""},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulTypedName","src":"2325:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:101","nodeType":"YulTypedName","src":"2333:5:101","type":""}],"src":"2287:139:101"},{"body":{"nativeSrc":"2515:391:101","nodeType":"YulBlock","src":"2515:391:101","statements":[{"body":{"nativeSrc":"2561:83:101","nodeType":"YulBlock","src":"2561:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:101","nodeType":"YulIdentifier","src":"2563:77:101"},"nativeSrc":"2563:79:101","nodeType":"YulFunctionCall","src":"2563:79:101"},"nativeSrc":"2563:79:101","nodeType":"YulExpressionStatement","src":"2563:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:101","nodeType":"YulIdentifier","src":"2536:7:101"},{"name":"headStart","nativeSrc":"2545:9:101","nodeType":"YulIdentifier","src":"2545:9:101"}],"functionName":{"name":"sub","nativeSrc":"2532:3:101","nodeType":"YulIdentifier","src":"2532:3:101"},"nativeSrc":"2532:23:101","nodeType":"YulFunctionCall","src":"2532:23:101"},{"kind":"number","nativeSrc":"2557:2:101","nodeType":"YulLiteral","src":"2557:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},"nativeSrc":"2528:32:101","nodeType":"YulFunctionCall","src":"2528:32:101"},"nativeSrc":"2525:119:101","nodeType":"YulIf","src":"2525:119:101"},{"nativeSrc":"2654:117:101","nodeType":"YulBlock","src":"2654:117:101","statements":[{"nativeSrc":"2669:15:101","nodeType":"YulVariableDeclaration","src":"2669:15:101","value":{"kind":"number","nativeSrc":"2683:1:101","nodeType":"YulLiteral","src":"2683:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:101","nodeType":"YulTypedName","src":"2673:6:101","type":""}]},{"nativeSrc":"2698:63:101","nodeType":"YulAssignment","src":"2698:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:101","nodeType":"YulIdentifier","src":"2733:9:101"},{"name":"offset","nativeSrc":"2744:6:101","nodeType":"YulIdentifier","src":"2744:6:101"}],"functionName":{"name":"add","nativeSrc":"2729:3:101","nodeType":"YulIdentifier","src":"2729:3:101"},"nativeSrc":"2729:22:101","nodeType":"YulFunctionCall","src":"2729:22:101"},{"name":"dataEnd","nativeSrc":"2753:7:101","nodeType":"YulIdentifier","src":"2753:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:101","nodeType":"YulIdentifier","src":"2708:20:101"},"nativeSrc":"2708:53:101","nodeType":"YulFunctionCall","src":"2708:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:101","nodeType":"YulIdentifier","src":"2698:6:101"}]}]},{"nativeSrc":"2781:118:101","nodeType":"YulBlock","src":"2781:118:101","statements":[{"nativeSrc":"2796:16:101","nodeType":"YulVariableDeclaration","src":"2796:16:101","value":{"kind":"number","nativeSrc":"2810:2:101","nodeType":"YulLiteral","src":"2810:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:101","nodeType":"YulTypedName","src":"2800:6:101","type":""}]},{"nativeSrc":"2826:63:101","nodeType":"YulAssignment","src":"2826:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:101","nodeType":"YulIdentifier","src":"2861:9:101"},{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"add","nativeSrc":"2857:3:101","nodeType":"YulIdentifier","src":"2857:3:101"},"nativeSrc":"2857:22:101","nodeType":"YulFunctionCall","src":"2857:22:101"},{"name":"dataEnd","nativeSrc":"2881:7:101","nodeType":"YulIdentifier","src":"2881:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:101","nodeType":"YulIdentifier","src":"2836:20:101"},"nativeSrc":"2836:53:101","nodeType":"YulFunctionCall","src":"2836:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:101","nodeType":"YulIdentifier","src":"2826:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:101","nodeType":"YulTypedName","src":"2477:9:101","type":""},{"name":"dataEnd","nativeSrc":"2488:7:101","nodeType":"YulTypedName","src":"2488:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:101","nodeType":"YulTypedName","src":"2500:6:101","type":""},{"name":"value1","nativeSrc":"2508:6:101","nodeType":"YulTypedName","src":"2508:6:101","type":""}],"src":"2432:474:101"},{"body":{"nativeSrc":"2954:48:101","nodeType":"YulBlock","src":"2954:48:101","statements":[{"nativeSrc":"2964:32:101","nodeType":"YulAssignment","src":"2964:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:101","nodeType":"YulIdentifier","src":"2989:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:101","nodeType":"YulIdentifier","src":"2982:6:101"},"nativeSrc":"2982:13:101","nodeType":"YulFunctionCall","src":"2982:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:21:101","nodeType":"YulFunctionCall","src":"2975:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:101","nodeType":"YulIdentifier","src":"2964:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:101","nodeType":"YulTypedName","src":"2936:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:101","nodeType":"YulTypedName","src":"2946:7:101","type":""}],"src":"2912:90:101"},{"body":{"nativeSrc":"3067:50:101","nodeType":"YulBlock","src":"3067:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:101","nodeType":"YulIdentifier","src":"3084:3:101"},{"arguments":[{"name":"value","nativeSrc":"3104:5:101","nodeType":"YulIdentifier","src":"3104:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:101","nodeType":"YulIdentifier","src":"3089:14:101"},"nativeSrc":"3089:21:101","nodeType":"YulFunctionCall","src":"3089:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:101","nodeType":"YulIdentifier","src":"3077:6:101"},"nativeSrc":"3077:34:101","nodeType":"YulFunctionCall","src":"3077:34:101"},"nativeSrc":"3077:34:101","nodeType":"YulExpressionStatement","src":"3077:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:101","nodeType":"YulTypedName","src":"3055:5:101","type":""},{"name":"pos","nativeSrc":"3062:3:101","nodeType":"YulTypedName","src":"3062:3:101","type":""}],"src":"3008:109:101"},{"body":{"nativeSrc":"3215:118:101","nodeType":"YulBlock","src":"3215:118:101","statements":[{"nativeSrc":"3225:26:101","nodeType":"YulAssignment","src":"3225:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:101","nodeType":"YulIdentifier","src":"3237:9:101"},{"kind":"number","nativeSrc":"3248:2:101","nodeType":"YulLiteral","src":"3248:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:101","nodeType":"YulIdentifier","src":"3233:3:101"},"nativeSrc":"3233:18:101","nodeType":"YulFunctionCall","src":"3233:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:101","nodeType":"YulIdentifier","src":"3225:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:101","nodeType":"YulIdentifier","src":"3299:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:101","nodeType":"YulIdentifier","src":"3312:9:101"},{"kind":"number","nativeSrc":"3323:1:101","nodeType":"YulLiteral","src":"3323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:101","nodeType":"YulIdentifier","src":"3308:3:101"},"nativeSrc":"3308:17:101","nodeType":"YulFunctionCall","src":"3308:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:101","nodeType":"YulIdentifier","src":"3261:37:101"},"nativeSrc":"3261:65:101","nodeType":"YulFunctionCall","src":"3261:65:101"},"nativeSrc":"3261:65:101","nodeType":"YulExpressionStatement","src":"3261:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:101","nodeType":"YulTypedName","src":"3187:9:101","type":""},{"name":"value0","nativeSrc":"3199:6:101","nodeType":"YulTypedName","src":"3199:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:101","nodeType":"YulTypedName","src":"3210:4:101","type":""}],"src":"3123:210:101"},{"body":{"nativeSrc":"3404:53:101","nodeType":"YulBlock","src":"3404:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:101","nodeType":"YulIdentifier","src":"3421:3:101"},{"arguments":[{"name":"value","nativeSrc":"3444:5:101","nodeType":"YulIdentifier","src":"3444:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:101","nodeType":"YulIdentifier","src":"3426:17:101"},"nativeSrc":"3426:24:101","nodeType":"YulFunctionCall","src":"3426:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:101","nodeType":"YulIdentifier","src":"3414:6:101"},"nativeSrc":"3414:37:101","nodeType":"YulFunctionCall","src":"3414:37:101"},"nativeSrc":"3414:37:101","nodeType":"YulExpressionStatement","src":"3414:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:101","nodeType":"YulTypedName","src":"3392:5:101","type":""},{"name":"pos","nativeSrc":"3399:3:101","nodeType":"YulTypedName","src":"3399:3:101","type":""}],"src":"3339:118:101"},{"body":{"nativeSrc":"3561:124:101","nodeType":"YulBlock","src":"3561:124:101","statements":[{"nativeSrc":"3571:26:101","nodeType":"YulAssignment","src":"3571:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:101","nodeType":"YulIdentifier","src":"3583:9:101"},{"kind":"number","nativeSrc":"3594:2:101","nodeType":"YulLiteral","src":"3594:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:101","nodeType":"YulIdentifier","src":"3579:3:101"},"nativeSrc":"3579:18:101","nodeType":"YulFunctionCall","src":"3579:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:101","nodeType":"YulIdentifier","src":"3571:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:101","nodeType":"YulIdentifier","src":"3651:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:101","nodeType":"YulIdentifier","src":"3664:9:101"},{"kind":"number","nativeSrc":"3675:1:101","nodeType":"YulLiteral","src":"3675:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:101","nodeType":"YulIdentifier","src":"3660:3:101"},"nativeSrc":"3660:17:101","nodeType":"YulFunctionCall","src":"3660:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:101","nodeType":"YulIdentifier","src":"3607:43:101"},"nativeSrc":"3607:71:101","nodeType":"YulFunctionCall","src":"3607:71:101"},"nativeSrc":"3607:71:101","nodeType":"YulExpressionStatement","src":"3607:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:101","nodeType":"YulTypedName","src":"3533:9:101","type":""},{"name":"value0","nativeSrc":"3545:6:101","nodeType":"YulTypedName","src":"3545:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:101","nodeType":"YulTypedName","src":"3556:4:101","type":""}],"src":"3463:222:101"},{"body":{"nativeSrc":"3791:519:101","nodeType":"YulBlock","src":"3791:519:101","statements":[{"body":{"nativeSrc":"3837:83:101","nodeType":"YulBlock","src":"3837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:101","nodeType":"YulIdentifier","src":"3839:77:101"},"nativeSrc":"3839:79:101","nodeType":"YulFunctionCall","src":"3839:79:101"},"nativeSrc":"3839:79:101","nodeType":"YulExpressionStatement","src":"3839:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:101","nodeType":"YulIdentifier","src":"3812:7:101"},{"name":"headStart","nativeSrc":"3821:9:101","nodeType":"YulIdentifier","src":"3821:9:101"}],"functionName":{"name":"sub","nativeSrc":"3808:3:101","nodeType":"YulIdentifier","src":"3808:3:101"},"nativeSrc":"3808:23:101","nodeType":"YulFunctionCall","src":"3808:23:101"},{"kind":"number","nativeSrc":"3833:2:101","nodeType":"YulLiteral","src":"3833:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:101","nodeType":"YulIdentifier","src":"3804:3:101"},"nativeSrc":"3804:32:101","nodeType":"YulFunctionCall","src":"3804:32:101"},"nativeSrc":"3801:119:101","nodeType":"YulIf","src":"3801:119:101"},{"nativeSrc":"3930:117:101","nodeType":"YulBlock","src":"3930:117:101","statements":[{"nativeSrc":"3945:15:101","nodeType":"YulVariableDeclaration","src":"3945:15:101","value":{"kind":"number","nativeSrc":"3959:1:101","nodeType":"YulLiteral","src":"3959:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:101","nodeType":"YulTypedName","src":"3949:6:101","type":""}]},{"nativeSrc":"3974:63:101","nodeType":"YulAssignment","src":"3974:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:101","nodeType":"YulIdentifier","src":"4009:9:101"},{"name":"offset","nativeSrc":"4020:6:101","nodeType":"YulIdentifier","src":"4020:6:101"}],"functionName":{"name":"add","nativeSrc":"4005:3:101","nodeType":"YulIdentifier","src":"4005:3:101"},"nativeSrc":"4005:22:101","nodeType":"YulFunctionCall","src":"4005:22:101"},{"name":"dataEnd","nativeSrc":"4029:7:101","nodeType":"YulIdentifier","src":"4029:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:101","nodeType":"YulIdentifier","src":"3984:20:101"},"nativeSrc":"3984:53:101","nodeType":"YulFunctionCall","src":"3984:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:101","nodeType":"YulIdentifier","src":"3974:6:101"}]}]},{"nativeSrc":"4057:118:101","nodeType":"YulBlock","src":"4057:118:101","statements":[{"nativeSrc":"4072:16:101","nodeType":"YulVariableDeclaration","src":"4072:16:101","value":{"kind":"number","nativeSrc":"4086:2:101","nodeType":"YulLiteral","src":"4086:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:101","nodeType":"YulTypedName","src":"4076:6:101","type":""}]},{"nativeSrc":"4102:63:101","nodeType":"YulAssignment","src":"4102:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:101","nodeType":"YulIdentifier","src":"4137:9:101"},{"name":"offset","nativeSrc":"4148:6:101","nodeType":"YulIdentifier","src":"4148:6:101"}],"functionName":{"name":"add","nativeSrc":"4133:3:101","nodeType":"YulIdentifier","src":"4133:3:101"},"nativeSrc":"4133:22:101","nodeType":"YulFunctionCall","src":"4133:22:101"},{"name":"dataEnd","nativeSrc":"4157:7:101","nodeType":"YulIdentifier","src":"4157:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:101","nodeType":"YulIdentifier","src":"4112:20:101"},"nativeSrc":"4112:53:101","nodeType":"YulFunctionCall","src":"4112:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:101","nodeType":"YulIdentifier","src":"4102:6:101"}]}]},{"nativeSrc":"4185:118:101","nodeType":"YulBlock","src":"4185:118:101","statements":[{"nativeSrc":"4200:16:101","nodeType":"YulVariableDeclaration","src":"4200:16:101","value":{"kind":"number","nativeSrc":"4214:2:101","nodeType":"YulLiteral","src":"4214:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:101","nodeType":"YulTypedName","src":"4204:6:101","type":""}]},{"nativeSrc":"4230:63:101","nodeType":"YulAssignment","src":"4230:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:101","nodeType":"YulIdentifier","src":"4265:9:101"},{"name":"offset","nativeSrc":"4276:6:101","nodeType":"YulIdentifier","src":"4276:6:101"}],"functionName":{"name":"add","nativeSrc":"4261:3:101","nodeType":"YulIdentifier","src":"4261:3:101"},"nativeSrc":"4261:22:101","nodeType":"YulFunctionCall","src":"4261:22:101"},{"name":"dataEnd","nativeSrc":"4285:7:101","nodeType":"YulIdentifier","src":"4285:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:101","nodeType":"YulIdentifier","src":"4240:20:101"},"nativeSrc":"4240:53:101","nodeType":"YulFunctionCall","src":"4240:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:101","nodeType":"YulIdentifier","src":"4230:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:101","nodeType":"YulTypedName","src":"3745:9:101","type":""},{"name":"dataEnd","nativeSrc":"3756:7:101","nodeType":"YulTypedName","src":"3756:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:101","nodeType":"YulTypedName","src":"3768:6:101","type":""},{"name":"value1","nativeSrc":"3776:6:101","nodeType":"YulTypedName","src":"3776:6:101","type":""},{"name":"value2","nativeSrc":"3784:6:101","nodeType":"YulTypedName","src":"3784:6:101","type":""}],"src":"3691:619:101"},{"body":{"nativeSrc":"4359:43:101","nodeType":"YulBlock","src":"4359:43:101","statements":[{"nativeSrc":"4369:27:101","nodeType":"YulAssignment","src":"4369:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:101","nodeType":"YulIdentifier","src":"4384:5:101"},{"kind":"number","nativeSrc":"4391:4:101","nodeType":"YulLiteral","src":"4391:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:101","nodeType":"YulIdentifier","src":"4380:3:101"},"nativeSrc":"4380:16:101","nodeType":"YulFunctionCall","src":"4380:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:101","nodeType":"YulIdentifier","src":"4369:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:101","nodeType":"YulTypedName","src":"4341:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:101","nodeType":"YulTypedName","src":"4351:7:101","type":""}],"src":"4316:86:101"},{"body":{"nativeSrc":"4469:51:101","nodeType":"YulBlock","src":"4469:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:101","nodeType":"YulIdentifier","src":"4486:3:101"},{"arguments":[{"name":"value","nativeSrc":"4507:5:101","nodeType":"YulIdentifier","src":"4507:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:101","nodeType":"YulIdentifier","src":"4491:15:101"},"nativeSrc":"4491:22:101","nodeType":"YulFunctionCall","src":"4491:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:101","nodeType":"YulIdentifier","src":"4479:6:101"},"nativeSrc":"4479:35:101","nodeType":"YulFunctionCall","src":"4479:35:101"},"nativeSrc":"4479:35:101","nodeType":"YulExpressionStatement","src":"4479:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:101","nodeType":"YulTypedName","src":"4457:5:101","type":""},{"name":"pos","nativeSrc":"4464:3:101","nodeType":"YulTypedName","src":"4464:3:101","type":""}],"src":"4408:112:101"},{"body":{"nativeSrc":"4620:120:101","nodeType":"YulBlock","src":"4620:120:101","statements":[{"nativeSrc":"4630:26:101","nodeType":"YulAssignment","src":"4630:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:101","nodeType":"YulIdentifier","src":"4642:9:101"},{"kind":"number","nativeSrc":"4653:2:101","nodeType":"YulLiteral","src":"4653:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:101","nodeType":"YulIdentifier","src":"4638:3:101"},"nativeSrc":"4638:18:101","nodeType":"YulFunctionCall","src":"4638:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:101","nodeType":"YulIdentifier","src":"4630:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:101","nodeType":"YulIdentifier","src":"4706:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:101","nodeType":"YulIdentifier","src":"4719:9:101"},{"kind":"number","nativeSrc":"4730:1:101","nodeType":"YulLiteral","src":"4730:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:101","nodeType":"YulIdentifier","src":"4715:3:101"},"nativeSrc":"4715:17:101","nodeType":"YulFunctionCall","src":"4715:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:101","nodeType":"YulIdentifier","src":"4666:39:101"},"nativeSrc":"4666:67:101","nodeType":"YulFunctionCall","src":"4666:67:101"},"nativeSrc":"4666:67:101","nodeType":"YulExpressionStatement","src":"4666:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:101","nodeType":"YulTypedName","src":"4592:9:101","type":""},{"name":"value0","nativeSrc":"4604:6:101","nodeType":"YulTypedName","src":"4604:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:101","nodeType":"YulTypedName","src":"4615:4:101","type":""}],"src":"4526:214:101"},{"body":{"nativeSrc":"4812:263:101","nodeType":"YulBlock","src":"4812:263:101","statements":[{"body":{"nativeSrc":"4858:83:101","nodeType":"YulBlock","src":"4858:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4860:77:101","nodeType":"YulIdentifier","src":"4860:77:101"},"nativeSrc":"4860:79:101","nodeType":"YulFunctionCall","src":"4860:79:101"},"nativeSrc":"4860:79:101","nodeType":"YulExpressionStatement","src":"4860:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4833:7:101","nodeType":"YulIdentifier","src":"4833:7:101"},{"name":"headStart","nativeSrc":"4842:9:101","nodeType":"YulIdentifier","src":"4842:9:101"}],"functionName":{"name":"sub","nativeSrc":"4829:3:101","nodeType":"YulIdentifier","src":"4829:3:101"},"nativeSrc":"4829:23:101","nodeType":"YulFunctionCall","src":"4829:23:101"},{"kind":"number","nativeSrc":"4854:2:101","nodeType":"YulLiteral","src":"4854:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4825:3:101","nodeType":"YulIdentifier","src":"4825:3:101"},"nativeSrc":"4825:32:101","nodeType":"YulFunctionCall","src":"4825:32:101"},"nativeSrc":"4822:119:101","nodeType":"YulIf","src":"4822:119:101"},{"nativeSrc":"4951:117:101","nodeType":"YulBlock","src":"4951:117:101","statements":[{"nativeSrc":"4966:15:101","nodeType":"YulVariableDeclaration","src":"4966:15:101","value":{"kind":"number","nativeSrc":"4980:1:101","nodeType":"YulLiteral","src":"4980:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4970:6:101","nodeType":"YulTypedName","src":"4970:6:101","type":""}]},{"nativeSrc":"4995:63:101","nodeType":"YulAssignment","src":"4995:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5030:9:101","nodeType":"YulIdentifier","src":"5030:9:101"},{"name":"offset","nativeSrc":"5041:6:101","nodeType":"YulIdentifier","src":"5041:6:101"}],"functionName":{"name":"add","nativeSrc":"5026:3:101","nodeType":"YulIdentifier","src":"5026:3:101"},"nativeSrc":"5026:22:101","nodeType":"YulFunctionCall","src":"5026:22:101"},{"name":"dataEnd","nativeSrc":"5050:7:101","nodeType":"YulIdentifier","src":"5050:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5005:20:101","nodeType":"YulIdentifier","src":"5005:20:101"},"nativeSrc":"5005:53:101","nodeType":"YulFunctionCall","src":"5005:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4995:6:101","nodeType":"YulIdentifier","src":"4995:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4746:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4782:9:101","nodeType":"YulTypedName","src":"4782:9:101","type":""},{"name":"dataEnd","nativeSrc":"4793:7:101","nodeType":"YulTypedName","src":"4793:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4805:6:101","nodeType":"YulTypedName","src":"4805:6:101","type":""}],"src":"4746:329:101"},{"body":{"nativeSrc":"5164:391:101","nodeType":"YulBlock","src":"5164:391:101","statements":[{"body":{"nativeSrc":"5210:83:101","nodeType":"YulBlock","src":"5210:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5212:77:101","nodeType":"YulIdentifier","src":"5212:77:101"},"nativeSrc":"5212:79:101","nodeType":"YulFunctionCall","src":"5212:79:101"},"nativeSrc":"5212:79:101","nodeType":"YulExpressionStatement","src":"5212:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5185:7:101","nodeType":"YulIdentifier","src":"5185:7:101"},{"name":"headStart","nativeSrc":"5194:9:101","nodeType":"YulIdentifier","src":"5194:9:101"}],"functionName":{"name":"sub","nativeSrc":"5181:3:101","nodeType":"YulIdentifier","src":"5181:3:101"},"nativeSrc":"5181:23:101","nodeType":"YulFunctionCall","src":"5181:23:101"},{"kind":"number","nativeSrc":"5206:2:101","nodeType":"YulLiteral","src":"5206:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5177:3:101","nodeType":"YulIdentifier","src":"5177:3:101"},"nativeSrc":"5177:32:101","nodeType":"YulFunctionCall","src":"5177:32:101"},"nativeSrc":"5174:119:101","nodeType":"YulIf","src":"5174:119:101"},{"nativeSrc":"5303:117:101","nodeType":"YulBlock","src":"5303:117:101","statements":[{"nativeSrc":"5318:15:101","nodeType":"YulVariableDeclaration","src":"5318:15:101","value":{"kind":"number","nativeSrc":"5332:1:101","nodeType":"YulLiteral","src":"5332:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5322:6:101","nodeType":"YulTypedName","src":"5322:6:101","type":""}]},{"nativeSrc":"5347:63:101","nodeType":"YulAssignment","src":"5347:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5382:9:101","nodeType":"YulIdentifier","src":"5382:9:101"},{"name":"offset","nativeSrc":"5393:6:101","nodeType":"YulIdentifier","src":"5393:6:101"}],"functionName":{"name":"add","nativeSrc":"5378:3:101","nodeType":"YulIdentifier","src":"5378:3:101"},"nativeSrc":"5378:22:101","nodeType":"YulFunctionCall","src":"5378:22:101"},{"name":"dataEnd","nativeSrc":"5402:7:101","nodeType":"YulIdentifier","src":"5402:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5357:20:101","nodeType":"YulIdentifier","src":"5357:20:101"},"nativeSrc":"5357:53:101","nodeType":"YulFunctionCall","src":"5357:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5347:6:101","nodeType":"YulIdentifier","src":"5347:6:101"}]}]},{"nativeSrc":"5430:118:101","nodeType":"YulBlock","src":"5430:118:101","statements":[{"nativeSrc":"5445:16:101","nodeType":"YulVariableDeclaration","src":"5445:16:101","value":{"kind":"number","nativeSrc":"5459:2:101","nodeType":"YulLiteral","src":"5459:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5449:6:101","nodeType":"YulTypedName","src":"5449:6:101","type":""}]},{"nativeSrc":"5475:63:101","nodeType":"YulAssignment","src":"5475:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5510:9:101","nodeType":"YulIdentifier","src":"5510:9:101"},{"name":"offset","nativeSrc":"5521:6:101","nodeType":"YulIdentifier","src":"5521:6:101"}],"functionName":{"name":"add","nativeSrc":"5506:3:101","nodeType":"YulIdentifier","src":"5506:3:101"},"nativeSrc":"5506:22:101","nodeType":"YulFunctionCall","src":"5506:22:101"},{"name":"dataEnd","nativeSrc":"5530:7:101","nodeType":"YulIdentifier","src":"5530:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5485:20:101","nodeType":"YulIdentifier","src":"5485:20:101"},"nativeSrc":"5485:53:101","nodeType":"YulFunctionCall","src":"5485:53:101"},"variableNames":[{"name":"value1","nativeSrc":"5475:6:101","nodeType":"YulIdentifier","src":"5475:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5081:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5126:9:101","nodeType":"YulTypedName","src":"5126:9:101","type":""},{"name":"dataEnd","nativeSrc":"5137:7:101","nodeType":"YulTypedName","src":"5137:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5149:6:101","nodeType":"YulTypedName","src":"5149:6:101","type":""},{"name":"value1","nativeSrc":"5157:6:101","nodeType":"YulTypedName","src":"5157:6:101","type":""}],"src":"5081:474:101"},{"body":{"nativeSrc":"5589:152:101","nodeType":"YulBlock","src":"5589:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5606:1:101","nodeType":"YulLiteral","src":"5606:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5609:77:101","nodeType":"YulLiteral","src":"5609:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5599:6:101","nodeType":"YulIdentifier","src":"5599:6:101"},"nativeSrc":"5599:88:101","nodeType":"YulFunctionCall","src":"5599:88:101"},"nativeSrc":"5599:88:101","nodeType":"YulExpressionStatement","src":"5599:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5703:1:101","nodeType":"YulLiteral","src":"5703:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5706:4:101","nodeType":"YulLiteral","src":"5706:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5696:6:101","nodeType":"YulIdentifier","src":"5696:6:101"},"nativeSrc":"5696:15:101","nodeType":"YulFunctionCall","src":"5696:15:101"},"nativeSrc":"5696:15:101","nodeType":"YulExpressionStatement","src":"5696:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5727:1:101","nodeType":"YulLiteral","src":"5727:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5730:4:101","nodeType":"YulLiteral","src":"5730:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5720:6:101","nodeType":"YulIdentifier","src":"5720:6:101"},"nativeSrc":"5720:15:101","nodeType":"YulFunctionCall","src":"5720:15:101"},"nativeSrc":"5720:15:101","nodeType":"YulExpressionStatement","src":"5720:15:101"}]},"name":"panic_error_0x22","nativeSrc":"5561:180:101","nodeType":"YulFunctionDefinition","src":"5561:180:101"},{"body":{"nativeSrc":"5798:269:101","nodeType":"YulBlock","src":"5798:269:101","statements":[{"nativeSrc":"5808:22:101","nodeType":"YulAssignment","src":"5808:22:101","value":{"arguments":[{"name":"data","nativeSrc":"5822:4:101","nodeType":"YulIdentifier","src":"5822:4:101"},{"kind":"number","nativeSrc":"5828:1:101","nodeType":"YulLiteral","src":"5828:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"5818:3:101","nodeType":"YulIdentifier","src":"5818:3:101"},"nativeSrc":"5818:12:101","nodeType":"YulFunctionCall","src":"5818:12:101"},"variableNames":[{"name":"length","nativeSrc":"5808:6:101","nodeType":"YulIdentifier","src":"5808:6:101"}]},{"nativeSrc":"5839:38:101","nodeType":"YulVariableDeclaration","src":"5839:38:101","value":{"arguments":[{"name":"data","nativeSrc":"5869:4:101","nodeType":"YulIdentifier","src":"5869:4:101"},{"kind":"number","nativeSrc":"5875:1:101","nodeType":"YulLiteral","src":"5875:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5865:3:101","nodeType":"YulIdentifier","src":"5865:3:101"},"nativeSrc":"5865:12:101","nodeType":"YulFunctionCall","src":"5865:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5843:18:101","nodeType":"YulTypedName","src":"5843:18:101","type":""}]},{"body":{"nativeSrc":"5916:51:101","nodeType":"YulBlock","src":"5916:51:101","statements":[{"nativeSrc":"5930:27:101","nodeType":"YulAssignment","src":"5930:27:101","value":{"arguments":[{"name":"length","nativeSrc":"5944:6:101","nodeType":"YulIdentifier","src":"5944:6:101"},{"kind":"number","nativeSrc":"5952:4:101","nodeType":"YulLiteral","src":"5952:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5940:3:101","nodeType":"YulIdentifier","src":"5940:3:101"},"nativeSrc":"5940:17:101","nodeType":"YulFunctionCall","src":"5940:17:101"},"variableNames":[{"name":"length","nativeSrc":"5930:6:101","nodeType":"YulIdentifier","src":"5930:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5896:18:101","nodeType":"YulIdentifier","src":"5896:18:101"}],"functionName":{"name":"iszero","nativeSrc":"5889:6:101","nodeType":"YulIdentifier","src":"5889:6:101"},"nativeSrc":"5889:26:101","nodeType":"YulFunctionCall","src":"5889:26:101"},"nativeSrc":"5886:81:101","nodeType":"YulIf","src":"5886:81:101"},{"body":{"nativeSrc":"6019:42:101","nodeType":"YulBlock","src":"6019:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6033:16:101","nodeType":"YulIdentifier","src":"6033:16:101"},"nativeSrc":"6033:18:101","nodeType":"YulFunctionCall","src":"6033:18:101"},"nativeSrc":"6033:18:101","nodeType":"YulExpressionStatement","src":"6033:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5983:18:101","nodeType":"YulIdentifier","src":"5983:18:101"},{"arguments":[{"name":"length","nativeSrc":"6006:6:101","nodeType":"YulIdentifier","src":"6006:6:101"},{"kind":"number","nativeSrc":"6014:2:101","nodeType":"YulLiteral","src":"6014:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6003:2:101","nodeType":"YulIdentifier","src":"6003:2:101"},"nativeSrc":"6003:14:101","nodeType":"YulFunctionCall","src":"6003:14:101"}],"functionName":{"name":"eq","nativeSrc":"5980:2:101","nodeType":"YulIdentifier","src":"5980:2:101"},"nativeSrc":"5980:38:101","nodeType":"YulFunctionCall","src":"5980:38:101"},"nativeSrc":"5977:84:101","nodeType":"YulIf","src":"5977:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"5747:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5782:4:101","nodeType":"YulTypedName","src":"5782:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5791:6:101","nodeType":"YulTypedName","src":"5791:6:101","type":""}],"src":"5747:320:101"},{"body":{"nativeSrc":"6101:152:101","nodeType":"YulBlock","src":"6101:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6118:1:101","nodeType":"YulLiteral","src":"6118:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6121:77:101","nodeType":"YulLiteral","src":"6121:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6111:6:101","nodeType":"YulIdentifier","src":"6111:6:101"},"nativeSrc":"6111:88:101","nodeType":"YulFunctionCall","src":"6111:88:101"},"nativeSrc":"6111:88:101","nodeType":"YulExpressionStatement","src":"6111:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6215:1:101","nodeType":"YulLiteral","src":"6215:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6218:4:101","nodeType":"YulLiteral","src":"6218:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6208:6:101","nodeType":"YulIdentifier","src":"6208:6:101"},"nativeSrc":"6208:15:101","nodeType":"YulFunctionCall","src":"6208:15:101"},"nativeSrc":"6208:15:101","nodeType":"YulExpressionStatement","src":"6208:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6239:1:101","nodeType":"YulLiteral","src":"6239:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6242:4:101","nodeType":"YulLiteral","src":"6242:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6232:6:101","nodeType":"YulIdentifier","src":"6232:6:101"},"nativeSrc":"6232:15:101","nodeType":"YulFunctionCall","src":"6232:15:101"},"nativeSrc":"6232:15:101","nodeType":"YulExpressionStatement","src":"6232:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6073:180:101","nodeType":"YulFunctionDefinition","src":"6073:180:101"},{"body":{"nativeSrc":"6303:147:101","nodeType":"YulBlock","src":"6303:147:101","statements":[{"nativeSrc":"6313:25:101","nodeType":"YulAssignment","src":"6313:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6336:1:101","nodeType":"YulIdentifier","src":"6336:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6318:17:101","nodeType":"YulIdentifier","src":"6318:17:101"},"nativeSrc":"6318:20:101","nodeType":"YulFunctionCall","src":"6318:20:101"},"variableNames":[{"name":"x","nativeSrc":"6313:1:101","nodeType":"YulIdentifier","src":"6313:1:101"}]},{"nativeSrc":"6347:25:101","nodeType":"YulAssignment","src":"6347:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6370:1:101","nodeType":"YulIdentifier","src":"6370:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6352:17:101","nodeType":"YulIdentifier","src":"6352:17:101"},"nativeSrc":"6352:20:101","nodeType":"YulFunctionCall","src":"6352:20:101"},"variableNames":[{"name":"y","nativeSrc":"6347:1:101","nodeType":"YulIdentifier","src":"6347:1:101"}]},{"nativeSrc":"6381:16:101","nodeType":"YulAssignment","src":"6381:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6392:1:101","nodeType":"YulIdentifier","src":"6392:1:101"},{"name":"y","nativeSrc":"6395:1:101","nodeType":"YulIdentifier","src":"6395:1:101"}],"functionName":{"name":"add","nativeSrc":"6388:3:101","nodeType":"YulIdentifier","src":"6388:3:101"},"nativeSrc":"6388:9:101","nodeType":"YulFunctionCall","src":"6388:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6381:3:101","nodeType":"YulIdentifier","src":"6381:3:101"}]},{"body":{"nativeSrc":"6421:22:101","nodeType":"YulBlock","src":"6421:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6423:16:101","nodeType":"YulIdentifier","src":"6423:16:101"},"nativeSrc":"6423:18:101","nodeType":"YulFunctionCall","src":"6423:18:101"},"nativeSrc":"6423:18:101","nodeType":"YulExpressionStatement","src":"6423:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6413:1:101","nodeType":"YulIdentifier","src":"6413:1:101"},{"name":"sum","nativeSrc":"6416:3:101","nodeType":"YulIdentifier","src":"6416:3:101"}],"functionName":{"name":"gt","nativeSrc":"6410:2:101","nodeType":"YulIdentifier","src":"6410:2:101"},"nativeSrc":"6410:10:101","nodeType":"YulFunctionCall","src":"6410:10:101"},"nativeSrc":"6407:36:101","nodeType":"YulIf","src":"6407:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6259:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6290:1:101","nodeType":"YulTypedName","src":"6290:1:101","type":""},{"name":"y","nativeSrc":"6293:1:101","nodeType":"YulTypedName","src":"6293:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6299:3:101","nodeType":"YulTypedName","src":"6299:3:101","type":""}],"src":"6259:191:101"},{"body":{"nativeSrc":"6562:118:101","nodeType":"YulBlock","src":"6562:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6584:6:101","nodeType":"YulIdentifier","src":"6584:6:101"},{"kind":"number","nativeSrc":"6592:1:101","nodeType":"YulLiteral","src":"6592:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6580:3:101","nodeType":"YulIdentifier","src":"6580:3:101"},"nativeSrc":"6580:14:101","nodeType":"YulFunctionCall","src":"6580:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"6596:34:101","nodeType":"YulLiteral","src":"6596:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"6573:6:101","nodeType":"YulIdentifier","src":"6573:6:101"},"nativeSrc":"6573:58:101","nodeType":"YulFunctionCall","src":"6573:58:101"},"nativeSrc":"6573:58:101","nodeType":"YulExpressionStatement","src":"6573:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6652:6:101","nodeType":"YulIdentifier","src":"6652:6:101"},{"kind":"number","nativeSrc":"6660:2:101","nodeType":"YulLiteral","src":"6660:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6648:3:101","nodeType":"YulIdentifier","src":"6648:3:101"},"nativeSrc":"6648:15:101","nodeType":"YulFunctionCall","src":"6648:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"6665:7:101","nodeType":"YulLiteral","src":"6665:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"6641:6:101","nodeType":"YulIdentifier","src":"6641:6:101"},"nativeSrc":"6641:32:101","nodeType":"YulFunctionCall","src":"6641:32:101"},"nativeSrc":"6641:32:101","nodeType":"YulExpressionStatement","src":"6641:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"6456:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6554:6:101","nodeType":"YulTypedName","src":"6554:6:101","type":""}],"src":"6456:224:101"},{"body":{"nativeSrc":"6832:220:101","nodeType":"YulBlock","src":"6832:220:101","statements":[{"nativeSrc":"6842:74:101","nodeType":"YulAssignment","src":"6842:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6908:3:101","nodeType":"YulIdentifier","src":"6908:3:101"},{"kind":"number","nativeSrc":"6913:2:101","nodeType":"YulLiteral","src":"6913:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6849:58:101","nodeType":"YulIdentifier","src":"6849:58:101"},"nativeSrc":"6849:67:101","nodeType":"YulFunctionCall","src":"6849:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6842:3:101","nodeType":"YulIdentifier","src":"6842:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7014:3:101","nodeType":"YulIdentifier","src":"7014:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"6925:88:101","nodeType":"YulIdentifier","src":"6925:88:101"},"nativeSrc":"6925:93:101","nodeType":"YulFunctionCall","src":"6925:93:101"},"nativeSrc":"6925:93:101","nodeType":"YulExpressionStatement","src":"6925:93:101"},{"nativeSrc":"7027:19:101","nodeType":"YulAssignment","src":"7027:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7038:3:101","nodeType":"YulIdentifier","src":"7038:3:101"},{"kind":"number","nativeSrc":"7043:2:101","nodeType":"YulLiteral","src":"7043:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7034:3:101","nodeType":"YulIdentifier","src":"7034:3:101"},"nativeSrc":"7034:12:101","nodeType":"YulFunctionCall","src":"7034:12:101"},"variableNames":[{"name":"end","nativeSrc":"7027:3:101","nodeType":"YulIdentifier","src":"7027:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"6686:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6820:3:101","nodeType":"YulTypedName","src":"6820:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6828:3:101","nodeType":"YulTypedName","src":"6828:3:101","type":""}],"src":"6686:366:101"},{"body":{"nativeSrc":"7229:248:101","nodeType":"YulBlock","src":"7229:248:101","statements":[{"nativeSrc":"7239:26:101","nodeType":"YulAssignment","src":"7239:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7251:9:101","nodeType":"YulIdentifier","src":"7251:9:101"},{"kind":"number","nativeSrc":"7262:2:101","nodeType":"YulLiteral","src":"7262:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7247:3:101","nodeType":"YulIdentifier","src":"7247:3:101"},"nativeSrc":"7247:18:101","nodeType":"YulFunctionCall","src":"7247:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7239:4:101","nodeType":"YulIdentifier","src":"7239:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7286:9:101","nodeType":"YulIdentifier","src":"7286:9:101"},{"kind":"number","nativeSrc":"7297:1:101","nodeType":"YulLiteral","src":"7297:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7282:3:101","nodeType":"YulIdentifier","src":"7282:3:101"},"nativeSrc":"7282:17:101","nodeType":"YulFunctionCall","src":"7282:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7305:4:101","nodeType":"YulIdentifier","src":"7305:4:101"},{"name":"headStart","nativeSrc":"7311:9:101","nodeType":"YulIdentifier","src":"7311:9:101"}],"functionName":{"name":"sub","nativeSrc":"7301:3:101","nodeType":"YulIdentifier","src":"7301:3:101"},"nativeSrc":"7301:20:101","nodeType":"YulFunctionCall","src":"7301:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7275:6:101","nodeType":"YulIdentifier","src":"7275:6:101"},"nativeSrc":"7275:47:101","nodeType":"YulFunctionCall","src":"7275:47:101"},"nativeSrc":"7275:47:101","nodeType":"YulExpressionStatement","src":"7275:47:101"},{"nativeSrc":"7331:139:101","nodeType":"YulAssignment","src":"7331:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"7465:4:101","nodeType":"YulIdentifier","src":"7465:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7339:124:101","nodeType":"YulIdentifier","src":"7339:124:101"},"nativeSrc":"7339:131:101","nodeType":"YulFunctionCall","src":"7339:131:101"},"variableNames":[{"name":"tail","nativeSrc":"7331:4:101","nodeType":"YulIdentifier","src":"7331:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7058:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7209:9:101","nodeType":"YulTypedName","src":"7209:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7224:4:101","nodeType":"YulTypedName","src":"7224:4:101","type":""}],"src":"7058:419:101"},{"body":{"nativeSrc":"7589:117:101","nodeType":"YulBlock","src":"7589:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7611:6:101","nodeType":"YulIdentifier","src":"7611:6:101"},{"kind":"number","nativeSrc":"7619:1:101","nodeType":"YulLiteral","src":"7619:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7607:3:101","nodeType":"YulIdentifier","src":"7607:3:101"},"nativeSrc":"7607:14:101","nodeType":"YulFunctionCall","src":"7607:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"7623:34:101","nodeType":"YulLiteral","src":"7623:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"7600:6:101","nodeType":"YulIdentifier","src":"7600:6:101"},"nativeSrc":"7600:58:101","nodeType":"YulFunctionCall","src":"7600:58:101"},"nativeSrc":"7600:58:101","nodeType":"YulExpressionStatement","src":"7600:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7679:6:101","nodeType":"YulIdentifier","src":"7679:6:101"},{"kind":"number","nativeSrc":"7687:2:101","nodeType":"YulLiteral","src":"7687:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7675:3:101","nodeType":"YulIdentifier","src":"7675:3:101"},"nativeSrc":"7675:15:101","nodeType":"YulFunctionCall","src":"7675:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"7692:6:101","nodeType":"YulLiteral","src":"7692:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"7668:6:101","nodeType":"YulIdentifier","src":"7668:6:101"},"nativeSrc":"7668:31:101","nodeType":"YulFunctionCall","src":"7668:31:101"},"nativeSrc":"7668:31:101","nodeType":"YulExpressionStatement","src":"7668:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"7483:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7581:6:101","nodeType":"YulTypedName","src":"7581:6:101","type":""}],"src":"7483:223:101"},{"body":{"nativeSrc":"7858:220:101","nodeType":"YulBlock","src":"7858:220:101","statements":[{"nativeSrc":"7868:74:101","nodeType":"YulAssignment","src":"7868:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7934:3:101","nodeType":"YulIdentifier","src":"7934:3:101"},{"kind":"number","nativeSrc":"7939:2:101","nodeType":"YulLiteral","src":"7939:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7875:58:101","nodeType":"YulIdentifier","src":"7875:58:101"},"nativeSrc":"7875:67:101","nodeType":"YulFunctionCall","src":"7875:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7868:3:101","nodeType":"YulIdentifier","src":"7868:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8040:3:101","nodeType":"YulIdentifier","src":"8040:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"7951:88:101","nodeType":"YulIdentifier","src":"7951:88:101"},"nativeSrc":"7951:93:101","nodeType":"YulFunctionCall","src":"7951:93:101"},"nativeSrc":"7951:93:101","nodeType":"YulExpressionStatement","src":"7951:93:101"},{"nativeSrc":"8053:19:101","nodeType":"YulAssignment","src":"8053:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"8064:3:101","nodeType":"YulIdentifier","src":"8064:3:101"},{"kind":"number","nativeSrc":"8069:2:101","nodeType":"YulLiteral","src":"8069:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8060:3:101","nodeType":"YulIdentifier","src":"8060:3:101"},"nativeSrc":"8060:12:101","nodeType":"YulFunctionCall","src":"8060:12:101"},"variableNames":[{"name":"end","nativeSrc":"8053:3:101","nodeType":"YulIdentifier","src":"8053:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"7712:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7846:3:101","nodeType":"YulTypedName","src":"7846:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7854:3:101","nodeType":"YulTypedName","src":"7854:3:101","type":""}],"src":"7712:366:101"},{"body":{"nativeSrc":"8255:248:101","nodeType":"YulBlock","src":"8255:248:101","statements":[{"nativeSrc":"8265:26:101","nodeType":"YulAssignment","src":"8265:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8277:9:101","nodeType":"YulIdentifier","src":"8277:9:101"},{"kind":"number","nativeSrc":"8288:2:101","nodeType":"YulLiteral","src":"8288:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8273:3:101","nodeType":"YulIdentifier","src":"8273:3:101"},"nativeSrc":"8273:18:101","nodeType":"YulFunctionCall","src":"8273:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8265:4:101","nodeType":"YulIdentifier","src":"8265:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8312:9:101","nodeType":"YulIdentifier","src":"8312:9:101"},{"kind":"number","nativeSrc":"8323:1:101","nodeType":"YulLiteral","src":"8323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8308:3:101","nodeType":"YulIdentifier","src":"8308:3:101"},"nativeSrc":"8308:17:101","nodeType":"YulFunctionCall","src":"8308:17:101"},{"arguments":[{"name":"tail","nativeSrc":"8331:4:101","nodeType":"YulIdentifier","src":"8331:4:101"},{"name":"headStart","nativeSrc":"8337:9:101","nodeType":"YulIdentifier","src":"8337:9:101"}],"functionName":{"name":"sub","nativeSrc":"8327:3:101","nodeType":"YulIdentifier","src":"8327:3:101"},"nativeSrc":"8327:20:101","nodeType":"YulFunctionCall","src":"8327:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8301:6:101","nodeType":"YulIdentifier","src":"8301:6:101"},"nativeSrc":"8301:47:101","nodeType":"YulFunctionCall","src":"8301:47:101"},"nativeSrc":"8301:47:101","nodeType":"YulExpressionStatement","src":"8301:47:101"},{"nativeSrc":"8357:139:101","nodeType":"YulAssignment","src":"8357:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"8491:4:101","nodeType":"YulIdentifier","src":"8491:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8365:124:101","nodeType":"YulIdentifier","src":"8365:124:101"},"nativeSrc":"8365:131:101","nodeType":"YulFunctionCall","src":"8365:131:101"},"variableNames":[{"name":"tail","nativeSrc":"8357:4:101","nodeType":"YulIdentifier","src":"8357:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8084:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8235:9:101","nodeType":"YulTypedName","src":"8235:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8250:4:101","nodeType":"YulTypedName","src":"8250:4:101","type":""}],"src":"8084:419:101"},{"body":{"nativeSrc":"8615:115:101","nodeType":"YulBlock","src":"8615:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8637:6:101","nodeType":"YulIdentifier","src":"8637:6:101"},{"kind":"number","nativeSrc":"8645:1:101","nodeType":"YulLiteral","src":"8645:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8633:3:101","nodeType":"YulIdentifier","src":"8633:3:101"},"nativeSrc":"8633:14:101","nodeType":"YulFunctionCall","src":"8633:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"8649:34:101","nodeType":"YulLiteral","src":"8649:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"8626:6:101","nodeType":"YulIdentifier","src":"8626:6:101"},"nativeSrc":"8626:58:101","nodeType":"YulFunctionCall","src":"8626:58:101"},"nativeSrc":"8626:58:101","nodeType":"YulExpressionStatement","src":"8626:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8705:6:101","nodeType":"YulIdentifier","src":"8705:6:101"},{"kind":"number","nativeSrc":"8713:2:101","nodeType":"YulLiteral","src":"8713:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8701:3:101","nodeType":"YulIdentifier","src":"8701:3:101"},"nativeSrc":"8701:15:101","nodeType":"YulFunctionCall","src":"8701:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"8718:4:101","nodeType":"YulLiteral","src":"8718:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"8694:6:101","nodeType":"YulIdentifier","src":"8694:6:101"},"nativeSrc":"8694:29:101","nodeType":"YulFunctionCall","src":"8694:29:101"},"nativeSrc":"8694:29:101","nodeType":"YulExpressionStatement","src":"8694:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"8509:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8607:6:101","nodeType":"YulTypedName","src":"8607:6:101","type":""}],"src":"8509:221:101"},{"body":{"nativeSrc":"8882:220:101","nodeType":"YulBlock","src":"8882:220:101","statements":[{"nativeSrc":"8892:74:101","nodeType":"YulAssignment","src":"8892:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"8958:3:101","nodeType":"YulIdentifier","src":"8958:3:101"},{"kind":"number","nativeSrc":"8963:2:101","nodeType":"YulLiteral","src":"8963:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8899:58:101","nodeType":"YulIdentifier","src":"8899:58:101"},"nativeSrc":"8899:67:101","nodeType":"YulFunctionCall","src":"8899:67:101"},"variableNames":[{"name":"pos","nativeSrc":"8892:3:101","nodeType":"YulIdentifier","src":"8892:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9064:3:101","nodeType":"YulIdentifier","src":"9064:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"8975:88:101","nodeType":"YulIdentifier","src":"8975:88:101"},"nativeSrc":"8975:93:101","nodeType":"YulFunctionCall","src":"8975:93:101"},"nativeSrc":"8975:93:101","nodeType":"YulExpressionStatement","src":"8975:93:101"},{"nativeSrc":"9077:19:101","nodeType":"YulAssignment","src":"9077:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9088:3:101","nodeType":"YulIdentifier","src":"9088:3:101"},{"kind":"number","nativeSrc":"9093:2:101","nodeType":"YulLiteral","src":"9093:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9084:3:101","nodeType":"YulIdentifier","src":"9084:3:101"},"nativeSrc":"9084:12:101","nodeType":"YulFunctionCall","src":"9084:12:101"},"variableNames":[{"name":"end","nativeSrc":"9077:3:101","nodeType":"YulIdentifier","src":"9077:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"8736:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8870:3:101","nodeType":"YulTypedName","src":"8870:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8878:3:101","nodeType":"YulTypedName","src":"8878:3:101","type":""}],"src":"8736:366:101"},{"body":{"nativeSrc":"9279:248:101","nodeType":"YulBlock","src":"9279:248:101","statements":[{"nativeSrc":"9289:26:101","nodeType":"YulAssignment","src":"9289:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9301:9:101","nodeType":"YulIdentifier","src":"9301:9:101"},{"kind":"number","nativeSrc":"9312:2:101","nodeType":"YulLiteral","src":"9312:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9297:3:101","nodeType":"YulIdentifier","src":"9297:3:101"},"nativeSrc":"9297:18:101","nodeType":"YulFunctionCall","src":"9297:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9289:4:101","nodeType":"YulIdentifier","src":"9289:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9336:9:101","nodeType":"YulIdentifier","src":"9336:9:101"},{"kind":"number","nativeSrc":"9347:1:101","nodeType":"YulLiteral","src":"9347:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9332:3:101","nodeType":"YulIdentifier","src":"9332:3:101"},"nativeSrc":"9332:17:101","nodeType":"YulFunctionCall","src":"9332:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9355:4:101","nodeType":"YulIdentifier","src":"9355:4:101"},{"name":"headStart","nativeSrc":"9361:9:101","nodeType":"YulIdentifier","src":"9361:9:101"}],"functionName":{"name":"sub","nativeSrc":"9351:3:101","nodeType":"YulIdentifier","src":"9351:3:101"},"nativeSrc":"9351:20:101","nodeType":"YulFunctionCall","src":"9351:20:101"}],"functionName":{"name":"mstore","nativeSrc":"9325:6:101","nodeType":"YulIdentifier","src":"9325:6:101"},"nativeSrc":"9325:47:101","nodeType":"YulFunctionCall","src":"9325:47:101"},"nativeSrc":"9325:47:101","nodeType":"YulExpressionStatement","src":"9325:47:101"},{"nativeSrc":"9381:139:101","nodeType":"YulAssignment","src":"9381:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9515:4:101","nodeType":"YulIdentifier","src":"9515:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9389:124:101","nodeType":"YulIdentifier","src":"9389:124:101"},"nativeSrc":"9389:131:101","nodeType":"YulFunctionCall","src":"9389:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9381:4:101","nodeType":"YulIdentifier","src":"9381:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9108:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9259:9:101","nodeType":"YulTypedName","src":"9259:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9274:4:101","nodeType":"YulTypedName","src":"9274:4:101","type":""}],"src":"9108:419:101"},{"body":{"nativeSrc":"9639:73:101","nodeType":"YulBlock","src":"9639:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9661:6:101","nodeType":"YulIdentifier","src":"9661:6:101"},{"kind":"number","nativeSrc":"9669:1:101","nodeType":"YulLiteral","src":"9669:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9657:3:101","nodeType":"YulIdentifier","src":"9657:3:101"},"nativeSrc":"9657:14:101","nodeType":"YulFunctionCall","src":"9657:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"9673:31:101","nodeType":"YulLiteral","src":"9673:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"9650:6:101","nodeType":"YulIdentifier","src":"9650:6:101"},"nativeSrc":"9650:55:101","nodeType":"YulFunctionCall","src":"9650:55:101"},"nativeSrc":"9650:55:101","nodeType":"YulExpressionStatement","src":"9650:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"9533:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9631:6:101","nodeType":"YulTypedName","src":"9631:6:101","type":""}],"src":"9533:179:101"},{"body":{"nativeSrc":"9864:220:101","nodeType":"YulBlock","src":"9864:220:101","statements":[{"nativeSrc":"9874:74:101","nodeType":"YulAssignment","src":"9874:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9940:3:101","nodeType":"YulIdentifier","src":"9940:3:101"},{"kind":"number","nativeSrc":"9945:2:101","nodeType":"YulLiteral","src":"9945:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9881:58:101","nodeType":"YulIdentifier","src":"9881:58:101"},"nativeSrc":"9881:67:101","nodeType":"YulFunctionCall","src":"9881:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9874:3:101","nodeType":"YulIdentifier","src":"9874:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10046:3:101","nodeType":"YulIdentifier","src":"10046:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"9957:88:101","nodeType":"YulIdentifier","src":"9957:88:101"},"nativeSrc":"9957:93:101","nodeType":"YulFunctionCall","src":"9957:93:101"},"nativeSrc":"9957:93:101","nodeType":"YulExpressionStatement","src":"9957:93:101"},{"nativeSrc":"10059:19:101","nodeType":"YulAssignment","src":"10059:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10070:3:101","nodeType":"YulIdentifier","src":"10070:3:101"},{"kind":"number","nativeSrc":"10075:2:101","nodeType":"YulLiteral","src":"10075:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10066:3:101","nodeType":"YulIdentifier","src":"10066:3:101"},"nativeSrc":"10066:12:101","nodeType":"YulFunctionCall","src":"10066:12:101"},"variableNames":[{"name":"end","nativeSrc":"10059:3:101","nodeType":"YulIdentifier","src":"10059:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"9718:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9852:3:101","nodeType":"YulTypedName","src":"9852:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9860:3:101","nodeType":"YulTypedName","src":"9860:3:101","type":""}],"src":"9718:366:101"},{"body":{"nativeSrc":"10261:248:101","nodeType":"YulBlock","src":"10261:248:101","statements":[{"nativeSrc":"10271:26:101","nodeType":"YulAssignment","src":"10271:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10283:9:101","nodeType":"YulIdentifier","src":"10283:9:101"},{"kind":"number","nativeSrc":"10294:2:101","nodeType":"YulLiteral","src":"10294:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10279:3:101","nodeType":"YulIdentifier","src":"10279:3:101"},"nativeSrc":"10279:18:101","nodeType":"YulFunctionCall","src":"10279:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10271:4:101","nodeType":"YulIdentifier","src":"10271:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10318:9:101","nodeType":"YulIdentifier","src":"10318:9:101"},{"kind":"number","nativeSrc":"10329:1:101","nodeType":"YulLiteral","src":"10329:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10314:3:101","nodeType":"YulIdentifier","src":"10314:3:101"},"nativeSrc":"10314:17:101","nodeType":"YulFunctionCall","src":"10314:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10337:4:101","nodeType":"YulIdentifier","src":"10337:4:101"},{"name":"headStart","nativeSrc":"10343:9:101","nodeType":"YulIdentifier","src":"10343:9:101"}],"functionName":{"name":"sub","nativeSrc":"10333:3:101","nodeType":"YulIdentifier","src":"10333:3:101"},"nativeSrc":"10333:20:101","nodeType":"YulFunctionCall","src":"10333:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10307:6:101","nodeType":"YulIdentifier","src":"10307:6:101"},"nativeSrc":"10307:47:101","nodeType":"YulFunctionCall","src":"10307:47:101"},"nativeSrc":"10307:47:101","nodeType":"YulExpressionStatement","src":"10307:47:101"},{"nativeSrc":"10363:139:101","nodeType":"YulAssignment","src":"10363:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10497:4:101","nodeType":"YulIdentifier","src":"10497:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10371:124:101","nodeType":"YulIdentifier","src":"10371:124:101"},"nativeSrc":"10371:131:101","nodeType":"YulFunctionCall","src":"10371:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10363:4:101","nodeType":"YulIdentifier","src":"10363:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10090:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10241:9:101","nodeType":"YulTypedName","src":"10241:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10256:4:101","nodeType":"YulTypedName","src":"10256:4:101","type":""}],"src":"10090:419:101"},{"body":{"nativeSrc":"10621:118:101","nodeType":"YulBlock","src":"10621:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10643:6:101","nodeType":"YulIdentifier","src":"10643:6:101"},{"kind":"number","nativeSrc":"10651:1:101","nodeType":"YulLiteral","src":"10651:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10639:3:101","nodeType":"YulIdentifier","src":"10639:3:101"},"nativeSrc":"10639:14:101","nodeType":"YulFunctionCall","src":"10639:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"10655:34:101","nodeType":"YulLiteral","src":"10655:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"10632:6:101","nodeType":"YulIdentifier","src":"10632:6:101"},"nativeSrc":"10632:58:101","nodeType":"YulFunctionCall","src":"10632:58:101"},"nativeSrc":"10632:58:101","nodeType":"YulExpressionStatement","src":"10632:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10711:6:101","nodeType":"YulIdentifier","src":"10711:6:101"},{"kind":"number","nativeSrc":"10719:2:101","nodeType":"YulLiteral","src":"10719:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10707:3:101","nodeType":"YulIdentifier","src":"10707:3:101"},"nativeSrc":"10707:15:101","nodeType":"YulFunctionCall","src":"10707:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"10724:7:101","nodeType":"YulLiteral","src":"10724:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"10700:6:101","nodeType":"YulIdentifier","src":"10700:6:101"},"nativeSrc":"10700:32:101","nodeType":"YulFunctionCall","src":"10700:32:101"},"nativeSrc":"10700:32:101","nodeType":"YulExpressionStatement","src":"10700:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"10515:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10613:6:101","nodeType":"YulTypedName","src":"10613:6:101","type":""}],"src":"10515:224:101"},{"body":{"nativeSrc":"10891:220:101","nodeType":"YulBlock","src":"10891:220:101","statements":[{"nativeSrc":"10901:74:101","nodeType":"YulAssignment","src":"10901:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10967:3:101","nodeType":"YulIdentifier","src":"10967:3:101"},{"kind":"number","nativeSrc":"10972:2:101","nodeType":"YulLiteral","src":"10972:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10908:58:101","nodeType":"YulIdentifier","src":"10908:58:101"},"nativeSrc":"10908:67:101","nodeType":"YulFunctionCall","src":"10908:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10901:3:101","nodeType":"YulIdentifier","src":"10901:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11073:3:101","nodeType":"YulIdentifier","src":"11073:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"10984:88:101","nodeType":"YulIdentifier","src":"10984:88:101"},"nativeSrc":"10984:93:101","nodeType":"YulFunctionCall","src":"10984:93:101"},"nativeSrc":"10984:93:101","nodeType":"YulExpressionStatement","src":"10984:93:101"},{"nativeSrc":"11086:19:101","nodeType":"YulAssignment","src":"11086:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11097:3:101","nodeType":"YulIdentifier","src":"11097:3:101"},{"kind":"number","nativeSrc":"11102:2:101","nodeType":"YulLiteral","src":"11102:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11093:3:101","nodeType":"YulIdentifier","src":"11093:3:101"},"nativeSrc":"11093:12:101","nodeType":"YulFunctionCall","src":"11093:12:101"},"variableNames":[{"name":"end","nativeSrc":"11086:3:101","nodeType":"YulIdentifier","src":"11086:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"10745:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10879:3:101","nodeType":"YulTypedName","src":"10879:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10887:3:101","nodeType":"YulTypedName","src":"10887:3:101","type":""}],"src":"10745:366:101"},{"body":{"nativeSrc":"11288:248:101","nodeType":"YulBlock","src":"11288:248:101","statements":[{"nativeSrc":"11298:26:101","nodeType":"YulAssignment","src":"11298:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11310:9:101","nodeType":"YulIdentifier","src":"11310:9:101"},{"kind":"number","nativeSrc":"11321:2:101","nodeType":"YulLiteral","src":"11321:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11306:3:101","nodeType":"YulIdentifier","src":"11306:3:101"},"nativeSrc":"11306:18:101","nodeType":"YulFunctionCall","src":"11306:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11298:4:101","nodeType":"YulIdentifier","src":"11298:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11345:9:101","nodeType":"YulIdentifier","src":"11345:9:101"},{"kind":"number","nativeSrc":"11356:1:101","nodeType":"YulLiteral","src":"11356:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11341:3:101","nodeType":"YulIdentifier","src":"11341:3:101"},"nativeSrc":"11341:17:101","nodeType":"YulFunctionCall","src":"11341:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11364:4:101","nodeType":"YulIdentifier","src":"11364:4:101"},{"name":"headStart","nativeSrc":"11370:9:101","nodeType":"YulIdentifier","src":"11370:9:101"}],"functionName":{"name":"sub","nativeSrc":"11360:3:101","nodeType":"YulIdentifier","src":"11360:3:101"},"nativeSrc":"11360:20:101","nodeType":"YulFunctionCall","src":"11360:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11334:6:101","nodeType":"YulIdentifier","src":"11334:6:101"},"nativeSrc":"11334:47:101","nodeType":"YulFunctionCall","src":"11334:47:101"},"nativeSrc":"11334:47:101","nodeType":"YulExpressionStatement","src":"11334:47:101"},{"nativeSrc":"11390:139:101","nodeType":"YulAssignment","src":"11390:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11524:4:101","nodeType":"YulIdentifier","src":"11524:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11398:124:101","nodeType":"YulIdentifier","src":"11398:124:101"},"nativeSrc":"11398:131:101","nodeType":"YulFunctionCall","src":"11398:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11390:4:101","nodeType":"YulIdentifier","src":"11390:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11117:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11268:9:101","nodeType":"YulTypedName","src":"11268:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11283:4:101","nodeType":"YulTypedName","src":"11283:4:101","type":""}],"src":"11117:419:101"},{"body":{"nativeSrc":"11648:116:101","nodeType":"YulBlock","src":"11648:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11670:6:101","nodeType":"YulIdentifier","src":"11670:6:101"},{"kind":"number","nativeSrc":"11678:1:101","nodeType":"YulLiteral","src":"11678:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11666:3:101","nodeType":"YulIdentifier","src":"11666:3:101"},"nativeSrc":"11666:14:101","nodeType":"YulFunctionCall","src":"11666:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"11682:34:101","nodeType":"YulLiteral","src":"11682:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"11659:6:101","nodeType":"YulIdentifier","src":"11659:6:101"},"nativeSrc":"11659:58:101","nodeType":"YulFunctionCall","src":"11659:58:101"},"nativeSrc":"11659:58:101","nodeType":"YulExpressionStatement","src":"11659:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11738:6:101","nodeType":"YulIdentifier","src":"11738:6:101"},{"kind":"number","nativeSrc":"11746:2:101","nodeType":"YulLiteral","src":"11746:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11734:3:101","nodeType":"YulIdentifier","src":"11734:3:101"},"nativeSrc":"11734:15:101","nodeType":"YulFunctionCall","src":"11734:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"11751:5:101","nodeType":"YulLiteral","src":"11751:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"11727:6:101","nodeType":"YulIdentifier","src":"11727:6:101"},"nativeSrc":"11727:30:101","nodeType":"YulFunctionCall","src":"11727:30:101"},"nativeSrc":"11727:30:101","nodeType":"YulExpressionStatement","src":"11727:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"11542:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11640:6:101","nodeType":"YulTypedName","src":"11640:6:101","type":""}],"src":"11542:222:101"},{"body":{"nativeSrc":"11916:220:101","nodeType":"YulBlock","src":"11916:220:101","statements":[{"nativeSrc":"11926:74:101","nodeType":"YulAssignment","src":"11926:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11992:3:101","nodeType":"YulIdentifier","src":"11992:3:101"},{"kind":"number","nativeSrc":"11997:2:101","nodeType":"YulLiteral","src":"11997:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11933:58:101","nodeType":"YulIdentifier","src":"11933:58:101"},"nativeSrc":"11933:67:101","nodeType":"YulFunctionCall","src":"11933:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11926:3:101","nodeType":"YulIdentifier","src":"11926:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12098:3:101","nodeType":"YulIdentifier","src":"12098:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"12009:88:101","nodeType":"YulIdentifier","src":"12009:88:101"},"nativeSrc":"12009:93:101","nodeType":"YulFunctionCall","src":"12009:93:101"},"nativeSrc":"12009:93:101","nodeType":"YulExpressionStatement","src":"12009:93:101"},{"nativeSrc":"12111:19:101","nodeType":"YulAssignment","src":"12111:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12122:3:101","nodeType":"YulIdentifier","src":"12122:3:101"},{"kind":"number","nativeSrc":"12127:2:101","nodeType":"YulLiteral","src":"12127:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12118:3:101","nodeType":"YulIdentifier","src":"12118:3:101"},"nativeSrc":"12118:12:101","nodeType":"YulFunctionCall","src":"12118:12:101"},"variableNames":[{"name":"end","nativeSrc":"12111:3:101","nodeType":"YulIdentifier","src":"12111:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"11770:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11904:3:101","nodeType":"YulTypedName","src":"11904:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11912:3:101","nodeType":"YulTypedName","src":"11912:3:101","type":""}],"src":"11770:366:101"},{"body":{"nativeSrc":"12313:248:101","nodeType":"YulBlock","src":"12313:248:101","statements":[{"nativeSrc":"12323:26:101","nodeType":"YulAssignment","src":"12323:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12335:9:101","nodeType":"YulIdentifier","src":"12335:9:101"},{"kind":"number","nativeSrc":"12346:2:101","nodeType":"YulLiteral","src":"12346:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12331:3:101","nodeType":"YulIdentifier","src":"12331:3:101"},"nativeSrc":"12331:18:101","nodeType":"YulFunctionCall","src":"12331:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12323:4:101","nodeType":"YulIdentifier","src":"12323:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12370:9:101","nodeType":"YulIdentifier","src":"12370:9:101"},{"kind":"number","nativeSrc":"12381:1:101","nodeType":"YulLiteral","src":"12381:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12366:3:101","nodeType":"YulIdentifier","src":"12366:3:101"},"nativeSrc":"12366:17:101","nodeType":"YulFunctionCall","src":"12366:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12389:4:101","nodeType":"YulIdentifier","src":"12389:4:101"},{"name":"headStart","nativeSrc":"12395:9:101","nodeType":"YulIdentifier","src":"12395:9:101"}],"functionName":{"name":"sub","nativeSrc":"12385:3:101","nodeType":"YulIdentifier","src":"12385:3:101"},"nativeSrc":"12385:20:101","nodeType":"YulFunctionCall","src":"12385:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12359:6:101","nodeType":"YulIdentifier","src":"12359:6:101"},"nativeSrc":"12359:47:101","nodeType":"YulFunctionCall","src":"12359:47:101"},"nativeSrc":"12359:47:101","nodeType":"YulExpressionStatement","src":"12359:47:101"},{"nativeSrc":"12415:139:101","nodeType":"YulAssignment","src":"12415:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12549:4:101","nodeType":"YulIdentifier","src":"12549:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12423:124:101","nodeType":"YulIdentifier","src":"12423:124:101"},"nativeSrc":"12423:131:101","nodeType":"YulFunctionCall","src":"12423:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12415:4:101","nodeType":"YulIdentifier","src":"12415:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12142:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12293:9:101","nodeType":"YulTypedName","src":"12293:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12308:4:101","nodeType":"YulTypedName","src":"12308:4:101","type":""}],"src":"12142:419:101"},{"body":{"nativeSrc":"12673:119:101","nodeType":"YulBlock","src":"12673:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12695:6:101","nodeType":"YulIdentifier","src":"12695:6:101"},{"kind":"number","nativeSrc":"12703:1:101","nodeType":"YulLiteral","src":"12703:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12691:3:101","nodeType":"YulIdentifier","src":"12691:3:101"},"nativeSrc":"12691:14:101","nodeType":"YulFunctionCall","src":"12691:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"12707:34:101","nodeType":"YulLiteral","src":"12707:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"12684:6:101","nodeType":"YulIdentifier","src":"12684:6:101"},"nativeSrc":"12684:58:101","nodeType":"YulFunctionCall","src":"12684:58:101"},"nativeSrc":"12684:58:101","nodeType":"YulExpressionStatement","src":"12684:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12763:6:101","nodeType":"YulIdentifier","src":"12763:6:101"},{"kind":"number","nativeSrc":"12771:2:101","nodeType":"YulLiteral","src":"12771:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12759:3:101","nodeType":"YulIdentifier","src":"12759:3:101"},"nativeSrc":"12759:15:101","nodeType":"YulFunctionCall","src":"12759:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"12776:8:101","nodeType":"YulLiteral","src":"12776:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"12752:6:101","nodeType":"YulIdentifier","src":"12752:6:101"},"nativeSrc":"12752:33:101","nodeType":"YulFunctionCall","src":"12752:33:101"},"nativeSrc":"12752:33:101","nodeType":"YulExpressionStatement","src":"12752:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"12567:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12665:6:101","nodeType":"YulTypedName","src":"12665:6:101","type":""}],"src":"12567:225:101"},{"body":{"nativeSrc":"12944:220:101","nodeType":"YulBlock","src":"12944:220:101","statements":[{"nativeSrc":"12954:74:101","nodeType":"YulAssignment","src":"12954:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13020:3:101","nodeType":"YulIdentifier","src":"13020:3:101"},{"kind":"number","nativeSrc":"13025:2:101","nodeType":"YulLiteral","src":"13025:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12961:58:101","nodeType":"YulIdentifier","src":"12961:58:101"},"nativeSrc":"12961:67:101","nodeType":"YulFunctionCall","src":"12961:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12954:3:101","nodeType":"YulIdentifier","src":"12954:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13126:3:101","nodeType":"YulIdentifier","src":"13126:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13037:88:101","nodeType":"YulIdentifier","src":"13037:88:101"},"nativeSrc":"13037:93:101","nodeType":"YulFunctionCall","src":"13037:93:101"},"nativeSrc":"13037:93:101","nodeType":"YulExpressionStatement","src":"13037:93:101"},{"nativeSrc":"13139:19:101","nodeType":"YulAssignment","src":"13139:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13150:3:101","nodeType":"YulIdentifier","src":"13150:3:101"},{"kind":"number","nativeSrc":"13155:2:101","nodeType":"YulLiteral","src":"13155:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13146:3:101","nodeType":"YulIdentifier","src":"13146:3:101"},"nativeSrc":"13146:12:101","nodeType":"YulFunctionCall","src":"13146:12:101"},"variableNames":[{"name":"end","nativeSrc":"13139:3:101","nodeType":"YulIdentifier","src":"13139:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"12798:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12932:3:101","nodeType":"YulTypedName","src":"12932:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12940:3:101","nodeType":"YulTypedName","src":"12940:3:101","type":""}],"src":"12798:366:101"},{"body":{"nativeSrc":"13341:248:101","nodeType":"YulBlock","src":"13341:248:101","statements":[{"nativeSrc":"13351:26:101","nodeType":"YulAssignment","src":"13351:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13363:9:101","nodeType":"YulIdentifier","src":"13363:9:101"},{"kind":"number","nativeSrc":"13374:2:101","nodeType":"YulLiteral","src":"13374:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13359:3:101","nodeType":"YulIdentifier","src":"13359:3:101"},"nativeSrc":"13359:18:101","nodeType":"YulFunctionCall","src":"13359:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13351:4:101","nodeType":"YulIdentifier","src":"13351:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13398:9:101","nodeType":"YulIdentifier","src":"13398:9:101"},{"kind":"number","nativeSrc":"13409:1:101","nodeType":"YulLiteral","src":"13409:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13394:3:101","nodeType":"YulIdentifier","src":"13394:3:101"},"nativeSrc":"13394:17:101","nodeType":"YulFunctionCall","src":"13394:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13417:4:101","nodeType":"YulIdentifier","src":"13417:4:101"},{"name":"headStart","nativeSrc":"13423:9:101","nodeType":"YulIdentifier","src":"13423:9:101"}],"functionName":{"name":"sub","nativeSrc":"13413:3:101","nodeType":"YulIdentifier","src":"13413:3:101"},"nativeSrc":"13413:20:101","nodeType":"YulFunctionCall","src":"13413:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13387:6:101","nodeType":"YulIdentifier","src":"13387:6:101"},"nativeSrc":"13387:47:101","nodeType":"YulFunctionCall","src":"13387:47:101"},"nativeSrc":"13387:47:101","nodeType":"YulExpressionStatement","src":"13387:47:101"},{"nativeSrc":"13443:139:101","nodeType":"YulAssignment","src":"13443:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13577:4:101","nodeType":"YulIdentifier","src":"13577:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13451:124:101","nodeType":"YulIdentifier","src":"13451:124:101"},"nativeSrc":"13451:131:101","nodeType":"YulFunctionCall","src":"13451:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13443:4:101","nodeType":"YulIdentifier","src":"13443:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13170:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13321:9:101","nodeType":"YulTypedName","src":"13321:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13336:4:101","nodeType":"YulTypedName","src":"13336:4:101","type":""}],"src":"13170:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea26469706673582212202b67c68371b9eedd0aaed137f1f059f11824c24045e1ec694ebc756d346d2e0664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x184 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x10C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB2 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x240 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x649 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x657 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB2 PUSH2 0x284 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0x67D JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 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 0x1D2 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x21D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x21D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x200 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x30F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x24D DUP6 DUP3 DUP6 PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0x258 DUP6 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x275 DUP4 DUP4 PUSH2 0x2E5 JUMP JUMPDEST PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2A0 DUP3 DUP7 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x758 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x258 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x3B5 SWAP1 DUP6 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3CD DUP5 DUP5 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x404 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x806 JUMP JUMPDEST PUSH2 0x404 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x882 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x8D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x923 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x4EB SWAP1 DUP7 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x404 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x50C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x523 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x545 DUP2 DUP5 PUSH2 0x503 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x565 DUP2 PUSH2 0x54C JUMP JUMPDEST DUP2 EQ PUSH2 0x56F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x55C JUMP JUMPDEST DUP1 PUSH2 0x565 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x57D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x5AD DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5C8 JUMP JUMPDEST DUP1 PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5E0 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x609 JUMPI PUSH2 0x609 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x614 DUP7 DUP7 PUSH2 0x572 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x625 DUP7 DUP3 DUP8 ADD PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x636 DUP7 DUP3 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x640 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66A JUMPI PUSH2 0x66A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x675 DUP5 DUP5 PUSH2 0x572 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x691 JUMPI PUSH2 0x691 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x69C DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x572 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6E7 JUMPI PUSH2 0x6E7 PUSH2 0x6AD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x23A JUMPI PUSH2 0x23A PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x714 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x768 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH1 0x1D DUP2 MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x8E1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B PUSH8 0xC68371B9EEDD0AAE 0xD1 CALLDATACOPY CALL CREATE MSIZE CALL XOR 0x24 0xC2 BLOCKHASH GASLIMIT 0xE1 0xEC PUSH10 0x4EBC756D346D2E066473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"1532:11312:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;3104:91::-;3186:2;3104:91;;;;;;:::i;5854:234::-;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:11;;5203:256;-1:-1:-1;;;;5203:256:11:o;5854:234::-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;287:139:101;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;:::-;1143:86;923:313;-1:-1:-1;;;923:313:101:o;1701:96::-;1738:7;-1:-1:-1;;;;;1635:54:101;;1767:24;1569:126;1803:122;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;2002:20;;2031:33;2002:20;2031:33;:::i;2159:122::-;2250:5;2232:24;2076:77;2287:139;2358:20;;2387:33;2358:20;2387:33;:::i;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;1532:11312:11;;;2563:79:101;2683:1;2708:53;2753:7;2733:9;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;3008:109::-;2982:13;;2975:21;3089;3084:3;3077:34;3008:109;;:::o;3123:210::-;3248:2;3233:18;;3261:65;3237:9;3299:6;3261:65;:::i;3339:118::-;3444:5;3426:24;2076:77;3463:222;3594:2;3579:18;;3607:71;3583:9;3651:6;3607:71;:::i;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;1532:11312:11;;;3839:79:101;3959:1;3984:53;4029:7;4009:9;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4408:112::-;4391:4;4380:16;;4491:22;4316:86;4526:214;4653:2;4638:18;;4666:67;4642:9;4706:6;4666:67;:::i;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;1532:11312:11;;;4860:79:101;4980:1;5005:53;5050:7;5030:9;5005:53;:::i;:::-;4995:63;4746:329;-1:-1:-1;;;;4746:329:101:o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;1532:11312:11;;;5212:79:101;5332:1;5357:53;5402:7;5382:9;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;5561:180::-;-1:-1:-1;;;5606:1:101;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:320;5828:1;5818:12;;5875:1;5865:12;;;5886:81;;5952:4;5944:6;5940:17;5930:27;;5886:81;6014:2;6006:6;6003:14;5983:18;5980:38;5977:84;;6033:18;;:::i;:::-;5798:269;5747:320;;;:::o;6073:180::-;-1:-1:-1;;;6118:1:101;6111:88;6218:4;6215:1;6208:15;6242:4;6239:1;6232:15;6259:191;6388:9;;;6410:10;;;6407:36;;;6423:18;;:::i;6686:366::-;6913:2;218:19;;6828:3;270:4;261:14;;6596:34;6573:58;;-1:-1:-1;;;6660:2:101;6648:15;;6641:32;6842:74;-1:-1:-1;6925:93:101;-1:-1:-1;7043:2:101;7034:12;;6686:366::o;7058:419::-;7262:2;7275:47;;;7247:18;;7339:131;7247:18;7339:131;:::i;7712:366::-;7939:2;218:19;;7854:3;270:4;261:14;;7623:34;7600:58;;-1:-1:-1;;;7687:2:101;7675:15;;7668:31;7868:74;-1:-1:-1;7951:93:101;7483:223;8084:419;8288:2;8301:47;;;8273:18;;8365:131;8273:18;8365:131;:::i;8736:366::-;8963:2;218:19;;8878:3;270:4;261:14;;8649:34;8626:58;;-1:-1:-1;;;8713:2:101;8701:15;;8694:29;8892:74;-1:-1:-1;8975:93:101;8509:221;9108:419;9312:2;9325:47;;;9297:18;;9389:131;9297:18;9389:131;:::i;10090:419::-;10294:2;10307:47;;;10279:18;;10371:131;10279:18;9945:2;218:19;;9673:31;270:4;261:14;;9650:55;10066:12;;;9718:366;10745;10972:2;218:19;;10887:3;270:4;261:14;;10655:34;10632:58;;-1:-1:-1;;;10719:2:101;10707:15;;10700:32;10901:74;-1:-1:-1;10984:93:101;10515:224;11117:419;11321:2;11334:47;;;11306:18;;11398:131;11306:18;11398:131;:::i;11770:366::-;11997:2;218:19;;11912:3;270:4;261:14;;11682:34;11659:58;;-1:-1:-1;;;11746:2:101;11734:15;;11727:30;11926:74;-1:-1:-1;12009:93:101;11542:222;12142:419;12346:2;12359:47;;;12331:18;;12423:131;12331:18;12423:131;:::i;12798:366::-;13025:2;218:19;;12940:3;270:4;261:14;;12707:34;12684:58;;-1:-1:-1;;;12771:2:101;12759:15;;12752:33;12954:74;-1:-1:-1;13037:93:101;12567:225;13170:419;13374:2;13387:47;;;13359:18;;13451:131;13359:18;13451:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"481800","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"351","decreaseAllowance(address,uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","symbol()":"infinite","totalSupply()":"2402","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite"},"internal":{"_afterTokenTransfer(address,address,uint256)":"infinite","_approve(address,address,uint256)":"infinite","_beforeTokenTransfer(address,address,uint256)":"infinite","_burn(address,uint256)":"infinite","_mint(address,uint256)":"infinite","_spendAllowance(address,address,uint256)":"infinite","_transfer(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"AccessControlledV8":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"AccessControlledV8","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"AccessControlledV8\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"}},\"notice\":\"This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13) to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":\"AccessControlledV8\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1940,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)2125"},{"astId":1945,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)2125":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"}},"notice":"This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13) to integrate access controlled mechanism. It provides initialise methods and verifying access methods.","version":1}}},"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol":{"IAccessControlManagerV8":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToPermit","type":"address"}],"name":"giveCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"hasPermission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"isAllowedToCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToRevoke","type":"address"}],"name":"revokeCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"title":"IAccessControlManagerV8","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","giveCallPermission(address,string,address)":"584f6b60","grantRole(bytes32,address)":"2f2ff15d","hasPermission(address,address,string)":"82bfd0f0","hasRole(bytes32,address)":"91d14854","isAllowedToCall(address,string)":"18c5e8ab","renounceRole(bytes32,address)":"36568abe","revokeCallPermission(address,string,address)":"545f7a32","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToPermit\",\"type\":\"address\"}],\"name\":\"giveCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"hasPermission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"isAllowedToCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToRevoke\",\"type\":\"address\"}],\"name\":\"revokeCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"title\":\"IAccessControlManagerV8\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface implemented by the `AccessControlManagerV8` contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":\"IAccessControlManagerV8\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Interface implemented by the `AccessControlManagerV8` contract.","version":1}}},"contracts/ReferenceOracle.sol":{"ReferenceOracle":{"abi":[{"inputs":[{"internalType":"contract ResilientOracleInterface","name":"resilientOracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"oracle","type":"address"}],"name":"OracleConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"PRICES_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct ReferenceOracle.ExternalPrice[]","name":"externalPrices","type":"tuple[]"}],"name":"getPriceAssuming","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oracles","outputs":[{"internalType":"contract OracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"contract OracleInterface","name":"oracle","type":"address"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:error":"ZeroAddressNotAllowed is thrown if resilient oracle address is null","custom:oz-upgrades-unsafe-allow":"constructor","params":{"resilientOracle":"Resilient oracle address"}},"getPrice(address)":{"params":{"asset":"asset address"},"returns":{"_0":"USD price in scaled decimal places"}},"getPriceAssuming(address,(address,uint256)[])":{"params":{"asset":"asset address","externalPrices":"an array of prices for other assets"},"returns":{"_0":"USD price in scaled decimal places"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setOracle(address,address)":{"custom:access":"Only owner","custom:error":"ZeroAddressNotAllowed is thrown if asset address is null","custom:event":"Emits OracleConfigured event","details":"The production resilientOracle will be used if zero address is passed","params":{"asset":"Asset address","oracle":"Oracle address"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"RESILIENT_ORACLE":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"ReferenceOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_2249":{"entryPoint":null,"id":2249,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_492":{"entryPoint":124,"id":492,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":82,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_contract$_ResilientOracleInterface_$3686_fromMemory":{"entryPoint":303,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_ResilientOracleInterface_$3686_fromMemory":{"entryPoint":314,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":352,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":427,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":256,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_ResilientOracleInterface_$3686":{"entryPoint":274,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_ResilientOracleInterface_$3686":{"entryPoint":284,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3166:101","nodeType":"YulBlock","src":"0:3166:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"646:51:101","nodeType":"YulBlock","src":"646:51:101","statements":[{"nativeSrc":"656:35:101","nodeType":"YulAssignment","src":"656:35:101","value":{"arguments":[{"name":"value","nativeSrc":"685:5:101","nodeType":"YulIdentifier","src":"685:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"667:17:101","nodeType":"YulIdentifier","src":"667:17:101"},"nativeSrc":"667:24:101","nodeType":"YulFunctionCall","src":"667:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"656:7:101","nodeType":"YulIdentifier","src":"656:7:101"}]}]},"name":"cleanup_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"568:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"628:5:101","nodeType":"YulTypedName","src":"628:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"638:7:101","nodeType":"YulTypedName","src":"638:7:101","type":""}],"src":"568:129:101"},{"body":{"nativeSrc":"779:112:101","nodeType":"YulBlock","src":"779:112:101","statements":[{"body":{"nativeSrc":"869:16:101","nodeType":"YulBlock","src":"869:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"878:1:101","nodeType":"YulLiteral","src":"878:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"881:1:101","nodeType":"YulLiteral","src":"881:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"871:6:101","nodeType":"YulIdentifier","src":"871:6:101"},"nativeSrc":"871:12:101","nodeType":"YulFunctionCall","src":"871:12:101"},"nativeSrc":"871:12:101","nodeType":"YulExpressionStatement","src":"871:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"802:5:101","nodeType":"YulIdentifier","src":"802:5:101"},{"arguments":[{"name":"value","nativeSrc":"860:5:101","nodeType":"YulIdentifier","src":"860:5:101"}],"functionName":{"name":"cleanup_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"809:50:101","nodeType":"YulIdentifier","src":"809:50:101"},"nativeSrc":"809:57:101","nodeType":"YulFunctionCall","src":"809:57:101"}],"functionName":{"name":"eq","nativeSrc":"799:2:101","nodeType":"YulIdentifier","src":"799:2:101"},"nativeSrc":"799:68:101","nodeType":"YulFunctionCall","src":"799:68:101"}],"functionName":{"name":"iszero","nativeSrc":"792:6:101","nodeType":"YulIdentifier","src":"792:6:101"},"nativeSrc":"792:76:101","nodeType":"YulFunctionCall","src":"792:76:101"},"nativeSrc":"789:96:101","nodeType":"YulIf","src":"789:96:101"}]},"name":"validator_revert_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"703:188:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"772:5:101","nodeType":"YulTypedName","src":"772:5:101","type":""}],"src":"703:188:101"},{"body":{"nativeSrc":"993:113:101","nodeType":"YulBlock","src":"993:113:101","statements":[{"nativeSrc":"1003:22:101","nodeType":"YulAssignment","src":"1003:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1018:6:101","nodeType":"YulIdentifier","src":"1018:6:101"}],"functionName":{"name":"mload","nativeSrc":"1012:5:101","nodeType":"YulIdentifier","src":"1012:5:101"},"nativeSrc":"1012:13:101","nodeType":"YulFunctionCall","src":"1012:13:101"},"variableNames":[{"name":"value","nativeSrc":"1003:5:101","nodeType":"YulIdentifier","src":"1003:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1094:5:101","nodeType":"YulIdentifier","src":"1094:5:101"}],"functionName":{"name":"validator_revert_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"1034:59:101","nodeType":"YulIdentifier","src":"1034:59:101"},"nativeSrc":"1034:66:101","nodeType":"YulFunctionCall","src":"1034:66:101"},"nativeSrc":"1034:66:101","nodeType":"YulExpressionStatement","src":"1034:66:101"}]},"name":"abi_decode_t_contract$_ResilientOracleInterface_$3686_fromMemory","nativeSrc":"897:209:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"971:6:101","nodeType":"YulTypedName","src":"971:6:101","type":""},{"name":"end","nativeSrc":"979:3:101","nodeType":"YulTypedName","src":"979:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"987:5:101","nodeType":"YulTypedName","src":"987:5:101","type":""}],"src":"897:209:101"},{"body":{"nativeSrc":"1222:307:101","nodeType":"YulBlock","src":"1222:307:101","statements":[{"body":{"nativeSrc":"1268:83:101","nodeType":"YulBlock","src":"1268:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1270:77:101","nodeType":"YulIdentifier","src":"1270:77:101"},"nativeSrc":"1270:79:101","nodeType":"YulFunctionCall","src":"1270:79:101"},"nativeSrc":"1270:79:101","nodeType":"YulExpressionStatement","src":"1270:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1243:7:101","nodeType":"YulIdentifier","src":"1243:7:101"},{"name":"headStart","nativeSrc":"1252:9:101","nodeType":"YulIdentifier","src":"1252:9:101"}],"functionName":{"name":"sub","nativeSrc":"1239:3:101","nodeType":"YulIdentifier","src":"1239:3:101"},"nativeSrc":"1239:23:101","nodeType":"YulFunctionCall","src":"1239:23:101"},{"kind":"number","nativeSrc":"1264:2:101","nodeType":"YulLiteral","src":"1264:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1235:3:101","nodeType":"YulIdentifier","src":"1235:3:101"},"nativeSrc":"1235:32:101","nodeType":"YulFunctionCall","src":"1235:32:101"},"nativeSrc":"1232:119:101","nodeType":"YulIf","src":"1232:119:101"},{"nativeSrc":"1361:161:101","nodeType":"YulBlock","src":"1361:161:101","statements":[{"nativeSrc":"1376:15:101","nodeType":"YulVariableDeclaration","src":"1376:15:101","value":{"kind":"number","nativeSrc":"1390:1:101","nodeType":"YulLiteral","src":"1390:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1380:6:101","nodeType":"YulTypedName","src":"1380:6:101","type":""}]},{"nativeSrc":"1405:107:101","nodeType":"YulAssignment","src":"1405:107:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1484:9:101","nodeType":"YulIdentifier","src":"1484:9:101"},{"name":"offset","nativeSrc":"1495:6:101","nodeType":"YulIdentifier","src":"1495:6:101"}],"functionName":{"name":"add","nativeSrc":"1480:3:101","nodeType":"YulIdentifier","src":"1480:3:101"},"nativeSrc":"1480:22:101","nodeType":"YulFunctionCall","src":"1480:22:101"},{"name":"dataEnd","nativeSrc":"1504:7:101","nodeType":"YulIdentifier","src":"1504:7:101"}],"functionName":{"name":"abi_decode_t_contract$_ResilientOracleInterface_$3686_fromMemory","nativeSrc":"1415:64:101","nodeType":"YulIdentifier","src":"1415:64:101"},"nativeSrc":"1415:97:101","nodeType":"YulFunctionCall","src":"1415:97:101"},"variableNames":[{"name":"value0","nativeSrc":"1405:6:101","nodeType":"YulIdentifier","src":"1405:6:101"}]}]}]},"name":"abi_decode_tuple_t_contract$_ResilientOracleInterface_$3686_fromMemory","nativeSrc":"1112:417:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1192:9:101","nodeType":"YulTypedName","src":"1192:9:101","type":""},{"name":"dataEnd","nativeSrc":"1203:7:101","nodeType":"YulTypedName","src":"1203:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulTypedName","src":"1215:6:101","type":""}],"src":"1112:417:101"},{"body":{"nativeSrc":"1631:73:101","nodeType":"YulBlock","src":"1631:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1648:3:101","nodeType":"YulIdentifier","src":"1648:3:101"},{"name":"length","nativeSrc":"1653:6:101","nodeType":"YulIdentifier","src":"1653:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1641:6:101","nodeType":"YulIdentifier","src":"1641:6:101"},"nativeSrc":"1641:19:101","nodeType":"YulFunctionCall","src":"1641:19:101"},"nativeSrc":"1641:19:101","nodeType":"YulExpressionStatement","src":"1641:19:101"},{"nativeSrc":"1669:29:101","nodeType":"YulAssignment","src":"1669:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"1688:3:101","nodeType":"YulIdentifier","src":"1688:3:101"},{"kind":"number","nativeSrc":"1693:4:101","nodeType":"YulLiteral","src":"1693:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1684:3:101","nodeType":"YulIdentifier","src":"1684:3:101"},"nativeSrc":"1684:14:101","nodeType":"YulFunctionCall","src":"1684:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"1669:11:101","nodeType":"YulIdentifier","src":"1669:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1535:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1603:3:101","nodeType":"YulTypedName","src":"1603:3:101","type":""},{"name":"length","nativeSrc":"1608:6:101","nodeType":"YulTypedName","src":"1608:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1619:11:101","nodeType":"YulTypedName","src":"1619:11:101","type":""}],"src":"1535:169:101"},{"body":{"nativeSrc":"1816:120:101","nodeType":"YulBlock","src":"1816:120:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1838:6:101","nodeType":"YulIdentifier","src":"1838:6:101"},{"kind":"number","nativeSrc":"1846:1:101","nodeType":"YulLiteral","src":"1846:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1834:3:101","nodeType":"YulIdentifier","src":"1834:3:101"},"nativeSrc":"1834:14:101","nodeType":"YulFunctionCall","src":"1834:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1850:34:101","nodeType":"YulLiteral","src":"1850:34:101","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1827:6:101","nodeType":"YulIdentifier","src":"1827:6:101"},"nativeSrc":"1827:58:101","nodeType":"YulFunctionCall","src":"1827:58:101"},"nativeSrc":"1827:58:101","nodeType":"YulExpressionStatement","src":"1827:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1906:6:101","nodeType":"YulIdentifier","src":"1906:6:101"},{"kind":"number","nativeSrc":"1914:2:101","nodeType":"YulLiteral","src":"1914:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1902:3:101","nodeType":"YulIdentifier","src":"1902:3:101"},"nativeSrc":"1902:15:101","nodeType":"YulFunctionCall","src":"1902:15:101"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1919:9:101","nodeType":"YulLiteral","src":"1919:9:101","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1895:6:101","nodeType":"YulIdentifier","src":"1895:6:101"},"nativeSrc":"1895:34:101","nodeType":"YulFunctionCall","src":"1895:34:101"},"nativeSrc":"1895:34:101","nodeType":"YulExpressionStatement","src":"1895:34:101"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"1710:226:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1808:6:101","nodeType":"YulTypedName","src":"1808:6:101","type":""}],"src":"1710:226:101"},{"body":{"nativeSrc":"2088:220:101","nodeType":"YulBlock","src":"2088:220:101","statements":[{"nativeSrc":"2098:74:101","nodeType":"YulAssignment","src":"2098:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"2164:3:101","nodeType":"YulIdentifier","src":"2164:3:101"},{"kind":"number","nativeSrc":"2169:2:101","nodeType":"YulLiteral","src":"2169:2:101","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2105:58:101","nodeType":"YulIdentifier","src":"2105:58:101"},"nativeSrc":"2105:67:101","nodeType":"YulFunctionCall","src":"2105:67:101"},"variableNames":[{"name":"pos","nativeSrc":"2098:3:101","nodeType":"YulIdentifier","src":"2098:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2270:3:101","nodeType":"YulIdentifier","src":"2270:3:101"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"2181:88:101","nodeType":"YulIdentifier","src":"2181:88:101"},"nativeSrc":"2181:93:101","nodeType":"YulFunctionCall","src":"2181:93:101"},"nativeSrc":"2181:93:101","nodeType":"YulExpressionStatement","src":"2181:93:101"},{"nativeSrc":"2283:19:101","nodeType":"YulAssignment","src":"2283:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"2294:3:101","nodeType":"YulIdentifier","src":"2294:3:101"},{"kind":"number","nativeSrc":"2299:2:101","nodeType":"YulLiteral","src":"2299:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2290:3:101","nodeType":"YulIdentifier","src":"2290:3:101"},"nativeSrc":"2290:12:101","nodeType":"YulFunctionCall","src":"2290:12:101"},"variableNames":[{"name":"end","nativeSrc":"2283:3:101","nodeType":"YulIdentifier","src":"2283:3:101"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"1942:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2076:3:101","nodeType":"YulTypedName","src":"2076:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2084:3:101","nodeType":"YulTypedName","src":"2084:3:101","type":""}],"src":"1942:366:101"},{"body":{"nativeSrc":"2485:248:101","nodeType":"YulBlock","src":"2485:248:101","statements":[{"nativeSrc":"2495:26:101","nodeType":"YulAssignment","src":"2495:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2507:9:101","nodeType":"YulIdentifier","src":"2507:9:101"},{"kind":"number","nativeSrc":"2518:2:101","nodeType":"YulLiteral","src":"2518:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2503:3:101","nodeType":"YulIdentifier","src":"2503:3:101"},"nativeSrc":"2503:18:101","nodeType":"YulFunctionCall","src":"2503:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2495:4:101","nodeType":"YulIdentifier","src":"2495:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2542:9:101","nodeType":"YulIdentifier","src":"2542:9:101"},{"kind":"number","nativeSrc":"2553:1:101","nodeType":"YulLiteral","src":"2553:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2538:3:101","nodeType":"YulIdentifier","src":"2538:3:101"},"nativeSrc":"2538:17:101","nodeType":"YulFunctionCall","src":"2538:17:101"},{"arguments":[{"name":"tail","nativeSrc":"2561:4:101","nodeType":"YulIdentifier","src":"2561:4:101"},{"name":"headStart","nativeSrc":"2567:9:101","nodeType":"YulIdentifier","src":"2567:9:101"}],"functionName":{"name":"sub","nativeSrc":"2557:3:101","nodeType":"YulIdentifier","src":"2557:3:101"},"nativeSrc":"2557:20:101","nodeType":"YulFunctionCall","src":"2557:20:101"}],"functionName":{"name":"mstore","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},"nativeSrc":"2531:47:101","nodeType":"YulFunctionCall","src":"2531:47:101"},"nativeSrc":"2531:47:101","nodeType":"YulExpressionStatement","src":"2531:47:101"},{"nativeSrc":"2587:139:101","nodeType":"YulAssignment","src":"2587:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"2721:4:101","nodeType":"YulIdentifier","src":"2721:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"2595:124:101","nodeType":"YulIdentifier","src":"2595:124:101"},"nativeSrc":"2595:131:101","nodeType":"YulFunctionCall","src":"2595:131:101"},"variableNames":[{"name":"tail","nativeSrc":"2587:4:101","nodeType":"YulIdentifier","src":"2587:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2314:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2465:9:101","nodeType":"YulTypedName","src":"2465:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2480:4:101","nodeType":"YulTypedName","src":"2480:4:101","type":""}],"src":"2314:419:101"},{"body":{"nativeSrc":"2782:43:101","nodeType":"YulBlock","src":"2782:43:101","statements":[{"nativeSrc":"2792:27:101","nodeType":"YulAssignment","src":"2792:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2807:5:101","nodeType":"YulIdentifier","src":"2807:5:101"},{"kind":"number","nativeSrc":"2814:4:101","nodeType":"YulLiteral","src":"2814:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2803:3:101","nodeType":"YulIdentifier","src":"2803:3:101"},"nativeSrc":"2803:16:101","nodeType":"YulFunctionCall","src":"2803:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2792:7:101","nodeType":"YulIdentifier","src":"2792:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2739:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2764:5:101","nodeType":"YulTypedName","src":"2764:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2774:7:101","nodeType":"YulTypedName","src":"2774:7:101","type":""}],"src":"2739:86:101"},{"body":{"nativeSrc":"2892:51:101","nodeType":"YulBlock","src":"2892:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2909:3:101","nodeType":"YulIdentifier","src":"2909:3:101"},{"arguments":[{"name":"value","nativeSrc":"2930:5:101","nodeType":"YulIdentifier","src":"2930:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2914:15:101","nodeType":"YulIdentifier","src":"2914:15:101"},"nativeSrc":"2914:22:101","nodeType":"YulFunctionCall","src":"2914:22:101"}],"functionName":{"name":"mstore","nativeSrc":"2902:6:101","nodeType":"YulIdentifier","src":"2902:6:101"},"nativeSrc":"2902:35:101","nodeType":"YulFunctionCall","src":"2902:35:101"},"nativeSrc":"2902:35:101","nodeType":"YulExpressionStatement","src":"2902:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"2831:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2880:5:101","nodeType":"YulTypedName","src":"2880:5:101","type":""},{"name":"pos","nativeSrc":"2887:3:101","nodeType":"YulTypedName","src":"2887:3:101","type":""}],"src":"2831:112:101"},{"body":{"nativeSrc":"3043:120:101","nodeType":"YulBlock","src":"3043:120:101","statements":[{"nativeSrc":"3053:26:101","nodeType":"YulAssignment","src":"3053:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3065:9:101","nodeType":"YulIdentifier","src":"3065:9:101"},{"kind":"number","nativeSrc":"3076:2:101","nodeType":"YulLiteral","src":"3076:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3061:3:101","nodeType":"YulIdentifier","src":"3061:3:101"},"nativeSrc":"3061:18:101","nodeType":"YulFunctionCall","src":"3061:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3053:4:101","nodeType":"YulIdentifier","src":"3053:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3129:6:101","nodeType":"YulIdentifier","src":"3129:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3142:9:101","nodeType":"YulIdentifier","src":"3142:9:101"},{"kind":"number","nativeSrc":"3153:1:101","nodeType":"YulLiteral","src":"3153:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3138:3:101","nodeType":"YulIdentifier","src":"3138:3:101"},"nativeSrc":"3138:17:101","nodeType":"YulFunctionCall","src":"3138:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"3089:39:101","nodeType":"YulIdentifier","src":"3089:39:101"},"nativeSrc":"3089:67:101","nodeType":"YulFunctionCall","src":"3089:67:101"},"nativeSrc":"3089:67:101","nodeType":"YulExpressionStatement","src":"3089:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"2949:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3015:9:101","nodeType":"YulTypedName","src":"3015:9:101","type":""},{"name":"value0","nativeSrc":"3027:6:101","nodeType":"YulTypedName","src":"3027:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3038:4:101","nodeType":"YulTypedName","src":"3038:4:101","type":""}],"src":"2949:214:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_contract$_ResilientOracleInterface_$3686(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_ResilientOracleInterface_$3686(value) {\n        if iszero(eq(value, cleanup_t_contract$_ResilientOracleInterface_$3686(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_ResilientOracleInterface_$3686_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_contract$_ResilientOracleInterface_$3686(value)\n    }\n\n    function abi_decode_tuple_t_contract$_ResilientOracleInterface_$3686_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_ResilientOracleInterface_$3686_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b50604051610dd3380380610dd383398101604081905261002e9161013a565b61003781610052565b6001600160a01b03811660805261004c61007c565b506101ba565b6001600160a01b038116610079576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f54610100900460ff16156100ac5760405162461bcd60e51b81526004016100a390610160565b60405180910390fd5b5f5460ff908116146100fe575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498916100f5916101ab565b60405180910390a15b565b5f6001600160a01b0382165b92915050565b5f61010c82610100565b61012581610112565b8114610079575f80fd5b805161010c8161011c565b5f6020828403121561014d5761014d5f80fd5b5f610158848461012f565b949350505050565b6020808252810161010c81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff821681526020810161010c565b608051610bfa6101d95f395f8181610145015261056e0152610bfa5ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638129fc1c1161006e5780638129fc1c1461011e5780638da5cb5b14610126578063a4edcd4c14610140578063addd509914610174578063e30c39781461019c578063f2fde38b146101ad575f80fd5b8063310770b5146100b557806341976e09146100de578063539b18a1146100f15780635c38eb3a146100f9578063715018a61461010e57806379ba509714610116575b5f80fd5b6100c86100c336600461089b565b6101c0565b6040516100d591906108f7565b60405180910390f35b6100c86100ec366004610905565b61022d565b6100c8610237565b61010c610107366004610941565b61025f565b005b61010c6102c6565b61010c6102d9565b61010c61031a565b6033546001600160a01b03165b6040516100d5919061097a565b6101677f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d5919061099b565b610167610182366004610905565b60976020525f90815260409020546001600160a01b031681565b6065546001600160a01b0316610133565b61010c6101bb366004610905565b6103e2565b80515f90815b81811015610219576102118482815181106101e3576101e36109a9565b60200260200101515f0151858381518110610200576102006109a9565b602002602001015160200151610453565b6001016101c6565b50610223846104ab565b9150505b92915050565b5f610227826104ab565b60405160200161024690610a08565b6040516020818303038152906040528051906020012081565b6102676105a3565b610270826105cd565b6001600160a01b038281165f8181526097602052604080822080546001600160a01b0319169486169485179055517fe625c7b7d4661988d3a1140f3225faefa7b57c73524adb62fd77dbc945a6db829190a35050565b6102ce6105a3565b6102d75f6105f4565b565b60655433906001600160a01b0316811461030e5760405162461bcd60e51b815260040161030590610a5d565b60405180910390fd5b610317816105f4565b50565b5f54610100900460ff161580801561033857505f54600160ff909116105b806103515750303b15801561035157505f5460ff166001145b61036d5760405162461bcd60e51b815260040161030590610ab7565b5f805460ff19166001179055801561038e575f805461ff0019166101001790555b61039661060d565b8015610317575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906103d790600190610ada565b60405180910390a150565b6103ea6105a3565b606580546001600160a01b0383166001600160a01b0319909116811790915561041b6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f60405160200161046390610a08565b604051602081830303815290604052805190602001208360405160200161048b929190610ae8565b60405160208183030381529060405280519060200120905081815d505050565b5f806104b68361063b565b905080156104c45792915050565b6001600160a01b038084165f90815260976020526040902054168015610557576040516341976e0960e01b81526001600160a01b038216906341976e099061051090879060040161097a565b602060405180830381865afa15801561052b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054f9190610b15565b949350505050565b6040516341976e0960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906341976e099061051090879060040161097a565b6033546001600160a01b031633146102d75760405162461bcd60e51b815260040161030590610b33565b6001600160a01b038116610317576040516342bcdf7f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561031781610694565b5f54610100900460ff166106335760405162461bcd60e51b815260040161030590610bb4565b6102d76106e5565b5f8060405160200161064c90610a08565b6040516020818303038152906040528051906020012083604051602001610674929190610ae8565b60408051601f1981840301815291905280516020909101205c9392505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff1661070b5760405162461bcd60e51b815260040161030590610bb4565b6102d7336105f4565b5f6001600160a01b038216610227565b61072d81610714565b8114610317575f80fd5b803561022781610724565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561077c5761077c610742565b6040525050565b5f61078d60405190565b90506107998282610756565b919050565b5f67ffffffffffffffff8211156107b7576107b7610742565b5060209081020190565b8061072d565b8035610227816107c1565b5f604082840312156107e5576107e55f80fd5b6107ef6040610783565b90505f6107fc8484610737565b825250602061080d848483016107c7565b60208301525092915050565b5f61082b6108268461079e565b610783565b83815290506020810160408402830185811115610849576108495f80fd5b835b8181101561086f578061085e88826107d2565b84525060209092019160400161084b565b5050509392505050565b5f82601f83011261088b5761088b5f80fd5b8135610223848260208601610819565b5f80604083850312156108af576108af5f80fd5b5f6108ba8585610737565b925050602083013567ffffffffffffffff8111156108d9576108d95f80fd5b6108e585828601610879565b9150509250929050565b805b82525050565b6020810161022782846108ef565b5f60208284031215610918576109185f80fd5b5f6102238484610737565b5f61022782610714565b61072d81610923565b80356102278161092d565b5f8060408385031215610955576109555f80fd5b5f6109608585610737565b92505060206108e585828601610936565b6108f181610714565b602081016102278284610971565b5f61022782610923565b6108f181610988565b602081016102278284610992565b634e487b7160e01b5f52603260045260245ffd5b602c81525f602082017f76656e75732d70726f746f636f6c2f6f7261636c652f5265666572656e63654f81526b7261636c652f70726963657360a01b602082015291505b5060400190565b60208082528101610227816109bd565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150610a01565b6020808252810161022781610a18565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610a01565b6020808252810161022781610a6d565b5f60ff8216610227565b6108f181610ac7565b602081016102278284610ad1565b60408101610af682856108ef565b610b036020830184610971565b9392505050565b8051610227816107c1565b5f60208284031215610b2857610b285f80fd5b5f6102238484610b0a565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610227565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610a01565b6020808252810161022781610b6d56fea2646970667358221220179f8fdf6f4485927c403f147287801a87787a13179f6a259a5940d6c839054e64736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xDD3 CODESIZE SUB DUP1 PUSH2 0xDD3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x13A JUMP JUMPDEST PUSH2 0x37 DUP2 PUSH2 0x52 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x80 MSTORE PUSH2 0x4C PUSH2 0x7C JUMP JUMPDEST POP PUSH2 0x1BA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x79 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3 SWAP1 PUSH2 0x160 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0xFE JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0xF5 SWAP2 PUSH2 0x1AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10C DUP3 PUSH2 0x100 JUMP JUMPDEST PUSH2 0x125 DUP2 PUSH2 0x112 JUMP JUMPDEST DUP2 EQ PUSH2 0x79 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x10C DUP2 PUSH2 0x11C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D JUMPI PUSH2 0x14D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x158 DUP5 DUP5 PUSH2 0x12F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10C DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0x10C JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xBFA PUSH2 0x1D9 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x145 ADD MSTORE PUSH2 0x56E ADD MSTORE PUSH2 0xBFA PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8129FC1C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0xADDD5099 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1AD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x310770B5 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x539B18A1 EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x5C38EB3A EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x116 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC8 PUSH2 0xEC CALLDATASIZE PUSH1 0x4 PUSH2 0x905 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x237 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10C PUSH2 0x2C6 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x31A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x97A JUMP JUMPDEST PUSH2 0x167 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x99B JUMP JUMPDEST PUSH2 0x167 PUSH2 0x182 CALLDATASIZE PUSH1 0x4 PUSH2 0x905 JUMP JUMPDEST PUSH1 0x97 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x133 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x905 JUMP JUMPDEST PUSH2 0x3E2 JUMP JUMPDEST DUP1 MLOAD PUSH0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x219 JUMPI PUSH2 0x211 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1E3 JUMPI PUSH2 0x1E3 PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x200 JUMPI PUSH2 0x200 PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1C6 JUMP JUMPDEST POP PUSH2 0x223 DUP5 PUSH2 0x4AB JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x227 DUP3 PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x246 SWAP1 PUSH2 0xA08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 JUMP JUMPDEST PUSH2 0x267 PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0x270 DUP3 PUSH2 0x5CD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x97 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 DUP7 AND SWAP5 DUP6 OR SWAP1 SSTORE MLOAD PUSH32 0xE625C7B7D4661988D3A1140F3225FAEFA7B57C73524ADB62FD77DBC945A6DB82 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x2CE PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0x2D7 PUSH0 PUSH2 0x5F4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x30E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xA5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x5F4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x338 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x351 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x351 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x36D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x396 PUSH2 0x60D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x317 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x3D7 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xADA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x3EA PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x41B PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x463 SWAP1 PUSH2 0xA08 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 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP2 DUP2 TSTORE POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4B6 DUP4 PUSH2 0x63B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x4C4 JUMPI SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x97 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 ISZERO PUSH2 0x557 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x510 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x97A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x52B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x54F SWAP2 SWAP1 PUSH2 0xB15 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x510 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x97A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x317 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x317 DUP2 PUSH2 0x694 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x633 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0x2D7 PUSH2 0x6E5 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x64C SWAP1 PUSH2 0xA08 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 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x674 SWAP3 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 TLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x70B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0x2D7 CALLER PUSH2 0x5F4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x227 JUMP JUMPDEST PUSH2 0x72D DUP2 PUSH2 0x714 JUMP JUMPDEST DUP2 EQ PUSH2 0x317 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x227 DUP2 PUSH2 0x724 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x77C JUMPI PUSH2 0x77C PUSH2 0x742 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x78D PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x799 DUP3 DUP3 PUSH2 0x756 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0x742 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x72D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x227 DUP2 PUSH2 0x7C1 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7E5 JUMPI PUSH2 0x7E5 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x7EF PUSH1 0x40 PUSH2 0x783 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x7FC DUP5 DUP5 PUSH2 0x737 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x80D DUP5 DUP5 DUP4 ADD PUSH2 0x7C7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x82B PUSH2 0x826 DUP5 PUSH2 0x79E JUMP JUMPDEST PUSH2 0x783 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x849 JUMPI PUSH2 0x849 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x86F JUMPI DUP1 PUSH2 0x85E DUP9 DUP3 PUSH2 0x7D2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x84B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x88B JUMPI PUSH2 0x88B PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x223 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x819 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8BA DUP6 DUP6 PUSH2 0x737 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8D9 JUMPI PUSH2 0x8D9 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x8E5 DUP6 DUP3 DUP7 ADD PUSH2 0x879 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0x8EF JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x918 JUMPI PUSH2 0x918 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x223 DUP5 DUP5 PUSH2 0x737 JUMP JUMPDEST PUSH0 PUSH2 0x227 DUP3 PUSH2 0x714 JUMP JUMPDEST PUSH2 0x72D DUP2 PUSH2 0x923 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x227 DUP2 PUSH2 0x92D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x955 JUMPI PUSH2 0x955 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x960 DUP6 DUP6 PUSH2 0x737 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8E5 DUP6 DUP3 DUP7 ADD PUSH2 0x936 JUMP JUMPDEST PUSH2 0x8F1 DUP2 PUSH2 0x714 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0x971 JUMP JUMPDEST PUSH0 PUSH2 0x227 DUP3 PUSH2 0x923 JUMP JUMPDEST PUSH2 0x8F1 DUP2 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0x992 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x76656E75732D70726F746F636F6C2F6F7261636C652F5265666572656E63654F DUP2 MSTORE PUSH12 0x7261636C652F707269636573 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0x9BD JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0xA18 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0xA6D JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x227 JUMP JUMPDEST PUSH2 0x8F1 DUP2 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0xAD1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xAF6 DUP3 DUP6 PUSH2 0x8EF JUMP JUMPDEST PUSH2 0xB03 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x971 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x227 DUP2 PUSH2 0x7C1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB28 JUMPI PUSH2 0xB28 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x223 DUP5 DUP5 PUSH2 0xB0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x227 JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0xB6D JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR SWAP16 DUP16 0xDF PUSH16 0x4485927C403F147287801A87787A1317 SWAP16 PUSH11 0x259A5940D6C839054E6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"733:4135:19:-:0;;;2036:193;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2100:46;2129:15;2100:20;:46::i;:::-;-1:-1:-1;;;;;2156:34:19;;;;2200:22;:20;:22::i;:::-;2036:193;733:4135;;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;5939:280:5:-;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:5;;;;;;;:::i;:::-;;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:5;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:129::-;638:7;667:24;685:5;667:24;:::i;703:188::-;809:57;860:5;809:57;:::i;:::-;802:5;799:68;789:96;;881:1;878;871:12;897:209;1012:13;;1034:66;1012:13;1034:66;:::i;1112:417::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:119;;;1270:79;197:1;194;187:12;1270:79;1390:1;1415:97;1504:7;1484:9;1415:97;:::i;:::-;1405:107;1112:417;-1:-1:-1;;;;1112:417:101:o;2314:419::-;2518:2;2531:47;;;2503:18;;2595:131;2503:18;2169:2;1641:19;;1850:34;1693:4;1684:14;;1827:58;-1:-1:-1;;;1902:15:101;;;1895:34;2290:12;;;1942:366;2949:214;2814:4;2803:16;;2902:35;;3076:2;3061:18;;3089:67;2831:112;2949:214;733:4135:19;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@PRICES_SLOT_2210":{"entryPoint":567,"id":2210,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_2214":{"entryPoint":null,"id":2214,"parameterSlots":0,"returnSlots":0},"@__Ownable2Step_init_129":{"entryPoint":1549,"id":129,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":1765,"id":248,"parameterSlots":0,"returnSlots":0},"@_checkOwner_279":{"entryPoint":1443,"id":279,"parameterSlots":0,"returnSlots":0},"@_getPrice_2417":{"entryPoint":1195,"id":2417,"parameterSlots":1,"returnSlots":1},"@_loadExternalPrice_2436":{"entryPoint":1595,"id":2436,"parameterSlots":1,"returnSlots":1},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_storeExternalPrice_2369":{"entryPoint":1107,"id":2369,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_181":{"entryPoint":1524,"id":181,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_336":{"entryPoint":1684,"id":336,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_203":{"entryPoint":729,"id":203,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":1485,"id":2165,"parameterSlots":1,"returnSlots":0},"@getPriceAssuming_2336":{"entryPoint":448,"id":2336,"parameterSlots":2,"returnSlots":1},"@getPrice_2350":{"entryPoint":557,"id":2350,"parameterSlots":1,"returnSlots":1},"@initialize_2259":{"entryPoint":794,"id":2259,"parameterSlots":0,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@oracles_2220":{"entryPoint":null,"id":2220,"parameterSlots":0,"returnSlots":0},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@pendingOwner_144":{"entryPoint":null,"id":144,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_293":{"entryPoint":710,"id":293,"parameterSlots":0,"returnSlots":0},"@setOracle_2291":{"entryPoint":607,"id":2291,"parameterSlots":2,"returnSlots":0},"@transferOwnership_164":{"entryPoint":994,"id":164,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr":{"entryPoint":2073,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1847,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr":{"entryPoint":2169,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_OracleInterface_$3666":{"entryPoint":2358,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ExternalPrice_$2201_memory_ptr":{"entryPoint":2002,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1991,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2826,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2309,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr":{"entryPoint":2203,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_contract$_OracleInterface_$3666":{"entryPoint":2369,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2837,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2417,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":2450,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":2769,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":2584,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":2669,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8_to_t_string_memory_ptr_fromStack":{"entryPoint":2493,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":2925,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2287,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2426,"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":2792,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":2459,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":2778,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2653,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2743,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2568,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2867,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2996,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2295,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1923,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr":{"entryPoint":1950,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1812,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_OracleInterface_$3666":{"entryPoint":2339,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_OracleInterface_$3666_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":2440,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":2759,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":1878,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":2473,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1858,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1828,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_OracleInterface_$3666":{"entryPoint":2349,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1985,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:16651:101","nodeType":"YulBlock","src":"0:16651:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"930:28:101","nodeType":"YulBlock","src":"930:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"947:1:101","nodeType":"YulLiteral","src":"947:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"950:1:101","nodeType":"YulLiteral","src":"950:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"940:6:101","nodeType":"YulIdentifier","src":"940:6:101"},"nativeSrc":"940:12:101","nodeType":"YulFunctionCall","src":"940:12:101"},"nativeSrc":"940:12:101","nodeType":"YulExpressionStatement","src":"940:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"841:117:101","nodeType":"YulFunctionDefinition","src":"841:117:101"},{"body":{"nativeSrc":"1012:54:101","nodeType":"YulBlock","src":"1012:54:101","statements":[{"nativeSrc":"1022:38:101","nodeType":"YulAssignment","src":"1022:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1040:5:101","nodeType":"YulIdentifier","src":"1040:5:101"},{"kind":"number","nativeSrc":"1047:2:101","nodeType":"YulLiteral","src":"1047:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1036:3:101","nodeType":"YulIdentifier","src":"1036:3:101"},"nativeSrc":"1036:14:101","nodeType":"YulFunctionCall","src":"1036:14:101"},{"arguments":[{"kind":"number","nativeSrc":"1056:2:101","nodeType":"YulLiteral","src":"1056:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1052:3:101","nodeType":"YulIdentifier","src":"1052:3:101"},"nativeSrc":"1052:7:101","nodeType":"YulFunctionCall","src":"1052:7:101"}],"functionName":{"name":"and","nativeSrc":"1032:3:101","nodeType":"YulIdentifier","src":"1032:3:101"},"nativeSrc":"1032:28:101","nodeType":"YulFunctionCall","src":"1032:28:101"},"variableNames":[{"name":"result","nativeSrc":"1022:6:101","nodeType":"YulIdentifier","src":"1022:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"964:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"995:5:101","nodeType":"YulTypedName","src":"995:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1005:6:101","nodeType":"YulTypedName","src":"1005:6:101","type":""}],"src":"964:102:101"},{"body":{"nativeSrc":"1100:152:101","nodeType":"YulBlock","src":"1100:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1117:1:101","nodeType":"YulLiteral","src":"1117:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1120:77:101","nodeType":"YulLiteral","src":"1120:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1110:6:101","nodeType":"YulIdentifier","src":"1110:6:101"},"nativeSrc":"1110:88:101","nodeType":"YulFunctionCall","src":"1110:88:101"},"nativeSrc":"1110:88:101","nodeType":"YulExpressionStatement","src":"1110:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1214:1:101","nodeType":"YulLiteral","src":"1214:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"1217:4:101","nodeType":"YulLiteral","src":"1217:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1207:6:101","nodeType":"YulIdentifier","src":"1207:6:101"},"nativeSrc":"1207:15:101","nodeType":"YulFunctionCall","src":"1207:15:101"},"nativeSrc":"1207:15:101","nodeType":"YulExpressionStatement","src":"1207:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1238:1:101","nodeType":"YulLiteral","src":"1238:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1241:4:101","nodeType":"YulLiteral","src":"1241:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1231:6:101","nodeType":"YulIdentifier","src":"1231:6:101"},"nativeSrc":"1231:15:101","nodeType":"YulFunctionCall","src":"1231:15:101"},"nativeSrc":"1231:15:101","nodeType":"YulExpressionStatement","src":"1231:15:101"}]},"name":"panic_error_0x41","nativeSrc":"1072:180:101","nodeType":"YulFunctionDefinition","src":"1072:180:101"},{"body":{"nativeSrc":"1301:238:101","nodeType":"YulBlock","src":"1301:238:101","statements":[{"nativeSrc":"1311:58:101","nodeType":"YulVariableDeclaration","src":"1311:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"1333:6:101","nodeType":"YulIdentifier","src":"1333:6:101"},{"arguments":[{"name":"size","nativeSrc":"1363:4:101","nodeType":"YulIdentifier","src":"1363:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1341:21:101","nodeType":"YulIdentifier","src":"1341:21:101"},"nativeSrc":"1341:27:101","nodeType":"YulFunctionCall","src":"1341:27:101"}],"functionName":{"name":"add","nativeSrc":"1329:3:101","nodeType":"YulIdentifier","src":"1329:3:101"},"nativeSrc":"1329:40:101","nodeType":"YulFunctionCall","src":"1329:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"1315:10:101","nodeType":"YulTypedName","src":"1315:10:101","type":""}]},{"body":{"nativeSrc":"1480:22:101","nodeType":"YulBlock","src":"1480:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1482:16:101","nodeType":"YulIdentifier","src":"1482:16:101"},"nativeSrc":"1482:18:101","nodeType":"YulFunctionCall","src":"1482:18:101"},"nativeSrc":"1482:18:101","nodeType":"YulExpressionStatement","src":"1482:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1423:10:101","nodeType":"YulIdentifier","src":"1423:10:101"},{"kind":"number","nativeSrc":"1435:18:101","nodeType":"YulLiteral","src":"1435:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1420:2:101","nodeType":"YulIdentifier","src":"1420:2:101"},"nativeSrc":"1420:34:101","nodeType":"YulFunctionCall","src":"1420:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1459:10:101","nodeType":"YulIdentifier","src":"1459:10:101"},{"name":"memPtr","nativeSrc":"1471:6:101","nodeType":"YulIdentifier","src":"1471:6:101"}],"functionName":{"name":"lt","nativeSrc":"1456:2:101","nodeType":"YulIdentifier","src":"1456:2:101"},"nativeSrc":"1456:22:101","nodeType":"YulFunctionCall","src":"1456:22:101"}],"functionName":{"name":"or","nativeSrc":"1417:2:101","nodeType":"YulIdentifier","src":"1417:2:101"},"nativeSrc":"1417:62:101","nodeType":"YulFunctionCall","src":"1417:62:101"},"nativeSrc":"1414:88:101","nodeType":"YulIf","src":"1414:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1518:2:101","nodeType":"YulLiteral","src":"1518:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1522:10:101","nodeType":"YulIdentifier","src":"1522:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1511:6:101","nodeType":"YulIdentifier","src":"1511:6:101"},"nativeSrc":"1511:22:101","nodeType":"YulFunctionCall","src":"1511:22:101"},"nativeSrc":"1511:22:101","nodeType":"YulExpressionStatement","src":"1511:22:101"}]},"name":"finalize_allocation","nativeSrc":"1258:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1287:6:101","nodeType":"YulTypedName","src":"1287:6:101","type":""},{"name":"size","nativeSrc":"1295:4:101","nodeType":"YulTypedName","src":"1295:4:101","type":""}],"src":"1258:281:101"},{"body":{"nativeSrc":"1586:88:101","nodeType":"YulBlock","src":"1586:88:101","statements":[{"nativeSrc":"1596:30:101","nodeType":"YulAssignment","src":"1596:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1606:18:101","nodeType":"YulIdentifier","src":"1606:18:101"},"nativeSrc":"1606:20:101","nodeType":"YulFunctionCall","src":"1606:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1596:6:101","nodeType":"YulIdentifier","src":"1596:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1655:6:101","nodeType":"YulIdentifier","src":"1655:6:101"},{"name":"size","nativeSrc":"1663:4:101","nodeType":"YulIdentifier","src":"1663:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1635:19:101","nodeType":"YulIdentifier","src":"1635:19:101"},"nativeSrc":"1635:33:101","nodeType":"YulFunctionCall","src":"1635:33:101"},"nativeSrc":"1635:33:101","nodeType":"YulExpressionStatement","src":"1635:33:101"}]},"name":"allocate_memory","nativeSrc":"1545:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1570:4:101","nodeType":"YulTypedName","src":"1570:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1579:6:101","nodeType":"YulTypedName","src":"1579:6:101","type":""}],"src":"1545:129:101"},{"body":{"nativeSrc":"1793:229:101","nodeType":"YulBlock","src":"1793:229:101","statements":[{"body":{"nativeSrc":"1898:22:101","nodeType":"YulBlock","src":"1898:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1900:16:101","nodeType":"YulIdentifier","src":"1900:16:101"},"nativeSrc":"1900:18:101","nodeType":"YulFunctionCall","src":"1900:18:101"},"nativeSrc":"1900:18:101","nodeType":"YulExpressionStatement","src":"1900:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1870:6:101","nodeType":"YulIdentifier","src":"1870:6:101"},{"kind":"number","nativeSrc":"1878:18:101","nodeType":"YulLiteral","src":"1878:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1867:2:101","nodeType":"YulIdentifier","src":"1867:2:101"},"nativeSrc":"1867:30:101","nodeType":"YulFunctionCall","src":"1867:30:101"},"nativeSrc":"1864:56:101","nodeType":"YulIf","src":"1864:56:101"},{"nativeSrc":"1930:25:101","nodeType":"YulAssignment","src":"1930:25:101","value":{"arguments":[{"name":"length","nativeSrc":"1942:6:101","nodeType":"YulIdentifier","src":"1942:6:101"},{"kind":"number","nativeSrc":"1950:4:101","nodeType":"YulLiteral","src":"1950:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"1938:3:101","nodeType":"YulIdentifier","src":"1938:3:101"},"nativeSrc":"1938:17:101","nodeType":"YulFunctionCall","src":"1938:17:101"},"variableNames":[{"name":"size","nativeSrc":"1930:4:101","nodeType":"YulIdentifier","src":"1930:4:101"}]},{"nativeSrc":"1992:23:101","nodeType":"YulAssignment","src":"1992:23:101","value":{"arguments":[{"name":"size","nativeSrc":"2004:4:101","nodeType":"YulIdentifier","src":"2004:4:101"},{"kind":"number","nativeSrc":"2010:4:101","nodeType":"YulLiteral","src":"2010:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2000:3:101","nodeType":"YulIdentifier","src":"2000:3:101"},"nativeSrc":"2000:15:101","nodeType":"YulFunctionCall","src":"2000:15:101"},"variableNames":[{"name":"size","nativeSrc":"1992:4:101","nodeType":"YulIdentifier","src":"1992:4:101"}]}]},"name":"array_allocation_size_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","nativeSrc":"1680:342:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1777:6:101","nodeType":"YulTypedName","src":"1777:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1788:4:101","nodeType":"YulTypedName","src":"1788:4:101","type":""}],"src":"1680:342:101"},{"body":{"nativeSrc":"2117:28:101","nodeType":"YulBlock","src":"2117:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2134:1:101","nodeType":"YulLiteral","src":"2134:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2137:1:101","nodeType":"YulLiteral","src":"2137:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2127:6:101","nodeType":"YulIdentifier","src":"2127:6:101"},"nativeSrc":"2127:12:101","nodeType":"YulFunctionCall","src":"2127:12:101"},"nativeSrc":"2127:12:101","nodeType":"YulExpressionStatement","src":"2127:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2028:117:101","nodeType":"YulFunctionDefinition","src":"2028:117:101"},{"body":{"nativeSrc":"2240:28:101","nodeType":"YulBlock","src":"2240:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2257:1:101","nodeType":"YulLiteral","src":"2257:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2260:1:101","nodeType":"YulLiteral","src":"2260:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2250:6:101","nodeType":"YulIdentifier","src":"2250:6:101"},"nativeSrc":"2250:12:101","nodeType":"YulFunctionCall","src":"2250:12:101"},"nativeSrc":"2250:12:101","nodeType":"YulExpressionStatement","src":"2250:12:101"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"2151:117:101","nodeType":"YulFunctionDefinition","src":"2151:117:101"},{"body":{"nativeSrc":"2363:28:101","nodeType":"YulBlock","src":"2363:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2380:1:101","nodeType":"YulLiteral","src":"2380:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2383:1:101","nodeType":"YulLiteral","src":"2383:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2373:6:101","nodeType":"YulIdentifier","src":"2373:6:101"},"nativeSrc":"2373:12:101","nodeType":"YulFunctionCall","src":"2373:12:101"},"nativeSrc":"2373:12:101","nodeType":"YulExpressionStatement","src":"2373:12:101"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"2274:117:101","nodeType":"YulFunctionDefinition","src":"2274:117:101"},{"body":{"nativeSrc":"2442:32:101","nodeType":"YulBlock","src":"2442:32:101","statements":[{"nativeSrc":"2452:16:101","nodeType":"YulAssignment","src":"2452:16:101","value":{"name":"value","nativeSrc":"2463:5:101","nodeType":"YulIdentifier","src":"2463:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2452:7:101","nodeType":"YulIdentifier","src":"2452:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2397:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2424:5:101","nodeType":"YulTypedName","src":"2424:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2434:7:101","nodeType":"YulTypedName","src":"2434:7:101","type":""}],"src":"2397:77:101"},{"body":{"nativeSrc":"2523:79:101","nodeType":"YulBlock","src":"2523:79:101","statements":[{"body":{"nativeSrc":"2580:16:101","nodeType":"YulBlock","src":"2580:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2589:1:101","nodeType":"YulLiteral","src":"2589:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2592:1:101","nodeType":"YulLiteral","src":"2592:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2582:6:101","nodeType":"YulIdentifier","src":"2582:6:101"},"nativeSrc":"2582:12:101","nodeType":"YulFunctionCall","src":"2582:12:101"},"nativeSrc":"2582:12:101","nodeType":"YulExpressionStatement","src":"2582:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2546:5:101","nodeType":"YulIdentifier","src":"2546:5:101"},{"arguments":[{"name":"value","nativeSrc":"2571:5:101","nodeType":"YulIdentifier","src":"2571:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2553:17:101","nodeType":"YulIdentifier","src":"2553:17:101"},"nativeSrc":"2553:24:101","nodeType":"YulFunctionCall","src":"2553:24:101"}],"functionName":{"name":"eq","nativeSrc":"2543:2:101","nodeType":"YulIdentifier","src":"2543:2:101"},"nativeSrc":"2543:35:101","nodeType":"YulFunctionCall","src":"2543:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2536:6:101","nodeType":"YulIdentifier","src":"2536:6:101"},"nativeSrc":"2536:43:101","nodeType":"YulFunctionCall","src":"2536:43:101"},"nativeSrc":"2533:63:101","nodeType":"YulIf","src":"2533:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2480:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2516:5:101","nodeType":"YulTypedName","src":"2516:5:101","type":""}],"src":"2480:122:101"},{"body":{"nativeSrc":"2660:87:101","nodeType":"YulBlock","src":"2660:87:101","statements":[{"nativeSrc":"2670:29:101","nodeType":"YulAssignment","src":"2670:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulIdentifier","src":"2692:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2679:12:101","nodeType":"YulIdentifier","src":"2679:12:101"},"nativeSrc":"2679:20:101","nodeType":"YulFunctionCall","src":"2679:20:101"},"variableNames":[{"name":"value","nativeSrc":"2670:5:101","nodeType":"YulIdentifier","src":"2670:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2735:5:101","nodeType":"YulIdentifier","src":"2735:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2708:26:101","nodeType":"YulIdentifier","src":"2708:26:101"},"nativeSrc":"2708:33:101","nodeType":"YulFunctionCall","src":"2708:33:101"},"nativeSrc":"2708:33:101","nodeType":"YulExpressionStatement","src":"2708:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2608:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2638:6:101","nodeType":"YulTypedName","src":"2638:6:101","type":""},{"name":"end","nativeSrc":"2646:3:101","nodeType":"YulTypedName","src":"2646:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2654:5:101","nodeType":"YulTypedName","src":"2654:5:101","type":""}],"src":"2608:139:101"},{"body":{"nativeSrc":"2883:496:101","nodeType":"YulBlock","src":"2883:496:101","statements":[{"body":{"nativeSrc":"2927:83:101","nodeType":"YulBlock","src":"2927:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"2929:77:101","nodeType":"YulIdentifier","src":"2929:77:101"},"nativeSrc":"2929:79:101","nodeType":"YulFunctionCall","src":"2929:79:101"},"nativeSrc":"2929:79:101","nodeType":"YulExpressionStatement","src":"2929:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2904:3:101","nodeType":"YulIdentifier","src":"2904:3:101"},{"name":"headStart","nativeSrc":"2909:9:101","nodeType":"YulIdentifier","src":"2909:9:101"}],"functionName":{"name":"sub","nativeSrc":"2900:3:101","nodeType":"YulIdentifier","src":"2900:3:101"},"nativeSrc":"2900:19:101","nodeType":"YulFunctionCall","src":"2900:19:101"},{"kind":"number","nativeSrc":"2921:4:101","nodeType":"YulLiteral","src":"2921:4:101","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"2896:3:101","nodeType":"YulIdentifier","src":"2896:3:101"},"nativeSrc":"2896:30:101","nodeType":"YulFunctionCall","src":"2896:30:101"},"nativeSrc":"2893:117:101","nodeType":"YulIf","src":"2893:117:101"},{"nativeSrc":"3019:30:101","nodeType":"YulAssignment","src":"3019:30:101","value":{"arguments":[{"kind":"number","nativeSrc":"3044:4:101","nodeType":"YulLiteral","src":"3044:4:101","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"3028:15:101","nodeType":"YulIdentifier","src":"3028:15:101"},"nativeSrc":"3028:21:101","nodeType":"YulFunctionCall","src":"3028:21:101"},"variableNames":[{"name":"value","nativeSrc":"3019:5:101","nodeType":"YulIdentifier","src":"3019:5:101"}]},{"nativeSrc":"3059:151:101","nodeType":"YulBlock","src":"3059:151:101","statements":[{"nativeSrc":"3095:15:101","nodeType":"YulVariableDeclaration","src":"3095:15:101","value":{"kind":"number","nativeSrc":"3109:1:101","nodeType":"YulLiteral","src":"3109:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3099:6:101","nodeType":"YulTypedName","src":"3099:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3135:5:101","nodeType":"YulIdentifier","src":"3135:5:101"},{"kind":"number","nativeSrc":"3142:4:101","nodeType":"YulLiteral","src":"3142:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"3131:3:101","nodeType":"YulIdentifier","src":"3131:3:101"},"nativeSrc":"3131:16:101","nodeType":"YulFunctionCall","src":"3131:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3174:9:101","nodeType":"YulIdentifier","src":"3174:9:101"},{"name":"offset","nativeSrc":"3185:6:101","nodeType":"YulIdentifier","src":"3185:6:101"}],"functionName":{"name":"add","nativeSrc":"3170:3:101","nodeType":"YulIdentifier","src":"3170:3:101"},"nativeSrc":"3170:22:101","nodeType":"YulFunctionCall","src":"3170:22:101"},{"name":"end","nativeSrc":"3194:3:101","nodeType":"YulIdentifier","src":"3194:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3149:20:101","nodeType":"YulIdentifier","src":"3149:20:101"},"nativeSrc":"3149:49:101","nodeType":"YulFunctionCall","src":"3149:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3124:6:101","nodeType":"YulIdentifier","src":"3124:6:101"},"nativeSrc":"3124:75:101","nodeType":"YulFunctionCall","src":"3124:75:101"},"nativeSrc":"3124:75:101","nodeType":"YulExpressionStatement","src":"3124:75:101"}]},{"nativeSrc":"3220:152:101","nodeType":"YulBlock","src":"3220:152:101","statements":[{"nativeSrc":"3256:16:101","nodeType":"YulVariableDeclaration","src":"3256:16:101","value":{"kind":"number","nativeSrc":"3270:2:101","nodeType":"YulLiteral","src":"3270:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3260:6:101","nodeType":"YulTypedName","src":"3260:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3297:5:101","nodeType":"YulIdentifier","src":"3297:5:101"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3293:3:101","nodeType":"YulIdentifier","src":"3293:3:101"},"nativeSrc":"3293:16:101","nodeType":"YulFunctionCall","src":"3293:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3336:9:101","nodeType":"YulIdentifier","src":"3336:9:101"},{"name":"offset","nativeSrc":"3347:6:101","nodeType":"YulIdentifier","src":"3347:6:101"}],"functionName":{"name":"add","nativeSrc":"3332:3:101","nodeType":"YulIdentifier","src":"3332:3:101"},"nativeSrc":"3332:22:101","nodeType":"YulFunctionCall","src":"3332:22:101"},{"name":"end","nativeSrc":"3356:3:101","nodeType":"YulIdentifier","src":"3356:3:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3311:20:101","nodeType":"YulIdentifier","src":"3311:20:101"},"nativeSrc":"3311:49:101","nodeType":"YulFunctionCall","src":"3311:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3286:6:101","nodeType":"YulIdentifier","src":"3286:6:101"},"nativeSrc":"3286:75:101","nodeType":"YulFunctionCall","src":"3286:75:101"},"nativeSrc":"3286:75:101","nodeType":"YulExpressionStatement","src":"3286:75:101"}]}]},"name":"abi_decode_t_struct$_ExternalPrice_$2201_memory_ptr","nativeSrc":"2797:582:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2858:9:101","nodeType":"YulTypedName","src":"2858:9:101","type":""},{"name":"end","nativeSrc":"2869:3:101","nodeType":"YulTypedName","src":"2869:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2877:5:101","nodeType":"YulTypedName","src":"2877:5:101","type":""}],"src":"2797:582:101"},{"body":{"nativeSrc":"3564:670:101","nodeType":"YulBlock","src":"3564:670:101","statements":[{"nativeSrc":"3574:121:101","nodeType":"YulAssignment","src":"3574:121:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3687:6:101","nodeType":"YulIdentifier","src":"3687:6:101"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","nativeSrc":"3599:87:101","nodeType":"YulIdentifier","src":"3599:87:101"},"nativeSrc":"3599:95:101","nodeType":"YulFunctionCall","src":"3599:95:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"3583:15:101","nodeType":"YulIdentifier","src":"3583:15:101"},"nativeSrc":"3583:112:101","nodeType":"YulFunctionCall","src":"3583:112:101"},"variableNames":[{"name":"array","nativeSrc":"3574:5:101","nodeType":"YulIdentifier","src":"3574:5:101"}]},{"nativeSrc":"3704:16:101","nodeType":"YulVariableDeclaration","src":"3704:16:101","value":{"name":"array","nativeSrc":"3715:5:101","nodeType":"YulIdentifier","src":"3715:5:101"},"variables":[{"name":"dst","nativeSrc":"3708:3:101","nodeType":"YulTypedName","src":"3708:3:101","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3737:5:101","nodeType":"YulIdentifier","src":"3737:5:101"},{"name":"length","nativeSrc":"3744:6:101","nodeType":"YulIdentifier","src":"3744:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3730:6:101","nodeType":"YulIdentifier","src":"3730:6:101"},"nativeSrc":"3730:21:101","nodeType":"YulFunctionCall","src":"3730:21:101"},"nativeSrc":"3730:21:101","nodeType":"YulExpressionStatement","src":"3730:21:101"},{"nativeSrc":"3760:23:101","nodeType":"YulAssignment","src":"3760:23:101","value":{"arguments":[{"name":"array","nativeSrc":"3771:5:101","nodeType":"YulIdentifier","src":"3771:5:101"},{"kind":"number","nativeSrc":"3778:4:101","nodeType":"YulLiteral","src":"3778:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3767:3:101","nodeType":"YulIdentifier","src":"3767:3:101"},"nativeSrc":"3767:16:101","nodeType":"YulFunctionCall","src":"3767:16:101"},"variableNames":[{"name":"dst","nativeSrc":"3760:3:101","nodeType":"YulIdentifier","src":"3760:3:101"}]},{"nativeSrc":"3793:44:101","nodeType":"YulVariableDeclaration","src":"3793:44:101","value":{"arguments":[{"name":"offset","nativeSrc":"3811:6:101","nodeType":"YulIdentifier","src":"3811:6:101"},{"arguments":[{"name":"length","nativeSrc":"3823:6:101","nodeType":"YulIdentifier","src":"3823:6:101"},{"kind":"number","nativeSrc":"3831:4:101","nodeType":"YulLiteral","src":"3831:4:101","type":"","value":"0x40"}],"functionName":{"name":"mul","nativeSrc":"3819:3:101","nodeType":"YulIdentifier","src":"3819:3:101"},"nativeSrc":"3819:17:101","nodeType":"YulFunctionCall","src":"3819:17:101"}],"functionName":{"name":"add","nativeSrc":"3807:3:101","nodeType":"YulIdentifier","src":"3807:3:101"},"nativeSrc":"3807:30:101","nodeType":"YulFunctionCall","src":"3807:30:101"},"variables":[{"name":"srcEnd","nativeSrc":"3797:6:101","nodeType":"YulTypedName","src":"3797:6:101","type":""}]},{"body":{"nativeSrc":"3865:103:101","nodeType":"YulBlock","src":"3865:103:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3879:77:101","nodeType":"YulIdentifier","src":"3879:77:101"},"nativeSrc":"3879:79:101","nodeType":"YulFunctionCall","src":"3879:79:101"},"nativeSrc":"3879:79:101","nodeType":"YulExpressionStatement","src":"3879:79:101"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"3852:6:101","nodeType":"YulIdentifier","src":"3852:6:101"},{"name":"end","nativeSrc":"3860:3:101","nodeType":"YulIdentifier","src":"3860:3:101"}],"functionName":{"name":"gt","nativeSrc":"3849:2:101","nodeType":"YulIdentifier","src":"3849:2:101"},"nativeSrc":"3849:15:101","nodeType":"YulFunctionCall","src":"3849:15:101"},"nativeSrc":"3846:122:101","nodeType":"YulIf","src":"3846:122:101"},{"body":{"nativeSrc":"4053:175:101","nodeType":"YulBlock","src":"4053:175:101","statements":[{"nativeSrc":"4068:21:101","nodeType":"YulVariableDeclaration","src":"4068:21:101","value":{"name":"src","nativeSrc":"4086:3:101","nodeType":"YulIdentifier","src":"4086:3:101"},"variables":[{"name":"elementPos","nativeSrc":"4072:10:101","nodeType":"YulTypedName","src":"4072:10:101","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"4110:3:101","nodeType":"YulIdentifier","src":"4110:3:101"},{"arguments":[{"name":"elementPos","nativeSrc":"4167:10:101","nodeType":"YulIdentifier","src":"4167:10:101"},{"name":"end","nativeSrc":"4179:3:101","nodeType":"YulIdentifier","src":"4179:3:101"}],"functionName":{"name":"abi_decode_t_struct$_ExternalPrice_$2201_memory_ptr","nativeSrc":"4115:51:101","nodeType":"YulIdentifier","src":"4115:51:101"},"nativeSrc":"4115:68:101","nodeType":"YulFunctionCall","src":"4115:68:101"}],"functionName":{"name":"mstore","nativeSrc":"4103:6:101","nodeType":"YulIdentifier","src":"4103:6:101"},"nativeSrc":"4103:81:101","nodeType":"YulFunctionCall","src":"4103:81:101"},"nativeSrc":"4103:81:101","nodeType":"YulExpressionStatement","src":"4103:81:101"},{"nativeSrc":"4197:21:101","nodeType":"YulAssignment","src":"4197:21:101","value":{"arguments":[{"name":"dst","nativeSrc":"4208:3:101","nodeType":"YulIdentifier","src":"4208:3:101"},{"kind":"number","nativeSrc":"4213:4:101","nodeType":"YulLiteral","src":"4213:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4204:3:101","nodeType":"YulIdentifier","src":"4204:3:101"},"nativeSrc":"4204:14:101","nodeType":"YulFunctionCall","src":"4204:14:101"},"variableNames":[{"name":"dst","nativeSrc":"4197:3:101","nodeType":"YulIdentifier","src":"4197:3:101"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"4006:3:101","nodeType":"YulIdentifier","src":"4006:3:101"},{"name":"srcEnd","nativeSrc":"4011:6:101","nodeType":"YulIdentifier","src":"4011:6:101"}],"functionName":{"name":"lt","nativeSrc":"4003:2:101","nodeType":"YulIdentifier","src":"4003:2:101"},"nativeSrc":"4003:15:101","nodeType":"YulFunctionCall","src":"4003:15:101"},"nativeSrc":"3977:251:101","nodeType":"YulForLoop","post":{"nativeSrc":"4019:25:101","nodeType":"YulBlock","src":"4019:25:101","statements":[{"nativeSrc":"4021:21:101","nodeType":"YulAssignment","src":"4021:21:101","value":{"arguments":[{"name":"src","nativeSrc":"4032:3:101","nodeType":"YulIdentifier","src":"4032:3:101"},{"kind":"number","nativeSrc":"4037:4:101","nodeType":"YulLiteral","src":"4037:4:101","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4028:3:101","nodeType":"YulIdentifier","src":"4028:3:101"},"nativeSrc":"4028:14:101","nodeType":"YulFunctionCall","src":"4028:14:101"},"variableNames":[{"name":"src","nativeSrc":"4021:3:101","nodeType":"YulIdentifier","src":"4021:3:101"}]}]},"pre":{"nativeSrc":"3981:21:101","nodeType":"YulBlock","src":"3981:21:101","statements":[{"nativeSrc":"3983:17:101","nodeType":"YulVariableDeclaration","src":"3983:17:101","value":{"name":"offset","nativeSrc":"3994:6:101","nodeType":"YulIdentifier","src":"3994:6:101"},"variables":[{"name":"src","nativeSrc":"3987:3:101","nodeType":"YulTypedName","src":"3987:3:101","type":""}]}]},"src":"3977:251:101"}]},"name":"abi_decode_available_length_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","nativeSrc":"3431:803:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulTypedName","src":"3534:6:101","type":""},{"name":"length","nativeSrc":"3542:6:101","nodeType":"YulTypedName","src":"3542:6:101","type":""},{"name":"end","nativeSrc":"3550:3:101","nodeType":"YulTypedName","src":"3550:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3558:5:101","nodeType":"YulTypedName","src":"3558:5:101","type":""}],"src":"3431:803:101"},{"body":{"nativeSrc":"4394:324:101","nodeType":"YulBlock","src":"4394:324:101","statements":[{"body":{"nativeSrc":"4443:83:101","nodeType":"YulBlock","src":"4443:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4445:77:101","nodeType":"YulIdentifier","src":"4445:77:101"},"nativeSrc":"4445:79:101","nodeType":"YulFunctionCall","src":"4445:79:101"},"nativeSrc":"4445:79:101","nodeType":"YulExpressionStatement","src":"4445:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4422:6:101","nodeType":"YulIdentifier","src":"4422:6:101"},{"kind":"number","nativeSrc":"4430:4:101","nodeType":"YulLiteral","src":"4430:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4418:3:101","nodeType":"YulIdentifier","src":"4418:3:101"},"nativeSrc":"4418:17:101","nodeType":"YulFunctionCall","src":"4418:17:101"},{"name":"end","nativeSrc":"4437:3:101","nodeType":"YulIdentifier","src":"4437:3:101"}],"functionName":{"name":"slt","nativeSrc":"4414:3:101","nodeType":"YulIdentifier","src":"4414:3:101"},"nativeSrc":"4414:27:101","nodeType":"YulFunctionCall","src":"4414:27:101"}],"functionName":{"name":"iszero","nativeSrc":"4407:6:101","nodeType":"YulIdentifier","src":"4407:6:101"},"nativeSrc":"4407:35:101","nodeType":"YulFunctionCall","src":"4407:35:101"},"nativeSrc":"4404:122:101","nodeType":"YulIf","src":"4404:122:101"},{"nativeSrc":"4535:34:101","nodeType":"YulVariableDeclaration","src":"4535:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"4562:6:101","nodeType":"YulIdentifier","src":"4562:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"4549:12:101","nodeType":"YulIdentifier","src":"4549:12:101"},"nativeSrc":"4549:20:101","nodeType":"YulFunctionCall","src":"4549:20:101"},"variables":[{"name":"length","nativeSrc":"4539:6:101","nodeType":"YulTypedName","src":"4539:6:101","type":""}]},{"nativeSrc":"4578:134:101","nodeType":"YulAssignment","src":"4578:134:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4685:6:101","nodeType":"YulIdentifier","src":"4685:6:101"},{"kind":"number","nativeSrc":"4693:4:101","nodeType":"YulLiteral","src":"4693:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4681:3:101","nodeType":"YulIdentifier","src":"4681:3:101"},"nativeSrc":"4681:17:101","nodeType":"YulFunctionCall","src":"4681:17:101"},{"name":"length","nativeSrc":"4700:6:101","nodeType":"YulIdentifier","src":"4700:6:101"},{"name":"end","nativeSrc":"4708:3:101","nodeType":"YulIdentifier","src":"4708:3:101"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","nativeSrc":"4587:93:101","nodeType":"YulIdentifier","src":"4587:93:101"},"nativeSrc":"4587:125:101","nodeType":"YulFunctionCall","src":"4587:125:101"},"variableNames":[{"name":"array","nativeSrc":"4578:5:101","nodeType":"YulIdentifier","src":"4578:5:101"}]}]},"name":"abi_decode_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","nativeSrc":"4286:432:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4372:6:101","nodeType":"YulTypedName","src":"4372:6:101","type":""},{"name":"end","nativeSrc":"4380:3:101","nodeType":"YulTypedName","src":"4380:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4388:5:101","nodeType":"YulTypedName","src":"4388:5:101","type":""}],"src":"4286:432:101"},{"body":{"nativeSrc":"4863:607:101","nodeType":"YulBlock","src":"4863:607:101","statements":[{"body":{"nativeSrc":"4909:83:101","nodeType":"YulBlock","src":"4909:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4911:77:101","nodeType":"YulIdentifier","src":"4911:77:101"},"nativeSrc":"4911:79:101","nodeType":"YulFunctionCall","src":"4911:79:101"},"nativeSrc":"4911:79:101","nodeType":"YulExpressionStatement","src":"4911:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4884:7:101","nodeType":"YulIdentifier","src":"4884:7:101"},{"name":"headStart","nativeSrc":"4893:9:101","nodeType":"YulIdentifier","src":"4893:9:101"}],"functionName":{"name":"sub","nativeSrc":"4880:3:101","nodeType":"YulIdentifier","src":"4880:3:101"},"nativeSrc":"4880:23:101","nodeType":"YulFunctionCall","src":"4880:23:101"},{"kind":"number","nativeSrc":"4905:2:101","nodeType":"YulLiteral","src":"4905:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4876:3:101","nodeType":"YulIdentifier","src":"4876:3:101"},"nativeSrc":"4876:32:101","nodeType":"YulFunctionCall","src":"4876:32:101"},"nativeSrc":"4873:119:101","nodeType":"YulIf","src":"4873:119:101"},{"nativeSrc":"5002:117:101","nodeType":"YulBlock","src":"5002:117:101","statements":[{"nativeSrc":"5017:15:101","nodeType":"YulVariableDeclaration","src":"5017:15:101","value":{"kind":"number","nativeSrc":"5031:1:101","nodeType":"YulLiteral","src":"5031:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5021:6:101","nodeType":"YulTypedName","src":"5021:6:101","type":""}]},{"nativeSrc":"5046:63:101","nodeType":"YulAssignment","src":"5046:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5081:9:101","nodeType":"YulIdentifier","src":"5081:9:101"},{"name":"offset","nativeSrc":"5092:6:101","nodeType":"YulIdentifier","src":"5092:6:101"}],"functionName":{"name":"add","nativeSrc":"5077:3:101","nodeType":"YulIdentifier","src":"5077:3:101"},"nativeSrc":"5077:22:101","nodeType":"YulFunctionCall","src":"5077:22:101"},{"name":"dataEnd","nativeSrc":"5101:7:101","nodeType":"YulIdentifier","src":"5101:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5056:20:101","nodeType":"YulIdentifier","src":"5056:20:101"},"nativeSrc":"5056:53:101","nodeType":"YulFunctionCall","src":"5056:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5046:6:101","nodeType":"YulIdentifier","src":"5046:6:101"}]}]},{"nativeSrc":"5129:334:101","nodeType":"YulBlock","src":"5129:334:101","statements":[{"nativeSrc":"5144:46:101","nodeType":"YulVariableDeclaration","src":"5144:46:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5175:9:101","nodeType":"YulIdentifier","src":"5175:9:101"},{"kind":"number","nativeSrc":"5186:2:101","nodeType":"YulLiteral","src":"5186:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5171:3:101","nodeType":"YulIdentifier","src":"5171:3:101"},"nativeSrc":"5171:18:101","nodeType":"YulFunctionCall","src":"5171:18:101"}],"functionName":{"name":"calldataload","nativeSrc":"5158:12:101","nodeType":"YulIdentifier","src":"5158:12:101"},"nativeSrc":"5158:32:101","nodeType":"YulFunctionCall","src":"5158:32:101"},"variables":[{"name":"offset","nativeSrc":"5148:6:101","nodeType":"YulTypedName","src":"5148:6:101","type":""}]},{"body":{"nativeSrc":"5237:83:101","nodeType":"YulBlock","src":"5237:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5239:77:101","nodeType":"YulIdentifier","src":"5239:77:101"},"nativeSrc":"5239:79:101","nodeType":"YulFunctionCall","src":"5239:79:101"},"nativeSrc":"5239:79:101","nodeType":"YulExpressionStatement","src":"5239:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5209:6:101","nodeType":"YulIdentifier","src":"5209:6:101"},{"kind":"number","nativeSrc":"5217:18:101","nodeType":"YulLiteral","src":"5217:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5206:2:101","nodeType":"YulIdentifier","src":"5206:2:101"},"nativeSrc":"5206:30:101","nodeType":"YulFunctionCall","src":"5206:30:101"},"nativeSrc":"5203:117:101","nodeType":"YulIf","src":"5203:117:101"},{"nativeSrc":"5334:119:101","nodeType":"YulAssignment","src":"5334:119:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5425:9:101","nodeType":"YulIdentifier","src":"5425:9:101"},{"name":"offset","nativeSrc":"5436:6:101","nodeType":"YulIdentifier","src":"5436:6:101"}],"functionName":{"name":"add","nativeSrc":"5421:3:101","nodeType":"YulIdentifier","src":"5421:3:101"},"nativeSrc":"5421:22:101","nodeType":"YulFunctionCall","src":"5421:22:101"},{"name":"dataEnd","nativeSrc":"5445:7:101","nodeType":"YulIdentifier","src":"5445:7:101"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","nativeSrc":"5344:76:101","nodeType":"YulIdentifier","src":"5344:76:101"},"nativeSrc":"5344:109:101","nodeType":"YulFunctionCall","src":"5344:109:101"},"variableNames":[{"name":"value1","nativeSrc":"5334:6:101","nodeType":"YulIdentifier","src":"5334:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr","nativeSrc":"4724:746:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4825:9:101","nodeType":"YulTypedName","src":"4825:9:101","type":""},{"name":"dataEnd","nativeSrc":"4836:7:101","nodeType":"YulTypedName","src":"4836:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4848:6:101","nodeType":"YulTypedName","src":"4848:6:101","type":""},{"name":"value1","nativeSrc":"4856:6:101","nodeType":"YulTypedName","src":"4856:6:101","type":""}],"src":"4724:746:101"},{"body":{"nativeSrc":"5541:53:101","nodeType":"YulBlock","src":"5541:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5558:3:101","nodeType":"YulIdentifier","src":"5558:3:101"},{"arguments":[{"name":"value","nativeSrc":"5581:5:101","nodeType":"YulIdentifier","src":"5581:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5563:17:101","nodeType":"YulIdentifier","src":"5563:17:101"},"nativeSrc":"5563:24:101","nodeType":"YulFunctionCall","src":"5563:24:101"}],"functionName":{"name":"mstore","nativeSrc":"5551:6:101","nodeType":"YulIdentifier","src":"5551:6:101"},"nativeSrc":"5551:37:101","nodeType":"YulFunctionCall","src":"5551:37:101"},"nativeSrc":"5551:37:101","nodeType":"YulExpressionStatement","src":"5551:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5476:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5529:5:101","nodeType":"YulTypedName","src":"5529:5:101","type":""},{"name":"pos","nativeSrc":"5536:3:101","nodeType":"YulTypedName","src":"5536:3:101","type":""}],"src":"5476:118:101"},{"body":{"nativeSrc":"5698:124:101","nodeType":"YulBlock","src":"5698:124:101","statements":[{"nativeSrc":"5708:26:101","nodeType":"YulAssignment","src":"5708:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5720:9:101","nodeType":"YulIdentifier","src":"5720:9:101"},{"kind":"number","nativeSrc":"5731:2:101","nodeType":"YulLiteral","src":"5731:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5716:3:101","nodeType":"YulIdentifier","src":"5716:3:101"},"nativeSrc":"5716:18:101","nodeType":"YulFunctionCall","src":"5716:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5708:4:101","nodeType":"YulIdentifier","src":"5708:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5788:6:101","nodeType":"YulIdentifier","src":"5788:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5801:9:101","nodeType":"YulIdentifier","src":"5801:9:101"},{"kind":"number","nativeSrc":"5812:1:101","nodeType":"YulLiteral","src":"5812:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5797:3:101","nodeType":"YulIdentifier","src":"5797:3:101"},"nativeSrc":"5797:17:101","nodeType":"YulFunctionCall","src":"5797:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5744:43:101","nodeType":"YulIdentifier","src":"5744:43:101"},"nativeSrc":"5744:71:101","nodeType":"YulFunctionCall","src":"5744:71:101"},"nativeSrc":"5744:71:101","nodeType":"YulExpressionStatement","src":"5744:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5600:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5670:9:101","nodeType":"YulTypedName","src":"5670:9:101","type":""},{"name":"value0","nativeSrc":"5682:6:101","nodeType":"YulTypedName","src":"5682:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5693:4:101","nodeType":"YulTypedName","src":"5693:4:101","type":""}],"src":"5600:222:101"},{"body":{"nativeSrc":"5894:263:101","nodeType":"YulBlock","src":"5894:263:101","statements":[{"body":{"nativeSrc":"5940:83:101","nodeType":"YulBlock","src":"5940:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5942:77:101","nodeType":"YulIdentifier","src":"5942:77:101"},"nativeSrc":"5942:79:101","nodeType":"YulFunctionCall","src":"5942:79:101"},"nativeSrc":"5942:79:101","nodeType":"YulExpressionStatement","src":"5942:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5915:7:101","nodeType":"YulIdentifier","src":"5915:7:101"},{"name":"headStart","nativeSrc":"5924:9:101","nodeType":"YulIdentifier","src":"5924:9:101"}],"functionName":{"name":"sub","nativeSrc":"5911:3:101","nodeType":"YulIdentifier","src":"5911:3:101"},"nativeSrc":"5911:23:101","nodeType":"YulFunctionCall","src":"5911:23:101"},{"kind":"number","nativeSrc":"5936:2:101","nodeType":"YulLiteral","src":"5936:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5907:3:101","nodeType":"YulIdentifier","src":"5907:3:101"},"nativeSrc":"5907:32:101","nodeType":"YulFunctionCall","src":"5907:32:101"},"nativeSrc":"5904:119:101","nodeType":"YulIf","src":"5904:119:101"},{"nativeSrc":"6033:117:101","nodeType":"YulBlock","src":"6033:117:101","statements":[{"nativeSrc":"6048:15:101","nodeType":"YulVariableDeclaration","src":"6048:15:101","value":{"kind":"number","nativeSrc":"6062:1:101","nodeType":"YulLiteral","src":"6062:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6052:6:101","nodeType":"YulTypedName","src":"6052:6:101","type":""}]},{"nativeSrc":"6077:63:101","nodeType":"YulAssignment","src":"6077:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6112:9:101","nodeType":"YulIdentifier","src":"6112:9:101"},{"name":"offset","nativeSrc":"6123:6:101","nodeType":"YulIdentifier","src":"6123:6:101"}],"functionName":{"name":"add","nativeSrc":"6108:3:101","nodeType":"YulIdentifier","src":"6108:3:101"},"nativeSrc":"6108:22:101","nodeType":"YulFunctionCall","src":"6108:22:101"},{"name":"dataEnd","nativeSrc":"6132:7:101","nodeType":"YulIdentifier","src":"6132:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6087:20:101","nodeType":"YulIdentifier","src":"6087:20:101"},"nativeSrc":"6087:53:101","nodeType":"YulFunctionCall","src":"6087:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6077:6:101","nodeType":"YulIdentifier","src":"6077:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5828:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5864:9:101","nodeType":"YulTypedName","src":"5864:9:101","type":""},{"name":"dataEnd","nativeSrc":"5875:7:101","nodeType":"YulTypedName","src":"5875:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5887:6:101","nodeType":"YulTypedName","src":"5887:6:101","type":""}],"src":"5828:329:101"},{"body":{"nativeSrc":"6208:32:101","nodeType":"YulBlock","src":"6208:32:101","statements":[{"nativeSrc":"6218:16:101","nodeType":"YulAssignment","src":"6218:16:101","value":{"name":"value","nativeSrc":"6229:5:101","nodeType":"YulIdentifier","src":"6229:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6218:7:101","nodeType":"YulIdentifier","src":"6218:7:101"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"6163:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6190:5:101","nodeType":"YulTypedName","src":"6190:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6200:7:101","nodeType":"YulTypedName","src":"6200:7:101","type":""}],"src":"6163:77:101"},{"body":{"nativeSrc":"6311:53:101","nodeType":"YulBlock","src":"6311:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6328:3:101","nodeType":"YulIdentifier","src":"6328:3:101"},{"arguments":[{"name":"value","nativeSrc":"6351:5:101","nodeType":"YulIdentifier","src":"6351:5:101"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"6333:17:101","nodeType":"YulIdentifier","src":"6333:17:101"},"nativeSrc":"6333:24:101","nodeType":"YulFunctionCall","src":"6333:24:101"}],"functionName":{"name":"mstore","nativeSrc":"6321:6:101","nodeType":"YulIdentifier","src":"6321:6:101"},"nativeSrc":"6321:37:101","nodeType":"YulFunctionCall","src":"6321:37:101"},"nativeSrc":"6321:37:101","nodeType":"YulExpressionStatement","src":"6321:37:101"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"6246:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6299:5:101","nodeType":"YulTypedName","src":"6299:5:101","type":""},{"name":"pos","nativeSrc":"6306:3:101","nodeType":"YulTypedName","src":"6306:3:101","type":""}],"src":"6246:118:101"},{"body":{"nativeSrc":"6468:124:101","nodeType":"YulBlock","src":"6468:124:101","statements":[{"nativeSrc":"6478:26:101","nodeType":"YulAssignment","src":"6478:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6490:9:101","nodeType":"YulIdentifier","src":"6490:9:101"},{"kind":"number","nativeSrc":"6501:2:101","nodeType":"YulLiteral","src":"6501:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6486:3:101","nodeType":"YulIdentifier","src":"6486:3:101"},"nativeSrc":"6486:18:101","nodeType":"YulFunctionCall","src":"6486:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6478:4:101","nodeType":"YulIdentifier","src":"6478:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6558:6:101","nodeType":"YulIdentifier","src":"6558:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6571:9:101","nodeType":"YulIdentifier","src":"6571:9:101"},{"kind":"number","nativeSrc":"6582:1:101","nodeType":"YulLiteral","src":"6582:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6567:3:101","nodeType":"YulIdentifier","src":"6567:3:101"},"nativeSrc":"6567:17:101","nodeType":"YulFunctionCall","src":"6567:17:101"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"6514:43:101","nodeType":"YulIdentifier","src":"6514:43:101"},"nativeSrc":"6514:71:101","nodeType":"YulFunctionCall","src":"6514:71:101"},"nativeSrc":"6514:71:101","nodeType":"YulExpressionStatement","src":"6514:71:101"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"6370:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6440:9:101","nodeType":"YulTypedName","src":"6440:9:101","type":""},{"name":"value0","nativeSrc":"6452:6:101","nodeType":"YulTypedName","src":"6452:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6463:4:101","nodeType":"YulTypedName","src":"6463:4:101","type":""}],"src":"6370:222:101"},{"body":{"nativeSrc":"6667:51:101","nodeType":"YulBlock","src":"6667:51:101","statements":[{"nativeSrc":"6677:35:101","nodeType":"YulAssignment","src":"6677:35:101","value":{"arguments":[{"name":"value","nativeSrc":"6706:5:101","nodeType":"YulIdentifier","src":"6706:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6688:17:101","nodeType":"YulIdentifier","src":"6688:17:101"},"nativeSrc":"6688:24:101","nodeType":"YulFunctionCall","src":"6688:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6677:7:101","nodeType":"YulIdentifier","src":"6677:7:101"}]}]},"name":"cleanup_t_contract$_OracleInterface_$3666","nativeSrc":"6598:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6649:5:101","nodeType":"YulTypedName","src":"6649:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6659:7:101","nodeType":"YulTypedName","src":"6659:7:101","type":""}],"src":"6598:120:101"},{"body":{"nativeSrc":"6791:103:101","nodeType":"YulBlock","src":"6791:103:101","statements":[{"body":{"nativeSrc":"6872:16:101","nodeType":"YulBlock","src":"6872:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6881:1:101","nodeType":"YulLiteral","src":"6881:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6884:1:101","nodeType":"YulLiteral","src":"6884:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6874:6:101","nodeType":"YulIdentifier","src":"6874:6:101"},"nativeSrc":"6874:12:101","nodeType":"YulFunctionCall","src":"6874:12:101"},"nativeSrc":"6874:12:101","nodeType":"YulExpressionStatement","src":"6874:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6814:5:101","nodeType":"YulIdentifier","src":"6814:5:101"},{"arguments":[{"name":"value","nativeSrc":"6863:5:101","nodeType":"YulIdentifier","src":"6863:5:101"}],"functionName":{"name":"cleanup_t_contract$_OracleInterface_$3666","nativeSrc":"6821:41:101","nodeType":"YulIdentifier","src":"6821:41:101"},"nativeSrc":"6821:48:101","nodeType":"YulFunctionCall","src":"6821:48:101"}],"functionName":{"name":"eq","nativeSrc":"6811:2:101","nodeType":"YulIdentifier","src":"6811:2:101"},"nativeSrc":"6811:59:101","nodeType":"YulFunctionCall","src":"6811:59:101"}],"functionName":{"name":"iszero","nativeSrc":"6804:6:101","nodeType":"YulIdentifier","src":"6804:6:101"},"nativeSrc":"6804:67:101","nodeType":"YulFunctionCall","src":"6804:67:101"},"nativeSrc":"6801:87:101","nodeType":"YulIf","src":"6801:87:101"}]},"name":"validator_revert_t_contract$_OracleInterface_$3666","nativeSrc":"6724:170:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6784:5:101","nodeType":"YulTypedName","src":"6784:5:101","type":""}],"src":"6724:170:101"},{"body":{"nativeSrc":"6976:111:101","nodeType":"YulBlock","src":"6976:111:101","statements":[{"nativeSrc":"6986:29:101","nodeType":"YulAssignment","src":"6986:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"7008:6:101","nodeType":"YulIdentifier","src":"7008:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"6995:12:101","nodeType":"YulIdentifier","src":"6995:12:101"},"nativeSrc":"6995:20:101","nodeType":"YulFunctionCall","src":"6995:20:101"},"variableNames":[{"name":"value","nativeSrc":"6986:5:101","nodeType":"YulIdentifier","src":"6986:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7075:5:101","nodeType":"YulIdentifier","src":"7075:5:101"}],"functionName":{"name":"validator_revert_t_contract$_OracleInterface_$3666","nativeSrc":"7024:50:101","nodeType":"YulIdentifier","src":"7024:50:101"},"nativeSrc":"7024:57:101","nodeType":"YulFunctionCall","src":"7024:57:101"},"nativeSrc":"7024:57:101","nodeType":"YulExpressionStatement","src":"7024:57:101"}]},"name":"abi_decode_t_contract$_OracleInterface_$3666","nativeSrc":"6900:187:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6954:6:101","nodeType":"YulTypedName","src":"6954:6:101","type":""},{"name":"end","nativeSrc":"6962:3:101","nodeType":"YulTypedName","src":"6962:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6970:5:101","nodeType":"YulTypedName","src":"6970:5:101","type":""}],"src":"6900:187:101"},{"body":{"nativeSrc":"7200:415:101","nodeType":"YulBlock","src":"7200:415:101","statements":[{"body":{"nativeSrc":"7246:83:101","nodeType":"YulBlock","src":"7246:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7248:77:101","nodeType":"YulIdentifier","src":"7248:77:101"},"nativeSrc":"7248:79:101","nodeType":"YulFunctionCall","src":"7248:79:101"},"nativeSrc":"7248:79:101","nodeType":"YulExpressionStatement","src":"7248:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7221:7:101","nodeType":"YulIdentifier","src":"7221:7:101"},{"name":"headStart","nativeSrc":"7230:9:101","nodeType":"YulIdentifier","src":"7230:9:101"}],"functionName":{"name":"sub","nativeSrc":"7217:3:101","nodeType":"YulIdentifier","src":"7217:3:101"},"nativeSrc":"7217:23:101","nodeType":"YulFunctionCall","src":"7217:23:101"},{"kind":"number","nativeSrc":"7242:2:101","nodeType":"YulLiteral","src":"7242:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7213:3:101","nodeType":"YulIdentifier","src":"7213:3:101"},"nativeSrc":"7213:32:101","nodeType":"YulFunctionCall","src":"7213:32:101"},"nativeSrc":"7210:119:101","nodeType":"YulIf","src":"7210:119:101"},{"nativeSrc":"7339:117:101","nodeType":"YulBlock","src":"7339:117:101","statements":[{"nativeSrc":"7354:15:101","nodeType":"YulVariableDeclaration","src":"7354:15:101","value":{"kind":"number","nativeSrc":"7368:1:101","nodeType":"YulLiteral","src":"7368:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7358:6:101","nodeType":"YulTypedName","src":"7358:6:101","type":""}]},{"nativeSrc":"7383:63:101","nodeType":"YulAssignment","src":"7383:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7418:9:101","nodeType":"YulIdentifier","src":"7418:9:101"},{"name":"offset","nativeSrc":"7429:6:101","nodeType":"YulIdentifier","src":"7429:6:101"}],"functionName":{"name":"add","nativeSrc":"7414:3:101","nodeType":"YulIdentifier","src":"7414:3:101"},"nativeSrc":"7414:22:101","nodeType":"YulFunctionCall","src":"7414:22:101"},{"name":"dataEnd","nativeSrc":"7438:7:101","nodeType":"YulIdentifier","src":"7438:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7393:20:101","nodeType":"YulIdentifier","src":"7393:20:101"},"nativeSrc":"7393:53:101","nodeType":"YulFunctionCall","src":"7393:53:101"},"variableNames":[{"name":"value0","nativeSrc":"7383:6:101","nodeType":"YulIdentifier","src":"7383:6:101"}]}]},{"nativeSrc":"7466:142:101","nodeType":"YulBlock","src":"7466:142:101","statements":[{"nativeSrc":"7481:16:101","nodeType":"YulVariableDeclaration","src":"7481:16:101","value":{"kind":"number","nativeSrc":"7495:2:101","nodeType":"YulLiteral","src":"7495:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7485:6:101","nodeType":"YulTypedName","src":"7485:6:101","type":""}]},{"nativeSrc":"7511:87:101","nodeType":"YulAssignment","src":"7511:87:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7570:9:101","nodeType":"YulIdentifier","src":"7570:9:101"},{"name":"offset","nativeSrc":"7581:6:101","nodeType":"YulIdentifier","src":"7581:6:101"}],"functionName":{"name":"add","nativeSrc":"7566:3:101","nodeType":"YulIdentifier","src":"7566:3:101"},"nativeSrc":"7566:22:101","nodeType":"YulFunctionCall","src":"7566:22:101"},{"name":"dataEnd","nativeSrc":"7590:7:101","nodeType":"YulIdentifier","src":"7590:7:101"}],"functionName":{"name":"abi_decode_t_contract$_OracleInterface_$3666","nativeSrc":"7521:44:101","nodeType":"YulIdentifier","src":"7521:44:101"},"nativeSrc":"7521:77:101","nodeType":"YulFunctionCall","src":"7521:77:101"},"variableNames":[{"name":"value1","nativeSrc":"7511:6:101","nodeType":"YulIdentifier","src":"7511:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_contract$_OracleInterface_$3666","nativeSrc":"7093:522:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7162:9:101","nodeType":"YulTypedName","src":"7162:9:101","type":""},{"name":"dataEnd","nativeSrc":"7173:7:101","nodeType":"YulTypedName","src":"7173:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7185:6:101","nodeType":"YulTypedName","src":"7185:6:101","type":""},{"name":"value1","nativeSrc":"7193:6:101","nodeType":"YulTypedName","src":"7193:6:101","type":""}],"src":"7093:522:101"},{"body":{"nativeSrc":"7686:53:101","nodeType":"YulBlock","src":"7686:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7703:3:101","nodeType":"YulIdentifier","src":"7703:3:101"},{"arguments":[{"name":"value","nativeSrc":"7726:5:101","nodeType":"YulIdentifier","src":"7726:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7708:17:101","nodeType":"YulIdentifier","src":"7708:17:101"},"nativeSrc":"7708:24:101","nodeType":"YulFunctionCall","src":"7708:24:101"}],"functionName":{"name":"mstore","nativeSrc":"7696:6:101","nodeType":"YulIdentifier","src":"7696:6:101"},"nativeSrc":"7696:37:101","nodeType":"YulFunctionCall","src":"7696:37:101"},"nativeSrc":"7696:37:101","nodeType":"YulExpressionStatement","src":"7696:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7621:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7674:5:101","nodeType":"YulTypedName","src":"7674:5:101","type":""},{"name":"pos","nativeSrc":"7681:3:101","nodeType":"YulTypedName","src":"7681:3:101","type":""}],"src":"7621:118:101"},{"body":{"nativeSrc":"7843:124:101","nodeType":"YulBlock","src":"7843:124:101","statements":[{"nativeSrc":"7853:26:101","nodeType":"YulAssignment","src":"7853:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7865:9:101","nodeType":"YulIdentifier","src":"7865:9:101"},{"kind":"number","nativeSrc":"7876:2:101","nodeType":"YulLiteral","src":"7876:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7861:3:101","nodeType":"YulIdentifier","src":"7861:3:101"},"nativeSrc":"7861:18:101","nodeType":"YulFunctionCall","src":"7861:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7853:4:101","nodeType":"YulIdentifier","src":"7853:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7933:6:101","nodeType":"YulIdentifier","src":"7933:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"7946:9:101","nodeType":"YulIdentifier","src":"7946:9:101"},{"kind":"number","nativeSrc":"7957:1:101","nodeType":"YulLiteral","src":"7957:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7942:3:101","nodeType":"YulIdentifier","src":"7942:3:101"},"nativeSrc":"7942:17:101","nodeType":"YulFunctionCall","src":"7942:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7889:43:101","nodeType":"YulIdentifier","src":"7889:43:101"},"nativeSrc":"7889:71:101","nodeType":"YulFunctionCall","src":"7889:71:101"},"nativeSrc":"7889:71:101","nodeType":"YulExpressionStatement","src":"7889:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7745:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7815:9:101","nodeType":"YulTypedName","src":"7815:9:101","type":""},{"name":"value0","nativeSrc":"7827:6:101","nodeType":"YulTypedName","src":"7827:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7838:4:101","nodeType":"YulTypedName","src":"7838:4:101","type":""}],"src":"7745:222:101"},{"body":{"nativeSrc":"8005:28:101","nodeType":"YulBlock","src":"8005:28:101","statements":[{"nativeSrc":"8015:12:101","nodeType":"YulAssignment","src":"8015:12:101","value":{"name":"value","nativeSrc":"8022:5:101","nodeType":"YulIdentifier","src":"8022:5:101"},"variableNames":[{"name":"ret","nativeSrc":"8015:3:101","nodeType":"YulIdentifier","src":"8015:3:101"}]}]},"name":"identity","nativeSrc":"7973:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7991:5:101","nodeType":"YulTypedName","src":"7991:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"8001:3:101","nodeType":"YulTypedName","src":"8001:3:101","type":""}],"src":"7973:60:101"},{"body":{"nativeSrc":"8099:82:101","nodeType":"YulBlock","src":"8099:82:101","statements":[{"nativeSrc":"8109:66:101","nodeType":"YulAssignment","src":"8109:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8167:5:101","nodeType":"YulIdentifier","src":"8167:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"8149:17:101","nodeType":"YulIdentifier","src":"8149:17:101"},"nativeSrc":"8149:24:101","nodeType":"YulFunctionCall","src":"8149:24:101"}],"functionName":{"name":"identity","nativeSrc":"8140:8:101","nodeType":"YulIdentifier","src":"8140:8:101"},"nativeSrc":"8140:34:101","nodeType":"YulFunctionCall","src":"8140:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"8122:17:101","nodeType":"YulIdentifier","src":"8122:17:101"},"nativeSrc":"8122:53:101","nodeType":"YulFunctionCall","src":"8122:53:101"},"variableNames":[{"name":"converted","nativeSrc":"8109:9:101","nodeType":"YulIdentifier","src":"8109:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"8039:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8079:5:101","nodeType":"YulTypedName","src":"8079:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8089:9:101","nodeType":"YulTypedName","src":"8089:9:101","type":""}],"src":"8039:142:101"},{"body":{"nativeSrc":"8247:66:101","nodeType":"YulBlock","src":"8247:66:101","statements":[{"nativeSrc":"8257:50:101","nodeType":"YulAssignment","src":"8257:50:101","value":{"arguments":[{"name":"value","nativeSrc":"8301:5:101","nodeType":"YulIdentifier","src":"8301:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"8270:30:101","nodeType":"YulIdentifier","src":"8270:30:101"},"nativeSrc":"8270:37:101","nodeType":"YulFunctionCall","src":"8270:37:101"},"variableNames":[{"name":"converted","nativeSrc":"8257:9:101","nodeType":"YulIdentifier","src":"8257:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"8187:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8227:5:101","nodeType":"YulTypedName","src":"8227:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8237:9:101","nodeType":"YulTypedName","src":"8237:9:101","type":""}],"src":"8187:126:101"},{"body":{"nativeSrc":"8412:66:101","nodeType":"YulBlock","src":"8412:66:101","statements":[{"nativeSrc":"8422:50:101","nodeType":"YulAssignment","src":"8422:50:101","value":{"arguments":[{"name":"value","nativeSrc":"8466:5:101","nodeType":"YulIdentifier","src":"8466:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"8435:30:101","nodeType":"YulIdentifier","src":"8435:30:101"},"nativeSrc":"8435:37:101","nodeType":"YulFunctionCall","src":"8435:37:101"},"variableNames":[{"name":"converted","nativeSrc":"8422:9:101","nodeType":"YulIdentifier","src":"8422:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"8319:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8392:5:101","nodeType":"YulTypedName","src":"8392:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8402:9:101","nodeType":"YulTypedName","src":"8402:9:101","type":""}],"src":"8319:159:101"},{"body":{"nativeSrc":"8582:99:101","nodeType":"YulBlock","src":"8582:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8599:3:101","nodeType":"YulIdentifier","src":"8599:3:101"},{"arguments":[{"name":"value","nativeSrc":"8668:5:101","nodeType":"YulIdentifier","src":"8668:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"8604:63:101","nodeType":"YulIdentifier","src":"8604:63:101"},"nativeSrc":"8604:70:101","nodeType":"YulFunctionCall","src":"8604:70:101"}],"functionName":{"name":"mstore","nativeSrc":"8592:6:101","nodeType":"YulIdentifier","src":"8592:6:101"},"nativeSrc":"8592:83:101","nodeType":"YulFunctionCall","src":"8592:83:101"},"nativeSrc":"8592:83:101","nodeType":"YulExpressionStatement","src":"8592:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"8484:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8570:5:101","nodeType":"YulTypedName","src":"8570:5:101","type":""},{"name":"pos","nativeSrc":"8577:3:101","nodeType":"YulTypedName","src":"8577:3:101","type":""}],"src":"8484:197:101"},{"body":{"nativeSrc":"8818:157:101","nodeType":"YulBlock","src":"8818:157:101","statements":[{"nativeSrc":"8828:26:101","nodeType":"YulAssignment","src":"8828:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8840:9:101","nodeType":"YulIdentifier","src":"8840:9:101"},{"kind":"number","nativeSrc":"8851:2:101","nodeType":"YulLiteral","src":"8851:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8836:3:101","nodeType":"YulIdentifier","src":"8836:3:101"},"nativeSrc":"8836:18:101","nodeType":"YulFunctionCall","src":"8836:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8828:4:101","nodeType":"YulIdentifier","src":"8828:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8941:6:101","nodeType":"YulIdentifier","src":"8941:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8954:9:101","nodeType":"YulIdentifier","src":"8954:9:101"},{"kind":"number","nativeSrc":"8965:1:101","nodeType":"YulLiteral","src":"8965:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8950:3:101","nodeType":"YulIdentifier","src":"8950:3:101"},"nativeSrc":"8950:17:101","nodeType":"YulFunctionCall","src":"8950:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"8864:76:101","nodeType":"YulIdentifier","src":"8864:76:101"},"nativeSrc":"8864:104:101","nodeType":"YulFunctionCall","src":"8864:104:101"},"nativeSrc":"8864:104:101","nodeType":"YulExpressionStatement","src":"8864:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"8687:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8790:9:101","nodeType":"YulTypedName","src":"8790:9:101","type":""},{"name":"value0","nativeSrc":"8802:6:101","nodeType":"YulTypedName","src":"8802:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8813:4:101","nodeType":"YulTypedName","src":"8813:4:101","type":""}],"src":"8687:288:101"},{"body":{"nativeSrc":"9065:66:101","nodeType":"YulBlock","src":"9065:66:101","statements":[{"nativeSrc":"9075:50:101","nodeType":"YulAssignment","src":"9075:50:101","value":{"arguments":[{"name":"value","nativeSrc":"9119:5:101","nodeType":"YulIdentifier","src":"9119:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"9088:30:101","nodeType":"YulIdentifier","src":"9088:30:101"},"nativeSrc":"9088:37:101","nodeType":"YulFunctionCall","src":"9088:37:101"},"variableNames":[{"name":"converted","nativeSrc":"9075:9:101","nodeType":"YulIdentifier","src":"9075:9:101"}]}]},"name":"convert_t_contract$_OracleInterface_$3666_to_t_address","nativeSrc":"8981:150:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9045:5:101","nodeType":"YulTypedName","src":"9045:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"9055:9:101","nodeType":"YulTypedName","src":"9055:9:101","type":""}],"src":"8981:150:101"},{"body":{"nativeSrc":"9226:90:101","nodeType":"YulBlock","src":"9226:90:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9243:3:101","nodeType":"YulIdentifier","src":"9243:3:101"},{"arguments":[{"name":"value","nativeSrc":"9303:5:101","nodeType":"YulIdentifier","src":"9303:5:101"}],"functionName":{"name":"convert_t_contract$_OracleInterface_$3666_to_t_address","nativeSrc":"9248:54:101","nodeType":"YulIdentifier","src":"9248:54:101"},"nativeSrc":"9248:61:101","nodeType":"YulFunctionCall","src":"9248:61:101"}],"functionName":{"name":"mstore","nativeSrc":"9236:6:101","nodeType":"YulIdentifier","src":"9236:6:101"},"nativeSrc":"9236:74:101","nodeType":"YulFunctionCall","src":"9236:74:101"},"nativeSrc":"9236:74:101","nodeType":"YulExpressionStatement","src":"9236:74:101"}]},"name":"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack","nativeSrc":"9137:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9214:5:101","nodeType":"YulTypedName","src":"9214:5:101","type":""},{"name":"pos","nativeSrc":"9221:3:101","nodeType":"YulTypedName","src":"9221:3:101","type":""}],"src":"9137:179:101"},{"body":{"nativeSrc":"9444:148:101","nodeType":"YulBlock","src":"9444:148:101","statements":[{"nativeSrc":"9454:26:101","nodeType":"YulAssignment","src":"9454:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9466:9:101","nodeType":"YulIdentifier","src":"9466:9:101"},{"kind":"number","nativeSrc":"9477:2:101","nodeType":"YulLiteral","src":"9477:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9462:3:101","nodeType":"YulIdentifier","src":"9462:3:101"},"nativeSrc":"9462:18:101","nodeType":"YulFunctionCall","src":"9462:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9454:4:101","nodeType":"YulIdentifier","src":"9454:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9558:6:101","nodeType":"YulIdentifier","src":"9558:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"9571:9:101","nodeType":"YulIdentifier","src":"9571:9:101"},{"kind":"number","nativeSrc":"9582:1:101","nodeType":"YulLiteral","src":"9582:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9567:3:101","nodeType":"YulIdentifier","src":"9567:3:101"},"nativeSrc":"9567:17:101","nodeType":"YulFunctionCall","src":"9567:17:101"}],"functionName":{"name":"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack","nativeSrc":"9490:67:101","nodeType":"YulIdentifier","src":"9490:67:101"},"nativeSrc":"9490:95:101","nodeType":"YulFunctionCall","src":"9490:95:101"},"nativeSrc":"9490:95:101","nodeType":"YulExpressionStatement","src":"9490:95:101"}]},"name":"abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed","nativeSrc":"9322:270:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9416:9:101","nodeType":"YulTypedName","src":"9416:9:101","type":""},{"name":"value0","nativeSrc":"9428:6:101","nodeType":"YulTypedName","src":"9428:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9439:4:101","nodeType":"YulTypedName","src":"9439:4:101","type":""}],"src":"9322:270:101"},{"body":{"nativeSrc":"9626:152:101","nodeType":"YulBlock","src":"9626:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9643:1:101","nodeType":"YulLiteral","src":"9643:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9646:77:101","nodeType":"YulLiteral","src":"9646:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9636:6:101","nodeType":"YulIdentifier","src":"9636:6:101"},"nativeSrc":"9636:88:101","nodeType":"YulFunctionCall","src":"9636:88:101"},"nativeSrc":"9636:88:101","nodeType":"YulExpressionStatement","src":"9636:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9740:1:101","nodeType":"YulLiteral","src":"9740:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"9743:4:101","nodeType":"YulLiteral","src":"9743:4:101","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"9733:6:101","nodeType":"YulIdentifier","src":"9733:6:101"},"nativeSrc":"9733:15:101","nodeType":"YulFunctionCall","src":"9733:15:101"},"nativeSrc":"9733:15:101","nodeType":"YulExpressionStatement","src":"9733:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9764:1:101","nodeType":"YulLiteral","src":"9764:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9767:4:101","nodeType":"YulLiteral","src":"9767:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9757:6:101","nodeType":"YulIdentifier","src":"9757:6:101"},"nativeSrc":"9757:15:101","nodeType":"YulFunctionCall","src":"9757:15:101"},"nativeSrc":"9757:15:101","nodeType":"YulExpressionStatement","src":"9757:15:101"}]},"name":"panic_error_0x32","nativeSrc":"9598:180:101","nodeType":"YulFunctionDefinition","src":"9598:180:101"},{"body":{"nativeSrc":"9880:73:101","nodeType":"YulBlock","src":"9880:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9897:3:101","nodeType":"YulIdentifier","src":"9897:3:101"},{"name":"length","nativeSrc":"9902:6:101","nodeType":"YulIdentifier","src":"9902:6:101"}],"functionName":{"name":"mstore","nativeSrc":"9890:6:101","nodeType":"YulIdentifier","src":"9890:6:101"},"nativeSrc":"9890:19:101","nodeType":"YulFunctionCall","src":"9890:19:101"},"nativeSrc":"9890:19:101","nodeType":"YulExpressionStatement","src":"9890:19:101"},{"nativeSrc":"9918:29:101","nodeType":"YulAssignment","src":"9918:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"9937:3:101","nodeType":"YulIdentifier","src":"9937:3:101"},{"kind":"number","nativeSrc":"9942:4:101","nodeType":"YulLiteral","src":"9942:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9933:3:101","nodeType":"YulIdentifier","src":"9933:3:101"},"nativeSrc":"9933:14:101","nodeType":"YulFunctionCall","src":"9933:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"9918:11:101","nodeType":"YulIdentifier","src":"9918:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9784:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9852:3:101","nodeType":"YulTypedName","src":"9852:3:101","type":""},{"name":"length","nativeSrc":"9857:6:101","nodeType":"YulTypedName","src":"9857:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"9868:11:101","nodeType":"YulTypedName","src":"9868:11:101","type":""}],"src":"9784:169:101"},{"body":{"nativeSrc":"10065:125:101","nodeType":"YulBlock","src":"10065:125:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10087:6:101","nodeType":"YulIdentifier","src":"10087:6:101"},{"kind":"number","nativeSrc":"10095:1:101","nodeType":"YulLiteral","src":"10095:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10083:3:101","nodeType":"YulIdentifier","src":"10083:3:101"},"nativeSrc":"10083:14:101","nodeType":"YulFunctionCall","src":"10083:14:101"},{"hexValue":"76656e75732d70726f746f636f6c2f6f7261636c652f5265666572656e63654f","kind":"string","nativeSrc":"10099:34:101","nodeType":"YulLiteral","src":"10099:34:101","type":"","value":"venus-protocol/oracle/ReferenceO"}],"functionName":{"name":"mstore","nativeSrc":"10076:6:101","nodeType":"YulIdentifier","src":"10076:6:101"},"nativeSrc":"10076:58:101","nodeType":"YulFunctionCall","src":"10076:58:101"},"nativeSrc":"10076:58:101","nodeType":"YulExpressionStatement","src":"10076:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10155:6:101","nodeType":"YulIdentifier","src":"10155:6:101"},{"kind":"number","nativeSrc":"10163:2:101","nodeType":"YulLiteral","src":"10163:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10151:3:101","nodeType":"YulIdentifier","src":"10151:3:101"},"nativeSrc":"10151:15:101","nodeType":"YulFunctionCall","src":"10151:15:101"},{"hexValue":"7261636c652f707269636573","kind":"string","nativeSrc":"10168:14:101","nodeType":"YulLiteral","src":"10168:14:101","type":"","value":"racle/prices"}],"functionName":{"name":"mstore","nativeSrc":"10144:6:101","nodeType":"YulIdentifier","src":"10144:6:101"},"nativeSrc":"10144:39:101","nodeType":"YulFunctionCall","src":"10144:39:101"},"nativeSrc":"10144:39:101","nodeType":"YulExpressionStatement","src":"10144:39:101"}]},"name":"store_literal_in_memory_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8","nativeSrc":"9959:231:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10057:6:101","nodeType":"YulTypedName","src":"10057:6:101","type":""}],"src":"9959:231:101"},{"body":{"nativeSrc":"10342:220:101","nodeType":"YulBlock","src":"10342:220:101","statements":[{"nativeSrc":"10352:74:101","nodeType":"YulAssignment","src":"10352:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10418:3:101","nodeType":"YulIdentifier","src":"10418:3:101"},{"kind":"number","nativeSrc":"10423:2:101","nodeType":"YulLiteral","src":"10423:2:101","type":"","value":"44"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10359:58:101","nodeType":"YulIdentifier","src":"10359:58:101"},"nativeSrc":"10359:67:101","nodeType":"YulFunctionCall","src":"10359:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10352:3:101","nodeType":"YulIdentifier","src":"10352:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10524:3:101","nodeType":"YulIdentifier","src":"10524:3:101"}],"functionName":{"name":"store_literal_in_memory_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8","nativeSrc":"10435:88:101","nodeType":"YulIdentifier","src":"10435:88:101"},"nativeSrc":"10435:93:101","nodeType":"YulFunctionCall","src":"10435:93:101"},"nativeSrc":"10435:93:101","nodeType":"YulExpressionStatement","src":"10435:93:101"},{"nativeSrc":"10537:19:101","nodeType":"YulAssignment","src":"10537:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10548:3:101","nodeType":"YulIdentifier","src":"10548:3:101"},{"kind":"number","nativeSrc":"10553:2:101","nodeType":"YulLiteral","src":"10553:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10544:3:101","nodeType":"YulIdentifier","src":"10544:3:101"},"nativeSrc":"10544:12:101","nodeType":"YulFunctionCall","src":"10544:12:101"},"variableNames":[{"name":"end","nativeSrc":"10537:3:101","nodeType":"YulIdentifier","src":"10537:3:101"}]}]},"name":"abi_encode_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8_to_t_string_memory_ptr_fromStack","nativeSrc":"10196:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10330:3:101","nodeType":"YulTypedName","src":"10330:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10338:3:101","nodeType":"YulTypedName","src":"10338:3:101","type":""}],"src":"10196:366:101"},{"body":{"nativeSrc":"10739:248:101","nodeType":"YulBlock","src":"10739:248:101","statements":[{"nativeSrc":"10749:26:101","nodeType":"YulAssignment","src":"10749:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10761:9:101","nodeType":"YulIdentifier","src":"10761:9:101"},{"kind":"number","nativeSrc":"10772:2:101","nodeType":"YulLiteral","src":"10772:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10757:3:101","nodeType":"YulIdentifier","src":"10757:3:101"},"nativeSrc":"10757:18:101","nodeType":"YulFunctionCall","src":"10757:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10749:4:101","nodeType":"YulIdentifier","src":"10749:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10796:9:101","nodeType":"YulIdentifier","src":"10796:9:101"},{"kind":"number","nativeSrc":"10807:1:101","nodeType":"YulLiteral","src":"10807:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10792:3:101","nodeType":"YulIdentifier","src":"10792:3:101"},"nativeSrc":"10792:17:101","nodeType":"YulFunctionCall","src":"10792:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10815:4:101","nodeType":"YulIdentifier","src":"10815:4:101"},{"name":"headStart","nativeSrc":"10821:9:101","nodeType":"YulIdentifier","src":"10821:9:101"}],"functionName":{"name":"sub","nativeSrc":"10811:3:101","nodeType":"YulIdentifier","src":"10811:3:101"},"nativeSrc":"10811:20:101","nodeType":"YulFunctionCall","src":"10811:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10785:6:101","nodeType":"YulIdentifier","src":"10785:6:101"},"nativeSrc":"10785:47:101","nodeType":"YulFunctionCall","src":"10785:47:101"},"nativeSrc":"10785:47:101","nodeType":"YulExpressionStatement","src":"10785:47:101"},{"nativeSrc":"10841:139:101","nodeType":"YulAssignment","src":"10841:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10975:4:101","nodeType":"YulIdentifier","src":"10975:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8_to_t_string_memory_ptr_fromStack","nativeSrc":"10849:124:101","nodeType":"YulIdentifier","src":"10849:124:101"},"nativeSrc":"10849:131:101","nodeType":"YulFunctionCall","src":"10849:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10841:4:101","nodeType":"YulIdentifier","src":"10841:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10568:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10719:9:101","nodeType":"YulTypedName","src":"10719:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10734:4:101","nodeType":"YulTypedName","src":"10734:4:101","type":""}],"src":"10568:419:101"},{"body":{"nativeSrc":"11099:122:101","nodeType":"YulBlock","src":"11099:122:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11121:6:101","nodeType":"YulIdentifier","src":"11121:6:101"},{"kind":"number","nativeSrc":"11129:1:101","nodeType":"YulLiteral","src":"11129:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11117:3:101","nodeType":"YulIdentifier","src":"11117:3:101"},"nativeSrc":"11117:14:101","nodeType":"YulFunctionCall","src":"11117:14:101"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"11133:34:101","nodeType":"YulLiteral","src":"11133:34:101","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"11110:6:101","nodeType":"YulIdentifier","src":"11110:6:101"},"nativeSrc":"11110:58:101","nodeType":"YulFunctionCall","src":"11110:58:101"},"nativeSrc":"11110:58:101","nodeType":"YulExpressionStatement","src":"11110:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11189:6:101","nodeType":"YulIdentifier","src":"11189:6:101"},{"kind":"number","nativeSrc":"11197:2:101","nodeType":"YulLiteral","src":"11197:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11185:3:101","nodeType":"YulIdentifier","src":"11185:3:101"},"nativeSrc":"11185:15:101","nodeType":"YulFunctionCall","src":"11185:15:101"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"11202:11:101","nodeType":"YulLiteral","src":"11202:11:101","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"11178:6:101","nodeType":"YulIdentifier","src":"11178:6:101"},"nativeSrc":"11178:36:101","nodeType":"YulFunctionCall","src":"11178:36:101"},"nativeSrc":"11178:36:101","nodeType":"YulExpressionStatement","src":"11178:36:101"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"10993:228:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11091:6:101","nodeType":"YulTypedName","src":"11091:6:101","type":""}],"src":"10993:228:101"},{"body":{"nativeSrc":"11373:220:101","nodeType":"YulBlock","src":"11373:220:101","statements":[{"nativeSrc":"11383:74:101","nodeType":"YulAssignment","src":"11383:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11449:3:101","nodeType":"YulIdentifier","src":"11449:3:101"},{"kind":"number","nativeSrc":"11454:2:101","nodeType":"YulLiteral","src":"11454:2:101","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11390:58:101","nodeType":"YulIdentifier","src":"11390:58:101"},"nativeSrc":"11390:67:101","nodeType":"YulFunctionCall","src":"11390:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11383:3:101","nodeType":"YulIdentifier","src":"11383:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11555:3:101","nodeType":"YulIdentifier","src":"11555:3:101"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"11466:88:101","nodeType":"YulIdentifier","src":"11466:88:101"},"nativeSrc":"11466:93:101","nodeType":"YulFunctionCall","src":"11466:93:101"},"nativeSrc":"11466:93:101","nodeType":"YulExpressionStatement","src":"11466:93:101"},{"nativeSrc":"11568:19:101","nodeType":"YulAssignment","src":"11568:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11579:3:101","nodeType":"YulIdentifier","src":"11579:3:101"},{"kind":"number","nativeSrc":"11584:2:101","nodeType":"YulLiteral","src":"11584:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11575:3:101","nodeType":"YulIdentifier","src":"11575:3:101"},"nativeSrc":"11575:12:101","nodeType":"YulFunctionCall","src":"11575:12:101"},"variableNames":[{"name":"end","nativeSrc":"11568:3:101","nodeType":"YulIdentifier","src":"11568:3:101"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"11227:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11361:3:101","nodeType":"YulTypedName","src":"11361:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11369:3:101","nodeType":"YulTypedName","src":"11369:3:101","type":""}],"src":"11227:366:101"},{"body":{"nativeSrc":"11770:248:101","nodeType":"YulBlock","src":"11770:248:101","statements":[{"nativeSrc":"11780:26:101","nodeType":"YulAssignment","src":"11780:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11792:9:101","nodeType":"YulIdentifier","src":"11792:9:101"},{"kind":"number","nativeSrc":"11803:2:101","nodeType":"YulLiteral","src":"11803:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11788:3:101","nodeType":"YulIdentifier","src":"11788:3:101"},"nativeSrc":"11788:18:101","nodeType":"YulFunctionCall","src":"11788:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11780:4:101","nodeType":"YulIdentifier","src":"11780:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11827:9:101","nodeType":"YulIdentifier","src":"11827:9:101"},{"kind":"number","nativeSrc":"11838:1:101","nodeType":"YulLiteral","src":"11838:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11823:3:101","nodeType":"YulIdentifier","src":"11823:3:101"},"nativeSrc":"11823:17:101","nodeType":"YulFunctionCall","src":"11823:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11846:4:101","nodeType":"YulIdentifier","src":"11846:4:101"},{"name":"headStart","nativeSrc":"11852:9:101","nodeType":"YulIdentifier","src":"11852:9:101"}],"functionName":{"name":"sub","nativeSrc":"11842:3:101","nodeType":"YulIdentifier","src":"11842:3:101"},"nativeSrc":"11842:20:101","nodeType":"YulFunctionCall","src":"11842:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11816:6:101","nodeType":"YulIdentifier","src":"11816:6:101"},"nativeSrc":"11816:47:101","nodeType":"YulFunctionCall","src":"11816:47:101"},"nativeSrc":"11816:47:101","nodeType":"YulExpressionStatement","src":"11816:47:101"},{"nativeSrc":"11872:139:101","nodeType":"YulAssignment","src":"11872:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12006:4:101","nodeType":"YulIdentifier","src":"12006:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"11880:124:101","nodeType":"YulIdentifier","src":"11880:124:101"},"nativeSrc":"11880:131:101","nodeType":"YulFunctionCall","src":"11880:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11872:4:101","nodeType":"YulIdentifier","src":"11872:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11599:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11750:9:101","nodeType":"YulTypedName","src":"11750:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11765:4:101","nodeType":"YulTypedName","src":"11765:4:101","type":""}],"src":"11599:419:101"},{"body":{"nativeSrc":"12130:127:101","nodeType":"YulBlock","src":"12130:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12152:6:101","nodeType":"YulIdentifier","src":"12152:6:101"},{"kind":"number","nativeSrc":"12160:1:101","nodeType":"YulLiteral","src":"12160:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12148:3:101","nodeType":"YulIdentifier","src":"12148:3:101"},"nativeSrc":"12148:14:101","nodeType":"YulFunctionCall","src":"12148:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"12164:34:101","nodeType":"YulLiteral","src":"12164:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"12141:6:101","nodeType":"YulIdentifier","src":"12141:6:101"},"nativeSrc":"12141:58:101","nodeType":"YulFunctionCall","src":"12141:58:101"},"nativeSrc":"12141:58:101","nodeType":"YulExpressionStatement","src":"12141:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12220:6:101","nodeType":"YulIdentifier","src":"12220:6:101"},{"kind":"number","nativeSrc":"12228:2:101","nodeType":"YulLiteral","src":"12228:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12216:3:101","nodeType":"YulIdentifier","src":"12216:3:101"},"nativeSrc":"12216:15:101","nodeType":"YulFunctionCall","src":"12216:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"12233:16:101","nodeType":"YulLiteral","src":"12233:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"12209:6:101","nodeType":"YulIdentifier","src":"12209:6:101"},"nativeSrc":"12209:41:101","nodeType":"YulFunctionCall","src":"12209:41:101"},"nativeSrc":"12209:41:101","nodeType":"YulExpressionStatement","src":"12209:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"12024:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12122:6:101","nodeType":"YulTypedName","src":"12122:6:101","type":""}],"src":"12024:233:101"},{"body":{"nativeSrc":"12409:220:101","nodeType":"YulBlock","src":"12409:220:101","statements":[{"nativeSrc":"12419:74:101","nodeType":"YulAssignment","src":"12419:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12485:3:101","nodeType":"YulIdentifier","src":"12485:3:101"},{"kind":"number","nativeSrc":"12490:2:101","nodeType":"YulLiteral","src":"12490:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12426:58:101","nodeType":"YulIdentifier","src":"12426:58:101"},"nativeSrc":"12426:67:101","nodeType":"YulFunctionCall","src":"12426:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12419:3:101","nodeType":"YulIdentifier","src":"12419:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12591:3:101","nodeType":"YulIdentifier","src":"12591:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"12502:88:101","nodeType":"YulIdentifier","src":"12502:88:101"},"nativeSrc":"12502:93:101","nodeType":"YulFunctionCall","src":"12502:93:101"},"nativeSrc":"12502:93:101","nodeType":"YulExpressionStatement","src":"12502:93:101"},{"nativeSrc":"12604:19:101","nodeType":"YulAssignment","src":"12604:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12615:3:101","nodeType":"YulIdentifier","src":"12615:3:101"},{"kind":"number","nativeSrc":"12620:2:101","nodeType":"YulLiteral","src":"12620:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12611:3:101","nodeType":"YulIdentifier","src":"12611:3:101"},"nativeSrc":"12611:12:101","nodeType":"YulFunctionCall","src":"12611:12:101"},"variableNames":[{"name":"end","nativeSrc":"12604:3:101","nodeType":"YulIdentifier","src":"12604:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"12263:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12397:3:101","nodeType":"YulTypedName","src":"12397:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12405:3:101","nodeType":"YulTypedName","src":"12405:3:101","type":""}],"src":"12263:366:101"},{"body":{"nativeSrc":"12806:248:101","nodeType":"YulBlock","src":"12806:248:101","statements":[{"nativeSrc":"12816:26:101","nodeType":"YulAssignment","src":"12816:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12828:9:101","nodeType":"YulIdentifier","src":"12828:9:101"},{"kind":"number","nativeSrc":"12839:2:101","nodeType":"YulLiteral","src":"12839:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12824:3:101","nodeType":"YulIdentifier","src":"12824:3:101"},"nativeSrc":"12824:18:101","nodeType":"YulFunctionCall","src":"12824:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12816:4:101","nodeType":"YulIdentifier","src":"12816:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12863:9:101","nodeType":"YulIdentifier","src":"12863:9:101"},{"kind":"number","nativeSrc":"12874:1:101","nodeType":"YulLiteral","src":"12874:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12859:3:101","nodeType":"YulIdentifier","src":"12859:3:101"},"nativeSrc":"12859:17:101","nodeType":"YulFunctionCall","src":"12859:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12882:4:101","nodeType":"YulIdentifier","src":"12882:4:101"},{"name":"headStart","nativeSrc":"12888:9:101","nodeType":"YulIdentifier","src":"12888:9:101"}],"functionName":{"name":"sub","nativeSrc":"12878:3:101","nodeType":"YulIdentifier","src":"12878:3:101"},"nativeSrc":"12878:20:101","nodeType":"YulFunctionCall","src":"12878:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12852:6:101","nodeType":"YulIdentifier","src":"12852:6:101"},"nativeSrc":"12852:47:101","nodeType":"YulFunctionCall","src":"12852:47:101"},"nativeSrc":"12852:47:101","nodeType":"YulExpressionStatement","src":"12852:47:101"},{"nativeSrc":"12908:139:101","nodeType":"YulAssignment","src":"12908:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13042:4:101","nodeType":"YulIdentifier","src":"13042:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"12916:124:101","nodeType":"YulIdentifier","src":"12916:124:101"},"nativeSrc":"12916:131:101","nodeType":"YulFunctionCall","src":"12916:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12908:4:101","nodeType":"YulIdentifier","src":"12908:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12635:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12786:9:101","nodeType":"YulTypedName","src":"12786:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12801:4:101","nodeType":"YulTypedName","src":"12801:4:101","type":""}],"src":"12635:419:101"},{"body":{"nativeSrc":"13113:32:101","nodeType":"YulBlock","src":"13113:32:101","statements":[{"nativeSrc":"13123:16:101","nodeType":"YulAssignment","src":"13123:16:101","value":{"name":"value","nativeSrc":"13134:5:101","nodeType":"YulIdentifier","src":"13134:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"13123:7:101","nodeType":"YulIdentifier","src":"13123:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"13060:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13095:5:101","nodeType":"YulTypedName","src":"13095:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"13105:7:101","nodeType":"YulTypedName","src":"13105:7:101","type":""}],"src":"13060:85:101"},{"body":{"nativeSrc":"13194:43:101","nodeType":"YulBlock","src":"13194:43:101","statements":[{"nativeSrc":"13204:27:101","nodeType":"YulAssignment","src":"13204:27:101","value":{"arguments":[{"name":"value","nativeSrc":"13219:5:101","nodeType":"YulIdentifier","src":"13219:5:101"},{"kind":"number","nativeSrc":"13226:4:101","nodeType":"YulLiteral","src":"13226:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"13215:3:101","nodeType":"YulIdentifier","src":"13215:3:101"},"nativeSrc":"13215:16:101","nodeType":"YulFunctionCall","src":"13215:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"13204:7:101","nodeType":"YulIdentifier","src":"13204:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"13151:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13176:5:101","nodeType":"YulTypedName","src":"13176:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"13186:7:101","nodeType":"YulTypedName","src":"13186:7:101","type":""}],"src":"13151:86:101"},{"body":{"nativeSrc":"13309:88:101","nodeType":"YulBlock","src":"13309:88:101","statements":[{"nativeSrc":"13319:72:101","nodeType":"YulAssignment","src":"13319:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13383:5:101","nodeType":"YulIdentifier","src":"13383:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"13357:25:101","nodeType":"YulIdentifier","src":"13357:25:101"},"nativeSrc":"13357:32:101","nodeType":"YulFunctionCall","src":"13357:32:101"}],"functionName":{"name":"identity","nativeSrc":"13348:8:101","nodeType":"YulIdentifier","src":"13348:8:101"},"nativeSrc":"13348:42:101","nodeType":"YulFunctionCall","src":"13348:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"13332:15:101","nodeType":"YulIdentifier","src":"13332:15:101"},"nativeSrc":"13332:59:101","nodeType":"YulFunctionCall","src":"13332:59:101"},"variableNames":[{"name":"converted","nativeSrc":"13319:9:101","nodeType":"YulIdentifier","src":"13319:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"13243:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13289:5:101","nodeType":"YulTypedName","src":"13289:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"13299:9:101","nodeType":"YulTypedName","src":"13299:9:101","type":""}],"src":"13243:154:101"},{"body":{"nativeSrc":"13474:72:101","nodeType":"YulBlock","src":"13474:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13491:3:101","nodeType":"YulIdentifier","src":"13491:3:101"},{"arguments":[{"name":"value","nativeSrc":"13533:5:101","nodeType":"YulIdentifier","src":"13533:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"13496:36:101","nodeType":"YulIdentifier","src":"13496:36:101"},"nativeSrc":"13496:43:101","nodeType":"YulFunctionCall","src":"13496:43:101"}],"functionName":{"name":"mstore","nativeSrc":"13484:6:101","nodeType":"YulIdentifier","src":"13484:6:101"},"nativeSrc":"13484:56:101","nodeType":"YulFunctionCall","src":"13484:56:101"},"nativeSrc":"13484:56:101","nodeType":"YulExpressionStatement","src":"13484:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"13403:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13462:5:101","nodeType":"YulTypedName","src":"13462:5:101","type":""},{"name":"pos","nativeSrc":"13469:3:101","nodeType":"YulTypedName","src":"13469:3:101","type":""}],"src":"13403:143:101"},{"body":{"nativeSrc":"13656:130:101","nodeType":"YulBlock","src":"13656:130:101","statements":[{"nativeSrc":"13666:26:101","nodeType":"YulAssignment","src":"13666:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13678:9:101","nodeType":"YulIdentifier","src":"13678:9:101"},{"kind":"number","nativeSrc":"13689:2:101","nodeType":"YulLiteral","src":"13689:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13674:3:101","nodeType":"YulIdentifier","src":"13674:3:101"},"nativeSrc":"13674:18:101","nodeType":"YulFunctionCall","src":"13674:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13666:4:101","nodeType":"YulIdentifier","src":"13666:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13752:6:101","nodeType":"YulIdentifier","src":"13752:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13765:9:101","nodeType":"YulIdentifier","src":"13765:9:101"},{"kind":"number","nativeSrc":"13776:1:101","nodeType":"YulLiteral","src":"13776:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13761:3:101","nodeType":"YulIdentifier","src":"13761:3:101"},"nativeSrc":"13761:17:101","nodeType":"YulFunctionCall","src":"13761:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"13702:49:101","nodeType":"YulIdentifier","src":"13702:49:101"},"nativeSrc":"13702:77:101","nodeType":"YulFunctionCall","src":"13702:77:101"},"nativeSrc":"13702:77:101","nodeType":"YulExpressionStatement","src":"13702:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"13552:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13628:9:101","nodeType":"YulTypedName","src":"13628:9:101","type":""},{"name":"value0","nativeSrc":"13640:6:101","nodeType":"YulTypedName","src":"13640:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13651:4:101","nodeType":"YulTypedName","src":"13651:4:101","type":""}],"src":"13552:234:101"},{"body":{"nativeSrc":"13918:206:101","nodeType":"YulBlock","src":"13918:206:101","statements":[{"nativeSrc":"13928:26:101","nodeType":"YulAssignment","src":"13928:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13940:9:101","nodeType":"YulIdentifier","src":"13940:9:101"},{"kind":"number","nativeSrc":"13951:2:101","nodeType":"YulLiteral","src":"13951:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13936:3:101","nodeType":"YulIdentifier","src":"13936:3:101"},"nativeSrc":"13936:18:101","nodeType":"YulFunctionCall","src":"13936:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13928:4:101","nodeType":"YulIdentifier","src":"13928:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14008:6:101","nodeType":"YulIdentifier","src":"14008:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14021:9:101","nodeType":"YulIdentifier","src":"14021:9:101"},{"kind":"number","nativeSrc":"14032:1:101","nodeType":"YulLiteral","src":"14032:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14017:3:101","nodeType":"YulIdentifier","src":"14017:3:101"},"nativeSrc":"14017:17:101","nodeType":"YulFunctionCall","src":"14017:17:101"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"13964:43:101","nodeType":"YulIdentifier","src":"13964:43:101"},"nativeSrc":"13964:71:101","nodeType":"YulFunctionCall","src":"13964:71:101"},"nativeSrc":"13964:71:101","nodeType":"YulExpressionStatement","src":"13964:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14089:6:101","nodeType":"YulIdentifier","src":"14089:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14102:9:101","nodeType":"YulIdentifier","src":"14102:9:101"},{"kind":"number","nativeSrc":"14113:2:101","nodeType":"YulLiteral","src":"14113:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14098:3:101","nodeType":"YulIdentifier","src":"14098:3:101"},"nativeSrc":"14098:18:101","nodeType":"YulFunctionCall","src":"14098:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14045:43:101","nodeType":"YulIdentifier","src":"14045:43:101"},"nativeSrc":"14045:72:101","nodeType":"YulFunctionCall","src":"14045:72:101"},"nativeSrc":"14045:72:101","nodeType":"YulExpressionStatement","src":"14045:72:101"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nativeSrc":"13792:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13882:9:101","nodeType":"YulTypedName","src":"13882:9:101","type":""},{"name":"value1","nativeSrc":"13894:6:101","nodeType":"YulTypedName","src":"13894:6:101","type":""},{"name":"value0","nativeSrc":"13902:6:101","nodeType":"YulTypedName","src":"13902:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13913:4:101","nodeType":"YulTypedName","src":"13913:4:101","type":""}],"src":"13792:332:101"},{"body":{"nativeSrc":"14193:80:101","nodeType":"YulBlock","src":"14193:80:101","statements":[{"nativeSrc":"14203:22:101","nodeType":"YulAssignment","src":"14203:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"14218:6:101","nodeType":"YulIdentifier","src":"14218:6:101"}],"functionName":{"name":"mload","nativeSrc":"14212:5:101","nodeType":"YulIdentifier","src":"14212:5:101"},"nativeSrc":"14212:13:101","nodeType":"YulFunctionCall","src":"14212:13:101"},"variableNames":[{"name":"value","nativeSrc":"14203:5:101","nodeType":"YulIdentifier","src":"14203:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14261:5:101","nodeType":"YulIdentifier","src":"14261:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"14234:26:101","nodeType":"YulIdentifier","src":"14234:26:101"},"nativeSrc":"14234:33:101","nodeType":"YulFunctionCall","src":"14234:33:101"},"nativeSrc":"14234:33:101","nodeType":"YulExpressionStatement","src":"14234:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"14130:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14171:6:101","nodeType":"YulTypedName","src":"14171:6:101","type":""},{"name":"end","nativeSrc":"14179:3:101","nodeType":"YulTypedName","src":"14179:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14187:5:101","nodeType":"YulTypedName","src":"14187:5:101","type":""}],"src":"14130:143:101"},{"body":{"nativeSrc":"14356:274:101","nodeType":"YulBlock","src":"14356:274:101","statements":[{"body":{"nativeSrc":"14402:83:101","nodeType":"YulBlock","src":"14402:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14404:77:101","nodeType":"YulIdentifier","src":"14404:77:101"},"nativeSrc":"14404:79:101","nodeType":"YulFunctionCall","src":"14404:79:101"},"nativeSrc":"14404:79:101","nodeType":"YulExpressionStatement","src":"14404:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14377:7:101","nodeType":"YulIdentifier","src":"14377:7:101"},{"name":"headStart","nativeSrc":"14386:9:101","nodeType":"YulIdentifier","src":"14386:9:101"}],"functionName":{"name":"sub","nativeSrc":"14373:3:101","nodeType":"YulIdentifier","src":"14373:3:101"},"nativeSrc":"14373:23:101","nodeType":"YulFunctionCall","src":"14373:23:101"},{"kind":"number","nativeSrc":"14398:2:101","nodeType":"YulLiteral","src":"14398:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14369:3:101","nodeType":"YulIdentifier","src":"14369:3:101"},"nativeSrc":"14369:32:101","nodeType":"YulFunctionCall","src":"14369:32:101"},"nativeSrc":"14366:119:101","nodeType":"YulIf","src":"14366:119:101"},{"nativeSrc":"14495:128:101","nodeType":"YulBlock","src":"14495:128:101","statements":[{"nativeSrc":"14510:15:101","nodeType":"YulVariableDeclaration","src":"14510:15:101","value":{"kind":"number","nativeSrc":"14524:1:101","nodeType":"YulLiteral","src":"14524:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14514:6:101","nodeType":"YulTypedName","src":"14514:6:101","type":""}]},{"nativeSrc":"14539:74:101","nodeType":"YulAssignment","src":"14539:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14585:9:101","nodeType":"YulIdentifier","src":"14585:9:101"},{"name":"offset","nativeSrc":"14596:6:101","nodeType":"YulIdentifier","src":"14596:6:101"}],"functionName":{"name":"add","nativeSrc":"14581:3:101","nodeType":"YulIdentifier","src":"14581:3:101"},"nativeSrc":"14581:22:101","nodeType":"YulFunctionCall","src":"14581:22:101"},{"name":"dataEnd","nativeSrc":"14605:7:101","nodeType":"YulIdentifier","src":"14605:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"14549:31:101","nodeType":"YulIdentifier","src":"14549:31:101"},"nativeSrc":"14549:64:101","nodeType":"YulFunctionCall","src":"14549:64:101"},"variableNames":[{"name":"value0","nativeSrc":"14539:6:101","nodeType":"YulIdentifier","src":"14539:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"14279:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14326:9:101","nodeType":"YulTypedName","src":"14326:9:101","type":""},{"name":"dataEnd","nativeSrc":"14337:7:101","nodeType":"YulTypedName","src":"14337:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14349:6:101","nodeType":"YulTypedName","src":"14349:6:101","type":""}],"src":"14279:351:101"},{"body":{"nativeSrc":"14742:76:101","nodeType":"YulBlock","src":"14742:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14764:6:101","nodeType":"YulIdentifier","src":"14764:6:101"},{"kind":"number","nativeSrc":"14772:1:101","nodeType":"YulLiteral","src":"14772:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14760:3:101","nodeType":"YulIdentifier","src":"14760:3:101"},"nativeSrc":"14760:14:101","nodeType":"YulFunctionCall","src":"14760:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"14776:34:101","nodeType":"YulLiteral","src":"14776:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"14753:6:101","nodeType":"YulIdentifier","src":"14753:6:101"},"nativeSrc":"14753:58:101","nodeType":"YulFunctionCall","src":"14753:58:101"},"nativeSrc":"14753:58:101","nodeType":"YulExpressionStatement","src":"14753:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"14636:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14734:6:101","nodeType":"YulTypedName","src":"14734:6:101","type":""}],"src":"14636:182:101"},{"body":{"nativeSrc":"14970:220:101","nodeType":"YulBlock","src":"14970:220:101","statements":[{"nativeSrc":"14980:74:101","nodeType":"YulAssignment","src":"14980:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15046:3:101","nodeType":"YulIdentifier","src":"15046:3:101"},{"kind":"number","nativeSrc":"15051:2:101","nodeType":"YulLiteral","src":"15051:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14987:58:101","nodeType":"YulIdentifier","src":"14987:58:101"},"nativeSrc":"14987:67:101","nodeType":"YulFunctionCall","src":"14987:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14980:3:101","nodeType":"YulIdentifier","src":"14980:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15152:3:101","nodeType":"YulIdentifier","src":"15152:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"15063:88:101","nodeType":"YulIdentifier","src":"15063:88:101"},"nativeSrc":"15063:93:101","nodeType":"YulFunctionCall","src":"15063:93:101"},"nativeSrc":"15063:93:101","nodeType":"YulExpressionStatement","src":"15063:93:101"},{"nativeSrc":"15165:19:101","nodeType":"YulAssignment","src":"15165:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15176:3:101","nodeType":"YulIdentifier","src":"15176:3:101"},{"kind":"number","nativeSrc":"15181:2:101","nodeType":"YulLiteral","src":"15181:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15172:3:101","nodeType":"YulIdentifier","src":"15172:3:101"},"nativeSrc":"15172:12:101","nodeType":"YulFunctionCall","src":"15172:12:101"},"variableNames":[{"name":"end","nativeSrc":"15165:3:101","nodeType":"YulIdentifier","src":"15165:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"14824:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14958:3:101","nodeType":"YulTypedName","src":"14958:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14966:3:101","nodeType":"YulTypedName","src":"14966:3:101","type":""}],"src":"14824:366:101"},{"body":{"nativeSrc":"15367:248:101","nodeType":"YulBlock","src":"15367:248:101","statements":[{"nativeSrc":"15377:26:101","nodeType":"YulAssignment","src":"15377:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15389:9:101","nodeType":"YulIdentifier","src":"15389:9:101"},{"kind":"number","nativeSrc":"15400:2:101","nodeType":"YulLiteral","src":"15400:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15385:3:101","nodeType":"YulIdentifier","src":"15385:3:101"},"nativeSrc":"15385:18:101","nodeType":"YulFunctionCall","src":"15385:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15377:4:101","nodeType":"YulIdentifier","src":"15377:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15424:9:101","nodeType":"YulIdentifier","src":"15424:9:101"},{"kind":"number","nativeSrc":"15435:1:101","nodeType":"YulLiteral","src":"15435:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15420:3:101","nodeType":"YulIdentifier","src":"15420:3:101"},"nativeSrc":"15420:17:101","nodeType":"YulFunctionCall","src":"15420:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15443:4:101","nodeType":"YulIdentifier","src":"15443:4:101"},{"name":"headStart","nativeSrc":"15449:9:101","nodeType":"YulIdentifier","src":"15449:9:101"}],"functionName":{"name":"sub","nativeSrc":"15439:3:101","nodeType":"YulIdentifier","src":"15439:3:101"},"nativeSrc":"15439:20:101","nodeType":"YulFunctionCall","src":"15439:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15413:6:101","nodeType":"YulIdentifier","src":"15413:6:101"},"nativeSrc":"15413:47:101","nodeType":"YulFunctionCall","src":"15413:47:101"},"nativeSrc":"15413:47:101","nodeType":"YulExpressionStatement","src":"15413:47:101"},{"nativeSrc":"15469:139:101","nodeType":"YulAssignment","src":"15469:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15603:4:101","nodeType":"YulIdentifier","src":"15603:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"15477:124:101","nodeType":"YulIdentifier","src":"15477:124:101"},"nativeSrc":"15477:131:101","nodeType":"YulFunctionCall","src":"15477:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15469:4:101","nodeType":"YulIdentifier","src":"15469:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15196:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15347:9:101","nodeType":"YulTypedName","src":"15347:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15362:4:101","nodeType":"YulTypedName","src":"15362:4:101","type":""}],"src":"15196:419:101"},{"body":{"nativeSrc":"15727:124:101","nodeType":"YulBlock","src":"15727:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15749:6:101","nodeType":"YulIdentifier","src":"15749:6:101"},{"kind":"number","nativeSrc":"15757:1:101","nodeType":"YulLiteral","src":"15757:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15745:3:101","nodeType":"YulIdentifier","src":"15745:3:101"},"nativeSrc":"15745:14:101","nodeType":"YulFunctionCall","src":"15745:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"15761:34:101","nodeType":"YulLiteral","src":"15761:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"15738:6:101","nodeType":"YulIdentifier","src":"15738:6:101"},"nativeSrc":"15738:58:101","nodeType":"YulFunctionCall","src":"15738:58:101"},"nativeSrc":"15738:58:101","nodeType":"YulExpressionStatement","src":"15738:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15817:6:101","nodeType":"YulIdentifier","src":"15817:6:101"},{"kind":"number","nativeSrc":"15825:2:101","nodeType":"YulLiteral","src":"15825:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15813:3:101","nodeType":"YulIdentifier","src":"15813:3:101"},"nativeSrc":"15813:15:101","nodeType":"YulFunctionCall","src":"15813:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"15830:13:101","nodeType":"YulLiteral","src":"15830:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"15806:6:101","nodeType":"YulIdentifier","src":"15806:6:101"},"nativeSrc":"15806:38:101","nodeType":"YulFunctionCall","src":"15806:38:101"},"nativeSrc":"15806:38:101","nodeType":"YulExpressionStatement","src":"15806:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"15621:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15719:6:101","nodeType":"YulTypedName","src":"15719:6:101","type":""}],"src":"15621:230:101"},{"body":{"nativeSrc":"16003:220:101","nodeType":"YulBlock","src":"16003:220:101","statements":[{"nativeSrc":"16013:74:101","nodeType":"YulAssignment","src":"16013:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"16079:3:101","nodeType":"YulIdentifier","src":"16079:3:101"},{"kind":"number","nativeSrc":"16084:2:101","nodeType":"YulLiteral","src":"16084:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16020:58:101","nodeType":"YulIdentifier","src":"16020:58:101"},"nativeSrc":"16020:67:101","nodeType":"YulFunctionCall","src":"16020:67:101"},"variableNames":[{"name":"pos","nativeSrc":"16013:3:101","nodeType":"YulIdentifier","src":"16013:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16185:3:101","nodeType":"YulIdentifier","src":"16185:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"16096:88:101","nodeType":"YulIdentifier","src":"16096:88:101"},"nativeSrc":"16096:93:101","nodeType":"YulFunctionCall","src":"16096:93:101"},"nativeSrc":"16096:93:101","nodeType":"YulExpressionStatement","src":"16096:93:101"},{"nativeSrc":"16198:19:101","nodeType":"YulAssignment","src":"16198:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"16209:3:101","nodeType":"YulIdentifier","src":"16209:3:101"},{"kind":"number","nativeSrc":"16214:2:101","nodeType":"YulLiteral","src":"16214:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16205:3:101","nodeType":"YulIdentifier","src":"16205:3:101"},"nativeSrc":"16205:12:101","nodeType":"YulFunctionCall","src":"16205:12:101"},"variableNames":[{"name":"end","nativeSrc":"16198:3:101","nodeType":"YulIdentifier","src":"16198:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"15857:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15991:3:101","nodeType":"YulTypedName","src":"15991:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15999:3:101","nodeType":"YulTypedName","src":"15999:3:101","type":""}],"src":"15857:366:101"},{"body":{"nativeSrc":"16400:248:101","nodeType":"YulBlock","src":"16400:248:101","statements":[{"nativeSrc":"16410:26:101","nodeType":"YulAssignment","src":"16410:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16422:9:101","nodeType":"YulIdentifier","src":"16422:9:101"},{"kind":"number","nativeSrc":"16433:2:101","nodeType":"YulLiteral","src":"16433:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16418:3:101","nodeType":"YulIdentifier","src":"16418:3:101"},"nativeSrc":"16418:18:101","nodeType":"YulFunctionCall","src":"16418:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16410:4:101","nodeType":"YulIdentifier","src":"16410:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16457:9:101","nodeType":"YulIdentifier","src":"16457:9:101"},{"kind":"number","nativeSrc":"16468:1:101","nodeType":"YulLiteral","src":"16468:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16453:3:101","nodeType":"YulIdentifier","src":"16453:3:101"},"nativeSrc":"16453:17:101","nodeType":"YulFunctionCall","src":"16453:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16476:4:101","nodeType":"YulIdentifier","src":"16476:4:101"},{"name":"headStart","nativeSrc":"16482:9:101","nodeType":"YulIdentifier","src":"16482:9:101"}],"functionName":{"name":"sub","nativeSrc":"16472:3:101","nodeType":"YulIdentifier","src":"16472:3:101"},"nativeSrc":"16472:20:101","nodeType":"YulFunctionCall","src":"16472:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16446:6:101","nodeType":"YulIdentifier","src":"16446:6:101"},"nativeSrc":"16446:47:101","nodeType":"YulFunctionCall","src":"16446:47:101"},"nativeSrc":"16446:47:101","nodeType":"YulExpressionStatement","src":"16446:47:101"},{"nativeSrc":"16502:139:101","nodeType":"YulAssignment","src":"16502:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16636:4:101","nodeType":"YulIdentifier","src":"16636:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"16510:124:101","nodeType":"YulIdentifier","src":"16510:124:101"},"nativeSrc":"16510:131:101","nodeType":"YulFunctionCall","src":"16510:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16502:4:101","nodeType":"YulIdentifier","src":"16502:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16229:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16380:9:101","nodeType":"YulTypedName","src":"16380:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16395:4:101","nodeType":"YulTypedName","src":"16395:4:101","type":""}],"src":"16229:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    // struct ReferenceOracle.ExternalPrice\n    function abi_decode_t_struct$_ExternalPrice_$2201_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // asset\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // price\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct ReferenceOracle.ExternalPrice[]\n    function abi_decode_available_length_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr(length))\n        let dst := array\n\n        mstore(array, length)\n        dst := add(array, 0x20)\n\n        let srcEnd := add(offset, mul(length, 0x40))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x40) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_struct$_ExternalPrice_$2201_memory_ptr(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // struct ReferenceOracle.ExternalPrice[]\n    function abi_decode_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_array$_t_struct$_ExternalPrice_$2201_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_contract$_OracleInterface_$3666(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_OracleInterface_$3666(value) {\n        if iszero(eq(value, cleanup_t_contract$_OracleInterface_$3666(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_OracleInterface_$3666(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_OracleInterface_$3666(value)\n    }\n\n    function abi_decode_tuple_t_addresst_contract$_OracleInterface_$3666(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_contract$_OracleInterface_$3666(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_OracleInterface_$3666_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_OracleInterface_$3666_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8(memPtr) {\n\n        mstore(add(memPtr, 0), \"venus-protocol/oracle/ReferenceO\")\n\n        mstore(add(memPtr, 32), \"racle/prices\")\n\n    }\n\n    function abi_encode_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n        store_literal_in_memory_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9268977af7369a42042e01e4505cad88daa17fae8c8b05e449a1cbc9b76214b8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"2214":[{"length":32,"start":325},{"length":32,"start":1390}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638129fc1c1161006e5780638129fc1c1461011e5780638da5cb5b14610126578063a4edcd4c14610140578063addd509914610174578063e30c39781461019c578063f2fde38b146101ad575f80fd5b8063310770b5146100b557806341976e09146100de578063539b18a1146100f15780635c38eb3a146100f9578063715018a61461010e57806379ba509714610116575b5f80fd5b6100c86100c336600461089b565b6101c0565b6040516100d591906108f7565b60405180910390f35b6100c86100ec366004610905565b61022d565b6100c8610237565b61010c610107366004610941565b61025f565b005b61010c6102c6565b61010c6102d9565b61010c61031a565b6033546001600160a01b03165b6040516100d5919061097a565b6101677f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d5919061099b565b610167610182366004610905565b60976020525f90815260409020546001600160a01b031681565b6065546001600160a01b0316610133565b61010c6101bb366004610905565b6103e2565b80515f90815b81811015610219576102118482815181106101e3576101e36109a9565b60200260200101515f0151858381518110610200576102006109a9565b602002602001015160200151610453565b6001016101c6565b50610223846104ab565b9150505b92915050565b5f610227826104ab565b60405160200161024690610a08565b6040516020818303038152906040528051906020012081565b6102676105a3565b610270826105cd565b6001600160a01b038281165f8181526097602052604080822080546001600160a01b0319169486169485179055517fe625c7b7d4661988d3a1140f3225faefa7b57c73524adb62fd77dbc945a6db829190a35050565b6102ce6105a3565b6102d75f6105f4565b565b60655433906001600160a01b0316811461030e5760405162461bcd60e51b815260040161030590610a5d565b60405180910390fd5b610317816105f4565b50565b5f54610100900460ff161580801561033857505f54600160ff909116105b806103515750303b15801561035157505f5460ff166001145b61036d5760405162461bcd60e51b815260040161030590610ab7565b5f805460ff19166001179055801561038e575f805461ff0019166101001790555b61039661060d565b8015610317575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906103d790600190610ada565b60405180910390a150565b6103ea6105a3565b606580546001600160a01b0383166001600160a01b0319909116811790915561041b6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f60405160200161046390610a08565b604051602081830303815290604052805190602001208360405160200161048b929190610ae8565b60405160208183030381529060405280519060200120905081815d505050565b5f806104b68361063b565b905080156104c45792915050565b6001600160a01b038084165f90815260976020526040902054168015610557576040516341976e0960e01b81526001600160a01b038216906341976e099061051090879060040161097a565b602060405180830381865afa15801561052b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054f9190610b15565b949350505050565b6040516341976e0960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906341976e099061051090879060040161097a565b6033546001600160a01b031633146102d75760405162461bcd60e51b815260040161030590610b33565b6001600160a01b038116610317576040516342bcdf7f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561031781610694565b5f54610100900460ff166106335760405162461bcd60e51b815260040161030590610bb4565b6102d76106e5565b5f8060405160200161064c90610a08565b6040516020818303038152906040528051906020012083604051602001610674929190610ae8565b60408051601f1981840301815291905280516020909101205c9392505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff1661070b5760405162461bcd60e51b815260040161030590610bb4565b6102d7336105f4565b5f6001600160a01b038216610227565b61072d81610714565b8114610317575f80fd5b803561022781610724565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561077c5761077c610742565b6040525050565b5f61078d60405190565b90506107998282610756565b919050565b5f67ffffffffffffffff8211156107b7576107b7610742565b5060209081020190565b8061072d565b8035610227816107c1565b5f604082840312156107e5576107e55f80fd5b6107ef6040610783565b90505f6107fc8484610737565b825250602061080d848483016107c7565b60208301525092915050565b5f61082b6108268461079e565b610783565b83815290506020810160408402830185811115610849576108495f80fd5b835b8181101561086f578061085e88826107d2565b84525060209092019160400161084b565b5050509392505050565b5f82601f83011261088b5761088b5f80fd5b8135610223848260208601610819565b5f80604083850312156108af576108af5f80fd5b5f6108ba8585610737565b925050602083013567ffffffffffffffff8111156108d9576108d95f80fd5b6108e585828601610879565b9150509250929050565b805b82525050565b6020810161022782846108ef565b5f60208284031215610918576109185f80fd5b5f6102238484610737565b5f61022782610714565b61072d81610923565b80356102278161092d565b5f8060408385031215610955576109555f80fd5b5f6109608585610737565b92505060206108e585828601610936565b6108f181610714565b602081016102278284610971565b5f61022782610923565b6108f181610988565b602081016102278284610992565b634e487b7160e01b5f52603260045260245ffd5b602c81525f602082017f76656e75732d70726f746f636f6c2f6f7261636c652f5265666572656e63654f81526b7261636c652f70726963657360a01b602082015291505b5060400190565b60208082528101610227816109bd565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150610a01565b6020808252810161022781610a18565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610a01565b6020808252810161022781610a6d565b5f60ff8216610227565b6108f181610ac7565b602081016102278284610ad1565b60408101610af682856108ef565b610b036020830184610971565b9392505050565b8051610227816107c1565b5f60208284031215610b2857610b285f80fd5b5f6102238484610b0a565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610227565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610a01565b6020808252810161022781610b6d56fea2646970667358221220179f8fdf6f4485927c403f147287801a87787a13179f6a259a5940d6c839054e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8129FC1C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0xADDD5099 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1AD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x310770B5 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x539B18A1 EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x5C38EB3A EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x116 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC8 PUSH2 0xEC CALLDATASIZE PUSH1 0x4 PUSH2 0x905 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x237 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x941 JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10C PUSH2 0x2C6 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x31A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x97A JUMP JUMPDEST PUSH2 0x167 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x99B JUMP JUMPDEST PUSH2 0x167 PUSH2 0x182 CALLDATASIZE PUSH1 0x4 PUSH2 0x905 JUMP JUMPDEST PUSH1 0x97 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x133 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x905 JUMP JUMPDEST PUSH2 0x3E2 JUMP JUMPDEST DUP1 MLOAD PUSH0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x219 JUMPI PUSH2 0x211 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1E3 JUMPI PUSH2 0x1E3 PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x200 JUMPI PUSH2 0x200 PUSH2 0x9A9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1C6 JUMP JUMPDEST POP PUSH2 0x223 DUP5 PUSH2 0x4AB JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x227 DUP3 PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x246 SWAP1 PUSH2 0xA08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 JUMP JUMPDEST PUSH2 0x267 PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0x270 DUP3 PUSH2 0x5CD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x97 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 DUP7 AND SWAP5 DUP6 OR SWAP1 SSTORE MLOAD PUSH32 0xE625C7B7D4661988D3A1140F3225FAEFA7B57C73524ADB62FD77DBC945A6DB82 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x2CE PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0x2D7 PUSH0 PUSH2 0x5F4 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x30E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xA5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x5F4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x338 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x351 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x351 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x36D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x396 PUSH2 0x60D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x317 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x3D7 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xADA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x3EA PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x41B PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x463 SWAP1 PUSH2 0xA08 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 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP2 DUP2 TSTORE POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4B6 DUP4 PUSH2 0x63B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x4C4 JUMPI SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x97 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 ISZERO PUSH2 0x557 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x510 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x97A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x52B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x54F SWAP2 SWAP1 PUSH2 0xB15 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x510 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x97A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x317 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x317 DUP2 PUSH2 0x694 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x633 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0x2D7 PUSH2 0x6E5 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x64C SWAP1 PUSH2 0xA08 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 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x674 SWAP3 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 TLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x70B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP1 PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0x2D7 CALLER PUSH2 0x5F4 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x227 JUMP JUMPDEST PUSH2 0x72D DUP2 PUSH2 0x714 JUMP JUMPDEST DUP2 EQ PUSH2 0x317 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x227 DUP2 PUSH2 0x724 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x77C JUMPI PUSH2 0x77C PUSH2 0x742 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x78D PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x799 DUP3 DUP3 PUSH2 0x756 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0x742 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x72D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x227 DUP2 PUSH2 0x7C1 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7E5 JUMPI PUSH2 0x7E5 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x7EF PUSH1 0x40 PUSH2 0x783 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x7FC DUP5 DUP5 PUSH2 0x737 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x80D DUP5 DUP5 DUP4 ADD PUSH2 0x7C7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x82B PUSH2 0x826 DUP5 PUSH2 0x79E JUMP JUMPDEST PUSH2 0x783 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x849 JUMPI PUSH2 0x849 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x86F JUMPI DUP1 PUSH2 0x85E DUP9 DUP3 PUSH2 0x7D2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x40 ADD PUSH2 0x84B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x88B JUMPI PUSH2 0x88B PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x223 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x819 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8BA DUP6 DUP6 PUSH2 0x737 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8D9 JUMPI PUSH2 0x8D9 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x8E5 DUP6 DUP3 DUP7 ADD PUSH2 0x879 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0x8EF JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x918 JUMPI PUSH2 0x918 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x223 DUP5 DUP5 PUSH2 0x737 JUMP JUMPDEST PUSH0 PUSH2 0x227 DUP3 PUSH2 0x714 JUMP JUMPDEST PUSH2 0x72D DUP2 PUSH2 0x923 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x227 DUP2 PUSH2 0x92D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x955 JUMPI PUSH2 0x955 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x960 DUP6 DUP6 PUSH2 0x737 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8E5 DUP6 DUP3 DUP7 ADD PUSH2 0x936 JUMP JUMPDEST PUSH2 0x8F1 DUP2 PUSH2 0x714 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0x971 JUMP JUMPDEST PUSH0 PUSH2 0x227 DUP3 PUSH2 0x923 JUMP JUMPDEST PUSH2 0x8F1 DUP2 PUSH2 0x988 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0x992 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x76656E75732D70726F746F636F6C2F6F7261636C652F5265666572656E63654F DUP2 MSTORE PUSH12 0x7261636C652F707269636573 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0x9BD JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0xA18 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0xA6D JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x227 JUMP JUMPDEST PUSH2 0x8F1 DUP2 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x227 DUP3 DUP5 PUSH2 0xAD1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xAF6 DUP3 DUP6 PUSH2 0x8EF JUMP JUMPDEST PUSH2 0xB03 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x971 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x227 DUP2 PUSH2 0x7C1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB28 JUMPI PUSH2 0xB28 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x223 DUP5 DUP5 PUSH2 0xB0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x227 JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x227 DUP2 PUSH2 0xB6D JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR SWAP16 DUP16 0xDF PUSH16 0x4485927C403F147287801A87787A1317 SWAP16 PUSH11 0x259A5940D6C839054E6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"733:4135:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3252:361;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3758:114;;;;;;:::i;:::-;;:::i;1219:107::-;;;:::i;2771:226::-;;;;;;:::i;:::-;;:::i;:::-;;2085:101:4;;;:::i;2031:212:3:-;;;:::i;2297:81:19:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;;;;;;:::i;1440:58:19:-;;;;;;;;;;;;:::i;1553:50::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1553:50:19;;;1144:99:3;1223:13;;-1:-1:-1;;;;;1223:13:3;1144:99;;1436:178;;;;;;:::i;:::-;;:::i;3252:361:19:-;3399:21;;3350:7;;;3430:144;3454:19;3450:1;:23;3430:144;;;3494:69;3514:14;3529:1;3514:17;;;;;;;;:::i;:::-;;;;;;;:23;;;3539:14;3554:1;3539:17;;;;;;;;:::i;:::-;;;;;;;:23;;;3494:19;:69::i;:::-;3475:3;;3430:144;;;;3590:16;3600:5;3590:9;:16::i;:::-;3583:23;;;3252:361;;;;;:::o;3758:114::-;3823:7;3849:16;3859:5;3849:9;:16::i;1219:107::-;1267:58;;;;;;;:::i;:::-;;;;;;;;;;;;;1257:69;;;;;;1219:107;:::o;2771:226::-;1355:13:4;:11;:13::i;:::-;2858:27:19::1;2879:5;2858:20;:27::i;:::-;-1:-1:-1::0;;;;;2895:14:19;;::::1;;::::0;;;:7:::1;:14;::::0;;;;;:40;;-1:-1:-1;;;;;;2895:40:19::1;::::0;;::::1;::::0;;::::1;::::0;;2950;::::1;::::0;2895:14;2950:40:::1;2771:226:::0;;:::o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:3:-;1223:13;;965:10:8;;-1:-1:-1;;;;;1223:13:3;2130:24;;2122:78;;;;-1:-1:-1;;;2122:78:3;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;:::-;2073:170;2031:212::o;2297:81:19:-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;2350:21:19::1;:19;:21::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3269:483;2297:81:19:o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1525::3::1;:24:::0;;-1:-1:-1;;;;;1525:24:3;::::1;-1:-1:-1::0;;;;;;1525:24:3;;::::1;::::0;::::1;::::0;;;1589:7:::1;1534:6:4::0;;-1:-1:-1;;;;;1534:6:4;;1462:85;1589:7:3::1;-1:-1:-1::0;;;;;1564:43:3::1;;;;;;;;;;;1436:178:::0;:::o;3878:274:19:-;3956:12;1267:58;;;;;;;:::i;:::-;;;;;;;;;;;;;1257:69;;;;;;4005:5;3981:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3971:41;;;;;;3956:56;;4130:5;4124:4;4117:19;4103:43;3878:274;;:::o;4158:414::-;4215:7;4234:21;4258:25;4277:5;4258:18;:25::i;:::-;4234:49;-1:-1:-1;4297:18:19;;4293:69;;4338:13;4158:414;-1:-1:-1;;4158:414:19:o;4293:69::-;-1:-1:-1;;;;;4396:14:19;;;4371:22;4396:14;;;:7;:14;;;;;;;4424:37;;4420:97;;4484:22;;-1:-1:-1;;;4484:22:19;;-1:-1:-1;;;;;4484:15:19;;;;;:22;;4500:5;;4484:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4477:29;4158:414;-1:-1:-1;;;;4158:414:19:o;4420:97::-;4533:32;;-1:-1:-1;;;4533:32:19;;-1:-1:-1;;;;;4533:16:19;:25;;;;:32;;4559:5;;4533:32;;;:::i;1620:130:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;485:136:18:-;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;1798:153:3;1887:13;1880:20;;-1:-1:-1;;;;;;1880:20:3;;;1910:34;1935:8;1910:24;:34::i;889:100::-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;956:26:3::1;:24;:26::i;4578:288:19:-:0;4644:13;4669:12;1267:58;;;;;;;:::i;:::-;;;;;;;;;;;;;1257:69;;;;;;4718:5;4694:30;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4694:30:19;;;;;;;;;4684:41;;4694:30;4684:41;;;;4839:11;;4578:288;-1:-1:-1;;;4578:288:19:o;2687:187:4:-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1125:111::-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;466:96:101:-:0;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;1072:180::-;-1:-1:-1;;;1117:1:101;1110:88;1217:4;1214:1;1207:15;1241:4;1238:1;1231:15;1258:281;-1:-1:-1;;1056:2:101;1036:14;;1032:28;1333:6;1329:40;1471:6;1459:10;1456:22;1435:18;1423:10;1420:34;1417:62;1414:88;;;1482:18;;:::i;:::-;1518:2;1511:22;-1:-1:-1;;1258:281:101:o;1545:129::-;1579:6;1606:20;73:2;67:9;;7:75;1606:20;1596:30;;1635:33;1663:4;1655:6;1635:33;:::i;:::-;1545:129;;;:::o;1680:342::-;1788:4;1878:18;1870:6;1867:30;1864:56;;;1900:18;;:::i;:::-;-1:-1:-1;1950:4:101;1938:17;;;2000:15;;1680:342::o;2480:122::-;2571:5;2553:24;2397:77;2608:139;2679:20;;2708:33;2679:20;2708:33;:::i;2797:582::-;2877:5;2921:4;2909:9;2904:3;2900:19;2896:30;2893:117;;;2929:79;733:4135:19;;;2929:79:101;3028:21;3044:4;3028:21;:::i;:::-;3019:30;-1:-1:-1;3109:1:101;3149:49;3194:3;3174:9;3149:49;:::i;:::-;3124:75;;-1:-1:-1;3270:2:101;3311:49;3356:3;3332:22;;;3311:49;:::i;:::-;3304:4;3297:5;3293:16;3286:75;3220:152;2797:582;;;;:::o;3431:803::-;3558:5;3583:112;3599:95;3687:6;3599:95;:::i;:::-;3583:112;:::i;:::-;3730:21;;;3574:121;-1:-1:-1;3778:4:101;3767:16;;3831:4;3819:17;;3807:30;;3849:15;;;3846:122;;;3879:79;733:4135:19;;;3879:79:101;3994:6;3977:251;4011:6;4006:3;4003:15;3977:251;;;4086:3;4115:68;4179:3;4167:10;4115:68;:::i;:::-;4103:81;;-1:-1:-1;4213:4:101;4204:14;;;;4037:4;4028:14;3977:251;;;3981:21;3564:670;;3431:803;;;;;:::o;4286:432::-;4388:5;4437:3;4430:4;4422:6;4418:17;4414:27;4404:122;;4445:79;733:4135:19;;;4445:79:101;4562:6;4549:20;4587:125;4708:3;4700:6;4693:4;4685:6;4681:17;4587:125;:::i;4724:746::-;4848:6;4856;4905:2;4893:9;4884:7;4880:23;4876:32;4873:119;;;4911:79;733:4135:19;;;4911:79:101;5031:1;5056:53;5101:7;5081:9;5056:53;:::i;:::-;5046:63;;5002:117;5186:2;5175:9;5171:18;5158:32;5217:18;5209:6;5206:30;5203:117;;;5239:79;733:4135:19;;;5239:79:101;5344:109;5445:7;5436:6;5425:9;5421:22;5344:109;:::i;:::-;5334:119;;5129:334;4724:746;;;;;:::o;5476:118::-;5581:5;5563:24;5558:3;5551:37;5476:118;;:::o;5600:222::-;5731:2;5716:18;;5744:71;5720:9;5788:6;5744:71;:::i;5828:329::-;5887:6;5936:2;5924:9;5915:7;5911:23;5907:32;5904:119;;;5942:79;733:4135:19;;;5942:79:101;6062:1;6087:53;6132:7;6112:9;6087:53;:::i;6598:120::-;6659:7;6688:24;6706:5;6688:24;:::i;6724:170::-;6821:48;6863:5;6821:48;:::i;6900:187::-;6995:20;;7024:57;6995:20;7024:57;:::i;7093:522::-;7185:6;7193;7242:2;7230:9;7221:7;7217:23;7213:32;7210:119;;;7248:79;733:4135:19;;;7248:79:101;7368:1;7393:53;7438:7;7418:9;7393:53;:::i;:::-;7383:63;;7339:117;7495:2;7521:77;7590:7;7581:6;7570:9;7566:22;7521:77;:::i;7621:118::-;7708:24;7726:5;7708:24;:::i;7745:222::-;7876:2;7861:18;;7889:71;7865:9;7933:6;7889:71;:::i;8319:159::-;8402:9;8435:37;8466:5;8435:37;:::i;8484:197::-;8604:70;8668:5;8604:70;:::i;8687:288::-;8851:2;8836:18;;8864:104;8840:9;8941:6;8864:104;:::i;9598:180::-;-1:-1:-1;;;9643:1:101;9636:88;9743:4;9740:1;9733:15;9767:4;9764:1;9757:15;10196:366;10423:2;9890:19;;10338:3;9942:4;9933:14;;10099:34;10076:58;;-1:-1:-1;;;10163:2:101;10151:15;;10144:39;10352:74;-1:-1:-1;10435:93:101;-1:-1:-1;10553:2:101;10544:12;;10196:366::o;10568:419::-;10772:2;10785:47;;;10757:18;;10849:131;10757:18;10849:131;:::i;11227:366::-;11454:2;9890:19;;11369:3;9942:4;9933:14;;11133:34;11110:58;;-1:-1:-1;;;11197:2:101;11185:15;;11178:36;11383:74;-1:-1:-1;11466:93:101;10993:228;11599:419;11803:2;11816:47;;;11788:18;;11880:131;11788:18;11880:131;:::i;12263:366::-;12490:2;9890:19;;12405:3;9942:4;9933:14;;12164:34;12141:58;;-1:-1:-1;;;12228:2:101;12216:15;;12209:41;12419:74;-1:-1:-1;12502:93:101;12024:233;12635:419;12839:2;12852:47;;;12824:18;;12916:131;12824:18;12916:131;:::i;13243:154::-;13299:9;13226:4;13215:16;;13332:59;13151:86;13403:143;13496:43;13533:5;13496:43;:::i;13552:234::-;13689:2;13674:18;;13702:77;13678:9;13752:6;13702:77;:::i;13792:332::-;13951:2;13936:18;;13964:71;13940:9;14008:6;13964:71;:::i;:::-;14045:72;14113:2;14102:9;14098:18;14089:6;14045:72;:::i;:::-;13792:332;;;;;:::o;14130:143::-;14212:13;;14234:33;14212:13;14234:33;:::i;14279:351::-;14349:6;14398:2;14386:9;14377:7;14373:23;14369:32;14366:119;;;14404:79;733:4135:19;;;14404:79:101;14524:1;14549:64;14605:7;14585:9;14549:64;:::i;15196:419::-;15400:2;15413:47;;;15385:18;;;9890:19;;;14776:34;9933:14;;;14753:58;15172:12;;;15477:131;14824:366;15857;16084:2;9890:19;;15999:3;9942:4;9933:14;;15761:34;15738:58;;-1:-1:-1;;;15825:2:101;15813:15;;15806:38;16013:74;-1:-1:-1;16096:93:101;15621:230;16229:419;16433:2;16446:47;;;16418:18;;16510:131;16418:18;16510:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"613200","executionCost":"infinite","totalCost":"infinite"},"external":{"PRICES_SLOT()":"infinite","RESILIENT_ORACLE()":"infinite","acceptOwnership()":"infinite","getPrice(address)":"infinite","getPriceAssuming(address,(address,uint256)[])":"infinite","initialize()":"infinite","oracles(address)":"infinite","owner()":"infinite","pendingOwner()":"infinite","renounceOwnership()":"infinite","setOracle(address,address)":"infinite","transferOwnership(address)":"infinite"},"internal":{"_getPrice(address)":"infinite","_loadExternalPrice(address)":"infinite","_storeExternalPrice(address,uint256)":"infinite"}},"methodIdentifiers":{"PRICES_SLOT()":"539b18a1","RESILIENT_ORACLE()":"a4edcd4c","acceptOwnership()":"79ba5097","getPrice(address)":"41976e09","getPriceAssuming(address,(address,uint256)[])":"310770b5","initialize()":"8129fc1c","oracles(address)":"addd5099","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setOracle(address,address)":"5c38eb3a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"resilientOracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"OracleConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PRICES_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct ReferenceOracle.ExternalPrice[]\",\"name\":\"externalPrices\",\"type\":\"tuple[]\"}],\"name\":\"getPriceAssuming\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"contract OracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"contract OracleInterface\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:error\":\"ZeroAddressNotAllowed is thrown if resilient oracle address is null\",\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"resilientOracle\":\"Resilient oracle address\"}},\"getPrice(address)\":{\"params\":{\"asset\":\"asset address\"},\"returns\":{\"_0\":\"USD price in scaled decimal places\"}},\"getPriceAssuming(address,(address,uint256)[])\":{\"params\":{\"asset\":\"asset address\",\"externalPrices\":\"an array of prices for other assets\"},\"returns\":{\"_0\":\"USD price in scaled decimal places\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setOracle(address,address)\":{\"custom:access\":\"Only owner\",\"custom:error\":\"ZeroAddressNotAllowed is thrown if asset address is null\",\"custom:event\":\"Emits OracleConfigured event\",\"details\":\"The production resilientOracle will be used if zero address is passed\",\"params\":{\"asset\":\"Asset address\",\"oracle\":\"Oracle address\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"RESILIENT_ORACLE\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"ReferenceOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"OracleConfigured(address,address)\":{\"notice\":\"Event emitted when an oracle is set\"}},\"kind\":\"user\",\"methods\":{\"PRICES_SLOT()\":{\"notice\":\"Slot to temporarily store price information from external sources like CMC/Coingecko, useful to compute prices of derivative assets based on prices of the base assets with no on chain price information\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Resilient oracle address\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract. Sets immutable variables.\"},\"getPrice(address)\":{\"notice\":\"Gets price of the asset\"},\"getPriceAssuming(address,(address,uint256)[])\":{\"notice\":\"Gets price of the asset assuming other assets have the defined price\"},\"initialize()\":{\"notice\":\"Initializes the contract admin\"},\"oracles(address)\":{\"notice\":\"Oracle configuration for assets\"},\"setOracle(address,address)\":{\"notice\":\"Sets an oracle to use for a specific asset\"}},\"notice\":\"Reference oracle is the oracle that is not used for production but required for price monitoring. This oracle contains some extra configurations for assets required to compute reference prices of their derivative assets (OneJump, ERC4626, Pendle, etc.)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ReferenceOracle.sol\":\"ReferenceOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/ReferenceOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n// SPDX-FileCopyrightText: 2025 Venus\\npragma solidity 0.8.25;\\n\\nimport { Ownable2StepUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { ResilientOracleInterface, OracleInterface } from \\\"./interfaces/OracleInterface.sol\\\";\\n\\n/**\\n * @title ReferenceOracle\\n * @author Venus\\n * @notice Reference oracle is the oracle that is not used for production but required for\\n * price monitoring. This oracle contains some extra configurations for assets required to\\n * compute reference prices of their derivative assets (OneJump, ERC4626, Pendle, etc.)\\n */\\ncontract ReferenceOracle is Ownable2StepUpgradeable, OracleInterface {\\n    struct ExternalPrice {\\n        /// @notice asset address\\n        address asset;\\n        /// @notice price of the asset from an external source\\n        uint256 price;\\n    }\\n\\n    /// @notice Slot to temporarily store price information from external sources\\n    /// like CMC/Coingecko, useful to compute prices of derivative assets based on\\n    /// prices of the base assets with no on chain price information\\n    bytes32 public constant PRICES_SLOT = keccak256(abi.encode(\\\"venus-protocol/oracle/ReferenceOracle/prices\\\"));\\n\\n    /// @notice Resilient oracle address\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Oracle configuration for assets\\n    mapping(address => OracleInterface) public oracles;\\n\\n    /// @notice Event emitted when an oracle is set\\n    event OracleConfigured(address indexed asset, address indexed oracle);\\n\\n    /**\\n     * @notice Constructor for the implementation contract. Sets immutable variables.\\n     * @param resilientOracle Resilient oracle address\\n     * @custom:error ZeroAddressNotAllowed is thrown if resilient oracle address is null\\n     * @custom:oz-upgrades-unsafe-allow constructor\\n     */\\n    constructor(ResilientOracleInterface resilientOracle) {\\n        ensureNonzeroAddress(address(resilientOracle));\\n        RESILIENT_ORACLE = resilientOracle;\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the contract admin\\n     */\\n    function initialize() external initializer {\\n        __Ownable2Step_init();\\n    }\\n\\n    /**\\n     * @notice Sets an oracle to use for a specific asset\\n     * @dev The production resilientOracle will be used if zero address is passed\\n     * @param asset Asset address\\n     * @param oracle Oracle address\\n     * @custom:access Only owner\\n     * @custom:error ZeroAddressNotAllowed is thrown if asset address is null\\n     * @custom:event Emits OracleConfigured event\\n     */\\n    function setOracle(address asset, OracleInterface oracle) external onlyOwner {\\n        ensureNonzeroAddress(asset);\\n        oracles[asset] = OracleInterface(oracle);\\n        emit OracleConfigured(asset, address(oracle));\\n    }\\n\\n    /**\\n     * @notice Gets price of the asset assuming other assets have the defined price\\n     * @param asset asset address\\n     * @param externalPrices an array of prices for other assets\\n     * @return USD price in scaled decimal places\\n     */\\n    function getPriceAssuming(address asset, ExternalPrice[] memory externalPrices) external returns (uint256) {\\n        uint256 externalPricesCount = externalPrices.length;\\n        for (uint256 i = 0; i < externalPricesCount; ++i) {\\n            _storeExternalPrice(externalPrices[i].asset, externalPrices[i].price);\\n        }\\n        return _getPrice(asset);\\n    }\\n\\n    /**\\n     * @notice Gets price of the asset\\n     * @param asset asset address\\n     * @return USD price in scaled decimal places\\n     */\\n    function getPrice(address asset) external view override returns (uint256) {\\n        return _getPrice(asset);\\n    }\\n\\n    function _storeExternalPrice(address asset, uint256 price) internal {\\n        bytes32 slot = keccak256(abi.encode(PRICES_SLOT, asset));\\n        // solhint-disable-next-line no-inline-assembly\\n        assembly (\\\"memory-safe\\\") {\\n            tstore(slot, price)\\n        }\\n    }\\n\\n    function _getPrice(address asset) internal view returns (uint256) {\\n        uint256 externalPrice = _loadExternalPrice(asset);\\n        if (externalPrice != 0) {\\n            return externalPrice;\\n        }\\n        OracleInterface oracle = oracles[asset];\\n        if (oracle != OracleInterface(address(0))) {\\n            return oracle.getPrice(asset);\\n        }\\n        return RESILIENT_ORACLE.getPrice(asset);\\n    }\\n\\n    function _loadExternalPrice(address asset) internal view returns (uint256 value) {\\n        bytes32 slot = keccak256(abi.encode(PRICES_SLOT, asset));\\n        // solhint-disable-next-line no-inline-assembly\\n        assembly (\\\"memory-safe\\\") {\\n            value := tload(slot)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xa088ba1fb64a6e4a56fc174dd53834d8588d26d99dc5a9940a9f7810e09de8cc\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":2220,"contract":"contracts/ReferenceOracle.sol:ReferenceOracle","label":"oracles","offset":0,"slot":"151","type":"t_mapping(t_address,t_contract(OracleInterface)3666)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(OracleInterface)3666":{"encoding":"inplace","label":"contract OracleInterface","numberOfBytes":"20"},"t_mapping(t_address,t_contract(OracleInterface)3666)":{"encoding":"mapping","key":"t_address","label":"mapping(address => contract OracleInterface)","numberOfBytes":"32","value":"t_contract(OracleInterface)3666"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"OracleConfigured(address,address)":{"notice":"Event emitted when an oracle is set"}},"kind":"user","methods":{"PRICES_SLOT()":{"notice":"Slot to temporarily store price information from external sources like CMC/Coingecko, useful to compute prices of derivative assets based on prices of the base assets with no on chain price information"},"RESILIENT_ORACLE()":{"notice":"Resilient oracle address"},"constructor":{"notice":"Constructor for the implementation contract. Sets immutable variables."},"getPrice(address)":{"notice":"Gets price of the asset"},"getPriceAssuming(address,(address,uint256)[])":{"notice":"Gets price of the asset assuming other assets have the defined price"},"initialize()":{"notice":"Initializes the contract admin"},"oracles(address)":{"notice":"Oracle configuration for assets"},"setOracle(address,address)":{"notice":"Sets an oracle to use for a specific asset"}},"notice":"Reference oracle is the oracle that is not used for production but required for price monitoring. This oracle contains some extra configurations for assets required to compute reference prices of their derivative assets (OneJump, ERC4626, Pendle, etc.)","version":1}}},"contracts/ResilientOracle.sol":{"ResilientOracle":{"abi":[{"inputs":[{"internalType":"address","name":"nativeMarketAddress","type":"address"},{"internalType":"address","name":"vaiAddress","type":"address"},{"internalType":"contract BoundValidatorInterface","name":"_boundValidator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"}],"name":"CachedEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"uint256","name":"role","type":"uint256"},{"indexed":true,"internalType":"bool","name":"enable","type":"bool"}],"name":"OracleEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"oracle","type":"address"},{"indexed":true,"internalType":"uint256","name":"role","type":"uint256"}],"name":"OracleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"mainOracle","type":"address"},{"indexed":true,"internalType":"address","name":"pivotOracle","type":"address"},{"indexed":false,"internalType":"address","name":"fallbackOracle","type":"address"}],"name":"TokenConfigAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"CACHE_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INVALID_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boundValidator","outputs":[{"internalType":"contract BoundValidatorInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"enum ResilientOracle.OracleRole","name":"role","type":"uint8"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"enableOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"enum ResilientOracle.OracleRole","name":"role","type":"uint8"}],"name":"getOracle","outputs":[{"internalType":"address","name":"oracle","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getTokenConfig","outputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address[3]","name":"oracles","type":"address[3]"},{"internalType":"bool[3]","name":"enableFlagsForOracles","type":"bool[3]"},{"internalType":"bool","name":"cachingEnabled","type":"bool"}],"internalType":"struct ResilientOracle.TokenConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"getUnderlyingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nativeMarket","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"enum ResilientOracle.OracleRole","name":"role","type":"uint8"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address[3]","name":"oracles","type":"address[3]"},{"internalType":"bool[3]","name":"enableFlagsForOracles","type":"bool[3]"},{"internalType":"bool","name":"cachingEnabled","type":"bool"}],"internalType":"struct ResilientOracle.TokenConfig","name":"tokenConfig","type":"tuple"}],"name":"setTokenConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address[3]","name":"oracles","type":"address[3]"},{"internalType":"bool[3]","name":"enableFlagsForOracles","type":"bool[3]"},{"internalType":"bool","name":"cachingEnabled","type":"bool"}],"internalType":"struct ResilientOracle.TokenConfig[]","name":"tokenConfigs_","type":"tuple[]"}],"name":"setTokenConfigs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"updateAssetPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vai","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."},"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor","details":"nativeMarketAddress can be address(0) if on the chain we do not support native market      (e.g vETH on ethereum would not be supported, only vWETH)","params":{"_boundValidator":"Address of the bound validator contract","nativeMarketAddress":"The address of a native market (for bsc it would be vBNB address)","vaiAddress":"The address of the VAI token (if there is VAI on the deployed chain).          Set to address(0) of VAI is not existent."}},"enableOracle(address,uint8,bool)":{"custom:access":"Only Governance","custom:error":"NotNullAddress error is thrown if asset address is nullTokenConfigExistance error is thrown if token config is not set","custom:event":"Emits OracleEnabled event with asset address, role of the oracle and enabled flag","details":"Configuration for the asset **must** already exist and the asset cannot be 0 address","params":{"asset":"Asset address","enable":"Enabled boolean of the oracle","role":"Oracle role"}},"getOracle(address,uint8)":{"params":{"asset":"asset address","role":"Oracle role"},"returns":{"enabled":"Enabled flag of the oracle based on token config","oracle":"Oracle address based on role"}},"getPrice(address)":{"custom:error":"Paused error is thrown when resilent oracle is pausedInvalid resilient oracle price error is thrown if fetched prices from oracle is invalid","params":{"asset":"asset address"},"returns":{"_0":"price USD price in scaled decimal places."}},"getTokenConfig(address)":{"details":"Gets token config by asset address","params":{"asset":"asset address"},"returns":{"_0":"tokenConfig Config for the asset"}},"getUnderlyingPrice(address)":{"custom:error":"Paused error is thrown when resilent oracle is pausedInvalid resilient oracle price error is thrown if fetched prices from oracle is invalid","params":{"vToken":"vToken address"},"returns":{"_0":"price USD price in scaled decimal places."}},"initialize(address)":{"params":{"accessControlManager_":"Address of the access control manager contract"}},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Only Governance"},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setOracle(address,address,uint8)":{"custom:access":"Only Governance","custom:error":"Null address error if main-role oracle address is nullNotNullAddress error is thrown if asset address is nullTokenConfigExistance error is thrown if token config is not set","custom:event":"Emits OracleSet event with asset address, oracle address and role of the oracle for the asset","details":"Supplied asset **must** exist and main oracle may not be null","params":{"asset":"Asset address","oracle":"Oracle address","role":"Oracle role"}},"setTokenConfig((address,address[3],bool[3],bool))":{"custom:access":"Only Governance","custom:error":"NotNullAddress is thrown if asset address is nullNotNullAddress is thrown if main-role oracle address for asset is null","custom:event":"Emits TokenConfigAdded event when the asset config is set successfully by the authorized accountEmits CachedEnabled event when the asset cachingEnabled flag is set successfully","details":"main oracle **must not** be a null address","params":{"tokenConfig":"Token config struct"}},"setTokenConfigs((address,address[3],bool[3],bool)[])":{"custom:access":"Only Governance","custom:error":"Throws a length error if the length of the token configs array is 0","params":{"tokenConfigs_":"Token config array"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"unpause()":{"custom:access":"Only Governance"},"updateAssetPrice(address)":{"details":"This function should always be called before calling getPrice","params":{"asset":"asset address"}},"updatePrice(address)":{"details":"This function should always be called before calling getUnderlyingPrice","params":{"vToken":"vToken address"}}},"stateVariables":{"boundValidator":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"},"nativeMarket":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"},"vai":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"ResilientOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_2615":{"entryPoint":null,"id":2615,"parameterSlots":3,"returnSlots":0},"@_disableInitializers_492":{"entryPoint":136,"id":492,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":299,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_BoundValidatorInterface_$3698_fromMemory":{"entryPoint":329,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_contract$_BoundValidatorInterface_$3698_fromMemory":{"entryPoint":340,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":416,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":475,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":550,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":259,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_BoundValidatorInterface_$3698":{"entryPoint":310,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":277,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_BoundValidatorInterface_$3698":{"entryPoint":320,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4722:101","nodeType":"YulBlock","src":"0:4722:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"922:51:101","nodeType":"YulBlock","src":"922:51:101","statements":[{"nativeSrc":"932:35:101","nodeType":"YulAssignment","src":"932:35:101","value":{"arguments":[{"name":"value","nativeSrc":"961:5:101","nodeType":"YulIdentifier","src":"961:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"943:17:101","nodeType":"YulIdentifier","src":"943:17:101"},"nativeSrc":"943:24:101","nodeType":"YulFunctionCall","src":"943:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"932:7:101","nodeType":"YulIdentifier","src":"932:7:101"}]}]},"name":"cleanup_t_contract$_BoundValidatorInterface_$3698","nativeSrc":"845:128:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"904:5:101","nodeType":"YulTypedName","src":"904:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"914:7:101","nodeType":"YulTypedName","src":"914:7:101","type":""}],"src":"845:128:101"},{"body":{"nativeSrc":"1054:111:101","nodeType":"YulBlock","src":"1054:111:101","statements":[{"body":{"nativeSrc":"1143:16:101","nodeType":"YulBlock","src":"1143:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1152:1:101","nodeType":"YulLiteral","src":"1152:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1155:1:101","nodeType":"YulLiteral","src":"1155:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1145:6:101","nodeType":"YulIdentifier","src":"1145:6:101"},"nativeSrc":"1145:12:101","nodeType":"YulFunctionCall","src":"1145:12:101"},"nativeSrc":"1145:12:101","nodeType":"YulExpressionStatement","src":"1145:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1077:5:101","nodeType":"YulIdentifier","src":"1077:5:101"},{"arguments":[{"name":"value","nativeSrc":"1134:5:101","nodeType":"YulIdentifier","src":"1134:5:101"}],"functionName":{"name":"cleanup_t_contract$_BoundValidatorInterface_$3698","nativeSrc":"1084:49:101","nodeType":"YulIdentifier","src":"1084:49:101"},"nativeSrc":"1084:56:101","nodeType":"YulFunctionCall","src":"1084:56:101"}],"functionName":{"name":"eq","nativeSrc":"1074:2:101","nodeType":"YulIdentifier","src":"1074:2:101"},"nativeSrc":"1074:67:101","nodeType":"YulFunctionCall","src":"1074:67:101"}],"functionName":{"name":"iszero","nativeSrc":"1067:6:101","nodeType":"YulIdentifier","src":"1067:6:101"},"nativeSrc":"1067:75:101","nodeType":"YulFunctionCall","src":"1067:75:101"},"nativeSrc":"1064:95:101","nodeType":"YulIf","src":"1064:95:101"}]},"name":"validator_revert_t_contract$_BoundValidatorInterface_$3698","nativeSrc":"979:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1047:5:101","nodeType":"YulTypedName","src":"1047:5:101","type":""}],"src":"979:186:101"},{"body":{"nativeSrc":"1266:112:101","nodeType":"YulBlock","src":"1266:112:101","statements":[{"nativeSrc":"1276:22:101","nodeType":"YulAssignment","src":"1276:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1291:6:101","nodeType":"YulIdentifier","src":"1291:6:101"}],"functionName":{"name":"mload","nativeSrc":"1285:5:101","nodeType":"YulIdentifier","src":"1285:5:101"},"nativeSrc":"1285:13:101","nodeType":"YulFunctionCall","src":"1285:13:101"},"variableNames":[{"name":"value","nativeSrc":"1276:5:101","nodeType":"YulIdentifier","src":"1276:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1366:5:101","nodeType":"YulIdentifier","src":"1366:5:101"}],"functionName":{"name":"validator_revert_t_contract$_BoundValidatorInterface_$3698","nativeSrc":"1307:58:101","nodeType":"YulIdentifier","src":"1307:58:101"},"nativeSrc":"1307:65:101","nodeType":"YulFunctionCall","src":"1307:65:101"},"nativeSrc":"1307:65:101","nodeType":"YulExpressionStatement","src":"1307:65:101"}]},"name":"abi_decode_t_contract$_BoundValidatorInterface_$3698_fromMemory","nativeSrc":"1171:207:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1244:6:101","nodeType":"YulTypedName","src":"1244:6:101","type":""},{"name":"end","nativeSrc":"1252:3:101","nodeType":"YulTypedName","src":"1252:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1260:5:101","nodeType":"YulTypedName","src":"1260:5:101","type":""}],"src":"1171:207:101"},{"body":{"nativeSrc":"1527:584:101","nodeType":"YulBlock","src":"1527:584:101","statements":[{"body":{"nativeSrc":"1573:83:101","nodeType":"YulBlock","src":"1573:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1575:77:101","nodeType":"YulIdentifier","src":"1575:77:101"},"nativeSrc":"1575:79:101","nodeType":"YulFunctionCall","src":"1575:79:101"},"nativeSrc":"1575:79:101","nodeType":"YulExpressionStatement","src":"1575:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1548:7:101","nodeType":"YulIdentifier","src":"1548:7:101"},{"name":"headStart","nativeSrc":"1557:9:101","nodeType":"YulIdentifier","src":"1557:9:101"}],"functionName":{"name":"sub","nativeSrc":"1544:3:101","nodeType":"YulIdentifier","src":"1544:3:101"},"nativeSrc":"1544:23:101","nodeType":"YulFunctionCall","src":"1544:23:101"},{"kind":"number","nativeSrc":"1569:2:101","nodeType":"YulLiteral","src":"1569:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1540:3:101","nodeType":"YulIdentifier","src":"1540:3:101"},"nativeSrc":"1540:32:101","nodeType":"YulFunctionCall","src":"1540:32:101"},"nativeSrc":"1537:119:101","nodeType":"YulIf","src":"1537:119:101"},{"nativeSrc":"1666:128:101","nodeType":"YulBlock","src":"1666:128:101","statements":[{"nativeSrc":"1681:15:101","nodeType":"YulVariableDeclaration","src":"1681:15:101","value":{"kind":"number","nativeSrc":"1695:1:101","nodeType":"YulLiteral","src":"1695:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1685:6:101","nodeType":"YulTypedName","src":"1685:6:101","type":""}]},{"nativeSrc":"1710:74:101","nodeType":"YulAssignment","src":"1710:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1756:9:101","nodeType":"YulIdentifier","src":"1756:9:101"},{"name":"offset","nativeSrc":"1767:6:101","nodeType":"YulIdentifier","src":"1767:6:101"}],"functionName":{"name":"add","nativeSrc":"1752:3:101","nodeType":"YulIdentifier","src":"1752:3:101"},"nativeSrc":"1752:22:101","nodeType":"YulFunctionCall","src":"1752:22:101"},{"name":"dataEnd","nativeSrc":"1776:7:101","nodeType":"YulIdentifier","src":"1776:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1720:31:101","nodeType":"YulIdentifier","src":"1720:31:101"},"nativeSrc":"1720:64:101","nodeType":"YulFunctionCall","src":"1720:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1710:6:101","nodeType":"YulIdentifier","src":"1710:6:101"}]}]},{"nativeSrc":"1804:129:101","nodeType":"YulBlock","src":"1804:129:101","statements":[{"nativeSrc":"1819:16:101","nodeType":"YulVariableDeclaration","src":"1819:16:101","value":{"kind":"number","nativeSrc":"1833:2:101","nodeType":"YulLiteral","src":"1833:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1823:6:101","nodeType":"YulTypedName","src":"1823:6:101","type":""}]},{"nativeSrc":"1849:74:101","nodeType":"YulAssignment","src":"1849:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1895:9:101","nodeType":"YulIdentifier","src":"1895:9:101"},{"name":"offset","nativeSrc":"1906:6:101","nodeType":"YulIdentifier","src":"1906:6:101"}],"functionName":{"name":"add","nativeSrc":"1891:3:101","nodeType":"YulIdentifier","src":"1891:3:101"},"nativeSrc":"1891:22:101","nodeType":"YulFunctionCall","src":"1891:22:101"},{"name":"dataEnd","nativeSrc":"1915:7:101","nodeType":"YulIdentifier","src":"1915:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1859:31:101","nodeType":"YulIdentifier","src":"1859:31:101"},"nativeSrc":"1859:64:101","nodeType":"YulFunctionCall","src":"1859:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1849:6:101","nodeType":"YulIdentifier","src":"1849:6:101"}]}]},{"nativeSrc":"1943:161:101","nodeType":"YulBlock","src":"1943:161:101","statements":[{"nativeSrc":"1958:16:101","nodeType":"YulVariableDeclaration","src":"1958:16:101","value":{"kind":"number","nativeSrc":"1972:2:101","nodeType":"YulLiteral","src":"1972:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1962:6:101","nodeType":"YulTypedName","src":"1962:6:101","type":""}]},{"nativeSrc":"1988:106:101","nodeType":"YulAssignment","src":"1988:106:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2066:9:101","nodeType":"YulIdentifier","src":"2066:9:101"},{"name":"offset","nativeSrc":"2077:6:101","nodeType":"YulIdentifier","src":"2077:6:101"}],"functionName":{"name":"add","nativeSrc":"2062:3:101","nodeType":"YulIdentifier","src":"2062:3:101"},"nativeSrc":"2062:22:101","nodeType":"YulFunctionCall","src":"2062:22:101"},{"name":"dataEnd","nativeSrc":"2086:7:101","nodeType":"YulIdentifier","src":"2086:7:101"}],"functionName":{"name":"abi_decode_t_contract$_BoundValidatorInterface_$3698_fromMemory","nativeSrc":"1998:63:101","nodeType":"YulIdentifier","src":"1998:63:101"},"nativeSrc":"1998:96:101","nodeType":"YulFunctionCall","src":"1998:96:101"},"variableNames":[{"name":"value2","nativeSrc":"1988:6:101","nodeType":"YulIdentifier","src":"1988:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_contract$_BoundValidatorInterface_$3698_fromMemory","nativeSrc":"1384:727:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1481:9:101","nodeType":"YulTypedName","src":"1481:9:101","type":""},{"name":"dataEnd","nativeSrc":"1492:7:101","nodeType":"YulTypedName","src":"1492:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1504:6:101","nodeType":"YulTypedName","src":"1504:6:101","type":""},{"name":"value1","nativeSrc":"1512:6:101","nodeType":"YulTypedName","src":"1512:6:101","type":""},{"name":"value2","nativeSrc":"1520:6:101","nodeType":"YulTypedName","src":"1520:6:101","type":""}],"src":"1384:727:101"},{"body":{"nativeSrc":"2213:73:101","nodeType":"YulBlock","src":"2213:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2230:3:101","nodeType":"YulIdentifier","src":"2230:3:101"},{"name":"length","nativeSrc":"2235:6:101","nodeType":"YulIdentifier","src":"2235:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2223:6:101","nodeType":"YulIdentifier","src":"2223:6:101"},"nativeSrc":"2223:19:101","nodeType":"YulFunctionCall","src":"2223:19:101"},"nativeSrc":"2223:19:101","nodeType":"YulExpressionStatement","src":"2223:19:101"},{"nativeSrc":"2251:29:101","nodeType":"YulAssignment","src":"2251:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"2270:3:101","nodeType":"YulIdentifier","src":"2270:3:101"},{"kind":"number","nativeSrc":"2275:4:101","nodeType":"YulLiteral","src":"2275:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2266:3:101","nodeType":"YulIdentifier","src":"2266:3:101"},"nativeSrc":"2266:14:101","nodeType":"YulFunctionCall","src":"2266:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"2251:11:101","nodeType":"YulIdentifier","src":"2251:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2117:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2185:3:101","nodeType":"YulTypedName","src":"2185:3:101","type":""},{"name":"length","nativeSrc":"2190:6:101","nodeType":"YulTypedName","src":"2190:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"2201:11:101","nodeType":"YulTypedName","src":"2201:11:101","type":""}],"src":"2117:169:101"},{"body":{"nativeSrc":"2398:65:101","nodeType":"YulBlock","src":"2398:65:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2420:6:101","nodeType":"YulIdentifier","src":"2420:6:101"},{"kind":"number","nativeSrc":"2428:1:101","nodeType":"YulLiteral","src":"2428:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2416:3:101","nodeType":"YulIdentifier","src":"2416:3:101"},"nativeSrc":"2416:14:101","nodeType":"YulFunctionCall","src":"2416:14:101"},{"hexValue":"63616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"2432:23:101","nodeType":"YulLiteral","src":"2432:23:101","type":"","value":"can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"2409:6:101","nodeType":"YulIdentifier","src":"2409:6:101"},"nativeSrc":"2409:47:101","nodeType":"YulFunctionCall","src":"2409:47:101"},"nativeSrc":"2409:47:101","nodeType":"YulExpressionStatement","src":"2409:47:101"}]},"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"2292:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2390:6:101","nodeType":"YulTypedName","src":"2390:6:101","type":""}],"src":"2292:171:101"},{"body":{"nativeSrc":"2615:220:101","nodeType":"YulBlock","src":"2615:220:101","statements":[{"nativeSrc":"2625:74:101","nodeType":"YulAssignment","src":"2625:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"2691:3:101","nodeType":"YulIdentifier","src":"2691:3:101"},{"kind":"number","nativeSrc":"2696:2:101","nodeType":"YulLiteral","src":"2696:2:101","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2632:58:101","nodeType":"YulIdentifier","src":"2632:58:101"},"nativeSrc":"2632:67:101","nodeType":"YulFunctionCall","src":"2632:67:101"},"variableNames":[{"name":"pos","nativeSrc":"2625:3:101","nodeType":"YulIdentifier","src":"2625:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2797:3:101","nodeType":"YulIdentifier","src":"2797:3:101"}],"functionName":{"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"2708:88:101","nodeType":"YulIdentifier","src":"2708:88:101"},"nativeSrc":"2708:93:101","nodeType":"YulFunctionCall","src":"2708:93:101"},"nativeSrc":"2708:93:101","nodeType":"YulExpressionStatement","src":"2708:93:101"},{"nativeSrc":"2810:19:101","nodeType":"YulAssignment","src":"2810:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"2821:3:101","nodeType":"YulIdentifier","src":"2821:3:101"},{"kind":"number","nativeSrc":"2826:2:101","nodeType":"YulLiteral","src":"2826:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2817:3:101","nodeType":"YulIdentifier","src":"2817:3:101"},"nativeSrc":"2817:12:101","nodeType":"YulFunctionCall","src":"2817:12:101"},"variableNames":[{"name":"end","nativeSrc":"2810:3:101","nodeType":"YulIdentifier","src":"2810:3:101"}]}]},"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"2469:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2603:3:101","nodeType":"YulTypedName","src":"2603:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2611:3:101","nodeType":"YulTypedName","src":"2611:3:101","type":""}],"src":"2469:366:101"},{"body":{"nativeSrc":"3012:248:101","nodeType":"YulBlock","src":"3012:248:101","statements":[{"nativeSrc":"3022:26:101","nodeType":"YulAssignment","src":"3022:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3034:9:101","nodeType":"YulIdentifier","src":"3034:9:101"},{"kind":"number","nativeSrc":"3045:2:101","nodeType":"YulLiteral","src":"3045:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3030:3:101","nodeType":"YulIdentifier","src":"3030:3:101"},"nativeSrc":"3030:18:101","nodeType":"YulFunctionCall","src":"3030:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3022:4:101","nodeType":"YulIdentifier","src":"3022:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3069:9:101","nodeType":"YulIdentifier","src":"3069:9:101"},{"kind":"number","nativeSrc":"3080:1:101","nodeType":"YulLiteral","src":"3080:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3065:3:101","nodeType":"YulIdentifier","src":"3065:3:101"},"nativeSrc":"3065:17:101","nodeType":"YulFunctionCall","src":"3065:17:101"},{"arguments":[{"name":"tail","nativeSrc":"3088:4:101","nodeType":"YulIdentifier","src":"3088:4:101"},{"name":"headStart","nativeSrc":"3094:9:101","nodeType":"YulIdentifier","src":"3094:9:101"}],"functionName":{"name":"sub","nativeSrc":"3084:3:101","nodeType":"YulIdentifier","src":"3084:3:101"},"nativeSrc":"3084:20:101","nodeType":"YulFunctionCall","src":"3084:20:101"}],"functionName":{"name":"mstore","nativeSrc":"3058:6:101","nodeType":"YulIdentifier","src":"3058:6:101"},"nativeSrc":"3058:47:101","nodeType":"YulFunctionCall","src":"3058:47:101"},"nativeSrc":"3058:47:101","nodeType":"YulExpressionStatement","src":"3058:47:101"},{"nativeSrc":"3114:139:101","nodeType":"YulAssignment","src":"3114:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"3248:4:101","nodeType":"YulIdentifier","src":"3248:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"3122:124:101","nodeType":"YulIdentifier","src":"3122:124:101"},"nativeSrc":"3122:131:101","nodeType":"YulFunctionCall","src":"3122:131:101"},"variableNames":[{"name":"tail","nativeSrc":"3114:4:101","nodeType":"YulIdentifier","src":"3114:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2841:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2992:9:101","nodeType":"YulTypedName","src":"2992:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3007:4:101","nodeType":"YulTypedName","src":"3007:4:101","type":""}],"src":"2841:419:101"},{"body":{"nativeSrc":"3372:120:101","nodeType":"YulBlock","src":"3372:120:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3394:6:101","nodeType":"YulIdentifier","src":"3394:6:101"},{"kind":"number","nativeSrc":"3402:1:101","nodeType":"YulLiteral","src":"3402:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3390:3:101","nodeType":"YulIdentifier","src":"3390:3:101"},"nativeSrc":"3390:14:101","nodeType":"YulFunctionCall","src":"3390:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"3406:34:101","nodeType":"YulLiteral","src":"3406:34:101","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"3383:6:101","nodeType":"YulIdentifier","src":"3383:6:101"},"nativeSrc":"3383:58:101","nodeType":"YulFunctionCall","src":"3383:58:101"},"nativeSrc":"3383:58:101","nodeType":"YulExpressionStatement","src":"3383:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3462:6:101","nodeType":"YulIdentifier","src":"3462:6:101"},{"kind":"number","nativeSrc":"3470:2:101","nodeType":"YulLiteral","src":"3470:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3458:3:101","nodeType":"YulIdentifier","src":"3458:3:101"},"nativeSrc":"3458:15:101","nodeType":"YulFunctionCall","src":"3458:15:101"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"3475:9:101","nodeType":"YulLiteral","src":"3475:9:101","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"3451:6:101","nodeType":"YulIdentifier","src":"3451:6:101"},"nativeSrc":"3451:34:101","nodeType":"YulFunctionCall","src":"3451:34:101"},"nativeSrc":"3451:34:101","nodeType":"YulExpressionStatement","src":"3451:34:101"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"3266:226:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3364:6:101","nodeType":"YulTypedName","src":"3364:6:101","type":""}],"src":"3266:226:101"},{"body":{"nativeSrc":"3644:220:101","nodeType":"YulBlock","src":"3644:220:101","statements":[{"nativeSrc":"3654:74:101","nodeType":"YulAssignment","src":"3654:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"3720:3:101","nodeType":"YulIdentifier","src":"3720:3:101"},{"kind":"number","nativeSrc":"3725:2:101","nodeType":"YulLiteral","src":"3725:2:101","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3661:58:101","nodeType":"YulIdentifier","src":"3661:58:101"},"nativeSrc":"3661:67:101","nodeType":"YulFunctionCall","src":"3661:67:101"},"variableNames":[{"name":"pos","nativeSrc":"3654:3:101","nodeType":"YulIdentifier","src":"3654:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3826:3:101","nodeType":"YulIdentifier","src":"3826:3:101"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"3737:88:101","nodeType":"YulIdentifier","src":"3737:88:101"},"nativeSrc":"3737:93:101","nodeType":"YulFunctionCall","src":"3737:93:101"},"nativeSrc":"3737:93:101","nodeType":"YulExpressionStatement","src":"3737:93:101"},{"nativeSrc":"3839:19:101","nodeType":"YulAssignment","src":"3839:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"3850:3:101","nodeType":"YulIdentifier","src":"3850:3:101"},{"kind":"number","nativeSrc":"3855:2:101","nodeType":"YulLiteral","src":"3855:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3846:3:101","nodeType":"YulIdentifier","src":"3846:3:101"},"nativeSrc":"3846:12:101","nodeType":"YulFunctionCall","src":"3846:12:101"},"variableNames":[{"name":"end","nativeSrc":"3839:3:101","nodeType":"YulIdentifier","src":"3839:3:101"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"3498:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3632:3:101","nodeType":"YulTypedName","src":"3632:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3640:3:101","nodeType":"YulTypedName","src":"3640:3:101","type":""}],"src":"3498:366:101"},{"body":{"nativeSrc":"4041:248:101","nodeType":"YulBlock","src":"4041:248:101","statements":[{"nativeSrc":"4051:26:101","nodeType":"YulAssignment","src":"4051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4063:9:101","nodeType":"YulIdentifier","src":"4063:9:101"},{"kind":"number","nativeSrc":"4074:2:101","nodeType":"YulLiteral","src":"4074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4059:3:101","nodeType":"YulIdentifier","src":"4059:3:101"},"nativeSrc":"4059:18:101","nodeType":"YulFunctionCall","src":"4059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4051:4:101","nodeType":"YulIdentifier","src":"4051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4098:9:101","nodeType":"YulIdentifier","src":"4098:9:101"},{"kind":"number","nativeSrc":"4109:1:101","nodeType":"YulLiteral","src":"4109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4094:3:101","nodeType":"YulIdentifier","src":"4094:3:101"},"nativeSrc":"4094:17:101","nodeType":"YulFunctionCall","src":"4094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4117:4:101","nodeType":"YulIdentifier","src":"4117:4:101"},{"name":"headStart","nativeSrc":"4123:9:101","nodeType":"YulIdentifier","src":"4123:9:101"}],"functionName":{"name":"sub","nativeSrc":"4113:3:101","nodeType":"YulIdentifier","src":"4113:3:101"},"nativeSrc":"4113:20:101","nodeType":"YulFunctionCall","src":"4113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4087:6:101","nodeType":"YulIdentifier","src":"4087:6:101"},"nativeSrc":"4087:47:101","nodeType":"YulFunctionCall","src":"4087:47:101"},"nativeSrc":"4087:47:101","nodeType":"YulExpressionStatement","src":"4087:47:101"},{"nativeSrc":"4143:139:101","nodeType":"YulAssignment","src":"4143:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"4277:4:101","nodeType":"YulIdentifier","src":"4277:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"4151:124:101","nodeType":"YulIdentifier","src":"4151:124:101"},"nativeSrc":"4151:131:101","nodeType":"YulFunctionCall","src":"4151:131:101"},"variableNames":[{"name":"tail","nativeSrc":"4143:4:101","nodeType":"YulIdentifier","src":"4143:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3870:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4021:9:101","nodeType":"YulTypedName","src":"4021:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4036:4:101","nodeType":"YulTypedName","src":"4036:4:101","type":""}],"src":"3870:419:101"},{"body":{"nativeSrc":"4338:43:101","nodeType":"YulBlock","src":"4338:43:101","statements":[{"nativeSrc":"4348:27:101","nodeType":"YulAssignment","src":"4348:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4363:5:101","nodeType":"YulIdentifier","src":"4363:5:101"},{"kind":"number","nativeSrc":"4370:4:101","nodeType":"YulLiteral","src":"4370:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4359:3:101","nodeType":"YulIdentifier","src":"4359:3:101"},"nativeSrc":"4359:16:101","nodeType":"YulFunctionCall","src":"4359:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4348:7:101","nodeType":"YulIdentifier","src":"4348:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4295:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4320:5:101","nodeType":"YulTypedName","src":"4320:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4330:7:101","nodeType":"YulTypedName","src":"4330:7:101","type":""}],"src":"4295:86:101"},{"body":{"nativeSrc":"4448:51:101","nodeType":"YulBlock","src":"4448:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4465:3:101","nodeType":"YulIdentifier","src":"4465:3:101"},{"arguments":[{"name":"value","nativeSrc":"4486:5:101","nodeType":"YulIdentifier","src":"4486:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4470:15:101","nodeType":"YulIdentifier","src":"4470:15:101"},"nativeSrc":"4470:22:101","nodeType":"YulFunctionCall","src":"4470:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4458:6:101","nodeType":"YulIdentifier","src":"4458:6:101"},"nativeSrc":"4458:35:101","nodeType":"YulFunctionCall","src":"4458:35:101"},"nativeSrc":"4458:35:101","nodeType":"YulExpressionStatement","src":"4458:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4387:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4436:5:101","nodeType":"YulTypedName","src":"4436:5:101","type":""},{"name":"pos","nativeSrc":"4443:3:101","nodeType":"YulTypedName","src":"4443:3:101","type":""}],"src":"4387:112:101"},{"body":{"nativeSrc":"4599:120:101","nodeType":"YulBlock","src":"4599:120:101","statements":[{"nativeSrc":"4609:26:101","nodeType":"YulAssignment","src":"4609:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4621:9:101","nodeType":"YulIdentifier","src":"4621:9:101"},{"kind":"number","nativeSrc":"4632:2:101","nodeType":"YulLiteral","src":"4632:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4617:3:101","nodeType":"YulIdentifier","src":"4617:3:101"},"nativeSrc":"4617:18:101","nodeType":"YulFunctionCall","src":"4617:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4609:4:101","nodeType":"YulIdentifier","src":"4609:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4685:6:101","nodeType":"YulIdentifier","src":"4685:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4698:9:101","nodeType":"YulIdentifier","src":"4698:9:101"},{"kind":"number","nativeSrc":"4709:1:101","nodeType":"YulLiteral","src":"4709:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4694:3:101","nodeType":"YulIdentifier","src":"4694:3:101"},"nativeSrc":"4694:17:101","nodeType":"YulFunctionCall","src":"4694:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4645:39:101","nodeType":"YulIdentifier","src":"4645:39:101"},"nativeSrc":"4645:67:101","nodeType":"YulFunctionCall","src":"4645:67:101"},"nativeSrc":"4645:67:101","nodeType":"YulExpressionStatement","src":"4645:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4505:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4571:9:101","nodeType":"YulTypedName","src":"4571:9:101","type":""},{"name":"value0","nativeSrc":"4583:6:101","nodeType":"YulTypedName","src":"4583:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4594:4:101","nodeType":"YulTypedName","src":"4594:4:101","type":""}],"src":"4505:214:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_contract$_BoundValidatorInterface_$3698(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_BoundValidatorInterface_$3698(value) {\n        if iszero(eq(value, cleanup_t_contract$_BoundValidatorInterface_$3698(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_BoundValidatorInterface_$3698_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_contract$_BoundValidatorInterface_$3698(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_contract$_BoundValidatorInterface_$3698_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_contract$_BoundValidatorInterface_$3698_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(memPtr) {\n\n        mstore(add(memPtr, 0), \"can't be zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405234801561000f575f80fd5b506040516126de3803806126de83398101604081905261002e91610154565b806001600160a01b03811661005e5760405162461bcd60e51b8152600401610055906101a0565b60405180910390fd5b6001600160a01b0380851660805283811660a052821660c05261007f610088565b50505050610235565b5f54610100900460ff16156100af5760405162461bcd60e51b8152600401610055906101db565b5f5460ff90811614610101575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498916100f891610226565b60405180910390a15b565b5f6001600160a01b0382165b92915050565b61011e81610103565b8114610128575f80fd5b50565b805161010f81610115565b5f61010f82610103565b61011e81610136565b805161010f81610140565b5f805f60608486031215610169576101695f80fd5b5f610174868661012b565b93505060206101858682870161012b565b925050604061019686828701610149565b9150509250925092565b6020808252810161010f81601581527f63616e2774206265207a65726f20616464726573730000000000000000000000602082015260400190565b6020808252810161010f81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff821681526020810161010f565b60805160a05160c0516124556102895f395f81816101bf01528181610ff5015281816114b1015261161401525f818161035a0152818161116d01526111a601525f818161027c015261111801526124555ff3fe608060405234801561000f575f80fd5b50600436106101a1575f3560e01c80638da5cb5b116100f3578063b62e4c9211610093578063e30c39781161006e578063e30c3978146103af578063e9d1284f146103c0578063f2fde38b146103d4578063fc57d4df146103e7575f80fd5b8063b62e4c9214610355578063c4d66de81461037c578063cb67e3b11461038f575f80fd5b8063a8e68463116100ce578063a8e6846314610303578063a9534f8a14610316578063b4a0bdf314610331578063b62cad6914610342575f80fd5b80638da5cb5b146102cc57806396e85ced146102dd578063a6b1344a146102f0575f80fd5b80635c975abb1161015e5780638456cb59116101395780638456cb591461025c578063883cfb91146102645780638a2f7f6d146102775780638b855da4146102ab575f80fd5b80635c975abb14610239578063715018a61461024c57806379ba509714610254575f80fd5b80630e32cb86146101a557806333d33494146101ba5780633f4ba83a146101f757806341976e09146101ff5780634b932b8f1461021f5780634bf39cba14610232575b5f80fd5b6101b86101b3366004611983565b6103fa565b005b6101e17f000000000000000000000000000000000000000000000000000000000000000081565b6040516101ee91906119cc565b60405180910390f35b6101b861040e565b61021261020d366004611983565b610442565b6040516101ee91906119e0565b6101b861022d366004611a18565b610484565b6102125f81565b60335460ff166040516101ee9190611a6c565b6101b86105cd565b6101b86105de565b6101b8610613565b6101b8610272366004611cdd565b610643565b61029e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101ee9190611d1e565b6102be6102b9366004611d2c565b61069e565b6040516101ee929190611d66565b6065546001600160a01b031661029e565b6101b86102eb366004611983565b61073e565b6101b86102fe366004611d81565b610757565b6101b8610311366004611dc3565b6108ee565b61029e73bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b60c9546001600160a01b03166101e1565b6101b8610350366004611983565b610a9e565b61029e7f000000000000000000000000000000000000000000000000000000000000000081565b6101b861038a366004611983565b610aa7565b6103a261039d366004611983565b610b79565b6040516101ee9190611ea9565b6097546001600160a01b031661029e565b6102125f8051602061240083398151915281565b6101b86103e2366004611983565b610c5a565b6102126103f5366004611983565b610ccb565b610402610d11565b61040b81610d3b565b50565b61043860405180604001604052806009815260200168756e7061757365282960b81b815250610db4565b610440610e4b565b565b5f61044f60335460ff1690565b156104755760405162461bcd60e51b815260040161046c90611eee565b60405180910390fd5b61047e82610e97565b92915050565b826001600160a01b0381166104ab5760405162461bcd60e51b815260040161046c90611f29565b6001600160a01b038085165f90815260fb60205260409020548591166104e35760405162461bcd60e51b815260040161046c90611f6c565b6105216040518060400160405280602081526020017f656e61626c654f7261636c6528616464726573732c75696e74382c626f6f6c29815250610db4565b6001600160a01b0385165f90815260fb60205260409020839060040185600281111561054f5761054f611f7c565b6003811061055f5761055f611f90565b602091828204019190066101000a81548160ff02191690831515021790555082151584600281111561059357610593611f7c565b6040516001600160a01b038816907fcf3cad1ec87208efbde5d82a0557484a78d4182c3ad16926a5463bc1f7234b3d905f90a45050505050565b6105d5610d11565b6104405f611098565b60975433906001600160a01b0316811461060a5760405162461bcd60e51b815260040161046c90611fec565b61040b81611098565b61063b604051806040016040528060078152602001667061757365282960c81b815250610db4565b6104406110b1565b80515f036106635760405162461bcd60e51b815260040161046c90612023565b80515f5b818110156106995761069183828151811061068457610684611f90565b60200260200101516108ee565b600101610667565b505050565b6001600160a01b0382165f90815260fb6020526040812081906001018360028111156106cc576106cc611f7c565b600381106106dc576106dc611f90565b01546001600160a01b038581165f90815260fb602052604090209116925060040183600281111561070f5761070f611f7c565b6003811061071f5761071f611f90565b602091828204019190069054906101000a900460ff1690509250929050565b5f610748826110ee565b905061075381611232565b5050565b826001600160a01b03811661077e5760405162461bcd60e51b815260040161046c90611f29565b6001600160a01b038085165f90815260fb60205260409020548591166107b65760405162461bcd60e51b815260040161046c90611f6c565b6107f46040518060400160405280602081526020017f7365744f7261636c6528616464726573732c616464726573732c75696e743829815250610db4565b6001600160a01b03841615801561081b57505f83600281111561081957610819611f7c565b145b156108385760405162461bcd60e51b815260040161046c90612074565b6001600160a01b0385165f90815260fb60205260409020849060010184600281111561086657610866611f7c565b6003811061087657610876611f90565b0180546001600160a01b0319166001600160a01b03929092169190911790558260028111156108a7576108a7611f7c565b846001600160a01b0316866001600160a01b03167fea681d3efb830ef032a9c29a7215b5ceeeb546250d2c463dbf87817aecda1bf160405160405180910390a45050505050565b80516001600160a01b0381166109165760405162461bcd60e51b815260040161046c90611f29565b6020820151516001600160a01b0381166109425760405162461bcd60e51b815260040161046c90611f29565b6109806040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e666967290000000000815250610db4565b82516001600160a01b039081165f90815260fb60209081526040909120855181546001600160a01b03191693169290921782558401518491906109c99060018301906003611806565b5060408201516109df906004830190600361185e565b50606091909101516005909101805460ff191691151591909117905560208381015190810151815185516001600160a01b03928316939183169216907fa51ad01e2270c314a7b78f0c60fe66c723f2d06c121d63fcdce776e654878fc19060026020020151604051610a519190611d1e565b60405180910390a482606001511515835f01516001600160a01b03167fca250c5374abedcbf71c0e3eda7ff4cf940fa9e6561d8cd31d2bf480a140a93f60405160405180910390a3505050565b61040b81611232565b5f54610100900460ff1615808015610ac557505f54600160ff909116105b80610ade5750303b158015610ade57505f5460ff166001145b610afa5760405162461bcd60e51b815260040161046c906120ce565b5f805460ff191660011790558015610b1b575f805461ff0019166101001790555b610b2482611314565b610b2c61134b565b8015610753575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610b6d906001906120f1565b60405180910390a15050565b610b816118e8565b6001600160a01b038281165f90815260fb602090815260409182902082516080810184528154909416845282516060810193849052909291840191600184019060039082845b81546001600160a01b03168152600190910190602001808311610bc7575050509183525050604080516060810191829052602090920191906004840190600390825f855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411610c0b575050509284525050506005919091015460ff16151560209091015292915050565b610c62610d11565b609780546001600160a01b0383166001600160a01b03199091168117909155610c936065546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f610cd860335460ff1690565b15610cf55760405162461bcd60e51b815260040161046c90611eee565b5f610cff836110ee565b9050610d0a81610e97565b9392505050565b6065546001600160a01b031633146104405760405162461bcd60e51b815260040161046c90612130565b6001600160a01b038116610d615760405162461bcd60e51b815260040161046c90612181565b60c980546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610b6d9083908590612191565b60c9546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab90610de690339086906004016121e8565b602060405180830381865afa158015610e01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e259190612213565b90508061075357333083604051634a3fa29360e01b815260040161046c93929190612231565b610e53611379565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610e8d9190611d1e565b60405180910390a1565b5f8080610eb15f805160206124008339815191528561139b565b90508015610ec0579392505050565b5f80610ecd86600161069e565b91509150808015610ee657506001600160a01b03821615155b15610f58576040516341976e0960e01b81526001600160a01b038316906341976e0990610f17908990600401611d1e565b602060405180830381865afa925050508015610f50575060408051601f3d908101601f19168201909252610f4d91810190612278565b60015b15610f585793505b5f80610f798887858015610f7457506001600160a01b03871615155b6113d1565b915091505f8214158015610f8a5750805b15610f9a57509695505050505050565b5f80610fa68a89611546565b915091505f8214158015610fb75750805b15610fc9575098975050505050505050565b8315801590610fd757508115155b801561106d5750604051634be3819f60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906397c7033e9061102e908d9088908790600401612296565b602060405180830381865afa158015611049573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106d9190612213565b1561108057509198975050505050505050565b60405162461bcd60e51b815260040161046c906122f1565b609780546001600160a01b031916905561040b816116a8565b6110b96116f9565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e803390565b5f816001600160a01b0381166111165760405162461bcd60e51b815260040161046c90611f29565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361116b5773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb915061122c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036111cc577f0000000000000000000000000000000000000000000000000000000000000000915061122c565b826001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611208573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0a919061230c565b50919050565b6112495f805160206124008339815191528261139b565b156112515750565b5f8061125d835f61069e565b90925090506001600160a01b038216158015906112775750805b156112c757816001600160a01b031663692404266040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156112b4575f80fd5b505af19250505080156112c5575060015b505b6001600160a01b0383165f90815260fb602052604090206005015460ff1615610699575f6112f484610e97565b905061130e5f80516020612400833981519152858361171c565b50505050565b5f54610100900460ff1661133a5760405162461bcd60e51b815260040161046c90612371565b611342611751565b61040b8161177f565b5f54610100900460ff166113715760405162461bcd60e51b815260040161046c90612371565b6104406117a5565b60335460ff166104405760405162461bcd60e51b815260040161046c906123ab565b5f8083836040516020016113b09291906123bb565b60408051601f1981840301815291905280516020909101205c949350505050565b5f805f806113df875f61069e565b915091508080156113f857506001600160a01b03821615155b15611535576040516341976e0960e01b81526001600160a01b038316906341976e0990611429908a90600401611d1e565b602060405180830381865afa925050508015611462575060408051601f3d908101601f1916820190925261145f91810190612278565b60015b611473575f8093509350505061153e565b856114865793506001925061153e915050565b866114985793505f925061153e915050565b604051634be3819f60e11b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906397c7033e906114ea908c9085908d90600401612296565b602060405180830381865afa158015611505573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115299190612213565b9450945050505061153e565b5f809350935050505b935093915050565b5f805f8061155586600261069e565b9150915080801561156e57506001600160a01b03821615155b15611698576040516341976e0960e01b81526001600160a01b038316906341976e099061159f908990600401611d1e565b602060405180830381865afa9250505080156115d8575060408051601f3d908101601f191682019092526115d591810190612278565b60015b6115e9575f809350935050506116a1565b856115fb5793505f92506116a1915050565b604051634be3819f60e11b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906397c7033e9061164d908b9085908c90600401612296565b602060405180830381865afa158015611668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168c9190612213565b945094505050506116a1565b5f809350935050505b9250929050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60335460ff16156104405760405162461bcd60e51b815260040161046c906123ef565b5f83836040516020016117309291906123bb565b60405160208183030381529060405280519060200120905081815d50505050565b5f54610100900460ff166117775760405162461bcd60e51b815260040161046c90612371565b6104406117d7565b5f54610100900460ff166104025760405162461bcd60e51b815260040161046c90612371565b5f54610100900460ff166117cb5760405162461bcd60e51b815260040161046c90612371565b6033805460ff19169055565b5f54610100900460ff166117fd5760405162461bcd60e51b815260040161046c90612371565b61044033611098565b826003810192821561184e579160200282015b8281111561184e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611819565b5061185a929150611923565b5090565b60018301918390821561184e579160200282015f5b838211156118af57835183826101000a81548160ff02191690831515021790555092602001926001016020815f01049283019260010302611873565b80156118db5782816101000a81549060ff02191690556001016020815f010492830192600103026118af565b505061185a929150611923565b60405180608001604052805f6001600160a01b0316815260200161190a611937565b8152602001611917611937565b81525f60209091015290565b5b8082111561185a575f8155600101611924565b60405180606001604052806003906020820280368337509192915050565b5f6001600160a01b03821661047e565b61196e81611955565b811461040b575f80fd5b803561047e81611965565b5f60208284031215611996576119965f80fd5b5f6119a18484611978565b949350505050565b5f61047e82611955565b5f61047e826119a9565b6119c6816119b3565b82525050565b6020810161047e82846119bd565b806119c6565b6020810161047e82846119da565b6003811061040b575f80fd5b803561047e816119ee565b80151561196e565b803561047e81611a05565b5f805f60608486031215611a2d57611a2d5f80fd5b5f611a388686611978565b9350506020611a49868287016119fa565b9250506040611a5a86828701611a0d565b9150509250925092565b8015156119c6565b6020810161047e8284611a64565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715611ab457611ab4611a7a565b6040525050565b5f611ac560405190565b9050611ad18282611a8e565b919050565b5f67ffffffffffffffff821115611aef57611aef611a7a565b5060209081020190565b5f67ffffffffffffffff821115611b1257611b12611a7a565b5060200290565b5f611b2b611b2684611af9565b611abb565b90508060208402830185811115611b4357611b435f80fd5b835b81811015611b675780611b588882611978565b84525060209283019201611b45565b5050509392505050565b5f82601f830112611b8357611b835f80fd5b60036119a1848285611b19565b5f611b9d611b2684611af9565b90508060208402830185811115611bb557611bb55f80fd5b835b81811015611b675780611bca8882611a0d565b84525060209283019201611bb7565b5f82601f830112611beb57611beb5f80fd5b60036119a1848285611b90565b5f6101008284031215611c0c57611c0c5f80fd5b611c166080611abb565b90505f611c238484611978565b8252506020611c3484848301611b71565b6020830152506080611c4884828501611bd9565b60408301525060e0611c5c84828501611a0d565b60608301525092915050565b5f611c75611b2684611ad6565b8381529050602081016101008402830185811115611c9457611c945f80fd5b835b81811015611b675780611ca98882611bf8565b84525060209092019161010001611c96565b5f82601f830112611ccd57611ccd5f80fd5b81356119a1848260208601611c68565b5f60208284031215611cf057611cf05f80fd5b813567ffffffffffffffff811115611d0957611d095f80fd5b6119a184828501611cbb565b6119c681611955565b6020810161047e8284611d15565b5f8060408385031215611d4057611d405f80fd5b5f611d4b8585611978565b9250506020611d5c858286016119fa565b9150509250929050565b60408101611d748285611d15565b610d0a6020830184611a64565b5f805f60608486031215611d9657611d965f80fd5b5f611da18686611978565b9350506020611db286828701611978565b9250506040611a5a868287016119fa565b5f6101008284031215611dd757611dd75f80fd5b5f6119a18484611bf8565b5f611ded8383611d15565b505060200190565b600381805f5b83811015611e20578151611e0f8782611de2565b965060208301925050600101611dfb565b505050505050565b5f611ded8383611a64565b600381805f5b83811015611e20578151611e4d8782611e28565b965060208301925050600101611e39565b8051610100830190611e708482611d15565b506020820151611e836020850182611df5565b506040820151611e966080850182611e33565b50606082015161130e60e0850182611a64565b610100810161047e8284611e5e565b601a81525f602082017f726573696c69656e74206f7261636c6520697320706175736564000000000000815291505b5060200190565b6020808252810161047e81611eb8565b601581525f602082017463616e2774206265207a65726f206164647265737360581b81529150611ee7565b6020808252810161047e81611efe565b601781525f602082017f746f6b656e20636f6e666967206d75737420657869737400000000000000000081529150611ee7565b6020808252810161047e81611f39565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161047e81611fa4565b601181525f602082017006c656e6774682063616e2774206265203607c1b81529150611ee7565b6020808252810161047e81611ffc565b602581525f602082017f63616e277420736574207a65726f206164647265737320746f206d61696e206f8152647261636c6560d81b60208201529150611fe5565b6020808252810161047e81612033565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150611fe5565b6020808252810161047e81612084565b5f60ff821661047e565b6119c6816120de565b6020810161047e82846120e8565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f611ee7565b6020808252810161047e816120ff565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150611fe5565b6020808252810161047e81612140565b6040810161219f8285611d15565b610d0a6020830184611d15565b8281835e505f910152565b5f6121c0825190565b8084526020840193506121d78185602086016121ac565b601f01601f19169290920192915050565b604081016121f68285611d15565b81810360208301526119a181846121b7565b805161047e81611a05565b5f60208284031215612226576122265f80fd5b5f6119a18484612208565b6060810161223f8286611d15565b61224c6020830185611d15565b818103604083015261225e81846121b7565b95945050505050565b8061196e565b805161047e81612267565b5f6020828403121561228b5761228b5f80fd5b5f6119a1848461226d565b606081016122a48286611d15565b6122b160208301856119da565b6119a160408301846119da565b601e81525f602082017f696e76616c696420726573696c69656e74206f7261636c65207072696365000081529150611ee7565b6020808252810161047e816122be565b805161047e81611965565b5f6020828403121561231f5761231f5f80fd5b5f6119a18484612301565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150611fe5565b6020808252810161047e8161232a565b601481525f602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b81529150611ee7565b6020808252810161047e81612381565b6040810161219f82856119da565b601081525f602082016f14185d5cd8589b194e881c185d5cd95960821b81529150611ee7565b6020808252810161047e816123c956fe4e99ec55972332f5e0ef9c6623192c0401b609161bffae64d9ccdd7ad6cc7800a264697066735822122071db7a592f6e37dc1b9a94cbb64f679e43f1f496741c52d980f623401e529da564736f6c63430008190033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x26DE CODESIZE SUB DUP1 PUSH2 0x26DE DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x154 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x55 SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x80 MSTORE DUP4 DUP2 AND PUSH1 0xA0 MSTORE DUP3 AND PUSH1 0xC0 MSTORE PUSH2 0x7F PUSH2 0x88 JUMP JUMPDEST POP POP POP POP PUSH2 0x235 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xAF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x55 SWAP1 PUSH2 0x1DB JUMP JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x101 JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0xF8 SWAP2 PUSH2 0x226 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11E DUP2 PUSH2 0x103 JUMP JUMPDEST DUP2 EQ PUSH2 0x128 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x10F DUP2 PUSH2 0x115 JUMP JUMPDEST PUSH0 PUSH2 0x10F DUP3 PUSH2 0x103 JUMP JUMPDEST PUSH2 0x11E DUP2 PUSH2 0x136 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x10F DUP2 PUSH2 0x140 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x169 JUMPI PUSH2 0x169 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x174 DUP7 DUP7 PUSH2 0x12B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x185 DUP7 DUP3 DUP8 ADD PUSH2 0x12B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x196 DUP7 DUP3 DUP8 ADD PUSH2 0x149 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10F DUP2 PUSH1 0x15 DUP2 MSTORE PUSH32 0x63616E2774206265207A65726F20616464726573730000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10F DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0x10F JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x2455 PUSH2 0x289 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x1BF ADD MSTORE DUP2 DUP2 PUSH2 0xFF5 ADD MSTORE DUP2 DUP2 PUSH2 0x14B1 ADD MSTORE PUSH2 0x1614 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x35A ADD MSTORE DUP2 DUP2 PUSH2 0x116D ADD MSTORE PUSH2 0x11A6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x27C ADD MSTORE PUSH2 0x1118 ADD MSTORE PUSH2 0x2455 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF3 JUMPI DUP1 PUSH4 0xB62E4C92 GT PUSH2 0x93 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xE9D1284F EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xFC57D4DF EQ PUSH2 0x3E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB62E4C92 EQ PUSH2 0x355 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0xCB67E3B1 EQ PUSH2 0x38F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA8E68463 GT PUSH2 0xCE JUMPI DUP1 PUSH4 0xA8E68463 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x331 JUMPI DUP1 PUSH4 0xB62CAD69 EQ PUSH2 0x342 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2CC JUMPI DUP1 PUSH4 0x96E85CED EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xA6B1344A EQ PUSH2 0x2F0 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x8456CB59 GT PUSH2 0x139 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0x883CFB91 EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0x8A2F7F6D EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x8B855DA4 EQ PUSH2 0x2AB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x254 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x33D33494 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x4B932B8F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x4BF39CBA EQ PUSH2 0x232 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0x3FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E1 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x19CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B8 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x212 PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0x442 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x1A18 JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH2 0x212 PUSH0 DUP2 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x5CD JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x5DE JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x613 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CDD JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH2 0x29E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x1D1E JUMP JUMPDEST PUSH2 0x2BE PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D2C JUMP JUMPDEST PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP3 SWAP2 SWAP1 PUSH2 0x1D66 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x29E JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0x73E JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x1D81 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DC3 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x29E PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x350 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST PUSH2 0x29E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x38A CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x3A2 PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x29E JUMP JUMPDEST PUSH2 0x212 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x3E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xC5A JUMP JUMPDEST PUSH2 0x212 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xCCB JUMP JUMPDEST PUSH2 0x402 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0xD3B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x438 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x756E70617573652829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH2 0x440 PUSH2 0xE4B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH2 0x44F PUSH1 0x33 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x475 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1EEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x47E DUP3 PUSH2 0xE97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP2 AND PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F6C JUMP JUMPDEST PUSH2 0x521 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x656E61626C654F7261636C6528616464726573732C75696E74382C626F6F6C29 DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 PUSH1 0x4 ADD DUP6 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x54F JUMPI PUSH2 0x54F PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x55F JUMPI PUSH2 0x55F PUSH2 0x1F90 JUMP JUMPDEST 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 DUP3 ISZERO ISZERO DUP5 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x593 JUMPI PUSH2 0x593 PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xCF3CAD1EC87208EFBDE5D82A0557484A78D4182C3AD16926A5463BC1F7234B3D SWAP1 PUSH0 SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5D5 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x440 PUSH0 PUSH2 0x1098 JUMP JUMPDEST PUSH1 0x97 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x60A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1FEC JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0x1098 JUMP JUMPDEST PUSH2 0x63B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x70617573652829 PUSH1 0xC8 SHL DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH2 0x440 PUSH2 0x10B1 JUMP JUMPDEST DUP1 MLOAD PUSH0 SUB PUSH2 0x663 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2023 JUMP JUMPDEST DUP1 MLOAD PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x699 JUMPI PUSH2 0x691 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x684 JUMPI PUSH2 0x684 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8EE JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x667 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH1 0x1 ADD DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6CC JUMPI PUSH2 0x6CC PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x6DC JUMPI PUSH2 0x6DC PUSH2 0x1F90 JUMP JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 AND SWAP3 POP PUSH1 0x4 ADD DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x70F JUMPI PUSH2 0x70F PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x71F JUMPI PUSH2 0x71F PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x748 DUP3 PUSH2 0x10EE JUMP JUMPDEST SWAP1 POP PUSH2 0x753 DUP2 PUSH2 0x1232 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x77E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP2 AND PUSH2 0x7B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F6C JUMP JUMPDEST PUSH2 0x7F4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744F7261636C6528616464726573732C616464726573732C75696E743829 DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO PUSH2 0x81B JUMPI POP PUSH0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x819 JUMPI PUSH2 0x819 PUSH2 0x1F7C JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x838 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2074 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 SWAP1 PUSH1 0x1 ADD DUP5 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x866 JUMPI PUSH2 0x866 PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x876 JUMPI PUSH2 0x876 PUSH2 0x1F90 JUMP JUMPDEST ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8A7 JUMPI PUSH2 0x8A7 PUSH2 0x1F7C JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xEA681D3EFB830EF032A9C29A7215B5CEEEB546250D2C463DBF87817AECDA1BF1 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x916 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH2 0x980 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574546F6B656E436F6E66696728546F6B656E436F6E666967290000000000 DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP6 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE DUP5 ADD MLOAD DUP5 SWAP2 SWAP1 PUSH2 0x9C9 SWAP1 PUSH1 0x1 DUP4 ADD SWAP1 PUSH1 0x3 PUSH2 0x1806 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x9DF SWAP1 PUSH1 0x4 DUP4 ADD SWAP1 PUSH1 0x3 PUSH2 0x185E JUMP JUMPDEST POP PUSH1 0x60 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP2 ADD MLOAD DUP2 MLOAD DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP4 SWAP2 DUP4 AND SWAP3 AND SWAP1 PUSH32 0xA51AD01E2270C314A7B78F0C60FE66C723F2D06C121D63FCDCE776E654878FC1 SWAP1 PUSH1 0x2 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xA51 SWAP2 SWAP1 PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO DUP4 PUSH0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCA250C5374ABEDCBF71C0E3EDA7FF4CF940FA9E6561D8CD31D2BF480A140A93F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0x1232 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAC5 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xADE JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADE JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xAFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x20CE JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xB1B JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xB24 DUP3 PUSH2 0x1314 JUMP JUMPDEST PUSH2 0xB2C PUSH2 0x134B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x753 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0xB6D SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x20F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xB81 PUSH2 0x18E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP5 MSTORE DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP4 DUP5 SWAP1 MSTORE SWAP1 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 DUP5 ADD SWAP1 PUSH1 0x3 SWAP1 DUP3 DUP5 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBC7 JUMPI POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 PUSH1 0x4 DUP5 ADD SWAP1 PUSH1 0x3 SWAP1 DUP3 PUSH0 DUP6 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 0xC0B JUMPI POP POP POP SWAP3 DUP5 MSTORE POP POP POP PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC62 PUSH2 0xD11 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xC93 PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH0 PUSH2 0xCD8 PUSH1 0x33 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xCF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1EEE JUMP JUMPDEST PUSH0 PUSH2 0xCFF DUP4 PUSH2 0x10EE JUMP JUMPDEST SWAP1 POP PUSH2 0xD0A DUP2 PUSH2 0xE97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2130 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2181 JUMP JUMPDEST PUSH1 0xC9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0xB6D SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x2191 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xDE6 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE01 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xE25 SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x753 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH2 0xE53 PUSH2 0x1379 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8D SWAP2 SWAP1 PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 DUP1 DUP1 PUSH2 0xEB1 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 PUSH2 0x139B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xEC0 JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xECD DUP7 PUSH1 0x1 PUSH2 0x69E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP1 ISZERO PUSH2 0xEE6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xF58 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0xF17 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xF50 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xF4D SWAP2 DUP2 ADD SWAP1 PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x1 JUMPDEST ISZERO PUSH2 0xF58 JUMPI SWAP4 POP JUMPDEST PUSH0 DUP1 PUSH2 0xF79 DUP9 DUP8 DUP6 DUP1 ISZERO PUSH2 0xF74 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND ISZERO ISZERO JUMPDEST PUSH2 0x13D1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP3 EQ ISZERO DUP1 ISZERO PUSH2 0xF8A JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xF9A JUMPI POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xFA6 DUP11 DUP10 PUSH2 0x1546 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP3 EQ ISZERO DUP1 ISZERO PUSH2 0xFB7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xFC9 JUMPI POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0xFD7 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x106D JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x4BE3819F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x97C7033E SWAP1 PUSH2 0x102E SWAP1 DUP14 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2296 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1049 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x106D SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST ISZERO PUSH2 0x1080 JUMPI POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x22F1 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x40B DUP2 PUSH2 0x16A8 JUMP JUMPDEST PUSH2 0x10B9 PUSH2 0x16F9 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xE80 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1116 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x116B JUMPI PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB SWAP2 POP PUSH2 0x122C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x11CC JUMPI PUSH32 0x0 SWAP2 POP PUSH2 0x122C JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6F307DC3 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 0x1208 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xD0A SWAP2 SWAP1 PUSH2 0x230C JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1249 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 PUSH2 0x139B JUMP JUMPDEST ISZERO PUSH2 0x1251 JUMPI POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x125D DUP4 PUSH0 PUSH2 0x69E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1277 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x12C7 JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x69240426 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12C5 JUMPI POP PUSH1 0x1 JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x699 JUMPI PUSH0 PUSH2 0x12F4 DUP5 PUSH2 0xE97 JUMP JUMPDEST SWAP1 POP PUSH2 0x130E PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 PUSH2 0x171C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x133A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x1342 PUSH2 0x1751 JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0x177F JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1371 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x440 PUSH2 0x17A5 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x23AB JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13B0 SWAP3 SWAP2 SWAP1 PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 TLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x13DF DUP8 PUSH0 PUSH2 0x69E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP1 ISZERO PUSH2 0x13F8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1535 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x1429 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1462 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x145F SWAP2 DUP2 ADD SWAP1 PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1473 JUMPI PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP PUSH2 0x153E JUMP JUMPDEST DUP6 PUSH2 0x1486 JUMPI SWAP4 POP PUSH1 0x1 SWAP3 POP PUSH2 0x153E SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1498 JUMPI SWAP4 POP PUSH0 SWAP3 POP PUSH2 0x153E SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4BE3819F PUSH1 0xE1 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x97C7033E SWAP1 PUSH2 0x14EA SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x2296 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1505 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x1529 SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x153E JUMP JUMPDEST PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x1555 DUP7 PUSH1 0x2 PUSH2 0x69E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP1 ISZERO PUSH2 0x156E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1698 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x159F SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x15D8 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x15D5 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x15E9 JUMPI PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP PUSH2 0x16A1 JUMP JUMPDEST DUP6 PUSH2 0x15FB JUMPI SWAP4 POP PUSH0 SWAP3 POP PUSH2 0x16A1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4BE3819F PUSH1 0xE1 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x97C7033E SWAP1 PUSH2 0x164D SWAP1 DUP12 SWAP1 DUP6 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2296 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1668 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x168C SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x16A1 JUMP JUMPDEST PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x23EF JUMP JUMPDEST PUSH0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1730 SWAP3 SWAP2 SWAP1 PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP2 DUP2 TSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1777 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x440 PUSH2 0x17D7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x17CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x17FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x440 CALLER PUSH2 0x1098 JUMP JUMPDEST DUP3 PUSH1 0x3 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x184E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x184E JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1819 JUMP JUMPDEST POP PUSH2 0x185A SWAP3 SWAP2 POP PUSH2 0x1923 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 DUP4 SWAP1 DUP3 ISZERO PUSH2 0x184E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x18AF 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 PUSH0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x1873 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18DB JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x18AF JUMP JUMPDEST POP POP PUSH2 0x185A SWAP3 SWAP2 POP PUSH2 0x1923 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190A PUSH2 0x1937 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1917 PUSH2 0x1937 JUMP JUMPDEST DUP2 MSTORE PUSH0 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x185A JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x47E JUMP JUMPDEST PUSH2 0x196E DUP2 PUSH2 0x1955 JUMP JUMPDEST DUP2 EQ PUSH2 0x40B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x47E DUP2 PUSH2 0x1965 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1996 JUMPI PUSH2 0x1996 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x1978 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47E DUP3 PUSH2 0x1955 JUMP JUMPDEST PUSH0 PUSH2 0x47E DUP3 PUSH2 0x19A9 JUMP JUMPDEST PUSH2 0x19C6 DUP2 PUSH2 0x19B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x19BD JUMP JUMPDEST DUP1 PUSH2 0x19C6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x19DA JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x40B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x47E DUP2 PUSH2 0x19EE JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x196E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x47E DUP2 PUSH2 0x1A05 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1A2D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1A38 DUP7 DUP7 PUSH2 0x1978 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1A49 DUP7 DUP3 DUP8 ADD PUSH2 0x19FA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1A5A DUP7 DUP3 DUP8 ADD PUSH2 0x1A0D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x19C6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1AB4 JUMPI PUSH2 0x1AB4 PUSH2 0x1A7A JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AC5 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1AD1 DUP3 DUP3 PUSH2 0x1A8E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1AEF JUMPI PUSH2 0x1AEF PUSH2 0x1A7A JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B12 JUMPI PUSH2 0x1B12 PUSH2 0x1A7A JUMP JUMPDEST POP PUSH1 0x20 MUL SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1B2B PUSH2 0x1B26 DUP5 PUSH2 0x1AF9 JUMP JUMPDEST PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1B43 JUMPI PUSH2 0x1B43 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B67 JUMPI DUP1 PUSH2 0x1B58 DUP9 DUP3 PUSH2 0x1978 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1B45 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1B83 JUMPI PUSH2 0x1B83 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x19A1 DUP5 DUP3 DUP6 PUSH2 0x1B19 JUMP JUMPDEST PUSH0 PUSH2 0x1B9D PUSH2 0x1B26 DUP5 PUSH2 0x1AF9 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1BB5 JUMPI PUSH2 0x1BB5 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B67 JUMPI DUP1 PUSH2 0x1BCA DUP9 DUP3 PUSH2 0x1A0D JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1BB7 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BEB JUMPI PUSH2 0x1BEB PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x19A1 DUP5 DUP3 DUP6 PUSH2 0x1B90 JUMP JUMPDEST PUSH0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C0C JUMPI PUSH2 0x1C0C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1C16 PUSH1 0x80 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C23 DUP5 DUP5 PUSH2 0x1978 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1C34 DUP5 DUP5 DUP4 ADD PUSH2 0x1B71 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1C48 DUP5 DUP3 DUP6 ADD PUSH2 0x1BD9 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1C5C DUP5 DUP3 DUP6 ADD PUSH2 0x1A0D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C75 PUSH2 0x1B26 DUP5 PUSH2 0x1AD6 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH2 0x100 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C94 JUMPI PUSH2 0x1C94 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B67 JUMPI DUP1 PUSH2 0x1CA9 DUP9 DUP3 PUSH2 0x1BF8 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x100 ADD PUSH2 0x1C96 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CCD JUMPI PUSH2 0x1CCD PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19A1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C68 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CF0 JUMPI PUSH2 0x1CF0 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D09 JUMPI PUSH2 0x1D09 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x19A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST PUSH2 0x19C6 DUP2 PUSH2 0x1955 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x1D15 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D40 JUMPI PUSH2 0x1D40 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1D4B DUP6 DUP6 PUSH2 0x1978 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D5C DUP6 DUP3 DUP7 ADD PUSH2 0x19FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1D74 DUP3 DUP6 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0xD0A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D96 JUMPI PUSH2 0x1D96 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1DA1 DUP7 DUP7 PUSH2 0x1978 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1DB2 DUP7 DUP3 DUP8 ADD PUSH2 0x1978 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1A5A DUP7 DUP3 DUP8 ADD PUSH2 0x19FA JUMP JUMPDEST PUSH0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DD7 JUMPI PUSH2 0x1DD7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x1BF8 JUMP JUMPDEST PUSH0 PUSH2 0x1DED DUP4 DUP4 PUSH2 0x1D15 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E20 JUMPI DUP2 MLOAD PUSH2 0x1E0F DUP8 DUP3 PUSH2 0x1DE2 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x1DFB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1DED DUP4 DUP4 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E20 JUMPI DUP2 MLOAD PUSH2 0x1E4D DUP8 DUP3 PUSH2 0x1E28 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x1E39 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x100 DUP4 ADD SWAP1 PUSH2 0x1E70 DUP5 DUP3 PUSH2 0x1D15 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x1E83 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x1DF5 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x1E96 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x1E33 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x130E PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x1A64 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x726573696C69656E74206F7261636C6520697320706175736564000000000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1EB8 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1EFE JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x746F6B656E20636F6E666967206D757374206578697374000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1FA4 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH17 0x6C656E6774682063616E2774206265203 PUSH1 0x7C SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1FFC JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x63616E277420736574207A65726F206164647265737320746F206D61696E206F DUP2 MSTORE PUSH5 0x7261636C65 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2033 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2084 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x47E JUMP JUMPDEST PUSH2 0x19C6 DUP2 PUSH2 0x20DE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x20E8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x219F DUP3 DUP6 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0xD0A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D15 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x21C0 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x21D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21AC JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x21F6 DUP3 DUP6 PUSH2 0x1D15 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x19A1 DUP2 DUP5 PUSH2 0x21B7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x47E DUP2 PUSH2 0x1A05 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2226 JUMPI PUSH2 0x2226 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x2208 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x223F DUP3 DUP7 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0x224C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1D15 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x225E DUP2 DUP5 PUSH2 0x21B7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x196E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x47E DUP2 PUSH2 0x2267 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x228B JUMPI PUSH2 0x228B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x226D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x22A4 DUP3 DUP7 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0x22B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x19DA JUMP JUMPDEST PUSH2 0x19A1 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19DA JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420726573696C69656E74206F7261636C652070726963650000 DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x22BE JUMP JUMPDEST DUP1 MLOAD PUSH2 0x47E DUP2 PUSH2 0x1965 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x231F JUMPI PUSH2 0x231F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x2301 JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x232A JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2381 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x219F DUP3 DUP6 PUSH2 0x19DA JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x23C9 JUMP INVALID 0x4E SWAP10 0xEC SSTORE SWAP8 0x23 ORIGIN CREATE2 0xE0 0xEF SWAP13 PUSH7 0x23192C0401B609 AND SHL SELFDESTRUCT 0xAE PUSH5 0xD9CCDD7AD6 0xCC PUSH25 0xA264697066735822122071DB7A592F6E37DC1B9A94CBB64F PUSH8 0x9E43F1F496741C52 0xD9 DUP1 0xF6 0x23 BLOCKHASH 0x1E MSTORE SWAP14 0xA5 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"2586:19095:20:-:0;;;6712:325;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6867:15;-1:-1:-1;;;;;5594:21:20;;5590:58;;5617:31;;-1:-1:-1;;;5617:31:20;;;;;;;:::i;:::-;;;;;;;;5590:58;-1:-1:-1;;;;;6895:34:20;;::::1;;::::0;6939:16;;::::1;;::::0;6965:32;::::1;;::::0;7008:22:::1;:20;:22::i;:::-;6712:325:::0;;;;2586:19095;;5939:280:5;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:5;;;;;;;:::i;:::-;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:5;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;845:128::-;914:7;943:24;961:5;943:24;:::i;979:186::-;1084:56;1134:5;1084:56;:::i;1171:207::-;1285:13;;1307:65;1285:13;1307:65;:::i;1384:727::-;1504:6;1512;1520;1569:2;1557:9;1548:7;1544:23;1540:32;1537:119;;;1575:79;197:1;194;187:12;1575:79;1695:1;1720:64;1776:7;1756:9;1720:64;:::i;:::-;1710:74;;1666:128;1833:2;1859:64;1915:7;1906:6;1895:9;1891:22;1859:64;:::i;:::-;1849:74;;1804:129;1972:2;1998:96;2086:7;2077:6;2066:9;2062:22;1998:96;:::i;:::-;1988:106;;1943:161;1384:727;;;;;:::o;2841:419::-;3045:2;3058:47;;;3030:18;;3122:131;3030:18;2696:2;2223:19;;2432:23;2275:4;2266:14;;2409:47;2817:12;;;2469:366;3870:419;4074:2;4087:47;;;4059:18;;4151:131;4059:18;3725:2;2223:19;;3406:34;2275:4;2266:14;;3383:58;-1:-1:-1;;;3458:15:101;;;3451:34;3846:12;;;3498:366;4505:214;4370:4;4359:16;;4458:35;;4632:2;4617:18;;4645:67;4387:112;4505:214;2586:19095:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CACHE_SLOT_2499":{"entryPoint":null,"id":2499,"parameterSlots":0,"returnSlots":0},"@INVALID_PRICE_2485":{"entryPoint":null,"id":2485,"parameterSlots":0,"returnSlots":0},"@NATIVE_TOKEN_ADDR_2495":{"entryPoint":null,"id":2495,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_1976":{"entryPoint":4884,"id":1976,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_1988":{"entryPoint":6015,"id":1988,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_129":{"entryPoint":5969,"id":129,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":6103,"id":248,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_543":{"entryPoint":4939,"id":543,"parameterSlots":0,"returnSlots":0},"@__Pausable_init_unchained_553":{"entryPoint":6053,"id":553,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_2079":{"entryPoint":3508,"id":2079,"parameterSlots":1,"returnSlots":0},"@_checkOwner_279":{"entryPoint":3345,"id":279,"parameterSlots":0,"returnSlots":0},"@_getFallbackOraclePrice_3350":{"entryPoint":5446,"id":3350,"parameterSlots":2,"returnSlots":2},"@_getMainOraclePrice_3277":{"entryPoint":5073,"id":3277,"parameterSlots":3,"returnSlots":2},"@_getPrice_3194":{"entryPoint":3735,"id":3194,"parameterSlots":1,"returnSlots":1},"@_getUnderlyingAsset_3389":{"entryPoint":4334,"id":3389,"parameterSlots":1,"returnSlots":1},"@_isCacheEnabled_3403":{"entryPoint":null,"id":3403,"parameterSlots":1,"returnSlots":1},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_pause_617":{"entryPoint":4273,"id":617,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_590":{"entryPoint":5881,"id":590,"parameterSlots":0,"returnSlots":0},"@_requirePaused_601":{"entryPoint":4985,"id":601,"parameterSlots":0,"returnSlots":0},"@_setAccessControlManager_2049":{"entryPoint":3387,"id":2049,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_181":{"entryPoint":4248,"id":181,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_336":{"entryPoint":5800,"id":336,"parameterSlots":1,"returnSlots":0},"@_unpause_633":{"entryPoint":3659,"id":633,"parameterSlots":0,"returnSlots":0},"@_updateAssetPrice_3061":{"entryPoint":4658,"id":3061,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_203":{"entryPoint":1502,"id":203,"parameterSlots":0,"returnSlots":0},"@accessControlManager_2011":{"entryPoint":null,"id":2011,"parameterSlots":0,"returnSlots":1},"@boundValidator_2503":{"entryPoint":null,"id":2503,"parameterSlots":0,"returnSlots":0},"@cachePrice_3754":{"entryPoint":5916,"id":3754,"parameterSlots":3,"returnSlots":0},"@enableOracle_2797":{"entryPoint":1156,"id":2797,"parameterSlots":3,"returnSlots":0},"@getOracle_2995":{"entryPoint":1694,"id":2995,"parameterSlots":2,"returnSlots":2},"@getPrice_2888":{"entryPoint":1090,"id":2888,"parameterSlots":1,"returnSlots":1},"@getTokenConfig_2840":{"entryPoint":2937,"id":2840,"parameterSlots":1,"returnSlots":1},"@getUnderlyingPrice_2867":{"entryPoint":3275,"id":2867,"parameterSlots":1,"returnSlots":1},"@initialize_2631":{"entryPoint":2727,"id":2631,"parameterSlots":1,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@nativeMarket_2488":{"entryPoint":null,"id":2488,"parameterSlots":0,"returnSlots":0},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@pause_2643":{"entryPoint":1555,"id":2643,"parameterSlots":0,"returnSlots":0},"@paused_578":{"entryPoint":null,"id":578,"parameterSlots":0,"returnSlots":1},"@pendingOwner_144":{"entryPoint":null,"id":144,"parameterSlots":0,"returnSlots":1},"@readCachedPrice_3776":{"entryPoint":5019,"id":3776,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_293":{"entryPoint":1485,"id":293,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_2001":{"entryPoint":1018,"id":2001,"parameterSlots":1,"returnSlots":0},"@setOracle_2754":{"entryPoint":1879,"id":2754,"parameterSlots":3,"returnSlots":0},"@setTokenConfig_2957":{"entryPoint":2286,"id":2957,"parameterSlots":1,"returnSlots":0},"@setTokenConfigs_2695":{"entryPoint":1603,"id":2695,"parameterSlots":1,"returnSlots":0},"@transferOwnership_164":{"entryPoint":3162,"id":164,"parameterSlots":1,"returnSlots":0},"@unpause_2655":{"entryPoint":1038,"id":2655,"parameterSlots":0,"returnSlots":0},"@updateAssetPrice_2826":{"entryPoint":2718,"id":2826,"parameterSlots":1,"returnSlots":0},"@updatePrice_2815":{"entryPoint":1854,"id":2815,"parameterSlots":1,"returnSlots":0},"@vai_2491":{"entryPoint":null,"id":2491,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$3_memory_ptr":{"entryPoint":6937,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_array$_t_bool_$3_memory_ptr":{"entryPoint":7056,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr":{"entryPoint":7272,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6520,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":8961,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$3_memory_ptr":{"entryPoint":7025,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$3_memory_ptr":{"entryPoint":7129,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr":{"entryPoint":7355,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":6669,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":8712,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_OracleRole_$2465":{"entryPoint":6650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_TokenConfig_$2482_memory_ptr":{"entryPoint":7160,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8813,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6531,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":8972,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_enum$_OracleRole_$2465":{"entryPoint":7553,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_enum$_OracleRole_$2465":{"entryPoint":7468,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_enum$_OracleRole_$2465t_bool":{"entryPoint":6680,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr":{"entryPoint":7389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":8723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TokenConfig_$2482_memory_ptr":{"entryPoint":7619,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":8824,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_address_to_t_address":{"entryPoint":7650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_bool_to_t_bool":{"entryPoint":7720,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7445,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_address_$3_memory_ptr_to_t_array$_t_address_$3_memory_ptr":{"entryPoint":7669,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_bool_$3_memory_ptr_to_t_array$_t_bool_$3_memory_ptr":{"entryPoint":7731,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6756,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_BoundValidatorInterface_$3698_to_t_address_fromStack":{"entryPoint":6589,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":8424,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":8631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack":{"entryPoint":9089,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":8100,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack":{"entryPoint":8188,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1_to_t_string_memory_ptr_fromStack":{"entryPoint":8243,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack":{"entryPoint":7934,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack":{"entryPoint":8512,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277_to_t_string_memory_ptr_fromStack":{"entryPoint":8894,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67_to_t_string_memory_ptr_fromStack":{"entryPoint":7993,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack":{"entryPoint":9161,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":8324,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":8447,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee_to_t_string_memory_ptr_fromStack":{"entryPoint":7864,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":9002,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_struct$_TokenConfig_$2482_memory_ptr_to_t_struct$_TokenConfig_$2482_memory_ptr_fromStack":{"entryPoint":7774,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6618,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7454,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":8593,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8753,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed":{"entryPoint":7526,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8680,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":8854,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":6764,"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":9147,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_BoundValidatorInterface_$3698__to_t_address__fromStack_reversed":{"entryPoint":6604,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__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":8433,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9131,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8172,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8227,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8308,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7977,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8577,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8945,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8044,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9199,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8398,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8496,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7918,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9073,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_TokenConfig_$2482_memory_ptr__to_t_struct$_TokenConfig_$2482_memory_ptr__fromStack_reversed":{"entryPoint":7849,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":6624,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6843,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$3_memory_ptr":{"entryPoint":6905,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_array$_t_bool_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr":{"entryPoint":6870,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_address_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_bool_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_address_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bool_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_address_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bool_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_address_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bool_$3_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6485,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_BoundValidatorInterface_$3698_to_t_address":{"entryPoint":6579,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":8414,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":6569,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":8620,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":6798,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x21":{"entryPoint":8060,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":8080,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6778,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6501,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":6661,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_OracleRole_$2465":{"entryPoint":6638,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8807,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:37534:101","nodeType":"YulBlock","src":"0:37534:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"907:263:101","nodeType":"YulBlock","src":"907:263:101","statements":[{"body":{"nativeSrc":"953:83:101","nodeType":"YulBlock","src":"953:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:101","nodeType":"YulIdentifier","src":"955:77:101"},"nativeSrc":"955:79:101","nodeType":"YulFunctionCall","src":"955:79:101"},"nativeSrc":"955:79:101","nodeType":"YulExpressionStatement","src":"955:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:101","nodeType":"YulIdentifier","src":"928:7:101"},{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulIdentifier","src":"937:9:101"}],"functionName":{"name":"sub","nativeSrc":"924:3:101","nodeType":"YulIdentifier","src":"924:3:101"},"nativeSrc":"924:23:101","nodeType":"YulFunctionCall","src":"924:23:101"},{"kind":"number","nativeSrc":"949:2:101","nodeType":"YulLiteral","src":"949:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:101","nodeType":"YulIdentifier","src":"920:3:101"},"nativeSrc":"920:32:101","nodeType":"YulFunctionCall","src":"920:32:101"},"nativeSrc":"917:119:101","nodeType":"YulIf","src":"917:119:101"},{"nativeSrc":"1046:117:101","nodeType":"YulBlock","src":"1046:117:101","statements":[{"nativeSrc":"1061:15:101","nodeType":"YulVariableDeclaration","src":"1061:15:101","value":{"kind":"number","nativeSrc":"1075:1:101","nodeType":"YulLiteral","src":"1075:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:101","nodeType":"YulTypedName","src":"1065:6:101","type":""}]},{"nativeSrc":"1090:63:101","nodeType":"YulAssignment","src":"1090:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:101","nodeType":"YulIdentifier","src":"1125:9:101"},{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"add","nativeSrc":"1121:3:101","nodeType":"YulIdentifier","src":"1121:3:101"},"nativeSrc":"1121:22:101","nodeType":"YulFunctionCall","src":"1121:22:101"},{"name":"dataEnd","nativeSrc":"1145:7:101","nodeType":"YulIdentifier","src":"1145:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:101","nodeType":"YulIdentifier","src":"1100:20:101"},"nativeSrc":"1100:53:101","nodeType":"YulFunctionCall","src":"1100:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:101","nodeType":"YulIdentifier","src":"1090:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:101","nodeType":"YulTypedName","src":"877:9:101","type":""},{"name":"dataEnd","nativeSrc":"888:7:101","nodeType":"YulTypedName","src":"888:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:101","nodeType":"YulTypedName","src":"900:6:101","type":""}],"src":"841:329:101"},{"body":{"nativeSrc":"1208:28:101","nodeType":"YulBlock","src":"1208:28:101","statements":[{"nativeSrc":"1218:12:101","nodeType":"YulAssignment","src":"1218:12:101","value":{"name":"value","nativeSrc":"1225:5:101","nodeType":"YulIdentifier","src":"1225:5:101"},"variableNames":[{"name":"ret","nativeSrc":"1218:3:101","nodeType":"YulIdentifier","src":"1218:3:101"}]}]},"name":"identity","nativeSrc":"1176:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1194:5:101","nodeType":"YulTypedName","src":"1194:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1204:3:101","nodeType":"YulTypedName","src":"1204:3:101","type":""}],"src":"1176:60:101"},{"body":{"nativeSrc":"1302:82:101","nodeType":"YulBlock","src":"1302:82:101","statements":[{"nativeSrc":"1312:66:101","nodeType":"YulAssignment","src":"1312:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1370:5:101","nodeType":"YulIdentifier","src":"1370:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1352:17:101","nodeType":"YulIdentifier","src":"1352:17:101"},"nativeSrc":"1352:24:101","nodeType":"YulFunctionCall","src":"1352:24:101"}],"functionName":{"name":"identity","nativeSrc":"1343:8:101","nodeType":"YulIdentifier","src":"1343:8:101"},"nativeSrc":"1343:34:101","nodeType":"YulFunctionCall","src":"1343:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1325:17:101","nodeType":"YulIdentifier","src":"1325:17:101"},"nativeSrc":"1325:53:101","nodeType":"YulFunctionCall","src":"1325:53:101"},"variableNames":[{"name":"converted","nativeSrc":"1312:9:101","nodeType":"YulIdentifier","src":"1312:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1242:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1282:5:101","nodeType":"YulTypedName","src":"1282:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1292:9:101","nodeType":"YulTypedName","src":"1292:9:101","type":""}],"src":"1242:142:101"},{"body":{"nativeSrc":"1450:66:101","nodeType":"YulBlock","src":"1450:66:101","statements":[{"nativeSrc":"1460:50:101","nodeType":"YulAssignment","src":"1460:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1504:5:101","nodeType":"YulIdentifier","src":"1504:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1473:30:101","nodeType":"YulIdentifier","src":"1473:30:101"},"nativeSrc":"1473:37:101","nodeType":"YulFunctionCall","src":"1473:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1460:9:101","nodeType":"YulIdentifier","src":"1460:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"1390:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1430:5:101","nodeType":"YulTypedName","src":"1430:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1440:9:101","nodeType":"YulTypedName","src":"1440:9:101","type":""}],"src":"1390:126:101"},{"body":{"nativeSrc":"1614:66:101","nodeType":"YulBlock","src":"1614:66:101","statements":[{"nativeSrc":"1624:50:101","nodeType":"YulAssignment","src":"1624:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1668:5:101","nodeType":"YulIdentifier","src":"1668:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1637:30:101","nodeType":"YulIdentifier","src":"1637:30:101"},"nativeSrc":"1637:37:101","nodeType":"YulFunctionCall","src":"1637:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1624:9:101","nodeType":"YulIdentifier","src":"1624:9:101"}]}]},"name":"convert_t_contract$_BoundValidatorInterface_$3698_to_t_address","nativeSrc":"1522:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1594:5:101","nodeType":"YulTypedName","src":"1594:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1604:9:101","nodeType":"YulTypedName","src":"1604:9:101","type":""}],"src":"1522:158:101"},{"body":{"nativeSrc":"1783:98:101","nodeType":"YulBlock","src":"1783:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1800:3:101","nodeType":"YulIdentifier","src":"1800:3:101"},{"arguments":[{"name":"value","nativeSrc":"1868:5:101","nodeType":"YulIdentifier","src":"1868:5:101"}],"functionName":{"name":"convert_t_contract$_BoundValidatorInterface_$3698_to_t_address","nativeSrc":"1805:62:101","nodeType":"YulIdentifier","src":"1805:62:101"},"nativeSrc":"1805:69:101","nodeType":"YulFunctionCall","src":"1805:69:101"}],"functionName":{"name":"mstore","nativeSrc":"1793:6:101","nodeType":"YulIdentifier","src":"1793:6:101"},"nativeSrc":"1793:82:101","nodeType":"YulFunctionCall","src":"1793:82:101"},"nativeSrc":"1793:82:101","nodeType":"YulExpressionStatement","src":"1793:82:101"}]},"name":"abi_encode_t_contract$_BoundValidatorInterface_$3698_to_t_address_fromStack","nativeSrc":"1686:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1771:5:101","nodeType":"YulTypedName","src":"1771:5:101","type":""},{"name":"pos","nativeSrc":"1778:3:101","nodeType":"YulTypedName","src":"1778:3:101","type":""}],"src":"1686:195:101"},{"body":{"nativeSrc":"2017:156:101","nodeType":"YulBlock","src":"2017:156:101","statements":[{"nativeSrc":"2027:26:101","nodeType":"YulAssignment","src":"2027:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2039:9:101","nodeType":"YulIdentifier","src":"2039:9:101"},{"kind":"number","nativeSrc":"2050:2:101","nodeType":"YulLiteral","src":"2050:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2035:3:101","nodeType":"YulIdentifier","src":"2035:3:101"},"nativeSrc":"2035:18:101","nodeType":"YulFunctionCall","src":"2035:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2027:4:101","nodeType":"YulIdentifier","src":"2027:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2139:6:101","nodeType":"YulIdentifier","src":"2139:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2152:9:101","nodeType":"YulIdentifier","src":"2152:9:101"},{"kind":"number","nativeSrc":"2163:1:101","nodeType":"YulLiteral","src":"2163:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2148:3:101","nodeType":"YulIdentifier","src":"2148:3:101"},"nativeSrc":"2148:17:101","nodeType":"YulFunctionCall","src":"2148:17:101"}],"functionName":{"name":"abi_encode_t_contract$_BoundValidatorInterface_$3698_to_t_address_fromStack","nativeSrc":"2063:75:101","nodeType":"YulIdentifier","src":"2063:75:101"},"nativeSrc":"2063:103:101","nodeType":"YulFunctionCall","src":"2063:103:101"},"nativeSrc":"2063:103:101","nodeType":"YulExpressionStatement","src":"2063:103:101"}]},"name":"abi_encode_tuple_t_contract$_BoundValidatorInterface_$3698__to_t_address__fromStack_reversed","nativeSrc":"1887:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1989:9:101","nodeType":"YulTypedName","src":"1989:9:101","type":""},{"name":"value0","nativeSrc":"2001:6:101","nodeType":"YulTypedName","src":"2001:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2012:4:101","nodeType":"YulTypedName","src":"2012:4:101","type":""}],"src":"1887:286:101"},{"body":{"nativeSrc":"2224:32:101","nodeType":"YulBlock","src":"2224:32:101","statements":[{"nativeSrc":"2234:16:101","nodeType":"YulAssignment","src":"2234:16:101","value":{"name":"value","nativeSrc":"2245:5:101","nodeType":"YulIdentifier","src":"2245:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2234:7:101","nodeType":"YulIdentifier","src":"2234:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2179:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2206:5:101","nodeType":"YulTypedName","src":"2206:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2216:7:101","nodeType":"YulTypedName","src":"2216:7:101","type":""}],"src":"2179:77:101"},{"body":{"nativeSrc":"2327:53:101","nodeType":"YulBlock","src":"2327:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2344:3:101","nodeType":"YulIdentifier","src":"2344:3:101"},{"arguments":[{"name":"value","nativeSrc":"2367:5:101","nodeType":"YulIdentifier","src":"2367:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2349:17:101","nodeType":"YulIdentifier","src":"2349:17:101"},"nativeSrc":"2349:24:101","nodeType":"YulFunctionCall","src":"2349:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2337:6:101","nodeType":"YulIdentifier","src":"2337:6:101"},"nativeSrc":"2337:37:101","nodeType":"YulFunctionCall","src":"2337:37:101"},"nativeSrc":"2337:37:101","nodeType":"YulExpressionStatement","src":"2337:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2262:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2315:5:101","nodeType":"YulTypedName","src":"2315:5:101","type":""},{"name":"pos","nativeSrc":"2322:3:101","nodeType":"YulTypedName","src":"2322:3:101","type":""}],"src":"2262:118:101"},{"body":{"nativeSrc":"2484:124:101","nodeType":"YulBlock","src":"2484:124:101","statements":[{"nativeSrc":"2494:26:101","nodeType":"YulAssignment","src":"2494:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2506:9:101","nodeType":"YulIdentifier","src":"2506:9:101"},{"kind":"number","nativeSrc":"2517:2:101","nodeType":"YulLiteral","src":"2517:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2502:3:101","nodeType":"YulIdentifier","src":"2502:3:101"},"nativeSrc":"2502:18:101","nodeType":"YulFunctionCall","src":"2502:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2494:4:101","nodeType":"YulIdentifier","src":"2494:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2574:6:101","nodeType":"YulIdentifier","src":"2574:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2587:9:101","nodeType":"YulIdentifier","src":"2587:9:101"},{"kind":"number","nativeSrc":"2598:1:101","nodeType":"YulLiteral","src":"2598:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2583:3:101","nodeType":"YulIdentifier","src":"2583:3:101"},"nativeSrc":"2583:17:101","nodeType":"YulFunctionCall","src":"2583:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2530:43:101","nodeType":"YulIdentifier","src":"2530:43:101"},"nativeSrc":"2530:71:101","nodeType":"YulFunctionCall","src":"2530:71:101"},"nativeSrc":"2530:71:101","nodeType":"YulExpressionStatement","src":"2530:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2386:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2456:9:101","nodeType":"YulTypedName","src":"2456:9:101","type":""},{"name":"value0","nativeSrc":"2468:6:101","nodeType":"YulTypedName","src":"2468:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2479:4:101","nodeType":"YulTypedName","src":"2479:4:101","type":""}],"src":"2386:222:101"},{"body":{"nativeSrc":"2672:56:101","nodeType":"YulBlock","src":"2672:56:101","statements":[{"body":{"nativeSrc":"2706:16:101","nodeType":"YulBlock","src":"2706:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2715:1:101","nodeType":"YulLiteral","src":"2715:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2718:1:101","nodeType":"YulLiteral","src":"2718:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2708:6:101","nodeType":"YulIdentifier","src":"2708:6:101"},"nativeSrc":"2708:12:101","nodeType":"YulFunctionCall","src":"2708:12:101"},"nativeSrc":"2708:12:101","nodeType":"YulExpressionStatement","src":"2708:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2695:5:101","nodeType":"YulIdentifier","src":"2695:5:101"},{"kind":"number","nativeSrc":"2702:1:101","nodeType":"YulLiteral","src":"2702:1:101","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"2692:2:101","nodeType":"YulIdentifier","src":"2692:2:101"},"nativeSrc":"2692:12:101","nodeType":"YulFunctionCall","src":"2692:12:101"}],"functionName":{"name":"iszero","nativeSrc":"2685:6:101","nodeType":"YulIdentifier","src":"2685:6:101"},"nativeSrc":"2685:20:101","nodeType":"YulFunctionCall","src":"2685:20:101"},"nativeSrc":"2682:40:101","nodeType":"YulIf","src":"2682:40:101"}]},"name":"validator_revert_t_enum$_OracleRole_$2465","nativeSrc":"2614:114:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2665:5:101","nodeType":"YulTypedName","src":"2665:5:101","type":""}],"src":"2614:114:101"},{"body":{"nativeSrc":"2801:102:101","nodeType":"YulBlock","src":"2801:102:101","statements":[{"nativeSrc":"2811:29:101","nodeType":"YulAssignment","src":"2811:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2833:6:101","nodeType":"YulIdentifier","src":"2833:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2820:12:101","nodeType":"YulIdentifier","src":"2820:12:101"},"nativeSrc":"2820:20:101","nodeType":"YulFunctionCall","src":"2820:20:101"},"variableNames":[{"name":"value","nativeSrc":"2811:5:101","nodeType":"YulIdentifier","src":"2811:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2891:5:101","nodeType":"YulIdentifier","src":"2891:5:101"}],"functionName":{"name":"validator_revert_t_enum$_OracleRole_$2465","nativeSrc":"2849:41:101","nodeType":"YulIdentifier","src":"2849:41:101"},"nativeSrc":"2849:48:101","nodeType":"YulFunctionCall","src":"2849:48:101"},"nativeSrc":"2849:48:101","nodeType":"YulExpressionStatement","src":"2849:48:101"}]},"name":"abi_decode_t_enum$_OracleRole_$2465","nativeSrc":"2734:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2779:6:101","nodeType":"YulTypedName","src":"2779:6:101","type":""},{"name":"end","nativeSrc":"2787:3:101","nodeType":"YulTypedName","src":"2787:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2795:5:101","nodeType":"YulTypedName","src":"2795:5:101","type":""}],"src":"2734:169:101"},{"body":{"nativeSrc":"2951:48:101","nodeType":"YulBlock","src":"2951:48:101","statements":[{"nativeSrc":"2961:32:101","nodeType":"YulAssignment","src":"2961:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2986:5:101","nodeType":"YulIdentifier","src":"2986:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2979:6:101","nodeType":"YulIdentifier","src":"2979:6:101"},"nativeSrc":"2979:13:101","nodeType":"YulFunctionCall","src":"2979:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2972:6:101","nodeType":"YulIdentifier","src":"2972:6:101"},"nativeSrc":"2972:21:101","nodeType":"YulFunctionCall","src":"2972:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2961:7:101","nodeType":"YulIdentifier","src":"2961:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2909:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2933:5:101","nodeType":"YulTypedName","src":"2933:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2943:7:101","nodeType":"YulTypedName","src":"2943:7:101","type":""}],"src":"2909:90:101"},{"body":{"nativeSrc":"3045:76:101","nodeType":"YulBlock","src":"3045:76:101","statements":[{"body":{"nativeSrc":"3099:16:101","nodeType":"YulBlock","src":"3099:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3108:1:101","nodeType":"YulLiteral","src":"3108:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3111:1:101","nodeType":"YulLiteral","src":"3111:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3101:6:101","nodeType":"YulIdentifier","src":"3101:6:101"},"nativeSrc":"3101:12:101","nodeType":"YulFunctionCall","src":"3101:12:101"},"nativeSrc":"3101:12:101","nodeType":"YulExpressionStatement","src":"3101:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3068:5:101","nodeType":"YulIdentifier","src":"3068:5:101"},{"arguments":[{"name":"value","nativeSrc":"3090:5:101","nodeType":"YulIdentifier","src":"3090:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3075:14:101","nodeType":"YulIdentifier","src":"3075:14:101"},"nativeSrc":"3075:21:101","nodeType":"YulFunctionCall","src":"3075:21:101"}],"functionName":{"name":"eq","nativeSrc":"3065:2:101","nodeType":"YulIdentifier","src":"3065:2:101"},"nativeSrc":"3065:32:101","nodeType":"YulFunctionCall","src":"3065:32:101"}],"functionName":{"name":"iszero","nativeSrc":"3058:6:101","nodeType":"YulIdentifier","src":"3058:6:101"},"nativeSrc":"3058:40:101","nodeType":"YulFunctionCall","src":"3058:40:101"},"nativeSrc":"3055:60:101","nodeType":"YulIf","src":"3055:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"3005:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3038:5:101","nodeType":"YulTypedName","src":"3038:5:101","type":""}],"src":"3005:116:101"},{"body":{"nativeSrc":"3176:84:101","nodeType":"YulBlock","src":"3176:84:101","statements":[{"nativeSrc":"3186:29:101","nodeType":"YulAssignment","src":"3186:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3208:6:101","nodeType":"YulIdentifier","src":"3208:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3195:12:101","nodeType":"YulIdentifier","src":"3195:12:101"},"nativeSrc":"3195:20:101","nodeType":"YulFunctionCall","src":"3195:20:101"},"variableNames":[{"name":"value","nativeSrc":"3186:5:101","nodeType":"YulIdentifier","src":"3186:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3248:5:101","nodeType":"YulIdentifier","src":"3248:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"3224:23:101","nodeType":"YulIdentifier","src":"3224:23:101"},"nativeSrc":"3224:30:101","nodeType":"YulFunctionCall","src":"3224:30:101"},"nativeSrc":"3224:30:101","nodeType":"YulExpressionStatement","src":"3224:30:101"}]},"name":"abi_decode_t_bool","nativeSrc":"3127:133:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3154:6:101","nodeType":"YulTypedName","src":"3154:6:101","type":""},{"name":"end","nativeSrc":"3162:3:101","nodeType":"YulTypedName","src":"3162:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3170:5:101","nodeType":"YulTypedName","src":"3170:5:101","type":""}],"src":"3127:133:101"},{"body":{"nativeSrc":"3378:531:101","nodeType":"YulBlock","src":"3378:531:101","statements":[{"body":{"nativeSrc":"3424:83:101","nodeType":"YulBlock","src":"3424:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3426:77:101","nodeType":"YulIdentifier","src":"3426:77:101"},"nativeSrc":"3426:79:101","nodeType":"YulFunctionCall","src":"3426:79:101"},"nativeSrc":"3426:79:101","nodeType":"YulExpressionStatement","src":"3426:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3399:7:101","nodeType":"YulIdentifier","src":"3399:7:101"},{"name":"headStart","nativeSrc":"3408:9:101","nodeType":"YulIdentifier","src":"3408:9:101"}],"functionName":{"name":"sub","nativeSrc":"3395:3:101","nodeType":"YulIdentifier","src":"3395:3:101"},"nativeSrc":"3395:23:101","nodeType":"YulFunctionCall","src":"3395:23:101"},{"kind":"number","nativeSrc":"3420:2:101","nodeType":"YulLiteral","src":"3420:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3391:3:101","nodeType":"YulIdentifier","src":"3391:3:101"},"nativeSrc":"3391:32:101","nodeType":"YulFunctionCall","src":"3391:32:101"},"nativeSrc":"3388:119:101","nodeType":"YulIf","src":"3388:119:101"},{"nativeSrc":"3517:117:101","nodeType":"YulBlock","src":"3517:117:101","statements":[{"nativeSrc":"3532:15:101","nodeType":"YulVariableDeclaration","src":"3532:15:101","value":{"kind":"number","nativeSrc":"3546:1:101","nodeType":"YulLiteral","src":"3546:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3536:6:101","nodeType":"YulTypedName","src":"3536:6:101","type":""}]},{"nativeSrc":"3561:63:101","nodeType":"YulAssignment","src":"3561:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3596:9:101","nodeType":"YulIdentifier","src":"3596:9:101"},{"name":"offset","nativeSrc":"3607:6:101","nodeType":"YulIdentifier","src":"3607:6:101"}],"functionName":{"name":"add","nativeSrc":"3592:3:101","nodeType":"YulIdentifier","src":"3592:3:101"},"nativeSrc":"3592:22:101","nodeType":"YulFunctionCall","src":"3592:22:101"},{"name":"dataEnd","nativeSrc":"3616:7:101","nodeType":"YulIdentifier","src":"3616:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3571:20:101","nodeType":"YulIdentifier","src":"3571:20:101"},"nativeSrc":"3571:53:101","nodeType":"YulFunctionCall","src":"3571:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3561:6:101","nodeType":"YulIdentifier","src":"3561:6:101"}]}]},{"nativeSrc":"3644:133:101","nodeType":"YulBlock","src":"3644:133:101","statements":[{"nativeSrc":"3659:16:101","nodeType":"YulVariableDeclaration","src":"3659:16:101","value":{"kind":"number","nativeSrc":"3673:2:101","nodeType":"YulLiteral","src":"3673:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3663:6:101","nodeType":"YulTypedName","src":"3663:6:101","type":""}]},{"nativeSrc":"3689:78:101","nodeType":"YulAssignment","src":"3689:78:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3739:9:101","nodeType":"YulIdentifier","src":"3739:9:101"},{"name":"offset","nativeSrc":"3750:6:101","nodeType":"YulIdentifier","src":"3750:6:101"}],"functionName":{"name":"add","nativeSrc":"3735:3:101","nodeType":"YulIdentifier","src":"3735:3:101"},"nativeSrc":"3735:22:101","nodeType":"YulFunctionCall","src":"3735:22:101"},{"name":"dataEnd","nativeSrc":"3759:7:101","nodeType":"YulIdentifier","src":"3759:7:101"}],"functionName":{"name":"abi_decode_t_enum$_OracleRole_$2465","nativeSrc":"3699:35:101","nodeType":"YulIdentifier","src":"3699:35:101"},"nativeSrc":"3699:68:101","nodeType":"YulFunctionCall","src":"3699:68:101"},"variableNames":[{"name":"value1","nativeSrc":"3689:6:101","nodeType":"YulIdentifier","src":"3689:6:101"}]}]},{"nativeSrc":"3787:115:101","nodeType":"YulBlock","src":"3787:115:101","statements":[{"nativeSrc":"3802:16:101","nodeType":"YulVariableDeclaration","src":"3802:16:101","value":{"kind":"number","nativeSrc":"3816:2:101","nodeType":"YulLiteral","src":"3816:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3806:6:101","nodeType":"YulTypedName","src":"3806:6:101","type":""}]},{"nativeSrc":"3832:60:101","nodeType":"YulAssignment","src":"3832:60:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3864:9:101","nodeType":"YulIdentifier","src":"3864:9:101"},{"name":"offset","nativeSrc":"3875:6:101","nodeType":"YulIdentifier","src":"3875:6:101"}],"functionName":{"name":"add","nativeSrc":"3860:3:101","nodeType":"YulIdentifier","src":"3860:3:101"},"nativeSrc":"3860:22:101","nodeType":"YulFunctionCall","src":"3860:22:101"},{"name":"dataEnd","nativeSrc":"3884:7:101","nodeType":"YulIdentifier","src":"3884:7:101"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"3842:17:101","nodeType":"YulIdentifier","src":"3842:17:101"},"nativeSrc":"3842:50:101","nodeType":"YulFunctionCall","src":"3842:50:101"},"variableNames":[{"name":"value2","nativeSrc":"3832:6:101","nodeType":"YulIdentifier","src":"3832:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_enum$_OracleRole_$2465t_bool","nativeSrc":"3266:643:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3332:9:101","nodeType":"YulTypedName","src":"3332:9:101","type":""},{"name":"dataEnd","nativeSrc":"3343:7:101","nodeType":"YulTypedName","src":"3343:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3355:6:101","nodeType":"YulTypedName","src":"3355:6:101","type":""},{"name":"value1","nativeSrc":"3363:6:101","nodeType":"YulTypedName","src":"3363:6:101","type":""},{"name":"value2","nativeSrc":"3371:6:101","nodeType":"YulTypedName","src":"3371:6:101","type":""}],"src":"3266:643:101"},{"body":{"nativeSrc":"3974:50:101","nodeType":"YulBlock","src":"3974:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3991:3:101","nodeType":"YulIdentifier","src":"3991:3:101"},{"arguments":[{"name":"value","nativeSrc":"4011:5:101","nodeType":"YulIdentifier","src":"4011:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3996:14:101","nodeType":"YulIdentifier","src":"3996:14:101"},"nativeSrc":"3996:21:101","nodeType":"YulFunctionCall","src":"3996:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3984:6:101","nodeType":"YulIdentifier","src":"3984:6:101"},"nativeSrc":"3984:34:101","nodeType":"YulFunctionCall","src":"3984:34:101"},"nativeSrc":"3984:34:101","nodeType":"YulExpressionStatement","src":"3984:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3915:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3962:5:101","nodeType":"YulTypedName","src":"3962:5:101","type":""},{"name":"pos","nativeSrc":"3969:3:101","nodeType":"YulTypedName","src":"3969:3:101","type":""}],"src":"3915:109:101"},{"body":{"nativeSrc":"4122:118:101","nodeType":"YulBlock","src":"4122:118:101","statements":[{"nativeSrc":"4132:26:101","nodeType":"YulAssignment","src":"4132:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4144:9:101","nodeType":"YulIdentifier","src":"4144:9:101"},{"kind":"number","nativeSrc":"4155:2:101","nodeType":"YulLiteral","src":"4155:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4140:3:101","nodeType":"YulIdentifier","src":"4140:3:101"},"nativeSrc":"4140:18:101","nodeType":"YulFunctionCall","src":"4140:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4132:4:101","nodeType":"YulIdentifier","src":"4132:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4219:9:101","nodeType":"YulIdentifier","src":"4219:9:101"},{"kind":"number","nativeSrc":"4230:1:101","nodeType":"YulLiteral","src":"4230:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4215:3:101","nodeType":"YulIdentifier","src":"4215:3:101"},"nativeSrc":"4215:17:101","nodeType":"YulFunctionCall","src":"4215:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4168:37:101","nodeType":"YulIdentifier","src":"4168:37:101"},"nativeSrc":"4168:65:101","nodeType":"YulFunctionCall","src":"4168:65:101"},"nativeSrc":"4168:65:101","nodeType":"YulExpressionStatement","src":"4168:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4030:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4094:9:101","nodeType":"YulTypedName","src":"4094:9:101","type":""},{"name":"value0","nativeSrc":"4106:6:101","nodeType":"YulTypedName","src":"4106:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4117:4:101","nodeType":"YulTypedName","src":"4117:4:101","type":""}],"src":"4030:210:101"},{"body":{"nativeSrc":"4335:28:101","nodeType":"YulBlock","src":"4335:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4352:1:101","nodeType":"YulLiteral","src":"4352:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4355:1:101","nodeType":"YulLiteral","src":"4355:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4345:6:101","nodeType":"YulIdentifier","src":"4345:6:101"},"nativeSrc":"4345:12:101","nodeType":"YulFunctionCall","src":"4345:12:101"},"nativeSrc":"4345:12:101","nodeType":"YulExpressionStatement","src":"4345:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4246:117:101","nodeType":"YulFunctionDefinition","src":"4246:117:101"},{"body":{"nativeSrc":"4417:54:101","nodeType":"YulBlock","src":"4417:54:101","statements":[{"nativeSrc":"4427:38:101","nodeType":"YulAssignment","src":"4427:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4445:5:101","nodeType":"YulIdentifier","src":"4445:5:101"},{"kind":"number","nativeSrc":"4452:2:101","nodeType":"YulLiteral","src":"4452:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4441:3:101","nodeType":"YulIdentifier","src":"4441:3:101"},"nativeSrc":"4441:14:101","nodeType":"YulFunctionCall","src":"4441:14:101"},{"arguments":[{"kind":"number","nativeSrc":"4461:2:101","nodeType":"YulLiteral","src":"4461:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4457:3:101","nodeType":"YulIdentifier","src":"4457:3:101"},"nativeSrc":"4457:7:101","nodeType":"YulFunctionCall","src":"4457:7:101"}],"functionName":{"name":"and","nativeSrc":"4437:3:101","nodeType":"YulIdentifier","src":"4437:3:101"},"nativeSrc":"4437:28:101","nodeType":"YulFunctionCall","src":"4437:28:101"},"variableNames":[{"name":"result","nativeSrc":"4427:6:101","nodeType":"YulIdentifier","src":"4427:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4369:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4400:5:101","nodeType":"YulTypedName","src":"4400:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4410:6:101","nodeType":"YulTypedName","src":"4410:6:101","type":""}],"src":"4369:102:101"},{"body":{"nativeSrc":"4505:152:101","nodeType":"YulBlock","src":"4505:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4522:1:101","nodeType":"YulLiteral","src":"4522:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4525:77:101","nodeType":"YulLiteral","src":"4525:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4515:6:101","nodeType":"YulIdentifier","src":"4515:6:101"},"nativeSrc":"4515:88:101","nodeType":"YulFunctionCall","src":"4515:88:101"},"nativeSrc":"4515:88:101","nodeType":"YulExpressionStatement","src":"4515:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4619:1:101","nodeType":"YulLiteral","src":"4619:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4622:4:101","nodeType":"YulLiteral","src":"4622:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"4612:6:101","nodeType":"YulIdentifier","src":"4612:6:101"},"nativeSrc":"4612:15:101","nodeType":"YulFunctionCall","src":"4612:15:101"},"nativeSrc":"4612:15:101","nodeType":"YulExpressionStatement","src":"4612:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4643:1:101","nodeType":"YulLiteral","src":"4643:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4646:4:101","nodeType":"YulLiteral","src":"4646:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4636:6:101","nodeType":"YulIdentifier","src":"4636:6:101"},"nativeSrc":"4636:15:101","nodeType":"YulFunctionCall","src":"4636:15:101"},"nativeSrc":"4636:15:101","nodeType":"YulExpressionStatement","src":"4636:15:101"}]},"name":"panic_error_0x41","nativeSrc":"4477:180:101","nodeType":"YulFunctionDefinition","src":"4477:180:101"},{"body":{"nativeSrc":"4706:238:101","nodeType":"YulBlock","src":"4706:238:101","statements":[{"nativeSrc":"4716:58:101","nodeType":"YulVariableDeclaration","src":"4716:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"4738:6:101","nodeType":"YulIdentifier","src":"4738:6:101"},{"arguments":[{"name":"size","nativeSrc":"4768:4:101","nodeType":"YulIdentifier","src":"4768:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4746:21:101","nodeType":"YulIdentifier","src":"4746:21:101"},"nativeSrc":"4746:27:101","nodeType":"YulFunctionCall","src":"4746:27:101"}],"functionName":{"name":"add","nativeSrc":"4734:3:101","nodeType":"YulIdentifier","src":"4734:3:101"},"nativeSrc":"4734:40:101","nodeType":"YulFunctionCall","src":"4734:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"4720:10:101","nodeType":"YulTypedName","src":"4720:10:101","type":""}]},{"body":{"nativeSrc":"4885:22:101","nodeType":"YulBlock","src":"4885:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4887:16:101","nodeType":"YulIdentifier","src":"4887:16:101"},"nativeSrc":"4887:18:101","nodeType":"YulFunctionCall","src":"4887:18:101"},"nativeSrc":"4887:18:101","nodeType":"YulExpressionStatement","src":"4887:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"4828:10:101","nodeType":"YulIdentifier","src":"4828:10:101"},{"kind":"number","nativeSrc":"4840:18:101","nodeType":"YulLiteral","src":"4840:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4825:2:101","nodeType":"YulIdentifier","src":"4825:2:101"},"nativeSrc":"4825:34:101","nodeType":"YulFunctionCall","src":"4825:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"4864:10:101","nodeType":"YulIdentifier","src":"4864:10:101"},{"name":"memPtr","nativeSrc":"4876:6:101","nodeType":"YulIdentifier","src":"4876:6:101"}],"functionName":{"name":"lt","nativeSrc":"4861:2:101","nodeType":"YulIdentifier","src":"4861:2:101"},"nativeSrc":"4861:22:101","nodeType":"YulFunctionCall","src":"4861:22:101"}],"functionName":{"name":"or","nativeSrc":"4822:2:101","nodeType":"YulIdentifier","src":"4822:2:101"},"nativeSrc":"4822:62:101","nodeType":"YulFunctionCall","src":"4822:62:101"},"nativeSrc":"4819:88:101","nodeType":"YulIf","src":"4819:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4923:2:101","nodeType":"YulLiteral","src":"4923:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"4927:10:101","nodeType":"YulIdentifier","src":"4927:10:101"}],"functionName":{"name":"mstore","nativeSrc":"4916:6:101","nodeType":"YulIdentifier","src":"4916:6:101"},"nativeSrc":"4916:22:101","nodeType":"YulFunctionCall","src":"4916:22:101"},"nativeSrc":"4916:22:101","nodeType":"YulExpressionStatement","src":"4916:22:101"}]},"name":"finalize_allocation","nativeSrc":"4663:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4692:6:101","nodeType":"YulTypedName","src":"4692:6:101","type":""},{"name":"size","nativeSrc":"4700:4:101","nodeType":"YulTypedName","src":"4700:4:101","type":""}],"src":"4663:281:101"},{"body":{"nativeSrc":"4991:88:101","nodeType":"YulBlock","src":"4991:88:101","statements":[{"nativeSrc":"5001:30:101","nodeType":"YulAssignment","src":"5001:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"5011:18:101","nodeType":"YulIdentifier","src":"5011:18:101"},"nativeSrc":"5011:20:101","nodeType":"YulFunctionCall","src":"5011:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"5001:6:101","nodeType":"YulIdentifier","src":"5001:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5060:6:101","nodeType":"YulIdentifier","src":"5060:6:101"},{"name":"size","nativeSrc":"5068:4:101","nodeType":"YulIdentifier","src":"5068:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"5040:19:101","nodeType":"YulIdentifier","src":"5040:19:101"},"nativeSrc":"5040:33:101","nodeType":"YulFunctionCall","src":"5040:33:101"},"nativeSrc":"5040:33:101","nodeType":"YulExpressionStatement","src":"5040:33:101"}]},"name":"allocate_memory","nativeSrc":"4950:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"4984:6:101","nodeType":"YulTypedName","src":"4984:6:101","type":""}],"src":"4950:129:101"},{"body":{"nativeSrc":"5196:229:101","nodeType":"YulBlock","src":"5196:229:101","statements":[{"body":{"nativeSrc":"5301:22:101","nodeType":"YulBlock","src":"5301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5303:16:101","nodeType":"YulIdentifier","src":"5303:16:101"},"nativeSrc":"5303:18:101","nodeType":"YulFunctionCall","src":"5303:18:101"},"nativeSrc":"5303:18:101","nodeType":"YulExpressionStatement","src":"5303:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5273:6:101","nodeType":"YulIdentifier","src":"5273:6:101"},{"kind":"number","nativeSrc":"5281:18:101","nodeType":"YulLiteral","src":"5281:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5270:2:101","nodeType":"YulIdentifier","src":"5270:2:101"},"nativeSrc":"5270:30:101","nodeType":"YulFunctionCall","src":"5270:30:101"},"nativeSrc":"5267:56:101","nodeType":"YulIf","src":"5267:56:101"},{"nativeSrc":"5333:25:101","nodeType":"YulAssignment","src":"5333:25:101","value":{"arguments":[{"name":"length","nativeSrc":"5345:6:101","nodeType":"YulIdentifier","src":"5345:6:101"},{"kind":"number","nativeSrc":"5353:4:101","nodeType":"YulLiteral","src":"5353:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"5341:3:101","nodeType":"YulIdentifier","src":"5341:3:101"},"nativeSrc":"5341:17:101","nodeType":"YulFunctionCall","src":"5341:17:101"},"variableNames":[{"name":"size","nativeSrc":"5333:4:101","nodeType":"YulIdentifier","src":"5333:4:101"}]},{"nativeSrc":"5395:23:101","nodeType":"YulAssignment","src":"5395:23:101","value":{"arguments":[{"name":"size","nativeSrc":"5407:4:101","nodeType":"YulIdentifier","src":"5407:4:101"},{"kind":"number","nativeSrc":"5413:4:101","nodeType":"YulLiteral","src":"5413:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5403:3:101","nodeType":"YulIdentifier","src":"5403:3:101"},"nativeSrc":"5403:15:101","nodeType":"YulFunctionCall","src":"5403:15:101"},"variableNames":[{"name":"size","nativeSrc":"5395:4:101","nodeType":"YulIdentifier","src":"5395:4:101"}]}]},"name":"array_allocation_size_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","nativeSrc":"5085:340:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5180:6:101","nodeType":"YulTypedName","src":"5180:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5191:4:101","nodeType":"YulTypedName","src":"5191:4:101","type":""}],"src":"5085:340:101"},{"body":{"nativeSrc":"5520:28:101","nodeType":"YulBlock","src":"5520:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5537:1:101","nodeType":"YulLiteral","src":"5537:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5540:1:101","nodeType":"YulLiteral","src":"5540:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5530:6:101","nodeType":"YulIdentifier","src":"5530:6:101"},"nativeSrc":"5530:12:101","nodeType":"YulFunctionCall","src":"5530:12:101"},"nativeSrc":"5530:12:101","nodeType":"YulExpressionStatement","src":"5530:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5431:117:101","nodeType":"YulFunctionDefinition","src":"5431:117:101"},{"body":{"nativeSrc":"5643:28:101","nodeType":"YulBlock","src":"5643:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5660:1:101","nodeType":"YulLiteral","src":"5660:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5663:1:101","nodeType":"YulLiteral","src":"5663:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5653:6:101","nodeType":"YulIdentifier","src":"5653:6:101"},"nativeSrc":"5653:12:101","nodeType":"YulFunctionCall","src":"5653:12:101"},"nativeSrc":"5653:12:101","nodeType":"YulExpressionStatement","src":"5653:12:101"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"5554:117:101","nodeType":"YulFunctionDefinition","src":"5554:117:101"},{"body":{"nativeSrc":"5766:28:101","nodeType":"YulBlock","src":"5766:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5783:1:101","nodeType":"YulLiteral","src":"5783:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5786:1:101","nodeType":"YulLiteral","src":"5786:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5776:6:101","nodeType":"YulIdentifier","src":"5776:6:101"},"nativeSrc":"5776:12:101","nodeType":"YulFunctionCall","src":"5776:12:101"},"nativeSrc":"5776:12:101","nodeType":"YulExpressionStatement","src":"5776:12:101"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"5677:117:101","nodeType":"YulFunctionDefinition","src":"5677:117:101"},{"body":{"nativeSrc":"5880:169:101","nodeType":"YulBlock","src":"5880:169:101","statements":[{"body":{"nativeSrc":"5985:22:101","nodeType":"YulBlock","src":"5985:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5987:16:101","nodeType":"YulIdentifier","src":"5987:16:101"},"nativeSrc":"5987:18:101","nodeType":"YulFunctionCall","src":"5987:18:101"},"nativeSrc":"5987:18:101","nodeType":"YulExpressionStatement","src":"5987:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5957:6:101","nodeType":"YulIdentifier","src":"5957:6:101"},{"kind":"number","nativeSrc":"5965:18:101","nodeType":"YulLiteral","src":"5965:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5954:2:101","nodeType":"YulIdentifier","src":"5954:2:101"},"nativeSrc":"5954:30:101","nodeType":"YulFunctionCall","src":"5954:30:101"},"nativeSrc":"5951:56:101","nodeType":"YulIf","src":"5951:56:101"},{"nativeSrc":"6017:25:101","nodeType":"YulAssignment","src":"6017:25:101","value":{"arguments":[{"name":"length","nativeSrc":"6029:6:101","nodeType":"YulIdentifier","src":"6029:6:101"},{"kind":"number","nativeSrc":"6037:4:101","nodeType":"YulLiteral","src":"6037:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6025:3:101","nodeType":"YulIdentifier","src":"6025:3:101"},"nativeSrc":"6025:17:101","nodeType":"YulFunctionCall","src":"6025:17:101"},"variableNames":[{"name":"size","nativeSrc":"6017:4:101","nodeType":"YulIdentifier","src":"6017:4:101"}]}]},"name":"array_allocation_size_t_array$_t_address_$3_memory_ptr","nativeSrc":"5800:249:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5864:6:101","nodeType":"YulTypedName","src":"5864:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5875:4:101","nodeType":"YulTypedName","src":"5875:4:101","type":""}],"src":"5800:249:101"},{"body":{"nativeSrc":"6173:543:101","nodeType":"YulBlock","src":"6173:543:101","statements":[{"nativeSrc":"6183:88:101","nodeType":"YulAssignment","src":"6183:88:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6263:6:101","nodeType":"YulIdentifier","src":"6263:6:101"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$3_memory_ptr","nativeSrc":"6208:54:101","nodeType":"YulIdentifier","src":"6208:54:101"},"nativeSrc":"6208:62:101","nodeType":"YulFunctionCall","src":"6208:62:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"6192:15:101","nodeType":"YulIdentifier","src":"6192:15:101"},"nativeSrc":"6192:79:101","nodeType":"YulFunctionCall","src":"6192:79:101"},"variableNames":[{"name":"array","nativeSrc":"6183:5:101","nodeType":"YulIdentifier","src":"6183:5:101"}]},{"nativeSrc":"6280:16:101","nodeType":"YulVariableDeclaration","src":"6280:16:101","value":{"name":"array","nativeSrc":"6291:5:101","nodeType":"YulIdentifier","src":"6291:5:101"},"variables":[{"name":"dst","nativeSrc":"6284:3:101","nodeType":"YulTypedName","src":"6284:3:101","type":""}]},{"nativeSrc":"6306:44:101","nodeType":"YulVariableDeclaration","src":"6306:44:101","value":{"arguments":[{"name":"offset","nativeSrc":"6324:6:101","nodeType":"YulIdentifier","src":"6324:6:101"},{"arguments":[{"name":"length","nativeSrc":"6336:6:101","nodeType":"YulIdentifier","src":"6336:6:101"},{"kind":"number","nativeSrc":"6344:4:101","nodeType":"YulLiteral","src":"6344:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6332:3:101","nodeType":"YulIdentifier","src":"6332:3:101"},"nativeSrc":"6332:17:101","nodeType":"YulFunctionCall","src":"6332:17:101"}],"functionName":{"name":"add","nativeSrc":"6320:3:101","nodeType":"YulIdentifier","src":"6320:3:101"},"nativeSrc":"6320:30:101","nodeType":"YulFunctionCall","src":"6320:30:101"},"variables":[{"name":"srcEnd","nativeSrc":"6310:6:101","nodeType":"YulTypedName","src":"6310:6:101","type":""}]},{"body":{"nativeSrc":"6378:103:101","nodeType":"YulBlock","src":"6378:103:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6392:77:101","nodeType":"YulIdentifier","src":"6392:77:101"},"nativeSrc":"6392:79:101","nodeType":"YulFunctionCall","src":"6392:79:101"},"nativeSrc":"6392:79:101","nodeType":"YulExpressionStatement","src":"6392:79:101"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"6365:6:101","nodeType":"YulIdentifier","src":"6365:6:101"},{"name":"end","nativeSrc":"6373:3:101","nodeType":"YulIdentifier","src":"6373:3:101"}],"functionName":{"name":"gt","nativeSrc":"6362:2:101","nodeType":"YulIdentifier","src":"6362:2:101"},"nativeSrc":"6362:15:101","nodeType":"YulFunctionCall","src":"6362:15:101"},"nativeSrc":"6359:122:101","nodeType":"YulIf","src":"6359:122:101"},{"body":{"nativeSrc":"6566:144:101","nodeType":"YulBlock","src":"6566:144:101","statements":[{"nativeSrc":"6581:21:101","nodeType":"YulVariableDeclaration","src":"6581:21:101","value":{"name":"src","nativeSrc":"6599:3:101","nodeType":"YulIdentifier","src":"6599:3:101"},"variables":[{"name":"elementPos","nativeSrc":"6585:10:101","nodeType":"YulTypedName","src":"6585:10:101","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"6623:3:101","nodeType":"YulIdentifier","src":"6623:3:101"},{"arguments":[{"name":"elementPos","nativeSrc":"6649:10:101","nodeType":"YulIdentifier","src":"6649:10:101"},{"name":"end","nativeSrc":"6661:3:101","nodeType":"YulIdentifier","src":"6661:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6628:20:101","nodeType":"YulIdentifier","src":"6628:20:101"},"nativeSrc":"6628:37:101","nodeType":"YulFunctionCall","src":"6628:37:101"}],"functionName":{"name":"mstore","nativeSrc":"6616:6:101","nodeType":"YulIdentifier","src":"6616:6:101"},"nativeSrc":"6616:50:101","nodeType":"YulFunctionCall","src":"6616:50:101"},"nativeSrc":"6616:50:101","nodeType":"YulExpressionStatement","src":"6616:50:101"},{"nativeSrc":"6679:21:101","nodeType":"YulAssignment","src":"6679:21:101","value":{"arguments":[{"name":"dst","nativeSrc":"6690:3:101","nodeType":"YulIdentifier","src":"6690:3:101"},{"kind":"number","nativeSrc":"6695:4:101","nodeType":"YulLiteral","src":"6695:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6686:3:101","nodeType":"YulIdentifier","src":"6686:3:101"},"nativeSrc":"6686:14:101","nodeType":"YulFunctionCall","src":"6686:14:101"},"variableNames":[{"name":"dst","nativeSrc":"6679:3:101","nodeType":"YulIdentifier","src":"6679:3:101"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"6519:3:101","nodeType":"YulIdentifier","src":"6519:3:101"},{"name":"srcEnd","nativeSrc":"6524:6:101","nodeType":"YulIdentifier","src":"6524:6:101"}],"functionName":{"name":"lt","nativeSrc":"6516:2:101","nodeType":"YulIdentifier","src":"6516:2:101"},"nativeSrc":"6516:15:101","nodeType":"YulFunctionCall","src":"6516:15:101"},"nativeSrc":"6490:220:101","nodeType":"YulForLoop","post":{"nativeSrc":"6532:25:101","nodeType":"YulBlock","src":"6532:25:101","statements":[{"nativeSrc":"6534:21:101","nodeType":"YulAssignment","src":"6534:21:101","value":{"arguments":[{"name":"src","nativeSrc":"6545:3:101","nodeType":"YulIdentifier","src":"6545:3:101"},{"kind":"number","nativeSrc":"6550:4:101","nodeType":"YulLiteral","src":"6550:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6541:3:101","nodeType":"YulIdentifier","src":"6541:3:101"},"nativeSrc":"6541:14:101","nodeType":"YulFunctionCall","src":"6541:14:101"},"variableNames":[{"name":"src","nativeSrc":"6534:3:101","nodeType":"YulIdentifier","src":"6534:3:101"}]}]},"pre":{"nativeSrc":"6494:21:101","nodeType":"YulBlock","src":"6494:21:101","statements":[{"nativeSrc":"6496:17:101","nodeType":"YulVariableDeclaration","src":"6496:17:101","value":{"name":"offset","nativeSrc":"6507:6:101","nodeType":"YulIdentifier","src":"6507:6:101"},"variables":[{"name":"src","nativeSrc":"6500:3:101","nodeType":"YulTypedName","src":"6500:3:101","type":""}]}]},"src":"6490:220:101"}]},"name":"abi_decode_available_length_t_array$_t_address_$3_memory_ptr","nativeSrc":"6073:643:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6143:6:101","nodeType":"YulTypedName","src":"6143:6:101","type":""},{"name":"length","nativeSrc":"6151:6:101","nodeType":"YulTypedName","src":"6151:6:101","type":""},{"name":"end","nativeSrc":"6159:3:101","nodeType":"YulTypedName","src":"6159:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6167:5:101","nodeType":"YulTypedName","src":"6167:5:101","type":""}],"src":"6073:643:101"},{"body":{"nativeSrc":"6815:264:101","nodeType":"YulBlock","src":"6815:264:101","statements":[{"body":{"nativeSrc":"6864:83:101","nodeType":"YulBlock","src":"6864:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6866:77:101","nodeType":"YulIdentifier","src":"6866:77:101"},"nativeSrc":"6866:79:101","nodeType":"YulFunctionCall","src":"6866:79:101"},"nativeSrc":"6866:79:101","nodeType":"YulExpressionStatement","src":"6866:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6843:6:101","nodeType":"YulIdentifier","src":"6843:6:101"},{"kind":"number","nativeSrc":"6851:4:101","nodeType":"YulLiteral","src":"6851:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6839:3:101","nodeType":"YulIdentifier","src":"6839:3:101"},"nativeSrc":"6839:17:101","nodeType":"YulFunctionCall","src":"6839:17:101"},{"name":"end","nativeSrc":"6858:3:101","nodeType":"YulIdentifier","src":"6858:3:101"}],"functionName":{"name":"slt","nativeSrc":"6835:3:101","nodeType":"YulIdentifier","src":"6835:3:101"},"nativeSrc":"6835:27:101","nodeType":"YulFunctionCall","src":"6835:27:101"}],"functionName":{"name":"iszero","nativeSrc":"6828:6:101","nodeType":"YulIdentifier","src":"6828:6:101"},"nativeSrc":"6828:35:101","nodeType":"YulFunctionCall","src":"6828:35:101"},"nativeSrc":"6825:122:101","nodeType":"YulIf","src":"6825:122:101"},{"nativeSrc":"6956:18:101","nodeType":"YulVariableDeclaration","src":"6956:18:101","value":{"kind":"number","nativeSrc":"6970:4:101","nodeType":"YulLiteral","src":"6970:4:101","type":"","value":"0x03"},"variables":[{"name":"length","nativeSrc":"6960:6:101","nodeType":"YulTypedName","src":"6960:6:101","type":""}]},{"nativeSrc":"6983:90:101","nodeType":"YulAssignment","src":"6983:90:101","value":{"arguments":[{"name":"offset","nativeSrc":"7053:6:101","nodeType":"YulIdentifier","src":"7053:6:101"},{"name":"length","nativeSrc":"7061:6:101","nodeType":"YulIdentifier","src":"7061:6:101"},{"name":"end","nativeSrc":"7069:3:101","nodeType":"YulIdentifier","src":"7069:3:101"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$3_memory_ptr","nativeSrc":"6992:60:101","nodeType":"YulIdentifier","src":"6992:60:101"},"nativeSrc":"6992:81:101","nodeType":"YulFunctionCall","src":"6992:81:101"},"variableNames":[{"name":"array","nativeSrc":"6983:5:101","nodeType":"YulIdentifier","src":"6983:5:101"}]}]},"name":"abi_decode_t_array$_t_address_$3_memory_ptr","nativeSrc":"6740:339:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6793:6:101","nodeType":"YulTypedName","src":"6793:6:101","type":""},{"name":"end","nativeSrc":"6801:3:101","nodeType":"YulTypedName","src":"6801:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6809:5:101","nodeType":"YulTypedName","src":"6809:5:101","type":""}],"src":"6740:339:101"},{"body":{"nativeSrc":"7162:169:101","nodeType":"YulBlock","src":"7162:169:101","statements":[{"body":{"nativeSrc":"7267:22:101","nodeType":"YulBlock","src":"7267:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7269:16:101","nodeType":"YulIdentifier","src":"7269:16:101"},"nativeSrc":"7269:18:101","nodeType":"YulFunctionCall","src":"7269:18:101"},"nativeSrc":"7269:18:101","nodeType":"YulExpressionStatement","src":"7269:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7239:6:101","nodeType":"YulIdentifier","src":"7239:6:101"},{"kind":"number","nativeSrc":"7247:18:101","nodeType":"YulLiteral","src":"7247:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7236:2:101","nodeType":"YulIdentifier","src":"7236:2:101"},"nativeSrc":"7236:30:101","nodeType":"YulFunctionCall","src":"7236:30:101"},"nativeSrc":"7233:56:101","nodeType":"YulIf","src":"7233:56:101"},{"nativeSrc":"7299:25:101","nodeType":"YulAssignment","src":"7299:25:101","value":{"arguments":[{"name":"length","nativeSrc":"7311:6:101","nodeType":"YulIdentifier","src":"7311:6:101"},{"kind":"number","nativeSrc":"7319:4:101","nodeType":"YulLiteral","src":"7319:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7307:3:101","nodeType":"YulIdentifier","src":"7307:3:101"},"nativeSrc":"7307:17:101","nodeType":"YulFunctionCall","src":"7307:17:101"},"variableNames":[{"name":"size","nativeSrc":"7299:4:101","nodeType":"YulIdentifier","src":"7299:4:101"}]}]},"name":"array_allocation_size_t_array$_t_bool_$3_memory_ptr","nativeSrc":"7085:246:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"7146:6:101","nodeType":"YulTypedName","src":"7146:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"7157:4:101","nodeType":"YulTypedName","src":"7157:4:101","type":""}],"src":"7085:246:101"},{"body":{"nativeSrc":"7449:537:101","nodeType":"YulBlock","src":"7449:537:101","statements":[{"nativeSrc":"7459:85:101","nodeType":"YulAssignment","src":"7459:85:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"7536:6:101","nodeType":"YulIdentifier","src":"7536:6:101"}],"functionName":{"name":"array_allocation_size_t_array$_t_bool_$3_memory_ptr","nativeSrc":"7484:51:101","nodeType":"YulIdentifier","src":"7484:51:101"},"nativeSrc":"7484:59:101","nodeType":"YulFunctionCall","src":"7484:59:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"7468:15:101","nodeType":"YulIdentifier","src":"7468:15:101"},"nativeSrc":"7468:76:101","nodeType":"YulFunctionCall","src":"7468:76:101"},"variableNames":[{"name":"array","nativeSrc":"7459:5:101","nodeType":"YulIdentifier","src":"7459:5:101"}]},{"nativeSrc":"7553:16:101","nodeType":"YulVariableDeclaration","src":"7553:16:101","value":{"name":"array","nativeSrc":"7564:5:101","nodeType":"YulIdentifier","src":"7564:5:101"},"variables":[{"name":"dst","nativeSrc":"7557:3:101","nodeType":"YulTypedName","src":"7557:3:101","type":""}]},{"nativeSrc":"7579:44:101","nodeType":"YulVariableDeclaration","src":"7579:44:101","value":{"arguments":[{"name":"offset","nativeSrc":"7597:6:101","nodeType":"YulIdentifier","src":"7597:6:101"},{"arguments":[{"name":"length","nativeSrc":"7609:6:101","nodeType":"YulIdentifier","src":"7609:6:101"},{"kind":"number","nativeSrc":"7617:4:101","nodeType":"YulLiteral","src":"7617:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7605:3:101","nodeType":"YulIdentifier","src":"7605:3:101"},"nativeSrc":"7605:17:101","nodeType":"YulFunctionCall","src":"7605:17:101"}],"functionName":{"name":"add","nativeSrc":"7593:3:101","nodeType":"YulIdentifier","src":"7593:3:101"},"nativeSrc":"7593:30:101","nodeType":"YulFunctionCall","src":"7593:30:101"},"variables":[{"name":"srcEnd","nativeSrc":"7583:6:101","nodeType":"YulTypedName","src":"7583:6:101","type":""}]},{"body":{"nativeSrc":"7651:103:101","nodeType":"YulBlock","src":"7651:103:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7665:77:101","nodeType":"YulIdentifier","src":"7665:77:101"},"nativeSrc":"7665:79:101","nodeType":"YulFunctionCall","src":"7665:79:101"},"nativeSrc":"7665:79:101","nodeType":"YulExpressionStatement","src":"7665:79:101"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"7638:6:101","nodeType":"YulIdentifier","src":"7638:6:101"},{"name":"end","nativeSrc":"7646:3:101","nodeType":"YulIdentifier","src":"7646:3:101"}],"functionName":{"name":"gt","nativeSrc":"7635:2:101","nodeType":"YulIdentifier","src":"7635:2:101"},"nativeSrc":"7635:15:101","nodeType":"YulFunctionCall","src":"7635:15:101"},"nativeSrc":"7632:122:101","nodeType":"YulIf","src":"7632:122:101"},{"body":{"nativeSrc":"7839:141:101","nodeType":"YulBlock","src":"7839:141:101","statements":[{"nativeSrc":"7854:21:101","nodeType":"YulVariableDeclaration","src":"7854:21:101","value":{"name":"src","nativeSrc":"7872:3:101","nodeType":"YulIdentifier","src":"7872:3:101"},"variables":[{"name":"elementPos","nativeSrc":"7858:10:101","nodeType":"YulTypedName","src":"7858:10:101","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"7896:3:101","nodeType":"YulIdentifier","src":"7896:3:101"},{"arguments":[{"name":"elementPos","nativeSrc":"7919:10:101","nodeType":"YulIdentifier","src":"7919:10:101"},{"name":"end","nativeSrc":"7931:3:101","nodeType":"YulIdentifier","src":"7931:3:101"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"7901:17:101","nodeType":"YulIdentifier","src":"7901:17:101"},"nativeSrc":"7901:34:101","nodeType":"YulFunctionCall","src":"7901:34:101"}],"functionName":{"name":"mstore","nativeSrc":"7889:6:101","nodeType":"YulIdentifier","src":"7889:6:101"},"nativeSrc":"7889:47:101","nodeType":"YulFunctionCall","src":"7889:47:101"},"nativeSrc":"7889:47:101","nodeType":"YulExpressionStatement","src":"7889:47:101"},{"nativeSrc":"7949:21:101","nodeType":"YulAssignment","src":"7949:21:101","value":{"arguments":[{"name":"dst","nativeSrc":"7960:3:101","nodeType":"YulIdentifier","src":"7960:3:101"},{"kind":"number","nativeSrc":"7965:4:101","nodeType":"YulLiteral","src":"7965:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7956:3:101","nodeType":"YulIdentifier","src":"7956:3:101"},"nativeSrc":"7956:14:101","nodeType":"YulFunctionCall","src":"7956:14:101"},"variableNames":[{"name":"dst","nativeSrc":"7949:3:101","nodeType":"YulIdentifier","src":"7949:3:101"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"7792:3:101","nodeType":"YulIdentifier","src":"7792:3:101"},{"name":"srcEnd","nativeSrc":"7797:6:101","nodeType":"YulIdentifier","src":"7797:6:101"}],"functionName":{"name":"lt","nativeSrc":"7789:2:101","nodeType":"YulIdentifier","src":"7789:2:101"},"nativeSrc":"7789:15:101","nodeType":"YulFunctionCall","src":"7789:15:101"},"nativeSrc":"7763:217:101","nodeType":"YulForLoop","post":{"nativeSrc":"7805:25:101","nodeType":"YulBlock","src":"7805:25:101","statements":[{"nativeSrc":"7807:21:101","nodeType":"YulAssignment","src":"7807:21:101","value":{"arguments":[{"name":"src","nativeSrc":"7818:3:101","nodeType":"YulIdentifier","src":"7818:3:101"},{"kind":"number","nativeSrc":"7823:4:101","nodeType":"YulLiteral","src":"7823:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7814:3:101","nodeType":"YulIdentifier","src":"7814:3:101"},"nativeSrc":"7814:14:101","nodeType":"YulFunctionCall","src":"7814:14:101"},"variableNames":[{"name":"src","nativeSrc":"7807:3:101","nodeType":"YulIdentifier","src":"7807:3:101"}]}]},"pre":{"nativeSrc":"7767:21:101","nodeType":"YulBlock","src":"7767:21:101","statements":[{"nativeSrc":"7769:17:101","nodeType":"YulVariableDeclaration","src":"7769:17:101","value":{"name":"offset","nativeSrc":"7780:6:101","nodeType":"YulIdentifier","src":"7780:6:101"},"variables":[{"name":"src","nativeSrc":"7773:3:101","nodeType":"YulTypedName","src":"7773:3:101","type":""}]}]},"src":"7763:217:101"}]},"name":"abi_decode_available_length_t_array$_t_bool_$3_memory_ptr","nativeSrc":"7352:634:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7419:6:101","nodeType":"YulTypedName","src":"7419:6:101","type":""},{"name":"length","nativeSrc":"7427:6:101","nodeType":"YulTypedName","src":"7427:6:101","type":""},{"name":"end","nativeSrc":"7435:3:101","nodeType":"YulTypedName","src":"7435:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7443:5:101","nodeType":"YulTypedName","src":"7443:5:101","type":""}],"src":"7352:634:101"},{"body":{"nativeSrc":"8079:261:101","nodeType":"YulBlock","src":"8079:261:101","statements":[{"body":{"nativeSrc":"8128:83:101","nodeType":"YulBlock","src":"8128:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"8130:77:101","nodeType":"YulIdentifier","src":"8130:77:101"},"nativeSrc":"8130:79:101","nodeType":"YulFunctionCall","src":"8130:79:101"},"nativeSrc":"8130:79:101","nodeType":"YulExpressionStatement","src":"8130:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8107:6:101","nodeType":"YulIdentifier","src":"8107:6:101"},{"kind":"number","nativeSrc":"8115:4:101","nodeType":"YulLiteral","src":"8115:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"8103:3:101","nodeType":"YulIdentifier","src":"8103:3:101"},"nativeSrc":"8103:17:101","nodeType":"YulFunctionCall","src":"8103:17:101"},{"name":"end","nativeSrc":"8122:3:101","nodeType":"YulIdentifier","src":"8122:3:101"}],"functionName":{"name":"slt","nativeSrc":"8099:3:101","nodeType":"YulIdentifier","src":"8099:3:101"},"nativeSrc":"8099:27:101","nodeType":"YulFunctionCall","src":"8099:27:101"}],"functionName":{"name":"iszero","nativeSrc":"8092:6:101","nodeType":"YulIdentifier","src":"8092:6:101"},"nativeSrc":"8092:35:101","nodeType":"YulFunctionCall","src":"8092:35:101"},"nativeSrc":"8089:122:101","nodeType":"YulIf","src":"8089:122:101"},{"nativeSrc":"8220:18:101","nodeType":"YulVariableDeclaration","src":"8220:18:101","value":{"kind":"number","nativeSrc":"8234:4:101","nodeType":"YulLiteral","src":"8234:4:101","type":"","value":"0x03"},"variables":[{"name":"length","nativeSrc":"8224:6:101","nodeType":"YulTypedName","src":"8224:6:101","type":""}]},{"nativeSrc":"8247:87:101","nodeType":"YulAssignment","src":"8247:87:101","value":{"arguments":[{"name":"offset","nativeSrc":"8314:6:101","nodeType":"YulIdentifier","src":"8314:6:101"},{"name":"length","nativeSrc":"8322:6:101","nodeType":"YulIdentifier","src":"8322:6:101"},{"name":"end","nativeSrc":"8330:3:101","nodeType":"YulIdentifier","src":"8330:3:101"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_bool_$3_memory_ptr","nativeSrc":"8256:57:101","nodeType":"YulIdentifier","src":"8256:57:101"},"nativeSrc":"8256:78:101","nodeType":"YulFunctionCall","src":"8256:78:101"},"variableNames":[{"name":"array","nativeSrc":"8247:5:101","nodeType":"YulIdentifier","src":"8247:5:101"}]}]},"name":"abi_decode_t_array$_t_bool_$3_memory_ptr","nativeSrc":"8007:333:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8057:6:101","nodeType":"YulTypedName","src":"8057:6:101","type":""},{"name":"end","nativeSrc":"8065:3:101","nodeType":"YulTypedName","src":"8065:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8073:5:101","nodeType":"YulTypedName","src":"8073:5:101","type":""}],"src":"8007:333:101"},{"body":{"nativeSrc":"8472:891:101","nodeType":"YulBlock","src":"8472:891:101","statements":[{"body":{"nativeSrc":"8518:83:101","nodeType":"YulBlock","src":"8518:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8520:77:101","nodeType":"YulIdentifier","src":"8520:77:101"},"nativeSrc":"8520:79:101","nodeType":"YulFunctionCall","src":"8520:79:101"},"nativeSrc":"8520:79:101","nodeType":"YulExpressionStatement","src":"8520:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"8493:3:101","nodeType":"YulIdentifier","src":"8493:3:101"},{"name":"headStart","nativeSrc":"8498:9:101","nodeType":"YulIdentifier","src":"8498:9:101"}],"functionName":{"name":"sub","nativeSrc":"8489:3:101","nodeType":"YulIdentifier","src":"8489:3:101"},"nativeSrc":"8489:19:101","nodeType":"YulFunctionCall","src":"8489:19:101"},{"kind":"number","nativeSrc":"8510:6:101","nodeType":"YulLiteral","src":"8510:6:101","type":"","value":"0x0100"}],"functionName":{"name":"slt","nativeSrc":"8485:3:101","nodeType":"YulIdentifier","src":"8485:3:101"},"nativeSrc":"8485:32:101","nodeType":"YulFunctionCall","src":"8485:32:101"},"nativeSrc":"8482:119:101","nodeType":"YulIf","src":"8482:119:101"},{"nativeSrc":"8610:30:101","nodeType":"YulAssignment","src":"8610:30:101","value":{"arguments":[{"kind":"number","nativeSrc":"8635:4:101","nodeType":"YulLiteral","src":"8635:4:101","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"8619:15:101","nodeType":"YulIdentifier","src":"8619:15:101"},"nativeSrc":"8619:21:101","nodeType":"YulFunctionCall","src":"8619:21:101"},"variableNames":[{"name":"value","nativeSrc":"8610:5:101","nodeType":"YulIdentifier","src":"8610:5:101"}]},{"nativeSrc":"8650:151:101","nodeType":"YulBlock","src":"8650:151:101","statements":[{"nativeSrc":"8686:15:101","nodeType":"YulVariableDeclaration","src":"8686:15:101","value":{"kind":"number","nativeSrc":"8700:1:101","nodeType":"YulLiteral","src":"8700:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8690:6:101","nodeType":"YulTypedName","src":"8690:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8726:5:101","nodeType":"YulIdentifier","src":"8726:5:101"},{"kind":"number","nativeSrc":"8733:4:101","nodeType":"YulLiteral","src":"8733:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"8722:3:101","nodeType":"YulIdentifier","src":"8722:3:101"},"nativeSrc":"8722:16:101","nodeType":"YulFunctionCall","src":"8722:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8765:9:101","nodeType":"YulIdentifier","src":"8765:9:101"},{"name":"offset","nativeSrc":"8776:6:101","nodeType":"YulIdentifier","src":"8776:6:101"}],"functionName":{"name":"add","nativeSrc":"8761:3:101","nodeType":"YulIdentifier","src":"8761:3:101"},"nativeSrc":"8761:22:101","nodeType":"YulFunctionCall","src":"8761:22:101"},{"name":"end","nativeSrc":"8785:3:101","nodeType":"YulIdentifier","src":"8785:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8740:20:101","nodeType":"YulIdentifier","src":"8740:20:101"},"nativeSrc":"8740:49:101","nodeType":"YulFunctionCall","src":"8740:49:101"}],"functionName":{"name":"mstore","nativeSrc":"8715:6:101","nodeType":"YulIdentifier","src":"8715:6:101"},"nativeSrc":"8715:75:101","nodeType":"YulFunctionCall","src":"8715:75:101"},"nativeSrc":"8715:75:101","nodeType":"YulExpressionStatement","src":"8715:75:101"}]},{"nativeSrc":"8811:177:101","nodeType":"YulBlock","src":"8811:177:101","statements":[{"nativeSrc":"8849:16:101","nodeType":"YulVariableDeclaration","src":"8849:16:101","value":{"kind":"number","nativeSrc":"8863:2:101","nodeType":"YulLiteral","src":"8863:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8853:6:101","nodeType":"YulTypedName","src":"8853:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8890:5:101","nodeType":"YulIdentifier","src":"8890:5:101"},{"kind":"number","nativeSrc":"8897:4:101","nodeType":"YulLiteral","src":"8897:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8886:3:101","nodeType":"YulIdentifier","src":"8886:3:101"},"nativeSrc":"8886:16:101","nodeType":"YulFunctionCall","src":"8886:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8952:9:101","nodeType":"YulIdentifier","src":"8952:9:101"},{"name":"offset","nativeSrc":"8963:6:101","nodeType":"YulIdentifier","src":"8963:6:101"}],"functionName":{"name":"add","nativeSrc":"8948:3:101","nodeType":"YulIdentifier","src":"8948:3:101"},"nativeSrc":"8948:22:101","nodeType":"YulFunctionCall","src":"8948:22:101"},{"name":"end","nativeSrc":"8972:3:101","nodeType":"YulIdentifier","src":"8972:3:101"}],"functionName":{"name":"abi_decode_t_array$_t_address_$3_memory_ptr","nativeSrc":"8904:43:101","nodeType":"YulIdentifier","src":"8904:43:101"},"nativeSrc":"8904:72:101","nodeType":"YulFunctionCall","src":"8904:72:101"}],"functionName":{"name":"mstore","nativeSrc":"8879:6:101","nodeType":"YulIdentifier","src":"8879:6:101"},"nativeSrc":"8879:98:101","nodeType":"YulFunctionCall","src":"8879:98:101"},"nativeSrc":"8879:98:101","nodeType":"YulExpressionStatement","src":"8879:98:101"}]},{"nativeSrc":"8998:189:101","nodeType":"YulBlock","src":"8998:189:101","statements":[{"nativeSrc":"9050:17:101","nodeType":"YulVariableDeclaration","src":"9050:17:101","value":{"kind":"number","nativeSrc":"9064:3:101","nodeType":"YulLiteral","src":"9064:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"9054:6:101","nodeType":"YulTypedName","src":"9054:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9092:5:101","nodeType":"YulIdentifier","src":"9092:5:101"},{"kind":"number","nativeSrc":"9099:4:101","nodeType":"YulLiteral","src":"9099:4:101","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9088:3:101","nodeType":"YulIdentifier","src":"9088:3:101"},"nativeSrc":"9088:16:101","nodeType":"YulFunctionCall","src":"9088:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9151:9:101","nodeType":"YulIdentifier","src":"9151:9:101"},{"name":"offset","nativeSrc":"9162:6:101","nodeType":"YulIdentifier","src":"9162:6:101"}],"functionName":{"name":"add","nativeSrc":"9147:3:101","nodeType":"YulIdentifier","src":"9147:3:101"},"nativeSrc":"9147:22:101","nodeType":"YulFunctionCall","src":"9147:22:101"},{"name":"end","nativeSrc":"9171:3:101","nodeType":"YulIdentifier","src":"9171:3:101"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$3_memory_ptr","nativeSrc":"9106:40:101","nodeType":"YulIdentifier","src":"9106:40:101"},"nativeSrc":"9106:69:101","nodeType":"YulFunctionCall","src":"9106:69:101"}],"functionName":{"name":"mstore","nativeSrc":"9081:6:101","nodeType":"YulIdentifier","src":"9081:6:101"},"nativeSrc":"9081:95:101","nodeType":"YulFunctionCall","src":"9081:95:101"},"nativeSrc":"9081:95:101","nodeType":"YulExpressionStatement","src":"9081:95:101"}]},{"nativeSrc":"9197:159:101","nodeType":"YulBlock","src":"9197:159:101","statements":[{"nativeSrc":"9242:17:101","nodeType":"YulVariableDeclaration","src":"9242:17:101","value":{"kind":"number","nativeSrc":"9256:3:101","nodeType":"YulLiteral","src":"9256:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"9246:6:101","nodeType":"YulTypedName","src":"9246:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9284:5:101","nodeType":"YulIdentifier","src":"9284:5:101"},{"kind":"number","nativeSrc":"9291:4:101","nodeType":"YulLiteral","src":"9291:4:101","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9280:3:101","nodeType":"YulIdentifier","src":"9280:3:101"},"nativeSrc":"9280:16:101","nodeType":"YulFunctionCall","src":"9280:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9320:9:101","nodeType":"YulIdentifier","src":"9320:9:101"},{"name":"offset","nativeSrc":"9331:6:101","nodeType":"YulIdentifier","src":"9331:6:101"}],"functionName":{"name":"add","nativeSrc":"9316:3:101","nodeType":"YulIdentifier","src":"9316:3:101"},"nativeSrc":"9316:22:101","nodeType":"YulFunctionCall","src":"9316:22:101"},{"name":"end","nativeSrc":"9340:3:101","nodeType":"YulIdentifier","src":"9340:3:101"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"9298:17:101","nodeType":"YulIdentifier","src":"9298:17:101"},"nativeSrc":"9298:46:101","nodeType":"YulFunctionCall","src":"9298:46:101"}],"functionName":{"name":"mstore","nativeSrc":"9273:6:101","nodeType":"YulIdentifier","src":"9273:6:101"},"nativeSrc":"9273:72:101","nodeType":"YulFunctionCall","src":"9273:72:101"},"nativeSrc":"9273:72:101","nodeType":"YulExpressionStatement","src":"9273:72:101"}]}]},"name":"abi_decode_t_struct$_TokenConfig_$2482_memory_ptr","nativeSrc":"8388:975:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8447:9:101","nodeType":"YulTypedName","src":"8447:9:101","type":""},{"name":"end","nativeSrc":"8458:3:101","nodeType":"YulTypedName","src":"8458:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8466:5:101","nodeType":"YulTypedName","src":"8466:5:101","type":""}],"src":"8388:975:101"},{"body":{"nativeSrc":"9544:670:101","nodeType":"YulBlock","src":"9544:670:101","statements":[{"nativeSrc":"9554:119:101","nodeType":"YulAssignment","src":"9554:119:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9665:6:101","nodeType":"YulIdentifier","src":"9665:6:101"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","nativeSrc":"9579:85:101","nodeType":"YulIdentifier","src":"9579:85:101"},"nativeSrc":"9579:93:101","nodeType":"YulFunctionCall","src":"9579:93:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"9563:15:101","nodeType":"YulIdentifier","src":"9563:15:101"},"nativeSrc":"9563:110:101","nodeType":"YulFunctionCall","src":"9563:110:101"},"variableNames":[{"name":"array","nativeSrc":"9554:5:101","nodeType":"YulIdentifier","src":"9554:5:101"}]},{"nativeSrc":"9682:16:101","nodeType":"YulVariableDeclaration","src":"9682:16:101","value":{"name":"array","nativeSrc":"9693:5:101","nodeType":"YulIdentifier","src":"9693:5:101"},"variables":[{"name":"dst","nativeSrc":"9686:3:101","nodeType":"YulTypedName","src":"9686:3:101","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"9715:5:101","nodeType":"YulIdentifier","src":"9715:5:101"},{"name":"length","nativeSrc":"9722:6:101","nodeType":"YulIdentifier","src":"9722:6:101"}],"functionName":{"name":"mstore","nativeSrc":"9708:6:101","nodeType":"YulIdentifier","src":"9708:6:101"},"nativeSrc":"9708:21:101","nodeType":"YulFunctionCall","src":"9708:21:101"},"nativeSrc":"9708:21:101","nodeType":"YulExpressionStatement","src":"9708:21:101"},{"nativeSrc":"9738:23:101","nodeType":"YulAssignment","src":"9738:23:101","value":{"arguments":[{"name":"array","nativeSrc":"9749:5:101","nodeType":"YulIdentifier","src":"9749:5:101"},{"kind":"number","nativeSrc":"9756:4:101","nodeType":"YulLiteral","src":"9756:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9745:3:101","nodeType":"YulIdentifier","src":"9745:3:101"},"nativeSrc":"9745:16:101","nodeType":"YulFunctionCall","src":"9745:16:101"},"variableNames":[{"name":"dst","nativeSrc":"9738:3:101","nodeType":"YulIdentifier","src":"9738:3:101"}]},{"nativeSrc":"9771:46:101","nodeType":"YulVariableDeclaration","src":"9771:46:101","value":{"arguments":[{"name":"offset","nativeSrc":"9789:6:101","nodeType":"YulIdentifier","src":"9789:6:101"},{"arguments":[{"name":"length","nativeSrc":"9801:6:101","nodeType":"YulIdentifier","src":"9801:6:101"},{"kind":"number","nativeSrc":"9809:6:101","nodeType":"YulLiteral","src":"9809:6:101","type":"","value":"0x0100"}],"functionName":{"name":"mul","nativeSrc":"9797:3:101","nodeType":"YulIdentifier","src":"9797:3:101"},"nativeSrc":"9797:19:101","nodeType":"YulFunctionCall","src":"9797:19:101"}],"functionName":{"name":"add","nativeSrc":"9785:3:101","nodeType":"YulIdentifier","src":"9785:3:101"},"nativeSrc":"9785:32:101","nodeType":"YulFunctionCall","src":"9785:32:101"},"variables":[{"name":"srcEnd","nativeSrc":"9775:6:101","nodeType":"YulTypedName","src":"9775:6:101","type":""}]},{"body":{"nativeSrc":"9845:103:101","nodeType":"YulBlock","src":"9845:103:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9859:77:101","nodeType":"YulIdentifier","src":"9859:77:101"},"nativeSrc":"9859:79:101","nodeType":"YulFunctionCall","src":"9859:79:101"},"nativeSrc":"9859:79:101","nodeType":"YulExpressionStatement","src":"9859:79:101"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"9832:6:101","nodeType":"YulIdentifier","src":"9832:6:101"},{"name":"end","nativeSrc":"9840:3:101","nodeType":"YulIdentifier","src":"9840:3:101"}],"functionName":{"name":"gt","nativeSrc":"9829:2:101","nodeType":"YulIdentifier","src":"9829:2:101"},"nativeSrc":"9829:15:101","nodeType":"YulFunctionCall","src":"9829:15:101"},"nativeSrc":"9826:122:101","nodeType":"YulIf","src":"9826:122:101"},{"body":{"nativeSrc":"10035:173:101","nodeType":"YulBlock","src":"10035:173:101","statements":[{"nativeSrc":"10050:21:101","nodeType":"YulVariableDeclaration","src":"10050:21:101","value":{"name":"src","nativeSrc":"10068:3:101","nodeType":"YulIdentifier","src":"10068:3:101"},"variables":[{"name":"elementPos","nativeSrc":"10054:10:101","nodeType":"YulTypedName","src":"10054:10:101","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"10092:3:101","nodeType":"YulIdentifier","src":"10092:3:101"},{"arguments":[{"name":"elementPos","nativeSrc":"10147:10:101","nodeType":"YulIdentifier","src":"10147:10:101"},{"name":"end","nativeSrc":"10159:3:101","nodeType":"YulIdentifier","src":"10159:3:101"}],"functionName":{"name":"abi_decode_t_struct$_TokenConfig_$2482_memory_ptr","nativeSrc":"10097:49:101","nodeType":"YulIdentifier","src":"10097:49:101"},"nativeSrc":"10097:66:101","nodeType":"YulFunctionCall","src":"10097:66:101"}],"functionName":{"name":"mstore","nativeSrc":"10085:6:101","nodeType":"YulIdentifier","src":"10085:6:101"},"nativeSrc":"10085:79:101","nodeType":"YulFunctionCall","src":"10085:79:101"},"nativeSrc":"10085:79:101","nodeType":"YulExpressionStatement","src":"10085:79:101"},{"nativeSrc":"10177:21:101","nodeType":"YulAssignment","src":"10177:21:101","value":{"arguments":[{"name":"dst","nativeSrc":"10188:3:101","nodeType":"YulIdentifier","src":"10188:3:101"},{"kind":"number","nativeSrc":"10193:4:101","nodeType":"YulLiteral","src":"10193:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10184:3:101","nodeType":"YulIdentifier","src":"10184:3:101"},"nativeSrc":"10184:14:101","nodeType":"YulFunctionCall","src":"10184:14:101"},"variableNames":[{"name":"dst","nativeSrc":"10177:3:101","nodeType":"YulIdentifier","src":"10177:3:101"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"9986:3:101","nodeType":"YulIdentifier","src":"9986:3:101"},{"name":"srcEnd","nativeSrc":"9991:6:101","nodeType":"YulIdentifier","src":"9991:6:101"}],"functionName":{"name":"lt","nativeSrc":"9983:2:101","nodeType":"YulIdentifier","src":"9983:2:101"},"nativeSrc":"9983:15:101","nodeType":"YulFunctionCall","src":"9983:15:101"},"nativeSrc":"9957:251:101","nodeType":"YulForLoop","post":{"nativeSrc":"9999:27:101","nodeType":"YulBlock","src":"9999:27:101","statements":[{"nativeSrc":"10001:23:101","nodeType":"YulAssignment","src":"10001:23:101","value":{"arguments":[{"name":"src","nativeSrc":"10012:3:101","nodeType":"YulIdentifier","src":"10012:3:101"},{"kind":"number","nativeSrc":"10017:6:101","nodeType":"YulLiteral","src":"10017:6:101","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"10008:3:101","nodeType":"YulIdentifier","src":"10008:3:101"},"nativeSrc":"10008:16:101","nodeType":"YulFunctionCall","src":"10008:16:101"},"variableNames":[{"name":"src","nativeSrc":"10001:3:101","nodeType":"YulIdentifier","src":"10001:3:101"}]}]},"pre":{"nativeSrc":"9961:21:101","nodeType":"YulBlock","src":"9961:21:101","statements":[{"nativeSrc":"9963:17:101","nodeType":"YulVariableDeclaration","src":"9963:17:101","value":{"name":"offset","nativeSrc":"9974:6:101","nodeType":"YulIdentifier","src":"9974:6:101"},"variables":[{"name":"src","nativeSrc":"9967:3:101","nodeType":"YulTypedName","src":"9967:3:101","type":""}]}]},"src":"9957:251:101"}]},"name":"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","nativeSrc":"9413:801:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9514:6:101","nodeType":"YulTypedName","src":"9514:6:101","type":""},{"name":"length","nativeSrc":"9522:6:101","nodeType":"YulTypedName","src":"9522:6:101","type":""},{"name":"end","nativeSrc":"9530:3:101","nodeType":"YulTypedName","src":"9530:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9538:5:101","nodeType":"YulTypedName","src":"9538:5:101","type":""}],"src":"9413:801:101"},{"body":{"nativeSrc":"10370:322:101","nodeType":"YulBlock","src":"10370:322:101","statements":[{"body":{"nativeSrc":"10419:83:101","nodeType":"YulBlock","src":"10419:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10421:77:101","nodeType":"YulIdentifier","src":"10421:77:101"},"nativeSrc":"10421:79:101","nodeType":"YulFunctionCall","src":"10421:79:101"},"nativeSrc":"10421:79:101","nodeType":"YulExpressionStatement","src":"10421:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10398:6:101","nodeType":"YulIdentifier","src":"10398:6:101"},{"kind":"number","nativeSrc":"10406:4:101","nodeType":"YulLiteral","src":"10406:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10394:3:101","nodeType":"YulIdentifier","src":"10394:3:101"},"nativeSrc":"10394:17:101","nodeType":"YulFunctionCall","src":"10394:17:101"},{"name":"end","nativeSrc":"10413:3:101","nodeType":"YulIdentifier","src":"10413:3:101"}],"functionName":{"name":"slt","nativeSrc":"10390:3:101","nodeType":"YulIdentifier","src":"10390:3:101"},"nativeSrc":"10390:27:101","nodeType":"YulFunctionCall","src":"10390:27:101"}],"functionName":{"name":"iszero","nativeSrc":"10383:6:101","nodeType":"YulIdentifier","src":"10383:6:101"},"nativeSrc":"10383:35:101","nodeType":"YulFunctionCall","src":"10383:35:101"},"nativeSrc":"10380:122:101","nodeType":"YulIf","src":"10380:122:101"},{"nativeSrc":"10511:34:101","nodeType":"YulVariableDeclaration","src":"10511:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"10538:6:101","nodeType":"YulIdentifier","src":"10538:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"10525:12:101","nodeType":"YulIdentifier","src":"10525:12:101"},"nativeSrc":"10525:20:101","nodeType":"YulFunctionCall","src":"10525:20:101"},"variables":[{"name":"length","nativeSrc":"10515:6:101","nodeType":"YulTypedName","src":"10515:6:101","type":""}]},{"nativeSrc":"10554:132:101","nodeType":"YulAssignment","src":"10554:132:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10659:6:101","nodeType":"YulIdentifier","src":"10659:6:101"},{"kind":"number","nativeSrc":"10667:4:101","nodeType":"YulLiteral","src":"10667:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10655:3:101","nodeType":"YulIdentifier","src":"10655:3:101"},"nativeSrc":"10655:17:101","nodeType":"YulFunctionCall","src":"10655:17:101"},{"name":"length","nativeSrc":"10674:6:101","nodeType":"YulIdentifier","src":"10674:6:101"},{"name":"end","nativeSrc":"10682:3:101","nodeType":"YulIdentifier","src":"10682:3:101"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","nativeSrc":"10563:91:101","nodeType":"YulIdentifier","src":"10563:91:101"},"nativeSrc":"10563:123:101","nodeType":"YulFunctionCall","src":"10563:123:101"},"variableNames":[{"name":"array","nativeSrc":"10554:5:101","nodeType":"YulIdentifier","src":"10554:5:101"}]}]},"name":"abi_decode_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","nativeSrc":"10264:428:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10348:6:101","nodeType":"YulTypedName","src":"10348:6:101","type":""},{"name":"end","nativeSrc":"10356:3:101","nodeType":"YulTypedName","src":"10356:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10364:5:101","nodeType":"YulTypedName","src":"10364:5:101","type":""}],"src":"10264:428:101"},{"body":{"nativeSrc":"10818:477:101","nodeType":"YulBlock","src":"10818:477:101","statements":[{"body":{"nativeSrc":"10864:83:101","nodeType":"YulBlock","src":"10864:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10866:77:101","nodeType":"YulIdentifier","src":"10866:77:101"},"nativeSrc":"10866:79:101","nodeType":"YulFunctionCall","src":"10866:79:101"},"nativeSrc":"10866:79:101","nodeType":"YulExpressionStatement","src":"10866:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10839:7:101","nodeType":"YulIdentifier","src":"10839:7:101"},{"name":"headStart","nativeSrc":"10848:9:101","nodeType":"YulIdentifier","src":"10848:9:101"}],"functionName":{"name":"sub","nativeSrc":"10835:3:101","nodeType":"YulIdentifier","src":"10835:3:101"},"nativeSrc":"10835:23:101","nodeType":"YulFunctionCall","src":"10835:23:101"},{"kind":"number","nativeSrc":"10860:2:101","nodeType":"YulLiteral","src":"10860:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10831:3:101","nodeType":"YulIdentifier","src":"10831:3:101"},"nativeSrc":"10831:32:101","nodeType":"YulFunctionCall","src":"10831:32:101"},"nativeSrc":"10828:119:101","nodeType":"YulIf","src":"10828:119:101"},{"nativeSrc":"10957:331:101","nodeType":"YulBlock","src":"10957:331:101","statements":[{"nativeSrc":"10972:45:101","nodeType":"YulVariableDeclaration","src":"10972:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11003:9:101","nodeType":"YulIdentifier","src":"11003:9:101"},{"kind":"number","nativeSrc":"11014:1:101","nodeType":"YulLiteral","src":"11014:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10999:3:101","nodeType":"YulIdentifier","src":"10999:3:101"},"nativeSrc":"10999:17:101","nodeType":"YulFunctionCall","src":"10999:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"10986:12:101","nodeType":"YulIdentifier","src":"10986:12:101"},"nativeSrc":"10986:31:101","nodeType":"YulFunctionCall","src":"10986:31:101"},"variables":[{"name":"offset","nativeSrc":"10976:6:101","nodeType":"YulTypedName","src":"10976:6:101","type":""}]},{"body":{"nativeSrc":"11064:83:101","nodeType":"YulBlock","src":"11064:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11066:77:101","nodeType":"YulIdentifier","src":"11066:77:101"},"nativeSrc":"11066:79:101","nodeType":"YulFunctionCall","src":"11066:79:101"},"nativeSrc":"11066:79:101","nodeType":"YulExpressionStatement","src":"11066:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11036:6:101","nodeType":"YulIdentifier","src":"11036:6:101"},{"kind":"number","nativeSrc":"11044:18:101","nodeType":"YulLiteral","src":"11044:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11033:2:101","nodeType":"YulIdentifier","src":"11033:2:101"},"nativeSrc":"11033:30:101","nodeType":"YulFunctionCall","src":"11033:30:101"},"nativeSrc":"11030:117:101","nodeType":"YulIf","src":"11030:117:101"},{"nativeSrc":"11161:117:101","nodeType":"YulAssignment","src":"11161:117:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11250:9:101","nodeType":"YulIdentifier","src":"11250:9:101"},{"name":"offset","nativeSrc":"11261:6:101","nodeType":"YulIdentifier","src":"11261:6:101"}],"functionName":{"name":"add","nativeSrc":"11246:3:101","nodeType":"YulIdentifier","src":"11246:3:101"},"nativeSrc":"11246:22:101","nodeType":"YulFunctionCall","src":"11246:22:101"},{"name":"dataEnd","nativeSrc":"11270:7:101","nodeType":"YulIdentifier","src":"11270:7:101"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","nativeSrc":"11171:74:101","nodeType":"YulIdentifier","src":"11171:74:101"},"nativeSrc":"11171:107:101","nodeType":"YulFunctionCall","src":"11171:107:101"},"variableNames":[{"name":"value0","nativeSrc":"11161:6:101","nodeType":"YulIdentifier","src":"11161:6:101"}]}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr","nativeSrc":"10698:597:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10788:9:101","nodeType":"YulTypedName","src":"10788:9:101","type":""},{"name":"dataEnd","nativeSrc":"10799:7:101","nodeType":"YulTypedName","src":"10799:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10811:6:101","nodeType":"YulTypedName","src":"10811:6:101","type":""}],"src":"10698:597:101"},{"body":{"nativeSrc":"11366:53:101","nodeType":"YulBlock","src":"11366:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11383:3:101","nodeType":"YulIdentifier","src":"11383:3:101"},{"arguments":[{"name":"value","nativeSrc":"11406:5:101","nodeType":"YulIdentifier","src":"11406:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"11388:17:101","nodeType":"YulIdentifier","src":"11388:17:101"},"nativeSrc":"11388:24:101","nodeType":"YulFunctionCall","src":"11388:24:101"}],"functionName":{"name":"mstore","nativeSrc":"11376:6:101","nodeType":"YulIdentifier","src":"11376:6:101"},"nativeSrc":"11376:37:101","nodeType":"YulFunctionCall","src":"11376:37:101"},"nativeSrc":"11376:37:101","nodeType":"YulExpressionStatement","src":"11376:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11301:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11354:5:101","nodeType":"YulTypedName","src":"11354:5:101","type":""},{"name":"pos","nativeSrc":"11361:3:101","nodeType":"YulTypedName","src":"11361:3:101","type":""}],"src":"11301:118:101"},{"body":{"nativeSrc":"11523:124:101","nodeType":"YulBlock","src":"11523:124:101","statements":[{"nativeSrc":"11533:26:101","nodeType":"YulAssignment","src":"11533:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11545:9:101","nodeType":"YulIdentifier","src":"11545:9:101"},{"kind":"number","nativeSrc":"11556:2:101","nodeType":"YulLiteral","src":"11556:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11541:3:101","nodeType":"YulIdentifier","src":"11541:3:101"},"nativeSrc":"11541:18:101","nodeType":"YulFunctionCall","src":"11541:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11533:4:101","nodeType":"YulIdentifier","src":"11533:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11613:6:101","nodeType":"YulIdentifier","src":"11613:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11626:9:101","nodeType":"YulIdentifier","src":"11626:9:101"},{"kind":"number","nativeSrc":"11637:1:101","nodeType":"YulLiteral","src":"11637:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11622:3:101","nodeType":"YulIdentifier","src":"11622:3:101"},"nativeSrc":"11622:17:101","nodeType":"YulFunctionCall","src":"11622:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11569:43:101","nodeType":"YulIdentifier","src":"11569:43:101"},"nativeSrc":"11569:71:101","nodeType":"YulFunctionCall","src":"11569:71:101"},"nativeSrc":"11569:71:101","nodeType":"YulExpressionStatement","src":"11569:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"11425:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11495:9:101","nodeType":"YulTypedName","src":"11495:9:101","type":""},{"name":"value0","nativeSrc":"11507:6:101","nodeType":"YulTypedName","src":"11507:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11518:4:101","nodeType":"YulTypedName","src":"11518:4:101","type":""}],"src":"11425:222:101"},{"body":{"nativeSrc":"11751:406:101","nodeType":"YulBlock","src":"11751:406:101","statements":[{"body":{"nativeSrc":"11797:83:101","nodeType":"YulBlock","src":"11797:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11799:77:101","nodeType":"YulIdentifier","src":"11799:77:101"},"nativeSrc":"11799:79:101","nodeType":"YulFunctionCall","src":"11799:79:101"},"nativeSrc":"11799:79:101","nodeType":"YulExpressionStatement","src":"11799:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11772:7:101","nodeType":"YulIdentifier","src":"11772:7:101"},{"name":"headStart","nativeSrc":"11781:9:101","nodeType":"YulIdentifier","src":"11781:9:101"}],"functionName":{"name":"sub","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:23:101","nodeType":"YulFunctionCall","src":"11768:23:101"},{"kind":"number","nativeSrc":"11793:2:101","nodeType":"YulLiteral","src":"11793:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11764:3:101","nodeType":"YulIdentifier","src":"11764:3:101"},"nativeSrc":"11764:32:101","nodeType":"YulFunctionCall","src":"11764:32:101"},"nativeSrc":"11761:119:101","nodeType":"YulIf","src":"11761:119:101"},{"nativeSrc":"11890:117:101","nodeType":"YulBlock","src":"11890:117:101","statements":[{"nativeSrc":"11905:15:101","nodeType":"YulVariableDeclaration","src":"11905:15:101","value":{"kind":"number","nativeSrc":"11919:1:101","nodeType":"YulLiteral","src":"11919:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11909:6:101","nodeType":"YulTypedName","src":"11909:6:101","type":""}]},{"nativeSrc":"11934:63:101","nodeType":"YulAssignment","src":"11934:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11969:9:101","nodeType":"YulIdentifier","src":"11969:9:101"},{"name":"offset","nativeSrc":"11980:6:101","nodeType":"YulIdentifier","src":"11980:6:101"}],"functionName":{"name":"add","nativeSrc":"11965:3:101","nodeType":"YulIdentifier","src":"11965:3:101"},"nativeSrc":"11965:22:101","nodeType":"YulFunctionCall","src":"11965:22:101"},{"name":"dataEnd","nativeSrc":"11989:7:101","nodeType":"YulIdentifier","src":"11989:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11944:20:101","nodeType":"YulIdentifier","src":"11944:20:101"},"nativeSrc":"11944:53:101","nodeType":"YulFunctionCall","src":"11944:53:101"},"variableNames":[{"name":"value0","nativeSrc":"11934:6:101","nodeType":"YulIdentifier","src":"11934:6:101"}]}]},{"nativeSrc":"12017:133:101","nodeType":"YulBlock","src":"12017:133:101","statements":[{"nativeSrc":"12032:16:101","nodeType":"YulVariableDeclaration","src":"12032:16:101","value":{"kind":"number","nativeSrc":"12046:2:101","nodeType":"YulLiteral","src":"12046:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"12036:6:101","nodeType":"YulTypedName","src":"12036:6:101","type":""}]},{"nativeSrc":"12062:78:101","nodeType":"YulAssignment","src":"12062:78:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12112:9:101","nodeType":"YulIdentifier","src":"12112:9:101"},{"name":"offset","nativeSrc":"12123:6:101","nodeType":"YulIdentifier","src":"12123:6:101"}],"functionName":{"name":"add","nativeSrc":"12108:3:101","nodeType":"YulIdentifier","src":"12108:3:101"},"nativeSrc":"12108:22:101","nodeType":"YulFunctionCall","src":"12108:22:101"},{"name":"dataEnd","nativeSrc":"12132:7:101","nodeType":"YulIdentifier","src":"12132:7:101"}],"functionName":{"name":"abi_decode_t_enum$_OracleRole_$2465","nativeSrc":"12072:35:101","nodeType":"YulIdentifier","src":"12072:35:101"},"nativeSrc":"12072:68:101","nodeType":"YulFunctionCall","src":"12072:68:101"},"variableNames":[{"name":"value1","nativeSrc":"12062:6:101","nodeType":"YulIdentifier","src":"12062:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_enum$_OracleRole_$2465","nativeSrc":"11653:504:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11713:9:101","nodeType":"YulTypedName","src":"11713:9:101","type":""},{"name":"dataEnd","nativeSrc":"11724:7:101","nodeType":"YulTypedName","src":"11724:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11736:6:101","nodeType":"YulTypedName","src":"11736:6:101","type":""},{"name":"value1","nativeSrc":"11744:6:101","nodeType":"YulTypedName","src":"11744:6:101","type":""}],"src":"11653:504:101"},{"body":{"nativeSrc":"12283:200:101","nodeType":"YulBlock","src":"12283:200:101","statements":[{"nativeSrc":"12293:26:101","nodeType":"YulAssignment","src":"12293:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12305:9:101","nodeType":"YulIdentifier","src":"12305:9:101"},{"kind":"number","nativeSrc":"12316:2:101","nodeType":"YulLiteral","src":"12316:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12301:3:101","nodeType":"YulIdentifier","src":"12301:3:101"},"nativeSrc":"12301:18:101","nodeType":"YulFunctionCall","src":"12301:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12293:4:101","nodeType":"YulIdentifier","src":"12293:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12373:6:101","nodeType":"YulIdentifier","src":"12373:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12386:9:101","nodeType":"YulIdentifier","src":"12386:9:101"},{"kind":"number","nativeSrc":"12397:1:101","nodeType":"YulLiteral","src":"12397:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12382:3:101","nodeType":"YulIdentifier","src":"12382:3:101"},"nativeSrc":"12382:17:101","nodeType":"YulFunctionCall","src":"12382:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12329:43:101","nodeType":"YulIdentifier","src":"12329:43:101"},"nativeSrc":"12329:71:101","nodeType":"YulFunctionCall","src":"12329:71:101"},"nativeSrc":"12329:71:101","nodeType":"YulExpressionStatement","src":"12329:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12448:6:101","nodeType":"YulIdentifier","src":"12448:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12461:9:101","nodeType":"YulIdentifier","src":"12461:9:101"},{"kind":"number","nativeSrc":"12472:2:101","nodeType":"YulLiteral","src":"12472:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12457:3:101","nodeType":"YulIdentifier","src":"12457:3:101"},"nativeSrc":"12457:18:101","nodeType":"YulFunctionCall","src":"12457:18:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"12410:37:101","nodeType":"YulIdentifier","src":"12410:37:101"},"nativeSrc":"12410:66:101","nodeType":"YulFunctionCall","src":"12410:66:101"},"nativeSrc":"12410:66:101","nodeType":"YulExpressionStatement","src":"12410:66:101"}]},"name":"abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed","nativeSrc":"12163:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12247:9:101","nodeType":"YulTypedName","src":"12247:9:101","type":""},{"name":"value1","nativeSrc":"12259:6:101","nodeType":"YulTypedName","src":"12259:6:101","type":""},{"name":"value0","nativeSrc":"12267:6:101","nodeType":"YulTypedName","src":"12267:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12278:4:101","nodeType":"YulTypedName","src":"12278:4:101","type":""}],"src":"12163:320:101"},{"body":{"nativeSrc":"12604:534:101","nodeType":"YulBlock","src":"12604:534:101","statements":[{"body":{"nativeSrc":"12650:83:101","nodeType":"YulBlock","src":"12650:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12652:77:101","nodeType":"YulIdentifier","src":"12652:77:101"},"nativeSrc":"12652:79:101","nodeType":"YulFunctionCall","src":"12652:79:101"},"nativeSrc":"12652:79:101","nodeType":"YulExpressionStatement","src":"12652:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12625:7:101","nodeType":"YulIdentifier","src":"12625:7:101"},{"name":"headStart","nativeSrc":"12634:9:101","nodeType":"YulIdentifier","src":"12634:9:101"}],"functionName":{"name":"sub","nativeSrc":"12621:3:101","nodeType":"YulIdentifier","src":"12621:3:101"},"nativeSrc":"12621:23:101","nodeType":"YulFunctionCall","src":"12621:23:101"},{"kind":"number","nativeSrc":"12646:2:101","nodeType":"YulLiteral","src":"12646:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"12617:3:101","nodeType":"YulIdentifier","src":"12617:3:101"},"nativeSrc":"12617:32:101","nodeType":"YulFunctionCall","src":"12617:32:101"},"nativeSrc":"12614:119:101","nodeType":"YulIf","src":"12614:119:101"},{"nativeSrc":"12743:117:101","nodeType":"YulBlock","src":"12743:117:101","statements":[{"nativeSrc":"12758:15:101","nodeType":"YulVariableDeclaration","src":"12758:15:101","value":{"kind":"number","nativeSrc":"12772:1:101","nodeType":"YulLiteral","src":"12772:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12762:6:101","nodeType":"YulTypedName","src":"12762:6:101","type":""}]},{"nativeSrc":"12787:63:101","nodeType":"YulAssignment","src":"12787:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12822:9:101","nodeType":"YulIdentifier","src":"12822:9:101"},{"name":"offset","nativeSrc":"12833:6:101","nodeType":"YulIdentifier","src":"12833:6:101"}],"functionName":{"name":"add","nativeSrc":"12818:3:101","nodeType":"YulIdentifier","src":"12818:3:101"},"nativeSrc":"12818:22:101","nodeType":"YulFunctionCall","src":"12818:22:101"},{"name":"dataEnd","nativeSrc":"12842:7:101","nodeType":"YulIdentifier","src":"12842:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12797:20:101","nodeType":"YulIdentifier","src":"12797:20:101"},"nativeSrc":"12797:53:101","nodeType":"YulFunctionCall","src":"12797:53:101"},"variableNames":[{"name":"value0","nativeSrc":"12787:6:101","nodeType":"YulIdentifier","src":"12787:6:101"}]}]},{"nativeSrc":"12870:118:101","nodeType":"YulBlock","src":"12870:118:101","statements":[{"nativeSrc":"12885:16:101","nodeType":"YulVariableDeclaration","src":"12885:16:101","value":{"kind":"number","nativeSrc":"12899:2:101","nodeType":"YulLiteral","src":"12899:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"12889:6:101","nodeType":"YulTypedName","src":"12889:6:101","type":""}]},{"nativeSrc":"12915:63:101","nodeType":"YulAssignment","src":"12915:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12950:9:101","nodeType":"YulIdentifier","src":"12950:9:101"},{"name":"offset","nativeSrc":"12961:6:101","nodeType":"YulIdentifier","src":"12961:6:101"}],"functionName":{"name":"add","nativeSrc":"12946:3:101","nodeType":"YulIdentifier","src":"12946:3:101"},"nativeSrc":"12946:22:101","nodeType":"YulFunctionCall","src":"12946:22:101"},{"name":"dataEnd","nativeSrc":"12970:7:101","nodeType":"YulIdentifier","src":"12970:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12925:20:101","nodeType":"YulIdentifier","src":"12925:20:101"},"nativeSrc":"12925:53:101","nodeType":"YulFunctionCall","src":"12925:53:101"},"variableNames":[{"name":"value1","nativeSrc":"12915:6:101","nodeType":"YulIdentifier","src":"12915:6:101"}]}]},{"nativeSrc":"12998:133:101","nodeType":"YulBlock","src":"12998:133:101","statements":[{"nativeSrc":"13013:16:101","nodeType":"YulVariableDeclaration","src":"13013:16:101","value":{"kind":"number","nativeSrc":"13027:2:101","nodeType":"YulLiteral","src":"13027:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"13017:6:101","nodeType":"YulTypedName","src":"13017:6:101","type":""}]},{"nativeSrc":"13043:78:101","nodeType":"YulAssignment","src":"13043:78:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13093:9:101","nodeType":"YulIdentifier","src":"13093:9:101"},{"name":"offset","nativeSrc":"13104:6:101","nodeType":"YulIdentifier","src":"13104:6:101"}],"functionName":{"name":"add","nativeSrc":"13089:3:101","nodeType":"YulIdentifier","src":"13089:3:101"},"nativeSrc":"13089:22:101","nodeType":"YulFunctionCall","src":"13089:22:101"},{"name":"dataEnd","nativeSrc":"13113:7:101","nodeType":"YulIdentifier","src":"13113:7:101"}],"functionName":{"name":"abi_decode_t_enum$_OracleRole_$2465","nativeSrc":"13053:35:101","nodeType":"YulIdentifier","src":"13053:35:101"},"nativeSrc":"13053:68:101","nodeType":"YulFunctionCall","src":"13053:68:101"},"variableNames":[{"name":"value2","nativeSrc":"13043:6:101","nodeType":"YulIdentifier","src":"13043:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_enum$_OracleRole_$2465","nativeSrc":"12489:649:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12558:9:101","nodeType":"YulTypedName","src":"12558:9:101","type":""},{"name":"dataEnd","nativeSrc":"12569:7:101","nodeType":"YulTypedName","src":"12569:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12581:6:101","nodeType":"YulTypedName","src":"12581:6:101","type":""},{"name":"value1","nativeSrc":"12589:6:101","nodeType":"YulTypedName","src":"12589:6:101","type":""},{"name":"value2","nativeSrc":"12597:6:101","nodeType":"YulTypedName","src":"12597:6:101","type":""}],"src":"12489:649:101"},{"body":{"nativeSrc":"13239:293:101","nodeType":"YulBlock","src":"13239:293:101","statements":[{"body":{"nativeSrc":"13286:83:101","nodeType":"YulBlock","src":"13286:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13288:77:101","nodeType":"YulIdentifier","src":"13288:77:101"},"nativeSrc":"13288:79:101","nodeType":"YulFunctionCall","src":"13288:79:101"},"nativeSrc":"13288:79:101","nodeType":"YulExpressionStatement","src":"13288:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13260:7:101","nodeType":"YulIdentifier","src":"13260:7:101"},{"name":"headStart","nativeSrc":"13269:9:101","nodeType":"YulIdentifier","src":"13269:9:101"}],"functionName":{"name":"sub","nativeSrc":"13256:3:101","nodeType":"YulIdentifier","src":"13256:3:101"},"nativeSrc":"13256:23:101","nodeType":"YulFunctionCall","src":"13256:23:101"},{"kind":"number","nativeSrc":"13281:3:101","nodeType":"YulLiteral","src":"13281:3:101","type":"","value":"256"}],"functionName":{"name":"slt","nativeSrc":"13252:3:101","nodeType":"YulIdentifier","src":"13252:3:101"},"nativeSrc":"13252:33:101","nodeType":"YulFunctionCall","src":"13252:33:101"},"nativeSrc":"13249:120:101","nodeType":"YulIf","src":"13249:120:101"},{"nativeSrc":"13379:146:101","nodeType":"YulBlock","src":"13379:146:101","statements":[{"nativeSrc":"13394:15:101","nodeType":"YulVariableDeclaration","src":"13394:15:101","value":{"kind":"number","nativeSrc":"13408:1:101","nodeType":"YulLiteral","src":"13408:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"13398:6:101","nodeType":"YulTypedName","src":"13398:6:101","type":""}]},{"nativeSrc":"13423:92:101","nodeType":"YulAssignment","src":"13423:92:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13487:9:101","nodeType":"YulIdentifier","src":"13487:9:101"},{"name":"offset","nativeSrc":"13498:6:101","nodeType":"YulIdentifier","src":"13498:6:101"}],"functionName":{"name":"add","nativeSrc":"13483:3:101","nodeType":"YulIdentifier","src":"13483:3:101"},"nativeSrc":"13483:22:101","nodeType":"YulFunctionCall","src":"13483:22:101"},{"name":"dataEnd","nativeSrc":"13507:7:101","nodeType":"YulIdentifier","src":"13507:7:101"}],"functionName":{"name":"abi_decode_t_struct$_TokenConfig_$2482_memory_ptr","nativeSrc":"13433:49:101","nodeType":"YulIdentifier","src":"13433:49:101"},"nativeSrc":"13433:82:101","nodeType":"YulFunctionCall","src":"13433:82:101"},"variableNames":[{"name":"value0","nativeSrc":"13423:6:101","nodeType":"YulIdentifier","src":"13423:6:101"}]}]}]},"name":"abi_decode_tuple_t_struct$_TokenConfig_$2482_memory_ptr","nativeSrc":"13144:388:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13209:9:101","nodeType":"YulTypedName","src":"13209:9:101","type":""},{"name":"dataEnd","nativeSrc":"13220:7:101","nodeType":"YulTypedName","src":"13220:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13232:6:101","nodeType":"YulTypedName","src":"13232:6:101","type":""}],"src":"13144:388:101"},{"body":{"nativeSrc":"13630:66:101","nodeType":"YulBlock","src":"13630:66:101","statements":[{"nativeSrc":"13640:50:101","nodeType":"YulAssignment","src":"13640:50:101","value":{"arguments":[{"name":"value","nativeSrc":"13684:5:101","nodeType":"YulIdentifier","src":"13684:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"13653:30:101","nodeType":"YulIdentifier","src":"13653:30:101"},"nativeSrc":"13653:37:101","nodeType":"YulFunctionCall","src":"13653:37:101"},"variableNames":[{"name":"converted","nativeSrc":"13640:9:101","nodeType":"YulIdentifier","src":"13640:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"13538:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13610:5:101","nodeType":"YulTypedName","src":"13610:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"13620:9:101","nodeType":"YulTypedName","src":"13620:9:101","type":""}],"src":"13538:158:101"},{"body":{"nativeSrc":"13799:98:101","nodeType":"YulBlock","src":"13799:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13816:3:101","nodeType":"YulIdentifier","src":"13816:3:101"},{"arguments":[{"name":"value","nativeSrc":"13884:5:101","nodeType":"YulIdentifier","src":"13884:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"13821:62:101","nodeType":"YulIdentifier","src":"13821:62:101"},"nativeSrc":"13821:69:101","nodeType":"YulFunctionCall","src":"13821:69:101"}],"functionName":{"name":"mstore","nativeSrc":"13809:6:101","nodeType":"YulIdentifier","src":"13809:6:101"},"nativeSrc":"13809:82:101","nodeType":"YulFunctionCall","src":"13809:82:101"},"nativeSrc":"13809:82:101","nodeType":"YulExpressionStatement","src":"13809:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"13702:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13787:5:101","nodeType":"YulTypedName","src":"13787:5:101","type":""},{"name":"pos","nativeSrc":"13794:3:101","nodeType":"YulTypedName","src":"13794:3:101","type":""}],"src":"13702:195:101"},{"body":{"nativeSrc":"14033:156:101","nodeType":"YulBlock","src":"14033:156:101","statements":[{"nativeSrc":"14043:26:101","nodeType":"YulAssignment","src":"14043:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14055:9:101","nodeType":"YulIdentifier","src":"14055:9:101"},{"kind":"number","nativeSrc":"14066:2:101","nodeType":"YulLiteral","src":"14066:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14051:3:101","nodeType":"YulIdentifier","src":"14051:3:101"},"nativeSrc":"14051:18:101","nodeType":"YulFunctionCall","src":"14051:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14043:4:101","nodeType":"YulIdentifier","src":"14043:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14155:6:101","nodeType":"YulIdentifier","src":"14155:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14168:9:101","nodeType":"YulIdentifier","src":"14168:9:101"},{"kind":"number","nativeSrc":"14179:1:101","nodeType":"YulLiteral","src":"14179:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14164:3:101","nodeType":"YulIdentifier","src":"14164:3:101"},"nativeSrc":"14164:17:101","nodeType":"YulFunctionCall","src":"14164:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"14079:75:101","nodeType":"YulIdentifier","src":"14079:75:101"},"nativeSrc":"14079:103:101","nodeType":"YulFunctionCall","src":"14079:103:101"},"nativeSrc":"14079:103:101","nodeType":"YulExpressionStatement","src":"14079:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"13903:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14005:9:101","nodeType":"YulTypedName","src":"14005:9:101","type":""},{"name":"value0","nativeSrc":"14017:6:101","nodeType":"YulTypedName","src":"14017:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14028:4:101","nodeType":"YulTypedName","src":"14028:4:101","type":""}],"src":"13903:286:101"},{"body":{"nativeSrc":"14250:53:101","nodeType":"YulBlock","src":"14250:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14267:3:101","nodeType":"YulIdentifier","src":"14267:3:101"},{"arguments":[{"name":"value","nativeSrc":"14290:5:101","nodeType":"YulIdentifier","src":"14290:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"14272:17:101","nodeType":"YulIdentifier","src":"14272:17:101"},"nativeSrc":"14272:24:101","nodeType":"YulFunctionCall","src":"14272:24:101"}],"functionName":{"name":"mstore","nativeSrc":"14260:6:101","nodeType":"YulIdentifier","src":"14260:6:101"},"nativeSrc":"14260:37:101","nodeType":"YulFunctionCall","src":"14260:37:101"},"nativeSrc":"14260:37:101","nodeType":"YulExpressionStatement","src":"14260:37:101"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"14195:108:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14238:5:101","nodeType":"YulTypedName","src":"14238:5:101","type":""},{"name":"pos","nativeSrc":"14245:3:101","nodeType":"YulTypedName","src":"14245:3:101","type":""}],"src":"14195:108:101"},{"body":{"nativeSrc":"14381:32:101","nodeType":"YulBlock","src":"14381:32:101","statements":[{"nativeSrc":"14392:14:101","nodeType":"YulAssignment","src":"14392:14:101","value":{"kind":"number","nativeSrc":"14402:4:101","nodeType":"YulLiteral","src":"14402:4:101","type":"","value":"0x03"},"variableNames":[{"name":"length","nativeSrc":"14392:6:101","nodeType":"YulIdentifier","src":"14392:6:101"}]}]},"name":"array_length_t_array$_t_address_$3_memory_ptr","nativeSrc":"14309:104:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14364:5:101","nodeType":"YulTypedName","src":"14364:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"14374:6:101","nodeType":"YulTypedName","src":"14374:6:101","type":""}],"src":"14309:104:101"},{"body":{"nativeSrc":"14518:34:101","nodeType":"YulBlock","src":"14518:34:101","statements":[{"nativeSrc":"14528:18:101","nodeType":"YulAssignment","src":"14528:18:101","value":{"name":"pos","nativeSrc":"14543:3:101","nodeType":"YulIdentifier","src":"14543:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"14528:11:101","nodeType":"YulIdentifier","src":"14528:11:101"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_address_$3_memory_ptr","nativeSrc":"14419:133:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14490:3:101","nodeType":"YulTypedName","src":"14490:3:101","type":""},{"name":"length","nativeSrc":"14495:6:101","nodeType":"YulTypedName","src":"14495:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14506:11:101","nodeType":"YulTypedName","src":"14506:11:101","type":""}],"src":"14419:133:101"},{"body":{"nativeSrc":"14628:28:101","nodeType":"YulBlock","src":"14628:28:101","statements":[{"nativeSrc":"14638:11:101","nodeType":"YulAssignment","src":"14638:11:101","value":{"name":"ptr","nativeSrc":"14646:3:101","nodeType":"YulIdentifier","src":"14646:3:101"},"variableNames":[{"name":"data","nativeSrc":"14638:4:101","nodeType":"YulIdentifier","src":"14638:4:101"}]}]},"name":"array_dataslot_t_array$_t_address_$3_memory_ptr","nativeSrc":"14558:98:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14615:3:101","nodeType":"YulTypedName","src":"14615:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"14623:4:101","nodeType":"YulTypedName","src":"14623:4:101","type":""}],"src":"14558:98:101"},{"body":{"nativeSrc":"14742:99:101","nodeType":"YulBlock","src":"14742:99:101","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"14786:6:101","nodeType":"YulIdentifier","src":"14786:6:101"},{"name":"pos","nativeSrc":"14794:3:101","nodeType":"YulIdentifier","src":"14794:3:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"14752:33:101","nodeType":"YulIdentifier","src":"14752:33:101"},"nativeSrc":"14752:46:101","nodeType":"YulFunctionCall","src":"14752:46:101"},"nativeSrc":"14752:46:101","nodeType":"YulExpressionStatement","src":"14752:46:101"},{"nativeSrc":"14807:28:101","nodeType":"YulAssignment","src":"14807:28:101","value":{"arguments":[{"name":"pos","nativeSrc":"14825:3:101","nodeType":"YulIdentifier","src":"14825:3:101"},{"kind":"number","nativeSrc":"14830:4:101","nodeType":"YulLiteral","src":"14830:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14821:3:101","nodeType":"YulIdentifier","src":"14821:3:101"},"nativeSrc":"14821:14:101","nodeType":"YulFunctionCall","src":"14821:14:101"},"variableNames":[{"name":"updatedPos","nativeSrc":"14807:10:101","nodeType":"YulIdentifier","src":"14807:10:101"}]}]},"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"14662:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"14715:6:101","nodeType":"YulTypedName","src":"14715:6:101","type":""},{"name":"pos","nativeSrc":"14723:3:101","nodeType":"YulTypedName","src":"14723:3:101","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"14731:10:101","nodeType":"YulTypedName","src":"14731:10:101","type":""}],"src":"14662:179:101"},{"body":{"nativeSrc":"14920:38:101","nodeType":"YulBlock","src":"14920:38:101","statements":[{"nativeSrc":"14930:22:101","nodeType":"YulAssignment","src":"14930:22:101","value":{"arguments":[{"name":"ptr","nativeSrc":"14942:3:101","nodeType":"YulIdentifier","src":"14942:3:101"},{"kind":"number","nativeSrc":"14947:4:101","nodeType":"YulLiteral","src":"14947:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14938:3:101","nodeType":"YulIdentifier","src":"14938:3:101"},"nativeSrc":"14938:14:101","nodeType":"YulFunctionCall","src":"14938:14:101"},"variableNames":[{"name":"next","nativeSrc":"14930:4:101","nodeType":"YulIdentifier","src":"14930:4:101"}]}]},"name":"array_nextElement_t_array$_t_address_$3_memory_ptr","nativeSrc":"14847:111:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14907:3:101","nodeType":"YulTypedName","src":"14907:3:101","type":""}],"returnVariables":[{"name":"next","nativeSrc":"14915:4:101","nodeType":"YulTypedName","src":"14915:4:101","type":""}],"src":"14847:111:101"},{"body":{"nativeSrc":"15098:572:101","nodeType":"YulBlock","src":"15098:572:101","statements":[{"nativeSrc":"15108:66:101","nodeType":"YulVariableDeclaration","src":"15108:66:101","value":{"arguments":[{"name":"value","nativeSrc":"15168:5:101","nodeType":"YulIdentifier","src":"15168:5:101"}],"functionName":{"name":"array_length_t_array$_t_address_$3_memory_ptr","nativeSrc":"15122:45:101","nodeType":"YulIdentifier","src":"15122:45:101"},"nativeSrc":"15122:52:101","nodeType":"YulFunctionCall","src":"15122:52:101"},"variables":[{"name":"length","nativeSrc":"15112:6:101","nodeType":"YulTypedName","src":"15112:6:101","type":""}]},{"nativeSrc":"15183:81:101","nodeType":"YulAssignment","src":"15183:81:101","value":{"arguments":[{"name":"pos","nativeSrc":"15252:3:101","nodeType":"YulIdentifier","src":"15252:3:101"},{"name":"length","nativeSrc":"15257:6:101","nodeType":"YulIdentifier","src":"15257:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_address_$3_memory_ptr","nativeSrc":"15190:61:101","nodeType":"YulIdentifier","src":"15190:61:101"},"nativeSrc":"15190:74:101","nodeType":"YulFunctionCall","src":"15190:74:101"},"variableNames":[{"name":"pos","nativeSrc":"15183:3:101","nodeType":"YulIdentifier","src":"15183:3:101"}]},{"nativeSrc":"15273:69:101","nodeType":"YulVariableDeclaration","src":"15273:69:101","value":{"arguments":[{"name":"value","nativeSrc":"15336:5:101","nodeType":"YulIdentifier","src":"15336:5:101"}],"functionName":{"name":"array_dataslot_t_array$_t_address_$3_memory_ptr","nativeSrc":"15288:47:101","nodeType":"YulIdentifier","src":"15288:47:101"},"nativeSrc":"15288:54:101","nodeType":"YulFunctionCall","src":"15288:54:101"},"variables":[{"name":"baseRef","nativeSrc":"15277:7:101","nodeType":"YulTypedName","src":"15277:7:101","type":""}]},{"nativeSrc":"15351:21:101","nodeType":"YulVariableDeclaration","src":"15351:21:101","value":{"name":"baseRef","nativeSrc":"15365:7:101","nodeType":"YulIdentifier","src":"15365:7:101"},"variables":[{"name":"srcPtr","nativeSrc":"15355:6:101","nodeType":"YulTypedName","src":"15355:6:101","type":""}]},{"body":{"nativeSrc":"15441:222:101","nodeType":"YulBlock","src":"15441:222:101","statements":[{"nativeSrc":"15455:34:101","nodeType":"YulVariableDeclaration","src":"15455:34:101","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15482:6:101","nodeType":"YulIdentifier","src":"15482:6:101"}],"functionName":{"name":"mload","nativeSrc":"15476:5:101","nodeType":"YulIdentifier","src":"15476:5:101"},"nativeSrc":"15476:13:101","nodeType":"YulFunctionCall","src":"15476:13:101"},"variables":[{"name":"elementValue0","nativeSrc":"15459:13:101","nodeType":"YulTypedName","src":"15459:13:101","type":""}]},{"nativeSrc":"15502:70:101","nodeType":"YulAssignment","src":"15502:70:101","value":{"arguments":[{"name":"elementValue0","nativeSrc":"15553:13:101","nodeType":"YulIdentifier","src":"15553:13:101"},{"name":"pos","nativeSrc":"15568:3:101","nodeType":"YulIdentifier","src":"15568:3:101"}],"functionName":{"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"15509:43:101","nodeType":"YulIdentifier","src":"15509:43:101"},"nativeSrc":"15509:63:101","nodeType":"YulFunctionCall","src":"15509:63:101"},"variableNames":[{"name":"pos","nativeSrc":"15502:3:101","nodeType":"YulIdentifier","src":"15502:3:101"}]},{"nativeSrc":"15585:68:101","nodeType":"YulAssignment","src":"15585:68:101","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15646:6:101","nodeType":"YulIdentifier","src":"15646:6:101"}],"functionName":{"name":"array_nextElement_t_array$_t_address_$3_memory_ptr","nativeSrc":"15595:50:101","nodeType":"YulIdentifier","src":"15595:50:101"},"nativeSrc":"15595:58:101","nodeType":"YulFunctionCall","src":"15595:58:101"},"variableNames":[{"name":"srcPtr","nativeSrc":"15585:6:101","nodeType":"YulIdentifier","src":"15585:6:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15403:1:101","nodeType":"YulIdentifier","src":"15403:1:101"},{"name":"length","nativeSrc":"15406:6:101","nodeType":"YulIdentifier","src":"15406:6:101"}],"functionName":{"name":"lt","nativeSrc":"15400:2:101","nodeType":"YulIdentifier","src":"15400:2:101"},"nativeSrc":"15400:13:101","nodeType":"YulFunctionCall","src":"15400:13:101"},"nativeSrc":"15381:282:101","nodeType":"YulForLoop","post":{"nativeSrc":"15414:18:101","nodeType":"YulBlock","src":"15414:18:101","statements":[{"nativeSrc":"15416:14:101","nodeType":"YulAssignment","src":"15416:14:101","value":{"arguments":[{"name":"i","nativeSrc":"15425:1:101","nodeType":"YulIdentifier","src":"15425:1:101"},{"kind":"number","nativeSrc":"15428:1:101","nodeType":"YulLiteral","src":"15428:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15421:3:101","nodeType":"YulIdentifier","src":"15421:3:101"},"nativeSrc":"15421:9:101","nodeType":"YulFunctionCall","src":"15421:9:101"},"variableNames":[{"name":"i","nativeSrc":"15416:1:101","nodeType":"YulIdentifier","src":"15416:1:101"}]}]},"pre":{"nativeSrc":"15385:14:101","nodeType":"YulBlock","src":"15385:14:101","statements":[{"nativeSrc":"15387:10:101","nodeType":"YulVariableDeclaration","src":"15387:10:101","value":{"kind":"number","nativeSrc":"15396:1:101","nodeType":"YulLiteral","src":"15396:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15391:1:101","nodeType":"YulTypedName","src":"15391:1:101","type":""}]}]},"src":"15381:282:101"}]},"name":"abi_encode_t_array$_t_address_$3_memory_ptr_to_t_array$_t_address_$3_memory_ptr","nativeSrc":"14996:674:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15085:5:101","nodeType":"YulTypedName","src":"15085:5:101","type":""},{"name":"pos","nativeSrc":"15092:3:101","nodeType":"YulTypedName","src":"15092:3:101","type":""}],"src":"14996:674:101"},{"body":{"nativeSrc":"15745:32:101","nodeType":"YulBlock","src":"15745:32:101","statements":[{"nativeSrc":"15756:14:101","nodeType":"YulAssignment","src":"15756:14:101","value":{"kind":"number","nativeSrc":"15766:4:101","nodeType":"YulLiteral","src":"15766:4:101","type":"","value":"0x03"},"variableNames":[{"name":"length","nativeSrc":"15756:6:101","nodeType":"YulIdentifier","src":"15756:6:101"}]}]},"name":"array_length_t_array$_t_bool_$3_memory_ptr","nativeSrc":"15676:101:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15728:5:101","nodeType":"YulTypedName","src":"15728:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15738:6:101","nodeType":"YulTypedName","src":"15738:6:101","type":""}],"src":"15676:101:101"},{"body":{"nativeSrc":"15879:34:101","nodeType":"YulBlock","src":"15879:34:101","statements":[{"nativeSrc":"15889:18:101","nodeType":"YulAssignment","src":"15889:18:101","value":{"name":"pos","nativeSrc":"15904:3:101","nodeType":"YulIdentifier","src":"15904:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"15889:11:101","nodeType":"YulIdentifier","src":"15889:11:101"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bool_$3_memory_ptr","nativeSrc":"15783:130:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15851:3:101","nodeType":"YulTypedName","src":"15851:3:101","type":""},{"name":"length","nativeSrc":"15856:6:101","nodeType":"YulTypedName","src":"15856:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"15867:11:101","nodeType":"YulTypedName","src":"15867:11:101","type":""}],"src":"15783:130:101"},{"body":{"nativeSrc":"15986:28:101","nodeType":"YulBlock","src":"15986:28:101","statements":[{"nativeSrc":"15996:11:101","nodeType":"YulAssignment","src":"15996:11:101","value":{"name":"ptr","nativeSrc":"16004:3:101","nodeType":"YulIdentifier","src":"16004:3:101"},"variableNames":[{"name":"data","nativeSrc":"15996:4:101","nodeType":"YulIdentifier","src":"15996:4:101"}]}]},"name":"array_dataslot_t_array$_t_bool_$3_memory_ptr","nativeSrc":"15919:95:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"15973:3:101","nodeType":"YulTypedName","src":"15973:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"15981:4:101","nodeType":"YulTypedName","src":"15981:4:101","type":""}],"src":"15919:95:101"},{"body":{"nativeSrc":"16069:50:101","nodeType":"YulBlock","src":"16069:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16086:3:101","nodeType":"YulIdentifier","src":"16086:3:101"},{"arguments":[{"name":"value","nativeSrc":"16106:5:101","nodeType":"YulIdentifier","src":"16106:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"16091:14:101","nodeType":"YulIdentifier","src":"16091:14:101"},"nativeSrc":"16091:21:101","nodeType":"YulFunctionCall","src":"16091:21:101"}],"functionName":{"name":"mstore","nativeSrc":"16079:6:101","nodeType":"YulIdentifier","src":"16079:6:101"},"nativeSrc":"16079:34:101","nodeType":"YulFunctionCall","src":"16079:34:101"},"nativeSrc":"16079:34:101","nodeType":"YulExpressionStatement","src":"16079:34:101"}]},"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"16020:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16057:5:101","nodeType":"YulTypedName","src":"16057:5:101","type":""},{"name":"pos","nativeSrc":"16064:3:101","nodeType":"YulTypedName","src":"16064:3:101","type":""}],"src":"16020:99:101"},{"body":{"nativeSrc":"16199:93:101","nodeType":"YulBlock","src":"16199:93:101","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"16237:6:101","nodeType":"YulIdentifier","src":"16237:6:101"},{"name":"pos","nativeSrc":"16245:3:101","nodeType":"YulIdentifier","src":"16245:3:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"16209:27:101","nodeType":"YulIdentifier","src":"16209:27:101"},"nativeSrc":"16209:40:101","nodeType":"YulFunctionCall","src":"16209:40:101"},"nativeSrc":"16209:40:101","nodeType":"YulExpressionStatement","src":"16209:40:101"},{"nativeSrc":"16258:28:101","nodeType":"YulAssignment","src":"16258:28:101","value":{"arguments":[{"name":"pos","nativeSrc":"16276:3:101","nodeType":"YulIdentifier","src":"16276:3:101"},{"kind":"number","nativeSrc":"16281:4:101","nodeType":"YulLiteral","src":"16281:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16272:3:101","nodeType":"YulIdentifier","src":"16272:3:101"},"nativeSrc":"16272:14:101","nodeType":"YulFunctionCall","src":"16272:14:101"},"variableNames":[{"name":"updatedPos","nativeSrc":"16258:10:101","nodeType":"YulIdentifier","src":"16258:10:101"}]}]},"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"16125:167:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"16172:6:101","nodeType":"YulTypedName","src":"16172:6:101","type":""},{"name":"pos","nativeSrc":"16180:3:101","nodeType":"YulTypedName","src":"16180:3:101","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"16188:10:101","nodeType":"YulTypedName","src":"16188:10:101","type":""}],"src":"16125:167:101"},{"body":{"nativeSrc":"16368:38:101","nodeType":"YulBlock","src":"16368:38:101","statements":[{"nativeSrc":"16378:22:101","nodeType":"YulAssignment","src":"16378:22:101","value":{"arguments":[{"name":"ptr","nativeSrc":"16390:3:101","nodeType":"YulIdentifier","src":"16390:3:101"},{"kind":"number","nativeSrc":"16395:4:101","nodeType":"YulLiteral","src":"16395:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16386:3:101","nodeType":"YulIdentifier","src":"16386:3:101"},"nativeSrc":"16386:14:101","nodeType":"YulFunctionCall","src":"16386:14:101"},"variableNames":[{"name":"next","nativeSrc":"16378:4:101","nodeType":"YulIdentifier","src":"16378:4:101"}]}]},"name":"array_nextElement_t_array$_t_bool_$3_memory_ptr","nativeSrc":"16298:108:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"16355:3:101","nodeType":"YulTypedName","src":"16355:3:101","type":""}],"returnVariables":[{"name":"next","nativeSrc":"16363:4:101","nodeType":"YulTypedName","src":"16363:4:101","type":""}],"src":"16298:108:101"},{"body":{"nativeSrc":"16534:554:101","nodeType":"YulBlock","src":"16534:554:101","statements":[{"nativeSrc":"16544:63:101","nodeType":"YulVariableDeclaration","src":"16544:63:101","value":{"arguments":[{"name":"value","nativeSrc":"16601:5:101","nodeType":"YulIdentifier","src":"16601:5:101"}],"functionName":{"name":"array_length_t_array$_t_bool_$3_memory_ptr","nativeSrc":"16558:42:101","nodeType":"YulIdentifier","src":"16558:42:101"},"nativeSrc":"16558:49:101","nodeType":"YulFunctionCall","src":"16558:49:101"},"variables":[{"name":"length","nativeSrc":"16548:6:101","nodeType":"YulTypedName","src":"16548:6:101","type":""}]},{"nativeSrc":"16616:78:101","nodeType":"YulAssignment","src":"16616:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"16682:3:101","nodeType":"YulIdentifier","src":"16682:3:101"},{"name":"length","nativeSrc":"16687:6:101","nodeType":"YulIdentifier","src":"16687:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bool_$3_memory_ptr","nativeSrc":"16623:58:101","nodeType":"YulIdentifier","src":"16623:58:101"},"nativeSrc":"16623:71:101","nodeType":"YulFunctionCall","src":"16623:71:101"},"variableNames":[{"name":"pos","nativeSrc":"16616:3:101","nodeType":"YulIdentifier","src":"16616:3:101"}]},{"nativeSrc":"16703:66:101","nodeType":"YulVariableDeclaration","src":"16703:66:101","value":{"arguments":[{"name":"value","nativeSrc":"16763:5:101","nodeType":"YulIdentifier","src":"16763:5:101"}],"functionName":{"name":"array_dataslot_t_array$_t_bool_$3_memory_ptr","nativeSrc":"16718:44:101","nodeType":"YulIdentifier","src":"16718:44:101"},"nativeSrc":"16718:51:101","nodeType":"YulFunctionCall","src":"16718:51:101"},"variables":[{"name":"baseRef","nativeSrc":"16707:7:101","nodeType":"YulTypedName","src":"16707:7:101","type":""}]},{"nativeSrc":"16778:21:101","nodeType":"YulVariableDeclaration","src":"16778:21:101","value":{"name":"baseRef","nativeSrc":"16792:7:101","nodeType":"YulIdentifier","src":"16792:7:101"},"variables":[{"name":"srcPtr","nativeSrc":"16782:6:101","nodeType":"YulTypedName","src":"16782:6:101","type":""}]},{"body":{"nativeSrc":"16868:213:101","nodeType":"YulBlock","src":"16868:213:101","statements":[{"nativeSrc":"16882:34:101","nodeType":"YulVariableDeclaration","src":"16882:34:101","value":{"arguments":[{"name":"srcPtr","nativeSrc":"16909:6:101","nodeType":"YulIdentifier","src":"16909:6:101"}],"functionName":{"name":"mload","nativeSrc":"16903:5:101","nodeType":"YulIdentifier","src":"16903:5:101"},"nativeSrc":"16903:13:101","nodeType":"YulFunctionCall","src":"16903:13:101"},"variables":[{"name":"elementValue0","nativeSrc":"16886:13:101","nodeType":"YulTypedName","src":"16886:13:101","type":""}]},{"nativeSrc":"16929:64:101","nodeType":"YulAssignment","src":"16929:64:101","value":{"arguments":[{"name":"elementValue0","nativeSrc":"16974:13:101","nodeType":"YulIdentifier","src":"16974:13:101"},{"name":"pos","nativeSrc":"16989:3:101","nodeType":"YulIdentifier","src":"16989:3:101"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"16936:37:101","nodeType":"YulIdentifier","src":"16936:37:101"},"nativeSrc":"16936:57:101","nodeType":"YulFunctionCall","src":"16936:57:101"},"variableNames":[{"name":"pos","nativeSrc":"16929:3:101","nodeType":"YulIdentifier","src":"16929:3:101"}]},{"nativeSrc":"17006:65:101","nodeType":"YulAssignment","src":"17006:65:101","value":{"arguments":[{"name":"srcPtr","nativeSrc":"17064:6:101","nodeType":"YulIdentifier","src":"17064:6:101"}],"functionName":{"name":"array_nextElement_t_array$_t_bool_$3_memory_ptr","nativeSrc":"17016:47:101","nodeType":"YulIdentifier","src":"17016:47:101"},"nativeSrc":"17016:55:101","nodeType":"YulFunctionCall","src":"17016:55:101"},"variableNames":[{"name":"srcPtr","nativeSrc":"17006:6:101","nodeType":"YulIdentifier","src":"17006:6:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"16830:1:101","nodeType":"YulIdentifier","src":"16830:1:101"},{"name":"length","nativeSrc":"16833:6:101","nodeType":"YulIdentifier","src":"16833:6:101"}],"functionName":{"name":"lt","nativeSrc":"16827:2:101","nodeType":"YulIdentifier","src":"16827:2:101"},"nativeSrc":"16827:13:101","nodeType":"YulFunctionCall","src":"16827:13:101"},"nativeSrc":"16808:273:101","nodeType":"YulForLoop","post":{"nativeSrc":"16841:18:101","nodeType":"YulBlock","src":"16841:18:101","statements":[{"nativeSrc":"16843:14:101","nodeType":"YulAssignment","src":"16843:14:101","value":{"arguments":[{"name":"i","nativeSrc":"16852:1:101","nodeType":"YulIdentifier","src":"16852:1:101"},{"kind":"number","nativeSrc":"16855:1:101","nodeType":"YulLiteral","src":"16855:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16848:3:101","nodeType":"YulIdentifier","src":"16848:3:101"},"nativeSrc":"16848:9:101","nodeType":"YulFunctionCall","src":"16848:9:101"},"variableNames":[{"name":"i","nativeSrc":"16843:1:101","nodeType":"YulIdentifier","src":"16843:1:101"}]}]},"pre":{"nativeSrc":"16812:14:101","nodeType":"YulBlock","src":"16812:14:101","statements":[{"nativeSrc":"16814:10:101","nodeType":"YulVariableDeclaration","src":"16814:10:101","value":{"kind":"number","nativeSrc":"16823:1:101","nodeType":"YulLiteral","src":"16823:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"16818:1:101","nodeType":"YulTypedName","src":"16818:1:101","type":""}]}]},"src":"16808:273:101"}]},"name":"abi_encode_t_array$_t_bool_$3_memory_ptr_to_t_array$_t_bool_$3_memory_ptr","nativeSrc":"16438:650:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16521:5:101","nodeType":"YulTypedName","src":"16521:5:101","type":""},{"name":"pos","nativeSrc":"16528:3:101","nodeType":"YulTypedName","src":"16528:3:101","type":""}],"src":"16438:650:101"},{"body":{"nativeSrc":"17298:852:101","nodeType":"YulBlock","src":"17298:852:101","statements":[{"nativeSrc":"17308:28:101","nodeType":"YulVariableDeclaration","src":"17308:28:101","value":{"arguments":[{"name":"pos","nativeSrc":"17324:3:101","nodeType":"YulIdentifier","src":"17324:3:101"},{"kind":"number","nativeSrc":"17329:6:101","nodeType":"YulLiteral","src":"17329:6:101","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"17320:3:101","nodeType":"YulIdentifier","src":"17320:3:101"},"nativeSrc":"17320:16:101","nodeType":"YulFunctionCall","src":"17320:16:101"},"variables":[{"name":"tail","nativeSrc":"17312:4:101","nodeType":"YulTypedName","src":"17312:4:101","type":""}]},{"nativeSrc":"17346:165:101","nodeType":"YulBlock","src":"17346:165:101","statements":[{"nativeSrc":"17382:43:101","nodeType":"YulVariableDeclaration","src":"17382:43:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17412:5:101","nodeType":"YulIdentifier","src":"17412:5:101"},{"kind":"number","nativeSrc":"17419:4:101","nodeType":"YulLiteral","src":"17419:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"17408:3:101","nodeType":"YulIdentifier","src":"17408:3:101"},"nativeSrc":"17408:16:101","nodeType":"YulFunctionCall","src":"17408:16:101"}],"functionName":{"name":"mload","nativeSrc":"17402:5:101","nodeType":"YulIdentifier","src":"17402:5:101"},"nativeSrc":"17402:23:101","nodeType":"YulFunctionCall","src":"17402:23:101"},"variables":[{"name":"memberValue0","nativeSrc":"17386:12:101","nodeType":"YulTypedName","src":"17386:12:101","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17472:12:101","nodeType":"YulIdentifier","src":"17472:12:101"},{"arguments":[{"name":"pos","nativeSrc":"17490:3:101","nodeType":"YulIdentifier","src":"17490:3:101"},{"kind":"number","nativeSrc":"17495:4:101","nodeType":"YulLiteral","src":"17495:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"17486:3:101","nodeType":"YulIdentifier","src":"17486:3:101"},"nativeSrc":"17486:14:101","nodeType":"YulFunctionCall","src":"17486:14:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"17438:33:101","nodeType":"YulIdentifier","src":"17438:33:101"},"nativeSrc":"17438:63:101","nodeType":"YulFunctionCall","src":"17438:63:101"},"nativeSrc":"17438:63:101","nodeType":"YulExpressionStatement","src":"17438:63:101"}]},{"nativeSrc":"17521:213:101","nodeType":"YulBlock","src":"17521:213:101","statements":[{"nativeSrc":"17559:43:101","nodeType":"YulVariableDeclaration","src":"17559:43:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17589:5:101","nodeType":"YulIdentifier","src":"17589:5:101"},{"kind":"number","nativeSrc":"17596:4:101","nodeType":"YulLiteral","src":"17596:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17585:3:101","nodeType":"YulIdentifier","src":"17585:3:101"},"nativeSrc":"17585:16:101","nodeType":"YulFunctionCall","src":"17585:16:101"}],"functionName":{"name":"mload","nativeSrc":"17579:5:101","nodeType":"YulIdentifier","src":"17579:5:101"},"nativeSrc":"17579:23:101","nodeType":"YulFunctionCall","src":"17579:23:101"},"variables":[{"name":"memberValue0","nativeSrc":"17563:12:101","nodeType":"YulTypedName","src":"17563:12:101","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17695:12:101","nodeType":"YulIdentifier","src":"17695:12:101"},{"arguments":[{"name":"pos","nativeSrc":"17713:3:101","nodeType":"YulIdentifier","src":"17713:3:101"},{"kind":"number","nativeSrc":"17718:4:101","nodeType":"YulLiteral","src":"17718:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17709:3:101","nodeType":"YulIdentifier","src":"17709:3:101"},"nativeSrc":"17709:14:101","nodeType":"YulFunctionCall","src":"17709:14:101"}],"functionName":{"name":"abi_encode_t_array$_t_address_$3_memory_ptr_to_t_array$_t_address_$3_memory_ptr","nativeSrc":"17615:79:101","nodeType":"YulIdentifier","src":"17615:79:101"},"nativeSrc":"17615:109:101","nodeType":"YulFunctionCall","src":"17615:109:101"},"nativeSrc":"17615:109:101","nodeType":"YulExpressionStatement","src":"17615:109:101"}]},{"nativeSrc":"17744:221:101","nodeType":"YulBlock","src":"17744:221:101","statements":[{"nativeSrc":"17796:43:101","nodeType":"YulVariableDeclaration","src":"17796:43:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17826:5:101","nodeType":"YulIdentifier","src":"17826:5:101"},{"kind":"number","nativeSrc":"17833:4:101","nodeType":"YulLiteral","src":"17833:4:101","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17822:3:101","nodeType":"YulIdentifier","src":"17822:3:101"},"nativeSrc":"17822:16:101","nodeType":"YulFunctionCall","src":"17822:16:101"}],"functionName":{"name":"mload","nativeSrc":"17816:5:101","nodeType":"YulIdentifier","src":"17816:5:101"},"nativeSrc":"17816:23:101","nodeType":"YulFunctionCall","src":"17816:23:101"},"variables":[{"name":"memberValue0","nativeSrc":"17800:12:101","nodeType":"YulTypedName","src":"17800:12:101","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17926:12:101","nodeType":"YulIdentifier","src":"17926:12:101"},{"arguments":[{"name":"pos","nativeSrc":"17944:3:101","nodeType":"YulIdentifier","src":"17944:3:101"},{"kind":"number","nativeSrc":"17949:4:101","nodeType":"YulLiteral","src":"17949:4:101","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"17940:3:101","nodeType":"YulIdentifier","src":"17940:3:101"},"nativeSrc":"17940:14:101","nodeType":"YulFunctionCall","src":"17940:14:101"}],"functionName":{"name":"abi_encode_t_array$_t_bool_$3_memory_ptr_to_t_array$_t_bool_$3_memory_ptr","nativeSrc":"17852:73:101","nodeType":"YulIdentifier","src":"17852:73:101"},"nativeSrc":"17852:103:101","nodeType":"YulFunctionCall","src":"17852:103:101"},"nativeSrc":"17852:103:101","nodeType":"YulExpressionStatement","src":"17852:103:101"}]},{"nativeSrc":"17975:168:101","nodeType":"YulBlock","src":"17975:168:101","statements":[{"nativeSrc":"18020:43:101","nodeType":"YulVariableDeclaration","src":"18020:43:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18050:5:101","nodeType":"YulIdentifier","src":"18050:5:101"},{"kind":"number","nativeSrc":"18057:4:101","nodeType":"YulLiteral","src":"18057:4:101","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"18046:3:101","nodeType":"YulIdentifier","src":"18046:3:101"},"nativeSrc":"18046:16:101","nodeType":"YulFunctionCall","src":"18046:16:101"}],"functionName":{"name":"mload","nativeSrc":"18040:5:101","nodeType":"YulIdentifier","src":"18040:5:101"},"nativeSrc":"18040:23:101","nodeType":"YulFunctionCall","src":"18040:23:101"},"variables":[{"name":"memberValue0","nativeSrc":"18024:12:101","nodeType":"YulTypedName","src":"18024:12:101","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"18104:12:101","nodeType":"YulIdentifier","src":"18104:12:101"},{"arguments":[{"name":"pos","nativeSrc":"18122:3:101","nodeType":"YulIdentifier","src":"18122:3:101"},{"kind":"number","nativeSrc":"18127:4:101","nodeType":"YulLiteral","src":"18127:4:101","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"18118:3:101","nodeType":"YulIdentifier","src":"18118:3:101"},"nativeSrc":"18118:14:101","nodeType":"YulFunctionCall","src":"18118:14:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"18076:27:101","nodeType":"YulIdentifier","src":"18076:27:101"},"nativeSrc":"18076:57:101","nodeType":"YulFunctionCall","src":"18076:57:101"},"nativeSrc":"18076:57:101","nodeType":"YulExpressionStatement","src":"18076:57:101"}]}]},"name":"abi_encode_t_struct$_TokenConfig_$2482_memory_ptr_to_t_struct$_TokenConfig_$2482_memory_ptr_fromStack","nativeSrc":"17174:976:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17285:5:101","nodeType":"YulTypedName","src":"17285:5:101","type":""},{"name":"pos","nativeSrc":"17292:3:101","nodeType":"YulTypedName","src":"17292:3:101","type":""}],"src":"17174:976:101"},{"body":{"nativeSrc":"18312:183:101","nodeType":"YulBlock","src":"18312:183:101","statements":[{"nativeSrc":"18322:27:101","nodeType":"YulAssignment","src":"18322:27:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18334:9:101","nodeType":"YulIdentifier","src":"18334:9:101"},{"kind":"number","nativeSrc":"18345:3:101","nodeType":"YulLiteral","src":"18345:3:101","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"18330:3:101","nodeType":"YulIdentifier","src":"18330:3:101"},"nativeSrc":"18330:19:101","nodeType":"YulFunctionCall","src":"18330:19:101"},"variableNames":[{"name":"tail","nativeSrc":"18322:4:101","nodeType":"YulIdentifier","src":"18322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18461:6:101","nodeType":"YulIdentifier","src":"18461:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"18474:9:101","nodeType":"YulIdentifier","src":"18474:9:101"},{"kind":"number","nativeSrc":"18485:1:101","nodeType":"YulLiteral","src":"18485:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18470:3:101","nodeType":"YulIdentifier","src":"18470:3:101"},"nativeSrc":"18470:17:101","nodeType":"YulFunctionCall","src":"18470:17:101"}],"functionName":{"name":"abi_encode_t_struct$_TokenConfig_$2482_memory_ptr_to_t_struct$_TokenConfig_$2482_memory_ptr_fromStack","nativeSrc":"18359:101:101","nodeType":"YulIdentifier","src":"18359:101:101"},"nativeSrc":"18359:129:101","nodeType":"YulFunctionCall","src":"18359:129:101"},"nativeSrc":"18359:129:101","nodeType":"YulExpressionStatement","src":"18359:129:101"}]},"name":"abi_encode_tuple_t_struct$_TokenConfig_$2482_memory_ptr__to_t_struct$_TokenConfig_$2482_memory_ptr__fromStack_reversed","nativeSrc":"18156:339:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18284:9:101","nodeType":"YulTypedName","src":"18284:9:101","type":""},{"name":"value0","nativeSrc":"18296:6:101","nodeType":"YulTypedName","src":"18296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18307:4:101","nodeType":"YulTypedName","src":"18307:4:101","type":""}],"src":"18156:339:101"},{"body":{"nativeSrc":"18546:32:101","nodeType":"YulBlock","src":"18546:32:101","statements":[{"nativeSrc":"18556:16:101","nodeType":"YulAssignment","src":"18556:16:101","value":{"name":"value","nativeSrc":"18567:5:101","nodeType":"YulIdentifier","src":"18567:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"18556:7:101","nodeType":"YulIdentifier","src":"18556:7:101"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"18501:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18528:5:101","nodeType":"YulTypedName","src":"18528:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"18538:7:101","nodeType":"YulTypedName","src":"18538:7:101","type":""}],"src":"18501:77:101"},{"body":{"nativeSrc":"18649:53:101","nodeType":"YulBlock","src":"18649:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18666:3:101","nodeType":"YulIdentifier","src":"18666:3:101"},{"arguments":[{"name":"value","nativeSrc":"18689:5:101","nodeType":"YulIdentifier","src":"18689:5:101"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"18671:17:101","nodeType":"YulIdentifier","src":"18671:17:101"},"nativeSrc":"18671:24:101","nodeType":"YulFunctionCall","src":"18671:24:101"}],"functionName":{"name":"mstore","nativeSrc":"18659:6:101","nodeType":"YulIdentifier","src":"18659:6:101"},"nativeSrc":"18659:37:101","nodeType":"YulFunctionCall","src":"18659:37:101"},"nativeSrc":"18659:37:101","nodeType":"YulExpressionStatement","src":"18659:37:101"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"18584:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18637:5:101","nodeType":"YulTypedName","src":"18637:5:101","type":""},{"name":"pos","nativeSrc":"18644:3:101","nodeType":"YulTypedName","src":"18644:3:101","type":""}],"src":"18584:118:101"},{"body":{"nativeSrc":"18806:124:101","nodeType":"YulBlock","src":"18806:124:101","statements":[{"nativeSrc":"18816:26:101","nodeType":"YulAssignment","src":"18816:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18828:9:101","nodeType":"YulIdentifier","src":"18828:9:101"},{"kind":"number","nativeSrc":"18839:2:101","nodeType":"YulLiteral","src":"18839:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18824:3:101","nodeType":"YulIdentifier","src":"18824:3:101"},"nativeSrc":"18824:18:101","nodeType":"YulFunctionCall","src":"18824:18:101"},"variableNames":[{"name":"tail","nativeSrc":"18816:4:101","nodeType":"YulIdentifier","src":"18816:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18896:6:101","nodeType":"YulIdentifier","src":"18896:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"18909:9:101","nodeType":"YulIdentifier","src":"18909:9:101"},{"kind":"number","nativeSrc":"18920:1:101","nodeType":"YulLiteral","src":"18920:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18905:3:101","nodeType":"YulIdentifier","src":"18905:3:101"},"nativeSrc":"18905:17:101","nodeType":"YulFunctionCall","src":"18905:17:101"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"18852:43:101","nodeType":"YulIdentifier","src":"18852:43:101"},"nativeSrc":"18852:71:101","nodeType":"YulFunctionCall","src":"18852:71:101"},"nativeSrc":"18852:71:101","nodeType":"YulExpressionStatement","src":"18852:71:101"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"18708:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18778:9:101","nodeType":"YulTypedName","src":"18778:9:101","type":""},{"name":"value0","nativeSrc":"18790:6:101","nodeType":"YulTypedName","src":"18790:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18801:4:101","nodeType":"YulTypedName","src":"18801:4:101","type":""}],"src":"18708:222:101"},{"body":{"nativeSrc":"19032:73:101","nodeType":"YulBlock","src":"19032:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"19049:3:101","nodeType":"YulIdentifier","src":"19049:3:101"},{"name":"length","nativeSrc":"19054:6:101","nodeType":"YulIdentifier","src":"19054:6:101"}],"functionName":{"name":"mstore","nativeSrc":"19042:6:101","nodeType":"YulIdentifier","src":"19042:6:101"},"nativeSrc":"19042:19:101","nodeType":"YulFunctionCall","src":"19042:19:101"},"nativeSrc":"19042:19:101","nodeType":"YulExpressionStatement","src":"19042:19:101"},{"nativeSrc":"19070:29:101","nodeType":"YulAssignment","src":"19070:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"19089:3:101","nodeType":"YulIdentifier","src":"19089:3:101"},{"kind":"number","nativeSrc":"19094:4:101","nodeType":"YulLiteral","src":"19094:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19085:3:101","nodeType":"YulIdentifier","src":"19085:3:101"},"nativeSrc":"19085:14:101","nodeType":"YulFunctionCall","src":"19085:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"19070:11:101","nodeType":"YulIdentifier","src":"19070:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"18936:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19004:3:101","nodeType":"YulTypedName","src":"19004:3:101","type":""},{"name":"length","nativeSrc":"19009:6:101","nodeType":"YulTypedName","src":"19009:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"19020:11:101","nodeType":"YulTypedName","src":"19020:11:101","type":""}],"src":"18936:169:101"},{"body":{"nativeSrc":"19217:70:101","nodeType":"YulBlock","src":"19217:70:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19239:6:101","nodeType":"YulIdentifier","src":"19239:6:101"},{"kind":"number","nativeSrc":"19247:1:101","nodeType":"YulLiteral","src":"19247:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19235:3:101","nodeType":"YulIdentifier","src":"19235:3:101"},"nativeSrc":"19235:14:101","nodeType":"YulFunctionCall","src":"19235:14:101"},{"hexValue":"726573696c69656e74206f7261636c6520697320706175736564","kind":"string","nativeSrc":"19251:28:101","nodeType":"YulLiteral","src":"19251:28:101","type":"","value":"resilient oracle is paused"}],"functionName":{"name":"mstore","nativeSrc":"19228:6:101","nodeType":"YulIdentifier","src":"19228:6:101"},"nativeSrc":"19228:52:101","nodeType":"YulFunctionCall","src":"19228:52:101"},"nativeSrc":"19228:52:101","nodeType":"YulExpressionStatement","src":"19228:52:101"}]},"name":"store_literal_in_memory_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee","nativeSrc":"19111:176:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19209:6:101","nodeType":"YulTypedName","src":"19209:6:101","type":""}],"src":"19111:176:101"},{"body":{"nativeSrc":"19439:220:101","nodeType":"YulBlock","src":"19439:220:101","statements":[{"nativeSrc":"19449:74:101","nodeType":"YulAssignment","src":"19449:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"19515:3:101","nodeType":"YulIdentifier","src":"19515:3:101"},{"kind":"number","nativeSrc":"19520:2:101","nodeType":"YulLiteral","src":"19520:2:101","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19456:58:101","nodeType":"YulIdentifier","src":"19456:58:101"},"nativeSrc":"19456:67:101","nodeType":"YulFunctionCall","src":"19456:67:101"},"variableNames":[{"name":"pos","nativeSrc":"19449:3:101","nodeType":"YulIdentifier","src":"19449:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19621:3:101","nodeType":"YulIdentifier","src":"19621:3:101"}],"functionName":{"name":"store_literal_in_memory_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee","nativeSrc":"19532:88:101","nodeType":"YulIdentifier","src":"19532:88:101"},"nativeSrc":"19532:93:101","nodeType":"YulFunctionCall","src":"19532:93:101"},"nativeSrc":"19532:93:101","nodeType":"YulExpressionStatement","src":"19532:93:101"},{"nativeSrc":"19634:19:101","nodeType":"YulAssignment","src":"19634:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"19645:3:101","nodeType":"YulIdentifier","src":"19645:3:101"},{"kind":"number","nativeSrc":"19650:2:101","nodeType":"YulLiteral","src":"19650:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19641:3:101","nodeType":"YulIdentifier","src":"19641:3:101"},"nativeSrc":"19641:12:101","nodeType":"YulFunctionCall","src":"19641:12:101"},"variableNames":[{"name":"end","nativeSrc":"19634:3:101","nodeType":"YulIdentifier","src":"19634:3:101"}]}]},"name":"abi_encode_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee_to_t_string_memory_ptr_fromStack","nativeSrc":"19293:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19427:3:101","nodeType":"YulTypedName","src":"19427:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19435:3:101","nodeType":"YulTypedName","src":"19435:3:101","type":""}],"src":"19293:366:101"},{"body":{"nativeSrc":"19836:248:101","nodeType":"YulBlock","src":"19836:248:101","statements":[{"nativeSrc":"19846:26:101","nodeType":"YulAssignment","src":"19846:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"19858:9:101","nodeType":"YulIdentifier","src":"19858:9:101"},{"kind":"number","nativeSrc":"19869:2:101","nodeType":"YulLiteral","src":"19869:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19854:3:101","nodeType":"YulIdentifier","src":"19854:3:101"},"nativeSrc":"19854:18:101","nodeType":"YulFunctionCall","src":"19854:18:101"},"variableNames":[{"name":"tail","nativeSrc":"19846:4:101","nodeType":"YulIdentifier","src":"19846:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19893:9:101","nodeType":"YulIdentifier","src":"19893:9:101"},{"kind":"number","nativeSrc":"19904:1:101","nodeType":"YulLiteral","src":"19904:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19889:3:101","nodeType":"YulIdentifier","src":"19889:3:101"},"nativeSrc":"19889:17:101","nodeType":"YulFunctionCall","src":"19889:17:101"},{"arguments":[{"name":"tail","nativeSrc":"19912:4:101","nodeType":"YulIdentifier","src":"19912:4:101"},{"name":"headStart","nativeSrc":"19918:9:101","nodeType":"YulIdentifier","src":"19918:9:101"}],"functionName":{"name":"sub","nativeSrc":"19908:3:101","nodeType":"YulIdentifier","src":"19908:3:101"},"nativeSrc":"19908:20:101","nodeType":"YulFunctionCall","src":"19908:20:101"}],"functionName":{"name":"mstore","nativeSrc":"19882:6:101","nodeType":"YulIdentifier","src":"19882:6:101"},"nativeSrc":"19882:47:101","nodeType":"YulFunctionCall","src":"19882:47:101"},"nativeSrc":"19882:47:101","nodeType":"YulExpressionStatement","src":"19882:47:101"},{"nativeSrc":"19938:139:101","nodeType":"YulAssignment","src":"19938:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"20072:4:101","nodeType":"YulIdentifier","src":"20072:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee_to_t_string_memory_ptr_fromStack","nativeSrc":"19946:124:101","nodeType":"YulIdentifier","src":"19946:124:101"},"nativeSrc":"19946:131:101","nodeType":"YulFunctionCall","src":"19946:131:101"},"variableNames":[{"name":"tail","nativeSrc":"19938:4:101","nodeType":"YulIdentifier","src":"19938:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19665:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19816:9:101","nodeType":"YulTypedName","src":"19816:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19831:4:101","nodeType":"YulTypedName","src":"19831:4:101","type":""}],"src":"19665:419:101"},{"body":{"nativeSrc":"20196:65:101","nodeType":"YulBlock","src":"20196:65:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"20218:6:101","nodeType":"YulIdentifier","src":"20218:6:101"},{"kind":"number","nativeSrc":"20226:1:101","nodeType":"YulLiteral","src":"20226:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20214:3:101","nodeType":"YulIdentifier","src":"20214:3:101"},"nativeSrc":"20214:14:101","nodeType":"YulFunctionCall","src":"20214:14:101"},{"hexValue":"63616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"20230:23:101","nodeType":"YulLiteral","src":"20230:23:101","type":"","value":"can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"20207:6:101","nodeType":"YulIdentifier","src":"20207:6:101"},"nativeSrc":"20207:47:101","nodeType":"YulFunctionCall","src":"20207:47:101"},"nativeSrc":"20207:47:101","nodeType":"YulExpressionStatement","src":"20207:47:101"}]},"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"20090:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"20188:6:101","nodeType":"YulTypedName","src":"20188:6:101","type":""}],"src":"20090:171:101"},{"body":{"nativeSrc":"20413:220:101","nodeType":"YulBlock","src":"20413:220:101","statements":[{"nativeSrc":"20423:74:101","nodeType":"YulAssignment","src":"20423:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"20489:3:101","nodeType":"YulIdentifier","src":"20489:3:101"},{"kind":"number","nativeSrc":"20494:2:101","nodeType":"YulLiteral","src":"20494:2:101","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"20430:58:101","nodeType":"YulIdentifier","src":"20430:58:101"},"nativeSrc":"20430:67:101","nodeType":"YulFunctionCall","src":"20430:67:101"},"variableNames":[{"name":"pos","nativeSrc":"20423:3:101","nodeType":"YulIdentifier","src":"20423:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20595:3:101","nodeType":"YulIdentifier","src":"20595:3:101"}],"functionName":{"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"20506:88:101","nodeType":"YulIdentifier","src":"20506:88:101"},"nativeSrc":"20506:93:101","nodeType":"YulFunctionCall","src":"20506:93:101"},"nativeSrc":"20506:93:101","nodeType":"YulExpressionStatement","src":"20506:93:101"},{"nativeSrc":"20608:19:101","nodeType":"YulAssignment","src":"20608:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"20619:3:101","nodeType":"YulIdentifier","src":"20619:3:101"},{"kind":"number","nativeSrc":"20624:2:101","nodeType":"YulLiteral","src":"20624:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20615:3:101","nodeType":"YulIdentifier","src":"20615:3:101"},"nativeSrc":"20615:12:101","nodeType":"YulFunctionCall","src":"20615:12:101"},"variableNames":[{"name":"end","nativeSrc":"20608:3:101","nodeType":"YulIdentifier","src":"20608:3:101"}]}]},"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"20267:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20401:3:101","nodeType":"YulTypedName","src":"20401:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20409:3:101","nodeType":"YulTypedName","src":"20409:3:101","type":""}],"src":"20267:366:101"},{"body":{"nativeSrc":"20810:248:101","nodeType":"YulBlock","src":"20810:248:101","statements":[{"nativeSrc":"20820:26:101","nodeType":"YulAssignment","src":"20820:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20832:9:101","nodeType":"YulIdentifier","src":"20832:9:101"},{"kind":"number","nativeSrc":"20843:2:101","nodeType":"YulLiteral","src":"20843:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20828:3:101","nodeType":"YulIdentifier","src":"20828:3:101"},"nativeSrc":"20828:18:101","nodeType":"YulFunctionCall","src":"20828:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20820:4:101","nodeType":"YulIdentifier","src":"20820:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20867:9:101","nodeType":"YulIdentifier","src":"20867:9:101"},{"kind":"number","nativeSrc":"20878:1:101","nodeType":"YulLiteral","src":"20878:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20863:3:101","nodeType":"YulIdentifier","src":"20863:3:101"},"nativeSrc":"20863:17:101","nodeType":"YulFunctionCall","src":"20863:17:101"},{"arguments":[{"name":"tail","nativeSrc":"20886:4:101","nodeType":"YulIdentifier","src":"20886:4:101"},{"name":"headStart","nativeSrc":"20892:9:101","nodeType":"YulIdentifier","src":"20892:9:101"}],"functionName":{"name":"sub","nativeSrc":"20882:3:101","nodeType":"YulIdentifier","src":"20882:3:101"},"nativeSrc":"20882:20:101","nodeType":"YulFunctionCall","src":"20882:20:101"}],"functionName":{"name":"mstore","nativeSrc":"20856:6:101","nodeType":"YulIdentifier","src":"20856:6:101"},"nativeSrc":"20856:47:101","nodeType":"YulFunctionCall","src":"20856:47:101"},"nativeSrc":"20856:47:101","nodeType":"YulExpressionStatement","src":"20856:47:101"},{"nativeSrc":"20912:139:101","nodeType":"YulAssignment","src":"20912:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"21046:4:101","nodeType":"YulIdentifier","src":"21046:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"20920:124:101","nodeType":"YulIdentifier","src":"20920:124:101"},"nativeSrc":"20920:131:101","nodeType":"YulFunctionCall","src":"20920:131:101"},"variableNames":[{"name":"tail","nativeSrc":"20912:4:101","nodeType":"YulIdentifier","src":"20912:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20639:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20790:9:101","nodeType":"YulTypedName","src":"20790:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20805:4:101","nodeType":"YulTypedName","src":"20805:4:101","type":""}],"src":"20639:419:101"},{"body":{"nativeSrc":"21170:67:101","nodeType":"YulBlock","src":"21170:67:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"21192:6:101","nodeType":"YulIdentifier","src":"21192:6:101"},{"kind":"number","nativeSrc":"21200:1:101","nodeType":"YulLiteral","src":"21200:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21188:3:101","nodeType":"YulIdentifier","src":"21188:3:101"},"nativeSrc":"21188:14:101","nodeType":"YulFunctionCall","src":"21188:14:101"},{"hexValue":"746f6b656e20636f6e666967206d757374206578697374","kind":"string","nativeSrc":"21204:25:101","nodeType":"YulLiteral","src":"21204:25:101","type":"","value":"token config must exist"}],"functionName":{"name":"mstore","nativeSrc":"21181:6:101","nodeType":"YulIdentifier","src":"21181:6:101"},"nativeSrc":"21181:49:101","nodeType":"YulFunctionCall","src":"21181:49:101"},"nativeSrc":"21181:49:101","nodeType":"YulExpressionStatement","src":"21181:49:101"}]},"name":"store_literal_in_memory_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67","nativeSrc":"21064:173:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"21162:6:101","nodeType":"YulTypedName","src":"21162:6:101","type":""}],"src":"21064:173:101"},{"body":{"nativeSrc":"21389:220:101","nodeType":"YulBlock","src":"21389:220:101","statements":[{"nativeSrc":"21399:74:101","nodeType":"YulAssignment","src":"21399:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"21465:3:101","nodeType":"YulIdentifier","src":"21465:3:101"},{"kind":"number","nativeSrc":"21470:2:101","nodeType":"YulLiteral","src":"21470:2:101","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"21406:58:101","nodeType":"YulIdentifier","src":"21406:58:101"},"nativeSrc":"21406:67:101","nodeType":"YulFunctionCall","src":"21406:67:101"},"variableNames":[{"name":"pos","nativeSrc":"21399:3:101","nodeType":"YulIdentifier","src":"21399:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"21571:3:101","nodeType":"YulIdentifier","src":"21571:3:101"}],"functionName":{"name":"store_literal_in_memory_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67","nativeSrc":"21482:88:101","nodeType":"YulIdentifier","src":"21482:88:101"},"nativeSrc":"21482:93:101","nodeType":"YulFunctionCall","src":"21482:93:101"},"nativeSrc":"21482:93:101","nodeType":"YulExpressionStatement","src":"21482:93:101"},{"nativeSrc":"21584:19:101","nodeType":"YulAssignment","src":"21584:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"21595:3:101","nodeType":"YulIdentifier","src":"21595:3:101"},{"kind":"number","nativeSrc":"21600:2:101","nodeType":"YulLiteral","src":"21600:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21591:3:101","nodeType":"YulIdentifier","src":"21591:3:101"},"nativeSrc":"21591:12:101","nodeType":"YulFunctionCall","src":"21591:12:101"},"variableNames":[{"name":"end","nativeSrc":"21584:3:101","nodeType":"YulIdentifier","src":"21584:3:101"}]}]},"name":"abi_encode_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67_to_t_string_memory_ptr_fromStack","nativeSrc":"21243:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"21377:3:101","nodeType":"YulTypedName","src":"21377:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21385:3:101","nodeType":"YulTypedName","src":"21385:3:101","type":""}],"src":"21243:366:101"},{"body":{"nativeSrc":"21786:248:101","nodeType":"YulBlock","src":"21786:248:101","statements":[{"nativeSrc":"21796:26:101","nodeType":"YulAssignment","src":"21796:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"21808:9:101","nodeType":"YulIdentifier","src":"21808:9:101"},{"kind":"number","nativeSrc":"21819:2:101","nodeType":"YulLiteral","src":"21819:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21804:3:101","nodeType":"YulIdentifier","src":"21804:3:101"},"nativeSrc":"21804:18:101","nodeType":"YulFunctionCall","src":"21804:18:101"},"variableNames":[{"name":"tail","nativeSrc":"21796:4:101","nodeType":"YulIdentifier","src":"21796:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21843:9:101","nodeType":"YulIdentifier","src":"21843:9:101"},{"kind":"number","nativeSrc":"21854:1:101","nodeType":"YulLiteral","src":"21854:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21839:3:101","nodeType":"YulIdentifier","src":"21839:3:101"},"nativeSrc":"21839:17:101","nodeType":"YulFunctionCall","src":"21839:17:101"},{"arguments":[{"name":"tail","nativeSrc":"21862:4:101","nodeType":"YulIdentifier","src":"21862:4:101"},{"name":"headStart","nativeSrc":"21868:9:101","nodeType":"YulIdentifier","src":"21868:9:101"}],"functionName":{"name":"sub","nativeSrc":"21858:3:101","nodeType":"YulIdentifier","src":"21858:3:101"},"nativeSrc":"21858:20:101","nodeType":"YulFunctionCall","src":"21858:20:101"}],"functionName":{"name":"mstore","nativeSrc":"21832:6:101","nodeType":"YulIdentifier","src":"21832:6:101"},"nativeSrc":"21832:47:101","nodeType":"YulFunctionCall","src":"21832:47:101"},"nativeSrc":"21832:47:101","nodeType":"YulExpressionStatement","src":"21832:47:101"},{"nativeSrc":"21888:139:101","nodeType":"YulAssignment","src":"21888:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"22022:4:101","nodeType":"YulIdentifier","src":"22022:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67_to_t_string_memory_ptr_fromStack","nativeSrc":"21896:124:101","nodeType":"YulIdentifier","src":"21896:124:101"},"nativeSrc":"21896:131:101","nodeType":"YulFunctionCall","src":"21896:131:101"},"variableNames":[{"name":"tail","nativeSrc":"21888:4:101","nodeType":"YulIdentifier","src":"21888:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21615:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21766:9:101","nodeType":"YulTypedName","src":"21766:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21781:4:101","nodeType":"YulTypedName","src":"21781:4:101","type":""}],"src":"21615:419:101"},{"body":{"nativeSrc":"22068:152:101","nodeType":"YulBlock","src":"22068:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22085:1:101","nodeType":"YulLiteral","src":"22085:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22088:77:101","nodeType":"YulLiteral","src":"22088:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"22078:6:101","nodeType":"YulIdentifier","src":"22078:6:101"},"nativeSrc":"22078:88:101","nodeType":"YulFunctionCall","src":"22078:88:101"},"nativeSrc":"22078:88:101","nodeType":"YulExpressionStatement","src":"22078:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22182:1:101","nodeType":"YulLiteral","src":"22182:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"22185:4:101","nodeType":"YulLiteral","src":"22185:4:101","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"22175:6:101","nodeType":"YulIdentifier","src":"22175:6:101"},"nativeSrc":"22175:15:101","nodeType":"YulFunctionCall","src":"22175:15:101"},"nativeSrc":"22175:15:101","nodeType":"YulExpressionStatement","src":"22175:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22206:1:101","nodeType":"YulLiteral","src":"22206:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22209:4:101","nodeType":"YulLiteral","src":"22209:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"22199:6:101","nodeType":"YulIdentifier","src":"22199:6:101"},"nativeSrc":"22199:15:101","nodeType":"YulFunctionCall","src":"22199:15:101"},"nativeSrc":"22199:15:101","nodeType":"YulExpressionStatement","src":"22199:15:101"}]},"name":"panic_error_0x21","nativeSrc":"22040:180:101","nodeType":"YulFunctionDefinition","src":"22040:180:101"},{"body":{"nativeSrc":"22254:152:101","nodeType":"YulBlock","src":"22254:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22271:1:101","nodeType":"YulLiteral","src":"22271:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22274:77:101","nodeType":"YulLiteral","src":"22274:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"22264:6:101","nodeType":"YulIdentifier","src":"22264:6:101"},"nativeSrc":"22264:88:101","nodeType":"YulFunctionCall","src":"22264:88:101"},"nativeSrc":"22264:88:101","nodeType":"YulExpressionStatement","src":"22264:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22368:1:101","nodeType":"YulLiteral","src":"22368:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"22371:4:101","nodeType":"YulLiteral","src":"22371:4:101","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"22361:6:101","nodeType":"YulIdentifier","src":"22361:6:101"},"nativeSrc":"22361:15:101","nodeType":"YulFunctionCall","src":"22361:15:101"},"nativeSrc":"22361:15:101","nodeType":"YulExpressionStatement","src":"22361:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22392:1:101","nodeType":"YulLiteral","src":"22392:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22395:4:101","nodeType":"YulLiteral","src":"22395:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"22385:6:101","nodeType":"YulIdentifier","src":"22385:6:101"},"nativeSrc":"22385:15:101","nodeType":"YulFunctionCall","src":"22385:15:101"},"nativeSrc":"22385:15:101","nodeType":"YulExpressionStatement","src":"22385:15:101"}]},"name":"panic_error_0x32","nativeSrc":"22226:180:101","nodeType":"YulFunctionDefinition","src":"22226:180:101"},{"body":{"nativeSrc":"22518:122:101","nodeType":"YulBlock","src":"22518:122:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"22540:6:101","nodeType":"YulIdentifier","src":"22540:6:101"},{"kind":"number","nativeSrc":"22548:1:101","nodeType":"YulLiteral","src":"22548:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22536:3:101","nodeType":"YulIdentifier","src":"22536:3:101"},"nativeSrc":"22536:14:101","nodeType":"YulFunctionCall","src":"22536:14:101"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"22552:34:101","nodeType":"YulLiteral","src":"22552:34:101","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"22529:6:101","nodeType":"YulIdentifier","src":"22529:6:101"},"nativeSrc":"22529:58:101","nodeType":"YulFunctionCall","src":"22529:58:101"},"nativeSrc":"22529:58:101","nodeType":"YulExpressionStatement","src":"22529:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"22608:6:101","nodeType":"YulIdentifier","src":"22608:6:101"},{"kind":"number","nativeSrc":"22616:2:101","nodeType":"YulLiteral","src":"22616:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22604:3:101","nodeType":"YulIdentifier","src":"22604:3:101"},"nativeSrc":"22604:15:101","nodeType":"YulFunctionCall","src":"22604:15:101"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"22621:11:101","nodeType":"YulLiteral","src":"22621:11:101","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"22597:6:101","nodeType":"YulIdentifier","src":"22597:6:101"},"nativeSrc":"22597:36:101","nodeType":"YulFunctionCall","src":"22597:36:101"},"nativeSrc":"22597:36:101","nodeType":"YulExpressionStatement","src":"22597:36:101"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"22412:228:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"22510:6:101","nodeType":"YulTypedName","src":"22510:6:101","type":""}],"src":"22412:228:101"},{"body":{"nativeSrc":"22792:220:101","nodeType":"YulBlock","src":"22792:220:101","statements":[{"nativeSrc":"22802:74:101","nodeType":"YulAssignment","src":"22802:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"22868:3:101","nodeType":"YulIdentifier","src":"22868:3:101"},{"kind":"number","nativeSrc":"22873:2:101","nodeType":"YulLiteral","src":"22873:2:101","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"22809:58:101","nodeType":"YulIdentifier","src":"22809:58:101"},"nativeSrc":"22809:67:101","nodeType":"YulFunctionCall","src":"22809:67:101"},"variableNames":[{"name":"pos","nativeSrc":"22802:3:101","nodeType":"YulIdentifier","src":"22802:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"22974:3:101","nodeType":"YulIdentifier","src":"22974:3:101"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"22885:88:101","nodeType":"YulIdentifier","src":"22885:88:101"},"nativeSrc":"22885:93:101","nodeType":"YulFunctionCall","src":"22885:93:101"},"nativeSrc":"22885:93:101","nodeType":"YulExpressionStatement","src":"22885:93:101"},{"nativeSrc":"22987:19:101","nodeType":"YulAssignment","src":"22987:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"22998:3:101","nodeType":"YulIdentifier","src":"22998:3:101"},{"kind":"number","nativeSrc":"23003:2:101","nodeType":"YulLiteral","src":"23003:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22994:3:101","nodeType":"YulIdentifier","src":"22994:3:101"},"nativeSrc":"22994:12:101","nodeType":"YulFunctionCall","src":"22994:12:101"},"variableNames":[{"name":"end","nativeSrc":"22987:3:101","nodeType":"YulIdentifier","src":"22987:3:101"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"22646:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"22780:3:101","nodeType":"YulTypedName","src":"22780:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22788:3:101","nodeType":"YulTypedName","src":"22788:3:101","type":""}],"src":"22646:366:101"},{"body":{"nativeSrc":"23189:248:101","nodeType":"YulBlock","src":"23189:248:101","statements":[{"nativeSrc":"23199:26:101","nodeType":"YulAssignment","src":"23199:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"23211:9:101","nodeType":"YulIdentifier","src":"23211:9:101"},{"kind":"number","nativeSrc":"23222:2:101","nodeType":"YulLiteral","src":"23222:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23207:3:101","nodeType":"YulIdentifier","src":"23207:3:101"},"nativeSrc":"23207:18:101","nodeType":"YulFunctionCall","src":"23207:18:101"},"variableNames":[{"name":"tail","nativeSrc":"23199:4:101","nodeType":"YulIdentifier","src":"23199:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23246:9:101","nodeType":"YulIdentifier","src":"23246:9:101"},{"kind":"number","nativeSrc":"23257:1:101","nodeType":"YulLiteral","src":"23257:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"23242:3:101","nodeType":"YulIdentifier","src":"23242:3:101"},"nativeSrc":"23242:17:101","nodeType":"YulFunctionCall","src":"23242:17:101"},{"arguments":[{"name":"tail","nativeSrc":"23265:4:101","nodeType":"YulIdentifier","src":"23265:4:101"},{"name":"headStart","nativeSrc":"23271:9:101","nodeType":"YulIdentifier","src":"23271:9:101"}],"functionName":{"name":"sub","nativeSrc":"23261:3:101","nodeType":"YulIdentifier","src":"23261:3:101"},"nativeSrc":"23261:20:101","nodeType":"YulFunctionCall","src":"23261:20:101"}],"functionName":{"name":"mstore","nativeSrc":"23235:6:101","nodeType":"YulIdentifier","src":"23235:6:101"},"nativeSrc":"23235:47:101","nodeType":"YulFunctionCall","src":"23235:47:101"},"nativeSrc":"23235:47:101","nodeType":"YulExpressionStatement","src":"23235:47:101"},{"nativeSrc":"23291:139:101","nodeType":"YulAssignment","src":"23291:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"23425:4:101","nodeType":"YulIdentifier","src":"23425:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"23299:124:101","nodeType":"YulIdentifier","src":"23299:124:101"},"nativeSrc":"23299:131:101","nodeType":"YulFunctionCall","src":"23299:131:101"},"variableNames":[{"name":"tail","nativeSrc":"23291:4:101","nodeType":"YulIdentifier","src":"23291:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23018:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23169:9:101","nodeType":"YulTypedName","src":"23169:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23184:4:101","nodeType":"YulTypedName","src":"23184:4:101","type":""}],"src":"23018:419:101"},{"body":{"nativeSrc":"23549:61:101","nodeType":"YulBlock","src":"23549:61:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"23571:6:101","nodeType":"YulIdentifier","src":"23571:6:101"},{"kind":"number","nativeSrc":"23579:1:101","nodeType":"YulLiteral","src":"23579:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"23567:3:101","nodeType":"YulIdentifier","src":"23567:3:101"},"nativeSrc":"23567:14:101","nodeType":"YulFunctionCall","src":"23567:14:101"},{"hexValue":"6c656e6774682063616e27742062652030","kind":"string","nativeSrc":"23583:19:101","nodeType":"YulLiteral","src":"23583:19:101","type":"","value":"length can't be 0"}],"functionName":{"name":"mstore","nativeSrc":"23560:6:101","nodeType":"YulIdentifier","src":"23560:6:101"},"nativeSrc":"23560:43:101","nodeType":"YulFunctionCall","src":"23560:43:101"},"nativeSrc":"23560:43:101","nodeType":"YulExpressionStatement","src":"23560:43:101"}]},"name":"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","nativeSrc":"23443:167:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"23541:6:101","nodeType":"YulTypedName","src":"23541:6:101","type":""}],"src":"23443:167:101"},{"body":{"nativeSrc":"23762:220:101","nodeType":"YulBlock","src":"23762:220:101","statements":[{"nativeSrc":"23772:74:101","nodeType":"YulAssignment","src":"23772:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"23838:3:101","nodeType":"YulIdentifier","src":"23838:3:101"},{"kind":"number","nativeSrc":"23843:2:101","nodeType":"YulLiteral","src":"23843:2:101","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"23779:58:101","nodeType":"YulIdentifier","src":"23779:58:101"},"nativeSrc":"23779:67:101","nodeType":"YulFunctionCall","src":"23779:67:101"},"variableNames":[{"name":"pos","nativeSrc":"23772:3:101","nodeType":"YulIdentifier","src":"23772:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"23944:3:101","nodeType":"YulIdentifier","src":"23944:3:101"}],"functionName":{"name":"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","nativeSrc":"23855:88:101","nodeType":"YulIdentifier","src":"23855:88:101"},"nativeSrc":"23855:93:101","nodeType":"YulFunctionCall","src":"23855:93:101"},"nativeSrc":"23855:93:101","nodeType":"YulExpressionStatement","src":"23855:93:101"},{"nativeSrc":"23957:19:101","nodeType":"YulAssignment","src":"23957:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"23968:3:101","nodeType":"YulIdentifier","src":"23968:3:101"},{"kind":"number","nativeSrc":"23973:2:101","nodeType":"YulLiteral","src":"23973:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23964:3:101","nodeType":"YulIdentifier","src":"23964:3:101"},"nativeSrc":"23964:12:101","nodeType":"YulFunctionCall","src":"23964:12:101"},"variableNames":[{"name":"end","nativeSrc":"23957:3:101","nodeType":"YulIdentifier","src":"23957:3:101"}]}]},"name":"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack","nativeSrc":"23616:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"23750:3:101","nodeType":"YulTypedName","src":"23750:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"23758:3:101","nodeType":"YulTypedName","src":"23758:3:101","type":""}],"src":"23616:366:101"},{"body":{"nativeSrc":"24159:248:101","nodeType":"YulBlock","src":"24159:248:101","statements":[{"nativeSrc":"24169:26:101","nodeType":"YulAssignment","src":"24169:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"24181:9:101","nodeType":"YulIdentifier","src":"24181:9:101"},{"kind":"number","nativeSrc":"24192:2:101","nodeType":"YulLiteral","src":"24192:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24177:3:101","nodeType":"YulIdentifier","src":"24177:3:101"},"nativeSrc":"24177:18:101","nodeType":"YulFunctionCall","src":"24177:18:101"},"variableNames":[{"name":"tail","nativeSrc":"24169:4:101","nodeType":"YulIdentifier","src":"24169:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24216:9:101","nodeType":"YulIdentifier","src":"24216:9:101"},{"kind":"number","nativeSrc":"24227:1:101","nodeType":"YulLiteral","src":"24227:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24212:3:101","nodeType":"YulIdentifier","src":"24212:3:101"},"nativeSrc":"24212:17:101","nodeType":"YulFunctionCall","src":"24212:17:101"},{"arguments":[{"name":"tail","nativeSrc":"24235:4:101","nodeType":"YulIdentifier","src":"24235:4:101"},{"name":"headStart","nativeSrc":"24241:9:101","nodeType":"YulIdentifier","src":"24241:9:101"}],"functionName":{"name":"sub","nativeSrc":"24231:3:101","nodeType":"YulIdentifier","src":"24231:3:101"},"nativeSrc":"24231:20:101","nodeType":"YulFunctionCall","src":"24231:20:101"}],"functionName":{"name":"mstore","nativeSrc":"24205:6:101","nodeType":"YulIdentifier","src":"24205:6:101"},"nativeSrc":"24205:47:101","nodeType":"YulFunctionCall","src":"24205:47:101"},"nativeSrc":"24205:47:101","nodeType":"YulExpressionStatement","src":"24205:47:101"},{"nativeSrc":"24261:139:101","nodeType":"YulAssignment","src":"24261:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"24395:4:101","nodeType":"YulIdentifier","src":"24395:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack","nativeSrc":"24269:124:101","nodeType":"YulIdentifier","src":"24269:124:101"},"nativeSrc":"24269:131:101","nodeType":"YulFunctionCall","src":"24269:131:101"},"variableNames":[{"name":"tail","nativeSrc":"24261:4:101","nodeType":"YulIdentifier","src":"24261:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23988:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24139:9:101","nodeType":"YulTypedName","src":"24139:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24154:4:101","nodeType":"YulTypedName","src":"24154:4:101","type":""}],"src":"23988:419:101"},{"body":{"nativeSrc":"24519:118:101","nodeType":"YulBlock","src":"24519:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"24541:6:101","nodeType":"YulIdentifier","src":"24541:6:101"},{"kind":"number","nativeSrc":"24549:1:101","nodeType":"YulLiteral","src":"24549:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24537:3:101","nodeType":"YulIdentifier","src":"24537:3:101"},"nativeSrc":"24537:14:101","nodeType":"YulFunctionCall","src":"24537:14:101"},{"hexValue":"63616e277420736574207a65726f206164647265737320746f206d61696e206f","kind":"string","nativeSrc":"24553:34:101","nodeType":"YulLiteral","src":"24553:34:101","type":"","value":"can't set zero address to main o"}],"functionName":{"name":"mstore","nativeSrc":"24530:6:101","nodeType":"YulIdentifier","src":"24530:6:101"},"nativeSrc":"24530:58:101","nodeType":"YulFunctionCall","src":"24530:58:101"},"nativeSrc":"24530:58:101","nodeType":"YulExpressionStatement","src":"24530:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"24609:6:101","nodeType":"YulIdentifier","src":"24609:6:101"},{"kind":"number","nativeSrc":"24617:2:101","nodeType":"YulLiteral","src":"24617:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24605:3:101","nodeType":"YulIdentifier","src":"24605:3:101"},"nativeSrc":"24605:15:101","nodeType":"YulFunctionCall","src":"24605:15:101"},{"hexValue":"7261636c65","kind":"string","nativeSrc":"24622:7:101","nodeType":"YulLiteral","src":"24622:7:101","type":"","value":"racle"}],"functionName":{"name":"mstore","nativeSrc":"24598:6:101","nodeType":"YulIdentifier","src":"24598:6:101"},"nativeSrc":"24598:32:101","nodeType":"YulFunctionCall","src":"24598:32:101"},"nativeSrc":"24598:32:101","nodeType":"YulExpressionStatement","src":"24598:32:101"}]},"name":"store_literal_in_memory_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1","nativeSrc":"24413:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"24511:6:101","nodeType":"YulTypedName","src":"24511:6:101","type":""}],"src":"24413:224:101"},{"body":{"nativeSrc":"24789:220:101","nodeType":"YulBlock","src":"24789:220:101","statements":[{"nativeSrc":"24799:74:101","nodeType":"YulAssignment","src":"24799:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"24865:3:101","nodeType":"YulIdentifier","src":"24865:3:101"},{"kind":"number","nativeSrc":"24870:2:101","nodeType":"YulLiteral","src":"24870:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"24806:58:101","nodeType":"YulIdentifier","src":"24806:58:101"},"nativeSrc":"24806:67:101","nodeType":"YulFunctionCall","src":"24806:67:101"},"variableNames":[{"name":"pos","nativeSrc":"24799:3:101","nodeType":"YulIdentifier","src":"24799:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"24971:3:101","nodeType":"YulIdentifier","src":"24971:3:101"}],"functionName":{"name":"store_literal_in_memory_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1","nativeSrc":"24882:88:101","nodeType":"YulIdentifier","src":"24882:88:101"},"nativeSrc":"24882:93:101","nodeType":"YulFunctionCall","src":"24882:93:101"},"nativeSrc":"24882:93:101","nodeType":"YulExpressionStatement","src":"24882:93:101"},{"nativeSrc":"24984:19:101","nodeType":"YulAssignment","src":"24984:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"24995:3:101","nodeType":"YulIdentifier","src":"24995:3:101"},{"kind":"number","nativeSrc":"25000:2:101","nodeType":"YulLiteral","src":"25000:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24991:3:101","nodeType":"YulIdentifier","src":"24991:3:101"},"nativeSrc":"24991:12:101","nodeType":"YulFunctionCall","src":"24991:12:101"},"variableNames":[{"name":"end","nativeSrc":"24984:3:101","nodeType":"YulIdentifier","src":"24984:3:101"}]}]},"name":"abi_encode_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1_to_t_string_memory_ptr_fromStack","nativeSrc":"24643:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"24777:3:101","nodeType":"YulTypedName","src":"24777:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24785:3:101","nodeType":"YulTypedName","src":"24785:3:101","type":""}],"src":"24643:366:101"},{"body":{"nativeSrc":"25186:248:101","nodeType":"YulBlock","src":"25186:248:101","statements":[{"nativeSrc":"25196:26:101","nodeType":"YulAssignment","src":"25196:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"25208:9:101","nodeType":"YulIdentifier","src":"25208:9:101"},{"kind":"number","nativeSrc":"25219:2:101","nodeType":"YulLiteral","src":"25219:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25204:3:101","nodeType":"YulIdentifier","src":"25204:3:101"},"nativeSrc":"25204:18:101","nodeType":"YulFunctionCall","src":"25204:18:101"},"variableNames":[{"name":"tail","nativeSrc":"25196:4:101","nodeType":"YulIdentifier","src":"25196:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25243:9:101","nodeType":"YulIdentifier","src":"25243:9:101"},{"kind":"number","nativeSrc":"25254:1:101","nodeType":"YulLiteral","src":"25254:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25239:3:101","nodeType":"YulIdentifier","src":"25239:3:101"},"nativeSrc":"25239:17:101","nodeType":"YulFunctionCall","src":"25239:17:101"},{"arguments":[{"name":"tail","nativeSrc":"25262:4:101","nodeType":"YulIdentifier","src":"25262:4:101"},{"name":"headStart","nativeSrc":"25268:9:101","nodeType":"YulIdentifier","src":"25268:9:101"}],"functionName":{"name":"sub","nativeSrc":"25258:3:101","nodeType":"YulIdentifier","src":"25258:3:101"},"nativeSrc":"25258:20:101","nodeType":"YulFunctionCall","src":"25258:20:101"}],"functionName":{"name":"mstore","nativeSrc":"25232:6:101","nodeType":"YulIdentifier","src":"25232:6:101"},"nativeSrc":"25232:47:101","nodeType":"YulFunctionCall","src":"25232:47:101"},"nativeSrc":"25232:47:101","nodeType":"YulExpressionStatement","src":"25232:47:101"},{"nativeSrc":"25288:139:101","nodeType":"YulAssignment","src":"25288:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"25422:4:101","nodeType":"YulIdentifier","src":"25422:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1_to_t_string_memory_ptr_fromStack","nativeSrc":"25296:124:101","nodeType":"YulIdentifier","src":"25296:124:101"},"nativeSrc":"25296:131:101","nodeType":"YulFunctionCall","src":"25296:131:101"},"variableNames":[{"name":"tail","nativeSrc":"25288:4:101","nodeType":"YulIdentifier","src":"25288:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25015:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25166:9:101","nodeType":"YulTypedName","src":"25166:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25181:4:101","nodeType":"YulTypedName","src":"25181:4:101","type":""}],"src":"25015:419:101"},{"body":{"nativeSrc":"25546:127:101","nodeType":"YulBlock","src":"25546:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"25568:6:101","nodeType":"YulIdentifier","src":"25568:6:101"},{"kind":"number","nativeSrc":"25576:1:101","nodeType":"YulLiteral","src":"25576:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25564:3:101","nodeType":"YulIdentifier","src":"25564:3:101"},"nativeSrc":"25564:14:101","nodeType":"YulFunctionCall","src":"25564:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"25580:34:101","nodeType":"YulLiteral","src":"25580:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"25557:6:101","nodeType":"YulIdentifier","src":"25557:6:101"},"nativeSrc":"25557:58:101","nodeType":"YulFunctionCall","src":"25557:58:101"},"nativeSrc":"25557:58:101","nodeType":"YulExpressionStatement","src":"25557:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"25636:6:101","nodeType":"YulIdentifier","src":"25636:6:101"},{"kind":"number","nativeSrc":"25644:2:101","nodeType":"YulLiteral","src":"25644:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25632:3:101","nodeType":"YulIdentifier","src":"25632:3:101"},"nativeSrc":"25632:15:101","nodeType":"YulFunctionCall","src":"25632:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"25649:16:101","nodeType":"YulLiteral","src":"25649:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"25625:6:101","nodeType":"YulIdentifier","src":"25625:6:101"},"nativeSrc":"25625:41:101","nodeType":"YulFunctionCall","src":"25625:41:101"},"nativeSrc":"25625:41:101","nodeType":"YulExpressionStatement","src":"25625:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"25440:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"25538:6:101","nodeType":"YulTypedName","src":"25538:6:101","type":""}],"src":"25440:233:101"},{"body":{"nativeSrc":"25825:220:101","nodeType":"YulBlock","src":"25825:220:101","statements":[{"nativeSrc":"25835:74:101","nodeType":"YulAssignment","src":"25835:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"25901:3:101","nodeType":"YulIdentifier","src":"25901:3:101"},{"kind":"number","nativeSrc":"25906:2:101","nodeType":"YulLiteral","src":"25906:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"25842:58:101","nodeType":"YulIdentifier","src":"25842:58:101"},"nativeSrc":"25842:67:101","nodeType":"YulFunctionCall","src":"25842:67:101"},"variableNames":[{"name":"pos","nativeSrc":"25835:3:101","nodeType":"YulIdentifier","src":"25835:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"26007:3:101","nodeType":"YulIdentifier","src":"26007:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"25918:88:101","nodeType":"YulIdentifier","src":"25918:88:101"},"nativeSrc":"25918:93:101","nodeType":"YulFunctionCall","src":"25918:93:101"},"nativeSrc":"25918:93:101","nodeType":"YulExpressionStatement","src":"25918:93:101"},{"nativeSrc":"26020:19:101","nodeType":"YulAssignment","src":"26020:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"26031:3:101","nodeType":"YulIdentifier","src":"26031:3:101"},{"kind":"number","nativeSrc":"26036:2:101","nodeType":"YulLiteral","src":"26036:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26027:3:101","nodeType":"YulIdentifier","src":"26027:3:101"},"nativeSrc":"26027:12:101","nodeType":"YulFunctionCall","src":"26027:12:101"},"variableNames":[{"name":"end","nativeSrc":"26020:3:101","nodeType":"YulIdentifier","src":"26020:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"25679:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25813:3:101","nodeType":"YulTypedName","src":"25813:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25821:3:101","nodeType":"YulTypedName","src":"25821:3:101","type":""}],"src":"25679:366:101"},{"body":{"nativeSrc":"26222:248:101","nodeType":"YulBlock","src":"26222:248:101","statements":[{"nativeSrc":"26232:26:101","nodeType":"YulAssignment","src":"26232:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"26244:9:101","nodeType":"YulIdentifier","src":"26244:9:101"},{"kind":"number","nativeSrc":"26255:2:101","nodeType":"YulLiteral","src":"26255:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26240:3:101","nodeType":"YulIdentifier","src":"26240:3:101"},"nativeSrc":"26240:18:101","nodeType":"YulFunctionCall","src":"26240:18:101"},"variableNames":[{"name":"tail","nativeSrc":"26232:4:101","nodeType":"YulIdentifier","src":"26232:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26279:9:101","nodeType":"YulIdentifier","src":"26279:9:101"},{"kind":"number","nativeSrc":"26290:1:101","nodeType":"YulLiteral","src":"26290:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"26275:3:101","nodeType":"YulIdentifier","src":"26275:3:101"},"nativeSrc":"26275:17:101","nodeType":"YulFunctionCall","src":"26275:17:101"},{"arguments":[{"name":"tail","nativeSrc":"26298:4:101","nodeType":"YulIdentifier","src":"26298:4:101"},{"name":"headStart","nativeSrc":"26304:9:101","nodeType":"YulIdentifier","src":"26304:9:101"}],"functionName":{"name":"sub","nativeSrc":"26294:3:101","nodeType":"YulIdentifier","src":"26294:3:101"},"nativeSrc":"26294:20:101","nodeType":"YulFunctionCall","src":"26294:20:101"}],"functionName":{"name":"mstore","nativeSrc":"26268:6:101","nodeType":"YulIdentifier","src":"26268:6:101"},"nativeSrc":"26268:47:101","nodeType":"YulFunctionCall","src":"26268:47:101"},"nativeSrc":"26268:47:101","nodeType":"YulExpressionStatement","src":"26268:47:101"},{"nativeSrc":"26324:139:101","nodeType":"YulAssignment","src":"26324:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"26458:4:101","nodeType":"YulIdentifier","src":"26458:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"26332:124:101","nodeType":"YulIdentifier","src":"26332:124:101"},"nativeSrc":"26332:131:101","nodeType":"YulFunctionCall","src":"26332:131:101"},"variableNames":[{"name":"tail","nativeSrc":"26324:4:101","nodeType":"YulIdentifier","src":"26324:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26051:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26202:9:101","nodeType":"YulTypedName","src":"26202:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26217:4:101","nodeType":"YulTypedName","src":"26217:4:101","type":""}],"src":"26051:419:101"},{"body":{"nativeSrc":"26529:32:101","nodeType":"YulBlock","src":"26529:32:101","statements":[{"nativeSrc":"26539:16:101","nodeType":"YulAssignment","src":"26539:16:101","value":{"name":"value","nativeSrc":"26550:5:101","nodeType":"YulIdentifier","src":"26550:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"26539:7:101","nodeType":"YulIdentifier","src":"26539:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"26476:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26511:5:101","nodeType":"YulTypedName","src":"26511:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"26521:7:101","nodeType":"YulTypedName","src":"26521:7:101","type":""}],"src":"26476:85:101"},{"body":{"nativeSrc":"26610:43:101","nodeType":"YulBlock","src":"26610:43:101","statements":[{"nativeSrc":"26620:27:101","nodeType":"YulAssignment","src":"26620:27:101","value":{"arguments":[{"name":"value","nativeSrc":"26635:5:101","nodeType":"YulIdentifier","src":"26635:5:101"},{"kind":"number","nativeSrc":"26642:4:101","nodeType":"YulLiteral","src":"26642:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"26631:3:101","nodeType":"YulIdentifier","src":"26631:3:101"},"nativeSrc":"26631:16:101","nodeType":"YulFunctionCall","src":"26631:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"26620:7:101","nodeType":"YulIdentifier","src":"26620:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"26567:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26592:5:101","nodeType":"YulTypedName","src":"26592:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"26602:7:101","nodeType":"YulTypedName","src":"26602:7:101","type":""}],"src":"26567:86:101"},{"body":{"nativeSrc":"26725:88:101","nodeType":"YulBlock","src":"26725:88:101","statements":[{"nativeSrc":"26735:72:101","nodeType":"YulAssignment","src":"26735:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26799:5:101","nodeType":"YulIdentifier","src":"26799:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"26773:25:101","nodeType":"YulIdentifier","src":"26773:25:101"},"nativeSrc":"26773:32:101","nodeType":"YulFunctionCall","src":"26773:32:101"}],"functionName":{"name":"identity","nativeSrc":"26764:8:101","nodeType":"YulIdentifier","src":"26764:8:101"},"nativeSrc":"26764:42:101","nodeType":"YulFunctionCall","src":"26764:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"26748:15:101","nodeType":"YulIdentifier","src":"26748:15:101"},"nativeSrc":"26748:59:101","nodeType":"YulFunctionCall","src":"26748:59:101"},"variableNames":[{"name":"converted","nativeSrc":"26735:9:101","nodeType":"YulIdentifier","src":"26735:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"26659:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26705:5:101","nodeType":"YulTypedName","src":"26705:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"26715:9:101","nodeType":"YulTypedName","src":"26715:9:101","type":""}],"src":"26659:154:101"},{"body":{"nativeSrc":"26890:72:101","nodeType":"YulBlock","src":"26890:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26907:3:101","nodeType":"YulIdentifier","src":"26907:3:101"},{"arguments":[{"name":"value","nativeSrc":"26949:5:101","nodeType":"YulIdentifier","src":"26949:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"26912:36:101","nodeType":"YulIdentifier","src":"26912:36:101"},"nativeSrc":"26912:43:101","nodeType":"YulFunctionCall","src":"26912:43:101"}],"functionName":{"name":"mstore","nativeSrc":"26900:6:101","nodeType":"YulIdentifier","src":"26900:6:101"},"nativeSrc":"26900:56:101","nodeType":"YulFunctionCall","src":"26900:56:101"},"nativeSrc":"26900:56:101","nodeType":"YulExpressionStatement","src":"26900:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"26819:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26878:5:101","nodeType":"YulTypedName","src":"26878:5:101","type":""},{"name":"pos","nativeSrc":"26885:3:101","nodeType":"YulTypedName","src":"26885:3:101","type":""}],"src":"26819:143:101"},{"body":{"nativeSrc":"27072:130:101","nodeType":"YulBlock","src":"27072:130:101","statements":[{"nativeSrc":"27082:26:101","nodeType":"YulAssignment","src":"27082:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"27094:9:101","nodeType":"YulIdentifier","src":"27094:9:101"},{"kind":"number","nativeSrc":"27105:2:101","nodeType":"YulLiteral","src":"27105:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27090:3:101","nodeType":"YulIdentifier","src":"27090:3:101"},"nativeSrc":"27090:18:101","nodeType":"YulFunctionCall","src":"27090:18:101"},"variableNames":[{"name":"tail","nativeSrc":"27082:4:101","nodeType":"YulIdentifier","src":"27082:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"27168:6:101","nodeType":"YulIdentifier","src":"27168:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"27181:9:101","nodeType":"YulIdentifier","src":"27181:9:101"},{"kind":"number","nativeSrc":"27192:1:101","nodeType":"YulLiteral","src":"27192:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27177:3:101","nodeType":"YulIdentifier","src":"27177:3:101"},"nativeSrc":"27177:17:101","nodeType":"YulFunctionCall","src":"27177:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"27118:49:101","nodeType":"YulIdentifier","src":"27118:49:101"},"nativeSrc":"27118:77:101","nodeType":"YulFunctionCall","src":"27118:77:101"},"nativeSrc":"27118:77:101","nodeType":"YulExpressionStatement","src":"27118:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"26968:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27044:9:101","nodeType":"YulTypedName","src":"27044:9:101","type":""},{"name":"value0","nativeSrc":"27056:6:101","nodeType":"YulTypedName","src":"27056:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27067:4:101","nodeType":"YulTypedName","src":"27067:4:101","type":""}],"src":"26968:234:101"},{"body":{"nativeSrc":"27314:76:101","nodeType":"YulBlock","src":"27314:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"27336:6:101","nodeType":"YulIdentifier","src":"27336:6:101"},{"kind":"number","nativeSrc":"27344:1:101","nodeType":"YulLiteral","src":"27344:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27332:3:101","nodeType":"YulIdentifier","src":"27332:3:101"},"nativeSrc":"27332:14:101","nodeType":"YulFunctionCall","src":"27332:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"27348:34:101","nodeType":"YulLiteral","src":"27348:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"27325:6:101","nodeType":"YulIdentifier","src":"27325:6:101"},"nativeSrc":"27325:58:101","nodeType":"YulFunctionCall","src":"27325:58:101"},"nativeSrc":"27325:58:101","nodeType":"YulExpressionStatement","src":"27325:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"27208:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"27306:6:101","nodeType":"YulTypedName","src":"27306:6:101","type":""}],"src":"27208:182:101"},{"body":{"nativeSrc":"27542:220:101","nodeType":"YulBlock","src":"27542:220:101","statements":[{"nativeSrc":"27552:74:101","nodeType":"YulAssignment","src":"27552:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"27618:3:101","nodeType":"YulIdentifier","src":"27618:3:101"},{"kind":"number","nativeSrc":"27623:2:101","nodeType":"YulLiteral","src":"27623:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"27559:58:101","nodeType":"YulIdentifier","src":"27559:58:101"},"nativeSrc":"27559:67:101","nodeType":"YulFunctionCall","src":"27559:67:101"},"variableNames":[{"name":"pos","nativeSrc":"27552:3:101","nodeType":"YulIdentifier","src":"27552:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"27724:3:101","nodeType":"YulIdentifier","src":"27724:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"27635:88:101","nodeType":"YulIdentifier","src":"27635:88:101"},"nativeSrc":"27635:93:101","nodeType":"YulFunctionCall","src":"27635:93:101"},"nativeSrc":"27635:93:101","nodeType":"YulExpressionStatement","src":"27635:93:101"},{"nativeSrc":"27737:19:101","nodeType":"YulAssignment","src":"27737:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"27748:3:101","nodeType":"YulIdentifier","src":"27748:3:101"},{"kind":"number","nativeSrc":"27753:2:101","nodeType":"YulLiteral","src":"27753:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27744:3:101","nodeType":"YulIdentifier","src":"27744:3:101"},"nativeSrc":"27744:12:101","nodeType":"YulFunctionCall","src":"27744:12:101"},"variableNames":[{"name":"end","nativeSrc":"27737:3:101","nodeType":"YulIdentifier","src":"27737:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"27396:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"27530:3:101","nodeType":"YulTypedName","src":"27530:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"27538:3:101","nodeType":"YulTypedName","src":"27538:3:101","type":""}],"src":"27396:366:101"},{"body":{"nativeSrc":"27939:248:101","nodeType":"YulBlock","src":"27939:248:101","statements":[{"nativeSrc":"27949:26:101","nodeType":"YulAssignment","src":"27949:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"27961:9:101","nodeType":"YulIdentifier","src":"27961:9:101"},{"kind":"number","nativeSrc":"27972:2:101","nodeType":"YulLiteral","src":"27972:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27957:3:101","nodeType":"YulIdentifier","src":"27957:3:101"},"nativeSrc":"27957:18:101","nodeType":"YulFunctionCall","src":"27957:18:101"},"variableNames":[{"name":"tail","nativeSrc":"27949:4:101","nodeType":"YulIdentifier","src":"27949:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27996:9:101","nodeType":"YulIdentifier","src":"27996:9:101"},{"kind":"number","nativeSrc":"28007:1:101","nodeType":"YulLiteral","src":"28007:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27992:3:101","nodeType":"YulIdentifier","src":"27992:3:101"},"nativeSrc":"27992:17:101","nodeType":"YulFunctionCall","src":"27992:17:101"},{"arguments":[{"name":"tail","nativeSrc":"28015:4:101","nodeType":"YulIdentifier","src":"28015:4:101"},{"name":"headStart","nativeSrc":"28021:9:101","nodeType":"YulIdentifier","src":"28021:9:101"}],"functionName":{"name":"sub","nativeSrc":"28011:3:101","nodeType":"YulIdentifier","src":"28011:3:101"},"nativeSrc":"28011:20:101","nodeType":"YulFunctionCall","src":"28011:20:101"}],"functionName":{"name":"mstore","nativeSrc":"27985:6:101","nodeType":"YulIdentifier","src":"27985:6:101"},"nativeSrc":"27985:47:101","nodeType":"YulFunctionCall","src":"27985:47:101"},"nativeSrc":"27985:47:101","nodeType":"YulExpressionStatement","src":"27985:47:101"},{"nativeSrc":"28041:139:101","nodeType":"YulAssignment","src":"28041:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"28175:4:101","nodeType":"YulIdentifier","src":"28175:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"28049:124:101","nodeType":"YulIdentifier","src":"28049:124:101"},"nativeSrc":"28049:131:101","nodeType":"YulFunctionCall","src":"28049:131:101"},"variableNames":[{"name":"tail","nativeSrc":"28041:4:101","nodeType":"YulIdentifier","src":"28041:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27768:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27919:9:101","nodeType":"YulTypedName","src":"27919:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27934:4:101","nodeType":"YulTypedName","src":"27934:4:101","type":""}],"src":"27768:419:101"},{"body":{"nativeSrc":"28299:118:101","nodeType":"YulBlock","src":"28299:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"28321:6:101","nodeType":"YulIdentifier","src":"28321:6:101"},{"kind":"number","nativeSrc":"28329:1:101","nodeType":"YulLiteral","src":"28329:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28317:3:101","nodeType":"YulIdentifier","src":"28317:3:101"},"nativeSrc":"28317:14:101","nodeType":"YulFunctionCall","src":"28317:14:101"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"28333:34:101","nodeType":"YulLiteral","src":"28333:34:101","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"28310:6:101","nodeType":"YulIdentifier","src":"28310:6:101"},"nativeSrc":"28310:58:101","nodeType":"YulFunctionCall","src":"28310:58:101"},"nativeSrc":"28310:58:101","nodeType":"YulExpressionStatement","src":"28310:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"28389:6:101","nodeType":"YulIdentifier","src":"28389:6:101"},{"kind":"number","nativeSrc":"28397:2:101","nodeType":"YulLiteral","src":"28397:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28385:3:101","nodeType":"YulIdentifier","src":"28385:3:101"},"nativeSrc":"28385:15:101","nodeType":"YulFunctionCall","src":"28385:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"28402:7:101","nodeType":"YulLiteral","src":"28402:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"28378:6:101","nodeType":"YulIdentifier","src":"28378:6:101"},"nativeSrc":"28378:32:101","nodeType":"YulFunctionCall","src":"28378:32:101"},"nativeSrc":"28378:32:101","nodeType":"YulExpressionStatement","src":"28378:32:101"}]},"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"28193:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"28291:6:101","nodeType":"YulTypedName","src":"28291:6:101","type":""}],"src":"28193:224:101"},{"body":{"nativeSrc":"28569:220:101","nodeType":"YulBlock","src":"28569:220:101","statements":[{"nativeSrc":"28579:74:101","nodeType":"YulAssignment","src":"28579:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"28645:3:101","nodeType":"YulIdentifier","src":"28645:3:101"},{"kind":"number","nativeSrc":"28650:2:101","nodeType":"YulLiteral","src":"28650:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"28586:58:101","nodeType":"YulIdentifier","src":"28586:58:101"},"nativeSrc":"28586:67:101","nodeType":"YulFunctionCall","src":"28586:67:101"},"variableNames":[{"name":"pos","nativeSrc":"28579:3:101","nodeType":"YulIdentifier","src":"28579:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"28751:3:101","nodeType":"YulIdentifier","src":"28751:3:101"}],"functionName":{"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"28662:88:101","nodeType":"YulIdentifier","src":"28662:88:101"},"nativeSrc":"28662:93:101","nodeType":"YulFunctionCall","src":"28662:93:101"},"nativeSrc":"28662:93:101","nodeType":"YulExpressionStatement","src":"28662:93:101"},{"nativeSrc":"28764:19:101","nodeType":"YulAssignment","src":"28764:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"28775:3:101","nodeType":"YulIdentifier","src":"28775:3:101"},{"kind":"number","nativeSrc":"28780:2:101","nodeType":"YulLiteral","src":"28780:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28771:3:101","nodeType":"YulIdentifier","src":"28771:3:101"},"nativeSrc":"28771:12:101","nodeType":"YulFunctionCall","src":"28771:12:101"},"variableNames":[{"name":"end","nativeSrc":"28764:3:101","nodeType":"YulIdentifier","src":"28764:3:101"}]}]},"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"28423:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"28557:3:101","nodeType":"YulTypedName","src":"28557:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"28565:3:101","nodeType":"YulTypedName","src":"28565:3:101","type":""}],"src":"28423:366:101"},{"body":{"nativeSrc":"28966:248:101","nodeType":"YulBlock","src":"28966:248:101","statements":[{"nativeSrc":"28976:26:101","nodeType":"YulAssignment","src":"28976:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"28988:9:101","nodeType":"YulIdentifier","src":"28988:9:101"},{"kind":"number","nativeSrc":"28999:2:101","nodeType":"YulLiteral","src":"28999:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28984:3:101","nodeType":"YulIdentifier","src":"28984:3:101"},"nativeSrc":"28984:18:101","nodeType":"YulFunctionCall","src":"28984:18:101"},"variableNames":[{"name":"tail","nativeSrc":"28976:4:101","nodeType":"YulIdentifier","src":"28976:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29023:9:101","nodeType":"YulIdentifier","src":"29023:9:101"},{"kind":"number","nativeSrc":"29034:1:101","nodeType":"YulLiteral","src":"29034:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29019:3:101","nodeType":"YulIdentifier","src":"29019:3:101"},"nativeSrc":"29019:17:101","nodeType":"YulFunctionCall","src":"29019:17:101"},{"arguments":[{"name":"tail","nativeSrc":"29042:4:101","nodeType":"YulIdentifier","src":"29042:4:101"},{"name":"headStart","nativeSrc":"29048:9:101","nodeType":"YulIdentifier","src":"29048:9:101"}],"functionName":{"name":"sub","nativeSrc":"29038:3:101","nodeType":"YulIdentifier","src":"29038:3:101"},"nativeSrc":"29038:20:101","nodeType":"YulFunctionCall","src":"29038:20:101"}],"functionName":{"name":"mstore","nativeSrc":"29012:6:101","nodeType":"YulIdentifier","src":"29012:6:101"},"nativeSrc":"29012:47:101","nodeType":"YulFunctionCall","src":"29012:47:101"},"nativeSrc":"29012:47:101","nodeType":"YulExpressionStatement","src":"29012:47:101"},{"nativeSrc":"29068:139:101","nodeType":"YulAssignment","src":"29068:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"29202:4:101","nodeType":"YulIdentifier","src":"29202:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"29076:124:101","nodeType":"YulIdentifier","src":"29076:124:101"},"nativeSrc":"29076:131:101","nodeType":"YulFunctionCall","src":"29076:131:101"},"variableNames":[{"name":"tail","nativeSrc":"29068:4:101","nodeType":"YulIdentifier","src":"29068:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28795:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28946:9:101","nodeType":"YulTypedName","src":"28946:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28961:4:101","nodeType":"YulTypedName","src":"28961:4:101","type":""}],"src":"28795:419:101"},{"body":{"nativeSrc":"29346:206:101","nodeType":"YulBlock","src":"29346:206:101","statements":[{"nativeSrc":"29356:26:101","nodeType":"YulAssignment","src":"29356:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"29368:9:101","nodeType":"YulIdentifier","src":"29368:9:101"},{"kind":"number","nativeSrc":"29379:2:101","nodeType":"YulLiteral","src":"29379:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29364:3:101","nodeType":"YulIdentifier","src":"29364:3:101"},"nativeSrc":"29364:18:101","nodeType":"YulFunctionCall","src":"29364:18:101"},"variableNames":[{"name":"tail","nativeSrc":"29356:4:101","nodeType":"YulIdentifier","src":"29356:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29436:6:101","nodeType":"YulIdentifier","src":"29436:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"29449:9:101","nodeType":"YulIdentifier","src":"29449:9:101"},{"kind":"number","nativeSrc":"29460:1:101","nodeType":"YulLiteral","src":"29460:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29445:3:101","nodeType":"YulIdentifier","src":"29445:3:101"},"nativeSrc":"29445:17:101","nodeType":"YulFunctionCall","src":"29445:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29392:43:101","nodeType":"YulIdentifier","src":"29392:43:101"},"nativeSrc":"29392:71:101","nodeType":"YulFunctionCall","src":"29392:71:101"},"nativeSrc":"29392:71:101","nodeType":"YulExpressionStatement","src":"29392:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29517:6:101","nodeType":"YulIdentifier","src":"29517:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"29530:9:101","nodeType":"YulIdentifier","src":"29530:9:101"},{"kind":"number","nativeSrc":"29541:2:101","nodeType":"YulLiteral","src":"29541:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29526:3:101","nodeType":"YulIdentifier","src":"29526:3:101"},"nativeSrc":"29526:18:101","nodeType":"YulFunctionCall","src":"29526:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29473:43:101","nodeType":"YulIdentifier","src":"29473:43:101"},"nativeSrc":"29473:72:101","nodeType":"YulFunctionCall","src":"29473:72:101"},"nativeSrc":"29473:72:101","nodeType":"YulExpressionStatement","src":"29473:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"29220:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29310:9:101","nodeType":"YulTypedName","src":"29310:9:101","type":""},{"name":"value1","nativeSrc":"29322:6:101","nodeType":"YulTypedName","src":"29322:6:101","type":""},{"name":"value0","nativeSrc":"29330:6:101","nodeType":"YulTypedName","src":"29330:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29341:4:101","nodeType":"YulTypedName","src":"29341:4:101","type":""}],"src":"29220:332:101"},{"body":{"nativeSrc":"29617:40:101","nodeType":"YulBlock","src":"29617:40:101","statements":[{"nativeSrc":"29628:22:101","nodeType":"YulAssignment","src":"29628:22:101","value":{"arguments":[{"name":"value","nativeSrc":"29644:5:101","nodeType":"YulIdentifier","src":"29644:5:101"}],"functionName":{"name":"mload","nativeSrc":"29638:5:101","nodeType":"YulIdentifier","src":"29638:5:101"},"nativeSrc":"29638:12:101","nodeType":"YulFunctionCall","src":"29638:12:101"},"variableNames":[{"name":"length","nativeSrc":"29628:6:101","nodeType":"YulIdentifier","src":"29628:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"29558:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29600:5:101","nodeType":"YulTypedName","src":"29600:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"29610:6:101","nodeType":"YulTypedName","src":"29610:6:101","type":""}],"src":"29558:99:101"},{"body":{"nativeSrc":"29725:77:101","nodeType":"YulBlock","src":"29725:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"29742:3:101","nodeType":"YulIdentifier","src":"29742:3:101"},{"name":"src","nativeSrc":"29747:3:101","nodeType":"YulIdentifier","src":"29747:3:101"},{"name":"length","nativeSrc":"29752:6:101","nodeType":"YulIdentifier","src":"29752:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"29736:5:101","nodeType":"YulIdentifier","src":"29736:5:101"},"nativeSrc":"29736:23:101","nodeType":"YulFunctionCall","src":"29736:23:101"},"nativeSrc":"29736:23:101","nodeType":"YulExpressionStatement","src":"29736:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"29779:3:101","nodeType":"YulIdentifier","src":"29779:3:101"},{"name":"length","nativeSrc":"29784:6:101","nodeType":"YulIdentifier","src":"29784:6:101"}],"functionName":{"name":"add","nativeSrc":"29775:3:101","nodeType":"YulIdentifier","src":"29775:3:101"},"nativeSrc":"29775:16:101","nodeType":"YulFunctionCall","src":"29775:16:101"},{"kind":"number","nativeSrc":"29793:1:101","nodeType":"YulLiteral","src":"29793:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"29768:6:101","nodeType":"YulIdentifier","src":"29768:6:101"},"nativeSrc":"29768:27:101","nodeType":"YulFunctionCall","src":"29768:27:101"},"nativeSrc":"29768:27:101","nodeType":"YulExpressionStatement","src":"29768:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"29663:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"29707:3:101","nodeType":"YulTypedName","src":"29707:3:101","type":""},{"name":"dst","nativeSrc":"29712:3:101","nodeType":"YulTypedName","src":"29712:3:101","type":""},{"name":"length","nativeSrc":"29717:6:101","nodeType":"YulTypedName","src":"29717:6:101","type":""}],"src":"29663:139:101"},{"body":{"nativeSrc":"29900:285:101","nodeType":"YulBlock","src":"29900:285:101","statements":[{"nativeSrc":"29910:53:101","nodeType":"YulVariableDeclaration","src":"29910:53:101","value":{"arguments":[{"name":"value","nativeSrc":"29957:5:101","nodeType":"YulIdentifier","src":"29957:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"29924:32:101","nodeType":"YulIdentifier","src":"29924:32:101"},"nativeSrc":"29924:39:101","nodeType":"YulFunctionCall","src":"29924:39:101"},"variables":[{"name":"length","nativeSrc":"29914:6:101","nodeType":"YulTypedName","src":"29914:6:101","type":""}]},{"nativeSrc":"29972:78:101","nodeType":"YulAssignment","src":"29972:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"30038:3:101","nodeType":"YulIdentifier","src":"30038:3:101"},{"name":"length","nativeSrc":"30043:6:101","nodeType":"YulIdentifier","src":"30043:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29979:58:101","nodeType":"YulIdentifier","src":"29979:58:101"},"nativeSrc":"29979:71:101","nodeType":"YulFunctionCall","src":"29979:71:101"},"variableNames":[{"name":"pos","nativeSrc":"29972:3:101","nodeType":"YulIdentifier","src":"29972:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30098:5:101","nodeType":"YulIdentifier","src":"30098:5:101"},{"kind":"number","nativeSrc":"30105:4:101","nodeType":"YulLiteral","src":"30105:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30094:3:101","nodeType":"YulIdentifier","src":"30094:3:101"},"nativeSrc":"30094:16:101","nodeType":"YulFunctionCall","src":"30094:16:101"},{"name":"pos","nativeSrc":"30112:3:101","nodeType":"YulIdentifier","src":"30112:3:101"},{"name":"length","nativeSrc":"30117:6:101","nodeType":"YulIdentifier","src":"30117:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"30059:34:101","nodeType":"YulIdentifier","src":"30059:34:101"},"nativeSrc":"30059:65:101","nodeType":"YulFunctionCall","src":"30059:65:101"},"nativeSrc":"30059:65:101","nodeType":"YulExpressionStatement","src":"30059:65:101"},{"nativeSrc":"30133:46:101","nodeType":"YulAssignment","src":"30133:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"30144:3:101","nodeType":"YulIdentifier","src":"30144:3:101"},{"arguments":[{"name":"length","nativeSrc":"30171:6:101","nodeType":"YulIdentifier","src":"30171:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"30149:21:101","nodeType":"YulIdentifier","src":"30149:21:101"},"nativeSrc":"30149:29:101","nodeType":"YulFunctionCall","src":"30149:29:101"}],"functionName":{"name":"add","nativeSrc":"30140:3:101","nodeType":"YulIdentifier","src":"30140:3:101"},"nativeSrc":"30140:39:101","nodeType":"YulFunctionCall","src":"30140:39:101"},"variableNames":[{"name":"end","nativeSrc":"30133:3:101","nodeType":"YulIdentifier","src":"30133:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"29808:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29881:5:101","nodeType":"YulTypedName","src":"29881:5:101","type":""},{"name":"pos","nativeSrc":"29888:3:101","nodeType":"YulTypedName","src":"29888:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29896:3:101","nodeType":"YulTypedName","src":"29896:3:101","type":""}],"src":"29808:377:101"},{"body":{"nativeSrc":"30337:277:101","nodeType":"YulBlock","src":"30337:277:101","statements":[{"nativeSrc":"30347:26:101","nodeType":"YulAssignment","src":"30347:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"30359:9:101","nodeType":"YulIdentifier","src":"30359:9:101"},{"kind":"number","nativeSrc":"30370:2:101","nodeType":"YulLiteral","src":"30370:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30355:3:101","nodeType":"YulIdentifier","src":"30355:3:101"},"nativeSrc":"30355:18:101","nodeType":"YulFunctionCall","src":"30355:18:101"},"variableNames":[{"name":"tail","nativeSrc":"30347:4:101","nodeType":"YulIdentifier","src":"30347:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"30427:6:101","nodeType":"YulIdentifier","src":"30427:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"30440:9:101","nodeType":"YulIdentifier","src":"30440:9:101"},{"kind":"number","nativeSrc":"30451:1:101","nodeType":"YulLiteral","src":"30451:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30436:3:101","nodeType":"YulIdentifier","src":"30436:3:101"},"nativeSrc":"30436:17:101","nodeType":"YulFunctionCall","src":"30436:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"30383:43:101","nodeType":"YulIdentifier","src":"30383:43:101"},"nativeSrc":"30383:71:101","nodeType":"YulFunctionCall","src":"30383:71:101"},"nativeSrc":"30383:71:101","nodeType":"YulExpressionStatement","src":"30383:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30475:9:101","nodeType":"YulIdentifier","src":"30475:9:101"},{"kind":"number","nativeSrc":"30486:2:101","nodeType":"YulLiteral","src":"30486:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30471:3:101","nodeType":"YulIdentifier","src":"30471:3:101"},"nativeSrc":"30471:18:101","nodeType":"YulFunctionCall","src":"30471:18:101"},{"arguments":[{"name":"tail","nativeSrc":"30495:4:101","nodeType":"YulIdentifier","src":"30495:4:101"},{"name":"headStart","nativeSrc":"30501:9:101","nodeType":"YulIdentifier","src":"30501:9:101"}],"functionName":{"name":"sub","nativeSrc":"30491:3:101","nodeType":"YulIdentifier","src":"30491:3:101"},"nativeSrc":"30491:20:101","nodeType":"YulFunctionCall","src":"30491:20:101"}],"functionName":{"name":"mstore","nativeSrc":"30464:6:101","nodeType":"YulIdentifier","src":"30464:6:101"},"nativeSrc":"30464:48:101","nodeType":"YulFunctionCall","src":"30464:48:101"},"nativeSrc":"30464:48:101","nodeType":"YulExpressionStatement","src":"30464:48:101"},{"nativeSrc":"30521:86:101","nodeType":"YulAssignment","src":"30521:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"30593:6:101","nodeType":"YulIdentifier","src":"30593:6:101"},{"name":"tail","nativeSrc":"30602:4:101","nodeType":"YulIdentifier","src":"30602:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"30529:63:101","nodeType":"YulIdentifier","src":"30529:63:101"},"nativeSrc":"30529:78:101","nodeType":"YulFunctionCall","src":"30529:78:101"},"variableNames":[{"name":"tail","nativeSrc":"30521:4:101","nodeType":"YulIdentifier","src":"30521:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30191:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30301:9:101","nodeType":"YulTypedName","src":"30301:9:101","type":""},{"name":"value1","nativeSrc":"30313:6:101","nodeType":"YulTypedName","src":"30313:6:101","type":""},{"name":"value0","nativeSrc":"30321:6:101","nodeType":"YulTypedName","src":"30321:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30332:4:101","nodeType":"YulTypedName","src":"30332:4:101","type":""}],"src":"30191:423:101"},{"body":{"nativeSrc":"30680:77:101","nodeType":"YulBlock","src":"30680:77:101","statements":[{"nativeSrc":"30690:22:101","nodeType":"YulAssignment","src":"30690:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"30705:6:101","nodeType":"YulIdentifier","src":"30705:6:101"}],"functionName":{"name":"mload","nativeSrc":"30699:5:101","nodeType":"YulIdentifier","src":"30699:5:101"},"nativeSrc":"30699:13:101","nodeType":"YulFunctionCall","src":"30699:13:101"},"variableNames":[{"name":"value","nativeSrc":"30690:5:101","nodeType":"YulIdentifier","src":"30690:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"30745:5:101","nodeType":"YulIdentifier","src":"30745:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"30721:23:101","nodeType":"YulIdentifier","src":"30721:23:101"},"nativeSrc":"30721:30:101","nodeType":"YulFunctionCall","src":"30721:30:101"},"nativeSrc":"30721:30:101","nodeType":"YulExpressionStatement","src":"30721:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"30620:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"30658:6:101","nodeType":"YulTypedName","src":"30658:6:101","type":""},{"name":"end","nativeSrc":"30666:3:101","nodeType":"YulTypedName","src":"30666:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"30674:5:101","nodeType":"YulTypedName","src":"30674:5:101","type":""}],"src":"30620:137:101"},{"body":{"nativeSrc":"30837:271:101","nodeType":"YulBlock","src":"30837:271:101","statements":[{"body":{"nativeSrc":"30883:83:101","nodeType":"YulBlock","src":"30883:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"30885:77:101","nodeType":"YulIdentifier","src":"30885:77:101"},"nativeSrc":"30885:79:101","nodeType":"YulFunctionCall","src":"30885:79:101"},"nativeSrc":"30885:79:101","nodeType":"YulExpressionStatement","src":"30885:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"30858:7:101","nodeType":"YulIdentifier","src":"30858:7:101"},{"name":"headStart","nativeSrc":"30867:9:101","nodeType":"YulIdentifier","src":"30867:9:101"}],"functionName":{"name":"sub","nativeSrc":"30854:3:101","nodeType":"YulIdentifier","src":"30854:3:101"},"nativeSrc":"30854:23:101","nodeType":"YulFunctionCall","src":"30854:23:101"},{"kind":"number","nativeSrc":"30879:2:101","nodeType":"YulLiteral","src":"30879:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"30850:3:101","nodeType":"YulIdentifier","src":"30850:3:101"},"nativeSrc":"30850:32:101","nodeType":"YulFunctionCall","src":"30850:32:101"},"nativeSrc":"30847:119:101","nodeType":"YulIf","src":"30847:119:101"},{"nativeSrc":"30976:125:101","nodeType":"YulBlock","src":"30976:125:101","statements":[{"nativeSrc":"30991:15:101","nodeType":"YulVariableDeclaration","src":"30991:15:101","value":{"kind":"number","nativeSrc":"31005:1:101","nodeType":"YulLiteral","src":"31005:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"30995:6:101","nodeType":"YulTypedName","src":"30995:6:101","type":""}]},{"nativeSrc":"31020:71:101","nodeType":"YulAssignment","src":"31020:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31063:9:101","nodeType":"YulIdentifier","src":"31063:9:101"},{"name":"offset","nativeSrc":"31074:6:101","nodeType":"YulIdentifier","src":"31074:6:101"}],"functionName":{"name":"add","nativeSrc":"31059:3:101","nodeType":"YulIdentifier","src":"31059:3:101"},"nativeSrc":"31059:22:101","nodeType":"YulFunctionCall","src":"31059:22:101"},{"name":"dataEnd","nativeSrc":"31083:7:101","nodeType":"YulIdentifier","src":"31083:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"31030:28:101","nodeType":"YulIdentifier","src":"31030:28:101"},"nativeSrc":"31030:61:101","nodeType":"YulFunctionCall","src":"31030:61:101"},"variableNames":[{"name":"value0","nativeSrc":"31020:6:101","nodeType":"YulIdentifier","src":"31020:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"30763:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30807:9:101","nodeType":"YulTypedName","src":"30807:9:101","type":""},{"name":"dataEnd","nativeSrc":"30818:7:101","nodeType":"YulTypedName","src":"30818:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"30830:6:101","nodeType":"YulTypedName","src":"30830:6:101","type":""}],"src":"30763:345:101"},{"body":{"nativeSrc":"31288:359:101","nodeType":"YulBlock","src":"31288:359:101","statements":[{"nativeSrc":"31298:26:101","nodeType":"YulAssignment","src":"31298:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"31310:9:101","nodeType":"YulIdentifier","src":"31310:9:101"},{"kind":"number","nativeSrc":"31321:2:101","nodeType":"YulLiteral","src":"31321:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31306:3:101","nodeType":"YulIdentifier","src":"31306:3:101"},"nativeSrc":"31306:18:101","nodeType":"YulFunctionCall","src":"31306:18:101"},"variableNames":[{"name":"tail","nativeSrc":"31298:4:101","nodeType":"YulIdentifier","src":"31298:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"31378:6:101","nodeType":"YulIdentifier","src":"31378:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"31391:9:101","nodeType":"YulIdentifier","src":"31391:9:101"},{"kind":"number","nativeSrc":"31402:1:101","nodeType":"YulLiteral","src":"31402:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31387:3:101","nodeType":"YulIdentifier","src":"31387:3:101"},"nativeSrc":"31387:17:101","nodeType":"YulFunctionCall","src":"31387:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"31334:43:101","nodeType":"YulIdentifier","src":"31334:43:101"},"nativeSrc":"31334:71:101","nodeType":"YulFunctionCall","src":"31334:71:101"},"nativeSrc":"31334:71:101","nodeType":"YulExpressionStatement","src":"31334:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"31459:6:101","nodeType":"YulIdentifier","src":"31459:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"31472:9:101","nodeType":"YulIdentifier","src":"31472:9:101"},{"kind":"number","nativeSrc":"31483:2:101","nodeType":"YulLiteral","src":"31483:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31468:3:101","nodeType":"YulIdentifier","src":"31468:3:101"},"nativeSrc":"31468:18:101","nodeType":"YulFunctionCall","src":"31468:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"31415:43:101","nodeType":"YulIdentifier","src":"31415:43:101"},"nativeSrc":"31415:72:101","nodeType":"YulFunctionCall","src":"31415:72:101"},"nativeSrc":"31415:72:101","nodeType":"YulExpressionStatement","src":"31415:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31508:9:101","nodeType":"YulIdentifier","src":"31508:9:101"},{"kind":"number","nativeSrc":"31519:2:101","nodeType":"YulLiteral","src":"31519:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31504:3:101","nodeType":"YulIdentifier","src":"31504:3:101"},"nativeSrc":"31504:18:101","nodeType":"YulFunctionCall","src":"31504:18:101"},{"arguments":[{"name":"tail","nativeSrc":"31528:4:101","nodeType":"YulIdentifier","src":"31528:4:101"},{"name":"headStart","nativeSrc":"31534:9:101","nodeType":"YulIdentifier","src":"31534:9:101"}],"functionName":{"name":"sub","nativeSrc":"31524:3:101","nodeType":"YulIdentifier","src":"31524:3:101"},"nativeSrc":"31524:20:101","nodeType":"YulFunctionCall","src":"31524:20:101"}],"functionName":{"name":"mstore","nativeSrc":"31497:6:101","nodeType":"YulIdentifier","src":"31497:6:101"},"nativeSrc":"31497:48:101","nodeType":"YulFunctionCall","src":"31497:48:101"},"nativeSrc":"31497:48:101","nodeType":"YulExpressionStatement","src":"31497:48:101"},{"nativeSrc":"31554:86:101","nodeType":"YulAssignment","src":"31554:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"31626:6:101","nodeType":"YulIdentifier","src":"31626:6:101"},{"name":"tail","nativeSrc":"31635:4:101","nodeType":"YulIdentifier","src":"31635:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"31562:63:101","nodeType":"YulIdentifier","src":"31562:63:101"},"nativeSrc":"31562:78:101","nodeType":"YulFunctionCall","src":"31562:78:101"},"variableNames":[{"name":"tail","nativeSrc":"31554:4:101","nodeType":"YulIdentifier","src":"31554:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31114:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31244:9:101","nodeType":"YulTypedName","src":"31244:9:101","type":""},{"name":"value2","nativeSrc":"31256:6:101","nodeType":"YulTypedName","src":"31256:6:101","type":""},{"name":"value1","nativeSrc":"31264:6:101","nodeType":"YulTypedName","src":"31264:6:101","type":""},{"name":"value0","nativeSrc":"31272:6:101","nodeType":"YulTypedName","src":"31272:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31283:4:101","nodeType":"YulTypedName","src":"31283:4:101","type":""}],"src":"31114:533:101"},{"body":{"nativeSrc":"31696:79:101","nodeType":"YulBlock","src":"31696:79:101","statements":[{"body":{"nativeSrc":"31753:16:101","nodeType":"YulBlock","src":"31753:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31762:1:101","nodeType":"YulLiteral","src":"31762:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"31765:1:101","nodeType":"YulLiteral","src":"31765:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31755:6:101","nodeType":"YulIdentifier","src":"31755:6:101"},"nativeSrc":"31755:12:101","nodeType":"YulFunctionCall","src":"31755:12:101"},"nativeSrc":"31755:12:101","nodeType":"YulExpressionStatement","src":"31755:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31719:5:101","nodeType":"YulIdentifier","src":"31719:5:101"},{"arguments":[{"name":"value","nativeSrc":"31744:5:101","nodeType":"YulIdentifier","src":"31744:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"31726:17:101","nodeType":"YulIdentifier","src":"31726:17:101"},"nativeSrc":"31726:24:101","nodeType":"YulFunctionCall","src":"31726:24:101"}],"functionName":{"name":"eq","nativeSrc":"31716:2:101","nodeType":"YulIdentifier","src":"31716:2:101"},"nativeSrc":"31716:35:101","nodeType":"YulFunctionCall","src":"31716:35:101"}],"functionName":{"name":"iszero","nativeSrc":"31709:6:101","nodeType":"YulIdentifier","src":"31709:6:101"},"nativeSrc":"31709:43:101","nodeType":"YulFunctionCall","src":"31709:43:101"},"nativeSrc":"31706:63:101","nodeType":"YulIf","src":"31706:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"31653:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"31689:5:101","nodeType":"YulTypedName","src":"31689:5:101","type":""}],"src":"31653:122:101"},{"body":{"nativeSrc":"31844:80:101","nodeType":"YulBlock","src":"31844:80:101","statements":[{"nativeSrc":"31854:22:101","nodeType":"YulAssignment","src":"31854:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"31869:6:101","nodeType":"YulIdentifier","src":"31869:6:101"}],"functionName":{"name":"mload","nativeSrc":"31863:5:101","nodeType":"YulIdentifier","src":"31863:5:101"},"nativeSrc":"31863:13:101","nodeType":"YulFunctionCall","src":"31863:13:101"},"variableNames":[{"name":"value","nativeSrc":"31854:5:101","nodeType":"YulIdentifier","src":"31854:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"31912:5:101","nodeType":"YulIdentifier","src":"31912:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"31885:26:101","nodeType":"YulIdentifier","src":"31885:26:101"},"nativeSrc":"31885:33:101","nodeType":"YulFunctionCall","src":"31885:33:101"},"nativeSrc":"31885:33:101","nodeType":"YulExpressionStatement","src":"31885:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"31781:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31822:6:101","nodeType":"YulTypedName","src":"31822:6:101","type":""},{"name":"end","nativeSrc":"31830:3:101","nodeType":"YulTypedName","src":"31830:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31838:5:101","nodeType":"YulTypedName","src":"31838:5:101","type":""}],"src":"31781:143:101"},{"body":{"nativeSrc":"32007:274:101","nodeType":"YulBlock","src":"32007:274:101","statements":[{"body":{"nativeSrc":"32053:83:101","nodeType":"YulBlock","src":"32053:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"32055:77:101","nodeType":"YulIdentifier","src":"32055:77:101"},"nativeSrc":"32055:79:101","nodeType":"YulFunctionCall","src":"32055:79:101"},"nativeSrc":"32055:79:101","nodeType":"YulExpressionStatement","src":"32055:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"32028:7:101","nodeType":"YulIdentifier","src":"32028:7:101"},{"name":"headStart","nativeSrc":"32037:9:101","nodeType":"YulIdentifier","src":"32037:9:101"}],"functionName":{"name":"sub","nativeSrc":"32024:3:101","nodeType":"YulIdentifier","src":"32024:3:101"},"nativeSrc":"32024:23:101","nodeType":"YulFunctionCall","src":"32024:23:101"},{"kind":"number","nativeSrc":"32049:2:101","nodeType":"YulLiteral","src":"32049:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"32020:3:101","nodeType":"YulIdentifier","src":"32020:3:101"},"nativeSrc":"32020:32:101","nodeType":"YulFunctionCall","src":"32020:32:101"},"nativeSrc":"32017:119:101","nodeType":"YulIf","src":"32017:119:101"},{"nativeSrc":"32146:128:101","nodeType":"YulBlock","src":"32146:128:101","statements":[{"nativeSrc":"32161:15:101","nodeType":"YulVariableDeclaration","src":"32161:15:101","value":{"kind":"number","nativeSrc":"32175:1:101","nodeType":"YulLiteral","src":"32175:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"32165:6:101","nodeType":"YulTypedName","src":"32165:6:101","type":""}]},{"nativeSrc":"32190:74:101","nodeType":"YulAssignment","src":"32190:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32236:9:101","nodeType":"YulIdentifier","src":"32236:9:101"},{"name":"offset","nativeSrc":"32247:6:101","nodeType":"YulIdentifier","src":"32247:6:101"}],"functionName":{"name":"add","nativeSrc":"32232:3:101","nodeType":"YulIdentifier","src":"32232:3:101"},"nativeSrc":"32232:22:101","nodeType":"YulFunctionCall","src":"32232:22:101"},{"name":"dataEnd","nativeSrc":"32256:7:101","nodeType":"YulIdentifier","src":"32256:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"32200:31:101","nodeType":"YulIdentifier","src":"32200:31:101"},"nativeSrc":"32200:64:101","nodeType":"YulFunctionCall","src":"32200:64:101"},"variableNames":[{"name":"value0","nativeSrc":"32190:6:101","nodeType":"YulIdentifier","src":"32190:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"31930:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31977:9:101","nodeType":"YulTypedName","src":"31977:9:101","type":""},{"name":"dataEnd","nativeSrc":"31988:7:101","nodeType":"YulTypedName","src":"31988:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"32000:6:101","nodeType":"YulTypedName","src":"32000:6:101","type":""}],"src":"31930:351:101"},{"body":{"nativeSrc":"32441:288:101","nodeType":"YulBlock","src":"32441:288:101","statements":[{"nativeSrc":"32451:26:101","nodeType":"YulAssignment","src":"32451:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"32463:9:101","nodeType":"YulIdentifier","src":"32463:9:101"},{"kind":"number","nativeSrc":"32474:2:101","nodeType":"YulLiteral","src":"32474:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32459:3:101","nodeType":"YulIdentifier","src":"32459:3:101"},"nativeSrc":"32459:18:101","nodeType":"YulFunctionCall","src":"32459:18:101"},"variableNames":[{"name":"tail","nativeSrc":"32451:4:101","nodeType":"YulIdentifier","src":"32451:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"32531:6:101","nodeType":"YulIdentifier","src":"32531:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"32544:9:101","nodeType":"YulIdentifier","src":"32544:9:101"},{"kind":"number","nativeSrc":"32555:1:101","nodeType":"YulLiteral","src":"32555:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32540:3:101","nodeType":"YulIdentifier","src":"32540:3:101"},"nativeSrc":"32540:17:101","nodeType":"YulFunctionCall","src":"32540:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"32487:43:101","nodeType":"YulIdentifier","src":"32487:43:101"},"nativeSrc":"32487:71:101","nodeType":"YulFunctionCall","src":"32487:71:101"},"nativeSrc":"32487:71:101","nodeType":"YulExpressionStatement","src":"32487:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"32612:6:101","nodeType":"YulIdentifier","src":"32612:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"32625:9:101","nodeType":"YulIdentifier","src":"32625:9:101"},{"kind":"number","nativeSrc":"32636:2:101","nodeType":"YulLiteral","src":"32636:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32621:3:101","nodeType":"YulIdentifier","src":"32621:3:101"},"nativeSrc":"32621:18:101","nodeType":"YulFunctionCall","src":"32621:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"32568:43:101","nodeType":"YulIdentifier","src":"32568:43:101"},"nativeSrc":"32568:72:101","nodeType":"YulFunctionCall","src":"32568:72:101"},"nativeSrc":"32568:72:101","nodeType":"YulExpressionStatement","src":"32568:72:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"32694:6:101","nodeType":"YulIdentifier","src":"32694:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"32707:9:101","nodeType":"YulIdentifier","src":"32707:9:101"},{"kind":"number","nativeSrc":"32718:2:101","nodeType":"YulLiteral","src":"32718:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32703:3:101","nodeType":"YulIdentifier","src":"32703:3:101"},"nativeSrc":"32703:18:101","nodeType":"YulFunctionCall","src":"32703:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"32650:43:101","nodeType":"YulIdentifier","src":"32650:43:101"},"nativeSrc":"32650:72:101","nodeType":"YulFunctionCall","src":"32650:72:101"},"nativeSrc":"32650:72:101","nodeType":"YulExpressionStatement","src":"32650:72:101"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"32287:442:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32397:9:101","nodeType":"YulTypedName","src":"32397:9:101","type":""},{"name":"value2","nativeSrc":"32409:6:101","nodeType":"YulTypedName","src":"32409:6:101","type":""},{"name":"value1","nativeSrc":"32417:6:101","nodeType":"YulTypedName","src":"32417:6:101","type":""},{"name":"value0","nativeSrc":"32425:6:101","nodeType":"YulTypedName","src":"32425:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32436:4:101","nodeType":"YulTypedName","src":"32436:4:101","type":""}],"src":"32287:442:101"},{"body":{"nativeSrc":"32841:74:101","nodeType":"YulBlock","src":"32841:74:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"32863:6:101","nodeType":"YulIdentifier","src":"32863:6:101"},{"kind":"number","nativeSrc":"32871:1:101","nodeType":"YulLiteral","src":"32871:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32859:3:101","nodeType":"YulIdentifier","src":"32859:3:101"},"nativeSrc":"32859:14:101","nodeType":"YulFunctionCall","src":"32859:14:101"},{"hexValue":"696e76616c696420726573696c69656e74206f7261636c65207072696365","kind":"string","nativeSrc":"32875:32:101","nodeType":"YulLiteral","src":"32875:32:101","type":"","value":"invalid resilient oracle price"}],"functionName":{"name":"mstore","nativeSrc":"32852:6:101","nodeType":"YulIdentifier","src":"32852:6:101"},"nativeSrc":"32852:56:101","nodeType":"YulFunctionCall","src":"32852:56:101"},"nativeSrc":"32852:56:101","nodeType":"YulExpressionStatement","src":"32852:56:101"}]},"name":"store_literal_in_memory_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277","nativeSrc":"32735:180:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"32833:6:101","nodeType":"YulTypedName","src":"32833:6:101","type":""}],"src":"32735:180:101"},{"body":{"nativeSrc":"33067:220:101","nodeType":"YulBlock","src":"33067:220:101","statements":[{"nativeSrc":"33077:74:101","nodeType":"YulAssignment","src":"33077:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"33143:3:101","nodeType":"YulIdentifier","src":"33143:3:101"},{"kind":"number","nativeSrc":"33148:2:101","nodeType":"YulLiteral","src":"33148:2:101","type":"","value":"30"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"33084:58:101","nodeType":"YulIdentifier","src":"33084:58:101"},"nativeSrc":"33084:67:101","nodeType":"YulFunctionCall","src":"33084:67:101"},"variableNames":[{"name":"pos","nativeSrc":"33077:3:101","nodeType":"YulIdentifier","src":"33077:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"33249:3:101","nodeType":"YulIdentifier","src":"33249:3:101"}],"functionName":{"name":"store_literal_in_memory_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277","nativeSrc":"33160:88:101","nodeType":"YulIdentifier","src":"33160:88:101"},"nativeSrc":"33160:93:101","nodeType":"YulFunctionCall","src":"33160:93:101"},"nativeSrc":"33160:93:101","nodeType":"YulExpressionStatement","src":"33160:93:101"},{"nativeSrc":"33262:19:101","nodeType":"YulAssignment","src":"33262:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"33273:3:101","nodeType":"YulIdentifier","src":"33273:3:101"},{"kind":"number","nativeSrc":"33278:2:101","nodeType":"YulLiteral","src":"33278:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33269:3:101","nodeType":"YulIdentifier","src":"33269:3:101"},"nativeSrc":"33269:12:101","nodeType":"YulFunctionCall","src":"33269:12:101"},"variableNames":[{"name":"end","nativeSrc":"33262:3:101","nodeType":"YulIdentifier","src":"33262:3:101"}]}]},"name":"abi_encode_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277_to_t_string_memory_ptr_fromStack","nativeSrc":"32921:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"33055:3:101","nodeType":"YulTypedName","src":"33055:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"33063:3:101","nodeType":"YulTypedName","src":"33063:3:101","type":""}],"src":"32921:366:101"},{"body":{"nativeSrc":"33464:248:101","nodeType":"YulBlock","src":"33464:248:101","statements":[{"nativeSrc":"33474:26:101","nodeType":"YulAssignment","src":"33474:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"33486:9:101","nodeType":"YulIdentifier","src":"33486:9:101"},{"kind":"number","nativeSrc":"33497:2:101","nodeType":"YulLiteral","src":"33497:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33482:3:101","nodeType":"YulIdentifier","src":"33482:3:101"},"nativeSrc":"33482:18:101","nodeType":"YulFunctionCall","src":"33482:18:101"},"variableNames":[{"name":"tail","nativeSrc":"33474:4:101","nodeType":"YulIdentifier","src":"33474:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33521:9:101","nodeType":"YulIdentifier","src":"33521:9:101"},{"kind":"number","nativeSrc":"33532:1:101","nodeType":"YulLiteral","src":"33532:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33517:3:101","nodeType":"YulIdentifier","src":"33517:3:101"},"nativeSrc":"33517:17:101","nodeType":"YulFunctionCall","src":"33517:17:101"},{"arguments":[{"name":"tail","nativeSrc":"33540:4:101","nodeType":"YulIdentifier","src":"33540:4:101"},{"name":"headStart","nativeSrc":"33546:9:101","nodeType":"YulIdentifier","src":"33546:9:101"}],"functionName":{"name":"sub","nativeSrc":"33536:3:101","nodeType":"YulIdentifier","src":"33536:3:101"},"nativeSrc":"33536:20:101","nodeType":"YulFunctionCall","src":"33536:20:101"}],"functionName":{"name":"mstore","nativeSrc":"33510:6:101","nodeType":"YulIdentifier","src":"33510:6:101"},"nativeSrc":"33510:47:101","nodeType":"YulFunctionCall","src":"33510:47:101"},"nativeSrc":"33510:47:101","nodeType":"YulExpressionStatement","src":"33510:47:101"},{"nativeSrc":"33566:139:101","nodeType":"YulAssignment","src":"33566:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"33700:4:101","nodeType":"YulIdentifier","src":"33700:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277_to_t_string_memory_ptr_fromStack","nativeSrc":"33574:124:101","nodeType":"YulIdentifier","src":"33574:124:101"},"nativeSrc":"33574:131:101","nodeType":"YulFunctionCall","src":"33574:131:101"},"variableNames":[{"name":"tail","nativeSrc":"33566:4:101","nodeType":"YulIdentifier","src":"33566:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33293:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33444:9:101","nodeType":"YulTypedName","src":"33444:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33459:4:101","nodeType":"YulTypedName","src":"33459:4:101","type":""}],"src":"33293:419:101"},{"body":{"nativeSrc":"33781:80:101","nodeType":"YulBlock","src":"33781:80:101","statements":[{"nativeSrc":"33791:22:101","nodeType":"YulAssignment","src":"33791:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"33806:6:101","nodeType":"YulIdentifier","src":"33806:6:101"}],"functionName":{"name":"mload","nativeSrc":"33800:5:101","nodeType":"YulIdentifier","src":"33800:5:101"},"nativeSrc":"33800:13:101","nodeType":"YulFunctionCall","src":"33800:13:101"},"variableNames":[{"name":"value","nativeSrc":"33791:5:101","nodeType":"YulIdentifier","src":"33791:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33849:5:101","nodeType":"YulIdentifier","src":"33849:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"33822:26:101","nodeType":"YulIdentifier","src":"33822:26:101"},"nativeSrc":"33822:33:101","nodeType":"YulFunctionCall","src":"33822:33:101"},"nativeSrc":"33822:33:101","nodeType":"YulExpressionStatement","src":"33822:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"33718:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33759:6:101","nodeType":"YulTypedName","src":"33759:6:101","type":""},{"name":"end","nativeSrc":"33767:3:101","nodeType":"YulTypedName","src":"33767:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"33775:5:101","nodeType":"YulTypedName","src":"33775:5:101","type":""}],"src":"33718:143:101"},{"body":{"nativeSrc":"33944:274:101","nodeType":"YulBlock","src":"33944:274:101","statements":[{"body":{"nativeSrc":"33990:83:101","nodeType":"YulBlock","src":"33990:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"33992:77:101","nodeType":"YulIdentifier","src":"33992:77:101"},"nativeSrc":"33992:79:101","nodeType":"YulFunctionCall","src":"33992:79:101"},"nativeSrc":"33992:79:101","nodeType":"YulExpressionStatement","src":"33992:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33965:7:101","nodeType":"YulIdentifier","src":"33965:7:101"},{"name":"headStart","nativeSrc":"33974:9:101","nodeType":"YulIdentifier","src":"33974:9:101"}],"functionName":{"name":"sub","nativeSrc":"33961:3:101","nodeType":"YulIdentifier","src":"33961:3:101"},"nativeSrc":"33961:23:101","nodeType":"YulFunctionCall","src":"33961:23:101"},{"kind":"number","nativeSrc":"33986:2:101","nodeType":"YulLiteral","src":"33986:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33957:3:101","nodeType":"YulIdentifier","src":"33957:3:101"},"nativeSrc":"33957:32:101","nodeType":"YulFunctionCall","src":"33957:32:101"},"nativeSrc":"33954:119:101","nodeType":"YulIf","src":"33954:119:101"},{"nativeSrc":"34083:128:101","nodeType":"YulBlock","src":"34083:128:101","statements":[{"nativeSrc":"34098:15:101","nodeType":"YulVariableDeclaration","src":"34098:15:101","value":{"kind":"number","nativeSrc":"34112:1:101","nodeType":"YulLiteral","src":"34112:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"34102:6:101","nodeType":"YulTypedName","src":"34102:6:101","type":""}]},{"nativeSrc":"34127:74:101","nodeType":"YulAssignment","src":"34127:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34173:9:101","nodeType":"YulIdentifier","src":"34173:9:101"},{"name":"offset","nativeSrc":"34184:6:101","nodeType":"YulIdentifier","src":"34184:6:101"}],"functionName":{"name":"add","nativeSrc":"34169:3:101","nodeType":"YulIdentifier","src":"34169:3:101"},"nativeSrc":"34169:22:101","nodeType":"YulFunctionCall","src":"34169:22:101"},{"name":"dataEnd","nativeSrc":"34193:7:101","nodeType":"YulIdentifier","src":"34193:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"34137:31:101","nodeType":"YulIdentifier","src":"34137:31:101"},"nativeSrc":"34137:64:101","nodeType":"YulFunctionCall","src":"34137:64:101"},"variableNames":[{"name":"value0","nativeSrc":"34127:6:101","nodeType":"YulIdentifier","src":"34127:6:101"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"33867:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33914:9:101","nodeType":"YulTypedName","src":"33914:9:101","type":""},{"name":"dataEnd","nativeSrc":"33925:7:101","nodeType":"YulTypedName","src":"33925:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33937:6:101","nodeType":"YulTypedName","src":"33937:6:101","type":""}],"src":"33867:351:101"},{"body":{"nativeSrc":"34330:124:101","nodeType":"YulBlock","src":"34330:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"34352:6:101","nodeType":"YulIdentifier","src":"34352:6:101"},{"kind":"number","nativeSrc":"34360:1:101","nodeType":"YulLiteral","src":"34360:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34348:3:101","nodeType":"YulIdentifier","src":"34348:3:101"},"nativeSrc":"34348:14:101","nodeType":"YulFunctionCall","src":"34348:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"34364:34:101","nodeType":"YulLiteral","src":"34364:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"34341:6:101","nodeType":"YulIdentifier","src":"34341:6:101"},"nativeSrc":"34341:58:101","nodeType":"YulFunctionCall","src":"34341:58:101"},"nativeSrc":"34341:58:101","nodeType":"YulExpressionStatement","src":"34341:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"34420:6:101","nodeType":"YulIdentifier","src":"34420:6:101"},{"kind":"number","nativeSrc":"34428:2:101","nodeType":"YulLiteral","src":"34428:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34416:3:101","nodeType":"YulIdentifier","src":"34416:3:101"},"nativeSrc":"34416:15:101","nodeType":"YulFunctionCall","src":"34416:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"34433:13:101","nodeType":"YulLiteral","src":"34433:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"34409:6:101","nodeType":"YulIdentifier","src":"34409:6:101"},"nativeSrc":"34409:38:101","nodeType":"YulFunctionCall","src":"34409:38:101"},"nativeSrc":"34409:38:101","nodeType":"YulExpressionStatement","src":"34409:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"34224:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"34322:6:101","nodeType":"YulTypedName","src":"34322:6:101","type":""}],"src":"34224:230:101"},{"body":{"nativeSrc":"34606:220:101","nodeType":"YulBlock","src":"34606:220:101","statements":[{"nativeSrc":"34616:74:101","nodeType":"YulAssignment","src":"34616:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"34682:3:101","nodeType":"YulIdentifier","src":"34682:3:101"},{"kind":"number","nativeSrc":"34687:2:101","nodeType":"YulLiteral","src":"34687:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"34623:58:101","nodeType":"YulIdentifier","src":"34623:58:101"},"nativeSrc":"34623:67:101","nodeType":"YulFunctionCall","src":"34623:67:101"},"variableNames":[{"name":"pos","nativeSrc":"34616:3:101","nodeType":"YulIdentifier","src":"34616:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"34788:3:101","nodeType":"YulIdentifier","src":"34788:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"34699:88:101","nodeType":"YulIdentifier","src":"34699:88:101"},"nativeSrc":"34699:93:101","nodeType":"YulFunctionCall","src":"34699:93:101"},"nativeSrc":"34699:93:101","nodeType":"YulExpressionStatement","src":"34699:93:101"},{"nativeSrc":"34801:19:101","nodeType":"YulAssignment","src":"34801:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"34812:3:101","nodeType":"YulIdentifier","src":"34812:3:101"},{"kind":"number","nativeSrc":"34817:2:101","nodeType":"YulLiteral","src":"34817:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34808:3:101","nodeType":"YulIdentifier","src":"34808:3:101"},"nativeSrc":"34808:12:101","nodeType":"YulFunctionCall","src":"34808:12:101"},"variableNames":[{"name":"end","nativeSrc":"34801:3:101","nodeType":"YulIdentifier","src":"34801:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"34460:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"34594:3:101","nodeType":"YulTypedName","src":"34594:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34602:3:101","nodeType":"YulTypedName","src":"34602:3:101","type":""}],"src":"34460:366:101"},{"body":{"nativeSrc":"35003:248:101","nodeType":"YulBlock","src":"35003:248:101","statements":[{"nativeSrc":"35013:26:101","nodeType":"YulAssignment","src":"35013:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"35025:9:101","nodeType":"YulIdentifier","src":"35025:9:101"},{"kind":"number","nativeSrc":"35036:2:101","nodeType":"YulLiteral","src":"35036:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35021:3:101","nodeType":"YulIdentifier","src":"35021:3:101"},"nativeSrc":"35021:18:101","nodeType":"YulFunctionCall","src":"35021:18:101"},"variableNames":[{"name":"tail","nativeSrc":"35013:4:101","nodeType":"YulIdentifier","src":"35013:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35060:9:101","nodeType":"YulIdentifier","src":"35060:9:101"},{"kind":"number","nativeSrc":"35071:1:101","nodeType":"YulLiteral","src":"35071:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"35056:3:101","nodeType":"YulIdentifier","src":"35056:3:101"},"nativeSrc":"35056:17:101","nodeType":"YulFunctionCall","src":"35056:17:101"},{"arguments":[{"name":"tail","nativeSrc":"35079:4:101","nodeType":"YulIdentifier","src":"35079:4:101"},{"name":"headStart","nativeSrc":"35085:9:101","nodeType":"YulIdentifier","src":"35085:9:101"}],"functionName":{"name":"sub","nativeSrc":"35075:3:101","nodeType":"YulIdentifier","src":"35075:3:101"},"nativeSrc":"35075:20:101","nodeType":"YulFunctionCall","src":"35075:20:101"}],"functionName":{"name":"mstore","nativeSrc":"35049:6:101","nodeType":"YulIdentifier","src":"35049:6:101"},"nativeSrc":"35049:47:101","nodeType":"YulFunctionCall","src":"35049:47:101"},"nativeSrc":"35049:47:101","nodeType":"YulExpressionStatement","src":"35049:47:101"},{"nativeSrc":"35105:139:101","nodeType":"YulAssignment","src":"35105:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"35239:4:101","nodeType":"YulIdentifier","src":"35239:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"35113:124:101","nodeType":"YulIdentifier","src":"35113:124:101"},"nativeSrc":"35113:131:101","nodeType":"YulFunctionCall","src":"35113:131:101"},"variableNames":[{"name":"tail","nativeSrc":"35105:4:101","nodeType":"YulIdentifier","src":"35105:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34832:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34983:9:101","nodeType":"YulTypedName","src":"34983:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34998:4:101","nodeType":"YulTypedName","src":"34998:4:101","type":""}],"src":"34832:419:101"},{"body":{"nativeSrc":"35363:64:101","nodeType":"YulBlock","src":"35363:64:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"35385:6:101","nodeType":"YulIdentifier","src":"35385:6:101"},{"kind":"number","nativeSrc":"35393:1:101","nodeType":"YulLiteral","src":"35393:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"35381:3:101","nodeType":"YulIdentifier","src":"35381:3:101"},"nativeSrc":"35381:14:101","nodeType":"YulFunctionCall","src":"35381:14:101"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"35397:22:101","nodeType":"YulLiteral","src":"35397:22:101","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"35374:6:101","nodeType":"YulIdentifier","src":"35374:6:101"},"nativeSrc":"35374:46:101","nodeType":"YulFunctionCall","src":"35374:46:101"},"nativeSrc":"35374:46:101","nodeType":"YulExpressionStatement","src":"35374:46:101"}]},"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"35257:170:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"35355:6:101","nodeType":"YulTypedName","src":"35355:6:101","type":""}],"src":"35257:170:101"},{"body":{"nativeSrc":"35579:220:101","nodeType":"YulBlock","src":"35579:220:101","statements":[{"nativeSrc":"35589:74:101","nodeType":"YulAssignment","src":"35589:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"35655:3:101","nodeType":"YulIdentifier","src":"35655:3:101"},{"kind":"number","nativeSrc":"35660:2:101","nodeType":"YulLiteral","src":"35660:2:101","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"35596:58:101","nodeType":"YulIdentifier","src":"35596:58:101"},"nativeSrc":"35596:67:101","nodeType":"YulFunctionCall","src":"35596:67:101"},"variableNames":[{"name":"pos","nativeSrc":"35589:3:101","nodeType":"YulIdentifier","src":"35589:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"35761:3:101","nodeType":"YulIdentifier","src":"35761:3:101"}],"functionName":{"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"35672:88:101","nodeType":"YulIdentifier","src":"35672:88:101"},"nativeSrc":"35672:93:101","nodeType":"YulFunctionCall","src":"35672:93:101"},"nativeSrc":"35672:93:101","nodeType":"YulExpressionStatement","src":"35672:93:101"},{"nativeSrc":"35774:19:101","nodeType":"YulAssignment","src":"35774:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"35785:3:101","nodeType":"YulIdentifier","src":"35785:3:101"},{"kind":"number","nativeSrc":"35790:2:101","nodeType":"YulLiteral","src":"35790:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35781:3:101","nodeType":"YulIdentifier","src":"35781:3:101"},"nativeSrc":"35781:12:101","nodeType":"YulFunctionCall","src":"35781:12:101"},"variableNames":[{"name":"end","nativeSrc":"35774:3:101","nodeType":"YulIdentifier","src":"35774:3:101"}]}]},"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"35433:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"35567:3:101","nodeType":"YulTypedName","src":"35567:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"35575:3:101","nodeType":"YulTypedName","src":"35575:3:101","type":""}],"src":"35433:366:101"},{"body":{"nativeSrc":"35976:248:101","nodeType":"YulBlock","src":"35976:248:101","statements":[{"nativeSrc":"35986:26:101","nodeType":"YulAssignment","src":"35986:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"35998:9:101","nodeType":"YulIdentifier","src":"35998:9:101"},{"kind":"number","nativeSrc":"36009:2:101","nodeType":"YulLiteral","src":"36009:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35994:3:101","nodeType":"YulIdentifier","src":"35994:3:101"},"nativeSrc":"35994:18:101","nodeType":"YulFunctionCall","src":"35994:18:101"},"variableNames":[{"name":"tail","nativeSrc":"35986:4:101","nodeType":"YulIdentifier","src":"35986:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36033:9:101","nodeType":"YulIdentifier","src":"36033:9:101"},{"kind":"number","nativeSrc":"36044:1:101","nodeType":"YulLiteral","src":"36044:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"36029:3:101","nodeType":"YulIdentifier","src":"36029:3:101"},"nativeSrc":"36029:17:101","nodeType":"YulFunctionCall","src":"36029:17:101"},{"arguments":[{"name":"tail","nativeSrc":"36052:4:101","nodeType":"YulIdentifier","src":"36052:4:101"},{"name":"headStart","nativeSrc":"36058:9:101","nodeType":"YulIdentifier","src":"36058:9:101"}],"functionName":{"name":"sub","nativeSrc":"36048:3:101","nodeType":"YulIdentifier","src":"36048:3:101"},"nativeSrc":"36048:20:101","nodeType":"YulFunctionCall","src":"36048:20:101"}],"functionName":{"name":"mstore","nativeSrc":"36022:6:101","nodeType":"YulIdentifier","src":"36022:6:101"},"nativeSrc":"36022:47:101","nodeType":"YulFunctionCall","src":"36022:47:101"},"nativeSrc":"36022:47:101","nodeType":"YulExpressionStatement","src":"36022:47:101"},{"nativeSrc":"36078:139:101","nodeType":"YulAssignment","src":"36078:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"36212:4:101","nodeType":"YulIdentifier","src":"36212:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"36086:124:101","nodeType":"YulIdentifier","src":"36086:124:101"},"nativeSrc":"36086:131:101","nodeType":"YulFunctionCall","src":"36086:131:101"},"variableNames":[{"name":"tail","nativeSrc":"36078:4:101","nodeType":"YulIdentifier","src":"36078:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35805:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35956:9:101","nodeType":"YulTypedName","src":"35956:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35971:4:101","nodeType":"YulTypedName","src":"35971:4:101","type":""}],"src":"35805:419:101"},{"body":{"nativeSrc":"36356:206:101","nodeType":"YulBlock","src":"36356:206:101","statements":[{"nativeSrc":"36366:26:101","nodeType":"YulAssignment","src":"36366:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"36378:9:101","nodeType":"YulIdentifier","src":"36378:9:101"},{"kind":"number","nativeSrc":"36389:2:101","nodeType":"YulLiteral","src":"36389:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36374:3:101","nodeType":"YulIdentifier","src":"36374:3:101"},"nativeSrc":"36374:18:101","nodeType":"YulFunctionCall","src":"36374:18:101"},"variableNames":[{"name":"tail","nativeSrc":"36366:4:101","nodeType":"YulIdentifier","src":"36366:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"36446:6:101","nodeType":"YulIdentifier","src":"36446:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"36459:9:101","nodeType":"YulIdentifier","src":"36459:9:101"},{"kind":"number","nativeSrc":"36470:1:101","nodeType":"YulLiteral","src":"36470:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"36455:3:101","nodeType":"YulIdentifier","src":"36455:3:101"},"nativeSrc":"36455:17:101","nodeType":"YulFunctionCall","src":"36455:17:101"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"36402:43:101","nodeType":"YulIdentifier","src":"36402:43:101"},"nativeSrc":"36402:71:101","nodeType":"YulFunctionCall","src":"36402:71:101"},"nativeSrc":"36402:71:101","nodeType":"YulExpressionStatement","src":"36402:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"36527:6:101","nodeType":"YulIdentifier","src":"36527:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"36540:9:101","nodeType":"YulIdentifier","src":"36540:9:101"},{"kind":"number","nativeSrc":"36551:2:101","nodeType":"YulLiteral","src":"36551:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36536:3:101","nodeType":"YulIdentifier","src":"36536:3:101"},"nativeSrc":"36536:18:101","nodeType":"YulFunctionCall","src":"36536:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"36483:43:101","nodeType":"YulIdentifier","src":"36483:43:101"},"nativeSrc":"36483:72:101","nodeType":"YulFunctionCall","src":"36483:72:101"},"nativeSrc":"36483:72:101","nodeType":"YulExpressionStatement","src":"36483:72:101"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nativeSrc":"36230:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36320:9:101","nodeType":"YulTypedName","src":"36320:9:101","type":""},{"name":"value1","nativeSrc":"36332:6:101","nodeType":"YulTypedName","src":"36332:6:101","type":""},{"name":"value0","nativeSrc":"36340:6:101","nodeType":"YulTypedName","src":"36340:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36351:4:101","nodeType":"YulTypedName","src":"36351:4:101","type":""}],"src":"36230:332:101"},{"body":{"nativeSrc":"36674:60:101","nodeType":"YulBlock","src":"36674:60:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"36696:6:101","nodeType":"YulIdentifier","src":"36696:6:101"},{"kind":"number","nativeSrc":"36704:1:101","nodeType":"YulLiteral","src":"36704:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"36692:3:101","nodeType":"YulIdentifier","src":"36692:3:101"},"nativeSrc":"36692:14:101","nodeType":"YulFunctionCall","src":"36692:14:101"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"36708:18:101","nodeType":"YulLiteral","src":"36708:18:101","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"36685:6:101","nodeType":"YulIdentifier","src":"36685:6:101"},"nativeSrc":"36685:42:101","nodeType":"YulFunctionCall","src":"36685:42:101"},"nativeSrc":"36685:42:101","nodeType":"YulExpressionStatement","src":"36685:42:101"}]},"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"36568:166:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"36666:6:101","nodeType":"YulTypedName","src":"36666:6:101","type":""}],"src":"36568:166:101"},{"body":{"nativeSrc":"36886:220:101","nodeType":"YulBlock","src":"36886:220:101","statements":[{"nativeSrc":"36896:74:101","nodeType":"YulAssignment","src":"36896:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"36962:3:101","nodeType":"YulIdentifier","src":"36962:3:101"},{"kind":"number","nativeSrc":"36967:2:101","nodeType":"YulLiteral","src":"36967:2:101","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"36903:58:101","nodeType":"YulIdentifier","src":"36903:58:101"},"nativeSrc":"36903:67:101","nodeType":"YulFunctionCall","src":"36903:67:101"},"variableNames":[{"name":"pos","nativeSrc":"36896:3:101","nodeType":"YulIdentifier","src":"36896:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"37068:3:101","nodeType":"YulIdentifier","src":"37068:3:101"}],"functionName":{"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"36979:88:101","nodeType":"YulIdentifier","src":"36979:88:101"},"nativeSrc":"36979:93:101","nodeType":"YulFunctionCall","src":"36979:93:101"},"nativeSrc":"36979:93:101","nodeType":"YulExpressionStatement","src":"36979:93:101"},{"nativeSrc":"37081:19:101","nodeType":"YulAssignment","src":"37081:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"37092:3:101","nodeType":"YulIdentifier","src":"37092:3:101"},{"kind":"number","nativeSrc":"37097:2:101","nodeType":"YulLiteral","src":"37097:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37088:3:101","nodeType":"YulIdentifier","src":"37088:3:101"},"nativeSrc":"37088:12:101","nodeType":"YulFunctionCall","src":"37088:12:101"},"variableNames":[{"name":"end","nativeSrc":"37081:3:101","nodeType":"YulIdentifier","src":"37081:3:101"}]}]},"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"36740:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"36874:3:101","nodeType":"YulTypedName","src":"36874:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"36882:3:101","nodeType":"YulTypedName","src":"36882:3:101","type":""}],"src":"36740:366:101"},{"body":{"nativeSrc":"37283:248:101","nodeType":"YulBlock","src":"37283:248:101","statements":[{"nativeSrc":"37293:26:101","nodeType":"YulAssignment","src":"37293:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"37305:9:101","nodeType":"YulIdentifier","src":"37305:9:101"},{"kind":"number","nativeSrc":"37316:2:101","nodeType":"YulLiteral","src":"37316:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37301:3:101","nodeType":"YulIdentifier","src":"37301:3:101"},"nativeSrc":"37301:18:101","nodeType":"YulFunctionCall","src":"37301:18:101"},"variableNames":[{"name":"tail","nativeSrc":"37293:4:101","nodeType":"YulIdentifier","src":"37293:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37340:9:101","nodeType":"YulIdentifier","src":"37340:9:101"},{"kind":"number","nativeSrc":"37351:1:101","nodeType":"YulLiteral","src":"37351:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"37336:3:101","nodeType":"YulIdentifier","src":"37336:3:101"},"nativeSrc":"37336:17:101","nodeType":"YulFunctionCall","src":"37336:17:101"},{"arguments":[{"name":"tail","nativeSrc":"37359:4:101","nodeType":"YulIdentifier","src":"37359:4:101"},{"name":"headStart","nativeSrc":"37365:9:101","nodeType":"YulIdentifier","src":"37365:9:101"}],"functionName":{"name":"sub","nativeSrc":"37355:3:101","nodeType":"YulIdentifier","src":"37355:3:101"},"nativeSrc":"37355:20:101","nodeType":"YulFunctionCall","src":"37355:20:101"}],"functionName":{"name":"mstore","nativeSrc":"37329:6:101","nodeType":"YulIdentifier","src":"37329:6:101"},"nativeSrc":"37329:47:101","nodeType":"YulFunctionCall","src":"37329:47:101"},"nativeSrc":"37329:47:101","nodeType":"YulExpressionStatement","src":"37329:47:101"},{"nativeSrc":"37385:139:101","nodeType":"YulAssignment","src":"37385:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"37519:4:101","nodeType":"YulIdentifier","src":"37519:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"37393:124:101","nodeType":"YulIdentifier","src":"37393:124:101"},"nativeSrc":"37393:131:101","nodeType":"YulFunctionCall","src":"37393:131:101"},"variableNames":[{"name":"tail","nativeSrc":"37385:4:101","nodeType":"YulIdentifier","src":"37385:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37112:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37263:9:101","nodeType":"YulTypedName","src":"37263:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37278:4:101","nodeType":"YulTypedName","src":"37278:4:101","type":""}],"src":"37112:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_BoundValidatorInterface_$3698_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_BoundValidatorInterface_$3698_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_BoundValidatorInterface_$3698_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_BoundValidatorInterface_$3698__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_BoundValidatorInterface_$3698_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_enum$_OracleRole_$2465(value) {\n        if iszero(lt(value, 3)) { revert(0, 0) }\n    }\n\n    function abi_decode_t_enum$_OracleRole_$2465(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_enum$_OracleRole_$2465(value)\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_addresst_enum$_OracleRole_$2465t_bool(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_enum$_OracleRole_$2465(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function array_allocation_size_t_array$_t_address_$3_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n    }\n\n    // address[3]\n    function abi_decode_available_length_t_array$_t_address_$3_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_address_$3_memory_ptr(length))\n        let dst := array\n\n        let srcEnd := add(offset, mul(length, 0x20))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_address(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // address[3]\n    function abi_decode_t_array$_t_address_$3_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := 0x03\n        array := abi_decode_available_length_t_array$_t_address_$3_memory_ptr(offset, length, end)\n    }\n\n    function array_allocation_size_t_array$_t_bool_$3_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n    }\n\n    // bool[3]\n    function abi_decode_available_length_t_array$_t_bool_$3_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_bool_$3_memory_ptr(length))\n        let dst := array\n\n        let srcEnd := add(offset, mul(length, 0x20))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_bool(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // bool[3]\n    function abi_decode_t_array$_t_bool_$3_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := 0x03\n        array := abi_decode_available_length_t_array$_t_bool_$3_memory_ptr(offset, length, end)\n    }\n\n    // struct ResilientOracle.TokenConfig\n    function abi_decode_t_struct$_TokenConfig_$2482_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x0100) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x80)\n\n        {\n            // asset\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // oracles\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_array$_t_address_$3_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // enableFlagsForOracles\n\n            let offset := 128\n\n            mstore(add(value, 0x40), abi_decode_t_array$_t_bool_$3_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // cachingEnabled\n\n            let offset := 224\n\n            mstore(add(value, 0x60), abi_decode_t_bool(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct ResilientOracle.TokenConfig[]\n    function abi_decode_available_length_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr(length))\n        let dst := array\n\n        mstore(array, length)\n        dst := add(array, 0x20)\n\n        let srcEnd := add(offset, mul(length, 0x0100))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x0100) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_struct$_TokenConfig_$2482_memory_ptr(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // struct ResilientOracle.TokenConfig[]\n    function abi_decode_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_array$_t_struct$_TokenConfig_$2482_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_enum$_OracleRole_$2465(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_enum$_OracleRole_$2465(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_bool_to_t_bool_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_enum$_OracleRole_$2465(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_enum$_OracleRole_$2465(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_TokenConfig_$2482_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 256) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_TokenConfig_$2482_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function array_length_t_array$_t_address_$3_memory_ptr(value) -> length {\n\n        length := 0x03\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_address_$3_memory_ptr(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function array_dataslot_t_array$_t_address_$3_memory_ptr(ptr) -> data {\n        data := ptr\n\n    }\n\n    function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n        abi_encode_t_address_to_t_address(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_address_$3_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // address[3] -> address[3]\n    function abi_encode_t_array$_t_address_$3_memory_ptr_to_t_array$_t_address_$3_memory_ptr(value, pos)  {\n        let length := array_length_t_array$_t_address_$3_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_address_$3_memory_ptr(pos, length)\n        let baseRef := array_dataslot_t_array$_t_address_$3_memory_ptr(value)\n        let srcPtr := baseRef\n        for { let i := 0 } lt(i, length) { i := add(i, 1) }\n        {\n            let elementValue0 := mload(srcPtr)\n            pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_address_$3_memory_ptr(srcPtr)\n        }\n\n    }\n\n    function array_length_t_array$_t_bool_$3_memory_ptr(value) -> length {\n\n        length := 0x03\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_bool_$3_memory_ptr(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function array_dataslot_t_array$_t_bool_$3_memory_ptr(ptr) -> data {\n        data := ptr\n\n    }\n\n    function abi_encode_t_bool_to_t_bool(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encodeUpdatedPos_t_bool_to_t_bool(value0, pos) -> updatedPos {\n        abi_encode_t_bool_to_t_bool(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_bool_$3_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // bool[3] -> bool[3]\n    function abi_encode_t_array$_t_bool_$3_memory_ptr_to_t_array$_t_bool_$3_memory_ptr(value, pos)  {\n        let length := array_length_t_array$_t_bool_$3_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_bool_$3_memory_ptr(pos, length)\n        let baseRef := array_dataslot_t_array$_t_bool_$3_memory_ptr(value)\n        let srcPtr := baseRef\n        for { let i := 0 } lt(i, length) { i := add(i, 1) }\n        {\n            let elementValue0 := mload(srcPtr)\n            pos := abi_encodeUpdatedPos_t_bool_to_t_bool(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_bool_$3_memory_ptr(srcPtr)\n        }\n\n    }\n\n    // struct ResilientOracle.TokenConfig -> struct ResilientOracle.TokenConfig\n    function abi_encode_t_struct$_TokenConfig_$2482_memory_ptr_to_t_struct$_TokenConfig_$2482_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x0100)\n\n        {\n            // asset\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // oracles\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_array$_t_address_$3_memory_ptr_to_t_array$_t_address_$3_memory_ptr(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // enableFlagsForOracles\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_array$_t_bool_$3_memory_ptr_to_t_array$_t_bool_$3_memory_ptr(memberValue0, add(pos, 0x80))\n        }\n\n        {\n            // cachingEnabled\n\n            let memberValue0 := mload(add(value, 0x60))\n            abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0xe0))\n        }\n\n    }\n\n    function abi_encode_tuple_t_struct$_TokenConfig_$2482_memory_ptr__to_t_struct$_TokenConfig_$2482_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 256)\n\n        abi_encode_t_struct$_TokenConfig_$2482_memory_ptr_to_t_struct$_TokenConfig_$2482_memory_ptr_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee(memPtr) {\n\n        mstore(add(memPtr, 0), \"resilient oracle is paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a96a5ab9a405164cd7206849fabc60771c50663034e032cee61ce87d40e776ee_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(memPtr) {\n\n        mstore(add(memPtr, 0), \"can't be zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67(memPtr) {\n\n        mstore(add(memPtr, 0), \"token config must exist\")\n\n    }\n\n    function abi_encode_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n        store_literal_in_memory_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_649a0ba5df30129af38854c5145b90047eb942e20a1b0378189629f4b3edaf67_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x21() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed(memPtr) {\n\n        mstore(add(memPtr, 0), \"length can't be 0\")\n\n    }\n\n    function abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n        store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1(memPtr) {\n\n        mstore(add(memPtr, 0), \"can't set zero address to main o\")\n\n        mstore(add(memPtr, 32), \"racle\")\n\n    }\n\n    function abi_encode_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2bd7f3e324856b3efda8ceaed8290812766704969ef515d198dcc42765e37ae1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid acess control manager ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function store_literal_in_memory_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid resilient oracle price\")\n\n    }\n\n    function abi_encode_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n        store_literal_in_memory_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_599276927d57b3c895a99d3d2c96f953e4db80fc017144bddcab2e3187f5e277_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: not paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n        store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"2488":[{"length":32,"start":636},{"length":32,"start":4376}],"2491":[{"length":32,"start":858},{"length":32,"start":4461},{"length":32,"start":4518}],"2503":[{"length":32,"start":447},{"length":32,"start":4085},{"length":32,"start":5297},{"length":32,"start":5652}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106101a1575f3560e01c80638da5cb5b116100f3578063b62e4c9211610093578063e30c39781161006e578063e30c3978146103af578063e9d1284f146103c0578063f2fde38b146103d4578063fc57d4df146103e7575f80fd5b8063b62e4c9214610355578063c4d66de81461037c578063cb67e3b11461038f575f80fd5b8063a8e68463116100ce578063a8e6846314610303578063a9534f8a14610316578063b4a0bdf314610331578063b62cad6914610342575f80fd5b80638da5cb5b146102cc57806396e85ced146102dd578063a6b1344a146102f0575f80fd5b80635c975abb1161015e5780638456cb59116101395780638456cb591461025c578063883cfb91146102645780638a2f7f6d146102775780638b855da4146102ab575f80fd5b80635c975abb14610239578063715018a61461024c57806379ba509714610254575f80fd5b80630e32cb86146101a557806333d33494146101ba5780633f4ba83a146101f757806341976e09146101ff5780634b932b8f1461021f5780634bf39cba14610232575b5f80fd5b6101b86101b3366004611983565b6103fa565b005b6101e17f000000000000000000000000000000000000000000000000000000000000000081565b6040516101ee91906119cc565b60405180910390f35b6101b861040e565b61021261020d366004611983565b610442565b6040516101ee91906119e0565b6101b861022d366004611a18565b610484565b6102125f81565b60335460ff166040516101ee9190611a6c565b6101b86105cd565b6101b86105de565b6101b8610613565b6101b8610272366004611cdd565b610643565b61029e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101ee9190611d1e565b6102be6102b9366004611d2c565b61069e565b6040516101ee929190611d66565b6065546001600160a01b031661029e565b6101b86102eb366004611983565b61073e565b6101b86102fe366004611d81565b610757565b6101b8610311366004611dc3565b6108ee565b61029e73bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b60c9546001600160a01b03166101e1565b6101b8610350366004611983565b610a9e565b61029e7f000000000000000000000000000000000000000000000000000000000000000081565b6101b861038a366004611983565b610aa7565b6103a261039d366004611983565b610b79565b6040516101ee9190611ea9565b6097546001600160a01b031661029e565b6102125f8051602061240083398151915281565b6101b86103e2366004611983565b610c5a565b6102126103f5366004611983565b610ccb565b610402610d11565b61040b81610d3b565b50565b61043860405180604001604052806009815260200168756e7061757365282960b81b815250610db4565b610440610e4b565b565b5f61044f60335460ff1690565b156104755760405162461bcd60e51b815260040161046c90611eee565b60405180910390fd5b61047e82610e97565b92915050565b826001600160a01b0381166104ab5760405162461bcd60e51b815260040161046c90611f29565b6001600160a01b038085165f90815260fb60205260409020548591166104e35760405162461bcd60e51b815260040161046c90611f6c565b6105216040518060400160405280602081526020017f656e61626c654f7261636c6528616464726573732c75696e74382c626f6f6c29815250610db4565b6001600160a01b0385165f90815260fb60205260409020839060040185600281111561054f5761054f611f7c565b6003811061055f5761055f611f90565b602091828204019190066101000a81548160ff02191690831515021790555082151584600281111561059357610593611f7c565b6040516001600160a01b038816907fcf3cad1ec87208efbde5d82a0557484a78d4182c3ad16926a5463bc1f7234b3d905f90a45050505050565b6105d5610d11565b6104405f611098565b60975433906001600160a01b0316811461060a5760405162461bcd60e51b815260040161046c90611fec565b61040b81611098565b61063b604051806040016040528060078152602001667061757365282960c81b815250610db4565b6104406110b1565b80515f036106635760405162461bcd60e51b815260040161046c90612023565b80515f5b818110156106995761069183828151811061068457610684611f90565b60200260200101516108ee565b600101610667565b505050565b6001600160a01b0382165f90815260fb6020526040812081906001018360028111156106cc576106cc611f7c565b600381106106dc576106dc611f90565b01546001600160a01b038581165f90815260fb602052604090209116925060040183600281111561070f5761070f611f7c565b6003811061071f5761071f611f90565b602091828204019190069054906101000a900460ff1690509250929050565b5f610748826110ee565b905061075381611232565b5050565b826001600160a01b03811661077e5760405162461bcd60e51b815260040161046c90611f29565b6001600160a01b038085165f90815260fb60205260409020548591166107b65760405162461bcd60e51b815260040161046c90611f6c565b6107f46040518060400160405280602081526020017f7365744f7261636c6528616464726573732c616464726573732c75696e743829815250610db4565b6001600160a01b03841615801561081b57505f83600281111561081957610819611f7c565b145b156108385760405162461bcd60e51b815260040161046c90612074565b6001600160a01b0385165f90815260fb60205260409020849060010184600281111561086657610866611f7c565b6003811061087657610876611f90565b0180546001600160a01b0319166001600160a01b03929092169190911790558260028111156108a7576108a7611f7c565b846001600160a01b0316866001600160a01b03167fea681d3efb830ef032a9c29a7215b5ceeeb546250d2c463dbf87817aecda1bf160405160405180910390a45050505050565b80516001600160a01b0381166109165760405162461bcd60e51b815260040161046c90611f29565b6020820151516001600160a01b0381166109425760405162461bcd60e51b815260040161046c90611f29565b6109806040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e666967290000000000815250610db4565b82516001600160a01b039081165f90815260fb60209081526040909120855181546001600160a01b03191693169290921782558401518491906109c99060018301906003611806565b5060408201516109df906004830190600361185e565b50606091909101516005909101805460ff191691151591909117905560208381015190810151815185516001600160a01b03928316939183169216907fa51ad01e2270c314a7b78f0c60fe66c723f2d06c121d63fcdce776e654878fc19060026020020151604051610a519190611d1e565b60405180910390a482606001511515835f01516001600160a01b03167fca250c5374abedcbf71c0e3eda7ff4cf940fa9e6561d8cd31d2bf480a140a93f60405160405180910390a3505050565b61040b81611232565b5f54610100900460ff1615808015610ac557505f54600160ff909116105b80610ade5750303b158015610ade57505f5460ff166001145b610afa5760405162461bcd60e51b815260040161046c906120ce565b5f805460ff191660011790558015610b1b575f805461ff0019166101001790555b610b2482611314565b610b2c61134b565b8015610753575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610b6d906001906120f1565b60405180910390a15050565b610b816118e8565b6001600160a01b038281165f90815260fb602090815260409182902082516080810184528154909416845282516060810193849052909291840191600184019060039082845b81546001600160a01b03168152600190910190602001808311610bc7575050509183525050604080516060810191829052602090920191906004840190600390825f855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411610c0b575050509284525050506005919091015460ff16151560209091015292915050565b610c62610d11565b609780546001600160a01b0383166001600160a01b03199091168117909155610c936065546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f610cd860335460ff1690565b15610cf55760405162461bcd60e51b815260040161046c90611eee565b5f610cff836110ee565b9050610d0a81610e97565b9392505050565b6065546001600160a01b031633146104405760405162461bcd60e51b815260040161046c90612130565b6001600160a01b038116610d615760405162461bcd60e51b815260040161046c90612181565b60c980546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610b6d9083908590612191565b60c9546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab90610de690339086906004016121e8565b602060405180830381865afa158015610e01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e259190612213565b90508061075357333083604051634a3fa29360e01b815260040161046c93929190612231565b610e53611379565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610e8d9190611d1e565b60405180910390a1565b5f8080610eb15f805160206124008339815191528561139b565b90508015610ec0579392505050565b5f80610ecd86600161069e565b91509150808015610ee657506001600160a01b03821615155b15610f58576040516341976e0960e01b81526001600160a01b038316906341976e0990610f17908990600401611d1e565b602060405180830381865afa925050508015610f50575060408051601f3d908101601f19168201909252610f4d91810190612278565b60015b15610f585793505b5f80610f798887858015610f7457506001600160a01b03871615155b6113d1565b915091505f8214158015610f8a5750805b15610f9a57509695505050505050565b5f80610fa68a89611546565b915091505f8214158015610fb75750805b15610fc9575098975050505050505050565b8315801590610fd757508115155b801561106d5750604051634be3819f60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906397c7033e9061102e908d9088908790600401612296565b602060405180830381865afa158015611049573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106d9190612213565b1561108057509198975050505050505050565b60405162461bcd60e51b815260040161046c906122f1565b609780546001600160a01b031916905561040b816116a8565b6110b96116f9565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e803390565b5f816001600160a01b0381166111165760405162461bcd60e51b815260040161046c90611f29565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361116b5773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb915061122c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036111cc577f0000000000000000000000000000000000000000000000000000000000000000915061122c565b826001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611208573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0a919061230c565b50919050565b6112495f805160206124008339815191528261139b565b156112515750565b5f8061125d835f61069e565b90925090506001600160a01b038216158015906112775750805b156112c757816001600160a01b031663692404266040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156112b4575f80fd5b505af19250505080156112c5575060015b505b6001600160a01b0383165f90815260fb602052604090206005015460ff1615610699575f6112f484610e97565b905061130e5f80516020612400833981519152858361171c565b50505050565b5f54610100900460ff1661133a5760405162461bcd60e51b815260040161046c90612371565b611342611751565b61040b8161177f565b5f54610100900460ff166113715760405162461bcd60e51b815260040161046c90612371565b6104406117a5565b60335460ff166104405760405162461bcd60e51b815260040161046c906123ab565b5f8083836040516020016113b09291906123bb565b60408051601f1981840301815291905280516020909101205c949350505050565b5f805f806113df875f61069e565b915091508080156113f857506001600160a01b03821615155b15611535576040516341976e0960e01b81526001600160a01b038316906341976e0990611429908a90600401611d1e565b602060405180830381865afa925050508015611462575060408051601f3d908101601f1916820190925261145f91810190612278565b60015b611473575f8093509350505061153e565b856114865793506001925061153e915050565b866114985793505f925061153e915050565b604051634be3819f60e11b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906397c7033e906114ea908c9085908d90600401612296565b602060405180830381865afa158015611505573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115299190612213565b9450945050505061153e565b5f809350935050505b935093915050565b5f805f8061155586600261069e565b9150915080801561156e57506001600160a01b03821615155b15611698576040516341976e0960e01b81526001600160a01b038316906341976e099061159f908990600401611d1e565b602060405180830381865afa9250505080156115d8575060408051601f3d908101601f191682019092526115d591810190612278565b60015b6115e9575f809350935050506116a1565b856115fb5793505f92506116a1915050565b604051634be3819f60e11b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906397c7033e9061164d908b9085908c90600401612296565b602060405180830381865afa158015611668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168c9190612213565b945094505050506116a1565b5f809350935050505b9250929050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60335460ff16156104405760405162461bcd60e51b815260040161046c906123ef565b5f83836040516020016117309291906123bb565b60405160208183030381529060405280519060200120905081815d50505050565b5f54610100900460ff166117775760405162461bcd60e51b815260040161046c90612371565b6104406117d7565b5f54610100900460ff166104025760405162461bcd60e51b815260040161046c90612371565b5f54610100900460ff166117cb5760405162461bcd60e51b815260040161046c90612371565b6033805460ff19169055565b5f54610100900460ff166117fd5760405162461bcd60e51b815260040161046c90612371565b61044033611098565b826003810192821561184e579160200282015b8281111561184e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611819565b5061185a929150611923565b5090565b60018301918390821561184e579160200282015f5b838211156118af57835183826101000a81548160ff02191690831515021790555092602001926001016020815f01049283019260010302611873565b80156118db5782816101000a81549060ff02191690556001016020815f010492830192600103026118af565b505061185a929150611923565b60405180608001604052805f6001600160a01b0316815260200161190a611937565b8152602001611917611937565b81525f60209091015290565b5b8082111561185a575f8155600101611924565b60405180606001604052806003906020820280368337509192915050565b5f6001600160a01b03821661047e565b61196e81611955565b811461040b575f80fd5b803561047e81611965565b5f60208284031215611996576119965f80fd5b5f6119a18484611978565b949350505050565b5f61047e82611955565b5f61047e826119a9565b6119c6816119b3565b82525050565b6020810161047e82846119bd565b806119c6565b6020810161047e82846119da565b6003811061040b575f80fd5b803561047e816119ee565b80151561196e565b803561047e81611a05565b5f805f60608486031215611a2d57611a2d5f80fd5b5f611a388686611978565b9350506020611a49868287016119fa565b9250506040611a5a86828701611a0d565b9150509250925092565b8015156119c6565b6020810161047e8284611a64565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715611ab457611ab4611a7a565b6040525050565b5f611ac560405190565b9050611ad18282611a8e565b919050565b5f67ffffffffffffffff821115611aef57611aef611a7a565b5060209081020190565b5f67ffffffffffffffff821115611b1257611b12611a7a565b5060200290565b5f611b2b611b2684611af9565b611abb565b90508060208402830185811115611b4357611b435f80fd5b835b81811015611b675780611b588882611978565b84525060209283019201611b45565b5050509392505050565b5f82601f830112611b8357611b835f80fd5b60036119a1848285611b19565b5f611b9d611b2684611af9565b90508060208402830185811115611bb557611bb55f80fd5b835b81811015611b675780611bca8882611a0d565b84525060209283019201611bb7565b5f82601f830112611beb57611beb5f80fd5b60036119a1848285611b90565b5f6101008284031215611c0c57611c0c5f80fd5b611c166080611abb565b90505f611c238484611978565b8252506020611c3484848301611b71565b6020830152506080611c4884828501611bd9565b60408301525060e0611c5c84828501611a0d565b60608301525092915050565b5f611c75611b2684611ad6565b8381529050602081016101008402830185811115611c9457611c945f80fd5b835b81811015611b675780611ca98882611bf8565b84525060209092019161010001611c96565b5f82601f830112611ccd57611ccd5f80fd5b81356119a1848260208601611c68565b5f60208284031215611cf057611cf05f80fd5b813567ffffffffffffffff811115611d0957611d095f80fd5b6119a184828501611cbb565b6119c681611955565b6020810161047e8284611d15565b5f8060408385031215611d4057611d405f80fd5b5f611d4b8585611978565b9250506020611d5c858286016119fa565b9150509250929050565b60408101611d748285611d15565b610d0a6020830184611a64565b5f805f60608486031215611d9657611d965f80fd5b5f611da18686611978565b9350506020611db286828701611978565b9250506040611a5a868287016119fa565b5f6101008284031215611dd757611dd75f80fd5b5f6119a18484611bf8565b5f611ded8383611d15565b505060200190565b600381805f5b83811015611e20578151611e0f8782611de2565b965060208301925050600101611dfb565b505050505050565b5f611ded8383611a64565b600381805f5b83811015611e20578151611e4d8782611e28565b965060208301925050600101611e39565b8051610100830190611e708482611d15565b506020820151611e836020850182611df5565b506040820151611e966080850182611e33565b50606082015161130e60e0850182611a64565b610100810161047e8284611e5e565b601a81525f602082017f726573696c69656e74206f7261636c6520697320706175736564000000000000815291505b5060200190565b6020808252810161047e81611eb8565b601581525f602082017463616e2774206265207a65726f206164647265737360581b81529150611ee7565b6020808252810161047e81611efe565b601781525f602082017f746f6b656e20636f6e666967206d75737420657869737400000000000000000081529150611ee7565b6020808252810161047e81611f39565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161047e81611fa4565b601181525f602082017006c656e6774682063616e2774206265203607c1b81529150611ee7565b6020808252810161047e81611ffc565b602581525f602082017f63616e277420736574207a65726f206164647265737320746f206d61696e206f8152647261636c6560d81b60208201529150611fe5565b6020808252810161047e81612033565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150611fe5565b6020808252810161047e81612084565b5f60ff821661047e565b6119c6816120de565b6020810161047e82846120e8565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f611ee7565b6020808252810161047e816120ff565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150611fe5565b6020808252810161047e81612140565b6040810161219f8285611d15565b610d0a6020830184611d15565b8281835e505f910152565b5f6121c0825190565b8084526020840193506121d78185602086016121ac565b601f01601f19169290920192915050565b604081016121f68285611d15565b81810360208301526119a181846121b7565b805161047e81611a05565b5f60208284031215612226576122265f80fd5b5f6119a18484612208565b6060810161223f8286611d15565b61224c6020830185611d15565b818103604083015261225e81846121b7565b95945050505050565b8061196e565b805161047e81612267565b5f6020828403121561228b5761228b5f80fd5b5f6119a1848461226d565b606081016122a48286611d15565b6122b160208301856119da565b6119a160408301846119da565b601e81525f602082017f696e76616c696420726573696c69656e74206f7261636c65207072696365000081529150611ee7565b6020808252810161047e816122be565b805161047e81611965565b5f6020828403121561231f5761231f5f80fd5b5f6119a18484612301565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150611fe5565b6020808252810161047e8161232a565b601481525f602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b81529150611ee7565b6020808252810161047e81612381565b6040810161219f82856119da565b601081525f602082016f14185d5cd8589b194e881c185d5cd95960821b81529150611ee7565b6020808252810161047e816123c956fe4e99ec55972332f5e0ef9c6623192c0401b609161bffae64d9ccdd7ad6cc7800a264697066735822122071db7a592f6e37dc1b9a94cbb64f679e43f1f496741c52d980f623401e529da564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF3 JUMPI DUP1 PUSH4 0xB62E4C92 GT PUSH2 0x93 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xE9D1284F EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xFC57D4DF EQ PUSH2 0x3E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB62E4C92 EQ PUSH2 0x355 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0xCB67E3B1 EQ PUSH2 0x38F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA8E68463 GT PUSH2 0xCE JUMPI DUP1 PUSH4 0xA8E68463 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x331 JUMPI DUP1 PUSH4 0xB62CAD69 EQ PUSH2 0x342 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2CC JUMPI DUP1 PUSH4 0x96E85CED EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xA6B1344A EQ PUSH2 0x2F0 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x8456CB59 GT PUSH2 0x139 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0x883CFB91 EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0x8A2F7F6D EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0x8B855DA4 EQ PUSH2 0x2AB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x254 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x33D33494 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x4B932B8F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x4BF39CBA EQ PUSH2 0x232 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1B8 PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0x3FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E1 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x19CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B8 PUSH2 0x40E JUMP JUMPDEST PUSH2 0x212 PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0x442 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x1A18 JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH2 0x212 PUSH0 DUP2 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x1A6C JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x5CD JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x5DE JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x613 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CDD JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH2 0x29E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x1D1E JUMP JUMPDEST PUSH2 0x2BE PUSH2 0x2B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D2C JUMP JUMPDEST PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP3 SWAP2 SWAP1 PUSH2 0x1D66 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x29E JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0x73E JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x1D81 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DC3 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST PUSH2 0x29E PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x350 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xA9E JUMP JUMPDEST PUSH2 0x29E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x38A CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x3A2 PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x29E JUMP JUMPDEST PUSH2 0x212 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH2 0x1B8 PUSH2 0x3E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xC5A JUMP JUMPDEST PUSH2 0x212 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1983 JUMP JUMPDEST PUSH2 0xCCB JUMP JUMPDEST PUSH2 0x402 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0xD3B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x438 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x756E70617573652829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH2 0x440 PUSH2 0xE4B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH2 0x44F PUSH1 0x33 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x475 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1EEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x47E DUP3 PUSH2 0xE97 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP2 AND PUSH2 0x4E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F6C JUMP JUMPDEST PUSH2 0x521 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x656E61626C654F7261636C6528616464726573732C75696E74382C626F6F6C29 DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 PUSH1 0x4 ADD DUP6 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x54F JUMPI PUSH2 0x54F PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x55F JUMPI PUSH2 0x55F PUSH2 0x1F90 JUMP JUMPDEST 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 DUP3 ISZERO ISZERO DUP5 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x593 JUMPI PUSH2 0x593 PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xCF3CAD1EC87208EFBDE5D82A0557484A78D4182C3AD16926A5463BC1F7234B3D SWAP1 PUSH0 SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5D5 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x440 PUSH0 PUSH2 0x1098 JUMP JUMPDEST PUSH1 0x97 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x60A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1FEC JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0x1098 JUMP JUMPDEST PUSH2 0x63B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x70617573652829 PUSH1 0xC8 SHL DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH2 0x440 PUSH2 0x10B1 JUMP JUMPDEST DUP1 MLOAD PUSH0 SUB PUSH2 0x663 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2023 JUMP JUMPDEST DUP1 MLOAD PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x699 JUMPI PUSH2 0x691 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x684 JUMPI PUSH2 0x684 PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x8EE JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x667 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH1 0x1 ADD DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6CC JUMPI PUSH2 0x6CC PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x6DC JUMPI PUSH2 0x6DC PUSH2 0x1F90 JUMP JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 AND SWAP3 POP PUSH1 0x4 ADD DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x70F JUMPI PUSH2 0x70F PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x71F JUMPI PUSH2 0x71F PUSH2 0x1F90 JUMP JUMPDEST PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x748 DUP3 PUSH2 0x10EE JUMP JUMPDEST SWAP1 POP PUSH2 0x753 DUP2 PUSH2 0x1232 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x77E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP2 AND PUSH2 0x7B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F6C JUMP JUMPDEST PUSH2 0x7F4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744F7261636C6528616464726573732C616464726573732C75696E743829 DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO PUSH2 0x81B JUMPI POP PUSH0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x819 JUMPI PUSH2 0x819 PUSH2 0x1F7C JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x838 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2074 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 SWAP1 PUSH1 0x1 ADD DUP5 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x866 JUMPI PUSH2 0x866 PUSH2 0x1F7C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x876 JUMPI PUSH2 0x876 PUSH2 0x1F90 JUMP JUMPDEST ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8A7 JUMPI PUSH2 0x8A7 PUSH2 0x1F7C JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xEA681D3EFB830EF032A9C29A7215B5CEEEB546250D2C463DBF87817AECDA1BF1 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x916 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH2 0x980 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574546F6B656E436F6E66696728546F6B656E436F6E666967290000000000 DUP2 MSTORE POP PUSH2 0xDB4 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP6 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE DUP5 ADD MLOAD DUP5 SWAP2 SWAP1 PUSH2 0x9C9 SWAP1 PUSH1 0x1 DUP4 ADD SWAP1 PUSH1 0x3 PUSH2 0x1806 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x9DF SWAP1 PUSH1 0x4 DUP4 ADD SWAP1 PUSH1 0x3 PUSH2 0x185E JUMP JUMPDEST POP PUSH1 0x60 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP2 ADD MLOAD DUP2 MLOAD DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP4 SWAP2 DUP4 AND SWAP3 AND SWAP1 PUSH32 0xA51AD01E2270C314A7B78F0C60FE66C723F2D06C121D63FCDCE776E654878FC1 SWAP1 PUSH1 0x2 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xA51 SWAP2 SWAP1 PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO DUP4 PUSH0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xCA250C5374ABEDCBF71C0E3EDA7FF4CF940FA9E6561D8CD31D2BF480A140A93F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0x1232 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAC5 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xADE JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADE JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xAFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x20CE JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xB1B JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xB24 DUP3 PUSH2 0x1314 JUMP JUMPDEST PUSH2 0xB2C PUSH2 0x134B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x753 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0xB6D SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x20F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xB81 PUSH2 0x18E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP5 MSTORE DUP3 MLOAD PUSH1 0x60 DUP2 ADD SWAP4 DUP5 SWAP1 MSTORE SWAP1 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 DUP5 ADD SWAP1 PUSH1 0x3 SWAP1 DUP3 DUP5 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBC7 JUMPI POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 PUSH1 0x4 DUP5 ADD SWAP1 PUSH1 0x3 SWAP1 DUP3 PUSH0 DUP6 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 0xC0B JUMPI POP POP POP SWAP3 DUP5 MSTORE POP POP POP PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC62 PUSH2 0xD11 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xC93 PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH0 PUSH2 0xCD8 PUSH1 0x33 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xCF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1EEE JUMP JUMPDEST PUSH0 PUSH2 0xCFF DUP4 PUSH2 0x10EE JUMP JUMPDEST SWAP1 POP PUSH2 0xD0A DUP2 PUSH2 0xE97 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2130 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2181 JUMP JUMPDEST PUSH1 0xC9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0xB6D SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x2191 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xDE6 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE01 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xE25 SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x753 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH2 0xE53 PUSH2 0x1379 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8D SWAP2 SWAP1 PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH0 DUP1 DUP1 PUSH2 0xEB1 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 PUSH2 0x139B JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xEC0 JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xECD DUP7 PUSH1 0x1 PUSH2 0x69E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP1 ISZERO PUSH2 0xEE6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xF58 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0xF17 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xF50 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xF4D SWAP2 DUP2 ADD SWAP1 PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x1 JUMPDEST ISZERO PUSH2 0xF58 JUMPI SWAP4 POP JUMPDEST PUSH0 DUP1 PUSH2 0xF79 DUP9 DUP8 DUP6 DUP1 ISZERO PUSH2 0xF74 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND ISZERO ISZERO JUMPDEST PUSH2 0x13D1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP3 EQ ISZERO DUP1 ISZERO PUSH2 0xF8A JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xF9A JUMPI POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xFA6 DUP11 DUP10 PUSH2 0x1546 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP3 EQ ISZERO DUP1 ISZERO PUSH2 0xFB7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xFC9 JUMPI POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0xFD7 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x106D JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x4BE3819F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x97C7033E SWAP1 PUSH2 0x102E SWAP1 DUP14 SWAP1 DUP9 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2296 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1049 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x106D SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST ISZERO PUSH2 0x1080 JUMPI POP SWAP2 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x22F1 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x40B DUP2 PUSH2 0x16A8 JUMP JUMPDEST PUSH2 0x10B9 PUSH2 0x16F9 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xE80 CALLER SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1116 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x1F29 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x116B JUMPI PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB SWAP2 POP PUSH2 0x122C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x11CC JUMPI PUSH32 0x0 SWAP2 POP PUSH2 0x122C JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6F307DC3 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 0x1208 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xD0A SWAP2 SWAP1 PUSH2 0x230C JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1249 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 PUSH2 0x139B JUMP JUMPDEST ISZERO PUSH2 0x1251 JUMPI POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x125D DUP4 PUSH0 PUSH2 0x69E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1277 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x12C7 JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x69240426 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12C5 JUMPI POP PUSH1 0x1 JUMPDEST POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xFB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x699 JUMPI PUSH0 PUSH2 0x12F4 DUP5 PUSH2 0xE97 JUMP JUMPDEST SWAP1 POP PUSH2 0x130E PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x2400 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 PUSH2 0x171C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x133A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x1342 PUSH2 0x1751 JUMP JUMPDEST PUSH2 0x40B DUP2 PUSH2 0x177F JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1371 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x440 PUSH2 0x17A5 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x23AB JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13B0 SWAP3 SWAP2 SWAP1 PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 TLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x13DF DUP8 PUSH0 PUSH2 0x69E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP1 ISZERO PUSH2 0x13F8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1535 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x1429 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1462 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x145F SWAP2 DUP2 ADD SWAP1 PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1473 JUMPI PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP PUSH2 0x153E JUMP JUMPDEST DUP6 PUSH2 0x1486 JUMPI SWAP4 POP PUSH1 0x1 SWAP3 POP PUSH2 0x153E SWAP2 POP POP JUMP JUMPDEST DUP7 PUSH2 0x1498 JUMPI SWAP4 POP PUSH0 SWAP3 POP PUSH2 0x153E SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4BE3819F PUSH1 0xE1 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x97C7033E SWAP1 PUSH2 0x14EA SWAP1 DUP13 SWAP1 DUP6 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x2296 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1505 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x1529 SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x153E JUMP JUMPDEST PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x1555 DUP7 PUSH1 0x2 PUSH2 0x69E JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 DUP1 ISZERO PUSH2 0x156E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1698 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x159F SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D1E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x15D8 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x15D5 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x15E9 JUMPI PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP PUSH2 0x16A1 JUMP JUMPDEST DUP6 PUSH2 0x15FB JUMPI SWAP4 POP PUSH0 SWAP3 POP PUSH2 0x16A1 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4BE3819F PUSH1 0xE1 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x97C7033E SWAP1 PUSH2 0x164D SWAP1 DUP12 SWAP1 DUP6 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x2296 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1668 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x168C SWAP2 SWAP1 PUSH2 0x2213 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x16A1 JUMP JUMPDEST PUSH0 DUP1 SWAP4 POP SWAP4 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x23EF JUMP JUMPDEST PUSH0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1730 SWAP3 SWAP2 SWAP1 PUSH2 0x23BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP2 DUP2 TSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1777 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x440 PUSH2 0x17D7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x17CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x17FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46C SWAP1 PUSH2 0x2371 JUMP JUMPDEST PUSH2 0x440 CALLER PUSH2 0x1098 JUMP JUMPDEST DUP3 PUSH1 0x3 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x184E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x184E JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1819 JUMP JUMPDEST POP PUSH2 0x185A SWAP3 SWAP2 POP PUSH2 0x1923 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 DUP4 SWAP1 DUP3 ISZERO PUSH2 0x184E JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x18AF 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 PUSH0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x1873 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18DB JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x18AF JUMP JUMPDEST POP POP PUSH2 0x185A SWAP3 SWAP2 POP PUSH2 0x1923 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190A PUSH2 0x1937 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1917 PUSH2 0x1937 JUMP JUMPDEST DUP2 MSTORE PUSH0 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x185A JUMPI PUSH0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1924 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x47E JUMP JUMPDEST PUSH2 0x196E DUP2 PUSH2 0x1955 JUMP JUMPDEST DUP2 EQ PUSH2 0x40B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x47E DUP2 PUSH2 0x1965 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1996 JUMPI PUSH2 0x1996 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x1978 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x47E DUP3 PUSH2 0x1955 JUMP JUMPDEST PUSH0 PUSH2 0x47E DUP3 PUSH2 0x19A9 JUMP JUMPDEST PUSH2 0x19C6 DUP2 PUSH2 0x19B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x19BD JUMP JUMPDEST DUP1 PUSH2 0x19C6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x19DA JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x40B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x47E DUP2 PUSH2 0x19EE JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x196E JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x47E DUP2 PUSH2 0x1A05 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1A2D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1A38 DUP7 DUP7 PUSH2 0x1978 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1A49 DUP7 DUP3 DUP8 ADD PUSH2 0x19FA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1A5A DUP7 DUP3 DUP8 ADD PUSH2 0x1A0D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x19C6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1AB4 JUMPI PUSH2 0x1AB4 PUSH2 0x1A7A JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AC5 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1AD1 DUP3 DUP3 PUSH2 0x1A8E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1AEF JUMPI PUSH2 0x1AEF PUSH2 0x1A7A JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B12 JUMPI PUSH2 0x1B12 PUSH2 0x1A7A JUMP JUMPDEST POP PUSH1 0x20 MUL SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1B2B PUSH2 0x1B26 DUP5 PUSH2 0x1AF9 JUMP JUMPDEST PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1B43 JUMPI PUSH2 0x1B43 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B67 JUMPI DUP1 PUSH2 0x1B58 DUP9 DUP3 PUSH2 0x1978 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1B45 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1B83 JUMPI PUSH2 0x1B83 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x19A1 DUP5 DUP3 DUP6 PUSH2 0x1B19 JUMP JUMPDEST PUSH0 PUSH2 0x1B9D PUSH2 0x1B26 DUP5 PUSH2 0x1AF9 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1BB5 JUMPI PUSH2 0x1BB5 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B67 JUMPI DUP1 PUSH2 0x1BCA DUP9 DUP3 PUSH2 0x1A0D JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1BB7 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BEB JUMPI PUSH2 0x1BEB PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x19A1 DUP5 DUP3 DUP6 PUSH2 0x1B90 JUMP JUMPDEST PUSH0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C0C JUMPI PUSH2 0x1C0C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1C16 PUSH1 0x80 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C23 DUP5 DUP5 PUSH2 0x1978 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1C34 DUP5 DUP5 DUP4 ADD PUSH2 0x1B71 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1C48 DUP5 DUP3 DUP6 ADD PUSH2 0x1BD9 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1C5C DUP5 DUP3 DUP6 ADD PUSH2 0x1A0D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C75 PUSH2 0x1B26 DUP5 PUSH2 0x1AD6 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH2 0x100 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C94 JUMPI PUSH2 0x1C94 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B67 JUMPI DUP1 PUSH2 0x1CA9 DUP9 DUP3 PUSH2 0x1BF8 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x100 ADD PUSH2 0x1C96 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CCD JUMPI PUSH2 0x1CCD PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19A1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C68 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CF0 JUMPI PUSH2 0x1CF0 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D09 JUMPI PUSH2 0x1D09 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x19A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST PUSH2 0x19C6 DUP2 PUSH2 0x1955 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x1D15 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D40 JUMPI PUSH2 0x1D40 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1D4B DUP6 DUP6 PUSH2 0x1978 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D5C DUP6 DUP3 DUP7 ADD PUSH2 0x19FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1D74 DUP3 DUP6 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0xD0A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1D96 JUMPI PUSH2 0x1D96 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1DA1 DUP7 DUP7 PUSH2 0x1978 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1DB2 DUP7 DUP3 DUP8 ADD PUSH2 0x1978 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1A5A DUP7 DUP3 DUP8 ADD PUSH2 0x19FA JUMP JUMPDEST PUSH0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DD7 JUMPI PUSH2 0x1DD7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x1BF8 JUMP JUMPDEST PUSH0 PUSH2 0x1DED DUP4 DUP4 PUSH2 0x1D15 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E20 JUMPI DUP2 MLOAD PUSH2 0x1E0F DUP8 DUP3 PUSH2 0x1DE2 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x1DFB JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1DED DUP4 DUP4 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E20 JUMPI DUP2 MLOAD PUSH2 0x1E4D DUP8 DUP3 PUSH2 0x1E28 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x1E39 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x100 DUP4 ADD SWAP1 PUSH2 0x1E70 DUP5 DUP3 PUSH2 0x1D15 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x1E83 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x1DF5 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x1E96 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x1E33 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x130E PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x1A64 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x1E5E JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x726573696C69656E74206F7261636C6520697320706175736564000000000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1EB8 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1EFE JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x746F6B656E20636F6E666967206D757374206578697374000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1FA4 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH17 0x6C656E6774682063616E2774206265203 PUSH1 0x7C SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x1FFC JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x63616E277420736574207A65726F206164647265737320746F206D61696E206F DUP2 MSTORE PUSH5 0x7261636C65 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2033 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2084 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x47E JUMP JUMPDEST PUSH2 0x19C6 DUP2 PUSH2 0x20DE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x47E DUP3 DUP5 PUSH2 0x20E8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2140 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x219F DUP3 DUP6 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0xD0A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D15 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x21C0 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x21D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21AC JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x21F6 DUP3 DUP6 PUSH2 0x1D15 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x19A1 DUP2 DUP5 PUSH2 0x21B7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x47E DUP2 PUSH2 0x1A05 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2226 JUMPI PUSH2 0x2226 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x2208 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x223F DUP3 DUP7 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0x224C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1D15 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x225E DUP2 DUP5 PUSH2 0x21B7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x196E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x47E DUP2 PUSH2 0x2267 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x228B JUMPI PUSH2 0x228B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x226D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x22A4 DUP3 DUP7 PUSH2 0x1D15 JUMP JUMPDEST PUSH2 0x22B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x19DA JUMP JUMPDEST PUSH2 0x19A1 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x19DA JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420726573696C69656E74206F7261636C652070726963650000 DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x22BE JUMP JUMPDEST DUP1 MLOAD PUSH2 0x47E DUP2 PUSH2 0x1965 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x231F JUMPI PUSH2 0x231F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x19A1 DUP5 DUP5 PUSH2 0x2301 JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1FE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x232A JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x2381 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x219F DUP3 DUP6 PUSH2 0x19DA JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x47E DUP2 PUSH2 0x23C9 JUMP INVALID 0x4E SWAP10 0xEC SSTORE SWAP8 0x23 ORIGIN CREATE2 0xE0 0xEF SWAP13 PUSH7 0x23192C0401B609 AND SHL SELFDESTRUCT 0xAE PUSH5 0xD9CCDD7AD6 0xCC PUSH25 0xA264697066735822122071DB7A592F6E37DC1B9A94CBB64F PUSH8 0x9E43F1F496741C52 0xD9 DUP1 0xF6 0x23 BLOCKHASH 0x1E MSTORE SWAP14 0xA5 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"2586:19095:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2102:147:15;;;;;;:::i;:::-;;:::i;:::-;;4754:55:20;;;;;;;;;;;;:::i;:::-;;;;;;;;7666:97;;;:::i;12741:174::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10056:366::-;;;;;;:::i;:::-;;:::i;3614:41::-;;3654:1;3614:41;;1879:84:6;1949:7;;;;1879:84;;;;;;:::i;2085:101:4:-;;;:::i;2031:212:3:-;;;:::i;7484:91:20:-;;;:::i;7999:309::-;;;;;;:::i;:::-;;:::i;3766:37::-;;;;;;;;;;;;:::i;14406:246::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;10620:149:20;;;;;;:::i;:::-;;:::i;8951:458::-;;;;;;:::i;:::-;;:::i;13508:625::-;;;;;;:::i;:::-;;:::i;4139:86::-;;4183:42;4139:86;;2345:125:15;2442:21;;-1:-1:-1;;;;;2442:21:15;2345:125;;10955:91:20;;;;;;:::i;:::-;;:::i;3904:28::-;;;;;7233:162;;;;;;:::i;:::-;;:::i;11197:125::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1144:99:3:-;1223:13;;-1:-1:-1;;;;;1223:13:3;1144:99;;4529:103:20;;-1:-1:-1;;;;;;;;;;;4529:103:20;;1436:178:3;;;;;;:::i;:::-;;:::i;12166:239:20:-;;;;;;:::i;:::-;;:::i;2102:147:15:-;1355:13:4;:11;:13::i;:::-;2195:47:15::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;7666:97:20:-;7704:32;;;;;;;;;;;;;;-1:-1:-1;;;7704:32:20;;;:19;:32::i;:::-;7746:10;:8;:10::i;:::-;7666:97::o;12741:174::-;12806:7;12829:8;1949:7:6;;;;;1879:84;12829:8:20;12825:50;;;12839:36;;-1:-1:-1;;;12839:36:20;;;;;;;:::i;:::-;;;;;;;;12825:50;12892:16;12902:5;12892:9;:16::i;:::-;12885:23;12741:174;-1:-1:-1;;12741:174:20:o;10056:366::-;10177:5;-1:-1:-1;;;;;5594:21:20;;5590:58;;5617:31;;-1:-1:-1;;;5617:31:20;;;;;;;:::i;5590:58::-;-1:-1:-1;;;;;5977:19:20;;::::1;6014:1;5977:19:::0;;;:12:::1;:19;::::0;;;;:25;10210:5;;5977:25:::1;5973:78;;6018:33;;-1:-1:-1::0;;;6018:33:20::1;;;;;;;:::i;5973:78::-;10227:55:::2;;;;;;;;;;;;;;;;;::::0;:19:::2;:55::i;:::-;-1:-1:-1::0;;;;;10292:19:20;::::2;;::::0;;;:12:::2;:19;::::0;;;;10351:6;;10292:41:::2;;10342:4:::0;10334:13:::2;::::0;::::2;;;;;;:::i;:::-;10292:56;;;;;;;:::i;:::-;;;;;;;;;;:65;;;;;;;;;;;;;;;;;;10408:6;10372:43;;10401:4;10393:13;;;;;;;;:::i;:::-;10372:43;::::0;-1:-1:-1;;;;;10372:43:20;::::2;::::0;::::2;::::0;;;::::2;5658:1:::1;10056:366:::0;;;;:::o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;2031:212:3:-:0;1223:13;;965:10:8;;-1:-1:-1;;;;;1223:13:3;2130:24;;2122:78;;;;-1:-1:-1;;;2122:78:3;;;;;;;:::i;:::-;2210:26;2229:6;2210:18;:26::i;7484:91:20:-;7520:30;;;;;;;;;;;;;;-1:-1:-1;;;7520:30:20;;;:19;:30::i;:::-;7560:8;:6;:8::i;7999:309::-;8083:13;:20;8107:1;8083:25;8079:58;;8110:27;;-1:-1:-1;;;8110:27:20;;;;;;;:::i;8079:58::-;8173:20;;8147:23;8203:99;8223:15;8219:1;:19;8203:99;;;8259:32;8274:13;8288:1;8274:16;;;;;;;;:::i;:::-;;;;;;;8259:14;:32::i;:::-;8240:3;;8203:99;;;;8069:239;7999:309;:::o;14406:246::-;-1:-1:-1;;;;;14527:19:20;;14478:14;14527:19;;;:12;:19;;;;;14478:14;;14527:27;;14563:4;14555:13;;;;;;;;:::i;:::-;14527:42;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;14589:19:20;;;14527:42;14589:19;;;:12;:19;;;;;14527:42;;;-1:-1:-1;14589:41:20;;14639:4;14631:13;;;;;;;;:::i;:::-;14589:56;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14579:66;;14406:246;;;;;:::o;10620:149::-;10685:13;10701:27;10721:6;10701:19;:27::i;:::-;10685:43;;10738:24;10756:5;10738:17;:24::i;:::-;10675:94;10620:149;:::o;8951:458::-;9072:5;-1:-1:-1;;;;;5594:21:20;;5590:58;;5617:31;;-1:-1:-1;;;5617:31:20;;;;;;;:::i;5590:58::-;-1:-1:-1;;;;;5977:19:20;;::::1;6014:1;5977:19:::0;;;:12:::1;:19;::::0;;;;:25;9105:5;;5977:25:::1;5973:78;;6018:33;;-1:-1:-1::0;;;6018:33:20::1;;;;;;;:::i;5973:78::-;9122:55:::2;;;;;;;;;;;;;;;;;::::0;:19:::2;:55::i;:::-;-1:-1:-1::0;;;;;9191:20:20;::::2;::::0;:47;::::2;;;-1:-1:-1::0;9223:15:20::2;9215:4;:23;;;;;;;;:::i;:::-;;9191:47;9187:100;;;9240:47;;-1:-1:-1::0;;;9240:47:20::2;;;;;;;:::i;9187:100::-;-1:-1:-1::0;;;;;9297:19:20;::::2;;::::0;;;:12:::2;:19;::::0;;;;9342:6;;9297:27:::2;;9333:4:::0;9325:13:::2;::::0;::::2;;;;;;:::i;:::-;9297:42;;;;;;;:::i;:::-;;:51:::0;;-1:-1:-1;;;;;;9297:51:20::2;-1:-1:-1::0;;;;;9297:51:20;;;::::2;::::0;;;::::2;::::0;;9396:4;9388:13:::2;::::0;::::2;;;;;;:::i;:::-;9380:6;-1:-1:-1::0;;;;;9363:39:20::2;9373:5;-1:-1:-1::0;;;;;9363:39:20::2;;;;;;;;;;;5658:1:::1;8951:458:::0;;;;:::o;13508:625::-;13600:17;;-1:-1:-1;;;;;5594:21:20;;5590:58;;5617:31;;-1:-1:-1;;;5617:31:20;;;;;;;:::i;5590:58::-;13634:19:::1;::::0;::::1;::::0;:45;-1:-1:-1;;;;;5594:21:20;::::1;5590:58;;5617:31;;-1:-1:-1::0;;;5617:31:20::1;;;;;;;:::i;5590:58::-;13691:50:::2;;;;;;;;;;;;;;;;;::::0;:19:::2;:50::i;:::-;13765:17:::0;;-1:-1:-1;;;;;13752:31:20;;::::2;;::::0;;;:12:::2;:31;::::0;;;;;;;:45;;;;-1:-1:-1;;;;;;13752:45:20::2;::::0;::::2;::::0;;;::::2;::::0;;;::::2;::::0;13765:17;;13752:31;:45:::2;::::0;-1:-1:-1;13752:45:20;::::2;::::0;::::2;;:::i;:::-;-1:-1:-1::0;13752:45:20::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;;:::i;:::-;-1:-1:-1::0;13752:45:20::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;::::0;;-1:-1:-1;;13752:45:20::2;::::0;::::2;;::::0;;;::::2;::::0;;13932:19:::2;::::0;;::::2;::::0;:46;;::::2;::::0;13873:45;;13842:17;;-1:-1:-1;;;;;13812:239:20;;::::2;::::0;;;::::2;::::0;::::2;::::0;::::2;::::0;14020:19:::2;13992:49;;;;13812:239;;;;;;:::i;:::-;;;;;;;;14099:11;:26;;;14066:60;;14080:11;:17;;;-1:-1:-1::0;;;;;14066:60:20::2;;;;;;;;;;;5658:1:::1;13508:625:::0;;:::o;10955:91::-;11015:24;11033:5;11015:17;:24::i;7233:162::-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;7315:46:20::1;7339:21;7315:23;:46::i;:::-;7371:17;:15;:17::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3269:483;7233:162:20;:::o;11197:125::-;11259:18;;:::i;:::-;-1:-1:-1;;;;;11296:19:20;;;;;;;:12;:19;;;;;;;;;11289:26;;;;;;;;;;;;;;;;;;;;;;;11296:19;;11289:26;;;;;;;;;;;;;;;-1:-1:-1;;;;;11289:26:20;;;;;;;;;;;;;;;-1:-1:-1;;;11289:26:20;;;-1:-1:-1;;11289:26:20;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11289:26:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11289:26:20;;;-1:-1:-1;;;11289:26:20;;;;;;;;;;;;;;;;;-1:-1:-1;;11197:125:20:o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1525::3::1;:24:::0;;-1:-1:-1;;;;;1525:24:3;::::1;-1:-1:-1::0;;;;;;1525:24:3;;::::1;::::0;::::1;::::0;;;1589:7:::1;1534:6:4::0;;-1:-1:-1;;;;;1534:6:4;;1462:85;1589:7:3::1;-1:-1:-1::0;;;;;1564:43:3::1;;;;;;;;;;;1436:178:::0;:::o;12166:239:20:-;12242:7;12265:8;1949:7:6;;;;;1879:84;12265:8:20;12261:50;;;12275:36;;-1:-1:-1;;;12275:36:20;;;;;;;:::i;12261:50::-;12322:13;12338:27;12358:6;12338:19;:27::i;:::-;12322:43;;12382:16;12392:5;12382:9;:16::i;:::-;12375:23;12166:239;-1:-1:-1;;;12166:239:20:o;1620:130:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2641:425:15:-;-1:-1:-1;;;;;2733:44:15;;2725:94;;;;-1:-1:-1;;;2725:94:15;;;;;;;:::i;:::-;2871:21;;;-1:-1:-1;;;;;2903:70:15;;;-1:-1:-1;;;;;;2903:70:15;;;;;;2988:71;;2871:21;;;2988:71;;;;2871:21;;2951;;2988:71;:::i;3203:282::-;3304:21;;:60;;-1:-1:-1;;;3304:60:15;;3281:20;;-1:-1:-1;;;;;3304:21:15;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;-1:-1:-1;;;3418:50:15;;;;;;;;;;:::i;2697:117:6:-;1750:16;:14;:16::i;:::-;2755:7:::1;:15:::0;;-1:-1:-1;;2755:15:6::1;::::0;;2785:22:::1;965:10:8::0;2794:12:6::1;2785:22;;;;;;:::i;:::-;;;;;;;;2697:117::o:0;15739:1920:20:-;15796:7;;;15891:44;-1:-1:-1;;;;;;;;;;;15929:5:20;15891:25;:44::i;:::-;15883:52;-1:-1:-1;15949:10:20;;15945:53;;15982:5;15739:1920;-1:-1:-1;;;15739:1920:20:o;15945:53::-;16084:19;16105:23;16132:34;16142:5;16149:16;16132:9;:34::i;:::-;16083:83;;;;16180:18;:47;;;;-1:-1:-1;;;;;;16202:25:20;;;;16180:47;16176:220;;;16247:44;;-1:-1:-1;;;16247:44:20;;-1:-1:-1;;;;;16247:37:20;;;;;:44;;16285:5;;16247:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;16247:44:20;;;;;;;;-1:-1:-1;;16247:44:20;;;;;;;;;;;;:::i;:::-;;;16243:143;;;16352:10;-1:-1:-1;16243:143:20;16664:17;16683:23;16710:133;16743:5;16762:10;16786:18;:47;;;;-1:-1:-1;;;;;;16808:25:20;;;;16786:47;16710:19;:133::i;:::-;16663:180;;;;3654:1;16857:9;:26;;:48;;;;;16887:18;16857:48;16853:70;;;-1:-1:-1;16914:9:20;15739:1920;-1:-1:-1;;;;;;15739:1920:20:o;16853:70::-;17114:21;17137:27;17168:42;17192:5;17199:10;17168:23;:42::i;:::-;17113:97;;;;3654:1;17224:13;:30;;:56;;;;;17258:22;17224:56;17220:82;;;-1:-1:-1;17289:13:20;15739:1920;-1:-1:-1;;;;;;;;15739:1920:20:o;17220:82::-;17386:26;;;;;:72;;-1:-1:-1;17428:30:20;;;17386:72;:164;;;;-1:-1:-1;17474:76:20;;-1:-1:-1;;;17474:76:20;;-1:-1:-1;;;;;17474:14:20;:43;;;;:76;;17518:5;;17525:9;;17536:13;;17474:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17369:233;;;-1:-1:-1;17582:9:20;;15739:1920;-1:-1:-1;;;;;;;;15739:1920:20:o;17369:233::-;17612:40;;-1:-1:-1;;;17612:40:20;;;;;;;:::i;1798:153:3:-;1887:13;1880:20;;-1:-1:-1;;;;;;1880:20:3;;;1910:34;1935:8;1910:24;:34::i;2450:115:6:-;1503:19;:17;:19::i;:::-;2509:7:::1;:14:::0;;-1:-1:-1;;2509:14:6::1;2519:4;2509:14;::::0;;2538:20:::1;2545:12;965:10:8::0;;886:96;21029:335:20;21119:13;21102:6;-1:-1:-1;;;;;5594:21:20;;5590:58;;5617:31;;-1:-1:-1;;;5617:31:20;;;;;;;:::i;5590:58::-;21158:12:::1;-1:-1:-1::0;;;;;21148:22:20::1;:6;-1:-1:-1::0;;;;;21148:22:20::1;::::0;21144:214:::1;;4183:42;21186:25;;21144:214;;;21242:3;-1:-1:-1::0;;;;;21232:13:20::1;:6;-1:-1:-1::0;;;;;21232:13:20::1;::::0;21228:130:::1;;21269:3;21261:11;;21228:130;;;21327:6;-1:-1:-1::0;;;;;21311:34:20::1;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21228:130::-;21029:335:::0;;;;:::o;14822:646::-;14887:44;-1:-1:-1;;;;;;;;;;;14925:5:20;14887:25;:44::i;:::-;:49;14883:86;;14822:646;:::o;14883:86::-;14980:18;15000:22;15026:33;15036:5;15043:15;15026:9;:33::i;:::-;14979:80;;-1:-1:-1;14979:80:20;-1:-1:-1;;;;;;15073:24:20;;;;;;:45;;;15101:17;15073:45;15069:238;;;15257:10;-1:-1:-1;;;;;15243:40:20;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15239:58;;-1:-1:-1;;;;;21638:19:20;;21615:4;21638:19;;;:12;:19;;;;;:34;;;;;15317:145;;;15359:13;15375:16;15385:5;15375:9;:16::i;:::-;15359:32;-1:-1:-1;15405:46:20;-1:-1:-1;;;;;;;;;;;15438:5:20;15359:32;15405:20;:46::i;:::-;15345:117;14873:595;;14822:646;:::o;1419:194:15:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1519:21:15::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;1084:97:6:-:0;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1147:27:6::1;:25;:27::i;2209:106::-:0;1949:7;;;;2267:41;;;;-1:-1:-1;;;2267:41:6;;;;;;;:::i;617:242:45:-;697:13;722:12;758:9;769:3;747:26;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;747:26:45;;;;;;;;;737:37;;747:26;737:37;;;;832:11;;617:242;-1:-1:-1;;;;617:242:45:o;18513:948:20:-;18649:7;18658:4;18675:18;18695:22;18721:33;18731:5;18738:15;18721:9;:33::i;:::-;18674:80;;;;18768:17;:45;;;;-1:-1:-1;;;;;;18789:24:20;;;;18768:45;18764:651;;;18833:43;;-1:-1:-1;;;18833:43:20;;-1:-1:-1;;;;;18833:36:20;;;;;:43;;18870:5;;18833:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;18833:43:20;;;;;;;;-1:-1:-1;;18833:43:20;;;;;;;;;;;;:::i;:::-;;;18829:576;;3654:1;19384:5;19361:29;;;;;;;;18829:576;18934:12;18929:90;;18978:15;-1:-1:-1;18995:4:20;;-1:-1:-1;18970:30:20;;-1:-1:-1;;18970:30:20;18929:90;19040:10;19036:105;;19099:15;-1:-1:-1;19116:5:20;;-1:-1:-1;19091:31:20;;-1:-1:-1;;19091:31:20;19036:105;19224:79;;-1:-1:-1;;;19224:79:20;;19187:15;;-1:-1:-1;;;;;19224:14:20;:43;;;;:79;;19268:5;;19187:15;;19292:10;;19224:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19158:163;;;;;;;;;18829:576;3654:1;19448:5;19425:29;;;;;;18513:948;;;;;;;:::o;20035:823::-;20125:7;20134:4;20151:22;20175:20;20199:37;20209:5;20216:19;20199:9;:37::i;:::-;20150:86;;;;20250:15;:47;;;;-1:-1:-1;;;;;;20269:28:20;;;;20250:47;20246:566;;;20317:47;;-1:-1:-1;;;20317:47:20;;-1:-1:-1;;;;;20317:40:20;;;;;:47;;20358:5;;20317:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:47:20;;;;;;;;-1:-1:-1;;20317:47:20;;;;;;;;;;;;:::i;:::-;;;20313:489;;3654:1;20781:5;20758:29;;;;;;;;20313:489;20425:10;20421:109;;20484:19;-1:-1:-1;20505:5:20;;-1:-1:-1;20476:35:20;;-1:-1:-1;;20476:35:20;20421:109;20617:83;;-1:-1:-1;;;20617:83:20;;20576:19;;-1:-1:-1;;;;;20617:14:20;:43;;;;:83;;20661:5;;20576:19;;20689:10;;20617:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20547:171;;;;;;;;;20313:489;3654:1;20845:5;20822:29;;;;;;20035:823;;;;;;:::o;2687:187:4:-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;2031:106:6:-;1949:7;;;;2100:9;2092:38;;;;-1:-1:-1;;;2092:38:6;;;;;;;:::i;238:222:45:-;324:12;360:9;371:3;349:26;;;;;;;;;:::i;:::-;;;;;;;;;;;;;339:37;;;;;;324:52;;438:5;432:4;425:19;411:43;238:222;;;:::o;889:100:3:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;956:26:3::1;:24;:26::i;1619:164:15:-:0;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;1187:95:6:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1260:7:6::1;:15:::0;;-1:-1:-1;;1260:15:6::1;::::0;;1187:95::o;1125:111:4:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;-1:-1:-1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;2586:19095:20;;;955:79:101;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:101:o;1390:126::-;1440:9;1473:37;1504:5;1473:37;:::i;1522:158::-;1604:9;1637:37;1668:5;1637:37;:::i;1686:195::-;1805:69;1868:5;1805:69;:::i;:::-;1800:3;1793:82;1686:195;;:::o;1887:286::-;2050:2;2035:18;;2063:103;2039:9;2139:6;2063:103;:::i;2262:118::-;2367:5;2349:24;1176:60;2386:222;2517:2;2502:18;;2530:71;2506:9;2574:6;2530:71;:::i;2614:114::-;2702:1;2695:5;2692:12;2682:40;;2718:1;2715;2708:12;2734:169;2820:20;;2849:48;2820:20;2849:48;:::i;3005:116::-;2979:13;;2972:21;3075;2909:90;3127:133;3195:20;;3224:30;3195:20;3224:30;:::i;3266:643::-;3355:6;3363;3371;3420:2;3408:9;3399:7;3395:23;3391:32;3388:119;;;3426:79;2586:19095:20;;;3426:79:101;3546:1;3571:53;3616:7;3596:9;3571:53;:::i;:::-;3561:63;;3517:117;3673:2;3699:68;3759:7;3750:6;3739:9;3735:22;3699:68;:::i;:::-;3689:78;;3644:133;3816:2;3842:50;3884:7;3875:6;3864:9;3860:22;3842:50;:::i;:::-;3832:60;;3787:115;3266:643;;;;;:::o;3915:109::-;2979:13;;2972:21;3996;2909:90;4030:210;4155:2;4140:18;;4168:65;4144:9;4206:6;4168:65;:::i;4477:180::-;-1:-1:-1;;;4522:1:101;4515:88;4622:4;4619:1;4612:15;4646:4;4643:1;4636:15;4663:281;-1:-1:-1;;4461:2:101;4441:14;;4437:28;4738:6;4734:40;4876:6;4864:10;4861:22;4840:18;4828:10;4825:34;4822:62;4819:88;;;4887:18;;:::i;:::-;4923:2;4916:22;-1:-1:-1;;4663:281:101:o;4950:129::-;4984:6;5011:20;73:2;67:9;;7:75;5011:20;5001:30;;5040:33;5068:4;5060:6;5040:33;:::i;:::-;4950:129;;;:::o;5085:340::-;5191:4;5281:18;5273:6;5270:30;5267:56;;;5303:18;;:::i;:::-;-1:-1:-1;5353:4:101;5341:17;;;5403:15;;5085:340::o;5800:249::-;5875:4;5965:18;5957:6;5954:30;5951:56;;;5987:18;;:::i;:::-;-1:-1:-1;6037:4:101;6025:17;;5800:249::o;6073:643::-;6167:5;6192:79;6208:62;6263:6;6208:62;:::i;:::-;6192:79;:::i;:::-;6183:88;;6291:5;6344:4;6336:6;6332:17;6324:6;6320:30;6373:3;6365:6;6362:15;6359:122;;;6392:79;2586:19095:20;;;6392:79:101;6507:6;6490:220;6524:6;6519:3;6516:15;6490:220;;;6599:3;6628:37;6661:3;6649:10;6628:37;:::i;:::-;6616:50;;-1:-1:-1;6695:4:101;6686:14;;;;6541;6490:220;;;6494:21;6173:543;;6073:643;;;;;:::o;6740:339::-;6809:5;6858:3;6851:4;6843:6;6839:17;6835:27;6825:122;;6866:79;2586:19095:20;;;6866:79:101;6970:4;6992:81;7069:3;7061:6;7053;6992:81;:::i;7352:634::-;7443:5;7468:76;7484:59;7536:6;7484:59;:::i;7468:76::-;7459:85;;7564:5;7617:4;7609:6;7605:17;7597:6;7593:30;7646:3;7638:6;7635:15;7632:122;;;7665:79;2586:19095:20;;;7665:79:101;7780:6;7763:217;7797:6;7792:3;7789:15;7763:217;;;7872:3;7901:34;7931:3;7919:10;7901:34;:::i;:::-;7889:47;;-1:-1:-1;7965:4:101;7956:14;;;;7814;7763:217;;8007:333;8073:5;8122:3;8115:4;8107:6;8103:17;8099:27;8089:122;;8130:79;2586:19095:20;;;8130:79:101;8234:4;8256:78;8330:3;8322:6;8314;8256:78;:::i;8388:975::-;8466:5;8510:6;8498:9;8493:3;8489:19;8485:32;8482:119;;;8520:79;2586:19095:20;;;8520:79:101;8619:21;8635:4;8619:21;:::i;:::-;8610:30;-1:-1:-1;8700:1:101;8740:49;8785:3;8765:9;8740:49;:::i;:::-;8715:75;;-1:-1:-1;8863:2:101;8904:72;8972:3;8948:22;;;8904:72;:::i;:::-;8897:4;8890:5;8886:16;8879:98;8811:177;9064:3;9106:69;9171:3;9162:6;9151:9;9147:22;9106:69;:::i;:::-;9099:4;9092:5;9088:16;9081:95;8998:189;9256:3;9298:46;9340:3;9331:6;9320:9;9316:22;9298:46;:::i;:::-;9291:4;9284:5;9280:16;9273:72;9197:159;8388:975;;;;:::o;9413:801::-;9538:5;9563:110;9579:93;9665:6;9579:93;:::i;9563:110::-;9708:21;;;9554:119;-1:-1:-1;9756:4:101;9745:16;;9809:6;9797:19;;9785:32;;9829:15;;;9826:122;;;9859:79;2586:19095:20;;;9859:79:101;9974:6;9957:251;9991:6;9986:3;9983:15;9957:251;;;10068:3;10097:66;10159:3;10147:10;10097:66;:::i;:::-;10085:79;;-1:-1:-1;10193:4:101;10184:14;;;;10017:6;10008:16;9957:251;;10264:428;10364:5;10413:3;10406:4;10398:6;10394:17;10390:27;10380:122;;10421:79;2586:19095:20;;;10421:79:101;10538:6;10525:20;10563:123;10682:3;10674:6;10667:4;10659:6;10655:17;10563:123;:::i;10698:597::-;10811:6;10860:2;10848:9;10839:7;10835:23;10831:32;10828:119;;;10866:79;2586:19095:20;;;10866:79:101;10986:31;;11044:18;11033:30;;11030:117;;;11066:79;2586:19095:20;;;11066:79:101;11171:107;11270:7;11261:6;11250:9;11246:22;11171:107;:::i;11301:118::-;11388:24;11406:5;11388:24;:::i;11425:222::-;11556:2;11541:18;;11569:71;11545:9;11613:6;11569:71;:::i;11653:504::-;11736:6;11744;11793:2;11781:9;11772:7;11768:23;11764:32;11761:119;;;11799:79;2586:19095:20;;;11799:79:101;11919:1;11944:53;11989:7;11969:9;11944:53;:::i;:::-;11934:63;;11890:117;12046:2;12072:68;12132:7;12123:6;12112:9;12108:22;12072:68;:::i;:::-;12062:78;;12017:133;11653:504;;;;;:::o;12163:320::-;12316:2;12301:18;;12329:71;12305:9;12373:6;12329:71;:::i;:::-;12410:66;12472:2;12461:9;12457:18;12448:6;12410:66;:::i;12489:649::-;12581:6;12589;12597;12646:2;12634:9;12625:7;12621:23;12617:32;12614:119;;;12652:79;2586:19095:20;;;12652:79:101;12772:1;12797:53;12842:7;12822:9;12797:53;:::i;:::-;12787:63;;12743:117;12899:2;12925:53;12970:7;12961:6;12950:9;12946:22;12925:53;:::i;:::-;12915:63;;12870:118;13027:2;13053:68;13113:7;13104:6;13093:9;13089:22;13053:68;:::i;13144:388::-;13232:6;13281:3;13269:9;13260:7;13256:23;13252:33;13249:120;;;13288:79;2586:19095:20;;;13288:79:101;13408:1;13433:82;13507:7;13487:9;13433:82;:::i;14662:179::-;14731:10;14752:46;14794:3;14786:6;14752:46;:::i;:::-;-1:-1:-1;;14830:4:101;14821:14;;14662:179::o;14996:674::-;14402:4;15336:5;15365:7;15396:1;15381:282;15406:6;15403:1;15400:13;15381:282;;;15482:6;15476:13;15509:63;15568:3;15553:13;15509:63;:::i;:::-;15502:70;-1:-1:-1;14947:4:101;14938:14;;15585:68;-1:-1:-1;;15428:1:101;15421:9;15381:282;;;15385:14;15098:572;;;14996:674;;:::o;16125:167::-;16188:10;16209:40;16245:3;16237:6;16209:40;:::i;16438:650::-;14402:4;16763:5;16792:7;16823:1;16808:273;16833:6;16830:1;16827:13;16808:273;;;16909:6;16903:13;16936:57;16989:3;16974:13;16936:57;:::i;:::-;16929:64;-1:-1:-1;14947:4:101;14938:14;;17006:65;-1:-1:-1;;16855:1:101;16848:9;16808:273;;17174:976;17402:23;;17329:6;17320:16;;;17438:63;17324:3;17402:23;17438:63;:::i;:::-;17346:165;17596:4;17589:5;17585:16;17579:23;17615:109;17718:4;17713:3;17709:14;17695:12;17615:109;:::i;:::-;17521:213;17833:4;17826:5;17822:16;17816:23;17852:103;17949:4;17944:3;17940:14;17926:12;17852:103;:::i;:::-;17744:221;18057:4;18050:5;18046:16;18040:23;18076:57;18127:4;18122:3;18118:14;18104:12;18076:57;:::i;18156:339::-;18345:3;18330:19;;18359:129;18334:9;18461:6;18359:129;:::i;19293:366::-;19520:2;19042:19;;19435:3;19094:4;19085:14;;19251:28;19228:52;;19449:74;-1:-1:-1;19532:93:101;-1:-1:-1;19650:2:101;19641:12;;19293:366::o;19665:419::-;19869:2;19882:47;;;19854:18;;19946:131;19854:18;19946:131;:::i;20267:366::-;20494:2;19042:19;;20409:3;19094:4;19085:14;;-1:-1:-1;;;20207:47:101;;20423:74;-1:-1:-1;20506:93:101;20090:171;20639:419;20843:2;20856:47;;;20828:18;;20920:131;20828:18;20920:131;:::i;21243:366::-;21470:2;19042:19;;21385:3;19094:4;19085:14;;21204:25;21181:49;;21399:74;-1:-1:-1;21482:93:101;21064:173;21615:419;21819:2;21832:47;;;21804:18;;21896:131;21804:18;21896:131;:::i;22040:180::-;-1:-1:-1;;;22085:1:101;22078:88;22185:4;22182:1;22175:15;22209:4;22206:1;22199:15;22226:180;-1:-1:-1;;;22271:1:101;22264:88;22371:4;22368:1;22361:15;22395:4;22392:1;22385:15;22646:366;22873:2;19042:19;;22788:3;19094:4;19085:14;;22552:34;22529:58;;-1:-1:-1;;;22616:2:101;22604:15;;22597:36;22802:74;-1:-1:-1;22885:93:101;-1:-1:-1;23003:2:101;22994:12;;22646:366::o;23018:419::-;23222:2;23235:47;;;23207:18;;23299:131;23207:18;23299:131;:::i;23616:366::-;23843:2;19042:19;;23758:3;19094:4;19085:14;;-1:-1:-1;;;23560:43:101;;23772:74;-1:-1:-1;23855:93:101;23443:167;23988:419;24192:2;24205:47;;;24177:18;;24269:131;24177:18;24269:131;:::i;24643:366::-;24870:2;19042:19;;24785:3;19094:4;19085:14;;24553:34;24530:58;;-1:-1:-1;;;24617:2:101;24605:15;;24598:32;24799:74;-1:-1:-1;24882:93:101;24413:224;25015:419;25219:2;25232:47;;;25204:18;;25296:131;25204:18;25296:131;:::i;25679:366::-;25906:2;19042:19;;25821:3;19094:4;19085:14;;25580:34;25557:58;;-1:-1:-1;;;25644:2:101;25632:15;;25625:41;25835:74;-1:-1:-1;25918:93:101;25440:233;26051:419;26255:2;26268:47;;;26240:18;;26332:131;26240:18;26332:131;:::i;26659:154::-;26715:9;26642:4;26631:16;;26748:59;26567:86;26819:143;26912:43;26949:5;26912:43;:::i;26968:234::-;27105:2;27090:18;;27118:77;27094:9;27168:6;27118:77;:::i;27396:366::-;27623:2;19042:19;;;27348:34;19085:14;;27325:58;;;27538:3;27635:93;27208:182;27768:419;27972:2;27985:47;;;27957:18;;28049:131;27957:18;28049:131;:::i;28423:366::-;28650:2;19042:19;;28565:3;19094:4;19085:14;;28333:34;28310:58;;-1:-1:-1;;;28397:2:101;28385:15;;28378:32;28579:74;-1:-1:-1;28662:93:101;28193:224;28795:419;28999:2;29012:47;;;28984:18;;29076:131;28984:18;29076:131;:::i;29220:332::-;29379:2;29364:18;;29392:71;29368:9;29436:6;29392:71;:::i;:::-;29473:72;29541:2;29530:9;29526:18;29517:6;29473:72;:::i;29663:139::-;29752:6;29747:3;29742;29736:23;-1:-1:-1;29793:1:101;29775:16;;29768:27;29663:139::o;29808:377::-;29896:3;29924:39;29957:5;29638:12;;29558:99;29924:39;19042:19;;;19094:4;19085:14;;29972:78;;30059:65;30117:6;30112:3;30105:4;30098:5;30094:16;30059:65;:::i;:::-;4461:2;4441:14;-1:-1:-1;;4437:28:101;30140:39;;;;;;-1:-1:-1;;29808:377:101:o;30191:423::-;30370:2;30355:18;;30383:71;30359:9;30427:6;30383:71;:::i;:::-;30501:9;30495:4;30491:20;30486:2;30475:9;30471:18;30464:48;30529:78;30602:4;30593:6;30529:78;:::i;30620:137::-;30699:13;;30721:30;30699:13;30721:30;:::i;30763:345::-;30830:6;30879:2;30867:9;30858:7;30854:23;30850:32;30847:119;;;30885:79;2586:19095:20;;;30885:79:101;31005:1;31030:61;31083:7;31063:9;31030:61;:::i;31114:533::-;31321:2;31306:18;;31334:71;31310:9;31378:6;31334:71;:::i;:::-;31415:72;31483:2;31472:9;31468:18;31459:6;31415:72;:::i;:::-;31534:9;31528:4;31524:20;31519:2;31508:9;31504:18;31497:48;31562:78;31635:4;31626:6;31562:78;:::i;:::-;31554:86;31114:533;-1:-1:-1;;;;;31114:533:101:o;31653:122::-;31744:5;31726:24;1176:60;31781:143;31863:13;;31885:33;31863:13;31885:33;:::i;31930:351::-;32000:6;32049:2;32037:9;32028:7;32024:23;32020:32;32017:119;;;32055:79;2586:19095:20;;;32055:79:101;32175:1;32200:64;32256:7;32236:9;32200:64;:::i;32287:442::-;32474:2;32459:18;;32487:71;32463:9;32531:6;32487:71;:::i;:::-;32568:72;32636:2;32625:9;32621:18;32612:6;32568:72;:::i;:::-;32650;32718:2;32707:9;32703:18;32694:6;32650:72;:::i;32921:366::-;33148:2;19042:19;;33063:3;19094:4;19085:14;;32875:32;32852:56;;33077:74;-1:-1:-1;33160:93:101;32735:180;33293:419;33497:2;33510:47;;;33482:18;;33574:131;33482:18;33574:131;:::i;33718:143::-;33800:13;;33822:33;33800:13;33822:33;:::i;33867:351::-;33937:6;33986:2;33974:9;33965:7;33961:23;33957:32;33954:119;;;33992:79;2586:19095:20;;;33992:79:101;34112:1;34137:64;34193:7;34173:9;34137:64;:::i;34460:366::-;34687:2;19042:19;;34602:3;19094:4;19085:14;;34364:34;34341:58;;-1:-1:-1;;;34428:2:101;34416:15;;34409:38;34616:74;-1:-1:-1;34699:93:101;34224:230;34832:419;35036:2;35049:47;;;35021:18;;35113:131;35021:18;35113:131;:::i;35433:366::-;35660:2;19042:19;;35575:3;19094:4;19085:14;;-1:-1:-1;;;35374:46:101;;35589:74;-1:-1:-1;35672:93:101;35257:170;35805:419;36009:2;36022:47;;;35994:18;;36086:131;35994:18;36086:131;:::i;36230:332::-;36389:2;36374:18;;36402:71;36378:9;36446:6;36402:71;:::i;36740:366::-;36967:2;19042:19;;36882:3;19094:4;19085:14;;-1:-1:-1;;;36685:42:101;;36896:74;-1:-1:-1;36979:93:101;36568:166;37112:419;37316:2;37329:47;;;37301:18;;37393:131;37301:18;37393:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"1860200","executionCost":"infinite","totalCost":"infinite"},"external":{"CACHE_SLOT()":"infinite","INVALID_PRICE()":"404","NATIVE_TOKEN_ADDR()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"infinite","boundValidator()":"infinite","enableOracle(address,uint8,bool)":"infinite","getOracle(address,uint8)":"infinite","getPrice(address)":"infinite","getTokenConfig(address)":"infinite","getUnderlyingPrice(address)":"infinite","initialize(address)":"infinite","nativeMarket()":"infinite","owner()":"infinite","pause()":"infinite","paused()":"2414","pendingOwner()":"infinite","renounceOwnership()":"infinite","setAccessControlManager(address)":"infinite","setOracle(address,address,uint8)":"infinite","setTokenConfig((address,address[3],bool[3],bool))":"infinite","setTokenConfigs((address,address[3],bool[3],bool)[])":"infinite","transferOwnership(address)":"infinite","unpause()":"infinite","updateAssetPrice(address)":"infinite","updatePrice(address)":"infinite","vai()":"infinite"},"internal":{"_getFallbackOraclePrice(address,uint256)":"infinite","_getMainOraclePrice(address,uint256,bool)":"infinite","_getPrice(address)":"infinite","_getUnderlyingAsset(address)":"infinite","_isCacheEnabled(address)":"infinite","_updateAssetPrice(address)":"infinite"}},"methodIdentifiers":{"CACHE_SLOT()":"e9d1284f","INVALID_PRICE()":"4bf39cba","NATIVE_TOKEN_ADDR()":"a9534f8a","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","boundValidator()":"33d33494","enableOracle(address,uint8,bool)":"4b932b8f","getOracle(address,uint8)":"8b855da4","getPrice(address)":"41976e09","getTokenConfig(address)":"cb67e3b1","getUnderlyingPrice(address)":"fc57d4df","initialize(address)":"c4d66de8","nativeMarket()":"8a2f7f6d","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setOracle(address,address,uint8)":"a6b1344a","setTokenConfig((address,address[3],bool[3],bool))":"a8e68463","setTokenConfigs((address,address[3],bool[3],bool)[])":"883cfb91","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateAssetPrice(address)":"b62cad69","updatePrice(address)":"96e85ced","vai()":"b62e4c92"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nativeMarketAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaiAddress\",\"type\":\"address\"},{\"internalType\":\"contract BoundValidatorInterface\",\"name\":\"_boundValidator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"CachedEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"role\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"OracleEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"role\",\"type\":\"uint256\"}],\"name\":\"OracleSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mainOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pivotOracle\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fallbackOracle\",\"type\":\"address\"}],\"name\":\"TokenConfigAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CACHE_SLOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INVALID_PRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"boundValidator\",\"outputs\":[{\"internalType\":\"contract BoundValidatorInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"enum ResilientOracle.OracleRole\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"enableOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"enum ResilientOracle.OracleRole\",\"name\":\"role\",\"type\":\"uint8\"}],\"name\":\"getOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getTokenConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address[3]\",\"name\":\"oracles\",\"type\":\"address[3]\"},{\"internalType\":\"bool[3]\",\"name\":\"enableFlagsForOracles\",\"type\":\"bool[3]\"},{\"internalType\":\"bool\",\"name\":\"cachingEnabled\",\"type\":\"bool\"}],\"internalType\":\"struct ResilientOracle.TokenConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"getUnderlyingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeMarket\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"enum ResilientOracle.OracleRole\",\"name\":\"role\",\"type\":\"uint8\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address[3]\",\"name\":\"oracles\",\"type\":\"address[3]\"},{\"internalType\":\"bool[3]\",\"name\":\"enableFlagsForOracles\",\"type\":\"bool[3]\"},{\"internalType\":\"bool\",\"name\":\"cachingEnabled\",\"type\":\"bool\"}],\"internalType\":\"struct ResilientOracle.TokenConfig\",\"name\":\"tokenConfig\",\"type\":\"tuple\"}],\"name\":\"setTokenConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address[3]\",\"name\":\"oracles\",\"type\":\"address[3]\"},{\"internalType\":\"bool[3]\",\"name\":\"enableFlagsForOracles\",\"type\":\"bool[3]\"},{\"internalType\":\"bool\",\"name\":\"cachingEnabled\",\"type\":\"bool\"}],\"internalType\":\"struct ResilientOracle.TokenConfig[]\",\"name\":\"tokenConfigs_\",\"type\":\"tuple[]\"}],\"name\":\"setTokenConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"updateAssetPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"updatePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vai\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"details\":\"nativeMarketAddress can be address(0) if on the chain we do not support native market      (e.g vETH on ethereum would not be supported, only vWETH)\",\"params\":{\"_boundValidator\":\"Address of the bound validator contract\",\"nativeMarketAddress\":\"The address of a native market (for bsc it would be vBNB address)\",\"vaiAddress\":\"The address of the VAI token (if there is VAI on the deployed chain).          Set to address(0) of VAI is not existent.\"}},\"enableOracle(address,uint8,bool)\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"NotNullAddress error is thrown if asset address is nullTokenConfigExistance error is thrown if token config is not set\",\"custom:event\":\"Emits OracleEnabled event with asset address, role of the oracle and enabled flag\",\"details\":\"Configuration for the asset **must** already exist and the asset cannot be 0 address\",\"params\":{\"asset\":\"Asset address\",\"enable\":\"Enabled boolean of the oracle\",\"role\":\"Oracle role\"}},\"getOracle(address,uint8)\":{\"params\":{\"asset\":\"asset address\",\"role\":\"Oracle role\"},\"returns\":{\"enabled\":\"Enabled flag of the oracle based on token config\",\"oracle\":\"Oracle address based on role\"}},\"getPrice(address)\":{\"custom:error\":\"Paused error is thrown when resilent oracle is pausedInvalid resilient oracle price error is thrown if fetched prices from oracle is invalid\",\"params\":{\"asset\":\"asset address\"},\"returns\":{\"_0\":\"price USD price in scaled decimal places.\"}},\"getTokenConfig(address)\":{\"details\":\"Gets token config by asset address\",\"params\":{\"asset\":\"asset address\"},\"returns\":{\"_0\":\"tokenConfig Config for the asset\"}},\"getUnderlyingPrice(address)\":{\"custom:error\":\"Paused error is thrown when resilent oracle is pausedInvalid resilient oracle price error is thrown if fetched prices from oracle is invalid\",\"params\":{\"vToken\":\"vToken address\"},\"returns\":{\"_0\":\"price USD price in scaled decimal places.\"}},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"Address of the access control manager contract\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Only Governance\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setOracle(address,address,uint8)\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"Null address error if main-role oracle address is nullNotNullAddress error is thrown if asset address is nullTokenConfigExistance error is thrown if token config is not set\",\"custom:event\":\"Emits OracleSet event with asset address, oracle address and role of the oracle for the asset\",\"details\":\"Supplied asset **must** exist and main oracle may not be null\",\"params\":{\"asset\":\"Asset address\",\"oracle\":\"Oracle address\",\"role\":\"Oracle role\"}},\"setTokenConfig((address,address[3],bool[3],bool))\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"NotNullAddress is thrown if asset address is nullNotNullAddress is thrown if main-role oracle address for asset is null\",\"custom:event\":\"Emits TokenConfigAdded event when the asset config is set successfully by the authorized accountEmits CachedEnabled event when the asset cachingEnabled flag is set successfully\",\"details\":\"main oracle **must not** be a null address\",\"params\":{\"tokenConfig\":\"Token config struct\"}},\"setTokenConfigs((address,address[3],bool[3],bool)[])\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"Throws a length error if the length of the token configs array is 0\",\"params\":{\"tokenConfigs_\":\"Token config array\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Only Governance\"},\"updateAssetPrice(address)\":{\"details\":\"This function should always be called before calling getPrice\",\"params\":{\"asset\":\"asset address\"}},\"updatePrice(address)\":{\"details\":\"This function should always be called before calling getUnderlyingPrice\",\"params\":{\"vToken\":\"vToken address\"}}},\"stateVariables\":{\"boundValidator\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"nativeMarket\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"vai\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"ResilientOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"CachedEnabled(address,bool)\":{\"notice\":\"Event emitted when an asset cachingEnabled flag is set\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"OracleEnabled(address,uint256,bool)\":{\"notice\":\"Event emitted when an oracle is enabled or disabled\"},\"OracleSet(address,address,uint256)\":{\"notice\":\"Event emitted when an oracle is set\"}},\"kind\":\"user\",\"methods\":{\"CACHE_SLOT()\":{\"notice\":\"Slot to cache the asset's price, used for transient storage custom:storage-location erc7201:venus-protocol/oracle/ResilientOracle/cache keccak256(abi.encode(uint256(keccak256(\\\"venus-protocol/oracle/ResilientOracle/cache\\\")) - 1))   & ~bytes32(uint256(0xff))\"},\"NATIVE_TOKEN_ADDR()\":{\"notice\":\"Set this as asset address for Native token on each chain.This is the underlying for vBNB (on bsc) and can serve as any underlying asset of a market that supports native tokens\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"boundValidator()\":{\"notice\":\"Bound validator contract address\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract. Sets immutable variables.\"},\"enableOracle(address,uint8,bool)\":{\"notice\":\"Enables/ disables oracle for the input asset. Token config for the input asset **must** exist\"},\"getOracle(address,uint8)\":{\"notice\":\"Gets oracle and enabled status by asset address\"},\"getPrice(address)\":{\"notice\":\"Gets price of the asset\"},\"getUnderlyingPrice(address)\":{\"notice\":\"Gets price of the underlying asset for a given vToken. Validation flow: - Check if the oracle is paused globally - Validate price from main oracle against pivot oracle - Validate price from fallback oracle against pivot oracle if the first validation failed - Validate price from main oracle against fallback oracle if the second validation failed In the case that the pivot oracle is not available but main price is available and validation is successful, main oracle price is returned.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract admin and sets the BoundValidator contract address\"},\"nativeMarket()\":{\"notice\":\"Native market address\"},\"pause()\":{\"notice\":\"Pauses oracle\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setOracle(address,address,uint8)\":{\"notice\":\"Sets oracle for a given asset and role.\"},\"setTokenConfig((address,address[3],bool[3],bool))\":{\"notice\":\"Sets/resets single token configs.\"},\"setTokenConfigs((address,address[3],bool[3],bool)[])\":{\"notice\":\"Batch sets token configs\"},\"unpause()\":{\"notice\":\"Unpauses oracle\"},\"updateAssetPrice(address)\":{\"notice\":\"Updates the capped main oracle snapshot.\"},\"updatePrice(address)\":{\"notice\":\"Updates the capped main oracle snapshot.\"},\"vai()\":{\"notice\":\"VAI address\"}},\"notice\":\"The Resilient Oracle is the main contract that the protocol uses to fetch prices of assets. DeFi protocols are vulnerable to price oracle failures including oracle manipulation and incorrectly reported prices. If only one oracle is used, this creates a single point of failure and opens a vector for attacking the protocol. The Resilient Oracle uses multiple sources and fallback mechanisms to provide accurate prices and protect the protocol from oracle attacks. For every market (vToken) we configure the main, pivot and fallback oracles. The oracles are configured per vToken's underlying asset address. The main oracle oracle is the most trustworthy price source, the pivot oracle is used as a loose sanity checker and the fallback oracle is used as a backup price source. To validate prices returned from two oracles, we use an upper and lower bound ratio that is set for every market. The upper bound ratio represents the deviation between reported price (the price that\\u2019s being validated) and the anchor price (the price we are validating against) above which the reported price will be invalidated. The lower bound ratio presents the deviation between reported price and anchor price below which the reported price will be invalidated. So for oracle price to be considered valid the below statement should be true: ``` anchorRatio = anchorPrice/reporterPrice isValid = anchorRatio <= upperBoundAnchorRatio && anchorRatio >= lowerBoundAnchorRatio ``` In most cases, Chainlink is used as the main oracle, other oracles are used as the pivot oracle depending on which supports the given market and Binance oracle is used as the fallback oracle. For a fetched price to be valid it must be positive and not stagnant. If the price is invalid then we consider the oracle to be stagnant and treat it like it's disabled.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ResilientOracle.sol\":\"ResilientOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    function __Pausable_init() internal onlyInitializing {\\n        __Pausable_init_unchained();\\n    }\\n\\n    function __Pausable_init_unchained() internal onlyInitializing {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xad32f6821f860555f9530902a65b54203a4f5db2117f4384ae47a124958078db\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/ResilientOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n// SPDX-FileCopyrightText: 2022 Venus\\npragma solidity 0.8.25;\\n\\nimport { PausableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol\\\";\\nimport { VBep20Interface } from \\\"./interfaces/VBep20Interface.sol\\\";\\nimport { OracleInterface, ResilientOracleInterface, BoundValidatorInterface } from \\\"./interfaces/OracleInterface.sol\\\";\\nimport { AccessControlledV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\\\";\\nimport { ICappedOracle } from \\\"./interfaces/ICappedOracle.sol\\\";\\nimport { Transient } from \\\"./lib/Transient.sol\\\";\\n\\n/**\\n * @title ResilientOracle\\n * @author Venus\\n * @notice The Resilient Oracle is the main contract that the protocol uses to fetch prices of assets.\\n *\\n * DeFi protocols are vulnerable to price oracle failures including oracle manipulation and incorrectly\\n * reported prices. If only one oracle is used, this creates a single point of failure and opens a vector\\n * for attacking the protocol.\\n *\\n * The Resilient Oracle uses multiple sources and fallback mechanisms to provide accurate prices and protect\\n * the protocol from oracle attacks.\\n *\\n * For every market (vToken) we configure the main, pivot and fallback oracles. The oracles are configured per\\n * vToken's underlying asset address. The main oracle oracle is the most trustworthy price source, the pivot\\n * oracle is used as a loose sanity checker and the fallback oracle is used as a backup price source.\\n *\\n * To validate prices returned from two oracles, we use an upper and lower bound ratio that is set for every\\n * market. The upper bound ratio represents the deviation between reported price (the price that\\u2019s being\\n * validated) and the anchor price (the price we are validating against) above which the reported price will\\n * be invalidated. The lower bound ratio presents the deviation between reported price and anchor price below\\n * which the reported price will be invalidated. So for oracle price to be considered valid the below statement\\n * should be true:\\n\\n```\\nanchorRatio = anchorPrice/reporterPrice\\nisValid = anchorRatio <= upperBoundAnchorRatio && anchorRatio >= lowerBoundAnchorRatio\\n```\\n\\n * In most cases, Chainlink is used as the main oracle, other oracles are used as the pivot oracle depending\\n * on which supports the given market and Binance oracle is used as the fallback oracle.\\n *\\n * For a fetched price to be valid it must be positive and not stagnant. If the price is invalid then we consider the\\n * oracle to be stagnant and treat it like it's disabled.\\n */\\ncontract ResilientOracle is PausableUpgradeable, AccessControlledV8, ResilientOracleInterface {\\n    /**\\n     * @dev Oracle roles:\\n     * **main**: The most trustworthy price source\\n     * **pivot**: Price oracle used as a loose sanity checker\\n     * **fallback**: The backup source when main oracle price is invalidated\\n     */\\n    enum OracleRole {\\n        MAIN,\\n        PIVOT,\\n        FALLBACK\\n    }\\n\\n    struct TokenConfig {\\n        /// @notice asset address\\n        address asset;\\n        /// @notice `oracles` stores the oracles based on their role in the following order:\\n        /// [main, pivot, fallback],\\n        /// It can be indexed with the corresponding enum OracleRole value\\n        address[3] oracles;\\n        /// @notice `enableFlagsForOracles` stores the enabled state\\n        /// for each oracle in the same order as `oracles`\\n        bool[3] enableFlagsForOracles;\\n        /// @notice `cachingEnabled` is a flag that indicates whether the asset price should be cached\\n        bool cachingEnabled;\\n    }\\n\\n    uint256 public constant INVALID_PRICE = 0;\\n\\n    /// @notice Native market address\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    address public immutable nativeMarket;\\n\\n    /// @notice VAI address\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    address public immutable vai;\\n\\n    /// @notice Set this as asset address for Native token on each chain.This is the underlying for vBNB (on bsc)\\n    /// and can serve as any underlying asset of a market that supports native tokens\\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Slot to cache the asset's price, used for transient storage\\n    /// custom:storage-location erc7201:venus-protocol/oracle/ResilientOracle/cache\\n    /// keccak256(abi.encode(uint256(keccak256(\\\"venus-protocol/oracle/ResilientOracle/cache\\\")) - 1))\\n    ///   & ~bytes32(uint256(0xff))\\n    bytes32 public constant CACHE_SLOT = 0x4e99ec55972332f5e0ef9c6623192c0401b609161bffae64d9ccdd7ad6cc7800;\\n\\n    /// @notice Bound validator contract address\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    BoundValidatorInterface public immutable boundValidator;\\n\\n    mapping(address => TokenConfig) private tokenConfigs;\\n\\n    event TokenConfigAdded(\\n        address indexed asset,\\n        address indexed mainOracle,\\n        address indexed pivotOracle,\\n        address fallbackOracle\\n    );\\n\\n    /// Event emitted when an oracle is set\\n    event OracleSet(address indexed asset, address indexed oracle, uint256 indexed role);\\n\\n    /// Event emitted when an oracle is enabled or disabled\\n    event OracleEnabled(address indexed asset, uint256 indexed role, bool indexed enable);\\n\\n    /// Event emitted when an asset cachingEnabled flag is set\\n    event CachedEnabled(address indexed asset, bool indexed enabled);\\n\\n    /**\\n     * @notice Checks whether an address is null or not\\n     */\\n    modifier notNullAddress(address someone) {\\n        if (someone == address(0)) revert(\\\"can't be zero address\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @notice Checks whether token config exists by checking whether asset is null address\\n     * @dev address can't be null, so it's suitable to be used to check the validity of the config\\n     * @param asset asset address\\n     */\\n    modifier checkTokenConfigExistence(address asset) {\\n        if (tokenConfigs[asset].asset == address(0)) revert(\\\"token config must exist\\\");\\n        _;\\n    }\\n\\n    /// @notice Constructor for the implementation contract. Sets immutable variables.\\n    /// @dev nativeMarketAddress can be address(0) if on the chain we do not support native market\\n    ///      (e.g vETH on ethereum would not be supported, only vWETH)\\n    /// @param nativeMarketAddress The address of a native market (for bsc it would be vBNB address)\\n    /// @param vaiAddress The address of the VAI token (if there is VAI on the deployed chain).\\n    ///          Set to address(0) of VAI is not existent.\\n    /// @param _boundValidator Address of the bound validator contract\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor(\\n        address nativeMarketAddress,\\n        address vaiAddress,\\n        BoundValidatorInterface _boundValidator\\n    ) notNullAddress(address(_boundValidator)) {\\n        nativeMarket = nativeMarketAddress;\\n        vai = vaiAddress;\\n        boundValidator = _boundValidator;\\n\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the contract admin and sets the BoundValidator contract address\\n     * @param accessControlManager_ Address of the access control manager contract\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n        __Pausable_init();\\n    }\\n\\n    /**\\n     * @notice Pauses oracle\\n     * @custom:access Only Governance\\n     */\\n    function pause() external {\\n        _checkAccessAllowed(\\\"pause()\\\");\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Unpauses oracle\\n     * @custom:access Only Governance\\n     */\\n    function unpause() external {\\n        _checkAccessAllowed(\\\"unpause()\\\");\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Batch sets token configs\\n     * @param tokenConfigs_ Token config array\\n     * @custom:access Only Governance\\n     * @custom:error Throws a length error if the length of the token configs array is 0\\n     */\\n    function setTokenConfigs(TokenConfig[] memory tokenConfigs_) external {\\n        if (tokenConfigs_.length == 0) revert(\\\"length can't be 0\\\");\\n        uint256 numTokenConfigs = tokenConfigs_.length;\\n        for (uint256 i; i < numTokenConfigs; ++i) {\\n            setTokenConfig(tokenConfigs_[i]);\\n        }\\n    }\\n\\n    /**\\n     * @notice Sets oracle for a given asset and role.\\n     * @dev Supplied asset **must** exist and main oracle may not be null\\n     * @param asset Asset address\\n     * @param oracle Oracle address\\n     * @param role Oracle role\\n     * @custom:access Only Governance\\n     * @custom:error Null address error if main-role oracle address is null\\n     * @custom:error NotNullAddress error is thrown if asset address is null\\n     * @custom:error TokenConfigExistance error is thrown if token config is not set\\n     * @custom:event Emits OracleSet event with asset address, oracle address and role of the oracle for the asset\\n     */\\n    function setOracle(\\n        address asset,\\n        address oracle,\\n        OracleRole role\\n    ) external notNullAddress(asset) checkTokenConfigExistence(asset) {\\n        _checkAccessAllowed(\\\"setOracle(address,address,uint8)\\\");\\n        if (oracle == address(0) && role == OracleRole.MAIN) revert(\\\"can't set zero address to main oracle\\\");\\n        tokenConfigs[asset].oracles[uint256(role)] = oracle;\\n        emit OracleSet(asset, oracle, uint256(role));\\n    }\\n\\n    /**\\n     * @notice Enables/ disables oracle for the input asset. Token config for the input asset **must** exist\\n     * @dev Configuration for the asset **must** already exist and the asset cannot be 0 address\\n     * @param asset Asset address\\n     * @param role Oracle role\\n     * @param enable Enabled boolean of the oracle\\n     * @custom:access Only Governance\\n     * @custom:error NotNullAddress error is thrown if asset address is null\\n     * @custom:error TokenConfigExistance error is thrown if token config is not set\\n     * @custom:event Emits OracleEnabled event with asset address, role of the oracle and enabled flag\\n     */\\n    function enableOracle(\\n        address asset,\\n        OracleRole role,\\n        bool enable\\n    ) external notNullAddress(asset) checkTokenConfigExistence(asset) {\\n        _checkAccessAllowed(\\\"enableOracle(address,uint8,bool)\\\");\\n        tokenConfigs[asset].enableFlagsForOracles[uint256(role)] = enable;\\n        emit OracleEnabled(asset, uint256(role), enable);\\n    }\\n\\n    /**\\n     * @notice Updates the capped main oracle snapshot.\\n     * @dev This function should always be called before calling getUnderlyingPrice\\n     * @param vToken vToken address\\n     */\\n    function updatePrice(address vToken) external override {\\n        address asset = _getUnderlyingAsset(vToken);\\n        _updateAssetPrice(asset);\\n    }\\n\\n    /**\\n     * @notice Updates the capped main oracle snapshot.\\n     * @dev This function should always be called before calling getPrice\\n     * @param asset asset address\\n     */\\n    function updateAssetPrice(address asset) external {\\n        _updateAssetPrice(asset);\\n    }\\n\\n    /**\\n     * @dev Gets token config by asset address\\n     * @param asset asset address\\n     * @return tokenConfig Config for the asset\\n     */\\n    function getTokenConfig(address asset) external view returns (TokenConfig memory) {\\n        return tokenConfigs[asset];\\n    }\\n\\n    /**\\n     * @notice Gets price of the underlying asset for a given vToken. Validation flow:\\n     * - Check if the oracle is paused globally\\n     * - Validate price from main oracle against pivot oracle\\n     * - Validate price from fallback oracle against pivot oracle if the first validation failed\\n     * - Validate price from main oracle against fallback oracle if the second validation failed\\n     * In the case that the pivot oracle is not available but main price is available and validation is successful,\\n     * main oracle price is returned.\\n     * @param vToken vToken address\\n     * @return price USD price in scaled decimal places.\\n     * @custom:error Paused error is thrown when resilent oracle is paused\\n     * @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid\\n     */\\n    function getUnderlyingPrice(address vToken) external view override returns (uint256) {\\n        if (paused()) revert(\\\"resilient oracle is paused\\\");\\n\\n        address asset = _getUnderlyingAsset(vToken);\\n        return _getPrice(asset);\\n    }\\n\\n    /**\\n     * @notice Gets price of the asset\\n     * @param asset asset address\\n     * @return price USD price in scaled decimal places.\\n     * @custom:error Paused error is thrown when resilent oracle is paused\\n     * @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid\\n     */\\n    function getPrice(address asset) external view override returns (uint256) {\\n        if (paused()) revert(\\\"resilient oracle is paused\\\");\\n        return _getPrice(asset);\\n    }\\n\\n    /**\\n     * @notice Sets/resets single token configs.\\n     * @dev main oracle **must not** be a null address\\n     * @param tokenConfig Token config struct\\n     * @custom:access Only Governance\\n     * @custom:error NotNullAddress is thrown if asset address is null\\n     * @custom:error NotNullAddress is thrown if main-role oracle address for asset is null\\n     * @custom:event Emits TokenConfigAdded event when the asset config is set successfully by the authorized account\\n     * @custom:event Emits CachedEnabled event when the asset cachingEnabled flag is set successfully\\n     */\\n    function setTokenConfig(\\n        TokenConfig memory tokenConfig\\n    ) public notNullAddress(tokenConfig.asset) notNullAddress(tokenConfig.oracles[uint256(OracleRole.MAIN)]) {\\n        _checkAccessAllowed(\\\"setTokenConfig(TokenConfig)\\\");\\n\\n        tokenConfigs[tokenConfig.asset] = tokenConfig;\\n        emit TokenConfigAdded(\\n            tokenConfig.asset,\\n            tokenConfig.oracles[uint256(OracleRole.MAIN)],\\n            tokenConfig.oracles[uint256(OracleRole.PIVOT)],\\n            tokenConfig.oracles[uint256(OracleRole.FALLBACK)]\\n        );\\n        emit CachedEnabled(tokenConfig.asset, tokenConfig.cachingEnabled);\\n    }\\n\\n    /**\\n     * @notice Gets oracle and enabled status by asset address\\n     * @param asset asset address\\n     * @param role Oracle role\\n     * @return oracle Oracle address based on role\\n     * @return enabled Enabled flag of the oracle based on token config\\n     */\\n    function getOracle(address asset, OracleRole role) public view returns (address oracle, bool enabled) {\\n        oracle = tokenConfigs[asset].oracles[uint256(role)];\\n        enabled = tokenConfigs[asset].enableFlagsForOracles[uint256(role)];\\n    }\\n\\n    /**\\n     * @notice Updates the capped oracle snapshot.\\n     * @dev Cache the asset price and return if already cached\\n     * @param asset asset address\\n     */\\n    function _updateAssetPrice(address asset) internal {\\n        if (Transient.readCachedPrice(CACHE_SLOT, asset) != 0) {\\n            return;\\n        }\\n\\n        (address mainOracle, bool mainOracleEnabled) = getOracle(asset, OracleRole.MAIN);\\n        if (mainOracle != address(0) && mainOracleEnabled) {\\n            // if main oracle is not CorrelatedTokenOracle it will revert so we need to catch the revert\\n            try ICappedOracle(mainOracle).updateSnapshot() {} catch {}\\n        }\\n\\n        if (_isCacheEnabled(asset)) {\\n            uint256 price = _getPrice(asset);\\n            Transient.cachePrice(CACHE_SLOT, asset, price);\\n        }\\n    }\\n\\n    /**\\n     * @notice Gets price for the provided asset\\n     * @param asset asset address\\n     * @return price USD price in scaled decimal places.\\n     * @custom:error Invalid resilient oracle price error is thrown if fetched prices from oracle is invalid\\n     */\\n    function _getPrice(address asset) internal view returns (uint256) {\\n        uint256 pivotPrice = INVALID_PRICE;\\n        uint256 price;\\n\\n        price = Transient.readCachedPrice(CACHE_SLOT, asset);\\n        if (price != 0) {\\n            return price;\\n        }\\n\\n        // Get pivot oracle price, Invalid price if not available or error\\n        (address pivotOracle, bool pivotOracleEnabled) = getOracle(asset, OracleRole.PIVOT);\\n        if (pivotOracleEnabled && pivotOracle != address(0)) {\\n            try OracleInterface(pivotOracle).getPrice(asset) returns (uint256 pricePivot) {\\n                pivotPrice = pricePivot;\\n            } catch {}\\n        }\\n\\n        // Compare main price and pivot price, return main price and if validation was successful\\n        // note: In case pivot oracle is not available but main price is available and\\n        // validation is successful, the main oracle price is returned.\\n        (uint256 mainPrice, bool validatedPivotMain) = _getMainOraclePrice(\\n            asset,\\n            pivotPrice,\\n            pivotOracleEnabled && pivotOracle != address(0)\\n        );\\n        if (mainPrice != INVALID_PRICE && validatedPivotMain) return mainPrice;\\n\\n        // Compare fallback and pivot if main oracle comparision fails with pivot\\n        // Return fallback price when fallback price is validated successfully with pivot oracle\\n        (uint256 fallbackPrice, bool validatedPivotFallback) = _getFallbackOraclePrice(asset, pivotPrice);\\n        if (fallbackPrice != INVALID_PRICE && validatedPivotFallback) return fallbackPrice;\\n\\n        // Lastly compare main price and fallback price\\n        if (\\n            mainPrice != INVALID_PRICE &&\\n            fallbackPrice != INVALID_PRICE &&\\n            boundValidator.validatePriceWithAnchorPrice(asset, mainPrice, fallbackPrice)\\n        ) {\\n            return mainPrice;\\n        }\\n\\n        revert(\\\"invalid resilient oracle price\\\");\\n    }\\n\\n    /**\\n     * @notice Gets a price for the provided asset\\n     * @dev This function won't revert when price is 0, because the fallback oracle may still be\\n     * able to fetch a correct price\\n     * @param asset asset address\\n     * @param pivotPrice Pivot oracle price\\n     * @param pivotEnabled If pivot oracle is not empty and enabled\\n     * @return price USD price in scaled decimals\\n     * e.g. asset decimals is 8 then price is returned as 10**18 * 10**(18-8) = 10**28 decimals\\n     * @return pivotValidated Boolean representing if the validation of main oracle price\\n     * and pivot oracle price were successful\\n     * @custom:error Invalid price error is thrown if main oracle fails to fetch price of the asset\\n     * @custom:error Invalid price error is thrown if main oracle is not enabled or main oracle\\n     * address is null\\n     */\\n    function _getMainOraclePrice(\\n        address asset,\\n        uint256 pivotPrice,\\n        bool pivotEnabled\\n    ) internal view returns (uint256, bool) {\\n        (address mainOracle, bool mainOracleEnabled) = getOracle(asset, OracleRole.MAIN);\\n        if (mainOracleEnabled && mainOracle != address(0)) {\\n            try OracleInterface(mainOracle).getPrice(asset) returns (uint256 mainOraclePrice) {\\n                if (!pivotEnabled) {\\n                    return (mainOraclePrice, true);\\n                }\\n                if (pivotPrice == INVALID_PRICE) {\\n                    return (mainOraclePrice, false);\\n                }\\n                return (\\n                    mainOraclePrice,\\n                    boundValidator.validatePriceWithAnchorPrice(asset, mainOraclePrice, pivotPrice)\\n                );\\n            } catch {\\n                return (INVALID_PRICE, false);\\n            }\\n        }\\n\\n        return (INVALID_PRICE, false);\\n    }\\n\\n    /**\\n     * @dev This function won't revert when the price is 0 because getPrice checks if price is > 0\\n     * @param asset asset address\\n     * @return price USD price in 18 decimals\\n     * @return pivotValidated Boolean representing if the validation of fallback oracle price\\n     * and pivot oracle price were successfully\\n     * @custom:error Invalid price error is thrown if fallback oracle fails to fetch price of the asset\\n     * @custom:error Invalid price error is thrown if fallback oracle is not enabled or fallback oracle\\n     * address is null\\n     */\\n    function _getFallbackOraclePrice(address asset, uint256 pivotPrice) private view returns (uint256, bool) {\\n        (address fallbackOracle, bool fallbackEnabled) = getOracle(asset, OracleRole.FALLBACK);\\n        if (fallbackEnabled && fallbackOracle != address(0)) {\\n            try OracleInterface(fallbackOracle).getPrice(asset) returns (uint256 fallbackOraclePrice) {\\n                if (pivotPrice == INVALID_PRICE) {\\n                    return (fallbackOraclePrice, false);\\n                }\\n                return (\\n                    fallbackOraclePrice,\\n                    boundValidator.validatePriceWithAnchorPrice(asset, fallbackOraclePrice, pivotPrice)\\n                );\\n            } catch {\\n                return (INVALID_PRICE, false);\\n            }\\n        }\\n\\n        return (INVALID_PRICE, false);\\n    }\\n\\n    /**\\n     * @dev This function returns the underlying asset of a vToken\\n     * @param vToken vToken address\\n     * @return asset underlying asset address\\n     */\\n    function _getUnderlyingAsset(address vToken) private view notNullAddress(vToken) returns (address asset) {\\n        if (vToken == nativeMarket) {\\n            asset = NATIVE_TOKEN_ADDR;\\n        } else if (vToken == vai) {\\n            asset = vai;\\n        } else {\\n            asset = VBep20Interface(vToken).underlying();\\n        }\\n    }\\n\\n    /**\\n     * @dev This function checks if the asset price should be cached\\n     * @param asset asset address\\n     * @return bool true if caching is enabled, false otherwise\\n     */\\n    function _isCacheEnabled(address asset) private view returns (bool) {\\n        return tokenConfigs[asset].cachingEnabled;\\n    }\\n}\\n\",\"keccak256\":\"0xc42d06b29b0b81aa51d0b9e9b9e98c09d855fae3d0824b64d43f95e0b49d284a\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/VBep20Interface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\ninterface VBep20Interface is IERC20Metadata {\\n    /**\\n     * @notice Underlying asset for this VToken\\n     */\\n    function underlying() external view returns (address);\\n}\\n\",\"keccak256\":\"0x6e71c3df86501df5c0e4bace1333c0c91f9f9cced252a54fb99eeda219b789d5\",\"license\":\"BSD-3-Clause\"},\"contracts/lib/Transient.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nlibrary Transient {\\n    /**\\n     * @notice Cache the asset price into transient storage\\n     * @param key address of the asset\\n     * @param value asset price\\n     */\\n    function cachePrice(bytes32 cacheSlot, address key, uint256 value) internal {\\n        bytes32 slot = keccak256(abi.encode(cacheSlot, key));\\n        assembly (\\\"memory-safe\\\") {\\n            tstore(slot, value)\\n        }\\n    }\\n\\n    /**\\n     * @notice Read cached price from transient storage\\n     * @param key address of the asset\\n     * @return value cached asset price\\n     */\\n    function readCachedPrice(bytes32 cacheSlot, address key) internal view returns (uint256 value) {\\n        bytes32 slot = keccak256(abi.encode(cacheSlot, key));\\n        assembly (\\\"memory-safe\\\") {\\n            value := tload(slot)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x60d7133a48a757ee777cb9230e890ef489ffc33dcea9dadfcf5a8b72f9dd43aa\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":533,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"_paused","offset":0,"slot":"51","type":"t_bool"},{"astId":638,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":221,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"_owner","offset":0,"slot":"101","type":"t_address"},{"astId":341,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"_pendingOwner","offset":0,"slot":"151","type":"t_address"},{"astId":208,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":1940,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"_accessControlManager","offset":0,"slot":"201","type":"t_contract(IAccessControlManagerV8)2125"},{"astId":1945,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"__gap","offset":0,"slot":"202","type":"t_array(t_uint256)49_storage"},{"astId":2508,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"tokenConfigs","offset":0,"slot":"251","type":"t_mapping(t_address,t_struct(TokenConfig)2482_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)3_storage":{"base":"t_address","encoding":"inplace","label":"address[3]","numberOfBytes":"96"},"t_array(t_bool)3_storage":{"base":"t_bool","encoding":"inplace","label":"bool[3]","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_contract(IAccessControlManagerV8)2125":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_address,t_struct(TokenConfig)2482_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct ResilientOracle.TokenConfig)","numberOfBytes":"32","value":"t_struct(TokenConfig)2482_storage"},"t_struct(TokenConfig)2482_storage":{"encoding":"inplace","label":"struct ResilientOracle.TokenConfig","members":[{"astId":2468,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"asset","offset":0,"slot":"0","type":"t_address"},{"astId":2473,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"oracles","offset":0,"slot":"1","type":"t_array(t_address)3_storage"},{"astId":2478,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"enableFlagsForOracles","offset":0,"slot":"4","type":"t_array(t_bool)3_storage"},{"astId":2481,"contract":"contracts/ResilientOracle.sol:ResilientOracle","label":"cachingEnabled","offset":0,"slot":"5","type":"t_bool"}],"numberOfBytes":"192"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"CachedEnabled(address,bool)":{"notice":"Event emitted when an asset cachingEnabled flag is set"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"OracleEnabled(address,uint256,bool)":{"notice":"Event emitted when an oracle is enabled or disabled"},"OracleSet(address,address,uint256)":{"notice":"Event emitted when an oracle is set"}},"kind":"user","methods":{"CACHE_SLOT()":{"notice":"Slot to cache the asset's price, used for transient storage custom:storage-location erc7201:venus-protocol/oracle/ResilientOracle/cache keccak256(abi.encode(uint256(keccak256(\"venus-protocol/oracle/ResilientOracle/cache\")) - 1))   & ~bytes32(uint256(0xff))"},"NATIVE_TOKEN_ADDR()":{"notice":"Set this as asset address for Native token on each chain.This is the underlying for vBNB (on bsc) and can serve as any underlying asset of a market that supports native tokens"},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"boundValidator()":{"notice":"Bound validator contract address"},"constructor":{"notice":"Constructor for the implementation contract. Sets immutable variables."},"enableOracle(address,uint8,bool)":{"notice":"Enables/ disables oracle for the input asset. Token config for the input asset **must** exist"},"getOracle(address,uint8)":{"notice":"Gets oracle and enabled status by asset address"},"getPrice(address)":{"notice":"Gets price of the asset"},"getUnderlyingPrice(address)":{"notice":"Gets price of the underlying asset for a given vToken. Validation flow: - Check if the oracle is paused globally - Validate price from main oracle against pivot oracle - Validate price from fallback oracle against pivot oracle if the first validation failed - Validate price from main oracle against fallback oracle if the second validation failed In the case that the pivot oracle is not available but main price is available and validation is successful, main oracle price is returned."},"initialize(address)":{"notice":"Initializes the contract admin and sets the BoundValidator contract address"},"nativeMarket()":{"notice":"Native market address"},"pause()":{"notice":"Pauses oracle"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setOracle(address,address,uint8)":{"notice":"Sets oracle for a given asset and role."},"setTokenConfig((address,address[3],bool[3],bool))":{"notice":"Sets/resets single token configs."},"setTokenConfigs((address,address[3],bool[3],bool)[])":{"notice":"Batch sets token configs"},"unpause()":{"notice":"Unpauses oracle"},"updateAssetPrice(address)":{"notice":"Updates the capped main oracle snapshot."},"updatePrice(address)":{"notice":"Updates the capped main oracle snapshot."},"vai()":{"notice":"VAI address"}},"notice":"The Resilient Oracle is the main contract that the protocol uses to fetch prices of assets. DeFi protocols are vulnerable to price oracle failures including oracle manipulation and incorrectly reported prices. If only one oracle is used, this creates a single point of failure and opens a vector for attacking the protocol. The Resilient Oracle uses multiple sources and fallback mechanisms to provide accurate prices and protect the protocol from oracle attacks. For every market (vToken) we configure the main, pivot and fallback oracles. The oracles are configured per vToken's underlying asset address. The main oracle oracle is the most trustworthy price source, the pivot oracle is used as a loose sanity checker and the fallback oracle is used as a backup price source. To validate prices returned from two oracles, we use an upper and lower bound ratio that is set for every market. The upper bound ratio represents the deviation between reported price (the price that’s being validated) and the anchor price (the price we are validating against) above which the reported price will be invalidated. The lower bound ratio presents the deviation between reported price and anchor price below which the reported price will be invalidated. So for oracle price to be considered valid the below statement should be true: ``` anchorRatio = anchorPrice/reporterPrice isValid = anchorRatio <= upperBoundAnchorRatio && anchorRatio >= lowerBoundAnchorRatio ``` In most cases, Chainlink is used as the main oracle, other oracles are used as the pivot oracle depending on which supports the given market and Binance oracle is used as the fallback oracle. For a fetched price to be valid it must be positive and not stagnant. If the price is invalid then we consider the oracle to be stagnant and treat it like it's disabled.","version":1}}},"contracts/interfaces/FeedRegistryInterface.sol":{"FeedRegistryInterface":{"abi":[{"inputs":[{"internalType":"string","name":"base","type":"string"},{"internalType":"string","name":"quote","type":"string"}],"name":"decimalsByName","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"base","type":"string"},{"internalType":"string","name":"quote","type":"string"}],"name":"latestRoundDataByName","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"decimalsByName(string,string)":"6e91995a","latestRoundDataByName(string,string)":"bfda5e71"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"base\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"quote\",\"type\":\"string\"}],\"name\":\"decimalsByName\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"base\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"quote\",\"type\":\"string\"}],\"name\":\"latestRoundDataByName\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/FeedRegistryInterface.sol\":\"FeedRegistryInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/FeedRegistryInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface FeedRegistryInterface {\\n    function latestRoundDataByName(\\n        string memory base,\\n        string memory quote\\n    )\\n        external\\n        view\\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);\\n\\n    function decimalsByName(string memory base, string memory quote) external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xf57101e676f7d93b0714f5774a3111a80ce9df0bbaed6d5e78668293c11b04e8\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IAccountant.sol":{"IAccountant":{"abi":[{"inputs":[],"name":"getRateSafe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRateSafe()":"282a8700"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getRateSafe\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAccountant.sol\":\"IAccountant\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAccountant.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAccountant {\\n    function getRateSafe() external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x04672ffcad2a2f951d7afc7288a5875dc6e67d12445666c959ac64966102b06b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IAnkrBNB.sol":{"IAnkrBNB":{"abi":[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sharesToBonds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"decimals()":"313ce567","sharesToBonds(uint256)":"6c58d43d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sharesToBonds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAnkrBNB.sol\":\"IAnkrBNB\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAnkrBNB.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAnkrBNB {\\n    function sharesToBonds(uint256 amount) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x4e04d3cae00fc38b1f754cff9aa4054deea6e8a4d3fe80a1d8f0a54bbe73342e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IAsBNB.sol":{"IAsBNB":{"abi":[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"decimals()":"313ce567","minter()":"07546172"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAsBNB.sol\":\"IAsBNB\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAsBNB.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAsBNB {\\n    function minter() external view returns (address);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x34a434d78d48a1c33f79740bab9454fb5eaf05eb38e3abddd3fe55e6f4b4c937\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IAsBNBMinter.sol":{"IAsBNBMinter":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"convertToTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"convertToTokens(uint256)":"85906256"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"convertToTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAsBNBMinter.sol\":\"IAsBNBMinter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAsBNBMinter.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAsBNBMinter {\\n    function convertToTokens(uint256 amount) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x3cf93eddba855443b20f0dcfd7938448c9b44caa866403f53b6cd5bcf4ec1003\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/ICappedOracle.sol":{"ICappedOracle":{"abi":[{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICappedOracle.sol\":\"ICappedOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IERC4626.sol":{"IERC4626":{"abi":[{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"convertToAssets(uint256)":"07a2d13a","decimals()":"313ce567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IERC4626.sol\":\"IERC4626\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IERC4626.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IERC4626 {\\n    function convertToAssets(uint256 shares) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x7f2096f62d52d5f4db07dce231fc37d7ce25f7aecf4245cc03da87002d3038ff\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IEtherFiLiquidityPool.sol":{"IEtherFiLiquidityPool":{"abi":[{"inputs":[{"internalType":"uint256","name":"_share","type":"uint256"}],"name":"amountForShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"amountForShare(uint256)":"561bddf8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_share\",\"type\":\"uint256\"}],\"name\":\"amountForShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IEtherFiLiquidityPool.sol\":\"IEtherFiLiquidityPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IEtherFiLiquidityPool.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IEtherFiLiquidityPool {\\n    function amountForShare(uint256 _share) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xce3955be63e9f3787e90573c72c119238d2e63712c1a828b874145b1f91761d6\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IPStakePool.sol":{"IPStakePool":{"abi":[{"inputs":[],"name":"exchangeRate","outputs":[{"components":[{"internalType":"uint256","name":"totalWei","type":"uint256"},{"internalType":"uint256","name":"poolTokenSupply","type":"uint256"}],"internalType":"struct IPStakePool.Data","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"exchangeRate()":{"details":"The current exchange rate for converting stkBNB to BNB."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"exchangeRate()":"3ba0b9a9"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"exchangeRate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalWei\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"poolTokenSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct IPStakePool.Data\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"exchangeRate()\":{\"details\":\"The current exchange rate for converting stkBNB to BNB.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPStakePool.sol\":\"IPStakePool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IPStakePool.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IPStakePool {\\n    struct Data {\\n        uint256 totalWei;\\n        uint256 poolTokenSupply;\\n    }\\n\\n    /**\\n     * @dev The current exchange rate for converting stkBNB to BNB.\\n     */\\n    function exchangeRate() external view returns (Data memory);\\n}\\n\",\"keccak256\":\"0xe1f74f35e9873a0e4dd128bd51a78ef548083d8b66771ebee45a27a093cf830d\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IPendlePtOracle.sol":{"IPendlePtOracle":{"abi":[{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint32","name":"duration","type":"uint32"}],"name":"getOracleState","outputs":[{"internalType":"bool","name":"increaseCardinalityRequired","type":"bool"},{"internalType":"uint16","name":"cardinalityRequired","type":"uint16"},{"internalType":"bool","name":"oldestObservationSatisfied","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint32","name":"duration","type":"uint32"}],"name":"getPtToAssetRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint32","name":"duration","type":"uint32"}],"name":"getPtToSyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getOracleState(address,uint32)":"873e9600","getPtToAssetRate(address,uint32)":"abca0eab","getPtToSyRate(address,uint32)":"a31426d1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"name\":\"getOracleState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"increaseCardinalityRequired\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"cardinalityRequired\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"oldestObservationSatisfied\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"name\":\"getPtToAssetRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"name\":\"getPtToSyRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPendlePtOracle.sol\":\"IPendlePtOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IPendlePtOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IPendlePtOracle {\\n    function getPtToAssetRate(address market, uint32 duration) external view returns (uint256);\\n\\n    function getPtToSyRate(address market, uint32 duration) external view returns (uint256);\\n\\n    function getOracleState(\\n        address market,\\n        uint32 duration\\n    )\\n        external\\n        view\\n        returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied);\\n}\\n\",\"keccak256\":\"0x14d96d7f75397e4291288ef6367053bd970d95fc0c3e2a028b077f6342e0160a\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/ISFrax.sol":{"ISFrax":{"abi":[{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"convertToAssets(uint256)":"07a2d13a","decimals()":"313ce567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISFrax.sol\":\"ISFrax\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ISFrax.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISFrax {\\n    function convertToAssets(uint256 shares) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x478821eeeb2b7699442dc19b5029f918f650448cb0655b88348a167ea856efb8\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/ISfrxEthFraxOracle.sol":{"ISfrxEthFraxOracle":{"abi":[{"inputs":[],"name":"getPrices","outputs":[{"internalType":"bool","name":"_isbadData","type":"bool"},{"internalType":"uint256","name":"_priceLow","type":"uint256"},{"internalType":"uint256","name":"_priceHigh","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getPrices()":"bd9a548b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getPrices\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isbadData\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"_priceLow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_priceHigh\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISfrxEthFraxOracle.sol\":\"ISfrxEthFraxOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ISfrxEthFraxOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISfrxEthFraxOracle {\\n    function getPrices() external view returns (bool _isbadData, uint256 _priceLow, uint256 _priceHigh);\\n}\\n\",\"keccak256\":\"0x1444fbcfe658b985041e7ca5da6cce92fd143ca46d9793316ab2ef542fbde87a\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IStETH.sol":{"IStETH":{"abi":[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sharesAmount","type":"uint256"}],"name":"getPooledEthByShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"decimals()":"313ce567","getPooledEthByShares(uint256)":"7a28fb88"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_sharesAmount\",\"type\":\"uint256\"}],\"name\":\"getPooledEthByShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IStETH.sol\":\"IStETH\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IStETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface IStETH {\\n    function getPooledEthByShares(uint256 _sharesAmount) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x9e7ee12d63a84081722469719e046d6791a087f33ab40804ff1ff40ab859d4d3\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IStaderStakeManager.sol":{"IStaderStakeManager":{"abi":[{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"convertBnbXToBnb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"convertBnbXToBnb(uint256)":"ca0506e8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertBnbXToBnb\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IStaderStakeManager.sol\":\"IStaderStakeManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IStaderStakeManager.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IStaderStakeManager {\\n    function convertBnbXToBnb(uint256 _amount) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x8caeef2f75ea7996ac155fc0432569238ed148c92f8e719e8ec0bcb4db5b585b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/ISynclubStakeManager.sol":{"ISynclubStakeManager":{"abi":[{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"convertSnBnbToBnb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"convertSnBnbToBnb(uint256)":"ce6298e1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertSnBnbToBnb\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISynclubStakeManager.sol\":\"ISynclubStakeManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ISynclubStakeManager.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISynclubStakeManager {\\n    function convertSnBnbToBnb(uint256 _amount) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x81da7034490b7e92a26c58e9f22ff08c0c13f9aa9debffc95237684989ce2e3e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IWBETH.sol":{"IWBETH":{"abi":[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"decimals()":"313ce567","exchangeRate()":"3ba0b9a9"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IWBETH.sol\":\"IWBETH\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IWBETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IWBETH {\\n    function exchangeRate() external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xaff923809f41bf7bc321d5285ddf2c03856a3cf0050c005154e31e811161d7db\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IZkETH.sol":{"IZkETH":{"abi":[{"inputs":[],"name":"LSTPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"LSTPerToken()":"39648e00","decimals()":"313ce567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LSTPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IZkETH.sol\":\"IZkETH\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IZkETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface IZkETH {\\n    function LSTPerToken() external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xdf8e9d184e0a855a710971f53e61604f4131b6250986982bfaf036689b9622a7\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/OracleInterface.sol":{"BoundValidatorInterface":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"reporterPrice","type":"uint256"},{"internalType":"uint256","name":"anchorPrice","type":"uint256"}],"name":"validatePriceWithAnchorPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"validatePriceWithAnchorPrice(address,uint256,uint256)":"97c7033e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reporterPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"anchorPrice\",\"type\":\"uint256\"}],\"name\":\"validatePriceWithAnchorPrice\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/OracleInterface.sol\":\"BoundValidatorInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"OracleInterface":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getPrice(address)":"41976e09"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"ResilientOracleInterface":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"getUnderlyingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"updateAssetPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getPrice(address)":"41976e09","getUnderlyingPrice(address)":"fc57d4df","updateAssetPrice(address)":"b62cad69","updatePrice(address)":"96e85ced"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"getUnderlyingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"updateAssetPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"updatePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/OracleInterface.sol\":\"ResilientOracleInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/PublicResolverInterface.sol":{"PublicResolverInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"addr","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"addr(bytes32)":"3b3b57de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"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/PublicResolverInterface.sol\":\"PublicResolverInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/PublicResolverInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n// SPDX-FileCopyrightText: 2022 Venus\\npragma solidity ^0.8.25;\\n\\ninterface PublicResolverInterface {\\n    function addr(bytes32 node) external view returns (address payable);\\n}\\n\",\"keccak256\":\"0xe8ea3c3ec3b30f2b2022fe221530b15d18887eb6aa39c10d06d1fd5a0a7d1ece\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/SIDRegistryInterface.sol":{"SIDRegistryInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"resolver(bytes32)":"0178b8bf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/SIDRegistryInterface.sol\":\"SIDRegistryInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/SIDRegistryInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n// SPDX-FileCopyrightText: 2022 Venus\\npragma solidity ^0.8.25;\\n\\ninterface SIDRegistryInterface {\\n    function resolver(bytes32 node) external view returns (address);\\n}\\n\",\"keccak256\":\"0x306f0a50d27c016a6e13346901f6c692426af0a755eb913adc4e8494f311c2d2\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/VBep20Interface.sol":{"VBep20Interface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","underlying()":"6f307dc3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlying\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"underlying()\":{\"notice\":\"Underlying asset for this VToken\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/VBep20Interface.sol\":\"VBep20Interface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"contracts/interfaces/VBep20Interface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\ninterface VBep20Interface is IERC20Metadata {\\n    /**\\n     * @notice Underlying asset for this VToken\\n     */\\n    function underlying() external view returns (address);\\n}\\n\",\"keccak256\":\"0x6e71c3df86501df5c0e4bace1333c0c91f9f9cced252a54fb99eeda219b789d5\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"underlying()":{"notice":"Underlying asset for this VToken"}},"version":1}}},"contracts/lib/Transient.sol":{"Transient":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220474e8daeba5097c8236b2a51e06bed78dfabd4cf0e6ab118c27c1c67b347517864736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0x4E DUP14 0xAE 0xBA POP SWAP8 0xC8 0x23 PUSH12 0x2A51E06BED78DFABD4CF0E6A 0xB1 XOR 0xC2 PUSH29 0x1C67B347517864736F6C63430008190033000000000000000000000000 ","sourceMap":"67:794:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;67:794:45;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220474e8daeba5097c8236b2a51e06bed78dfabd4cf0e6ab118c27c1c67b347517864736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0x4E DUP14 0xAE 0xBA POP SWAP8 0xC8 0x23 PUSH12 0x2A51E06BED78DFABD4CF0E6A 0xB1 XOR 0xC2 PUSH29 0x1C67B347517864736F6C63430008190033000000000000000000000000 ","sourceMap":"67:794:45:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"cachePrice(bytes32,address,uint256)":"infinite","readCachedPrice(bytes32,address)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/lib/Transient.sol\":\"Transient\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/lib/Transient.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nlibrary Transient {\\n    /**\\n     * @notice Cache the asset price into transient storage\\n     * @param key address of the asset\\n     * @param value asset price\\n     */\\n    function cachePrice(bytes32 cacheSlot, address key, uint256 value) internal {\\n        bytes32 slot = keccak256(abi.encode(cacheSlot, key));\\n        assembly (\\\"memory-safe\\\") {\\n            tstore(slot, value)\\n        }\\n    }\\n\\n    /**\\n     * @notice Read cached price from transient storage\\n     * @param key address of the asset\\n     * @return value cached asset price\\n     */\\n    function readCachedPrice(bytes32 cacheSlot, address key) internal view returns (uint256 value) {\\n        bytes32 slot = keccak256(abi.encode(cacheSlot, key));\\n        assembly (\\\"memory-safe\\\") {\\n            value := tload(slot)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x60d7133a48a757ee777cb9230e890ef489ffc33dcea9dadfcf5a8b72f9dd43aa\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/oracles/AnkrBNBOracle.sol":{"AnkrBNBOracle":{"abi":[{"inputs":[{"internalType":"address","name":"ankrBNB","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount The amount of BNB for ankrBNB"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"AnkrBNBOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_3824":{"entryPoint":null,"id":3824,"parameterSlots":8,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":307,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":386,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":403,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":414,"id":null,"parameterSlots":2,"returnSlots":8},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":607,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":349,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":587,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":367,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":397,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3219:101","nodeType":"YulBlock","src":"0:3219:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1401:1252:101","nodeType":"YulBlock","src":"1401:1252:101","statements":[{"body":{"nativeSrc":"1448:83:101","nodeType":"YulBlock","src":"1448:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1450:77:101","nodeType":"YulIdentifier","src":"1450:77:101"},"nativeSrc":"1450:79:101","nodeType":"YulFunctionCall","src":"1450:79:101"},"nativeSrc":"1450:79:101","nodeType":"YulExpressionStatement","src":"1450:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1422:7:101","nodeType":"YulIdentifier","src":"1422:7:101"},{"name":"headStart","nativeSrc":"1431:9:101","nodeType":"YulIdentifier","src":"1431:9:101"}],"functionName":{"name":"sub","nativeSrc":"1418:3:101","nodeType":"YulIdentifier","src":"1418:3:101"},"nativeSrc":"1418:23:101","nodeType":"YulFunctionCall","src":"1418:23:101"},{"kind":"number","nativeSrc":"1443:3:101","nodeType":"YulLiteral","src":"1443:3:101","type":"","value":"256"}],"functionName":{"name":"slt","nativeSrc":"1414:3:101","nodeType":"YulIdentifier","src":"1414:3:101"},"nativeSrc":"1414:33:101","nodeType":"YulFunctionCall","src":"1414:33:101"},"nativeSrc":"1411:120:101","nodeType":"YulIf","src":"1411:120:101"},{"nativeSrc":"1541:128:101","nodeType":"YulBlock","src":"1541:128:101","statements":[{"nativeSrc":"1556:15:101","nodeType":"YulVariableDeclaration","src":"1556:15:101","value":{"kind":"number","nativeSrc":"1570:1:101","nodeType":"YulLiteral","src":"1570:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1560:6:101","nodeType":"YulTypedName","src":"1560:6:101","type":""}]},{"nativeSrc":"1585:74:101","nodeType":"YulAssignment","src":"1585:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1631:9:101","nodeType":"YulIdentifier","src":"1631:9:101"},{"name":"offset","nativeSrc":"1642:6:101","nodeType":"YulIdentifier","src":"1642:6:101"}],"functionName":{"name":"add","nativeSrc":"1627:3:101","nodeType":"YulIdentifier","src":"1627:3:101"},"nativeSrc":"1627:22:101","nodeType":"YulFunctionCall","src":"1627:22:101"},{"name":"dataEnd","nativeSrc":"1651:7:101","nodeType":"YulIdentifier","src":"1651:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1595:31:101","nodeType":"YulIdentifier","src":"1595:31:101"},"nativeSrc":"1595:64:101","nodeType":"YulFunctionCall","src":"1595:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1585:6:101","nodeType":"YulIdentifier","src":"1585:6:101"}]}]},{"nativeSrc":"1679:129:101","nodeType":"YulBlock","src":"1679:129:101","statements":[{"nativeSrc":"1694:16:101","nodeType":"YulVariableDeclaration","src":"1694:16:101","value":{"kind":"number","nativeSrc":"1708:2:101","nodeType":"YulLiteral","src":"1708:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1698:6:101","nodeType":"YulTypedName","src":"1698:6:101","type":""}]},{"nativeSrc":"1724:74:101","nodeType":"YulAssignment","src":"1724:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1770:9:101","nodeType":"YulIdentifier","src":"1770:9:101"},{"name":"offset","nativeSrc":"1781:6:101","nodeType":"YulIdentifier","src":"1781:6:101"}],"functionName":{"name":"add","nativeSrc":"1766:3:101","nodeType":"YulIdentifier","src":"1766:3:101"},"nativeSrc":"1766:22:101","nodeType":"YulFunctionCall","src":"1766:22:101"},{"name":"dataEnd","nativeSrc":"1790:7:101","nodeType":"YulIdentifier","src":"1790:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1734:31:101","nodeType":"YulIdentifier","src":"1734:31:101"},"nativeSrc":"1734:64:101","nodeType":"YulFunctionCall","src":"1734:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1724:6:101","nodeType":"YulIdentifier","src":"1724:6:101"}]}]},{"nativeSrc":"1818:129:101","nodeType":"YulBlock","src":"1818:129:101","statements":[{"nativeSrc":"1833:16:101","nodeType":"YulVariableDeclaration","src":"1833:16:101","value":{"kind":"number","nativeSrc":"1847:2:101","nodeType":"YulLiteral","src":"1847:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1837:6:101","nodeType":"YulTypedName","src":"1837:6:101","type":""}]},{"nativeSrc":"1863:74:101","nodeType":"YulAssignment","src":"1863:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1909:9:101","nodeType":"YulIdentifier","src":"1909:9:101"},{"name":"offset","nativeSrc":"1920:6:101","nodeType":"YulIdentifier","src":"1920:6:101"}],"functionName":{"name":"add","nativeSrc":"1905:3:101","nodeType":"YulIdentifier","src":"1905:3:101"},"nativeSrc":"1905:22:101","nodeType":"YulFunctionCall","src":"1905:22:101"},{"name":"dataEnd","nativeSrc":"1929:7:101","nodeType":"YulIdentifier","src":"1929:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1873:31:101","nodeType":"YulIdentifier","src":"1873:31:101"},"nativeSrc":"1873:64:101","nodeType":"YulFunctionCall","src":"1873:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1863:6:101","nodeType":"YulIdentifier","src":"1863:6:101"}]}]},{"nativeSrc":"1957:129:101","nodeType":"YulBlock","src":"1957:129:101","statements":[{"nativeSrc":"1972:16:101","nodeType":"YulVariableDeclaration","src":"1972:16:101","value":{"kind":"number","nativeSrc":"1986:2:101","nodeType":"YulLiteral","src":"1986:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1976:6:101","nodeType":"YulTypedName","src":"1976:6:101","type":""}]},{"nativeSrc":"2002:74:101","nodeType":"YulAssignment","src":"2002:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2048:9:101","nodeType":"YulIdentifier","src":"2048:9:101"},{"name":"offset","nativeSrc":"2059:6:101","nodeType":"YulIdentifier","src":"2059:6:101"}],"functionName":{"name":"add","nativeSrc":"2044:3:101","nodeType":"YulIdentifier","src":"2044:3:101"},"nativeSrc":"2044:22:101","nodeType":"YulFunctionCall","src":"2044:22:101"},{"name":"dataEnd","nativeSrc":"2068:7:101","nodeType":"YulIdentifier","src":"2068:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2012:31:101","nodeType":"YulIdentifier","src":"2012:31:101"},"nativeSrc":"2012:64:101","nodeType":"YulFunctionCall","src":"2012:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2002:6:101","nodeType":"YulIdentifier","src":"2002:6:101"}]}]},{"nativeSrc":"2096:130:101","nodeType":"YulBlock","src":"2096:130:101","statements":[{"nativeSrc":"2111:17:101","nodeType":"YulVariableDeclaration","src":"2111:17:101","value":{"kind":"number","nativeSrc":"2125:3:101","nodeType":"YulLiteral","src":"2125:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2115:6:101","nodeType":"YulTypedName","src":"2115:6:101","type":""}]},{"nativeSrc":"2142:74:101","nodeType":"YulAssignment","src":"2142:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2188:9:101","nodeType":"YulIdentifier","src":"2188:9:101"},{"name":"offset","nativeSrc":"2199:6:101","nodeType":"YulIdentifier","src":"2199:6:101"}],"functionName":{"name":"add","nativeSrc":"2184:3:101","nodeType":"YulIdentifier","src":"2184:3:101"},"nativeSrc":"2184:22:101","nodeType":"YulFunctionCall","src":"2184:22:101"},{"name":"dataEnd","nativeSrc":"2208:7:101","nodeType":"YulIdentifier","src":"2208:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2152:31:101","nodeType":"YulIdentifier","src":"2152:31:101"},"nativeSrc":"2152:64:101","nodeType":"YulFunctionCall","src":"2152:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2142:6:101","nodeType":"YulIdentifier","src":"2142:6:101"}]}]},{"nativeSrc":"2236:130:101","nodeType":"YulBlock","src":"2236:130:101","statements":[{"nativeSrc":"2251:17:101","nodeType":"YulVariableDeclaration","src":"2251:17:101","value":{"kind":"number","nativeSrc":"2265:3:101","nodeType":"YulLiteral","src":"2265:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2255:6:101","nodeType":"YulTypedName","src":"2255:6:101","type":""}]},{"nativeSrc":"2282:74:101","nodeType":"YulAssignment","src":"2282:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2328:9:101","nodeType":"YulIdentifier","src":"2328:9:101"},{"name":"offset","nativeSrc":"2339:6:101","nodeType":"YulIdentifier","src":"2339:6:101"}],"functionName":{"name":"add","nativeSrc":"2324:3:101","nodeType":"YulIdentifier","src":"2324:3:101"},"nativeSrc":"2324:22:101","nodeType":"YulFunctionCall","src":"2324:22:101"},{"name":"dataEnd","nativeSrc":"2348:7:101","nodeType":"YulIdentifier","src":"2348:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2292:31:101","nodeType":"YulIdentifier","src":"2292:31:101"},"nativeSrc":"2292:64:101","nodeType":"YulFunctionCall","src":"2292:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2282:6:101","nodeType":"YulIdentifier","src":"2282:6:101"}]}]},{"nativeSrc":"2376:130:101","nodeType":"YulBlock","src":"2376:130:101","statements":[{"nativeSrc":"2391:17:101","nodeType":"YulVariableDeclaration","src":"2391:17:101","value":{"kind":"number","nativeSrc":"2405:3:101","nodeType":"YulLiteral","src":"2405:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2395:6:101","nodeType":"YulTypedName","src":"2395:6:101","type":""}]},{"nativeSrc":"2422:74:101","nodeType":"YulAssignment","src":"2422:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2468:9:101","nodeType":"YulIdentifier","src":"2468:9:101"},{"name":"offset","nativeSrc":"2479:6:101","nodeType":"YulIdentifier","src":"2479:6:101"}],"functionName":{"name":"add","nativeSrc":"2464:3:101","nodeType":"YulIdentifier","src":"2464:3:101"},"nativeSrc":"2464:22:101","nodeType":"YulFunctionCall","src":"2464:22:101"},{"name":"dataEnd","nativeSrc":"2488:7:101","nodeType":"YulIdentifier","src":"2488:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2432:31:101","nodeType":"YulIdentifier","src":"2432:31:101"},"nativeSrc":"2432:64:101","nodeType":"YulFunctionCall","src":"2432:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2422:6:101","nodeType":"YulIdentifier","src":"2422:6:101"}]}]},{"nativeSrc":"2516:130:101","nodeType":"YulBlock","src":"2516:130:101","statements":[{"nativeSrc":"2531:17:101","nodeType":"YulVariableDeclaration","src":"2531:17:101","value":{"kind":"number","nativeSrc":"2545:3:101","nodeType":"YulLiteral","src":"2545:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2535:6:101","nodeType":"YulTypedName","src":"2535:6:101","type":""}]},{"nativeSrc":"2562:74:101","nodeType":"YulAssignment","src":"2562:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2608:9:101","nodeType":"YulIdentifier","src":"2608:9:101"},{"name":"offset","nativeSrc":"2619:6:101","nodeType":"YulIdentifier","src":"2619:6:101"}],"functionName":{"name":"add","nativeSrc":"2604:3:101","nodeType":"YulIdentifier","src":"2604:3:101"},"nativeSrc":"2604:22:101","nodeType":"YulFunctionCall","src":"2604:22:101"},{"name":"dataEnd","nativeSrc":"2628:7:101","nodeType":"YulIdentifier","src":"2628:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2572:31:101","nodeType":"YulIdentifier","src":"2572:31:101"},"nativeSrc":"2572:64:101","nodeType":"YulFunctionCall","src":"2572:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2562:6:101","nodeType":"YulIdentifier","src":"2562:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1448:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1315:9:101","nodeType":"YulTypedName","src":"1315:9:101","type":""},{"name":"dataEnd","nativeSrc":"1326:7:101","nodeType":"YulTypedName","src":"1326:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1338:6:101","nodeType":"YulTypedName","src":"1338:6:101","type":""},{"name":"value1","nativeSrc":"1346:6:101","nodeType":"YulTypedName","src":"1346:6:101","type":""},{"name":"value2","nativeSrc":"1354:6:101","nodeType":"YulTypedName","src":"1354:6:101","type":""},{"name":"value3","nativeSrc":"1362:6:101","nodeType":"YulTypedName","src":"1362:6:101","type":""},{"name":"value4","nativeSrc":"1370:6:101","nodeType":"YulTypedName","src":"1370:6:101","type":""},{"name":"value5","nativeSrc":"1378:6:101","nodeType":"YulTypedName","src":"1378:6:101","type":""},{"name":"value6","nativeSrc":"1386:6:101","nodeType":"YulTypedName","src":"1386:6:101","type":""},{"name":"value7","nativeSrc":"1394:6:101","nodeType":"YulTypedName","src":"1394:6:101","type":""}],"src":"1205:1448:101"},{"body":{"nativeSrc":"2687:152:101","nodeType":"YulBlock","src":"2687:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2704:1:101","nodeType":"YulLiteral","src":"2704:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2707:77:101","nodeType":"YulLiteral","src":"2707:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2697:6:101","nodeType":"YulIdentifier","src":"2697:6:101"},"nativeSrc":"2697:88:101","nodeType":"YulFunctionCall","src":"2697:88:101"},"nativeSrc":"2697:88:101","nodeType":"YulExpressionStatement","src":"2697:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2801:1:101","nodeType":"YulLiteral","src":"2801:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2804:4:101","nodeType":"YulLiteral","src":"2804:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2794:6:101","nodeType":"YulIdentifier","src":"2794:6:101"},"nativeSrc":"2794:15:101","nodeType":"YulFunctionCall","src":"2794:15:101"},"nativeSrc":"2794:15:101","nodeType":"YulExpressionStatement","src":"2794:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2825:1:101","nodeType":"YulLiteral","src":"2825:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2828:4:101","nodeType":"YulLiteral","src":"2828:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2818:6:101","nodeType":"YulIdentifier","src":"2818:6:101"},"nativeSrc":"2818:15:101","nodeType":"YulFunctionCall","src":"2818:15:101"},"nativeSrc":"2818:15:101","nodeType":"YulExpressionStatement","src":"2818:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2659:180:101","nodeType":"YulFunctionDefinition","src":"2659:180:101"},{"body":{"nativeSrc":"2873:152:101","nodeType":"YulBlock","src":"2873:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2890:1:101","nodeType":"YulLiteral","src":"2890:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2893:77:101","nodeType":"YulLiteral","src":"2893:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2883:6:101","nodeType":"YulIdentifier","src":"2883:6:101"},"nativeSrc":"2883:88:101","nodeType":"YulFunctionCall","src":"2883:88:101"},"nativeSrc":"2883:88:101","nodeType":"YulExpressionStatement","src":"2883:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2987:1:101","nodeType":"YulLiteral","src":"2987:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2990:4:101","nodeType":"YulLiteral","src":"2990:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"2980:6:101","nodeType":"YulIdentifier","src":"2980:6:101"},"nativeSrc":"2980:15:101","nodeType":"YulFunctionCall","src":"2980:15:101"},"nativeSrc":"2980:15:101","nodeType":"YulExpressionStatement","src":"2980:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3011:1:101","nodeType":"YulLiteral","src":"3011:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3014:4:101","nodeType":"YulLiteral","src":"3014:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3004:6:101","nodeType":"YulIdentifier","src":"3004:6:101"},"nativeSrc":"3004:15:101","nodeType":"YulFunctionCall","src":"3004:15:101"},"nativeSrc":"3004:15:101","nodeType":"YulExpressionStatement","src":"3004:15:101"}]},"name":"panic_error_0x11","nativeSrc":"2845:180:101","nodeType":"YulFunctionDefinition","src":"2845:180:101"},{"body":{"nativeSrc":"3073:143:101","nodeType":"YulBlock","src":"3073:143:101","statements":[{"nativeSrc":"3083:25:101","nodeType":"YulAssignment","src":"3083:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3106:1:101","nodeType":"YulIdentifier","src":"3106:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3088:17:101","nodeType":"YulIdentifier","src":"3088:17:101"},"nativeSrc":"3088:20:101","nodeType":"YulFunctionCall","src":"3088:20:101"},"variableNames":[{"name":"x","nativeSrc":"3083:1:101","nodeType":"YulIdentifier","src":"3083:1:101"}]},{"nativeSrc":"3117:25:101","nodeType":"YulAssignment","src":"3117:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3140:1:101","nodeType":"YulIdentifier","src":"3140:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3122:17:101","nodeType":"YulIdentifier","src":"3122:17:101"},"nativeSrc":"3122:20:101","nodeType":"YulFunctionCall","src":"3122:20:101"},"variableNames":[{"name":"y","nativeSrc":"3117:1:101","nodeType":"YulIdentifier","src":"3117:1:101"}]},{"body":{"nativeSrc":"3164:22:101","nodeType":"YulBlock","src":"3164:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3166:16:101","nodeType":"YulIdentifier","src":"3166:16:101"},"nativeSrc":"3166:18:101","nodeType":"YulFunctionCall","src":"3166:18:101"},"nativeSrc":"3166:18:101","nodeType":"YulExpressionStatement","src":"3166:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3161:1:101","nodeType":"YulIdentifier","src":"3161:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3154:6:101","nodeType":"YulIdentifier","src":"3154:6:101"},"nativeSrc":"3154:9:101","nodeType":"YulFunctionCall","src":"3154:9:101"},"nativeSrc":"3151:35:101","nodeType":"YulIf","src":"3151:35:101"},{"nativeSrc":"3196:14:101","nodeType":"YulAssignment","src":"3196:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3205:1:101","nodeType":"YulIdentifier","src":"3205:1:101"},{"name":"y","nativeSrc":"3208:1:101","nodeType":"YulIdentifier","src":"3208:1:101"}],"functionName":{"name":"div","nativeSrc":"3201:3:101","nodeType":"YulIdentifier","src":"3201:3:101"},"nativeSrc":"3201:9:101","nodeType":"YulFunctionCall","src":"3201:9:101"},"variableNames":[{"name":"r","nativeSrc":"3196:1:101","nodeType":"YulIdentifier","src":"3196:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3031:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3062:1:101","nodeType":"YulTypedName","src":"3062:1:101","type":""},{"name":"y","nativeSrc":"3065:1:101","nodeType":"YulTypedName","src":"3065:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3071:1:101","nodeType":"YulTypedName","src":"3071:1:101","type":""}],"src":"3031:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n        if slt(sub(dataEnd, headStart), 256) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610100604052348015610010575f80fd5b5060405161108e38038061108e83398101604081905261002f9161019e565b8773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb8888888888888861005a6301e133808761025f565b5f81905515801561006a57505f85115b8061007e57505f805411801561007e575084155b1561009c576040516353b7e64560e11b815260040160405180910390fd5b8315806100a7575082155b80156100b257505f85115b156100d05760405163b8a5589b60e01b815260040160405180910390fd5b6100d989610133565b6100e288610133565b6100eb87610133565b6100f482610133565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e052506102729650505050505050565b6001600160a01b03811661015a576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101788161015d565b811461015a575f80fd5b80516101698161016f565b80610178565b80516101698161018d565b5f805f805f805f80610100898b0312156101b9576101b95f80fd5b5f6101c48b8b610182565b98505060206101d58b828c01610182565b97505060406101e68b828c01610193565b96505060606101f78b828c01610193565b95505060806102088b828c01610193565b94505060a06102198b828c01610193565b93505060c061022a8b828c01610182565b92505060e061023b8b828c01610193565b9150509295985092959890939650565b634e487b7160e01b5f52601260045260245ffd5b5f8261026d5761026d61024b565b500490565b60805160a05160c05160e051610db16102dd5f395f818161018901526108f001525f818161024e01528181610568015261078301525f81816101390152818161059501526107b201525f818161020b015281816102a6015281816106b101526108310152610db15ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063a9534f8a14610270578063abb856131461028b578063ac5a693e14610293578063bdf13af21461029b575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109a1565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109ce565b61011e60045481565b61011e61017f3660046109fd565b6102a3565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a40565b6101cb6101c6366004610a5f565b610354565b005b61011e60025481565b6101cb6101e4366004610a7d565b6103c5565b6101f1610499565b60405161012b9190610abf565b6101cb6104d4565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a7d565b610620565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61015b73bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b61011e610698565b61011e5f5481565b61011e610732565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102f657604051630f58058360e11b815260040160405180910390fd5b5f6102ff610698565b90506001545f0361031a576103138161077f565b9392505050565b5f610323610732565b90505f818311801561033457508115155b61033e5782610340565b815b905061034b8161077f565b95945050505050565b6103926040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108d7565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104036040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108d7565b5f546104136301e1338084610af5565b5f81905515801561042357505f82115b8061043757505f8054118015610437575081155b15610455576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161048a91906109a1565b60405180910390a45060015550565b5f6001545f036104a857505f90565b5f6104b1610732565b9050805f036104c1575f91505090565b5f6104ca610698565b9190911192915050565b6001546003546104e49042610b08565b10806104f05750600154155b156104f757565b5f610500610698565b90505f61050b610732565b905060045481831161051d578261051f565b815b6105299190610b1b565b6002819055426003555f0361055157604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105bd907f0000000000000000000000000000000000000000000000000000000000000000906004016109ce565b5f604051808303815f87803b1580156105d4575f80fd5b505af11580156105e6573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61065e6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108d7565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051636c58d43d60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c58d43d906106ee90670de0b6b3a7640000906004016109a1565b602060405180830381865afa158015610709573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072d9190610b39565b905090565b5f80600354426107429190610b08565b90505f670de0b6b3a7640000825f5460025461075e9190610b57565b6107689190610b57565b6107729190610af5565b6002546103139190610b1b565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107ed91906109ce565b602060405180830381865afa158015610808573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082c9190610b39565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b39190610b8a565b60ff1690506108c381600a610cb4565b6108cd8487610b57565b61034b9190610af5565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109279033908690600401610cfd565b602060405180830381865afa158015610942573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109669190610d30565b90508061099557333083604051634a3fa29360e01b815260040161098c93929190610d4e565b60405180910390fd5b5050565b805b82525050565b602081016109af8284610999565b92915050565b5f6001600160a01b0382166109af565b61099b816109b5565b602081016109af82846109c5565b6109e5816109b5565b81146109ef575f80fd5b50565b80356109af816109dc565b5f60208284031215610a1057610a105f80fd5b5f610a1b84846109f2565b949350505050565b5f6109af826109b5565b5f6109af82610a23565b61099b81610a2d565b602081016109af8284610a37565b806109e5565b80356109af81610a4e565b5f60208284031215610a7257610a725f80fd5b5f610a1b8484610a54565b5f8060408385031215610a9157610a915f80fd5b5f610a9c8585610a54565b9250506020610aad85828601610a54565b9150509250929050565b80151561099b565b602081016109af8284610ab7565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b0357610b03610acd565b500490565b818103818111156109af576109af610ae1565b808201808211156109af576109af610ae1565b80516109af81610a4e565b5f60208284031215610b4c57610b4c5f80fd5b5f610a1b8484610b2e565b818102808215838204851417610b6f57610b6f610ae1565b5092915050565b60ff81166109e5565b80516109af81610b76565b5f60208284031215610b9d57610b9d5f80fd5b5f610a1b8484610b7f565b80825b6001851115610be757808604811115610bc657610bc6610ae1565b6001851615610bd457908102905b8002610be08560011c90565b9450610bab565b94509492505050565b5f82610bfe57506001610313565b81610c0a57505f610313565b8160018114610c205760028114610c2a57610c57565b6001915050610313565b60ff841115610c3b57610c3b610ae1565b8360020a915084821115610c5157610c51610ae1565b50610313565b5060208310610133831016604e8410600b8410161715610c8a575081810a83811115610c8557610c85610ae1565b610313565b610c978484846001610ba8565b92509050818404811115610cad57610cad610ae1565b0292915050565b5f6103135f198484610bf0565b8281835e505f910152565b5f610cd5825190565b808452602084019350610cec818560208601610cc1565b601f01601f19169290920192915050565b60408101610d0b82856109c5565b8181036020830152610a1b8184610ccc565b8015156109e5565b80516109af81610d1d565b5f60208284031215610d4357610d435f80fd5b5f610a1b8484610d25565b60608101610d5c82866109c5565b610d6960208301856109c5565b818103604083015261034b8184610ccc56fea26469706673582212206094b5a8b8951c880aacc8b0a0290c028c1a554241002dd4eb69b2c9946d3d0364736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x108E CODESIZE SUB DUP1 PUSH2 0x108E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x19E JUMP JUMPDEST DUP8 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x5A PUSH4 0x1E13380 DUP8 PUSH2 0x25F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x6A JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x7E JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x7E JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0xA7 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xB2 JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9 DUP10 PUSH2 0x133 JUMP JUMPDEST PUSH2 0xE2 DUP9 PUSH2 0x133 JUMP JUMPDEST PUSH2 0xEB DUP8 PUSH2 0x133 JUMP JUMPDEST PUSH2 0xF4 DUP3 PUSH2 0x133 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE POP PUSH2 0x272 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15A JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178 DUP2 PUSH2 0x15D JUMP JUMPDEST DUP2 EQ PUSH2 0x15A JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x169 DUP2 PUSH2 0x16F JUMP JUMPDEST DUP1 PUSH2 0x178 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x169 DUP2 PUSH2 0x18D JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1B9 JUMPI PUSH2 0x1B9 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1C4 DUP12 DUP12 PUSH2 0x182 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x1D5 DUP12 DUP3 DUP13 ADD PUSH2 0x182 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x1E6 DUP12 DUP3 DUP13 ADD PUSH2 0x193 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x1F7 DUP12 DUP3 DUP13 ADD PUSH2 0x193 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH2 0x208 DUP12 DUP3 DUP13 ADD PUSH2 0x193 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x219 DUP12 DUP3 DUP13 ADD PUSH2 0x193 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 PUSH2 0x22A DUP12 DUP3 DUP13 ADD PUSH2 0x182 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH2 0x23B DUP12 DUP3 DUP13 ADD PUSH2 0x193 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x26D JUMPI PUSH2 0x26D PUSH2 0x24B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0xDB1 PUSH2 0x2DD PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x189 ADD MSTORE PUSH2 0x8F0 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x24E ADD MSTORE DUP2 DUP2 PUSH2 0x568 ADD MSTORE PUSH2 0x783 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x595 ADD MSTORE PUSH2 0x7B2 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x20B ADD MSTORE DUP2 DUP2 PUSH2 0x2A6 ADD MSTORE DUP2 DUP2 PUSH2 0x6B1 ADD MSTORE PUSH2 0x831 ADD MSTORE PUSH2 0xDB1 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x29B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9CE JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x9FD JUMP JUMPDEST PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA40 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA5F JUMP JUMPDEST PUSH2 0x354 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA7D JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x499 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xABF JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4D4 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA7D JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x15B PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x698 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x732 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2F6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2FF PUSH2 0x698 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x31A JUMPI PUSH2 0x313 DUP2 PUSH2 0x77F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x323 PUSH2 0x732 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x334 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x33E JUMPI DUP3 PUSH2 0x340 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x34B DUP2 PUSH2 0x77F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x392 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x403 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x413 PUSH4 0x1E13380 DUP5 PUSH2 0xAF5 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x423 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x437 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x437 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x455 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4A8 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4B1 PUSH2 0x732 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4C1 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4CA PUSH2 0x698 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4E4 SWAP1 TIMESTAMP PUSH2 0xB08 JUMP JUMPDEST LT DUP1 PUSH2 0x4F0 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4F7 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x500 PUSH2 0x698 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x50B PUSH2 0x732 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x51D JUMPI DUP3 PUSH2 0x51F JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x529 SWAP2 SWAP1 PUSH2 0xB1B JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x551 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5BD SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9CE JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5E6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x65E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6C58D43D PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6C58D43D SWAP1 PUSH2 0x6EE SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x709 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x72D SWAP2 SWAP1 PUSH2 0xB39 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x742 SWAP2 SWAP1 PUSH2 0xB08 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x75E SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x768 SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x772 SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x313 SWAP2 SWAP1 PUSH2 0xB1B JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP2 SWAP1 PUSH2 0x9CE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x808 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x82C SWAP2 SWAP1 PUSH2 0xB39 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x88F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8B3 SWAP2 SWAP1 PUSH2 0xB8A JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8C3 DUP2 PUSH1 0xA PUSH2 0xCB4 JUMP JUMPDEST PUSH2 0x8CD DUP5 DUP8 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x34B SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x927 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x942 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x966 SWAP2 SWAP1 PUSH2 0xD30 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x995 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x98C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0x999 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x99B DUP2 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0x9C5 JUMP JUMPDEST PUSH2 0x9E5 DUP2 PUSH2 0x9B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x9EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9AF DUP2 PUSH2 0x9DC JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA10 JUMPI PUSH2 0xA10 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0x9F2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9AF DUP3 PUSH2 0x9B5 JUMP JUMPDEST PUSH0 PUSH2 0x9AF DUP3 PUSH2 0xA23 JUMP JUMPDEST PUSH2 0x99B DUP2 PUSH2 0xA2D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0xA37 JUMP JUMPDEST DUP1 PUSH2 0x9E5 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9AF DUP2 PUSH2 0xA4E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA72 JUMPI PUSH2 0xA72 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xA54 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA91 JUMPI PUSH2 0xA91 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA9C DUP6 DUP6 PUSH2 0xA54 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAAD DUP6 DUP3 DUP7 ADD PUSH2 0xA54 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x99B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0xAB7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB03 JUMPI PUSH2 0xB03 PUSH2 0xACD JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xAE1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xAE1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9AF DUP2 PUSH2 0xA4E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB4C JUMPI PUSH2 0xB4C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xB2E JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB6F JUMPI PUSH2 0xB6F PUSH2 0xAE1 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9E5 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9AF DUP2 PUSH2 0xB76 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB9D JUMPI PUSH2 0xB9D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xB7F JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBE7 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBC6 JUMPI PUSH2 0xBC6 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBD4 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBE0 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBAB JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBFE JUMPI POP PUSH1 0x1 PUSH2 0x313 JUMP JUMPDEST DUP2 PUSH2 0xC0A JUMPI POP PUSH0 PUSH2 0x313 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC20 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC2A JUMPI PUSH2 0xC57 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x313 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC3B JUMPI PUSH2 0xC3B PUSH2 0xAE1 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC51 JUMPI PUSH2 0xC51 PUSH2 0xAE1 JUMP JUMPDEST POP PUSH2 0x313 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC8A JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC85 JUMPI PUSH2 0xC85 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0x313 JUMP JUMPDEST PUSH2 0xC97 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBA8 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCAD JUMPI PUSH2 0xCAD PUSH2 0xAE1 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x313 PUSH0 NOT DUP5 DUP5 PUSH2 0xBF0 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCD5 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCEC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD0B DUP3 DUP6 PUSH2 0x9C5 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA1B DUP2 DUP5 PUSH2 0xCCC JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9E5 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9AF DUP2 PUSH2 0xD1D JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD43 JUMPI PUSH2 0xD43 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD5C DUP3 DUP7 PUSH2 0x9C5 JUMP JUMPDEST PUSH2 0xD69 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9C5 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x34B DUP2 DUP5 PUSH2 0xCCC JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x94 0xB5 0xA8 0xB8 SWAP6 SHR DUP9 EXP 0xAC 0xC8 0xB0 LOG0 0x29 0xC MUL DUP13 BYTE SSTORE TIMESTAMP COINBASE STOP 0x2D 0xD4 0xEB PUSH10 0xB2C9946D3D0364736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"392:1177:46:-:0;;;660:633;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:7;550:42;1058:15;1087:16;1117:17;1148:30;1192:24;1230:20;1264:12;3527:36:67;408:10:17;1087:16:46;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;-1:-1:-1;392:1177:46;;-1:-1:-1;;;;;;;392:1177:46;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1448::-;1338:6;1346;1354;1362;1370;1378;1386;1394;1443:3;1431:9;1422:7;1418:23;1414:33;1411:120;;;1450:79;197:1;194;187:12;1450:79;1570:1;1595:64;1651:7;1631:9;1595:64;:::i;:::-;1585:74;;1541:128;1708:2;1734:64;1790:7;1781:6;1770:9;1766:22;1734:64;:::i;:::-;1724:74;;1679:129;1847:2;1873:64;1929:7;1920:6;1909:9;1905:22;1873:64;:::i;:::-;1863:74;;1818:129;1986:2;2012:64;2068:7;2059:6;2048:9;2044:22;2012:64;:::i;:::-;2002:74;;1957:129;2125:3;2152:64;2208:7;2199:6;2188:9;2184:22;2152:64;:::i;:::-;2142:74;;2096:130;2265:3;2292:64;2348:7;2339:6;2328:9;2324:22;2292:64;:::i;:::-;2282:74;;2236:130;2405:3;2432:64;2488:7;2479:6;2468:9;2464:22;2432:64;:::i;:::-;2422:74;;2376:130;2545:3;2572:64;2628:7;2619:6;2608:9;2604:22;2572:64;:::i;:::-;2562:74;;2516:130;1205:1448;;;;;;;;;;;:::o;2659:180::-;-1:-1:-1;;;2704:1:101;2697:88;2804:4;2801:1;2794:15;2828:4;2825:1;2818:15;3031:185;3071:1;3161;3151:35;;3166:18;;:::i;:::-;-1:-1:-1;3201:9:101;;3031:185::o;:::-;392:1177:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@NATIVE_TOKEN_ADDR_3792":{"entryPoint":null,"id":3792,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1919,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2263,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1842,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":675,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_3839":{"entryPoint":1688,"id":3839,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1177,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":965,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":852,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1568,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1236,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2546,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3365,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2644,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2862,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2943,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2557,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3376,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2655,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2873,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2685,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2954,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2501,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2743,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2615,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3276,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2510,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3406,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3325,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2751,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2624,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2465,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2843,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2805,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2984,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3252,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3056,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2903,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2824,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2485,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2605,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2595,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3265,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2785,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2765,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2524,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3357,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2638,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2934,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12568:101","nodeType":"YulBlock","src":"0:12568:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5171:152:101","nodeType":"YulBlock","src":"5171:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5188:1:101","nodeType":"YulLiteral","src":"5188:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5191:77:101","nodeType":"YulLiteral","src":"5191:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5181:6:101","nodeType":"YulIdentifier","src":"5181:6:101"},"nativeSrc":"5181:88:101","nodeType":"YulFunctionCall","src":"5181:88:101"},"nativeSrc":"5181:88:101","nodeType":"YulExpressionStatement","src":"5181:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5285:1:101","nodeType":"YulLiteral","src":"5285:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5288:4:101","nodeType":"YulLiteral","src":"5288:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:101","nodeType":"YulIdentifier","src":"5278:6:101"},"nativeSrc":"5278:15:101","nodeType":"YulFunctionCall","src":"5278:15:101"},"nativeSrc":"5278:15:101","nodeType":"YulExpressionStatement","src":"5278:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5309:1:101","nodeType":"YulLiteral","src":"5309:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5312:4:101","nodeType":"YulLiteral","src":"5312:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5302:6:101","nodeType":"YulIdentifier","src":"5302:6:101"},"nativeSrc":"5302:15:101","nodeType":"YulFunctionCall","src":"5302:15:101"},"nativeSrc":"5302:15:101","nodeType":"YulExpressionStatement","src":"5302:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5143:180:101","nodeType":"YulFunctionDefinition","src":"5143:180:101"},{"body":{"nativeSrc":"5357:152:101","nodeType":"YulBlock","src":"5357:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5374:1:101","nodeType":"YulLiteral","src":"5374:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5377:77:101","nodeType":"YulLiteral","src":"5377:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:101","nodeType":"YulIdentifier","src":"5367:6:101"},"nativeSrc":"5367:88:101","nodeType":"YulFunctionCall","src":"5367:88:101"},"nativeSrc":"5367:88:101","nodeType":"YulExpressionStatement","src":"5367:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5471:1:101","nodeType":"YulLiteral","src":"5471:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5474:4:101","nodeType":"YulLiteral","src":"5474:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5464:6:101","nodeType":"YulIdentifier","src":"5464:6:101"},"nativeSrc":"5464:15:101","nodeType":"YulFunctionCall","src":"5464:15:101"},"nativeSrc":"5464:15:101","nodeType":"YulExpressionStatement","src":"5464:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5495:1:101","nodeType":"YulLiteral","src":"5495:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5498:4:101","nodeType":"YulLiteral","src":"5498:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5488:6:101","nodeType":"YulIdentifier","src":"5488:6:101"},"nativeSrc":"5488:15:101","nodeType":"YulFunctionCall","src":"5488:15:101"},"nativeSrc":"5488:15:101","nodeType":"YulExpressionStatement","src":"5488:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5329:180:101","nodeType":"YulFunctionDefinition","src":"5329:180:101"},{"body":{"nativeSrc":"5557:143:101","nodeType":"YulBlock","src":"5557:143:101","statements":[{"nativeSrc":"5567:25:101","nodeType":"YulAssignment","src":"5567:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5590:1:101","nodeType":"YulIdentifier","src":"5590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5572:17:101","nodeType":"YulIdentifier","src":"5572:17:101"},"nativeSrc":"5572:20:101","nodeType":"YulFunctionCall","src":"5572:20:101"},"variableNames":[{"name":"x","nativeSrc":"5567:1:101","nodeType":"YulIdentifier","src":"5567:1:101"}]},{"nativeSrc":"5601:25:101","nodeType":"YulAssignment","src":"5601:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5624:1:101","nodeType":"YulIdentifier","src":"5624:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5606:17:101","nodeType":"YulIdentifier","src":"5606:17:101"},"nativeSrc":"5606:20:101","nodeType":"YulFunctionCall","src":"5606:20:101"},"variableNames":[{"name":"y","nativeSrc":"5601:1:101","nodeType":"YulIdentifier","src":"5601:1:101"}]},{"body":{"nativeSrc":"5648:22:101","nodeType":"YulBlock","src":"5648:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"5650:16:101","nodeType":"YulIdentifier","src":"5650:16:101"},"nativeSrc":"5650:18:101","nodeType":"YulFunctionCall","src":"5650:18:101"},"nativeSrc":"5650:18:101","nodeType":"YulExpressionStatement","src":"5650:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"5645:1:101","nodeType":"YulIdentifier","src":"5645:1:101"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:101","nodeType":"YulIdentifier","src":"5638:6:101"},"nativeSrc":"5638:9:101","nodeType":"YulFunctionCall","src":"5638:9:101"},"nativeSrc":"5635:35:101","nodeType":"YulIf","src":"5635:35:101"},{"nativeSrc":"5680:14:101","nodeType":"YulAssignment","src":"5680:14:101","value":{"arguments":[{"name":"x","nativeSrc":"5689:1:101","nodeType":"YulIdentifier","src":"5689:1:101"},{"name":"y","nativeSrc":"5692:1:101","nodeType":"YulIdentifier","src":"5692:1:101"}],"functionName":{"name":"div","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"},"nativeSrc":"5685:9:101","nodeType":"YulFunctionCall","src":"5685:9:101"},"variableNames":[{"name":"r","nativeSrc":"5680:1:101","nodeType":"YulIdentifier","src":"5680:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"5515:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5546:1:101","nodeType":"YulTypedName","src":"5546:1:101","type":""},{"name":"y","nativeSrc":"5549:1:101","nodeType":"YulTypedName","src":"5549:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"5555:1:101","nodeType":"YulTypedName","src":"5555:1:101","type":""}],"src":"5515:185:101"},{"body":{"nativeSrc":"5751:149:101","nodeType":"YulBlock","src":"5751:149:101","statements":[{"nativeSrc":"5761:25:101","nodeType":"YulAssignment","src":"5761:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5784:1:101","nodeType":"YulIdentifier","src":"5784:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5766:17:101","nodeType":"YulIdentifier","src":"5766:17:101"},"nativeSrc":"5766:20:101","nodeType":"YulFunctionCall","src":"5766:20:101"},"variableNames":[{"name":"x","nativeSrc":"5761:1:101","nodeType":"YulIdentifier","src":"5761:1:101"}]},{"nativeSrc":"5795:25:101","nodeType":"YulAssignment","src":"5795:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5818:1:101","nodeType":"YulIdentifier","src":"5818:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5800:17:101","nodeType":"YulIdentifier","src":"5800:17:101"},"nativeSrc":"5800:20:101","nodeType":"YulFunctionCall","src":"5800:20:101"},"variableNames":[{"name":"y","nativeSrc":"5795:1:101","nodeType":"YulIdentifier","src":"5795:1:101"}]},{"nativeSrc":"5829:17:101","nodeType":"YulAssignment","src":"5829:17:101","value":{"arguments":[{"name":"x","nativeSrc":"5841:1:101","nodeType":"YulIdentifier","src":"5841:1:101"},{"name":"y","nativeSrc":"5844:1:101","nodeType":"YulIdentifier","src":"5844:1:101"}],"functionName":{"name":"sub","nativeSrc":"5837:3:101","nodeType":"YulIdentifier","src":"5837:3:101"},"nativeSrc":"5837:9:101","nodeType":"YulFunctionCall","src":"5837:9:101"},"variableNames":[{"name":"diff","nativeSrc":"5829:4:101","nodeType":"YulIdentifier","src":"5829:4:101"}]},{"body":{"nativeSrc":"5871:22:101","nodeType":"YulBlock","src":"5871:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5873:16:101","nodeType":"YulIdentifier","src":"5873:16:101"},"nativeSrc":"5873:18:101","nodeType":"YulFunctionCall","src":"5873:18:101"},"nativeSrc":"5873:18:101","nodeType":"YulExpressionStatement","src":"5873:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"5862:4:101","nodeType":"YulIdentifier","src":"5862:4:101"},{"name":"x","nativeSrc":"5868:1:101","nodeType":"YulIdentifier","src":"5868:1:101"}],"functionName":{"name":"gt","nativeSrc":"5859:2:101","nodeType":"YulIdentifier","src":"5859:2:101"},"nativeSrc":"5859:11:101","nodeType":"YulFunctionCall","src":"5859:11:101"},"nativeSrc":"5856:37:101","nodeType":"YulIf","src":"5856:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"5706:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5737:1:101","nodeType":"YulTypedName","src":"5737:1:101","type":""},{"name":"y","nativeSrc":"5740:1:101","nodeType":"YulTypedName","src":"5740:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5746:4:101","nodeType":"YulTypedName","src":"5746:4:101","type":""}],"src":"5706:194:101"},{"body":{"nativeSrc":"5950:147:101","nodeType":"YulBlock","src":"5950:147:101","statements":[{"nativeSrc":"5960:25:101","nodeType":"YulAssignment","src":"5960:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5983:1:101","nodeType":"YulIdentifier","src":"5983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5965:17:101","nodeType":"YulIdentifier","src":"5965:17:101"},"nativeSrc":"5965:20:101","nodeType":"YulFunctionCall","src":"5965:20:101"},"variableNames":[{"name":"x","nativeSrc":"5960:1:101","nodeType":"YulIdentifier","src":"5960:1:101"}]},{"nativeSrc":"5994:25:101","nodeType":"YulAssignment","src":"5994:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6017:1:101","nodeType":"YulIdentifier","src":"6017:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5999:17:101","nodeType":"YulIdentifier","src":"5999:17:101"},"nativeSrc":"5999:20:101","nodeType":"YulFunctionCall","src":"5999:20:101"},"variableNames":[{"name":"y","nativeSrc":"5994:1:101","nodeType":"YulIdentifier","src":"5994:1:101"}]},{"nativeSrc":"6028:16:101","nodeType":"YulAssignment","src":"6028:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6039:1:101","nodeType":"YulIdentifier","src":"6039:1:101"},{"name":"y","nativeSrc":"6042:1:101","nodeType":"YulIdentifier","src":"6042:1:101"}],"functionName":{"name":"add","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},"nativeSrc":"6035:9:101","nodeType":"YulFunctionCall","src":"6035:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"}]},{"body":{"nativeSrc":"6068:22:101","nodeType":"YulBlock","src":"6068:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6070:16:101","nodeType":"YulIdentifier","src":"6070:16:101"},"nativeSrc":"6070:18:101","nodeType":"YulFunctionCall","src":"6070:18:101"},"nativeSrc":"6070:18:101","nodeType":"YulExpressionStatement","src":"6070:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6060:1:101","nodeType":"YulIdentifier","src":"6060:1:101"},{"name":"sum","nativeSrc":"6063:3:101","nodeType":"YulIdentifier","src":"6063:3:101"}],"functionName":{"name":"gt","nativeSrc":"6057:2:101","nodeType":"YulIdentifier","src":"6057:2:101"},"nativeSrc":"6057:10:101","nodeType":"YulFunctionCall","src":"6057:10:101"},"nativeSrc":"6054:36:101","nodeType":"YulIf","src":"6054:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"5906:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5937:1:101","nodeType":"YulTypedName","src":"5937:1:101","type":""},{"name":"y","nativeSrc":"5940:1:101","nodeType":"YulTypedName","src":"5940:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5946:3:101","nodeType":"YulTypedName","src":"5946:3:101","type":""}],"src":"5906:191:101"},{"body":{"nativeSrc":"6166:80:101","nodeType":"YulBlock","src":"6166:80:101","statements":[{"nativeSrc":"6176:22:101","nodeType":"YulAssignment","src":"6176:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6191:6:101","nodeType":"YulIdentifier","src":"6191:6:101"}],"functionName":{"name":"mload","nativeSrc":"6185:5:101","nodeType":"YulIdentifier","src":"6185:5:101"},"nativeSrc":"6185:13:101","nodeType":"YulFunctionCall","src":"6185:13:101"},"variableNames":[{"name":"value","nativeSrc":"6176:5:101","nodeType":"YulIdentifier","src":"6176:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6234:5:101","nodeType":"YulIdentifier","src":"6234:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6207:26:101","nodeType":"YulIdentifier","src":"6207:26:101"},"nativeSrc":"6207:33:101","nodeType":"YulFunctionCall","src":"6207:33:101"},"nativeSrc":"6207:33:101","nodeType":"YulExpressionStatement","src":"6207:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6103:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6144:6:101","nodeType":"YulTypedName","src":"6144:6:101","type":""},{"name":"end","nativeSrc":"6152:3:101","nodeType":"YulTypedName","src":"6152:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6160:5:101","nodeType":"YulTypedName","src":"6160:5:101","type":""}],"src":"6103:143:101"},{"body":{"nativeSrc":"6329:274:101","nodeType":"YulBlock","src":"6329:274:101","statements":[{"body":{"nativeSrc":"6375:83:101","nodeType":"YulBlock","src":"6375:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6377:77:101","nodeType":"YulIdentifier","src":"6377:77:101"},"nativeSrc":"6377:79:101","nodeType":"YulFunctionCall","src":"6377:79:101"},"nativeSrc":"6377:79:101","nodeType":"YulExpressionStatement","src":"6377:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6350:7:101","nodeType":"YulIdentifier","src":"6350:7:101"},{"name":"headStart","nativeSrc":"6359:9:101","nodeType":"YulIdentifier","src":"6359:9:101"}],"functionName":{"name":"sub","nativeSrc":"6346:3:101","nodeType":"YulIdentifier","src":"6346:3:101"},"nativeSrc":"6346:23:101","nodeType":"YulFunctionCall","src":"6346:23:101"},{"kind":"number","nativeSrc":"6371:2:101","nodeType":"YulLiteral","src":"6371:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6342:3:101","nodeType":"YulIdentifier","src":"6342:3:101"},"nativeSrc":"6342:32:101","nodeType":"YulFunctionCall","src":"6342:32:101"},"nativeSrc":"6339:119:101","nodeType":"YulIf","src":"6339:119:101"},{"nativeSrc":"6468:128:101","nodeType":"YulBlock","src":"6468:128:101","statements":[{"nativeSrc":"6483:15:101","nodeType":"YulVariableDeclaration","src":"6483:15:101","value":{"kind":"number","nativeSrc":"6497:1:101","nodeType":"YulLiteral","src":"6497:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6487:6:101","nodeType":"YulTypedName","src":"6487:6:101","type":""}]},{"nativeSrc":"6512:74:101","nodeType":"YulAssignment","src":"6512:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6558:9:101","nodeType":"YulIdentifier","src":"6558:9:101"},{"name":"offset","nativeSrc":"6569:6:101","nodeType":"YulIdentifier","src":"6569:6:101"}],"functionName":{"name":"add","nativeSrc":"6554:3:101","nodeType":"YulIdentifier","src":"6554:3:101"},"nativeSrc":"6554:22:101","nodeType":"YulFunctionCall","src":"6554:22:101"},{"name":"dataEnd","nativeSrc":"6578:7:101","nodeType":"YulIdentifier","src":"6578:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6522:31:101","nodeType":"YulIdentifier","src":"6522:31:101"},"nativeSrc":"6522:64:101","nodeType":"YulFunctionCall","src":"6522:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6512:6:101","nodeType":"YulIdentifier","src":"6512:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6252:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6299:9:101","nodeType":"YulTypedName","src":"6299:9:101","type":""},{"name":"dataEnd","nativeSrc":"6310:7:101","nodeType":"YulTypedName","src":"6310:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6322:6:101","nodeType":"YulTypedName","src":"6322:6:101","type":""}],"src":"6252:351:101"},{"body":{"nativeSrc":"6657:362:101","nodeType":"YulBlock","src":"6657:362:101","statements":[{"nativeSrc":"6667:25:101","nodeType":"YulAssignment","src":"6667:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6690:1:101","nodeType":"YulIdentifier","src":"6690:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6672:17:101","nodeType":"YulIdentifier","src":"6672:17:101"},"nativeSrc":"6672:20:101","nodeType":"YulFunctionCall","src":"6672:20:101"},"variableNames":[{"name":"x","nativeSrc":"6667:1:101","nodeType":"YulIdentifier","src":"6667:1:101"}]},{"nativeSrc":"6701:25:101","nodeType":"YulAssignment","src":"6701:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6724:1:101","nodeType":"YulIdentifier","src":"6724:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6706:17:101","nodeType":"YulIdentifier","src":"6706:17:101"},"nativeSrc":"6706:20:101","nodeType":"YulFunctionCall","src":"6706:20:101"},"variableNames":[{"name":"y","nativeSrc":"6701:1:101","nodeType":"YulIdentifier","src":"6701:1:101"}]},{"nativeSrc":"6735:28:101","nodeType":"YulVariableDeclaration","src":"6735:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6758:1:101","nodeType":"YulIdentifier","src":"6758:1:101"},{"name":"y","nativeSrc":"6761:1:101","nodeType":"YulIdentifier","src":"6761:1:101"}],"functionName":{"name":"mul","nativeSrc":"6754:3:101","nodeType":"YulIdentifier","src":"6754:3:101"},"nativeSrc":"6754:9:101","nodeType":"YulFunctionCall","src":"6754:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6739:11:101","nodeType":"YulTypedName","src":"6739:11:101","type":""}]},{"nativeSrc":"6772:41:101","nodeType":"YulAssignment","src":"6772:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6801:11:101","nodeType":"YulIdentifier","src":"6801:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6783:17:101","nodeType":"YulIdentifier","src":"6783:17:101"},"nativeSrc":"6783:30:101","nodeType":"YulFunctionCall","src":"6783:30:101"},"variableNames":[{"name":"product","nativeSrc":"6772:7:101","nodeType":"YulIdentifier","src":"6772:7:101"}]},{"body":{"nativeSrc":"6990:22:101","nodeType":"YulBlock","src":"6990:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6992:16:101","nodeType":"YulIdentifier","src":"6992:16:101"},"nativeSrc":"6992:18:101","nodeType":"YulFunctionCall","src":"6992:18:101"},"nativeSrc":"6992:18:101","nodeType":"YulExpressionStatement","src":"6992:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6923:1:101","nodeType":"YulIdentifier","src":"6923:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6916:6:101","nodeType":"YulIdentifier","src":"6916:6:101"},"nativeSrc":"6916:9:101","nodeType":"YulFunctionCall","src":"6916:9:101"},{"arguments":[{"name":"y","nativeSrc":"6946:1:101","nodeType":"YulIdentifier","src":"6946:1:101"},{"arguments":[{"name":"product","nativeSrc":"6953:7:101","nodeType":"YulIdentifier","src":"6953:7:101"},{"name":"x","nativeSrc":"6962:1:101","nodeType":"YulIdentifier","src":"6962:1:101"}],"functionName":{"name":"div","nativeSrc":"6949:3:101","nodeType":"YulIdentifier","src":"6949:3:101"},"nativeSrc":"6949:15:101","nodeType":"YulFunctionCall","src":"6949:15:101"}],"functionName":{"name":"eq","nativeSrc":"6943:2:101","nodeType":"YulIdentifier","src":"6943:2:101"},"nativeSrc":"6943:22:101","nodeType":"YulFunctionCall","src":"6943:22:101"}],"functionName":{"name":"or","nativeSrc":"6896:2:101","nodeType":"YulIdentifier","src":"6896:2:101"},"nativeSrc":"6896:83:101","nodeType":"YulFunctionCall","src":"6896:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6876:6:101","nodeType":"YulIdentifier","src":"6876:6:101"},"nativeSrc":"6876:113:101","nodeType":"YulFunctionCall","src":"6876:113:101"},"nativeSrc":"6873:139:101","nodeType":"YulIf","src":"6873:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"6609:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6640:1:101","nodeType":"YulTypedName","src":"6640:1:101","type":""},{"name":"y","nativeSrc":"6643:1:101","nodeType":"YulTypedName","src":"6643:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6649:7:101","nodeType":"YulTypedName","src":"6649:7:101","type":""}],"src":"6609:410:101"},{"body":{"nativeSrc":"7068:43:101","nodeType":"YulBlock","src":"7068:43:101","statements":[{"nativeSrc":"7078:27:101","nodeType":"YulAssignment","src":"7078:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7093:5:101","nodeType":"YulIdentifier","src":"7093:5:101"},{"kind":"number","nativeSrc":"7100:4:101","nodeType":"YulLiteral","src":"7100:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7089:3:101","nodeType":"YulIdentifier","src":"7089:3:101"},"nativeSrc":"7089:16:101","nodeType":"YulFunctionCall","src":"7089:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7078:7:101","nodeType":"YulIdentifier","src":"7078:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7025:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7050:5:101","nodeType":"YulTypedName","src":"7050:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7060:7:101","nodeType":"YulTypedName","src":"7060:7:101","type":""}],"src":"7025:86:101"},{"body":{"nativeSrc":"7158:77:101","nodeType":"YulBlock","src":"7158:77:101","statements":[{"body":{"nativeSrc":"7213:16:101","nodeType":"YulBlock","src":"7213:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7222:1:101","nodeType":"YulLiteral","src":"7222:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7225:1:101","nodeType":"YulLiteral","src":"7225:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7215:6:101","nodeType":"YulIdentifier","src":"7215:6:101"},"nativeSrc":"7215:12:101","nodeType":"YulFunctionCall","src":"7215:12:101"},"nativeSrc":"7215:12:101","nodeType":"YulExpressionStatement","src":"7215:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7181:5:101","nodeType":"YulIdentifier","src":"7181:5:101"},{"arguments":[{"name":"value","nativeSrc":"7204:5:101","nodeType":"YulIdentifier","src":"7204:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7188:15:101","nodeType":"YulIdentifier","src":"7188:15:101"},"nativeSrc":"7188:22:101","nodeType":"YulFunctionCall","src":"7188:22:101"}],"functionName":{"name":"eq","nativeSrc":"7178:2:101","nodeType":"YulIdentifier","src":"7178:2:101"},"nativeSrc":"7178:33:101","nodeType":"YulFunctionCall","src":"7178:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7171:6:101","nodeType":"YulIdentifier","src":"7171:6:101"},"nativeSrc":"7171:41:101","nodeType":"YulFunctionCall","src":"7171:41:101"},"nativeSrc":"7168:61:101","nodeType":"YulIf","src":"7168:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7117:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7151:5:101","nodeType":"YulTypedName","src":"7151:5:101","type":""}],"src":"7117:118:101"},{"body":{"nativeSrc":"7302:78:101","nodeType":"YulBlock","src":"7302:78:101","statements":[{"nativeSrc":"7312:22:101","nodeType":"YulAssignment","src":"7312:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7327:6:101","nodeType":"YulIdentifier","src":"7327:6:101"}],"functionName":{"name":"mload","nativeSrc":"7321:5:101","nodeType":"YulIdentifier","src":"7321:5:101"},"nativeSrc":"7321:13:101","nodeType":"YulFunctionCall","src":"7321:13:101"},"variableNames":[{"name":"value","nativeSrc":"7312:5:101","nodeType":"YulIdentifier","src":"7312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7368:5:101","nodeType":"YulIdentifier","src":"7368:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7343:24:101","nodeType":"YulIdentifier","src":"7343:24:101"},"nativeSrc":"7343:31:101","nodeType":"YulFunctionCall","src":"7343:31:101"},"nativeSrc":"7343:31:101","nodeType":"YulExpressionStatement","src":"7343:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7241:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7280:6:101","nodeType":"YulTypedName","src":"7280:6:101","type":""},{"name":"end","nativeSrc":"7288:3:101","nodeType":"YulTypedName","src":"7288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7296:5:101","nodeType":"YulTypedName","src":"7296:5:101","type":""}],"src":"7241:139:101"},{"body":{"nativeSrc":"7461:272:101","nodeType":"YulBlock","src":"7461:272:101","statements":[{"body":{"nativeSrc":"7507:83:101","nodeType":"YulBlock","src":"7507:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7509:77:101","nodeType":"YulIdentifier","src":"7509:77:101"},"nativeSrc":"7509:79:101","nodeType":"YulFunctionCall","src":"7509:79:101"},"nativeSrc":"7509:79:101","nodeType":"YulExpressionStatement","src":"7509:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7482:7:101","nodeType":"YulIdentifier","src":"7482:7:101"},{"name":"headStart","nativeSrc":"7491:9:101","nodeType":"YulIdentifier","src":"7491:9:101"}],"functionName":{"name":"sub","nativeSrc":"7478:3:101","nodeType":"YulIdentifier","src":"7478:3:101"},"nativeSrc":"7478:23:101","nodeType":"YulFunctionCall","src":"7478:23:101"},{"kind":"number","nativeSrc":"7503:2:101","nodeType":"YulLiteral","src":"7503:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7474:3:101","nodeType":"YulIdentifier","src":"7474:3:101"},"nativeSrc":"7474:32:101","nodeType":"YulFunctionCall","src":"7474:32:101"},"nativeSrc":"7471:119:101","nodeType":"YulIf","src":"7471:119:101"},{"nativeSrc":"7600:126:101","nodeType":"YulBlock","src":"7600:126:101","statements":[{"nativeSrc":"7615:15:101","nodeType":"YulVariableDeclaration","src":"7615:15:101","value":{"kind":"number","nativeSrc":"7629:1:101","nodeType":"YulLiteral","src":"7629:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7619:6:101","nodeType":"YulTypedName","src":"7619:6:101","type":""}]},{"nativeSrc":"7644:72:101","nodeType":"YulAssignment","src":"7644:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:101","nodeType":"YulIdentifier","src":"7688:9:101"},{"name":"offset","nativeSrc":"7699:6:101","nodeType":"YulIdentifier","src":"7699:6:101"}],"functionName":{"name":"add","nativeSrc":"7684:3:101","nodeType":"YulIdentifier","src":"7684:3:101"},"nativeSrc":"7684:22:101","nodeType":"YulFunctionCall","src":"7684:22:101"},{"name":"dataEnd","nativeSrc":"7708:7:101","nodeType":"YulIdentifier","src":"7708:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7654:29:101","nodeType":"YulIdentifier","src":"7654:29:101"},"nativeSrc":"7654:62:101","nodeType":"YulFunctionCall","src":"7654:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7644:6:101","nodeType":"YulIdentifier","src":"7644:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7386:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7431:9:101","nodeType":"YulTypedName","src":"7431:9:101","type":""},{"name":"dataEnd","nativeSrc":"7442:7:101","nodeType":"YulTypedName","src":"7442:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7454:6:101","nodeType":"YulTypedName","src":"7454:6:101","type":""}],"src":"7386:347:101"},{"body":{"nativeSrc":"7790:51:101","nodeType":"YulBlock","src":"7790:51:101","statements":[{"nativeSrc":"7800:34:101","nodeType":"YulAssignment","src":"7800:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7825:1:101","nodeType":"YulLiteral","src":"7825:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7828:5:101","nodeType":"YulIdentifier","src":"7828:5:101"}],"functionName":{"name":"shr","nativeSrc":"7821:3:101","nodeType":"YulIdentifier","src":"7821:3:101"},"nativeSrc":"7821:13:101","nodeType":"YulFunctionCall","src":"7821:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7800:8:101","nodeType":"YulIdentifier","src":"7800:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7739:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7771:5:101","nodeType":"YulTypedName","src":"7771:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7781:8:101","nodeType":"YulTypedName","src":"7781:8:101","type":""}],"src":"7739:102:101"},{"body":{"nativeSrc":"7920:775:101","nodeType":"YulBlock","src":"7920:775:101","statements":[{"nativeSrc":"7930:15:101","nodeType":"YulAssignment","src":"7930:15:101","value":{"name":"_power","nativeSrc":"7939:6:101","nodeType":"YulIdentifier","src":"7939:6:101"},"variableNames":[{"name":"power","nativeSrc":"7930:5:101","nodeType":"YulIdentifier","src":"7930:5:101"}]},{"nativeSrc":"7954:14:101","nodeType":"YulAssignment","src":"7954:14:101","value":{"name":"_base","nativeSrc":"7963:5:101","nodeType":"YulIdentifier","src":"7963:5:101"},"variableNames":[{"name":"base","nativeSrc":"7954:4:101","nodeType":"YulIdentifier","src":"7954:4:101"}]},{"body":{"nativeSrc":"8012:677:101","nodeType":"YulBlock","src":"8012:677:101","statements":[{"body":{"nativeSrc":"8100:22:101","nodeType":"YulBlock","src":"8100:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8102:16:101","nodeType":"YulIdentifier","src":"8102:16:101"},"nativeSrc":"8102:18:101","nodeType":"YulFunctionCall","src":"8102:18:101"},"nativeSrc":"8102:18:101","nodeType":"YulExpressionStatement","src":"8102:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8078:4:101","nodeType":"YulIdentifier","src":"8078:4:101"},{"arguments":[{"name":"max","nativeSrc":"8088:3:101","nodeType":"YulIdentifier","src":"8088:3:101"},{"name":"base","nativeSrc":"8093:4:101","nodeType":"YulIdentifier","src":"8093:4:101"}],"functionName":{"name":"div","nativeSrc":"8084:3:101","nodeType":"YulIdentifier","src":"8084:3:101"},"nativeSrc":"8084:14:101","nodeType":"YulFunctionCall","src":"8084:14:101"}],"functionName":{"name":"gt","nativeSrc":"8075:2:101","nodeType":"YulIdentifier","src":"8075:2:101"},"nativeSrc":"8075:24:101","nodeType":"YulFunctionCall","src":"8075:24:101"},"nativeSrc":"8072:50:101","nodeType":"YulIf","src":"8072:50:101"},{"body":{"nativeSrc":"8167:419:101","nodeType":"YulBlock","src":"8167:419:101","statements":[{"nativeSrc":"8547:25:101","nodeType":"YulAssignment","src":"8547:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},{"name":"base","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"mul","nativeSrc":"8556:3:101","nodeType":"YulIdentifier","src":"8556:3:101"},"nativeSrc":"8556:16:101","nodeType":"YulFunctionCall","src":"8556:16:101"},"variableNames":[{"name":"power","nativeSrc":"8547:5:101","nodeType":"YulIdentifier","src":"8547:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8142:8:101","nodeType":"YulIdentifier","src":"8142:8:101"},{"kind":"number","nativeSrc":"8152:1:101","nodeType":"YulLiteral","src":"8152:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8138:3:101","nodeType":"YulIdentifier","src":"8138:3:101"},"nativeSrc":"8138:16:101","nodeType":"YulFunctionCall","src":"8138:16:101"},"nativeSrc":"8135:451:101","nodeType":"YulIf","src":"8135:451:101"},{"nativeSrc":"8599:23:101","nodeType":"YulAssignment","src":"8599:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8611:4:101","nodeType":"YulIdentifier","src":"8611:4:101"},{"name":"base","nativeSrc":"8617:4:101","nodeType":"YulIdentifier","src":"8617:4:101"}],"functionName":{"name":"mul","nativeSrc":"8607:3:101","nodeType":"YulIdentifier","src":"8607:3:101"},"nativeSrc":"8607:15:101","nodeType":"YulFunctionCall","src":"8607:15:101"},"variableNames":[{"name":"base","nativeSrc":"8599:4:101","nodeType":"YulIdentifier","src":"8599:4:101"}]},{"nativeSrc":"8635:44:101","nodeType":"YulAssignment","src":"8635:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8670:8:101","nodeType":"YulIdentifier","src":"8670:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8647:22:101","nodeType":"YulIdentifier","src":"8647:22:101"},"nativeSrc":"8647:32:101","nodeType":"YulFunctionCall","src":"8647:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8635:8:101","nodeType":"YulIdentifier","src":"8635:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7988:8:101","nodeType":"YulIdentifier","src":"7988:8:101"},{"kind":"number","nativeSrc":"7998:1:101","nodeType":"YulLiteral","src":"7998:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7985:2:101","nodeType":"YulIdentifier","src":"7985:2:101"},"nativeSrc":"7985:15:101","nodeType":"YulFunctionCall","src":"7985:15:101"},"nativeSrc":"7977:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8001:2:101","nodeType":"YulBlock","src":"8001:2:101","statements":[]},"pre":{"nativeSrc":"7981:3:101","nodeType":"YulBlock","src":"7981:3:101","statements":[]},"src":"7977:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7847:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7875:6:101","nodeType":"YulTypedName","src":"7875:6:101","type":""},{"name":"_base","nativeSrc":"7883:5:101","nodeType":"YulTypedName","src":"7883:5:101","type":""},{"name":"exponent","nativeSrc":"7890:8:101","nodeType":"YulTypedName","src":"7890:8:101","type":""},{"name":"max","nativeSrc":"7900:3:101","nodeType":"YulTypedName","src":"7900:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7908:5:101","nodeType":"YulTypedName","src":"7908:5:101","type":""},{"name":"base","nativeSrc":"7915:4:101","nodeType":"YulTypedName","src":"7915:4:101","type":""}],"src":"7847:848:101"},{"body":{"nativeSrc":"8761:1013:101","nodeType":"YulBlock","src":"8761:1013:101","statements":[{"body":{"nativeSrc":"8956:20:101","nodeType":"YulBlock","src":"8956:20:101","statements":[{"nativeSrc":"8958:10:101","nodeType":"YulAssignment","src":"8958:10:101","value":{"kind":"number","nativeSrc":"8967:1:101","nodeType":"YulLiteral","src":"8967:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8958:5:101","nodeType":"YulIdentifier","src":"8958:5:101"}]},{"nativeSrc":"8969:5:101","nodeType":"YulLeave","src":"8969:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8946:8:101","nodeType":"YulIdentifier","src":"8946:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8939:6:101","nodeType":"YulIdentifier","src":"8939:6:101"},"nativeSrc":"8939:16:101","nodeType":"YulFunctionCall","src":"8939:16:101"},"nativeSrc":"8936:40:101","nodeType":"YulIf","src":"8936:40:101"},{"body":{"nativeSrc":"9001:20:101","nodeType":"YulBlock","src":"9001:20:101","statements":[{"nativeSrc":"9003:10:101","nodeType":"YulAssignment","src":"9003:10:101","value":{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9003:5:101","nodeType":"YulIdentifier","src":"9003:5:101"}]},{"nativeSrc":"9014:5:101","nodeType":"YulLeave","src":"9014:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8995:4:101","nodeType":"YulIdentifier","src":"8995:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8988:6:101","nodeType":"YulIdentifier","src":"8988:6:101"},"nativeSrc":"8988:12:101","nodeType":"YulFunctionCall","src":"8988:12:101"},"nativeSrc":"8985:36:101","nodeType":"YulIf","src":"8985:36:101"},{"cases":[{"body":{"nativeSrc":"9131:20:101","nodeType":"YulBlock","src":"9131:20:101","statements":[{"nativeSrc":"9133:10:101","nodeType":"YulAssignment","src":"9133:10:101","value":{"kind":"number","nativeSrc":"9142:1:101","nodeType":"YulLiteral","src":"9142:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9133:5:101","nodeType":"YulIdentifier","src":"9133:5:101"}]},{"nativeSrc":"9144:5:101","nodeType":"YulLeave","src":"9144:5:101"}]},"nativeSrc":"9124:27:101","nodeType":"YulCase","src":"9124:27:101","value":{"kind":"number","nativeSrc":"9129:1:101","nodeType":"YulLiteral","src":"9129:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9175:176:101","nodeType":"YulBlock","src":"9175:176:101","statements":[{"body":{"nativeSrc":"9210:22:101","nodeType":"YulBlock","src":"9210:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9212:16:101","nodeType":"YulIdentifier","src":"9212:16:101"},"nativeSrc":"9212:18:101","nodeType":"YulFunctionCall","src":"9212:18:101"},"nativeSrc":"9212:18:101","nodeType":"YulExpressionStatement","src":"9212:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9195:8:101","nodeType":"YulIdentifier","src":"9195:8:101"},{"kind":"number","nativeSrc":"9205:3:101","nodeType":"YulLiteral","src":"9205:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9192:2:101","nodeType":"YulIdentifier","src":"9192:2:101"},"nativeSrc":"9192:17:101","nodeType":"YulFunctionCall","src":"9192:17:101"},"nativeSrc":"9189:43:101","nodeType":"YulIf","src":"9189:43:101"},{"nativeSrc":"9245:25:101","nodeType":"YulAssignment","src":"9245:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9258:1:101","nodeType":"YulLiteral","src":"9258:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9261:8:101","nodeType":"YulIdentifier","src":"9261:8:101"}],"functionName":{"name":"exp","nativeSrc":"9254:3:101","nodeType":"YulIdentifier","src":"9254:3:101"},"nativeSrc":"9254:16:101","nodeType":"YulFunctionCall","src":"9254:16:101"},"variableNames":[{"name":"power","nativeSrc":"9245:5:101","nodeType":"YulIdentifier","src":"9245:5:101"}]},{"body":{"nativeSrc":"9301:22:101","nodeType":"YulBlock","src":"9301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9303:16:101","nodeType":"YulIdentifier","src":"9303:16:101"},"nativeSrc":"9303:18:101","nodeType":"YulFunctionCall","src":"9303:18:101"},"nativeSrc":"9303:18:101","nodeType":"YulExpressionStatement","src":"9303:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9289:5:101","nodeType":"YulIdentifier","src":"9289:5:101"},{"name":"max","nativeSrc":"9296:3:101","nodeType":"YulIdentifier","src":"9296:3:101"}],"functionName":{"name":"gt","nativeSrc":"9286:2:101","nodeType":"YulIdentifier","src":"9286:2:101"},"nativeSrc":"9286:14:101","nodeType":"YulFunctionCall","src":"9286:14:101"},"nativeSrc":"9283:40:101","nodeType":"YulIf","src":"9283:40:101"},{"nativeSrc":"9336:5:101","nodeType":"YulLeave","src":"9336:5:101"}]},"nativeSrc":"9160:191:101","nodeType":"YulCase","src":"9160:191:101","value":{"kind":"number","nativeSrc":"9165:1:101","nodeType":"YulLiteral","src":"9165:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9081:4:101","nodeType":"YulIdentifier","src":"9081:4:101"},"nativeSrc":"9074:277:101","nodeType":"YulSwitch","src":"9074:277:101"},{"body":{"nativeSrc":"9483:123:101","nodeType":"YulBlock","src":"9483:123:101","statements":[{"nativeSrc":"9497:28:101","nodeType":"YulAssignment","src":"9497:28:101","value":{"arguments":[{"name":"base","nativeSrc":"9510:4:101","nodeType":"YulIdentifier","src":"9510:4:101"},{"name":"exponent","nativeSrc":"9516:8:101","nodeType":"YulIdentifier","src":"9516:8:101"}],"functionName":{"name":"exp","nativeSrc":"9506:3:101","nodeType":"YulIdentifier","src":"9506:3:101"},"nativeSrc":"9506:19:101","nodeType":"YulFunctionCall","src":"9506:19:101"},"variableNames":[{"name":"power","nativeSrc":"9497:5:101","nodeType":"YulIdentifier","src":"9497:5:101"}]},{"body":{"nativeSrc":"9556:22:101","nodeType":"YulBlock","src":"9556:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9558:16:101","nodeType":"YulIdentifier","src":"9558:16:101"},"nativeSrc":"9558:18:101","nodeType":"YulFunctionCall","src":"9558:18:101"},"nativeSrc":"9558:18:101","nodeType":"YulExpressionStatement","src":"9558:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9544:5:101","nodeType":"YulIdentifier","src":"9544:5:101"},{"name":"max","nativeSrc":"9551:3:101","nodeType":"YulIdentifier","src":"9551:3:101"}],"functionName":{"name":"gt","nativeSrc":"9541:2:101","nodeType":"YulIdentifier","src":"9541:2:101"},"nativeSrc":"9541:14:101","nodeType":"YulFunctionCall","src":"9541:14:101"},"nativeSrc":"9538:40:101","nodeType":"YulIf","src":"9538:40:101"},{"nativeSrc":"9591:5:101","nodeType":"YulLeave","src":"9591:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9386:4:101","nodeType":"YulIdentifier","src":"9386:4:101"},{"kind":"number","nativeSrc":"9392:2:101","nodeType":"YulLiteral","src":"9392:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9383:2:101","nodeType":"YulIdentifier","src":"9383:2:101"},"nativeSrc":"9383:12:101","nodeType":"YulFunctionCall","src":"9383:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9400:8:101","nodeType":"YulIdentifier","src":"9400:8:101"},{"kind":"number","nativeSrc":"9410:2:101","nodeType":"YulLiteral","src":"9410:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9397:2:101","nodeType":"YulIdentifier","src":"9397:2:101"},"nativeSrc":"9397:16:101","nodeType":"YulFunctionCall","src":"9397:16:101"}],"functionName":{"name":"and","nativeSrc":"9379:3:101","nodeType":"YulIdentifier","src":"9379:3:101"},"nativeSrc":"9379:35:101","nodeType":"YulFunctionCall","src":"9379:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9435:4:101","nodeType":"YulIdentifier","src":"9435:4:101"},{"kind":"number","nativeSrc":"9441:3:101","nodeType":"YulLiteral","src":"9441:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9432:2:101","nodeType":"YulIdentifier","src":"9432:2:101"},"nativeSrc":"9432:13:101","nodeType":"YulFunctionCall","src":"9432:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9450:8:101","nodeType":"YulIdentifier","src":"9450:8:101"},{"kind":"number","nativeSrc":"9460:2:101","nodeType":"YulLiteral","src":"9460:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9447:2:101","nodeType":"YulIdentifier","src":"9447:2:101"},"nativeSrc":"9447:16:101","nodeType":"YulFunctionCall","src":"9447:16:101"}],"functionName":{"name":"and","nativeSrc":"9428:3:101","nodeType":"YulIdentifier","src":"9428:3:101"},"nativeSrc":"9428:36:101","nodeType":"YulFunctionCall","src":"9428:36:101"}],"functionName":{"name":"or","nativeSrc":"9363:2:101","nodeType":"YulIdentifier","src":"9363:2:101"},"nativeSrc":"9363:111:101","nodeType":"YulFunctionCall","src":"9363:111:101"},"nativeSrc":"9360:246:101","nodeType":"YulIf","src":"9360:246:101"},{"nativeSrc":"9616:57:101","nodeType":"YulAssignment","src":"9616:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9650:1:101","nodeType":"YulLiteral","src":"9650:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9653:4:101","nodeType":"YulIdentifier","src":"9653:4:101"},{"name":"exponent","nativeSrc":"9659:8:101","nodeType":"YulIdentifier","src":"9659:8:101"},{"name":"max","nativeSrc":"9669:3:101","nodeType":"YulIdentifier","src":"9669:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9631:18:101","nodeType":"YulIdentifier","src":"9631:18:101"},"nativeSrc":"9631:42:101","nodeType":"YulFunctionCall","src":"9631:42:101"},"variableNames":[{"name":"power","nativeSrc":"9616:5:101","nodeType":"YulIdentifier","src":"9616:5:101"},{"name":"base","nativeSrc":"9623:4:101","nodeType":"YulIdentifier","src":"9623:4:101"}]},{"body":{"nativeSrc":"9712:22:101","nodeType":"YulBlock","src":"9712:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9714:16:101","nodeType":"YulIdentifier","src":"9714:16:101"},"nativeSrc":"9714:18:101","nodeType":"YulFunctionCall","src":"9714:18:101"},"nativeSrc":"9714:18:101","nodeType":"YulExpressionStatement","src":"9714:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9689:5:101","nodeType":"YulIdentifier","src":"9689:5:101"},{"arguments":[{"name":"max","nativeSrc":"9700:3:101","nodeType":"YulIdentifier","src":"9700:3:101"},{"name":"base","nativeSrc":"9705:4:101","nodeType":"YulIdentifier","src":"9705:4:101"}],"functionName":{"name":"div","nativeSrc":"9696:3:101","nodeType":"YulIdentifier","src":"9696:3:101"},"nativeSrc":"9696:14:101","nodeType":"YulFunctionCall","src":"9696:14:101"}],"functionName":{"name":"gt","nativeSrc":"9686:2:101","nodeType":"YulIdentifier","src":"9686:2:101"},"nativeSrc":"9686:25:101","nodeType":"YulFunctionCall","src":"9686:25:101"},"nativeSrc":"9683:51:101","nodeType":"YulIf","src":"9683:51:101"},{"nativeSrc":"9743:25:101","nodeType":"YulAssignment","src":"9743:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9756:5:101","nodeType":"YulIdentifier","src":"9756:5:101"},{"name":"base","nativeSrc":"9763:4:101","nodeType":"YulIdentifier","src":"9763:4:101"}],"functionName":{"name":"mul","nativeSrc":"9752:3:101","nodeType":"YulIdentifier","src":"9752:3:101"},"nativeSrc":"9752:16:101","nodeType":"YulFunctionCall","src":"9752:16:101"},"variableNames":[{"name":"power","nativeSrc":"9743:5:101","nodeType":"YulIdentifier","src":"9743:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8701:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8731:4:101","nodeType":"YulTypedName","src":"8731:4:101","type":""},{"name":"exponent","nativeSrc":"8737:8:101","nodeType":"YulTypedName","src":"8737:8:101","type":""},{"name":"max","nativeSrc":"8747:3:101","nodeType":"YulTypedName","src":"8747:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8755:5:101","nodeType":"YulTypedName","src":"8755:5:101","type":""}],"src":"8701:1073:101"},{"body":{"nativeSrc":"9846:219:101","nodeType":"YulBlock","src":"9846:219:101","statements":[{"nativeSrc":"9856:31:101","nodeType":"YulAssignment","src":"9856:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9882:4:101","nodeType":"YulIdentifier","src":"9882:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9864:17:101","nodeType":"YulIdentifier","src":"9864:17:101"},"nativeSrc":"9864:23:101","nodeType":"YulFunctionCall","src":"9864:23:101"},"variableNames":[{"name":"base","nativeSrc":"9856:4:101","nodeType":"YulIdentifier","src":"9856:4:101"}]},{"nativeSrc":"9896:39:101","nodeType":"YulAssignment","src":"9896:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9926:8:101","nodeType":"YulIdentifier","src":"9926:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9908:17:101","nodeType":"YulIdentifier","src":"9908:17:101"},"nativeSrc":"9908:27:101","nodeType":"YulFunctionCall","src":"9908:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9896:8:101","nodeType":"YulIdentifier","src":"9896:8:101"}]},{"nativeSrc":"9945:113:101","nodeType":"YulAssignment","src":"9945:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9975:4:101","nodeType":"YulIdentifier","src":"9975:4:101"},{"name":"exponent","nativeSrc":"9981:8:101","nodeType":"YulIdentifier","src":"9981:8:101"},{"kind":"number","nativeSrc":"9991:66:101","nodeType":"YulLiteral","src":"9991:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9954:20:101","nodeType":"YulIdentifier","src":"9954:20:101"},"nativeSrc":"9954:104:101","nodeType":"YulFunctionCall","src":"9954:104:101"},"variableNames":[{"name":"power","nativeSrc":"9945:5:101","nodeType":"YulIdentifier","src":"9945:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9780:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9821:4:101","nodeType":"YulTypedName","src":"9821:4:101","type":""},{"name":"exponent","nativeSrc":"9827:8:101","nodeType":"YulTypedName","src":"9827:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9840:5:101","nodeType":"YulTypedName","src":"9840:5:101","type":""}],"src":"9780:285:101"},{"body":{"nativeSrc":"10130:40:101","nodeType":"YulBlock","src":"10130:40:101","statements":[{"nativeSrc":"10141:22:101","nodeType":"YulAssignment","src":"10141:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10157:5:101","nodeType":"YulIdentifier","src":"10157:5:101"}],"functionName":{"name":"mload","nativeSrc":"10151:5:101","nodeType":"YulIdentifier","src":"10151:5:101"},"nativeSrc":"10151:12:101","nodeType":"YulFunctionCall","src":"10151:12:101"},"variableNames":[{"name":"length","nativeSrc":"10141:6:101","nodeType":"YulIdentifier","src":"10141:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10071:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10113:5:101","nodeType":"YulTypedName","src":"10113:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10123:6:101","nodeType":"YulTypedName","src":"10123:6:101","type":""}],"src":"10071:99:101"},{"body":{"nativeSrc":"10272:73:101","nodeType":"YulBlock","src":"10272:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10289:3:101","nodeType":"YulIdentifier","src":"10289:3:101"},{"name":"length","nativeSrc":"10294:6:101","nodeType":"YulIdentifier","src":"10294:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10282:6:101","nodeType":"YulIdentifier","src":"10282:6:101"},"nativeSrc":"10282:19:101","nodeType":"YulFunctionCall","src":"10282:19:101"},"nativeSrc":"10282:19:101","nodeType":"YulExpressionStatement","src":"10282:19:101"},{"nativeSrc":"10310:29:101","nodeType":"YulAssignment","src":"10310:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10329:3:101","nodeType":"YulIdentifier","src":"10329:3:101"},{"kind":"number","nativeSrc":"10334:4:101","nodeType":"YulLiteral","src":"10334:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10325:3:101","nodeType":"YulIdentifier","src":"10325:3:101"},"nativeSrc":"10325:14:101","nodeType":"YulFunctionCall","src":"10325:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10310:11:101","nodeType":"YulIdentifier","src":"10310:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10176:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10244:3:101","nodeType":"YulTypedName","src":"10244:3:101","type":""},{"name":"length","nativeSrc":"10249:6:101","nodeType":"YulTypedName","src":"10249:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10260:11:101","nodeType":"YulTypedName","src":"10260:11:101","type":""}],"src":"10176:169:101"},{"body":{"nativeSrc":"10413:77:101","nodeType":"YulBlock","src":"10413:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10430:3:101","nodeType":"YulIdentifier","src":"10430:3:101"},{"name":"src","nativeSrc":"10435:3:101","nodeType":"YulIdentifier","src":"10435:3:101"},{"name":"length","nativeSrc":"10440:6:101","nodeType":"YulIdentifier","src":"10440:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10424:5:101","nodeType":"YulIdentifier","src":"10424:5:101"},"nativeSrc":"10424:23:101","nodeType":"YulFunctionCall","src":"10424:23:101"},"nativeSrc":"10424:23:101","nodeType":"YulExpressionStatement","src":"10424:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10467:3:101","nodeType":"YulIdentifier","src":"10467:3:101"},{"name":"length","nativeSrc":"10472:6:101","nodeType":"YulIdentifier","src":"10472:6:101"}],"functionName":{"name":"add","nativeSrc":"10463:3:101","nodeType":"YulIdentifier","src":"10463:3:101"},"nativeSrc":"10463:16:101","nodeType":"YulFunctionCall","src":"10463:16:101"},{"kind":"number","nativeSrc":"10481:1:101","nodeType":"YulLiteral","src":"10481:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10456:6:101","nodeType":"YulIdentifier","src":"10456:6:101"},"nativeSrc":"10456:27:101","nodeType":"YulFunctionCall","src":"10456:27:101"},"nativeSrc":"10456:27:101","nodeType":"YulExpressionStatement","src":"10456:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10351:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10395:3:101","nodeType":"YulTypedName","src":"10395:3:101","type":""},{"name":"dst","nativeSrc":"10400:3:101","nodeType":"YulTypedName","src":"10400:3:101","type":""},{"name":"length","nativeSrc":"10405:6:101","nodeType":"YulTypedName","src":"10405:6:101","type":""}],"src":"10351:139:101"},{"body":{"nativeSrc":"10544:54:101","nodeType":"YulBlock","src":"10544:54:101","statements":[{"nativeSrc":"10554:38:101","nodeType":"YulAssignment","src":"10554:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10572:5:101","nodeType":"YulIdentifier","src":"10572:5:101"},{"kind":"number","nativeSrc":"10579:2:101","nodeType":"YulLiteral","src":"10579:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10568:3:101","nodeType":"YulIdentifier","src":"10568:3:101"},"nativeSrc":"10568:14:101","nodeType":"YulFunctionCall","src":"10568:14:101"},{"arguments":[{"kind":"number","nativeSrc":"10588:2:101","nodeType":"YulLiteral","src":"10588:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10584:3:101","nodeType":"YulIdentifier","src":"10584:3:101"},"nativeSrc":"10584:7:101","nodeType":"YulFunctionCall","src":"10584:7:101"}],"functionName":{"name":"and","nativeSrc":"10564:3:101","nodeType":"YulIdentifier","src":"10564:3:101"},"nativeSrc":"10564:28:101","nodeType":"YulFunctionCall","src":"10564:28:101"},"variableNames":[{"name":"result","nativeSrc":"10554:6:101","nodeType":"YulIdentifier","src":"10554:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"10496:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10527:5:101","nodeType":"YulTypedName","src":"10527:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10537:6:101","nodeType":"YulTypedName","src":"10537:6:101","type":""}],"src":"10496:102:101"},{"body":{"nativeSrc":"10696:285:101","nodeType":"YulBlock","src":"10696:285:101","statements":[{"nativeSrc":"10706:53:101","nodeType":"YulVariableDeclaration","src":"10706:53:101","value":{"arguments":[{"name":"value","nativeSrc":"10753:5:101","nodeType":"YulIdentifier","src":"10753:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"10720:32:101","nodeType":"YulIdentifier","src":"10720:32:101"},"nativeSrc":"10720:39:101","nodeType":"YulFunctionCall","src":"10720:39:101"},"variables":[{"name":"length","nativeSrc":"10710:6:101","nodeType":"YulTypedName","src":"10710:6:101","type":""}]},{"nativeSrc":"10768:78:101","nodeType":"YulAssignment","src":"10768:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"10834:3:101","nodeType":"YulIdentifier","src":"10834:3:101"},{"name":"length","nativeSrc":"10839:6:101","nodeType":"YulIdentifier","src":"10839:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10775:58:101","nodeType":"YulIdentifier","src":"10775:58:101"},"nativeSrc":"10775:71:101","nodeType":"YulFunctionCall","src":"10775:71:101"},"variableNames":[{"name":"pos","nativeSrc":"10768:3:101","nodeType":"YulIdentifier","src":"10768:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10894:5:101","nodeType":"YulIdentifier","src":"10894:5:101"},{"kind":"number","nativeSrc":"10901:4:101","nodeType":"YulLiteral","src":"10901:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10890:3:101","nodeType":"YulIdentifier","src":"10890:3:101"},"nativeSrc":"10890:16:101","nodeType":"YulFunctionCall","src":"10890:16:101"},{"name":"pos","nativeSrc":"10908:3:101","nodeType":"YulIdentifier","src":"10908:3:101"},{"name":"length","nativeSrc":"10913:6:101","nodeType":"YulIdentifier","src":"10913:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10855:34:101","nodeType":"YulIdentifier","src":"10855:34:101"},"nativeSrc":"10855:65:101","nodeType":"YulFunctionCall","src":"10855:65:101"},"nativeSrc":"10855:65:101","nodeType":"YulExpressionStatement","src":"10855:65:101"},{"nativeSrc":"10929:46:101","nodeType":"YulAssignment","src":"10929:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"10940:3:101","nodeType":"YulIdentifier","src":"10940:3:101"},{"arguments":[{"name":"length","nativeSrc":"10967:6:101","nodeType":"YulIdentifier","src":"10967:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10945:21:101","nodeType":"YulIdentifier","src":"10945:21:101"},"nativeSrc":"10945:29:101","nodeType":"YulFunctionCall","src":"10945:29:101"}],"functionName":{"name":"add","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},"nativeSrc":"10936:39:101","nodeType":"YulFunctionCall","src":"10936:39:101"},"variableNames":[{"name":"end","nativeSrc":"10929:3:101","nodeType":"YulIdentifier","src":"10929:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10604:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10677:5:101","nodeType":"YulTypedName","src":"10677:5:101","type":""},{"name":"pos","nativeSrc":"10684:3:101","nodeType":"YulTypedName","src":"10684:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10692:3:101","nodeType":"YulTypedName","src":"10692:3:101","type":""}],"src":"10604:377:101"},{"body":{"nativeSrc":"11133:277:101","nodeType":"YulBlock","src":"11133:277:101","statements":[{"nativeSrc":"11143:26:101","nodeType":"YulAssignment","src":"11143:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11155:9:101","nodeType":"YulIdentifier","src":"11155:9:101"},{"kind":"number","nativeSrc":"11166:2:101","nodeType":"YulLiteral","src":"11166:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11151:3:101","nodeType":"YulIdentifier","src":"11151:3:101"},"nativeSrc":"11151:18:101","nodeType":"YulFunctionCall","src":"11151:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11223:6:101","nodeType":"YulIdentifier","src":"11223:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11236:9:101","nodeType":"YulIdentifier","src":"11236:9:101"},{"kind":"number","nativeSrc":"11247:1:101","nodeType":"YulLiteral","src":"11247:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11232:3:101","nodeType":"YulIdentifier","src":"11232:3:101"},"nativeSrc":"11232:17:101","nodeType":"YulFunctionCall","src":"11232:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11179:43:101","nodeType":"YulIdentifier","src":"11179:43:101"},"nativeSrc":"11179:71:101","nodeType":"YulFunctionCall","src":"11179:71:101"},"nativeSrc":"11179:71:101","nodeType":"YulExpressionStatement","src":"11179:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11271:9:101","nodeType":"YulIdentifier","src":"11271:9:101"},{"kind":"number","nativeSrc":"11282:2:101","nodeType":"YulLiteral","src":"11282:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11267:3:101","nodeType":"YulIdentifier","src":"11267:3:101"},"nativeSrc":"11267:18:101","nodeType":"YulFunctionCall","src":"11267:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11291:4:101","nodeType":"YulIdentifier","src":"11291:4:101"},{"name":"headStart","nativeSrc":"11297:9:101","nodeType":"YulIdentifier","src":"11297:9:101"}],"functionName":{"name":"sub","nativeSrc":"11287:3:101","nodeType":"YulIdentifier","src":"11287:3:101"},"nativeSrc":"11287:20:101","nodeType":"YulFunctionCall","src":"11287:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11260:6:101","nodeType":"YulIdentifier","src":"11260:6:101"},"nativeSrc":"11260:48:101","nodeType":"YulFunctionCall","src":"11260:48:101"},"nativeSrc":"11260:48:101","nodeType":"YulExpressionStatement","src":"11260:48:101"},{"nativeSrc":"11317:86:101","nodeType":"YulAssignment","src":"11317:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11389:6:101","nodeType":"YulIdentifier","src":"11389:6:101"},{"name":"tail","nativeSrc":"11398:4:101","nodeType":"YulIdentifier","src":"11398:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11325:63:101","nodeType":"YulIdentifier","src":"11325:63:101"},"nativeSrc":"11325:78:101","nodeType":"YulFunctionCall","src":"11325:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11317:4:101","nodeType":"YulIdentifier","src":"11317:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10987:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11097:9:101","nodeType":"YulTypedName","src":"11097:9:101","type":""},{"name":"value1","nativeSrc":"11109:6:101","nodeType":"YulTypedName","src":"11109:6:101","type":""},{"name":"value0","nativeSrc":"11117:6:101","nodeType":"YulTypedName","src":"11117:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11128:4:101","nodeType":"YulTypedName","src":"11128:4:101","type":""}],"src":"10987:423:101"},{"body":{"nativeSrc":"11456:76:101","nodeType":"YulBlock","src":"11456:76:101","statements":[{"body":{"nativeSrc":"11510:16:101","nodeType":"YulBlock","src":"11510:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11519:1:101","nodeType":"YulLiteral","src":"11519:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"11522:1:101","nodeType":"YulLiteral","src":"11522:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11512:6:101","nodeType":"YulIdentifier","src":"11512:6:101"},"nativeSrc":"11512:12:101","nodeType":"YulFunctionCall","src":"11512:12:101"},"nativeSrc":"11512:12:101","nodeType":"YulExpressionStatement","src":"11512:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11479:5:101","nodeType":"YulIdentifier","src":"11479:5:101"},{"arguments":[{"name":"value","nativeSrc":"11501:5:101","nodeType":"YulIdentifier","src":"11501:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"11486:14:101","nodeType":"YulIdentifier","src":"11486:14:101"},"nativeSrc":"11486:21:101","nodeType":"YulFunctionCall","src":"11486:21:101"}],"functionName":{"name":"eq","nativeSrc":"11476:2:101","nodeType":"YulIdentifier","src":"11476:2:101"},"nativeSrc":"11476:32:101","nodeType":"YulFunctionCall","src":"11476:32:101"}],"functionName":{"name":"iszero","nativeSrc":"11469:6:101","nodeType":"YulIdentifier","src":"11469:6:101"},"nativeSrc":"11469:40:101","nodeType":"YulFunctionCall","src":"11469:40:101"},"nativeSrc":"11466:60:101","nodeType":"YulIf","src":"11466:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11416:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11449:5:101","nodeType":"YulTypedName","src":"11449:5:101","type":""}],"src":"11416:116:101"},{"body":{"nativeSrc":"11598:77:101","nodeType":"YulBlock","src":"11598:77:101","statements":[{"nativeSrc":"11608:22:101","nodeType":"YulAssignment","src":"11608:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"11623:6:101","nodeType":"YulIdentifier","src":"11623:6:101"}],"functionName":{"name":"mload","nativeSrc":"11617:5:101","nodeType":"YulIdentifier","src":"11617:5:101"},"nativeSrc":"11617:13:101","nodeType":"YulFunctionCall","src":"11617:13:101"},"variableNames":[{"name":"value","nativeSrc":"11608:5:101","nodeType":"YulIdentifier","src":"11608:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11663:5:101","nodeType":"YulIdentifier","src":"11663:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"11639:23:101","nodeType":"YulIdentifier","src":"11639:23:101"},"nativeSrc":"11639:30:101","nodeType":"YulFunctionCall","src":"11639:30:101"},"nativeSrc":"11639:30:101","nodeType":"YulExpressionStatement","src":"11639:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11538:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11576:6:101","nodeType":"YulTypedName","src":"11576:6:101","type":""},{"name":"end","nativeSrc":"11584:3:101","nodeType":"YulTypedName","src":"11584:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11592:5:101","nodeType":"YulTypedName","src":"11592:5:101","type":""}],"src":"11538:137:101"},{"body":{"nativeSrc":"11755:271:101","nodeType":"YulBlock","src":"11755:271:101","statements":[{"body":{"nativeSrc":"11801:83:101","nodeType":"YulBlock","src":"11801:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11803:77:101","nodeType":"YulIdentifier","src":"11803:77:101"},"nativeSrc":"11803:79:101","nodeType":"YulFunctionCall","src":"11803:79:101"},"nativeSrc":"11803:79:101","nodeType":"YulExpressionStatement","src":"11803:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11776:7:101","nodeType":"YulIdentifier","src":"11776:7:101"},{"name":"headStart","nativeSrc":"11785:9:101","nodeType":"YulIdentifier","src":"11785:9:101"}],"functionName":{"name":"sub","nativeSrc":"11772:3:101","nodeType":"YulIdentifier","src":"11772:3:101"},"nativeSrc":"11772:23:101","nodeType":"YulFunctionCall","src":"11772:23:101"},{"kind":"number","nativeSrc":"11797:2:101","nodeType":"YulLiteral","src":"11797:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:32:101","nodeType":"YulFunctionCall","src":"11768:32:101"},"nativeSrc":"11765:119:101","nodeType":"YulIf","src":"11765:119:101"},{"nativeSrc":"11894:125:101","nodeType":"YulBlock","src":"11894:125:101","statements":[{"nativeSrc":"11909:15:101","nodeType":"YulVariableDeclaration","src":"11909:15:101","value":{"kind":"number","nativeSrc":"11923:1:101","nodeType":"YulLiteral","src":"11923:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11913:6:101","nodeType":"YulTypedName","src":"11913:6:101","type":""}]},{"nativeSrc":"11938:71:101","nodeType":"YulAssignment","src":"11938:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11981:9:101","nodeType":"YulIdentifier","src":"11981:9:101"},{"name":"offset","nativeSrc":"11992:6:101","nodeType":"YulIdentifier","src":"11992:6:101"}],"functionName":{"name":"add","nativeSrc":"11977:3:101","nodeType":"YulIdentifier","src":"11977:3:101"},"nativeSrc":"11977:22:101","nodeType":"YulFunctionCall","src":"11977:22:101"},{"name":"dataEnd","nativeSrc":"12001:7:101","nodeType":"YulIdentifier","src":"12001:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11948:28:101","nodeType":"YulIdentifier","src":"11948:28:101"},"nativeSrc":"11948:61:101","nodeType":"YulFunctionCall","src":"11948:61:101"},"variableNames":[{"name":"value0","nativeSrc":"11938:6:101","nodeType":"YulIdentifier","src":"11938:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"11681:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11725:9:101","nodeType":"YulTypedName","src":"11725:9:101","type":""},{"name":"dataEnd","nativeSrc":"11736:7:101","nodeType":"YulTypedName","src":"11736:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11748:6:101","nodeType":"YulTypedName","src":"11748:6:101","type":""}],"src":"11681:345:101"},{"body":{"nativeSrc":"12206:359:101","nodeType":"YulBlock","src":"12206:359:101","statements":[{"nativeSrc":"12216:26:101","nodeType":"YulAssignment","src":"12216:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12228:9:101","nodeType":"YulIdentifier","src":"12228:9:101"},{"kind":"number","nativeSrc":"12239:2:101","nodeType":"YulLiteral","src":"12239:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12224:3:101","nodeType":"YulIdentifier","src":"12224:3:101"},"nativeSrc":"12224:18:101","nodeType":"YulFunctionCall","src":"12224:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12216:4:101","nodeType":"YulIdentifier","src":"12216:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12296:6:101","nodeType":"YulIdentifier","src":"12296:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12309:9:101","nodeType":"YulIdentifier","src":"12309:9:101"},{"kind":"number","nativeSrc":"12320:1:101","nodeType":"YulLiteral","src":"12320:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12305:3:101","nodeType":"YulIdentifier","src":"12305:3:101"},"nativeSrc":"12305:17:101","nodeType":"YulFunctionCall","src":"12305:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12252:43:101","nodeType":"YulIdentifier","src":"12252:43:101"},"nativeSrc":"12252:71:101","nodeType":"YulFunctionCall","src":"12252:71:101"},"nativeSrc":"12252:71:101","nodeType":"YulExpressionStatement","src":"12252:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12377:6:101","nodeType":"YulIdentifier","src":"12377:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12390:9:101","nodeType":"YulIdentifier","src":"12390:9:101"},{"kind":"number","nativeSrc":"12401:2:101","nodeType":"YulLiteral","src":"12401:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12386:3:101","nodeType":"YulIdentifier","src":"12386:3:101"},"nativeSrc":"12386:18:101","nodeType":"YulFunctionCall","src":"12386:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12333:43:101","nodeType":"YulIdentifier","src":"12333:43:101"},"nativeSrc":"12333:72:101","nodeType":"YulFunctionCall","src":"12333:72:101"},"nativeSrc":"12333:72:101","nodeType":"YulExpressionStatement","src":"12333:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12426:9:101","nodeType":"YulIdentifier","src":"12426:9:101"},{"kind":"number","nativeSrc":"12437:2:101","nodeType":"YulLiteral","src":"12437:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:18:101","nodeType":"YulFunctionCall","src":"12422:18:101"},{"arguments":[{"name":"tail","nativeSrc":"12446:4:101","nodeType":"YulIdentifier","src":"12446:4:101"},{"name":"headStart","nativeSrc":"12452:9:101","nodeType":"YulIdentifier","src":"12452:9:101"}],"functionName":{"name":"sub","nativeSrc":"12442:3:101","nodeType":"YulIdentifier","src":"12442:3:101"},"nativeSrc":"12442:20:101","nodeType":"YulFunctionCall","src":"12442:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:48:101","nodeType":"YulFunctionCall","src":"12415:48:101"},"nativeSrc":"12415:48:101","nodeType":"YulExpressionStatement","src":"12415:48:101"},{"nativeSrc":"12472:86:101","nodeType":"YulAssignment","src":"12472:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"12544:6:101","nodeType":"YulIdentifier","src":"12544:6:101"},{"name":"tail","nativeSrc":"12553:4:101","nodeType":"YulIdentifier","src":"12553:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"12480:63:101","nodeType":"YulIdentifier","src":"12480:63:101"},"nativeSrc":"12480:78:101","nodeType":"YulFunctionCall","src":"12480:78:101"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:101","nodeType":"YulIdentifier","src":"12472:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12032:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12162:9:101","nodeType":"YulTypedName","src":"12162:9:101","type":""},{"name":"value2","nativeSrc":"12174:6:101","nodeType":"YulTypedName","src":"12174:6:101","type":""},{"name":"value1","nativeSrc":"12182:6:101","nodeType":"YulTypedName","src":"12182:6:101","type":""},{"name":"value0","nativeSrc":"12190:6:101","nodeType":"YulTypedName","src":"12190:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12201:4:101","nodeType":"YulTypedName","src":"12201:4:101","type":""}],"src":"12032:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6589":[{"length":32,"start":523},{"length":32,"start":678},{"length":32,"start":1713},{"length":32,"start":2097}],"6592":[{"length":32,"start":313},{"length":32,"start":1429},{"length":32,"start":1970}],"6596":[{"length":32,"start":590},{"length":32,"start":1384},{"length":32,"start":1923}],"6600":[{"length":32,"start":393},{"length":32,"start":2288}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063a9534f8a14610270578063abb856131461028b578063ac5a693e14610293578063bdf13af21461029b575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109a1565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109ce565b61011e60045481565b61011e61017f3660046109fd565b6102a3565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a40565b6101cb6101c6366004610a5f565b610354565b005b61011e60025481565b6101cb6101e4366004610a7d565b6103c5565b6101f1610499565b60405161012b9190610abf565b6101cb6104d4565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a7d565b610620565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61015b73bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b61011e610698565b61011e5f5481565b61011e610732565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102f657604051630f58058360e11b815260040160405180910390fd5b5f6102ff610698565b90506001545f0361031a576103138161077f565b9392505050565b5f610323610732565b90505f818311801561033457508115155b61033e5782610340565b815b905061034b8161077f565b95945050505050565b6103926040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108d7565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104036040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108d7565b5f546104136301e1338084610af5565b5f81905515801561042357505f82115b8061043757505f8054118015610437575081155b15610455576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161048a91906109a1565b60405180910390a45060015550565b5f6001545f036104a857505f90565b5f6104b1610732565b9050805f036104c1575f91505090565b5f6104ca610698565b9190911192915050565b6001546003546104e49042610b08565b10806104f05750600154155b156104f757565b5f610500610698565b90505f61050b610732565b905060045481831161051d578261051f565b815b6105299190610b1b565b6002819055426003555f0361055157604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105bd907f0000000000000000000000000000000000000000000000000000000000000000906004016109ce565b5f604051808303815f87803b1580156105d4575f80fd5b505af11580156105e6573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61065e6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108d7565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051636c58d43d60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c58d43d906106ee90670de0b6b3a7640000906004016109a1565b602060405180830381865afa158015610709573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072d9190610b39565b905090565b5f80600354426107429190610b08565b90505f670de0b6b3a7640000825f5460025461075e9190610b57565b6107689190610b57565b6107729190610af5565b6002546103139190610b1b565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107ed91906109ce565b602060405180830381865afa158015610808573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082c9190610b39565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b39190610b8a565b60ff1690506108c381600a610cb4565b6108cd8487610b57565b61034b9190610af5565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109279033908690600401610cfd565b602060405180830381865afa158015610942573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109669190610d30565b90508061099557333083604051634a3fa29360e01b815260040161098c93929190610d4e565b60405180910390fd5b5050565b805b82525050565b602081016109af8284610999565b92915050565b5f6001600160a01b0382166109af565b61099b816109b5565b602081016109af82846109c5565b6109e5816109b5565b81146109ef575f80fd5b50565b80356109af816109dc565b5f60208284031215610a1057610a105f80fd5b5f610a1b84846109f2565b949350505050565b5f6109af826109b5565b5f6109af82610a23565b61099b81610a2d565b602081016109af8284610a37565b806109e5565b80356109af81610a4e565b5f60208284031215610a7257610a725f80fd5b5f610a1b8484610a54565b5f8060408385031215610a9157610a915f80fd5b5f610a9c8585610a54565b9250506020610aad85828601610a54565b9150509250929050565b80151561099b565b602081016109af8284610ab7565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b0357610b03610acd565b500490565b818103818111156109af576109af610ae1565b808201808211156109af576109af610ae1565b80516109af81610a4e565b5f60208284031215610b4c57610b4c5f80fd5b5f610a1b8484610b2e565b818102808215838204851417610b6f57610b6f610ae1565b5092915050565b60ff81166109e5565b80516109af81610b76565b5f60208284031215610b9d57610b9d5f80fd5b5f610a1b8484610b7f565b80825b6001851115610be757808604811115610bc657610bc6610ae1565b6001851615610bd457908102905b8002610be08560011c90565b9450610bab565b94509492505050565b5f82610bfe57506001610313565b81610c0a57505f610313565b8160018114610c205760028114610c2a57610c57565b6001915050610313565b60ff841115610c3b57610c3b610ae1565b8360020a915084821115610c5157610c51610ae1565b50610313565b5060208310610133831016604e8410600b8410161715610c8a575081810a83811115610c8557610c85610ae1565b610313565b610c978484846001610ba8565b92509050818404811115610cad57610cad610ae1565b0292915050565b5f6103135f198484610bf0565b8281835e505f910152565b5f610cd5825190565b808452602084019350610cec818560208601610cc1565b601f01601f19169290920192915050565b60408101610d0b82856109c5565b8181036020830152610a1b8184610ccc565b8015156109e5565b80516109af81610d1d565b5f60208284031215610d4357610d435f80fd5b5f610a1b8484610d25565b60608101610d5c82866109c5565b610d6960208301856109c5565b818103604083015261034b8184610ccc56fea26469706673582212206094b5a8b8951c880aacc8b0a0290c028c1a554241002dd4eb69b2c9946d3d0364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x29B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9CE JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x9FD JUMP JUMPDEST PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA40 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA5F JUMP JUMPDEST PUSH2 0x354 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA7D JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x499 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xABF JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4D4 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA7D JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x15B PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x698 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x732 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2F6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2FF PUSH2 0x698 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x31A JUMPI PUSH2 0x313 DUP2 PUSH2 0x77F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x323 PUSH2 0x732 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x334 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x33E JUMPI DUP3 PUSH2 0x340 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x34B DUP2 PUSH2 0x77F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x392 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x403 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x413 PUSH4 0x1E13380 DUP5 PUSH2 0xAF5 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x423 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x437 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x437 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x455 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x48A SWAP2 SWAP1 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4A8 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4B1 PUSH2 0x732 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4C1 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4CA PUSH2 0x698 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4E4 SWAP1 TIMESTAMP PUSH2 0xB08 JUMP JUMPDEST LT DUP1 PUSH2 0x4F0 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4F7 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x500 PUSH2 0x698 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x50B PUSH2 0x732 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x51D JUMPI DUP3 PUSH2 0x51F JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x529 SWAP2 SWAP1 PUSH2 0xB1B JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x551 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5BD SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9CE JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5E6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x65E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6C58D43D PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6C58D43D SWAP1 PUSH2 0x6EE SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x709 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x72D SWAP2 SWAP1 PUSH2 0xB39 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x742 SWAP2 SWAP1 PUSH2 0xB08 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x75E SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x768 SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x772 SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x313 SWAP2 SWAP1 PUSH2 0xB1B JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP2 SWAP1 PUSH2 0x9CE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x808 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x82C SWAP2 SWAP1 PUSH2 0xB39 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x88F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8B3 SWAP2 SWAP1 PUSH2 0xB8A JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8C3 DUP2 PUSH1 0xA PUSH2 0xCB4 JUMP JUMPDEST PUSH2 0x8CD DUP5 DUP8 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x34B SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x927 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x942 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x966 SWAP2 SWAP1 PUSH2 0xD30 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x995 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x98C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0x999 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9AF JUMP JUMPDEST PUSH2 0x99B DUP2 PUSH2 0x9B5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0x9C5 JUMP JUMPDEST PUSH2 0x9E5 DUP2 PUSH2 0x9B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x9EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9AF DUP2 PUSH2 0x9DC JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA10 JUMPI PUSH2 0xA10 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0x9F2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9AF DUP3 PUSH2 0x9B5 JUMP JUMPDEST PUSH0 PUSH2 0x9AF DUP3 PUSH2 0xA23 JUMP JUMPDEST PUSH2 0x99B DUP2 PUSH2 0xA2D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0xA37 JUMP JUMPDEST DUP1 PUSH2 0x9E5 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9AF DUP2 PUSH2 0xA4E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA72 JUMPI PUSH2 0xA72 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xA54 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA91 JUMPI PUSH2 0xA91 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA9C DUP6 DUP6 PUSH2 0xA54 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAAD DUP6 DUP3 DUP7 ADD PUSH2 0xA54 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x99B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9AF DUP3 DUP5 PUSH2 0xAB7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB03 JUMPI PUSH2 0xB03 PUSH2 0xACD JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xAE1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xAE1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9AF DUP2 PUSH2 0xA4E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB4C JUMPI PUSH2 0xB4C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xB2E JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB6F JUMPI PUSH2 0xB6F PUSH2 0xAE1 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9E5 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9AF DUP2 PUSH2 0xB76 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB9D JUMPI PUSH2 0xB9D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xB7F JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBE7 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBC6 JUMPI PUSH2 0xBC6 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBD4 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBE0 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBAB JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBFE JUMPI POP PUSH1 0x1 PUSH2 0x313 JUMP JUMPDEST DUP2 PUSH2 0xC0A JUMPI POP PUSH0 PUSH2 0x313 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC20 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC2A JUMPI PUSH2 0xC57 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x313 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC3B JUMPI PUSH2 0xC3B PUSH2 0xAE1 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC51 JUMPI PUSH2 0xC51 PUSH2 0xAE1 JUMP JUMPDEST POP PUSH2 0x313 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC8A JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC85 JUMPI PUSH2 0xC85 PUSH2 0xAE1 JUMP JUMPDEST PUSH2 0x313 JUMP JUMPDEST PUSH2 0xC97 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBA8 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCAD JUMPI PUSH2 0xCAD PUSH2 0xAE1 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x313 PUSH0 NOT DUP5 DUP5 PUSH2 0xBF0 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCD5 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCEC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD0B DUP3 DUP6 PUSH2 0x9C5 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA1B DUP2 DUP5 PUSH2 0xCCC JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9E5 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9AF DUP2 PUSH2 0xD1D JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD43 JUMPI PUSH2 0xD43 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA1B DUP5 DUP5 PUSH2 0xD25 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD5C DUP3 DUP7 PUSH2 0x9C5 JUMP JUMPDEST PUSH2 0xD69 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9C5 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x34B DUP2 DUP5 PUSH2 0xCCC JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x94 0xB5 0xA8 0xB8 SWAP6 SHR DUP9 EXP 0xAC 0xC8 0xB0 LOG0 0x29 0xC MUL DUP13 BYTE SSTORE TIMESTAMP COINBASE STOP 0x2D 0xD4 0xEB PUSH10 0xB2C9946D3D0364736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"392:1177:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;506:86:46;;550:42;506:86;;1422:145;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1422:145:46:-;1509:51;;-1:-1:-1;;;1509:51:46;;1483:7;;-1:-1:-1;;;;;1518:16:46;1509:40;;;;:51;;186:4:17;;1509:51:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1502:58;;1422:145;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;392:1177:46;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;392:1177:46;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;392:1177:46;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5143:180::-;-1:-1:-1;;;5188:1:101;5181:88;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5329:180;-1:-1:-1;;;5374:1:101;5367:88;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5515:185;5555:1;5645;5635:35;;5650:18;;:::i;:::-;-1:-1:-1;5685:9:101;;5515:185::o;5706:194::-;5837:9;;;5859:11;;;5856:37;;;5873:18;;:::i;5906:191::-;6035:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6103:143::-;6185:13;;6207:33;6185:13;6207:33;:::i;6252:351::-;6322:6;6371:2;6359:9;6350:7;6346:23;6342:32;6339:119;;;6377:79;392:1177:46;;;6377:79:101;6497:1;6522:64;6578:7;6558:9;6522:64;:::i;6609:410::-;6754:9;;;;6916;;6949:15;;;6943:22;;6896:83;6873:139;;6992:18;;:::i;:::-;6657:362;6609:410;;;;:::o;7117:118::-;7100:4;7089:16;;7188:22;7025:86;7241:139;7321:13;;7343:31;7321:13;7343:31;:::i;7386:347::-;7454:6;7503:2;7491:9;7482:7;7478:23;7474:32;7471:119;;;7509:79;392:1177:46;;;7509:79:101;7629:1;7654:62;7708:7;7688:9;7654:62;:::i;7847:848::-;7939:6;7963:5;7977:712;7998:1;7988:8;7985:15;7977:712;;;8093:4;8088:3;8084:14;8078:4;8075:24;8072:50;;;8102:18;;:::i;:::-;8152:1;8142:8;8138:16;8135:451;;;8556:16;;;;8135:451;8607:15;;8647:32;8670:8;7825:1;7821:13;;7739:102;8647:32;8635:44;;7977:712;;;7847:848;;;;;;;:::o;8701:1073::-;8755:5;8946:8;8936:40;;-1:-1:-1;8967:1:101;8969:5;;8936:40;8995:4;8985:36;;-1:-1:-1;9012:1:101;9014:5;;8985:36;9081:4;9129:1;9124:27;;;;9165:1;9160:191;;;;9074:277;;9124:27;9142:1;9133:10;;9144:5;;;9160:191;9205:3;9195:8;9192:17;9189:43;;;9212:18;;:::i;:::-;9261:8;9258:1;9254:16;9245:25;;9296:3;9289:5;9286:14;9283:40;;;9303:18;;:::i;:::-;9336:5;;;9074:277;;9460:2;9450:8;9447:16;9441:3;9435:4;9432:13;9428:36;9410:2;9400:8;9397:16;9392:2;9386:4;9383:12;9379:35;9363:111;9360:246;;;-1:-1:-1;9506:19:101;;;9541:14;;;9538:40;;;9558:18;;:::i;:::-;9591:5;;9360:246;9631:42;9669:3;9659:8;9653:4;9650:1;9631:42;:::i;:::-;9616:57;;;;9705:4;9700:3;9696:14;9689:5;9686:25;9683:51;;;9714:18;;:::i;:::-;9752:16;;8701:1073;-1:-1:-1;;8701:1073:101:o;9780:285::-;9840:5;9954:104;-1:-1:-1;;9981:8:101;9975:4;9954:104;:::i;10351:139::-;10440:6;10435:3;10430;10424:23;-1:-1:-1;10481:1:101;10463:16;;10456:27;10351:139::o;10604:377::-;10692:3;10720:39;10753:5;10151:12;;10071:99;10720:39;10282:19;;;10334:4;10325:14;;10768:78;;10855:65;10913:6;10908:3;10901:4;10894:5;10890:16;10855:65;:::i;:::-;10588:2;10568:14;-1:-1:-1;;10564:28:101;10936:39;;;;;;-1:-1:-1;;10604:377:101:o;10987:423::-;11166:2;11151:18;;11179:71;11155:9;11223:6;11179:71;:::i;:::-;11297:9;11291:4;11287:20;11282:2;11271:9;11267:18;11260:48;11325:78;11398:4;11389:6;11325:78;:::i;11416:116::-;4124:13;;4117:21;11486;4054:90;11538:137;11617:13;;11639:30;11617:13;11639:30;:::i;11681:345::-;11748:6;11797:2;11785:9;11776:7;11772:23;11768:32;11765:119;;;11803:79;392:1177:46;;;11803:79:101;11923:1;11948:61;12001:7;11981:9;11948:61;:::i;12032:533::-;12239:2;12224:18;;12252:71;12228:9;12296:6;12252:71;:::i;:::-;12333:72;12401:2;12390:9;12386:18;12377:6;12333:72;:::i;:::-;12452:9;12446:4;12442:20;12437:2;12426:9;12422:18;12415:48;12480:78;12553:4;12544:6;12480:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"701000","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","NATIVE_TOKEN_ADDR()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2449","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","NATIVE_TOKEN_ADDR()":"a9534f8a","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ankrBNB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount The amount of BNB for ankrBNB\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"AnkrBNBOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"NATIVE_TOKEN_ADDR()\":{\"notice\":\"This is used as token address of BNB on BSC\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of BNB for 1 ankrBNB\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of ankrBNB asset\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/AnkrBNBOracle.sol\":\"AnkrBNBOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IAnkrBNB.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAnkrBNB {\\n    function sharesToBonds(uint256 amount) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x4e04d3cae00fc38b1f754cff9aa4054deea6e8a4d3fe80a1d8f0a54bbe73342e\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/AnkrBNBOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IAnkrBNB } from \\\"../interfaces/IAnkrBNB.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\n\\n/**\\n * @title AnkrBNBOracle\\n * @author Venus\\n * @notice This oracle fetches the price of ankrBNB asset\\n */\\ncontract AnkrBNBOracle is CorrelatedTokenOracle {\\n    /// @notice This is used as token address of BNB on BSC\\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address ankrBNB,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            ankrBNB,\\n            NATIVE_TOKEN_ADDR,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {}\\n\\n    /**\\n     * @notice Fetches the amount of BNB for 1 ankrBNB\\n     * @return amount The amount of BNB for ankrBNB\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return IAnkrBNB(CORRELATED_TOKEN).sharesToBonds(EXP_SCALE);\\n    }\\n}\\n\",\"keccak256\":\"0x9fc598489b63ab8ece375615b743117d50851ab5c5c22aee1f55d167797b877f\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/AnkrBNBOracle.sol:AnkrBNBOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/AnkrBNBOracle.sol:AnkrBNBOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/AnkrBNBOracle.sol:AnkrBNBOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/AnkrBNBOracle.sol:AnkrBNBOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/AnkrBNBOracle.sol:AnkrBNBOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"NATIVE_TOKEN_ADDR()":{"notice":"This is used as token address of BNB on BSC"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of BNB for 1 ankrBNB"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of ankrBNB asset","version":1}}},"contracts/oracles/AsBNBOracle.sol":{"AsBNBOracle":{"abi":[{"inputs":[{"internalType":"address","name":"asBNB","type":"address"},{"internalType":"address","name":"slisBNB","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"price The amount of slisBNB for asBNB"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"asBNBOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_3887":{"entryPoint":null,"id":3887,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":288,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":367,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":395,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":607,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":330,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":587,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":348,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":378,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610100604052348015610010575f80fd5b506040516110f53803806110f583398101604081905261002f9161018b565b8888888888888888886100466301e133808761025f565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610120565b6100ce88610120565b6100d787610120565b6100e082610120565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05250610272975050505050505050565b6001600160a01b038116610147576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101658161014a565b8114610147575f80fd5b80516101568161015c565b80610165565b80516101568161017a565b5f805f805f805f805f6101208a8c0312156101a7576101a75f80fd5b5f6101b28c8c61016f565b99505060206101c38c828d0161016f565b98505060406101d48c828d0161016f565b97505060606101e58c828d01610180565b96505060806101f68c828d01610180565b95505060a06102078c828d01610180565b94505060c06102188c828d01610180565b93505060e06102298c828d0161016f565b92505061010061023b8c828d01610180565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261026d5761026d61024b565b500490565b60805160a05160c05160e051610e186102dd5f395f818161017e015261092e01525f81816102430152818161054201526107c101525f818161012e0152818161056f01526107f001525f81816102000152818161028001528181610676015261086f0152610e185ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b60405161012091906109df565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a0c565b61011360045481565b610113610174366004610a3b565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a7e565b6101c06101bb366004610a9d565b61032e565b005b61011360025481565b6101c06101d9366004610abb565b61039f565b6101e6610473565b6040516101209190610afd565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610abb565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b610113610770565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed816107bd565b9392505050565b5f6102fd610770565b90505f818311801561030e57508115155b610318578261031a565b815b9050610325816107bd565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610915565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610915565b5f546103ed6301e1338084610b33565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161046491906109df565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b610770565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610b46565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e5610770565b90506004548183116104f757826104f9565b815b6105039190610b59565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f000000000000000000000000000000000000000000000000000000000000000090600401610a0c565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610915565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f49190610b77565b6040516342c8312b60e11b81529091506001600160a01b0382169063859062569061072b90670de0b6b3a7640000906004016109df565b602060405180830381865afa158015610746573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076a9190610ba0565b91505090565b5f80600354426107809190610b46565b90505f670de0b6b3a7640000825f5460025461079c9190610bbe565b6107a69190610bbe565b6107b09190610b33565b6002546102ed9190610b59565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161082b9190610a0c565b602060405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086a9190610ba0565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190610bf1565b60ff16905061090181600a610d1b565b61090b8487610bbe565b6103259190610b33565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109659033908690600401610d64565b602060405180830381865afa158015610980573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a49190610d97565b9050806109d357333083604051634a3fa29360e01b81526004016109ca93929190610db5565b60405180910390fd5b5050565b805b82525050565b602081016109ed82846109d7565b92915050565b5f6001600160a01b0382166109ed565b6109d9816109f3565b602081016109ed8284610a03565b610a23816109f3565b8114610a2d575f80fd5b50565b80356109ed81610a1a565b5f60208284031215610a4e57610a4e5f80fd5b5f610a598484610a30565b949350505050565b5f6109ed826109f3565b5f6109ed82610a61565b6109d981610a6b565b602081016109ed8284610a75565b80610a23565b80356109ed81610a8c565b5f60208284031215610ab057610ab05f80fd5b5f610a598484610a92565b5f8060408385031215610acf57610acf5f80fd5b5f610ada8585610a92565b9250506020610aeb85828601610a92565b9150509250929050565b8015156109d9565b602081016109ed8284610af5565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b4157610b41610b0b565b500490565b818103818111156109ed576109ed610b1f565b808201808211156109ed576109ed610b1f565b80516109ed81610a1a565b5f60208284031215610b8a57610b8a5f80fd5b5f610a598484610b6c565b80516109ed81610a8c565b5f60208284031215610bb357610bb35f80fd5b5f610a598484610b95565b818102808215838204851417610bd657610bd6610b1f565b5092915050565b60ff8116610a23565b80516109ed81610bdd565b5f60208284031215610c0457610c045f80fd5b5f610a598484610be6565b80825b6001851115610c4e57808604811115610c2d57610c2d610b1f565b6001851615610c3b57908102905b8002610c478560011c90565b9450610c12565b94509492505050565b5f82610c65575060016102ed565b81610c7157505f6102ed565b8160018114610c875760028114610c9157610cbe565b60019150506102ed565b60ff841115610ca257610ca2610b1f565b8360020a915084821115610cb857610cb8610b1f565b506102ed565b5060208310610133831016604e8410600b8410161715610cf1575081810a83811115610cec57610cec610b1f565b6102ed565b610cfe8484846001610c0f565b92509050818404811115610d1457610d14610b1f565b0292915050565b5f6102ed5f198484610c57565b8281835e505f910152565b5f610d3c825190565b808452602084019350610d53818560208601610d28565b601f01601f19169290920192915050565b60408101610d728285610a03565b8181036020830152610a598184610d33565b801515610a23565b80516109ed81610d84565b5f60208284031215610daa57610daa5f80fd5b5f610a598484610d8c565b60608101610dc38286610a03565b610dd06020830185610a03565b81810360408301526103258184610d3356fea26469706673582212206d5e924a009075f937a6a482a5ee852d94e346ebde50b578720992ec8138111864736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10F5 CODESIZE SUB DUP1 PUSH2 0x10F5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x18B JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x25F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE POP PUSH2 0x272 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x147 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165 DUP2 PUSH2 0x14A JUMP JUMPDEST DUP2 EQ PUSH2 0x147 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x15C JUMP JUMPDEST DUP1 PUSH2 0x165 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x17A JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1A7 JUMPI PUSH2 0x1A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1B2 DUP13 DUP13 PUSH2 0x16F JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1C3 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1D4 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x1E5 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x1F6 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x207 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x218 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x229 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x23B DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x26D JUMPI PUSH2 0x26D PUSH2 0x24B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0xE18 PUSH2 0x2DD PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x17E ADD MSTORE PUSH2 0x92E ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x243 ADD MSTORE DUP2 DUP2 PUSH2 0x542 ADD MSTORE PUSH2 0x7C1 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x12E ADD MSTORE DUP2 DUP2 PUSH2 0x56F ADD MSTORE PUSH2 0x7F0 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x200 ADD MSTORE DUP2 DUP2 PUSH2 0x280 ADD MSTORE DUP2 DUP2 PUSH2 0x676 ADD MSTORE PUSH2 0x86F ADD MSTORE PUSH2 0xE18 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x9DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA0C JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0xA3B JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA7E JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xAFD JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x770 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x7BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x770 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x7BD JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x915 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x915 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xB33 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x9DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x770 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xB46 JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x770 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xB59 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA0C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x915 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7546172 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 0x6D0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F4 SWAP2 SWAP1 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42C8312B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x85906256 SWAP1 PUSH2 0x72B SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9DF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x746 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x76A SWAP2 SWAP1 PUSH2 0xBA0 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x780 SWAP2 SWAP1 PUSH2 0xB46 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x79C SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x7B0 SWAP2 SWAP1 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xB59 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82B SWAP2 SWAP1 PUSH2 0xA0C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x846 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x86A SWAP2 SWAP1 PUSH2 0xBA0 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8CD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8F1 SWAP2 SWAP1 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x901 DUP2 PUSH1 0xA PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x90B DUP5 DUP8 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x965 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD64 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x980 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x9A4 SWAP2 SWAP1 PUSH2 0xD97 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9D3 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0x9D7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9ED JUMP JUMPDEST PUSH2 0x9D9 DUP2 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xA23 DUP2 PUSH2 0x9F3 JUMP JUMPDEST DUP2 EQ PUSH2 0xA2D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9ED DUP2 PUSH2 0xA1A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA4E JUMPI PUSH2 0xA4E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xA30 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9ED DUP3 PUSH2 0x9F3 JUMP JUMPDEST PUSH0 PUSH2 0x9ED DUP3 PUSH2 0xA61 JUMP JUMPDEST PUSH2 0x9D9 DUP2 PUSH2 0xA6B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0xA75 JUMP JUMPDEST DUP1 PUSH2 0xA23 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9ED DUP2 PUSH2 0xA8C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB0 JUMPI PUSH2 0xAB0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xA92 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xACF JUMPI PUSH2 0xACF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xADA DUP6 DUP6 PUSH2 0xA92 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAEB DUP6 DUP3 DUP7 ADD PUSH2 0xA92 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9D9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0xAF5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB41 JUMPI PUSH2 0xB41 PUSH2 0xB0B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9ED JUMPI PUSH2 0x9ED PUSH2 0xB1F JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9ED JUMPI PUSH2 0x9ED PUSH2 0xB1F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xA1A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB8A JUMPI PUSH2 0xB8A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xB6C JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xA8C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBB3 JUMPI PUSH2 0xBB3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xB95 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBD6 JUMPI PUSH2 0xBD6 PUSH2 0xB1F JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA23 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xBDD JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC04 JUMPI PUSH2 0xC04 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xBE6 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC4E JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xC2D JUMPI PUSH2 0xC2D PUSH2 0xB1F JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xC3B JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC47 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xC12 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC65 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xC71 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC87 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC91 JUMPI PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xCA2 JUMPI PUSH2 0xCA2 PUSH2 0xB1F JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xCB8 JUMPI PUSH2 0xCB8 PUSH2 0xB1F JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCF1 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEC PUSH2 0xB1F JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xCFE DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xC0F JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xD14 JUMPI PUSH2 0xD14 PUSH2 0xB1F JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xC57 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD3C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD53 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD72 DUP3 DUP6 PUSH2 0xA03 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA59 DUP2 DUP5 PUSH2 0xD33 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA23 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xD84 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAA JUMPI PUSH2 0xDAA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xDC3 DUP3 DUP7 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xDD0 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xA03 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xD33 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x5E924A009075F937A6A482A5EE85 0x2D SWAP5 0xE3 CHAINID 0xEB 0xDE POP 0xB5 PUSH25 0x720992EC8138111864736F6C63430008190033000000000000 ","sourceMap":"447:1097:47:-:0;;;560:644;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;929:5;948:7;969:15;998:16;1028:17;1059:30;1103:24;1141:20;1175:12;3527:36:67;408:10:17;998:16:47;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;-1:-1:-1;447:1097:47;;-1:-1:-1;;;;;;;;447:1097:47;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;447:1097:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1981,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2325,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1904,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":637,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_3911":{"entryPoint":1650,"id":3911,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1139,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":927,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":814,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1530,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1198,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2608,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":2924,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2706,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2965,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":3046,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2619,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":2935,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3479,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2717,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2976,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2747,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":3057,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2563,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2805,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2677,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3379,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2519,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2572,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3509,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3428,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2813,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2686,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2527,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2905,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2867,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3087,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3355,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3159,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3006,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2886,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2547,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2667,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2657,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3368,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2847,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2827,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2586,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3460,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2700,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":3037,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13074:101","nodeType":"YulBlock","src":"0:13074:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5171:152:101","nodeType":"YulBlock","src":"5171:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5188:1:101","nodeType":"YulLiteral","src":"5188:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5191:77:101","nodeType":"YulLiteral","src":"5191:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5181:6:101","nodeType":"YulIdentifier","src":"5181:6:101"},"nativeSrc":"5181:88:101","nodeType":"YulFunctionCall","src":"5181:88:101"},"nativeSrc":"5181:88:101","nodeType":"YulExpressionStatement","src":"5181:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5285:1:101","nodeType":"YulLiteral","src":"5285:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5288:4:101","nodeType":"YulLiteral","src":"5288:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:101","nodeType":"YulIdentifier","src":"5278:6:101"},"nativeSrc":"5278:15:101","nodeType":"YulFunctionCall","src":"5278:15:101"},"nativeSrc":"5278:15:101","nodeType":"YulExpressionStatement","src":"5278:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5309:1:101","nodeType":"YulLiteral","src":"5309:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5312:4:101","nodeType":"YulLiteral","src":"5312:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5302:6:101","nodeType":"YulIdentifier","src":"5302:6:101"},"nativeSrc":"5302:15:101","nodeType":"YulFunctionCall","src":"5302:15:101"},"nativeSrc":"5302:15:101","nodeType":"YulExpressionStatement","src":"5302:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5143:180:101","nodeType":"YulFunctionDefinition","src":"5143:180:101"},{"body":{"nativeSrc":"5357:152:101","nodeType":"YulBlock","src":"5357:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5374:1:101","nodeType":"YulLiteral","src":"5374:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5377:77:101","nodeType":"YulLiteral","src":"5377:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:101","nodeType":"YulIdentifier","src":"5367:6:101"},"nativeSrc":"5367:88:101","nodeType":"YulFunctionCall","src":"5367:88:101"},"nativeSrc":"5367:88:101","nodeType":"YulExpressionStatement","src":"5367:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5471:1:101","nodeType":"YulLiteral","src":"5471:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5474:4:101","nodeType":"YulLiteral","src":"5474:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5464:6:101","nodeType":"YulIdentifier","src":"5464:6:101"},"nativeSrc":"5464:15:101","nodeType":"YulFunctionCall","src":"5464:15:101"},"nativeSrc":"5464:15:101","nodeType":"YulExpressionStatement","src":"5464:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5495:1:101","nodeType":"YulLiteral","src":"5495:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5498:4:101","nodeType":"YulLiteral","src":"5498:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5488:6:101","nodeType":"YulIdentifier","src":"5488:6:101"},"nativeSrc":"5488:15:101","nodeType":"YulFunctionCall","src":"5488:15:101"},"nativeSrc":"5488:15:101","nodeType":"YulExpressionStatement","src":"5488:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5329:180:101","nodeType":"YulFunctionDefinition","src":"5329:180:101"},{"body":{"nativeSrc":"5557:143:101","nodeType":"YulBlock","src":"5557:143:101","statements":[{"nativeSrc":"5567:25:101","nodeType":"YulAssignment","src":"5567:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5590:1:101","nodeType":"YulIdentifier","src":"5590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5572:17:101","nodeType":"YulIdentifier","src":"5572:17:101"},"nativeSrc":"5572:20:101","nodeType":"YulFunctionCall","src":"5572:20:101"},"variableNames":[{"name":"x","nativeSrc":"5567:1:101","nodeType":"YulIdentifier","src":"5567:1:101"}]},{"nativeSrc":"5601:25:101","nodeType":"YulAssignment","src":"5601:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5624:1:101","nodeType":"YulIdentifier","src":"5624:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5606:17:101","nodeType":"YulIdentifier","src":"5606:17:101"},"nativeSrc":"5606:20:101","nodeType":"YulFunctionCall","src":"5606:20:101"},"variableNames":[{"name":"y","nativeSrc":"5601:1:101","nodeType":"YulIdentifier","src":"5601:1:101"}]},{"body":{"nativeSrc":"5648:22:101","nodeType":"YulBlock","src":"5648:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"5650:16:101","nodeType":"YulIdentifier","src":"5650:16:101"},"nativeSrc":"5650:18:101","nodeType":"YulFunctionCall","src":"5650:18:101"},"nativeSrc":"5650:18:101","nodeType":"YulExpressionStatement","src":"5650:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"5645:1:101","nodeType":"YulIdentifier","src":"5645:1:101"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:101","nodeType":"YulIdentifier","src":"5638:6:101"},"nativeSrc":"5638:9:101","nodeType":"YulFunctionCall","src":"5638:9:101"},"nativeSrc":"5635:35:101","nodeType":"YulIf","src":"5635:35:101"},{"nativeSrc":"5680:14:101","nodeType":"YulAssignment","src":"5680:14:101","value":{"arguments":[{"name":"x","nativeSrc":"5689:1:101","nodeType":"YulIdentifier","src":"5689:1:101"},{"name":"y","nativeSrc":"5692:1:101","nodeType":"YulIdentifier","src":"5692:1:101"}],"functionName":{"name":"div","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"},"nativeSrc":"5685:9:101","nodeType":"YulFunctionCall","src":"5685:9:101"},"variableNames":[{"name":"r","nativeSrc":"5680:1:101","nodeType":"YulIdentifier","src":"5680:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"5515:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5546:1:101","nodeType":"YulTypedName","src":"5546:1:101","type":""},{"name":"y","nativeSrc":"5549:1:101","nodeType":"YulTypedName","src":"5549:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"5555:1:101","nodeType":"YulTypedName","src":"5555:1:101","type":""}],"src":"5515:185:101"},{"body":{"nativeSrc":"5751:149:101","nodeType":"YulBlock","src":"5751:149:101","statements":[{"nativeSrc":"5761:25:101","nodeType":"YulAssignment","src":"5761:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5784:1:101","nodeType":"YulIdentifier","src":"5784:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5766:17:101","nodeType":"YulIdentifier","src":"5766:17:101"},"nativeSrc":"5766:20:101","nodeType":"YulFunctionCall","src":"5766:20:101"},"variableNames":[{"name":"x","nativeSrc":"5761:1:101","nodeType":"YulIdentifier","src":"5761:1:101"}]},{"nativeSrc":"5795:25:101","nodeType":"YulAssignment","src":"5795:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5818:1:101","nodeType":"YulIdentifier","src":"5818:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5800:17:101","nodeType":"YulIdentifier","src":"5800:17:101"},"nativeSrc":"5800:20:101","nodeType":"YulFunctionCall","src":"5800:20:101"},"variableNames":[{"name":"y","nativeSrc":"5795:1:101","nodeType":"YulIdentifier","src":"5795:1:101"}]},{"nativeSrc":"5829:17:101","nodeType":"YulAssignment","src":"5829:17:101","value":{"arguments":[{"name":"x","nativeSrc":"5841:1:101","nodeType":"YulIdentifier","src":"5841:1:101"},{"name":"y","nativeSrc":"5844:1:101","nodeType":"YulIdentifier","src":"5844:1:101"}],"functionName":{"name":"sub","nativeSrc":"5837:3:101","nodeType":"YulIdentifier","src":"5837:3:101"},"nativeSrc":"5837:9:101","nodeType":"YulFunctionCall","src":"5837:9:101"},"variableNames":[{"name":"diff","nativeSrc":"5829:4:101","nodeType":"YulIdentifier","src":"5829:4:101"}]},{"body":{"nativeSrc":"5871:22:101","nodeType":"YulBlock","src":"5871:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5873:16:101","nodeType":"YulIdentifier","src":"5873:16:101"},"nativeSrc":"5873:18:101","nodeType":"YulFunctionCall","src":"5873:18:101"},"nativeSrc":"5873:18:101","nodeType":"YulExpressionStatement","src":"5873:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"5862:4:101","nodeType":"YulIdentifier","src":"5862:4:101"},{"name":"x","nativeSrc":"5868:1:101","nodeType":"YulIdentifier","src":"5868:1:101"}],"functionName":{"name":"gt","nativeSrc":"5859:2:101","nodeType":"YulIdentifier","src":"5859:2:101"},"nativeSrc":"5859:11:101","nodeType":"YulFunctionCall","src":"5859:11:101"},"nativeSrc":"5856:37:101","nodeType":"YulIf","src":"5856:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"5706:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5737:1:101","nodeType":"YulTypedName","src":"5737:1:101","type":""},{"name":"y","nativeSrc":"5740:1:101","nodeType":"YulTypedName","src":"5740:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5746:4:101","nodeType":"YulTypedName","src":"5746:4:101","type":""}],"src":"5706:194:101"},{"body":{"nativeSrc":"5950:147:101","nodeType":"YulBlock","src":"5950:147:101","statements":[{"nativeSrc":"5960:25:101","nodeType":"YulAssignment","src":"5960:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5983:1:101","nodeType":"YulIdentifier","src":"5983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5965:17:101","nodeType":"YulIdentifier","src":"5965:17:101"},"nativeSrc":"5965:20:101","nodeType":"YulFunctionCall","src":"5965:20:101"},"variableNames":[{"name":"x","nativeSrc":"5960:1:101","nodeType":"YulIdentifier","src":"5960:1:101"}]},{"nativeSrc":"5994:25:101","nodeType":"YulAssignment","src":"5994:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6017:1:101","nodeType":"YulIdentifier","src":"6017:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5999:17:101","nodeType":"YulIdentifier","src":"5999:17:101"},"nativeSrc":"5999:20:101","nodeType":"YulFunctionCall","src":"5999:20:101"},"variableNames":[{"name":"y","nativeSrc":"5994:1:101","nodeType":"YulIdentifier","src":"5994:1:101"}]},{"nativeSrc":"6028:16:101","nodeType":"YulAssignment","src":"6028:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6039:1:101","nodeType":"YulIdentifier","src":"6039:1:101"},{"name":"y","nativeSrc":"6042:1:101","nodeType":"YulIdentifier","src":"6042:1:101"}],"functionName":{"name":"add","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},"nativeSrc":"6035:9:101","nodeType":"YulFunctionCall","src":"6035:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"}]},{"body":{"nativeSrc":"6068:22:101","nodeType":"YulBlock","src":"6068:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6070:16:101","nodeType":"YulIdentifier","src":"6070:16:101"},"nativeSrc":"6070:18:101","nodeType":"YulFunctionCall","src":"6070:18:101"},"nativeSrc":"6070:18:101","nodeType":"YulExpressionStatement","src":"6070:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6060:1:101","nodeType":"YulIdentifier","src":"6060:1:101"},{"name":"sum","nativeSrc":"6063:3:101","nodeType":"YulIdentifier","src":"6063:3:101"}],"functionName":{"name":"gt","nativeSrc":"6057:2:101","nodeType":"YulIdentifier","src":"6057:2:101"},"nativeSrc":"6057:10:101","nodeType":"YulFunctionCall","src":"6057:10:101"},"nativeSrc":"6054:36:101","nodeType":"YulIf","src":"6054:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"5906:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5937:1:101","nodeType":"YulTypedName","src":"5937:1:101","type":""},{"name":"y","nativeSrc":"5940:1:101","nodeType":"YulTypedName","src":"5940:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5946:3:101","nodeType":"YulTypedName","src":"5946:3:101","type":""}],"src":"5906:191:101"},{"body":{"nativeSrc":"6166:80:101","nodeType":"YulBlock","src":"6166:80:101","statements":[{"nativeSrc":"6176:22:101","nodeType":"YulAssignment","src":"6176:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6191:6:101","nodeType":"YulIdentifier","src":"6191:6:101"}],"functionName":{"name":"mload","nativeSrc":"6185:5:101","nodeType":"YulIdentifier","src":"6185:5:101"},"nativeSrc":"6185:13:101","nodeType":"YulFunctionCall","src":"6185:13:101"},"variableNames":[{"name":"value","nativeSrc":"6176:5:101","nodeType":"YulIdentifier","src":"6176:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6234:5:101","nodeType":"YulIdentifier","src":"6234:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6207:26:101","nodeType":"YulIdentifier","src":"6207:26:101"},"nativeSrc":"6207:33:101","nodeType":"YulFunctionCall","src":"6207:33:101"},"nativeSrc":"6207:33:101","nodeType":"YulExpressionStatement","src":"6207:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"6103:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6144:6:101","nodeType":"YulTypedName","src":"6144:6:101","type":""},{"name":"end","nativeSrc":"6152:3:101","nodeType":"YulTypedName","src":"6152:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6160:5:101","nodeType":"YulTypedName","src":"6160:5:101","type":""}],"src":"6103:143:101"},{"body":{"nativeSrc":"6329:274:101","nodeType":"YulBlock","src":"6329:274:101","statements":[{"body":{"nativeSrc":"6375:83:101","nodeType":"YulBlock","src":"6375:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6377:77:101","nodeType":"YulIdentifier","src":"6377:77:101"},"nativeSrc":"6377:79:101","nodeType":"YulFunctionCall","src":"6377:79:101"},"nativeSrc":"6377:79:101","nodeType":"YulExpressionStatement","src":"6377:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6350:7:101","nodeType":"YulIdentifier","src":"6350:7:101"},{"name":"headStart","nativeSrc":"6359:9:101","nodeType":"YulIdentifier","src":"6359:9:101"}],"functionName":{"name":"sub","nativeSrc":"6346:3:101","nodeType":"YulIdentifier","src":"6346:3:101"},"nativeSrc":"6346:23:101","nodeType":"YulFunctionCall","src":"6346:23:101"},{"kind":"number","nativeSrc":"6371:2:101","nodeType":"YulLiteral","src":"6371:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6342:3:101","nodeType":"YulIdentifier","src":"6342:3:101"},"nativeSrc":"6342:32:101","nodeType":"YulFunctionCall","src":"6342:32:101"},"nativeSrc":"6339:119:101","nodeType":"YulIf","src":"6339:119:101"},{"nativeSrc":"6468:128:101","nodeType":"YulBlock","src":"6468:128:101","statements":[{"nativeSrc":"6483:15:101","nodeType":"YulVariableDeclaration","src":"6483:15:101","value":{"kind":"number","nativeSrc":"6497:1:101","nodeType":"YulLiteral","src":"6497:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6487:6:101","nodeType":"YulTypedName","src":"6487:6:101","type":""}]},{"nativeSrc":"6512:74:101","nodeType":"YulAssignment","src":"6512:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6558:9:101","nodeType":"YulIdentifier","src":"6558:9:101"},{"name":"offset","nativeSrc":"6569:6:101","nodeType":"YulIdentifier","src":"6569:6:101"}],"functionName":{"name":"add","nativeSrc":"6554:3:101","nodeType":"YulIdentifier","src":"6554:3:101"},"nativeSrc":"6554:22:101","nodeType":"YulFunctionCall","src":"6554:22:101"},{"name":"dataEnd","nativeSrc":"6578:7:101","nodeType":"YulIdentifier","src":"6578:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"6522:31:101","nodeType":"YulIdentifier","src":"6522:31:101"},"nativeSrc":"6522:64:101","nodeType":"YulFunctionCall","src":"6522:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6512:6:101","nodeType":"YulIdentifier","src":"6512:6:101"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"6252:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6299:9:101","nodeType":"YulTypedName","src":"6299:9:101","type":""},{"name":"dataEnd","nativeSrc":"6310:7:101","nodeType":"YulTypedName","src":"6310:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6322:6:101","nodeType":"YulTypedName","src":"6322:6:101","type":""}],"src":"6252:351:101"},{"body":{"nativeSrc":"6672:80:101","nodeType":"YulBlock","src":"6672:80:101","statements":[{"nativeSrc":"6682:22:101","nodeType":"YulAssignment","src":"6682:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6697:6:101","nodeType":"YulIdentifier","src":"6697:6:101"}],"functionName":{"name":"mload","nativeSrc":"6691:5:101","nodeType":"YulIdentifier","src":"6691:5:101"},"nativeSrc":"6691:13:101","nodeType":"YulFunctionCall","src":"6691:13:101"},"variableNames":[{"name":"value","nativeSrc":"6682:5:101","nodeType":"YulIdentifier","src":"6682:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6740:5:101","nodeType":"YulIdentifier","src":"6740:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6713:26:101","nodeType":"YulIdentifier","src":"6713:26:101"},"nativeSrc":"6713:33:101","nodeType":"YulFunctionCall","src":"6713:33:101"},"nativeSrc":"6713:33:101","nodeType":"YulExpressionStatement","src":"6713:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6609:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6650:6:101","nodeType":"YulTypedName","src":"6650:6:101","type":""},{"name":"end","nativeSrc":"6658:3:101","nodeType":"YulTypedName","src":"6658:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6666:5:101","nodeType":"YulTypedName","src":"6666:5:101","type":""}],"src":"6609:143:101"},{"body":{"nativeSrc":"6835:274:101","nodeType":"YulBlock","src":"6835:274:101","statements":[{"body":{"nativeSrc":"6881:83:101","nodeType":"YulBlock","src":"6881:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6883:77:101","nodeType":"YulIdentifier","src":"6883:77:101"},"nativeSrc":"6883:79:101","nodeType":"YulFunctionCall","src":"6883:79:101"},"nativeSrc":"6883:79:101","nodeType":"YulExpressionStatement","src":"6883:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6856:7:101","nodeType":"YulIdentifier","src":"6856:7:101"},{"name":"headStart","nativeSrc":"6865:9:101","nodeType":"YulIdentifier","src":"6865:9:101"}],"functionName":{"name":"sub","nativeSrc":"6852:3:101","nodeType":"YulIdentifier","src":"6852:3:101"},"nativeSrc":"6852:23:101","nodeType":"YulFunctionCall","src":"6852:23:101"},{"kind":"number","nativeSrc":"6877:2:101","nodeType":"YulLiteral","src":"6877:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6848:3:101","nodeType":"YulIdentifier","src":"6848:3:101"},"nativeSrc":"6848:32:101","nodeType":"YulFunctionCall","src":"6848:32:101"},"nativeSrc":"6845:119:101","nodeType":"YulIf","src":"6845:119:101"},{"nativeSrc":"6974:128:101","nodeType":"YulBlock","src":"6974:128:101","statements":[{"nativeSrc":"6989:15:101","nodeType":"YulVariableDeclaration","src":"6989:15:101","value":{"kind":"number","nativeSrc":"7003:1:101","nodeType":"YulLiteral","src":"7003:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6993:6:101","nodeType":"YulTypedName","src":"6993:6:101","type":""}]},{"nativeSrc":"7018:74:101","nodeType":"YulAssignment","src":"7018:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7064:9:101","nodeType":"YulIdentifier","src":"7064:9:101"},{"name":"offset","nativeSrc":"7075:6:101","nodeType":"YulIdentifier","src":"7075:6:101"}],"functionName":{"name":"add","nativeSrc":"7060:3:101","nodeType":"YulIdentifier","src":"7060:3:101"},"nativeSrc":"7060:22:101","nodeType":"YulFunctionCall","src":"7060:22:101"},{"name":"dataEnd","nativeSrc":"7084:7:101","nodeType":"YulIdentifier","src":"7084:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7028:31:101","nodeType":"YulIdentifier","src":"7028:31:101"},"nativeSrc":"7028:64:101","nodeType":"YulFunctionCall","src":"7028:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7018:6:101","nodeType":"YulIdentifier","src":"7018:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6758:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6805:9:101","nodeType":"YulTypedName","src":"6805:9:101","type":""},{"name":"dataEnd","nativeSrc":"6816:7:101","nodeType":"YulTypedName","src":"6816:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6828:6:101","nodeType":"YulTypedName","src":"6828:6:101","type":""}],"src":"6758:351:101"},{"body":{"nativeSrc":"7163:362:101","nodeType":"YulBlock","src":"7163:362:101","statements":[{"nativeSrc":"7173:25:101","nodeType":"YulAssignment","src":"7173:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7196:1:101","nodeType":"YulIdentifier","src":"7196:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7178:17:101","nodeType":"YulIdentifier","src":"7178:17:101"},"nativeSrc":"7178:20:101","nodeType":"YulFunctionCall","src":"7178:20:101"},"variableNames":[{"name":"x","nativeSrc":"7173:1:101","nodeType":"YulIdentifier","src":"7173:1:101"}]},{"nativeSrc":"7207:25:101","nodeType":"YulAssignment","src":"7207:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7230:1:101","nodeType":"YulIdentifier","src":"7230:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7212:17:101","nodeType":"YulIdentifier","src":"7212:17:101"},"nativeSrc":"7212:20:101","nodeType":"YulFunctionCall","src":"7212:20:101"},"variableNames":[{"name":"y","nativeSrc":"7207:1:101","nodeType":"YulIdentifier","src":"7207:1:101"}]},{"nativeSrc":"7241:28:101","nodeType":"YulVariableDeclaration","src":"7241:28:101","value":{"arguments":[{"name":"x","nativeSrc":"7264:1:101","nodeType":"YulIdentifier","src":"7264:1:101"},{"name":"y","nativeSrc":"7267:1:101","nodeType":"YulIdentifier","src":"7267:1:101"}],"functionName":{"name":"mul","nativeSrc":"7260:3:101","nodeType":"YulIdentifier","src":"7260:3:101"},"nativeSrc":"7260:9:101","nodeType":"YulFunctionCall","src":"7260:9:101"},"variables":[{"name":"product_raw","nativeSrc":"7245:11:101","nodeType":"YulTypedName","src":"7245:11:101","type":""}]},{"nativeSrc":"7278:41:101","nodeType":"YulAssignment","src":"7278:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"7307:11:101","nodeType":"YulIdentifier","src":"7307:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7289:17:101","nodeType":"YulIdentifier","src":"7289:17:101"},"nativeSrc":"7289:30:101","nodeType":"YulFunctionCall","src":"7289:30:101"},"variableNames":[{"name":"product","nativeSrc":"7278:7:101","nodeType":"YulIdentifier","src":"7278:7:101"}]},{"body":{"nativeSrc":"7496:22:101","nodeType":"YulBlock","src":"7496:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7498:16:101","nodeType":"YulIdentifier","src":"7498:16:101"},"nativeSrc":"7498:18:101","nodeType":"YulFunctionCall","src":"7498:18:101"},"nativeSrc":"7498:18:101","nodeType":"YulExpressionStatement","src":"7498:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7429:1:101","nodeType":"YulIdentifier","src":"7429:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7422:6:101","nodeType":"YulIdentifier","src":"7422:6:101"},"nativeSrc":"7422:9:101","nodeType":"YulFunctionCall","src":"7422:9:101"},{"arguments":[{"name":"y","nativeSrc":"7452:1:101","nodeType":"YulIdentifier","src":"7452:1:101"},{"arguments":[{"name":"product","nativeSrc":"7459:7:101","nodeType":"YulIdentifier","src":"7459:7:101"},{"name":"x","nativeSrc":"7468:1:101","nodeType":"YulIdentifier","src":"7468:1:101"}],"functionName":{"name":"div","nativeSrc":"7455:3:101","nodeType":"YulIdentifier","src":"7455:3:101"},"nativeSrc":"7455:15:101","nodeType":"YulFunctionCall","src":"7455:15:101"}],"functionName":{"name":"eq","nativeSrc":"7449:2:101","nodeType":"YulIdentifier","src":"7449:2:101"},"nativeSrc":"7449:22:101","nodeType":"YulFunctionCall","src":"7449:22:101"}],"functionName":{"name":"or","nativeSrc":"7402:2:101","nodeType":"YulIdentifier","src":"7402:2:101"},"nativeSrc":"7402:83:101","nodeType":"YulFunctionCall","src":"7402:83:101"}],"functionName":{"name":"iszero","nativeSrc":"7382:6:101","nodeType":"YulIdentifier","src":"7382:6:101"},"nativeSrc":"7382:113:101","nodeType":"YulFunctionCall","src":"7382:113:101"},"nativeSrc":"7379:139:101","nodeType":"YulIf","src":"7379:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"7115:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7146:1:101","nodeType":"YulTypedName","src":"7146:1:101","type":""},{"name":"y","nativeSrc":"7149:1:101","nodeType":"YulTypedName","src":"7149:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7155:7:101","nodeType":"YulTypedName","src":"7155:7:101","type":""}],"src":"7115:410:101"},{"body":{"nativeSrc":"7574:43:101","nodeType":"YulBlock","src":"7574:43:101","statements":[{"nativeSrc":"7584:27:101","nodeType":"YulAssignment","src":"7584:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7599:5:101","nodeType":"YulIdentifier","src":"7599:5:101"},{"kind":"number","nativeSrc":"7606:4:101","nodeType":"YulLiteral","src":"7606:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7595:3:101","nodeType":"YulIdentifier","src":"7595:3:101"},"nativeSrc":"7595:16:101","nodeType":"YulFunctionCall","src":"7595:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7584:7:101","nodeType":"YulIdentifier","src":"7584:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7531:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7556:5:101","nodeType":"YulTypedName","src":"7556:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7566:7:101","nodeType":"YulTypedName","src":"7566:7:101","type":""}],"src":"7531:86:101"},{"body":{"nativeSrc":"7664:77:101","nodeType":"YulBlock","src":"7664:77:101","statements":[{"body":{"nativeSrc":"7719:16:101","nodeType":"YulBlock","src":"7719:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7728:1:101","nodeType":"YulLiteral","src":"7728:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7731:1:101","nodeType":"YulLiteral","src":"7731:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7721:6:101","nodeType":"YulIdentifier","src":"7721:6:101"},"nativeSrc":"7721:12:101","nodeType":"YulFunctionCall","src":"7721:12:101"},"nativeSrc":"7721:12:101","nodeType":"YulExpressionStatement","src":"7721:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7687:5:101","nodeType":"YulIdentifier","src":"7687:5:101"},{"arguments":[{"name":"value","nativeSrc":"7710:5:101","nodeType":"YulIdentifier","src":"7710:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7694:15:101","nodeType":"YulIdentifier","src":"7694:15:101"},"nativeSrc":"7694:22:101","nodeType":"YulFunctionCall","src":"7694:22:101"}],"functionName":{"name":"eq","nativeSrc":"7684:2:101","nodeType":"YulIdentifier","src":"7684:2:101"},"nativeSrc":"7684:33:101","nodeType":"YulFunctionCall","src":"7684:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7677:6:101","nodeType":"YulIdentifier","src":"7677:6:101"},"nativeSrc":"7677:41:101","nodeType":"YulFunctionCall","src":"7677:41:101"},"nativeSrc":"7674:61:101","nodeType":"YulIf","src":"7674:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7623:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7657:5:101","nodeType":"YulTypedName","src":"7657:5:101","type":""}],"src":"7623:118:101"},{"body":{"nativeSrc":"7808:78:101","nodeType":"YulBlock","src":"7808:78:101","statements":[{"nativeSrc":"7818:22:101","nodeType":"YulAssignment","src":"7818:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7833:6:101","nodeType":"YulIdentifier","src":"7833:6:101"}],"functionName":{"name":"mload","nativeSrc":"7827:5:101","nodeType":"YulIdentifier","src":"7827:5:101"},"nativeSrc":"7827:13:101","nodeType":"YulFunctionCall","src":"7827:13:101"},"variableNames":[{"name":"value","nativeSrc":"7818:5:101","nodeType":"YulIdentifier","src":"7818:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7874:5:101","nodeType":"YulIdentifier","src":"7874:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7849:24:101","nodeType":"YulIdentifier","src":"7849:24:101"},"nativeSrc":"7849:31:101","nodeType":"YulFunctionCall","src":"7849:31:101"},"nativeSrc":"7849:31:101","nodeType":"YulExpressionStatement","src":"7849:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7747:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7786:6:101","nodeType":"YulTypedName","src":"7786:6:101","type":""},{"name":"end","nativeSrc":"7794:3:101","nodeType":"YulTypedName","src":"7794:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7802:5:101","nodeType":"YulTypedName","src":"7802:5:101","type":""}],"src":"7747:139:101"},{"body":{"nativeSrc":"7967:272:101","nodeType":"YulBlock","src":"7967:272:101","statements":[{"body":{"nativeSrc":"8013:83:101","nodeType":"YulBlock","src":"8013:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8015:77:101","nodeType":"YulIdentifier","src":"8015:77:101"},"nativeSrc":"8015:79:101","nodeType":"YulFunctionCall","src":"8015:79:101"},"nativeSrc":"8015:79:101","nodeType":"YulExpressionStatement","src":"8015:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7988:7:101","nodeType":"YulIdentifier","src":"7988:7:101"},{"name":"headStart","nativeSrc":"7997:9:101","nodeType":"YulIdentifier","src":"7997:9:101"}],"functionName":{"name":"sub","nativeSrc":"7984:3:101","nodeType":"YulIdentifier","src":"7984:3:101"},"nativeSrc":"7984:23:101","nodeType":"YulFunctionCall","src":"7984:23:101"},{"kind":"number","nativeSrc":"8009:2:101","nodeType":"YulLiteral","src":"8009:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7980:3:101","nodeType":"YulIdentifier","src":"7980:3:101"},"nativeSrc":"7980:32:101","nodeType":"YulFunctionCall","src":"7980:32:101"},"nativeSrc":"7977:119:101","nodeType":"YulIf","src":"7977:119:101"},{"nativeSrc":"8106:126:101","nodeType":"YulBlock","src":"8106:126:101","statements":[{"nativeSrc":"8121:15:101","nodeType":"YulVariableDeclaration","src":"8121:15:101","value":{"kind":"number","nativeSrc":"8135:1:101","nodeType":"YulLiteral","src":"8135:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8125:6:101","nodeType":"YulTypedName","src":"8125:6:101","type":""}]},{"nativeSrc":"8150:72:101","nodeType":"YulAssignment","src":"8150:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8194:9:101","nodeType":"YulIdentifier","src":"8194:9:101"},{"name":"offset","nativeSrc":"8205:6:101","nodeType":"YulIdentifier","src":"8205:6:101"}],"functionName":{"name":"add","nativeSrc":"8190:3:101","nodeType":"YulIdentifier","src":"8190:3:101"},"nativeSrc":"8190:22:101","nodeType":"YulFunctionCall","src":"8190:22:101"},{"name":"dataEnd","nativeSrc":"8214:7:101","nodeType":"YulIdentifier","src":"8214:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"8160:29:101","nodeType":"YulIdentifier","src":"8160:29:101"},"nativeSrc":"8160:62:101","nodeType":"YulFunctionCall","src":"8160:62:101"},"variableNames":[{"name":"value0","nativeSrc":"8150:6:101","nodeType":"YulIdentifier","src":"8150:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7892:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7937:9:101","nodeType":"YulTypedName","src":"7937:9:101","type":""},{"name":"dataEnd","nativeSrc":"7948:7:101","nodeType":"YulTypedName","src":"7948:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7960:6:101","nodeType":"YulTypedName","src":"7960:6:101","type":""}],"src":"7892:347:101"},{"body":{"nativeSrc":"8296:51:101","nodeType":"YulBlock","src":"8296:51:101","statements":[{"nativeSrc":"8306:34:101","nodeType":"YulAssignment","src":"8306:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8331:1:101","nodeType":"YulLiteral","src":"8331:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8334:5:101","nodeType":"YulIdentifier","src":"8334:5:101"}],"functionName":{"name":"shr","nativeSrc":"8327:3:101","nodeType":"YulIdentifier","src":"8327:3:101"},"nativeSrc":"8327:13:101","nodeType":"YulFunctionCall","src":"8327:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8306:8:101","nodeType":"YulIdentifier","src":"8306:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"8245:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8277:5:101","nodeType":"YulTypedName","src":"8277:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8287:8:101","nodeType":"YulTypedName","src":"8287:8:101","type":""}],"src":"8245:102:101"},{"body":{"nativeSrc":"8426:775:101","nodeType":"YulBlock","src":"8426:775:101","statements":[{"nativeSrc":"8436:15:101","nodeType":"YulAssignment","src":"8436:15:101","value":{"name":"_power","nativeSrc":"8445:6:101","nodeType":"YulIdentifier","src":"8445:6:101"},"variableNames":[{"name":"power","nativeSrc":"8436:5:101","nodeType":"YulIdentifier","src":"8436:5:101"}]},{"nativeSrc":"8460:14:101","nodeType":"YulAssignment","src":"8460:14:101","value":{"name":"_base","nativeSrc":"8469:5:101","nodeType":"YulIdentifier","src":"8469:5:101"},"variableNames":[{"name":"base","nativeSrc":"8460:4:101","nodeType":"YulIdentifier","src":"8460:4:101"}]},{"body":{"nativeSrc":"8518:677:101","nodeType":"YulBlock","src":"8518:677:101","statements":[{"body":{"nativeSrc":"8606:22:101","nodeType":"YulBlock","src":"8606:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8608:16:101","nodeType":"YulIdentifier","src":"8608:16:101"},"nativeSrc":"8608:18:101","nodeType":"YulFunctionCall","src":"8608:18:101"},"nativeSrc":"8608:18:101","nodeType":"YulExpressionStatement","src":"8608:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8584:4:101","nodeType":"YulIdentifier","src":"8584:4:101"},{"arguments":[{"name":"max","nativeSrc":"8594:3:101","nodeType":"YulIdentifier","src":"8594:3:101"},{"name":"base","nativeSrc":"8599:4:101","nodeType":"YulIdentifier","src":"8599:4:101"}],"functionName":{"name":"div","nativeSrc":"8590:3:101","nodeType":"YulIdentifier","src":"8590:3:101"},"nativeSrc":"8590:14:101","nodeType":"YulFunctionCall","src":"8590:14:101"}],"functionName":{"name":"gt","nativeSrc":"8581:2:101","nodeType":"YulIdentifier","src":"8581:2:101"},"nativeSrc":"8581:24:101","nodeType":"YulFunctionCall","src":"8581:24:101"},"nativeSrc":"8578:50:101","nodeType":"YulIf","src":"8578:50:101"},{"body":{"nativeSrc":"8673:419:101","nodeType":"YulBlock","src":"8673:419:101","statements":[{"nativeSrc":"9053:25:101","nodeType":"YulAssignment","src":"9053:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9066:5:101","nodeType":"YulIdentifier","src":"9066:5:101"},{"name":"base","nativeSrc":"9073:4:101","nodeType":"YulIdentifier","src":"9073:4:101"}],"functionName":{"name":"mul","nativeSrc":"9062:3:101","nodeType":"YulIdentifier","src":"9062:3:101"},"nativeSrc":"9062:16:101","nodeType":"YulFunctionCall","src":"9062:16:101"},"variableNames":[{"name":"power","nativeSrc":"9053:5:101","nodeType":"YulIdentifier","src":"9053:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8648:8:101","nodeType":"YulIdentifier","src":"8648:8:101"},{"kind":"number","nativeSrc":"8658:1:101","nodeType":"YulLiteral","src":"8658:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8644:3:101","nodeType":"YulIdentifier","src":"8644:3:101"},"nativeSrc":"8644:16:101","nodeType":"YulFunctionCall","src":"8644:16:101"},"nativeSrc":"8641:451:101","nodeType":"YulIf","src":"8641:451:101"},{"nativeSrc":"9105:23:101","nodeType":"YulAssignment","src":"9105:23:101","value":{"arguments":[{"name":"base","nativeSrc":"9117:4:101","nodeType":"YulIdentifier","src":"9117:4:101"},{"name":"base","nativeSrc":"9123:4:101","nodeType":"YulIdentifier","src":"9123:4:101"}],"functionName":{"name":"mul","nativeSrc":"9113:3:101","nodeType":"YulIdentifier","src":"9113:3:101"},"nativeSrc":"9113:15:101","nodeType":"YulFunctionCall","src":"9113:15:101"},"variableNames":[{"name":"base","nativeSrc":"9105:4:101","nodeType":"YulIdentifier","src":"9105:4:101"}]},{"nativeSrc":"9141:44:101","nodeType":"YulAssignment","src":"9141:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9176:8:101","nodeType":"YulIdentifier","src":"9176:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"9153:22:101","nodeType":"YulIdentifier","src":"9153:22:101"},"nativeSrc":"9153:32:101","nodeType":"YulFunctionCall","src":"9153:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"9141:8:101","nodeType":"YulIdentifier","src":"9141:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8494:8:101","nodeType":"YulIdentifier","src":"8494:8:101"},{"kind":"number","nativeSrc":"8504:1:101","nodeType":"YulLiteral","src":"8504:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8491:2:101","nodeType":"YulIdentifier","src":"8491:2:101"},"nativeSrc":"8491:15:101","nodeType":"YulFunctionCall","src":"8491:15:101"},"nativeSrc":"8483:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8507:2:101","nodeType":"YulBlock","src":"8507:2:101","statements":[]},"pre":{"nativeSrc":"8487:3:101","nodeType":"YulBlock","src":"8487:3:101","statements":[]},"src":"8483:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8353:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8381:6:101","nodeType":"YulTypedName","src":"8381:6:101","type":""},{"name":"_base","nativeSrc":"8389:5:101","nodeType":"YulTypedName","src":"8389:5:101","type":""},{"name":"exponent","nativeSrc":"8396:8:101","nodeType":"YulTypedName","src":"8396:8:101","type":""},{"name":"max","nativeSrc":"8406:3:101","nodeType":"YulTypedName","src":"8406:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8414:5:101","nodeType":"YulTypedName","src":"8414:5:101","type":""},{"name":"base","nativeSrc":"8421:4:101","nodeType":"YulTypedName","src":"8421:4:101","type":""}],"src":"8353:848:101"},{"body":{"nativeSrc":"9267:1013:101","nodeType":"YulBlock","src":"9267:1013:101","statements":[{"body":{"nativeSrc":"9462:20:101","nodeType":"YulBlock","src":"9462:20:101","statements":[{"nativeSrc":"9464:10:101","nodeType":"YulAssignment","src":"9464:10:101","value":{"kind":"number","nativeSrc":"9473:1:101","nodeType":"YulLiteral","src":"9473:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9464:5:101","nodeType":"YulIdentifier","src":"9464:5:101"}]},{"nativeSrc":"9475:5:101","nodeType":"YulLeave","src":"9475:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9452:8:101","nodeType":"YulIdentifier","src":"9452:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9445:6:101","nodeType":"YulIdentifier","src":"9445:6:101"},"nativeSrc":"9445:16:101","nodeType":"YulFunctionCall","src":"9445:16:101"},"nativeSrc":"9442:40:101","nodeType":"YulIf","src":"9442:40:101"},{"body":{"nativeSrc":"9507:20:101","nodeType":"YulBlock","src":"9507:20:101","statements":[{"nativeSrc":"9509:10:101","nodeType":"YulAssignment","src":"9509:10:101","value":{"kind":"number","nativeSrc":"9518:1:101","nodeType":"YulLiteral","src":"9518:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9509:5:101","nodeType":"YulIdentifier","src":"9509:5:101"}]},{"nativeSrc":"9520:5:101","nodeType":"YulLeave","src":"9520:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9501:4:101","nodeType":"YulIdentifier","src":"9501:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9494:6:101","nodeType":"YulIdentifier","src":"9494:6:101"},"nativeSrc":"9494:12:101","nodeType":"YulFunctionCall","src":"9494:12:101"},"nativeSrc":"9491:36:101","nodeType":"YulIf","src":"9491:36:101"},{"cases":[{"body":{"nativeSrc":"9637:20:101","nodeType":"YulBlock","src":"9637:20:101","statements":[{"nativeSrc":"9639:10:101","nodeType":"YulAssignment","src":"9639:10:101","value":{"kind":"number","nativeSrc":"9648:1:101","nodeType":"YulLiteral","src":"9648:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9639:5:101","nodeType":"YulIdentifier","src":"9639:5:101"}]},{"nativeSrc":"9650:5:101","nodeType":"YulLeave","src":"9650:5:101"}]},"nativeSrc":"9630:27:101","nodeType":"YulCase","src":"9630:27:101","value":{"kind":"number","nativeSrc":"9635:1:101","nodeType":"YulLiteral","src":"9635:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9681:176:101","nodeType":"YulBlock","src":"9681:176:101","statements":[{"body":{"nativeSrc":"9716:22:101","nodeType":"YulBlock","src":"9716:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9718:16:101","nodeType":"YulIdentifier","src":"9718:16:101"},"nativeSrc":"9718:18:101","nodeType":"YulFunctionCall","src":"9718:18:101"},"nativeSrc":"9718:18:101","nodeType":"YulExpressionStatement","src":"9718:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9701:8:101","nodeType":"YulIdentifier","src":"9701:8:101"},{"kind":"number","nativeSrc":"9711:3:101","nodeType":"YulLiteral","src":"9711:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9698:2:101","nodeType":"YulIdentifier","src":"9698:2:101"},"nativeSrc":"9698:17:101","nodeType":"YulFunctionCall","src":"9698:17:101"},"nativeSrc":"9695:43:101","nodeType":"YulIf","src":"9695:43:101"},{"nativeSrc":"9751:25:101","nodeType":"YulAssignment","src":"9751:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9764:1:101","nodeType":"YulLiteral","src":"9764:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9767:8:101","nodeType":"YulIdentifier","src":"9767:8:101"}],"functionName":{"name":"exp","nativeSrc":"9760:3:101","nodeType":"YulIdentifier","src":"9760:3:101"},"nativeSrc":"9760:16:101","nodeType":"YulFunctionCall","src":"9760:16:101"},"variableNames":[{"name":"power","nativeSrc":"9751:5:101","nodeType":"YulIdentifier","src":"9751:5:101"}]},{"body":{"nativeSrc":"9807:22:101","nodeType":"YulBlock","src":"9807:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9809:16:101","nodeType":"YulIdentifier","src":"9809:16:101"},"nativeSrc":"9809:18:101","nodeType":"YulFunctionCall","src":"9809:18:101"},"nativeSrc":"9809:18:101","nodeType":"YulExpressionStatement","src":"9809:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9795:5:101","nodeType":"YulIdentifier","src":"9795:5:101"},{"name":"max","nativeSrc":"9802:3:101","nodeType":"YulIdentifier","src":"9802:3:101"}],"functionName":{"name":"gt","nativeSrc":"9792:2:101","nodeType":"YulIdentifier","src":"9792:2:101"},"nativeSrc":"9792:14:101","nodeType":"YulFunctionCall","src":"9792:14:101"},"nativeSrc":"9789:40:101","nodeType":"YulIf","src":"9789:40:101"},{"nativeSrc":"9842:5:101","nodeType":"YulLeave","src":"9842:5:101"}]},"nativeSrc":"9666:191:101","nodeType":"YulCase","src":"9666:191:101","value":{"kind":"number","nativeSrc":"9671:1:101","nodeType":"YulLiteral","src":"9671:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9587:4:101","nodeType":"YulIdentifier","src":"9587:4:101"},"nativeSrc":"9580:277:101","nodeType":"YulSwitch","src":"9580:277:101"},{"body":{"nativeSrc":"9989:123:101","nodeType":"YulBlock","src":"9989:123:101","statements":[{"nativeSrc":"10003:28:101","nodeType":"YulAssignment","src":"10003:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10016:4:101","nodeType":"YulIdentifier","src":"10016:4:101"},{"name":"exponent","nativeSrc":"10022:8:101","nodeType":"YulIdentifier","src":"10022:8:101"}],"functionName":{"name":"exp","nativeSrc":"10012:3:101","nodeType":"YulIdentifier","src":"10012:3:101"},"nativeSrc":"10012:19:101","nodeType":"YulFunctionCall","src":"10012:19:101"},"variableNames":[{"name":"power","nativeSrc":"10003:5:101","nodeType":"YulIdentifier","src":"10003:5:101"}]},{"body":{"nativeSrc":"10062:22:101","nodeType":"YulBlock","src":"10062:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10064:16:101","nodeType":"YulIdentifier","src":"10064:16:101"},"nativeSrc":"10064:18:101","nodeType":"YulFunctionCall","src":"10064:18:101"},"nativeSrc":"10064:18:101","nodeType":"YulExpressionStatement","src":"10064:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10050:5:101","nodeType":"YulIdentifier","src":"10050:5:101"},{"name":"max","nativeSrc":"10057:3:101","nodeType":"YulIdentifier","src":"10057:3:101"}],"functionName":{"name":"gt","nativeSrc":"10047:2:101","nodeType":"YulIdentifier","src":"10047:2:101"},"nativeSrc":"10047:14:101","nodeType":"YulFunctionCall","src":"10047:14:101"},"nativeSrc":"10044:40:101","nodeType":"YulIf","src":"10044:40:101"},{"nativeSrc":"10097:5:101","nodeType":"YulLeave","src":"10097:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9892:4:101","nodeType":"YulIdentifier","src":"9892:4:101"},{"kind":"number","nativeSrc":"9898:2:101","nodeType":"YulLiteral","src":"9898:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9889:2:101","nodeType":"YulIdentifier","src":"9889:2:101"},"nativeSrc":"9889:12:101","nodeType":"YulFunctionCall","src":"9889:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9906:8:101","nodeType":"YulIdentifier","src":"9906:8:101"},{"kind":"number","nativeSrc":"9916:2:101","nodeType":"YulLiteral","src":"9916:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9903:2:101","nodeType":"YulIdentifier","src":"9903:2:101"},"nativeSrc":"9903:16:101","nodeType":"YulFunctionCall","src":"9903:16:101"}],"functionName":{"name":"and","nativeSrc":"9885:3:101","nodeType":"YulIdentifier","src":"9885:3:101"},"nativeSrc":"9885:35:101","nodeType":"YulFunctionCall","src":"9885:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9941:4:101","nodeType":"YulIdentifier","src":"9941:4:101"},{"kind":"number","nativeSrc":"9947:3:101","nodeType":"YulLiteral","src":"9947:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9938:2:101","nodeType":"YulIdentifier","src":"9938:2:101"},"nativeSrc":"9938:13:101","nodeType":"YulFunctionCall","src":"9938:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9956:8:101","nodeType":"YulIdentifier","src":"9956:8:101"},{"kind":"number","nativeSrc":"9966:2:101","nodeType":"YulLiteral","src":"9966:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9953:2:101","nodeType":"YulIdentifier","src":"9953:2:101"},"nativeSrc":"9953:16:101","nodeType":"YulFunctionCall","src":"9953:16:101"}],"functionName":{"name":"and","nativeSrc":"9934:3:101","nodeType":"YulIdentifier","src":"9934:3:101"},"nativeSrc":"9934:36:101","nodeType":"YulFunctionCall","src":"9934:36:101"}],"functionName":{"name":"or","nativeSrc":"9869:2:101","nodeType":"YulIdentifier","src":"9869:2:101"},"nativeSrc":"9869:111:101","nodeType":"YulFunctionCall","src":"9869:111:101"},"nativeSrc":"9866:246:101","nodeType":"YulIf","src":"9866:246:101"},{"nativeSrc":"10122:57:101","nodeType":"YulAssignment","src":"10122:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"10156:1:101","nodeType":"YulLiteral","src":"10156:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"10159:4:101","nodeType":"YulIdentifier","src":"10159:4:101"},{"name":"exponent","nativeSrc":"10165:8:101","nodeType":"YulIdentifier","src":"10165:8:101"},{"name":"max","nativeSrc":"10175:3:101","nodeType":"YulIdentifier","src":"10175:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"10137:18:101","nodeType":"YulIdentifier","src":"10137:18:101"},"nativeSrc":"10137:42:101","nodeType":"YulFunctionCall","src":"10137:42:101"},"variableNames":[{"name":"power","nativeSrc":"10122:5:101","nodeType":"YulIdentifier","src":"10122:5:101"},{"name":"base","nativeSrc":"10129:4:101","nodeType":"YulIdentifier","src":"10129:4:101"}]},{"body":{"nativeSrc":"10218:22:101","nodeType":"YulBlock","src":"10218:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10220:16:101","nodeType":"YulIdentifier","src":"10220:16:101"},"nativeSrc":"10220:18:101","nodeType":"YulFunctionCall","src":"10220:18:101"},"nativeSrc":"10220:18:101","nodeType":"YulExpressionStatement","src":"10220:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10195:5:101","nodeType":"YulIdentifier","src":"10195:5:101"},{"arguments":[{"name":"max","nativeSrc":"10206:3:101","nodeType":"YulIdentifier","src":"10206:3:101"},{"name":"base","nativeSrc":"10211:4:101","nodeType":"YulIdentifier","src":"10211:4:101"}],"functionName":{"name":"div","nativeSrc":"10202:3:101","nodeType":"YulIdentifier","src":"10202:3:101"},"nativeSrc":"10202:14:101","nodeType":"YulFunctionCall","src":"10202:14:101"}],"functionName":{"name":"gt","nativeSrc":"10192:2:101","nodeType":"YulIdentifier","src":"10192:2:101"},"nativeSrc":"10192:25:101","nodeType":"YulFunctionCall","src":"10192:25:101"},"nativeSrc":"10189:51:101","nodeType":"YulIf","src":"10189:51:101"},{"nativeSrc":"10249:25:101","nodeType":"YulAssignment","src":"10249:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10262:5:101","nodeType":"YulIdentifier","src":"10262:5:101"},{"name":"base","nativeSrc":"10269:4:101","nodeType":"YulIdentifier","src":"10269:4:101"}],"functionName":{"name":"mul","nativeSrc":"10258:3:101","nodeType":"YulIdentifier","src":"10258:3:101"},"nativeSrc":"10258:16:101","nodeType":"YulFunctionCall","src":"10258:16:101"},"variableNames":[{"name":"power","nativeSrc":"10249:5:101","nodeType":"YulIdentifier","src":"10249:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"9207:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9237:4:101","nodeType":"YulTypedName","src":"9237:4:101","type":""},{"name":"exponent","nativeSrc":"9243:8:101","nodeType":"YulTypedName","src":"9243:8:101","type":""},{"name":"max","nativeSrc":"9253:3:101","nodeType":"YulTypedName","src":"9253:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9261:5:101","nodeType":"YulTypedName","src":"9261:5:101","type":""}],"src":"9207:1073:101"},{"body":{"nativeSrc":"10352:219:101","nodeType":"YulBlock","src":"10352:219:101","statements":[{"nativeSrc":"10362:31:101","nodeType":"YulAssignment","src":"10362:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10388:4:101","nodeType":"YulIdentifier","src":"10388:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10370:17:101","nodeType":"YulIdentifier","src":"10370:17:101"},"nativeSrc":"10370:23:101","nodeType":"YulFunctionCall","src":"10370:23:101"},"variableNames":[{"name":"base","nativeSrc":"10362:4:101","nodeType":"YulIdentifier","src":"10362:4:101"}]},{"nativeSrc":"10402:39:101","nodeType":"YulAssignment","src":"10402:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10432:8:101","nodeType":"YulIdentifier","src":"10432:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10414:17:101","nodeType":"YulIdentifier","src":"10414:17:101"},"nativeSrc":"10414:27:101","nodeType":"YulFunctionCall","src":"10414:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10402:8:101","nodeType":"YulIdentifier","src":"10402:8:101"}]},{"nativeSrc":"10451:113:101","nodeType":"YulAssignment","src":"10451:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10481:4:101","nodeType":"YulIdentifier","src":"10481:4:101"},{"name":"exponent","nativeSrc":"10487:8:101","nodeType":"YulIdentifier","src":"10487:8:101"},{"kind":"number","nativeSrc":"10497:66:101","nodeType":"YulLiteral","src":"10497:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10460:20:101","nodeType":"YulIdentifier","src":"10460:20:101"},"nativeSrc":"10460:104:101","nodeType":"YulFunctionCall","src":"10460:104:101"},"variableNames":[{"name":"power","nativeSrc":"10451:5:101","nodeType":"YulIdentifier","src":"10451:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"10286:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10327:4:101","nodeType":"YulTypedName","src":"10327:4:101","type":""},{"name":"exponent","nativeSrc":"10333:8:101","nodeType":"YulTypedName","src":"10333:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10346:5:101","nodeType":"YulTypedName","src":"10346:5:101","type":""}],"src":"10286:285:101"},{"body":{"nativeSrc":"10636:40:101","nodeType":"YulBlock","src":"10636:40:101","statements":[{"nativeSrc":"10647:22:101","nodeType":"YulAssignment","src":"10647:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10663:5:101","nodeType":"YulIdentifier","src":"10663:5:101"}],"functionName":{"name":"mload","nativeSrc":"10657:5:101","nodeType":"YulIdentifier","src":"10657:5:101"},"nativeSrc":"10657:12:101","nodeType":"YulFunctionCall","src":"10657:12:101"},"variableNames":[{"name":"length","nativeSrc":"10647:6:101","nodeType":"YulIdentifier","src":"10647:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10577:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10619:5:101","nodeType":"YulTypedName","src":"10619:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10629:6:101","nodeType":"YulTypedName","src":"10629:6:101","type":""}],"src":"10577:99:101"},{"body":{"nativeSrc":"10778:73:101","nodeType":"YulBlock","src":"10778:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10795:3:101","nodeType":"YulIdentifier","src":"10795:3:101"},{"name":"length","nativeSrc":"10800:6:101","nodeType":"YulIdentifier","src":"10800:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10788:6:101","nodeType":"YulIdentifier","src":"10788:6:101"},"nativeSrc":"10788:19:101","nodeType":"YulFunctionCall","src":"10788:19:101"},"nativeSrc":"10788:19:101","nodeType":"YulExpressionStatement","src":"10788:19:101"},{"nativeSrc":"10816:29:101","nodeType":"YulAssignment","src":"10816:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10835:3:101","nodeType":"YulIdentifier","src":"10835:3:101"},{"kind":"number","nativeSrc":"10840:4:101","nodeType":"YulLiteral","src":"10840:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10831:3:101","nodeType":"YulIdentifier","src":"10831:3:101"},"nativeSrc":"10831:14:101","nodeType":"YulFunctionCall","src":"10831:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10816:11:101","nodeType":"YulIdentifier","src":"10816:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10682:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10750:3:101","nodeType":"YulTypedName","src":"10750:3:101","type":""},{"name":"length","nativeSrc":"10755:6:101","nodeType":"YulTypedName","src":"10755:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10766:11:101","nodeType":"YulTypedName","src":"10766:11:101","type":""}],"src":"10682:169:101"},{"body":{"nativeSrc":"10919:77:101","nodeType":"YulBlock","src":"10919:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},{"name":"src","nativeSrc":"10941:3:101","nodeType":"YulIdentifier","src":"10941:3:101"},{"name":"length","nativeSrc":"10946:6:101","nodeType":"YulIdentifier","src":"10946:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10930:5:101","nodeType":"YulIdentifier","src":"10930:5:101"},"nativeSrc":"10930:23:101","nodeType":"YulFunctionCall","src":"10930:23:101"},"nativeSrc":"10930:23:101","nodeType":"YulExpressionStatement","src":"10930:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10973:3:101","nodeType":"YulIdentifier","src":"10973:3:101"},{"name":"length","nativeSrc":"10978:6:101","nodeType":"YulIdentifier","src":"10978:6:101"}],"functionName":{"name":"add","nativeSrc":"10969:3:101","nodeType":"YulIdentifier","src":"10969:3:101"},"nativeSrc":"10969:16:101","nodeType":"YulFunctionCall","src":"10969:16:101"},{"kind":"number","nativeSrc":"10987:1:101","nodeType":"YulLiteral","src":"10987:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10962:6:101","nodeType":"YulIdentifier","src":"10962:6:101"},"nativeSrc":"10962:27:101","nodeType":"YulFunctionCall","src":"10962:27:101"},"nativeSrc":"10962:27:101","nodeType":"YulExpressionStatement","src":"10962:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10857:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10901:3:101","nodeType":"YulTypedName","src":"10901:3:101","type":""},{"name":"dst","nativeSrc":"10906:3:101","nodeType":"YulTypedName","src":"10906:3:101","type":""},{"name":"length","nativeSrc":"10911:6:101","nodeType":"YulTypedName","src":"10911:6:101","type":""}],"src":"10857:139:101"},{"body":{"nativeSrc":"11050:54:101","nodeType":"YulBlock","src":"11050:54:101","statements":[{"nativeSrc":"11060:38:101","nodeType":"YulAssignment","src":"11060:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11078:5:101","nodeType":"YulIdentifier","src":"11078:5:101"},{"kind":"number","nativeSrc":"11085:2:101","nodeType":"YulLiteral","src":"11085:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11074:3:101","nodeType":"YulIdentifier","src":"11074:3:101"},"nativeSrc":"11074:14:101","nodeType":"YulFunctionCall","src":"11074:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11094:2:101","nodeType":"YulLiteral","src":"11094:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11090:3:101","nodeType":"YulIdentifier","src":"11090:3:101"},"nativeSrc":"11090:7:101","nodeType":"YulFunctionCall","src":"11090:7:101"}],"functionName":{"name":"and","nativeSrc":"11070:3:101","nodeType":"YulIdentifier","src":"11070:3:101"},"nativeSrc":"11070:28:101","nodeType":"YulFunctionCall","src":"11070:28:101"},"variableNames":[{"name":"result","nativeSrc":"11060:6:101","nodeType":"YulIdentifier","src":"11060:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11002:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11033:5:101","nodeType":"YulTypedName","src":"11033:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11043:6:101","nodeType":"YulTypedName","src":"11043:6:101","type":""}],"src":"11002:102:101"},{"body":{"nativeSrc":"11202:285:101","nodeType":"YulBlock","src":"11202:285:101","statements":[{"nativeSrc":"11212:53:101","nodeType":"YulVariableDeclaration","src":"11212:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11259:5:101","nodeType":"YulIdentifier","src":"11259:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11226:32:101","nodeType":"YulIdentifier","src":"11226:32:101"},"nativeSrc":"11226:39:101","nodeType":"YulFunctionCall","src":"11226:39:101"},"variables":[{"name":"length","nativeSrc":"11216:6:101","nodeType":"YulTypedName","src":"11216:6:101","type":""}]},{"nativeSrc":"11274:78:101","nodeType":"YulAssignment","src":"11274:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11340:3:101","nodeType":"YulIdentifier","src":"11340:3:101"},{"name":"length","nativeSrc":"11345:6:101","nodeType":"YulIdentifier","src":"11345:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11281:58:101","nodeType":"YulIdentifier","src":"11281:58:101"},"nativeSrc":"11281:71:101","nodeType":"YulFunctionCall","src":"11281:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11274:3:101","nodeType":"YulIdentifier","src":"11274:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11400:5:101","nodeType":"YulIdentifier","src":"11400:5:101"},{"kind":"number","nativeSrc":"11407:4:101","nodeType":"YulLiteral","src":"11407:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11396:3:101","nodeType":"YulIdentifier","src":"11396:3:101"},"nativeSrc":"11396:16:101","nodeType":"YulFunctionCall","src":"11396:16:101"},{"name":"pos","nativeSrc":"11414:3:101","nodeType":"YulIdentifier","src":"11414:3:101"},{"name":"length","nativeSrc":"11419:6:101","nodeType":"YulIdentifier","src":"11419:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11361:34:101","nodeType":"YulIdentifier","src":"11361:34:101"},"nativeSrc":"11361:65:101","nodeType":"YulFunctionCall","src":"11361:65:101"},"nativeSrc":"11361:65:101","nodeType":"YulExpressionStatement","src":"11361:65:101"},{"nativeSrc":"11435:46:101","nodeType":"YulAssignment","src":"11435:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11446:3:101","nodeType":"YulIdentifier","src":"11446:3:101"},{"arguments":[{"name":"length","nativeSrc":"11473:6:101","nodeType":"YulIdentifier","src":"11473:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11451:21:101","nodeType":"YulIdentifier","src":"11451:21:101"},"nativeSrc":"11451:29:101","nodeType":"YulFunctionCall","src":"11451:29:101"}],"functionName":{"name":"add","nativeSrc":"11442:3:101","nodeType":"YulIdentifier","src":"11442:3:101"},"nativeSrc":"11442:39:101","nodeType":"YulFunctionCall","src":"11442:39:101"},"variableNames":[{"name":"end","nativeSrc":"11435:3:101","nodeType":"YulIdentifier","src":"11435:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11110:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11183:5:101","nodeType":"YulTypedName","src":"11183:5:101","type":""},{"name":"pos","nativeSrc":"11190:3:101","nodeType":"YulTypedName","src":"11190:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11198:3:101","nodeType":"YulTypedName","src":"11198:3:101","type":""}],"src":"11110:377:101"},{"body":{"nativeSrc":"11639:277:101","nodeType":"YulBlock","src":"11639:277:101","statements":[{"nativeSrc":"11649:26:101","nodeType":"YulAssignment","src":"11649:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11661:9:101","nodeType":"YulIdentifier","src":"11661:9:101"},{"kind":"number","nativeSrc":"11672:2:101","nodeType":"YulLiteral","src":"11672:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11657:3:101","nodeType":"YulIdentifier","src":"11657:3:101"},"nativeSrc":"11657:18:101","nodeType":"YulFunctionCall","src":"11657:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11649:4:101","nodeType":"YulIdentifier","src":"11649:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11729:6:101","nodeType":"YulIdentifier","src":"11729:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11742:9:101","nodeType":"YulIdentifier","src":"11742:9:101"},{"kind":"number","nativeSrc":"11753:1:101","nodeType":"YulLiteral","src":"11753:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11738:3:101","nodeType":"YulIdentifier","src":"11738:3:101"},"nativeSrc":"11738:17:101","nodeType":"YulFunctionCall","src":"11738:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11685:43:101","nodeType":"YulIdentifier","src":"11685:43:101"},"nativeSrc":"11685:71:101","nodeType":"YulFunctionCall","src":"11685:71:101"},"nativeSrc":"11685:71:101","nodeType":"YulExpressionStatement","src":"11685:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11777:9:101","nodeType":"YulIdentifier","src":"11777:9:101"},{"kind":"number","nativeSrc":"11788:2:101","nodeType":"YulLiteral","src":"11788:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11773:3:101","nodeType":"YulIdentifier","src":"11773:3:101"},"nativeSrc":"11773:18:101","nodeType":"YulFunctionCall","src":"11773:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11797:4:101","nodeType":"YulIdentifier","src":"11797:4:101"},{"name":"headStart","nativeSrc":"11803:9:101","nodeType":"YulIdentifier","src":"11803:9:101"}],"functionName":{"name":"sub","nativeSrc":"11793:3:101","nodeType":"YulIdentifier","src":"11793:3:101"},"nativeSrc":"11793:20:101","nodeType":"YulFunctionCall","src":"11793:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11766:6:101","nodeType":"YulIdentifier","src":"11766:6:101"},"nativeSrc":"11766:48:101","nodeType":"YulFunctionCall","src":"11766:48:101"},"nativeSrc":"11766:48:101","nodeType":"YulExpressionStatement","src":"11766:48:101"},{"nativeSrc":"11823:86:101","nodeType":"YulAssignment","src":"11823:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11895:6:101","nodeType":"YulIdentifier","src":"11895:6:101"},{"name":"tail","nativeSrc":"11904:4:101","nodeType":"YulIdentifier","src":"11904:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11831:63:101","nodeType":"YulIdentifier","src":"11831:63:101"},"nativeSrc":"11831:78:101","nodeType":"YulFunctionCall","src":"11831:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11823:4:101","nodeType":"YulIdentifier","src":"11823:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11493:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11603:9:101","nodeType":"YulTypedName","src":"11603:9:101","type":""},{"name":"value1","nativeSrc":"11615:6:101","nodeType":"YulTypedName","src":"11615:6:101","type":""},{"name":"value0","nativeSrc":"11623:6:101","nodeType":"YulTypedName","src":"11623:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11634:4:101","nodeType":"YulTypedName","src":"11634:4:101","type":""}],"src":"11493:423:101"},{"body":{"nativeSrc":"11962:76:101","nodeType":"YulBlock","src":"11962:76:101","statements":[{"body":{"nativeSrc":"12016:16:101","nodeType":"YulBlock","src":"12016:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12025:1:101","nodeType":"YulLiteral","src":"12025:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12028:1:101","nodeType":"YulLiteral","src":"12028:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12018:6:101","nodeType":"YulIdentifier","src":"12018:6:101"},"nativeSrc":"12018:12:101","nodeType":"YulFunctionCall","src":"12018:12:101"},"nativeSrc":"12018:12:101","nodeType":"YulExpressionStatement","src":"12018:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11985:5:101","nodeType":"YulIdentifier","src":"11985:5:101"},{"arguments":[{"name":"value","nativeSrc":"12007:5:101","nodeType":"YulIdentifier","src":"12007:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"11992:14:101","nodeType":"YulIdentifier","src":"11992:14:101"},"nativeSrc":"11992:21:101","nodeType":"YulFunctionCall","src":"11992:21:101"}],"functionName":{"name":"eq","nativeSrc":"11982:2:101","nodeType":"YulIdentifier","src":"11982:2:101"},"nativeSrc":"11982:32:101","nodeType":"YulFunctionCall","src":"11982:32:101"}],"functionName":{"name":"iszero","nativeSrc":"11975:6:101","nodeType":"YulIdentifier","src":"11975:6:101"},"nativeSrc":"11975:40:101","nodeType":"YulFunctionCall","src":"11975:40:101"},"nativeSrc":"11972:60:101","nodeType":"YulIf","src":"11972:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11922:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11955:5:101","nodeType":"YulTypedName","src":"11955:5:101","type":""}],"src":"11922:116:101"},{"body":{"nativeSrc":"12104:77:101","nodeType":"YulBlock","src":"12104:77:101","statements":[{"nativeSrc":"12114:22:101","nodeType":"YulAssignment","src":"12114:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12129:6:101","nodeType":"YulIdentifier","src":"12129:6:101"}],"functionName":{"name":"mload","nativeSrc":"12123:5:101","nodeType":"YulIdentifier","src":"12123:5:101"},"nativeSrc":"12123:13:101","nodeType":"YulFunctionCall","src":"12123:13:101"},"variableNames":[{"name":"value","nativeSrc":"12114:5:101","nodeType":"YulIdentifier","src":"12114:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12169:5:101","nodeType":"YulIdentifier","src":"12169:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12145:23:101","nodeType":"YulIdentifier","src":"12145:23:101"},"nativeSrc":"12145:30:101","nodeType":"YulFunctionCall","src":"12145:30:101"},"nativeSrc":"12145:30:101","nodeType":"YulExpressionStatement","src":"12145:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12044:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12082:6:101","nodeType":"YulTypedName","src":"12082:6:101","type":""},{"name":"end","nativeSrc":"12090:3:101","nodeType":"YulTypedName","src":"12090:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12098:5:101","nodeType":"YulTypedName","src":"12098:5:101","type":""}],"src":"12044:137:101"},{"body":{"nativeSrc":"12261:271:101","nodeType":"YulBlock","src":"12261:271:101","statements":[{"body":{"nativeSrc":"12307:83:101","nodeType":"YulBlock","src":"12307:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12309:77:101","nodeType":"YulIdentifier","src":"12309:77:101"},"nativeSrc":"12309:79:101","nodeType":"YulFunctionCall","src":"12309:79:101"},"nativeSrc":"12309:79:101","nodeType":"YulExpressionStatement","src":"12309:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12282:7:101","nodeType":"YulIdentifier","src":"12282:7:101"},{"name":"headStart","nativeSrc":"12291:9:101","nodeType":"YulIdentifier","src":"12291:9:101"}],"functionName":{"name":"sub","nativeSrc":"12278:3:101","nodeType":"YulIdentifier","src":"12278:3:101"},"nativeSrc":"12278:23:101","nodeType":"YulFunctionCall","src":"12278:23:101"},{"kind":"number","nativeSrc":"12303:2:101","nodeType":"YulLiteral","src":"12303:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12274:3:101","nodeType":"YulIdentifier","src":"12274:3:101"},"nativeSrc":"12274:32:101","nodeType":"YulFunctionCall","src":"12274:32:101"},"nativeSrc":"12271:119:101","nodeType":"YulIf","src":"12271:119:101"},{"nativeSrc":"12400:125:101","nodeType":"YulBlock","src":"12400:125:101","statements":[{"nativeSrc":"12415:15:101","nodeType":"YulVariableDeclaration","src":"12415:15:101","value":{"kind":"number","nativeSrc":"12429:1:101","nodeType":"YulLiteral","src":"12429:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12419:6:101","nodeType":"YulTypedName","src":"12419:6:101","type":""}]},{"nativeSrc":"12444:71:101","nodeType":"YulAssignment","src":"12444:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12487:9:101","nodeType":"YulIdentifier","src":"12487:9:101"},{"name":"offset","nativeSrc":"12498:6:101","nodeType":"YulIdentifier","src":"12498:6:101"}],"functionName":{"name":"add","nativeSrc":"12483:3:101","nodeType":"YulIdentifier","src":"12483:3:101"},"nativeSrc":"12483:22:101","nodeType":"YulFunctionCall","src":"12483:22:101"},{"name":"dataEnd","nativeSrc":"12507:7:101","nodeType":"YulIdentifier","src":"12507:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12454:28:101","nodeType":"YulIdentifier","src":"12454:28:101"},"nativeSrc":"12454:61:101","nodeType":"YulFunctionCall","src":"12454:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12444:6:101","nodeType":"YulIdentifier","src":"12444:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12187:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12231:9:101","nodeType":"YulTypedName","src":"12231:9:101","type":""},{"name":"dataEnd","nativeSrc":"12242:7:101","nodeType":"YulTypedName","src":"12242:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12254:6:101","nodeType":"YulTypedName","src":"12254:6:101","type":""}],"src":"12187:345:101"},{"body":{"nativeSrc":"12712:359:101","nodeType":"YulBlock","src":"12712:359:101","statements":[{"nativeSrc":"12722:26:101","nodeType":"YulAssignment","src":"12722:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12734:9:101","nodeType":"YulIdentifier","src":"12734:9:101"},{"kind":"number","nativeSrc":"12745:2:101","nodeType":"YulLiteral","src":"12745:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12730:3:101","nodeType":"YulIdentifier","src":"12730:3:101"},"nativeSrc":"12730:18:101","nodeType":"YulFunctionCall","src":"12730:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12722:4:101","nodeType":"YulIdentifier","src":"12722:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12802:6:101","nodeType":"YulIdentifier","src":"12802:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12815:9:101","nodeType":"YulIdentifier","src":"12815:9:101"},{"kind":"number","nativeSrc":"12826:1:101","nodeType":"YulLiteral","src":"12826:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12811:3:101","nodeType":"YulIdentifier","src":"12811:3:101"},"nativeSrc":"12811:17:101","nodeType":"YulFunctionCall","src":"12811:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12758:43:101","nodeType":"YulIdentifier","src":"12758:43:101"},"nativeSrc":"12758:71:101","nodeType":"YulFunctionCall","src":"12758:71:101"},"nativeSrc":"12758:71:101","nodeType":"YulExpressionStatement","src":"12758:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12883:6:101","nodeType":"YulIdentifier","src":"12883:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12896:9:101","nodeType":"YulIdentifier","src":"12896:9:101"},{"kind":"number","nativeSrc":"12907:2:101","nodeType":"YulLiteral","src":"12907:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12892:3:101","nodeType":"YulIdentifier","src":"12892:3:101"},"nativeSrc":"12892:18:101","nodeType":"YulFunctionCall","src":"12892:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12839:43:101","nodeType":"YulIdentifier","src":"12839:43:101"},"nativeSrc":"12839:72:101","nodeType":"YulFunctionCall","src":"12839:72:101"},"nativeSrc":"12839:72:101","nodeType":"YulExpressionStatement","src":"12839:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12932:9:101","nodeType":"YulIdentifier","src":"12932:9:101"},{"kind":"number","nativeSrc":"12943:2:101","nodeType":"YulLiteral","src":"12943:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12928:3:101","nodeType":"YulIdentifier","src":"12928:3:101"},"nativeSrc":"12928:18:101","nodeType":"YulFunctionCall","src":"12928:18:101"},{"arguments":[{"name":"tail","nativeSrc":"12952:4:101","nodeType":"YulIdentifier","src":"12952:4:101"},{"name":"headStart","nativeSrc":"12958:9:101","nodeType":"YulIdentifier","src":"12958:9:101"}],"functionName":{"name":"sub","nativeSrc":"12948:3:101","nodeType":"YulIdentifier","src":"12948:3:101"},"nativeSrc":"12948:20:101","nodeType":"YulFunctionCall","src":"12948:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12921:6:101","nodeType":"YulIdentifier","src":"12921:6:101"},"nativeSrc":"12921:48:101","nodeType":"YulFunctionCall","src":"12921:48:101"},"nativeSrc":"12921:48:101","nodeType":"YulExpressionStatement","src":"12921:48:101"},{"nativeSrc":"12978:86:101","nodeType":"YulAssignment","src":"12978:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13050:6:101","nodeType":"YulIdentifier","src":"13050:6:101"},{"name":"tail","nativeSrc":"13059:4:101","nodeType":"YulIdentifier","src":"13059:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"12986:63:101","nodeType":"YulIdentifier","src":"12986:63:101"},"nativeSrc":"12986:78:101","nodeType":"YulFunctionCall","src":"12986:78:101"},"variableNames":[{"name":"tail","nativeSrc":"12978:4:101","nodeType":"YulIdentifier","src":"12978:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12538:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12668:9:101","nodeType":"YulTypedName","src":"12668:9:101","type":""},{"name":"value2","nativeSrc":"12680:6:101","nodeType":"YulTypedName","src":"12680:6:101","type":""},{"name":"value1","nativeSrc":"12688:6:101","nodeType":"YulTypedName","src":"12688:6:101","type":""},{"name":"value0","nativeSrc":"12696:6:101","nodeType":"YulTypedName","src":"12696:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12707:4:101","nodeType":"YulTypedName","src":"12707:4:101","type":""}],"src":"12538:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6589":[{"length":32,"start":512},{"length":32,"start":640},{"length":32,"start":1654},{"length":32,"start":2159}],"6592":[{"length":32,"start":302},{"length":32,"start":1391},{"length":32,"start":2032}],"6596":[{"length":32,"start":579},{"length":32,"start":1346},{"length":32,"start":1985}],"6600":[{"length":32,"start":382},{"length":32,"start":2350}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b60405161012091906109df565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a0c565b61011360045481565b610113610174366004610a3b565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a7e565b6101c06101bb366004610a9d565b61032e565b005b61011360025481565b6101c06101d9366004610abb565b61039f565b6101e6610473565b6040516101209190610afd565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610abb565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b610113610770565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed816107bd565b9392505050565b5f6102fd610770565b90505f818311801561030e57508115155b610318578261031a565b815b9050610325816107bd565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610915565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610915565b5f546103ed6301e1338084610b33565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161046491906109df565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b610770565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610b46565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e5610770565b90506004548183116104f757826104f9565b815b6105039190610b59565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f000000000000000000000000000000000000000000000000000000000000000090600401610a0c565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610915565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f49190610b77565b6040516342c8312b60e11b81529091506001600160a01b0382169063859062569061072b90670de0b6b3a7640000906004016109df565b602060405180830381865afa158015610746573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076a9190610ba0565b91505090565b5f80600354426107809190610b46565b90505f670de0b6b3a7640000825f5460025461079c9190610bbe565b6107a69190610bbe565b6107b09190610b33565b6002546102ed9190610b59565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161082b9190610a0c565b602060405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086a9190610ba0565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190610bf1565b60ff16905061090181600a610d1b565b61090b8487610bbe565b6103259190610b33565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109659033908690600401610d64565b602060405180830381865afa158015610980573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a49190610d97565b9050806109d357333083604051634a3fa29360e01b81526004016109ca93929190610db5565b60405180910390fd5b5050565b805b82525050565b602081016109ed82846109d7565b92915050565b5f6001600160a01b0382166109ed565b6109d9816109f3565b602081016109ed8284610a03565b610a23816109f3565b8114610a2d575f80fd5b50565b80356109ed81610a1a565b5f60208284031215610a4e57610a4e5f80fd5b5f610a598484610a30565b949350505050565b5f6109ed826109f3565b5f6109ed82610a61565b6109d981610a6b565b602081016109ed8284610a75565b80610a23565b80356109ed81610a8c565b5f60208284031215610ab057610ab05f80fd5b5f610a598484610a92565b5f8060408385031215610acf57610acf5f80fd5b5f610ada8585610a92565b9250506020610aeb85828601610a92565b9150509250929050565b8015156109d9565b602081016109ed8284610af5565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b4157610b41610b0b565b500490565b818103818111156109ed576109ed610b1f565b808201808211156109ed576109ed610b1f565b80516109ed81610a1a565b5f60208284031215610b8a57610b8a5f80fd5b5f610a598484610b6c565b80516109ed81610a8c565b5f60208284031215610bb357610bb35f80fd5b5f610a598484610b95565b818102808215838204851417610bd657610bd6610b1f565b5092915050565b60ff8116610a23565b80516109ed81610bdd565b5f60208284031215610c0457610c045f80fd5b5f610a598484610be6565b80825b6001851115610c4e57808604811115610c2d57610c2d610b1f565b6001851615610c3b57908102905b8002610c478560011c90565b9450610c12565b94509492505050565b5f82610c65575060016102ed565b81610c7157505f6102ed565b8160018114610c875760028114610c9157610cbe565b60019150506102ed565b60ff841115610ca257610ca2610b1f565b8360020a915084821115610cb857610cb8610b1f565b506102ed565b5060208310610133831016604e8410600b8410161715610cf1575081810a83811115610cec57610cec610b1f565b6102ed565b610cfe8484846001610c0f565b92509050818404811115610d1457610d14610b1f565b0292915050565b5f6102ed5f198484610c57565b8281835e505f910152565b5f610d3c825190565b808452602084019350610d53818560208601610d28565b601f01601f19169290920192915050565b60408101610d728285610a03565b8181036020830152610a598184610d33565b801515610a23565b80516109ed81610d84565b5f60208284031215610daa57610daa5f80fd5b5f610a598484610d8c565b60608101610dc38286610a03565b610dd06020830185610a03565b81810360408301526103258184610d3356fea26469706673582212206d5e924a009075f937a6a482a5ee852d94e346ebde50b578720992ec8138111864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x9DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA0C JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0xA3B JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA7E JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xAFD JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x770 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x7BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x770 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x7BD JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x915 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x915 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xB33 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x9DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x770 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xB46 JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x770 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xB59 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA0C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x915 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7546172 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 0x6D0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F4 SWAP2 SWAP1 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42C8312B PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x85906256 SWAP1 PUSH2 0x72B SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9DF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x746 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x76A SWAP2 SWAP1 PUSH2 0xBA0 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x780 SWAP2 SWAP1 PUSH2 0xB46 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x79C SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x7B0 SWAP2 SWAP1 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xB59 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x82B SWAP2 SWAP1 PUSH2 0xA0C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x846 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x86A SWAP2 SWAP1 PUSH2 0xBA0 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8CD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8F1 SWAP2 SWAP1 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x901 DUP2 PUSH1 0xA PUSH2 0xD1B JUMP JUMPDEST PUSH2 0x90B DUP5 DUP8 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x965 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD64 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x980 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x9A4 SWAP2 SWAP1 PUSH2 0xD97 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9D3 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDB5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0x9D7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9ED JUMP JUMPDEST PUSH2 0x9D9 DUP2 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xA23 DUP2 PUSH2 0x9F3 JUMP JUMPDEST DUP2 EQ PUSH2 0xA2D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9ED DUP2 PUSH2 0xA1A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA4E JUMPI PUSH2 0xA4E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xA30 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9ED DUP3 PUSH2 0x9F3 JUMP JUMPDEST PUSH0 PUSH2 0x9ED DUP3 PUSH2 0xA61 JUMP JUMPDEST PUSH2 0x9D9 DUP2 PUSH2 0xA6B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0xA75 JUMP JUMPDEST DUP1 PUSH2 0xA23 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9ED DUP2 PUSH2 0xA8C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB0 JUMPI PUSH2 0xAB0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xA92 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xACF JUMPI PUSH2 0xACF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xADA DUP6 DUP6 PUSH2 0xA92 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAEB DUP6 DUP3 DUP7 ADD PUSH2 0xA92 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9D9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9ED DUP3 DUP5 PUSH2 0xAF5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB41 JUMPI PUSH2 0xB41 PUSH2 0xB0B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9ED JUMPI PUSH2 0x9ED PUSH2 0xB1F JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9ED JUMPI PUSH2 0x9ED PUSH2 0xB1F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xA1A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB8A JUMPI PUSH2 0xB8A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xB6C JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xA8C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBB3 JUMPI PUSH2 0xBB3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xB95 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBD6 JUMPI PUSH2 0xBD6 PUSH2 0xB1F JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA23 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xBDD JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC04 JUMPI PUSH2 0xC04 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xBE6 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC4E JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xC2D JUMPI PUSH2 0xC2D PUSH2 0xB1F JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xC3B JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC47 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xC12 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC65 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xC71 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC87 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC91 JUMPI PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xCA2 JUMPI PUSH2 0xCA2 PUSH2 0xB1F JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xCB8 JUMPI PUSH2 0xCB8 PUSH2 0xB1F JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCF1 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEC PUSH2 0xB1F JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xCFE DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xC0F JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xD14 JUMPI PUSH2 0xD14 PUSH2 0xB1F JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xC57 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD3C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD53 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD72 DUP3 DUP6 PUSH2 0xA03 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA59 DUP2 DUP5 PUSH2 0xD33 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA23 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9ED DUP2 PUSH2 0xD84 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAA JUMPI PUSH2 0xDAA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA59 DUP5 DUP5 PUSH2 0xD8C JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xDC3 DUP3 DUP7 PUSH2 0xA03 JUMP JUMPDEST PUSH2 0xDD0 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xA03 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xD33 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x5E924A009075F937A6A482A5EE85 0x2D SWAP5 0xE3 CHAINID 0xEB 0xDE POP 0xB5 PUSH25 0x720992EC8138111864736F6C63430008190033000000000000 ","sourceMap":"447:1097:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;1336:206:47;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1336:206:47:-;1397:7;1416:19;1458:16;-1:-1:-1;;;;;1451:31:47;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1502;;-1:-1:-1;;;1502:33:47;;1416:69;;-1:-1:-1;;;;;;1502:22:47;;;;;:33;;186:4:17;;1502:33:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1495:40;;;1336:206;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;447:1097:47;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;447:1097:47;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;447:1097:47;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5143:180::-;-1:-1:-1;;;5188:1:101;5181:88;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5329:180;-1:-1:-1;;;5374:1:101;5367:88;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5515:185;5555:1;5645;5635:35;;5650:18;;:::i;:::-;-1:-1:-1;5685:9:101;;5515:185::o;5706:194::-;5837:9;;;5859:11;;;5856:37;;;5873:18;;:::i;5906:191::-;6035:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6103:143::-;6185:13;;6207:33;6185:13;6207:33;:::i;6252:351::-;6322:6;6371:2;6359:9;6350:7;6346:23;6342:32;6339:119;;;6377:79;447:1097:47;;;6377:79:101;6497:1;6522:64;6578:7;6558:9;6522:64;:::i;6609:143::-;6691:13;;6713:33;6691:13;6713:33;:::i;6758:351::-;6828:6;6877:2;6865:9;6856:7;6852:23;6848:32;6845:119;;;6883:79;447:1097:47;;;6883:79:101;7003:1;7028:64;7084:7;7064:9;7028:64;:::i;7115:410::-;7260:9;;;;7422;;7455:15;;;7449:22;;7402:83;7379:139;;7498:18;;:::i;:::-;7163:362;7115:410;;;;:::o;7623:118::-;7606:4;7595:16;;7694:22;7531:86;7747:139;7827:13;;7849:31;7827:13;7849:31;:::i;7892:347::-;7960:6;8009:2;7997:9;7988:7;7984:23;7980:32;7977:119;;;8015:79;447:1097:47;;;8015:79:101;8135:1;8160:62;8214:7;8194:9;8160:62;:::i;8353:848::-;8445:6;8469:5;8483:712;8504:1;8494:8;8491:15;8483:712;;;8599:4;8594:3;8590:14;8584:4;8581:24;8578:50;;;8608:18;;:::i;:::-;8658:1;8648:8;8644:16;8641:451;;;9062:16;;;;8641:451;9113:15;;9153:32;9176:8;8331:1;8327:13;;8245:102;9153:32;9141:44;;8483:712;;;8353:848;;;;;;;:::o;9207:1073::-;9261:5;9452:8;9442:40;;-1:-1:-1;9473:1:101;9475:5;;9442:40;9501:4;9491:36;;-1:-1:-1;9518:1:101;9520:5;;9491:36;9587:4;9635:1;9630:27;;;;9671:1;9666:191;;;;9580:277;;9630:27;9648:1;9639:10;;9650:5;;;9666:191;9711:3;9701:8;9698:17;9695:43;;;9718:18;;:::i;:::-;9767:8;9764:1;9760:16;9751:25;;9802:3;9795:5;9792:14;9789:40;;;9809:18;;:::i;:::-;9842:5;;;9580:277;;9966:2;9956:8;9953:16;9947:3;9941:4;9938:13;9934:36;9916:2;9906:8;9903:16;9898:2;9892:4;9889:12;9885:35;9869:111;9866:246;;;-1:-1:-1;10012:19:101;;;10047:14;;;10044:40;;;10064:18;;:::i;:::-;10097:5;;9866:246;10137:42;10175:3;10165:8;10159:4;10156:1;10137:42;:::i;:::-;10122:57;;;;10211:4;10206:3;10202:14;10195:5;10192:25;10189:51;;;10220:18;;:::i;:::-;10258:16;;9207:1073;-1:-1:-1;;9207:1073:101:o;10286:285::-;10346:5;10460:104;-1:-1:-1;;10487:8:101;10481:4;10460:104;:::i;10857:139::-;10946:6;10941:3;10936;10930:23;-1:-1:-1;10987:1:101;10969:16;;10962:27;10857:139::o;11110:377::-;11198:3;11226:39;11259:5;10657:12;;10577:99;11226:39;10788:19;;;10840:4;10831:14;;11274:78;;11361:65;11419:6;11414:3;11407:4;11400:5;11396:16;11361:65;:::i;:::-;11094:2;11074:14;-1:-1:-1;;11070:28:101;11442:39;;;;;;-1:-1:-1;;11110:377:101:o;11493:423::-;11672:2;11657:18;;11685:71;11661:9;11729:6;11685:71;:::i;:::-;11803:9;11797:4;11793:20;11788:2;11777:9;11773:18;11766:48;11831:78;11904:4;11895:6;11831:78;:::i;11922:116::-;4124:13;;4117:21;11992;4054:90;12044:137;12123:13;;12145:30;12123:13;12145:30;:::i;12187:345::-;12254:6;12303:2;12291:9;12282:7;12278:23;12274:32;12271:119;;;12309:79;447:1097:47;;;12309:79:101;12429:1;12454:61;12507:7;12487:9;12454:61;:::i;12538:533::-;12745:2;12730:18;;12758:71;12734:9;12802:6;12758:71;:::i;:::-;12839:72;12907:2;12896:9;12892:18;12883:6;12839:72;:::i;:::-;12958:9;12952:4;12948:20;12943:2;12932:9;12928:18;12921:48;12986:78;13059:4;13050:6;12986:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"721600","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asBNB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slisBNB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"price The amount of slisBNB for asBNB\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"asBNBOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of slisBNB for 1 asBNB\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of asBNB asset\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/AsBNBOracle.sol\":\"AsBNBOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IAsBNB.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAsBNB {\\n    function minter() external view returns (address);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x34a434d78d48a1c33f79740bab9454fb5eaf05eb38e3abddd3fe55e6f4b4c937\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IAsBNBMinter.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAsBNBMinter {\\n    function convertToTokens(uint256 amount) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x3cf93eddba855443b20f0dcfd7938448c9b44caa866403f53b6cd5bcf4ec1003\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/AsBNBOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IAsBNB } from \\\"../interfaces/IAsBNB.sol\\\";\\nimport { IAsBNBMinter } from \\\"../interfaces/IAsBNBMinter.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\n\\n/**\\n * @title asBNBOracle\\n * @author Venus\\n * @notice This oracle fetches the price of asBNB asset\\n */\\ncontract AsBNBOracle is CorrelatedTokenOracle {\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address asBNB,\\n        address slisBNB,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            asBNB,\\n            slisBNB,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {}\\n\\n    /**\\n     * @notice Fetches the amount of slisBNB for 1 asBNB\\n     * @return price The amount of slisBNB for asBNB\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        IAsBNBMinter minter = IAsBNBMinter(IAsBNB(CORRELATED_TOKEN).minter());\\n        return minter.convertToTokens(EXP_SCALE);\\n    }\\n}\\n\",\"keccak256\":\"0xe6f598e7ce16c12c121a5884e136a3f84618e74b0a9280f9ae9ad1c64d2755b5\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/AsBNBOracle.sol:AsBNBOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/AsBNBOracle.sol:AsBNBOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/AsBNBOracle.sol:AsBNBOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/AsBNBOracle.sol:AsBNBOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/AsBNBOracle.sol:AsBNBOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of slisBNB for 1 asBNB"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of asBNB asset","version":1}}},"contracts/oracles/BNBxOracle.sol":{"BNBxOracle":{"abi":[{"inputs":[{"internalType":"address","name":"stakeManager","type":"address"},{"internalType":"address","name":"bnbx","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKE_MANAGER","outputs":[{"internalType":"contract IStaderStakeManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"price The amount of BNB for BNBx"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"BNBxOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_3977":{"entryPoint":null,"id":3977,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":331,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":410,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":427,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":438,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":650,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":373,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":630,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":391,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":421,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516110f53803806110f583398101604081905261002f916101b6565b8773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb8888888888888861005a6301e133808761028a565b5f81905515801561006a57505f85115b8061007e57505f805411801561007e575084155b1561009c576040516353b7e64560e11b815260040160405180910390fd5b8315806100a7575082155b80156100b257505f85115b156100d05760405163b8a5589b60e01b815260040160405180910390fd5b6100d98961014b565b6100e28861014b565b6100eb8761014b565b6100f48261014b565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261012e8961014b565b5050506001600160a01b03909516610100525061029d9350505050565b6001600160a01b038116610172576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61019081610175565b8114610172575f80fd5b805161018181610187565b80610190565b8051610181816101a5565b5f805f805f805f805f6101208a8c0312156101d2576101d25f80fd5b5f6101dd8c8c61019a565b99505060206101ee8c828d0161019a565b98505060406101ff8c828d0161019a565b97505060606102108c828d016101ab565b96505060806102218c828d016101ab565b95505060a06102328c828d016101ab565b94505060c06102438c828d016101ab565b93505060e06102548c828d0161019a565b9250506101006102668c828d016101ab565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261029857610298610276565b500490565b60805160a05160c05160e05161010051610de36103125f395f818161023d01526106e301525f8181610194015261092201525f81816102800152818161059a01526107b501525f8181610144015281816105c701526107e401525f8181610216015281816102d801526108630152610de35ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c806369240426116100a9578063a4edcd4c1161006e578063a4edcd4c1461027b578063a9534f8a146102a2578063abb85613146102bd578063ac5a693e146102c5578063bdf13af2146102cd575f80fd5b8063692404261461020957806369818a35146102115780637353847a146102385780637fc4e4a01461025f5780639c43eb5414610272575f80fd5b806345be2dc7116100ef57806345be2dc71461018f5780635213f9c8146101c3578063596efe6f146101d8578063643d813d146101e1578063671528d4146101f4575f80fd5b806307d0413c1461012057806329db1be61461013f5780634169d2451461017357806341976e091461017c575b5f80fd5b61012960015481565b60405161013691906109d3565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a00565b61012960045481565b61012961018a366004610a2f565b6102d5565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a72565b6101d66101d1366004610a91565b610386565b005b61012960025481565b6101d66101ef366004610aaf565b6103f7565b6101fc6104cb565b6040516101369190610af1565b6101d6610506565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6101d661026d366004610aaf565b610652565b61012960035481565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b61016673bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101296106ca565b6101295f5481565b610129610764565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461032857604051630f58058360e11b815260040160405180910390fd5b5f6103316106ca565b90506001545f0361034c57610345816107b1565b9392505050565b5f610355610764565b90505f818311801561036657508115155b6103705782610372565b815b905061037d816107b1565b95945050505050565b6103c46040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610909565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104356040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610909565b5f546104456301e1338084610b27565b5f81905515801561045557505f82115b8061046957505f8054118015610469575081155b15610487576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104bc91906109d3565b60405180910390a45060015550565b5f6001545f036104da57505f90565b5f6104e3610764565b9050805f036104f3575f91505090565b5f6104fc6106ca565b9190911192915050565b6001546003546105169042610b3a565b10806105225750600154155b1561052957565b5f6105326106ca565b90505f61053d610764565b905060045481831161054f5782610551565b815b61055b9190610b4d565b6002819055426003555f0361058357604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105ef907f000000000000000000000000000000000000000000000000000000000000000090600401610a00565b5f604051808303815f87803b158015610606575f80fd5b505af1158015610618573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106906040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610909565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051631940a0dd60e31b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca0506e89061072090670de0b6b3a7640000906004016109d3565b602060405180830381865afa15801561073b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f9190610b6b565b905090565b5f80600354426107749190610b3a565b90505f670de0b6b3a7640000825f546002546107909190610b89565b61079a9190610b89565b6107a49190610b27565b6002546103459190610b4d565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081f9190610a00565b602060405180830381865afa15801561083a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085e9190610b6b565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190610bbc565b60ff1690506108f581600a610ce6565b6108ff8487610b89565b61037d9190610b27565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109599033908690600401610d2f565b602060405180830381865afa158015610974573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109989190610d62565b9050806109c757333083604051634a3fa29360e01b81526004016109be93929190610d80565b60405180910390fd5b5050565b805b82525050565b602081016109e182846109cb565b92915050565b5f6001600160a01b0382166109e1565b6109cd816109e7565b602081016109e182846109f7565b610a17816109e7565b8114610a21575f80fd5b50565b80356109e181610a0e565b5f60208284031215610a4257610a425f80fd5b5f610a4d8484610a24565b949350505050565b5f6109e1826109e7565b5f6109e182610a55565b6109cd81610a5f565b602081016109e18284610a69565b80610a17565b80356109e181610a80565b5f60208284031215610aa457610aa45f80fd5b5f610a4d8484610a86565b5f8060408385031215610ac357610ac35f80fd5b5f610ace8585610a86565b9250506020610adf85828601610a86565b9150509250929050565b8015156109cd565b602081016109e18284610ae9565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b3557610b35610aff565b500490565b818103818111156109e1576109e1610b13565b808201808211156109e1576109e1610b13565b80516109e181610a80565b5f60208284031215610b7e57610b7e5f80fd5b5f610a4d8484610b60565b818102808215838204851417610ba157610ba1610b13565b5092915050565b60ff8116610a17565b80516109e181610ba8565b5f60208284031215610bcf57610bcf5f80fd5b5f610a4d8484610bb1565b80825b6001851115610c1957808604811115610bf857610bf8610b13565b6001851615610c0657908102905b8002610c128560011c90565b9450610bdd565b94509492505050565b5f82610c3057506001610345565b81610c3c57505f610345565b8160018114610c525760028114610c5c57610c89565b6001915050610345565b60ff841115610c6d57610c6d610b13565b8360020a915084821115610c8357610c83610b13565b50610345565b5060208310610133831016604e8410600b8410161715610cbc575081810a83811115610cb757610cb7610b13565b610345565b610cc98484846001610bda565b92509050818404811115610cdf57610cdf610b13565b0292915050565b5f6103455f198484610c22565b8281835e505f910152565b5f610d07825190565b808452602084019350610d1e818560208601610cf3565b601f01601f19169290920192915050565b60408101610d3d82856109f7565b8181036020830152610a4d8184610cfe565b801515610a17565b80516109e181610d4f565b5f60208284031215610d7557610d755f80fd5b5f610a4d8484610d57565b60608101610d8e82866109f7565b610d9b60208301856109f7565b818103604083015261037d8184610cfe56fea2646970667358221220fe8db06422a1e0d555dadbd53f979eaf4ef491d60b6cadb14e973e1c83faaf2064736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10F5 CODESIZE SUB DUP1 PUSH2 0x10F5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1B6 JUMP JUMPDEST DUP8 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x5A PUSH4 0x1E13380 DUP8 PUSH2 0x28A JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x6A JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x7E JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x7E JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0xA7 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xB2 JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9 DUP10 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xE2 DUP9 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xEB DUP8 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xF4 DUP3 PUSH2 0x14B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x12E DUP10 PUSH2 0x14B JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH2 0x100 MSTORE POP PUSH2 0x29D SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x172 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x190 DUP2 PUSH2 0x175 JUMP JUMPDEST DUP2 EQ PUSH2 0x172 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x181 DUP2 PUSH2 0x187 JUMP JUMPDEST DUP1 PUSH2 0x190 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x181 DUP2 PUSH2 0x1A5 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1D2 JUMPI PUSH2 0x1D2 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1DD DUP13 DUP13 PUSH2 0x19A JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1EE DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1FF DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x210 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x221 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x232 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x243 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x254 DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x266 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x298 JUMPI PUSH2 0x298 PUSH2 0x276 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xDE3 PUSH2 0x312 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x23D ADD MSTORE PUSH2 0x6E3 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x194 ADD MSTORE PUSH2 0x922 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x280 ADD MSTORE DUP2 DUP2 PUSH2 0x59A ADD MSTORE PUSH2 0x7B5 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x144 ADD MSTORE DUP2 DUP2 PUSH2 0x5C7 ADD MSTORE PUSH2 0x7E4 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x216 ADD MSTORE DUP2 DUP2 PUSH2 0x2D8 ADD MSTORE PUSH2 0x863 ADD MSTORE PUSH2 0xDE3 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x7353847A EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x17C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA72 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0xA91 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xAF1 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x166 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x764 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x328 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x34C JUMPI PUSH2 0x345 DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x355 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x366 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x370 JUMPI DUP3 PUSH2 0x372 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x37D DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3C4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x435 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x445 PUSH4 0x1E13380 DUP5 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x469 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x469 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x487 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4DA JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4E3 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4F3 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4FC PUSH2 0x6CA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x516 SWAP1 TIMESTAMP PUSH2 0xB3A JUMP JUMPDEST LT DUP1 PUSH2 0x522 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x529 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x532 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x53D PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x54F JUMPI DUP3 PUSH2 0x551 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x55B SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5EF SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA00 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x618 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x690 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1940A0DD PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCA0506E8 SWAP1 PUSH2 0x720 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x75F SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x790 SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x79A SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81F SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x83A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x85E SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8C1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8E5 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8F5 DUP2 PUSH1 0xA PUSH2 0xCE6 JUMP JUMPDEST PUSH2 0x8FF DUP5 DUP8 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x959 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x998 SWAP2 SWAP1 PUSH2 0xD62 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9C7 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9BE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9E1 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xA17 DUP2 PUSH2 0x9E7 JUMP JUMPDEST DUP2 EQ PUSH2 0xA21 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA0E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA42 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA24 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0x9E7 JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0xA55 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xA69 JUMP JUMPDEST DUP1 PUSH2 0xA17 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAA4 JUMPI PUSH2 0xAA4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA86 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xACE DUP6 DUP6 PUSH2 0xA86 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xADF DUP6 DUP3 DUP7 ADD PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xAE9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAFF JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7E JUMPI PUSH2 0xB7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xB60 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBA1 JUMPI PUSH2 0xBA1 PUSH2 0xB13 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xBA8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBCF JUMPI PUSH2 0xBCF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xBB1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC19 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBF8 JUMPI PUSH2 0xBF8 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xC06 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC12 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBDD JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC30 JUMPI POP PUSH1 0x1 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH2 0xC3C JUMPI POP PUSH0 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC52 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC5C JUMPI PUSH2 0xC89 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x345 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC6D JUMPI PUSH2 0xC6D PUSH2 0xB13 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC83 JUMPI PUSH2 0xC83 PUSH2 0xB13 JUMP JUMPDEST POP PUSH2 0x345 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCBC JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCB7 JUMPI PUSH2 0xCB7 PUSH2 0xB13 JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0xCC9 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBDA JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCDF JUMPI PUSH2 0xCDF PUSH2 0xB13 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x345 PUSH0 NOT DUP5 DUP5 PUSH2 0xC22 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD07 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD3D DUP3 DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA4D DUP2 DUP5 PUSH2 0xCFE JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xD4F JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD8E DUP3 DUP7 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xD9B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x37D DUP2 DUP5 PUSH2 0xCFE JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID DUP14 0xB0 PUSH5 0x22A1E0D555 0xDA 0xDB 0xD5 EXTCODEHASH SWAP8 SWAP15 0xAF 0x4E DELEGATECALL SWAP2 0xD6 SIGNEXTEND PUSH13 0xADB14E973E1C83FAAF2064736F PUSH13 0x63430008190033000000000000 ","sourceMap":"507:1386:48:-:0;;;869:765;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1242:4;662:42;1291:15;1320:16;1350:17;1381:30;1425:24;1463:20;1497:12;3527:36:67;408:10:17;1320:16:48;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1534:34:48::1;1555:12:::0;1534:20:::1;:34::i;:::-;-1:-1:-1::0;;;;;;;;1578:49:48;;::::1;;::::0;-1:-1:-1;507:1386:48;;-1:-1:-1;;;;507:1386:48;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;507:1386:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@NATIVE_TOKEN_ADDR_3929":{"entryPoint":null,"id":3929,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@STAKE_MANAGER_3933":{"entryPoint":null,"id":3933,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1969,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2313,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1892,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":725,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_3990":{"entryPoint":1738,"id":3990,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1227,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":1015,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":902,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1618,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1286,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2596,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3415,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2694,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2912,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2993,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2607,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3426,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2923,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2735,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":3004,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2551,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2793,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2665,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IStaderStakeManager_$3620_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3326,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2507,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3456,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3375,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2801,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IStaderStakeManager_$3620__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2515,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2893,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2855,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3034,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3302,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3106,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2953,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2874,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2535,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2655,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IStaderStakeManager_$3620_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2645,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3315,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2835,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2815,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2574,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3407,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2688,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2984,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13205:101","nodeType":"YulBlock","src":"0:13205:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4569:66:101","nodeType":"YulBlock","src":"4569:66:101","statements":[{"nativeSrc":"4579:50:101","nodeType":"YulAssignment","src":"4579:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4623:5:101","nodeType":"YulIdentifier","src":"4623:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4592:30:101","nodeType":"YulIdentifier","src":"4592:30:101"},"nativeSrc":"4592:37:101","nodeType":"YulFunctionCall","src":"4592:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4579:9:101","nodeType":"YulIdentifier","src":"4579:9:101"}]}]},"name":"convert_t_contract$_IStaderStakeManager_$3620_to_t_address","nativeSrc":"4481:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4549:5:101","nodeType":"YulTypedName","src":"4549:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4559:9:101","nodeType":"YulTypedName","src":"4559:9:101","type":""}],"src":"4481:154:101"},{"body":{"nativeSrc":"4734:94:101","nodeType":"YulBlock","src":"4734:94:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4751:3:101","nodeType":"YulIdentifier","src":"4751:3:101"},{"arguments":[{"name":"value","nativeSrc":"4815:5:101","nodeType":"YulIdentifier","src":"4815:5:101"}],"functionName":{"name":"convert_t_contract$_IStaderStakeManager_$3620_to_t_address","nativeSrc":"4756:58:101","nodeType":"YulIdentifier","src":"4756:58:101"},"nativeSrc":"4756:65:101","nodeType":"YulFunctionCall","src":"4756:65:101"}],"functionName":{"name":"mstore","nativeSrc":"4744:6:101","nodeType":"YulIdentifier","src":"4744:6:101"},"nativeSrc":"4744:78:101","nodeType":"YulFunctionCall","src":"4744:78:101"},"nativeSrc":"4744:78:101","nodeType":"YulExpressionStatement","src":"4744:78:101"}]},"name":"abi_encode_t_contract$_IStaderStakeManager_$3620_to_t_address_fromStack","nativeSrc":"4641:187:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4722:5:101","nodeType":"YulTypedName","src":"4722:5:101","type":""},{"name":"pos","nativeSrc":"4729:3:101","nodeType":"YulTypedName","src":"4729:3:101","type":""}],"src":"4641:187:101"},{"body":{"nativeSrc":"4960:152:101","nodeType":"YulBlock","src":"4960:152:101","statements":[{"nativeSrc":"4970:26:101","nodeType":"YulAssignment","src":"4970:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4982:9:101","nodeType":"YulIdentifier","src":"4982:9:101"},{"kind":"number","nativeSrc":"4993:2:101","nodeType":"YulLiteral","src":"4993:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4978:3:101","nodeType":"YulIdentifier","src":"4978:3:101"},"nativeSrc":"4978:18:101","nodeType":"YulFunctionCall","src":"4978:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4970:4:101","nodeType":"YulIdentifier","src":"4970:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5078:6:101","nodeType":"YulIdentifier","src":"5078:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5091:9:101","nodeType":"YulIdentifier","src":"5091:9:101"},{"kind":"number","nativeSrc":"5102:1:101","nodeType":"YulLiteral","src":"5102:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5087:3:101","nodeType":"YulIdentifier","src":"5087:3:101"},"nativeSrc":"5087:17:101","nodeType":"YulFunctionCall","src":"5087:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IStaderStakeManager_$3620_to_t_address_fromStack","nativeSrc":"5006:71:101","nodeType":"YulIdentifier","src":"5006:71:101"},"nativeSrc":"5006:99:101","nodeType":"YulFunctionCall","src":"5006:99:101"},"nativeSrc":"5006:99:101","nodeType":"YulExpressionStatement","src":"5006:99:101"}]},"name":"abi_encode_tuple_t_contract$_IStaderStakeManager_$3620__to_t_address__fromStack_reversed","nativeSrc":"4834:278:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4932:9:101","nodeType":"YulTypedName","src":"4932:9:101","type":""},{"name":"value0","nativeSrc":"4944:6:101","nodeType":"YulTypedName","src":"4944:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4955:4:101","nodeType":"YulTypedName","src":"4955:4:101","type":""}],"src":"4834:278:101"},{"body":{"nativeSrc":"5211:66:101","nodeType":"YulBlock","src":"5211:66:101","statements":[{"nativeSrc":"5221:50:101","nodeType":"YulAssignment","src":"5221:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5265:5:101","nodeType":"YulIdentifier","src":"5265:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5234:30:101","nodeType":"YulIdentifier","src":"5234:30:101"},"nativeSrc":"5234:37:101","nodeType":"YulFunctionCall","src":"5234:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5221:9:101","nodeType":"YulIdentifier","src":"5221:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5118:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5191:5:101","nodeType":"YulTypedName","src":"5191:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5201:9:101","nodeType":"YulTypedName","src":"5201:9:101","type":""}],"src":"5118:159:101"},{"body":{"nativeSrc":"5381:99:101","nodeType":"YulBlock","src":"5381:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5398:3:101","nodeType":"YulIdentifier","src":"5398:3:101"},{"arguments":[{"name":"value","nativeSrc":"5467:5:101","nodeType":"YulIdentifier","src":"5467:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5403:63:101","nodeType":"YulIdentifier","src":"5403:63:101"},"nativeSrc":"5403:70:101","nodeType":"YulFunctionCall","src":"5403:70:101"}],"functionName":{"name":"mstore","nativeSrc":"5391:6:101","nodeType":"YulIdentifier","src":"5391:6:101"},"nativeSrc":"5391:83:101","nodeType":"YulFunctionCall","src":"5391:83:101"},"nativeSrc":"5391:83:101","nodeType":"YulExpressionStatement","src":"5391:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5283:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5369:5:101","nodeType":"YulTypedName","src":"5369:5:101","type":""},{"name":"pos","nativeSrc":"5376:3:101","nodeType":"YulTypedName","src":"5376:3:101","type":""}],"src":"5283:197:101"},{"body":{"nativeSrc":"5617:157:101","nodeType":"YulBlock","src":"5617:157:101","statements":[{"nativeSrc":"5627:26:101","nodeType":"YulAssignment","src":"5627:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5639:9:101","nodeType":"YulIdentifier","src":"5639:9:101"},{"kind":"number","nativeSrc":"5650:2:101","nodeType":"YulLiteral","src":"5650:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5635:3:101","nodeType":"YulIdentifier","src":"5635:3:101"},"nativeSrc":"5635:18:101","nodeType":"YulFunctionCall","src":"5635:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5627:4:101","nodeType":"YulIdentifier","src":"5627:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5740:6:101","nodeType":"YulIdentifier","src":"5740:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5753:9:101","nodeType":"YulIdentifier","src":"5753:9:101"},{"kind":"number","nativeSrc":"5764:1:101","nodeType":"YulLiteral","src":"5764:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5749:3:101","nodeType":"YulIdentifier","src":"5749:3:101"},"nativeSrc":"5749:17:101","nodeType":"YulFunctionCall","src":"5749:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5663:76:101","nodeType":"YulIdentifier","src":"5663:76:101"},"nativeSrc":"5663:104:101","nodeType":"YulFunctionCall","src":"5663:104:101"},"nativeSrc":"5663:104:101","nodeType":"YulExpressionStatement","src":"5663:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"5486:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5589:9:101","nodeType":"YulTypedName","src":"5589:9:101","type":""},{"name":"value0","nativeSrc":"5601:6:101","nodeType":"YulTypedName","src":"5601:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5612:4:101","nodeType":"YulTypedName","src":"5612:4:101","type":""}],"src":"5486:288:101"},{"body":{"nativeSrc":"5808:152:101","nodeType":"YulBlock","src":"5808:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5825:1:101","nodeType":"YulLiteral","src":"5825:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5828:77:101","nodeType":"YulLiteral","src":"5828:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5818:6:101","nodeType":"YulIdentifier","src":"5818:6:101"},"nativeSrc":"5818:88:101","nodeType":"YulFunctionCall","src":"5818:88:101"},"nativeSrc":"5818:88:101","nodeType":"YulExpressionStatement","src":"5818:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5922:1:101","nodeType":"YulLiteral","src":"5922:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5925:4:101","nodeType":"YulLiteral","src":"5925:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5915:6:101","nodeType":"YulIdentifier","src":"5915:6:101"},"nativeSrc":"5915:15:101","nodeType":"YulFunctionCall","src":"5915:15:101"},"nativeSrc":"5915:15:101","nodeType":"YulExpressionStatement","src":"5915:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5946:1:101","nodeType":"YulLiteral","src":"5946:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5949:4:101","nodeType":"YulLiteral","src":"5949:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5939:6:101","nodeType":"YulIdentifier","src":"5939:6:101"},"nativeSrc":"5939:15:101","nodeType":"YulFunctionCall","src":"5939:15:101"},"nativeSrc":"5939:15:101","nodeType":"YulExpressionStatement","src":"5939:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5780:180:101","nodeType":"YulFunctionDefinition","src":"5780:180:101"},{"body":{"nativeSrc":"5994:152:101","nodeType":"YulBlock","src":"5994:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6011:1:101","nodeType":"YulLiteral","src":"6011:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6014:77:101","nodeType":"YulLiteral","src":"6014:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6004:6:101","nodeType":"YulIdentifier","src":"6004:6:101"},"nativeSrc":"6004:88:101","nodeType":"YulFunctionCall","src":"6004:88:101"},"nativeSrc":"6004:88:101","nodeType":"YulExpressionStatement","src":"6004:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6108:1:101","nodeType":"YulLiteral","src":"6108:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6111:4:101","nodeType":"YulLiteral","src":"6111:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6101:6:101","nodeType":"YulIdentifier","src":"6101:6:101"},"nativeSrc":"6101:15:101","nodeType":"YulFunctionCall","src":"6101:15:101"},"nativeSrc":"6101:15:101","nodeType":"YulExpressionStatement","src":"6101:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6132:1:101","nodeType":"YulLiteral","src":"6132:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6135:4:101","nodeType":"YulLiteral","src":"6135:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6125:6:101","nodeType":"YulIdentifier","src":"6125:6:101"},"nativeSrc":"6125:15:101","nodeType":"YulFunctionCall","src":"6125:15:101"},"nativeSrc":"6125:15:101","nodeType":"YulExpressionStatement","src":"6125:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5966:180:101","nodeType":"YulFunctionDefinition","src":"5966:180:101"},{"body":{"nativeSrc":"6194:143:101","nodeType":"YulBlock","src":"6194:143:101","statements":[{"nativeSrc":"6204:25:101","nodeType":"YulAssignment","src":"6204:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6227:1:101","nodeType":"YulIdentifier","src":"6227:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6209:17:101","nodeType":"YulIdentifier","src":"6209:17:101"},"nativeSrc":"6209:20:101","nodeType":"YulFunctionCall","src":"6209:20:101"},"variableNames":[{"name":"x","nativeSrc":"6204:1:101","nodeType":"YulIdentifier","src":"6204:1:101"}]},{"nativeSrc":"6238:25:101","nodeType":"YulAssignment","src":"6238:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6261:1:101","nodeType":"YulIdentifier","src":"6261:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6243:17:101","nodeType":"YulIdentifier","src":"6243:17:101"},"nativeSrc":"6243:20:101","nodeType":"YulFunctionCall","src":"6243:20:101"},"variableNames":[{"name":"y","nativeSrc":"6238:1:101","nodeType":"YulIdentifier","src":"6238:1:101"}]},{"body":{"nativeSrc":"6285:22:101","nodeType":"YulBlock","src":"6285:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6287:16:101","nodeType":"YulIdentifier","src":"6287:16:101"},"nativeSrc":"6287:18:101","nodeType":"YulFunctionCall","src":"6287:18:101"},"nativeSrc":"6287:18:101","nodeType":"YulExpressionStatement","src":"6287:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6282:1:101","nodeType":"YulIdentifier","src":"6282:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6275:6:101","nodeType":"YulIdentifier","src":"6275:6:101"},"nativeSrc":"6275:9:101","nodeType":"YulFunctionCall","src":"6275:9:101"},"nativeSrc":"6272:35:101","nodeType":"YulIf","src":"6272:35:101"},{"nativeSrc":"6317:14:101","nodeType":"YulAssignment","src":"6317:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6326:1:101","nodeType":"YulIdentifier","src":"6326:1:101"},{"name":"y","nativeSrc":"6329:1:101","nodeType":"YulIdentifier","src":"6329:1:101"}],"functionName":{"name":"div","nativeSrc":"6322:3:101","nodeType":"YulIdentifier","src":"6322:3:101"},"nativeSrc":"6322:9:101","nodeType":"YulFunctionCall","src":"6322:9:101"},"variableNames":[{"name":"r","nativeSrc":"6317:1:101","nodeType":"YulIdentifier","src":"6317:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6152:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6183:1:101","nodeType":"YulTypedName","src":"6183:1:101","type":""},{"name":"y","nativeSrc":"6186:1:101","nodeType":"YulTypedName","src":"6186:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6192:1:101","nodeType":"YulTypedName","src":"6192:1:101","type":""}],"src":"6152:185:101"},{"body":{"nativeSrc":"6388:149:101","nodeType":"YulBlock","src":"6388:149:101","statements":[{"nativeSrc":"6398:25:101","nodeType":"YulAssignment","src":"6398:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6421:1:101","nodeType":"YulIdentifier","src":"6421:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6403:17:101","nodeType":"YulIdentifier","src":"6403:17:101"},"nativeSrc":"6403:20:101","nodeType":"YulFunctionCall","src":"6403:20:101"},"variableNames":[{"name":"x","nativeSrc":"6398:1:101","nodeType":"YulIdentifier","src":"6398:1:101"}]},{"nativeSrc":"6432:25:101","nodeType":"YulAssignment","src":"6432:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6455:1:101","nodeType":"YulIdentifier","src":"6455:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6437:17:101","nodeType":"YulIdentifier","src":"6437:17:101"},"nativeSrc":"6437:20:101","nodeType":"YulFunctionCall","src":"6437:20:101"},"variableNames":[{"name":"y","nativeSrc":"6432:1:101","nodeType":"YulIdentifier","src":"6432:1:101"}]},{"nativeSrc":"6466:17:101","nodeType":"YulAssignment","src":"6466:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6478:1:101","nodeType":"YulIdentifier","src":"6478:1:101"},{"name":"y","nativeSrc":"6481:1:101","nodeType":"YulIdentifier","src":"6481:1:101"}],"functionName":{"name":"sub","nativeSrc":"6474:3:101","nodeType":"YulIdentifier","src":"6474:3:101"},"nativeSrc":"6474:9:101","nodeType":"YulFunctionCall","src":"6474:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6466:4:101","nodeType":"YulIdentifier","src":"6466:4:101"}]},{"body":{"nativeSrc":"6508:22:101","nodeType":"YulBlock","src":"6508:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6510:16:101","nodeType":"YulIdentifier","src":"6510:16:101"},"nativeSrc":"6510:18:101","nodeType":"YulFunctionCall","src":"6510:18:101"},"nativeSrc":"6510:18:101","nodeType":"YulExpressionStatement","src":"6510:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6499:4:101","nodeType":"YulIdentifier","src":"6499:4:101"},{"name":"x","nativeSrc":"6505:1:101","nodeType":"YulIdentifier","src":"6505:1:101"}],"functionName":{"name":"gt","nativeSrc":"6496:2:101","nodeType":"YulIdentifier","src":"6496:2:101"},"nativeSrc":"6496:11:101","nodeType":"YulFunctionCall","src":"6496:11:101"},"nativeSrc":"6493:37:101","nodeType":"YulIf","src":"6493:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6343:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6374:1:101","nodeType":"YulTypedName","src":"6374:1:101","type":""},{"name":"y","nativeSrc":"6377:1:101","nodeType":"YulTypedName","src":"6377:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6383:4:101","nodeType":"YulTypedName","src":"6383:4:101","type":""}],"src":"6343:194:101"},{"body":{"nativeSrc":"6587:147:101","nodeType":"YulBlock","src":"6587:147:101","statements":[{"nativeSrc":"6597:25:101","nodeType":"YulAssignment","src":"6597:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6620:1:101","nodeType":"YulIdentifier","src":"6620:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6602:17:101","nodeType":"YulIdentifier","src":"6602:17:101"},"nativeSrc":"6602:20:101","nodeType":"YulFunctionCall","src":"6602:20:101"},"variableNames":[{"name":"x","nativeSrc":"6597:1:101","nodeType":"YulIdentifier","src":"6597:1:101"}]},{"nativeSrc":"6631:25:101","nodeType":"YulAssignment","src":"6631:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6654:1:101","nodeType":"YulIdentifier","src":"6654:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6636:17:101","nodeType":"YulIdentifier","src":"6636:17:101"},"nativeSrc":"6636:20:101","nodeType":"YulFunctionCall","src":"6636:20:101"},"variableNames":[{"name":"y","nativeSrc":"6631:1:101","nodeType":"YulIdentifier","src":"6631:1:101"}]},{"nativeSrc":"6665:16:101","nodeType":"YulAssignment","src":"6665:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6676:1:101","nodeType":"YulIdentifier","src":"6676:1:101"},{"name":"y","nativeSrc":"6679:1:101","nodeType":"YulIdentifier","src":"6679:1:101"}],"functionName":{"name":"add","nativeSrc":"6672:3:101","nodeType":"YulIdentifier","src":"6672:3:101"},"nativeSrc":"6672:9:101","nodeType":"YulFunctionCall","src":"6672:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6665:3:101","nodeType":"YulIdentifier","src":"6665:3:101"}]},{"body":{"nativeSrc":"6705:22:101","nodeType":"YulBlock","src":"6705:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6707:16:101","nodeType":"YulIdentifier","src":"6707:16:101"},"nativeSrc":"6707:18:101","nodeType":"YulFunctionCall","src":"6707:18:101"},"nativeSrc":"6707:18:101","nodeType":"YulExpressionStatement","src":"6707:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6697:1:101","nodeType":"YulIdentifier","src":"6697:1:101"},{"name":"sum","nativeSrc":"6700:3:101","nodeType":"YulIdentifier","src":"6700:3:101"}],"functionName":{"name":"gt","nativeSrc":"6694:2:101","nodeType":"YulIdentifier","src":"6694:2:101"},"nativeSrc":"6694:10:101","nodeType":"YulFunctionCall","src":"6694:10:101"},"nativeSrc":"6691:36:101","nodeType":"YulIf","src":"6691:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6543:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6574:1:101","nodeType":"YulTypedName","src":"6574:1:101","type":""},{"name":"y","nativeSrc":"6577:1:101","nodeType":"YulTypedName","src":"6577:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6583:3:101","nodeType":"YulTypedName","src":"6583:3:101","type":""}],"src":"6543:191:101"},{"body":{"nativeSrc":"6803:80:101","nodeType":"YulBlock","src":"6803:80:101","statements":[{"nativeSrc":"6813:22:101","nodeType":"YulAssignment","src":"6813:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6828:6:101","nodeType":"YulIdentifier","src":"6828:6:101"}],"functionName":{"name":"mload","nativeSrc":"6822:5:101","nodeType":"YulIdentifier","src":"6822:5:101"},"nativeSrc":"6822:13:101","nodeType":"YulFunctionCall","src":"6822:13:101"},"variableNames":[{"name":"value","nativeSrc":"6813:5:101","nodeType":"YulIdentifier","src":"6813:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6871:5:101","nodeType":"YulIdentifier","src":"6871:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6844:26:101","nodeType":"YulIdentifier","src":"6844:26:101"},"nativeSrc":"6844:33:101","nodeType":"YulFunctionCall","src":"6844:33:101"},"nativeSrc":"6844:33:101","nodeType":"YulExpressionStatement","src":"6844:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6740:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6781:6:101","nodeType":"YulTypedName","src":"6781:6:101","type":""},{"name":"end","nativeSrc":"6789:3:101","nodeType":"YulTypedName","src":"6789:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6797:5:101","nodeType":"YulTypedName","src":"6797:5:101","type":""}],"src":"6740:143:101"},{"body":{"nativeSrc":"6966:274:101","nodeType":"YulBlock","src":"6966:274:101","statements":[{"body":{"nativeSrc":"7012:83:101","nodeType":"YulBlock","src":"7012:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7014:77:101","nodeType":"YulIdentifier","src":"7014:77:101"},"nativeSrc":"7014:79:101","nodeType":"YulFunctionCall","src":"7014:79:101"},"nativeSrc":"7014:79:101","nodeType":"YulExpressionStatement","src":"7014:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6987:7:101","nodeType":"YulIdentifier","src":"6987:7:101"},{"name":"headStart","nativeSrc":"6996:9:101","nodeType":"YulIdentifier","src":"6996:9:101"}],"functionName":{"name":"sub","nativeSrc":"6983:3:101","nodeType":"YulIdentifier","src":"6983:3:101"},"nativeSrc":"6983:23:101","nodeType":"YulFunctionCall","src":"6983:23:101"},{"kind":"number","nativeSrc":"7008:2:101","nodeType":"YulLiteral","src":"7008:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6979:3:101","nodeType":"YulIdentifier","src":"6979:3:101"},"nativeSrc":"6979:32:101","nodeType":"YulFunctionCall","src":"6979:32:101"},"nativeSrc":"6976:119:101","nodeType":"YulIf","src":"6976:119:101"},{"nativeSrc":"7105:128:101","nodeType":"YulBlock","src":"7105:128:101","statements":[{"nativeSrc":"7120:15:101","nodeType":"YulVariableDeclaration","src":"7120:15:101","value":{"kind":"number","nativeSrc":"7134:1:101","nodeType":"YulLiteral","src":"7134:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7124:6:101","nodeType":"YulTypedName","src":"7124:6:101","type":""}]},{"nativeSrc":"7149:74:101","nodeType":"YulAssignment","src":"7149:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7195:9:101","nodeType":"YulIdentifier","src":"7195:9:101"},{"name":"offset","nativeSrc":"7206:6:101","nodeType":"YulIdentifier","src":"7206:6:101"}],"functionName":{"name":"add","nativeSrc":"7191:3:101","nodeType":"YulIdentifier","src":"7191:3:101"},"nativeSrc":"7191:22:101","nodeType":"YulFunctionCall","src":"7191:22:101"},{"name":"dataEnd","nativeSrc":"7215:7:101","nodeType":"YulIdentifier","src":"7215:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7159:31:101","nodeType":"YulIdentifier","src":"7159:31:101"},"nativeSrc":"7159:64:101","nodeType":"YulFunctionCall","src":"7159:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7149:6:101","nodeType":"YulIdentifier","src":"7149:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6889:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6936:9:101","nodeType":"YulTypedName","src":"6936:9:101","type":""},{"name":"dataEnd","nativeSrc":"6947:7:101","nodeType":"YulTypedName","src":"6947:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6959:6:101","nodeType":"YulTypedName","src":"6959:6:101","type":""}],"src":"6889:351:101"},{"body":{"nativeSrc":"7294:362:101","nodeType":"YulBlock","src":"7294:362:101","statements":[{"nativeSrc":"7304:25:101","nodeType":"YulAssignment","src":"7304:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7327:1:101","nodeType":"YulIdentifier","src":"7327:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7309:17:101","nodeType":"YulIdentifier","src":"7309:17:101"},"nativeSrc":"7309:20:101","nodeType":"YulFunctionCall","src":"7309:20:101"},"variableNames":[{"name":"x","nativeSrc":"7304:1:101","nodeType":"YulIdentifier","src":"7304:1:101"}]},{"nativeSrc":"7338:25:101","nodeType":"YulAssignment","src":"7338:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7361:1:101","nodeType":"YulIdentifier","src":"7361:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7343:17:101","nodeType":"YulIdentifier","src":"7343:17:101"},"nativeSrc":"7343:20:101","nodeType":"YulFunctionCall","src":"7343:20:101"},"variableNames":[{"name":"y","nativeSrc":"7338:1:101","nodeType":"YulIdentifier","src":"7338:1:101"}]},{"nativeSrc":"7372:28:101","nodeType":"YulVariableDeclaration","src":"7372:28:101","value":{"arguments":[{"name":"x","nativeSrc":"7395:1:101","nodeType":"YulIdentifier","src":"7395:1:101"},{"name":"y","nativeSrc":"7398:1:101","nodeType":"YulIdentifier","src":"7398:1:101"}],"functionName":{"name":"mul","nativeSrc":"7391:3:101","nodeType":"YulIdentifier","src":"7391:3:101"},"nativeSrc":"7391:9:101","nodeType":"YulFunctionCall","src":"7391:9:101"},"variables":[{"name":"product_raw","nativeSrc":"7376:11:101","nodeType":"YulTypedName","src":"7376:11:101","type":""}]},{"nativeSrc":"7409:41:101","nodeType":"YulAssignment","src":"7409:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"7438:11:101","nodeType":"YulIdentifier","src":"7438:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7420:17:101","nodeType":"YulIdentifier","src":"7420:17:101"},"nativeSrc":"7420:30:101","nodeType":"YulFunctionCall","src":"7420:30:101"},"variableNames":[{"name":"product","nativeSrc":"7409:7:101","nodeType":"YulIdentifier","src":"7409:7:101"}]},{"body":{"nativeSrc":"7627:22:101","nodeType":"YulBlock","src":"7627:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7629:16:101","nodeType":"YulIdentifier","src":"7629:16:101"},"nativeSrc":"7629:18:101","nodeType":"YulFunctionCall","src":"7629:18:101"},"nativeSrc":"7629:18:101","nodeType":"YulExpressionStatement","src":"7629:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7560:1:101","nodeType":"YulIdentifier","src":"7560:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7553:6:101","nodeType":"YulIdentifier","src":"7553:6:101"},"nativeSrc":"7553:9:101","nodeType":"YulFunctionCall","src":"7553:9:101"},{"arguments":[{"name":"y","nativeSrc":"7583:1:101","nodeType":"YulIdentifier","src":"7583:1:101"},{"arguments":[{"name":"product","nativeSrc":"7590:7:101","nodeType":"YulIdentifier","src":"7590:7:101"},{"name":"x","nativeSrc":"7599:1:101","nodeType":"YulIdentifier","src":"7599:1:101"}],"functionName":{"name":"div","nativeSrc":"7586:3:101","nodeType":"YulIdentifier","src":"7586:3:101"},"nativeSrc":"7586:15:101","nodeType":"YulFunctionCall","src":"7586:15:101"}],"functionName":{"name":"eq","nativeSrc":"7580:2:101","nodeType":"YulIdentifier","src":"7580:2:101"},"nativeSrc":"7580:22:101","nodeType":"YulFunctionCall","src":"7580:22:101"}],"functionName":{"name":"or","nativeSrc":"7533:2:101","nodeType":"YulIdentifier","src":"7533:2:101"},"nativeSrc":"7533:83:101","nodeType":"YulFunctionCall","src":"7533:83:101"}],"functionName":{"name":"iszero","nativeSrc":"7513:6:101","nodeType":"YulIdentifier","src":"7513:6:101"},"nativeSrc":"7513:113:101","nodeType":"YulFunctionCall","src":"7513:113:101"},"nativeSrc":"7510:139:101","nodeType":"YulIf","src":"7510:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"7246:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7277:1:101","nodeType":"YulTypedName","src":"7277:1:101","type":""},{"name":"y","nativeSrc":"7280:1:101","nodeType":"YulTypedName","src":"7280:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7286:7:101","nodeType":"YulTypedName","src":"7286:7:101","type":""}],"src":"7246:410:101"},{"body":{"nativeSrc":"7705:43:101","nodeType":"YulBlock","src":"7705:43:101","statements":[{"nativeSrc":"7715:27:101","nodeType":"YulAssignment","src":"7715:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7730:5:101","nodeType":"YulIdentifier","src":"7730:5:101"},{"kind":"number","nativeSrc":"7737:4:101","nodeType":"YulLiteral","src":"7737:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7726:3:101","nodeType":"YulIdentifier","src":"7726:3:101"},"nativeSrc":"7726:16:101","nodeType":"YulFunctionCall","src":"7726:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7715:7:101","nodeType":"YulIdentifier","src":"7715:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7662:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7687:5:101","nodeType":"YulTypedName","src":"7687:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7697:7:101","nodeType":"YulTypedName","src":"7697:7:101","type":""}],"src":"7662:86:101"},{"body":{"nativeSrc":"7795:77:101","nodeType":"YulBlock","src":"7795:77:101","statements":[{"body":{"nativeSrc":"7850:16:101","nodeType":"YulBlock","src":"7850:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7859:1:101","nodeType":"YulLiteral","src":"7859:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7862:1:101","nodeType":"YulLiteral","src":"7862:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7852:6:101","nodeType":"YulIdentifier","src":"7852:6:101"},"nativeSrc":"7852:12:101","nodeType":"YulFunctionCall","src":"7852:12:101"},"nativeSrc":"7852:12:101","nodeType":"YulExpressionStatement","src":"7852:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7818:5:101","nodeType":"YulIdentifier","src":"7818:5:101"},{"arguments":[{"name":"value","nativeSrc":"7841:5:101","nodeType":"YulIdentifier","src":"7841:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7825:15:101","nodeType":"YulIdentifier","src":"7825:15:101"},"nativeSrc":"7825:22:101","nodeType":"YulFunctionCall","src":"7825:22:101"}],"functionName":{"name":"eq","nativeSrc":"7815:2:101","nodeType":"YulIdentifier","src":"7815:2:101"},"nativeSrc":"7815:33:101","nodeType":"YulFunctionCall","src":"7815:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7808:6:101","nodeType":"YulIdentifier","src":"7808:6:101"},"nativeSrc":"7808:41:101","nodeType":"YulFunctionCall","src":"7808:41:101"},"nativeSrc":"7805:61:101","nodeType":"YulIf","src":"7805:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7754:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7788:5:101","nodeType":"YulTypedName","src":"7788:5:101","type":""}],"src":"7754:118:101"},{"body":{"nativeSrc":"7939:78:101","nodeType":"YulBlock","src":"7939:78:101","statements":[{"nativeSrc":"7949:22:101","nodeType":"YulAssignment","src":"7949:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7964:6:101","nodeType":"YulIdentifier","src":"7964:6:101"}],"functionName":{"name":"mload","nativeSrc":"7958:5:101","nodeType":"YulIdentifier","src":"7958:5:101"},"nativeSrc":"7958:13:101","nodeType":"YulFunctionCall","src":"7958:13:101"},"variableNames":[{"name":"value","nativeSrc":"7949:5:101","nodeType":"YulIdentifier","src":"7949:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8005:5:101","nodeType":"YulIdentifier","src":"8005:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7980:24:101","nodeType":"YulIdentifier","src":"7980:24:101"},"nativeSrc":"7980:31:101","nodeType":"YulFunctionCall","src":"7980:31:101"},"nativeSrc":"7980:31:101","nodeType":"YulExpressionStatement","src":"7980:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7878:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7917:6:101","nodeType":"YulTypedName","src":"7917:6:101","type":""},{"name":"end","nativeSrc":"7925:3:101","nodeType":"YulTypedName","src":"7925:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7933:5:101","nodeType":"YulTypedName","src":"7933:5:101","type":""}],"src":"7878:139:101"},{"body":{"nativeSrc":"8098:272:101","nodeType":"YulBlock","src":"8098:272:101","statements":[{"body":{"nativeSrc":"8144:83:101","nodeType":"YulBlock","src":"8144:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8146:77:101","nodeType":"YulIdentifier","src":"8146:77:101"},"nativeSrc":"8146:79:101","nodeType":"YulFunctionCall","src":"8146:79:101"},"nativeSrc":"8146:79:101","nodeType":"YulExpressionStatement","src":"8146:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8119:7:101","nodeType":"YulIdentifier","src":"8119:7:101"},{"name":"headStart","nativeSrc":"8128:9:101","nodeType":"YulIdentifier","src":"8128:9:101"}],"functionName":{"name":"sub","nativeSrc":"8115:3:101","nodeType":"YulIdentifier","src":"8115:3:101"},"nativeSrc":"8115:23:101","nodeType":"YulFunctionCall","src":"8115:23:101"},{"kind":"number","nativeSrc":"8140:2:101","nodeType":"YulLiteral","src":"8140:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8111:3:101","nodeType":"YulIdentifier","src":"8111:3:101"},"nativeSrc":"8111:32:101","nodeType":"YulFunctionCall","src":"8111:32:101"},"nativeSrc":"8108:119:101","nodeType":"YulIf","src":"8108:119:101"},{"nativeSrc":"8237:126:101","nodeType":"YulBlock","src":"8237:126:101","statements":[{"nativeSrc":"8252:15:101","nodeType":"YulVariableDeclaration","src":"8252:15:101","value":{"kind":"number","nativeSrc":"8266:1:101","nodeType":"YulLiteral","src":"8266:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8256:6:101","nodeType":"YulTypedName","src":"8256:6:101","type":""}]},{"nativeSrc":"8281:72:101","nodeType":"YulAssignment","src":"8281:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8325:9:101","nodeType":"YulIdentifier","src":"8325:9:101"},{"name":"offset","nativeSrc":"8336:6:101","nodeType":"YulIdentifier","src":"8336:6:101"}],"functionName":{"name":"add","nativeSrc":"8321:3:101","nodeType":"YulIdentifier","src":"8321:3:101"},"nativeSrc":"8321:22:101","nodeType":"YulFunctionCall","src":"8321:22:101"},{"name":"dataEnd","nativeSrc":"8345:7:101","nodeType":"YulIdentifier","src":"8345:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"8291:29:101","nodeType":"YulIdentifier","src":"8291:29:101"},"nativeSrc":"8291:62:101","nodeType":"YulFunctionCall","src":"8291:62:101"},"variableNames":[{"name":"value0","nativeSrc":"8281:6:101","nodeType":"YulIdentifier","src":"8281:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"8023:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8068:9:101","nodeType":"YulTypedName","src":"8068:9:101","type":""},{"name":"dataEnd","nativeSrc":"8079:7:101","nodeType":"YulTypedName","src":"8079:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8091:6:101","nodeType":"YulTypedName","src":"8091:6:101","type":""}],"src":"8023:347:101"},{"body":{"nativeSrc":"8427:51:101","nodeType":"YulBlock","src":"8427:51:101","statements":[{"nativeSrc":"8437:34:101","nodeType":"YulAssignment","src":"8437:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8462:1:101","nodeType":"YulLiteral","src":"8462:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8465:5:101","nodeType":"YulIdentifier","src":"8465:5:101"}],"functionName":{"name":"shr","nativeSrc":"8458:3:101","nodeType":"YulIdentifier","src":"8458:3:101"},"nativeSrc":"8458:13:101","nodeType":"YulFunctionCall","src":"8458:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8437:8:101","nodeType":"YulIdentifier","src":"8437:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"8376:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8408:5:101","nodeType":"YulTypedName","src":"8408:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8418:8:101","nodeType":"YulTypedName","src":"8418:8:101","type":""}],"src":"8376:102:101"},{"body":{"nativeSrc":"8557:775:101","nodeType":"YulBlock","src":"8557:775:101","statements":[{"nativeSrc":"8567:15:101","nodeType":"YulAssignment","src":"8567:15:101","value":{"name":"_power","nativeSrc":"8576:6:101","nodeType":"YulIdentifier","src":"8576:6:101"},"variableNames":[{"name":"power","nativeSrc":"8567:5:101","nodeType":"YulIdentifier","src":"8567:5:101"}]},{"nativeSrc":"8591:14:101","nodeType":"YulAssignment","src":"8591:14:101","value":{"name":"_base","nativeSrc":"8600:5:101","nodeType":"YulIdentifier","src":"8600:5:101"},"variableNames":[{"name":"base","nativeSrc":"8591:4:101","nodeType":"YulIdentifier","src":"8591:4:101"}]},{"body":{"nativeSrc":"8649:677:101","nodeType":"YulBlock","src":"8649:677:101","statements":[{"body":{"nativeSrc":"8737:22:101","nodeType":"YulBlock","src":"8737:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8739:16:101","nodeType":"YulIdentifier","src":"8739:16:101"},"nativeSrc":"8739:18:101","nodeType":"YulFunctionCall","src":"8739:18:101"},"nativeSrc":"8739:18:101","nodeType":"YulExpressionStatement","src":"8739:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8715:4:101","nodeType":"YulIdentifier","src":"8715:4:101"},{"arguments":[{"name":"max","nativeSrc":"8725:3:101","nodeType":"YulIdentifier","src":"8725:3:101"},{"name":"base","nativeSrc":"8730:4:101","nodeType":"YulIdentifier","src":"8730:4:101"}],"functionName":{"name":"div","nativeSrc":"8721:3:101","nodeType":"YulIdentifier","src":"8721:3:101"},"nativeSrc":"8721:14:101","nodeType":"YulFunctionCall","src":"8721:14:101"}],"functionName":{"name":"gt","nativeSrc":"8712:2:101","nodeType":"YulIdentifier","src":"8712:2:101"},"nativeSrc":"8712:24:101","nodeType":"YulFunctionCall","src":"8712:24:101"},"nativeSrc":"8709:50:101","nodeType":"YulIf","src":"8709:50:101"},{"body":{"nativeSrc":"8804:419:101","nodeType":"YulBlock","src":"8804:419:101","statements":[{"nativeSrc":"9184:25:101","nodeType":"YulAssignment","src":"9184:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9197:5:101","nodeType":"YulIdentifier","src":"9197:5:101"},{"name":"base","nativeSrc":"9204:4:101","nodeType":"YulIdentifier","src":"9204:4:101"}],"functionName":{"name":"mul","nativeSrc":"9193:3:101","nodeType":"YulIdentifier","src":"9193:3:101"},"nativeSrc":"9193:16:101","nodeType":"YulFunctionCall","src":"9193:16:101"},"variableNames":[{"name":"power","nativeSrc":"9184:5:101","nodeType":"YulIdentifier","src":"9184:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8779:8:101","nodeType":"YulIdentifier","src":"8779:8:101"},{"kind":"number","nativeSrc":"8789:1:101","nodeType":"YulLiteral","src":"8789:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8775:3:101","nodeType":"YulIdentifier","src":"8775:3:101"},"nativeSrc":"8775:16:101","nodeType":"YulFunctionCall","src":"8775:16:101"},"nativeSrc":"8772:451:101","nodeType":"YulIf","src":"8772:451:101"},{"nativeSrc":"9236:23:101","nodeType":"YulAssignment","src":"9236:23:101","value":{"arguments":[{"name":"base","nativeSrc":"9248:4:101","nodeType":"YulIdentifier","src":"9248:4:101"},{"name":"base","nativeSrc":"9254:4:101","nodeType":"YulIdentifier","src":"9254:4:101"}],"functionName":{"name":"mul","nativeSrc":"9244:3:101","nodeType":"YulIdentifier","src":"9244:3:101"},"nativeSrc":"9244:15:101","nodeType":"YulFunctionCall","src":"9244:15:101"},"variableNames":[{"name":"base","nativeSrc":"9236:4:101","nodeType":"YulIdentifier","src":"9236:4:101"}]},{"nativeSrc":"9272:44:101","nodeType":"YulAssignment","src":"9272:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9307:8:101","nodeType":"YulIdentifier","src":"9307:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"9284:22:101","nodeType":"YulIdentifier","src":"9284:22:101"},"nativeSrc":"9284:32:101","nodeType":"YulFunctionCall","src":"9284:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"9272:8:101","nodeType":"YulIdentifier","src":"9272:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8625:8:101","nodeType":"YulIdentifier","src":"8625:8:101"},{"kind":"number","nativeSrc":"8635:1:101","nodeType":"YulLiteral","src":"8635:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8622:2:101","nodeType":"YulIdentifier","src":"8622:2:101"},"nativeSrc":"8622:15:101","nodeType":"YulFunctionCall","src":"8622:15:101"},"nativeSrc":"8614:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8638:2:101","nodeType":"YulBlock","src":"8638:2:101","statements":[]},"pre":{"nativeSrc":"8618:3:101","nodeType":"YulBlock","src":"8618:3:101","statements":[]},"src":"8614:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8484:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8512:6:101","nodeType":"YulTypedName","src":"8512:6:101","type":""},{"name":"_base","nativeSrc":"8520:5:101","nodeType":"YulTypedName","src":"8520:5:101","type":""},{"name":"exponent","nativeSrc":"8527:8:101","nodeType":"YulTypedName","src":"8527:8:101","type":""},{"name":"max","nativeSrc":"8537:3:101","nodeType":"YulTypedName","src":"8537:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8545:5:101","nodeType":"YulTypedName","src":"8545:5:101","type":""},{"name":"base","nativeSrc":"8552:4:101","nodeType":"YulTypedName","src":"8552:4:101","type":""}],"src":"8484:848:101"},{"body":{"nativeSrc":"9398:1013:101","nodeType":"YulBlock","src":"9398:1013:101","statements":[{"body":{"nativeSrc":"9593:20:101","nodeType":"YulBlock","src":"9593:20:101","statements":[{"nativeSrc":"9595:10:101","nodeType":"YulAssignment","src":"9595:10:101","value":{"kind":"number","nativeSrc":"9604:1:101","nodeType":"YulLiteral","src":"9604:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9595:5:101","nodeType":"YulIdentifier","src":"9595:5:101"}]},{"nativeSrc":"9606:5:101","nodeType":"YulLeave","src":"9606:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9583:8:101","nodeType":"YulIdentifier","src":"9583:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9576:6:101","nodeType":"YulIdentifier","src":"9576:6:101"},"nativeSrc":"9576:16:101","nodeType":"YulFunctionCall","src":"9576:16:101"},"nativeSrc":"9573:40:101","nodeType":"YulIf","src":"9573:40:101"},{"body":{"nativeSrc":"9638:20:101","nodeType":"YulBlock","src":"9638:20:101","statements":[{"nativeSrc":"9640:10:101","nodeType":"YulAssignment","src":"9640:10:101","value":{"kind":"number","nativeSrc":"9649:1:101","nodeType":"YulLiteral","src":"9649:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9640:5:101","nodeType":"YulIdentifier","src":"9640:5:101"}]},{"nativeSrc":"9651:5:101","nodeType":"YulLeave","src":"9651:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9632:4:101","nodeType":"YulIdentifier","src":"9632:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9625:6:101","nodeType":"YulIdentifier","src":"9625:6:101"},"nativeSrc":"9625:12:101","nodeType":"YulFunctionCall","src":"9625:12:101"},"nativeSrc":"9622:36:101","nodeType":"YulIf","src":"9622:36:101"},{"cases":[{"body":{"nativeSrc":"9768:20:101","nodeType":"YulBlock","src":"9768:20:101","statements":[{"nativeSrc":"9770:10:101","nodeType":"YulAssignment","src":"9770:10:101","value":{"kind":"number","nativeSrc":"9779:1:101","nodeType":"YulLiteral","src":"9779:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9770:5:101","nodeType":"YulIdentifier","src":"9770:5:101"}]},{"nativeSrc":"9781:5:101","nodeType":"YulLeave","src":"9781:5:101"}]},"nativeSrc":"9761:27:101","nodeType":"YulCase","src":"9761:27:101","value":{"kind":"number","nativeSrc":"9766:1:101","nodeType":"YulLiteral","src":"9766:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9812:176:101","nodeType":"YulBlock","src":"9812:176:101","statements":[{"body":{"nativeSrc":"9847:22:101","nodeType":"YulBlock","src":"9847:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9849:16:101","nodeType":"YulIdentifier","src":"9849:16:101"},"nativeSrc":"9849:18:101","nodeType":"YulFunctionCall","src":"9849:18:101"},"nativeSrc":"9849:18:101","nodeType":"YulExpressionStatement","src":"9849:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9832:8:101","nodeType":"YulIdentifier","src":"9832:8:101"},{"kind":"number","nativeSrc":"9842:3:101","nodeType":"YulLiteral","src":"9842:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9829:2:101","nodeType":"YulIdentifier","src":"9829:2:101"},"nativeSrc":"9829:17:101","nodeType":"YulFunctionCall","src":"9829:17:101"},"nativeSrc":"9826:43:101","nodeType":"YulIf","src":"9826:43:101"},{"nativeSrc":"9882:25:101","nodeType":"YulAssignment","src":"9882:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9895:1:101","nodeType":"YulLiteral","src":"9895:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9898:8:101","nodeType":"YulIdentifier","src":"9898:8:101"}],"functionName":{"name":"exp","nativeSrc":"9891:3:101","nodeType":"YulIdentifier","src":"9891:3:101"},"nativeSrc":"9891:16:101","nodeType":"YulFunctionCall","src":"9891:16:101"},"variableNames":[{"name":"power","nativeSrc":"9882:5:101","nodeType":"YulIdentifier","src":"9882:5:101"}]},{"body":{"nativeSrc":"9938:22:101","nodeType":"YulBlock","src":"9938:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9940:16:101","nodeType":"YulIdentifier","src":"9940:16:101"},"nativeSrc":"9940:18:101","nodeType":"YulFunctionCall","src":"9940:18:101"},"nativeSrc":"9940:18:101","nodeType":"YulExpressionStatement","src":"9940:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9926:5:101","nodeType":"YulIdentifier","src":"9926:5:101"},{"name":"max","nativeSrc":"9933:3:101","nodeType":"YulIdentifier","src":"9933:3:101"}],"functionName":{"name":"gt","nativeSrc":"9923:2:101","nodeType":"YulIdentifier","src":"9923:2:101"},"nativeSrc":"9923:14:101","nodeType":"YulFunctionCall","src":"9923:14:101"},"nativeSrc":"9920:40:101","nodeType":"YulIf","src":"9920:40:101"},{"nativeSrc":"9973:5:101","nodeType":"YulLeave","src":"9973:5:101"}]},"nativeSrc":"9797:191:101","nodeType":"YulCase","src":"9797:191:101","value":{"kind":"number","nativeSrc":"9802:1:101","nodeType":"YulLiteral","src":"9802:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9718:4:101","nodeType":"YulIdentifier","src":"9718:4:101"},"nativeSrc":"9711:277:101","nodeType":"YulSwitch","src":"9711:277:101"},{"body":{"nativeSrc":"10120:123:101","nodeType":"YulBlock","src":"10120:123:101","statements":[{"nativeSrc":"10134:28:101","nodeType":"YulAssignment","src":"10134:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10147:4:101","nodeType":"YulIdentifier","src":"10147:4:101"},{"name":"exponent","nativeSrc":"10153:8:101","nodeType":"YulIdentifier","src":"10153:8:101"}],"functionName":{"name":"exp","nativeSrc":"10143:3:101","nodeType":"YulIdentifier","src":"10143:3:101"},"nativeSrc":"10143:19:101","nodeType":"YulFunctionCall","src":"10143:19:101"},"variableNames":[{"name":"power","nativeSrc":"10134:5:101","nodeType":"YulIdentifier","src":"10134:5:101"}]},{"body":{"nativeSrc":"10193:22:101","nodeType":"YulBlock","src":"10193:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10195:16:101","nodeType":"YulIdentifier","src":"10195:16:101"},"nativeSrc":"10195:18:101","nodeType":"YulFunctionCall","src":"10195:18:101"},"nativeSrc":"10195:18:101","nodeType":"YulExpressionStatement","src":"10195:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10181:5:101","nodeType":"YulIdentifier","src":"10181:5:101"},{"name":"max","nativeSrc":"10188:3:101","nodeType":"YulIdentifier","src":"10188:3:101"}],"functionName":{"name":"gt","nativeSrc":"10178:2:101","nodeType":"YulIdentifier","src":"10178:2:101"},"nativeSrc":"10178:14:101","nodeType":"YulFunctionCall","src":"10178:14:101"},"nativeSrc":"10175:40:101","nodeType":"YulIf","src":"10175:40:101"},{"nativeSrc":"10228:5:101","nodeType":"YulLeave","src":"10228:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10023:4:101","nodeType":"YulIdentifier","src":"10023:4:101"},{"kind":"number","nativeSrc":"10029:2:101","nodeType":"YulLiteral","src":"10029:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"10020:2:101","nodeType":"YulIdentifier","src":"10020:2:101"},"nativeSrc":"10020:12:101","nodeType":"YulFunctionCall","src":"10020:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"10037:8:101","nodeType":"YulIdentifier","src":"10037:8:101"},{"kind":"number","nativeSrc":"10047:2:101","nodeType":"YulLiteral","src":"10047:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"10034:2:101","nodeType":"YulIdentifier","src":"10034:2:101"},"nativeSrc":"10034:16:101","nodeType":"YulFunctionCall","src":"10034:16:101"}],"functionName":{"name":"and","nativeSrc":"10016:3:101","nodeType":"YulIdentifier","src":"10016:3:101"},"nativeSrc":"10016:35:101","nodeType":"YulFunctionCall","src":"10016:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10072:4:101","nodeType":"YulIdentifier","src":"10072:4:101"},{"kind":"number","nativeSrc":"10078:3:101","nodeType":"YulLiteral","src":"10078:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"10069:2:101","nodeType":"YulIdentifier","src":"10069:2:101"},"nativeSrc":"10069:13:101","nodeType":"YulFunctionCall","src":"10069:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"10087:8:101","nodeType":"YulIdentifier","src":"10087:8:101"},{"kind":"number","nativeSrc":"10097:2:101","nodeType":"YulLiteral","src":"10097:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10084:2:101","nodeType":"YulIdentifier","src":"10084:2:101"},"nativeSrc":"10084:16:101","nodeType":"YulFunctionCall","src":"10084:16:101"}],"functionName":{"name":"and","nativeSrc":"10065:3:101","nodeType":"YulIdentifier","src":"10065:3:101"},"nativeSrc":"10065:36:101","nodeType":"YulFunctionCall","src":"10065:36:101"}],"functionName":{"name":"or","nativeSrc":"10000:2:101","nodeType":"YulIdentifier","src":"10000:2:101"},"nativeSrc":"10000:111:101","nodeType":"YulFunctionCall","src":"10000:111:101"},"nativeSrc":"9997:246:101","nodeType":"YulIf","src":"9997:246:101"},{"nativeSrc":"10253:57:101","nodeType":"YulAssignment","src":"10253:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"10287:1:101","nodeType":"YulLiteral","src":"10287:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"10290:4:101","nodeType":"YulIdentifier","src":"10290:4:101"},{"name":"exponent","nativeSrc":"10296:8:101","nodeType":"YulIdentifier","src":"10296:8:101"},{"name":"max","nativeSrc":"10306:3:101","nodeType":"YulIdentifier","src":"10306:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"10268:18:101","nodeType":"YulIdentifier","src":"10268:18:101"},"nativeSrc":"10268:42:101","nodeType":"YulFunctionCall","src":"10268:42:101"},"variableNames":[{"name":"power","nativeSrc":"10253:5:101","nodeType":"YulIdentifier","src":"10253:5:101"},{"name":"base","nativeSrc":"10260:4:101","nodeType":"YulIdentifier","src":"10260:4:101"}]},{"body":{"nativeSrc":"10349:22:101","nodeType":"YulBlock","src":"10349:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10351:16:101","nodeType":"YulIdentifier","src":"10351:16:101"},"nativeSrc":"10351:18:101","nodeType":"YulFunctionCall","src":"10351:18:101"},"nativeSrc":"10351:18:101","nodeType":"YulExpressionStatement","src":"10351:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10326:5:101","nodeType":"YulIdentifier","src":"10326:5:101"},{"arguments":[{"name":"max","nativeSrc":"10337:3:101","nodeType":"YulIdentifier","src":"10337:3:101"},{"name":"base","nativeSrc":"10342:4:101","nodeType":"YulIdentifier","src":"10342:4:101"}],"functionName":{"name":"div","nativeSrc":"10333:3:101","nodeType":"YulIdentifier","src":"10333:3:101"},"nativeSrc":"10333:14:101","nodeType":"YulFunctionCall","src":"10333:14:101"}],"functionName":{"name":"gt","nativeSrc":"10323:2:101","nodeType":"YulIdentifier","src":"10323:2:101"},"nativeSrc":"10323:25:101","nodeType":"YulFunctionCall","src":"10323:25:101"},"nativeSrc":"10320:51:101","nodeType":"YulIf","src":"10320:51:101"},{"nativeSrc":"10380:25:101","nodeType":"YulAssignment","src":"10380:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10393:5:101","nodeType":"YulIdentifier","src":"10393:5:101"},{"name":"base","nativeSrc":"10400:4:101","nodeType":"YulIdentifier","src":"10400:4:101"}],"functionName":{"name":"mul","nativeSrc":"10389:3:101","nodeType":"YulIdentifier","src":"10389:3:101"},"nativeSrc":"10389:16:101","nodeType":"YulFunctionCall","src":"10389:16:101"},"variableNames":[{"name":"power","nativeSrc":"10380:5:101","nodeType":"YulIdentifier","src":"10380:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"9338:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9368:4:101","nodeType":"YulTypedName","src":"9368:4:101","type":""},{"name":"exponent","nativeSrc":"9374:8:101","nodeType":"YulTypedName","src":"9374:8:101","type":""},{"name":"max","nativeSrc":"9384:3:101","nodeType":"YulTypedName","src":"9384:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9392:5:101","nodeType":"YulTypedName","src":"9392:5:101","type":""}],"src":"9338:1073:101"},{"body":{"nativeSrc":"10483:219:101","nodeType":"YulBlock","src":"10483:219:101","statements":[{"nativeSrc":"10493:31:101","nodeType":"YulAssignment","src":"10493:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10519:4:101","nodeType":"YulIdentifier","src":"10519:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10501:17:101","nodeType":"YulIdentifier","src":"10501:17:101"},"nativeSrc":"10501:23:101","nodeType":"YulFunctionCall","src":"10501:23:101"},"variableNames":[{"name":"base","nativeSrc":"10493:4:101","nodeType":"YulIdentifier","src":"10493:4:101"}]},{"nativeSrc":"10533:39:101","nodeType":"YulAssignment","src":"10533:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10563:8:101","nodeType":"YulIdentifier","src":"10563:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10545:17:101","nodeType":"YulIdentifier","src":"10545:17:101"},"nativeSrc":"10545:27:101","nodeType":"YulFunctionCall","src":"10545:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10533:8:101","nodeType":"YulIdentifier","src":"10533:8:101"}]},{"nativeSrc":"10582:113:101","nodeType":"YulAssignment","src":"10582:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10612:4:101","nodeType":"YulIdentifier","src":"10612:4:101"},{"name":"exponent","nativeSrc":"10618:8:101","nodeType":"YulIdentifier","src":"10618:8:101"},{"kind":"number","nativeSrc":"10628:66:101","nodeType":"YulLiteral","src":"10628:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10591:20:101","nodeType":"YulIdentifier","src":"10591:20:101"},"nativeSrc":"10591:104:101","nodeType":"YulFunctionCall","src":"10591:104:101"},"variableNames":[{"name":"power","nativeSrc":"10582:5:101","nodeType":"YulIdentifier","src":"10582:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"10417:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10458:4:101","nodeType":"YulTypedName","src":"10458:4:101","type":""},{"name":"exponent","nativeSrc":"10464:8:101","nodeType":"YulTypedName","src":"10464:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10477:5:101","nodeType":"YulTypedName","src":"10477:5:101","type":""}],"src":"10417:285:101"},{"body":{"nativeSrc":"10767:40:101","nodeType":"YulBlock","src":"10767:40:101","statements":[{"nativeSrc":"10778:22:101","nodeType":"YulAssignment","src":"10778:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10794:5:101","nodeType":"YulIdentifier","src":"10794:5:101"}],"functionName":{"name":"mload","nativeSrc":"10788:5:101","nodeType":"YulIdentifier","src":"10788:5:101"},"nativeSrc":"10788:12:101","nodeType":"YulFunctionCall","src":"10788:12:101"},"variableNames":[{"name":"length","nativeSrc":"10778:6:101","nodeType":"YulIdentifier","src":"10778:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10708:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10750:5:101","nodeType":"YulTypedName","src":"10750:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10760:6:101","nodeType":"YulTypedName","src":"10760:6:101","type":""}],"src":"10708:99:101"},{"body":{"nativeSrc":"10909:73:101","nodeType":"YulBlock","src":"10909:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10926:3:101","nodeType":"YulIdentifier","src":"10926:3:101"},{"name":"length","nativeSrc":"10931:6:101","nodeType":"YulIdentifier","src":"10931:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10919:6:101","nodeType":"YulIdentifier","src":"10919:6:101"},"nativeSrc":"10919:19:101","nodeType":"YulFunctionCall","src":"10919:19:101"},"nativeSrc":"10919:19:101","nodeType":"YulExpressionStatement","src":"10919:19:101"},{"nativeSrc":"10947:29:101","nodeType":"YulAssignment","src":"10947:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10966:3:101","nodeType":"YulIdentifier","src":"10966:3:101"},{"kind":"number","nativeSrc":"10971:4:101","nodeType":"YulLiteral","src":"10971:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10962:3:101","nodeType":"YulIdentifier","src":"10962:3:101"},"nativeSrc":"10962:14:101","nodeType":"YulFunctionCall","src":"10962:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10947:11:101","nodeType":"YulIdentifier","src":"10947:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10813:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10881:3:101","nodeType":"YulTypedName","src":"10881:3:101","type":""},{"name":"length","nativeSrc":"10886:6:101","nodeType":"YulTypedName","src":"10886:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10897:11:101","nodeType":"YulTypedName","src":"10897:11:101","type":""}],"src":"10813:169:101"},{"body":{"nativeSrc":"11050:77:101","nodeType":"YulBlock","src":"11050:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11067:3:101","nodeType":"YulIdentifier","src":"11067:3:101"},{"name":"src","nativeSrc":"11072:3:101","nodeType":"YulIdentifier","src":"11072:3:101"},{"name":"length","nativeSrc":"11077:6:101","nodeType":"YulIdentifier","src":"11077:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"11061:5:101","nodeType":"YulIdentifier","src":"11061:5:101"},"nativeSrc":"11061:23:101","nodeType":"YulFunctionCall","src":"11061:23:101"},"nativeSrc":"11061:23:101","nodeType":"YulExpressionStatement","src":"11061:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11104:3:101","nodeType":"YulIdentifier","src":"11104:3:101"},{"name":"length","nativeSrc":"11109:6:101","nodeType":"YulIdentifier","src":"11109:6:101"}],"functionName":{"name":"add","nativeSrc":"11100:3:101","nodeType":"YulIdentifier","src":"11100:3:101"},"nativeSrc":"11100:16:101","nodeType":"YulFunctionCall","src":"11100:16:101"},{"kind":"number","nativeSrc":"11118:1:101","nodeType":"YulLiteral","src":"11118:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11093:6:101","nodeType":"YulIdentifier","src":"11093:6:101"},"nativeSrc":"11093:27:101","nodeType":"YulFunctionCall","src":"11093:27:101"},"nativeSrc":"11093:27:101","nodeType":"YulExpressionStatement","src":"11093:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10988:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11032:3:101","nodeType":"YulTypedName","src":"11032:3:101","type":""},{"name":"dst","nativeSrc":"11037:3:101","nodeType":"YulTypedName","src":"11037:3:101","type":""},{"name":"length","nativeSrc":"11042:6:101","nodeType":"YulTypedName","src":"11042:6:101","type":""}],"src":"10988:139:101"},{"body":{"nativeSrc":"11181:54:101","nodeType":"YulBlock","src":"11181:54:101","statements":[{"nativeSrc":"11191:38:101","nodeType":"YulAssignment","src":"11191:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11209:5:101","nodeType":"YulIdentifier","src":"11209:5:101"},{"kind":"number","nativeSrc":"11216:2:101","nodeType":"YulLiteral","src":"11216:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11205:3:101","nodeType":"YulIdentifier","src":"11205:3:101"},"nativeSrc":"11205:14:101","nodeType":"YulFunctionCall","src":"11205:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11225:2:101","nodeType":"YulLiteral","src":"11225:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11221:3:101","nodeType":"YulIdentifier","src":"11221:3:101"},"nativeSrc":"11221:7:101","nodeType":"YulFunctionCall","src":"11221:7:101"}],"functionName":{"name":"and","nativeSrc":"11201:3:101","nodeType":"YulIdentifier","src":"11201:3:101"},"nativeSrc":"11201:28:101","nodeType":"YulFunctionCall","src":"11201:28:101"},"variableNames":[{"name":"result","nativeSrc":"11191:6:101","nodeType":"YulIdentifier","src":"11191:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11133:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11164:5:101","nodeType":"YulTypedName","src":"11164:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11174:6:101","nodeType":"YulTypedName","src":"11174:6:101","type":""}],"src":"11133:102:101"},{"body":{"nativeSrc":"11333:285:101","nodeType":"YulBlock","src":"11333:285:101","statements":[{"nativeSrc":"11343:53:101","nodeType":"YulVariableDeclaration","src":"11343:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11390:5:101","nodeType":"YulIdentifier","src":"11390:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11357:32:101","nodeType":"YulIdentifier","src":"11357:32:101"},"nativeSrc":"11357:39:101","nodeType":"YulFunctionCall","src":"11357:39:101"},"variables":[{"name":"length","nativeSrc":"11347:6:101","nodeType":"YulTypedName","src":"11347:6:101","type":""}]},{"nativeSrc":"11405:78:101","nodeType":"YulAssignment","src":"11405:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11471:3:101","nodeType":"YulIdentifier","src":"11471:3:101"},{"name":"length","nativeSrc":"11476:6:101","nodeType":"YulIdentifier","src":"11476:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11412:58:101","nodeType":"YulIdentifier","src":"11412:58:101"},"nativeSrc":"11412:71:101","nodeType":"YulFunctionCall","src":"11412:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11405:3:101","nodeType":"YulIdentifier","src":"11405:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11531:5:101","nodeType":"YulIdentifier","src":"11531:5:101"},{"kind":"number","nativeSrc":"11538:4:101","nodeType":"YulLiteral","src":"11538:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11527:3:101","nodeType":"YulIdentifier","src":"11527:3:101"},"nativeSrc":"11527:16:101","nodeType":"YulFunctionCall","src":"11527:16:101"},{"name":"pos","nativeSrc":"11545:3:101","nodeType":"YulIdentifier","src":"11545:3:101"},{"name":"length","nativeSrc":"11550:6:101","nodeType":"YulIdentifier","src":"11550:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11492:34:101","nodeType":"YulIdentifier","src":"11492:34:101"},"nativeSrc":"11492:65:101","nodeType":"YulFunctionCall","src":"11492:65:101"},"nativeSrc":"11492:65:101","nodeType":"YulExpressionStatement","src":"11492:65:101"},{"nativeSrc":"11566:46:101","nodeType":"YulAssignment","src":"11566:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11577:3:101","nodeType":"YulIdentifier","src":"11577:3:101"},{"arguments":[{"name":"length","nativeSrc":"11604:6:101","nodeType":"YulIdentifier","src":"11604:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11582:21:101","nodeType":"YulIdentifier","src":"11582:21:101"},"nativeSrc":"11582:29:101","nodeType":"YulFunctionCall","src":"11582:29:101"}],"functionName":{"name":"add","nativeSrc":"11573:3:101","nodeType":"YulIdentifier","src":"11573:3:101"},"nativeSrc":"11573:39:101","nodeType":"YulFunctionCall","src":"11573:39:101"},"variableNames":[{"name":"end","nativeSrc":"11566:3:101","nodeType":"YulIdentifier","src":"11566:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11241:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11314:5:101","nodeType":"YulTypedName","src":"11314:5:101","type":""},{"name":"pos","nativeSrc":"11321:3:101","nodeType":"YulTypedName","src":"11321:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11329:3:101","nodeType":"YulTypedName","src":"11329:3:101","type":""}],"src":"11241:377:101"},{"body":{"nativeSrc":"11770:277:101","nodeType":"YulBlock","src":"11770:277:101","statements":[{"nativeSrc":"11780:26:101","nodeType":"YulAssignment","src":"11780:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11792:9:101","nodeType":"YulIdentifier","src":"11792:9:101"},{"kind":"number","nativeSrc":"11803:2:101","nodeType":"YulLiteral","src":"11803:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11788:3:101","nodeType":"YulIdentifier","src":"11788:3:101"},"nativeSrc":"11788:18:101","nodeType":"YulFunctionCall","src":"11788:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11780:4:101","nodeType":"YulIdentifier","src":"11780:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11860:6:101","nodeType":"YulIdentifier","src":"11860:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11873:9:101","nodeType":"YulIdentifier","src":"11873:9:101"},{"kind":"number","nativeSrc":"11884:1:101","nodeType":"YulLiteral","src":"11884:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11869:3:101","nodeType":"YulIdentifier","src":"11869:3:101"},"nativeSrc":"11869:17:101","nodeType":"YulFunctionCall","src":"11869:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11816:43:101","nodeType":"YulIdentifier","src":"11816:43:101"},"nativeSrc":"11816:71:101","nodeType":"YulFunctionCall","src":"11816:71:101"},"nativeSrc":"11816:71:101","nodeType":"YulExpressionStatement","src":"11816:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11908:9:101","nodeType":"YulIdentifier","src":"11908:9:101"},{"kind":"number","nativeSrc":"11919:2:101","nodeType":"YulLiteral","src":"11919:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11904:3:101","nodeType":"YulIdentifier","src":"11904:3:101"},"nativeSrc":"11904:18:101","nodeType":"YulFunctionCall","src":"11904:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11928:4:101","nodeType":"YulIdentifier","src":"11928:4:101"},{"name":"headStart","nativeSrc":"11934:9:101","nodeType":"YulIdentifier","src":"11934:9:101"}],"functionName":{"name":"sub","nativeSrc":"11924:3:101","nodeType":"YulIdentifier","src":"11924:3:101"},"nativeSrc":"11924:20:101","nodeType":"YulFunctionCall","src":"11924:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11897:6:101","nodeType":"YulIdentifier","src":"11897:6:101"},"nativeSrc":"11897:48:101","nodeType":"YulFunctionCall","src":"11897:48:101"},"nativeSrc":"11897:48:101","nodeType":"YulExpressionStatement","src":"11897:48:101"},{"nativeSrc":"11954:86:101","nodeType":"YulAssignment","src":"11954:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"12026:6:101","nodeType":"YulIdentifier","src":"12026:6:101"},{"name":"tail","nativeSrc":"12035:4:101","nodeType":"YulIdentifier","src":"12035:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11962:63:101","nodeType":"YulIdentifier","src":"11962:63:101"},"nativeSrc":"11962:78:101","nodeType":"YulFunctionCall","src":"11962:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11954:4:101","nodeType":"YulIdentifier","src":"11954:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11624:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11734:9:101","nodeType":"YulTypedName","src":"11734:9:101","type":""},{"name":"value1","nativeSrc":"11746:6:101","nodeType":"YulTypedName","src":"11746:6:101","type":""},{"name":"value0","nativeSrc":"11754:6:101","nodeType":"YulTypedName","src":"11754:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11765:4:101","nodeType":"YulTypedName","src":"11765:4:101","type":""}],"src":"11624:423:101"},{"body":{"nativeSrc":"12093:76:101","nodeType":"YulBlock","src":"12093:76:101","statements":[{"body":{"nativeSrc":"12147:16:101","nodeType":"YulBlock","src":"12147:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12156:1:101","nodeType":"YulLiteral","src":"12156:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12159:1:101","nodeType":"YulLiteral","src":"12159:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12149:6:101","nodeType":"YulIdentifier","src":"12149:6:101"},"nativeSrc":"12149:12:101","nodeType":"YulFunctionCall","src":"12149:12:101"},"nativeSrc":"12149:12:101","nodeType":"YulExpressionStatement","src":"12149:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12116:5:101","nodeType":"YulIdentifier","src":"12116:5:101"},{"arguments":[{"name":"value","nativeSrc":"12138:5:101","nodeType":"YulIdentifier","src":"12138:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12123:14:101","nodeType":"YulIdentifier","src":"12123:14:101"},"nativeSrc":"12123:21:101","nodeType":"YulFunctionCall","src":"12123:21:101"}],"functionName":{"name":"eq","nativeSrc":"12113:2:101","nodeType":"YulIdentifier","src":"12113:2:101"},"nativeSrc":"12113:32:101","nodeType":"YulFunctionCall","src":"12113:32:101"}],"functionName":{"name":"iszero","nativeSrc":"12106:6:101","nodeType":"YulIdentifier","src":"12106:6:101"},"nativeSrc":"12106:40:101","nodeType":"YulFunctionCall","src":"12106:40:101"},"nativeSrc":"12103:60:101","nodeType":"YulIf","src":"12103:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"12053:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12086:5:101","nodeType":"YulTypedName","src":"12086:5:101","type":""}],"src":"12053:116:101"},{"body":{"nativeSrc":"12235:77:101","nodeType":"YulBlock","src":"12235:77:101","statements":[{"nativeSrc":"12245:22:101","nodeType":"YulAssignment","src":"12245:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12260:6:101","nodeType":"YulIdentifier","src":"12260:6:101"}],"functionName":{"name":"mload","nativeSrc":"12254:5:101","nodeType":"YulIdentifier","src":"12254:5:101"},"nativeSrc":"12254:13:101","nodeType":"YulFunctionCall","src":"12254:13:101"},"variableNames":[{"name":"value","nativeSrc":"12245:5:101","nodeType":"YulIdentifier","src":"12245:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12300:5:101","nodeType":"YulIdentifier","src":"12300:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12276:23:101","nodeType":"YulIdentifier","src":"12276:23:101"},"nativeSrc":"12276:30:101","nodeType":"YulFunctionCall","src":"12276:30:101"},"nativeSrc":"12276:30:101","nodeType":"YulExpressionStatement","src":"12276:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12175:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12213:6:101","nodeType":"YulTypedName","src":"12213:6:101","type":""},{"name":"end","nativeSrc":"12221:3:101","nodeType":"YulTypedName","src":"12221:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12229:5:101","nodeType":"YulTypedName","src":"12229:5:101","type":""}],"src":"12175:137:101"},{"body":{"nativeSrc":"12392:271:101","nodeType":"YulBlock","src":"12392:271:101","statements":[{"body":{"nativeSrc":"12438:83:101","nodeType":"YulBlock","src":"12438:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12440:77:101","nodeType":"YulIdentifier","src":"12440:77:101"},"nativeSrc":"12440:79:101","nodeType":"YulFunctionCall","src":"12440:79:101"},"nativeSrc":"12440:79:101","nodeType":"YulExpressionStatement","src":"12440:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12413:7:101","nodeType":"YulIdentifier","src":"12413:7:101"},{"name":"headStart","nativeSrc":"12422:9:101","nodeType":"YulIdentifier","src":"12422:9:101"}],"functionName":{"name":"sub","nativeSrc":"12409:3:101","nodeType":"YulIdentifier","src":"12409:3:101"},"nativeSrc":"12409:23:101","nodeType":"YulFunctionCall","src":"12409:23:101"},{"kind":"number","nativeSrc":"12434:2:101","nodeType":"YulLiteral","src":"12434:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12405:3:101","nodeType":"YulIdentifier","src":"12405:3:101"},"nativeSrc":"12405:32:101","nodeType":"YulFunctionCall","src":"12405:32:101"},"nativeSrc":"12402:119:101","nodeType":"YulIf","src":"12402:119:101"},{"nativeSrc":"12531:125:101","nodeType":"YulBlock","src":"12531:125:101","statements":[{"nativeSrc":"12546:15:101","nodeType":"YulVariableDeclaration","src":"12546:15:101","value":{"kind":"number","nativeSrc":"12560:1:101","nodeType":"YulLiteral","src":"12560:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12550:6:101","nodeType":"YulTypedName","src":"12550:6:101","type":""}]},{"nativeSrc":"12575:71:101","nodeType":"YulAssignment","src":"12575:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12618:9:101","nodeType":"YulIdentifier","src":"12618:9:101"},{"name":"offset","nativeSrc":"12629:6:101","nodeType":"YulIdentifier","src":"12629:6:101"}],"functionName":{"name":"add","nativeSrc":"12614:3:101","nodeType":"YulIdentifier","src":"12614:3:101"},"nativeSrc":"12614:22:101","nodeType":"YulFunctionCall","src":"12614:22:101"},{"name":"dataEnd","nativeSrc":"12638:7:101","nodeType":"YulIdentifier","src":"12638:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12585:28:101","nodeType":"YulIdentifier","src":"12585:28:101"},"nativeSrc":"12585:61:101","nodeType":"YulFunctionCall","src":"12585:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12575:6:101","nodeType":"YulIdentifier","src":"12575:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12318:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12362:9:101","nodeType":"YulTypedName","src":"12362:9:101","type":""},{"name":"dataEnd","nativeSrc":"12373:7:101","nodeType":"YulTypedName","src":"12373:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12385:6:101","nodeType":"YulTypedName","src":"12385:6:101","type":""}],"src":"12318:345:101"},{"body":{"nativeSrc":"12843:359:101","nodeType":"YulBlock","src":"12843:359:101","statements":[{"nativeSrc":"12853:26:101","nodeType":"YulAssignment","src":"12853:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12865:9:101","nodeType":"YulIdentifier","src":"12865:9:101"},{"kind":"number","nativeSrc":"12876:2:101","nodeType":"YulLiteral","src":"12876:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12861:3:101","nodeType":"YulIdentifier","src":"12861:3:101"},"nativeSrc":"12861:18:101","nodeType":"YulFunctionCall","src":"12861:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12853:4:101","nodeType":"YulIdentifier","src":"12853:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12933:6:101","nodeType":"YulIdentifier","src":"12933:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12946:9:101","nodeType":"YulIdentifier","src":"12946:9:101"},{"kind":"number","nativeSrc":"12957:1:101","nodeType":"YulLiteral","src":"12957:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12942:3:101","nodeType":"YulIdentifier","src":"12942:3:101"},"nativeSrc":"12942:17:101","nodeType":"YulFunctionCall","src":"12942:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12889:43:101","nodeType":"YulIdentifier","src":"12889:43:101"},"nativeSrc":"12889:71:101","nodeType":"YulFunctionCall","src":"12889:71:101"},"nativeSrc":"12889:71:101","nodeType":"YulExpressionStatement","src":"12889:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13014:6:101","nodeType":"YulIdentifier","src":"13014:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13027:9:101","nodeType":"YulIdentifier","src":"13027:9:101"},{"kind":"number","nativeSrc":"13038:2:101","nodeType":"YulLiteral","src":"13038:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13023:3:101","nodeType":"YulIdentifier","src":"13023:3:101"},"nativeSrc":"13023:18:101","nodeType":"YulFunctionCall","src":"13023:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12970:43:101","nodeType":"YulIdentifier","src":"12970:43:101"},"nativeSrc":"12970:72:101","nodeType":"YulFunctionCall","src":"12970:72:101"},"nativeSrc":"12970:72:101","nodeType":"YulExpressionStatement","src":"12970:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13063:9:101","nodeType":"YulIdentifier","src":"13063:9:101"},{"kind":"number","nativeSrc":"13074:2:101","nodeType":"YulLiteral","src":"13074:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13059:3:101","nodeType":"YulIdentifier","src":"13059:3:101"},"nativeSrc":"13059:18:101","nodeType":"YulFunctionCall","src":"13059:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13083:4:101","nodeType":"YulIdentifier","src":"13083:4:101"},{"name":"headStart","nativeSrc":"13089:9:101","nodeType":"YulIdentifier","src":"13089:9:101"}],"functionName":{"name":"sub","nativeSrc":"13079:3:101","nodeType":"YulIdentifier","src":"13079:3:101"},"nativeSrc":"13079:20:101","nodeType":"YulFunctionCall","src":"13079:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13052:6:101","nodeType":"YulIdentifier","src":"13052:6:101"},"nativeSrc":"13052:48:101","nodeType":"YulFunctionCall","src":"13052:48:101"},"nativeSrc":"13052:48:101","nodeType":"YulExpressionStatement","src":"13052:48:101"},{"nativeSrc":"13109:86:101","nodeType":"YulAssignment","src":"13109:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13181:6:101","nodeType":"YulIdentifier","src":"13181:6:101"},{"name":"tail","nativeSrc":"13190:4:101","nodeType":"YulIdentifier","src":"13190:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13117:63:101","nodeType":"YulIdentifier","src":"13117:63:101"},"nativeSrc":"13117:78:101","nodeType":"YulFunctionCall","src":"13117:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13109:4:101","nodeType":"YulIdentifier","src":"13109:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12669:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12799:9:101","nodeType":"YulTypedName","src":"12799:9:101","type":""},{"name":"value2","nativeSrc":"12811:6:101","nodeType":"YulTypedName","src":"12811:6:101","type":""},{"name":"value1","nativeSrc":"12819:6:101","nodeType":"YulTypedName","src":"12819:6:101","type":""},{"name":"value0","nativeSrc":"12827:6:101","nodeType":"YulTypedName","src":"12827:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12838:4:101","nodeType":"YulTypedName","src":"12838:4:101","type":""}],"src":"12669:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IStaderStakeManager_$3620_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IStaderStakeManager_$3620_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IStaderStakeManager_$3620_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IStaderStakeManager_$3620__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IStaderStakeManager_$3620_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3933":[{"length":32,"start":573},{"length":32,"start":1763}],"6589":[{"length":32,"start":534},{"length":32,"start":728},{"length":32,"start":2147}],"6592":[{"length":32,"start":324},{"length":32,"start":1479},{"length":32,"start":2020}],"6596":[{"length":32,"start":640},{"length":32,"start":1434},{"length":32,"start":1973}],"6600":[{"length":32,"start":404},{"length":32,"start":2338}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061011c575f3560e01c806369240426116100a9578063a4edcd4c1161006e578063a4edcd4c1461027b578063a9534f8a146102a2578063abb85613146102bd578063ac5a693e146102c5578063bdf13af2146102cd575f80fd5b8063692404261461020957806369818a35146102115780637353847a146102385780637fc4e4a01461025f5780639c43eb5414610272575f80fd5b806345be2dc7116100ef57806345be2dc71461018f5780635213f9c8146101c3578063596efe6f146101d8578063643d813d146101e1578063671528d4146101f4575f80fd5b806307d0413c1461012057806329db1be61461013f5780634169d2451461017357806341976e091461017c575b5f80fd5b61012960015481565b60405161013691906109d3565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a00565b61012960045481565b61012961018a366004610a2f565b6102d5565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a72565b6101d66101d1366004610a91565b610386565b005b61012960025481565b6101d66101ef366004610aaf565b6103f7565b6101fc6104cb565b6040516101369190610af1565b6101d6610506565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6101d661026d366004610aaf565b610652565b61012960035481565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b61016673bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101296106ca565b6101295f5481565b610129610764565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461032857604051630f58058360e11b815260040160405180910390fd5b5f6103316106ca565b90506001545f0361034c57610345816107b1565b9392505050565b5f610355610764565b90505f818311801561036657508115155b6103705782610372565b815b905061037d816107b1565b95945050505050565b6103c46040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610909565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104356040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610909565b5f546104456301e1338084610b27565b5f81905515801561045557505f82115b8061046957505f8054118015610469575081155b15610487576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104bc91906109d3565b60405180910390a45060015550565b5f6001545f036104da57505f90565b5f6104e3610764565b9050805f036104f3575f91505090565b5f6104fc6106ca565b9190911192915050565b6001546003546105169042610b3a565b10806105225750600154155b1561052957565b5f6105326106ca565b90505f61053d610764565b905060045481831161054f5782610551565b815b61055b9190610b4d565b6002819055426003555f0361058357604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105ef907f000000000000000000000000000000000000000000000000000000000000000090600401610a00565b5f604051808303815f87803b158015610606575f80fd5b505af1158015610618573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106906040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610909565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051631940a0dd60e31b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca0506e89061072090670de0b6b3a7640000906004016109d3565b602060405180830381865afa15801561073b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f9190610b6b565b905090565b5f80600354426107749190610b3a565b90505f670de0b6b3a7640000825f546002546107909190610b89565b61079a9190610b89565b6107a49190610b27565b6002546103459190610b4d565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081f9190610a00565b602060405180830381865afa15801561083a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085e9190610b6b565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190610bbc565b60ff1690506108f581600a610ce6565b6108ff8487610b89565b61037d9190610b27565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109599033908690600401610d2f565b602060405180830381865afa158015610974573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109989190610d62565b9050806109c757333083604051634a3fa29360e01b81526004016109be93929190610d80565b60405180910390fd5b5050565b805b82525050565b602081016109e182846109cb565b92915050565b5f6001600160a01b0382166109e1565b6109cd816109e7565b602081016109e182846109f7565b610a17816109e7565b8114610a21575f80fd5b50565b80356109e181610a0e565b5f60208284031215610a4257610a425f80fd5b5f610a4d8484610a24565b949350505050565b5f6109e1826109e7565b5f6109e182610a55565b6109cd81610a5f565b602081016109e18284610a69565b80610a17565b80356109e181610a80565b5f60208284031215610aa457610aa45f80fd5b5f610a4d8484610a86565b5f8060408385031215610ac357610ac35f80fd5b5f610ace8585610a86565b9250506020610adf85828601610a86565b9150509250929050565b8015156109cd565b602081016109e18284610ae9565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b3557610b35610aff565b500490565b818103818111156109e1576109e1610b13565b808201808211156109e1576109e1610b13565b80516109e181610a80565b5f60208284031215610b7e57610b7e5f80fd5b5f610a4d8484610b60565b818102808215838204851417610ba157610ba1610b13565b5092915050565b60ff8116610a17565b80516109e181610ba8565b5f60208284031215610bcf57610bcf5f80fd5b5f610a4d8484610bb1565b80825b6001851115610c1957808604811115610bf857610bf8610b13565b6001851615610c0657908102905b8002610c128560011c90565b9450610bdd565b94509492505050565b5f82610c3057506001610345565b81610c3c57505f610345565b8160018114610c525760028114610c5c57610c89565b6001915050610345565b60ff841115610c6d57610c6d610b13565b8360020a915084821115610c8357610c83610b13565b50610345565b5060208310610133831016604e8410600b8410161715610cbc575081810a83811115610cb757610cb7610b13565b610345565b610cc98484846001610bda565b92509050818404811115610cdf57610cdf610b13565b0292915050565b5f6103455f198484610c22565b8281835e505f910152565b5f610d07825190565b808452602084019350610d1e818560208601610cf3565b601f01601f19169290920192915050565b60408101610d3d82856109f7565b8181036020830152610a4d8184610cfe565b801515610a17565b80516109e181610d4f565b5f60208284031215610d7557610d755f80fd5b5f610a4d8484610d57565b60608101610d8e82866109f7565b610d9b60208301856109f7565b818103604083015261037d8184610cfe56fea2646970667358221220fe8db06422a1e0d555dadbd53f979eaf4ef491d60b6cadb14e973e1c83faaf2064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x7353847A EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x17C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA72 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0xA91 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xAF1 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x166 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x764 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x328 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x34C JUMPI PUSH2 0x345 DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x355 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x366 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x370 JUMPI DUP3 PUSH2 0x372 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x37D DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3C4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x435 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x445 PUSH4 0x1E13380 DUP5 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x469 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x469 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x487 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4DA JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4E3 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4F3 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4FC PUSH2 0x6CA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x516 SWAP1 TIMESTAMP PUSH2 0xB3A JUMP JUMPDEST LT DUP1 PUSH2 0x522 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x529 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x532 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x53D PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x54F JUMPI DUP3 PUSH2 0x551 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x55B SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5EF SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA00 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x618 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x690 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1940A0DD PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCA0506E8 SWAP1 PUSH2 0x720 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x75F SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x790 SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x79A SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81F SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x83A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x85E SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8C1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8E5 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8F5 DUP2 PUSH1 0xA PUSH2 0xCE6 JUMP JUMPDEST PUSH2 0x8FF DUP5 DUP8 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x959 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x998 SWAP2 SWAP1 PUSH2 0xD62 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9C7 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9BE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9E1 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xA17 DUP2 PUSH2 0x9E7 JUMP JUMPDEST DUP2 EQ PUSH2 0xA21 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA0E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA42 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA24 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0x9E7 JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0xA55 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xA69 JUMP JUMPDEST DUP1 PUSH2 0xA17 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAA4 JUMPI PUSH2 0xAA4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA86 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xACE DUP6 DUP6 PUSH2 0xA86 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xADF DUP6 DUP3 DUP7 ADD PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xAE9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAFF JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7E JUMPI PUSH2 0xB7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xB60 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBA1 JUMPI PUSH2 0xBA1 PUSH2 0xB13 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xBA8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBCF JUMPI PUSH2 0xBCF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xBB1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC19 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBF8 JUMPI PUSH2 0xBF8 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xC06 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC12 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBDD JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC30 JUMPI POP PUSH1 0x1 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH2 0xC3C JUMPI POP PUSH0 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC52 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC5C JUMPI PUSH2 0xC89 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x345 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC6D JUMPI PUSH2 0xC6D PUSH2 0xB13 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC83 JUMPI PUSH2 0xC83 PUSH2 0xB13 JUMP JUMPDEST POP PUSH2 0x345 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCBC JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCB7 JUMPI PUSH2 0xCB7 PUSH2 0xB13 JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0xCC9 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBDA JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCDF JUMPI PUSH2 0xCDF PUSH2 0xB13 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x345 PUSH0 NOT DUP5 DUP5 PUSH2 0xC22 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD07 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD3D DUP3 DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA4D DUP2 DUP5 PUSH2 0xCFE JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xD4F JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD8E DUP3 DUP7 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xD9B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x37D DUP2 DUP5 PUSH2 0xCFE JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID DUP14 0xB0 PUSH5 0x22A1E0D555 0xDA 0xDB 0xD5 EXTCODEHASH SWAP8 SWAP15 0xAF 0x4E DELEGATECALL SWAP2 0xD6 SIGNEXTEND PUSH13 0xADB14E973E1C83FAAF2064736F PUSH13 0x63430008190033000000000000 ","sourceMap":"507:1386:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;751:50:48;;;;;4843:344:67;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;618:86:48;;662:42;618:86;;1756:135;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1756:135:48:-;1843:41;;-1:-1:-1;;;1843:41:48;;1817:7;;-1:-1:-1;;;;;1843:13:48;:30;;;;:41;;186:4:17;;1843:41:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1836:48;;1756:135;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;507:1386:48;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;507:1386:48;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;507:1386:48;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5780:180::-;-1:-1:-1;;;5825:1:101;5818:88;5925:4;5922:1;5915:15;5949:4;5946:1;5939:15;5966:180;-1:-1:-1;;;6011:1:101;6004:88;6111:4;6108:1;6101:15;6135:4;6132:1;6125:15;6152:185;6192:1;6282;6272:35;;6287:18;;:::i;:::-;-1:-1:-1;6322:9:101;;6152:185::o;6343:194::-;6474:9;;;6496:11;;;6493:37;;;6510:18;;:::i;6543:191::-;6672:9;;;6694:10;;;6691:36;;;6707:18;;:::i;6740:143::-;6822:13;;6844:33;6822:13;6844:33;:::i;6889:351::-;6959:6;7008:2;6996:9;6987:7;6983:23;6979:32;6976:119;;;7014:79;507:1386:48;;;7014:79:101;7134:1;7159:64;7215:7;7195:9;7159:64;:::i;7246:410::-;7391:9;;;;7553;;7586:15;;;7580:22;;7533:83;7510:139;;7629:18;;:::i;:::-;7294:362;7246:410;;;;:::o;7754:118::-;7737:4;7726:16;;7825:22;7662:86;7878:139;7958:13;;7980:31;7958:13;7980:31;:::i;8023:347::-;8091:6;8140:2;8128:9;8119:7;8115:23;8111:32;8108:119;;;8146:79;507:1386:48;;;8146:79:101;8266:1;8291:62;8345:7;8325:9;8291:62;:::i;8484:848::-;8576:6;8600:5;8614:712;8635:1;8625:8;8622:15;8614:712;;;8730:4;8725:3;8721:14;8715:4;8712:24;8709:50;;;8739:18;;:::i;:::-;8789:1;8779:8;8775:16;8772:451;;;9193:16;;;;8772:451;9244:15;;9284:32;9307:8;8462:1;8458:13;;8376:102;9284:32;9272:44;;8614:712;;;8484:848;;;;;;;:::o;9338:1073::-;9392:5;9583:8;9573:40;;-1:-1:-1;9604:1:101;9606:5;;9573:40;9632:4;9622:36;;-1:-1:-1;9649:1:101;9651:5;;9622:36;9718:4;9766:1;9761:27;;;;9802:1;9797:191;;;;9711:277;;9761:27;9779:1;9770:10;;9781:5;;;9797:191;9842:3;9832:8;9829:17;9826:43;;;9849:18;;:::i;:::-;9898:8;9895:1;9891:16;9882:25;;9933:3;9926:5;9923:14;9920:40;;;9940:18;;:::i;:::-;9973:5;;;9711:277;;10097:2;10087:8;10084:16;10078:3;10072:4;10069:13;10065:36;10047:2;10037:8;10034:16;10029:2;10023:4;10020:12;10016:35;10000:111;9997:246;;;-1:-1:-1;10143:19:101;;;10178:14;;;10175:40;;;10195:18;;:::i;:::-;10228:5;;9997:246;10268:42;10306:3;10296:8;10290:4;10287:1;10268:42;:::i;:::-;10253:57;;;;10342:4;10337:3;10333:14;10326:5;10323:25;10320:51;;;10351:18;;:::i;:::-;10389:16;;9338:1073;-1:-1:-1;;9338:1073:101:o;10417:285::-;10477:5;10591:104;-1:-1:-1;;10618:8:101;10612:4;10591:104;:::i;10988:139::-;11077:6;11072:3;11067;11061:23;-1:-1:-1;11118:1:101;11100:16;;11093:27;10988:139::o;11241:377::-;11329:3;11357:39;11390:5;10788:12;;10708:99;11357:39;10919:19;;;10971:4;10962:14;;11405:78;;11492:65;11550:6;11545:3;11538:4;11531:5;11527:16;11492:65;:::i;:::-;11225:2;11205:14;-1:-1:-1;;11201:28:101;11573:39;;;;;;-1:-1:-1;;11241:377:101:o;11624:423::-;11803:2;11788:18;;11816:71;11792:9;11860:6;11816:71;:::i;:::-;11934:9;11928:4;11924:20;11919:2;11908:9;11904:18;11897:48;11962:78;12035:4;12026:6;11962:78;:::i;12053:116::-;4124:13;;4117:21;12123;4054:90;12175:137;12254:13;;12276:30;12254:13;12276:30;:::i;12318:345::-;12385:6;12434:2;12422:9;12413:7;12409:23;12405:32;12402:119;;;12440:79;507:1386:48;;;12440:79:101;12560:1;12585:61;12638:7;12618:9;12585:61;:::i;12669:533::-;12876:2;12861:18;;12889:71;12865:9;12933:6;12889:71;:::i;:::-;12970:72;13038:2;13027:9;13023:18;13014:6;12970:72;:::i;:::-;13089:9;13083:4;13079:20;13074:2;13063:9;13059:18;13052:48;13117:78;13190:4;13181:6;13117:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"711000","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","NATIVE_TOKEN_ADDR()":"infinite","RESILIENT_ORACLE()":"infinite","STAKE_MANAGER()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2471","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","NATIVE_TOKEN_ADDR()":"a9534f8a","RESILIENT_ORACLE()":"a4edcd4c","STAKE_MANAGER()":"7353847a","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bnbx\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_MANAGER\",\"outputs\":[{\"internalType\":\"contract IStaderStakeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"price The amount of BNB for BNBx\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"BNBxOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"NATIVE_TOKEN_ADDR()\":{\"notice\":\"This is used as token address of BNB on BSC\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"STAKE_MANAGER()\":{\"notice\":\"Address of StakeManager\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of BNB for 1 BNBx\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of BNBx asset\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/BNBxOracle.sol\":\"BNBxOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IStaderStakeManager.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IStaderStakeManager {\\n    function convertBnbXToBnb(uint256 _amount) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x8caeef2f75ea7996ac155fc0432569238ed148c92f8e719e8ec0bcb4db5b585b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/BNBxOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IStaderStakeManager } from \\\"../interfaces/IStaderStakeManager.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\n\\n/**\\n * @title BNBxOracle\\n * @author Venus\\n * @notice This oracle fetches the price of BNBx asset\\n */\\ncontract BNBxOracle is CorrelatedTokenOracle {\\n    /// @notice This is used as token address of BNB on BSC\\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Address of StakeManager\\n    IStaderStakeManager public immutable STAKE_MANAGER;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address stakeManager,\\n        address bnbx,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            bnbx,\\n            NATIVE_TOKEN_ADDR,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(stakeManager);\\n        STAKE_MANAGER = IStaderStakeManager(stakeManager);\\n    }\\n\\n    /**\\n     * @notice Fetches the amount of BNB for 1 BNBx\\n     * @return price The amount of BNB for BNBx\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return STAKE_MANAGER.convertBnbXToBnb(EXP_SCALE);\\n    }\\n}\\n\",\"keccak256\":\"0x00af44ece32b4d4b6c9fdd8b231915f9c22f4148c60f0dbd4c931d31b8440146\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/BNBxOracle.sol:BNBxOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/BNBxOracle.sol:BNBxOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/BNBxOracle.sol:BNBxOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/BNBxOracle.sol:BNBxOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/BNBxOracle.sol:BNBxOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"NATIVE_TOKEN_ADDR()":{"notice":"This is used as token address of BNB on BSC"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"STAKE_MANAGER()":{"notice":"Address of StakeManager"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of BNB for 1 BNBx"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of BNBx asset","version":1}}},"contracts/oracles/BinanceOracle.sol":{"BinanceOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldFeedRegistry","type":"address"},{"indexed":true,"internalType":"address","name":"newFeedRegistry","type":"address"}],"name":"FeedRegistryUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"asset","type":"string"},{"indexed":false,"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"name":"MaxStalePeriodAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"string","name":"overriddenSymbol","type":"string"}],"name":"SymbolOverridden","type":"event"},{"inputs":[],"name":"BNB_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feedRegistryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeedRegistryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sidRegistryAddress","type":"address"},{"internalType":"address","name":"_acm","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"maxStalePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newfeedRegistryAddress","type":"address"}],"name":"setFeedRegistryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"_maxStalePeriod","type":"uint256"}],"name":"setMaxStalePeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"overrideSymbol","type":"string"}],"name":"setSymbolOverride","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sidRegistryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"symbols","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getFeedRegistryAddress()":{"returns":{"_0":"feedRegistryAddress Address of binance oracle feed registry."}},"getPrice(address)":{"params":{"asset":"Address of the asset"},"returns":{"_0":"Price in USD"}},"initialize(address,address)":{"params":{"_acm":"Address of the access control manager contract","_sidRegistryAddress":"Address of SID registry"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setFeedRegistryAddress(address)":{"params":{"newfeedRegistryAddress":"Address of new feed registry."}},"setMaxStalePeriod(string,uint256)":{"params":{"_maxStalePeriod":"The max stake period","symbol":"The symbol of the asset"}},"setSymbolOverride(string,string)":{"params":{"overrideSymbol":"The symbol after override","symbol":"The symbol to override"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"title":"BinanceOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_4073":{"entryPoint":null,"id":4073,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_492":{"entryPoint":29,"id":492,"parameterSlots":0,"returnSlots":0},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":161,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":242,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1638:101","nodeType":"YulBlock","src":"0:1638:101","statements":[{"body":{"nativeSrc":"103:73:101","nodeType":"YulBlock","src":"103:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"120:3:101","nodeType":"YulIdentifier","src":"120:3:101"},{"name":"length","nativeSrc":"125:6:101","nodeType":"YulIdentifier","src":"125:6:101"}],"functionName":{"name":"mstore","nativeSrc":"113:6:101","nodeType":"YulIdentifier","src":"113:6:101"},"nativeSrc":"113:19:101","nodeType":"YulFunctionCall","src":"113:19:101"},"nativeSrc":"113:19:101","nodeType":"YulExpressionStatement","src":"113:19:101"},{"nativeSrc":"141:29:101","nodeType":"YulAssignment","src":"141:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"160:3:101","nodeType":"YulIdentifier","src":"160:3:101"},{"kind":"number","nativeSrc":"165:4:101","nodeType":"YulLiteral","src":"165:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"156:3:101","nodeType":"YulIdentifier","src":"156:3:101"},"nativeSrc":"156:14:101","nodeType":"YulFunctionCall","src":"156:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"141:11:101","nodeType":"YulIdentifier","src":"141:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"75:3:101","nodeType":"YulTypedName","src":"75:3:101","type":""},{"name":"length","nativeSrc":"80:6:101","nodeType":"YulTypedName","src":"80:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"91:11:101","nodeType":"YulTypedName","src":"91:11:101","type":""}],"src":"7:169:101"},{"body":{"nativeSrc":"288:120:101","nodeType":"YulBlock","src":"288:120:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},{"kind":"number","nativeSrc":"318:1:101","nodeType":"YulLiteral","src":"318:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"306:3:101","nodeType":"YulIdentifier","src":"306:3:101"},"nativeSrc":"306:14:101","nodeType":"YulFunctionCall","src":"306:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"322:34:101","nodeType":"YulLiteral","src":"322:34:101","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"299:6:101","nodeType":"YulIdentifier","src":"299:6:101"},"nativeSrc":"299:58:101","nodeType":"YulFunctionCall","src":"299:58:101"},"nativeSrc":"299:58:101","nodeType":"YulExpressionStatement","src":"299:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"378:6:101","nodeType":"YulIdentifier","src":"378:6:101"},{"kind":"number","nativeSrc":"386:2:101","nodeType":"YulLiteral","src":"386:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"374:3:101","nodeType":"YulIdentifier","src":"374:3:101"},"nativeSrc":"374:15:101","nodeType":"YulFunctionCall","src":"374:15:101"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"391:9:101","nodeType":"YulLiteral","src":"391:9:101","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"367:6:101","nodeType":"YulIdentifier","src":"367:6:101"},"nativeSrc":"367:34:101","nodeType":"YulFunctionCall","src":"367:34:101"},"nativeSrc":"367:34:101","nodeType":"YulExpressionStatement","src":"367:34:101"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"182:226:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"280:6:101","nodeType":"YulTypedName","src":"280:6:101","type":""}],"src":"182:226:101"},{"body":{"nativeSrc":"560:220:101","nodeType":"YulBlock","src":"560:220:101","statements":[{"nativeSrc":"570:74:101","nodeType":"YulAssignment","src":"570:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"636:3:101","nodeType":"YulIdentifier","src":"636:3:101"},{"kind":"number","nativeSrc":"641:2:101","nodeType":"YulLiteral","src":"641:2:101","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"577:58:101","nodeType":"YulIdentifier","src":"577:58:101"},"nativeSrc":"577:67:101","nodeType":"YulFunctionCall","src":"577:67:101"},"variableNames":[{"name":"pos","nativeSrc":"570:3:101","nodeType":"YulIdentifier","src":"570:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"742:3:101","nodeType":"YulIdentifier","src":"742:3:101"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"653:88:101","nodeType":"YulIdentifier","src":"653:88:101"},"nativeSrc":"653:93:101","nodeType":"YulFunctionCall","src":"653:93:101"},"nativeSrc":"653:93:101","nodeType":"YulExpressionStatement","src":"653:93:101"},{"nativeSrc":"755:19:101","nodeType":"YulAssignment","src":"755:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"766:3:101","nodeType":"YulIdentifier","src":"766:3:101"},{"kind":"number","nativeSrc":"771:2:101","nodeType":"YulLiteral","src":"771:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"762:3:101","nodeType":"YulIdentifier","src":"762:3:101"},"nativeSrc":"762:12:101","nodeType":"YulFunctionCall","src":"762:12:101"},"variableNames":[{"name":"end","nativeSrc":"755:3:101","nodeType":"YulIdentifier","src":"755:3:101"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"414:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"548:3:101","nodeType":"YulTypedName","src":"548:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"556:3:101","nodeType":"YulTypedName","src":"556:3:101","type":""}],"src":"414:366:101"},{"body":{"nativeSrc":"957:248:101","nodeType":"YulBlock","src":"957:248:101","statements":[{"nativeSrc":"967:26:101","nodeType":"YulAssignment","src":"967:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"979:9:101","nodeType":"YulIdentifier","src":"979:9:101"},{"kind":"number","nativeSrc":"990:2:101","nodeType":"YulLiteral","src":"990:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"975:3:101","nodeType":"YulIdentifier","src":"975:3:101"},"nativeSrc":"975:18:101","nodeType":"YulFunctionCall","src":"975:18:101"},"variableNames":[{"name":"tail","nativeSrc":"967:4:101","nodeType":"YulIdentifier","src":"967:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1014:9:101","nodeType":"YulIdentifier","src":"1014:9:101"},{"kind":"number","nativeSrc":"1025:1:101","nodeType":"YulLiteral","src":"1025:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1010:3:101","nodeType":"YulIdentifier","src":"1010:3:101"},"nativeSrc":"1010:17:101","nodeType":"YulFunctionCall","src":"1010:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1033:4:101","nodeType":"YulIdentifier","src":"1033:4:101"},{"name":"headStart","nativeSrc":"1039:9:101","nodeType":"YulIdentifier","src":"1039:9:101"}],"functionName":{"name":"sub","nativeSrc":"1029:3:101","nodeType":"YulIdentifier","src":"1029:3:101"},"nativeSrc":"1029:20:101","nodeType":"YulFunctionCall","src":"1029:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1003:6:101","nodeType":"YulIdentifier","src":"1003:6:101"},"nativeSrc":"1003:47:101","nodeType":"YulFunctionCall","src":"1003:47:101"},"nativeSrc":"1003:47:101","nodeType":"YulExpressionStatement","src":"1003:47:101"},{"nativeSrc":"1059:139:101","nodeType":"YulAssignment","src":"1059:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"1193:4:101","nodeType":"YulIdentifier","src":"1193:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"1067:124:101","nodeType":"YulIdentifier","src":"1067:124:101"},"nativeSrc":"1067:131:101","nodeType":"YulFunctionCall","src":"1067:131:101"},"variableNames":[{"name":"tail","nativeSrc":"1059:4:101","nodeType":"YulIdentifier","src":"1059:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"786:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulTypedName","src":"937:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"952:4:101","nodeType":"YulTypedName","src":"952:4:101","type":""}],"src":"786:419:101"},{"body":{"nativeSrc":"1254:43:101","nodeType":"YulBlock","src":"1254:43:101","statements":[{"nativeSrc":"1264:27:101","nodeType":"YulAssignment","src":"1264:27:101","value":{"arguments":[{"name":"value","nativeSrc":"1279:5:101","nodeType":"YulIdentifier","src":"1279:5:101"},{"kind":"number","nativeSrc":"1286:4:101","nodeType":"YulLiteral","src":"1286:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1275:3:101","nodeType":"YulIdentifier","src":"1275:3:101"},"nativeSrc":"1275:16:101","nodeType":"YulFunctionCall","src":"1275:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1264:7:101","nodeType":"YulIdentifier","src":"1264:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"1211:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1236:5:101","nodeType":"YulTypedName","src":"1236:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1246:7:101","nodeType":"YulTypedName","src":"1246:7:101","type":""}],"src":"1211:86:101"},{"body":{"nativeSrc":"1364:51:101","nodeType":"YulBlock","src":"1364:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1381:3:101","nodeType":"YulIdentifier","src":"1381:3:101"},{"arguments":[{"name":"value","nativeSrc":"1402:5:101","nodeType":"YulIdentifier","src":"1402:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"1386:15:101","nodeType":"YulIdentifier","src":"1386:15:101"},"nativeSrc":"1386:22:101","nodeType":"YulFunctionCall","src":"1386:22:101"}],"functionName":{"name":"mstore","nativeSrc":"1374:6:101","nodeType":"YulIdentifier","src":"1374:6:101"},"nativeSrc":"1374:35:101","nodeType":"YulFunctionCall","src":"1374:35:101"},"nativeSrc":"1374:35:101","nodeType":"YulExpressionStatement","src":"1374:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"1303:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1352:5:101","nodeType":"YulTypedName","src":"1352:5:101","type":""},{"name":"pos","nativeSrc":"1359:3:101","nodeType":"YulTypedName","src":"1359:3:101","type":""}],"src":"1303:112:101"},{"body":{"nativeSrc":"1515:120:101","nodeType":"YulBlock","src":"1515:120:101","statements":[{"nativeSrc":"1525:26:101","nodeType":"YulAssignment","src":"1525:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1537:9:101","nodeType":"YulIdentifier","src":"1537:9:101"},{"kind":"number","nativeSrc":"1548:2:101","nodeType":"YulLiteral","src":"1548:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1533:3:101","nodeType":"YulIdentifier","src":"1533:3:101"},"nativeSrc":"1533:18:101","nodeType":"YulFunctionCall","src":"1533:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1525:4:101","nodeType":"YulIdentifier","src":"1525:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1601:6:101","nodeType":"YulIdentifier","src":"1601:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1614:9:101","nodeType":"YulIdentifier","src":"1614:9:101"},{"kind":"number","nativeSrc":"1625:1:101","nodeType":"YulLiteral","src":"1625:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1610:3:101","nodeType":"YulIdentifier","src":"1610:3:101"},"nativeSrc":"1610:17:101","nodeType":"YulFunctionCall","src":"1610:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"1561:39:101","nodeType":"YulIdentifier","src":"1561:39:101"},"nativeSrc":"1561:67:101","nodeType":"YulFunctionCall","src":"1561:67:101"},"nativeSrc":"1561:67:101","nodeType":"YulExpressionStatement","src":"1561:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1421:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1487:9:101","nodeType":"YulTypedName","src":"1487:9:101","type":""},{"name":"value0","nativeSrc":"1499:6:101","nodeType":"YulTypedName","src":"1499:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1510:4:101","nodeType":"YulTypedName","src":"1510:4:101","type":""}],"src":"1421:214:101"}]},"contents":"{\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001861001d565b610101565b5f54610100900460ff161561004d5760405162461bcd60e51b8152600401610044906100a1565b60405180910390fd5b5f5460ff9081161461009f575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891610096916100f2565b60405180910390a15b565b602080825281016100ec81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff82168152602081016100ec565b611bfe8061010e5f395ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063715018a61161009e5780639eab1ad61161006e5780639eab1ad614610223578063b4a0bdf314610236578063e30c39781461024f578063f2fde38b14610260578063fdfbc27714610273575f80fd5b8063715018a6146101fa57806379ba5097146102025780638da5cb5b1461020a57806399fe040e1461021b575f80fd5b80633e83b6b8116100e45780633e83b6b81461018657806341976e09146101a1578063475e7de5146101c1578063485cc955146101d4578063636b999a146101e7575f80fd5b8063011d396214610115578063047a74b21461013e5780630e32cb861461015e578063255ce37a14610173575b5f80fd5b60cc54610128906001600160a01b031681565b6040516101359190610ed1565b60405180910390f35b61015161014c366004610fd9565b61029e565b604051610135919061104f565b61017161016c366004611085565b610341565b005b610171610181366004611085565b610355565b61012873bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101b46101af366004611085565b610412565b60405161013591906110a9565b60c954610128906001600160a01b031681565b6101716101e23660046110b7565b6105f4565b6101716101f5366004611102565b6106db565b6101716107ad565b6101716107c0565b6033546001600160a01b0316610128565b6101286107f5565b61017161023136600461119a565b610905565b6097546001600160a01b0316604051610135919061124d565b6065546001600160a01b0316610128565b61017161026e366004611085565b6109ea565b6101b4610281366004610fd9565b805160208183018101805160ca8252928201919093012091525481565b805160208183018101805160cb82529282019190930120915280546102c29061126f565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee9061126f565b80156103395780601f1061031057610100808354040283529160200191610339565b820191905f5260205f20905b81548152906001019060200180831161031c57829003601f168201915b505050505081565b610349610a5b565b61035281610a85565b50565b806001600160a01b0381166103855760405162461bcd60e51b815260040161037c906112c9565b60405180910390fd5b61038d610a5b565b60c9546001600160a01b0316156103b65760405162461bcd60e51b815260040161037c9061130c565b60cc546040516001600160a01b038085169216907f6d1006252b3dd171af76c28c184327bfddc39f439a50e0ac7f418c660b8894b5905f90a35060cc80546001600160a01b0319166001600160a01b0392909216919091179055565b5f60608173bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba196001600160a01b0385160161045e57505060408051808201909152600381526221272160e91b6020820152601261052d565b5f849050806001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561049d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104c49190810190611370565b9250806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610502573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052691906113bc565b60ff169150505b5f60cb8360405161053e91906113fb565b908152602001604051809103902080546105579061126f565b80601f01602080910402602001604051908101604052809291908181526020018280546105839061126f565b80156105ce5780601f106105a5576101008083540402835291602001916105ce565b820191905f5260205f20905b8154815290600101906020018083116105b157829003601f168201915b5050505050905080515f146105e1578092505b6105eb8383610b0a565b95945050505050565b5f54610100900460ff161580801561061257505f54600160ff909116105b8061062b5750303b15801561062b57505f5460ff166001145b6106475760405162461bcd60e51b815260040161037c90611453565b5f805460ff191660011790558015610668575f805461ff0019166101001790555b60c980546001600160a01b0319166001600160a01b03851617905561068c82610cf3565b80156106d6575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906106cd90600190611476565b60405180910390a15b505050565b6106fc604051806060016040528060218152602001611ba860219139610d2a565b805f0361071b5760405162461bcd60e51b815260040161037c906114b7565b81515f0361073b5760405162461bcd60e51b815260040161037c906114f3565b8060ca8360405161074c91906113fb565b9081526040519081900360200181209190915561076a9083906113fb565b60405180910390207f37839d4a80c5e3f2578f59515c911ee8cce42383d7ebaa1c92afcde9871c4b58826040516107a191906110a9565b60405180910390a25050565b6107b5610a5b565b6107be5f610dc5565b565b60655433906001600160a01b031681146107ec5760405162461bcd60e51b815260040161037c90611548565b61035281610dc5565b60c954604051630178b8bf60e01b81525f917f94fe3821e0768eb35012484db4df61890f9a6ca5bfa984ef8ff717e73139faff916001600160a01b039091169083908290630178b8bf9061084d9086906004016110a9565b602060405180830381865afa158015610868573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088c9190611563565b604051631d9dabef60e11b815290915081906001600160a01b03821690633b3b57de906108bd9087906004016110a9565b602060405180830381865afa1580156108d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fc9190611563565b94505050505090565b6109436040518060400160405280602081526020017f73657453796d626f6c4f7665727269646528737472696e672c737472696e6729815250610d2a565b5f8390036109635760405162461bcd60e51b815260040161037c906114f3565b818160cb8686604051610977929190611593565b90815260200160405180910390209182610992929190611632565b5083836040516109a3929190611593565b60405180910390207fceb1f47aa91b96f02ea70e1deed25fe154ad1885aea509bd7222f9eec0a0bda583836040516109dc929190611713565b60405180910390a250505050565b6109f2610a5b565b606580546001600160a01b0383166001600160a01b03199091168117909155610a236033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146107be5760405162461bcd60e51b815260040161037c90611756565b6001600160a01b038116610aab5760405162461bcd60e51b815260040161037c906117a7565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610afe90839085906117b7565b60405180910390a15050565b60c9545f9081906001600160a01b031615610b2e57610b276107f5565b9050610b3c565b5060cc546001600160a01b03165b5f80826001600160a01b031663bfda5e71876040518263ffffffff1660e01b8152600401610b6a91906117eb565b60a060405180830381865afa158015610b85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba99190611837565b509350509250505f8213610bcf5760405162461bcd60e51b815260040161037c906118dd565b80421015610bef5760405162461bcd60e51b815260040161037c90611920565b5f814203905060ca87604051610c0591906113fb565b908152602001604051809103902054811115610c335760405162461bcd60e51b815260040161037c90611963565b604051633748ccad60e11b81525f906001600160a01b03861690636e91995a90610c61908b906004016117eb565b602060405180830381865afa158015610c7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca091906113bc565b60ff169050610cb0876012611987565b610cbb90600a611aa6565b610cc6826012611987565b610cd190600a611aa6565b610cdb9086611ab3565b610ce59190611ab3565b955050505050505b92915050565b5f54610100900460ff16610d195760405162461bcd60e51b815260040161037c90611b19565b610d21610dde565b61035281610e0c565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab90610d5c9033908690600401611b29565b602060405180830381865afa158015610d77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9b9190611b5c565b905080610dc157333083604051634a3fa29360e01b815260040161037c93929190611b7a565b5050565b606580546001600160a01b031916905561035281610e32565b5f54610100900460ff16610e045760405162461bcd60e51b815260040161037c90611b19565b6107be610e83565b5f54610100900460ff166103495760405162461bcd60e51b815260040161037c90611b19565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610ea95760405162461bcd60e51b815260040161037c90611b19565b6107be33610dc5565b5f6001600160a01b038216610ced565b610ecb81610eb2565b82525050565b60208101610ced8284610ec2565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610f1957610f19610edf565b6040525050565b5f610f2a60405190565b9050610f368282610ef3565b919050565b5f67ffffffffffffffff821115610f5457610f54610edf565b601f19601f83011660200192915050565b82818337505f910152565b5f610f82610f7d84610f3b565b610f20565b905082815260208101848484011115610f9c57610f9c5f80fd5b610fa7848285610f65565b509392505050565b5f82601f830112610fc157610fc15f80fd5b8135610fd1848260208601610f70565b949350505050565b5f60208284031215610fec57610fec5f80fd5b813567ffffffffffffffff811115611005576110055f80fd5b610fd184828501610faf565b8281835e505f910152565b5f611025825190565b80845260208401935061103c818560208601611011565b601f19601f8201165b9093019392505050565b60208082528101611060818461101c565b9392505050565b61107081610eb2565b8114610352575f80fd5b8035610ced81611067565b5f60208284031215611098576110985f80fd5b5f610fd1848461107a565b80610ecb565b60208101610ced82846110a3565b5f80604083850312156110cb576110cb5f80fd5b5f6110d6858561107a565b92505060206110e78582860161107a565b9150509250929050565b80611070565b8035610ced816110f1565b5f8060408385031215611116576111165f80fd5b823567ffffffffffffffff81111561112f5761112f5f80fd5b61113b85828601610faf565b92505060206110e7858286016110f7565b5f8083601f84011261115f5761115f5f80fd5b50813567ffffffffffffffff811115611179576111795f80fd5b602083019150836001820283011115611193576111935f80fd5b9250929050565b5f805f80604085870312156111b0576111b05f80fd5b843567ffffffffffffffff8111156111c9576111c95f80fd5b6111d58782880161114c565b9450945050602085013567ffffffffffffffff8111156111f6576111f65f80fd5b6112028782880161114c565b95989497509550505050565b5f610ced6001600160a01b038316611224565b90565b6001600160a01b031690565b5f610ced8261120e565b5f610ced82611230565b610ecb8161123a565b60208101610ced8284611244565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061128357607f821691505b6020821081036112955761129561125b565b50919050565b601581525f602082017463616e2774206265207a65726f206164647265737360581b815291505b5060200190565b60208082528101610ced8161129b565b601f81525f602082017f736964526567697374727941646472657373206d757374206265207a65726f00815291506112c2565b60208082528101610ced816112d9565b5f611329610f7d84610f3b565b905082815260208101848484011115611343576113435f80fd5b610fa7848285611011565b5f82601f830112611360576113605f80fd5b8151610fd184826020860161131c565b5f60208284031215611383576113835f80fd5b815167ffffffffffffffff81111561139c5761139c5f80fd5b610fd18482850161134e565b60ff8116611070565b8051610ced816113a8565b5f602082840312156113cf576113cf5f80fd5b5f610fd184846113b1565b5f6113e3825190565b6113f1818560208601611011565b9290920192915050565b5f61106082846113da565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291505b5060400190565b60208082528101610ced81611406565b5f60ff8216610ced565b610ecb81611463565b60208101610ced828461146d565b601a81525f602082017f7374616c6520706572696f642063616e2774206265207a65726f000000000000815291506112c2565b60208082528101610ced81611484565b601681525f602082017573796d626f6c2063616e6e6f7420626520656d70747960501b815291506112c2565b60208082528101610ced816114c7565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b6020820152915061144c565b60208082528101610ced81611503565b8051610ced81611067565b5f60208284031215611576576115765f80fd5b5f610fd18484611558565b5f61158d838584610f65565b50500190565b5f610fd1828486611581565b5f610ced6112218381565b6115b38361159f565b81545f1960089490940293841b1916921b91909117905550565b5f6106d68184846115aa565b81811015610dc1576115eb5f826115cd565b6001016115d9565b601f8211156106d6575f818152602090206020601f850104810160208510156116195750805b61162b6020601f8601048301826115d9565b5050505050565b8267ffffffffffffffff81111561164b5761164b610edf565b611655825461126f565b6116608282856115f3565b5f601f831160018114611691575f841561167a5750858201355b5f19600886021c19811660028602178655506116e8565b5f85815260208120601f198616915b828110156116c057888501358255602094850194600190920191016116a0565b868310156116db575f19601f88166008021c19858a01351682555b6001600288020188555050505b50505050505050565b8183525f602084019350611706838584610f65565b601f19601f840116611045565b60208082528101610fd18184866116f1565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f6112c2565b60208082528101610ced81611725565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061144c565b60208082528101610ced81611766565b604081016117c58285610ec2565b6110606020830184610ec2565b600381525f60208201621554d160ea1b815291506112c2565b604080825281016117fc818461101c565b90508181036020830152611060816117d2565b69ffffffffffffffffffff8116611070565b8051610ced8161180f565b8051610ced816110f1565b5f805f805f60a0868803121561184e5761184e5f80fd5b5f6118598888611821565b955050602061186a8882890161182c565b945050604061187b8882890161182c565b935050606061188c8882890161182c565b925050608061189d88828901611821565b9150509295509295909350565b601c81525f602082017f696e76616c69642062696e616e6365206f7261636c6520707269636500000000815291506112c2565b60208082528101610ced816118aa565b601c81525f602082017f757064617465644174206578636565647320626c6f636b2074696d6500000000815291506112c2565b60208082528101610ced816118ed565b601c81525f602082017f62696e616e6365206f7261636c65207072696365206578706972656400000000815291506112c2565b60208082528101610ced81611930565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ced57610ced611973565b80825b60018511156119d9578086048111156119b8576119b8611973565b60018516156119c657908102905b80026119d28560011c90565b945061199d565b94509492505050565b5f826119f057506001611060565b816119fc57505f611060565b8160018114611a125760028114611a1c57611a49565b6001915050611060565b60ff841115611a2d57611a2d611973565b8360020a915084821115611a4357611a43611973565b50611060565b5060208310610133831016604e8410600b8410161715611a7c575081810a83811115611a7757611a77611973565b611060565b611a89848484600161199a565b92509050818404811115611a9f57611a9f611973565b0292915050565b5f6110605f1984846119e2565b818102808215838204851417611acb57611acb611973565b5092915050565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061144c565b60208082528101610ced81611ad2565b60408101611b378285610ec2565b8181036020830152610fd1818461101c565b801515611070565b8051610ced81611b49565b5f60208284031215611b6f57611b6f5f80fd5b5f610fd18484611b51565b60608101611b888286610ec2565b611b956020830185610ec2565b81810360408301526105eb818461101c56fe7365744d61785374616c65506572696f6428737472696e672c75696e7432353629a2646970667358221220e10415d7ffbd005634ab082e486b496d2db8ba3fddd8d01da5c6016db52b095564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x18 PUSH2 0x1D JUMP JUMPDEST PUSH2 0x101 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x44 SWAP1 PUSH2 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x9F JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0x96 SWAP2 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEC DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0x1BFE DUP1 PUSH2 0x10E PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9EAB1AD6 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9EAB1AD6 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xFDFBC277 EQ PUSH2 0x273 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x99FE040E EQ PUSH2 0x21B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E83B6B8 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x3E83B6B8 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x475E7DE5 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x636B999A EQ PUSH2 0x1E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x11D3962 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x47A74B2 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x255CE37A EQ PUSH2 0x173 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0xCC SLOAD PUSH2 0x128 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x151 PUSH2 0x14C CALLDATASIZE PUSH1 0x4 PUSH2 0xFD9 JUMP JUMPDEST PUSH2 0x29E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x104F JUMP JUMPDEST PUSH2 0x171 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x341 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x171 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x355 JUMP JUMPDEST PUSH2 0x128 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x1B4 PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH2 0x128 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x10B7 JUMP JUMPDEST PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1102 JUMP JUMPDEST PUSH2 0x6DB JUMP JUMPDEST PUSH2 0x171 PUSH2 0x7AD JUMP JUMPDEST PUSH2 0x171 PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x128 JUMP JUMPDEST PUSH2 0x128 PUSH2 0x7F5 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x231 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH2 0x905 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x124D JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x128 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x9EA JUMP JUMPDEST PUSH2 0x1B4 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0xFD9 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0xCA DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE SLOAD DUP2 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0xCB DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH2 0x2C2 SWAP1 PUSH2 0x126F 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 0x2EE SWAP1 PUSH2 0x126F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x339 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x310 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x339 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x31C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x349 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0xA85 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x385 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x12C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38D PUSH2 0xA5B JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x130C JUMP JUMPDEST PUSH1 0xCC SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP3 AND SWAP1 PUSH32 0x6D1006252B3DD171AF76C28C184327BFDDC39F439A50E0AC7F418C660B8894B5 SWAP1 PUSH0 SWAP1 LOG3 POP PUSH1 0xCC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP2 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ADD PUSH2 0x45E JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x212721 PUSH1 0xE9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x12 PUSH2 0x52D JUMP JUMPDEST PUSH0 DUP5 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95D89B41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x49D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x4C4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1370 JUMP JUMPDEST SWAP3 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x502 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x526 SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH1 0xFF AND SWAP2 POP POP JUMPDEST PUSH0 PUSH1 0xCB DUP4 PUSH1 0x40 MLOAD PUSH2 0x53E SWAP2 SWAP1 PUSH2 0x13FB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x557 SWAP1 PUSH2 0x126F 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 0x583 SWAP1 PUSH2 0x126F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5CE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5A5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5CE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5B1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH0 EQ PUSH2 0x5E1 JUMPI DUP1 SWAP3 POP JUMPDEST PUSH2 0x5EB DUP4 DUP4 PUSH2 0xB0A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x612 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x62B JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x62B JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x647 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1453 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x668 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0xC9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE PUSH2 0x68C DUP3 PUSH2 0xCF3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x6CD SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1476 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x6FC PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BA8 PUSH1 0x21 SWAP2 CODECOPY PUSH2 0xD2A JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x14B7 JUMP JUMPDEST DUP2 MLOAD PUSH0 SUB PUSH2 0x73B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x14F3 JUMP JUMPDEST DUP1 PUSH1 0xCA DUP4 PUSH1 0x40 MLOAD PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x13FB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x76A SWAP1 DUP4 SWAP1 PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x37839D4A80C5E3F2578F59515C911EE8CCE42383D7EBAA1C92AFCDE9871C4B58 DUP3 PUSH1 0x40 MLOAD PUSH2 0x7A1 SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x7B5 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0x7BE PUSH0 PUSH2 0xDC5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x7EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1548 JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0xDC5 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x178B8BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH32 0x94FE3821E0768EB35012484DB4DF61890F9A6CA5BFA984EF8FF717E73139FAFF SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 DUP3 SWAP1 PUSH4 0x178B8BF SWAP1 PUSH2 0x84D SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x868 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x88C SWAP2 SWAP1 PUSH2 0x1563 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1D9DABEF PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3B3B57DE SWAP1 PUSH2 0x8BD SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D8 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8FC SWAP2 SWAP1 PUSH2 0x1563 JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x943 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657453796D626F6C4F7665727269646528737472696E672C737472696E6729 DUP2 MSTORE POP PUSH2 0xD2A JUMP JUMPDEST PUSH0 DUP4 SWAP1 SUB PUSH2 0x963 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 PUSH1 0xCB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x977 SWAP3 SWAP2 SWAP1 PUSH2 0x1593 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP2 DUP3 PUSH2 0x992 SWAP3 SWAP2 SWAP1 PUSH2 0x1632 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9A3 SWAP3 SWAP2 SWAP1 PUSH2 0x1593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xCEB1F47AA91B96F02EA70E1DEED25FE154AD1885AEA509BD7222F9EEC0A0BDA5 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9DC SWAP3 SWAP2 SWAP1 PUSH2 0x1713 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x9F2 PUSH2 0xA5B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xA23 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1756 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xAAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0xAFE SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x17B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xB2E JUMPI PUSH2 0xB27 PUSH2 0x7F5 JUMP JUMPDEST SWAP1 POP PUSH2 0xB3C JUMP JUMPDEST POP PUSH1 0xCC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBFDA5E71 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB85 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xBA9 SWAP2 SWAP1 PUSH2 0x1837 JUMP JUMPDEST POP SWAP4 POP POP SWAP3 POP POP PUSH0 DUP3 SGT PUSH2 0xBCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x18DD JUMP JUMPDEST DUP1 TIMESTAMP LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH0 DUP2 TIMESTAMP SUB SWAP1 POP PUSH1 0xCA DUP8 PUSH1 0x40 MLOAD PUSH2 0xC05 SWAP2 SWAP1 PUSH2 0x13FB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0xC33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3748CCAD PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x6E91995A SWAP1 PUSH2 0xC61 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC7C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xCA0 SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0xCB0 DUP8 PUSH1 0x12 PUSH2 0x1987 JUMP JUMPDEST PUSH2 0xCBB SWAP1 PUSH1 0xA PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0xCC6 DUP3 PUSH1 0x12 PUSH2 0x1987 JUMP JUMPDEST PUSH2 0xCD1 SWAP1 PUSH1 0xA PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0xCDB SWAP1 DUP7 PUSH2 0x1AB3 JUMP JUMPDEST PUSH2 0xCE5 SWAP2 SWAP1 PUSH2 0x1AB3 JUMP JUMPDEST SWAP6 POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH2 0xD21 PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0xE0C JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xD5C SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1B29 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD77 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xD9B SWAP2 SWAP1 PUSH2 0x1B5C JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xDC1 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B7A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x352 DUP2 PUSH2 0xE32 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH2 0x7BE PUSH2 0xE83 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xEA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH2 0x7BE CALLER PUSH2 0xDC5 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCED JUMP JUMPDEST PUSH2 0xECB DUP2 PUSH2 0xEB2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0xEC2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF19 JUMPI PUSH2 0xF19 PUSH2 0xEDF JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xF2A PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xF36 DUP3 DUP3 PUSH2 0xEF3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF54 JUMPI PUSH2 0xF54 PUSH2 0xEDF JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xF82 PUSH2 0xF7D DUP5 PUSH2 0xF3B JUMP JUMPDEST PUSH2 0xF20 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xF9C JUMPI PUSH2 0xF9C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFA7 DUP5 DUP3 DUP6 PUSH2 0xF65 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFC1 JUMPI PUSH2 0xFC1 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xFD1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xF70 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFEC JUMPI PUSH2 0xFEC PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1005 JUMPI PUSH2 0x1005 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFD1 DUP5 DUP3 DUP6 ADD PUSH2 0xFAF JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x1025 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x103C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1011 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1060 DUP2 DUP5 PUSH2 0x101C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1070 DUP2 PUSH2 0xEB2 JUMP JUMPDEST DUP2 EQ PUSH2 0x352 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xCED DUP2 PUSH2 0x1067 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1098 JUMPI PUSH2 0x1098 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x107A JUMP JUMPDEST DUP1 PUSH2 0xECB JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0x10A3 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10CB JUMPI PUSH2 0x10CB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x10D6 DUP6 DUP6 PUSH2 0x107A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10E7 DUP6 DUP3 DUP7 ADD PUSH2 0x107A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x1070 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xCED DUP2 PUSH2 0x10F1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1116 JUMPI PUSH2 0x1116 PUSH0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x112F JUMPI PUSH2 0x112F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113B DUP6 DUP3 DUP7 ADD PUSH2 0xFAF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10E7 DUP6 DUP3 DUP7 ADD PUSH2 0x10F7 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x115F JUMPI PUSH2 0x115F PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1179 JUMPI PUSH2 0x1179 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1193 JUMPI PUSH2 0x1193 PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x11B0 JUMPI PUSH2 0x11B0 PUSH0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11C9 JUMPI PUSH2 0x11C9 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D5 DUP8 DUP3 DUP9 ADD PUSH2 0x114C JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11F6 JUMPI PUSH2 0x11F6 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1202 DUP8 DUP3 DUP9 ADD PUSH2 0x114C JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCED PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1224 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xCED DUP3 PUSH2 0x120E JUMP JUMPDEST PUSH0 PUSH2 0xCED DUP3 PUSH2 0x1230 JUMP JUMPDEST PUSH2 0xECB DUP2 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0x1244 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1283 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1295 JUMPI PUSH2 0x1295 PUSH2 0x125B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x129B JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x736964526567697374727941646472657373206D757374206265207A65726F00 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x12D9 JUMP JUMPDEST PUSH0 PUSH2 0x1329 PUSH2 0xF7D DUP5 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1343 JUMPI PUSH2 0x1343 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFA7 DUP5 DUP3 DUP6 PUSH2 0x1011 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1360 JUMPI PUSH2 0x1360 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFD1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x131C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1383 JUMPI PUSH2 0x1383 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x139C JUMPI PUSH2 0x139C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFD1 DUP5 DUP3 DUP6 ADD PUSH2 0x134E JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x1070 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x13A8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13CF JUMPI PUSH2 0x13CF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x13B1 JUMP JUMPDEST PUSH0 PUSH2 0x13E3 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x13F1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1011 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1060 DUP3 DUP5 PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1406 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0xCED JUMP JUMPDEST PUSH2 0xECB DUP2 PUSH2 0x1463 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0x146D JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x7374616C6520706572696F642063616E2774206265207A65726F000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1484 JUMP JUMPDEST PUSH1 0x16 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH22 0x73796D626F6C2063616E6E6F7420626520656D707479 PUSH1 0x50 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x14C7 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x144C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1503 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x1067 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1576 JUMPI PUSH2 0x1576 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x1558 JUMP JUMPDEST PUSH0 PUSH2 0x158D DUP4 DUP6 DUP5 PUSH2 0xF65 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xFD1 DUP3 DUP5 DUP7 PUSH2 0x1581 JUMP JUMPDEST PUSH0 PUSH2 0xCED PUSH2 0x1221 DUP4 DUP2 JUMP JUMPDEST PUSH2 0x15B3 DUP4 PUSH2 0x159F JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x6D6 DUP2 DUP5 DUP5 PUSH2 0x15AA JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDC1 JUMPI PUSH2 0x15EB PUSH0 DUP3 PUSH2 0x15CD JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x15D9 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x6D6 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1619 JUMPI POP DUP1 JUMPDEST PUSH2 0x162B PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x15D9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x164B JUMPI PUSH2 0x164B PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x1655 DUP3 SLOAD PUSH2 0x126F JUMP JUMPDEST PUSH2 0x1660 DUP3 DUP3 DUP6 PUSH2 0x15F3 JUMP JUMPDEST PUSH0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1691 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x167A JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x16E8 JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x16C0 JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x16A0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x16DB JUMPI PUSH0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x1706 DUP4 DUP6 DUP5 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x1045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xFD1 DUP2 DUP5 DUP7 PUSH2 0x16F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1725 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x144C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x17C5 DUP3 DUP6 PUSH2 0xEC2 JUMP JUMPDEST PUSH2 0x1060 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xEC2 JUMP JUMPDEST PUSH1 0x3 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH3 0x1554D1 PUSH1 0xEA SHL DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x17FC DUP2 DUP5 PUSH2 0x101C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1060 DUP2 PUSH2 0x17D2 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1070 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x180F JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x10F1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x184E JUMPI PUSH2 0x184E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1859 DUP9 DUP9 PUSH2 0x1821 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x186A DUP9 DUP3 DUP10 ADD PUSH2 0x182C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x187B DUP9 DUP3 DUP10 ADD PUSH2 0x182C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x188C DUP9 DUP3 DUP10 ADD PUSH2 0x182C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x189D DUP9 DUP3 DUP10 ADD PUSH2 0x1821 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C69642062696E616E6365206F7261636C6520707269636500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x18AA JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757064617465644174206578636565647320626C6F636B2074696D6500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x18ED JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x62696E616E6365206F7261636C65207072696365206578706972656400000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1930 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xCED JUMPI PUSH2 0xCED PUSH2 0x1973 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x19D9 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x19B8 JUMPI PUSH2 0x19B8 PUSH2 0x1973 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x19C6 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x19D2 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x199D JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x19F0 JUMPI POP PUSH1 0x1 PUSH2 0x1060 JUMP JUMPDEST DUP2 PUSH2 0x19FC JUMPI POP PUSH0 PUSH2 0x1060 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1A12 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1A1C JUMPI PUSH2 0x1A49 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x1060 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1A2D PUSH2 0x1973 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x1A43 JUMPI PUSH2 0x1A43 PUSH2 0x1973 JUMP JUMPDEST POP PUSH2 0x1060 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1A7C JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x1A77 JUMPI PUSH2 0x1A77 PUSH2 0x1973 JUMP JUMPDEST PUSH2 0x1060 JUMP JUMPDEST PUSH2 0x1A89 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x199A JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x1A9F JUMPI PUSH2 0x1A9F PUSH2 0x1973 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1060 PUSH0 NOT DUP5 DUP5 PUSH2 0x19E2 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x1ACB JUMPI PUSH2 0x1ACB PUSH2 0x1973 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x144C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1AD2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1B37 DUP3 DUP6 PUSH2 0xEC2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xFD1 DUP2 DUP5 PUSH2 0x101C JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x1070 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x1B49 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B6F JUMPI PUSH2 0x1B6F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x1B51 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1B88 DUP3 DUP7 PUSH2 0xEC2 JUMP JUMPDEST PUSH2 0x1B95 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xEC2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x5EB DUP2 DUP5 PUSH2 0x101C JUMP INVALID PUSH20 0x65744D61785374616C65506572696F6428737472 PUSH10 0x6E672C75696E74323536 0x29 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE1 DIV ISZERO 0xD7 SELFDESTRUCT 0xBD STOP JUMP CALLVALUE 0xAB ADDMOD 0x2E BASEFEE PUSH12 0x496D2DB8BA3FDDD8D01DA5C6 ADD PUSH14 0xB52B095564736F6C634300081900 CALLER ","sourceMap":"626:6093:49:-:0;;;2102:53;;;;;;;;;-1:-1:-1;2126:22:49;:20;:22::i;:::-;626:6093;;5939:280:5;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:5;;;;;;;:::i;:::-;;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:5;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;786:419:101:-;990:2;1003:47;;;975:18;;1067:131;975:18;641:2;113:19;;322:34;165:4;156:14;;299:58;-1:-1:-1;;;374:15:101;;;367:34;762:12;;;414:366;1067:131;1059:139;786:419;-1:-1:-1;;786:419:101:o;1421:214::-;1286:4;1275:16;;1374:35;;1548:2;1533:18;;1561:67;1303:112;1421:214;626:6093:49;;;;;;"},"deployedBytecode":{"functionDebugData":{"@BNB_ADDR_4013":{"entryPoint":null,"id":4013,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_1976":{"entryPoint":3315,"id":1976,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_1988":{"entryPoint":3596,"id":1988,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_129":{"entryPoint":3550,"id":129,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":3715,"id":248,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_2079":{"entryPoint":3370,"id":2079,"parameterSlots":1,"returnSlots":0},"@_checkOwner_279":{"entryPoint":2651,"id":279,"parameterSlots":0,"returnSlots":0},"@_getPrice_4427":{"entryPoint":2826,"id":4427,"parameterSlots":2,"returnSlots":1},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_2049":{"entryPoint":2693,"id":2049,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_181":{"entryPoint":3525,"id":181,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_336":{"entryPoint":3634,"id":336,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_203":{"entryPoint":1984,"id":203,"parameterSlots":0,"returnSlots":0},"@accessControlManager_2011":{"entryPoint":null,"id":2011,"parameterSlots":0,"returnSlots":1},"@feedRegistryAddress_4026":{"entryPoint":null,"id":4026,"parameterSlots":0,"returnSlots":0},"@getFeedRegistryAddress_4241":{"entryPoint":2037,"id":4241,"parameterSlots":0,"returnSlots":1},"@getPrice_4313":{"entryPoint":1042,"id":4313,"parameterSlots":1,"returnSlots":1},"@initialize_4092":{"entryPoint":1524,"id":4092,"parameterSlots":2,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@maxStalePeriod_4018":{"entryPoint":null,"id":4018,"parameterSlots":0,"returnSlots":0},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@pendingOwner_144":{"entryPoint":null,"id":144,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_293":{"entryPoint":1965,"id":293,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_2001":{"entryPoint":833,"id":2001,"parameterSlots":1,"returnSlots":0},"@setFeedRegistryAddress_4204":{"entryPoint":853,"id":4204,"parameterSlots":1,"returnSlots":0},"@setMaxStalePeriod_4136":{"entryPoint":1755,"id":4136,"parameterSlots":2,"returnSlots":0},"@setSymbolOverride_4172":{"entryPoint":2309,"id":4172,"parameterSlots":4,"returnSlots":0},"@sidRegistryAddress_4009":{"entryPoint":null,"id":4009,"parameterSlots":0,"returnSlots":0},"@symbols_4023":{"entryPoint":670,"id":4023,"parameterSlots":0,"returnSlots":0},"@transferOwnership_164":{"entryPoint":2538,"id":164,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":3952,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":4892,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":5464,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":6993,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_int256_fromMemory":{"entryPoint":6188,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_calldata_ptr":{"entryPoint":4428,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_string_memory_ptr":{"entryPoint":4015,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":4942,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4343,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint80_fromMemory":{"entryPoint":6177,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":5041,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4229,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":5475,"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_addresst_address":{"entryPoint":4279,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":7004,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr":{"entryPoint":4506,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":4057,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":4976,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_uint256":{"entryPoint":4354,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory":{"entryPoint":6199,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":5052,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3778,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":4676,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":5229,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":5873,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5505,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4124,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5082,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1_to_t_string_memory_ptr_fromStack":{"entryPoint":6448,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":5379,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a_to_t_string_memory_ptr_fromStack":{"entryPoint":5319,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack":{"entryPoint":4763,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack":{"entryPoint":5990,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e_to_t_string_memory_ptr_fromStack":{"entryPoint":6314,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack":{"entryPoint":6381,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":5126,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a_to_t_string_memory_ptr_fromStack":{"entryPoint":4825,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":5925,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e_to_t_string_memory_ptr_fromStack":{"entryPoint":6098,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack":{"entryPoint":5252,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":6866,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4259,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5523,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5115,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3793,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":6071,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7034,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6953,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":4685,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":5238,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5907,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4175,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6123,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6499,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5448,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5363,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4809,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6055,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6365,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6432,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5203,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4876,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5974,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5303,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6937,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4265,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3872,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":3899,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":6554,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":6822,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":6626,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":6835,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":6535,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":5619,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":3762,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint80":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":5593,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":4666,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":5219,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":4656,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":4622,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":5535,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":5682,"id":null,"parameterSlots":3,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":3941,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4113,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":4719,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":3827,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":6515,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":4699,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3807,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":5581,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":5546,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4199,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":6985,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4337,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":5032,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint80":{"entryPoint":6159,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:41586:101","nodeType":"YulBlock","src":"0:41586:101","statements":[{"body":{"nativeSrc":"52:81:101","nodeType":"YulBlock","src":"52:81:101","statements":[{"nativeSrc":"62:65:101","nodeType":"YulAssignment","src":"62:65:101","value":{"arguments":[{"name":"value","nativeSrc":"77:5:101","nodeType":"YulIdentifier","src":"77:5:101"},{"kind":"number","nativeSrc":"84:42:101","nodeType":"YulLiteral","src":"84:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"73:3:101","nodeType":"YulIdentifier","src":"73:3:101"},"nativeSrc":"73:54:101","nodeType":"YulFunctionCall","src":"73:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"7:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:126:101"},{"body":{"nativeSrc":"184:51:101","nodeType":"YulBlock","src":"184:51:101","statements":[{"nativeSrc":"194:35:101","nodeType":"YulAssignment","src":"194:35:101","value":{"arguments":[{"name":"value","nativeSrc":"223:5:101","nodeType":"YulIdentifier","src":"223:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"205:17:101","nodeType":"YulIdentifier","src":"205:17:101"},"nativeSrc":"205:24:101","nodeType":"YulFunctionCall","src":"205:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"194:7:101","nodeType":"YulIdentifier","src":"194:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"139:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"166:5:101","nodeType":"YulTypedName","src":"166:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"176:7:101","nodeType":"YulTypedName","src":"176:7:101","type":""}],"src":"139:96:101"},{"body":{"nativeSrc":"306:53:101","nodeType":"YulBlock","src":"306:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"323:3:101","nodeType":"YulIdentifier","src":"323:3:101"},{"arguments":[{"name":"value","nativeSrc":"346:5:101","nodeType":"YulIdentifier","src":"346:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"328:17:101","nodeType":"YulIdentifier","src":"328:17:101"},"nativeSrc":"328:24:101","nodeType":"YulFunctionCall","src":"328:24:101"}],"functionName":{"name":"mstore","nativeSrc":"316:6:101","nodeType":"YulIdentifier","src":"316:6:101"},"nativeSrc":"316:37:101","nodeType":"YulFunctionCall","src":"316:37:101"},"nativeSrc":"316:37:101","nodeType":"YulExpressionStatement","src":"316:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"241:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"294:5:101","nodeType":"YulTypedName","src":"294:5:101","type":""},{"name":"pos","nativeSrc":"301:3:101","nodeType":"YulTypedName","src":"301:3:101","type":""}],"src":"241:118:101"},{"body":{"nativeSrc":"463:124:101","nodeType":"YulBlock","src":"463:124:101","statements":[{"nativeSrc":"473:26:101","nodeType":"YulAssignment","src":"473:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"485:9:101","nodeType":"YulIdentifier","src":"485:9:101"},{"kind":"number","nativeSrc":"496:2:101","nodeType":"YulLiteral","src":"496:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"481:3:101","nodeType":"YulIdentifier","src":"481:3:101"},"nativeSrc":"481:18:101","nodeType":"YulFunctionCall","src":"481:18:101"},"variableNames":[{"name":"tail","nativeSrc":"473:4:101","nodeType":"YulIdentifier","src":"473:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"553:6:101","nodeType":"YulIdentifier","src":"553:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"566:9:101","nodeType":"YulIdentifier","src":"566:9:101"},{"kind":"number","nativeSrc":"577:1:101","nodeType":"YulLiteral","src":"577:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"562:3:101","nodeType":"YulIdentifier","src":"562:3:101"},"nativeSrc":"562:17:101","nodeType":"YulFunctionCall","src":"562:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"509:43:101","nodeType":"YulIdentifier","src":"509:43:101"},"nativeSrc":"509:71:101","nodeType":"YulFunctionCall","src":"509:71:101"},"nativeSrc":"509:71:101","nodeType":"YulExpressionStatement","src":"509:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"365:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"435:9:101","nodeType":"YulTypedName","src":"435:9:101","type":""},{"name":"value0","nativeSrc":"447:6:101","nodeType":"YulTypedName","src":"447:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"458:4:101","nodeType":"YulTypedName","src":"458:4:101","type":""}],"src":"365:222:101"},{"body":{"nativeSrc":"633:35:101","nodeType":"YulBlock","src":"633:35:101","statements":[{"nativeSrc":"643:19:101","nodeType":"YulAssignment","src":"643:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"659:2:101","nodeType":"YulLiteral","src":"659:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"653:5:101","nodeType":"YulIdentifier","src":"653:5:101"},"nativeSrc":"653:9:101","nodeType":"YulFunctionCall","src":"653:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"643:6:101","nodeType":"YulIdentifier","src":"643:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"593:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"626:6:101","nodeType":"YulTypedName","src":"626:6:101","type":""}],"src":"593:75:101"},{"body":{"nativeSrc":"763:28:101","nodeType":"YulBlock","src":"763:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"780:1:101","nodeType":"YulLiteral","src":"780:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"783:1:101","nodeType":"YulLiteral","src":"783:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"773:6:101","nodeType":"YulIdentifier","src":"773:6:101"},"nativeSrc":"773:12:101","nodeType":"YulFunctionCall","src":"773:12:101"},"nativeSrc":"773:12:101","nodeType":"YulExpressionStatement","src":"773:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"674:117:101","nodeType":"YulFunctionDefinition","src":"674:117:101"},{"body":{"nativeSrc":"886:28:101","nodeType":"YulBlock","src":"886:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"903:1:101","nodeType":"YulLiteral","src":"903:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"906:1:101","nodeType":"YulLiteral","src":"906:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"896:6:101","nodeType":"YulIdentifier","src":"896:6:101"},"nativeSrc":"896:12:101","nodeType":"YulFunctionCall","src":"896:12:101"},"nativeSrc":"896:12:101","nodeType":"YulExpressionStatement","src":"896:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"797:117:101","nodeType":"YulFunctionDefinition","src":"797:117:101"},{"body":{"nativeSrc":"1009:28:101","nodeType":"YulBlock","src":"1009:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1026:1:101","nodeType":"YulLiteral","src":"1026:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1029:1:101","nodeType":"YulLiteral","src":"1029:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1019:6:101","nodeType":"YulIdentifier","src":"1019:6:101"},"nativeSrc":"1019:12:101","nodeType":"YulFunctionCall","src":"1019:12:101"},"nativeSrc":"1019:12:101","nodeType":"YulExpressionStatement","src":"1019:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"920:117:101","nodeType":"YulFunctionDefinition","src":"920:117:101"},{"body":{"nativeSrc":"1132:28:101","nodeType":"YulBlock","src":"1132:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1149:1:101","nodeType":"YulLiteral","src":"1149:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1152:1:101","nodeType":"YulLiteral","src":"1152:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1142:6:101","nodeType":"YulIdentifier","src":"1142:6:101"},"nativeSrc":"1142:12:101","nodeType":"YulFunctionCall","src":"1142:12:101"},"nativeSrc":"1142:12:101","nodeType":"YulExpressionStatement","src":"1142:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1043:117:101","nodeType":"YulFunctionDefinition","src":"1043:117:101"},{"body":{"nativeSrc":"1214:54:101","nodeType":"YulBlock","src":"1214:54:101","statements":[{"nativeSrc":"1224:38:101","nodeType":"YulAssignment","src":"1224:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1242:5:101","nodeType":"YulIdentifier","src":"1242:5:101"},{"kind":"number","nativeSrc":"1249:2:101","nodeType":"YulLiteral","src":"1249:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1238:3:101","nodeType":"YulIdentifier","src":"1238:3:101"},"nativeSrc":"1238:14:101","nodeType":"YulFunctionCall","src":"1238:14:101"},{"arguments":[{"kind":"number","nativeSrc":"1258:2:101","nodeType":"YulLiteral","src":"1258:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1254:3:101","nodeType":"YulIdentifier","src":"1254:3:101"},"nativeSrc":"1254:7:101","nodeType":"YulFunctionCall","src":"1254:7:101"}],"functionName":{"name":"and","nativeSrc":"1234:3:101","nodeType":"YulIdentifier","src":"1234:3:101"},"nativeSrc":"1234:28:101","nodeType":"YulFunctionCall","src":"1234:28:101"},"variableNames":[{"name":"result","nativeSrc":"1224:6:101","nodeType":"YulIdentifier","src":"1224:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1166:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1197:5:101","nodeType":"YulTypedName","src":"1197:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1207:6:101","nodeType":"YulTypedName","src":"1207:6:101","type":""}],"src":"1166:102:101"},{"body":{"nativeSrc":"1302:152:101","nodeType":"YulBlock","src":"1302:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1319:1:101","nodeType":"YulLiteral","src":"1319:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1322:77:101","nodeType":"YulLiteral","src":"1322:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1312:6:101","nodeType":"YulIdentifier","src":"1312:6:101"},"nativeSrc":"1312:88:101","nodeType":"YulFunctionCall","src":"1312:88:101"},"nativeSrc":"1312:88:101","nodeType":"YulExpressionStatement","src":"1312:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1416:1:101","nodeType":"YulLiteral","src":"1416:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"1419:4:101","nodeType":"YulLiteral","src":"1419:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1409:6:101","nodeType":"YulIdentifier","src":"1409:6:101"},"nativeSrc":"1409:15:101","nodeType":"YulFunctionCall","src":"1409:15:101"},"nativeSrc":"1409:15:101","nodeType":"YulExpressionStatement","src":"1409:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1440:1:101","nodeType":"YulLiteral","src":"1440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1443:4:101","nodeType":"YulLiteral","src":"1443:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1433:6:101","nodeType":"YulIdentifier","src":"1433:6:101"},"nativeSrc":"1433:15:101","nodeType":"YulFunctionCall","src":"1433:15:101"},"nativeSrc":"1433:15:101","nodeType":"YulExpressionStatement","src":"1433:15:101"}]},"name":"panic_error_0x41","nativeSrc":"1274:180:101","nodeType":"YulFunctionDefinition","src":"1274:180:101"},{"body":{"nativeSrc":"1503:238:101","nodeType":"YulBlock","src":"1503:238:101","statements":[{"nativeSrc":"1513:58:101","nodeType":"YulVariableDeclaration","src":"1513:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"1535:6:101","nodeType":"YulIdentifier","src":"1535:6:101"},{"arguments":[{"name":"size","nativeSrc":"1565:4:101","nodeType":"YulIdentifier","src":"1565:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1543:21:101","nodeType":"YulIdentifier","src":"1543:21:101"},"nativeSrc":"1543:27:101","nodeType":"YulFunctionCall","src":"1543:27:101"}],"functionName":{"name":"add","nativeSrc":"1531:3:101","nodeType":"YulIdentifier","src":"1531:3:101"},"nativeSrc":"1531:40:101","nodeType":"YulFunctionCall","src":"1531:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"1517:10:101","nodeType":"YulTypedName","src":"1517:10:101","type":""}]},{"body":{"nativeSrc":"1682:22:101","nodeType":"YulBlock","src":"1682:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1684:16:101","nodeType":"YulIdentifier","src":"1684:16:101"},"nativeSrc":"1684:18:101","nodeType":"YulFunctionCall","src":"1684:18:101"},"nativeSrc":"1684:18:101","nodeType":"YulExpressionStatement","src":"1684:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1625:10:101","nodeType":"YulIdentifier","src":"1625:10:101"},{"kind":"number","nativeSrc":"1637:18:101","nodeType":"YulLiteral","src":"1637:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1622:2:101","nodeType":"YulIdentifier","src":"1622:2:101"},"nativeSrc":"1622:34:101","nodeType":"YulFunctionCall","src":"1622:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1661:10:101","nodeType":"YulIdentifier","src":"1661:10:101"},{"name":"memPtr","nativeSrc":"1673:6:101","nodeType":"YulIdentifier","src":"1673:6:101"}],"functionName":{"name":"lt","nativeSrc":"1658:2:101","nodeType":"YulIdentifier","src":"1658:2:101"},"nativeSrc":"1658:22:101","nodeType":"YulFunctionCall","src":"1658:22:101"}],"functionName":{"name":"or","nativeSrc":"1619:2:101","nodeType":"YulIdentifier","src":"1619:2:101"},"nativeSrc":"1619:62:101","nodeType":"YulFunctionCall","src":"1619:62:101"},"nativeSrc":"1616:88:101","nodeType":"YulIf","src":"1616:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1720:2:101","nodeType":"YulLiteral","src":"1720:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1724:10:101","nodeType":"YulIdentifier","src":"1724:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1713:6:101","nodeType":"YulIdentifier","src":"1713:6:101"},"nativeSrc":"1713:22:101","nodeType":"YulFunctionCall","src":"1713:22:101"},"nativeSrc":"1713:22:101","nodeType":"YulExpressionStatement","src":"1713:22:101"}]},"name":"finalize_allocation","nativeSrc":"1460:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1489:6:101","nodeType":"YulTypedName","src":"1489:6:101","type":""},{"name":"size","nativeSrc":"1497:4:101","nodeType":"YulTypedName","src":"1497:4:101","type":""}],"src":"1460:281:101"},{"body":{"nativeSrc":"1788:88:101","nodeType":"YulBlock","src":"1788:88:101","statements":[{"nativeSrc":"1798:30:101","nodeType":"YulAssignment","src":"1798:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1808:18:101","nodeType":"YulIdentifier","src":"1808:18:101"},"nativeSrc":"1808:20:101","nodeType":"YulFunctionCall","src":"1808:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1857:6:101","nodeType":"YulIdentifier","src":"1857:6:101"},{"name":"size","nativeSrc":"1865:4:101","nodeType":"YulIdentifier","src":"1865:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1837:19:101","nodeType":"YulIdentifier","src":"1837:19:101"},"nativeSrc":"1837:33:101","nodeType":"YulFunctionCall","src":"1837:33:101"},"nativeSrc":"1837:33:101","nodeType":"YulExpressionStatement","src":"1837:33:101"}]},"name":"allocate_memory","nativeSrc":"1747:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1772:4:101","nodeType":"YulTypedName","src":"1772:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1781:6:101","nodeType":"YulTypedName","src":"1781:6:101","type":""}],"src":"1747:129:101"},{"body":{"nativeSrc":"1949:241:101","nodeType":"YulBlock","src":"1949:241:101","statements":[{"body":{"nativeSrc":"2054:22:101","nodeType":"YulBlock","src":"2054:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2056:16:101","nodeType":"YulIdentifier","src":"2056:16:101"},"nativeSrc":"2056:18:101","nodeType":"YulFunctionCall","src":"2056:18:101"},"nativeSrc":"2056:18:101","nodeType":"YulExpressionStatement","src":"2056:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2026:6:101","nodeType":"YulIdentifier","src":"2026:6:101"},{"kind":"number","nativeSrc":"2034:18:101","nodeType":"YulLiteral","src":"2034:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2023:2:101","nodeType":"YulIdentifier","src":"2023:2:101"},"nativeSrc":"2023:30:101","nodeType":"YulFunctionCall","src":"2023:30:101"},"nativeSrc":"2020:56:101","nodeType":"YulIf","src":"2020:56:101"},{"nativeSrc":"2086:37:101","nodeType":"YulAssignment","src":"2086:37:101","value":{"arguments":[{"name":"length","nativeSrc":"2116:6:101","nodeType":"YulIdentifier","src":"2116:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2094:21:101","nodeType":"YulIdentifier","src":"2094:21:101"},"nativeSrc":"2094:29:101","nodeType":"YulFunctionCall","src":"2094:29:101"},"variableNames":[{"name":"size","nativeSrc":"2086:4:101","nodeType":"YulIdentifier","src":"2086:4:101"}]},{"nativeSrc":"2160:23:101","nodeType":"YulAssignment","src":"2160:23:101","value":{"arguments":[{"name":"size","nativeSrc":"2172:4:101","nodeType":"YulIdentifier","src":"2172:4:101"},{"kind":"number","nativeSrc":"2178:4:101","nodeType":"YulLiteral","src":"2178:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2168:3:101","nodeType":"YulIdentifier","src":"2168:3:101"},"nativeSrc":"2168:15:101","nodeType":"YulFunctionCall","src":"2168:15:101"},"variableNames":[{"name":"size","nativeSrc":"2160:4:101","nodeType":"YulIdentifier","src":"2160:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1882:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1933:6:101","nodeType":"YulTypedName","src":"1933:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1944:4:101","nodeType":"YulTypedName","src":"1944:4:101","type":""}],"src":"1882:308:101"},{"body":{"nativeSrc":"2260:84:101","nodeType":"YulBlock","src":"2260:84:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2284:3:101","nodeType":"YulIdentifier","src":"2284:3:101"},{"name":"src","nativeSrc":"2289:3:101","nodeType":"YulIdentifier","src":"2289:3:101"},{"name":"length","nativeSrc":"2294:6:101","nodeType":"YulIdentifier","src":"2294:6:101"}],"functionName":{"name":"calldatacopy","nativeSrc":"2271:12:101","nodeType":"YulIdentifier","src":"2271:12:101"},"nativeSrc":"2271:30:101","nodeType":"YulFunctionCall","src":"2271:30:101"},"nativeSrc":"2271:30:101","nodeType":"YulExpressionStatement","src":"2271:30:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2321:3:101","nodeType":"YulIdentifier","src":"2321:3:101"},{"name":"length","nativeSrc":"2326:6:101","nodeType":"YulIdentifier","src":"2326:6:101"}],"functionName":{"name":"add","nativeSrc":"2317:3:101","nodeType":"YulIdentifier","src":"2317:3:101"},"nativeSrc":"2317:16:101","nodeType":"YulFunctionCall","src":"2317:16:101"},{"kind":"number","nativeSrc":"2335:1:101","nodeType":"YulLiteral","src":"2335:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},"nativeSrc":"2310:27:101","nodeType":"YulFunctionCall","src":"2310:27:101"},"nativeSrc":"2310:27:101","nodeType":"YulExpressionStatement","src":"2310:27:101"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2196:148:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2242:3:101","nodeType":"YulTypedName","src":"2242:3:101","type":""},{"name":"dst","nativeSrc":"2247:3:101","nodeType":"YulTypedName","src":"2247:3:101","type":""},{"name":"length","nativeSrc":"2252:6:101","nodeType":"YulTypedName","src":"2252:6:101","type":""}],"src":"2196:148:101"},{"body":{"nativeSrc":"2434:341:101","nodeType":"YulBlock","src":"2434:341:101","statements":[{"nativeSrc":"2444:75:101","nodeType":"YulAssignment","src":"2444:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2511:6:101","nodeType":"YulIdentifier","src":"2511:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"2469:41:101","nodeType":"YulIdentifier","src":"2469:41:101"},"nativeSrc":"2469:49:101","nodeType":"YulFunctionCall","src":"2469:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"2453:15:101","nodeType":"YulIdentifier","src":"2453:15:101"},"nativeSrc":"2453:66:101","nodeType":"YulFunctionCall","src":"2453:66:101"},"variableNames":[{"name":"array","nativeSrc":"2444:5:101","nodeType":"YulIdentifier","src":"2444:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2535:5:101","nodeType":"YulIdentifier","src":"2535:5:101"},{"name":"length","nativeSrc":"2542:6:101","nodeType":"YulIdentifier","src":"2542:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2528:6:101","nodeType":"YulIdentifier","src":"2528:6:101"},"nativeSrc":"2528:21:101","nodeType":"YulFunctionCall","src":"2528:21:101"},"nativeSrc":"2528:21:101","nodeType":"YulExpressionStatement","src":"2528:21:101"},{"nativeSrc":"2558:27:101","nodeType":"YulVariableDeclaration","src":"2558:27:101","value":{"arguments":[{"name":"array","nativeSrc":"2573:5:101","nodeType":"YulIdentifier","src":"2573:5:101"},{"kind":"number","nativeSrc":"2580:4:101","nodeType":"YulLiteral","src":"2580:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2569:3:101","nodeType":"YulIdentifier","src":"2569:3:101"},"nativeSrc":"2569:16:101","nodeType":"YulFunctionCall","src":"2569:16:101"},"variables":[{"name":"dst","nativeSrc":"2562:3:101","nodeType":"YulTypedName","src":"2562:3:101","type":""}]},{"body":{"nativeSrc":"2623:83:101","nodeType":"YulBlock","src":"2623:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2625:77:101","nodeType":"YulIdentifier","src":"2625:77:101"},"nativeSrc":"2625:79:101","nodeType":"YulFunctionCall","src":"2625:79:101"},"nativeSrc":"2625:79:101","nodeType":"YulExpressionStatement","src":"2625:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2604:3:101","nodeType":"YulIdentifier","src":"2604:3:101"},{"name":"length","nativeSrc":"2609:6:101","nodeType":"YulIdentifier","src":"2609:6:101"}],"functionName":{"name":"add","nativeSrc":"2600:3:101","nodeType":"YulIdentifier","src":"2600:3:101"},"nativeSrc":"2600:16:101","nodeType":"YulFunctionCall","src":"2600:16:101"},{"name":"end","nativeSrc":"2618:3:101","nodeType":"YulIdentifier","src":"2618:3:101"}],"functionName":{"name":"gt","nativeSrc":"2597:2:101","nodeType":"YulIdentifier","src":"2597:2:101"},"nativeSrc":"2597:25:101","nodeType":"YulFunctionCall","src":"2597:25:101"},"nativeSrc":"2594:112:101","nodeType":"YulIf","src":"2594:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2752:3:101","nodeType":"YulIdentifier","src":"2752:3:101"},{"name":"dst","nativeSrc":"2757:3:101","nodeType":"YulIdentifier","src":"2757:3:101"},{"name":"length","nativeSrc":"2762:6:101","nodeType":"YulIdentifier","src":"2762:6:101"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2715:36:101","nodeType":"YulIdentifier","src":"2715:36:101"},"nativeSrc":"2715:54:101","nodeType":"YulFunctionCall","src":"2715:54:101"},"nativeSrc":"2715:54:101","nodeType":"YulExpressionStatement","src":"2715:54:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"2350:425:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2407:3:101","nodeType":"YulTypedName","src":"2407:3:101","type":""},{"name":"length","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""},{"name":"end","nativeSrc":"2420:3:101","nodeType":"YulTypedName","src":"2420:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2428:5:101","nodeType":"YulTypedName","src":"2428:5:101","type":""}],"src":"2350:425:101"},{"body":{"nativeSrc":"2857:278:101","nodeType":"YulBlock","src":"2857:278:101","statements":[{"body":{"nativeSrc":"2906:83:101","nodeType":"YulBlock","src":"2906:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2908:77:101","nodeType":"YulIdentifier","src":"2908:77:101"},"nativeSrc":"2908:79:101","nodeType":"YulFunctionCall","src":"2908:79:101"},"nativeSrc":"2908:79:101","nodeType":"YulExpressionStatement","src":"2908:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2885:6:101","nodeType":"YulIdentifier","src":"2885:6:101"},{"kind":"number","nativeSrc":"2893:4:101","nodeType":"YulLiteral","src":"2893:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2881:3:101","nodeType":"YulIdentifier","src":"2881:3:101"},"nativeSrc":"2881:17:101","nodeType":"YulFunctionCall","src":"2881:17:101"},{"name":"end","nativeSrc":"2900:3:101","nodeType":"YulIdentifier","src":"2900:3:101"}],"functionName":{"name":"slt","nativeSrc":"2877:3:101","nodeType":"YulIdentifier","src":"2877:3:101"},"nativeSrc":"2877:27:101","nodeType":"YulFunctionCall","src":"2877:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2870:6:101","nodeType":"YulIdentifier","src":"2870:6:101"},"nativeSrc":"2870:35:101","nodeType":"YulFunctionCall","src":"2870:35:101"},"nativeSrc":"2867:122:101","nodeType":"YulIf","src":"2867:122:101"},{"nativeSrc":"2998:34:101","nodeType":"YulVariableDeclaration","src":"2998:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"3025:6:101","nodeType":"YulIdentifier","src":"3025:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3012:12:101","nodeType":"YulIdentifier","src":"3012:12:101"},"nativeSrc":"3012:20:101","nodeType":"YulFunctionCall","src":"3012:20:101"},"variables":[{"name":"length","nativeSrc":"3002:6:101","nodeType":"YulTypedName","src":"3002:6:101","type":""}]},{"nativeSrc":"3041:88:101","nodeType":"YulAssignment","src":"3041:88:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3102:6:101","nodeType":"YulIdentifier","src":"3102:6:101"},{"kind":"number","nativeSrc":"3110:4:101","nodeType":"YulLiteral","src":"3110:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3098:3:101","nodeType":"YulIdentifier","src":"3098:3:101"},"nativeSrc":"3098:17:101","nodeType":"YulFunctionCall","src":"3098:17:101"},{"name":"length","nativeSrc":"3117:6:101","nodeType":"YulIdentifier","src":"3117:6:101"},{"name":"end","nativeSrc":"3125:3:101","nodeType":"YulIdentifier","src":"3125:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"3050:47:101","nodeType":"YulIdentifier","src":"3050:47:101"},"nativeSrc":"3050:79:101","nodeType":"YulFunctionCall","src":"3050:79:101"},"variableNames":[{"name":"array","nativeSrc":"3041:5:101","nodeType":"YulIdentifier","src":"3041:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr","nativeSrc":"2795:340:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2835:6:101","nodeType":"YulTypedName","src":"2835:6:101","type":""},{"name":"end","nativeSrc":"2843:3:101","nodeType":"YulTypedName","src":"2843:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2851:5:101","nodeType":"YulTypedName","src":"2851:5:101","type":""}],"src":"2795:340:101"},{"body":{"nativeSrc":"3217:433:101","nodeType":"YulBlock","src":"3217:433:101","statements":[{"body":{"nativeSrc":"3263:83:101","nodeType":"YulBlock","src":"3263:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3265:77:101","nodeType":"YulIdentifier","src":"3265:77:101"},"nativeSrc":"3265:79:101","nodeType":"YulFunctionCall","src":"3265:79:101"},"nativeSrc":"3265:79:101","nodeType":"YulExpressionStatement","src":"3265:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3238:7:101","nodeType":"YulIdentifier","src":"3238:7:101"},{"name":"headStart","nativeSrc":"3247:9:101","nodeType":"YulIdentifier","src":"3247:9:101"}],"functionName":{"name":"sub","nativeSrc":"3234:3:101","nodeType":"YulIdentifier","src":"3234:3:101"},"nativeSrc":"3234:23:101","nodeType":"YulFunctionCall","src":"3234:23:101"},{"kind":"number","nativeSrc":"3259:2:101","nodeType":"YulLiteral","src":"3259:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3230:3:101","nodeType":"YulIdentifier","src":"3230:3:101"},"nativeSrc":"3230:32:101","nodeType":"YulFunctionCall","src":"3230:32:101"},"nativeSrc":"3227:119:101","nodeType":"YulIf","src":"3227:119:101"},{"nativeSrc":"3356:287:101","nodeType":"YulBlock","src":"3356:287:101","statements":[{"nativeSrc":"3371:45:101","nodeType":"YulVariableDeclaration","src":"3371:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3402:9:101","nodeType":"YulIdentifier","src":"3402:9:101"},{"kind":"number","nativeSrc":"3413:1:101","nodeType":"YulLiteral","src":"3413:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3398:3:101","nodeType":"YulIdentifier","src":"3398:3:101"},"nativeSrc":"3398:17:101","nodeType":"YulFunctionCall","src":"3398:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"3385:12:101","nodeType":"YulIdentifier","src":"3385:12:101"},"nativeSrc":"3385:31:101","nodeType":"YulFunctionCall","src":"3385:31:101"},"variables":[{"name":"offset","nativeSrc":"3375:6:101","nodeType":"YulTypedName","src":"3375:6:101","type":""}]},{"body":{"nativeSrc":"3463:83:101","nodeType":"YulBlock","src":"3463:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3465:77:101","nodeType":"YulIdentifier","src":"3465:77:101"},"nativeSrc":"3465:79:101","nodeType":"YulFunctionCall","src":"3465:79:101"},"nativeSrc":"3465:79:101","nodeType":"YulExpressionStatement","src":"3465:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3435:6:101","nodeType":"YulIdentifier","src":"3435:6:101"},{"kind":"number","nativeSrc":"3443:18:101","nodeType":"YulLiteral","src":"3443:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3432:2:101","nodeType":"YulIdentifier","src":"3432:2:101"},"nativeSrc":"3432:30:101","nodeType":"YulFunctionCall","src":"3432:30:101"},"nativeSrc":"3429:117:101","nodeType":"YulIf","src":"3429:117:101"},{"nativeSrc":"3560:73:101","nodeType":"YulAssignment","src":"3560:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3605:9:101","nodeType":"YulIdentifier","src":"3605:9:101"},{"name":"offset","nativeSrc":"3616:6:101","nodeType":"YulIdentifier","src":"3616:6:101"}],"functionName":{"name":"add","nativeSrc":"3601:3:101","nodeType":"YulIdentifier","src":"3601:3:101"},"nativeSrc":"3601:22:101","nodeType":"YulFunctionCall","src":"3601:22:101"},{"name":"dataEnd","nativeSrc":"3625:7:101","nodeType":"YulIdentifier","src":"3625:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"3570:30:101","nodeType":"YulIdentifier","src":"3570:30:101"},"nativeSrc":"3570:63:101","nodeType":"YulFunctionCall","src":"3570:63:101"},"variableNames":[{"name":"value0","nativeSrc":"3560:6:101","nodeType":"YulIdentifier","src":"3560:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"3141:509:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:101","nodeType":"YulTypedName","src":"3187:9:101","type":""},{"name":"dataEnd","nativeSrc":"3198:7:101","nodeType":"YulTypedName","src":"3198:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3210:6:101","nodeType":"YulTypedName","src":"3210:6:101","type":""}],"src":"3141:509:101"},{"body":{"nativeSrc":"3715:40:101","nodeType":"YulBlock","src":"3715:40:101","statements":[{"nativeSrc":"3726:22:101","nodeType":"YulAssignment","src":"3726:22:101","value":{"arguments":[{"name":"value","nativeSrc":"3742:5:101","nodeType":"YulIdentifier","src":"3742:5:101"}],"functionName":{"name":"mload","nativeSrc":"3736:5:101","nodeType":"YulIdentifier","src":"3736:5:101"},"nativeSrc":"3736:12:101","nodeType":"YulFunctionCall","src":"3736:12:101"},"variableNames":[{"name":"length","nativeSrc":"3726:6:101","nodeType":"YulIdentifier","src":"3726:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3656:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3698:5:101","nodeType":"YulTypedName","src":"3698:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3708:6:101","nodeType":"YulTypedName","src":"3708:6:101","type":""}],"src":"3656:99:101"},{"body":{"nativeSrc":"3857:73:101","nodeType":"YulBlock","src":"3857:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3874:3:101","nodeType":"YulIdentifier","src":"3874:3:101"},{"name":"length","nativeSrc":"3879:6:101","nodeType":"YulIdentifier","src":"3879:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3867:6:101","nodeType":"YulIdentifier","src":"3867:6:101"},"nativeSrc":"3867:19:101","nodeType":"YulFunctionCall","src":"3867:19:101"},"nativeSrc":"3867:19:101","nodeType":"YulExpressionStatement","src":"3867:19:101"},{"nativeSrc":"3895:29:101","nodeType":"YulAssignment","src":"3895:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"3914:3:101","nodeType":"YulIdentifier","src":"3914:3:101"},{"kind":"number","nativeSrc":"3919:4:101","nodeType":"YulLiteral","src":"3919:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3910:3:101","nodeType":"YulIdentifier","src":"3910:3:101"},"nativeSrc":"3910:14:101","nodeType":"YulFunctionCall","src":"3910:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"3895:11:101","nodeType":"YulIdentifier","src":"3895:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3761:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3829:3:101","nodeType":"YulTypedName","src":"3829:3:101","type":""},{"name":"length","nativeSrc":"3834:6:101","nodeType":"YulTypedName","src":"3834:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3845:11:101","nodeType":"YulTypedName","src":"3845:11:101","type":""}],"src":"3761:169:101"},{"body":{"nativeSrc":"3998:77:101","nodeType":"YulBlock","src":"3998:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4015:3:101","nodeType":"YulIdentifier","src":"4015:3:101"},{"name":"src","nativeSrc":"4020:3:101","nodeType":"YulIdentifier","src":"4020:3:101"},{"name":"length","nativeSrc":"4025:6:101","nodeType":"YulIdentifier","src":"4025:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"4009:5:101","nodeType":"YulIdentifier","src":"4009:5:101"},"nativeSrc":"4009:23:101","nodeType":"YulFunctionCall","src":"4009:23:101"},"nativeSrc":"4009:23:101","nodeType":"YulExpressionStatement","src":"4009:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4052:3:101","nodeType":"YulIdentifier","src":"4052:3:101"},{"name":"length","nativeSrc":"4057:6:101","nodeType":"YulIdentifier","src":"4057:6:101"}],"functionName":{"name":"add","nativeSrc":"4048:3:101","nodeType":"YulIdentifier","src":"4048:3:101"},"nativeSrc":"4048:16:101","nodeType":"YulFunctionCall","src":"4048:16:101"},{"kind":"number","nativeSrc":"4066:1:101","nodeType":"YulLiteral","src":"4066:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4041:6:101","nodeType":"YulIdentifier","src":"4041:6:101"},"nativeSrc":"4041:27:101","nodeType":"YulFunctionCall","src":"4041:27:101"},"nativeSrc":"4041:27:101","nodeType":"YulExpressionStatement","src":"4041:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3936:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3980:3:101","nodeType":"YulTypedName","src":"3980:3:101","type":""},{"name":"dst","nativeSrc":"3985:3:101","nodeType":"YulTypedName","src":"3985:3:101","type":""},{"name":"length","nativeSrc":"3990:6:101","nodeType":"YulTypedName","src":"3990:6:101","type":""}],"src":"3936:139:101"},{"body":{"nativeSrc":"4173:285:101","nodeType":"YulBlock","src":"4173:285:101","statements":[{"nativeSrc":"4183:53:101","nodeType":"YulVariableDeclaration","src":"4183:53:101","value":{"arguments":[{"name":"value","nativeSrc":"4230:5:101","nodeType":"YulIdentifier","src":"4230:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"4197:32:101","nodeType":"YulIdentifier","src":"4197:32:101"},"nativeSrc":"4197:39:101","nodeType":"YulFunctionCall","src":"4197:39:101"},"variables":[{"name":"length","nativeSrc":"4187:6:101","nodeType":"YulTypedName","src":"4187:6:101","type":""}]},{"nativeSrc":"4245:78:101","nodeType":"YulAssignment","src":"4245:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"4311:3:101","nodeType":"YulIdentifier","src":"4311:3:101"},{"name":"length","nativeSrc":"4316:6:101","nodeType":"YulIdentifier","src":"4316:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4252:58:101","nodeType":"YulIdentifier","src":"4252:58:101"},"nativeSrc":"4252:71:101","nodeType":"YulFunctionCall","src":"4252:71:101"},"variableNames":[{"name":"pos","nativeSrc":"4245:3:101","nodeType":"YulIdentifier","src":"4245:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4371:5:101","nodeType":"YulIdentifier","src":"4371:5:101"},{"kind":"number","nativeSrc":"4378:4:101","nodeType":"YulLiteral","src":"4378:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4367:3:101","nodeType":"YulIdentifier","src":"4367:3:101"},"nativeSrc":"4367:16:101","nodeType":"YulFunctionCall","src":"4367:16:101"},{"name":"pos","nativeSrc":"4385:3:101","nodeType":"YulIdentifier","src":"4385:3:101"},{"name":"length","nativeSrc":"4390:6:101","nodeType":"YulIdentifier","src":"4390:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4332:34:101","nodeType":"YulIdentifier","src":"4332:34:101"},"nativeSrc":"4332:65:101","nodeType":"YulFunctionCall","src":"4332:65:101"},"nativeSrc":"4332:65:101","nodeType":"YulExpressionStatement","src":"4332:65:101"},{"nativeSrc":"4406:46:101","nodeType":"YulAssignment","src":"4406:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"4417:3:101","nodeType":"YulIdentifier","src":"4417:3:101"},{"arguments":[{"name":"length","nativeSrc":"4444:6:101","nodeType":"YulIdentifier","src":"4444:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4422:21:101","nodeType":"YulIdentifier","src":"4422:21:101"},"nativeSrc":"4422:29:101","nodeType":"YulFunctionCall","src":"4422:29:101"}],"functionName":{"name":"add","nativeSrc":"4413:3:101","nodeType":"YulIdentifier","src":"4413:3:101"},"nativeSrc":"4413:39:101","nodeType":"YulFunctionCall","src":"4413:39:101"},"variableNames":[{"name":"end","nativeSrc":"4406:3:101","nodeType":"YulIdentifier","src":"4406:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4081:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4154:5:101","nodeType":"YulTypedName","src":"4154:5:101","type":""},{"name":"pos","nativeSrc":"4161:3:101","nodeType":"YulTypedName","src":"4161:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4169:3:101","nodeType":"YulTypedName","src":"4169:3:101","type":""}],"src":"4081:377:101"},{"body":{"nativeSrc":"4582:195:101","nodeType":"YulBlock","src":"4582:195:101","statements":[{"nativeSrc":"4592:26:101","nodeType":"YulAssignment","src":"4592:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4604:9:101","nodeType":"YulIdentifier","src":"4604:9:101"},{"kind":"number","nativeSrc":"4615:2:101","nodeType":"YulLiteral","src":"4615:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4600:3:101","nodeType":"YulIdentifier","src":"4600:3:101"},"nativeSrc":"4600:18:101","nodeType":"YulFunctionCall","src":"4600:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4592:4:101","nodeType":"YulIdentifier","src":"4592:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4639:9:101","nodeType":"YulIdentifier","src":"4639:9:101"},{"kind":"number","nativeSrc":"4650:1:101","nodeType":"YulLiteral","src":"4650:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4635:3:101","nodeType":"YulIdentifier","src":"4635:3:101"},"nativeSrc":"4635:17:101","nodeType":"YulFunctionCall","src":"4635:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4658:4:101","nodeType":"YulIdentifier","src":"4658:4:101"},{"name":"headStart","nativeSrc":"4664:9:101","nodeType":"YulIdentifier","src":"4664:9:101"}],"functionName":{"name":"sub","nativeSrc":"4654:3:101","nodeType":"YulIdentifier","src":"4654:3:101"},"nativeSrc":"4654:20:101","nodeType":"YulFunctionCall","src":"4654:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4628:6:101","nodeType":"YulIdentifier","src":"4628:6:101"},"nativeSrc":"4628:47:101","nodeType":"YulFunctionCall","src":"4628:47:101"},"nativeSrc":"4628:47:101","nodeType":"YulExpressionStatement","src":"4628:47:101"},{"nativeSrc":"4684:86:101","nodeType":"YulAssignment","src":"4684:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"4756:6:101","nodeType":"YulIdentifier","src":"4756:6:101"},{"name":"tail","nativeSrc":"4765:4:101","nodeType":"YulIdentifier","src":"4765:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4692:63:101","nodeType":"YulIdentifier","src":"4692:63:101"},"nativeSrc":"4692:78:101","nodeType":"YulFunctionCall","src":"4692:78:101"},"variableNames":[{"name":"tail","nativeSrc":"4684:4:101","nodeType":"YulIdentifier","src":"4684:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4464:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4554:9:101","nodeType":"YulTypedName","src":"4554:9:101","type":""},{"name":"value0","nativeSrc":"4566:6:101","nodeType":"YulTypedName","src":"4566:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4577:4:101","nodeType":"YulTypedName","src":"4577:4:101","type":""}],"src":"4464:313:101"},{"body":{"nativeSrc":"4826:79:101","nodeType":"YulBlock","src":"4826:79:101","statements":[{"body":{"nativeSrc":"4883:16:101","nodeType":"YulBlock","src":"4883:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4892:1:101","nodeType":"YulLiteral","src":"4892:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4895:1:101","nodeType":"YulLiteral","src":"4895:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4885:6:101","nodeType":"YulIdentifier","src":"4885:6:101"},"nativeSrc":"4885:12:101","nodeType":"YulFunctionCall","src":"4885:12:101"},"nativeSrc":"4885:12:101","nodeType":"YulExpressionStatement","src":"4885:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4849:5:101","nodeType":"YulIdentifier","src":"4849:5:101"},{"arguments":[{"name":"value","nativeSrc":"4874:5:101","nodeType":"YulIdentifier","src":"4874:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4856:17:101","nodeType":"YulIdentifier","src":"4856:17:101"},"nativeSrc":"4856:24:101","nodeType":"YulFunctionCall","src":"4856:24:101"}],"functionName":{"name":"eq","nativeSrc":"4846:2:101","nodeType":"YulIdentifier","src":"4846:2:101"},"nativeSrc":"4846:35:101","nodeType":"YulFunctionCall","src":"4846:35:101"}],"functionName":{"name":"iszero","nativeSrc":"4839:6:101","nodeType":"YulIdentifier","src":"4839:6:101"},"nativeSrc":"4839:43:101","nodeType":"YulFunctionCall","src":"4839:43:101"},"nativeSrc":"4836:63:101","nodeType":"YulIf","src":"4836:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"4783:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4819:5:101","nodeType":"YulTypedName","src":"4819:5:101","type":""}],"src":"4783:122:101"},{"body":{"nativeSrc":"4963:87:101","nodeType":"YulBlock","src":"4963:87:101","statements":[{"nativeSrc":"4973:29:101","nodeType":"YulAssignment","src":"4973:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"4995:6:101","nodeType":"YulIdentifier","src":"4995:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"4982:12:101","nodeType":"YulIdentifier","src":"4982:12:101"},"nativeSrc":"4982:20:101","nodeType":"YulFunctionCall","src":"4982:20:101"},"variableNames":[{"name":"value","nativeSrc":"4973:5:101","nodeType":"YulIdentifier","src":"4973:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5038:5:101","nodeType":"YulIdentifier","src":"5038:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5011:26:101","nodeType":"YulIdentifier","src":"5011:26:101"},"nativeSrc":"5011:33:101","nodeType":"YulFunctionCall","src":"5011:33:101"},"nativeSrc":"5011:33:101","nodeType":"YulExpressionStatement","src":"5011:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"4911:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4941:6:101","nodeType":"YulTypedName","src":"4941:6:101","type":""},{"name":"end","nativeSrc":"4949:3:101","nodeType":"YulTypedName","src":"4949:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4957:5:101","nodeType":"YulTypedName","src":"4957:5:101","type":""}],"src":"4911:139:101"},{"body":{"nativeSrc":"5122:263:101","nodeType":"YulBlock","src":"5122:263:101","statements":[{"body":{"nativeSrc":"5168:83:101","nodeType":"YulBlock","src":"5168:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5170:77:101","nodeType":"YulIdentifier","src":"5170:77:101"},"nativeSrc":"5170:79:101","nodeType":"YulFunctionCall","src":"5170:79:101"},"nativeSrc":"5170:79:101","nodeType":"YulExpressionStatement","src":"5170:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5143:7:101","nodeType":"YulIdentifier","src":"5143:7:101"},{"name":"headStart","nativeSrc":"5152:9:101","nodeType":"YulIdentifier","src":"5152:9:101"}],"functionName":{"name":"sub","nativeSrc":"5139:3:101","nodeType":"YulIdentifier","src":"5139:3:101"},"nativeSrc":"5139:23:101","nodeType":"YulFunctionCall","src":"5139:23:101"},{"kind":"number","nativeSrc":"5164:2:101","nodeType":"YulLiteral","src":"5164:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5135:3:101","nodeType":"YulIdentifier","src":"5135:3:101"},"nativeSrc":"5135:32:101","nodeType":"YulFunctionCall","src":"5135:32:101"},"nativeSrc":"5132:119:101","nodeType":"YulIf","src":"5132:119:101"},{"nativeSrc":"5261:117:101","nodeType":"YulBlock","src":"5261:117:101","statements":[{"nativeSrc":"5276:15:101","nodeType":"YulVariableDeclaration","src":"5276:15:101","value":{"kind":"number","nativeSrc":"5290:1:101","nodeType":"YulLiteral","src":"5290:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5280:6:101","nodeType":"YulTypedName","src":"5280:6:101","type":""}]},{"nativeSrc":"5305:63:101","nodeType":"YulAssignment","src":"5305:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5340:9:101","nodeType":"YulIdentifier","src":"5340:9:101"},{"name":"offset","nativeSrc":"5351:6:101","nodeType":"YulIdentifier","src":"5351:6:101"}],"functionName":{"name":"add","nativeSrc":"5336:3:101","nodeType":"YulIdentifier","src":"5336:3:101"},"nativeSrc":"5336:22:101","nodeType":"YulFunctionCall","src":"5336:22:101"},{"name":"dataEnd","nativeSrc":"5360:7:101","nodeType":"YulIdentifier","src":"5360:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5315:20:101","nodeType":"YulIdentifier","src":"5315:20:101"},"nativeSrc":"5315:53:101","nodeType":"YulFunctionCall","src":"5315:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5305:6:101","nodeType":"YulIdentifier","src":"5305:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5056:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5092:9:101","nodeType":"YulTypedName","src":"5092:9:101","type":""},{"name":"dataEnd","nativeSrc":"5103:7:101","nodeType":"YulTypedName","src":"5103:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5115:6:101","nodeType":"YulTypedName","src":"5115:6:101","type":""}],"src":"5056:329:101"},{"body":{"nativeSrc":"5436:32:101","nodeType":"YulBlock","src":"5436:32:101","statements":[{"nativeSrc":"5446:16:101","nodeType":"YulAssignment","src":"5446:16:101","value":{"name":"value","nativeSrc":"5457:5:101","nodeType":"YulIdentifier","src":"5457:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5446:7:101","nodeType":"YulIdentifier","src":"5446:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5391:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5418:5:101","nodeType":"YulTypedName","src":"5418:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5428:7:101","nodeType":"YulTypedName","src":"5428:7:101","type":""}],"src":"5391:77:101"},{"body":{"nativeSrc":"5539:53:101","nodeType":"YulBlock","src":"5539:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5556:3:101","nodeType":"YulIdentifier","src":"5556:3:101"},{"arguments":[{"name":"value","nativeSrc":"5579:5:101","nodeType":"YulIdentifier","src":"5579:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5561:17:101","nodeType":"YulIdentifier","src":"5561:17:101"},"nativeSrc":"5561:24:101","nodeType":"YulFunctionCall","src":"5561:24:101"}],"functionName":{"name":"mstore","nativeSrc":"5549:6:101","nodeType":"YulIdentifier","src":"5549:6:101"},"nativeSrc":"5549:37:101","nodeType":"YulFunctionCall","src":"5549:37:101"},"nativeSrc":"5549:37:101","nodeType":"YulExpressionStatement","src":"5549:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5474:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5527:5:101","nodeType":"YulTypedName","src":"5527:5:101","type":""},{"name":"pos","nativeSrc":"5534:3:101","nodeType":"YulTypedName","src":"5534:3:101","type":""}],"src":"5474:118:101"},{"body":{"nativeSrc":"5696:124:101","nodeType":"YulBlock","src":"5696:124:101","statements":[{"nativeSrc":"5706:26:101","nodeType":"YulAssignment","src":"5706:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5718:9:101","nodeType":"YulIdentifier","src":"5718:9:101"},{"kind":"number","nativeSrc":"5729:2:101","nodeType":"YulLiteral","src":"5729:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5714:3:101","nodeType":"YulIdentifier","src":"5714:3:101"},"nativeSrc":"5714:18:101","nodeType":"YulFunctionCall","src":"5714:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5706:4:101","nodeType":"YulIdentifier","src":"5706:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5786:6:101","nodeType":"YulIdentifier","src":"5786:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5799:9:101","nodeType":"YulIdentifier","src":"5799:9:101"},{"kind":"number","nativeSrc":"5810:1:101","nodeType":"YulLiteral","src":"5810:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5795:3:101","nodeType":"YulIdentifier","src":"5795:3:101"},"nativeSrc":"5795:17:101","nodeType":"YulFunctionCall","src":"5795:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5742:43:101","nodeType":"YulIdentifier","src":"5742:43:101"},"nativeSrc":"5742:71:101","nodeType":"YulFunctionCall","src":"5742:71:101"},"nativeSrc":"5742:71:101","nodeType":"YulExpressionStatement","src":"5742:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5598:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5668:9:101","nodeType":"YulTypedName","src":"5668:9:101","type":""},{"name":"value0","nativeSrc":"5680:6:101","nodeType":"YulTypedName","src":"5680:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5691:4:101","nodeType":"YulTypedName","src":"5691:4:101","type":""}],"src":"5598:222:101"},{"body":{"nativeSrc":"5909:391:101","nodeType":"YulBlock","src":"5909:391:101","statements":[{"body":{"nativeSrc":"5955:83:101","nodeType":"YulBlock","src":"5955:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5957:77:101","nodeType":"YulIdentifier","src":"5957:77:101"},"nativeSrc":"5957:79:101","nodeType":"YulFunctionCall","src":"5957:79:101"},"nativeSrc":"5957:79:101","nodeType":"YulExpressionStatement","src":"5957:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5930:7:101","nodeType":"YulIdentifier","src":"5930:7:101"},{"name":"headStart","nativeSrc":"5939:9:101","nodeType":"YulIdentifier","src":"5939:9:101"}],"functionName":{"name":"sub","nativeSrc":"5926:3:101","nodeType":"YulIdentifier","src":"5926:3:101"},"nativeSrc":"5926:23:101","nodeType":"YulFunctionCall","src":"5926:23:101"},{"kind":"number","nativeSrc":"5951:2:101","nodeType":"YulLiteral","src":"5951:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5922:3:101","nodeType":"YulIdentifier","src":"5922:3:101"},"nativeSrc":"5922:32:101","nodeType":"YulFunctionCall","src":"5922:32:101"},"nativeSrc":"5919:119:101","nodeType":"YulIf","src":"5919:119:101"},{"nativeSrc":"6048:117:101","nodeType":"YulBlock","src":"6048:117:101","statements":[{"nativeSrc":"6063:15:101","nodeType":"YulVariableDeclaration","src":"6063:15:101","value":{"kind":"number","nativeSrc":"6077:1:101","nodeType":"YulLiteral","src":"6077:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6067:6:101","nodeType":"YulTypedName","src":"6067:6:101","type":""}]},{"nativeSrc":"6092:63:101","nodeType":"YulAssignment","src":"6092:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6127:9:101","nodeType":"YulIdentifier","src":"6127:9:101"},{"name":"offset","nativeSrc":"6138:6:101","nodeType":"YulIdentifier","src":"6138:6:101"}],"functionName":{"name":"add","nativeSrc":"6123:3:101","nodeType":"YulIdentifier","src":"6123:3:101"},"nativeSrc":"6123:22:101","nodeType":"YulFunctionCall","src":"6123:22:101"},{"name":"dataEnd","nativeSrc":"6147:7:101","nodeType":"YulIdentifier","src":"6147:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6102:20:101","nodeType":"YulIdentifier","src":"6102:20:101"},"nativeSrc":"6102:53:101","nodeType":"YulFunctionCall","src":"6102:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6092:6:101","nodeType":"YulIdentifier","src":"6092:6:101"}]}]},{"nativeSrc":"6175:118:101","nodeType":"YulBlock","src":"6175:118:101","statements":[{"nativeSrc":"6190:16:101","nodeType":"YulVariableDeclaration","src":"6190:16:101","value":{"kind":"number","nativeSrc":"6204:2:101","nodeType":"YulLiteral","src":"6204:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6194:6:101","nodeType":"YulTypedName","src":"6194:6:101","type":""}]},{"nativeSrc":"6220:63:101","nodeType":"YulAssignment","src":"6220:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6255:9:101","nodeType":"YulIdentifier","src":"6255:9:101"},{"name":"offset","nativeSrc":"6266:6:101","nodeType":"YulIdentifier","src":"6266:6:101"}],"functionName":{"name":"add","nativeSrc":"6251:3:101","nodeType":"YulIdentifier","src":"6251:3:101"},"nativeSrc":"6251:22:101","nodeType":"YulFunctionCall","src":"6251:22:101"},{"name":"dataEnd","nativeSrc":"6275:7:101","nodeType":"YulIdentifier","src":"6275:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6230:20:101","nodeType":"YulIdentifier","src":"6230:20:101"},"nativeSrc":"6230:53:101","nodeType":"YulFunctionCall","src":"6230:53:101"},"variableNames":[{"name":"value1","nativeSrc":"6220:6:101","nodeType":"YulIdentifier","src":"6220:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5826:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5871:9:101","nodeType":"YulTypedName","src":"5871:9:101","type":""},{"name":"dataEnd","nativeSrc":"5882:7:101","nodeType":"YulTypedName","src":"5882:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5894:6:101","nodeType":"YulTypedName","src":"5894:6:101","type":""},{"name":"value1","nativeSrc":"5902:6:101","nodeType":"YulTypedName","src":"5902:6:101","type":""}],"src":"5826:474:101"},{"body":{"nativeSrc":"6349:79:101","nodeType":"YulBlock","src":"6349:79:101","statements":[{"body":{"nativeSrc":"6406:16:101","nodeType":"YulBlock","src":"6406:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6415:1:101","nodeType":"YulLiteral","src":"6415:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6418:1:101","nodeType":"YulLiteral","src":"6418:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6408:6:101","nodeType":"YulIdentifier","src":"6408:6:101"},"nativeSrc":"6408:12:101","nodeType":"YulFunctionCall","src":"6408:12:101"},"nativeSrc":"6408:12:101","nodeType":"YulExpressionStatement","src":"6408:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6372:5:101","nodeType":"YulIdentifier","src":"6372:5:101"},{"arguments":[{"name":"value","nativeSrc":"6397:5:101","nodeType":"YulIdentifier","src":"6397:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6379:17:101","nodeType":"YulIdentifier","src":"6379:17:101"},"nativeSrc":"6379:24:101","nodeType":"YulFunctionCall","src":"6379:24:101"}],"functionName":{"name":"eq","nativeSrc":"6369:2:101","nodeType":"YulIdentifier","src":"6369:2:101"},"nativeSrc":"6369:35:101","nodeType":"YulFunctionCall","src":"6369:35:101"}],"functionName":{"name":"iszero","nativeSrc":"6362:6:101","nodeType":"YulIdentifier","src":"6362:6:101"},"nativeSrc":"6362:43:101","nodeType":"YulFunctionCall","src":"6362:43:101"},"nativeSrc":"6359:63:101","nodeType":"YulIf","src":"6359:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"6306:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6342:5:101","nodeType":"YulTypedName","src":"6342:5:101","type":""}],"src":"6306:122:101"},{"body":{"nativeSrc":"6486:87:101","nodeType":"YulBlock","src":"6486:87:101","statements":[{"nativeSrc":"6496:29:101","nodeType":"YulAssignment","src":"6496:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"6518:6:101","nodeType":"YulIdentifier","src":"6518:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"6505:12:101","nodeType":"YulIdentifier","src":"6505:12:101"},"nativeSrc":"6505:20:101","nodeType":"YulFunctionCall","src":"6505:20:101"},"variableNames":[{"name":"value","nativeSrc":"6496:5:101","nodeType":"YulIdentifier","src":"6496:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6561:5:101","nodeType":"YulIdentifier","src":"6561:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6534:26:101","nodeType":"YulIdentifier","src":"6534:26:101"},"nativeSrc":"6534:33:101","nodeType":"YulFunctionCall","src":"6534:33:101"},"nativeSrc":"6534:33:101","nodeType":"YulExpressionStatement","src":"6534:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"6434:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6464:6:101","nodeType":"YulTypedName","src":"6464:6:101","type":""},{"name":"end","nativeSrc":"6472:3:101","nodeType":"YulTypedName","src":"6472:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6480:5:101","nodeType":"YulTypedName","src":"6480:5:101","type":""}],"src":"6434:139:101"},{"body":{"nativeSrc":"6672:561:101","nodeType":"YulBlock","src":"6672:561:101","statements":[{"body":{"nativeSrc":"6718:83:101","nodeType":"YulBlock","src":"6718:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6720:77:101","nodeType":"YulIdentifier","src":"6720:77:101"},"nativeSrc":"6720:79:101","nodeType":"YulFunctionCall","src":"6720:79:101"},"nativeSrc":"6720:79:101","nodeType":"YulExpressionStatement","src":"6720:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6693:7:101","nodeType":"YulIdentifier","src":"6693:7:101"},{"name":"headStart","nativeSrc":"6702:9:101","nodeType":"YulIdentifier","src":"6702:9:101"}],"functionName":{"name":"sub","nativeSrc":"6689:3:101","nodeType":"YulIdentifier","src":"6689:3:101"},"nativeSrc":"6689:23:101","nodeType":"YulFunctionCall","src":"6689:23:101"},{"kind":"number","nativeSrc":"6714:2:101","nodeType":"YulLiteral","src":"6714:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6685:3:101","nodeType":"YulIdentifier","src":"6685:3:101"},"nativeSrc":"6685:32:101","nodeType":"YulFunctionCall","src":"6685:32:101"},"nativeSrc":"6682:119:101","nodeType":"YulIf","src":"6682:119:101"},{"nativeSrc":"6811:287:101","nodeType":"YulBlock","src":"6811:287:101","statements":[{"nativeSrc":"6826:45:101","nodeType":"YulVariableDeclaration","src":"6826:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6857:9:101","nodeType":"YulIdentifier","src":"6857:9:101"},{"kind":"number","nativeSrc":"6868:1:101","nodeType":"YulLiteral","src":"6868:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6853:3:101","nodeType":"YulIdentifier","src":"6853:3:101"},"nativeSrc":"6853:17:101","nodeType":"YulFunctionCall","src":"6853:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"6840:12:101","nodeType":"YulIdentifier","src":"6840:12:101"},"nativeSrc":"6840:31:101","nodeType":"YulFunctionCall","src":"6840:31:101"},"variables":[{"name":"offset","nativeSrc":"6830:6:101","nodeType":"YulTypedName","src":"6830:6:101","type":""}]},{"body":{"nativeSrc":"6918:83:101","nodeType":"YulBlock","src":"6918:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6920:77:101","nodeType":"YulIdentifier","src":"6920:77:101"},"nativeSrc":"6920:79:101","nodeType":"YulFunctionCall","src":"6920:79:101"},"nativeSrc":"6920:79:101","nodeType":"YulExpressionStatement","src":"6920:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6890:6:101","nodeType":"YulIdentifier","src":"6890:6:101"},{"kind":"number","nativeSrc":"6898:18:101","nodeType":"YulLiteral","src":"6898:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6887:2:101","nodeType":"YulIdentifier","src":"6887:2:101"},"nativeSrc":"6887:30:101","nodeType":"YulFunctionCall","src":"6887:30:101"},"nativeSrc":"6884:117:101","nodeType":"YulIf","src":"6884:117:101"},{"nativeSrc":"7015:73:101","nodeType":"YulAssignment","src":"7015:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7060:9:101","nodeType":"YulIdentifier","src":"7060:9:101"},{"name":"offset","nativeSrc":"7071:6:101","nodeType":"YulIdentifier","src":"7071:6:101"}],"functionName":{"name":"add","nativeSrc":"7056:3:101","nodeType":"YulIdentifier","src":"7056:3:101"},"nativeSrc":"7056:22:101","nodeType":"YulFunctionCall","src":"7056:22:101"},{"name":"dataEnd","nativeSrc":"7080:7:101","nodeType":"YulIdentifier","src":"7080:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"7025:30:101","nodeType":"YulIdentifier","src":"7025:30:101"},"nativeSrc":"7025:63:101","nodeType":"YulFunctionCall","src":"7025:63:101"},"variableNames":[{"name":"value0","nativeSrc":"7015:6:101","nodeType":"YulIdentifier","src":"7015:6:101"}]}]},{"nativeSrc":"7108:118:101","nodeType":"YulBlock","src":"7108:118:101","statements":[{"nativeSrc":"7123:16:101","nodeType":"YulVariableDeclaration","src":"7123:16:101","value":{"kind":"number","nativeSrc":"7137:2:101","nodeType":"YulLiteral","src":"7137:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7127:6:101","nodeType":"YulTypedName","src":"7127:6:101","type":""}]},{"nativeSrc":"7153:63:101","nodeType":"YulAssignment","src":"7153:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7188:9:101","nodeType":"YulIdentifier","src":"7188:9:101"},{"name":"offset","nativeSrc":"7199:6:101","nodeType":"YulIdentifier","src":"7199:6:101"}],"functionName":{"name":"add","nativeSrc":"7184:3:101","nodeType":"YulIdentifier","src":"7184:3:101"},"nativeSrc":"7184:22:101","nodeType":"YulFunctionCall","src":"7184:22:101"},{"name":"dataEnd","nativeSrc":"7208:7:101","nodeType":"YulIdentifier","src":"7208:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7163:20:101","nodeType":"YulIdentifier","src":"7163:20:101"},"nativeSrc":"7163:53:101","nodeType":"YulFunctionCall","src":"7163:53:101"},"variableNames":[{"name":"value1","nativeSrc":"7153:6:101","nodeType":"YulIdentifier","src":"7153:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint256","nativeSrc":"6579:654:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6634:9:101","nodeType":"YulTypedName","src":"6634:9:101","type":""},{"name":"dataEnd","nativeSrc":"6645:7:101","nodeType":"YulTypedName","src":"6645:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6657:6:101","nodeType":"YulTypedName","src":"6657:6:101","type":""},{"name":"value1","nativeSrc":"6665:6:101","nodeType":"YulTypedName","src":"6665:6:101","type":""}],"src":"6579:654:101"},{"body":{"nativeSrc":"7328:28:101","nodeType":"YulBlock","src":"7328:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7345:1:101","nodeType":"YulLiteral","src":"7345:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7348:1:101","nodeType":"YulLiteral","src":"7348:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7338:6:101","nodeType":"YulIdentifier","src":"7338:6:101"},"nativeSrc":"7338:12:101","nodeType":"YulFunctionCall","src":"7338:12:101"},"nativeSrc":"7338:12:101","nodeType":"YulExpressionStatement","src":"7338:12:101"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7239:117:101","nodeType":"YulFunctionDefinition","src":"7239:117:101"},{"body":{"nativeSrc":"7451:28:101","nodeType":"YulBlock","src":"7451:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7468:1:101","nodeType":"YulLiteral","src":"7468:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7471:1:101","nodeType":"YulLiteral","src":"7471:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7461:6:101","nodeType":"YulIdentifier","src":"7461:6:101"},"nativeSrc":"7461:12:101","nodeType":"YulFunctionCall","src":"7461:12:101"},"nativeSrc":"7461:12:101","nodeType":"YulExpressionStatement","src":"7461:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7362:117:101","nodeType":"YulFunctionDefinition","src":"7362:117:101"},{"body":{"nativeSrc":"7574:478:101","nodeType":"YulBlock","src":"7574:478:101","statements":[{"body":{"nativeSrc":"7623:83:101","nodeType":"YulBlock","src":"7623:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7625:77:101","nodeType":"YulIdentifier","src":"7625:77:101"},"nativeSrc":"7625:79:101","nodeType":"YulFunctionCall","src":"7625:79:101"},"nativeSrc":"7625:79:101","nodeType":"YulExpressionStatement","src":"7625:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7602:6:101","nodeType":"YulIdentifier","src":"7602:6:101"},{"kind":"number","nativeSrc":"7610:4:101","nodeType":"YulLiteral","src":"7610:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7598:3:101","nodeType":"YulIdentifier","src":"7598:3:101"},"nativeSrc":"7598:17:101","nodeType":"YulFunctionCall","src":"7598:17:101"},{"name":"end","nativeSrc":"7617:3:101","nodeType":"YulIdentifier","src":"7617:3:101"}],"functionName":{"name":"slt","nativeSrc":"7594:3:101","nodeType":"YulIdentifier","src":"7594:3:101"},"nativeSrc":"7594:27:101","nodeType":"YulFunctionCall","src":"7594:27:101"}],"functionName":{"name":"iszero","nativeSrc":"7587:6:101","nodeType":"YulIdentifier","src":"7587:6:101"},"nativeSrc":"7587:35:101","nodeType":"YulFunctionCall","src":"7587:35:101"},"nativeSrc":"7584:122:101","nodeType":"YulIf","src":"7584:122:101"},{"nativeSrc":"7715:30:101","nodeType":"YulAssignment","src":"7715:30:101","value":{"arguments":[{"name":"offset","nativeSrc":"7738:6:101","nodeType":"YulIdentifier","src":"7738:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"7725:12:101","nodeType":"YulIdentifier","src":"7725:12:101"},"nativeSrc":"7725:20:101","nodeType":"YulFunctionCall","src":"7725:20:101"},"variableNames":[{"name":"length","nativeSrc":"7715:6:101","nodeType":"YulIdentifier","src":"7715:6:101"}]},{"body":{"nativeSrc":"7788:83:101","nodeType":"YulBlock","src":"7788:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7790:77:101","nodeType":"YulIdentifier","src":"7790:77:101"},"nativeSrc":"7790:79:101","nodeType":"YulFunctionCall","src":"7790:79:101"},"nativeSrc":"7790:79:101","nodeType":"YulExpressionStatement","src":"7790:79:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7760:6:101","nodeType":"YulIdentifier","src":"7760:6:101"},{"kind":"number","nativeSrc":"7768:18:101","nodeType":"YulLiteral","src":"7768:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7757:2:101","nodeType":"YulIdentifier","src":"7757:2:101"},"nativeSrc":"7757:30:101","nodeType":"YulFunctionCall","src":"7757:30:101"},"nativeSrc":"7754:117:101","nodeType":"YulIf","src":"7754:117:101"},{"nativeSrc":"7880:29:101","nodeType":"YulAssignment","src":"7880:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"7896:6:101","nodeType":"YulIdentifier","src":"7896:6:101"},{"kind":"number","nativeSrc":"7904:4:101","nodeType":"YulLiteral","src":"7904:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7892:3:101","nodeType":"YulIdentifier","src":"7892:3:101"},"nativeSrc":"7892:17:101","nodeType":"YulFunctionCall","src":"7892:17:101"},"variableNames":[{"name":"arrayPos","nativeSrc":"7880:8:101","nodeType":"YulIdentifier","src":"7880:8:101"}]},{"body":{"nativeSrc":"7963:83:101","nodeType":"YulBlock","src":"7963:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7965:77:101","nodeType":"YulIdentifier","src":"7965:77:101"},"nativeSrc":"7965:79:101","nodeType":"YulFunctionCall","src":"7965:79:101"},"nativeSrc":"7965:79:101","nodeType":"YulExpressionStatement","src":"7965:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7928:8:101","nodeType":"YulIdentifier","src":"7928:8:101"},{"arguments":[{"name":"length","nativeSrc":"7942:6:101","nodeType":"YulIdentifier","src":"7942:6:101"},{"kind":"number","nativeSrc":"7950:4:101","nodeType":"YulLiteral","src":"7950:4:101","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"7938:3:101","nodeType":"YulIdentifier","src":"7938:3:101"},"nativeSrc":"7938:17:101","nodeType":"YulFunctionCall","src":"7938:17:101"}],"functionName":{"name":"add","nativeSrc":"7924:3:101","nodeType":"YulIdentifier","src":"7924:3:101"},"nativeSrc":"7924:32:101","nodeType":"YulFunctionCall","src":"7924:32:101"},{"name":"end","nativeSrc":"7958:3:101","nodeType":"YulIdentifier","src":"7958:3:101"}],"functionName":{"name":"gt","nativeSrc":"7921:2:101","nodeType":"YulIdentifier","src":"7921:2:101"},"nativeSrc":"7921:41:101","nodeType":"YulFunctionCall","src":"7921:41:101"},"nativeSrc":"7918:128:101","nodeType":"YulIf","src":"7918:128:101"}]},"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"7499:553:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7541:6:101","nodeType":"YulTypedName","src":"7541:6:101","type":""},{"name":"end","nativeSrc":"7549:3:101","nodeType":"YulTypedName","src":"7549:3:101","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7557:8:101","nodeType":"YulTypedName","src":"7557:8:101","type":""},{"name":"length","nativeSrc":"7567:6:101","nodeType":"YulTypedName","src":"7567:6:101","type":""}],"src":"7499:553:101"},{"body":{"nativeSrc":"8181:751:101","nodeType":"YulBlock","src":"8181:751:101","statements":[{"body":{"nativeSrc":"8227:83:101","nodeType":"YulBlock","src":"8227:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8229:77:101","nodeType":"YulIdentifier","src":"8229:77:101"},"nativeSrc":"8229:79:101","nodeType":"YulFunctionCall","src":"8229:79:101"},"nativeSrc":"8229:79:101","nodeType":"YulExpressionStatement","src":"8229:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8202:7:101","nodeType":"YulIdentifier","src":"8202:7:101"},{"name":"headStart","nativeSrc":"8211:9:101","nodeType":"YulIdentifier","src":"8211:9:101"}],"functionName":{"name":"sub","nativeSrc":"8198:3:101","nodeType":"YulIdentifier","src":"8198:3:101"},"nativeSrc":"8198:23:101","nodeType":"YulFunctionCall","src":"8198:23:101"},{"kind":"number","nativeSrc":"8223:2:101","nodeType":"YulLiteral","src":"8223:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8194:3:101","nodeType":"YulIdentifier","src":"8194:3:101"},"nativeSrc":"8194:32:101","nodeType":"YulFunctionCall","src":"8194:32:101"},"nativeSrc":"8191:119:101","nodeType":"YulIf","src":"8191:119:101"},{"nativeSrc":"8320:297:101","nodeType":"YulBlock","src":"8320:297:101","statements":[{"nativeSrc":"8335:45:101","nodeType":"YulVariableDeclaration","src":"8335:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8366:9:101","nodeType":"YulIdentifier","src":"8366:9:101"},{"kind":"number","nativeSrc":"8377:1:101","nodeType":"YulLiteral","src":"8377:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8362:3:101","nodeType":"YulIdentifier","src":"8362:3:101"},"nativeSrc":"8362:17:101","nodeType":"YulFunctionCall","src":"8362:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"8349:12:101","nodeType":"YulIdentifier","src":"8349:12:101"},"nativeSrc":"8349:31:101","nodeType":"YulFunctionCall","src":"8349:31:101"},"variables":[{"name":"offset","nativeSrc":"8339:6:101","nodeType":"YulTypedName","src":"8339:6:101","type":""}]},{"body":{"nativeSrc":"8427:83:101","nodeType":"YulBlock","src":"8427:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8429:77:101","nodeType":"YulIdentifier","src":"8429:77:101"},"nativeSrc":"8429:79:101","nodeType":"YulFunctionCall","src":"8429:79:101"},"nativeSrc":"8429:79:101","nodeType":"YulExpressionStatement","src":"8429:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8399:6:101","nodeType":"YulIdentifier","src":"8399:6:101"},{"kind":"number","nativeSrc":"8407:18:101","nodeType":"YulLiteral","src":"8407:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8396:2:101","nodeType":"YulIdentifier","src":"8396:2:101"},"nativeSrc":"8396:30:101","nodeType":"YulFunctionCall","src":"8396:30:101"},"nativeSrc":"8393:117:101","nodeType":"YulIf","src":"8393:117:101"},{"nativeSrc":"8524:83:101","nodeType":"YulAssignment","src":"8524:83:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8579:9:101","nodeType":"YulIdentifier","src":"8579:9:101"},{"name":"offset","nativeSrc":"8590:6:101","nodeType":"YulIdentifier","src":"8590:6:101"}],"functionName":{"name":"add","nativeSrc":"8575:3:101","nodeType":"YulIdentifier","src":"8575:3:101"},"nativeSrc":"8575:22:101","nodeType":"YulFunctionCall","src":"8575:22:101"},{"name":"dataEnd","nativeSrc":"8599:7:101","nodeType":"YulIdentifier","src":"8599:7:101"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"8542:32:101","nodeType":"YulIdentifier","src":"8542:32:101"},"nativeSrc":"8542:65:101","nodeType":"YulFunctionCall","src":"8542:65:101"},"variableNames":[{"name":"value0","nativeSrc":"8524:6:101","nodeType":"YulIdentifier","src":"8524:6:101"},{"name":"value1","nativeSrc":"8532:6:101","nodeType":"YulIdentifier","src":"8532:6:101"}]}]},{"nativeSrc":"8627:298:101","nodeType":"YulBlock","src":"8627:298:101","statements":[{"nativeSrc":"8642:46:101","nodeType":"YulVariableDeclaration","src":"8642:46:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8673:9:101","nodeType":"YulIdentifier","src":"8673:9:101"},{"kind":"number","nativeSrc":"8684:2:101","nodeType":"YulLiteral","src":"8684:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8669:3:101","nodeType":"YulIdentifier","src":"8669:3:101"},"nativeSrc":"8669:18:101","nodeType":"YulFunctionCall","src":"8669:18:101"}],"functionName":{"name":"calldataload","nativeSrc":"8656:12:101","nodeType":"YulIdentifier","src":"8656:12:101"},"nativeSrc":"8656:32:101","nodeType":"YulFunctionCall","src":"8656:32:101"},"variables":[{"name":"offset","nativeSrc":"8646:6:101","nodeType":"YulTypedName","src":"8646:6:101","type":""}]},{"body":{"nativeSrc":"8735:83:101","nodeType":"YulBlock","src":"8735:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8737:77:101","nodeType":"YulIdentifier","src":"8737:77:101"},"nativeSrc":"8737:79:101","nodeType":"YulFunctionCall","src":"8737:79:101"},"nativeSrc":"8737:79:101","nodeType":"YulExpressionStatement","src":"8737:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8707:6:101","nodeType":"YulIdentifier","src":"8707:6:101"},{"kind":"number","nativeSrc":"8715:18:101","nodeType":"YulLiteral","src":"8715:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8704:2:101","nodeType":"YulIdentifier","src":"8704:2:101"},"nativeSrc":"8704:30:101","nodeType":"YulFunctionCall","src":"8704:30:101"},"nativeSrc":"8701:117:101","nodeType":"YulIf","src":"8701:117:101"},{"nativeSrc":"8832:83:101","nodeType":"YulAssignment","src":"8832:83:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8887:9:101","nodeType":"YulIdentifier","src":"8887:9:101"},{"name":"offset","nativeSrc":"8898:6:101","nodeType":"YulIdentifier","src":"8898:6:101"}],"functionName":{"name":"add","nativeSrc":"8883:3:101","nodeType":"YulIdentifier","src":"8883:3:101"},"nativeSrc":"8883:22:101","nodeType":"YulFunctionCall","src":"8883:22:101"},{"name":"dataEnd","nativeSrc":"8907:7:101","nodeType":"YulIdentifier","src":"8907:7:101"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"8850:32:101","nodeType":"YulIdentifier","src":"8850:32:101"},"nativeSrc":"8850:65:101","nodeType":"YulFunctionCall","src":"8850:65:101"},"variableNames":[{"name":"value2","nativeSrc":"8832:6:101","nodeType":"YulIdentifier","src":"8832:6:101"},{"name":"value3","nativeSrc":"8840:6:101","nodeType":"YulIdentifier","src":"8840:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr","nativeSrc":"8058:874:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8127:9:101","nodeType":"YulTypedName","src":"8127:9:101","type":""},{"name":"dataEnd","nativeSrc":"8138:7:101","nodeType":"YulTypedName","src":"8138:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8150:6:101","nodeType":"YulTypedName","src":"8150:6:101","type":""},{"name":"value1","nativeSrc":"8158:6:101","nodeType":"YulTypedName","src":"8158:6:101","type":""},{"name":"value2","nativeSrc":"8166:6:101","nodeType":"YulTypedName","src":"8166:6:101","type":""},{"name":"value3","nativeSrc":"8174:6:101","nodeType":"YulTypedName","src":"8174:6:101","type":""}],"src":"8058:874:101"},{"body":{"nativeSrc":"8970:28:101","nodeType":"YulBlock","src":"8970:28:101","statements":[{"nativeSrc":"8980:12:101","nodeType":"YulAssignment","src":"8980:12:101","value":{"name":"value","nativeSrc":"8987:5:101","nodeType":"YulIdentifier","src":"8987:5:101"},"variableNames":[{"name":"ret","nativeSrc":"8980:3:101","nodeType":"YulIdentifier","src":"8980:3:101"}]}]},"name":"identity","nativeSrc":"8938:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8956:5:101","nodeType":"YulTypedName","src":"8956:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"8966:3:101","nodeType":"YulTypedName","src":"8966:3:101","type":""}],"src":"8938:60:101"},{"body":{"nativeSrc":"9064:82:101","nodeType":"YulBlock","src":"9064:82:101","statements":[{"nativeSrc":"9074:66:101","nodeType":"YulAssignment","src":"9074:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9132:5:101","nodeType":"YulIdentifier","src":"9132:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"9114:17:101","nodeType":"YulIdentifier","src":"9114:17:101"},"nativeSrc":"9114:24:101","nodeType":"YulFunctionCall","src":"9114:24:101"}],"functionName":{"name":"identity","nativeSrc":"9105:8:101","nodeType":"YulIdentifier","src":"9105:8:101"},"nativeSrc":"9105:34:101","nodeType":"YulFunctionCall","src":"9105:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"9087:17:101","nodeType":"YulIdentifier","src":"9087:17:101"},"nativeSrc":"9087:53:101","nodeType":"YulFunctionCall","src":"9087:53:101"},"variableNames":[{"name":"converted","nativeSrc":"9074:9:101","nodeType":"YulIdentifier","src":"9074:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"9004:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9044:5:101","nodeType":"YulTypedName","src":"9044:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"9054:9:101","nodeType":"YulTypedName","src":"9054:9:101","type":""}],"src":"9004:142:101"},{"body":{"nativeSrc":"9212:66:101","nodeType":"YulBlock","src":"9212:66:101","statements":[{"nativeSrc":"9222:50:101","nodeType":"YulAssignment","src":"9222:50:101","value":{"arguments":[{"name":"value","nativeSrc":"9266:5:101","nodeType":"YulIdentifier","src":"9266:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"9235:30:101","nodeType":"YulIdentifier","src":"9235:30:101"},"nativeSrc":"9235:37:101","nodeType":"YulFunctionCall","src":"9235:37:101"},"variableNames":[{"name":"converted","nativeSrc":"9222:9:101","nodeType":"YulIdentifier","src":"9222:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"9152:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9192:5:101","nodeType":"YulTypedName","src":"9192:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"9202:9:101","nodeType":"YulTypedName","src":"9202:9:101","type":""}],"src":"9152:126:101"},{"body":{"nativeSrc":"9376:66:101","nodeType":"YulBlock","src":"9376:66:101","statements":[{"nativeSrc":"9386:50:101","nodeType":"YulAssignment","src":"9386:50:101","value":{"arguments":[{"name":"value","nativeSrc":"9430:5:101","nodeType":"YulIdentifier","src":"9430:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"9399:30:101","nodeType":"YulIdentifier","src":"9399:30:101"},"nativeSrc":"9399:37:101","nodeType":"YulFunctionCall","src":"9399:37:101"},"variableNames":[{"name":"converted","nativeSrc":"9386:9:101","nodeType":"YulIdentifier","src":"9386:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"9284:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9356:5:101","nodeType":"YulTypedName","src":"9356:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"9366:9:101","nodeType":"YulTypedName","src":"9366:9:101","type":""}],"src":"9284:158:101"},{"body":{"nativeSrc":"9545:98:101","nodeType":"YulBlock","src":"9545:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9562:3:101","nodeType":"YulIdentifier","src":"9562:3:101"},{"arguments":[{"name":"value","nativeSrc":"9630:5:101","nodeType":"YulIdentifier","src":"9630:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"9567:62:101","nodeType":"YulIdentifier","src":"9567:62:101"},"nativeSrc":"9567:69:101","nodeType":"YulFunctionCall","src":"9567:69:101"}],"functionName":{"name":"mstore","nativeSrc":"9555:6:101","nodeType":"YulIdentifier","src":"9555:6:101"},"nativeSrc":"9555:82:101","nodeType":"YulFunctionCall","src":"9555:82:101"},"nativeSrc":"9555:82:101","nodeType":"YulExpressionStatement","src":"9555:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"9448:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9533:5:101","nodeType":"YulTypedName","src":"9533:5:101","type":""},{"name":"pos","nativeSrc":"9540:3:101","nodeType":"YulTypedName","src":"9540:3:101","type":""}],"src":"9448:195:101"},{"body":{"nativeSrc":"9779:156:101","nodeType":"YulBlock","src":"9779:156:101","statements":[{"nativeSrc":"9789:26:101","nodeType":"YulAssignment","src":"9789:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9801:9:101","nodeType":"YulIdentifier","src":"9801:9:101"},{"kind":"number","nativeSrc":"9812:2:101","nodeType":"YulLiteral","src":"9812:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9797:3:101","nodeType":"YulIdentifier","src":"9797:3:101"},"nativeSrc":"9797:18:101","nodeType":"YulFunctionCall","src":"9797:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9789:4:101","nodeType":"YulIdentifier","src":"9789:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9901:6:101","nodeType":"YulIdentifier","src":"9901:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"9914:9:101","nodeType":"YulIdentifier","src":"9914:9:101"},{"kind":"number","nativeSrc":"9925:1:101","nodeType":"YulLiteral","src":"9925:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9910:3:101","nodeType":"YulIdentifier","src":"9910:3:101"},"nativeSrc":"9910:17:101","nodeType":"YulFunctionCall","src":"9910:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"9825:75:101","nodeType":"YulIdentifier","src":"9825:75:101"},"nativeSrc":"9825:103:101","nodeType":"YulFunctionCall","src":"9825:103:101"},"nativeSrc":"9825:103:101","nodeType":"YulExpressionStatement","src":"9825:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"9649:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9751:9:101","nodeType":"YulTypedName","src":"9751:9:101","type":""},{"name":"value0","nativeSrc":"9763:6:101","nodeType":"YulTypedName","src":"9763:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9774:4:101","nodeType":"YulTypedName","src":"9774:4:101","type":""}],"src":"9649:286:101"},{"body":{"nativeSrc":"9969:152:101","nodeType":"YulBlock","src":"9969:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9986:1:101","nodeType":"YulLiteral","src":"9986:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9989:77:101","nodeType":"YulLiteral","src":"9989:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9979:6:101","nodeType":"YulIdentifier","src":"9979:6:101"},"nativeSrc":"9979:88:101","nodeType":"YulFunctionCall","src":"9979:88:101"},"nativeSrc":"9979:88:101","nodeType":"YulExpressionStatement","src":"9979:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10083:1:101","nodeType":"YulLiteral","src":"10083:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"10086:4:101","nodeType":"YulLiteral","src":"10086:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"10076:6:101","nodeType":"YulIdentifier","src":"10076:6:101"},"nativeSrc":"10076:15:101","nodeType":"YulFunctionCall","src":"10076:15:101"},"nativeSrc":"10076:15:101","nodeType":"YulExpressionStatement","src":"10076:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10107:1:101","nodeType":"YulLiteral","src":"10107:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"10110:4:101","nodeType":"YulLiteral","src":"10110:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10100:6:101","nodeType":"YulIdentifier","src":"10100:6:101"},"nativeSrc":"10100:15:101","nodeType":"YulFunctionCall","src":"10100:15:101"},"nativeSrc":"10100:15:101","nodeType":"YulExpressionStatement","src":"10100:15:101"}]},"name":"panic_error_0x22","nativeSrc":"9941:180:101","nodeType":"YulFunctionDefinition","src":"9941:180:101"},{"body":{"nativeSrc":"10178:269:101","nodeType":"YulBlock","src":"10178:269:101","statements":[{"nativeSrc":"10188:22:101","nodeType":"YulAssignment","src":"10188:22:101","value":{"arguments":[{"name":"data","nativeSrc":"10202:4:101","nodeType":"YulIdentifier","src":"10202:4:101"},{"kind":"number","nativeSrc":"10208:1:101","nodeType":"YulLiteral","src":"10208:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"10198:3:101","nodeType":"YulIdentifier","src":"10198:3:101"},"nativeSrc":"10198:12:101","nodeType":"YulFunctionCall","src":"10198:12:101"},"variableNames":[{"name":"length","nativeSrc":"10188:6:101","nodeType":"YulIdentifier","src":"10188:6:101"}]},{"nativeSrc":"10219:38:101","nodeType":"YulVariableDeclaration","src":"10219:38:101","value":{"arguments":[{"name":"data","nativeSrc":"10249:4:101","nodeType":"YulIdentifier","src":"10249:4:101"},{"kind":"number","nativeSrc":"10255:1:101","nodeType":"YulLiteral","src":"10255:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"10245:3:101","nodeType":"YulIdentifier","src":"10245:3:101"},"nativeSrc":"10245:12:101","nodeType":"YulFunctionCall","src":"10245:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"10223:18:101","nodeType":"YulTypedName","src":"10223:18:101","type":""}]},{"body":{"nativeSrc":"10296:51:101","nodeType":"YulBlock","src":"10296:51:101","statements":[{"nativeSrc":"10310:27:101","nodeType":"YulAssignment","src":"10310:27:101","value":{"arguments":[{"name":"length","nativeSrc":"10324:6:101","nodeType":"YulIdentifier","src":"10324:6:101"},{"kind":"number","nativeSrc":"10332:4:101","nodeType":"YulLiteral","src":"10332:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10320:3:101","nodeType":"YulIdentifier","src":"10320:3:101"},"nativeSrc":"10320:17:101","nodeType":"YulFunctionCall","src":"10320:17:101"},"variableNames":[{"name":"length","nativeSrc":"10310:6:101","nodeType":"YulIdentifier","src":"10310:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10276:18:101","nodeType":"YulIdentifier","src":"10276:18:101"}],"functionName":{"name":"iszero","nativeSrc":"10269:6:101","nodeType":"YulIdentifier","src":"10269:6:101"},"nativeSrc":"10269:26:101","nodeType":"YulFunctionCall","src":"10269:26:101"},"nativeSrc":"10266:81:101","nodeType":"YulIf","src":"10266:81:101"},{"body":{"nativeSrc":"10399:42:101","nodeType":"YulBlock","src":"10399:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"10413:16:101","nodeType":"YulIdentifier","src":"10413:16:101"},"nativeSrc":"10413:18:101","nodeType":"YulFunctionCall","src":"10413:18:101"},"nativeSrc":"10413:18:101","nodeType":"YulExpressionStatement","src":"10413:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10363:18:101","nodeType":"YulIdentifier","src":"10363:18:101"},{"arguments":[{"name":"length","nativeSrc":"10386:6:101","nodeType":"YulIdentifier","src":"10386:6:101"},{"kind":"number","nativeSrc":"10394:2:101","nodeType":"YulLiteral","src":"10394:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10383:2:101","nodeType":"YulIdentifier","src":"10383:2:101"},"nativeSrc":"10383:14:101","nodeType":"YulFunctionCall","src":"10383:14:101"}],"functionName":{"name":"eq","nativeSrc":"10360:2:101","nodeType":"YulIdentifier","src":"10360:2:101"},"nativeSrc":"10360:38:101","nodeType":"YulFunctionCall","src":"10360:38:101"},"nativeSrc":"10357:84:101","nodeType":"YulIf","src":"10357:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"10127:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"10162:4:101","nodeType":"YulTypedName","src":"10162:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10171:6:101","nodeType":"YulTypedName","src":"10171:6:101","type":""}],"src":"10127:320:101"},{"body":{"nativeSrc":"10559:65:101","nodeType":"YulBlock","src":"10559:65:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10581:6:101","nodeType":"YulIdentifier","src":"10581:6:101"},{"kind":"number","nativeSrc":"10589:1:101","nodeType":"YulLiteral","src":"10589:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10577:3:101","nodeType":"YulIdentifier","src":"10577:3:101"},"nativeSrc":"10577:14:101","nodeType":"YulFunctionCall","src":"10577:14:101"},{"hexValue":"63616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"10593:23:101","nodeType":"YulLiteral","src":"10593:23:101","type":"","value":"can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"10570:6:101","nodeType":"YulIdentifier","src":"10570:6:101"},"nativeSrc":"10570:47:101","nodeType":"YulFunctionCall","src":"10570:47:101"},"nativeSrc":"10570:47:101","nodeType":"YulExpressionStatement","src":"10570:47:101"}]},"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"10453:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10551:6:101","nodeType":"YulTypedName","src":"10551:6:101","type":""}],"src":"10453:171:101"},{"body":{"nativeSrc":"10776:220:101","nodeType":"YulBlock","src":"10776:220:101","statements":[{"nativeSrc":"10786:74:101","nodeType":"YulAssignment","src":"10786:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10852:3:101","nodeType":"YulIdentifier","src":"10852:3:101"},{"kind":"number","nativeSrc":"10857:2:101","nodeType":"YulLiteral","src":"10857:2:101","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10793:58:101","nodeType":"YulIdentifier","src":"10793:58:101"},"nativeSrc":"10793:67:101","nodeType":"YulFunctionCall","src":"10793:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10786:3:101","nodeType":"YulIdentifier","src":"10786:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10958:3:101","nodeType":"YulIdentifier","src":"10958:3:101"}],"functionName":{"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"10869:88:101","nodeType":"YulIdentifier","src":"10869:88:101"},"nativeSrc":"10869:93:101","nodeType":"YulFunctionCall","src":"10869:93:101"},"nativeSrc":"10869:93:101","nodeType":"YulExpressionStatement","src":"10869:93:101"},{"nativeSrc":"10971:19:101","nodeType":"YulAssignment","src":"10971:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10982:3:101","nodeType":"YulIdentifier","src":"10982:3:101"},{"kind":"number","nativeSrc":"10987:2:101","nodeType":"YulLiteral","src":"10987:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10978:3:101","nodeType":"YulIdentifier","src":"10978:3:101"},"nativeSrc":"10978:12:101","nodeType":"YulFunctionCall","src":"10978:12:101"},"variableNames":[{"name":"end","nativeSrc":"10971:3:101","nodeType":"YulIdentifier","src":"10971:3:101"}]}]},"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"10630:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10764:3:101","nodeType":"YulTypedName","src":"10764:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10772:3:101","nodeType":"YulTypedName","src":"10772:3:101","type":""}],"src":"10630:366:101"},{"body":{"nativeSrc":"11173:248:101","nodeType":"YulBlock","src":"11173:248:101","statements":[{"nativeSrc":"11183:26:101","nodeType":"YulAssignment","src":"11183:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11195:9:101","nodeType":"YulIdentifier","src":"11195:9:101"},{"kind":"number","nativeSrc":"11206:2:101","nodeType":"YulLiteral","src":"11206:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11191:3:101","nodeType":"YulIdentifier","src":"11191:3:101"},"nativeSrc":"11191:18:101","nodeType":"YulFunctionCall","src":"11191:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11183:4:101","nodeType":"YulIdentifier","src":"11183:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11230:9:101","nodeType":"YulIdentifier","src":"11230:9:101"},{"kind":"number","nativeSrc":"11241:1:101","nodeType":"YulLiteral","src":"11241:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11226:3:101","nodeType":"YulIdentifier","src":"11226:3:101"},"nativeSrc":"11226:17:101","nodeType":"YulFunctionCall","src":"11226:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11249:4:101","nodeType":"YulIdentifier","src":"11249:4:101"},{"name":"headStart","nativeSrc":"11255:9:101","nodeType":"YulIdentifier","src":"11255:9:101"}],"functionName":{"name":"sub","nativeSrc":"11245:3:101","nodeType":"YulIdentifier","src":"11245:3:101"},"nativeSrc":"11245:20:101","nodeType":"YulFunctionCall","src":"11245:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11219:6:101","nodeType":"YulIdentifier","src":"11219:6:101"},"nativeSrc":"11219:47:101","nodeType":"YulFunctionCall","src":"11219:47:101"},"nativeSrc":"11219:47:101","nodeType":"YulExpressionStatement","src":"11219:47:101"},{"nativeSrc":"11275:139:101","nodeType":"YulAssignment","src":"11275:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11409:4:101","nodeType":"YulIdentifier","src":"11409:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"11283:124:101","nodeType":"YulIdentifier","src":"11283:124:101"},"nativeSrc":"11283:131:101","nodeType":"YulFunctionCall","src":"11283:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11275:4:101","nodeType":"YulIdentifier","src":"11275:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11002:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11153:9:101","nodeType":"YulTypedName","src":"11153:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11168:4:101","nodeType":"YulTypedName","src":"11168:4:101","type":""}],"src":"11002:419:101"},{"body":{"nativeSrc":"11533:75:101","nodeType":"YulBlock","src":"11533:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11555:6:101","nodeType":"YulIdentifier","src":"11555:6:101"},{"kind":"number","nativeSrc":"11563:1:101","nodeType":"YulLiteral","src":"11563:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11551:3:101","nodeType":"YulIdentifier","src":"11551:3:101"},"nativeSrc":"11551:14:101","nodeType":"YulFunctionCall","src":"11551:14:101"},{"hexValue":"736964526567697374727941646472657373206d757374206265207a65726f","kind":"string","nativeSrc":"11567:33:101","nodeType":"YulLiteral","src":"11567:33:101","type":"","value":"sidRegistryAddress must be zero"}],"functionName":{"name":"mstore","nativeSrc":"11544:6:101","nodeType":"YulIdentifier","src":"11544:6:101"},"nativeSrc":"11544:57:101","nodeType":"YulFunctionCall","src":"11544:57:101"},"nativeSrc":"11544:57:101","nodeType":"YulExpressionStatement","src":"11544:57:101"}]},"name":"store_literal_in_memory_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a","nativeSrc":"11427:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11525:6:101","nodeType":"YulTypedName","src":"11525:6:101","type":""}],"src":"11427:181:101"},{"body":{"nativeSrc":"11760:220:101","nodeType":"YulBlock","src":"11760:220:101","statements":[{"nativeSrc":"11770:74:101","nodeType":"YulAssignment","src":"11770:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11836:3:101","nodeType":"YulIdentifier","src":"11836:3:101"},{"kind":"number","nativeSrc":"11841:2:101","nodeType":"YulLiteral","src":"11841:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11777:58:101","nodeType":"YulIdentifier","src":"11777:58:101"},"nativeSrc":"11777:67:101","nodeType":"YulFunctionCall","src":"11777:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11770:3:101","nodeType":"YulIdentifier","src":"11770:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11942:3:101","nodeType":"YulIdentifier","src":"11942:3:101"}],"functionName":{"name":"store_literal_in_memory_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a","nativeSrc":"11853:88:101","nodeType":"YulIdentifier","src":"11853:88:101"},"nativeSrc":"11853:93:101","nodeType":"YulFunctionCall","src":"11853:93:101"},"nativeSrc":"11853:93:101","nodeType":"YulExpressionStatement","src":"11853:93:101"},{"nativeSrc":"11955:19:101","nodeType":"YulAssignment","src":"11955:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11966:3:101","nodeType":"YulIdentifier","src":"11966:3:101"},{"kind":"number","nativeSrc":"11971:2:101","nodeType":"YulLiteral","src":"11971:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11962:3:101","nodeType":"YulIdentifier","src":"11962:3:101"},"nativeSrc":"11962:12:101","nodeType":"YulFunctionCall","src":"11962:12:101"},"variableNames":[{"name":"end","nativeSrc":"11955:3:101","nodeType":"YulIdentifier","src":"11955:3:101"}]}]},"name":"abi_encode_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a_to_t_string_memory_ptr_fromStack","nativeSrc":"11614:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11748:3:101","nodeType":"YulTypedName","src":"11748:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11756:3:101","nodeType":"YulTypedName","src":"11756:3:101","type":""}],"src":"11614:366:101"},{"body":{"nativeSrc":"12157:248:101","nodeType":"YulBlock","src":"12157:248:101","statements":[{"nativeSrc":"12167:26:101","nodeType":"YulAssignment","src":"12167:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12179:9:101","nodeType":"YulIdentifier","src":"12179:9:101"},{"kind":"number","nativeSrc":"12190:2:101","nodeType":"YulLiteral","src":"12190:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12175:3:101","nodeType":"YulIdentifier","src":"12175:3:101"},"nativeSrc":"12175:18:101","nodeType":"YulFunctionCall","src":"12175:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12167:4:101","nodeType":"YulIdentifier","src":"12167:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12214:9:101","nodeType":"YulIdentifier","src":"12214:9:101"},{"kind":"number","nativeSrc":"12225:1:101","nodeType":"YulLiteral","src":"12225:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12210:3:101","nodeType":"YulIdentifier","src":"12210:3:101"},"nativeSrc":"12210:17:101","nodeType":"YulFunctionCall","src":"12210:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12233:4:101","nodeType":"YulIdentifier","src":"12233:4:101"},{"name":"headStart","nativeSrc":"12239:9:101","nodeType":"YulIdentifier","src":"12239:9:101"}],"functionName":{"name":"sub","nativeSrc":"12229:3:101","nodeType":"YulIdentifier","src":"12229:3:101"},"nativeSrc":"12229:20:101","nodeType":"YulFunctionCall","src":"12229:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12203:6:101","nodeType":"YulIdentifier","src":"12203:6:101"},"nativeSrc":"12203:47:101","nodeType":"YulFunctionCall","src":"12203:47:101"},"nativeSrc":"12203:47:101","nodeType":"YulExpressionStatement","src":"12203:47:101"},{"nativeSrc":"12259:139:101","nodeType":"YulAssignment","src":"12259:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12393:4:101","nodeType":"YulIdentifier","src":"12393:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a_to_t_string_memory_ptr_fromStack","nativeSrc":"12267:124:101","nodeType":"YulIdentifier","src":"12267:124:101"},"nativeSrc":"12267:131:101","nodeType":"YulFunctionCall","src":"12267:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12259:4:101","nodeType":"YulIdentifier","src":"12259:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11986:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12137:9:101","nodeType":"YulTypedName","src":"12137:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12152:4:101","nodeType":"YulTypedName","src":"12152:4:101","type":""}],"src":"11986:419:101"},{"body":{"nativeSrc":"12506:339:101","nodeType":"YulBlock","src":"12506:339:101","statements":[{"nativeSrc":"12516:75:101","nodeType":"YulAssignment","src":"12516:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"12583:6:101","nodeType":"YulIdentifier","src":"12583:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"12541:41:101","nodeType":"YulIdentifier","src":"12541:41:101"},"nativeSrc":"12541:49:101","nodeType":"YulFunctionCall","src":"12541:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"12525:15:101","nodeType":"YulIdentifier","src":"12525:15:101"},"nativeSrc":"12525:66:101","nodeType":"YulFunctionCall","src":"12525:66:101"},"variableNames":[{"name":"array","nativeSrc":"12516:5:101","nodeType":"YulIdentifier","src":"12516:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"12607:5:101","nodeType":"YulIdentifier","src":"12607:5:101"},{"name":"length","nativeSrc":"12614:6:101","nodeType":"YulIdentifier","src":"12614:6:101"}],"functionName":{"name":"mstore","nativeSrc":"12600:6:101","nodeType":"YulIdentifier","src":"12600:6:101"},"nativeSrc":"12600:21:101","nodeType":"YulFunctionCall","src":"12600:21:101"},"nativeSrc":"12600:21:101","nodeType":"YulExpressionStatement","src":"12600:21:101"},{"nativeSrc":"12630:27:101","nodeType":"YulVariableDeclaration","src":"12630:27:101","value":{"arguments":[{"name":"array","nativeSrc":"12645:5:101","nodeType":"YulIdentifier","src":"12645:5:101"},{"kind":"number","nativeSrc":"12652:4:101","nodeType":"YulLiteral","src":"12652:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12641:3:101","nodeType":"YulIdentifier","src":"12641:3:101"},"nativeSrc":"12641:16:101","nodeType":"YulFunctionCall","src":"12641:16:101"},"variables":[{"name":"dst","nativeSrc":"12634:3:101","nodeType":"YulTypedName","src":"12634:3:101","type":""}]},{"body":{"nativeSrc":"12695:83:101","nodeType":"YulBlock","src":"12695:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"12697:77:101","nodeType":"YulIdentifier","src":"12697:77:101"},"nativeSrc":"12697:79:101","nodeType":"YulFunctionCall","src":"12697:79:101"},"nativeSrc":"12697:79:101","nodeType":"YulExpressionStatement","src":"12697:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"12676:3:101","nodeType":"YulIdentifier","src":"12676:3:101"},{"name":"length","nativeSrc":"12681:6:101","nodeType":"YulIdentifier","src":"12681:6:101"}],"functionName":{"name":"add","nativeSrc":"12672:3:101","nodeType":"YulIdentifier","src":"12672:3:101"},"nativeSrc":"12672:16:101","nodeType":"YulFunctionCall","src":"12672:16:101"},{"name":"end","nativeSrc":"12690:3:101","nodeType":"YulIdentifier","src":"12690:3:101"}],"functionName":{"name":"gt","nativeSrc":"12669:2:101","nodeType":"YulIdentifier","src":"12669:2:101"},"nativeSrc":"12669:25:101","nodeType":"YulFunctionCall","src":"12669:25:101"},"nativeSrc":"12666:112:101","nodeType":"YulIf","src":"12666:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"12822:3:101","nodeType":"YulIdentifier","src":"12822:3:101"},{"name":"dst","nativeSrc":"12827:3:101","nodeType":"YulIdentifier","src":"12827:3:101"},{"name":"length","nativeSrc":"12832:6:101","nodeType":"YulIdentifier","src":"12832:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12787:34:101","nodeType":"YulIdentifier","src":"12787:34:101"},"nativeSrc":"12787:52:101","nodeType":"YulFunctionCall","src":"12787:52:101"},"nativeSrc":"12787:52:101","nodeType":"YulExpressionStatement","src":"12787:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"12411:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"12479:3:101","nodeType":"YulTypedName","src":"12479:3:101","type":""},{"name":"length","nativeSrc":"12484:6:101","nodeType":"YulTypedName","src":"12484:6:101","type":""},{"name":"end","nativeSrc":"12492:3:101","nodeType":"YulTypedName","src":"12492:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"12500:5:101","nodeType":"YulTypedName","src":"12500:5:101","type":""}],"src":"12411:434:101"},{"body":{"nativeSrc":"12938:282:101","nodeType":"YulBlock","src":"12938:282:101","statements":[{"body":{"nativeSrc":"12987:83:101","nodeType":"YulBlock","src":"12987:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"12989:77:101","nodeType":"YulIdentifier","src":"12989:77:101"},"nativeSrc":"12989:79:101","nodeType":"YulFunctionCall","src":"12989:79:101"},"nativeSrc":"12989:79:101","nodeType":"YulExpressionStatement","src":"12989:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12966:6:101","nodeType":"YulIdentifier","src":"12966:6:101"},{"kind":"number","nativeSrc":"12974:4:101","nodeType":"YulLiteral","src":"12974:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12962:3:101","nodeType":"YulIdentifier","src":"12962:3:101"},"nativeSrc":"12962:17:101","nodeType":"YulFunctionCall","src":"12962:17:101"},{"name":"end","nativeSrc":"12981:3:101","nodeType":"YulIdentifier","src":"12981:3:101"}],"functionName":{"name":"slt","nativeSrc":"12958:3:101","nodeType":"YulIdentifier","src":"12958:3:101"},"nativeSrc":"12958:27:101","nodeType":"YulFunctionCall","src":"12958:27:101"}],"functionName":{"name":"iszero","nativeSrc":"12951:6:101","nodeType":"YulIdentifier","src":"12951:6:101"},"nativeSrc":"12951:35:101","nodeType":"YulFunctionCall","src":"12951:35:101"},"nativeSrc":"12948:122:101","nodeType":"YulIf","src":"12948:122:101"},{"nativeSrc":"13079:27:101","nodeType":"YulVariableDeclaration","src":"13079:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"13099:6:101","nodeType":"YulIdentifier","src":"13099:6:101"}],"functionName":{"name":"mload","nativeSrc":"13093:5:101","nodeType":"YulIdentifier","src":"13093:5:101"},"nativeSrc":"13093:13:101","nodeType":"YulFunctionCall","src":"13093:13:101"},"variables":[{"name":"length","nativeSrc":"13083:6:101","nodeType":"YulTypedName","src":"13083:6:101","type":""}]},{"nativeSrc":"13115:99:101","nodeType":"YulAssignment","src":"13115:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13187:6:101","nodeType":"YulIdentifier","src":"13187:6:101"},{"kind":"number","nativeSrc":"13195:4:101","nodeType":"YulLiteral","src":"13195:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13183:3:101","nodeType":"YulIdentifier","src":"13183:3:101"},"nativeSrc":"13183:17:101","nodeType":"YulFunctionCall","src":"13183:17:101"},{"name":"length","nativeSrc":"13202:6:101","nodeType":"YulIdentifier","src":"13202:6:101"},{"name":"end","nativeSrc":"13210:3:101","nodeType":"YulIdentifier","src":"13210:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"13124:58:101","nodeType":"YulIdentifier","src":"13124:58:101"},"nativeSrc":"13124:90:101","nodeType":"YulFunctionCall","src":"13124:90:101"},"variableNames":[{"name":"array","nativeSrc":"13115:5:101","nodeType":"YulIdentifier","src":"13115:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"12865:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12916:6:101","nodeType":"YulTypedName","src":"12916:6:101","type":""},{"name":"end","nativeSrc":"12924:3:101","nodeType":"YulTypedName","src":"12924:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"12932:5:101","nodeType":"YulTypedName","src":"12932:5:101","type":""}],"src":"12865:355:101"},{"body":{"nativeSrc":"13313:437:101","nodeType":"YulBlock","src":"13313:437:101","statements":[{"body":{"nativeSrc":"13359:83:101","nodeType":"YulBlock","src":"13359:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13361:77:101","nodeType":"YulIdentifier","src":"13361:77:101"},"nativeSrc":"13361:79:101","nodeType":"YulFunctionCall","src":"13361:79:101"},"nativeSrc":"13361:79:101","nodeType":"YulExpressionStatement","src":"13361:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13334:7:101","nodeType":"YulIdentifier","src":"13334:7:101"},{"name":"headStart","nativeSrc":"13343:9:101","nodeType":"YulIdentifier","src":"13343:9:101"}],"functionName":{"name":"sub","nativeSrc":"13330:3:101","nodeType":"YulIdentifier","src":"13330:3:101"},"nativeSrc":"13330:23:101","nodeType":"YulFunctionCall","src":"13330:23:101"},{"kind":"number","nativeSrc":"13355:2:101","nodeType":"YulLiteral","src":"13355:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13326:3:101","nodeType":"YulIdentifier","src":"13326:3:101"},"nativeSrc":"13326:32:101","nodeType":"YulFunctionCall","src":"13326:32:101"},"nativeSrc":"13323:119:101","nodeType":"YulIf","src":"13323:119:101"},{"nativeSrc":"13452:291:101","nodeType":"YulBlock","src":"13452:291:101","statements":[{"nativeSrc":"13467:38:101","nodeType":"YulVariableDeclaration","src":"13467:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13491:9:101","nodeType":"YulIdentifier","src":"13491:9:101"},{"kind":"number","nativeSrc":"13502:1:101","nodeType":"YulLiteral","src":"13502:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13487:3:101","nodeType":"YulIdentifier","src":"13487:3:101"},"nativeSrc":"13487:17:101","nodeType":"YulFunctionCall","src":"13487:17:101"}],"functionName":{"name":"mload","nativeSrc":"13481:5:101","nodeType":"YulIdentifier","src":"13481:5:101"},"nativeSrc":"13481:24:101","nodeType":"YulFunctionCall","src":"13481:24:101"},"variables":[{"name":"offset","nativeSrc":"13471:6:101","nodeType":"YulTypedName","src":"13471:6:101","type":""}]},{"body":{"nativeSrc":"13552:83:101","nodeType":"YulBlock","src":"13552:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13554:77:101","nodeType":"YulIdentifier","src":"13554:77:101"},"nativeSrc":"13554:79:101","nodeType":"YulFunctionCall","src":"13554:79:101"},"nativeSrc":"13554:79:101","nodeType":"YulExpressionStatement","src":"13554:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13524:6:101","nodeType":"YulIdentifier","src":"13524:6:101"},{"kind":"number","nativeSrc":"13532:18:101","nodeType":"YulLiteral","src":"13532:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13521:2:101","nodeType":"YulIdentifier","src":"13521:2:101"},"nativeSrc":"13521:30:101","nodeType":"YulFunctionCall","src":"13521:30:101"},"nativeSrc":"13518:117:101","nodeType":"YulIf","src":"13518:117:101"},{"nativeSrc":"13649:84:101","nodeType":"YulAssignment","src":"13649:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13705:9:101","nodeType":"YulIdentifier","src":"13705:9:101"},{"name":"offset","nativeSrc":"13716:6:101","nodeType":"YulIdentifier","src":"13716:6:101"}],"functionName":{"name":"add","nativeSrc":"13701:3:101","nodeType":"YulIdentifier","src":"13701:3:101"},"nativeSrc":"13701:22:101","nodeType":"YulFunctionCall","src":"13701:22:101"},{"name":"dataEnd","nativeSrc":"13725:7:101","nodeType":"YulIdentifier","src":"13725:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"13659:41:101","nodeType":"YulIdentifier","src":"13659:41:101"},"nativeSrc":"13659:74:101","nodeType":"YulFunctionCall","src":"13659:74:101"},"variableNames":[{"name":"value0","nativeSrc":"13649:6:101","nodeType":"YulIdentifier","src":"13649:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nativeSrc":"13226:524:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13283:9:101","nodeType":"YulTypedName","src":"13283:9:101","type":""},{"name":"dataEnd","nativeSrc":"13294:7:101","nodeType":"YulTypedName","src":"13294:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13306:6:101","nodeType":"YulTypedName","src":"13306:6:101","type":""}],"src":"13226:524:101"},{"body":{"nativeSrc":"13799:43:101","nodeType":"YulBlock","src":"13799:43:101","statements":[{"nativeSrc":"13809:27:101","nodeType":"YulAssignment","src":"13809:27:101","value":{"arguments":[{"name":"value","nativeSrc":"13824:5:101","nodeType":"YulIdentifier","src":"13824:5:101"},{"kind":"number","nativeSrc":"13831:4:101","nodeType":"YulLiteral","src":"13831:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"13820:3:101","nodeType":"YulIdentifier","src":"13820:3:101"},"nativeSrc":"13820:16:101","nodeType":"YulFunctionCall","src":"13820:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"13809:7:101","nodeType":"YulIdentifier","src":"13809:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"13756:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13781:5:101","nodeType":"YulTypedName","src":"13781:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"13791:7:101","nodeType":"YulTypedName","src":"13791:7:101","type":""}],"src":"13756:86:101"},{"body":{"nativeSrc":"13889:77:101","nodeType":"YulBlock","src":"13889:77:101","statements":[{"body":{"nativeSrc":"13944:16:101","nodeType":"YulBlock","src":"13944:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13953:1:101","nodeType":"YulLiteral","src":"13953:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"13956:1:101","nodeType":"YulLiteral","src":"13956:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13946:6:101","nodeType":"YulIdentifier","src":"13946:6:101"},"nativeSrc":"13946:12:101","nodeType":"YulFunctionCall","src":"13946:12:101"},"nativeSrc":"13946:12:101","nodeType":"YulExpressionStatement","src":"13946:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13912:5:101","nodeType":"YulIdentifier","src":"13912:5:101"},{"arguments":[{"name":"value","nativeSrc":"13935:5:101","nodeType":"YulIdentifier","src":"13935:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"13919:15:101","nodeType":"YulIdentifier","src":"13919:15:101"},"nativeSrc":"13919:22:101","nodeType":"YulFunctionCall","src":"13919:22:101"}],"functionName":{"name":"eq","nativeSrc":"13909:2:101","nodeType":"YulIdentifier","src":"13909:2:101"},"nativeSrc":"13909:33:101","nodeType":"YulFunctionCall","src":"13909:33:101"}],"functionName":{"name":"iszero","nativeSrc":"13902:6:101","nodeType":"YulIdentifier","src":"13902:6:101"},"nativeSrc":"13902:41:101","nodeType":"YulFunctionCall","src":"13902:41:101"},"nativeSrc":"13899:61:101","nodeType":"YulIf","src":"13899:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"13848:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13882:5:101","nodeType":"YulTypedName","src":"13882:5:101","type":""}],"src":"13848:118:101"},{"body":{"nativeSrc":"14033:78:101","nodeType":"YulBlock","src":"14033:78:101","statements":[{"nativeSrc":"14043:22:101","nodeType":"YulAssignment","src":"14043:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"14058:6:101","nodeType":"YulIdentifier","src":"14058:6:101"}],"functionName":{"name":"mload","nativeSrc":"14052:5:101","nodeType":"YulIdentifier","src":"14052:5:101"},"nativeSrc":"14052:13:101","nodeType":"YulFunctionCall","src":"14052:13:101"},"variableNames":[{"name":"value","nativeSrc":"14043:5:101","nodeType":"YulIdentifier","src":"14043:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14099:5:101","nodeType":"YulIdentifier","src":"14099:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"14074:24:101","nodeType":"YulIdentifier","src":"14074:24:101"},"nativeSrc":"14074:31:101","nodeType":"YulFunctionCall","src":"14074:31:101"},"nativeSrc":"14074:31:101","nodeType":"YulExpressionStatement","src":"14074:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"13972:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14011:6:101","nodeType":"YulTypedName","src":"14011:6:101","type":""},{"name":"end","nativeSrc":"14019:3:101","nodeType":"YulTypedName","src":"14019:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14027:5:101","nodeType":"YulTypedName","src":"14027:5:101","type":""}],"src":"13972:139:101"},{"body":{"nativeSrc":"14192:272:101","nodeType":"YulBlock","src":"14192:272:101","statements":[{"body":{"nativeSrc":"14238:83:101","nodeType":"YulBlock","src":"14238:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14240:77:101","nodeType":"YulIdentifier","src":"14240:77:101"},"nativeSrc":"14240:79:101","nodeType":"YulFunctionCall","src":"14240:79:101"},"nativeSrc":"14240:79:101","nodeType":"YulExpressionStatement","src":"14240:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14213:7:101","nodeType":"YulIdentifier","src":"14213:7:101"},{"name":"headStart","nativeSrc":"14222:9:101","nodeType":"YulIdentifier","src":"14222:9:101"}],"functionName":{"name":"sub","nativeSrc":"14209:3:101","nodeType":"YulIdentifier","src":"14209:3:101"},"nativeSrc":"14209:23:101","nodeType":"YulFunctionCall","src":"14209:23:101"},{"kind":"number","nativeSrc":"14234:2:101","nodeType":"YulLiteral","src":"14234:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14205:3:101","nodeType":"YulIdentifier","src":"14205:3:101"},"nativeSrc":"14205:32:101","nodeType":"YulFunctionCall","src":"14205:32:101"},"nativeSrc":"14202:119:101","nodeType":"YulIf","src":"14202:119:101"},{"nativeSrc":"14331:126:101","nodeType":"YulBlock","src":"14331:126:101","statements":[{"nativeSrc":"14346:15:101","nodeType":"YulVariableDeclaration","src":"14346:15:101","value":{"kind":"number","nativeSrc":"14360:1:101","nodeType":"YulLiteral","src":"14360:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14350:6:101","nodeType":"YulTypedName","src":"14350:6:101","type":""}]},{"nativeSrc":"14375:72:101","nodeType":"YulAssignment","src":"14375:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14419:9:101","nodeType":"YulIdentifier","src":"14419:9:101"},{"name":"offset","nativeSrc":"14430:6:101","nodeType":"YulIdentifier","src":"14430:6:101"}],"functionName":{"name":"add","nativeSrc":"14415:3:101","nodeType":"YulIdentifier","src":"14415:3:101"},"nativeSrc":"14415:22:101","nodeType":"YulFunctionCall","src":"14415:22:101"},{"name":"dataEnd","nativeSrc":"14439:7:101","nodeType":"YulIdentifier","src":"14439:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"14385:29:101","nodeType":"YulIdentifier","src":"14385:29:101"},"nativeSrc":"14385:62:101","nodeType":"YulFunctionCall","src":"14385:62:101"},"variableNames":[{"name":"value0","nativeSrc":"14375:6:101","nodeType":"YulIdentifier","src":"14375:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"14117:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14162:9:101","nodeType":"YulTypedName","src":"14162:9:101","type":""},{"name":"dataEnd","nativeSrc":"14173:7:101","nodeType":"YulTypedName","src":"14173:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14185:6:101","nodeType":"YulTypedName","src":"14185:6:101","type":""}],"src":"14117:347:101"},{"body":{"nativeSrc":"14584:34:101","nodeType":"YulBlock","src":"14584:34:101","statements":[{"nativeSrc":"14594:18:101","nodeType":"YulAssignment","src":"14594:18:101","value":{"name":"pos","nativeSrc":"14609:3:101","nodeType":"YulIdentifier","src":"14609:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"14594:11:101","nodeType":"YulIdentifier","src":"14594:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"14470:148:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14556:3:101","nodeType":"YulTypedName","src":"14556:3:101","type":""},{"name":"length","nativeSrc":"14561:6:101","nodeType":"YulTypedName","src":"14561:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14572:11:101","nodeType":"YulTypedName","src":"14572:11:101","type":""}],"src":"14470:148:101"},{"body":{"nativeSrc":"14734:280:101","nodeType":"YulBlock","src":"14734:280:101","statements":[{"nativeSrc":"14744:53:101","nodeType":"YulVariableDeclaration","src":"14744:53:101","value":{"arguments":[{"name":"value","nativeSrc":"14791:5:101","nodeType":"YulIdentifier","src":"14791:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"14758:32:101","nodeType":"YulIdentifier","src":"14758:32:101"},"nativeSrc":"14758:39:101","nodeType":"YulFunctionCall","src":"14758:39:101"},"variables":[{"name":"length","nativeSrc":"14748:6:101","nodeType":"YulTypedName","src":"14748:6:101","type":""}]},{"nativeSrc":"14806:96:101","nodeType":"YulAssignment","src":"14806:96:101","value":{"arguments":[{"name":"pos","nativeSrc":"14890:3:101","nodeType":"YulIdentifier","src":"14890:3:101"},{"name":"length","nativeSrc":"14895:6:101","nodeType":"YulIdentifier","src":"14895:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"14813:76:101","nodeType":"YulIdentifier","src":"14813:76:101"},"nativeSrc":"14813:89:101","nodeType":"YulFunctionCall","src":"14813:89:101"},"variableNames":[{"name":"pos","nativeSrc":"14806:3:101","nodeType":"YulIdentifier","src":"14806:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14950:5:101","nodeType":"YulIdentifier","src":"14950:5:101"},{"kind":"number","nativeSrc":"14957:4:101","nodeType":"YulLiteral","src":"14957:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14946:3:101","nodeType":"YulIdentifier","src":"14946:3:101"},"nativeSrc":"14946:16:101","nodeType":"YulFunctionCall","src":"14946:16:101"},{"name":"pos","nativeSrc":"14964:3:101","nodeType":"YulIdentifier","src":"14964:3:101"},{"name":"length","nativeSrc":"14969:6:101","nodeType":"YulIdentifier","src":"14969:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"14911:34:101","nodeType":"YulIdentifier","src":"14911:34:101"},"nativeSrc":"14911:65:101","nodeType":"YulFunctionCall","src":"14911:65:101"},"nativeSrc":"14911:65:101","nodeType":"YulExpressionStatement","src":"14911:65:101"},{"nativeSrc":"14985:23:101","nodeType":"YulAssignment","src":"14985:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"14996:3:101","nodeType":"YulIdentifier","src":"14996:3:101"},{"name":"length","nativeSrc":"15001:6:101","nodeType":"YulIdentifier","src":"15001:6:101"}],"functionName":{"name":"add","nativeSrc":"14992:3:101","nodeType":"YulIdentifier","src":"14992:3:101"},"nativeSrc":"14992:16:101","nodeType":"YulFunctionCall","src":"14992:16:101"},"variableNames":[{"name":"end","nativeSrc":"14985:3:101","nodeType":"YulIdentifier","src":"14985:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"14624:390:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14715:5:101","nodeType":"YulTypedName","src":"14715:5:101","type":""},{"name":"pos","nativeSrc":"14722:3:101","nodeType":"YulTypedName","src":"14722:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14730:3:101","nodeType":"YulTypedName","src":"14730:3:101","type":""}],"src":"14624:390:101"},{"body":{"nativeSrc":"15156:139:101","nodeType":"YulBlock","src":"15156:139:101","statements":[{"nativeSrc":"15167:102:101","nodeType":"YulAssignment","src":"15167:102:101","value":{"arguments":[{"name":"value0","nativeSrc":"15256:6:101","nodeType":"YulIdentifier","src":"15256:6:101"},{"name":"pos","nativeSrc":"15265:3:101","nodeType":"YulIdentifier","src":"15265:3:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"15174:81:101","nodeType":"YulIdentifier","src":"15174:81:101"},"nativeSrc":"15174:95:101","nodeType":"YulFunctionCall","src":"15174:95:101"},"variableNames":[{"name":"pos","nativeSrc":"15167:3:101","nodeType":"YulIdentifier","src":"15167:3:101"}]},{"nativeSrc":"15279:10:101","nodeType":"YulAssignment","src":"15279:10:101","value":{"name":"pos","nativeSrc":"15286:3:101","nodeType":"YulIdentifier","src":"15286:3:101"},"variableNames":[{"name":"end","nativeSrc":"15279:3:101","nodeType":"YulIdentifier","src":"15279:3:101"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"15020:275:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15135:3:101","nodeType":"YulTypedName","src":"15135:3:101","type":""},{"name":"value0","nativeSrc":"15141:6:101","nodeType":"YulTypedName","src":"15141:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15152:3:101","nodeType":"YulTypedName","src":"15152:3:101","type":""}],"src":"15020:275:101"},{"body":{"nativeSrc":"15407:127:101","nodeType":"YulBlock","src":"15407:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15429:6:101","nodeType":"YulIdentifier","src":"15429:6:101"},{"kind":"number","nativeSrc":"15437:1:101","nodeType":"YulLiteral","src":"15437:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15425:3:101","nodeType":"YulIdentifier","src":"15425:3:101"},"nativeSrc":"15425:14:101","nodeType":"YulFunctionCall","src":"15425:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"15441:34:101","nodeType":"YulLiteral","src":"15441:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"15418:6:101","nodeType":"YulIdentifier","src":"15418:6:101"},"nativeSrc":"15418:58:101","nodeType":"YulFunctionCall","src":"15418:58:101"},"nativeSrc":"15418:58:101","nodeType":"YulExpressionStatement","src":"15418:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15497:6:101","nodeType":"YulIdentifier","src":"15497:6:101"},{"kind":"number","nativeSrc":"15505:2:101","nodeType":"YulLiteral","src":"15505:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15493:3:101","nodeType":"YulIdentifier","src":"15493:3:101"},"nativeSrc":"15493:15:101","nodeType":"YulFunctionCall","src":"15493:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"15510:16:101","nodeType":"YulLiteral","src":"15510:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"15486:6:101","nodeType":"YulIdentifier","src":"15486:6:101"},"nativeSrc":"15486:41:101","nodeType":"YulFunctionCall","src":"15486:41:101"},"nativeSrc":"15486:41:101","nodeType":"YulExpressionStatement","src":"15486:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"15301:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15399:6:101","nodeType":"YulTypedName","src":"15399:6:101","type":""}],"src":"15301:233:101"},{"body":{"nativeSrc":"15686:220:101","nodeType":"YulBlock","src":"15686:220:101","statements":[{"nativeSrc":"15696:74:101","nodeType":"YulAssignment","src":"15696:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15762:3:101","nodeType":"YulIdentifier","src":"15762:3:101"},{"kind":"number","nativeSrc":"15767:2:101","nodeType":"YulLiteral","src":"15767:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15703:58:101","nodeType":"YulIdentifier","src":"15703:58:101"},"nativeSrc":"15703:67:101","nodeType":"YulFunctionCall","src":"15703:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15696:3:101","nodeType":"YulIdentifier","src":"15696:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15868:3:101","nodeType":"YulIdentifier","src":"15868:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"15779:88:101","nodeType":"YulIdentifier","src":"15779:88:101"},"nativeSrc":"15779:93:101","nodeType":"YulFunctionCall","src":"15779:93:101"},"nativeSrc":"15779:93:101","nodeType":"YulExpressionStatement","src":"15779:93:101"},{"nativeSrc":"15881:19:101","nodeType":"YulAssignment","src":"15881:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15892:3:101","nodeType":"YulIdentifier","src":"15892:3:101"},{"kind":"number","nativeSrc":"15897:2:101","nodeType":"YulLiteral","src":"15897:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15888:3:101","nodeType":"YulIdentifier","src":"15888:3:101"},"nativeSrc":"15888:12:101","nodeType":"YulFunctionCall","src":"15888:12:101"},"variableNames":[{"name":"end","nativeSrc":"15881:3:101","nodeType":"YulIdentifier","src":"15881:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"15540:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15674:3:101","nodeType":"YulTypedName","src":"15674:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15682:3:101","nodeType":"YulTypedName","src":"15682:3:101","type":""}],"src":"15540:366:101"},{"body":{"nativeSrc":"16083:248:101","nodeType":"YulBlock","src":"16083:248:101","statements":[{"nativeSrc":"16093:26:101","nodeType":"YulAssignment","src":"16093:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16105:9:101","nodeType":"YulIdentifier","src":"16105:9:101"},{"kind":"number","nativeSrc":"16116:2:101","nodeType":"YulLiteral","src":"16116:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16101:3:101","nodeType":"YulIdentifier","src":"16101:3:101"},"nativeSrc":"16101:18:101","nodeType":"YulFunctionCall","src":"16101:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16093:4:101","nodeType":"YulIdentifier","src":"16093:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16140:9:101","nodeType":"YulIdentifier","src":"16140:9:101"},{"kind":"number","nativeSrc":"16151:1:101","nodeType":"YulLiteral","src":"16151:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16136:3:101","nodeType":"YulIdentifier","src":"16136:3:101"},"nativeSrc":"16136:17:101","nodeType":"YulFunctionCall","src":"16136:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16159:4:101","nodeType":"YulIdentifier","src":"16159:4:101"},{"name":"headStart","nativeSrc":"16165:9:101","nodeType":"YulIdentifier","src":"16165:9:101"}],"functionName":{"name":"sub","nativeSrc":"16155:3:101","nodeType":"YulIdentifier","src":"16155:3:101"},"nativeSrc":"16155:20:101","nodeType":"YulFunctionCall","src":"16155:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16129:6:101","nodeType":"YulIdentifier","src":"16129:6:101"},"nativeSrc":"16129:47:101","nodeType":"YulFunctionCall","src":"16129:47:101"},"nativeSrc":"16129:47:101","nodeType":"YulExpressionStatement","src":"16129:47:101"},{"nativeSrc":"16185:139:101","nodeType":"YulAssignment","src":"16185:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16319:4:101","nodeType":"YulIdentifier","src":"16319:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"16193:124:101","nodeType":"YulIdentifier","src":"16193:124:101"},"nativeSrc":"16193:131:101","nodeType":"YulFunctionCall","src":"16193:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16185:4:101","nodeType":"YulIdentifier","src":"16185:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15912:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16063:9:101","nodeType":"YulTypedName","src":"16063:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16078:4:101","nodeType":"YulTypedName","src":"16078:4:101","type":""}],"src":"15912:419:101"},{"body":{"nativeSrc":"16390:32:101","nodeType":"YulBlock","src":"16390:32:101","statements":[{"nativeSrc":"16400:16:101","nodeType":"YulAssignment","src":"16400:16:101","value":{"name":"value","nativeSrc":"16411:5:101","nodeType":"YulIdentifier","src":"16411:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"16400:7:101","nodeType":"YulIdentifier","src":"16400:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"16337:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16372:5:101","nodeType":"YulTypedName","src":"16372:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"16382:7:101","nodeType":"YulTypedName","src":"16382:7:101","type":""}],"src":"16337:85:101"},{"body":{"nativeSrc":"16494:88:101","nodeType":"YulBlock","src":"16494:88:101","statements":[{"nativeSrc":"16504:72:101","nodeType":"YulAssignment","src":"16504:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16568:5:101","nodeType":"YulIdentifier","src":"16568:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"16542:25:101","nodeType":"YulIdentifier","src":"16542:25:101"},"nativeSrc":"16542:32:101","nodeType":"YulFunctionCall","src":"16542:32:101"}],"functionName":{"name":"identity","nativeSrc":"16533:8:101","nodeType":"YulIdentifier","src":"16533:8:101"},"nativeSrc":"16533:42:101","nodeType":"YulFunctionCall","src":"16533:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"16517:15:101","nodeType":"YulIdentifier","src":"16517:15:101"},"nativeSrc":"16517:59:101","nodeType":"YulFunctionCall","src":"16517:59:101"},"variableNames":[{"name":"converted","nativeSrc":"16504:9:101","nodeType":"YulIdentifier","src":"16504:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"16428:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16474:5:101","nodeType":"YulTypedName","src":"16474:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"16484:9:101","nodeType":"YulTypedName","src":"16484:9:101","type":""}],"src":"16428:154:101"},{"body":{"nativeSrc":"16659:72:101","nodeType":"YulBlock","src":"16659:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16676:3:101","nodeType":"YulIdentifier","src":"16676:3:101"},{"arguments":[{"name":"value","nativeSrc":"16718:5:101","nodeType":"YulIdentifier","src":"16718:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"16681:36:101","nodeType":"YulIdentifier","src":"16681:36:101"},"nativeSrc":"16681:43:101","nodeType":"YulFunctionCall","src":"16681:43:101"}],"functionName":{"name":"mstore","nativeSrc":"16669:6:101","nodeType":"YulIdentifier","src":"16669:6:101"},"nativeSrc":"16669:56:101","nodeType":"YulFunctionCall","src":"16669:56:101"},"nativeSrc":"16669:56:101","nodeType":"YulExpressionStatement","src":"16669:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"16588:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16647:5:101","nodeType":"YulTypedName","src":"16647:5:101","type":""},{"name":"pos","nativeSrc":"16654:3:101","nodeType":"YulTypedName","src":"16654:3:101","type":""}],"src":"16588:143:101"},{"body":{"nativeSrc":"16841:130:101","nodeType":"YulBlock","src":"16841:130:101","statements":[{"nativeSrc":"16851:26:101","nodeType":"YulAssignment","src":"16851:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16863:9:101","nodeType":"YulIdentifier","src":"16863:9:101"},{"kind":"number","nativeSrc":"16874:2:101","nodeType":"YulLiteral","src":"16874:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16859:3:101","nodeType":"YulIdentifier","src":"16859:3:101"},"nativeSrc":"16859:18:101","nodeType":"YulFunctionCall","src":"16859:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16851:4:101","nodeType":"YulIdentifier","src":"16851:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16937:6:101","nodeType":"YulIdentifier","src":"16937:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"16950:9:101","nodeType":"YulIdentifier","src":"16950:9:101"},{"kind":"number","nativeSrc":"16961:1:101","nodeType":"YulLiteral","src":"16961:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16946:3:101","nodeType":"YulIdentifier","src":"16946:3:101"},"nativeSrc":"16946:17:101","nodeType":"YulFunctionCall","src":"16946:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"16887:49:101","nodeType":"YulIdentifier","src":"16887:49:101"},"nativeSrc":"16887:77:101","nodeType":"YulFunctionCall","src":"16887:77:101"},"nativeSrc":"16887:77:101","nodeType":"YulExpressionStatement","src":"16887:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"16737:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16813:9:101","nodeType":"YulTypedName","src":"16813:9:101","type":""},{"name":"value0","nativeSrc":"16825:6:101","nodeType":"YulTypedName","src":"16825:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16836:4:101","nodeType":"YulTypedName","src":"16836:4:101","type":""}],"src":"16737:234:101"},{"body":{"nativeSrc":"17083:70:101","nodeType":"YulBlock","src":"17083:70:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"17105:6:101","nodeType":"YulIdentifier","src":"17105:6:101"},{"kind":"number","nativeSrc":"17113:1:101","nodeType":"YulLiteral","src":"17113:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17101:3:101","nodeType":"YulIdentifier","src":"17101:3:101"},"nativeSrc":"17101:14:101","nodeType":"YulFunctionCall","src":"17101:14:101"},{"hexValue":"7374616c6520706572696f642063616e2774206265207a65726f","kind":"string","nativeSrc":"17117:28:101","nodeType":"YulLiteral","src":"17117:28:101","type":"","value":"stale period can't be zero"}],"functionName":{"name":"mstore","nativeSrc":"17094:6:101","nodeType":"YulIdentifier","src":"17094:6:101"},"nativeSrc":"17094:52:101","nodeType":"YulFunctionCall","src":"17094:52:101"},"nativeSrc":"17094:52:101","nodeType":"YulExpressionStatement","src":"17094:52:101"}]},"name":"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","nativeSrc":"16977:176:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"17075:6:101","nodeType":"YulTypedName","src":"17075:6:101","type":""}],"src":"16977:176:101"},{"body":{"nativeSrc":"17305:220:101","nodeType":"YulBlock","src":"17305:220:101","statements":[{"nativeSrc":"17315:74:101","nodeType":"YulAssignment","src":"17315:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"17381:3:101","nodeType":"YulIdentifier","src":"17381:3:101"},{"kind":"number","nativeSrc":"17386:2:101","nodeType":"YulLiteral","src":"17386:2:101","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"17322:58:101","nodeType":"YulIdentifier","src":"17322:58:101"},"nativeSrc":"17322:67:101","nodeType":"YulFunctionCall","src":"17322:67:101"},"variableNames":[{"name":"pos","nativeSrc":"17315:3:101","nodeType":"YulIdentifier","src":"17315:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17487:3:101","nodeType":"YulIdentifier","src":"17487:3:101"}],"functionName":{"name":"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","nativeSrc":"17398:88:101","nodeType":"YulIdentifier","src":"17398:88:101"},"nativeSrc":"17398:93:101","nodeType":"YulFunctionCall","src":"17398:93:101"},"nativeSrc":"17398:93:101","nodeType":"YulExpressionStatement","src":"17398:93:101"},{"nativeSrc":"17500:19:101","nodeType":"YulAssignment","src":"17500:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"17511:3:101","nodeType":"YulIdentifier","src":"17511:3:101"},{"kind":"number","nativeSrc":"17516:2:101","nodeType":"YulLiteral","src":"17516:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17507:3:101","nodeType":"YulIdentifier","src":"17507:3:101"},"nativeSrc":"17507:12:101","nodeType":"YulFunctionCall","src":"17507:12:101"},"variableNames":[{"name":"end","nativeSrc":"17500:3:101","nodeType":"YulIdentifier","src":"17500:3:101"}]}]},"name":"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack","nativeSrc":"17159:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17293:3:101","nodeType":"YulTypedName","src":"17293:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17301:3:101","nodeType":"YulTypedName","src":"17301:3:101","type":""}],"src":"17159:366:101"},{"body":{"nativeSrc":"17702:248:101","nodeType":"YulBlock","src":"17702:248:101","statements":[{"nativeSrc":"17712:26:101","nodeType":"YulAssignment","src":"17712:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17724:9:101","nodeType":"YulIdentifier","src":"17724:9:101"},{"kind":"number","nativeSrc":"17735:2:101","nodeType":"YulLiteral","src":"17735:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17720:3:101","nodeType":"YulIdentifier","src":"17720:3:101"},"nativeSrc":"17720:18:101","nodeType":"YulFunctionCall","src":"17720:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17712:4:101","nodeType":"YulIdentifier","src":"17712:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17759:9:101","nodeType":"YulIdentifier","src":"17759:9:101"},{"kind":"number","nativeSrc":"17770:1:101","nodeType":"YulLiteral","src":"17770:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17755:3:101","nodeType":"YulIdentifier","src":"17755:3:101"},"nativeSrc":"17755:17:101","nodeType":"YulFunctionCall","src":"17755:17:101"},{"arguments":[{"name":"tail","nativeSrc":"17778:4:101","nodeType":"YulIdentifier","src":"17778:4:101"},{"name":"headStart","nativeSrc":"17784:9:101","nodeType":"YulIdentifier","src":"17784:9:101"}],"functionName":{"name":"sub","nativeSrc":"17774:3:101","nodeType":"YulIdentifier","src":"17774:3:101"},"nativeSrc":"17774:20:101","nodeType":"YulFunctionCall","src":"17774:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17748:6:101","nodeType":"YulIdentifier","src":"17748:6:101"},"nativeSrc":"17748:47:101","nodeType":"YulFunctionCall","src":"17748:47:101"},"nativeSrc":"17748:47:101","nodeType":"YulExpressionStatement","src":"17748:47:101"},{"nativeSrc":"17804:139:101","nodeType":"YulAssignment","src":"17804:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"17938:4:101","nodeType":"YulIdentifier","src":"17938:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack","nativeSrc":"17812:124:101","nodeType":"YulIdentifier","src":"17812:124:101"},"nativeSrc":"17812:131:101","nodeType":"YulFunctionCall","src":"17812:131:101"},"variableNames":[{"name":"tail","nativeSrc":"17804:4:101","nodeType":"YulIdentifier","src":"17804:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17531:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17682:9:101","nodeType":"YulTypedName","src":"17682:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17697:4:101","nodeType":"YulTypedName","src":"17697:4:101","type":""}],"src":"17531:419:101"},{"body":{"nativeSrc":"18062:66:101","nodeType":"YulBlock","src":"18062:66:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"18084:6:101","nodeType":"YulIdentifier","src":"18084:6:101"},{"kind":"number","nativeSrc":"18092:1:101","nodeType":"YulLiteral","src":"18092:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18080:3:101","nodeType":"YulIdentifier","src":"18080:3:101"},"nativeSrc":"18080:14:101","nodeType":"YulFunctionCall","src":"18080:14:101"},{"hexValue":"73796d626f6c2063616e6e6f7420626520656d707479","kind":"string","nativeSrc":"18096:24:101","nodeType":"YulLiteral","src":"18096:24:101","type":"","value":"symbol cannot be empty"}],"functionName":{"name":"mstore","nativeSrc":"18073:6:101","nodeType":"YulIdentifier","src":"18073:6:101"},"nativeSrc":"18073:48:101","nodeType":"YulFunctionCall","src":"18073:48:101"},"nativeSrc":"18073:48:101","nodeType":"YulExpressionStatement","src":"18073:48:101"}]},"name":"store_literal_in_memory_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a","nativeSrc":"17956:172:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18054:6:101","nodeType":"YulTypedName","src":"18054:6:101","type":""}],"src":"17956:172:101"},{"body":{"nativeSrc":"18280:220:101","nodeType":"YulBlock","src":"18280:220:101","statements":[{"nativeSrc":"18290:74:101","nodeType":"YulAssignment","src":"18290:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"18356:3:101","nodeType":"YulIdentifier","src":"18356:3:101"},{"kind":"number","nativeSrc":"18361:2:101","nodeType":"YulLiteral","src":"18361:2:101","type":"","value":"22"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"18297:58:101","nodeType":"YulIdentifier","src":"18297:58:101"},"nativeSrc":"18297:67:101","nodeType":"YulFunctionCall","src":"18297:67:101"},"variableNames":[{"name":"pos","nativeSrc":"18290:3:101","nodeType":"YulIdentifier","src":"18290:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18462:3:101","nodeType":"YulIdentifier","src":"18462:3:101"}],"functionName":{"name":"store_literal_in_memory_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a","nativeSrc":"18373:88:101","nodeType":"YulIdentifier","src":"18373:88:101"},"nativeSrc":"18373:93:101","nodeType":"YulFunctionCall","src":"18373:93:101"},"nativeSrc":"18373:93:101","nodeType":"YulExpressionStatement","src":"18373:93:101"},{"nativeSrc":"18475:19:101","nodeType":"YulAssignment","src":"18475:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"18486:3:101","nodeType":"YulIdentifier","src":"18486:3:101"},{"kind":"number","nativeSrc":"18491:2:101","nodeType":"YulLiteral","src":"18491:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18482:3:101","nodeType":"YulIdentifier","src":"18482:3:101"},"nativeSrc":"18482:12:101","nodeType":"YulFunctionCall","src":"18482:12:101"},"variableNames":[{"name":"end","nativeSrc":"18475:3:101","nodeType":"YulIdentifier","src":"18475:3:101"}]}]},"name":"abi_encode_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a_to_t_string_memory_ptr_fromStack","nativeSrc":"18134:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18268:3:101","nodeType":"YulTypedName","src":"18268:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18276:3:101","nodeType":"YulTypedName","src":"18276:3:101","type":""}],"src":"18134:366:101"},{"body":{"nativeSrc":"18677:248:101","nodeType":"YulBlock","src":"18677:248:101","statements":[{"nativeSrc":"18687:26:101","nodeType":"YulAssignment","src":"18687:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18699:9:101","nodeType":"YulIdentifier","src":"18699:9:101"},{"kind":"number","nativeSrc":"18710:2:101","nodeType":"YulLiteral","src":"18710:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18695:3:101","nodeType":"YulIdentifier","src":"18695:3:101"},"nativeSrc":"18695:18:101","nodeType":"YulFunctionCall","src":"18695:18:101"},"variableNames":[{"name":"tail","nativeSrc":"18687:4:101","nodeType":"YulIdentifier","src":"18687:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18734:9:101","nodeType":"YulIdentifier","src":"18734:9:101"},{"kind":"number","nativeSrc":"18745:1:101","nodeType":"YulLiteral","src":"18745:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18730:3:101","nodeType":"YulIdentifier","src":"18730:3:101"},"nativeSrc":"18730:17:101","nodeType":"YulFunctionCall","src":"18730:17:101"},{"arguments":[{"name":"tail","nativeSrc":"18753:4:101","nodeType":"YulIdentifier","src":"18753:4:101"},{"name":"headStart","nativeSrc":"18759:9:101","nodeType":"YulIdentifier","src":"18759:9:101"}],"functionName":{"name":"sub","nativeSrc":"18749:3:101","nodeType":"YulIdentifier","src":"18749:3:101"},"nativeSrc":"18749:20:101","nodeType":"YulFunctionCall","src":"18749:20:101"}],"functionName":{"name":"mstore","nativeSrc":"18723:6:101","nodeType":"YulIdentifier","src":"18723:6:101"},"nativeSrc":"18723:47:101","nodeType":"YulFunctionCall","src":"18723:47:101"},"nativeSrc":"18723:47:101","nodeType":"YulExpressionStatement","src":"18723:47:101"},{"nativeSrc":"18779:139:101","nodeType":"YulAssignment","src":"18779:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"18913:4:101","nodeType":"YulIdentifier","src":"18913:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a_to_t_string_memory_ptr_fromStack","nativeSrc":"18787:124:101","nodeType":"YulIdentifier","src":"18787:124:101"},"nativeSrc":"18787:131:101","nodeType":"YulFunctionCall","src":"18787:131:101"},"variableNames":[{"name":"tail","nativeSrc":"18779:4:101","nodeType":"YulIdentifier","src":"18779:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18506:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18657:9:101","nodeType":"YulTypedName","src":"18657:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18672:4:101","nodeType":"YulTypedName","src":"18672:4:101","type":""}],"src":"18506:419:101"},{"body":{"nativeSrc":"19037:122:101","nodeType":"YulBlock","src":"19037:122:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19059:6:101","nodeType":"YulIdentifier","src":"19059:6:101"},{"kind":"number","nativeSrc":"19067:1:101","nodeType":"YulLiteral","src":"19067:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19055:3:101","nodeType":"YulIdentifier","src":"19055:3:101"},"nativeSrc":"19055:14:101","nodeType":"YulFunctionCall","src":"19055:14:101"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"19071:34:101","nodeType":"YulLiteral","src":"19071:34:101","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"19048:6:101","nodeType":"YulIdentifier","src":"19048:6:101"},"nativeSrc":"19048:58:101","nodeType":"YulFunctionCall","src":"19048:58:101"},"nativeSrc":"19048:58:101","nodeType":"YulExpressionStatement","src":"19048:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19127:6:101","nodeType":"YulIdentifier","src":"19127:6:101"},{"kind":"number","nativeSrc":"19135:2:101","nodeType":"YulLiteral","src":"19135:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19123:3:101","nodeType":"YulIdentifier","src":"19123:3:101"},"nativeSrc":"19123:15:101","nodeType":"YulFunctionCall","src":"19123:15:101"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"19140:11:101","nodeType":"YulLiteral","src":"19140:11:101","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"19116:6:101","nodeType":"YulIdentifier","src":"19116:6:101"},"nativeSrc":"19116:36:101","nodeType":"YulFunctionCall","src":"19116:36:101"},"nativeSrc":"19116:36:101","nodeType":"YulExpressionStatement","src":"19116:36:101"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"18931:228:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19029:6:101","nodeType":"YulTypedName","src":"19029:6:101","type":""}],"src":"18931:228:101"},{"body":{"nativeSrc":"19311:220:101","nodeType":"YulBlock","src":"19311:220:101","statements":[{"nativeSrc":"19321:74:101","nodeType":"YulAssignment","src":"19321:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"19387:3:101","nodeType":"YulIdentifier","src":"19387:3:101"},{"kind":"number","nativeSrc":"19392:2:101","nodeType":"YulLiteral","src":"19392:2:101","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19328:58:101","nodeType":"YulIdentifier","src":"19328:58:101"},"nativeSrc":"19328:67:101","nodeType":"YulFunctionCall","src":"19328:67:101"},"variableNames":[{"name":"pos","nativeSrc":"19321:3:101","nodeType":"YulIdentifier","src":"19321:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19493:3:101","nodeType":"YulIdentifier","src":"19493:3:101"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"19404:88:101","nodeType":"YulIdentifier","src":"19404:88:101"},"nativeSrc":"19404:93:101","nodeType":"YulFunctionCall","src":"19404:93:101"},"nativeSrc":"19404:93:101","nodeType":"YulExpressionStatement","src":"19404:93:101"},{"nativeSrc":"19506:19:101","nodeType":"YulAssignment","src":"19506:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"19517:3:101","nodeType":"YulIdentifier","src":"19517:3:101"},{"kind":"number","nativeSrc":"19522:2:101","nodeType":"YulLiteral","src":"19522:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19513:3:101","nodeType":"YulIdentifier","src":"19513:3:101"},"nativeSrc":"19513:12:101","nodeType":"YulFunctionCall","src":"19513:12:101"},"variableNames":[{"name":"end","nativeSrc":"19506:3:101","nodeType":"YulIdentifier","src":"19506:3:101"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"19165:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19299:3:101","nodeType":"YulTypedName","src":"19299:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19307:3:101","nodeType":"YulTypedName","src":"19307:3:101","type":""}],"src":"19165:366:101"},{"body":{"nativeSrc":"19708:248:101","nodeType":"YulBlock","src":"19708:248:101","statements":[{"nativeSrc":"19718:26:101","nodeType":"YulAssignment","src":"19718:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"19730:9:101","nodeType":"YulIdentifier","src":"19730:9:101"},{"kind":"number","nativeSrc":"19741:2:101","nodeType":"YulLiteral","src":"19741:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19726:3:101","nodeType":"YulIdentifier","src":"19726:3:101"},"nativeSrc":"19726:18:101","nodeType":"YulFunctionCall","src":"19726:18:101"},"variableNames":[{"name":"tail","nativeSrc":"19718:4:101","nodeType":"YulIdentifier","src":"19718:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19765:9:101","nodeType":"YulIdentifier","src":"19765:9:101"},{"kind":"number","nativeSrc":"19776:1:101","nodeType":"YulLiteral","src":"19776:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19761:3:101","nodeType":"YulIdentifier","src":"19761:3:101"},"nativeSrc":"19761:17:101","nodeType":"YulFunctionCall","src":"19761:17:101"},{"arguments":[{"name":"tail","nativeSrc":"19784:4:101","nodeType":"YulIdentifier","src":"19784:4:101"},{"name":"headStart","nativeSrc":"19790:9:101","nodeType":"YulIdentifier","src":"19790:9:101"}],"functionName":{"name":"sub","nativeSrc":"19780:3:101","nodeType":"YulIdentifier","src":"19780:3:101"},"nativeSrc":"19780:20:101","nodeType":"YulFunctionCall","src":"19780:20:101"}],"functionName":{"name":"mstore","nativeSrc":"19754:6:101","nodeType":"YulIdentifier","src":"19754:6:101"},"nativeSrc":"19754:47:101","nodeType":"YulFunctionCall","src":"19754:47:101"},"nativeSrc":"19754:47:101","nodeType":"YulExpressionStatement","src":"19754:47:101"},{"nativeSrc":"19810:139:101","nodeType":"YulAssignment","src":"19810:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"19944:4:101","nodeType":"YulIdentifier","src":"19944:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"19818:124:101","nodeType":"YulIdentifier","src":"19818:124:101"},"nativeSrc":"19818:131:101","nodeType":"YulFunctionCall","src":"19818:131:101"},"variableNames":[{"name":"tail","nativeSrc":"19810:4:101","nodeType":"YulIdentifier","src":"19810:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19537:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19688:9:101","nodeType":"YulTypedName","src":"19688:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19703:4:101","nodeType":"YulTypedName","src":"19703:4:101","type":""}],"src":"19537:419:101"},{"body":{"nativeSrc":"20007:32:101","nodeType":"YulBlock","src":"20007:32:101","statements":[{"nativeSrc":"20017:16:101","nodeType":"YulAssignment","src":"20017:16:101","value":{"name":"value","nativeSrc":"20028:5:101","nodeType":"YulIdentifier","src":"20028:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"20017:7:101","nodeType":"YulIdentifier","src":"20017:7:101"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"19962:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19989:5:101","nodeType":"YulTypedName","src":"19989:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"19999:7:101","nodeType":"YulTypedName","src":"19999:7:101","type":""}],"src":"19962:77:101"},{"body":{"nativeSrc":"20110:53:101","nodeType":"YulBlock","src":"20110:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20127:3:101","nodeType":"YulIdentifier","src":"20127:3:101"},{"arguments":[{"name":"value","nativeSrc":"20150:5:101","nodeType":"YulIdentifier","src":"20150:5:101"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"20132:17:101","nodeType":"YulIdentifier","src":"20132:17:101"},"nativeSrc":"20132:24:101","nodeType":"YulFunctionCall","src":"20132:24:101"}],"functionName":{"name":"mstore","nativeSrc":"20120:6:101","nodeType":"YulIdentifier","src":"20120:6:101"},"nativeSrc":"20120:37:101","nodeType":"YulFunctionCall","src":"20120:37:101"},"nativeSrc":"20120:37:101","nodeType":"YulExpressionStatement","src":"20120:37:101"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"20045:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20098:5:101","nodeType":"YulTypedName","src":"20098:5:101","type":""},{"name":"pos","nativeSrc":"20105:3:101","nodeType":"YulTypedName","src":"20105:3:101","type":""}],"src":"20045:118:101"},{"body":{"nativeSrc":"20267:124:101","nodeType":"YulBlock","src":"20267:124:101","statements":[{"nativeSrc":"20277:26:101","nodeType":"YulAssignment","src":"20277:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20289:9:101","nodeType":"YulIdentifier","src":"20289:9:101"},{"kind":"number","nativeSrc":"20300:2:101","nodeType":"YulLiteral","src":"20300:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20285:3:101","nodeType":"YulIdentifier","src":"20285:3:101"},"nativeSrc":"20285:18:101","nodeType":"YulFunctionCall","src":"20285:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20277:4:101","nodeType":"YulIdentifier","src":"20277:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"20357:6:101","nodeType":"YulIdentifier","src":"20357:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"20370:9:101","nodeType":"YulIdentifier","src":"20370:9:101"},{"kind":"number","nativeSrc":"20381:1:101","nodeType":"YulLiteral","src":"20381:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20366:3:101","nodeType":"YulIdentifier","src":"20366:3:101"},"nativeSrc":"20366:17:101","nodeType":"YulFunctionCall","src":"20366:17:101"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"20313:43:101","nodeType":"YulIdentifier","src":"20313:43:101"},"nativeSrc":"20313:71:101","nodeType":"YulFunctionCall","src":"20313:71:101"},"nativeSrc":"20313:71:101","nodeType":"YulExpressionStatement","src":"20313:71:101"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"20169:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20239:9:101","nodeType":"YulTypedName","src":"20239:9:101","type":""},{"name":"value0","nativeSrc":"20251:6:101","nodeType":"YulTypedName","src":"20251:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20262:4:101","nodeType":"YulTypedName","src":"20262:4:101","type":""}],"src":"20169:222:101"},{"body":{"nativeSrc":"20460:80:101","nodeType":"YulBlock","src":"20460:80:101","statements":[{"nativeSrc":"20470:22:101","nodeType":"YulAssignment","src":"20470:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"20485:6:101","nodeType":"YulIdentifier","src":"20485:6:101"}],"functionName":{"name":"mload","nativeSrc":"20479:5:101","nodeType":"YulIdentifier","src":"20479:5:101"},"nativeSrc":"20479:13:101","nodeType":"YulFunctionCall","src":"20479:13:101"},"variableNames":[{"name":"value","nativeSrc":"20470:5:101","nodeType":"YulIdentifier","src":"20470:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"20528:5:101","nodeType":"YulIdentifier","src":"20528:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"20501:26:101","nodeType":"YulIdentifier","src":"20501:26:101"},"nativeSrc":"20501:33:101","nodeType":"YulFunctionCall","src":"20501:33:101"},"nativeSrc":"20501:33:101","nodeType":"YulExpressionStatement","src":"20501:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"20397:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20438:6:101","nodeType":"YulTypedName","src":"20438:6:101","type":""},{"name":"end","nativeSrc":"20446:3:101","nodeType":"YulTypedName","src":"20446:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20454:5:101","nodeType":"YulTypedName","src":"20454:5:101","type":""}],"src":"20397:143:101"},{"body":{"nativeSrc":"20623:274:101","nodeType":"YulBlock","src":"20623:274:101","statements":[{"body":{"nativeSrc":"20669:83:101","nodeType":"YulBlock","src":"20669:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"20671:77:101","nodeType":"YulIdentifier","src":"20671:77:101"},"nativeSrc":"20671:79:101","nodeType":"YulFunctionCall","src":"20671:79:101"},"nativeSrc":"20671:79:101","nodeType":"YulExpressionStatement","src":"20671:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20644:7:101","nodeType":"YulIdentifier","src":"20644:7:101"},{"name":"headStart","nativeSrc":"20653:9:101","nodeType":"YulIdentifier","src":"20653:9:101"}],"functionName":{"name":"sub","nativeSrc":"20640:3:101","nodeType":"YulIdentifier","src":"20640:3:101"},"nativeSrc":"20640:23:101","nodeType":"YulFunctionCall","src":"20640:23:101"},{"kind":"number","nativeSrc":"20665:2:101","nodeType":"YulLiteral","src":"20665:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20636:3:101","nodeType":"YulIdentifier","src":"20636:3:101"},"nativeSrc":"20636:32:101","nodeType":"YulFunctionCall","src":"20636:32:101"},"nativeSrc":"20633:119:101","nodeType":"YulIf","src":"20633:119:101"},{"nativeSrc":"20762:128:101","nodeType":"YulBlock","src":"20762:128:101","statements":[{"nativeSrc":"20777:15:101","nodeType":"YulVariableDeclaration","src":"20777:15:101","value":{"kind":"number","nativeSrc":"20791:1:101","nodeType":"YulLiteral","src":"20791:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"20781:6:101","nodeType":"YulTypedName","src":"20781:6:101","type":""}]},{"nativeSrc":"20806:74:101","nodeType":"YulAssignment","src":"20806:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20852:9:101","nodeType":"YulIdentifier","src":"20852:9:101"},{"name":"offset","nativeSrc":"20863:6:101","nodeType":"YulIdentifier","src":"20863:6:101"}],"functionName":{"name":"add","nativeSrc":"20848:3:101","nodeType":"YulIdentifier","src":"20848:3:101"},"nativeSrc":"20848:22:101","nodeType":"YulFunctionCall","src":"20848:22:101"},{"name":"dataEnd","nativeSrc":"20872:7:101","nodeType":"YulIdentifier","src":"20872:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"20816:31:101","nodeType":"YulIdentifier","src":"20816:31:101"},"nativeSrc":"20816:64:101","nodeType":"YulFunctionCall","src":"20816:64:101"},"variableNames":[{"name":"value0","nativeSrc":"20806:6:101","nodeType":"YulIdentifier","src":"20806:6:101"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"20546:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20593:9:101","nodeType":"YulTypedName","src":"20593:9:101","type":""},{"name":"dataEnd","nativeSrc":"20604:7:101","nodeType":"YulTypedName","src":"20604:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20616:6:101","nodeType":"YulTypedName","src":"20616:6:101","type":""}],"src":"20546:351:101"},{"body":{"nativeSrc":"20956:51:101","nodeType":"YulBlock","src":"20956:51:101","statements":[{"nativeSrc":"20966:35:101","nodeType":"YulAssignment","src":"20966:35:101","value":{"arguments":[{"name":"value","nativeSrc":"20995:5:101","nodeType":"YulIdentifier","src":"20995:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"20977:17:101","nodeType":"YulIdentifier","src":"20977:17:101"},"nativeSrc":"20977:24:101","nodeType":"YulFunctionCall","src":"20977:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"20966:7:101","nodeType":"YulIdentifier","src":"20966:7:101"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"20903:104:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20938:5:101","nodeType":"YulTypedName","src":"20938:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"20948:7:101","nodeType":"YulTypedName","src":"20948:7:101","type":""}],"src":"20903:104:101"},{"body":{"nativeSrc":"21064:87:101","nodeType":"YulBlock","src":"21064:87:101","statements":[{"body":{"nativeSrc":"21129:16:101","nodeType":"YulBlock","src":"21129:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21138:1:101","nodeType":"YulLiteral","src":"21138:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"21141:1:101","nodeType":"YulLiteral","src":"21141:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21131:6:101","nodeType":"YulIdentifier","src":"21131:6:101"},"nativeSrc":"21131:12:101","nodeType":"YulFunctionCall","src":"21131:12:101"},"nativeSrc":"21131:12:101","nodeType":"YulExpressionStatement","src":"21131:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21087:5:101","nodeType":"YulIdentifier","src":"21087:5:101"},{"arguments":[{"name":"value","nativeSrc":"21120:5:101","nodeType":"YulIdentifier","src":"21120:5:101"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"21094:25:101","nodeType":"YulIdentifier","src":"21094:25:101"},"nativeSrc":"21094:32:101","nodeType":"YulFunctionCall","src":"21094:32:101"}],"functionName":{"name":"eq","nativeSrc":"21084:2:101","nodeType":"YulIdentifier","src":"21084:2:101"},"nativeSrc":"21084:43:101","nodeType":"YulFunctionCall","src":"21084:43:101"}],"functionName":{"name":"iszero","nativeSrc":"21077:6:101","nodeType":"YulIdentifier","src":"21077:6:101"},"nativeSrc":"21077:51:101","nodeType":"YulFunctionCall","src":"21077:51:101"},"nativeSrc":"21074:71:101","nodeType":"YulIf","src":"21074:71:101"}]},"name":"validator_revert_t_address_payable","nativeSrc":"21013:138:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21057:5:101","nodeType":"YulTypedName","src":"21057:5:101","type":""}],"src":"21013:138:101"},{"body":{"nativeSrc":"21228:88:101","nodeType":"YulBlock","src":"21228:88:101","statements":[{"nativeSrc":"21238:22:101","nodeType":"YulAssignment","src":"21238:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"21253:6:101","nodeType":"YulIdentifier","src":"21253:6:101"}],"functionName":{"name":"mload","nativeSrc":"21247:5:101","nodeType":"YulIdentifier","src":"21247:5:101"},"nativeSrc":"21247:13:101","nodeType":"YulFunctionCall","src":"21247:13:101"},"variableNames":[{"name":"value","nativeSrc":"21238:5:101","nodeType":"YulIdentifier","src":"21238:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"21304:5:101","nodeType":"YulIdentifier","src":"21304:5:101"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"21269:34:101","nodeType":"YulIdentifier","src":"21269:34:101"},"nativeSrc":"21269:41:101","nodeType":"YulFunctionCall","src":"21269:41:101"},"nativeSrc":"21269:41:101","nodeType":"YulExpressionStatement","src":"21269:41:101"}]},"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"21157:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"21206:6:101","nodeType":"YulTypedName","src":"21206:6:101","type":""},{"name":"end","nativeSrc":"21214:3:101","nodeType":"YulTypedName","src":"21214:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"21222:5:101","nodeType":"YulTypedName","src":"21222:5:101","type":""}],"src":"21157:159:101"},{"body":{"nativeSrc":"21407:282:101","nodeType":"YulBlock","src":"21407:282:101","statements":[{"body":{"nativeSrc":"21453:83:101","nodeType":"YulBlock","src":"21453:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"21455:77:101","nodeType":"YulIdentifier","src":"21455:77:101"},"nativeSrc":"21455:79:101","nodeType":"YulFunctionCall","src":"21455:79:101"},"nativeSrc":"21455:79:101","nodeType":"YulExpressionStatement","src":"21455:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"21428:7:101","nodeType":"YulIdentifier","src":"21428:7:101"},{"name":"headStart","nativeSrc":"21437:9:101","nodeType":"YulIdentifier","src":"21437:9:101"}],"functionName":{"name":"sub","nativeSrc":"21424:3:101","nodeType":"YulIdentifier","src":"21424:3:101"},"nativeSrc":"21424:23:101","nodeType":"YulFunctionCall","src":"21424:23:101"},{"kind":"number","nativeSrc":"21449:2:101","nodeType":"YulLiteral","src":"21449:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"21420:3:101","nodeType":"YulIdentifier","src":"21420:3:101"},"nativeSrc":"21420:32:101","nodeType":"YulFunctionCall","src":"21420:32:101"},"nativeSrc":"21417:119:101","nodeType":"YulIf","src":"21417:119:101"},{"nativeSrc":"21546:136:101","nodeType":"YulBlock","src":"21546:136:101","statements":[{"nativeSrc":"21561:15:101","nodeType":"YulVariableDeclaration","src":"21561:15:101","value":{"kind":"number","nativeSrc":"21575:1:101","nodeType":"YulLiteral","src":"21575:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21565:6:101","nodeType":"YulTypedName","src":"21565:6:101","type":""}]},{"nativeSrc":"21590:82:101","nodeType":"YulAssignment","src":"21590:82:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21644:9:101","nodeType":"YulIdentifier","src":"21644:9:101"},{"name":"offset","nativeSrc":"21655:6:101","nodeType":"YulIdentifier","src":"21655:6:101"}],"functionName":{"name":"add","nativeSrc":"21640:3:101","nodeType":"YulIdentifier","src":"21640:3:101"},"nativeSrc":"21640:22:101","nodeType":"YulFunctionCall","src":"21640:22:101"},{"name":"dataEnd","nativeSrc":"21664:7:101","nodeType":"YulIdentifier","src":"21664:7:101"}],"functionName":{"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"21600:39:101","nodeType":"YulIdentifier","src":"21600:39:101"},"nativeSrc":"21600:72:101","nodeType":"YulFunctionCall","src":"21600:72:101"},"variableNames":[{"name":"value0","nativeSrc":"21590:6:101","nodeType":"YulIdentifier","src":"21590:6:101"}]}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"21322:367:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21377:9:101","nodeType":"YulTypedName","src":"21377:9:101","type":""},{"name":"dataEnd","nativeSrc":"21388:7:101","nodeType":"YulTypedName","src":"21388:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"21400:6:101","nodeType":"YulTypedName","src":"21400:6:101","type":""}],"src":"21322:367:101"},{"body":{"nativeSrc":"21839:210:101","nodeType":"YulBlock","src":"21839:210:101","statements":[{"nativeSrc":"21849:96:101","nodeType":"YulAssignment","src":"21849:96:101","value":{"arguments":[{"name":"pos","nativeSrc":"21933:3:101","nodeType":"YulIdentifier","src":"21933:3:101"},{"name":"length","nativeSrc":"21938:6:101","nodeType":"YulIdentifier","src":"21938:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"21856:76:101","nodeType":"YulIdentifier","src":"21856:76:101"},"nativeSrc":"21856:89:101","nodeType":"YulFunctionCall","src":"21856:89:101"},"variableNames":[{"name":"pos","nativeSrc":"21849:3:101","nodeType":"YulIdentifier","src":"21849:3:101"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"21992:5:101","nodeType":"YulIdentifier","src":"21992:5:101"},{"name":"pos","nativeSrc":"21999:3:101","nodeType":"YulIdentifier","src":"21999:3:101"},{"name":"length","nativeSrc":"22004:6:101","nodeType":"YulIdentifier","src":"22004:6:101"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"21955:36:101","nodeType":"YulIdentifier","src":"21955:36:101"},"nativeSrc":"21955:56:101","nodeType":"YulFunctionCall","src":"21955:56:101"},"nativeSrc":"21955:56:101","nodeType":"YulExpressionStatement","src":"21955:56:101"},{"nativeSrc":"22020:23:101","nodeType":"YulAssignment","src":"22020:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"22031:3:101","nodeType":"YulIdentifier","src":"22031:3:101"},{"name":"length","nativeSrc":"22036:6:101","nodeType":"YulIdentifier","src":"22036:6:101"}],"functionName":{"name":"add","nativeSrc":"22027:3:101","nodeType":"YulIdentifier","src":"22027:3:101"},"nativeSrc":"22027:16:101","nodeType":"YulFunctionCall","src":"22027:16:101"},"variableNames":[{"name":"end","nativeSrc":"22020:3:101","nodeType":"YulIdentifier","src":"22020:3:101"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"21719:330:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"21812:5:101","nodeType":"YulTypedName","src":"21812:5:101","type":""},{"name":"length","nativeSrc":"21819:6:101","nodeType":"YulTypedName","src":"21819:6:101","type":""},{"name":"pos","nativeSrc":"21827:3:101","nodeType":"YulTypedName","src":"21827:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21835:3:101","nodeType":"YulTypedName","src":"21835:3:101","type":""}],"src":"21719:330:101"},{"body":{"nativeSrc":"22201:149:101","nodeType":"YulBlock","src":"22201:149:101","statements":[{"nativeSrc":"22212:112:101","nodeType":"YulAssignment","src":"22212:112:101","value":{"arguments":[{"name":"value0","nativeSrc":"22303:6:101","nodeType":"YulIdentifier","src":"22303:6:101"},{"name":"value1","nativeSrc":"22311:6:101","nodeType":"YulIdentifier","src":"22311:6:101"},{"name":"pos","nativeSrc":"22320:3:101","nodeType":"YulIdentifier","src":"22320:3:101"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"22219:83:101","nodeType":"YulIdentifier","src":"22219:83:101"},"nativeSrc":"22219:105:101","nodeType":"YulFunctionCall","src":"22219:105:101"},"variableNames":[{"name":"pos","nativeSrc":"22212:3:101","nodeType":"YulIdentifier","src":"22212:3:101"}]},{"nativeSrc":"22334:10:101","nodeType":"YulAssignment","src":"22334:10:101","value":{"name":"pos","nativeSrc":"22341:3:101","nodeType":"YulIdentifier","src":"22341:3:101"},"variableNames":[{"name":"end","nativeSrc":"22334:3:101","nodeType":"YulIdentifier","src":"22334:3:101"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"22055:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"22172:3:101","nodeType":"YulTypedName","src":"22172:3:101","type":""},{"name":"value1","nativeSrc":"22178:6:101","nodeType":"YulTypedName","src":"22178:6:101","type":""},{"name":"value0","nativeSrc":"22186:6:101","nodeType":"YulTypedName","src":"22186:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22197:3:101","nodeType":"YulTypedName","src":"22197:3:101","type":""}],"src":"22055:295:101"},{"body":{"nativeSrc":"22422:31:101","nodeType":"YulBlock","src":"22422:31:101","statements":[{"nativeSrc":"22433:13:101","nodeType":"YulAssignment","src":"22433:13:101","value":{"name":"len","nativeSrc":"22443:3:101","nodeType":"YulIdentifier","src":"22443:3:101"},"variableNames":[{"name":"length","nativeSrc":"22433:6:101","nodeType":"YulIdentifier","src":"22433:6:101"}]}]},"name":"array_length_t_string_calldata_ptr","nativeSrc":"22356:97:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22400:5:101","nodeType":"YulTypedName","src":"22400:5:101","type":""},{"name":"len","nativeSrc":"22407:3:101","nodeType":"YulTypedName","src":"22407:3:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"22415:6:101","nodeType":"YulTypedName","src":"22415:6:101","type":""}],"src":"22356:97:101"},{"body":{"nativeSrc":"22513:87:101","nodeType":"YulBlock","src":"22513:87:101","statements":[{"nativeSrc":"22523:11:101","nodeType":"YulAssignment","src":"22523:11:101","value":{"name":"ptr","nativeSrc":"22531:3:101","nodeType":"YulIdentifier","src":"22531:3:101"},"variableNames":[{"name":"data","nativeSrc":"22523:4:101","nodeType":"YulIdentifier","src":"22523:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22551:1:101","nodeType":"YulLiteral","src":"22551:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"22554:3:101","nodeType":"YulIdentifier","src":"22554:3:101"}],"functionName":{"name":"mstore","nativeSrc":"22544:6:101","nodeType":"YulIdentifier","src":"22544:6:101"},"nativeSrc":"22544:14:101","nodeType":"YulFunctionCall","src":"22544:14:101"},"nativeSrc":"22544:14:101","nodeType":"YulExpressionStatement","src":"22544:14:101"},{"nativeSrc":"22567:26:101","nodeType":"YulAssignment","src":"22567:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"22585:1:101","nodeType":"YulLiteral","src":"22585:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22588:4:101","nodeType":"YulLiteral","src":"22588:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22575:9:101","nodeType":"YulIdentifier","src":"22575:9:101"},"nativeSrc":"22575:18:101","nodeType":"YulFunctionCall","src":"22575:18:101"},"variableNames":[{"name":"data","nativeSrc":"22567:4:101","nodeType":"YulIdentifier","src":"22567:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"22459:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"22500:3:101","nodeType":"YulTypedName","src":"22500:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"22508:4:101","nodeType":"YulTypedName","src":"22508:4:101","type":""}],"src":"22459:141:101"},{"body":{"nativeSrc":"22650:49:101","nodeType":"YulBlock","src":"22650:49:101","statements":[{"nativeSrc":"22660:33:101","nodeType":"YulAssignment","src":"22660:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22678:5:101","nodeType":"YulIdentifier","src":"22678:5:101"},{"kind":"number","nativeSrc":"22685:2:101","nodeType":"YulLiteral","src":"22685:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"22674:3:101","nodeType":"YulIdentifier","src":"22674:3:101"},"nativeSrc":"22674:14:101","nodeType":"YulFunctionCall","src":"22674:14:101"},{"kind":"number","nativeSrc":"22690:2:101","nodeType":"YulLiteral","src":"22690:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"22670:3:101","nodeType":"YulIdentifier","src":"22670:3:101"},"nativeSrc":"22670:23:101","nodeType":"YulFunctionCall","src":"22670:23:101"},"variableNames":[{"name":"result","nativeSrc":"22660:6:101","nodeType":"YulIdentifier","src":"22660:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"22606:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22633:5:101","nodeType":"YulTypedName","src":"22633:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"22643:6:101","nodeType":"YulTypedName","src":"22643:6:101","type":""}],"src":"22606:93:101"},{"body":{"nativeSrc":"22758:54:101","nodeType":"YulBlock","src":"22758:54:101","statements":[{"nativeSrc":"22768:37:101","nodeType":"YulAssignment","src":"22768:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"22793:4:101","nodeType":"YulIdentifier","src":"22793:4:101"},{"name":"value","nativeSrc":"22799:5:101","nodeType":"YulIdentifier","src":"22799:5:101"}],"functionName":{"name":"shl","nativeSrc":"22789:3:101","nodeType":"YulIdentifier","src":"22789:3:101"},"nativeSrc":"22789:16:101","nodeType":"YulFunctionCall","src":"22789:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"22768:8:101","nodeType":"YulIdentifier","src":"22768:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"22705:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"22733:4:101","nodeType":"YulTypedName","src":"22733:4:101","type":""},{"name":"value","nativeSrc":"22739:5:101","nodeType":"YulTypedName","src":"22739:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"22749:8:101","nodeType":"YulTypedName","src":"22749:8:101","type":""}],"src":"22705:107:101"},{"body":{"nativeSrc":"22894:317:101","nodeType":"YulBlock","src":"22894:317:101","statements":[{"nativeSrc":"22904:35:101","nodeType":"YulVariableDeclaration","src":"22904:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"22925:10:101","nodeType":"YulIdentifier","src":"22925:10:101"},{"kind":"number","nativeSrc":"22937:1:101","nodeType":"YulLiteral","src":"22937:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"22921:3:101","nodeType":"YulIdentifier","src":"22921:3:101"},"nativeSrc":"22921:18:101","nodeType":"YulFunctionCall","src":"22921:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"22908:9:101","nodeType":"YulTypedName","src":"22908:9:101","type":""}]},{"nativeSrc":"22948:109:101","nodeType":"YulVariableDeclaration","src":"22948:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"22979:9:101","nodeType":"YulIdentifier","src":"22979:9:101"},{"kind":"number","nativeSrc":"22990:66:101","nodeType":"YulLiteral","src":"22990:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"22960:18:101","nodeType":"YulIdentifier","src":"22960:18:101"},"nativeSrc":"22960:97:101","nodeType":"YulFunctionCall","src":"22960:97:101"},"variables":[{"name":"mask","nativeSrc":"22952:4:101","nodeType":"YulTypedName","src":"22952:4:101","type":""}]},{"nativeSrc":"23066:51:101","nodeType":"YulAssignment","src":"23066:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"23097:9:101","nodeType":"YulIdentifier","src":"23097:9:101"},{"name":"toInsert","nativeSrc":"23108:8:101","nodeType":"YulIdentifier","src":"23108:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"23078:18:101","nodeType":"YulIdentifier","src":"23078:18:101"},"nativeSrc":"23078:39:101","nodeType":"YulFunctionCall","src":"23078:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"23066:8:101","nodeType":"YulIdentifier","src":"23066:8:101"}]},{"nativeSrc":"23126:30:101","nodeType":"YulAssignment","src":"23126:30:101","value":{"arguments":[{"name":"value","nativeSrc":"23139:5:101","nodeType":"YulIdentifier","src":"23139:5:101"},{"arguments":[{"name":"mask","nativeSrc":"23150:4:101","nodeType":"YulIdentifier","src":"23150:4:101"}],"functionName":{"name":"not","nativeSrc":"23146:3:101","nodeType":"YulIdentifier","src":"23146:3:101"},"nativeSrc":"23146:9:101","nodeType":"YulFunctionCall","src":"23146:9:101"}],"functionName":{"name":"and","nativeSrc":"23135:3:101","nodeType":"YulIdentifier","src":"23135:3:101"},"nativeSrc":"23135:21:101","nodeType":"YulFunctionCall","src":"23135:21:101"},"variableNames":[{"name":"value","nativeSrc":"23126:5:101","nodeType":"YulIdentifier","src":"23126:5:101"}]},{"nativeSrc":"23165:40:101","nodeType":"YulAssignment","src":"23165:40:101","value":{"arguments":[{"name":"value","nativeSrc":"23178:5:101","nodeType":"YulIdentifier","src":"23178:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"23189:8:101","nodeType":"YulIdentifier","src":"23189:8:101"},{"name":"mask","nativeSrc":"23199:4:101","nodeType":"YulIdentifier","src":"23199:4:101"}],"functionName":{"name":"and","nativeSrc":"23185:3:101","nodeType":"YulIdentifier","src":"23185:3:101"},"nativeSrc":"23185:19:101","nodeType":"YulFunctionCall","src":"23185:19:101"}],"functionName":{"name":"or","nativeSrc":"23175:2:101","nodeType":"YulIdentifier","src":"23175:2:101"},"nativeSrc":"23175:30:101","nodeType":"YulFunctionCall","src":"23175:30:101"},"variableNames":[{"name":"result","nativeSrc":"23165:6:101","nodeType":"YulIdentifier","src":"23165:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"22818:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22855:5:101","nodeType":"YulTypedName","src":"22855:5:101","type":""},{"name":"shiftBytes","nativeSrc":"22862:10:101","nodeType":"YulTypedName","src":"22862:10:101","type":""},{"name":"toInsert","nativeSrc":"22874:8:101","nodeType":"YulTypedName","src":"22874:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"22887:6:101","nodeType":"YulTypedName","src":"22887:6:101","type":""}],"src":"22818:393:101"},{"body":{"nativeSrc":"23277:82:101","nodeType":"YulBlock","src":"23277:82:101","statements":[{"nativeSrc":"23287:66:101","nodeType":"YulAssignment","src":"23287:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23345:5:101","nodeType":"YulIdentifier","src":"23345:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23327:17:101","nodeType":"YulIdentifier","src":"23327:17:101"},"nativeSrc":"23327:24:101","nodeType":"YulFunctionCall","src":"23327:24:101"}],"functionName":{"name":"identity","nativeSrc":"23318:8:101","nodeType":"YulIdentifier","src":"23318:8:101"},"nativeSrc":"23318:34:101","nodeType":"YulFunctionCall","src":"23318:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23300:17:101","nodeType":"YulIdentifier","src":"23300:17:101"},"nativeSrc":"23300:53:101","nodeType":"YulFunctionCall","src":"23300:53:101"},"variableNames":[{"name":"converted","nativeSrc":"23287:9:101","nodeType":"YulIdentifier","src":"23287:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"23217:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23257:5:101","nodeType":"YulTypedName","src":"23257:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"23267:9:101","nodeType":"YulTypedName","src":"23267:9:101","type":""}],"src":"23217:142:101"},{"body":{"nativeSrc":"23412:28:101","nodeType":"YulBlock","src":"23412:28:101","statements":[{"nativeSrc":"23422:12:101","nodeType":"YulAssignment","src":"23422:12:101","value":{"name":"value","nativeSrc":"23429:5:101","nodeType":"YulIdentifier","src":"23429:5:101"},"variableNames":[{"name":"ret","nativeSrc":"23422:3:101","nodeType":"YulIdentifier","src":"23422:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"23365:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23398:5:101","nodeType":"YulTypedName","src":"23398:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"23408:3:101","nodeType":"YulTypedName","src":"23408:3:101","type":""}],"src":"23365:75:101"},{"body":{"nativeSrc":"23522:193:101","nodeType":"YulBlock","src":"23522:193:101","statements":[{"nativeSrc":"23532:63:101","nodeType":"YulVariableDeclaration","src":"23532:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"23587:7:101","nodeType":"YulIdentifier","src":"23587:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"23556:30:101","nodeType":"YulIdentifier","src":"23556:30:101"},"nativeSrc":"23556:39:101","nodeType":"YulFunctionCall","src":"23556:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"23536:16:101","nodeType":"YulTypedName","src":"23536:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23611:4:101","nodeType":"YulIdentifier","src":"23611:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"23651:4:101","nodeType":"YulIdentifier","src":"23651:4:101"}],"functionName":{"name":"sload","nativeSrc":"23645:5:101","nodeType":"YulIdentifier","src":"23645:5:101"},"nativeSrc":"23645:11:101","nodeType":"YulFunctionCall","src":"23645:11:101"},{"name":"offset","nativeSrc":"23658:6:101","nodeType":"YulIdentifier","src":"23658:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"23690:16:101","nodeType":"YulIdentifier","src":"23690:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"23666:23:101","nodeType":"YulIdentifier","src":"23666:23:101"},"nativeSrc":"23666:41:101","nodeType":"YulFunctionCall","src":"23666:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"23617:27:101","nodeType":"YulIdentifier","src":"23617:27:101"},"nativeSrc":"23617:91:101","nodeType":"YulFunctionCall","src":"23617:91:101"}],"functionName":{"name":"sstore","nativeSrc":"23604:6:101","nodeType":"YulIdentifier","src":"23604:6:101"},"nativeSrc":"23604:105:101","nodeType":"YulFunctionCall","src":"23604:105:101"},"nativeSrc":"23604:105:101","nodeType":"YulExpressionStatement","src":"23604:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"23446:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"23499:4:101","nodeType":"YulTypedName","src":"23499:4:101","type":""},{"name":"offset","nativeSrc":"23505:6:101","nodeType":"YulTypedName","src":"23505:6:101","type":""},{"name":"value_0","nativeSrc":"23513:7:101","nodeType":"YulTypedName","src":"23513:7:101","type":""}],"src":"23446:269:101"},{"body":{"nativeSrc":"23770:24:101","nodeType":"YulBlock","src":"23770:24:101","statements":[{"nativeSrc":"23780:8:101","nodeType":"YulAssignment","src":"23780:8:101","value":{"kind":"number","nativeSrc":"23787:1:101","nodeType":"YulLiteral","src":"23787:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"23780:3:101","nodeType":"YulIdentifier","src":"23780:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"23721:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"23766:3:101","nodeType":"YulTypedName","src":"23766:3:101","type":""}],"src":"23721:73:101"},{"body":{"nativeSrc":"23853:136:101","nodeType":"YulBlock","src":"23853:136:101","statements":[{"nativeSrc":"23863:46:101","nodeType":"YulVariableDeclaration","src":"23863:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"23877:30:101","nodeType":"YulIdentifier","src":"23877:30:101"},"nativeSrc":"23877:32:101","nodeType":"YulFunctionCall","src":"23877:32:101"},"variables":[{"name":"zero_0","nativeSrc":"23867:6:101","nodeType":"YulTypedName","src":"23867:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23962:4:101","nodeType":"YulIdentifier","src":"23962:4:101"},{"name":"offset","nativeSrc":"23968:6:101","nodeType":"YulIdentifier","src":"23968:6:101"},{"name":"zero_0","nativeSrc":"23976:6:101","nodeType":"YulIdentifier","src":"23976:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"23918:43:101","nodeType":"YulIdentifier","src":"23918:43:101"},"nativeSrc":"23918:65:101","nodeType":"YulFunctionCall","src":"23918:65:101"},"nativeSrc":"23918:65:101","nodeType":"YulExpressionStatement","src":"23918:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"23800:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"23839:4:101","nodeType":"YulTypedName","src":"23839:4:101","type":""},{"name":"offset","nativeSrc":"23845:6:101","nodeType":"YulTypedName","src":"23845:6:101","type":""}],"src":"23800:189:101"},{"body":{"nativeSrc":"24045:136:101","nodeType":"YulBlock","src":"24045:136:101","statements":[{"body":{"nativeSrc":"24112:63:101","nodeType":"YulBlock","src":"24112:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"24156:5:101","nodeType":"YulIdentifier","src":"24156:5:101"},{"kind":"number","nativeSrc":"24163:1:101","nodeType":"YulLiteral","src":"24163:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"24126:29:101","nodeType":"YulIdentifier","src":"24126:29:101"},"nativeSrc":"24126:39:101","nodeType":"YulFunctionCall","src":"24126:39:101"},"nativeSrc":"24126:39:101","nodeType":"YulExpressionStatement","src":"24126:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"24065:5:101","nodeType":"YulIdentifier","src":"24065:5:101"},{"name":"end","nativeSrc":"24072:3:101","nodeType":"YulIdentifier","src":"24072:3:101"}],"functionName":{"name":"lt","nativeSrc":"24062:2:101","nodeType":"YulIdentifier","src":"24062:2:101"},"nativeSrc":"24062:14:101","nodeType":"YulFunctionCall","src":"24062:14:101"},"nativeSrc":"24055:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"24077:26:101","nodeType":"YulBlock","src":"24077:26:101","statements":[{"nativeSrc":"24079:22:101","nodeType":"YulAssignment","src":"24079:22:101","value":{"arguments":[{"name":"start","nativeSrc":"24092:5:101","nodeType":"YulIdentifier","src":"24092:5:101"},{"kind":"number","nativeSrc":"24099:1:101","nodeType":"YulLiteral","src":"24099:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24088:3:101","nodeType":"YulIdentifier","src":"24088:3:101"},"nativeSrc":"24088:13:101","nodeType":"YulFunctionCall","src":"24088:13:101"},"variableNames":[{"name":"start","nativeSrc":"24079:5:101","nodeType":"YulIdentifier","src":"24079:5:101"}]}]},"pre":{"nativeSrc":"24059:2:101","nodeType":"YulBlock","src":"24059:2:101","statements":[]},"src":"24055:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"23995:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"24033:5:101","nodeType":"YulTypedName","src":"24033:5:101","type":""},{"name":"end","nativeSrc":"24040:3:101","nodeType":"YulTypedName","src":"24040:3:101","type":""}],"src":"23995:186:101"},{"body":{"nativeSrc":"24266:464:101","nodeType":"YulBlock","src":"24266:464:101","statements":[{"body":{"nativeSrc":"24292:431:101","nodeType":"YulBlock","src":"24292:431:101","statements":[{"nativeSrc":"24306:54:101","nodeType":"YulVariableDeclaration","src":"24306:54:101","value":{"arguments":[{"name":"array","nativeSrc":"24354:5:101","nodeType":"YulIdentifier","src":"24354:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"24322:31:101","nodeType":"YulIdentifier","src":"24322:31:101"},"nativeSrc":"24322:38:101","nodeType":"YulFunctionCall","src":"24322:38:101"},"variables":[{"name":"dataArea","nativeSrc":"24310:8:101","nodeType":"YulTypedName","src":"24310:8:101","type":""}]},{"nativeSrc":"24373:63:101","nodeType":"YulVariableDeclaration","src":"24373:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"24396:8:101","nodeType":"YulIdentifier","src":"24396:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"24424:10:101","nodeType":"YulIdentifier","src":"24424:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"24406:17:101","nodeType":"YulIdentifier","src":"24406:17:101"},"nativeSrc":"24406:29:101","nodeType":"YulFunctionCall","src":"24406:29:101"}],"functionName":{"name":"add","nativeSrc":"24392:3:101","nodeType":"YulIdentifier","src":"24392:3:101"},"nativeSrc":"24392:44:101","nodeType":"YulFunctionCall","src":"24392:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"24377:11:101","nodeType":"YulTypedName","src":"24377:11:101","type":""}]},{"body":{"nativeSrc":"24593:27:101","nodeType":"YulBlock","src":"24593:27:101","statements":[{"nativeSrc":"24595:23:101","nodeType":"YulAssignment","src":"24595:23:101","value":{"name":"dataArea","nativeSrc":"24610:8:101","nodeType":"YulIdentifier","src":"24610:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"24595:11:101","nodeType":"YulIdentifier","src":"24595:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"24577:10:101","nodeType":"YulIdentifier","src":"24577:10:101"},{"kind":"number","nativeSrc":"24589:2:101","nodeType":"YulLiteral","src":"24589:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"24574:2:101","nodeType":"YulIdentifier","src":"24574:2:101"},"nativeSrc":"24574:18:101","nodeType":"YulFunctionCall","src":"24574:18:101"},"nativeSrc":"24571:49:101","nodeType":"YulIf","src":"24571:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"24662:11:101","nodeType":"YulIdentifier","src":"24662:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"24679:8:101","nodeType":"YulIdentifier","src":"24679:8:101"},{"arguments":[{"name":"len","nativeSrc":"24707:3:101","nodeType":"YulIdentifier","src":"24707:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"24689:17:101","nodeType":"YulIdentifier","src":"24689:17:101"},"nativeSrc":"24689:22:101","nodeType":"YulFunctionCall","src":"24689:22:101"}],"functionName":{"name":"add","nativeSrc":"24675:3:101","nodeType":"YulIdentifier","src":"24675:3:101"},"nativeSrc":"24675:37:101","nodeType":"YulFunctionCall","src":"24675:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"24633:28:101","nodeType":"YulIdentifier","src":"24633:28:101"},"nativeSrc":"24633:80:101","nodeType":"YulFunctionCall","src":"24633:80:101"},"nativeSrc":"24633:80:101","nodeType":"YulExpressionStatement","src":"24633:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"24283:3:101","nodeType":"YulIdentifier","src":"24283:3:101"},{"kind":"number","nativeSrc":"24288:2:101","nodeType":"YulLiteral","src":"24288:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"24280:2:101","nodeType":"YulIdentifier","src":"24280:2:101"},"nativeSrc":"24280:11:101","nodeType":"YulFunctionCall","src":"24280:11:101"},"nativeSrc":"24277:446:101","nodeType":"YulIf","src":"24277:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"24187:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"24242:5:101","nodeType":"YulTypedName","src":"24242:5:101","type":""},{"name":"len","nativeSrc":"24249:3:101","nodeType":"YulTypedName","src":"24249:3:101","type":""},{"name":"startIndex","nativeSrc":"24254:10:101","nodeType":"YulTypedName","src":"24254:10:101","type":""}],"src":"24187:543:101"},{"body":{"nativeSrc":"24799:54:101","nodeType":"YulBlock","src":"24799:54:101","statements":[{"nativeSrc":"24809:37:101","nodeType":"YulAssignment","src":"24809:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"24834:4:101","nodeType":"YulIdentifier","src":"24834:4:101"},{"name":"value","nativeSrc":"24840:5:101","nodeType":"YulIdentifier","src":"24840:5:101"}],"functionName":{"name":"shr","nativeSrc":"24830:3:101","nodeType":"YulIdentifier","src":"24830:3:101"},"nativeSrc":"24830:16:101","nodeType":"YulFunctionCall","src":"24830:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"24809:8:101","nodeType":"YulIdentifier","src":"24809:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"24736:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"24774:4:101","nodeType":"YulTypedName","src":"24774:4:101","type":""},{"name":"value","nativeSrc":"24780:5:101","nodeType":"YulTypedName","src":"24780:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"24790:8:101","nodeType":"YulTypedName","src":"24790:8:101","type":""}],"src":"24736:117:101"},{"body":{"nativeSrc":"24910:118:101","nodeType":"YulBlock","src":"24910:118:101","statements":[{"nativeSrc":"24920:68:101","nodeType":"YulVariableDeclaration","src":"24920:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24969:1:101","nodeType":"YulLiteral","src":"24969:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"24972:5:101","nodeType":"YulIdentifier","src":"24972:5:101"}],"functionName":{"name":"mul","nativeSrc":"24965:3:101","nodeType":"YulIdentifier","src":"24965:3:101"},"nativeSrc":"24965:13:101","nodeType":"YulFunctionCall","src":"24965:13:101"},{"arguments":[{"kind":"number","nativeSrc":"24984:1:101","nodeType":"YulLiteral","src":"24984:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"24980:3:101","nodeType":"YulIdentifier","src":"24980:3:101"},"nativeSrc":"24980:6:101","nodeType":"YulFunctionCall","src":"24980:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"24936:28:101","nodeType":"YulIdentifier","src":"24936:28:101"},"nativeSrc":"24936:51:101","nodeType":"YulFunctionCall","src":"24936:51:101"}],"functionName":{"name":"not","nativeSrc":"24932:3:101","nodeType":"YulIdentifier","src":"24932:3:101"},"nativeSrc":"24932:56:101","nodeType":"YulFunctionCall","src":"24932:56:101"},"variables":[{"name":"mask","nativeSrc":"24924:4:101","nodeType":"YulTypedName","src":"24924:4:101","type":""}]},{"nativeSrc":"24997:25:101","nodeType":"YulAssignment","src":"24997:25:101","value":{"arguments":[{"name":"data","nativeSrc":"25011:4:101","nodeType":"YulIdentifier","src":"25011:4:101"},{"name":"mask","nativeSrc":"25017:4:101","nodeType":"YulIdentifier","src":"25017:4:101"}],"functionName":{"name":"and","nativeSrc":"25007:3:101","nodeType":"YulIdentifier","src":"25007:3:101"},"nativeSrc":"25007:15:101","nodeType":"YulFunctionCall","src":"25007:15:101"},"variableNames":[{"name":"result","nativeSrc":"24997:6:101","nodeType":"YulIdentifier","src":"24997:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"24859:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"24887:4:101","nodeType":"YulTypedName","src":"24887:4:101","type":""},{"name":"bytes","nativeSrc":"24893:5:101","nodeType":"YulTypedName","src":"24893:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"24903:6:101","nodeType":"YulTypedName","src":"24903:6:101","type":""}],"src":"24859:169:101"},{"body":{"nativeSrc":"25114:214:101","nodeType":"YulBlock","src":"25114:214:101","statements":[{"nativeSrc":"25247:37:101","nodeType":"YulAssignment","src":"25247:37:101","value":{"arguments":[{"name":"data","nativeSrc":"25274:4:101","nodeType":"YulIdentifier","src":"25274:4:101"},{"name":"len","nativeSrc":"25280:3:101","nodeType":"YulIdentifier","src":"25280:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"25255:18:101","nodeType":"YulIdentifier","src":"25255:18:101"},"nativeSrc":"25255:29:101","nodeType":"YulFunctionCall","src":"25255:29:101"},"variableNames":[{"name":"data","nativeSrc":"25247:4:101","nodeType":"YulIdentifier","src":"25247:4:101"}]},{"nativeSrc":"25293:29:101","nodeType":"YulAssignment","src":"25293:29:101","value":{"arguments":[{"name":"data","nativeSrc":"25304:4:101","nodeType":"YulIdentifier","src":"25304:4:101"},{"arguments":[{"kind":"number","nativeSrc":"25314:1:101","nodeType":"YulLiteral","src":"25314:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"25317:3:101","nodeType":"YulIdentifier","src":"25317:3:101"}],"functionName":{"name":"mul","nativeSrc":"25310:3:101","nodeType":"YulIdentifier","src":"25310:3:101"},"nativeSrc":"25310:11:101","nodeType":"YulFunctionCall","src":"25310:11:101"}],"functionName":{"name":"or","nativeSrc":"25301:2:101","nodeType":"YulIdentifier","src":"25301:2:101"},"nativeSrc":"25301:21:101","nodeType":"YulFunctionCall","src":"25301:21:101"},"variableNames":[{"name":"used","nativeSrc":"25293:4:101","nodeType":"YulIdentifier","src":"25293:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"25033:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"25095:4:101","nodeType":"YulTypedName","src":"25095:4:101","type":""},{"name":"len","nativeSrc":"25101:3:101","nodeType":"YulTypedName","src":"25101:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"25109:4:101","nodeType":"YulTypedName","src":"25109:4:101","type":""}],"src":"25033:295:101"},{"body":{"nativeSrc":"25432:1304:101","nodeType":"YulBlock","src":"25432:1304:101","statements":[{"nativeSrc":"25443:58:101","nodeType":"YulVariableDeclaration","src":"25443:58:101","value":{"arguments":[{"name":"src","nativeSrc":"25492:3:101","nodeType":"YulIdentifier","src":"25492:3:101"},{"name":"len","nativeSrc":"25497:3:101","nodeType":"YulIdentifier","src":"25497:3:101"}],"functionName":{"name":"array_length_t_string_calldata_ptr","nativeSrc":"25457:34:101","nodeType":"YulIdentifier","src":"25457:34:101"},"nativeSrc":"25457:44:101","nodeType":"YulFunctionCall","src":"25457:44:101"},"variables":[{"name":"newLen","nativeSrc":"25447:6:101","nodeType":"YulTypedName","src":"25447:6:101","type":""}]},{"body":{"nativeSrc":"25586:22:101","nodeType":"YulBlock","src":"25586:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"25588:16:101","nodeType":"YulIdentifier","src":"25588:16:101"},"nativeSrc":"25588:18:101","nodeType":"YulFunctionCall","src":"25588:18:101"},"nativeSrc":"25588:18:101","nodeType":"YulExpressionStatement","src":"25588:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"25558:6:101","nodeType":"YulIdentifier","src":"25558:6:101"},{"kind":"number","nativeSrc":"25566:18:101","nodeType":"YulLiteral","src":"25566:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25555:2:101","nodeType":"YulIdentifier","src":"25555:2:101"},"nativeSrc":"25555:30:101","nodeType":"YulFunctionCall","src":"25555:30:101"},"nativeSrc":"25552:56:101","nodeType":"YulIf","src":"25552:56:101"},{"nativeSrc":"25618:52:101","nodeType":"YulVariableDeclaration","src":"25618:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"25664:4:101","nodeType":"YulIdentifier","src":"25664:4:101"}],"functionName":{"name":"sload","nativeSrc":"25658:5:101","nodeType":"YulIdentifier","src":"25658:5:101"},"nativeSrc":"25658:11:101","nodeType":"YulFunctionCall","src":"25658:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"25632:25:101","nodeType":"YulIdentifier","src":"25632:25:101"},"nativeSrc":"25632:38:101","nodeType":"YulFunctionCall","src":"25632:38:101"},"variables":[{"name":"oldLen","nativeSrc":"25622:6:101","nodeType":"YulTypedName","src":"25622:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25763:4:101","nodeType":"YulIdentifier","src":"25763:4:101"},{"name":"oldLen","nativeSrc":"25769:6:101","nodeType":"YulIdentifier","src":"25769:6:101"},{"name":"newLen","nativeSrc":"25777:6:101","nodeType":"YulIdentifier","src":"25777:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"25717:45:101","nodeType":"YulIdentifier","src":"25717:45:101"},"nativeSrc":"25717:67:101","nodeType":"YulFunctionCall","src":"25717:67:101"},"nativeSrc":"25717:67:101","nodeType":"YulExpressionStatement","src":"25717:67:101"},{"nativeSrc":"25794:18:101","nodeType":"YulVariableDeclaration","src":"25794:18:101","value":{"kind":"number","nativeSrc":"25811:1:101","nodeType":"YulLiteral","src":"25811:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"25798:9:101","nodeType":"YulTypedName","src":"25798:9:101","type":""}]},{"cases":[{"body":{"nativeSrc":"25859:625:101","nodeType":"YulBlock","src":"25859:625:101","statements":[{"nativeSrc":"25873:37:101","nodeType":"YulVariableDeclaration","src":"25873:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"25892:6:101","nodeType":"YulIdentifier","src":"25892:6:101"},{"arguments":[{"kind":"number","nativeSrc":"25904:4:101","nodeType":"YulLiteral","src":"25904:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"25900:3:101","nodeType":"YulIdentifier","src":"25900:3:101"},"nativeSrc":"25900:9:101","nodeType":"YulFunctionCall","src":"25900:9:101"}],"functionName":{"name":"and","nativeSrc":"25888:3:101","nodeType":"YulIdentifier","src":"25888:3:101"},"nativeSrc":"25888:22:101","nodeType":"YulFunctionCall","src":"25888:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"25877:7:101","nodeType":"YulTypedName","src":"25877:7:101","type":""}]},{"nativeSrc":"25924:51:101","nodeType":"YulVariableDeclaration","src":"25924:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"25970:4:101","nodeType":"YulIdentifier","src":"25970:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"25938:31:101","nodeType":"YulIdentifier","src":"25938:31:101"},"nativeSrc":"25938:37:101","nodeType":"YulFunctionCall","src":"25938:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"25928:6:101","nodeType":"YulTypedName","src":"25928:6:101","type":""}]},{"nativeSrc":"25988:10:101","nodeType":"YulVariableDeclaration","src":"25988:10:101","value":{"kind":"number","nativeSrc":"25997:1:101","nodeType":"YulLiteral","src":"25997:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"25992:1:101","nodeType":"YulTypedName","src":"25992:1:101","type":""}]},{"body":{"nativeSrc":"26056:170:101","nodeType":"YulBlock","src":"26056:170:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"26081:6:101","nodeType":"YulIdentifier","src":"26081:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"26106:3:101","nodeType":"YulIdentifier","src":"26106:3:101"},{"name":"srcOffset","nativeSrc":"26111:9:101","nodeType":"YulIdentifier","src":"26111:9:101"}],"functionName":{"name":"add","nativeSrc":"26102:3:101","nodeType":"YulIdentifier","src":"26102:3:101"},"nativeSrc":"26102:19:101","nodeType":"YulFunctionCall","src":"26102:19:101"}],"functionName":{"name":"calldataload","nativeSrc":"26089:12:101","nodeType":"YulIdentifier","src":"26089:12:101"},"nativeSrc":"26089:33:101","nodeType":"YulFunctionCall","src":"26089:33:101"}],"functionName":{"name":"sstore","nativeSrc":"26074:6:101","nodeType":"YulIdentifier","src":"26074:6:101"},"nativeSrc":"26074:49:101","nodeType":"YulFunctionCall","src":"26074:49:101"},"nativeSrc":"26074:49:101","nodeType":"YulExpressionStatement","src":"26074:49:101"},{"nativeSrc":"26140:24:101","nodeType":"YulAssignment","src":"26140:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"26154:6:101","nodeType":"YulIdentifier","src":"26154:6:101"},{"kind":"number","nativeSrc":"26162:1:101","nodeType":"YulLiteral","src":"26162:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26150:3:101","nodeType":"YulIdentifier","src":"26150:3:101"},"nativeSrc":"26150:14:101","nodeType":"YulFunctionCall","src":"26150:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"26140:6:101","nodeType":"YulIdentifier","src":"26140:6:101"}]},{"nativeSrc":"26181:31:101","nodeType":"YulAssignment","src":"26181:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"26198:9:101","nodeType":"YulIdentifier","src":"26198:9:101"},{"kind":"number","nativeSrc":"26209:2:101","nodeType":"YulLiteral","src":"26209:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26194:3:101","nodeType":"YulIdentifier","src":"26194:3:101"},"nativeSrc":"26194:18:101","nodeType":"YulFunctionCall","src":"26194:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"26181:9:101","nodeType":"YulIdentifier","src":"26181:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"26022:1:101","nodeType":"YulIdentifier","src":"26022:1:101"},{"name":"loopEnd","nativeSrc":"26025:7:101","nodeType":"YulIdentifier","src":"26025:7:101"}],"functionName":{"name":"lt","nativeSrc":"26019:2:101","nodeType":"YulIdentifier","src":"26019:2:101"},"nativeSrc":"26019:14:101","nodeType":"YulFunctionCall","src":"26019:14:101"},"nativeSrc":"26011:215:101","nodeType":"YulForLoop","post":{"nativeSrc":"26034:21:101","nodeType":"YulBlock","src":"26034:21:101","statements":[{"nativeSrc":"26036:17:101","nodeType":"YulAssignment","src":"26036:17:101","value":{"arguments":[{"name":"i","nativeSrc":"26045:1:101","nodeType":"YulIdentifier","src":"26045:1:101"},{"kind":"number","nativeSrc":"26048:4:101","nodeType":"YulLiteral","src":"26048:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26041:3:101","nodeType":"YulIdentifier","src":"26041:3:101"},"nativeSrc":"26041:12:101","nodeType":"YulFunctionCall","src":"26041:12:101"},"variableNames":[{"name":"i","nativeSrc":"26036:1:101","nodeType":"YulIdentifier","src":"26036:1:101"}]}]},"pre":{"nativeSrc":"26015:3:101","nodeType":"YulBlock","src":"26015:3:101","statements":[]},"src":"26011:215:101"},{"body":{"nativeSrc":"26262:163:101","nodeType":"YulBlock","src":"26262:163:101","statements":[{"nativeSrc":"26280:50:101","nodeType":"YulVariableDeclaration","src":"26280:50:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"26314:3:101","nodeType":"YulIdentifier","src":"26314:3:101"},{"name":"srcOffset","nativeSrc":"26319:9:101","nodeType":"YulIdentifier","src":"26319:9:101"}],"functionName":{"name":"add","nativeSrc":"26310:3:101","nodeType":"YulIdentifier","src":"26310:3:101"},"nativeSrc":"26310:19:101","nodeType":"YulFunctionCall","src":"26310:19:101"}],"functionName":{"name":"calldataload","nativeSrc":"26297:12:101","nodeType":"YulIdentifier","src":"26297:12:101"},"nativeSrc":"26297:33:101","nodeType":"YulFunctionCall","src":"26297:33:101"},"variables":[{"name":"lastValue","nativeSrc":"26284:9:101","nodeType":"YulTypedName","src":"26284:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"26354:6:101","nodeType":"YulIdentifier","src":"26354:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"26381:9:101","nodeType":"YulIdentifier","src":"26381:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"26396:6:101","nodeType":"YulIdentifier","src":"26396:6:101"},{"kind":"number","nativeSrc":"26404:4:101","nodeType":"YulLiteral","src":"26404:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"26392:3:101","nodeType":"YulIdentifier","src":"26392:3:101"},"nativeSrc":"26392:17:101","nodeType":"YulFunctionCall","src":"26392:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"26362:18:101","nodeType":"YulIdentifier","src":"26362:18:101"},"nativeSrc":"26362:48:101","nodeType":"YulFunctionCall","src":"26362:48:101"}],"functionName":{"name":"sstore","nativeSrc":"26347:6:101","nodeType":"YulIdentifier","src":"26347:6:101"},"nativeSrc":"26347:64:101","nodeType":"YulFunctionCall","src":"26347:64:101"},"nativeSrc":"26347:64:101","nodeType":"YulExpressionStatement","src":"26347:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"26245:7:101","nodeType":"YulIdentifier","src":"26245:7:101"},{"name":"newLen","nativeSrc":"26254:6:101","nodeType":"YulIdentifier","src":"26254:6:101"}],"functionName":{"name":"lt","nativeSrc":"26242:2:101","nodeType":"YulIdentifier","src":"26242:2:101"},"nativeSrc":"26242:19:101","nodeType":"YulFunctionCall","src":"26242:19:101"},"nativeSrc":"26239:186:101","nodeType":"YulIf","src":"26239:186:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"26445:4:101","nodeType":"YulIdentifier","src":"26445:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"26459:6:101","nodeType":"YulIdentifier","src":"26459:6:101"},{"kind":"number","nativeSrc":"26467:1:101","nodeType":"YulLiteral","src":"26467:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"26455:3:101","nodeType":"YulIdentifier","src":"26455:3:101"},"nativeSrc":"26455:14:101","nodeType":"YulFunctionCall","src":"26455:14:101"},{"kind":"number","nativeSrc":"26471:1:101","nodeType":"YulLiteral","src":"26471:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26451:3:101","nodeType":"YulIdentifier","src":"26451:3:101"},"nativeSrc":"26451:22:101","nodeType":"YulFunctionCall","src":"26451:22:101"}],"functionName":{"name":"sstore","nativeSrc":"26438:6:101","nodeType":"YulIdentifier","src":"26438:6:101"},"nativeSrc":"26438:36:101","nodeType":"YulFunctionCall","src":"26438:36:101"},"nativeSrc":"26438:36:101","nodeType":"YulExpressionStatement","src":"26438:36:101"}]},"nativeSrc":"25852:632:101","nodeType":"YulCase","src":"25852:632:101","value":{"kind":"number","nativeSrc":"25857:1:101","nodeType":"YulLiteral","src":"25857:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"26501:229:101","nodeType":"YulBlock","src":"26501:229:101","statements":[{"nativeSrc":"26515:14:101","nodeType":"YulVariableDeclaration","src":"26515:14:101","value":{"kind":"number","nativeSrc":"26528:1:101","nodeType":"YulLiteral","src":"26528:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"26519:5:101","nodeType":"YulTypedName","src":"26519:5:101","type":""}]},{"body":{"nativeSrc":"26552:74:101","nodeType":"YulBlock","src":"26552:74:101","statements":[{"nativeSrc":"26570:42:101","nodeType":"YulAssignment","src":"26570:42:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"26596:3:101","nodeType":"YulIdentifier","src":"26596:3:101"},{"name":"srcOffset","nativeSrc":"26601:9:101","nodeType":"YulIdentifier","src":"26601:9:101"}],"functionName":{"name":"add","nativeSrc":"26592:3:101","nodeType":"YulIdentifier","src":"26592:3:101"},"nativeSrc":"26592:19:101","nodeType":"YulFunctionCall","src":"26592:19:101"}],"functionName":{"name":"calldataload","nativeSrc":"26579:12:101","nodeType":"YulIdentifier","src":"26579:12:101"},"nativeSrc":"26579:33:101","nodeType":"YulFunctionCall","src":"26579:33:101"},"variableNames":[{"name":"value","nativeSrc":"26570:5:101","nodeType":"YulIdentifier","src":"26570:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"26545:6:101","nodeType":"YulIdentifier","src":"26545:6:101"},"nativeSrc":"26542:84:101","nodeType":"YulIf","src":"26542:84:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"26646:4:101","nodeType":"YulIdentifier","src":"26646:4:101"},{"arguments":[{"name":"value","nativeSrc":"26705:5:101","nodeType":"YulIdentifier","src":"26705:5:101"},{"name":"newLen","nativeSrc":"26712:6:101","nodeType":"YulIdentifier","src":"26712:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"26652:52:101","nodeType":"YulIdentifier","src":"26652:52:101"},"nativeSrc":"26652:67:101","nodeType":"YulFunctionCall","src":"26652:67:101"}],"functionName":{"name":"sstore","nativeSrc":"26639:6:101","nodeType":"YulIdentifier","src":"26639:6:101"},"nativeSrc":"26639:81:101","nodeType":"YulFunctionCall","src":"26639:81:101"},"nativeSrc":"26639:81:101","nodeType":"YulExpressionStatement","src":"26639:81:101"}]},"nativeSrc":"26493:237:101","nodeType":"YulCase","src":"26493:237:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"25832:6:101","nodeType":"YulIdentifier","src":"25832:6:101"},{"kind":"number","nativeSrc":"25840:2:101","nodeType":"YulLiteral","src":"25840:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"25829:2:101","nodeType":"YulIdentifier","src":"25829:2:101"},"nativeSrc":"25829:14:101","nodeType":"YulFunctionCall","src":"25829:14:101"},"nativeSrc":"25822:908:101","nodeType":"YulSwitch","src":"25822:908:101"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nativeSrc":"25333:1403:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"25416:4:101","nodeType":"YulTypedName","src":"25416:4:101","type":""},{"name":"src","nativeSrc":"25422:3:101","nodeType":"YulTypedName","src":"25422:3:101","type":""},{"name":"len","nativeSrc":"25427:3:101","nodeType":"YulTypedName","src":"25427:3:101","type":""}],"src":"25333:1403:101"},{"body":{"nativeSrc":"26868:215:101","nodeType":"YulBlock","src":"26868:215:101","statements":[{"nativeSrc":"26878:78:101","nodeType":"YulAssignment","src":"26878:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"26944:3:101","nodeType":"YulIdentifier","src":"26944:3:101"},{"name":"length","nativeSrc":"26949:6:101","nodeType":"YulIdentifier","src":"26949:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"26885:58:101","nodeType":"YulIdentifier","src":"26885:58:101"},"nativeSrc":"26885:71:101","nodeType":"YulFunctionCall","src":"26885:71:101"},"variableNames":[{"name":"pos","nativeSrc":"26878:3:101","nodeType":"YulIdentifier","src":"26878:3:101"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"27003:5:101","nodeType":"YulIdentifier","src":"27003:5:101"},{"name":"pos","nativeSrc":"27010:3:101","nodeType":"YulIdentifier","src":"27010:3:101"},{"name":"length","nativeSrc":"27015:6:101","nodeType":"YulIdentifier","src":"27015:6:101"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"26966:36:101","nodeType":"YulIdentifier","src":"26966:36:101"},"nativeSrc":"26966:56:101","nodeType":"YulFunctionCall","src":"26966:56:101"},"nativeSrc":"26966:56:101","nodeType":"YulExpressionStatement","src":"26966:56:101"},{"nativeSrc":"27031:46:101","nodeType":"YulAssignment","src":"27031:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"27042:3:101","nodeType":"YulIdentifier","src":"27042:3:101"},{"arguments":[{"name":"length","nativeSrc":"27069:6:101","nodeType":"YulIdentifier","src":"27069:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"27047:21:101","nodeType":"YulIdentifier","src":"27047:21:101"},"nativeSrc":"27047:29:101","nodeType":"YulFunctionCall","src":"27047:29:101"}],"functionName":{"name":"add","nativeSrc":"27038:3:101","nodeType":"YulIdentifier","src":"27038:3:101"},"nativeSrc":"27038:39:101","nodeType":"YulFunctionCall","src":"27038:39:101"},"variableNames":[{"name":"end","nativeSrc":"27031:3:101","nodeType":"YulIdentifier","src":"27031:3:101"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"26766:317:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"26841:5:101","nodeType":"YulTypedName","src":"26841:5:101","type":""},{"name":"length","nativeSrc":"26848:6:101","nodeType":"YulTypedName","src":"26848:6:101","type":""},{"name":"pos","nativeSrc":"26856:3:101","nodeType":"YulTypedName","src":"26856:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26864:3:101","nodeType":"YulTypedName","src":"26864:3:101","type":""}],"src":"26766:317:101"},{"body":{"nativeSrc":"27217:205:101","nodeType":"YulBlock","src":"27217:205:101","statements":[{"nativeSrc":"27227:26:101","nodeType":"YulAssignment","src":"27227:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"27239:9:101","nodeType":"YulIdentifier","src":"27239:9:101"},{"kind":"number","nativeSrc":"27250:2:101","nodeType":"YulLiteral","src":"27250:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27235:3:101","nodeType":"YulIdentifier","src":"27235:3:101"},"nativeSrc":"27235:18:101","nodeType":"YulFunctionCall","src":"27235:18:101"},"variableNames":[{"name":"tail","nativeSrc":"27227:4:101","nodeType":"YulIdentifier","src":"27227:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27274:9:101","nodeType":"YulIdentifier","src":"27274:9:101"},{"kind":"number","nativeSrc":"27285:1:101","nodeType":"YulLiteral","src":"27285:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27270:3:101","nodeType":"YulIdentifier","src":"27270:3:101"},"nativeSrc":"27270:17:101","nodeType":"YulFunctionCall","src":"27270:17:101"},{"arguments":[{"name":"tail","nativeSrc":"27293:4:101","nodeType":"YulIdentifier","src":"27293:4:101"},{"name":"headStart","nativeSrc":"27299:9:101","nodeType":"YulIdentifier","src":"27299:9:101"}],"functionName":{"name":"sub","nativeSrc":"27289:3:101","nodeType":"YulIdentifier","src":"27289:3:101"},"nativeSrc":"27289:20:101","nodeType":"YulFunctionCall","src":"27289:20:101"}],"functionName":{"name":"mstore","nativeSrc":"27263:6:101","nodeType":"YulIdentifier","src":"27263:6:101"},"nativeSrc":"27263:47:101","nodeType":"YulFunctionCall","src":"27263:47:101"},"nativeSrc":"27263:47:101","nodeType":"YulExpressionStatement","src":"27263:47:101"},{"nativeSrc":"27319:96:101","nodeType":"YulAssignment","src":"27319:96:101","value":{"arguments":[{"name":"value0","nativeSrc":"27393:6:101","nodeType":"YulIdentifier","src":"27393:6:101"},{"name":"value1","nativeSrc":"27401:6:101","nodeType":"YulIdentifier","src":"27401:6:101"},{"name":"tail","nativeSrc":"27410:4:101","nodeType":"YulIdentifier","src":"27410:4:101"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"27327:65:101","nodeType":"YulIdentifier","src":"27327:65:101"},"nativeSrc":"27327:88:101","nodeType":"YulFunctionCall","src":"27327:88:101"},"variableNames":[{"name":"tail","nativeSrc":"27319:4:101","nodeType":"YulIdentifier","src":"27319:4:101"}]}]},"name":"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27089:333:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27181:9:101","nodeType":"YulTypedName","src":"27181:9:101","type":""},{"name":"value1","nativeSrc":"27193:6:101","nodeType":"YulTypedName","src":"27193:6:101","type":""},{"name":"value0","nativeSrc":"27201:6:101","nodeType":"YulTypedName","src":"27201:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27212:4:101","nodeType":"YulTypedName","src":"27212:4:101","type":""}],"src":"27089:333:101"},{"body":{"nativeSrc":"27534:76:101","nodeType":"YulBlock","src":"27534:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"27556:6:101","nodeType":"YulIdentifier","src":"27556:6:101"},{"kind":"number","nativeSrc":"27564:1:101","nodeType":"YulLiteral","src":"27564:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27552:3:101","nodeType":"YulIdentifier","src":"27552:3:101"},"nativeSrc":"27552:14:101","nodeType":"YulFunctionCall","src":"27552:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"27568:34:101","nodeType":"YulLiteral","src":"27568:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"27545:6:101","nodeType":"YulIdentifier","src":"27545:6:101"},"nativeSrc":"27545:58:101","nodeType":"YulFunctionCall","src":"27545:58:101"},"nativeSrc":"27545:58:101","nodeType":"YulExpressionStatement","src":"27545:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"27428:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"27526:6:101","nodeType":"YulTypedName","src":"27526:6:101","type":""}],"src":"27428:182:101"},{"body":{"nativeSrc":"27762:220:101","nodeType":"YulBlock","src":"27762:220:101","statements":[{"nativeSrc":"27772:74:101","nodeType":"YulAssignment","src":"27772:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"27838:3:101","nodeType":"YulIdentifier","src":"27838:3:101"},{"kind":"number","nativeSrc":"27843:2:101","nodeType":"YulLiteral","src":"27843:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"27779:58:101","nodeType":"YulIdentifier","src":"27779:58:101"},"nativeSrc":"27779:67:101","nodeType":"YulFunctionCall","src":"27779:67:101"},"variableNames":[{"name":"pos","nativeSrc":"27772:3:101","nodeType":"YulIdentifier","src":"27772:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"27944:3:101","nodeType":"YulIdentifier","src":"27944:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"27855:88:101","nodeType":"YulIdentifier","src":"27855:88:101"},"nativeSrc":"27855:93:101","nodeType":"YulFunctionCall","src":"27855:93:101"},"nativeSrc":"27855:93:101","nodeType":"YulExpressionStatement","src":"27855:93:101"},{"nativeSrc":"27957:19:101","nodeType":"YulAssignment","src":"27957:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"27968:3:101","nodeType":"YulIdentifier","src":"27968:3:101"},{"kind":"number","nativeSrc":"27973:2:101","nodeType":"YulLiteral","src":"27973:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27964:3:101","nodeType":"YulIdentifier","src":"27964:3:101"},"nativeSrc":"27964:12:101","nodeType":"YulFunctionCall","src":"27964:12:101"},"variableNames":[{"name":"end","nativeSrc":"27957:3:101","nodeType":"YulIdentifier","src":"27957:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"27616:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"27750:3:101","nodeType":"YulTypedName","src":"27750:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"27758:3:101","nodeType":"YulTypedName","src":"27758:3:101","type":""}],"src":"27616:366:101"},{"body":{"nativeSrc":"28159:248:101","nodeType":"YulBlock","src":"28159:248:101","statements":[{"nativeSrc":"28169:26:101","nodeType":"YulAssignment","src":"28169:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"28181:9:101","nodeType":"YulIdentifier","src":"28181:9:101"},{"kind":"number","nativeSrc":"28192:2:101","nodeType":"YulLiteral","src":"28192:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28177:3:101","nodeType":"YulIdentifier","src":"28177:3:101"},"nativeSrc":"28177:18:101","nodeType":"YulFunctionCall","src":"28177:18:101"},"variableNames":[{"name":"tail","nativeSrc":"28169:4:101","nodeType":"YulIdentifier","src":"28169:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28216:9:101","nodeType":"YulIdentifier","src":"28216:9:101"},{"kind":"number","nativeSrc":"28227:1:101","nodeType":"YulLiteral","src":"28227:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28212:3:101","nodeType":"YulIdentifier","src":"28212:3:101"},"nativeSrc":"28212:17:101","nodeType":"YulFunctionCall","src":"28212:17:101"},{"arguments":[{"name":"tail","nativeSrc":"28235:4:101","nodeType":"YulIdentifier","src":"28235:4:101"},{"name":"headStart","nativeSrc":"28241:9:101","nodeType":"YulIdentifier","src":"28241:9:101"}],"functionName":{"name":"sub","nativeSrc":"28231:3:101","nodeType":"YulIdentifier","src":"28231:3:101"},"nativeSrc":"28231:20:101","nodeType":"YulFunctionCall","src":"28231:20:101"}],"functionName":{"name":"mstore","nativeSrc":"28205:6:101","nodeType":"YulIdentifier","src":"28205:6:101"},"nativeSrc":"28205:47:101","nodeType":"YulFunctionCall","src":"28205:47:101"},"nativeSrc":"28205:47:101","nodeType":"YulExpressionStatement","src":"28205:47:101"},{"nativeSrc":"28261:139:101","nodeType":"YulAssignment","src":"28261:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"28395:4:101","nodeType":"YulIdentifier","src":"28395:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"28269:124:101","nodeType":"YulIdentifier","src":"28269:124:101"},"nativeSrc":"28269:131:101","nodeType":"YulFunctionCall","src":"28269:131:101"},"variableNames":[{"name":"tail","nativeSrc":"28261:4:101","nodeType":"YulIdentifier","src":"28261:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27988:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28139:9:101","nodeType":"YulTypedName","src":"28139:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28154:4:101","nodeType":"YulTypedName","src":"28154:4:101","type":""}],"src":"27988:419:101"},{"body":{"nativeSrc":"28519:118:101","nodeType":"YulBlock","src":"28519:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"28541:6:101","nodeType":"YulIdentifier","src":"28541:6:101"},{"kind":"number","nativeSrc":"28549:1:101","nodeType":"YulLiteral","src":"28549:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28537:3:101","nodeType":"YulIdentifier","src":"28537:3:101"},"nativeSrc":"28537:14:101","nodeType":"YulFunctionCall","src":"28537:14:101"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"28553:34:101","nodeType":"YulLiteral","src":"28553:34:101","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"28530:6:101","nodeType":"YulIdentifier","src":"28530:6:101"},"nativeSrc":"28530:58:101","nodeType":"YulFunctionCall","src":"28530:58:101"},"nativeSrc":"28530:58:101","nodeType":"YulExpressionStatement","src":"28530:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"28609:6:101","nodeType":"YulIdentifier","src":"28609:6:101"},{"kind":"number","nativeSrc":"28617:2:101","nodeType":"YulLiteral","src":"28617:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28605:3:101","nodeType":"YulIdentifier","src":"28605:3:101"},"nativeSrc":"28605:15:101","nodeType":"YulFunctionCall","src":"28605:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"28622:7:101","nodeType":"YulLiteral","src":"28622:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"28598:6:101","nodeType":"YulIdentifier","src":"28598:6:101"},"nativeSrc":"28598:32:101","nodeType":"YulFunctionCall","src":"28598:32:101"},"nativeSrc":"28598:32:101","nodeType":"YulExpressionStatement","src":"28598:32:101"}]},"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"28413:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"28511:6:101","nodeType":"YulTypedName","src":"28511:6:101","type":""}],"src":"28413:224:101"},{"body":{"nativeSrc":"28789:220:101","nodeType":"YulBlock","src":"28789:220:101","statements":[{"nativeSrc":"28799:74:101","nodeType":"YulAssignment","src":"28799:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"28865:3:101","nodeType":"YulIdentifier","src":"28865:3:101"},{"kind":"number","nativeSrc":"28870:2:101","nodeType":"YulLiteral","src":"28870:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"28806:58:101","nodeType":"YulIdentifier","src":"28806:58:101"},"nativeSrc":"28806:67:101","nodeType":"YulFunctionCall","src":"28806:67:101"},"variableNames":[{"name":"pos","nativeSrc":"28799:3:101","nodeType":"YulIdentifier","src":"28799:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"28971:3:101","nodeType":"YulIdentifier","src":"28971:3:101"}],"functionName":{"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"28882:88:101","nodeType":"YulIdentifier","src":"28882:88:101"},"nativeSrc":"28882:93:101","nodeType":"YulFunctionCall","src":"28882:93:101"},"nativeSrc":"28882:93:101","nodeType":"YulExpressionStatement","src":"28882:93:101"},{"nativeSrc":"28984:19:101","nodeType":"YulAssignment","src":"28984:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"28995:3:101","nodeType":"YulIdentifier","src":"28995:3:101"},{"kind":"number","nativeSrc":"29000:2:101","nodeType":"YulLiteral","src":"29000:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28991:3:101","nodeType":"YulIdentifier","src":"28991:3:101"},"nativeSrc":"28991:12:101","nodeType":"YulFunctionCall","src":"28991:12:101"},"variableNames":[{"name":"end","nativeSrc":"28984:3:101","nodeType":"YulIdentifier","src":"28984:3:101"}]}]},"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"28643:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"28777:3:101","nodeType":"YulTypedName","src":"28777:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"28785:3:101","nodeType":"YulTypedName","src":"28785:3:101","type":""}],"src":"28643:366:101"},{"body":{"nativeSrc":"29186:248:101","nodeType":"YulBlock","src":"29186:248:101","statements":[{"nativeSrc":"29196:26:101","nodeType":"YulAssignment","src":"29196:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"29208:9:101","nodeType":"YulIdentifier","src":"29208:9:101"},{"kind":"number","nativeSrc":"29219:2:101","nodeType":"YulLiteral","src":"29219:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29204:3:101","nodeType":"YulIdentifier","src":"29204:3:101"},"nativeSrc":"29204:18:101","nodeType":"YulFunctionCall","src":"29204:18:101"},"variableNames":[{"name":"tail","nativeSrc":"29196:4:101","nodeType":"YulIdentifier","src":"29196:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29243:9:101","nodeType":"YulIdentifier","src":"29243:9:101"},{"kind":"number","nativeSrc":"29254:1:101","nodeType":"YulLiteral","src":"29254:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29239:3:101","nodeType":"YulIdentifier","src":"29239:3:101"},"nativeSrc":"29239:17:101","nodeType":"YulFunctionCall","src":"29239:17:101"},{"arguments":[{"name":"tail","nativeSrc":"29262:4:101","nodeType":"YulIdentifier","src":"29262:4:101"},{"name":"headStart","nativeSrc":"29268:9:101","nodeType":"YulIdentifier","src":"29268:9:101"}],"functionName":{"name":"sub","nativeSrc":"29258:3:101","nodeType":"YulIdentifier","src":"29258:3:101"},"nativeSrc":"29258:20:101","nodeType":"YulFunctionCall","src":"29258:20:101"}],"functionName":{"name":"mstore","nativeSrc":"29232:6:101","nodeType":"YulIdentifier","src":"29232:6:101"},"nativeSrc":"29232:47:101","nodeType":"YulFunctionCall","src":"29232:47:101"},"nativeSrc":"29232:47:101","nodeType":"YulExpressionStatement","src":"29232:47:101"},{"nativeSrc":"29288:139:101","nodeType":"YulAssignment","src":"29288:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"29422:4:101","nodeType":"YulIdentifier","src":"29422:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"29296:124:101","nodeType":"YulIdentifier","src":"29296:124:101"},"nativeSrc":"29296:131:101","nodeType":"YulFunctionCall","src":"29296:131:101"},"variableNames":[{"name":"tail","nativeSrc":"29288:4:101","nodeType":"YulIdentifier","src":"29288:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29015:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29166:9:101","nodeType":"YulTypedName","src":"29166:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29181:4:101","nodeType":"YulTypedName","src":"29181:4:101","type":""}],"src":"29015:419:101"},{"body":{"nativeSrc":"29566:206:101","nodeType":"YulBlock","src":"29566:206:101","statements":[{"nativeSrc":"29576:26:101","nodeType":"YulAssignment","src":"29576:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"29588:9:101","nodeType":"YulIdentifier","src":"29588:9:101"},{"kind":"number","nativeSrc":"29599:2:101","nodeType":"YulLiteral","src":"29599:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29584:3:101","nodeType":"YulIdentifier","src":"29584:3:101"},"nativeSrc":"29584:18:101","nodeType":"YulFunctionCall","src":"29584:18:101"},"variableNames":[{"name":"tail","nativeSrc":"29576:4:101","nodeType":"YulIdentifier","src":"29576:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29656:6:101","nodeType":"YulIdentifier","src":"29656:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"29669:9:101","nodeType":"YulIdentifier","src":"29669:9:101"},{"kind":"number","nativeSrc":"29680:1:101","nodeType":"YulLiteral","src":"29680:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29665:3:101","nodeType":"YulIdentifier","src":"29665:3:101"},"nativeSrc":"29665:17:101","nodeType":"YulFunctionCall","src":"29665:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29612:43:101","nodeType":"YulIdentifier","src":"29612:43:101"},"nativeSrc":"29612:71:101","nodeType":"YulFunctionCall","src":"29612:71:101"},"nativeSrc":"29612:71:101","nodeType":"YulExpressionStatement","src":"29612:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29737:6:101","nodeType":"YulIdentifier","src":"29737:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"29750:9:101","nodeType":"YulIdentifier","src":"29750:9:101"},{"kind":"number","nativeSrc":"29761:2:101","nodeType":"YulLiteral","src":"29761:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29746:3:101","nodeType":"YulIdentifier","src":"29746:3:101"},"nativeSrc":"29746:18:101","nodeType":"YulFunctionCall","src":"29746:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29693:43:101","nodeType":"YulIdentifier","src":"29693:43:101"},"nativeSrc":"29693:72:101","nodeType":"YulFunctionCall","src":"29693:72:101"},"nativeSrc":"29693:72:101","nodeType":"YulExpressionStatement","src":"29693:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"29440:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29530:9:101","nodeType":"YulTypedName","src":"29530:9:101","type":""},{"name":"value1","nativeSrc":"29542:6:101","nodeType":"YulTypedName","src":"29542:6:101","type":""},{"name":"value0","nativeSrc":"29550:6:101","nodeType":"YulTypedName","src":"29550:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29561:4:101","nodeType":"YulTypedName","src":"29561:4:101","type":""}],"src":"29440:332:101"},{"body":{"nativeSrc":"29884:47:101","nodeType":"YulBlock","src":"29884:47:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"29906:6:101","nodeType":"YulIdentifier","src":"29906:6:101"},{"kind":"number","nativeSrc":"29914:1:101","nodeType":"YulLiteral","src":"29914:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29902:3:101","nodeType":"YulIdentifier","src":"29902:3:101"},"nativeSrc":"29902:14:101","nodeType":"YulFunctionCall","src":"29902:14:101"},{"hexValue":"555344","kind":"string","nativeSrc":"29918:5:101","nodeType":"YulLiteral","src":"29918:5:101","type":"","value":"USD"}],"functionName":{"name":"mstore","nativeSrc":"29895:6:101","nodeType":"YulIdentifier","src":"29895:6:101"},"nativeSrc":"29895:29:101","nodeType":"YulFunctionCall","src":"29895:29:101"},"nativeSrc":"29895:29:101","nodeType":"YulExpressionStatement","src":"29895:29:101"}]},"name":"store_literal_in_memory_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e","nativeSrc":"29778:153:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"29876:6:101","nodeType":"YulTypedName","src":"29876:6:101","type":""}],"src":"29778:153:101"},{"body":{"nativeSrc":"30083:219:101","nodeType":"YulBlock","src":"30083:219:101","statements":[{"nativeSrc":"30093:73:101","nodeType":"YulAssignment","src":"30093:73:101","value":{"arguments":[{"name":"pos","nativeSrc":"30159:3:101","nodeType":"YulIdentifier","src":"30159:3:101"},{"kind":"number","nativeSrc":"30164:1:101","nodeType":"YulLiteral","src":"30164:1:101","type":"","value":"3"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"30100:58:101","nodeType":"YulIdentifier","src":"30100:58:101"},"nativeSrc":"30100:66:101","nodeType":"YulFunctionCall","src":"30100:66:101"},"variableNames":[{"name":"pos","nativeSrc":"30093:3:101","nodeType":"YulIdentifier","src":"30093:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"30264:3:101","nodeType":"YulIdentifier","src":"30264:3:101"}],"functionName":{"name":"store_literal_in_memory_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e","nativeSrc":"30175:88:101","nodeType":"YulIdentifier","src":"30175:88:101"},"nativeSrc":"30175:93:101","nodeType":"YulFunctionCall","src":"30175:93:101"},"nativeSrc":"30175:93:101","nodeType":"YulExpressionStatement","src":"30175:93:101"},{"nativeSrc":"30277:19:101","nodeType":"YulAssignment","src":"30277:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"30288:3:101","nodeType":"YulIdentifier","src":"30288:3:101"},{"kind":"number","nativeSrc":"30293:2:101","nodeType":"YulLiteral","src":"30293:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30284:3:101","nodeType":"YulIdentifier","src":"30284:3:101"},"nativeSrc":"30284:12:101","nodeType":"YulFunctionCall","src":"30284:12:101"},"variableNames":[{"name":"end","nativeSrc":"30277:3:101","nodeType":"YulIdentifier","src":"30277:3:101"}]}]},"name":"abi_encode_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e_to_t_string_memory_ptr_fromStack","nativeSrc":"29937:365:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30071:3:101","nodeType":"YulTypedName","src":"30071:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30079:3:101","nodeType":"YulTypedName","src":"30079:3:101","type":""}],"src":"29937:365:101"},{"body":{"nativeSrc":"30527:401:101","nodeType":"YulBlock","src":"30527:401:101","statements":[{"nativeSrc":"30537:26:101","nodeType":"YulAssignment","src":"30537:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"30549:9:101","nodeType":"YulIdentifier","src":"30549:9:101"},{"kind":"number","nativeSrc":"30560:2:101","nodeType":"YulLiteral","src":"30560:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30545:3:101","nodeType":"YulIdentifier","src":"30545:3:101"},"nativeSrc":"30545:18:101","nodeType":"YulFunctionCall","src":"30545:18:101"},"variableNames":[{"name":"tail","nativeSrc":"30537:4:101","nodeType":"YulIdentifier","src":"30537:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30584:9:101","nodeType":"YulIdentifier","src":"30584:9:101"},{"kind":"number","nativeSrc":"30595:1:101","nodeType":"YulLiteral","src":"30595:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30580:3:101","nodeType":"YulIdentifier","src":"30580:3:101"},"nativeSrc":"30580:17:101","nodeType":"YulFunctionCall","src":"30580:17:101"},{"arguments":[{"name":"tail","nativeSrc":"30603:4:101","nodeType":"YulIdentifier","src":"30603:4:101"},{"name":"headStart","nativeSrc":"30609:9:101","nodeType":"YulIdentifier","src":"30609:9:101"}],"functionName":{"name":"sub","nativeSrc":"30599:3:101","nodeType":"YulIdentifier","src":"30599:3:101"},"nativeSrc":"30599:20:101","nodeType":"YulFunctionCall","src":"30599:20:101"}],"functionName":{"name":"mstore","nativeSrc":"30573:6:101","nodeType":"YulIdentifier","src":"30573:6:101"},"nativeSrc":"30573:47:101","nodeType":"YulFunctionCall","src":"30573:47:101"},"nativeSrc":"30573:47:101","nodeType":"YulExpressionStatement","src":"30573:47:101"},{"nativeSrc":"30629:86:101","nodeType":"YulAssignment","src":"30629:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"30701:6:101","nodeType":"YulIdentifier","src":"30701:6:101"},{"name":"tail","nativeSrc":"30710:4:101","nodeType":"YulIdentifier","src":"30710:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"30637:63:101","nodeType":"YulIdentifier","src":"30637:63:101"},"nativeSrc":"30637:78:101","nodeType":"YulFunctionCall","src":"30637:78:101"},"variableNames":[{"name":"tail","nativeSrc":"30629:4:101","nodeType":"YulIdentifier","src":"30629:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30736:9:101","nodeType":"YulIdentifier","src":"30736:9:101"},{"kind":"number","nativeSrc":"30747:2:101","nodeType":"YulLiteral","src":"30747:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30732:3:101","nodeType":"YulIdentifier","src":"30732:3:101"},"nativeSrc":"30732:18:101","nodeType":"YulFunctionCall","src":"30732:18:101"},{"arguments":[{"name":"tail","nativeSrc":"30756:4:101","nodeType":"YulIdentifier","src":"30756:4:101"},{"name":"headStart","nativeSrc":"30762:9:101","nodeType":"YulIdentifier","src":"30762:9:101"}],"functionName":{"name":"sub","nativeSrc":"30752:3:101","nodeType":"YulIdentifier","src":"30752:3:101"},"nativeSrc":"30752:20:101","nodeType":"YulFunctionCall","src":"30752:20:101"}],"functionName":{"name":"mstore","nativeSrc":"30725:6:101","nodeType":"YulIdentifier","src":"30725:6:101"},"nativeSrc":"30725:48:101","nodeType":"YulFunctionCall","src":"30725:48:101"},"nativeSrc":"30725:48:101","nodeType":"YulExpressionStatement","src":"30725:48:101"},{"nativeSrc":"30782:139:101","nodeType":"YulAssignment","src":"30782:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"30916:4:101","nodeType":"YulIdentifier","src":"30916:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e_to_t_string_memory_ptr_fromStack","nativeSrc":"30790:124:101","nodeType":"YulIdentifier","src":"30790:124:101"},"nativeSrc":"30790:131:101","nodeType":"YulFunctionCall","src":"30790:131:101"},"variableNames":[{"name":"tail","nativeSrc":"30782:4:101","nodeType":"YulIdentifier","src":"30782:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30308:620:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30499:9:101","nodeType":"YulTypedName","src":"30499:9:101","type":""},{"name":"value0","nativeSrc":"30511:6:101","nodeType":"YulTypedName","src":"30511:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30522:4:101","nodeType":"YulTypedName","src":"30522:4:101","type":""}],"src":"30308:620:101"},{"body":{"nativeSrc":"30978:61:101","nodeType":"YulBlock","src":"30978:61:101","statements":[{"nativeSrc":"30988:45:101","nodeType":"YulAssignment","src":"30988:45:101","value":{"arguments":[{"name":"value","nativeSrc":"31003:5:101","nodeType":"YulIdentifier","src":"31003:5:101"},{"kind":"number","nativeSrc":"31010:22:101","nodeType":"YulLiteral","src":"31010:22:101","type":"","value":"0xffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"30999:3:101","nodeType":"YulIdentifier","src":"30999:3:101"},"nativeSrc":"30999:34:101","nodeType":"YulFunctionCall","src":"30999:34:101"},"variableNames":[{"name":"cleaned","nativeSrc":"30988:7:101","nodeType":"YulIdentifier","src":"30988:7:101"}]}]},"name":"cleanup_t_uint80","nativeSrc":"30934:105:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30960:5:101","nodeType":"YulTypedName","src":"30960:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"30970:7:101","nodeType":"YulTypedName","src":"30970:7:101","type":""}],"src":"30934:105:101"},{"body":{"nativeSrc":"31087:78:101","nodeType":"YulBlock","src":"31087:78:101","statements":[{"body":{"nativeSrc":"31143:16:101","nodeType":"YulBlock","src":"31143:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31152:1:101","nodeType":"YulLiteral","src":"31152:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"31155:1:101","nodeType":"YulLiteral","src":"31155:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31145:6:101","nodeType":"YulIdentifier","src":"31145:6:101"},"nativeSrc":"31145:12:101","nodeType":"YulFunctionCall","src":"31145:12:101"},"nativeSrc":"31145:12:101","nodeType":"YulExpressionStatement","src":"31145:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31110:5:101","nodeType":"YulIdentifier","src":"31110:5:101"},{"arguments":[{"name":"value","nativeSrc":"31134:5:101","nodeType":"YulIdentifier","src":"31134:5:101"}],"functionName":{"name":"cleanup_t_uint80","nativeSrc":"31117:16:101","nodeType":"YulIdentifier","src":"31117:16:101"},"nativeSrc":"31117:23:101","nodeType":"YulFunctionCall","src":"31117:23:101"}],"functionName":{"name":"eq","nativeSrc":"31107:2:101","nodeType":"YulIdentifier","src":"31107:2:101"},"nativeSrc":"31107:34:101","nodeType":"YulFunctionCall","src":"31107:34:101"}],"functionName":{"name":"iszero","nativeSrc":"31100:6:101","nodeType":"YulIdentifier","src":"31100:6:101"},"nativeSrc":"31100:42:101","nodeType":"YulFunctionCall","src":"31100:42:101"},"nativeSrc":"31097:62:101","nodeType":"YulIf","src":"31097:62:101"}]},"name":"validator_revert_t_uint80","nativeSrc":"31045:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"31080:5:101","nodeType":"YulTypedName","src":"31080:5:101","type":""}],"src":"31045:120:101"},{"body":{"nativeSrc":"31233:79:101","nodeType":"YulBlock","src":"31233:79:101","statements":[{"nativeSrc":"31243:22:101","nodeType":"YulAssignment","src":"31243:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"31258:6:101","nodeType":"YulIdentifier","src":"31258:6:101"}],"functionName":{"name":"mload","nativeSrc":"31252:5:101","nodeType":"YulIdentifier","src":"31252:5:101"},"nativeSrc":"31252:13:101","nodeType":"YulFunctionCall","src":"31252:13:101"},"variableNames":[{"name":"value","nativeSrc":"31243:5:101","nodeType":"YulIdentifier","src":"31243:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"31300:5:101","nodeType":"YulIdentifier","src":"31300:5:101"}],"functionName":{"name":"validator_revert_t_uint80","nativeSrc":"31274:25:101","nodeType":"YulIdentifier","src":"31274:25:101"},"nativeSrc":"31274:32:101","nodeType":"YulFunctionCall","src":"31274:32:101"},"nativeSrc":"31274:32:101","nodeType":"YulExpressionStatement","src":"31274:32:101"}]},"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"31171:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31211:6:101","nodeType":"YulTypedName","src":"31211:6:101","type":""},{"name":"end","nativeSrc":"31219:3:101","nodeType":"YulTypedName","src":"31219:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31227:5:101","nodeType":"YulTypedName","src":"31227:5:101","type":""}],"src":"31171:141:101"},{"body":{"nativeSrc":"31362:32:101","nodeType":"YulBlock","src":"31362:32:101","statements":[{"nativeSrc":"31372:16:101","nodeType":"YulAssignment","src":"31372:16:101","value":{"name":"value","nativeSrc":"31383:5:101","nodeType":"YulIdentifier","src":"31383:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"31372:7:101","nodeType":"YulIdentifier","src":"31372:7:101"}]}]},"name":"cleanup_t_int256","nativeSrc":"31318:76:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"31344:5:101","nodeType":"YulTypedName","src":"31344:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"31354:7:101","nodeType":"YulTypedName","src":"31354:7:101","type":""}],"src":"31318:76:101"},{"body":{"nativeSrc":"31442:78:101","nodeType":"YulBlock","src":"31442:78:101","statements":[{"body":{"nativeSrc":"31498:16:101","nodeType":"YulBlock","src":"31498:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31507:1:101","nodeType":"YulLiteral","src":"31507:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"31510:1:101","nodeType":"YulLiteral","src":"31510:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31500:6:101","nodeType":"YulIdentifier","src":"31500:6:101"},"nativeSrc":"31500:12:101","nodeType":"YulFunctionCall","src":"31500:12:101"},"nativeSrc":"31500:12:101","nodeType":"YulExpressionStatement","src":"31500:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31465:5:101","nodeType":"YulIdentifier","src":"31465:5:101"},{"arguments":[{"name":"value","nativeSrc":"31489:5:101","nodeType":"YulIdentifier","src":"31489:5:101"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"31472:16:101","nodeType":"YulIdentifier","src":"31472:16:101"},"nativeSrc":"31472:23:101","nodeType":"YulFunctionCall","src":"31472:23:101"}],"functionName":{"name":"eq","nativeSrc":"31462:2:101","nodeType":"YulIdentifier","src":"31462:2:101"},"nativeSrc":"31462:34:101","nodeType":"YulFunctionCall","src":"31462:34:101"}],"functionName":{"name":"iszero","nativeSrc":"31455:6:101","nodeType":"YulIdentifier","src":"31455:6:101"},"nativeSrc":"31455:42:101","nodeType":"YulFunctionCall","src":"31455:42:101"},"nativeSrc":"31452:62:101","nodeType":"YulIf","src":"31452:62:101"}]},"name":"validator_revert_t_int256","nativeSrc":"31400:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"31435:5:101","nodeType":"YulTypedName","src":"31435:5:101","type":""}],"src":"31400:120:101"},{"body":{"nativeSrc":"31588:79:101","nodeType":"YulBlock","src":"31588:79:101","statements":[{"nativeSrc":"31598:22:101","nodeType":"YulAssignment","src":"31598:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"31613:6:101","nodeType":"YulIdentifier","src":"31613:6:101"}],"functionName":{"name":"mload","nativeSrc":"31607:5:101","nodeType":"YulIdentifier","src":"31607:5:101"},"nativeSrc":"31607:13:101","nodeType":"YulFunctionCall","src":"31607:13:101"},"variableNames":[{"name":"value","nativeSrc":"31598:5:101","nodeType":"YulIdentifier","src":"31598:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"31655:5:101","nodeType":"YulIdentifier","src":"31655:5:101"}],"functionName":{"name":"validator_revert_t_int256","nativeSrc":"31629:25:101","nodeType":"YulIdentifier","src":"31629:25:101"},"nativeSrc":"31629:32:101","nodeType":"YulFunctionCall","src":"31629:32:101"},"nativeSrc":"31629:32:101","nodeType":"YulExpressionStatement","src":"31629:32:101"}]},"name":"abi_decode_t_int256_fromMemory","nativeSrc":"31526:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31566:6:101","nodeType":"YulTypedName","src":"31566:6:101","type":""},{"name":"end","nativeSrc":"31574:3:101","nodeType":"YulTypedName","src":"31574:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31582:5:101","nodeType":"YulTypedName","src":"31582:5:101","type":""}],"src":"31526:141:101"},{"body":{"nativeSrc":"31736:80:101","nodeType":"YulBlock","src":"31736:80:101","statements":[{"nativeSrc":"31746:22:101","nodeType":"YulAssignment","src":"31746:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"31761:6:101","nodeType":"YulIdentifier","src":"31761:6:101"}],"functionName":{"name":"mload","nativeSrc":"31755:5:101","nodeType":"YulIdentifier","src":"31755:5:101"},"nativeSrc":"31755:13:101","nodeType":"YulFunctionCall","src":"31755:13:101"},"variableNames":[{"name":"value","nativeSrc":"31746:5:101","nodeType":"YulIdentifier","src":"31746:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"31804:5:101","nodeType":"YulIdentifier","src":"31804:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"31777:26:101","nodeType":"YulIdentifier","src":"31777:26:101"},"nativeSrc":"31777:33:101","nodeType":"YulFunctionCall","src":"31777:33:101"},"nativeSrc":"31777:33:101","nodeType":"YulExpressionStatement","src":"31777:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"31673:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31714:6:101","nodeType":"YulTypedName","src":"31714:6:101","type":""},{"name":"end","nativeSrc":"31722:3:101","nodeType":"YulTypedName","src":"31722:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31730:5:101","nodeType":"YulTypedName","src":"31730:5:101","type":""}],"src":"31673:143:101"},{"body":{"nativeSrc":"31964:829:101","nodeType":"YulBlock","src":"31964:829:101","statements":[{"body":{"nativeSrc":"32011:83:101","nodeType":"YulBlock","src":"32011:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"32013:77:101","nodeType":"YulIdentifier","src":"32013:77:101"},"nativeSrc":"32013:79:101","nodeType":"YulFunctionCall","src":"32013:79:101"},"nativeSrc":"32013:79:101","nodeType":"YulExpressionStatement","src":"32013:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"31985:7:101","nodeType":"YulIdentifier","src":"31985:7:101"},{"name":"headStart","nativeSrc":"31994:9:101","nodeType":"YulIdentifier","src":"31994:9:101"}],"functionName":{"name":"sub","nativeSrc":"31981:3:101","nodeType":"YulIdentifier","src":"31981:3:101"},"nativeSrc":"31981:23:101","nodeType":"YulFunctionCall","src":"31981:23:101"},{"kind":"number","nativeSrc":"32006:3:101","nodeType":"YulLiteral","src":"32006:3:101","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"31977:3:101","nodeType":"YulIdentifier","src":"31977:3:101"},"nativeSrc":"31977:33:101","nodeType":"YulFunctionCall","src":"31977:33:101"},"nativeSrc":"31974:120:101","nodeType":"YulIf","src":"31974:120:101"},{"nativeSrc":"32104:127:101","nodeType":"YulBlock","src":"32104:127:101","statements":[{"nativeSrc":"32119:15:101","nodeType":"YulVariableDeclaration","src":"32119:15:101","value":{"kind":"number","nativeSrc":"32133:1:101","nodeType":"YulLiteral","src":"32133:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"32123:6:101","nodeType":"YulTypedName","src":"32123:6:101","type":""}]},{"nativeSrc":"32148:73:101","nodeType":"YulAssignment","src":"32148:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32193:9:101","nodeType":"YulIdentifier","src":"32193:9:101"},{"name":"offset","nativeSrc":"32204:6:101","nodeType":"YulIdentifier","src":"32204:6:101"}],"functionName":{"name":"add","nativeSrc":"32189:3:101","nodeType":"YulIdentifier","src":"32189:3:101"},"nativeSrc":"32189:22:101","nodeType":"YulFunctionCall","src":"32189:22:101"},{"name":"dataEnd","nativeSrc":"32213:7:101","nodeType":"YulIdentifier","src":"32213:7:101"}],"functionName":{"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"32158:30:101","nodeType":"YulIdentifier","src":"32158:30:101"},"nativeSrc":"32158:63:101","nodeType":"YulFunctionCall","src":"32158:63:101"},"variableNames":[{"name":"value0","nativeSrc":"32148:6:101","nodeType":"YulIdentifier","src":"32148:6:101"}]}]},{"nativeSrc":"32241:128:101","nodeType":"YulBlock","src":"32241:128:101","statements":[{"nativeSrc":"32256:16:101","nodeType":"YulVariableDeclaration","src":"32256:16:101","value":{"kind":"number","nativeSrc":"32270:2:101","nodeType":"YulLiteral","src":"32270:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"32260:6:101","nodeType":"YulTypedName","src":"32260:6:101","type":""}]},{"nativeSrc":"32286:73:101","nodeType":"YulAssignment","src":"32286:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32331:9:101","nodeType":"YulIdentifier","src":"32331:9:101"},{"name":"offset","nativeSrc":"32342:6:101","nodeType":"YulIdentifier","src":"32342:6:101"}],"functionName":{"name":"add","nativeSrc":"32327:3:101","nodeType":"YulIdentifier","src":"32327:3:101"},"nativeSrc":"32327:22:101","nodeType":"YulFunctionCall","src":"32327:22:101"},{"name":"dataEnd","nativeSrc":"32351:7:101","nodeType":"YulIdentifier","src":"32351:7:101"}],"functionName":{"name":"abi_decode_t_int256_fromMemory","nativeSrc":"32296:30:101","nodeType":"YulIdentifier","src":"32296:30:101"},"nativeSrc":"32296:63:101","nodeType":"YulFunctionCall","src":"32296:63:101"},"variableNames":[{"name":"value1","nativeSrc":"32286:6:101","nodeType":"YulIdentifier","src":"32286:6:101"}]}]},{"nativeSrc":"32379:129:101","nodeType":"YulBlock","src":"32379:129:101","statements":[{"nativeSrc":"32394:16:101","nodeType":"YulVariableDeclaration","src":"32394:16:101","value":{"kind":"number","nativeSrc":"32408:2:101","nodeType":"YulLiteral","src":"32408:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"32398:6:101","nodeType":"YulTypedName","src":"32398:6:101","type":""}]},{"nativeSrc":"32424:74:101","nodeType":"YulAssignment","src":"32424:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32470:9:101","nodeType":"YulIdentifier","src":"32470:9:101"},{"name":"offset","nativeSrc":"32481:6:101","nodeType":"YulIdentifier","src":"32481:6:101"}],"functionName":{"name":"add","nativeSrc":"32466:3:101","nodeType":"YulIdentifier","src":"32466:3:101"},"nativeSrc":"32466:22:101","nodeType":"YulFunctionCall","src":"32466:22:101"},{"name":"dataEnd","nativeSrc":"32490:7:101","nodeType":"YulIdentifier","src":"32490:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"32434:31:101","nodeType":"YulIdentifier","src":"32434:31:101"},"nativeSrc":"32434:64:101","nodeType":"YulFunctionCall","src":"32434:64:101"},"variableNames":[{"name":"value2","nativeSrc":"32424:6:101","nodeType":"YulIdentifier","src":"32424:6:101"}]}]},{"nativeSrc":"32518:129:101","nodeType":"YulBlock","src":"32518:129:101","statements":[{"nativeSrc":"32533:16:101","nodeType":"YulVariableDeclaration","src":"32533:16:101","value":{"kind":"number","nativeSrc":"32547:2:101","nodeType":"YulLiteral","src":"32547:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"32537:6:101","nodeType":"YulTypedName","src":"32537:6:101","type":""}]},{"nativeSrc":"32563:74:101","nodeType":"YulAssignment","src":"32563:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32609:9:101","nodeType":"YulIdentifier","src":"32609:9:101"},{"name":"offset","nativeSrc":"32620:6:101","nodeType":"YulIdentifier","src":"32620:6:101"}],"functionName":{"name":"add","nativeSrc":"32605:3:101","nodeType":"YulIdentifier","src":"32605:3:101"},"nativeSrc":"32605:22:101","nodeType":"YulFunctionCall","src":"32605:22:101"},{"name":"dataEnd","nativeSrc":"32629:7:101","nodeType":"YulIdentifier","src":"32629:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"32573:31:101","nodeType":"YulIdentifier","src":"32573:31:101"},"nativeSrc":"32573:64:101","nodeType":"YulFunctionCall","src":"32573:64:101"},"variableNames":[{"name":"value3","nativeSrc":"32563:6:101","nodeType":"YulIdentifier","src":"32563:6:101"}]}]},{"nativeSrc":"32657:129:101","nodeType":"YulBlock","src":"32657:129:101","statements":[{"nativeSrc":"32672:17:101","nodeType":"YulVariableDeclaration","src":"32672:17:101","value":{"kind":"number","nativeSrc":"32686:3:101","nodeType":"YulLiteral","src":"32686:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"32676:6:101","nodeType":"YulTypedName","src":"32676:6:101","type":""}]},{"nativeSrc":"32703:73:101","nodeType":"YulAssignment","src":"32703:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32748:9:101","nodeType":"YulIdentifier","src":"32748:9:101"},{"name":"offset","nativeSrc":"32759:6:101","nodeType":"YulIdentifier","src":"32759:6:101"}],"functionName":{"name":"add","nativeSrc":"32744:3:101","nodeType":"YulIdentifier","src":"32744:3:101"},"nativeSrc":"32744:22:101","nodeType":"YulFunctionCall","src":"32744:22:101"},{"name":"dataEnd","nativeSrc":"32768:7:101","nodeType":"YulIdentifier","src":"32768:7:101"}],"functionName":{"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"32713:30:101","nodeType":"YulIdentifier","src":"32713:30:101"},"nativeSrc":"32713:63:101","nodeType":"YulFunctionCall","src":"32713:63:101"},"variableNames":[{"name":"value4","nativeSrc":"32703:6:101","nodeType":"YulIdentifier","src":"32703:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory","nativeSrc":"31822:971:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31902:9:101","nodeType":"YulTypedName","src":"31902:9:101","type":""},{"name":"dataEnd","nativeSrc":"31913:7:101","nodeType":"YulTypedName","src":"31913:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"31925:6:101","nodeType":"YulTypedName","src":"31925:6:101","type":""},{"name":"value1","nativeSrc":"31933:6:101","nodeType":"YulTypedName","src":"31933:6:101","type":""},{"name":"value2","nativeSrc":"31941:6:101","nodeType":"YulTypedName","src":"31941:6:101","type":""},{"name":"value3","nativeSrc":"31949:6:101","nodeType":"YulTypedName","src":"31949:6:101","type":""},{"name":"value4","nativeSrc":"31957:6:101","nodeType":"YulTypedName","src":"31957:6:101","type":""}],"src":"31822:971:101"},{"body":{"nativeSrc":"32905:72:101","nodeType":"YulBlock","src":"32905:72:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"32927:6:101","nodeType":"YulIdentifier","src":"32927:6:101"},{"kind":"number","nativeSrc":"32935:1:101","nodeType":"YulLiteral","src":"32935:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32923:3:101","nodeType":"YulIdentifier","src":"32923:3:101"},"nativeSrc":"32923:14:101","nodeType":"YulFunctionCall","src":"32923:14:101"},{"hexValue":"696e76616c69642062696e616e6365206f7261636c65207072696365","kind":"string","nativeSrc":"32939:30:101","nodeType":"YulLiteral","src":"32939:30:101","type":"","value":"invalid binance oracle price"}],"functionName":{"name":"mstore","nativeSrc":"32916:6:101","nodeType":"YulIdentifier","src":"32916:6:101"},"nativeSrc":"32916:54:101","nodeType":"YulFunctionCall","src":"32916:54:101"},"nativeSrc":"32916:54:101","nodeType":"YulExpressionStatement","src":"32916:54:101"}]},"name":"store_literal_in_memory_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e","nativeSrc":"32799:178:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"32897:6:101","nodeType":"YulTypedName","src":"32897:6:101","type":""}],"src":"32799:178:101"},{"body":{"nativeSrc":"33129:220:101","nodeType":"YulBlock","src":"33129:220:101","statements":[{"nativeSrc":"33139:74:101","nodeType":"YulAssignment","src":"33139:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"33205:3:101","nodeType":"YulIdentifier","src":"33205:3:101"},{"kind":"number","nativeSrc":"33210:2:101","nodeType":"YulLiteral","src":"33210:2:101","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"33146:58:101","nodeType":"YulIdentifier","src":"33146:58:101"},"nativeSrc":"33146:67:101","nodeType":"YulFunctionCall","src":"33146:67:101"},"variableNames":[{"name":"pos","nativeSrc":"33139:3:101","nodeType":"YulIdentifier","src":"33139:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"33311:3:101","nodeType":"YulIdentifier","src":"33311:3:101"}],"functionName":{"name":"store_literal_in_memory_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e","nativeSrc":"33222:88:101","nodeType":"YulIdentifier","src":"33222:88:101"},"nativeSrc":"33222:93:101","nodeType":"YulFunctionCall","src":"33222:93:101"},"nativeSrc":"33222:93:101","nodeType":"YulExpressionStatement","src":"33222:93:101"},{"nativeSrc":"33324:19:101","nodeType":"YulAssignment","src":"33324:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"33335:3:101","nodeType":"YulIdentifier","src":"33335:3:101"},{"kind":"number","nativeSrc":"33340:2:101","nodeType":"YulLiteral","src":"33340:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33331:3:101","nodeType":"YulIdentifier","src":"33331:3:101"},"nativeSrc":"33331:12:101","nodeType":"YulFunctionCall","src":"33331:12:101"},"variableNames":[{"name":"end","nativeSrc":"33324:3:101","nodeType":"YulIdentifier","src":"33324:3:101"}]}]},"name":"abi_encode_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e_to_t_string_memory_ptr_fromStack","nativeSrc":"32983:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"33117:3:101","nodeType":"YulTypedName","src":"33117:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"33125:3:101","nodeType":"YulTypedName","src":"33125:3:101","type":""}],"src":"32983:366:101"},{"body":{"nativeSrc":"33526:248:101","nodeType":"YulBlock","src":"33526:248:101","statements":[{"nativeSrc":"33536:26:101","nodeType":"YulAssignment","src":"33536:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"33548:9:101","nodeType":"YulIdentifier","src":"33548:9:101"},{"kind":"number","nativeSrc":"33559:2:101","nodeType":"YulLiteral","src":"33559:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33544:3:101","nodeType":"YulIdentifier","src":"33544:3:101"},"nativeSrc":"33544:18:101","nodeType":"YulFunctionCall","src":"33544:18:101"},"variableNames":[{"name":"tail","nativeSrc":"33536:4:101","nodeType":"YulIdentifier","src":"33536:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33583:9:101","nodeType":"YulIdentifier","src":"33583:9:101"},{"kind":"number","nativeSrc":"33594:1:101","nodeType":"YulLiteral","src":"33594:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33579:3:101","nodeType":"YulIdentifier","src":"33579:3:101"},"nativeSrc":"33579:17:101","nodeType":"YulFunctionCall","src":"33579:17:101"},{"arguments":[{"name":"tail","nativeSrc":"33602:4:101","nodeType":"YulIdentifier","src":"33602:4:101"},{"name":"headStart","nativeSrc":"33608:9:101","nodeType":"YulIdentifier","src":"33608:9:101"}],"functionName":{"name":"sub","nativeSrc":"33598:3:101","nodeType":"YulIdentifier","src":"33598:3:101"},"nativeSrc":"33598:20:101","nodeType":"YulFunctionCall","src":"33598:20:101"}],"functionName":{"name":"mstore","nativeSrc":"33572:6:101","nodeType":"YulIdentifier","src":"33572:6:101"},"nativeSrc":"33572:47:101","nodeType":"YulFunctionCall","src":"33572:47:101"},"nativeSrc":"33572:47:101","nodeType":"YulExpressionStatement","src":"33572:47:101"},{"nativeSrc":"33628:139:101","nodeType":"YulAssignment","src":"33628:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"33762:4:101","nodeType":"YulIdentifier","src":"33762:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e_to_t_string_memory_ptr_fromStack","nativeSrc":"33636:124:101","nodeType":"YulIdentifier","src":"33636:124:101"},"nativeSrc":"33636:131:101","nodeType":"YulFunctionCall","src":"33636:131:101"},"variableNames":[{"name":"tail","nativeSrc":"33628:4:101","nodeType":"YulIdentifier","src":"33628:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33355:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33506:9:101","nodeType":"YulTypedName","src":"33506:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33521:4:101","nodeType":"YulTypedName","src":"33521:4:101","type":""}],"src":"33355:419:101"},{"body":{"nativeSrc":"33886:72:101","nodeType":"YulBlock","src":"33886:72:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"33908:6:101","nodeType":"YulIdentifier","src":"33908:6:101"},{"kind":"number","nativeSrc":"33916:1:101","nodeType":"YulLiteral","src":"33916:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33904:3:101","nodeType":"YulIdentifier","src":"33904:3:101"},"nativeSrc":"33904:14:101","nodeType":"YulFunctionCall","src":"33904:14:101"},{"hexValue":"757064617465644174206578636565647320626c6f636b2074696d65","kind":"string","nativeSrc":"33920:30:101","nodeType":"YulLiteral","src":"33920:30:101","type":"","value":"updatedAt exceeds block time"}],"functionName":{"name":"mstore","nativeSrc":"33897:6:101","nodeType":"YulIdentifier","src":"33897:6:101"},"nativeSrc":"33897:54:101","nodeType":"YulFunctionCall","src":"33897:54:101"},"nativeSrc":"33897:54:101","nodeType":"YulExpressionStatement","src":"33897:54:101"}]},"name":"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","nativeSrc":"33780:178:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"33878:6:101","nodeType":"YulTypedName","src":"33878:6:101","type":""}],"src":"33780:178:101"},{"body":{"nativeSrc":"34110:220:101","nodeType":"YulBlock","src":"34110:220:101","statements":[{"nativeSrc":"34120:74:101","nodeType":"YulAssignment","src":"34120:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"34186:3:101","nodeType":"YulIdentifier","src":"34186:3:101"},{"kind":"number","nativeSrc":"34191:2:101","nodeType":"YulLiteral","src":"34191:2:101","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"34127:58:101","nodeType":"YulIdentifier","src":"34127:58:101"},"nativeSrc":"34127:67:101","nodeType":"YulFunctionCall","src":"34127:67:101"},"variableNames":[{"name":"pos","nativeSrc":"34120:3:101","nodeType":"YulIdentifier","src":"34120:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"34292:3:101","nodeType":"YulIdentifier","src":"34292:3:101"}],"functionName":{"name":"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","nativeSrc":"34203:88:101","nodeType":"YulIdentifier","src":"34203:88:101"},"nativeSrc":"34203:93:101","nodeType":"YulFunctionCall","src":"34203:93:101"},"nativeSrc":"34203:93:101","nodeType":"YulExpressionStatement","src":"34203:93:101"},{"nativeSrc":"34305:19:101","nodeType":"YulAssignment","src":"34305:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"34316:3:101","nodeType":"YulIdentifier","src":"34316:3:101"},{"kind":"number","nativeSrc":"34321:2:101","nodeType":"YulLiteral","src":"34321:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34312:3:101","nodeType":"YulIdentifier","src":"34312:3:101"},"nativeSrc":"34312:12:101","nodeType":"YulFunctionCall","src":"34312:12:101"},"variableNames":[{"name":"end","nativeSrc":"34305:3:101","nodeType":"YulIdentifier","src":"34305:3:101"}]}]},"name":"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack","nativeSrc":"33964:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"34098:3:101","nodeType":"YulTypedName","src":"34098:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34106:3:101","nodeType":"YulTypedName","src":"34106:3:101","type":""}],"src":"33964:366:101"},{"body":{"nativeSrc":"34507:248:101","nodeType":"YulBlock","src":"34507:248:101","statements":[{"nativeSrc":"34517:26:101","nodeType":"YulAssignment","src":"34517:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"34529:9:101","nodeType":"YulIdentifier","src":"34529:9:101"},{"kind":"number","nativeSrc":"34540:2:101","nodeType":"YulLiteral","src":"34540:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34525:3:101","nodeType":"YulIdentifier","src":"34525:3:101"},"nativeSrc":"34525:18:101","nodeType":"YulFunctionCall","src":"34525:18:101"},"variableNames":[{"name":"tail","nativeSrc":"34517:4:101","nodeType":"YulIdentifier","src":"34517:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34564:9:101","nodeType":"YulIdentifier","src":"34564:9:101"},{"kind":"number","nativeSrc":"34575:1:101","nodeType":"YulLiteral","src":"34575:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34560:3:101","nodeType":"YulIdentifier","src":"34560:3:101"},"nativeSrc":"34560:17:101","nodeType":"YulFunctionCall","src":"34560:17:101"},{"arguments":[{"name":"tail","nativeSrc":"34583:4:101","nodeType":"YulIdentifier","src":"34583:4:101"},{"name":"headStart","nativeSrc":"34589:9:101","nodeType":"YulIdentifier","src":"34589:9:101"}],"functionName":{"name":"sub","nativeSrc":"34579:3:101","nodeType":"YulIdentifier","src":"34579:3:101"},"nativeSrc":"34579:20:101","nodeType":"YulFunctionCall","src":"34579:20:101"}],"functionName":{"name":"mstore","nativeSrc":"34553:6:101","nodeType":"YulIdentifier","src":"34553:6:101"},"nativeSrc":"34553:47:101","nodeType":"YulFunctionCall","src":"34553:47:101"},"nativeSrc":"34553:47:101","nodeType":"YulExpressionStatement","src":"34553:47:101"},{"nativeSrc":"34609:139:101","nodeType":"YulAssignment","src":"34609:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"34743:4:101","nodeType":"YulIdentifier","src":"34743:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack","nativeSrc":"34617:124:101","nodeType":"YulIdentifier","src":"34617:124:101"},"nativeSrc":"34617:131:101","nodeType":"YulFunctionCall","src":"34617:131:101"},"variableNames":[{"name":"tail","nativeSrc":"34609:4:101","nodeType":"YulIdentifier","src":"34609:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34336:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34487:9:101","nodeType":"YulTypedName","src":"34487:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34502:4:101","nodeType":"YulTypedName","src":"34502:4:101","type":""}],"src":"34336:419:101"},{"body":{"nativeSrc":"34867:72:101","nodeType":"YulBlock","src":"34867:72:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"34889:6:101","nodeType":"YulIdentifier","src":"34889:6:101"},{"kind":"number","nativeSrc":"34897:1:101","nodeType":"YulLiteral","src":"34897:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34885:3:101","nodeType":"YulIdentifier","src":"34885:3:101"},"nativeSrc":"34885:14:101","nodeType":"YulFunctionCall","src":"34885:14:101"},{"hexValue":"62696e616e6365206f7261636c652070726963652065787069726564","kind":"string","nativeSrc":"34901:30:101","nodeType":"YulLiteral","src":"34901:30:101","type":"","value":"binance oracle price expired"}],"functionName":{"name":"mstore","nativeSrc":"34878:6:101","nodeType":"YulIdentifier","src":"34878:6:101"},"nativeSrc":"34878:54:101","nodeType":"YulFunctionCall","src":"34878:54:101"},"nativeSrc":"34878:54:101","nodeType":"YulExpressionStatement","src":"34878:54:101"}]},"name":"store_literal_in_memory_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1","nativeSrc":"34761:178:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"34859:6:101","nodeType":"YulTypedName","src":"34859:6:101","type":""}],"src":"34761:178:101"},{"body":{"nativeSrc":"35091:220:101","nodeType":"YulBlock","src":"35091:220:101","statements":[{"nativeSrc":"35101:74:101","nodeType":"YulAssignment","src":"35101:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"35167:3:101","nodeType":"YulIdentifier","src":"35167:3:101"},{"kind":"number","nativeSrc":"35172:2:101","nodeType":"YulLiteral","src":"35172:2:101","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"35108:58:101","nodeType":"YulIdentifier","src":"35108:58:101"},"nativeSrc":"35108:67:101","nodeType":"YulFunctionCall","src":"35108:67:101"},"variableNames":[{"name":"pos","nativeSrc":"35101:3:101","nodeType":"YulIdentifier","src":"35101:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"35273:3:101","nodeType":"YulIdentifier","src":"35273:3:101"}],"functionName":{"name":"store_literal_in_memory_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1","nativeSrc":"35184:88:101","nodeType":"YulIdentifier","src":"35184:88:101"},"nativeSrc":"35184:93:101","nodeType":"YulFunctionCall","src":"35184:93:101"},"nativeSrc":"35184:93:101","nodeType":"YulExpressionStatement","src":"35184:93:101"},{"nativeSrc":"35286:19:101","nodeType":"YulAssignment","src":"35286:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"35297:3:101","nodeType":"YulIdentifier","src":"35297:3:101"},{"kind":"number","nativeSrc":"35302:2:101","nodeType":"YulLiteral","src":"35302:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35293:3:101","nodeType":"YulIdentifier","src":"35293:3:101"},"nativeSrc":"35293:12:101","nodeType":"YulFunctionCall","src":"35293:12:101"},"variableNames":[{"name":"end","nativeSrc":"35286:3:101","nodeType":"YulIdentifier","src":"35286:3:101"}]}]},"name":"abi_encode_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1_to_t_string_memory_ptr_fromStack","nativeSrc":"34945:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"35079:3:101","nodeType":"YulTypedName","src":"35079:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"35087:3:101","nodeType":"YulTypedName","src":"35087:3:101","type":""}],"src":"34945:366:101"},{"body":{"nativeSrc":"35488:248:101","nodeType":"YulBlock","src":"35488:248:101","statements":[{"nativeSrc":"35498:26:101","nodeType":"YulAssignment","src":"35498:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"35510:9:101","nodeType":"YulIdentifier","src":"35510:9:101"},{"kind":"number","nativeSrc":"35521:2:101","nodeType":"YulLiteral","src":"35521:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35506:3:101","nodeType":"YulIdentifier","src":"35506:3:101"},"nativeSrc":"35506:18:101","nodeType":"YulFunctionCall","src":"35506:18:101"},"variableNames":[{"name":"tail","nativeSrc":"35498:4:101","nodeType":"YulIdentifier","src":"35498:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35545:9:101","nodeType":"YulIdentifier","src":"35545:9:101"},{"kind":"number","nativeSrc":"35556:1:101","nodeType":"YulLiteral","src":"35556:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"35541:3:101","nodeType":"YulIdentifier","src":"35541:3:101"},"nativeSrc":"35541:17:101","nodeType":"YulFunctionCall","src":"35541:17:101"},{"arguments":[{"name":"tail","nativeSrc":"35564:4:101","nodeType":"YulIdentifier","src":"35564:4:101"},{"name":"headStart","nativeSrc":"35570:9:101","nodeType":"YulIdentifier","src":"35570:9:101"}],"functionName":{"name":"sub","nativeSrc":"35560:3:101","nodeType":"YulIdentifier","src":"35560:3:101"},"nativeSrc":"35560:20:101","nodeType":"YulFunctionCall","src":"35560:20:101"}],"functionName":{"name":"mstore","nativeSrc":"35534:6:101","nodeType":"YulIdentifier","src":"35534:6:101"},"nativeSrc":"35534:47:101","nodeType":"YulFunctionCall","src":"35534:47:101"},"nativeSrc":"35534:47:101","nodeType":"YulExpressionStatement","src":"35534:47:101"},{"nativeSrc":"35590:139:101","nodeType":"YulAssignment","src":"35590:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"35724:4:101","nodeType":"YulIdentifier","src":"35724:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1_to_t_string_memory_ptr_fromStack","nativeSrc":"35598:124:101","nodeType":"YulIdentifier","src":"35598:124:101"},"nativeSrc":"35598:131:101","nodeType":"YulFunctionCall","src":"35598:131:101"},"variableNames":[{"name":"tail","nativeSrc":"35590:4:101","nodeType":"YulIdentifier","src":"35590:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35317:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35468:9:101","nodeType":"YulTypedName","src":"35468:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35483:4:101","nodeType":"YulTypedName","src":"35483:4:101","type":""}],"src":"35317:419:101"},{"body":{"nativeSrc":"35770:152:101","nodeType":"YulBlock","src":"35770:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35787:1:101","nodeType":"YulLiteral","src":"35787:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"35790:77:101","nodeType":"YulLiteral","src":"35790:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"35780:6:101","nodeType":"YulIdentifier","src":"35780:6:101"},"nativeSrc":"35780:88:101","nodeType":"YulFunctionCall","src":"35780:88:101"},"nativeSrc":"35780:88:101","nodeType":"YulExpressionStatement","src":"35780:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35884:1:101","nodeType":"YulLiteral","src":"35884:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"35887:4:101","nodeType":"YulLiteral","src":"35887:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"35877:6:101","nodeType":"YulIdentifier","src":"35877:6:101"},"nativeSrc":"35877:15:101","nodeType":"YulFunctionCall","src":"35877:15:101"},"nativeSrc":"35877:15:101","nodeType":"YulExpressionStatement","src":"35877:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35908:1:101","nodeType":"YulLiteral","src":"35908:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"35911:4:101","nodeType":"YulLiteral","src":"35911:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"35901:6:101","nodeType":"YulIdentifier","src":"35901:6:101"},"nativeSrc":"35901:15:101","nodeType":"YulFunctionCall","src":"35901:15:101"},"nativeSrc":"35901:15:101","nodeType":"YulExpressionStatement","src":"35901:15:101"}]},"name":"panic_error_0x11","nativeSrc":"35742:180:101","nodeType":"YulFunctionDefinition","src":"35742:180:101"},{"body":{"nativeSrc":"35973:149:101","nodeType":"YulBlock","src":"35973:149:101","statements":[{"nativeSrc":"35983:25:101","nodeType":"YulAssignment","src":"35983:25:101","value":{"arguments":[{"name":"x","nativeSrc":"36006:1:101","nodeType":"YulIdentifier","src":"36006:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"35988:17:101","nodeType":"YulIdentifier","src":"35988:17:101"},"nativeSrc":"35988:20:101","nodeType":"YulFunctionCall","src":"35988:20:101"},"variableNames":[{"name":"x","nativeSrc":"35983:1:101","nodeType":"YulIdentifier","src":"35983:1:101"}]},{"nativeSrc":"36017:25:101","nodeType":"YulAssignment","src":"36017:25:101","value":{"arguments":[{"name":"y","nativeSrc":"36040:1:101","nodeType":"YulIdentifier","src":"36040:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"36022:17:101","nodeType":"YulIdentifier","src":"36022:17:101"},"nativeSrc":"36022:20:101","nodeType":"YulFunctionCall","src":"36022:20:101"},"variableNames":[{"name":"y","nativeSrc":"36017:1:101","nodeType":"YulIdentifier","src":"36017:1:101"}]},{"nativeSrc":"36051:17:101","nodeType":"YulAssignment","src":"36051:17:101","value":{"arguments":[{"name":"x","nativeSrc":"36063:1:101","nodeType":"YulIdentifier","src":"36063:1:101"},{"name":"y","nativeSrc":"36066:1:101","nodeType":"YulIdentifier","src":"36066:1:101"}],"functionName":{"name":"sub","nativeSrc":"36059:3:101","nodeType":"YulIdentifier","src":"36059:3:101"},"nativeSrc":"36059:9:101","nodeType":"YulFunctionCall","src":"36059:9:101"},"variableNames":[{"name":"diff","nativeSrc":"36051:4:101","nodeType":"YulIdentifier","src":"36051:4:101"}]},{"body":{"nativeSrc":"36093:22:101","nodeType":"YulBlock","src":"36093:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"36095:16:101","nodeType":"YulIdentifier","src":"36095:16:101"},"nativeSrc":"36095:18:101","nodeType":"YulFunctionCall","src":"36095:18:101"},"nativeSrc":"36095:18:101","nodeType":"YulExpressionStatement","src":"36095:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"36084:4:101","nodeType":"YulIdentifier","src":"36084:4:101"},{"name":"x","nativeSrc":"36090:1:101","nodeType":"YulIdentifier","src":"36090:1:101"}],"functionName":{"name":"gt","nativeSrc":"36081:2:101","nodeType":"YulIdentifier","src":"36081:2:101"},"nativeSrc":"36081:11:101","nodeType":"YulFunctionCall","src":"36081:11:101"},"nativeSrc":"36078:37:101","nodeType":"YulIf","src":"36078:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"35928:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"35959:1:101","nodeType":"YulTypedName","src":"35959:1:101","type":""},{"name":"y","nativeSrc":"35962:1:101","nodeType":"YulTypedName","src":"35962:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"35968:4:101","nodeType":"YulTypedName","src":"35968:4:101","type":""}],"src":"35928:194:101"},{"body":{"nativeSrc":"36179:51:101","nodeType":"YulBlock","src":"36179:51:101","statements":[{"nativeSrc":"36189:34:101","nodeType":"YulAssignment","src":"36189:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"36214:1:101","nodeType":"YulLiteral","src":"36214:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"36217:5:101","nodeType":"YulIdentifier","src":"36217:5:101"}],"functionName":{"name":"shr","nativeSrc":"36210:3:101","nodeType":"YulIdentifier","src":"36210:3:101"},"nativeSrc":"36210:13:101","nodeType":"YulFunctionCall","src":"36210:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"36189:8:101","nodeType":"YulIdentifier","src":"36189:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"36128:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"36160:5:101","nodeType":"YulTypedName","src":"36160:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"36170:8:101","nodeType":"YulTypedName","src":"36170:8:101","type":""}],"src":"36128:102:101"},{"body":{"nativeSrc":"36309:775:101","nodeType":"YulBlock","src":"36309:775:101","statements":[{"nativeSrc":"36319:15:101","nodeType":"YulAssignment","src":"36319:15:101","value":{"name":"_power","nativeSrc":"36328:6:101","nodeType":"YulIdentifier","src":"36328:6:101"},"variableNames":[{"name":"power","nativeSrc":"36319:5:101","nodeType":"YulIdentifier","src":"36319:5:101"}]},{"nativeSrc":"36343:14:101","nodeType":"YulAssignment","src":"36343:14:101","value":{"name":"_base","nativeSrc":"36352:5:101","nodeType":"YulIdentifier","src":"36352:5:101"},"variableNames":[{"name":"base","nativeSrc":"36343:4:101","nodeType":"YulIdentifier","src":"36343:4:101"}]},{"body":{"nativeSrc":"36401:677:101","nodeType":"YulBlock","src":"36401:677:101","statements":[{"body":{"nativeSrc":"36489:22:101","nodeType":"YulBlock","src":"36489:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"36491:16:101","nodeType":"YulIdentifier","src":"36491:16:101"},"nativeSrc":"36491:18:101","nodeType":"YulFunctionCall","src":"36491:18:101"},"nativeSrc":"36491:18:101","nodeType":"YulExpressionStatement","src":"36491:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"36467:4:101","nodeType":"YulIdentifier","src":"36467:4:101"},{"arguments":[{"name":"max","nativeSrc":"36477:3:101","nodeType":"YulIdentifier","src":"36477:3:101"},{"name":"base","nativeSrc":"36482:4:101","nodeType":"YulIdentifier","src":"36482:4:101"}],"functionName":{"name":"div","nativeSrc":"36473:3:101","nodeType":"YulIdentifier","src":"36473:3:101"},"nativeSrc":"36473:14:101","nodeType":"YulFunctionCall","src":"36473:14:101"}],"functionName":{"name":"gt","nativeSrc":"36464:2:101","nodeType":"YulIdentifier","src":"36464:2:101"},"nativeSrc":"36464:24:101","nodeType":"YulFunctionCall","src":"36464:24:101"},"nativeSrc":"36461:50:101","nodeType":"YulIf","src":"36461:50:101"},{"body":{"nativeSrc":"36556:419:101","nodeType":"YulBlock","src":"36556:419:101","statements":[{"nativeSrc":"36936:25:101","nodeType":"YulAssignment","src":"36936:25:101","value":{"arguments":[{"name":"power","nativeSrc":"36949:5:101","nodeType":"YulIdentifier","src":"36949:5:101"},{"name":"base","nativeSrc":"36956:4:101","nodeType":"YulIdentifier","src":"36956:4:101"}],"functionName":{"name":"mul","nativeSrc":"36945:3:101","nodeType":"YulIdentifier","src":"36945:3:101"},"nativeSrc":"36945:16:101","nodeType":"YulFunctionCall","src":"36945:16:101"},"variableNames":[{"name":"power","nativeSrc":"36936:5:101","nodeType":"YulIdentifier","src":"36936:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"36531:8:101","nodeType":"YulIdentifier","src":"36531:8:101"},{"kind":"number","nativeSrc":"36541:1:101","nodeType":"YulLiteral","src":"36541:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"36527:3:101","nodeType":"YulIdentifier","src":"36527:3:101"},"nativeSrc":"36527:16:101","nodeType":"YulFunctionCall","src":"36527:16:101"},"nativeSrc":"36524:451:101","nodeType":"YulIf","src":"36524:451:101"},{"nativeSrc":"36988:23:101","nodeType":"YulAssignment","src":"36988:23:101","value":{"arguments":[{"name":"base","nativeSrc":"37000:4:101","nodeType":"YulIdentifier","src":"37000:4:101"},{"name":"base","nativeSrc":"37006:4:101","nodeType":"YulIdentifier","src":"37006:4:101"}],"functionName":{"name":"mul","nativeSrc":"36996:3:101","nodeType":"YulIdentifier","src":"36996:3:101"},"nativeSrc":"36996:15:101","nodeType":"YulFunctionCall","src":"36996:15:101"},"variableNames":[{"name":"base","nativeSrc":"36988:4:101","nodeType":"YulIdentifier","src":"36988:4:101"}]},{"nativeSrc":"37024:44:101","nodeType":"YulAssignment","src":"37024:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"37059:8:101","nodeType":"YulIdentifier","src":"37059:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"37036:22:101","nodeType":"YulIdentifier","src":"37036:22:101"},"nativeSrc":"37036:32:101","nodeType":"YulFunctionCall","src":"37036:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"37024:8:101","nodeType":"YulIdentifier","src":"37024:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"36377:8:101","nodeType":"YulIdentifier","src":"36377:8:101"},{"kind":"number","nativeSrc":"36387:1:101","nodeType":"YulLiteral","src":"36387:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"36374:2:101","nodeType":"YulIdentifier","src":"36374:2:101"},"nativeSrc":"36374:15:101","nodeType":"YulFunctionCall","src":"36374:15:101"},"nativeSrc":"36366:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"36390:2:101","nodeType":"YulBlock","src":"36390:2:101","statements":[]},"pre":{"nativeSrc":"36370:3:101","nodeType":"YulBlock","src":"36370:3:101","statements":[]},"src":"36366:712:101"}]},"name":"checked_exp_helper","nativeSrc":"36236:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"36264:6:101","nodeType":"YulTypedName","src":"36264:6:101","type":""},{"name":"_base","nativeSrc":"36272:5:101","nodeType":"YulTypedName","src":"36272:5:101","type":""},{"name":"exponent","nativeSrc":"36279:8:101","nodeType":"YulTypedName","src":"36279:8:101","type":""},{"name":"max","nativeSrc":"36289:3:101","nodeType":"YulTypedName","src":"36289:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"36297:5:101","nodeType":"YulTypedName","src":"36297:5:101","type":""},{"name":"base","nativeSrc":"36304:4:101","nodeType":"YulTypedName","src":"36304:4:101","type":""}],"src":"36236:848:101"},{"body":{"nativeSrc":"37150:1013:101","nodeType":"YulBlock","src":"37150:1013:101","statements":[{"body":{"nativeSrc":"37345:20:101","nodeType":"YulBlock","src":"37345:20:101","statements":[{"nativeSrc":"37347:10:101","nodeType":"YulAssignment","src":"37347:10:101","value":{"kind":"number","nativeSrc":"37356:1:101","nodeType":"YulLiteral","src":"37356:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"37347:5:101","nodeType":"YulIdentifier","src":"37347:5:101"}]},{"nativeSrc":"37358:5:101","nodeType":"YulLeave","src":"37358:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"37335:8:101","nodeType":"YulIdentifier","src":"37335:8:101"}],"functionName":{"name":"iszero","nativeSrc":"37328:6:101","nodeType":"YulIdentifier","src":"37328:6:101"},"nativeSrc":"37328:16:101","nodeType":"YulFunctionCall","src":"37328:16:101"},"nativeSrc":"37325:40:101","nodeType":"YulIf","src":"37325:40:101"},{"body":{"nativeSrc":"37390:20:101","nodeType":"YulBlock","src":"37390:20:101","statements":[{"nativeSrc":"37392:10:101","nodeType":"YulAssignment","src":"37392:10:101","value":{"kind":"number","nativeSrc":"37401:1:101","nodeType":"YulLiteral","src":"37401:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"37392:5:101","nodeType":"YulIdentifier","src":"37392:5:101"}]},{"nativeSrc":"37403:5:101","nodeType":"YulLeave","src":"37403:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"37384:4:101","nodeType":"YulIdentifier","src":"37384:4:101"}],"functionName":{"name":"iszero","nativeSrc":"37377:6:101","nodeType":"YulIdentifier","src":"37377:6:101"},"nativeSrc":"37377:12:101","nodeType":"YulFunctionCall","src":"37377:12:101"},"nativeSrc":"37374:36:101","nodeType":"YulIf","src":"37374:36:101"},{"cases":[{"body":{"nativeSrc":"37520:20:101","nodeType":"YulBlock","src":"37520:20:101","statements":[{"nativeSrc":"37522:10:101","nodeType":"YulAssignment","src":"37522:10:101","value":{"kind":"number","nativeSrc":"37531:1:101","nodeType":"YulLiteral","src":"37531:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"37522:5:101","nodeType":"YulIdentifier","src":"37522:5:101"}]},{"nativeSrc":"37533:5:101","nodeType":"YulLeave","src":"37533:5:101"}]},"nativeSrc":"37513:27:101","nodeType":"YulCase","src":"37513:27:101","value":{"kind":"number","nativeSrc":"37518:1:101","nodeType":"YulLiteral","src":"37518:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"37564:176:101","nodeType":"YulBlock","src":"37564:176:101","statements":[{"body":{"nativeSrc":"37599:22:101","nodeType":"YulBlock","src":"37599:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"37601:16:101","nodeType":"YulIdentifier","src":"37601:16:101"},"nativeSrc":"37601:18:101","nodeType":"YulFunctionCall","src":"37601:18:101"},"nativeSrc":"37601:18:101","nodeType":"YulExpressionStatement","src":"37601:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"37584:8:101","nodeType":"YulIdentifier","src":"37584:8:101"},{"kind":"number","nativeSrc":"37594:3:101","nodeType":"YulLiteral","src":"37594:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"37581:2:101","nodeType":"YulIdentifier","src":"37581:2:101"},"nativeSrc":"37581:17:101","nodeType":"YulFunctionCall","src":"37581:17:101"},"nativeSrc":"37578:43:101","nodeType":"YulIf","src":"37578:43:101"},{"nativeSrc":"37634:25:101","nodeType":"YulAssignment","src":"37634:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"37647:1:101","nodeType":"YulLiteral","src":"37647:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"37650:8:101","nodeType":"YulIdentifier","src":"37650:8:101"}],"functionName":{"name":"exp","nativeSrc":"37643:3:101","nodeType":"YulIdentifier","src":"37643:3:101"},"nativeSrc":"37643:16:101","nodeType":"YulFunctionCall","src":"37643:16:101"},"variableNames":[{"name":"power","nativeSrc":"37634:5:101","nodeType":"YulIdentifier","src":"37634:5:101"}]},{"body":{"nativeSrc":"37690:22:101","nodeType":"YulBlock","src":"37690:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"37692:16:101","nodeType":"YulIdentifier","src":"37692:16:101"},"nativeSrc":"37692:18:101","nodeType":"YulFunctionCall","src":"37692:18:101"},"nativeSrc":"37692:18:101","nodeType":"YulExpressionStatement","src":"37692:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"37678:5:101","nodeType":"YulIdentifier","src":"37678:5:101"},{"name":"max","nativeSrc":"37685:3:101","nodeType":"YulIdentifier","src":"37685:3:101"}],"functionName":{"name":"gt","nativeSrc":"37675:2:101","nodeType":"YulIdentifier","src":"37675:2:101"},"nativeSrc":"37675:14:101","nodeType":"YulFunctionCall","src":"37675:14:101"},"nativeSrc":"37672:40:101","nodeType":"YulIf","src":"37672:40:101"},{"nativeSrc":"37725:5:101","nodeType":"YulLeave","src":"37725:5:101"}]},"nativeSrc":"37549:191:101","nodeType":"YulCase","src":"37549:191:101","value":{"kind":"number","nativeSrc":"37554:1:101","nodeType":"YulLiteral","src":"37554:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"37470:4:101","nodeType":"YulIdentifier","src":"37470:4:101"},"nativeSrc":"37463:277:101","nodeType":"YulSwitch","src":"37463:277:101"},{"body":{"nativeSrc":"37872:123:101","nodeType":"YulBlock","src":"37872:123:101","statements":[{"nativeSrc":"37886:28:101","nodeType":"YulAssignment","src":"37886:28:101","value":{"arguments":[{"name":"base","nativeSrc":"37899:4:101","nodeType":"YulIdentifier","src":"37899:4:101"},{"name":"exponent","nativeSrc":"37905:8:101","nodeType":"YulIdentifier","src":"37905:8:101"}],"functionName":{"name":"exp","nativeSrc":"37895:3:101","nodeType":"YulIdentifier","src":"37895:3:101"},"nativeSrc":"37895:19:101","nodeType":"YulFunctionCall","src":"37895:19:101"},"variableNames":[{"name":"power","nativeSrc":"37886:5:101","nodeType":"YulIdentifier","src":"37886:5:101"}]},{"body":{"nativeSrc":"37945:22:101","nodeType":"YulBlock","src":"37945:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"37947:16:101","nodeType":"YulIdentifier","src":"37947:16:101"},"nativeSrc":"37947:18:101","nodeType":"YulFunctionCall","src":"37947:18:101"},"nativeSrc":"37947:18:101","nodeType":"YulExpressionStatement","src":"37947:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"37933:5:101","nodeType":"YulIdentifier","src":"37933:5:101"},{"name":"max","nativeSrc":"37940:3:101","nodeType":"YulIdentifier","src":"37940:3:101"}],"functionName":{"name":"gt","nativeSrc":"37930:2:101","nodeType":"YulIdentifier","src":"37930:2:101"},"nativeSrc":"37930:14:101","nodeType":"YulFunctionCall","src":"37930:14:101"},"nativeSrc":"37927:40:101","nodeType":"YulIf","src":"37927:40:101"},{"nativeSrc":"37980:5:101","nodeType":"YulLeave","src":"37980:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"37775:4:101","nodeType":"YulIdentifier","src":"37775:4:101"},{"kind":"number","nativeSrc":"37781:2:101","nodeType":"YulLiteral","src":"37781:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"37772:2:101","nodeType":"YulIdentifier","src":"37772:2:101"},"nativeSrc":"37772:12:101","nodeType":"YulFunctionCall","src":"37772:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"37789:8:101","nodeType":"YulIdentifier","src":"37789:8:101"},{"kind":"number","nativeSrc":"37799:2:101","nodeType":"YulLiteral","src":"37799:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"37786:2:101","nodeType":"YulIdentifier","src":"37786:2:101"},"nativeSrc":"37786:16:101","nodeType":"YulFunctionCall","src":"37786:16:101"}],"functionName":{"name":"and","nativeSrc":"37768:3:101","nodeType":"YulIdentifier","src":"37768:3:101"},"nativeSrc":"37768:35:101","nodeType":"YulFunctionCall","src":"37768:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"37824:4:101","nodeType":"YulIdentifier","src":"37824:4:101"},{"kind":"number","nativeSrc":"37830:3:101","nodeType":"YulLiteral","src":"37830:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"37821:2:101","nodeType":"YulIdentifier","src":"37821:2:101"},"nativeSrc":"37821:13:101","nodeType":"YulFunctionCall","src":"37821:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"37839:8:101","nodeType":"YulIdentifier","src":"37839:8:101"},{"kind":"number","nativeSrc":"37849:2:101","nodeType":"YulLiteral","src":"37849:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"37836:2:101","nodeType":"YulIdentifier","src":"37836:2:101"},"nativeSrc":"37836:16:101","nodeType":"YulFunctionCall","src":"37836:16:101"}],"functionName":{"name":"and","nativeSrc":"37817:3:101","nodeType":"YulIdentifier","src":"37817:3:101"},"nativeSrc":"37817:36:101","nodeType":"YulFunctionCall","src":"37817:36:101"}],"functionName":{"name":"or","nativeSrc":"37752:2:101","nodeType":"YulIdentifier","src":"37752:2:101"},"nativeSrc":"37752:111:101","nodeType":"YulFunctionCall","src":"37752:111:101"},"nativeSrc":"37749:246:101","nodeType":"YulIf","src":"37749:246:101"},{"nativeSrc":"38005:57:101","nodeType":"YulAssignment","src":"38005:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"38039:1:101","nodeType":"YulLiteral","src":"38039:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"38042:4:101","nodeType":"YulIdentifier","src":"38042:4:101"},{"name":"exponent","nativeSrc":"38048:8:101","nodeType":"YulIdentifier","src":"38048:8:101"},{"name":"max","nativeSrc":"38058:3:101","nodeType":"YulIdentifier","src":"38058:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"38020:18:101","nodeType":"YulIdentifier","src":"38020:18:101"},"nativeSrc":"38020:42:101","nodeType":"YulFunctionCall","src":"38020:42:101"},"variableNames":[{"name":"power","nativeSrc":"38005:5:101","nodeType":"YulIdentifier","src":"38005:5:101"},{"name":"base","nativeSrc":"38012:4:101","nodeType":"YulIdentifier","src":"38012:4:101"}]},{"body":{"nativeSrc":"38101:22:101","nodeType":"YulBlock","src":"38101:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"38103:16:101","nodeType":"YulIdentifier","src":"38103:16:101"},"nativeSrc":"38103:18:101","nodeType":"YulFunctionCall","src":"38103:18:101"},"nativeSrc":"38103:18:101","nodeType":"YulExpressionStatement","src":"38103:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"38078:5:101","nodeType":"YulIdentifier","src":"38078:5:101"},{"arguments":[{"name":"max","nativeSrc":"38089:3:101","nodeType":"YulIdentifier","src":"38089:3:101"},{"name":"base","nativeSrc":"38094:4:101","nodeType":"YulIdentifier","src":"38094:4:101"}],"functionName":{"name":"div","nativeSrc":"38085:3:101","nodeType":"YulIdentifier","src":"38085:3:101"},"nativeSrc":"38085:14:101","nodeType":"YulFunctionCall","src":"38085:14:101"}],"functionName":{"name":"gt","nativeSrc":"38075:2:101","nodeType":"YulIdentifier","src":"38075:2:101"},"nativeSrc":"38075:25:101","nodeType":"YulFunctionCall","src":"38075:25:101"},"nativeSrc":"38072:51:101","nodeType":"YulIf","src":"38072:51:101"},{"nativeSrc":"38132:25:101","nodeType":"YulAssignment","src":"38132:25:101","value":{"arguments":[{"name":"power","nativeSrc":"38145:5:101","nodeType":"YulIdentifier","src":"38145:5:101"},{"name":"base","nativeSrc":"38152:4:101","nodeType":"YulIdentifier","src":"38152:4:101"}],"functionName":{"name":"mul","nativeSrc":"38141:3:101","nodeType":"YulIdentifier","src":"38141:3:101"},"nativeSrc":"38141:16:101","nodeType":"YulFunctionCall","src":"38141:16:101"},"variableNames":[{"name":"power","nativeSrc":"38132:5:101","nodeType":"YulIdentifier","src":"38132:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"37090:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"37120:4:101","nodeType":"YulTypedName","src":"37120:4:101","type":""},{"name":"exponent","nativeSrc":"37126:8:101","nodeType":"YulTypedName","src":"37126:8:101","type":""},{"name":"max","nativeSrc":"37136:3:101","nodeType":"YulTypedName","src":"37136:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"37144:5:101","nodeType":"YulTypedName","src":"37144:5:101","type":""}],"src":"37090:1073:101"},{"body":{"nativeSrc":"38235:219:101","nodeType":"YulBlock","src":"38235:219:101","statements":[{"nativeSrc":"38245:31:101","nodeType":"YulAssignment","src":"38245:31:101","value":{"arguments":[{"name":"base","nativeSrc":"38271:4:101","nodeType":"YulIdentifier","src":"38271:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"38253:17:101","nodeType":"YulIdentifier","src":"38253:17:101"},"nativeSrc":"38253:23:101","nodeType":"YulFunctionCall","src":"38253:23:101"},"variableNames":[{"name":"base","nativeSrc":"38245:4:101","nodeType":"YulIdentifier","src":"38245:4:101"}]},{"nativeSrc":"38285:39:101","nodeType":"YulAssignment","src":"38285:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"38315:8:101","nodeType":"YulIdentifier","src":"38315:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"38297:17:101","nodeType":"YulIdentifier","src":"38297:17:101"},"nativeSrc":"38297:27:101","nodeType":"YulFunctionCall","src":"38297:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"38285:8:101","nodeType":"YulIdentifier","src":"38285:8:101"}]},{"nativeSrc":"38334:113:101","nodeType":"YulAssignment","src":"38334:113:101","value":{"arguments":[{"name":"base","nativeSrc":"38364:4:101","nodeType":"YulIdentifier","src":"38364:4:101"},{"name":"exponent","nativeSrc":"38370:8:101","nodeType":"YulIdentifier","src":"38370:8:101"},{"kind":"number","nativeSrc":"38380:66:101","nodeType":"YulLiteral","src":"38380:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"38343:20:101","nodeType":"YulIdentifier","src":"38343:20:101"},"nativeSrc":"38343:104:101","nodeType":"YulFunctionCall","src":"38343:104:101"},"variableNames":[{"name":"power","nativeSrc":"38334:5:101","nodeType":"YulIdentifier","src":"38334:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"38169:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"38210:4:101","nodeType":"YulTypedName","src":"38210:4:101","type":""},{"name":"exponent","nativeSrc":"38216:8:101","nodeType":"YulTypedName","src":"38216:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"38229:5:101","nodeType":"YulTypedName","src":"38229:5:101","type":""}],"src":"38169:285:101"},{"body":{"nativeSrc":"38508:362:101","nodeType":"YulBlock","src":"38508:362:101","statements":[{"nativeSrc":"38518:25:101","nodeType":"YulAssignment","src":"38518:25:101","value":{"arguments":[{"name":"x","nativeSrc":"38541:1:101","nodeType":"YulIdentifier","src":"38541:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"38523:17:101","nodeType":"YulIdentifier","src":"38523:17:101"},"nativeSrc":"38523:20:101","nodeType":"YulFunctionCall","src":"38523:20:101"},"variableNames":[{"name":"x","nativeSrc":"38518:1:101","nodeType":"YulIdentifier","src":"38518:1:101"}]},{"nativeSrc":"38552:25:101","nodeType":"YulAssignment","src":"38552:25:101","value":{"arguments":[{"name":"y","nativeSrc":"38575:1:101","nodeType":"YulIdentifier","src":"38575:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"38557:17:101","nodeType":"YulIdentifier","src":"38557:17:101"},"nativeSrc":"38557:20:101","nodeType":"YulFunctionCall","src":"38557:20:101"},"variableNames":[{"name":"y","nativeSrc":"38552:1:101","nodeType":"YulIdentifier","src":"38552:1:101"}]},{"nativeSrc":"38586:28:101","nodeType":"YulVariableDeclaration","src":"38586:28:101","value":{"arguments":[{"name":"x","nativeSrc":"38609:1:101","nodeType":"YulIdentifier","src":"38609:1:101"},{"name":"y","nativeSrc":"38612:1:101","nodeType":"YulIdentifier","src":"38612:1:101"}],"functionName":{"name":"mul","nativeSrc":"38605:3:101","nodeType":"YulIdentifier","src":"38605:3:101"},"nativeSrc":"38605:9:101","nodeType":"YulFunctionCall","src":"38605:9:101"},"variables":[{"name":"product_raw","nativeSrc":"38590:11:101","nodeType":"YulTypedName","src":"38590:11:101","type":""}]},{"nativeSrc":"38623:41:101","nodeType":"YulAssignment","src":"38623:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"38652:11:101","nodeType":"YulIdentifier","src":"38652:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"38634:17:101","nodeType":"YulIdentifier","src":"38634:17:101"},"nativeSrc":"38634:30:101","nodeType":"YulFunctionCall","src":"38634:30:101"},"variableNames":[{"name":"product","nativeSrc":"38623:7:101","nodeType":"YulIdentifier","src":"38623:7:101"}]},{"body":{"nativeSrc":"38841:22:101","nodeType":"YulBlock","src":"38841:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"38843:16:101","nodeType":"YulIdentifier","src":"38843:16:101"},"nativeSrc":"38843:18:101","nodeType":"YulFunctionCall","src":"38843:18:101"},"nativeSrc":"38843:18:101","nodeType":"YulExpressionStatement","src":"38843:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"38774:1:101","nodeType":"YulIdentifier","src":"38774:1:101"}],"functionName":{"name":"iszero","nativeSrc":"38767:6:101","nodeType":"YulIdentifier","src":"38767:6:101"},"nativeSrc":"38767:9:101","nodeType":"YulFunctionCall","src":"38767:9:101"},{"arguments":[{"name":"y","nativeSrc":"38797:1:101","nodeType":"YulIdentifier","src":"38797:1:101"},{"arguments":[{"name":"product","nativeSrc":"38804:7:101","nodeType":"YulIdentifier","src":"38804:7:101"},{"name":"x","nativeSrc":"38813:1:101","nodeType":"YulIdentifier","src":"38813:1:101"}],"functionName":{"name":"div","nativeSrc":"38800:3:101","nodeType":"YulIdentifier","src":"38800:3:101"},"nativeSrc":"38800:15:101","nodeType":"YulFunctionCall","src":"38800:15:101"}],"functionName":{"name":"eq","nativeSrc":"38794:2:101","nodeType":"YulIdentifier","src":"38794:2:101"},"nativeSrc":"38794:22:101","nodeType":"YulFunctionCall","src":"38794:22:101"}],"functionName":{"name":"or","nativeSrc":"38747:2:101","nodeType":"YulIdentifier","src":"38747:2:101"},"nativeSrc":"38747:83:101","nodeType":"YulFunctionCall","src":"38747:83:101"}],"functionName":{"name":"iszero","nativeSrc":"38727:6:101","nodeType":"YulIdentifier","src":"38727:6:101"},"nativeSrc":"38727:113:101","nodeType":"YulFunctionCall","src":"38727:113:101"},"nativeSrc":"38724:139:101","nodeType":"YulIf","src":"38724:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"38460:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"38491:1:101","nodeType":"YulTypedName","src":"38491:1:101","type":""},{"name":"y","nativeSrc":"38494:1:101","nodeType":"YulTypedName","src":"38494:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"38500:7:101","nodeType":"YulTypedName","src":"38500:7:101","type":""}],"src":"38460:410:101"},{"body":{"nativeSrc":"38982:124:101","nodeType":"YulBlock","src":"38982:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"39004:6:101","nodeType":"YulIdentifier","src":"39004:6:101"},{"kind":"number","nativeSrc":"39012:1:101","nodeType":"YulLiteral","src":"39012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"39000:3:101","nodeType":"YulIdentifier","src":"39000:3:101"},"nativeSrc":"39000:14:101","nodeType":"YulFunctionCall","src":"39000:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"39016:34:101","nodeType":"YulLiteral","src":"39016:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"38993:6:101","nodeType":"YulIdentifier","src":"38993:6:101"},"nativeSrc":"38993:58:101","nodeType":"YulFunctionCall","src":"38993:58:101"},"nativeSrc":"38993:58:101","nodeType":"YulExpressionStatement","src":"38993:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"39072:6:101","nodeType":"YulIdentifier","src":"39072:6:101"},{"kind":"number","nativeSrc":"39080:2:101","nodeType":"YulLiteral","src":"39080:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39068:3:101","nodeType":"YulIdentifier","src":"39068:3:101"},"nativeSrc":"39068:15:101","nodeType":"YulFunctionCall","src":"39068:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"39085:13:101","nodeType":"YulLiteral","src":"39085:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"39061:6:101","nodeType":"YulIdentifier","src":"39061:6:101"},"nativeSrc":"39061:38:101","nodeType":"YulFunctionCall","src":"39061:38:101"},"nativeSrc":"39061:38:101","nodeType":"YulExpressionStatement","src":"39061:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"38876:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"38974:6:101","nodeType":"YulTypedName","src":"38974:6:101","type":""}],"src":"38876:230:101"},{"body":{"nativeSrc":"39258:220:101","nodeType":"YulBlock","src":"39258:220:101","statements":[{"nativeSrc":"39268:74:101","nodeType":"YulAssignment","src":"39268:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"39334:3:101","nodeType":"YulIdentifier","src":"39334:3:101"},{"kind":"number","nativeSrc":"39339:2:101","nodeType":"YulLiteral","src":"39339:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"39275:58:101","nodeType":"YulIdentifier","src":"39275:58:101"},"nativeSrc":"39275:67:101","nodeType":"YulFunctionCall","src":"39275:67:101"},"variableNames":[{"name":"pos","nativeSrc":"39268:3:101","nodeType":"YulIdentifier","src":"39268:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"39440:3:101","nodeType":"YulIdentifier","src":"39440:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"39351:88:101","nodeType":"YulIdentifier","src":"39351:88:101"},"nativeSrc":"39351:93:101","nodeType":"YulFunctionCall","src":"39351:93:101"},"nativeSrc":"39351:93:101","nodeType":"YulExpressionStatement","src":"39351:93:101"},{"nativeSrc":"39453:19:101","nodeType":"YulAssignment","src":"39453:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"39464:3:101","nodeType":"YulIdentifier","src":"39464:3:101"},{"kind":"number","nativeSrc":"39469:2:101","nodeType":"YulLiteral","src":"39469:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39460:3:101","nodeType":"YulIdentifier","src":"39460:3:101"},"nativeSrc":"39460:12:101","nodeType":"YulFunctionCall","src":"39460:12:101"},"variableNames":[{"name":"end","nativeSrc":"39453:3:101","nodeType":"YulIdentifier","src":"39453:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"39112:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"39246:3:101","nodeType":"YulTypedName","src":"39246:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"39254:3:101","nodeType":"YulTypedName","src":"39254:3:101","type":""}],"src":"39112:366:101"},{"body":{"nativeSrc":"39655:248:101","nodeType":"YulBlock","src":"39655:248:101","statements":[{"nativeSrc":"39665:26:101","nodeType":"YulAssignment","src":"39665:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"39677:9:101","nodeType":"YulIdentifier","src":"39677:9:101"},{"kind":"number","nativeSrc":"39688:2:101","nodeType":"YulLiteral","src":"39688:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39673:3:101","nodeType":"YulIdentifier","src":"39673:3:101"},"nativeSrc":"39673:18:101","nodeType":"YulFunctionCall","src":"39673:18:101"},"variableNames":[{"name":"tail","nativeSrc":"39665:4:101","nodeType":"YulIdentifier","src":"39665:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39712:9:101","nodeType":"YulIdentifier","src":"39712:9:101"},{"kind":"number","nativeSrc":"39723:1:101","nodeType":"YulLiteral","src":"39723:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"39708:3:101","nodeType":"YulIdentifier","src":"39708:3:101"},"nativeSrc":"39708:17:101","nodeType":"YulFunctionCall","src":"39708:17:101"},{"arguments":[{"name":"tail","nativeSrc":"39731:4:101","nodeType":"YulIdentifier","src":"39731:4:101"},{"name":"headStart","nativeSrc":"39737:9:101","nodeType":"YulIdentifier","src":"39737:9:101"}],"functionName":{"name":"sub","nativeSrc":"39727:3:101","nodeType":"YulIdentifier","src":"39727:3:101"},"nativeSrc":"39727:20:101","nodeType":"YulFunctionCall","src":"39727:20:101"}],"functionName":{"name":"mstore","nativeSrc":"39701:6:101","nodeType":"YulIdentifier","src":"39701:6:101"},"nativeSrc":"39701:47:101","nodeType":"YulFunctionCall","src":"39701:47:101"},"nativeSrc":"39701:47:101","nodeType":"YulExpressionStatement","src":"39701:47:101"},{"nativeSrc":"39757:139:101","nodeType":"YulAssignment","src":"39757:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"39891:4:101","nodeType":"YulIdentifier","src":"39891:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"39765:124:101","nodeType":"YulIdentifier","src":"39765:124:101"},"nativeSrc":"39765:131:101","nodeType":"YulFunctionCall","src":"39765:131:101"},"variableNames":[{"name":"tail","nativeSrc":"39757:4:101","nodeType":"YulIdentifier","src":"39757:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39484:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39635:9:101","nodeType":"YulTypedName","src":"39635:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39650:4:101","nodeType":"YulTypedName","src":"39650:4:101","type":""}],"src":"39484:419:101"},{"body":{"nativeSrc":"40055:277:101","nodeType":"YulBlock","src":"40055:277:101","statements":[{"nativeSrc":"40065:26:101","nodeType":"YulAssignment","src":"40065:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"40077:9:101","nodeType":"YulIdentifier","src":"40077:9:101"},{"kind":"number","nativeSrc":"40088:2:101","nodeType":"YulLiteral","src":"40088:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40073:3:101","nodeType":"YulIdentifier","src":"40073:3:101"},"nativeSrc":"40073:18:101","nodeType":"YulFunctionCall","src":"40073:18:101"},"variableNames":[{"name":"tail","nativeSrc":"40065:4:101","nodeType":"YulIdentifier","src":"40065:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"40145:6:101","nodeType":"YulIdentifier","src":"40145:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"40158:9:101","nodeType":"YulIdentifier","src":"40158:9:101"},{"kind":"number","nativeSrc":"40169:1:101","nodeType":"YulLiteral","src":"40169:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"40154:3:101","nodeType":"YulIdentifier","src":"40154:3:101"},"nativeSrc":"40154:17:101","nodeType":"YulFunctionCall","src":"40154:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"40101:43:101","nodeType":"YulIdentifier","src":"40101:43:101"},"nativeSrc":"40101:71:101","nodeType":"YulFunctionCall","src":"40101:71:101"},"nativeSrc":"40101:71:101","nodeType":"YulExpressionStatement","src":"40101:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40193:9:101","nodeType":"YulIdentifier","src":"40193:9:101"},{"kind":"number","nativeSrc":"40204:2:101","nodeType":"YulLiteral","src":"40204:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40189:3:101","nodeType":"YulIdentifier","src":"40189:3:101"},"nativeSrc":"40189:18:101","nodeType":"YulFunctionCall","src":"40189:18:101"},{"arguments":[{"name":"tail","nativeSrc":"40213:4:101","nodeType":"YulIdentifier","src":"40213:4:101"},{"name":"headStart","nativeSrc":"40219:9:101","nodeType":"YulIdentifier","src":"40219:9:101"}],"functionName":{"name":"sub","nativeSrc":"40209:3:101","nodeType":"YulIdentifier","src":"40209:3:101"},"nativeSrc":"40209:20:101","nodeType":"YulFunctionCall","src":"40209:20:101"}],"functionName":{"name":"mstore","nativeSrc":"40182:6:101","nodeType":"YulIdentifier","src":"40182:6:101"},"nativeSrc":"40182:48:101","nodeType":"YulFunctionCall","src":"40182:48:101"},"nativeSrc":"40182:48:101","nodeType":"YulExpressionStatement","src":"40182:48:101"},{"nativeSrc":"40239:86:101","nodeType":"YulAssignment","src":"40239:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"40311:6:101","nodeType":"YulIdentifier","src":"40311:6:101"},{"name":"tail","nativeSrc":"40320:4:101","nodeType":"YulIdentifier","src":"40320:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"40247:63:101","nodeType":"YulIdentifier","src":"40247:63:101"},"nativeSrc":"40247:78:101","nodeType":"YulFunctionCall","src":"40247:78:101"},"variableNames":[{"name":"tail","nativeSrc":"40239:4:101","nodeType":"YulIdentifier","src":"40239:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39909:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40019:9:101","nodeType":"YulTypedName","src":"40019:9:101","type":""},{"name":"value1","nativeSrc":"40031:6:101","nodeType":"YulTypedName","src":"40031:6:101","type":""},{"name":"value0","nativeSrc":"40039:6:101","nodeType":"YulTypedName","src":"40039:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40050:4:101","nodeType":"YulTypedName","src":"40050:4:101","type":""}],"src":"39909:423:101"},{"body":{"nativeSrc":"40380:48:101","nodeType":"YulBlock","src":"40380:48:101","statements":[{"nativeSrc":"40390:32:101","nodeType":"YulAssignment","src":"40390:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40415:5:101","nodeType":"YulIdentifier","src":"40415:5:101"}],"functionName":{"name":"iszero","nativeSrc":"40408:6:101","nodeType":"YulIdentifier","src":"40408:6:101"},"nativeSrc":"40408:13:101","nodeType":"YulFunctionCall","src":"40408:13:101"}],"functionName":{"name":"iszero","nativeSrc":"40401:6:101","nodeType":"YulIdentifier","src":"40401:6:101"},"nativeSrc":"40401:21:101","nodeType":"YulFunctionCall","src":"40401:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"40390:7:101","nodeType":"YulIdentifier","src":"40390:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"40338:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"40362:5:101","nodeType":"YulTypedName","src":"40362:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"40372:7:101","nodeType":"YulTypedName","src":"40372:7:101","type":""}],"src":"40338:90:101"},{"body":{"nativeSrc":"40474:76:101","nodeType":"YulBlock","src":"40474:76:101","statements":[{"body":{"nativeSrc":"40528:16:101","nodeType":"YulBlock","src":"40528:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40537:1:101","nodeType":"YulLiteral","src":"40537:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"40540:1:101","nodeType":"YulLiteral","src":"40540:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"40530:6:101","nodeType":"YulIdentifier","src":"40530:6:101"},"nativeSrc":"40530:12:101","nodeType":"YulFunctionCall","src":"40530:12:101"},"nativeSrc":"40530:12:101","nodeType":"YulExpressionStatement","src":"40530:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"40497:5:101","nodeType":"YulIdentifier","src":"40497:5:101"},{"arguments":[{"name":"value","nativeSrc":"40519:5:101","nodeType":"YulIdentifier","src":"40519:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"40504:14:101","nodeType":"YulIdentifier","src":"40504:14:101"},"nativeSrc":"40504:21:101","nodeType":"YulFunctionCall","src":"40504:21:101"}],"functionName":{"name":"eq","nativeSrc":"40494:2:101","nodeType":"YulIdentifier","src":"40494:2:101"},"nativeSrc":"40494:32:101","nodeType":"YulFunctionCall","src":"40494:32:101"}],"functionName":{"name":"iszero","nativeSrc":"40487:6:101","nodeType":"YulIdentifier","src":"40487:6:101"},"nativeSrc":"40487:40:101","nodeType":"YulFunctionCall","src":"40487:40:101"},"nativeSrc":"40484:60:101","nodeType":"YulIf","src":"40484:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"40434:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"40467:5:101","nodeType":"YulTypedName","src":"40467:5:101","type":""}],"src":"40434:116:101"},{"body":{"nativeSrc":"40616:77:101","nodeType":"YulBlock","src":"40616:77:101","statements":[{"nativeSrc":"40626:22:101","nodeType":"YulAssignment","src":"40626:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"40641:6:101","nodeType":"YulIdentifier","src":"40641:6:101"}],"functionName":{"name":"mload","nativeSrc":"40635:5:101","nodeType":"YulIdentifier","src":"40635:5:101"},"nativeSrc":"40635:13:101","nodeType":"YulFunctionCall","src":"40635:13:101"},"variableNames":[{"name":"value","nativeSrc":"40626:5:101","nodeType":"YulIdentifier","src":"40626:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"40681:5:101","nodeType":"YulIdentifier","src":"40681:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"40657:23:101","nodeType":"YulIdentifier","src":"40657:23:101"},"nativeSrc":"40657:30:101","nodeType":"YulFunctionCall","src":"40657:30:101"},"nativeSrc":"40657:30:101","nodeType":"YulExpressionStatement","src":"40657:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"40556:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"40594:6:101","nodeType":"YulTypedName","src":"40594:6:101","type":""},{"name":"end","nativeSrc":"40602:3:101","nodeType":"YulTypedName","src":"40602:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"40610:5:101","nodeType":"YulTypedName","src":"40610:5:101","type":""}],"src":"40556:137:101"},{"body":{"nativeSrc":"40773:271:101","nodeType":"YulBlock","src":"40773:271:101","statements":[{"body":{"nativeSrc":"40819:83:101","nodeType":"YulBlock","src":"40819:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"40821:77:101","nodeType":"YulIdentifier","src":"40821:77:101"},"nativeSrc":"40821:79:101","nodeType":"YulFunctionCall","src":"40821:79:101"},"nativeSrc":"40821:79:101","nodeType":"YulExpressionStatement","src":"40821:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"40794:7:101","nodeType":"YulIdentifier","src":"40794:7:101"},{"name":"headStart","nativeSrc":"40803:9:101","nodeType":"YulIdentifier","src":"40803:9:101"}],"functionName":{"name":"sub","nativeSrc":"40790:3:101","nodeType":"YulIdentifier","src":"40790:3:101"},"nativeSrc":"40790:23:101","nodeType":"YulFunctionCall","src":"40790:23:101"},{"kind":"number","nativeSrc":"40815:2:101","nodeType":"YulLiteral","src":"40815:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"40786:3:101","nodeType":"YulIdentifier","src":"40786:3:101"},"nativeSrc":"40786:32:101","nodeType":"YulFunctionCall","src":"40786:32:101"},"nativeSrc":"40783:119:101","nodeType":"YulIf","src":"40783:119:101"},{"nativeSrc":"40912:125:101","nodeType":"YulBlock","src":"40912:125:101","statements":[{"nativeSrc":"40927:15:101","nodeType":"YulVariableDeclaration","src":"40927:15:101","value":{"kind":"number","nativeSrc":"40941:1:101","nodeType":"YulLiteral","src":"40941:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"40931:6:101","nodeType":"YulTypedName","src":"40931:6:101","type":""}]},{"nativeSrc":"40956:71:101","nodeType":"YulAssignment","src":"40956:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40999:9:101","nodeType":"YulIdentifier","src":"40999:9:101"},{"name":"offset","nativeSrc":"41010:6:101","nodeType":"YulIdentifier","src":"41010:6:101"}],"functionName":{"name":"add","nativeSrc":"40995:3:101","nodeType":"YulIdentifier","src":"40995:3:101"},"nativeSrc":"40995:22:101","nodeType":"YulFunctionCall","src":"40995:22:101"},{"name":"dataEnd","nativeSrc":"41019:7:101","nodeType":"YulIdentifier","src":"41019:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"40966:28:101","nodeType":"YulIdentifier","src":"40966:28:101"},"nativeSrc":"40966:61:101","nodeType":"YulFunctionCall","src":"40966:61:101"},"variableNames":[{"name":"value0","nativeSrc":"40956:6:101","nodeType":"YulIdentifier","src":"40956:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"40699:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40743:9:101","nodeType":"YulTypedName","src":"40743:9:101","type":""},{"name":"dataEnd","nativeSrc":"40754:7:101","nodeType":"YulTypedName","src":"40754:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"40766:6:101","nodeType":"YulTypedName","src":"40766:6:101","type":""}],"src":"40699:345:101"},{"body":{"nativeSrc":"41224:359:101","nodeType":"YulBlock","src":"41224:359:101","statements":[{"nativeSrc":"41234:26:101","nodeType":"YulAssignment","src":"41234:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"41246:9:101","nodeType":"YulIdentifier","src":"41246:9:101"},{"kind":"number","nativeSrc":"41257:2:101","nodeType":"YulLiteral","src":"41257:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41242:3:101","nodeType":"YulIdentifier","src":"41242:3:101"},"nativeSrc":"41242:18:101","nodeType":"YulFunctionCall","src":"41242:18:101"},"variableNames":[{"name":"tail","nativeSrc":"41234:4:101","nodeType":"YulIdentifier","src":"41234:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"41314:6:101","nodeType":"YulIdentifier","src":"41314:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"41327:9:101","nodeType":"YulIdentifier","src":"41327:9:101"},{"kind":"number","nativeSrc":"41338:1:101","nodeType":"YulLiteral","src":"41338:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"41323:3:101","nodeType":"YulIdentifier","src":"41323:3:101"},"nativeSrc":"41323:17:101","nodeType":"YulFunctionCall","src":"41323:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"41270:43:101","nodeType":"YulIdentifier","src":"41270:43:101"},"nativeSrc":"41270:71:101","nodeType":"YulFunctionCall","src":"41270:71:101"},"nativeSrc":"41270:71:101","nodeType":"YulExpressionStatement","src":"41270:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"41395:6:101","nodeType":"YulIdentifier","src":"41395:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"41408:9:101","nodeType":"YulIdentifier","src":"41408:9:101"},{"kind":"number","nativeSrc":"41419:2:101","nodeType":"YulLiteral","src":"41419:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41404:3:101","nodeType":"YulIdentifier","src":"41404:3:101"},"nativeSrc":"41404:18:101","nodeType":"YulFunctionCall","src":"41404:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"41351:43:101","nodeType":"YulIdentifier","src":"41351:43:101"},"nativeSrc":"41351:72:101","nodeType":"YulFunctionCall","src":"41351:72:101"},"nativeSrc":"41351:72:101","nodeType":"YulExpressionStatement","src":"41351:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41444:9:101","nodeType":"YulIdentifier","src":"41444:9:101"},{"kind":"number","nativeSrc":"41455:2:101","nodeType":"YulLiteral","src":"41455:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41440:3:101","nodeType":"YulIdentifier","src":"41440:3:101"},"nativeSrc":"41440:18:101","nodeType":"YulFunctionCall","src":"41440:18:101"},{"arguments":[{"name":"tail","nativeSrc":"41464:4:101","nodeType":"YulIdentifier","src":"41464:4:101"},{"name":"headStart","nativeSrc":"41470:9:101","nodeType":"YulIdentifier","src":"41470:9:101"}],"functionName":{"name":"sub","nativeSrc":"41460:3:101","nodeType":"YulIdentifier","src":"41460:3:101"},"nativeSrc":"41460:20:101","nodeType":"YulFunctionCall","src":"41460:20:101"}],"functionName":{"name":"mstore","nativeSrc":"41433:6:101","nodeType":"YulIdentifier","src":"41433:6:101"},"nativeSrc":"41433:48:101","nodeType":"YulFunctionCall","src":"41433:48:101"},"nativeSrc":"41433:48:101","nodeType":"YulExpressionStatement","src":"41433:48:101"},{"nativeSrc":"41490:86:101","nodeType":"YulAssignment","src":"41490:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"41562:6:101","nodeType":"YulIdentifier","src":"41562:6:101"},{"name":"tail","nativeSrc":"41571:4:101","nodeType":"YulIdentifier","src":"41571:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"41498:63:101","nodeType":"YulIdentifier","src":"41498:63:101"},"nativeSrc":"41498:78:101","nodeType":"YulFunctionCall","src":"41498:78:101"},"variableNames":[{"name":"tail","nativeSrc":"41490:4:101","nodeType":"YulIdentifier","src":"41490:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41050:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41180:9:101","nodeType":"YulTypedName","src":"41180:9:101","type":""},{"name":"value2","nativeSrc":"41192:6:101","nodeType":"YulTypedName","src":"41192:6:101","type":""},{"name":"value1","nativeSrc":"41200:6:101","nodeType":"YulTypedName","src":"41200:6:101","type":""},{"name":"value0","nativeSrc":"41208:6:101","nodeType":"YulTypedName","src":"41208:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41219:4:101","nodeType":"YulTypedName","src":"41219:4:101","type":""}],"src":"41050:533:101"}]},"contents":"{\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // string\n    function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0, value1 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2, value3 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(memPtr) {\n\n        mstore(add(memPtr, 0), \"can't be zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a(memPtr) {\n\n        mstore(add(memPtr, 0), \"sidRegistryAddress must be zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_85211e0caaaee74ba2c86707916473900ecf1dcaa8ad399c23a30317418d4a5a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134(memPtr) {\n\n        mstore(add(memPtr, 0), \"stale period can't be zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a(memPtr) {\n\n        mstore(add(memPtr, 0), \"symbol cannot be empty\")\n\n    }\n\n    function abi_encode_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n        store_literal_in_memory_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_27ec75ff32eb0038314efd0ac80d470aefa17fc252cc46525e8e45a1c645a80a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_payable_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_payable_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    // string -> string\n    function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_calldata_ptr(value, len) -> length {\n\n        length := len\n\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len) {\n\n        let newLen := array_length_t_string_calldata_ptr(src, len)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := calldataload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    // string -> string\n    function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value0, value1,  tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid acess control manager ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e(memPtr) {\n\n        mstore(add(memPtr, 0), \"USD\")\n\n    }\n\n    function abi_encode_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 3)\n        store_literal_in_memory_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 64)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint80(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint80(value) {\n        if iszero(eq(value, cleanup_t_uint80(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint80_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint80(value)\n    }\n\n    function cleanup_t_int256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_int256(value) {\n        if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_int256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_int256(value)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint80_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_int256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint80_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid binance oracle price\")\n\n    }\n\n    function abi_encode_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5ac98dfac2fb4e9eb227df693ff1e80e79e615b6ddb871245285aee2dad7923e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e(memPtr) {\n\n        mstore(add(memPtr, 0), \"updatedAt exceeds block time\")\n\n    }\n\n    function abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1(memPtr) {\n\n        mstore(add(memPtr, 0), \"binance oracle price expired\")\n\n    }\n\n    function abi_encode_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_111b234455a639a60260a9c3f9313f9d90634c76cd51b850e6561ebdec9ae3d1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063715018a61161009e5780639eab1ad61161006e5780639eab1ad614610223578063b4a0bdf314610236578063e30c39781461024f578063f2fde38b14610260578063fdfbc27714610273575f80fd5b8063715018a6146101fa57806379ba5097146102025780638da5cb5b1461020a57806399fe040e1461021b575f80fd5b80633e83b6b8116100e45780633e83b6b81461018657806341976e09146101a1578063475e7de5146101c1578063485cc955146101d4578063636b999a146101e7575f80fd5b8063011d396214610115578063047a74b21461013e5780630e32cb861461015e578063255ce37a14610173575b5f80fd5b60cc54610128906001600160a01b031681565b6040516101359190610ed1565b60405180910390f35b61015161014c366004610fd9565b61029e565b604051610135919061104f565b61017161016c366004611085565b610341565b005b610171610181366004611085565b610355565b61012873bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101b46101af366004611085565b610412565b60405161013591906110a9565b60c954610128906001600160a01b031681565b6101716101e23660046110b7565b6105f4565b6101716101f5366004611102565b6106db565b6101716107ad565b6101716107c0565b6033546001600160a01b0316610128565b6101286107f5565b61017161023136600461119a565b610905565b6097546001600160a01b0316604051610135919061124d565b6065546001600160a01b0316610128565b61017161026e366004611085565b6109ea565b6101b4610281366004610fd9565b805160208183018101805160ca8252928201919093012091525481565b805160208183018101805160cb82529282019190930120915280546102c29061126f565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee9061126f565b80156103395780601f1061031057610100808354040283529160200191610339565b820191905f5260205f20905b81548152906001019060200180831161031c57829003601f168201915b505050505081565b610349610a5b565b61035281610a85565b50565b806001600160a01b0381166103855760405162461bcd60e51b815260040161037c906112c9565b60405180910390fd5b61038d610a5b565b60c9546001600160a01b0316156103b65760405162461bcd60e51b815260040161037c9061130c565b60cc546040516001600160a01b038085169216907f6d1006252b3dd171af76c28c184327bfddc39f439a50e0ac7f418c660b8894b5905f90a35060cc80546001600160a01b0319166001600160a01b0392909216919091179055565b5f60608173bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba196001600160a01b0385160161045e57505060408051808201909152600381526221272160e91b6020820152601261052d565b5f849050806001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561049d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104c49190810190611370565b9250806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610502573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052691906113bc565b60ff169150505b5f60cb8360405161053e91906113fb565b908152602001604051809103902080546105579061126f565b80601f01602080910402602001604051908101604052809291908181526020018280546105839061126f565b80156105ce5780601f106105a5576101008083540402835291602001916105ce565b820191905f5260205f20905b8154815290600101906020018083116105b157829003601f168201915b5050505050905080515f146105e1578092505b6105eb8383610b0a565b95945050505050565b5f54610100900460ff161580801561061257505f54600160ff909116105b8061062b5750303b15801561062b57505f5460ff166001145b6106475760405162461bcd60e51b815260040161037c90611453565b5f805460ff191660011790558015610668575f805461ff0019166101001790555b60c980546001600160a01b0319166001600160a01b03851617905561068c82610cf3565b80156106d6575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906106cd90600190611476565b60405180910390a15b505050565b6106fc604051806060016040528060218152602001611ba860219139610d2a565b805f0361071b5760405162461bcd60e51b815260040161037c906114b7565b81515f0361073b5760405162461bcd60e51b815260040161037c906114f3565b8060ca8360405161074c91906113fb565b9081526040519081900360200181209190915561076a9083906113fb565b60405180910390207f37839d4a80c5e3f2578f59515c911ee8cce42383d7ebaa1c92afcde9871c4b58826040516107a191906110a9565b60405180910390a25050565b6107b5610a5b565b6107be5f610dc5565b565b60655433906001600160a01b031681146107ec5760405162461bcd60e51b815260040161037c90611548565b61035281610dc5565b60c954604051630178b8bf60e01b81525f917f94fe3821e0768eb35012484db4df61890f9a6ca5bfa984ef8ff717e73139faff916001600160a01b039091169083908290630178b8bf9061084d9086906004016110a9565b602060405180830381865afa158015610868573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088c9190611563565b604051631d9dabef60e11b815290915081906001600160a01b03821690633b3b57de906108bd9087906004016110a9565b602060405180830381865afa1580156108d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108fc9190611563565b94505050505090565b6109436040518060400160405280602081526020017f73657453796d626f6c4f7665727269646528737472696e672c737472696e6729815250610d2a565b5f8390036109635760405162461bcd60e51b815260040161037c906114f3565b818160cb8686604051610977929190611593565b90815260200160405180910390209182610992929190611632565b5083836040516109a3929190611593565b60405180910390207fceb1f47aa91b96f02ea70e1deed25fe154ad1885aea509bd7222f9eec0a0bda583836040516109dc929190611713565b60405180910390a250505050565b6109f2610a5b565b606580546001600160a01b0383166001600160a01b03199091168117909155610a236033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146107be5760405162461bcd60e51b815260040161037c90611756565b6001600160a01b038116610aab5760405162461bcd60e51b815260040161037c906117a7565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610afe90839085906117b7565b60405180910390a15050565b60c9545f9081906001600160a01b031615610b2e57610b276107f5565b9050610b3c565b5060cc546001600160a01b03165b5f80826001600160a01b031663bfda5e71876040518263ffffffff1660e01b8152600401610b6a91906117eb565b60a060405180830381865afa158015610b85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba99190611837565b509350509250505f8213610bcf5760405162461bcd60e51b815260040161037c906118dd565b80421015610bef5760405162461bcd60e51b815260040161037c90611920565b5f814203905060ca87604051610c0591906113fb565b908152602001604051809103902054811115610c335760405162461bcd60e51b815260040161037c90611963565b604051633748ccad60e11b81525f906001600160a01b03861690636e91995a90610c61908b906004016117eb565b602060405180830381865afa158015610c7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca091906113bc565b60ff169050610cb0876012611987565b610cbb90600a611aa6565b610cc6826012611987565b610cd190600a611aa6565b610cdb9086611ab3565b610ce59190611ab3565b955050505050505b92915050565b5f54610100900460ff16610d195760405162461bcd60e51b815260040161037c90611b19565b610d21610dde565b61035281610e0c565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab90610d5c9033908690600401611b29565b602060405180830381865afa158015610d77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9b9190611b5c565b905080610dc157333083604051634a3fa29360e01b815260040161037c93929190611b7a565b5050565b606580546001600160a01b031916905561035281610e32565b5f54610100900460ff16610e045760405162461bcd60e51b815260040161037c90611b19565b6107be610e83565b5f54610100900460ff166103495760405162461bcd60e51b815260040161037c90611b19565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610ea95760405162461bcd60e51b815260040161037c90611b19565b6107be33610dc5565b5f6001600160a01b038216610ced565b610ecb81610eb2565b82525050565b60208101610ced8284610ec2565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610f1957610f19610edf565b6040525050565b5f610f2a60405190565b9050610f368282610ef3565b919050565b5f67ffffffffffffffff821115610f5457610f54610edf565b601f19601f83011660200192915050565b82818337505f910152565b5f610f82610f7d84610f3b565b610f20565b905082815260208101848484011115610f9c57610f9c5f80fd5b610fa7848285610f65565b509392505050565b5f82601f830112610fc157610fc15f80fd5b8135610fd1848260208601610f70565b949350505050565b5f60208284031215610fec57610fec5f80fd5b813567ffffffffffffffff811115611005576110055f80fd5b610fd184828501610faf565b8281835e505f910152565b5f611025825190565b80845260208401935061103c818560208601611011565b601f19601f8201165b9093019392505050565b60208082528101611060818461101c565b9392505050565b61107081610eb2565b8114610352575f80fd5b8035610ced81611067565b5f60208284031215611098576110985f80fd5b5f610fd1848461107a565b80610ecb565b60208101610ced82846110a3565b5f80604083850312156110cb576110cb5f80fd5b5f6110d6858561107a565b92505060206110e78582860161107a565b9150509250929050565b80611070565b8035610ced816110f1565b5f8060408385031215611116576111165f80fd5b823567ffffffffffffffff81111561112f5761112f5f80fd5b61113b85828601610faf565b92505060206110e7858286016110f7565b5f8083601f84011261115f5761115f5f80fd5b50813567ffffffffffffffff811115611179576111795f80fd5b602083019150836001820283011115611193576111935f80fd5b9250929050565b5f805f80604085870312156111b0576111b05f80fd5b843567ffffffffffffffff8111156111c9576111c95f80fd5b6111d58782880161114c565b9450945050602085013567ffffffffffffffff8111156111f6576111f65f80fd5b6112028782880161114c565b95989497509550505050565b5f610ced6001600160a01b038316611224565b90565b6001600160a01b031690565b5f610ced8261120e565b5f610ced82611230565b610ecb8161123a565b60208101610ced8284611244565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061128357607f821691505b6020821081036112955761129561125b565b50919050565b601581525f602082017463616e2774206265207a65726f206164647265737360581b815291505b5060200190565b60208082528101610ced8161129b565b601f81525f602082017f736964526567697374727941646472657373206d757374206265207a65726f00815291506112c2565b60208082528101610ced816112d9565b5f611329610f7d84610f3b565b905082815260208101848484011115611343576113435f80fd5b610fa7848285611011565b5f82601f830112611360576113605f80fd5b8151610fd184826020860161131c565b5f60208284031215611383576113835f80fd5b815167ffffffffffffffff81111561139c5761139c5f80fd5b610fd18482850161134e565b60ff8116611070565b8051610ced816113a8565b5f602082840312156113cf576113cf5f80fd5b5f610fd184846113b1565b5f6113e3825190565b6113f1818560208601611011565b9290920192915050565b5f61106082846113da565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291505b5060400190565b60208082528101610ced81611406565b5f60ff8216610ced565b610ecb81611463565b60208101610ced828461146d565b601a81525f602082017f7374616c6520706572696f642063616e2774206265207a65726f000000000000815291506112c2565b60208082528101610ced81611484565b601681525f602082017573796d626f6c2063616e6e6f7420626520656d70747960501b815291506112c2565b60208082528101610ced816114c7565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b6020820152915061144c565b60208082528101610ced81611503565b8051610ced81611067565b5f60208284031215611576576115765f80fd5b5f610fd18484611558565b5f61158d838584610f65565b50500190565b5f610fd1828486611581565b5f610ced6112218381565b6115b38361159f565b81545f1960089490940293841b1916921b91909117905550565b5f6106d68184846115aa565b81811015610dc1576115eb5f826115cd565b6001016115d9565b601f8211156106d6575f818152602090206020601f850104810160208510156116195750805b61162b6020601f8601048301826115d9565b5050505050565b8267ffffffffffffffff81111561164b5761164b610edf565b611655825461126f565b6116608282856115f3565b5f601f831160018114611691575f841561167a5750858201355b5f19600886021c19811660028602178655506116e8565b5f85815260208120601f198616915b828110156116c057888501358255602094850194600190920191016116a0565b868310156116db575f19601f88166008021c19858a01351682555b6001600288020188555050505b50505050505050565b8183525f602084019350611706838584610f65565b601f19601f840116611045565b60208082528101610fd18184866116f1565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f6112c2565b60208082528101610ced81611725565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061144c565b60208082528101610ced81611766565b604081016117c58285610ec2565b6110606020830184610ec2565b600381525f60208201621554d160ea1b815291506112c2565b604080825281016117fc818461101c565b90508181036020830152611060816117d2565b69ffffffffffffffffffff8116611070565b8051610ced8161180f565b8051610ced816110f1565b5f805f805f60a0868803121561184e5761184e5f80fd5b5f6118598888611821565b955050602061186a8882890161182c565b945050604061187b8882890161182c565b935050606061188c8882890161182c565b925050608061189d88828901611821565b9150509295509295909350565b601c81525f602082017f696e76616c69642062696e616e6365206f7261636c6520707269636500000000815291506112c2565b60208082528101610ced816118aa565b601c81525f602082017f757064617465644174206578636565647320626c6f636b2074696d6500000000815291506112c2565b60208082528101610ced816118ed565b601c81525f602082017f62696e616e6365206f7261636c65207072696365206578706972656400000000815291506112c2565b60208082528101610ced81611930565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ced57610ced611973565b80825b60018511156119d9578086048111156119b8576119b8611973565b60018516156119c657908102905b80026119d28560011c90565b945061199d565b94509492505050565b5f826119f057506001611060565b816119fc57505f611060565b8160018114611a125760028114611a1c57611a49565b6001915050611060565b60ff841115611a2d57611a2d611973565b8360020a915084821115611a4357611a43611973565b50611060565b5060208310610133831016604e8410600b8410161715611a7c575081810a83811115611a7757611a77611973565b611060565b611a89848484600161199a565b92509050818404811115611a9f57611a9f611973565b0292915050565b5f6110605f1984846119e2565b818102808215838204851417611acb57611acb611973565b5092915050565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061144c565b60208082528101610ced81611ad2565b60408101611b378285610ec2565b8181036020830152610fd1818461101c565b801515611070565b8051610ced81611b49565b5f60208284031215611b6f57611b6f5f80fd5b5f610fd18484611b51565b60608101611b888286610ec2565b611b956020830185610ec2565b81810360408301526105eb818461101c56fe7365744d61785374616c65506572696f6428737472696e672c75696e7432353629a2646970667358221220e10415d7ffbd005634ab082e486b496d2db8ba3fddd8d01da5c6016db52b095564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9EAB1AD6 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9EAB1AD6 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xFDFBC277 EQ PUSH2 0x273 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x99FE040E EQ PUSH2 0x21B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E83B6B8 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x3E83B6B8 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x475E7DE5 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x636B999A EQ PUSH2 0x1E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x11D3962 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x47A74B2 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x255CE37A EQ PUSH2 0x173 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0xCC SLOAD PUSH2 0x128 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x151 PUSH2 0x14C CALLDATASIZE PUSH1 0x4 PUSH2 0xFD9 JUMP JUMPDEST PUSH2 0x29E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x104F JUMP JUMPDEST PUSH2 0x171 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x341 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x171 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x355 JUMP JUMPDEST PUSH2 0x128 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x1B4 PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH2 0x128 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x10B7 JUMP JUMPDEST PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1102 JUMP JUMPDEST PUSH2 0x6DB JUMP JUMPDEST PUSH2 0x171 PUSH2 0x7AD JUMP JUMPDEST PUSH2 0x171 PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x128 JUMP JUMPDEST PUSH2 0x128 PUSH2 0x7F5 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x231 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH2 0x905 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x124D JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x128 JUMP JUMPDEST PUSH2 0x171 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x1085 JUMP JUMPDEST PUSH2 0x9EA JUMP JUMPDEST PUSH2 0x1B4 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0xFD9 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0xCA DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE SLOAD DUP2 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH1 0xCB DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH2 0x2C2 SWAP1 PUSH2 0x126F 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 0x2EE SWAP1 PUSH2 0x126F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x339 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x310 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x339 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x31C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x349 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0xA85 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x385 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x12C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38D PUSH2 0xA5B JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x3B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x130C JUMP JUMPDEST PUSH1 0xCC SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP3 AND SWAP1 PUSH32 0x6D1006252B3DD171AF76C28C184327BFDDC39F439A50E0AC7F418C660B8894B5 SWAP1 PUSH0 SWAP1 LOG3 POP PUSH1 0xCC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP2 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ADD PUSH2 0x45E JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x212721 PUSH1 0xE9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x12 PUSH2 0x52D JUMP JUMPDEST PUSH0 DUP5 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95D89B41 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x49D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x4C4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1370 JUMP JUMPDEST SWAP3 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x502 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x526 SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH1 0xFF AND SWAP2 POP POP JUMPDEST PUSH0 PUSH1 0xCB DUP4 PUSH1 0x40 MLOAD PUSH2 0x53E SWAP2 SWAP1 PUSH2 0x13FB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x557 SWAP1 PUSH2 0x126F 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 0x583 SWAP1 PUSH2 0x126F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5CE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5A5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5CE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5B1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH0 EQ PUSH2 0x5E1 JUMPI DUP1 SWAP3 POP JUMPDEST PUSH2 0x5EB DUP4 DUP4 PUSH2 0xB0A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x612 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x62B JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x62B JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x647 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1453 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x668 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0xC9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE PUSH2 0x68C DUP3 PUSH2 0xCF3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x6CD SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1476 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x6FC PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BA8 PUSH1 0x21 SWAP2 CODECOPY PUSH2 0xD2A JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x14B7 JUMP JUMPDEST DUP2 MLOAD PUSH0 SUB PUSH2 0x73B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x14F3 JUMP JUMPDEST DUP1 PUSH1 0xCA DUP4 PUSH1 0x40 MLOAD PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x13FB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x76A SWAP1 DUP4 SWAP1 PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x37839D4A80C5E3F2578F59515C911EE8CCE42383D7EBAA1C92AFCDE9871C4B58 DUP3 PUSH1 0x40 MLOAD PUSH2 0x7A1 SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x7B5 PUSH2 0xA5B JUMP JUMPDEST PUSH2 0x7BE PUSH0 PUSH2 0xDC5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x7EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1548 JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0xDC5 JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x178B8BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH32 0x94FE3821E0768EB35012484DB4DF61890F9A6CA5BFA984EF8FF717E73139FAFF SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 DUP3 SWAP1 PUSH4 0x178B8BF SWAP1 PUSH2 0x84D SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x868 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x88C SWAP2 SWAP1 PUSH2 0x1563 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1D9DABEF PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3B3B57DE SWAP1 PUSH2 0x8BD SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x10A9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D8 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8FC SWAP2 SWAP1 PUSH2 0x1563 JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x943 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657453796D626F6C4F7665727269646528737472696E672C737472696E6729 DUP2 MSTORE POP PUSH2 0xD2A JUMP JUMPDEST PUSH0 DUP4 SWAP1 SUB PUSH2 0x963 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x14F3 JUMP JUMPDEST DUP2 DUP2 PUSH1 0xCB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x977 SWAP3 SWAP2 SWAP1 PUSH2 0x1593 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP2 DUP3 PUSH2 0x992 SWAP3 SWAP2 SWAP1 PUSH2 0x1632 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9A3 SWAP3 SWAP2 SWAP1 PUSH2 0x1593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xCEB1F47AA91B96F02EA70E1DEED25FE154AD1885AEA509BD7222F9EEC0A0BDA5 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9DC SWAP3 SWAP2 SWAP1 PUSH2 0x1713 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x9F2 PUSH2 0xA5B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xA23 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1756 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xAAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0xAFE SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x17B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xB2E JUMPI PUSH2 0xB27 PUSH2 0x7F5 JUMP JUMPDEST SWAP1 POP PUSH2 0xB3C JUMP JUMPDEST POP PUSH1 0xCC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH0 DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBFDA5E71 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB85 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xBA9 SWAP2 SWAP1 PUSH2 0x1837 JUMP JUMPDEST POP SWAP4 POP POP SWAP3 POP POP PUSH0 DUP3 SGT PUSH2 0xBCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x18DD JUMP JUMPDEST DUP1 TIMESTAMP LT ISZERO PUSH2 0xBEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH0 DUP2 TIMESTAMP SUB SWAP1 POP PUSH1 0xCA DUP8 PUSH1 0x40 MLOAD PUSH2 0xC05 SWAP2 SWAP1 PUSH2 0x13FB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0xC33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3748CCAD PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x6E91995A SWAP1 PUSH2 0xC61 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC7C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xCA0 SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0xCB0 DUP8 PUSH1 0x12 PUSH2 0x1987 JUMP JUMPDEST PUSH2 0xCBB SWAP1 PUSH1 0xA PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0xCC6 DUP3 PUSH1 0x12 PUSH2 0x1987 JUMP JUMPDEST PUSH2 0xCD1 SWAP1 PUSH1 0xA PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0xCDB SWAP1 DUP7 PUSH2 0x1AB3 JUMP JUMPDEST PUSH2 0xCE5 SWAP2 SWAP1 PUSH2 0x1AB3 JUMP JUMPDEST SWAP6 POP POP POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH2 0xD21 PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0xE0C JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xD5C SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1B29 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD77 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xD9B SWAP2 SWAP1 PUSH2 0x1B5C JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xDC1 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B7A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x352 DUP2 PUSH2 0xE32 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH2 0x7BE PUSH2 0xE83 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xEA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37C SWAP1 PUSH2 0x1B19 JUMP JUMPDEST PUSH2 0x7BE CALLER PUSH2 0xDC5 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCED JUMP JUMPDEST PUSH2 0xECB DUP2 PUSH2 0xEB2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0xEC2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF19 JUMPI PUSH2 0xF19 PUSH2 0xEDF JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xF2A PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xF36 DUP3 DUP3 PUSH2 0xEF3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF54 JUMPI PUSH2 0xF54 PUSH2 0xEDF JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xF82 PUSH2 0xF7D DUP5 PUSH2 0xF3B JUMP JUMPDEST PUSH2 0xF20 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xF9C JUMPI PUSH2 0xF9C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFA7 DUP5 DUP3 DUP6 PUSH2 0xF65 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFC1 JUMPI PUSH2 0xFC1 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xFD1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xF70 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFEC JUMPI PUSH2 0xFEC PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1005 JUMPI PUSH2 0x1005 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFD1 DUP5 DUP3 DUP6 ADD PUSH2 0xFAF JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x1025 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x103C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1011 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1060 DUP2 DUP5 PUSH2 0x101C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1070 DUP2 PUSH2 0xEB2 JUMP JUMPDEST DUP2 EQ PUSH2 0x352 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xCED DUP2 PUSH2 0x1067 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1098 JUMPI PUSH2 0x1098 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x107A JUMP JUMPDEST DUP1 PUSH2 0xECB JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0x10A3 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10CB JUMPI PUSH2 0x10CB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x10D6 DUP6 DUP6 PUSH2 0x107A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10E7 DUP6 DUP3 DUP7 ADD PUSH2 0x107A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x1070 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xCED DUP2 PUSH2 0x10F1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1116 JUMPI PUSH2 0x1116 PUSH0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x112F JUMPI PUSH2 0x112F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113B DUP6 DUP3 DUP7 ADD PUSH2 0xFAF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10E7 DUP6 DUP3 DUP7 ADD PUSH2 0x10F7 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x115F JUMPI PUSH2 0x115F PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1179 JUMPI PUSH2 0x1179 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1193 JUMPI PUSH2 0x1193 PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x11B0 JUMPI PUSH2 0x11B0 PUSH0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11C9 JUMPI PUSH2 0x11C9 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D5 DUP8 DUP3 DUP9 ADD PUSH2 0x114C JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11F6 JUMPI PUSH2 0x11F6 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1202 DUP8 DUP3 DUP9 ADD PUSH2 0x114C JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCED PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1224 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xCED DUP3 PUSH2 0x120E JUMP JUMPDEST PUSH0 PUSH2 0xCED DUP3 PUSH2 0x1230 JUMP JUMPDEST PUSH2 0xECB DUP2 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0x1244 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1283 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1295 JUMPI PUSH2 0x1295 PUSH2 0x125B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x129B JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x736964526567697374727941646472657373206D757374206265207A65726F00 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x12D9 JUMP JUMPDEST PUSH0 PUSH2 0x1329 PUSH2 0xF7D DUP5 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1343 JUMPI PUSH2 0x1343 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFA7 DUP5 DUP3 DUP6 PUSH2 0x1011 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1360 JUMPI PUSH2 0x1360 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFD1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x131C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1383 JUMPI PUSH2 0x1383 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x139C JUMPI PUSH2 0x139C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xFD1 DUP5 DUP3 DUP6 ADD PUSH2 0x134E JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x1070 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x13A8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13CF JUMPI PUSH2 0x13CF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x13B1 JUMP JUMPDEST PUSH0 PUSH2 0x13E3 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x13F1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1011 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1060 DUP3 DUP5 PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1406 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0xCED JUMP JUMPDEST PUSH2 0xECB DUP2 PUSH2 0x1463 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xCED DUP3 DUP5 PUSH2 0x146D JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x7374616C6520706572696F642063616E2774206265207A65726F000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1484 JUMP JUMPDEST PUSH1 0x16 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH22 0x73796D626F6C2063616E6E6F7420626520656D707479 PUSH1 0x50 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x14C7 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x144C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1503 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x1067 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1576 JUMPI PUSH2 0x1576 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x1558 JUMP JUMPDEST PUSH0 PUSH2 0x158D DUP4 DUP6 DUP5 PUSH2 0xF65 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xFD1 DUP3 DUP5 DUP7 PUSH2 0x1581 JUMP JUMPDEST PUSH0 PUSH2 0xCED PUSH2 0x1221 DUP4 DUP2 JUMP JUMPDEST PUSH2 0x15B3 DUP4 PUSH2 0x159F JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x6D6 DUP2 DUP5 DUP5 PUSH2 0x15AA JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDC1 JUMPI PUSH2 0x15EB PUSH0 DUP3 PUSH2 0x15CD JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x15D9 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x6D6 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1619 JUMPI POP DUP1 JUMPDEST PUSH2 0x162B PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x15D9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x164B JUMPI PUSH2 0x164B PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x1655 DUP3 SLOAD PUSH2 0x126F JUMP JUMPDEST PUSH2 0x1660 DUP3 DUP3 DUP6 PUSH2 0x15F3 JUMP JUMPDEST PUSH0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1691 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x167A JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x16E8 JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x16C0 JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x16A0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x16DB JUMPI PUSH0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x1706 DUP4 DUP6 DUP5 PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x1045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xFD1 DUP2 DUP5 DUP7 PUSH2 0x16F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1725 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x144C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x17C5 DUP3 DUP6 PUSH2 0xEC2 JUMP JUMPDEST PUSH2 0x1060 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xEC2 JUMP JUMPDEST PUSH1 0x3 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH3 0x1554D1 PUSH1 0xEA SHL DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x17FC DUP2 DUP5 PUSH2 0x101C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1060 DUP2 PUSH2 0x17D2 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1070 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x180F JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x10F1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x184E JUMPI PUSH2 0x184E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1859 DUP9 DUP9 PUSH2 0x1821 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x186A DUP9 DUP3 DUP10 ADD PUSH2 0x182C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x187B DUP9 DUP3 DUP10 ADD PUSH2 0x182C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x188C DUP9 DUP3 DUP10 ADD PUSH2 0x182C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x189D DUP9 DUP3 DUP10 ADD PUSH2 0x1821 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C69642062696E616E6365206F7261636C6520707269636500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x18AA JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757064617465644174206578636565647320626C6F636B2074696D6500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x18ED JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x62696E616E6365206F7261636C65207072696365206578706972656400000000 DUP2 MSTORE SWAP2 POP PUSH2 0x12C2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1930 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xCED JUMPI PUSH2 0xCED PUSH2 0x1973 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x19D9 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x19B8 JUMPI PUSH2 0x19B8 PUSH2 0x1973 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x19C6 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x19D2 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x199D JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x19F0 JUMPI POP PUSH1 0x1 PUSH2 0x1060 JUMP JUMPDEST DUP2 PUSH2 0x19FC JUMPI POP PUSH0 PUSH2 0x1060 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1A12 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1A1C JUMPI PUSH2 0x1A49 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x1060 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1A2D JUMPI PUSH2 0x1A2D PUSH2 0x1973 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x1A43 JUMPI PUSH2 0x1A43 PUSH2 0x1973 JUMP JUMPDEST POP PUSH2 0x1060 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1A7C JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x1A77 JUMPI PUSH2 0x1A77 PUSH2 0x1973 JUMP JUMPDEST PUSH2 0x1060 JUMP JUMPDEST PUSH2 0x1A89 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x199A JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x1A9F JUMPI PUSH2 0x1A9F PUSH2 0x1973 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1060 PUSH0 NOT DUP5 DUP5 PUSH2 0x19E2 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x1ACB JUMPI PUSH2 0x1ACB PUSH2 0x1973 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x144C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xCED DUP2 PUSH2 0x1AD2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1B37 DUP3 DUP6 PUSH2 0xEC2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xFD1 DUP2 DUP5 PUSH2 0x101C JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x1070 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xCED DUP2 PUSH2 0x1B49 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B6F JUMPI PUSH2 0x1B6F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xFD1 DUP5 DUP5 PUSH2 0x1B51 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1B88 DUP3 DUP7 PUSH2 0xEC2 JUMP JUMPDEST PUSH2 0x1B95 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xEC2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x5EB DUP2 DUP5 PUSH2 0x101C JUMP INVALID PUSH20 0x65744D61785374616C65506572696F6428737472 PUSH10 0x6E672C75696E74323536 0x29 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE1 DIV ISZERO 0xD7 SELFDESTRUCT 0xBD STOP JUMP CALLVALUE 0xAB ADDMOD 0x2E BASEFEE PUSH12 0x496D2DB8BA3FDDD8D01DA5C6 ADD PUSH14 0xB52B095564736F6C634300081900 CALLER ","sourceMap":"626:6093:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1308:34;;;;;-1:-1:-1;;;;;1308:34:49;;;;;;;;;;:::i;:::-;;;;;;;;1152:40;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2102:147:15:-;;;;;;:::i;:::-;;:::i;:::-;;3830:365:49;;;;;;:::i;:::-;;:::i;878:77::-;;913:42;878:77;;4981:577;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;747:33::-;;;;;-1:-1:-1;;;;;747:33:49;;;2360:180;;;;;;:::i;:::-;;:::i;2718:411::-;;;;;;:::i;:::-;;:::i;2085:101:4:-;;;:::i;2031:212:3:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;4357:468:49;;;:::i;3311:335::-;;;;;;:::i;:::-;;:::i;2345:125:15:-;2442:21;;-1:-1:-1;;;;;2442:21:15;2345:125;;;;;;:::i;1144:99:3:-;1223:13;;-1:-1:-1;;;;;1223:13:3;1144:99;;1436:178;;;;;;:::i;:::-;;:::i;1020:48:49:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2102:147:15:-;1355:13:4;:11;:13::i;:::-;2195:47:15::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;3830:365:49:-;3932:22;-1:-1:-1;;;;;1910:21:49;;1906:58;;1933:31;;-1:-1:-1;;;1933:31:49;;;;;;;:::i;:::-;;;;;;;;1906:58;1355:13:4::1;:11;:13::i;:::-;3980:18:49::2;::::0;-1:-1:-1;;;;;3980:18:49::2;:32:::0;3976:79:::2;;4014:41;;-1:-1:-1::0;;;4014:41:49::2;;;;;;;:::i;3976:79::-;4090:19;::::0;4070:64:::2;::::0;-1:-1:-1;;;;;4070:64:49;;::::2;::::0;4090:19:::2;::::0;4070:64:::2;::::0;4090:19:::2;::::0;4070:64:::2;-1:-1:-1::0;4144:19:49::2;:44:::0;;-1:-1:-1;;;;;;4144:44:49::2;-1:-1:-1::0;;;;;4144:44:49;;;::::2;::::0;;;::::2;::::0;;3830:365::o;4981:577::-;5035:7;5054:20;5035:7;-1:-1:-1;;;;;;;5115:17:49;;;5111:242;;-1:-1:-1;;5148:14:49;;;;;;;;;;;;-1:-1:-1;;;5148:14:49;;;;5187:2;5111:242;;;5220:20;5258:5;5220:44;;5287:5;-1:-1:-1;;;;;5287:12:49;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5287:14:49;;;;;;;;;;;;:::i;:::-;5278:23;;5326:5;-1:-1:-1;;;;;5326:14:49;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5315:27;;;;5206:147;5111:242;5363:28;5394:7;5402:6;5394:15;;;;;;:::i;:::-;;;;;;;;;;;;;5363:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5430:14;5424:28;5456:1;5424:33;5420:87;;5482:14;5473:23;;5420:87;5524:27;5534:6;5542:8;5524:9;:27::i;:::-;5517:34;4981:577;-1:-1:-1;;;;;4981:577:49:o;2360:180::-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;2454:18:49::1;:40:::0;;-1:-1:-1;;;;;;2454:40:49::1;-1:-1:-1::0;;;;;2454:40:49;::::1;;::::0;;2504:29:::1;2528:4:::0;2504:23:::1;:29::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3647:99;3269:483;2360:180:49;;:::o;2718:411::-;2811:56;;;;;;;;;;;;;;;;;;:19;:56::i;:::-;2881:15;2900:1;2881:20;2877:62;;2903:36;;-1:-1:-1;;;2903:36:49;;;;;;;:::i;2877:62::-;2959:6;2953:20;2977:1;2953:25;2949:63;;2980:32;;-1:-1:-1;;;2980:32:49;;;;;;;:::i;2949:63::-;3048:15;3023:14;3038:6;3023:22;;;;;;:::i;:::-;;;;;;;;;;;;;;:40;;;;3078:44;;3098:6;;3078:44;:::i;:::-;;;;;;;;;3106:15;3078:44;;;;;;:::i;:::-;;;;;;;;2718:411;;:::o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:3:-;1223:13;;965:10:8;;-1:-1:-1;;;;;1223:13:3;2130:24;;2122:78;;;;-1:-1:-1;;;2122:78:3;;;;;;;:::i;:::-;2210:26;2229:6;2210:18;:26::i;4357:468:49:-;4583:18;;4644:30;;-1:-1:-1;;;4644:30:49;;4412:7;;4450:66;;-1:-1:-1;;;;;4583:18:49;;;;4412:7;;4583:18;;4644:20;;:30;;4450:66;;4644:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4789:29;;-1:-1:-1;;;4789:29:49;;4612:62;;-1:-1:-1;4612:62:49;;-1:-1:-1;;;;;4789:19:49;;;;;:29;;4809:8;;4789:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4782:36;;;;;;4357:468;:::o;3311:335::-;3413:55;;;;;;;;;;;;;;;;;;:19;:55::i;:::-;3506:1;3482:25;;;3478:63;;3509:32;;-1:-1:-1;;;3509:32:49;;;;;;;:::i;3478:63::-;3570:14;;3552:7;3560:6;;3552:15;;;;;;;:::i;:::-;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;3616:6;;3599:40;;;;;;;:::i;:::-;;;;;;;;;3624:14;;3599:40;;;;;;;:::i;:::-;;;;;;;;3311:335;;;;:::o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1525::3::1;:24:::0;;-1:-1:-1;;;;;1525:24:3;::::1;-1:-1:-1::0;;;;;;1525:24:3;;::::1;::::0;::::1;::::0;;;1589:7:::1;1534:6:4::0;;-1:-1:-1;;;;;1534:6:4;;1462:85;1589:7:3::1;-1:-1:-1::0;;;;;1564:43:3::1;;;;;;;;;;;1436:178:::0;:::o;1620:130:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2641:425:15:-;-1:-1:-1;;;;;2733:44:15;;2725:94;;;;-1:-1:-1;;;2725:94:15;;;;;;;:::i;:::-;2871:21;;;-1:-1:-1;;;;;2903:70:15;;;-1:-1:-1;;;;;;2903:70:15;;;;;;2988:71;;2871:21;;;2988:71;;;;2871:21;;2951;;2988:71;:::i;:::-;;;;;;;;2715:351;2641:425;:::o;5564:1153:49:-;5714:18;;5646:7;;;;-1:-1:-1;;;;;5714:18:49;:32;5710:387;;5893:24;:22;:24::i;:::-;5856:62;;5710:387;;;-1:-1:-1;6066:19:49;;-1:-1:-1;;;;;6066:19:49;5710:387;6110:13;6127:17;6150:12;-1:-1:-1;;;;;6150:34:49;;6185:6;6150:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6107:92;;;;;;;6223:1;6213:6;:11;6209:55;;6226:38;;-1:-1:-1;;;6226:38:49;;;;;;;:::i;6209:55::-;6296:9;6278:15;:27;6274:71;;;6307:38;;-1:-1:-1;;;6307:38:49;;;;;;;:::i;6274:71::-;6356:17;6437:9;6419:15;:27;6407:39;;6482:14;6497:6;6482:22;;;;;;:::i;:::-;;;;;;;;;;;;;;6470:9;:34;6466:78;;;6506:38;;-1:-1:-1;;;6506:38:49;;;;;;;:::i;6466:78::-;6578:42;;-1:-1:-1;;;6578:42:49;;6555:20;;-1:-1:-1;;;;;6578:27:49;;;;;:42;;6606:6;;6578:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6555:65;;;-1:-1:-1;6695:13:49;6700:8;6695:2;:13;:::i;:::-;6688:21;;:2;:21;:::i;:::-;6664:17;6669:12;6664:2;:17;:::i;:::-;6657:25;;:2;:25;:::i;:::-;6638:45;;6646:6;6638:45;:::i;:::-;6637:73;;;;:::i;:::-;6630:80;;;;;;;5564:1153;;;;;:::o;1419:194:15:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1519:21:15::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;3203:282::-:0;3304:21;;:60;;-1:-1:-1;;;3304:60:15;;3281:20;;-1:-1:-1;;;;;3304:21:15;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;-1:-1:-1;;;3418:50:15;;;;;;;;;;:::i;3375:104::-;3271:214;3203:282;:::o;1798:153:3:-;1887:13;1880:20;;-1:-1:-1;;;;;;1880:20:3;;;1910:34;1935:8;1910:24;:34::i;889:100::-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;956:26:3::1;:24;:26::i;1619:164:15:-:0;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;2687:187:4:-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1125:111::-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;139:96:101:-:0;176:7;-1:-1:-1;;;;;73:54:101;;205:24;7:126;241:118;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;496:2;481:18;;509:71;485:9;553:6;509:71;:::i;1274:180::-;-1:-1:-1;;;1319:1:101;1312:88;1419:4;1416:1;1409:15;1443:4;1440:1;1433:15;1460:281;-1:-1:-1;;1258:2:101;1238:14;;1234:28;1535:6;1531:40;1673:6;1661:10;1658:22;1637:18;1625:10;1622:34;1619:62;1616:88;;;1684:18;;:::i;:::-;1720:2;1713:22;-1:-1:-1;;1460:281:101:o;1747:129::-;1781:6;1808:20;659:2;653:9;;593:75;1808:20;1798:30;;1837:33;1865:4;1857:6;1837:33;:::i;:::-;1747:129;;;:::o;1882:308::-;1944:4;2034:18;2026:6;2023:30;2020:56;;;2056:18;;:::i;:::-;-1:-1:-1;;1258:2:101;1238:14;;1234:28;2178:4;2168:15;;1882:308;-1:-1:-1;;1882:308:101:o;2196:148::-;2294:6;2289:3;2284;2271:30;-1:-1:-1;2335:1:101;2317:16;;2310:27;2196:148::o;2350:425::-;2428:5;2453:66;2469:49;2511:6;2469:49;:::i;:::-;2453:66;:::i;:::-;2444:75;;2542:6;2535:5;2528:21;2580:4;2573:5;2569:16;2618:3;2609:6;2604:3;2600:16;2597:25;2594:112;;;2625:79;626:6093:49;;;2625:79:101;2715:54;2762:6;2757:3;2752;2715:54;:::i;:::-;2434:341;2350:425;;;;;:::o;2795:340::-;2851:5;2900:3;2893:4;2885:6;2881:17;2877:27;2867:122;;2908:79;626:6093:49;;;2908:79:101;3025:6;3012:20;3050:79;3125:3;3117:6;3110:4;3102:6;3098:17;3050:79;:::i;:::-;3041:88;2795:340;-1:-1:-1;;;;2795:340:101:o;3141:509::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:119;;;3265:79;626:6093:49;;;3265:79:101;3385:31;;3443:18;3432:30;;3429:117;;;3465:79;626:6093:49;;;3465:79:101;3570:63;3625:7;3616:6;3605:9;3601:22;3570:63;:::i;3936:139::-;4025:6;4020:3;4015;4009:23;-1:-1:-1;4066:1:101;4048:16;;4041:27;3936:139::o;4081:377::-;4169:3;4197:39;4230:5;3736:12;;3656:99;4197:39;3867:19;;;3919:4;3910:14;;4245:78;;4332:65;4390:6;4385:3;4378:4;4371:5;4367:16;4332:65;:::i;:::-;-1:-1:-1;;1258:2:101;1238:14;;1234:28;4422:29;4413:39;;;;4081:377;-1:-1:-1;;;4081:377:101:o;4464:313::-;4615:2;4628:47;;;4600:18;;4692:78;4600:18;4756:6;4692:78;:::i;:::-;4684:86;4464:313;-1:-1:-1;;;4464:313:101:o;4783:122::-;4856:24;4874:5;4856:24;:::i;:::-;4849:5;4846:35;4836:63;;4895:1;4892;4885:12;4911:139;4982:20;;5011:33;4982:20;5011:33;:::i;5056:329::-;5115:6;5164:2;5152:9;5143:7;5139:23;5135:32;5132:119;;;5170:79;626:6093:49;;;5170:79:101;5290:1;5315:53;5360:7;5340:9;5315:53;:::i;5474:118::-;5579:5;5561:24;5391:77;5598:222;5729:2;5714:18;;5742:71;5718:9;5786:6;5742:71;:::i;5826:474::-;5894:6;5902;5951:2;5939:9;5930:7;5926:23;5922:32;5919:119;;;5957:79;626:6093:49;;;5957:79:101;6077:1;6102:53;6147:7;6127:9;6102:53;:::i;:::-;6092:63;;6048:117;6204:2;6230:53;6275:7;6266:6;6255:9;6251:22;6230:53;:::i;:::-;6220:63;;6175:118;5826:474;;;;;:::o;6306:122::-;6397:5;6379:24;5391:77;6434:139;6505:20;;6534:33;6505:20;6534:33;:::i;6579:654::-;6657:6;6665;6714:2;6702:9;6693:7;6689:23;6685:32;6682:119;;;6720:79;626:6093:49;;;6720:79:101;6840:31;;6898:18;6887:30;;6884:117;;;6920:79;626:6093:49;;;6920:79:101;7025:63;7080:7;7071:6;7060:9;7056:22;7025:63;:::i;:::-;7015:73;;6811:287;7137:2;7163:53;7208:7;7199:6;7188:9;7184:22;7163:53;:::i;7499:553::-;7557:8;7567:6;7617:3;7610:4;7602:6;7598:17;7594:27;7584:122;;7625:79;626:6093:49;;;7625:79:101;-1:-1:-1;7725:20:101;;7768:18;7757:30;;7754:117;;;7790:79;626:6093:49;;;7790:79:101;7904:4;7896:6;7892:17;7880:29;;7958:3;7950:4;7942:6;7938:17;7928:8;7924:32;7921:41;7918:128;;;7965:79;626:6093:49;;;7965:79:101;7499:553;;;;;:::o;8058:874::-;8150:6;8158;8166;8174;8223:2;8211:9;8202:7;8198:23;8194:32;8191:119;;;8229:79;626:6093:49;;;8229:79:101;8349:31;;8407:18;8396:30;;8393:117;;;8429:79;626:6093:49;;;8429:79:101;8542:65;8599:7;8590:6;8579:9;8575:22;8542:65;:::i;:::-;8524:83;;;;8320:297;8684:2;8673:9;8669:18;8656:32;8715:18;8707:6;8704:30;8701:117;;;8737:79;626:6093:49;;;8737:79:101;8850:65;8907:7;8898:6;8887:9;8883:22;8850:65;:::i;:::-;8058:874;;;;-1:-1:-1;8832:83:101;-1:-1:-1;;;;8058:874:101:o;9004:142::-;9054:9;9087:53;-1:-1:-1;;;;;73:54:101;;9105:34;5391:77;9114:24;5457:5;5391:77;9105:34;-1:-1:-1;;;;;73:54:101;;7:126;9152;9202:9;9235:37;9266:5;9235:37;:::i;9284:158::-;9366:9;9399:37;9430:5;9399:37;:::i;9448:195::-;9567:69;9630:5;9567:69;:::i;9649:286::-;9812:2;9797:18;;9825:103;9801:9;9901:6;9825:103;:::i;9941:180::-;-1:-1:-1;;;9986:1:101;9979:88;10086:4;10083:1;10076:15;10110:4;10107:1;10100:15;10127:320;10208:1;10198:12;;10255:1;10245:12;;;10266:81;;10332:4;10324:6;10320:17;10310:27;;10266:81;10394:2;10386:6;10383:14;10363:18;10360:38;10357:84;;10413:18;;:::i;:::-;10178:269;10127:320;;;:::o;10630:366::-;10857:2;3867:19;;10772:3;3919:4;3910:14;;-1:-1:-1;;;10570:47:101;;10786:74;-1:-1:-1;10869:93:101;-1:-1:-1;10987:2:101;10978:12;;10630:366::o;11002:419::-;11206:2;11219:47;;;11191:18;;11283:131;11191:18;11283:131;:::i;11614:366::-;11841:2;3867:19;;11756:3;3919:4;3910:14;;11567:33;11544:57;;11770:74;-1:-1:-1;11853:93:101;11427:181;11986:419;12190:2;12203:47;;;12175:18;;12267:131;12175:18;12267:131;:::i;12411:434::-;12500:5;12525:66;12541:49;12583:6;12541:49;:::i;12525:66::-;12516:75;;12614:6;12607:5;12600:21;12652:4;12645:5;12641:16;12690:3;12681:6;12676:3;12672:16;12669:25;12666:112;;;12697:79;626:6093:49;;;12697:79:101;12787:52;12832:6;12827:3;12822;12787:52;:::i;12865:355::-;12932:5;12981:3;12974:4;12966:6;12962:17;12958:27;12948:122;;12989:79;626:6093:49;;;12989:79:101;13099:6;13093:13;13124:90;13210:3;13202:6;13195:4;13187:6;13183:17;13124:90;:::i;13226:524::-;13306:6;13355:2;13343:9;13334:7;13330:23;13326:32;13323:119;;;13361:79;626:6093:49;;;13361:79:101;13481:24;;13532:18;13521:30;;13518:117;;;13554:79;626:6093:49;;;13554:79:101;13659:74;13725:7;13716:6;13705:9;13701:22;13659:74;:::i;13848:118::-;13831:4;13820:16;;13919:22;13756:86;13972:139;14052:13;;14074:31;14052:13;14074:31;:::i;14117:347::-;14185:6;14234:2;14222:9;14213:7;14209:23;14205:32;14202:119;;;14240:79;626:6093:49;;;14240:79:101;14360:1;14385:62;14439:7;14419:9;14385:62;:::i;14624:390::-;14730:3;14758:39;14791:5;3736:12;;3656:99;14758:39;14911:65;14969:6;14964:3;14957:4;14950:5;14946:16;14911:65;:::i;:::-;14992:16;;;;;14624:390;-1:-1:-1;;14624:390:101:o;15020:275::-;15152:3;15174:95;15265:3;15256:6;15174:95;:::i;15540:366::-;15767:2;3867:19;;15682:3;3919:4;3910:14;;15441:34;15418:58;;-1:-1:-1;;;15505:2:101;15493:15;;15486:41;15696:74;-1:-1:-1;15779:93:101;-1:-1:-1;15897:2:101;15888:12;;15540:366::o;15912:419::-;16116:2;16129:47;;;16101:18;;16193:131;16101:18;16193:131;:::i;16428:154::-;16484:9;13831:4;13820:16;;16517:59;13756:86;16588:143;16681:43;16718:5;16681:43;:::i;16737:234::-;16874:2;16859:18;;16887:77;16863:9;16937:6;16887:77;:::i;17159:366::-;17386:2;3867:19;;17301:3;3919:4;3910:14;;17117:28;17094:52;;17315:74;-1:-1:-1;17398:93:101;16977:176;17531:419;17735:2;17748:47;;;17720:18;;17812:131;17720:18;17812:131;:::i;18134:366::-;18361:2;3867:19;;18276:3;3919:4;3910:14;;-1:-1:-1;;;18073:48:101;;18290:74;-1:-1:-1;18373:93:101;17956:172;18506:419;18710:2;18723:47;;;18695:18;;18787:131;18695:18;18787:131;:::i;19165:366::-;19392:2;3867:19;;19307:3;3919:4;3910:14;;19071:34;19048:58;;-1:-1:-1;;;19135:2:101;19123:15;;19116:36;19321:74;-1:-1:-1;19404:93:101;18931:228;19537:419;19741:2;19754:47;;;19726:18;;19818:131;19726:18;19818:131;:::i;20397:143::-;20479:13;;20501:33;20479:13;20501:33;:::i;20546:351::-;20616:6;20665:2;20653:9;20644:7;20640:23;20636:32;20633:119;;;20671:79;626:6093:49;;;20671:79:101;20791:1;20816:64;20872:7;20852:9;20816:64;:::i;21719:330::-;21835:3;21955:56;22004:6;21999:3;21992:5;21955:56;:::i;:::-;-1:-1:-1;;22027:16:101;;21719:330::o;22055:295::-;22197:3;22219:105;22320:3;22311:6;22303;22219:105;:::i;23217:142::-;23267:9;23300:53;23318:34;23345:5;23318:34;5391:77;23446:269;23556:39;23587:7;23556:39;:::i;:::-;23645:11;;-1:-1:-1;;22937:1:101;22921:18;;;;22789:16;;;23146:9;23135:21;22789:16;;23175:30;;;;23604:105;;-1:-1:-1;23446:269:101:o;23800:189::-;23766:3;23918:65;23976:6;23968;23962:4;23918:65;:::i;23995:186::-;24072:3;24065:5;24062:14;24055:120;;;24126:39;24163:1;24156:5;24126:39;:::i;:::-;24099:1;24088:13;24055:120;;24187:543;24288:2;24283:3;24280:11;24277:446;;;22508:4;22544:14;;;22588:4;22575:18;;22690:2;22685;22674:14;;22670:23;24396:8;24392:44;24589:2;24577:10;24574:18;24571:49;;;-1:-1:-1;24610:8:101;24571:49;24633:80;22690:2;22685;22674:14;;22670:23;24679:8;24675:37;24662:11;24633:80;:::i;:::-;24292:431;;24187:543;;;:::o;25333:1403::-;25497:3;25566:18;25558:6;25555:30;25552:56;;;25588:18;;:::i;:::-;25632:38;25664:4;25658:11;25632:38;:::i;:::-;25717:67;25777:6;25769;25763:4;25717:67;:::i;:::-;25811:1;25840:2;25832:6;25829:14;25857:1;25852:632;;;;26528:1;26545:6;26542:84;;;-1:-1:-1;26592:19:101;;;26579:33;26542:84;-1:-1:-1;;24969:1:101;24965:13;;24830:16;24932:56;25007:15;;25314:1;25310:11;;25301:21;26646:4;26639:81;26501:229;25822:908;;25852:632;22508:4;22544:14;;;22588:4;22575:18;;-1:-1:-1;;25888:22:101;;;26011:215;26025:7;26022:1;26019:14;26011:215;;;26102:19;;;26089:33;26074:49;;26209:2;26194:18;;;;26162:1;26150:14;;;;26041:12;26011:215;;;26254:6;26245:7;26242:19;26239:186;;;-1:-1:-1;;26404:4:101;26392:17;;24969:1;24965:13;24830:16;24932:56;26310:19;;;26297:33;25007:15;26347:64;;26239:186;26471:1;26467;26459:6;26455:14;26451:22;26445:4;26438:36;25859:625;;;25822:908;;25432:1304;;;25333:1403;;;:::o;26766:317::-;3867:19;;;26864:3;3919:4;3910:14;;26878:78;;26966:56;27015:6;27010:3;27003:5;26966:56;:::i;:::-;-1:-1:-1;;1258:2:101;1238:14;;1234:28;27047:29;1166:102;27089:333;27250:2;27263:47;;;27235:18;;27327:88;27235:18;27401:6;27393;27327:88;:::i;27616:366::-;27843:2;3867:19;;;27568:34;3910:14;;27545:58;;;27758:3;27855:93;27428:182;27988:419;28192:2;28205:47;;;28177:18;;28269:131;28177:18;28269:131;:::i;28643:366::-;28870:2;3867:19;;28785:3;3919:4;3910:14;;28553:34;28530:58;;-1:-1:-1;;;28617:2:101;28605:15;;28598:32;28799:74;-1:-1:-1;28882:93:101;28413:224;29015:419;29219:2;29232:47;;;29204:18;;29296:131;29204:18;29296:131;:::i;29440:332::-;29599:2;29584:18;;29612:71;29588:9;29656:6;29612:71;:::i;:::-;29693:72;29761:2;29750:9;29746:18;29737:6;29693:72;:::i;29937:365::-;30164:1;3867:19;;30079:3;3919:4;3910:14;;-1:-1:-1;;;29895:29:101;;30093:73;-1:-1:-1;30175:93:101;29778:153;30308:620;30560:2;30573:47;;;30545:18;;30637:78;30545:18;30701:6;30637:78;:::i;:::-;30629:86;;30762:9;30756:4;30752:20;30747:2;30736:9;30732:18;30725:48;30790:131;30916:4;30790:131;:::i;31045:120::-;31010:22;30999:34;;31117:23;30934:105;31171:141;31252:13;;31274:32;31252:13;31274:32;:::i;31526:141::-;31607:13;;31629:32;31607:13;31629:32;:::i;31822:971::-;31925:6;31933;31941;31949;31957;32006:3;31994:9;31985:7;31981:23;31977:33;31974:120;;;32013:79;626:6093:49;;;32013:79:101;32133:1;32158:63;32213:7;32193:9;32158:63;:::i;:::-;32148:73;;32104:127;32270:2;32296:63;32351:7;32342:6;32331:9;32327:22;32296:63;:::i;:::-;32286:73;;32241:128;32408:2;32434:64;32490:7;32481:6;32470:9;32466:22;32434:64;:::i;:::-;32424:74;;32379:129;32547:2;32573:64;32629:7;32620:6;32609:9;32605:22;32573:64;:::i;:::-;32563:74;;32518:129;32686:3;32713:63;32768:7;32759:6;32748:9;32744:22;32713:63;:::i;:::-;32703:73;;32657:129;31822:971;;;;;;;;:::o;32983:366::-;33210:2;3867:19;;33125:3;3919:4;3910:14;;32939:30;32916:54;;33139:74;-1:-1:-1;33222:93:101;32799:178;33355:419;33559:2;33572:47;;;33544:18;;33636:131;33544:18;33636:131;:::i;33964:366::-;34191:2;3867:19;;34106:3;3919:4;3910:14;;33920:30;33897:54;;34120:74;-1:-1:-1;34203:93:101;33780:178;34336:419;34540:2;34553:47;;;34525:18;;34617:131;34525:18;34617:131;:::i;34945:366::-;35172:2;3867:19;;35087:3;3919:4;3910:14;;34901:30;34878:54;;35101:74;-1:-1:-1;35184:93:101;34761:178;35317:419;35521:2;35534:47;;;35506:18;;35598:131;35506:18;35598:131;:::i;35742:180::-;-1:-1:-1;;;35787:1:101;35780:88;35887:4;35884:1;35877:15;35911:4;35908:1;35901:15;35928:194;36059:9;;;36081:11;;;36078:37;;;36095:18;;:::i;36236:848::-;36328:6;36352:5;36366:712;36387:1;36377:8;36374:15;36366:712;;;36482:4;36477:3;36473:14;36467:4;36464:24;36461:50;;;36491:18;;:::i;:::-;36541:1;36531:8;36527:16;36524:451;;;36945:16;;;;36524:451;36996:15;;37036:32;37059:8;36214:1;36210:13;;36128:102;37036:32;37024:44;;36366:712;;;36236:848;;;;;;;:::o;37090:1073::-;37144:5;37335:8;37325:40;;-1:-1:-1;37356:1:101;37358:5;;37325:40;37384:4;37374:36;;-1:-1:-1;37401:1:101;37403:5;;37374:36;37470:4;37518:1;37513:27;;;;37554:1;37549:191;;;;37463:277;;37513:27;37531:1;37522:10;;37533:5;;;37549:191;37594:3;37584:8;37581:17;37578:43;;;37601:18;;:::i;:::-;37650:8;37647:1;37643:16;37634:25;;37685:3;37678:5;37675:14;37672:40;;;37692:18;;:::i;:::-;37725:5;;;37463:277;;37849:2;37839:8;37836:16;37830:3;37824:4;37821:13;37817:36;37799:2;37789:8;37786:16;37781:2;37775:4;37772:12;37768:35;37752:111;37749:246;;;-1:-1:-1;37895:19:101;;;37930:14;;;37927:40;;;37947:18;;:::i;:::-;37980:5;;37749:246;38020:42;38058:3;38048:8;38042:4;38039:1;38020:42;:::i;:::-;38005:57;;;;38094:4;38089:3;38085:14;38078:5;38075:25;38072:51;;;38103:18;;:::i;:::-;38141:16;;37090:1073;-1:-1:-1;;37090:1073:101:o;38169:285::-;38229:5;38343:104;-1:-1:-1;;38370:8:101;38364:4;38343:104;:::i;38460:410::-;38605:9;;;;38767;;38800:15;;;38794:22;;38747:83;38724:139;;38843:18;;:::i;:::-;38508:362;38460:410;;;;:::o;39112:366::-;39339:2;3867:19;;39254:3;3919:4;3910:14;;39016:34;38993:58;;-1:-1:-1;;;39080:2:101;39068:15;;39061:38;39268:74;-1:-1:-1;39351:93:101;38876:230;39484:419;39688:2;39701:47;;;39673:18;;39765:131;39673:18;39765:131;:::i;39909:423::-;40088:2;40073:18;;40101:71;40077:9;40145:6;40101:71;:::i;:::-;40219:9;40213:4;40209:20;40204:2;40193:9;40189:18;40182:48;40247:78;40320:4;40311:6;40247:78;:::i;40434:116::-;40408:13;;40401:21;40504;40338:90;40556:137;40635:13;;40657:30;40635:13;40657:30;:::i;40699:345::-;40766:6;40815:2;40803:9;40794:7;40790:23;40786:32;40783:119;;;40821:79;626:6093:49;;;40821:79:101;40941:1;40966:61;41019:7;40999:9;40966:61;:::i;41050:533::-;41257:2;41242:18;;41270:71;41246:9;41314:6;41270:71;:::i;:::-;41351:72;41419:2;41408:9;41404:18;41395:6;41351:72;:::i;:::-;41470:9;41464:4;41460:20;41455:2;41444:9;41440:18;41433:48;41498:78;41571:4;41562:6;41498:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"1433200","executionCost":"31135","totalCost":"1464335"},"external":{"BNB_ADDR()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"infinite","feedRegistryAddress()":"infinite","getFeedRegistryAddress()":"infinite","getPrice(address)":"infinite","initialize(address,address)":"infinite","maxStalePeriod(string)":"infinite","owner()":"infinite","pendingOwner()":"infinite","renounceOwnership()":"infinite","setAccessControlManager(address)":"infinite","setFeedRegistryAddress(address)":"infinite","setMaxStalePeriod(string,uint256)":"infinite","setSymbolOverride(string,string)":"infinite","sidRegistryAddress()":"infinite","symbols(string)":"infinite","transferOwnership(address)":"infinite"},"internal":{"_getPrice(string memory,uint256)":"infinite"}},"methodIdentifiers":{"BNB_ADDR()":"3e83b6b8","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","feedRegistryAddress()":"011d3962","getFeedRegistryAddress()":"99fe040e","getPrice(address)":"41976e09","initialize(address,address)":"485cc955","maxStalePeriod(string)":"fdfbc277","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setFeedRegistryAddress(address)":"255ce37a","setMaxStalePeriod(string,uint256)":"636b999a","setSymbolOverride(string,string)":"9eab1ad6","sidRegistryAddress()":"475e7de5","symbols(string)":"047a74b2","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldFeedRegistry\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newFeedRegistry\",\"type\":\"address\"}],\"name\":\"FeedRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"asset\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"name\":\"MaxStalePeriodAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"overriddenSymbol\",\"type\":\"string\"}],\"name\":\"SymbolOverridden\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BNB_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feedRegistryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeedRegistryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sidRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_acm\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"maxStalePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newfeedRegistryAddress\",\"type\":\"address\"}],\"name\":\"setFeedRegistryAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_maxStalePeriod\",\"type\":\"uint256\"}],\"name\":\"setMaxStalePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"overrideSymbol\",\"type\":\"string\"}],\"name\":\"setSymbolOverride\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sidRegistryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"symbols\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getFeedRegistryAddress()\":{\"returns\":{\"_0\":\"feedRegistryAddress Address of binance oracle feed registry.\"}},\"getPrice(address)\":{\"params\":{\"asset\":\"Address of the asset\"},\"returns\":{\"_0\":\"Price in USD\"}},\"initialize(address,address)\":{\"params\":{\"_acm\":\"Address of the access control manager contract\",\"_sidRegistryAddress\":\"Address of SID registry\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setFeedRegistryAddress(address)\":{\"params\":{\"newfeedRegistryAddress\":\"Address of new feed registry.\"}},\"setMaxStalePeriod(string,uint256)\":{\"params\":{\"_maxStalePeriod\":\"The max stake period\",\"symbol\":\"The symbol of the asset\"}},\"setSymbolOverride(string,string)\":{\"params\":{\"overrideSymbol\":\"The symbol after override\",\"symbol\":\"The symbol to override\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"title\":\"BinanceOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"FeedRegistryUpdated(address,address)\":{\"notice\":\"Emits when address of feed registry is updated.\"},\"MaxStalePeriodAdded(string,uint256)\":{\"notice\":\"Emits when asset stale period is updated.\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"SymbolOverridden(string,string)\":{\"notice\":\"Emits when symbol of the asset is updated.\"}},\"kind\":\"user\",\"methods\":{\"BNB_ADDR()\":{\"notice\":\"Set this as asset address for BNB. This is the underlying address for vBNB\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"feedRegistryAddress()\":{\"notice\":\"Used to fetch price of assets used directly when space ID is not supported by current chain.\"},\"getFeedRegistryAddress()\":{\"notice\":\"Uses Space ID to fetch the feed registry address\"},\"getPrice(address)\":{\"notice\":\"Gets the price of a asset from the binance oracle\"},\"initialize(address,address)\":{\"notice\":\"Sets the contracts required to fetch prices\"},\"maxStalePeriod(string)\":{\"notice\":\"Max stale period configuration for assets\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setFeedRegistryAddress(address)\":{\"notice\":\"Used to set feed registry address when current chain does not support space ID.\"},\"setMaxStalePeriod(string,uint256)\":{\"notice\":\"Used to set the max stale period of an asset\"},\"setSymbolOverride(string,string)\":{\"notice\":\"Used to override a symbol when fetching price\"},\"sidRegistryAddress()\":{\"notice\":\"Used to fetch feed registry address.\"},\"symbols(string)\":{\"notice\":\"Override symbols to be compatible with Binance feed registry\"}},\"notice\":\"This oracle fetches price of assets from Binance.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/BinanceOracle.sol\":\"BinanceOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/FeedRegistryInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface FeedRegistryInterface {\\n    function latestRoundDataByName(\\n        string memory base,\\n        string memory quote\\n    )\\n        external\\n        view\\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);\\n\\n    function decimalsByName(string memory base, string memory quote) external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xf57101e676f7d93b0714f5774a3111a80ce9df0bbaed6d5e78668293c11b04e8\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/PublicResolverInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n// SPDX-FileCopyrightText: 2022 Venus\\npragma solidity ^0.8.25;\\n\\ninterface PublicResolverInterface {\\n    function addr(bytes32 node) external view returns (address payable);\\n}\\n\",\"keccak256\":\"0xe8ea3c3ec3b30f2b2022fe221530b15d18887eb6aa39c10d06d1fd5a0a7d1ece\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/SIDRegistryInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n// SPDX-FileCopyrightText: 2022 Venus\\npragma solidity ^0.8.25;\\n\\ninterface SIDRegistryInterface {\\n    function resolver(bytes32 node) external view returns (address);\\n}\\n\",\"keccak256\":\"0x306f0a50d27c016a6e13346901f6c692426af0a755eb913adc4e8494f311c2d2\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/VBep20Interface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\ninterface VBep20Interface is IERC20Metadata {\\n    /**\\n     * @notice Underlying asset for this VToken\\n     */\\n    function underlying() external view returns (address);\\n}\\n\",\"keccak256\":\"0x6e71c3df86501df5c0e4bace1333c0c91f9f9cced252a54fb99eeda219b789d5\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/BinanceOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport \\\"../interfaces/VBep20Interface.sol\\\";\\nimport \\\"../interfaces/SIDRegistryInterface.sol\\\";\\nimport \\\"../interfaces/FeedRegistryInterface.sol\\\";\\nimport \\\"../interfaces/PublicResolverInterface.sol\\\";\\nimport \\\"../interfaces/OracleInterface.sol\\\";\\nimport \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\\\";\\nimport \\\"../interfaces/OracleInterface.sol\\\";\\n\\n/**\\n * @title BinanceOracle\\n * @author Venus\\n * @notice This oracle fetches price of assets from Binance.\\n */\\ncontract BinanceOracle is AccessControlledV8, OracleInterface {\\n    /// @notice Used to fetch feed registry address.\\n    address public sidRegistryAddress;\\n\\n    /// @notice Set this as asset address for BNB. This is the underlying address for vBNB\\n    address public constant BNB_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Max stale period configuration for assets\\n    mapping(string => uint256) public maxStalePeriod;\\n\\n    /// @notice Override symbols to be compatible with Binance feed registry\\n    mapping(string => string) public symbols;\\n\\n    /// @notice Used to fetch price of assets used directly when space ID is not supported by current chain.\\n    address public feedRegistryAddress;\\n\\n    /// @notice Emits when asset stale period is updated.\\n    event MaxStalePeriodAdded(string indexed asset, uint256 maxStalePeriod);\\n\\n    /// @notice Emits when symbol of the asset is updated.\\n    event SymbolOverridden(string indexed symbol, string overriddenSymbol);\\n\\n    /// @notice Emits when address of feed registry is updated.\\n    event FeedRegistryUpdated(address indexed oldFeedRegistry, address indexed newFeedRegistry);\\n\\n    /**\\n     * @notice Checks whether an address is null or not\\n     */\\n    modifier notNullAddress(address someone) {\\n        if (someone == address(0)) revert(\\\"can't be zero address\\\");\\n        _;\\n    }\\n\\n    /// @notice Constructor for the implementation contract.\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor() {\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Sets the contracts required to fetch prices\\n     * @param _sidRegistryAddress Address of SID registry\\n     * @param _acm Address of the access control manager contract\\n     */\\n    function initialize(address _sidRegistryAddress, address _acm) external initializer {\\n        sidRegistryAddress = _sidRegistryAddress;\\n        __AccessControlled_init(_acm);\\n    }\\n\\n    /**\\n     * @notice Used to set the max stale period of an asset\\n     * @param symbol The symbol of the asset\\n     * @param _maxStalePeriod The max stake period\\n     */\\n    function setMaxStalePeriod(string memory symbol, uint256 _maxStalePeriod) external {\\n        _checkAccessAllowed(\\\"setMaxStalePeriod(string,uint256)\\\");\\n        if (_maxStalePeriod == 0) revert(\\\"stale period can't be zero\\\");\\n        if (bytes(symbol).length == 0) revert(\\\"symbol cannot be empty\\\");\\n\\n        maxStalePeriod[symbol] = _maxStalePeriod;\\n        emit MaxStalePeriodAdded(symbol, _maxStalePeriod);\\n    }\\n\\n    /**\\n     * @notice Used to override a symbol when fetching price\\n     * @param symbol The symbol to override\\n     * @param overrideSymbol The symbol after override\\n     */\\n    function setSymbolOverride(string calldata symbol, string calldata overrideSymbol) external {\\n        _checkAccessAllowed(\\\"setSymbolOverride(string,string)\\\");\\n        if (bytes(symbol).length == 0) revert(\\\"symbol cannot be empty\\\");\\n\\n        symbols[symbol] = overrideSymbol;\\n        emit SymbolOverridden(symbol, overrideSymbol);\\n    }\\n\\n    /**\\n     * @notice Used to set feed registry address when current chain does not support space ID.\\n     * @param newfeedRegistryAddress Address of new feed registry.\\n     */\\n    function setFeedRegistryAddress(\\n        address newfeedRegistryAddress\\n    ) external notNullAddress(newfeedRegistryAddress) onlyOwner {\\n        if (sidRegistryAddress != address(0)) revert(\\\"sidRegistryAddress must be zero\\\");\\n        emit FeedRegistryUpdated(feedRegistryAddress, newfeedRegistryAddress);\\n        feedRegistryAddress = newfeedRegistryAddress;\\n    }\\n\\n    /**\\n     * @notice Uses Space ID to fetch the feed registry address\\n     * @return feedRegistryAddress Address of binance oracle feed registry.\\n     */\\n    function getFeedRegistryAddress() public view returns (address) {\\n        bytes32 nodeHash = 0x94fe3821e0768eb35012484db4df61890f9a6ca5bfa984ef8ff717e73139faff;\\n\\n        SIDRegistryInterface sidRegistry = SIDRegistryInterface(sidRegistryAddress);\\n        address publicResolverAddress = sidRegistry.resolver(nodeHash);\\n        PublicResolverInterface publicResolver = PublicResolverInterface(publicResolverAddress);\\n\\n        return publicResolver.addr(nodeHash);\\n    }\\n\\n    /**\\n     * @notice Gets the price of a asset from the binance oracle\\n     * @param asset Address of the asset\\n     * @return Price in USD\\n     */\\n    function getPrice(address asset) public view returns (uint256) {\\n        string memory symbol;\\n        uint256 decimals;\\n\\n        if (asset == BNB_ADDR) {\\n            symbol = \\\"BNB\\\";\\n            decimals = 18;\\n        } else {\\n            IERC20Metadata token = IERC20Metadata(asset);\\n            symbol = token.symbol();\\n            decimals = token.decimals();\\n        }\\n\\n        string memory overrideSymbol = symbols[symbol];\\n\\n        if (bytes(overrideSymbol).length != 0) {\\n            symbol = overrideSymbol;\\n        }\\n\\n        return _getPrice(symbol, decimals);\\n    }\\n\\n    function _getPrice(string memory symbol, uint256 decimals) internal view returns (uint256) {\\n        FeedRegistryInterface feedRegistry;\\n\\n        if (sidRegistryAddress != address(0)) {\\n            // If sidRegistryAddress is available, fetch feedRegistryAddress from sidRegistry\\n            feedRegistry = FeedRegistryInterface(getFeedRegistryAddress());\\n        } else {\\n            // Use feedRegistry directly if sidRegistryAddress is not available\\n            feedRegistry = FeedRegistryInterface(feedRegistryAddress);\\n        }\\n\\n        (, int256 answer, , uint256 updatedAt, ) = feedRegistry.latestRoundDataByName(symbol, \\\"USD\\\");\\n        if (answer <= 0) revert(\\\"invalid binance oracle price\\\");\\n        if (block.timestamp < updatedAt) revert(\\\"updatedAt exceeds block time\\\");\\n\\n        uint256 deltaTime;\\n        unchecked {\\n            deltaTime = block.timestamp - updatedAt;\\n        }\\n        if (deltaTime > maxStalePeriod[symbol]) revert(\\\"binance oracle price expired\\\");\\n\\n        uint256 decimalDelta = feedRegistry.decimalsByName(symbol, \\\"USD\\\");\\n        return (uint256(answer) * (10 ** (18 - decimalDelta))) * (10 ** (18 - decimals));\\n    }\\n}\\n\",\"keccak256\":\"0xc90461124de237f1bde8432b678b0719f47b4c8c8777fb9d9cbbec9d64ce0ef0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1940,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)2125"},{"astId":1945,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":4009,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"sidRegistryAddress","offset":0,"slot":"201","type":"t_address"},{"astId":4018,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"maxStalePeriod","offset":0,"slot":"202","type":"t_mapping(t_string_memory_ptr,t_uint256)"},{"astId":4023,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"symbols","offset":0,"slot":"203","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":4026,"contract":"contracts/oracles/BinanceOracle.sol:BinanceOracle","label":"feedRegistryAddress","offset":0,"slot":"204","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)2125":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_uint256)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"FeedRegistryUpdated(address,address)":{"notice":"Emits when address of feed registry is updated."},"MaxStalePeriodAdded(string,uint256)":{"notice":"Emits when asset stale period is updated."},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"SymbolOverridden(string,string)":{"notice":"Emits when symbol of the asset is updated."}},"kind":"user","methods":{"BNB_ADDR()":{"notice":"Set this as asset address for BNB. This is the underlying address for vBNB"},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"constructor":{"notice":"Constructor for the implementation contract."},"feedRegistryAddress()":{"notice":"Used to fetch price of assets used directly when space ID is not supported by current chain."},"getFeedRegistryAddress()":{"notice":"Uses Space ID to fetch the feed registry address"},"getPrice(address)":{"notice":"Gets the price of a asset from the binance oracle"},"initialize(address,address)":{"notice":"Sets the contracts required to fetch prices"},"maxStalePeriod(string)":{"notice":"Max stale period configuration for assets"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setFeedRegistryAddress(address)":{"notice":"Used to set feed registry address when current chain does not support space ID."},"setMaxStalePeriod(string,uint256)":{"notice":"Used to set the max stale period of an asset"},"setSymbolOverride(string,string)":{"notice":"Used to override a symbol when fetching price"},"sidRegistryAddress()":{"notice":"Used to fetch feed registry address."},"symbols(string)":{"notice":"Override symbols to be compatible with Binance feed registry"}},"notice":"This oracle fetches price of assets from Binance.","version":1}}},"contracts/oracles/BoundValidator.sol":{"BoundValidator":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"uint256","name":"upperBound","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"lowerBound","type":"uint256"}],"name":"ValidateConfigAdded","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"upperBoundRatio","type":"uint256"},{"internalType":"uint256","name":"lowerBoundRatio","type":"uint256"}],"internalType":"struct BoundValidator.ValidateConfig","name":"config","type":"tuple"}],"name":"setValidateConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"upperBoundRatio","type":"uint256"},{"internalType":"uint256","name":"lowerBoundRatio","type":"uint256"}],"internalType":"struct BoundValidator.ValidateConfig[]","name":"configs","type":"tuple[]"}],"name":"setValidateConfigs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"validateConfigs","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"upperBoundRatio","type":"uint256"},{"internalType":"uint256","name":"lowerBoundRatio","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"reportedPrice","type":"uint256"},{"internalType":"uint256","name":"anchorPrice","type":"uint256"}],"name":"validatePriceWithAnchorPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"initialize(address)":{"params":{"accessControlManager_":"Address of the access control manager contract"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setValidateConfig((address,uint256,uint256))":{"custom:access":"Only Governance","custom:error":"Null address error is thrown if asset address is nullRange error thrown if bound ratio is not positiveRange error thrown if lower bound is greater than or equal to upper bound","custom:event":"Emits ValidateConfigAdded when a validation config is successfully set","params":{"config":"Validation config struct"}},"setValidateConfigs((address,uint256,uint256)[])":{"custom:access":"Only Governance","custom:error":"Zero length error is thrown if length of the config array is 0","custom:event":"Emits ValidateConfigAdded for each validation config that is successfully set","params":{"configs":"Array of validation configs"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"validatePriceWithAnchorPrice(address,uint256,uint256)":{"custom:error":"Missing error thrown if asset config is not setPrice error thrown if anchor price is not valid","params":{"asset":"asset address","reportedPrice":"The price to be tested"}}},"title":"BoundValidator","version":1},"evm":{"bytecode":{"functionDebugData":{"@_4471":{"entryPoint":null,"id":4471,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_492":{"entryPoint":29,"id":492,"parameterSlots":0,"returnSlots":0},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":161,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":242,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1638:101","nodeType":"YulBlock","src":"0:1638:101","statements":[{"body":{"nativeSrc":"103:73:101","nodeType":"YulBlock","src":"103:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"120:3:101","nodeType":"YulIdentifier","src":"120:3:101"},{"name":"length","nativeSrc":"125:6:101","nodeType":"YulIdentifier","src":"125:6:101"}],"functionName":{"name":"mstore","nativeSrc":"113:6:101","nodeType":"YulIdentifier","src":"113:6:101"},"nativeSrc":"113:19:101","nodeType":"YulFunctionCall","src":"113:19:101"},"nativeSrc":"113:19:101","nodeType":"YulExpressionStatement","src":"113:19:101"},{"nativeSrc":"141:29:101","nodeType":"YulAssignment","src":"141:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"160:3:101","nodeType":"YulIdentifier","src":"160:3:101"},{"kind":"number","nativeSrc":"165:4:101","nodeType":"YulLiteral","src":"165:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"156:3:101","nodeType":"YulIdentifier","src":"156:3:101"},"nativeSrc":"156:14:101","nodeType":"YulFunctionCall","src":"156:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"141:11:101","nodeType":"YulIdentifier","src":"141:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"75:3:101","nodeType":"YulTypedName","src":"75:3:101","type":""},{"name":"length","nativeSrc":"80:6:101","nodeType":"YulTypedName","src":"80:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"91:11:101","nodeType":"YulTypedName","src":"91:11:101","type":""}],"src":"7:169:101"},{"body":{"nativeSrc":"288:120:101","nodeType":"YulBlock","src":"288:120:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},{"kind":"number","nativeSrc":"318:1:101","nodeType":"YulLiteral","src":"318:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"306:3:101","nodeType":"YulIdentifier","src":"306:3:101"},"nativeSrc":"306:14:101","nodeType":"YulFunctionCall","src":"306:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"322:34:101","nodeType":"YulLiteral","src":"322:34:101","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"299:6:101","nodeType":"YulIdentifier","src":"299:6:101"},"nativeSrc":"299:58:101","nodeType":"YulFunctionCall","src":"299:58:101"},"nativeSrc":"299:58:101","nodeType":"YulExpressionStatement","src":"299:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"378:6:101","nodeType":"YulIdentifier","src":"378:6:101"},{"kind":"number","nativeSrc":"386:2:101","nodeType":"YulLiteral","src":"386:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"374:3:101","nodeType":"YulIdentifier","src":"374:3:101"},"nativeSrc":"374:15:101","nodeType":"YulFunctionCall","src":"374:15:101"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"391:9:101","nodeType":"YulLiteral","src":"391:9:101","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"367:6:101","nodeType":"YulIdentifier","src":"367:6:101"},"nativeSrc":"367:34:101","nodeType":"YulFunctionCall","src":"367:34:101"},"nativeSrc":"367:34:101","nodeType":"YulExpressionStatement","src":"367:34:101"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"182:226:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"280:6:101","nodeType":"YulTypedName","src":"280:6:101","type":""}],"src":"182:226:101"},{"body":{"nativeSrc":"560:220:101","nodeType":"YulBlock","src":"560:220:101","statements":[{"nativeSrc":"570:74:101","nodeType":"YulAssignment","src":"570:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"636:3:101","nodeType":"YulIdentifier","src":"636:3:101"},{"kind":"number","nativeSrc":"641:2:101","nodeType":"YulLiteral","src":"641:2:101","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"577:58:101","nodeType":"YulIdentifier","src":"577:58:101"},"nativeSrc":"577:67:101","nodeType":"YulFunctionCall","src":"577:67:101"},"variableNames":[{"name":"pos","nativeSrc":"570:3:101","nodeType":"YulIdentifier","src":"570:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"742:3:101","nodeType":"YulIdentifier","src":"742:3:101"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"653:88:101","nodeType":"YulIdentifier","src":"653:88:101"},"nativeSrc":"653:93:101","nodeType":"YulFunctionCall","src":"653:93:101"},"nativeSrc":"653:93:101","nodeType":"YulExpressionStatement","src":"653:93:101"},{"nativeSrc":"755:19:101","nodeType":"YulAssignment","src":"755:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"766:3:101","nodeType":"YulIdentifier","src":"766:3:101"},{"kind":"number","nativeSrc":"771:2:101","nodeType":"YulLiteral","src":"771:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"762:3:101","nodeType":"YulIdentifier","src":"762:3:101"},"nativeSrc":"762:12:101","nodeType":"YulFunctionCall","src":"762:12:101"},"variableNames":[{"name":"end","nativeSrc":"755:3:101","nodeType":"YulIdentifier","src":"755:3:101"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"414:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"548:3:101","nodeType":"YulTypedName","src":"548:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"556:3:101","nodeType":"YulTypedName","src":"556:3:101","type":""}],"src":"414:366:101"},{"body":{"nativeSrc":"957:248:101","nodeType":"YulBlock","src":"957:248:101","statements":[{"nativeSrc":"967:26:101","nodeType":"YulAssignment","src":"967:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"979:9:101","nodeType":"YulIdentifier","src":"979:9:101"},{"kind":"number","nativeSrc":"990:2:101","nodeType":"YulLiteral","src":"990:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"975:3:101","nodeType":"YulIdentifier","src":"975:3:101"},"nativeSrc":"975:18:101","nodeType":"YulFunctionCall","src":"975:18:101"},"variableNames":[{"name":"tail","nativeSrc":"967:4:101","nodeType":"YulIdentifier","src":"967:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1014:9:101","nodeType":"YulIdentifier","src":"1014:9:101"},{"kind":"number","nativeSrc":"1025:1:101","nodeType":"YulLiteral","src":"1025:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1010:3:101","nodeType":"YulIdentifier","src":"1010:3:101"},"nativeSrc":"1010:17:101","nodeType":"YulFunctionCall","src":"1010:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1033:4:101","nodeType":"YulIdentifier","src":"1033:4:101"},{"name":"headStart","nativeSrc":"1039:9:101","nodeType":"YulIdentifier","src":"1039:9:101"}],"functionName":{"name":"sub","nativeSrc":"1029:3:101","nodeType":"YulIdentifier","src":"1029:3:101"},"nativeSrc":"1029:20:101","nodeType":"YulFunctionCall","src":"1029:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1003:6:101","nodeType":"YulIdentifier","src":"1003:6:101"},"nativeSrc":"1003:47:101","nodeType":"YulFunctionCall","src":"1003:47:101"},"nativeSrc":"1003:47:101","nodeType":"YulExpressionStatement","src":"1003:47:101"},{"nativeSrc":"1059:139:101","nodeType":"YulAssignment","src":"1059:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"1193:4:101","nodeType":"YulIdentifier","src":"1193:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"1067:124:101","nodeType":"YulIdentifier","src":"1067:124:101"},"nativeSrc":"1067:131:101","nodeType":"YulFunctionCall","src":"1067:131:101"},"variableNames":[{"name":"tail","nativeSrc":"1059:4:101","nodeType":"YulIdentifier","src":"1059:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"786:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulTypedName","src":"937:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"952:4:101","nodeType":"YulTypedName","src":"952:4:101","type":""}],"src":"786:419:101"},{"body":{"nativeSrc":"1254:43:101","nodeType":"YulBlock","src":"1254:43:101","statements":[{"nativeSrc":"1264:27:101","nodeType":"YulAssignment","src":"1264:27:101","value":{"arguments":[{"name":"value","nativeSrc":"1279:5:101","nodeType":"YulIdentifier","src":"1279:5:101"},{"kind":"number","nativeSrc":"1286:4:101","nodeType":"YulLiteral","src":"1286:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1275:3:101","nodeType":"YulIdentifier","src":"1275:3:101"},"nativeSrc":"1275:16:101","nodeType":"YulFunctionCall","src":"1275:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1264:7:101","nodeType":"YulIdentifier","src":"1264:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"1211:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1236:5:101","nodeType":"YulTypedName","src":"1236:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1246:7:101","nodeType":"YulTypedName","src":"1246:7:101","type":""}],"src":"1211:86:101"},{"body":{"nativeSrc":"1364:51:101","nodeType":"YulBlock","src":"1364:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1381:3:101","nodeType":"YulIdentifier","src":"1381:3:101"},{"arguments":[{"name":"value","nativeSrc":"1402:5:101","nodeType":"YulIdentifier","src":"1402:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"1386:15:101","nodeType":"YulIdentifier","src":"1386:15:101"},"nativeSrc":"1386:22:101","nodeType":"YulFunctionCall","src":"1386:22:101"}],"functionName":{"name":"mstore","nativeSrc":"1374:6:101","nodeType":"YulIdentifier","src":"1374:6:101"},"nativeSrc":"1374:35:101","nodeType":"YulFunctionCall","src":"1374:35:101"},"nativeSrc":"1374:35:101","nodeType":"YulExpressionStatement","src":"1374:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"1303:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1352:5:101","nodeType":"YulTypedName","src":"1352:5:101","type":""},{"name":"pos","nativeSrc":"1359:3:101","nodeType":"YulTypedName","src":"1359:3:101","type":""}],"src":"1303:112:101"},{"body":{"nativeSrc":"1515:120:101","nodeType":"YulBlock","src":"1515:120:101","statements":[{"nativeSrc":"1525:26:101","nodeType":"YulAssignment","src":"1525:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1537:9:101","nodeType":"YulIdentifier","src":"1537:9:101"},{"kind":"number","nativeSrc":"1548:2:101","nodeType":"YulLiteral","src":"1548:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1533:3:101","nodeType":"YulIdentifier","src":"1533:3:101"},"nativeSrc":"1533:18:101","nodeType":"YulFunctionCall","src":"1533:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1525:4:101","nodeType":"YulIdentifier","src":"1525:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1601:6:101","nodeType":"YulIdentifier","src":"1601:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1614:9:101","nodeType":"YulIdentifier","src":"1614:9:101"},{"kind":"number","nativeSrc":"1625:1:101","nodeType":"YulLiteral","src":"1625:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1610:3:101","nodeType":"YulIdentifier","src":"1610:3:101"},"nativeSrc":"1610:17:101","nodeType":"YulFunctionCall","src":"1610:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"1561:39:101","nodeType":"YulIdentifier","src":"1561:39:101"},"nativeSrc":"1561:67:101","nodeType":"YulFunctionCall","src":"1561:67:101"},"nativeSrc":"1561:67:101","nodeType":"YulExpressionStatement","src":"1561:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1421:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1487:9:101","nodeType":"YulTypedName","src":"1487:9:101","type":""},{"name":"value0","nativeSrc":"1499:6:101","nodeType":"YulTypedName","src":"1499:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1510:4:101","nodeType":"YulTypedName","src":"1510:4:101","type":""}],"src":"1421:214:101"}]},"contents":"{\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001861001d565b610101565b5f54610100900460ff161561004d5760405162461bcd60e51b8152600401610044906100a1565b60405180910390fd5b5f5460ff9081161461009f575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891610096916100f2565b60405180910390a15b565b602080825281016100ec81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff82168152602081016100ec565b6110298061010e5f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c8063af9e6c5b1161006e578063af9e6c5b14610130578063b4a0bdf314610143578063bca9e1161461015c578063c4d66de8146101a3578063e30c3978146101b6578063f2fde38b146101c7575f80fd5b80630e32cb86146100b5578063715018a6146100ca57806379ba5097146100d25780638da5cb5b146100da57806397c7033e146100fd5780639c3576151461011d575b5f80fd5b6100c86100c3366004610856565b6101da565b005b6100c86101ee565b6100c8610201565b6033546001600160a01b03165b6040516100f4919061088b565b60405180910390f35b61011061010b3660046108aa565b61023f565b6040516100f491906108fe565b6100c861012b366004610a68565b6102ac565b6100c861013e366004610aa0565b610307565b6097546001600160a01b03166040516100f49190610aeb565b61019461016a366004610856565b60c96020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b6040516100f493929190610aff565b6100c86101b1366004610856565b61041e565b6065546001600160a01b03166100e7565b6100c86101d5366004610856565b6104e9565b6101e261055a565b6101eb81610584565b50565b6101f661055a565b6101ff5f6105fd565b565b60655433906001600160a01b031681146102365760405162461bcd60e51b815260040161022d90610b6f565b60405180910390fd5b6101eb816105fd565b6001600160a01b0383165f90815260c9602052604081206001015481036102785760405162461bcd60e51b815260040161022d90610bb5565b815f036102975760405162461bcd60e51b815260040161022d90610bf8565b6102a2848484610616565b90505b9392505050565b80515f8190036102ce5760405162461bcd60e51b815260040161022d90610c3b565b5f5b81811015610302576102fa8382815181106102ed576102ed610c4b565b6020026020010151610307565b6001016102d0565b505050565b610328604051806060016040528060218152602001610fd360219139610684565b80516001600160a01b031661034f5760405162461bcd60e51b815260040161022d90610c92565b6020810151158061036257506040810151155b1561037f5760405162461bcd60e51b815260040161022d90610cce565b80604001518160200151116103a65760405162461bcd60e51b815260040161022d90610d26565b80516001600160a01b039081165f90815260c960209081526040808320855181546001600160a01b03191695169485178155918501516001830181905581860151600290930183905590519193909290917f28e2d96bdcf74fe6203e40d159d27ec2e15230239c0aee4a0a914196c550e6d19190a450565b5f54610100900460ff161580801561043c57505f54600160ff909116105b806104555750303b15801561045557505f5460ff166001145b6104715760405162461bcd60e51b815260040161022d90610d80565b5f805460ff191660011790558015610492575f805461ff0019166101001790555b61049b8261071b565b80156104e5575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104dc90600190610da3565b60405180910390a15b5050565b6104f161055a565b606580546001600160a01b0383166001600160a01b031990911681179091556105226033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146101ff5760405162461bcd60e51b815260040161022d90610de2565b6001600160a01b0381166105aa5760405162461bcd60e51b815260040161022d90610e33565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906104dc9083908590610e43565b606580546001600160a01b03191690556101eb81610752565b5f821561067b575f8361063184670de0b6b3a7640000610e72565b61063b9190610ea5565b6001600160a01b0386165f90815260c9602052604090206001810154600290910154919250908183118015906106715750808310155b93505050506102a5565b505f9392505050565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab906106b69033908690600401610ef4565b602060405180830381865afa1580156106d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f59190610f27565b9050806104e557333083604051634a3fa29360e01b815260040161022d93929190610f45565b5f54610100900460ff166107415760405162461bcd60e51b815260040161022d90610fc2565b6107496107a3565b6101eb816107d1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166107c95760405162461bcd60e51b815260040161022d90610fc2565b6101ff6107f7565b5f54610100900460ff166101e25760405162461bcd60e51b815260040161022d90610fc2565b5f54610100900460ff1661081d5760405162461bcd60e51b815260040161022d90610fc2565b6101ff336105fd565b5f6001600160a01b0382165b92915050565b61084181610826565b81146101eb575f80fd5b803561083281610838565b5f60208284031215610869576108695f80fd5b5f610874848461084b565b949350505050565b61088581610826565b82525050565b60208101610832828461087c565b80610841565b803561083281610899565b5f805f606084860312156108bf576108bf5f80fd5b5f6108ca868661084b565b93505060206108db8682870161089f565b92505060406108ec8682870161089f565b9150509250925092565b801515610885565b6020810161083282846108f6565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff821117156109465761094661090c565b6040525050565b5f61095760405190565b90506109638282610920565b919050565b5f67ffffffffffffffff8211156109815761098161090c565b5060209081020190565b5f6060828403121561099e5761099e5f80fd5b6109a8606061094d565b90505f6109b5848461084b565b82525060206109c68484830161089f565b60208301525060406109da8482850161089f565b60408301525092915050565b5f6109f86109f384610968565b61094d565b83815290506020810160608402830185811115610a1657610a165f80fd5b835b81811015610a3c5780610a2b888261098b565b845250602090920191606001610a18565b5050509392505050565b5f82601f830112610a5857610a585f80fd5b81356108748482602086016109e6565b5f60208284031215610a7b57610a7b5f80fd5b813567ffffffffffffffff811115610a9457610a945f80fd5b61087484828501610a46565b5f60608284031215610ab357610ab35f80fd5b5f610874848461098b565b5f6001600160a01b038216610832565b5f61083282610abe565b5f61083282610ace565b61088581610ad8565b602081016108328284610ae2565b80610885565b60608101610b0d828661087c565b610b1a6020830185610af9565b6108746040830184610af9565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161083281610b27565b601b81525f602082017f76616c69646174696f6e20636f6e666967206e6f742065786973740000000000815291505b5060200190565b6020808252810161083281610b7f565b601981525f602082017f616e63686f72207072696365206973206e6f742076616c69640000000000000081529150610bae565b6020808252810161083281610bc5565b601e81525f602082017f696e76616c69642076616c696461746520636f6e666967206c656e677468000081529150610bae565b6020808252810161083281610c08565b634e487b7160e01b5f52603260045260245ffd5b601b81525f602082017f61737365742063616e2774206265207a65726f2061646472657373000000000081529150610bae565b6020808252810161083281610c5f565b601681525f6020820175626f756e64206d75737420626520706f73697469766560501b81529150610bae565b6020808252810161083281610ca2565b602c81525f602082017f757070657220626f756e64206d75737420626520686967686572207468616e2081526b1b1bdddb995c88189bdd5b9960a21b60208201529150610b68565b6020808252810161083281610cde565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610b68565b6020808252810161083281610d36565b5f60ff8216610832565b61088581610d90565b602081016108328284610d9a565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610bae565b6020808252810161083281610db1565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610b68565b6020808252810161083281610df2565b60408101610e51828561087c565b6102a5602083018461087c565b634e487b7160e01b5f52601160045260245ffd5b818102808215838204851417610e8a57610e8a610e5e565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82610eb357610eb3610e91565b500490565b8281835e505f910152565b5f610ecc825190565b808452602084019350610ee3818560208601610eb8565b601f01601f19169290920192915050565b60408101610f02828561087c565b81810360208301526102a28184610ec3565b801515610841565b805161083281610f14565b5f60208284031215610f3a57610f3a5f80fd5b5f6108748484610f1c565b60608101610f53828661087c565b610f60602083018561087c565b8181036040830152610f728184610ec3565b95945050505050565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610b68565b6020808252810161083281610f7b56fe73657456616c6964617465436f6e6669672856616c6964617465436f6e66696729a2646970667358221220dc81bdd07e19c717a5bb3e8e5a24b192f30fb93391e8177155ad4b9b1716c08164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x18 PUSH2 0x1D JUMP JUMPDEST PUSH2 0x101 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x44 SWAP1 PUSH2 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x9F JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0x96 SWAP2 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEC DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0x1029 DUP1 PUSH2 0x10E PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAF9E6C5B GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xAF9E6C5B EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0xBCA9E116 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xCA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x97C7033E EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0x9C357615 EQ PUSH2 0x11D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH2 0x1DA JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC8 PUSH2 0x1EE JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x201 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x23F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x8FE JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0xA68 JUMP JUMPDEST PUSH2 0x2AC JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x13E CALLDATASIZE PUSH1 0x4 PUSH2 0xAA0 JUMP JUMPDEST PUSH2 0x307 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x194 PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH2 0x41E JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE7 JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH2 0x4E9 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1EB DUP2 PUSH2 0x584 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1F6 PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1FF PUSH0 PUSH2 0x5FD JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1EB DUP2 PUSH2 0x5FD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 SUB PUSH2 0x278 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xBB5 JUMP JUMPDEST DUP2 PUSH0 SUB PUSH2 0x297 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xBF8 JUMP JUMPDEST PUSH2 0x2A2 DUP5 DUP5 DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH0 DUP2 SWAP1 SUB PUSH2 0x2CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xC3B JUMP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH2 0x2FA DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2ED JUMPI PUSH2 0x2ED PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x307 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2D0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x328 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFD3 PUSH1 0x21 SWAP2 CODECOPY PUSH2 0x684 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD ISZERO DUP1 PUSH2 0x362 JUMPI POP PUSH1 0x40 DUP2 ADD MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x37F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xCCE JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xD26 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP6 AND SWAP5 DUP6 OR DUP2 SSTORE SWAP2 DUP6 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE DUP2 DUP7 ADD MLOAD PUSH1 0x2 SWAP1 SWAP4 ADD DUP4 SWAP1 SSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH32 0x28E2D96BDCF74FE6203E40D159D27EC2E15230239C0AEE4A0A914196C550E6D1 SWAP2 SWAP1 LOG4 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x43C JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x455 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xD80 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x492 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x49B DUP3 PUSH2 0x71B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x4DC SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xDA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x4F1 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x522 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xDE2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xE33 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x4DC SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0xE43 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x1EB DUP2 PUSH2 0x752 JUMP JUMPDEST PUSH0 DUP3 ISZERO PUSH2 0x67B JUMPI PUSH0 DUP4 PUSH2 0x631 DUP5 PUSH8 0xDE0B6B3A7640000 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xEA5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 DUP2 DUP4 GT DUP1 ISZERO SWAP1 PUSH2 0x671 JUMPI POP DUP1 DUP4 LT ISZERO JUMPDEST SWAP4 POP POP POP POP PUSH2 0x2A5 JUMP JUMPDEST POP PUSH0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x6B6 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6D1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F5 SWAP2 SWAP1 PUSH2 0xF27 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x4E5 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF45 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x741 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH2 0x749 PUSH2 0x7A3 JUMP JUMPDEST PUSH2 0x1EB DUP2 PUSH2 0x7D1 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x7F7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x81D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH2 0x1FF CALLER PUSH2 0x5FD JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x841 DUP2 PUSH2 0x826 JUMP JUMPDEST DUP2 EQ PUSH2 0x1EB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x832 DUP2 PUSH2 0x838 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x869 JUMPI PUSH2 0x869 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x874 DUP5 DUP5 PUSH2 0x84B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x885 DUP2 PUSH2 0x826 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0x87C JUMP JUMPDEST DUP1 PUSH2 0x841 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x832 DUP2 PUSH2 0x899 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8BF JUMPI PUSH2 0x8BF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8CA DUP7 DUP7 PUSH2 0x84B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8DB DUP7 DUP3 DUP8 ADD PUSH2 0x89F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8EC DUP7 DUP3 DUP8 ADD PUSH2 0x89F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x885 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0x8F6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x946 JUMPI PUSH2 0x946 PUSH2 0x90C JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x957 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x963 DUP3 DUP3 PUSH2 0x920 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x981 JUMPI PUSH2 0x981 PUSH2 0x90C JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99E JUMPI PUSH2 0x99E PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 PUSH1 0x60 PUSH2 0x94D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x9B5 DUP5 DUP5 PUSH2 0x84B JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x9C6 DUP5 DUP5 DUP4 ADD PUSH2 0x89F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x9DA DUP5 DUP3 DUP6 ADD PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9F8 PUSH2 0x9F3 DUP5 PUSH2 0x968 JUMP JUMPDEST PUSH2 0x94D JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x60 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA3C JUMPI DUP1 PUSH2 0xA2B DUP9 DUP3 PUSH2 0x98B JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0xA18 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xA58 JUMPI PUSH2 0xA58 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x874 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x9E6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA7B JUMPI PUSH2 0xA7B PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA94 JUMPI PUSH2 0xA94 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x874 DUP5 DUP3 DUP6 ADD PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB3 JUMPI PUSH2 0xAB3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x874 DUP5 DUP5 PUSH2 0x98B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x832 JUMP JUMPDEST PUSH0 PUSH2 0x832 DUP3 PUSH2 0xABE JUMP JUMPDEST PUSH0 PUSH2 0x832 DUP3 PUSH2 0xACE JUMP JUMPDEST PUSH2 0x885 DUP2 PUSH2 0xAD8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0xAE2 JUMP JUMPDEST DUP1 PUSH2 0x885 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xB0D DUP3 DUP7 PUSH2 0x87C JUMP JUMPDEST PUSH2 0xB1A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xAF9 JUMP JUMPDEST PUSH2 0x874 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x76616C69646174696F6E20636F6E666967206E6F742065786973740000000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x616E63686F72207072696365206973206E6F742076616C696400000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xBC5 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C69642076616C696461746520636F6E666967206C656E6774680000 DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xC08 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x61737365742063616E2774206265207A65726F20616464726573730000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x16 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH22 0x626F756E64206D75737420626520706F736974697665 PUSH1 0x50 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xCA2 JUMP JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757070657220626F756E64206D75737420626520686967686572207468616E20 DUP2 MSTORE PUSH12 0x1B1BDDDB995C88189BDD5B99 PUSH1 0xA2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xCDE JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xD36 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x832 JUMP JUMPDEST PUSH2 0x885 DUP2 PUSH2 0xD90 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0xD9A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xDB1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE51 DUP3 DUP6 PUSH2 0x87C JUMP JUMPDEST PUSH2 0x2A5 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x87C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xE8A JUMPI PUSH2 0xE8A PUSH2 0xE5E JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xEB3 JUMPI PUSH2 0xEB3 PUSH2 0xE91 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xECC DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xEE3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xF02 DUP3 DUP6 PUSH2 0x87C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2A2 DUP2 DUP5 PUSH2 0xEC3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x841 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x832 DUP2 PUSH2 0xF14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF3A JUMPI PUSH2 0xF3A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x874 DUP5 DUP5 PUSH2 0xF1C JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xF53 DUP3 DUP7 PUSH2 0x87C JUMP JUMPDEST PUSH2 0xF60 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x87C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xF72 DUP2 DUP5 PUSH2 0xEC3 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xF7B JUMP INVALID PUSH20 0x657456616C6964617465436F6E6669672856616C PUSH10 0x64617465436F6E666967 0x29 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC DUP2 0xBD 0xD0 PUSH31 0x19C717A5BB3E8E5A24B192F30FB93391E8177155AD4B9B1716C08164736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"556:4896:50:-:0;;;1519:53;;;;;;;;;-1:-1:-1;1543:22:50;:20;:22::i;:::-;556:4896;;5939:280:5;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:5;;;;;;;:::i;:::-;;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:5;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;786:419:101:-;990:2;1003:47;;;975:18;;1067:131;975:18;641:2;113:19;;322:34;165:4;156:14;;299:58;-1:-1:-1;;;374:15:101;;;367:34;762:12;;;414:366;1067:131;1059:139;786:419;-1:-1:-1;;786:419:101:o;1421:214::-;1286:4;1275:16;;1374:35;;1548:2;1533:18;;1561:67;1303:112;1421:214;556:4896:50;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__AccessControlled_init_1976":{"entryPoint":1819,"id":1976,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_1988":{"entryPoint":2001,"id":1988,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_129":{"entryPoint":1955,"id":129,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":2039,"id":248,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_2079":{"entryPoint":1668,"id":2079,"parameterSlots":1,"returnSlots":0},"@_checkOwner_279":{"entryPoint":1370,"id":279,"parameterSlots":0,"returnSlots":0},"@_isWithinAnchor_4677":{"entryPoint":1558,"id":4677,"parameterSlots":3,"returnSlots":1},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_2049":{"entryPoint":1412,"id":2049,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_181":{"entryPoint":1533,"id":181,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_336":{"entryPoint":1874,"id":336,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_203":{"entryPoint":513,"id":203,"parameterSlots":0,"returnSlots":0},"@accessControlManager_2011":{"entryPoint":null,"id":2011,"parameterSlots":0,"returnSlots":1},"@initialize_4484":{"entryPoint":1054,"id":4484,"parameterSlots":1,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@pendingOwner_144":{"entryPoint":null,"id":144,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_293":{"entryPoint":494,"id":293,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_2001":{"entryPoint":474,"id":2001,"parameterSlots":1,"returnSlots":0},"@setValidateConfig_4587":{"entryPoint":775,"id":4587,"parameterSlots":1,"returnSlots":0},"@setValidateConfigs_4523":{"entryPoint":684,"id":4523,"parameterSlots":1,"returnSlots":0},"@transferOwnership_164":{"entryPoint":1257,"id":164,"parameterSlots":1,"returnSlots":0},"@validateConfigs_4454":{"entryPoint":null,"id":4454,"parameterSlots":0,"returnSlots":0},"@validatePriceWithAnchorPrice_4626":{"entryPoint":575,"id":4626,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr":{"entryPoint":2534,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2123,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr":{"entryPoint":2630,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3868,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ValidateConfig_$4448_memory_ptr":{"entryPoint":2443,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2207,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2134,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":2218,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr":{"entryPoint":2664,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3879,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_ValidateConfig_$4448_memory_ptr":{"entryPoint":2720,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2172,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2294,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2786,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":3482,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3779,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":2855,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack":{"entryPoint":3570,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3_to_t_string_memory_ptr_fromStack":{"entryPoint":3013,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937_to_t_string_memory_ptr_fromStack":{"entryPoint":3167,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":3382,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a_to_t_string_memory_ptr_fromStack":{"entryPoint":3294,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":3505,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c_to_t_string_memory_ptr_fromStack":{"entryPoint":3234,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc_to_t_string_memory_ptr_fromStack":{"entryPoint":3080,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9_to_t_string_memory_ptr_fromStack":{"entryPoint":2943,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":3963,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2809,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2187,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":3651,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3909,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3828,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":2815,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2302,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2795,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":3491,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2927,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3635,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3064,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3218,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3456,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3366,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3554,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3278,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3131,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2997,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4034,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":2381,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr":{"entryPoint":2408,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":3749,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3698,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2086,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2776,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":3472,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2766,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":2750,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3768,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":2336,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3678,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":3729,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3147,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2316,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2104,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3860,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2201,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:24901:101","nodeType":"YulBlock","src":"0:24901:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"907:263:101","nodeType":"YulBlock","src":"907:263:101","statements":[{"body":{"nativeSrc":"953:83:101","nodeType":"YulBlock","src":"953:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:101","nodeType":"YulIdentifier","src":"955:77:101"},"nativeSrc":"955:79:101","nodeType":"YulFunctionCall","src":"955:79:101"},"nativeSrc":"955:79:101","nodeType":"YulExpressionStatement","src":"955:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:101","nodeType":"YulIdentifier","src":"928:7:101"},{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulIdentifier","src":"937:9:101"}],"functionName":{"name":"sub","nativeSrc":"924:3:101","nodeType":"YulIdentifier","src":"924:3:101"},"nativeSrc":"924:23:101","nodeType":"YulFunctionCall","src":"924:23:101"},{"kind":"number","nativeSrc":"949:2:101","nodeType":"YulLiteral","src":"949:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:101","nodeType":"YulIdentifier","src":"920:3:101"},"nativeSrc":"920:32:101","nodeType":"YulFunctionCall","src":"920:32:101"},"nativeSrc":"917:119:101","nodeType":"YulIf","src":"917:119:101"},{"nativeSrc":"1046:117:101","nodeType":"YulBlock","src":"1046:117:101","statements":[{"nativeSrc":"1061:15:101","nodeType":"YulVariableDeclaration","src":"1061:15:101","value":{"kind":"number","nativeSrc":"1075:1:101","nodeType":"YulLiteral","src":"1075:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:101","nodeType":"YulTypedName","src":"1065:6:101","type":""}]},{"nativeSrc":"1090:63:101","nodeType":"YulAssignment","src":"1090:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:101","nodeType":"YulIdentifier","src":"1125:9:101"},{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"add","nativeSrc":"1121:3:101","nodeType":"YulIdentifier","src":"1121:3:101"},"nativeSrc":"1121:22:101","nodeType":"YulFunctionCall","src":"1121:22:101"},{"name":"dataEnd","nativeSrc":"1145:7:101","nodeType":"YulIdentifier","src":"1145:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:101","nodeType":"YulIdentifier","src":"1100:20:101"},"nativeSrc":"1100:53:101","nodeType":"YulFunctionCall","src":"1100:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:101","nodeType":"YulIdentifier","src":"1090:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:101","nodeType":"YulTypedName","src":"877:9:101","type":""},{"name":"dataEnd","nativeSrc":"888:7:101","nodeType":"YulTypedName","src":"888:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:101","nodeType":"YulTypedName","src":"900:6:101","type":""}],"src":"841:329:101"},{"body":{"nativeSrc":"1241:53:101","nodeType":"YulBlock","src":"1241:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1258:3:101","nodeType":"YulIdentifier","src":"1258:3:101"},{"arguments":[{"name":"value","nativeSrc":"1281:5:101","nodeType":"YulIdentifier","src":"1281:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1263:17:101","nodeType":"YulIdentifier","src":"1263:17:101"},"nativeSrc":"1263:24:101","nodeType":"YulFunctionCall","src":"1263:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1251:6:101","nodeType":"YulIdentifier","src":"1251:6:101"},"nativeSrc":"1251:37:101","nodeType":"YulFunctionCall","src":"1251:37:101"},"nativeSrc":"1251:37:101","nodeType":"YulExpressionStatement","src":"1251:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1176:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1229:5:101","nodeType":"YulTypedName","src":"1229:5:101","type":""},{"name":"pos","nativeSrc":"1236:3:101","nodeType":"YulTypedName","src":"1236:3:101","type":""}],"src":"1176:118:101"},{"body":{"nativeSrc":"1398:124:101","nodeType":"YulBlock","src":"1398:124:101","statements":[{"nativeSrc":"1408:26:101","nodeType":"YulAssignment","src":"1408:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1420:9:101","nodeType":"YulIdentifier","src":"1420:9:101"},{"kind":"number","nativeSrc":"1431:2:101","nodeType":"YulLiteral","src":"1431:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1416:3:101","nodeType":"YulIdentifier","src":"1416:3:101"},"nativeSrc":"1416:18:101","nodeType":"YulFunctionCall","src":"1416:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1408:4:101","nodeType":"YulIdentifier","src":"1408:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1488:6:101","nodeType":"YulIdentifier","src":"1488:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1501:9:101","nodeType":"YulIdentifier","src":"1501:9:101"},{"kind":"number","nativeSrc":"1512:1:101","nodeType":"YulLiteral","src":"1512:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1497:3:101","nodeType":"YulIdentifier","src":"1497:3:101"},"nativeSrc":"1497:17:101","nodeType":"YulFunctionCall","src":"1497:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1444:43:101","nodeType":"YulIdentifier","src":"1444:43:101"},"nativeSrc":"1444:71:101","nodeType":"YulFunctionCall","src":"1444:71:101"},"nativeSrc":"1444:71:101","nodeType":"YulExpressionStatement","src":"1444:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1300:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1370:9:101","nodeType":"YulTypedName","src":"1370:9:101","type":""},{"name":"value0","nativeSrc":"1382:6:101","nodeType":"YulTypedName","src":"1382:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1393:4:101","nodeType":"YulTypedName","src":"1393:4:101","type":""}],"src":"1300:222:101"},{"body":{"nativeSrc":"1573:32:101","nodeType":"YulBlock","src":"1573:32:101","statements":[{"nativeSrc":"1583:16:101","nodeType":"YulAssignment","src":"1583:16:101","value":{"name":"value","nativeSrc":"1594:5:101","nodeType":"YulIdentifier","src":"1594:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1583:7:101","nodeType":"YulIdentifier","src":"1583:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1528:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1555:5:101","nodeType":"YulTypedName","src":"1555:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1565:7:101","nodeType":"YulTypedName","src":"1565:7:101","type":""}],"src":"1528:77:101"},{"body":{"nativeSrc":"1654:79:101","nodeType":"YulBlock","src":"1654:79:101","statements":[{"body":{"nativeSrc":"1711:16:101","nodeType":"YulBlock","src":"1711:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1720:1:101","nodeType":"YulLiteral","src":"1720:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1723:1:101","nodeType":"YulLiteral","src":"1723:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1713:6:101","nodeType":"YulIdentifier","src":"1713:6:101"},"nativeSrc":"1713:12:101","nodeType":"YulFunctionCall","src":"1713:12:101"},"nativeSrc":"1713:12:101","nodeType":"YulExpressionStatement","src":"1713:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1677:5:101","nodeType":"YulIdentifier","src":"1677:5:101"},{"arguments":[{"name":"value","nativeSrc":"1702:5:101","nodeType":"YulIdentifier","src":"1702:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1684:17:101","nodeType":"YulIdentifier","src":"1684:17:101"},"nativeSrc":"1684:24:101","nodeType":"YulFunctionCall","src":"1684:24:101"}],"functionName":{"name":"eq","nativeSrc":"1674:2:101","nodeType":"YulIdentifier","src":"1674:2:101"},"nativeSrc":"1674:35:101","nodeType":"YulFunctionCall","src":"1674:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1667:6:101","nodeType":"YulIdentifier","src":"1667:6:101"},"nativeSrc":"1667:43:101","nodeType":"YulFunctionCall","src":"1667:43:101"},"nativeSrc":"1664:63:101","nodeType":"YulIf","src":"1664:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"1611:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1647:5:101","nodeType":"YulTypedName","src":"1647:5:101","type":""}],"src":"1611:122:101"},{"body":{"nativeSrc":"1791:87:101","nodeType":"YulBlock","src":"1791:87:101","statements":[{"nativeSrc":"1801:29:101","nodeType":"YulAssignment","src":"1801:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1823:6:101","nodeType":"YulIdentifier","src":"1823:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1810:12:101","nodeType":"YulIdentifier","src":"1810:12:101"},"nativeSrc":"1810:20:101","nodeType":"YulFunctionCall","src":"1810:20:101"},"variableNames":[{"name":"value","nativeSrc":"1801:5:101","nodeType":"YulIdentifier","src":"1801:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1866:5:101","nodeType":"YulIdentifier","src":"1866:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1839:26:101","nodeType":"YulIdentifier","src":"1839:26:101"},"nativeSrc":"1839:33:101","nodeType":"YulFunctionCall","src":"1839:33:101"},"nativeSrc":"1839:33:101","nodeType":"YulExpressionStatement","src":"1839:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1739:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1769:6:101","nodeType":"YulTypedName","src":"1769:6:101","type":""},{"name":"end","nativeSrc":"1777:3:101","nodeType":"YulTypedName","src":"1777:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1785:5:101","nodeType":"YulTypedName","src":"1785:5:101","type":""}],"src":"1739:139:101"},{"body":{"nativeSrc":"1984:519:101","nodeType":"YulBlock","src":"1984:519:101","statements":[{"body":{"nativeSrc":"2030:83:101","nodeType":"YulBlock","src":"2030:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2032:77:101","nodeType":"YulIdentifier","src":"2032:77:101"},"nativeSrc":"2032:79:101","nodeType":"YulFunctionCall","src":"2032:79:101"},"nativeSrc":"2032:79:101","nodeType":"YulExpressionStatement","src":"2032:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2005:7:101","nodeType":"YulIdentifier","src":"2005:7:101"},{"name":"headStart","nativeSrc":"2014:9:101","nodeType":"YulIdentifier","src":"2014:9:101"}],"functionName":{"name":"sub","nativeSrc":"2001:3:101","nodeType":"YulIdentifier","src":"2001:3:101"},"nativeSrc":"2001:23:101","nodeType":"YulFunctionCall","src":"2001:23:101"},{"kind":"number","nativeSrc":"2026:2:101","nodeType":"YulLiteral","src":"2026:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1997:3:101","nodeType":"YulIdentifier","src":"1997:3:101"},"nativeSrc":"1997:32:101","nodeType":"YulFunctionCall","src":"1997:32:101"},"nativeSrc":"1994:119:101","nodeType":"YulIf","src":"1994:119:101"},{"nativeSrc":"2123:117:101","nodeType":"YulBlock","src":"2123:117:101","statements":[{"nativeSrc":"2138:15:101","nodeType":"YulVariableDeclaration","src":"2138:15:101","value":{"kind":"number","nativeSrc":"2152:1:101","nodeType":"YulLiteral","src":"2152:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2142:6:101","nodeType":"YulTypedName","src":"2142:6:101","type":""}]},{"nativeSrc":"2167:63:101","nodeType":"YulAssignment","src":"2167:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2202:9:101","nodeType":"YulIdentifier","src":"2202:9:101"},{"name":"offset","nativeSrc":"2213:6:101","nodeType":"YulIdentifier","src":"2213:6:101"}],"functionName":{"name":"add","nativeSrc":"2198:3:101","nodeType":"YulIdentifier","src":"2198:3:101"},"nativeSrc":"2198:22:101","nodeType":"YulFunctionCall","src":"2198:22:101"},{"name":"dataEnd","nativeSrc":"2222:7:101","nodeType":"YulIdentifier","src":"2222:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2177:20:101","nodeType":"YulIdentifier","src":"2177:20:101"},"nativeSrc":"2177:53:101","nodeType":"YulFunctionCall","src":"2177:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2167:6:101","nodeType":"YulIdentifier","src":"2167:6:101"}]}]},{"nativeSrc":"2250:118:101","nodeType":"YulBlock","src":"2250:118:101","statements":[{"nativeSrc":"2265:16:101","nodeType":"YulVariableDeclaration","src":"2265:16:101","value":{"kind":"number","nativeSrc":"2279:2:101","nodeType":"YulLiteral","src":"2279:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2269:6:101","nodeType":"YulTypedName","src":"2269:6:101","type":""}]},{"nativeSrc":"2295:63:101","nodeType":"YulAssignment","src":"2295:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2330:9:101","nodeType":"YulIdentifier","src":"2330:9:101"},{"name":"offset","nativeSrc":"2341:6:101","nodeType":"YulIdentifier","src":"2341:6:101"}],"functionName":{"name":"add","nativeSrc":"2326:3:101","nodeType":"YulIdentifier","src":"2326:3:101"},"nativeSrc":"2326:22:101","nodeType":"YulFunctionCall","src":"2326:22:101"},{"name":"dataEnd","nativeSrc":"2350:7:101","nodeType":"YulIdentifier","src":"2350:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2305:20:101","nodeType":"YulIdentifier","src":"2305:20:101"},"nativeSrc":"2305:53:101","nodeType":"YulFunctionCall","src":"2305:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"}]}]},{"nativeSrc":"2378:118:101","nodeType":"YulBlock","src":"2378:118:101","statements":[{"nativeSrc":"2393:16:101","nodeType":"YulVariableDeclaration","src":"2393:16:101","value":{"kind":"number","nativeSrc":"2407:2:101","nodeType":"YulLiteral","src":"2407:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2397:6:101","nodeType":"YulTypedName","src":"2397:6:101","type":""}]},{"nativeSrc":"2423:63:101","nodeType":"YulAssignment","src":"2423:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2458:9:101","nodeType":"YulIdentifier","src":"2458:9:101"},{"name":"offset","nativeSrc":"2469:6:101","nodeType":"YulIdentifier","src":"2469:6:101"}],"functionName":{"name":"add","nativeSrc":"2454:3:101","nodeType":"YulIdentifier","src":"2454:3:101"},"nativeSrc":"2454:22:101","nodeType":"YulFunctionCall","src":"2454:22:101"},{"name":"dataEnd","nativeSrc":"2478:7:101","nodeType":"YulIdentifier","src":"2478:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2433:20:101","nodeType":"YulIdentifier","src":"2433:20:101"},"nativeSrc":"2433:53:101","nodeType":"YulFunctionCall","src":"2433:53:101"},"variableNames":[{"name":"value2","nativeSrc":"2423:6:101","nodeType":"YulIdentifier","src":"2423:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nativeSrc":"1884:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1938:9:101","nodeType":"YulTypedName","src":"1938:9:101","type":""},{"name":"dataEnd","nativeSrc":"1949:7:101","nodeType":"YulTypedName","src":"1949:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1961:6:101","nodeType":"YulTypedName","src":"1961:6:101","type":""},{"name":"value1","nativeSrc":"1969:6:101","nodeType":"YulTypedName","src":"1969:6:101","type":""},{"name":"value2","nativeSrc":"1977:6:101","nodeType":"YulTypedName","src":"1977:6:101","type":""}],"src":"1884:619:101"},{"body":{"nativeSrc":"2551:48:101","nodeType":"YulBlock","src":"2551:48:101","statements":[{"nativeSrc":"2561:32:101","nodeType":"YulAssignment","src":"2561:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2586:5:101","nodeType":"YulIdentifier","src":"2586:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"},"nativeSrc":"2579:13:101","nodeType":"YulFunctionCall","src":"2579:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2572:6:101","nodeType":"YulIdentifier","src":"2572:6:101"},"nativeSrc":"2572:21:101","nodeType":"YulFunctionCall","src":"2572:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2561:7:101","nodeType":"YulIdentifier","src":"2561:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2509:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2533:5:101","nodeType":"YulTypedName","src":"2533:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2543:7:101","nodeType":"YulTypedName","src":"2543:7:101","type":""}],"src":"2509:90:101"},{"body":{"nativeSrc":"2664:50:101","nodeType":"YulBlock","src":"2664:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2681:3:101","nodeType":"YulIdentifier","src":"2681:3:101"},{"arguments":[{"name":"value","nativeSrc":"2701:5:101","nodeType":"YulIdentifier","src":"2701:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2686:14:101","nodeType":"YulIdentifier","src":"2686:14:101"},"nativeSrc":"2686:21:101","nodeType":"YulFunctionCall","src":"2686:21:101"}],"functionName":{"name":"mstore","nativeSrc":"2674:6:101","nodeType":"YulIdentifier","src":"2674:6:101"},"nativeSrc":"2674:34:101","nodeType":"YulFunctionCall","src":"2674:34:101"},"nativeSrc":"2674:34:101","nodeType":"YulExpressionStatement","src":"2674:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2605:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2652:5:101","nodeType":"YulTypedName","src":"2652:5:101","type":""},{"name":"pos","nativeSrc":"2659:3:101","nodeType":"YulTypedName","src":"2659:3:101","type":""}],"src":"2605:109:101"},{"body":{"nativeSrc":"2812:118:101","nodeType":"YulBlock","src":"2812:118:101","statements":[{"nativeSrc":"2822:26:101","nodeType":"YulAssignment","src":"2822:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2834:9:101","nodeType":"YulIdentifier","src":"2834:9:101"},{"kind":"number","nativeSrc":"2845:2:101","nodeType":"YulLiteral","src":"2845:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2830:3:101","nodeType":"YulIdentifier","src":"2830:3:101"},"nativeSrc":"2830:18:101","nodeType":"YulFunctionCall","src":"2830:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2822:4:101","nodeType":"YulIdentifier","src":"2822:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2896:6:101","nodeType":"YulIdentifier","src":"2896:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2909:9:101","nodeType":"YulIdentifier","src":"2909:9:101"},{"kind":"number","nativeSrc":"2920:1:101","nodeType":"YulLiteral","src":"2920:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2905:3:101","nodeType":"YulIdentifier","src":"2905:3:101"},"nativeSrc":"2905:17:101","nodeType":"YulFunctionCall","src":"2905:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2858:37:101","nodeType":"YulIdentifier","src":"2858:37:101"},"nativeSrc":"2858:65:101","nodeType":"YulFunctionCall","src":"2858:65:101"},"nativeSrc":"2858:65:101","nodeType":"YulExpressionStatement","src":"2858:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2720:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2784:9:101","nodeType":"YulTypedName","src":"2784:9:101","type":""},{"name":"value0","nativeSrc":"2796:6:101","nodeType":"YulTypedName","src":"2796:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2807:4:101","nodeType":"YulTypedName","src":"2807:4:101","type":""}],"src":"2720:210:101"},{"body":{"nativeSrc":"3025:28:101","nodeType":"YulBlock","src":"3025:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3042:1:101","nodeType":"YulLiteral","src":"3042:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3045:1:101","nodeType":"YulLiteral","src":"3045:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3035:6:101","nodeType":"YulIdentifier","src":"3035:6:101"},"nativeSrc":"3035:12:101","nodeType":"YulFunctionCall","src":"3035:12:101"},"nativeSrc":"3035:12:101","nodeType":"YulExpressionStatement","src":"3035:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2936:117:101","nodeType":"YulFunctionDefinition","src":"2936:117:101"},{"body":{"nativeSrc":"3107:54:101","nodeType":"YulBlock","src":"3107:54:101","statements":[{"nativeSrc":"3117:38:101","nodeType":"YulAssignment","src":"3117:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3135:5:101","nodeType":"YulIdentifier","src":"3135:5:101"},{"kind":"number","nativeSrc":"3142:2:101","nodeType":"YulLiteral","src":"3142:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3131:3:101","nodeType":"YulIdentifier","src":"3131:3:101"},"nativeSrc":"3131:14:101","nodeType":"YulFunctionCall","src":"3131:14:101"},{"arguments":[{"kind":"number","nativeSrc":"3151:2:101","nodeType":"YulLiteral","src":"3151:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3147:3:101","nodeType":"YulIdentifier","src":"3147:3:101"},"nativeSrc":"3147:7:101","nodeType":"YulFunctionCall","src":"3147:7:101"}],"functionName":{"name":"and","nativeSrc":"3127:3:101","nodeType":"YulIdentifier","src":"3127:3:101"},"nativeSrc":"3127:28:101","nodeType":"YulFunctionCall","src":"3127:28:101"},"variableNames":[{"name":"result","nativeSrc":"3117:6:101","nodeType":"YulIdentifier","src":"3117:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3059:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3090:5:101","nodeType":"YulTypedName","src":"3090:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3100:6:101","nodeType":"YulTypedName","src":"3100:6:101","type":""}],"src":"3059:102:101"},{"body":{"nativeSrc":"3195:152:101","nodeType":"YulBlock","src":"3195:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3212:1:101","nodeType":"YulLiteral","src":"3212:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3215:77:101","nodeType":"YulLiteral","src":"3215:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3205:6:101","nodeType":"YulIdentifier","src":"3205:6:101"},"nativeSrc":"3205:88:101","nodeType":"YulFunctionCall","src":"3205:88:101"},"nativeSrc":"3205:88:101","nodeType":"YulExpressionStatement","src":"3205:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3309:1:101","nodeType":"YulLiteral","src":"3309:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3312:4:101","nodeType":"YulLiteral","src":"3312:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3302:6:101","nodeType":"YulIdentifier","src":"3302:6:101"},"nativeSrc":"3302:15:101","nodeType":"YulFunctionCall","src":"3302:15:101"},"nativeSrc":"3302:15:101","nodeType":"YulExpressionStatement","src":"3302:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3333:1:101","nodeType":"YulLiteral","src":"3333:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3336:4:101","nodeType":"YulLiteral","src":"3336:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3326:6:101","nodeType":"YulIdentifier","src":"3326:6:101"},"nativeSrc":"3326:15:101","nodeType":"YulFunctionCall","src":"3326:15:101"},"nativeSrc":"3326:15:101","nodeType":"YulExpressionStatement","src":"3326:15:101"}]},"name":"panic_error_0x41","nativeSrc":"3167:180:101","nodeType":"YulFunctionDefinition","src":"3167:180:101"},{"body":{"nativeSrc":"3396:238:101","nodeType":"YulBlock","src":"3396:238:101","statements":[{"nativeSrc":"3406:58:101","nodeType":"YulVariableDeclaration","src":"3406:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"3428:6:101","nodeType":"YulIdentifier","src":"3428:6:101"},{"arguments":[{"name":"size","nativeSrc":"3458:4:101","nodeType":"YulIdentifier","src":"3458:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3436:21:101","nodeType":"YulIdentifier","src":"3436:21:101"},"nativeSrc":"3436:27:101","nodeType":"YulFunctionCall","src":"3436:27:101"}],"functionName":{"name":"add","nativeSrc":"3424:3:101","nodeType":"YulIdentifier","src":"3424:3:101"},"nativeSrc":"3424:40:101","nodeType":"YulFunctionCall","src":"3424:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"3410:10:101","nodeType":"YulTypedName","src":"3410:10:101","type":""}]},{"body":{"nativeSrc":"3575:22:101","nodeType":"YulBlock","src":"3575:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3577:16:101","nodeType":"YulIdentifier","src":"3577:16:101"},"nativeSrc":"3577:18:101","nodeType":"YulFunctionCall","src":"3577:18:101"},"nativeSrc":"3577:18:101","nodeType":"YulExpressionStatement","src":"3577:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3518:10:101","nodeType":"YulIdentifier","src":"3518:10:101"},{"kind":"number","nativeSrc":"3530:18:101","nodeType":"YulLiteral","src":"3530:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3515:2:101","nodeType":"YulIdentifier","src":"3515:2:101"},"nativeSrc":"3515:34:101","nodeType":"YulFunctionCall","src":"3515:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3554:10:101","nodeType":"YulIdentifier","src":"3554:10:101"},{"name":"memPtr","nativeSrc":"3566:6:101","nodeType":"YulIdentifier","src":"3566:6:101"}],"functionName":{"name":"lt","nativeSrc":"3551:2:101","nodeType":"YulIdentifier","src":"3551:2:101"},"nativeSrc":"3551:22:101","nodeType":"YulFunctionCall","src":"3551:22:101"}],"functionName":{"name":"or","nativeSrc":"3512:2:101","nodeType":"YulIdentifier","src":"3512:2:101"},"nativeSrc":"3512:62:101","nodeType":"YulFunctionCall","src":"3512:62:101"},"nativeSrc":"3509:88:101","nodeType":"YulIf","src":"3509:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3613:2:101","nodeType":"YulLiteral","src":"3613:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3617:10:101","nodeType":"YulIdentifier","src":"3617:10:101"}],"functionName":{"name":"mstore","nativeSrc":"3606:6:101","nodeType":"YulIdentifier","src":"3606:6:101"},"nativeSrc":"3606:22:101","nodeType":"YulFunctionCall","src":"3606:22:101"},"nativeSrc":"3606:22:101","nodeType":"YulExpressionStatement","src":"3606:22:101"}]},"name":"finalize_allocation","nativeSrc":"3353:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3382:6:101","nodeType":"YulTypedName","src":"3382:6:101","type":""},{"name":"size","nativeSrc":"3390:4:101","nodeType":"YulTypedName","src":"3390:4:101","type":""}],"src":"3353:281:101"},{"body":{"nativeSrc":"3681:88:101","nodeType":"YulBlock","src":"3681:88:101","statements":[{"nativeSrc":"3691:30:101","nodeType":"YulAssignment","src":"3691:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"3701:18:101","nodeType":"YulIdentifier","src":"3701:18:101"},"nativeSrc":"3701:20:101","nodeType":"YulFunctionCall","src":"3701:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"3691:6:101","nodeType":"YulIdentifier","src":"3691:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3750:6:101","nodeType":"YulIdentifier","src":"3750:6:101"},{"name":"size","nativeSrc":"3758:4:101","nodeType":"YulIdentifier","src":"3758:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"3730:19:101","nodeType":"YulIdentifier","src":"3730:19:101"},"nativeSrc":"3730:33:101","nodeType":"YulFunctionCall","src":"3730:33:101"},"nativeSrc":"3730:33:101","nodeType":"YulExpressionStatement","src":"3730:33:101"}]},"name":"allocate_memory","nativeSrc":"3640:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"3665:4:101","nodeType":"YulTypedName","src":"3665:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"3674:6:101","nodeType":"YulTypedName","src":"3674:6:101","type":""}],"src":"3640:129:101"},{"body":{"nativeSrc":"3889:229:101","nodeType":"YulBlock","src":"3889:229:101","statements":[{"body":{"nativeSrc":"3994:22:101","nodeType":"YulBlock","src":"3994:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3996:16:101","nodeType":"YulIdentifier","src":"3996:16:101"},"nativeSrc":"3996:18:101","nodeType":"YulFunctionCall","src":"3996:18:101"},"nativeSrc":"3996:18:101","nodeType":"YulExpressionStatement","src":"3996:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3966:6:101","nodeType":"YulIdentifier","src":"3966:6:101"},{"kind":"number","nativeSrc":"3974:18:101","nodeType":"YulLiteral","src":"3974:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3963:2:101","nodeType":"YulIdentifier","src":"3963:2:101"},"nativeSrc":"3963:30:101","nodeType":"YulFunctionCall","src":"3963:30:101"},"nativeSrc":"3960:56:101","nodeType":"YulIf","src":"3960:56:101"},{"nativeSrc":"4026:25:101","nodeType":"YulAssignment","src":"4026:25:101","value":{"arguments":[{"name":"length","nativeSrc":"4038:6:101","nodeType":"YulIdentifier","src":"4038:6:101"},{"kind":"number","nativeSrc":"4046:4:101","nodeType":"YulLiteral","src":"4046:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4034:3:101","nodeType":"YulIdentifier","src":"4034:3:101"},"nativeSrc":"4034:17:101","nodeType":"YulFunctionCall","src":"4034:17:101"},"variableNames":[{"name":"size","nativeSrc":"4026:4:101","nodeType":"YulIdentifier","src":"4026:4:101"}]},{"nativeSrc":"4088:23:101","nodeType":"YulAssignment","src":"4088:23:101","value":{"arguments":[{"name":"size","nativeSrc":"4100:4:101","nodeType":"YulIdentifier","src":"4100:4:101"},{"kind":"number","nativeSrc":"4106:4:101","nodeType":"YulLiteral","src":"4106:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4096:3:101","nodeType":"YulIdentifier","src":"4096:3:101"},"nativeSrc":"4096:15:101","nodeType":"YulFunctionCall","src":"4096:15:101"},"variableNames":[{"name":"size","nativeSrc":"4088:4:101","nodeType":"YulIdentifier","src":"4088:4:101"}]}]},"name":"array_allocation_size_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","nativeSrc":"3775:343:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"3873:6:101","nodeType":"YulTypedName","src":"3873:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"3884:4:101","nodeType":"YulTypedName","src":"3884:4:101","type":""}],"src":"3775:343:101"},{"body":{"nativeSrc":"4213:28:101","nodeType":"YulBlock","src":"4213:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4230:1:101","nodeType":"YulLiteral","src":"4230:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4233:1:101","nodeType":"YulLiteral","src":"4233:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4223:6:101","nodeType":"YulIdentifier","src":"4223:6:101"},"nativeSrc":"4223:12:101","nodeType":"YulFunctionCall","src":"4223:12:101"},"nativeSrc":"4223:12:101","nodeType":"YulExpressionStatement","src":"4223:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4124:117:101","nodeType":"YulFunctionDefinition","src":"4124:117:101"},{"body":{"nativeSrc":"4336:28:101","nodeType":"YulBlock","src":"4336:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4353:1:101","nodeType":"YulLiteral","src":"4353:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4356:1:101","nodeType":"YulLiteral","src":"4356:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4346:6:101","nodeType":"YulIdentifier","src":"4346:6:101"},"nativeSrc":"4346:12:101","nodeType":"YulFunctionCall","src":"4346:12:101"},"nativeSrc":"4346:12:101","nodeType":"YulExpressionStatement","src":"4346:12:101"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"4247:117:101","nodeType":"YulFunctionDefinition","src":"4247:117:101"},{"body":{"nativeSrc":"4459:28:101","nodeType":"YulBlock","src":"4459:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4476:1:101","nodeType":"YulLiteral","src":"4476:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4479:1:101","nodeType":"YulLiteral","src":"4479:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4469:6:101","nodeType":"YulIdentifier","src":"4469:6:101"},"nativeSrc":"4469:12:101","nodeType":"YulFunctionCall","src":"4469:12:101"},"nativeSrc":"4469:12:101","nodeType":"YulExpressionStatement","src":"4469:12:101"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"4370:117:101","nodeType":"YulFunctionDefinition","src":"4370:117:101"},{"body":{"nativeSrc":"4624:678:101","nodeType":"YulBlock","src":"4624:678:101","statements":[{"body":{"nativeSrc":"4668:83:101","nodeType":"YulBlock","src":"4668:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"4670:77:101","nodeType":"YulIdentifier","src":"4670:77:101"},"nativeSrc":"4670:79:101","nodeType":"YulFunctionCall","src":"4670:79:101"},"nativeSrc":"4670:79:101","nodeType":"YulExpressionStatement","src":"4670:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"4645:3:101","nodeType":"YulIdentifier","src":"4645:3:101"},{"name":"headStart","nativeSrc":"4650:9:101","nodeType":"YulIdentifier","src":"4650:9:101"}],"functionName":{"name":"sub","nativeSrc":"4641:3:101","nodeType":"YulIdentifier","src":"4641:3:101"},"nativeSrc":"4641:19:101","nodeType":"YulFunctionCall","src":"4641:19:101"},{"kind":"number","nativeSrc":"4662:4:101","nodeType":"YulLiteral","src":"4662:4:101","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"4637:3:101","nodeType":"YulIdentifier","src":"4637:3:101"},"nativeSrc":"4637:30:101","nodeType":"YulFunctionCall","src":"4637:30:101"},"nativeSrc":"4634:117:101","nodeType":"YulIf","src":"4634:117:101"},{"nativeSrc":"4760:30:101","nodeType":"YulAssignment","src":"4760:30:101","value":{"arguments":[{"kind":"number","nativeSrc":"4785:4:101","nodeType":"YulLiteral","src":"4785:4:101","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"4769:15:101","nodeType":"YulIdentifier","src":"4769:15:101"},"nativeSrc":"4769:21:101","nodeType":"YulFunctionCall","src":"4769:21:101"},"variableNames":[{"name":"value","nativeSrc":"4760:5:101","nodeType":"YulIdentifier","src":"4760:5:101"}]},{"nativeSrc":"4800:151:101","nodeType":"YulBlock","src":"4800:151:101","statements":[{"nativeSrc":"4836:15:101","nodeType":"YulVariableDeclaration","src":"4836:15:101","value":{"kind":"number","nativeSrc":"4850:1:101","nodeType":"YulLiteral","src":"4850:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4840:6:101","nodeType":"YulTypedName","src":"4840:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4876:5:101","nodeType":"YulIdentifier","src":"4876:5:101"},{"kind":"number","nativeSrc":"4883:4:101","nodeType":"YulLiteral","src":"4883:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"4872:3:101","nodeType":"YulIdentifier","src":"4872:3:101"},"nativeSrc":"4872:16:101","nodeType":"YulFunctionCall","src":"4872:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4915:9:101","nodeType":"YulIdentifier","src":"4915:9:101"},{"name":"offset","nativeSrc":"4926:6:101","nodeType":"YulIdentifier","src":"4926:6:101"}],"functionName":{"name":"add","nativeSrc":"4911:3:101","nodeType":"YulIdentifier","src":"4911:3:101"},"nativeSrc":"4911:22:101","nodeType":"YulFunctionCall","src":"4911:22:101"},{"name":"end","nativeSrc":"4935:3:101","nodeType":"YulIdentifier","src":"4935:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4890:20:101","nodeType":"YulIdentifier","src":"4890:20:101"},"nativeSrc":"4890:49:101","nodeType":"YulFunctionCall","src":"4890:49:101"}],"functionName":{"name":"mstore","nativeSrc":"4865:6:101","nodeType":"YulIdentifier","src":"4865:6:101"},"nativeSrc":"4865:75:101","nodeType":"YulFunctionCall","src":"4865:75:101"},"nativeSrc":"4865:75:101","nodeType":"YulExpressionStatement","src":"4865:75:101"}]},{"nativeSrc":"4961:162:101","nodeType":"YulBlock","src":"4961:162:101","statements":[{"nativeSrc":"5007:16:101","nodeType":"YulVariableDeclaration","src":"5007:16:101","value":{"kind":"number","nativeSrc":"5021:2:101","nodeType":"YulLiteral","src":"5021:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5011:6:101","nodeType":"YulTypedName","src":"5011:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5048:5:101","nodeType":"YulIdentifier","src":"5048:5:101"},{"kind":"number","nativeSrc":"5055:4:101","nodeType":"YulLiteral","src":"5055:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5044:3:101","nodeType":"YulIdentifier","src":"5044:3:101"},"nativeSrc":"5044:16:101","nodeType":"YulFunctionCall","src":"5044:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5087:9:101","nodeType":"YulIdentifier","src":"5087:9:101"},{"name":"offset","nativeSrc":"5098:6:101","nodeType":"YulIdentifier","src":"5098:6:101"}],"functionName":{"name":"add","nativeSrc":"5083:3:101","nodeType":"YulIdentifier","src":"5083:3:101"},"nativeSrc":"5083:22:101","nodeType":"YulFunctionCall","src":"5083:22:101"},{"name":"end","nativeSrc":"5107:3:101","nodeType":"YulIdentifier","src":"5107:3:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5062:20:101","nodeType":"YulIdentifier","src":"5062:20:101"},"nativeSrc":"5062:49:101","nodeType":"YulFunctionCall","src":"5062:49:101"}],"functionName":{"name":"mstore","nativeSrc":"5037:6:101","nodeType":"YulIdentifier","src":"5037:6:101"},"nativeSrc":"5037:75:101","nodeType":"YulFunctionCall","src":"5037:75:101"},"nativeSrc":"5037:75:101","nodeType":"YulExpressionStatement","src":"5037:75:101"}]},{"nativeSrc":"5133:162:101","nodeType":"YulBlock","src":"5133:162:101","statements":[{"nativeSrc":"5179:16:101","nodeType":"YulVariableDeclaration","src":"5179:16:101","value":{"kind":"number","nativeSrc":"5193:2:101","nodeType":"YulLiteral","src":"5193:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5183:6:101","nodeType":"YulTypedName","src":"5183:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5220:5:101","nodeType":"YulIdentifier","src":"5220:5:101"},{"kind":"number","nativeSrc":"5227:4:101","nodeType":"YulLiteral","src":"5227:4:101","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5216:3:101","nodeType":"YulIdentifier","src":"5216:3:101"},"nativeSrc":"5216:16:101","nodeType":"YulFunctionCall","src":"5216:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5259:9:101","nodeType":"YulIdentifier","src":"5259:9:101"},{"name":"offset","nativeSrc":"5270:6:101","nodeType":"YulIdentifier","src":"5270:6:101"}],"functionName":{"name":"add","nativeSrc":"5255:3:101","nodeType":"YulIdentifier","src":"5255:3:101"},"nativeSrc":"5255:22:101","nodeType":"YulFunctionCall","src":"5255:22:101"},{"name":"end","nativeSrc":"5279:3:101","nodeType":"YulIdentifier","src":"5279:3:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5234:20:101","nodeType":"YulIdentifier","src":"5234:20:101"},"nativeSrc":"5234:49:101","nodeType":"YulFunctionCall","src":"5234:49:101"}],"functionName":{"name":"mstore","nativeSrc":"5209:6:101","nodeType":"YulIdentifier","src":"5209:6:101"},"nativeSrc":"5209:75:101","nodeType":"YulFunctionCall","src":"5209:75:101"},"nativeSrc":"5209:75:101","nodeType":"YulExpressionStatement","src":"5209:75:101"}]}]},"name":"abi_decode_t_struct$_ValidateConfig_$4448_memory_ptr","nativeSrc":"4537:765:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4599:9:101","nodeType":"YulTypedName","src":"4599:9:101","type":""},{"name":"end","nativeSrc":"4610:3:101","nodeType":"YulTypedName","src":"4610:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4618:5:101","nodeType":"YulTypedName","src":"4618:5:101","type":""}],"src":"4537:765:101"},{"body":{"nativeSrc":"5488:672:101","nodeType":"YulBlock","src":"5488:672:101","statements":[{"nativeSrc":"5498:122:101","nodeType":"YulAssignment","src":"5498:122:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5612:6:101","nodeType":"YulIdentifier","src":"5612:6:101"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","nativeSrc":"5523:88:101","nodeType":"YulIdentifier","src":"5523:88:101"},"nativeSrc":"5523:96:101","nodeType":"YulFunctionCall","src":"5523:96:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"5507:15:101","nodeType":"YulIdentifier","src":"5507:15:101"},"nativeSrc":"5507:113:101","nodeType":"YulFunctionCall","src":"5507:113:101"},"variableNames":[{"name":"array","nativeSrc":"5498:5:101","nodeType":"YulIdentifier","src":"5498:5:101"}]},{"nativeSrc":"5629:16:101","nodeType":"YulVariableDeclaration","src":"5629:16:101","value":{"name":"array","nativeSrc":"5640:5:101","nodeType":"YulIdentifier","src":"5640:5:101"},"variables":[{"name":"dst","nativeSrc":"5633:3:101","nodeType":"YulTypedName","src":"5633:3:101","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"5662:5:101","nodeType":"YulIdentifier","src":"5662:5:101"},{"name":"length","nativeSrc":"5669:6:101","nodeType":"YulIdentifier","src":"5669:6:101"}],"functionName":{"name":"mstore","nativeSrc":"5655:6:101","nodeType":"YulIdentifier","src":"5655:6:101"},"nativeSrc":"5655:21:101","nodeType":"YulFunctionCall","src":"5655:21:101"},"nativeSrc":"5655:21:101","nodeType":"YulExpressionStatement","src":"5655:21:101"},{"nativeSrc":"5685:23:101","nodeType":"YulAssignment","src":"5685:23:101","value":{"arguments":[{"name":"array","nativeSrc":"5696:5:101","nodeType":"YulIdentifier","src":"5696:5:101"},{"kind":"number","nativeSrc":"5703:4:101","nodeType":"YulLiteral","src":"5703:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5692:3:101","nodeType":"YulIdentifier","src":"5692:3:101"},"nativeSrc":"5692:16:101","nodeType":"YulFunctionCall","src":"5692:16:101"},"variableNames":[{"name":"dst","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"}]},{"nativeSrc":"5718:44:101","nodeType":"YulVariableDeclaration","src":"5718:44:101","value":{"arguments":[{"name":"offset","nativeSrc":"5736:6:101","nodeType":"YulIdentifier","src":"5736:6:101"},{"arguments":[{"name":"length","nativeSrc":"5748:6:101","nodeType":"YulIdentifier","src":"5748:6:101"},{"kind":"number","nativeSrc":"5756:4:101","nodeType":"YulLiteral","src":"5756:4:101","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"5744:3:101","nodeType":"YulIdentifier","src":"5744:3:101"},"nativeSrc":"5744:17:101","nodeType":"YulFunctionCall","src":"5744:17:101"}],"functionName":{"name":"add","nativeSrc":"5732:3:101","nodeType":"YulIdentifier","src":"5732:3:101"},"nativeSrc":"5732:30:101","nodeType":"YulFunctionCall","src":"5732:30:101"},"variables":[{"name":"srcEnd","nativeSrc":"5722:6:101","nodeType":"YulTypedName","src":"5722:6:101","type":""}]},{"body":{"nativeSrc":"5790:103:101","nodeType":"YulBlock","src":"5790:103:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5804:77:101","nodeType":"YulIdentifier","src":"5804:77:101"},"nativeSrc":"5804:79:101","nodeType":"YulFunctionCall","src":"5804:79:101"},"nativeSrc":"5804:79:101","nodeType":"YulExpressionStatement","src":"5804:79:101"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"5777:6:101","nodeType":"YulIdentifier","src":"5777:6:101"},{"name":"end","nativeSrc":"5785:3:101","nodeType":"YulIdentifier","src":"5785:3:101"}],"functionName":{"name":"gt","nativeSrc":"5774:2:101","nodeType":"YulIdentifier","src":"5774:2:101"},"nativeSrc":"5774:15:101","nodeType":"YulFunctionCall","src":"5774:15:101"},"nativeSrc":"5771:122:101","nodeType":"YulIf","src":"5771:122:101"},{"body":{"nativeSrc":"5978:176:101","nodeType":"YulBlock","src":"5978:176:101","statements":[{"nativeSrc":"5993:21:101","nodeType":"YulVariableDeclaration","src":"5993:21:101","value":{"name":"src","nativeSrc":"6011:3:101","nodeType":"YulIdentifier","src":"6011:3:101"},"variables":[{"name":"elementPos","nativeSrc":"5997:10:101","nodeType":"YulTypedName","src":"5997:10:101","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},{"arguments":[{"name":"elementPos","nativeSrc":"6093:10:101","nodeType":"YulIdentifier","src":"6093:10:101"},{"name":"end","nativeSrc":"6105:3:101","nodeType":"YulIdentifier","src":"6105:3:101"}],"functionName":{"name":"abi_decode_t_struct$_ValidateConfig_$4448_memory_ptr","nativeSrc":"6040:52:101","nodeType":"YulIdentifier","src":"6040:52:101"},"nativeSrc":"6040:69:101","nodeType":"YulFunctionCall","src":"6040:69:101"}],"functionName":{"name":"mstore","nativeSrc":"6028:6:101","nodeType":"YulIdentifier","src":"6028:6:101"},"nativeSrc":"6028:82:101","nodeType":"YulFunctionCall","src":"6028:82:101"},"nativeSrc":"6028:82:101","nodeType":"YulExpressionStatement","src":"6028:82:101"},{"nativeSrc":"6123:21:101","nodeType":"YulAssignment","src":"6123:21:101","value":{"arguments":[{"name":"dst","nativeSrc":"6134:3:101","nodeType":"YulIdentifier","src":"6134:3:101"},{"kind":"number","nativeSrc":"6139:4:101","nodeType":"YulLiteral","src":"6139:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6130:3:101","nodeType":"YulIdentifier","src":"6130:3:101"},"nativeSrc":"6130:14:101","nodeType":"YulFunctionCall","src":"6130:14:101"},"variableNames":[{"name":"dst","nativeSrc":"6123:3:101","nodeType":"YulIdentifier","src":"6123:3:101"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"5931:3:101","nodeType":"YulIdentifier","src":"5931:3:101"},{"name":"srcEnd","nativeSrc":"5936:6:101","nodeType":"YulIdentifier","src":"5936:6:101"}],"functionName":{"name":"lt","nativeSrc":"5928:2:101","nodeType":"YulIdentifier","src":"5928:2:101"},"nativeSrc":"5928:15:101","nodeType":"YulFunctionCall","src":"5928:15:101"},"nativeSrc":"5902:252:101","nodeType":"YulForLoop","post":{"nativeSrc":"5944:25:101","nodeType":"YulBlock","src":"5944:25:101","statements":[{"nativeSrc":"5946:21:101","nodeType":"YulAssignment","src":"5946:21:101","value":{"arguments":[{"name":"src","nativeSrc":"5957:3:101","nodeType":"YulIdentifier","src":"5957:3:101"},{"kind":"number","nativeSrc":"5962:4:101","nodeType":"YulLiteral","src":"5962:4:101","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5953:3:101","nodeType":"YulIdentifier","src":"5953:3:101"},"nativeSrc":"5953:14:101","nodeType":"YulFunctionCall","src":"5953:14:101"},"variableNames":[{"name":"src","nativeSrc":"5946:3:101","nodeType":"YulIdentifier","src":"5946:3:101"}]}]},"pre":{"nativeSrc":"5906:21:101","nodeType":"YulBlock","src":"5906:21:101","statements":[{"nativeSrc":"5908:17:101","nodeType":"YulVariableDeclaration","src":"5908:17:101","value":{"name":"offset","nativeSrc":"5919:6:101","nodeType":"YulIdentifier","src":"5919:6:101"},"variables":[{"name":"src","nativeSrc":"5912:3:101","nodeType":"YulTypedName","src":"5912:3:101","type":""}]}]},"src":"5902:252:101"}]},"name":"abi_decode_available_length_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","nativeSrc":"5354:806:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5458:6:101","nodeType":"YulTypedName","src":"5458:6:101","type":""},{"name":"length","nativeSrc":"5466:6:101","nodeType":"YulTypedName","src":"5466:6:101","type":""},{"name":"end","nativeSrc":"5474:3:101","nodeType":"YulTypedName","src":"5474:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"5482:5:101","nodeType":"YulTypedName","src":"5482:5:101","type":""}],"src":"5354:806:101"},{"body":{"nativeSrc":"6321:325:101","nodeType":"YulBlock","src":"6321:325:101","statements":[{"body":{"nativeSrc":"6370:83:101","nodeType":"YulBlock","src":"6370:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6372:77:101","nodeType":"YulIdentifier","src":"6372:77:101"},"nativeSrc":"6372:79:101","nodeType":"YulFunctionCall","src":"6372:79:101"},"nativeSrc":"6372:79:101","nodeType":"YulExpressionStatement","src":"6372:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6349:6:101","nodeType":"YulIdentifier","src":"6349:6:101"},{"kind":"number","nativeSrc":"6357:4:101","nodeType":"YulLiteral","src":"6357:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6345:3:101","nodeType":"YulIdentifier","src":"6345:3:101"},"nativeSrc":"6345:17:101","nodeType":"YulFunctionCall","src":"6345:17:101"},{"name":"end","nativeSrc":"6364:3:101","nodeType":"YulIdentifier","src":"6364:3:101"}],"functionName":{"name":"slt","nativeSrc":"6341:3:101","nodeType":"YulIdentifier","src":"6341:3:101"},"nativeSrc":"6341:27:101","nodeType":"YulFunctionCall","src":"6341:27:101"}],"functionName":{"name":"iszero","nativeSrc":"6334:6:101","nodeType":"YulIdentifier","src":"6334:6:101"},"nativeSrc":"6334:35:101","nodeType":"YulFunctionCall","src":"6334:35:101"},"nativeSrc":"6331:122:101","nodeType":"YulIf","src":"6331:122:101"},{"nativeSrc":"6462:34:101","nodeType":"YulVariableDeclaration","src":"6462:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"6489:6:101","nodeType":"YulIdentifier","src":"6489:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"6476:12:101","nodeType":"YulIdentifier","src":"6476:12:101"},"nativeSrc":"6476:20:101","nodeType":"YulFunctionCall","src":"6476:20:101"},"variables":[{"name":"length","nativeSrc":"6466:6:101","nodeType":"YulTypedName","src":"6466:6:101","type":""}]},{"nativeSrc":"6505:135:101","nodeType":"YulAssignment","src":"6505:135:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6613:6:101","nodeType":"YulIdentifier","src":"6613:6:101"},{"kind":"number","nativeSrc":"6621:4:101","nodeType":"YulLiteral","src":"6621:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6609:3:101","nodeType":"YulIdentifier","src":"6609:3:101"},"nativeSrc":"6609:17:101","nodeType":"YulFunctionCall","src":"6609:17:101"},{"name":"length","nativeSrc":"6628:6:101","nodeType":"YulIdentifier","src":"6628:6:101"},{"name":"end","nativeSrc":"6636:3:101","nodeType":"YulIdentifier","src":"6636:3:101"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","nativeSrc":"6514:94:101","nodeType":"YulIdentifier","src":"6514:94:101"},"nativeSrc":"6514:126:101","nodeType":"YulFunctionCall","src":"6514:126:101"},"variableNames":[{"name":"array","nativeSrc":"6505:5:101","nodeType":"YulIdentifier","src":"6505:5:101"}]}]},"name":"abi_decode_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","nativeSrc":"6212:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6299:6:101","nodeType":"YulTypedName","src":"6299:6:101","type":""},{"name":"end","nativeSrc":"6307:3:101","nodeType":"YulTypedName","src":"6307:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6315:5:101","nodeType":"YulTypedName","src":"6315:5:101","type":""}],"src":"6212:434:101"},{"body":{"nativeSrc":"6775:480:101","nodeType":"YulBlock","src":"6775:480:101","statements":[{"body":{"nativeSrc":"6821:83:101","nodeType":"YulBlock","src":"6821:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6823:77:101","nodeType":"YulIdentifier","src":"6823:77:101"},"nativeSrc":"6823:79:101","nodeType":"YulFunctionCall","src":"6823:79:101"},"nativeSrc":"6823:79:101","nodeType":"YulExpressionStatement","src":"6823:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6796:7:101","nodeType":"YulIdentifier","src":"6796:7:101"},{"name":"headStart","nativeSrc":"6805:9:101","nodeType":"YulIdentifier","src":"6805:9:101"}],"functionName":{"name":"sub","nativeSrc":"6792:3:101","nodeType":"YulIdentifier","src":"6792:3:101"},"nativeSrc":"6792:23:101","nodeType":"YulFunctionCall","src":"6792:23:101"},{"kind":"number","nativeSrc":"6817:2:101","nodeType":"YulLiteral","src":"6817:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6788:3:101","nodeType":"YulIdentifier","src":"6788:3:101"},"nativeSrc":"6788:32:101","nodeType":"YulFunctionCall","src":"6788:32:101"},"nativeSrc":"6785:119:101","nodeType":"YulIf","src":"6785:119:101"},{"nativeSrc":"6914:334:101","nodeType":"YulBlock","src":"6914:334:101","statements":[{"nativeSrc":"6929:45:101","nodeType":"YulVariableDeclaration","src":"6929:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6960:9:101","nodeType":"YulIdentifier","src":"6960:9:101"},{"kind":"number","nativeSrc":"6971:1:101","nodeType":"YulLiteral","src":"6971:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"},"nativeSrc":"6956:17:101","nodeType":"YulFunctionCall","src":"6956:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"6943:12:101","nodeType":"YulIdentifier","src":"6943:12:101"},"nativeSrc":"6943:31:101","nodeType":"YulFunctionCall","src":"6943:31:101"},"variables":[{"name":"offset","nativeSrc":"6933:6:101","nodeType":"YulTypedName","src":"6933:6:101","type":""}]},{"body":{"nativeSrc":"7021:83:101","nodeType":"YulBlock","src":"7021:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7023:77:101","nodeType":"YulIdentifier","src":"7023:77:101"},"nativeSrc":"7023:79:101","nodeType":"YulFunctionCall","src":"7023:79:101"},"nativeSrc":"7023:79:101","nodeType":"YulExpressionStatement","src":"7023:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6993:6:101","nodeType":"YulIdentifier","src":"6993:6:101"},{"kind":"number","nativeSrc":"7001:18:101","nodeType":"YulLiteral","src":"7001:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6990:2:101","nodeType":"YulIdentifier","src":"6990:2:101"},"nativeSrc":"6990:30:101","nodeType":"YulFunctionCall","src":"6990:30:101"},"nativeSrc":"6987:117:101","nodeType":"YulIf","src":"6987:117:101"},{"nativeSrc":"7118:120:101","nodeType":"YulAssignment","src":"7118:120:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7210:9:101","nodeType":"YulIdentifier","src":"7210:9:101"},{"name":"offset","nativeSrc":"7221:6:101","nodeType":"YulIdentifier","src":"7221:6:101"}],"functionName":{"name":"add","nativeSrc":"7206:3:101","nodeType":"YulIdentifier","src":"7206:3:101"},"nativeSrc":"7206:22:101","nodeType":"YulFunctionCall","src":"7206:22:101"},{"name":"dataEnd","nativeSrc":"7230:7:101","nodeType":"YulIdentifier","src":"7230:7:101"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","nativeSrc":"7128:77:101","nodeType":"YulIdentifier","src":"7128:77:101"},"nativeSrc":"7128:110:101","nodeType":"YulFunctionCall","src":"7128:110:101"},"variableNames":[{"name":"value0","nativeSrc":"7118:6:101","nodeType":"YulIdentifier","src":"7118:6:101"}]}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr","nativeSrc":"6652:603:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6745:9:101","nodeType":"YulTypedName","src":"6745:9:101","type":""},{"name":"dataEnd","nativeSrc":"6756:7:101","nodeType":"YulTypedName","src":"6756:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6768:6:101","nodeType":"YulTypedName","src":"6768:6:101","type":""}],"src":"6652:603:101"},{"body":{"nativeSrc":"7359:295:101","nodeType":"YulBlock","src":"7359:295:101","statements":[{"body":{"nativeSrc":"7405:83:101","nodeType":"YulBlock","src":"7405:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7407:77:101","nodeType":"YulIdentifier","src":"7407:77:101"},"nativeSrc":"7407:79:101","nodeType":"YulFunctionCall","src":"7407:79:101"},"nativeSrc":"7407:79:101","nodeType":"YulExpressionStatement","src":"7407:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7380:7:101","nodeType":"YulIdentifier","src":"7380:7:101"},{"name":"headStart","nativeSrc":"7389:9:101","nodeType":"YulIdentifier","src":"7389:9:101"}],"functionName":{"name":"sub","nativeSrc":"7376:3:101","nodeType":"YulIdentifier","src":"7376:3:101"},"nativeSrc":"7376:23:101","nodeType":"YulFunctionCall","src":"7376:23:101"},{"kind":"number","nativeSrc":"7401:2:101","nodeType":"YulLiteral","src":"7401:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7372:3:101","nodeType":"YulIdentifier","src":"7372:3:101"},"nativeSrc":"7372:32:101","nodeType":"YulFunctionCall","src":"7372:32:101"},"nativeSrc":"7369:119:101","nodeType":"YulIf","src":"7369:119:101"},{"nativeSrc":"7498:149:101","nodeType":"YulBlock","src":"7498:149:101","statements":[{"nativeSrc":"7513:15:101","nodeType":"YulVariableDeclaration","src":"7513:15:101","value":{"kind":"number","nativeSrc":"7527:1:101","nodeType":"YulLiteral","src":"7527:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7517:6:101","nodeType":"YulTypedName","src":"7517:6:101","type":""}]},{"nativeSrc":"7542:95:101","nodeType":"YulAssignment","src":"7542:95:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7609:9:101","nodeType":"YulIdentifier","src":"7609:9:101"},{"name":"offset","nativeSrc":"7620:6:101","nodeType":"YulIdentifier","src":"7620:6:101"}],"functionName":{"name":"add","nativeSrc":"7605:3:101","nodeType":"YulIdentifier","src":"7605:3:101"},"nativeSrc":"7605:22:101","nodeType":"YulFunctionCall","src":"7605:22:101"},{"name":"dataEnd","nativeSrc":"7629:7:101","nodeType":"YulIdentifier","src":"7629:7:101"}],"functionName":{"name":"abi_decode_t_struct$_ValidateConfig_$4448_memory_ptr","nativeSrc":"7552:52:101","nodeType":"YulIdentifier","src":"7552:52:101"},"nativeSrc":"7552:85:101","nodeType":"YulFunctionCall","src":"7552:85:101"},"variableNames":[{"name":"value0","nativeSrc":"7542:6:101","nodeType":"YulIdentifier","src":"7542:6:101"}]}]}]},"name":"abi_decode_tuple_t_struct$_ValidateConfig_$4448_memory_ptr","nativeSrc":"7261:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7329:9:101","nodeType":"YulTypedName","src":"7329:9:101","type":""},{"name":"dataEnd","nativeSrc":"7340:7:101","nodeType":"YulTypedName","src":"7340:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7352:6:101","nodeType":"YulTypedName","src":"7352:6:101","type":""}],"src":"7261:393:101"},{"body":{"nativeSrc":"7692:28:101","nodeType":"YulBlock","src":"7692:28:101","statements":[{"nativeSrc":"7702:12:101","nodeType":"YulAssignment","src":"7702:12:101","value":{"name":"value","nativeSrc":"7709:5:101","nodeType":"YulIdentifier","src":"7709:5:101"},"variableNames":[{"name":"ret","nativeSrc":"7702:3:101","nodeType":"YulIdentifier","src":"7702:3:101"}]}]},"name":"identity","nativeSrc":"7660:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7678:5:101","nodeType":"YulTypedName","src":"7678:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"7688:3:101","nodeType":"YulTypedName","src":"7688:3:101","type":""}],"src":"7660:60:101"},{"body":{"nativeSrc":"7786:82:101","nodeType":"YulBlock","src":"7786:82:101","statements":[{"nativeSrc":"7796:66:101","nodeType":"YulAssignment","src":"7796:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7854:5:101","nodeType":"YulIdentifier","src":"7854:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"7836:17:101","nodeType":"YulIdentifier","src":"7836:17:101"},"nativeSrc":"7836:24:101","nodeType":"YulFunctionCall","src":"7836:24:101"}],"functionName":{"name":"identity","nativeSrc":"7827:8:101","nodeType":"YulIdentifier","src":"7827:8:101"},"nativeSrc":"7827:34:101","nodeType":"YulFunctionCall","src":"7827:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"7809:17:101","nodeType":"YulIdentifier","src":"7809:17:101"},"nativeSrc":"7809:53:101","nodeType":"YulFunctionCall","src":"7809:53:101"},"variableNames":[{"name":"converted","nativeSrc":"7796:9:101","nodeType":"YulIdentifier","src":"7796:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"7726:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7766:5:101","nodeType":"YulTypedName","src":"7766:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7776:9:101","nodeType":"YulTypedName","src":"7776:9:101","type":""}],"src":"7726:142:101"},{"body":{"nativeSrc":"7934:66:101","nodeType":"YulBlock","src":"7934:66:101","statements":[{"nativeSrc":"7944:50:101","nodeType":"YulAssignment","src":"7944:50:101","value":{"arguments":[{"name":"value","nativeSrc":"7988:5:101","nodeType":"YulIdentifier","src":"7988:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"7957:30:101","nodeType":"YulIdentifier","src":"7957:30:101"},"nativeSrc":"7957:37:101","nodeType":"YulFunctionCall","src":"7957:37:101"},"variableNames":[{"name":"converted","nativeSrc":"7944:9:101","nodeType":"YulIdentifier","src":"7944:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"7874:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7914:5:101","nodeType":"YulTypedName","src":"7914:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7924:9:101","nodeType":"YulTypedName","src":"7924:9:101","type":""}],"src":"7874:126:101"},{"body":{"nativeSrc":"8098:66:101","nodeType":"YulBlock","src":"8098:66:101","statements":[{"nativeSrc":"8108:50:101","nodeType":"YulAssignment","src":"8108:50:101","value":{"arguments":[{"name":"value","nativeSrc":"8152:5:101","nodeType":"YulIdentifier","src":"8152:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"8121:30:101","nodeType":"YulIdentifier","src":"8121:30:101"},"nativeSrc":"8121:37:101","nodeType":"YulFunctionCall","src":"8121:37:101"},"variableNames":[{"name":"converted","nativeSrc":"8108:9:101","nodeType":"YulIdentifier","src":"8108:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"8006:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8078:5:101","nodeType":"YulTypedName","src":"8078:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8088:9:101","nodeType":"YulTypedName","src":"8088:9:101","type":""}],"src":"8006:158:101"},{"body":{"nativeSrc":"8267:98:101","nodeType":"YulBlock","src":"8267:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8284:3:101","nodeType":"YulIdentifier","src":"8284:3:101"},{"arguments":[{"name":"value","nativeSrc":"8352:5:101","nodeType":"YulIdentifier","src":"8352:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"8289:62:101","nodeType":"YulIdentifier","src":"8289:62:101"},"nativeSrc":"8289:69:101","nodeType":"YulFunctionCall","src":"8289:69:101"}],"functionName":{"name":"mstore","nativeSrc":"8277:6:101","nodeType":"YulIdentifier","src":"8277:6:101"},"nativeSrc":"8277:82:101","nodeType":"YulFunctionCall","src":"8277:82:101"},"nativeSrc":"8277:82:101","nodeType":"YulExpressionStatement","src":"8277:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"8170:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8255:5:101","nodeType":"YulTypedName","src":"8255:5:101","type":""},{"name":"pos","nativeSrc":"8262:3:101","nodeType":"YulTypedName","src":"8262:3:101","type":""}],"src":"8170:195:101"},{"body":{"nativeSrc":"8501:156:101","nodeType":"YulBlock","src":"8501:156:101","statements":[{"nativeSrc":"8511:26:101","nodeType":"YulAssignment","src":"8511:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8523:9:101","nodeType":"YulIdentifier","src":"8523:9:101"},{"kind":"number","nativeSrc":"8534:2:101","nodeType":"YulLiteral","src":"8534:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8519:3:101","nodeType":"YulIdentifier","src":"8519:3:101"},"nativeSrc":"8519:18:101","nodeType":"YulFunctionCall","src":"8519:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8511:4:101","nodeType":"YulIdentifier","src":"8511:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8623:6:101","nodeType":"YulIdentifier","src":"8623:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8636:9:101","nodeType":"YulIdentifier","src":"8636:9:101"},{"kind":"number","nativeSrc":"8647:1:101","nodeType":"YulLiteral","src":"8647:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8632:3:101","nodeType":"YulIdentifier","src":"8632:3:101"},"nativeSrc":"8632:17:101","nodeType":"YulFunctionCall","src":"8632:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"8547:75:101","nodeType":"YulIdentifier","src":"8547:75:101"},"nativeSrc":"8547:103:101","nodeType":"YulFunctionCall","src":"8547:103:101"},"nativeSrc":"8547:103:101","nodeType":"YulExpressionStatement","src":"8547:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"8371:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8473:9:101","nodeType":"YulTypedName","src":"8473:9:101","type":""},{"name":"value0","nativeSrc":"8485:6:101","nodeType":"YulTypedName","src":"8485:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8496:4:101","nodeType":"YulTypedName","src":"8496:4:101","type":""}],"src":"8371:286:101"},{"body":{"nativeSrc":"8728:53:101","nodeType":"YulBlock","src":"8728:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8745:3:101","nodeType":"YulIdentifier","src":"8745:3:101"},{"arguments":[{"name":"value","nativeSrc":"8768:5:101","nodeType":"YulIdentifier","src":"8768:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8750:17:101","nodeType":"YulIdentifier","src":"8750:17:101"},"nativeSrc":"8750:24:101","nodeType":"YulFunctionCall","src":"8750:24:101"}],"functionName":{"name":"mstore","nativeSrc":"8738:6:101","nodeType":"YulIdentifier","src":"8738:6:101"},"nativeSrc":"8738:37:101","nodeType":"YulFunctionCall","src":"8738:37:101"},"nativeSrc":"8738:37:101","nodeType":"YulExpressionStatement","src":"8738:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"8663:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8716:5:101","nodeType":"YulTypedName","src":"8716:5:101","type":""},{"name":"pos","nativeSrc":"8723:3:101","nodeType":"YulTypedName","src":"8723:3:101","type":""}],"src":"8663:118:101"},{"body":{"nativeSrc":"8941:288:101","nodeType":"YulBlock","src":"8941:288:101","statements":[{"nativeSrc":"8951:26:101","nodeType":"YulAssignment","src":"8951:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8963:9:101","nodeType":"YulIdentifier","src":"8963:9:101"},{"kind":"number","nativeSrc":"8974:2:101","nodeType":"YulLiteral","src":"8974:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8959:3:101","nodeType":"YulIdentifier","src":"8959:3:101"},"nativeSrc":"8959:18:101","nodeType":"YulFunctionCall","src":"8959:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8951:4:101","nodeType":"YulIdentifier","src":"8951:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9031:6:101","nodeType":"YulIdentifier","src":"9031:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"9044:9:101","nodeType":"YulIdentifier","src":"9044:9:101"},{"kind":"number","nativeSrc":"9055:1:101","nodeType":"YulLiteral","src":"9055:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9040:3:101","nodeType":"YulIdentifier","src":"9040:3:101"},"nativeSrc":"9040:17:101","nodeType":"YulFunctionCall","src":"9040:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8987:43:101","nodeType":"YulIdentifier","src":"8987:43:101"},"nativeSrc":"8987:71:101","nodeType":"YulFunctionCall","src":"8987:71:101"},"nativeSrc":"8987:71:101","nodeType":"YulExpressionStatement","src":"8987:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9112:6:101","nodeType":"YulIdentifier","src":"9112:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"9125:9:101","nodeType":"YulIdentifier","src":"9125:9:101"},{"kind":"number","nativeSrc":"9136:2:101","nodeType":"YulLiteral","src":"9136:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9121:3:101","nodeType":"YulIdentifier","src":"9121:3:101"},"nativeSrc":"9121:18:101","nodeType":"YulFunctionCall","src":"9121:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9068:43:101","nodeType":"YulIdentifier","src":"9068:43:101"},"nativeSrc":"9068:72:101","nodeType":"YulFunctionCall","src":"9068:72:101"},"nativeSrc":"9068:72:101","nodeType":"YulExpressionStatement","src":"9068:72:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"9194:6:101","nodeType":"YulIdentifier","src":"9194:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"9207:9:101","nodeType":"YulIdentifier","src":"9207:9:101"},{"kind":"number","nativeSrc":"9218:2:101","nodeType":"YulLiteral","src":"9218:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9203:3:101","nodeType":"YulIdentifier","src":"9203:3:101"},"nativeSrc":"9203:18:101","nodeType":"YulFunctionCall","src":"9203:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9150:43:101","nodeType":"YulIdentifier","src":"9150:43:101"},"nativeSrc":"9150:72:101","nodeType":"YulFunctionCall","src":"9150:72:101"},"nativeSrc":"9150:72:101","nodeType":"YulExpressionStatement","src":"9150:72:101"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"8787:442:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8897:9:101","nodeType":"YulTypedName","src":"8897:9:101","type":""},{"name":"value2","nativeSrc":"8909:6:101","nodeType":"YulTypedName","src":"8909:6:101","type":""},{"name":"value1","nativeSrc":"8917:6:101","nodeType":"YulTypedName","src":"8917:6:101","type":""},{"name":"value0","nativeSrc":"8925:6:101","nodeType":"YulTypedName","src":"8925:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8936:4:101","nodeType":"YulTypedName","src":"8936:4:101","type":""}],"src":"8787:442:101"},{"body":{"nativeSrc":"9331:73:101","nodeType":"YulBlock","src":"9331:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9348:3:101","nodeType":"YulIdentifier","src":"9348:3:101"},{"name":"length","nativeSrc":"9353:6:101","nodeType":"YulIdentifier","src":"9353:6:101"}],"functionName":{"name":"mstore","nativeSrc":"9341:6:101","nodeType":"YulIdentifier","src":"9341:6:101"},"nativeSrc":"9341:19:101","nodeType":"YulFunctionCall","src":"9341:19:101"},"nativeSrc":"9341:19:101","nodeType":"YulExpressionStatement","src":"9341:19:101"},{"nativeSrc":"9369:29:101","nodeType":"YulAssignment","src":"9369:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"9388:3:101","nodeType":"YulIdentifier","src":"9388:3:101"},{"kind":"number","nativeSrc":"9393:4:101","nodeType":"YulLiteral","src":"9393:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9384:3:101","nodeType":"YulIdentifier","src":"9384:3:101"},"nativeSrc":"9384:14:101","nodeType":"YulFunctionCall","src":"9384:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"9369:11:101","nodeType":"YulIdentifier","src":"9369:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9235:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9303:3:101","nodeType":"YulTypedName","src":"9303:3:101","type":""},{"name":"length","nativeSrc":"9308:6:101","nodeType":"YulTypedName","src":"9308:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"9319:11:101","nodeType":"YulTypedName","src":"9319:11:101","type":""}],"src":"9235:169:101"},{"body":{"nativeSrc":"9516:122:101","nodeType":"YulBlock","src":"9516:122:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9538:6:101","nodeType":"YulIdentifier","src":"9538:6:101"},{"kind":"number","nativeSrc":"9546:1:101","nodeType":"YulLiteral","src":"9546:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9534:3:101","nodeType":"YulIdentifier","src":"9534:3:101"},"nativeSrc":"9534:14:101","nodeType":"YulFunctionCall","src":"9534:14:101"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"9550:34:101","nodeType":"YulLiteral","src":"9550:34:101","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"9527:6:101","nodeType":"YulIdentifier","src":"9527:6:101"},"nativeSrc":"9527:58:101","nodeType":"YulFunctionCall","src":"9527:58:101"},"nativeSrc":"9527:58:101","nodeType":"YulExpressionStatement","src":"9527:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9606:6:101","nodeType":"YulIdentifier","src":"9606:6:101"},{"kind":"number","nativeSrc":"9614:2:101","nodeType":"YulLiteral","src":"9614:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9602:3:101","nodeType":"YulIdentifier","src":"9602:3:101"},"nativeSrc":"9602:15:101","nodeType":"YulFunctionCall","src":"9602:15:101"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"9619:11:101","nodeType":"YulLiteral","src":"9619:11:101","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"9595:6:101","nodeType":"YulIdentifier","src":"9595:6:101"},"nativeSrc":"9595:36:101","nodeType":"YulFunctionCall","src":"9595:36:101"},"nativeSrc":"9595:36:101","nodeType":"YulExpressionStatement","src":"9595:36:101"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"9410:228:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9508:6:101","nodeType":"YulTypedName","src":"9508:6:101","type":""}],"src":"9410:228:101"},{"body":{"nativeSrc":"9790:220:101","nodeType":"YulBlock","src":"9790:220:101","statements":[{"nativeSrc":"9800:74:101","nodeType":"YulAssignment","src":"9800:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9866:3:101","nodeType":"YulIdentifier","src":"9866:3:101"},{"kind":"number","nativeSrc":"9871:2:101","nodeType":"YulLiteral","src":"9871:2:101","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9807:58:101","nodeType":"YulIdentifier","src":"9807:58:101"},"nativeSrc":"9807:67:101","nodeType":"YulFunctionCall","src":"9807:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9800:3:101","nodeType":"YulIdentifier","src":"9800:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9972:3:101","nodeType":"YulIdentifier","src":"9972:3:101"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"9883:88:101","nodeType":"YulIdentifier","src":"9883:88:101"},"nativeSrc":"9883:93:101","nodeType":"YulFunctionCall","src":"9883:93:101"},"nativeSrc":"9883:93:101","nodeType":"YulExpressionStatement","src":"9883:93:101"},{"nativeSrc":"9985:19:101","nodeType":"YulAssignment","src":"9985:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9996:3:101","nodeType":"YulIdentifier","src":"9996:3:101"},{"kind":"number","nativeSrc":"10001:2:101","nodeType":"YulLiteral","src":"10001:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9992:3:101","nodeType":"YulIdentifier","src":"9992:3:101"},"nativeSrc":"9992:12:101","nodeType":"YulFunctionCall","src":"9992:12:101"},"variableNames":[{"name":"end","nativeSrc":"9985:3:101","nodeType":"YulIdentifier","src":"9985:3:101"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"9644:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9778:3:101","nodeType":"YulTypedName","src":"9778:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9786:3:101","nodeType":"YulTypedName","src":"9786:3:101","type":""}],"src":"9644:366:101"},{"body":{"nativeSrc":"10187:248:101","nodeType":"YulBlock","src":"10187:248:101","statements":[{"nativeSrc":"10197:26:101","nodeType":"YulAssignment","src":"10197:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10209:9:101","nodeType":"YulIdentifier","src":"10209:9:101"},{"kind":"number","nativeSrc":"10220:2:101","nodeType":"YulLiteral","src":"10220:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10205:3:101","nodeType":"YulIdentifier","src":"10205:3:101"},"nativeSrc":"10205:18:101","nodeType":"YulFunctionCall","src":"10205:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10197:4:101","nodeType":"YulIdentifier","src":"10197:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10244:9:101","nodeType":"YulIdentifier","src":"10244:9:101"},{"kind":"number","nativeSrc":"10255:1:101","nodeType":"YulLiteral","src":"10255:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10240:3:101","nodeType":"YulIdentifier","src":"10240:3:101"},"nativeSrc":"10240:17:101","nodeType":"YulFunctionCall","src":"10240:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10263:4:101","nodeType":"YulIdentifier","src":"10263:4:101"},{"name":"headStart","nativeSrc":"10269:9:101","nodeType":"YulIdentifier","src":"10269:9:101"}],"functionName":{"name":"sub","nativeSrc":"10259:3:101","nodeType":"YulIdentifier","src":"10259:3:101"},"nativeSrc":"10259:20:101","nodeType":"YulFunctionCall","src":"10259:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10233:6:101","nodeType":"YulIdentifier","src":"10233:6:101"},"nativeSrc":"10233:47:101","nodeType":"YulFunctionCall","src":"10233:47:101"},"nativeSrc":"10233:47:101","nodeType":"YulExpressionStatement","src":"10233:47:101"},{"nativeSrc":"10289:139:101","nodeType":"YulAssignment","src":"10289:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10423:4:101","nodeType":"YulIdentifier","src":"10423:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"10297:124:101","nodeType":"YulIdentifier","src":"10297:124:101"},"nativeSrc":"10297:131:101","nodeType":"YulFunctionCall","src":"10297:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10289:4:101","nodeType":"YulIdentifier","src":"10289:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10016:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10167:9:101","nodeType":"YulTypedName","src":"10167:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10182:4:101","nodeType":"YulTypedName","src":"10182:4:101","type":""}],"src":"10016:419:101"},{"body":{"nativeSrc":"10547:71:101","nodeType":"YulBlock","src":"10547:71:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10569:6:101","nodeType":"YulIdentifier","src":"10569:6:101"},{"kind":"number","nativeSrc":"10577:1:101","nodeType":"YulLiteral","src":"10577:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10565:3:101","nodeType":"YulIdentifier","src":"10565:3:101"},"nativeSrc":"10565:14:101","nodeType":"YulFunctionCall","src":"10565:14:101"},{"hexValue":"76616c69646174696f6e20636f6e666967206e6f74206578697374","kind":"string","nativeSrc":"10581:29:101","nodeType":"YulLiteral","src":"10581:29:101","type":"","value":"validation config not exist"}],"functionName":{"name":"mstore","nativeSrc":"10558:6:101","nodeType":"YulIdentifier","src":"10558:6:101"},"nativeSrc":"10558:53:101","nodeType":"YulFunctionCall","src":"10558:53:101"},"nativeSrc":"10558:53:101","nodeType":"YulExpressionStatement","src":"10558:53:101"}]},"name":"store_literal_in_memory_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9","nativeSrc":"10441:177:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10539:6:101","nodeType":"YulTypedName","src":"10539:6:101","type":""}],"src":"10441:177:101"},{"body":{"nativeSrc":"10770:220:101","nodeType":"YulBlock","src":"10770:220:101","statements":[{"nativeSrc":"10780:74:101","nodeType":"YulAssignment","src":"10780:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10846:3:101","nodeType":"YulIdentifier","src":"10846:3:101"},{"kind":"number","nativeSrc":"10851:2:101","nodeType":"YulLiteral","src":"10851:2:101","type":"","value":"27"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10787:58:101","nodeType":"YulIdentifier","src":"10787:58:101"},"nativeSrc":"10787:67:101","nodeType":"YulFunctionCall","src":"10787:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10780:3:101","nodeType":"YulIdentifier","src":"10780:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10952:3:101","nodeType":"YulIdentifier","src":"10952:3:101"}],"functionName":{"name":"store_literal_in_memory_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9","nativeSrc":"10863:88:101","nodeType":"YulIdentifier","src":"10863:88:101"},"nativeSrc":"10863:93:101","nodeType":"YulFunctionCall","src":"10863:93:101"},"nativeSrc":"10863:93:101","nodeType":"YulExpressionStatement","src":"10863:93:101"},{"nativeSrc":"10965:19:101","nodeType":"YulAssignment","src":"10965:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10976:3:101","nodeType":"YulIdentifier","src":"10976:3:101"},{"kind":"number","nativeSrc":"10981:2:101","nodeType":"YulLiteral","src":"10981:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10972:3:101","nodeType":"YulIdentifier","src":"10972:3:101"},"nativeSrc":"10972:12:101","nodeType":"YulFunctionCall","src":"10972:12:101"},"variableNames":[{"name":"end","nativeSrc":"10965:3:101","nodeType":"YulIdentifier","src":"10965:3:101"}]}]},"name":"abi_encode_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9_to_t_string_memory_ptr_fromStack","nativeSrc":"10624:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10758:3:101","nodeType":"YulTypedName","src":"10758:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10766:3:101","nodeType":"YulTypedName","src":"10766:3:101","type":""}],"src":"10624:366:101"},{"body":{"nativeSrc":"11167:248:101","nodeType":"YulBlock","src":"11167:248:101","statements":[{"nativeSrc":"11177:26:101","nodeType":"YulAssignment","src":"11177:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11189:9:101","nodeType":"YulIdentifier","src":"11189:9:101"},{"kind":"number","nativeSrc":"11200:2:101","nodeType":"YulLiteral","src":"11200:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11185:3:101","nodeType":"YulIdentifier","src":"11185:3:101"},"nativeSrc":"11185:18:101","nodeType":"YulFunctionCall","src":"11185:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11177:4:101","nodeType":"YulIdentifier","src":"11177:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11224:9:101","nodeType":"YulIdentifier","src":"11224:9:101"},{"kind":"number","nativeSrc":"11235:1:101","nodeType":"YulLiteral","src":"11235:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11220:3:101","nodeType":"YulIdentifier","src":"11220:3:101"},"nativeSrc":"11220:17:101","nodeType":"YulFunctionCall","src":"11220:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11243:4:101","nodeType":"YulIdentifier","src":"11243:4:101"},{"name":"headStart","nativeSrc":"11249:9:101","nodeType":"YulIdentifier","src":"11249:9:101"}],"functionName":{"name":"sub","nativeSrc":"11239:3:101","nodeType":"YulIdentifier","src":"11239:3:101"},"nativeSrc":"11239:20:101","nodeType":"YulFunctionCall","src":"11239:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11213:6:101","nodeType":"YulIdentifier","src":"11213:6:101"},"nativeSrc":"11213:47:101","nodeType":"YulFunctionCall","src":"11213:47:101"},"nativeSrc":"11213:47:101","nodeType":"YulExpressionStatement","src":"11213:47:101"},{"nativeSrc":"11269:139:101","nodeType":"YulAssignment","src":"11269:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11403:4:101","nodeType":"YulIdentifier","src":"11403:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9_to_t_string_memory_ptr_fromStack","nativeSrc":"11277:124:101","nodeType":"YulIdentifier","src":"11277:124:101"},"nativeSrc":"11277:131:101","nodeType":"YulFunctionCall","src":"11277:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11269:4:101","nodeType":"YulIdentifier","src":"11269:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10996:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11147:9:101","nodeType":"YulTypedName","src":"11147:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11162:4:101","nodeType":"YulTypedName","src":"11162:4:101","type":""}],"src":"10996:419:101"},{"body":{"nativeSrc":"11527:69:101","nodeType":"YulBlock","src":"11527:69:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11549:6:101","nodeType":"YulIdentifier","src":"11549:6:101"},{"kind":"number","nativeSrc":"11557:1:101","nodeType":"YulLiteral","src":"11557:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11545:3:101","nodeType":"YulIdentifier","src":"11545:3:101"},"nativeSrc":"11545:14:101","nodeType":"YulFunctionCall","src":"11545:14:101"},{"hexValue":"616e63686f72207072696365206973206e6f742076616c6964","kind":"string","nativeSrc":"11561:27:101","nodeType":"YulLiteral","src":"11561:27:101","type":"","value":"anchor price is not valid"}],"functionName":{"name":"mstore","nativeSrc":"11538:6:101","nodeType":"YulIdentifier","src":"11538:6:101"},"nativeSrc":"11538:51:101","nodeType":"YulFunctionCall","src":"11538:51:101"},"nativeSrc":"11538:51:101","nodeType":"YulExpressionStatement","src":"11538:51:101"}]},"name":"store_literal_in_memory_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3","nativeSrc":"11421:175:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11519:6:101","nodeType":"YulTypedName","src":"11519:6:101","type":""}],"src":"11421:175:101"},{"body":{"nativeSrc":"11748:220:101","nodeType":"YulBlock","src":"11748:220:101","statements":[{"nativeSrc":"11758:74:101","nodeType":"YulAssignment","src":"11758:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11824:3:101","nodeType":"YulIdentifier","src":"11824:3:101"},{"kind":"number","nativeSrc":"11829:2:101","nodeType":"YulLiteral","src":"11829:2:101","type":"","value":"25"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11765:58:101","nodeType":"YulIdentifier","src":"11765:58:101"},"nativeSrc":"11765:67:101","nodeType":"YulFunctionCall","src":"11765:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11758:3:101","nodeType":"YulIdentifier","src":"11758:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11930:3:101","nodeType":"YulIdentifier","src":"11930:3:101"}],"functionName":{"name":"store_literal_in_memory_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3","nativeSrc":"11841:88:101","nodeType":"YulIdentifier","src":"11841:88:101"},"nativeSrc":"11841:93:101","nodeType":"YulFunctionCall","src":"11841:93:101"},"nativeSrc":"11841:93:101","nodeType":"YulExpressionStatement","src":"11841:93:101"},{"nativeSrc":"11943:19:101","nodeType":"YulAssignment","src":"11943:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11954:3:101","nodeType":"YulIdentifier","src":"11954:3:101"},{"kind":"number","nativeSrc":"11959:2:101","nodeType":"YulLiteral","src":"11959:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11950:3:101","nodeType":"YulIdentifier","src":"11950:3:101"},"nativeSrc":"11950:12:101","nodeType":"YulFunctionCall","src":"11950:12:101"},"variableNames":[{"name":"end","nativeSrc":"11943:3:101","nodeType":"YulIdentifier","src":"11943:3:101"}]}]},"name":"abi_encode_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3_to_t_string_memory_ptr_fromStack","nativeSrc":"11602:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11736:3:101","nodeType":"YulTypedName","src":"11736:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11744:3:101","nodeType":"YulTypedName","src":"11744:3:101","type":""}],"src":"11602:366:101"},{"body":{"nativeSrc":"12145:248:101","nodeType":"YulBlock","src":"12145:248:101","statements":[{"nativeSrc":"12155:26:101","nodeType":"YulAssignment","src":"12155:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12167:9:101","nodeType":"YulIdentifier","src":"12167:9:101"},{"kind":"number","nativeSrc":"12178:2:101","nodeType":"YulLiteral","src":"12178:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12163:3:101","nodeType":"YulIdentifier","src":"12163:3:101"},"nativeSrc":"12163:18:101","nodeType":"YulFunctionCall","src":"12163:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12155:4:101","nodeType":"YulIdentifier","src":"12155:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12202:9:101","nodeType":"YulIdentifier","src":"12202:9:101"},{"kind":"number","nativeSrc":"12213:1:101","nodeType":"YulLiteral","src":"12213:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12198:3:101","nodeType":"YulIdentifier","src":"12198:3:101"},"nativeSrc":"12198:17:101","nodeType":"YulFunctionCall","src":"12198:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12221:4:101","nodeType":"YulIdentifier","src":"12221:4:101"},{"name":"headStart","nativeSrc":"12227:9:101","nodeType":"YulIdentifier","src":"12227:9:101"}],"functionName":{"name":"sub","nativeSrc":"12217:3:101","nodeType":"YulIdentifier","src":"12217:3:101"},"nativeSrc":"12217:20:101","nodeType":"YulFunctionCall","src":"12217:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12191:6:101","nodeType":"YulIdentifier","src":"12191:6:101"},"nativeSrc":"12191:47:101","nodeType":"YulFunctionCall","src":"12191:47:101"},"nativeSrc":"12191:47:101","nodeType":"YulExpressionStatement","src":"12191:47:101"},{"nativeSrc":"12247:139:101","nodeType":"YulAssignment","src":"12247:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12381:4:101","nodeType":"YulIdentifier","src":"12381:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3_to_t_string_memory_ptr_fromStack","nativeSrc":"12255:124:101","nodeType":"YulIdentifier","src":"12255:124:101"},"nativeSrc":"12255:131:101","nodeType":"YulFunctionCall","src":"12255:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12247:4:101","nodeType":"YulIdentifier","src":"12247:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11974:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12125:9:101","nodeType":"YulTypedName","src":"12125:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12140:4:101","nodeType":"YulTypedName","src":"12140:4:101","type":""}],"src":"11974:419:101"},{"body":{"nativeSrc":"12505:74:101","nodeType":"YulBlock","src":"12505:74:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12527:6:101","nodeType":"YulIdentifier","src":"12527:6:101"},{"kind":"number","nativeSrc":"12535:1:101","nodeType":"YulLiteral","src":"12535:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12523:3:101","nodeType":"YulIdentifier","src":"12523:3:101"},"nativeSrc":"12523:14:101","nodeType":"YulFunctionCall","src":"12523:14:101"},{"hexValue":"696e76616c69642076616c696461746520636f6e666967206c656e677468","kind":"string","nativeSrc":"12539:32:101","nodeType":"YulLiteral","src":"12539:32:101","type":"","value":"invalid validate config length"}],"functionName":{"name":"mstore","nativeSrc":"12516:6:101","nodeType":"YulIdentifier","src":"12516:6:101"},"nativeSrc":"12516:56:101","nodeType":"YulFunctionCall","src":"12516:56:101"},"nativeSrc":"12516:56:101","nodeType":"YulExpressionStatement","src":"12516:56:101"}]},"name":"store_literal_in_memory_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc","nativeSrc":"12399:180:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12497:6:101","nodeType":"YulTypedName","src":"12497:6:101","type":""}],"src":"12399:180:101"},{"body":{"nativeSrc":"12731:220:101","nodeType":"YulBlock","src":"12731:220:101","statements":[{"nativeSrc":"12741:74:101","nodeType":"YulAssignment","src":"12741:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12807:3:101","nodeType":"YulIdentifier","src":"12807:3:101"},{"kind":"number","nativeSrc":"12812:2:101","nodeType":"YulLiteral","src":"12812:2:101","type":"","value":"30"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12748:58:101","nodeType":"YulIdentifier","src":"12748:58:101"},"nativeSrc":"12748:67:101","nodeType":"YulFunctionCall","src":"12748:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12741:3:101","nodeType":"YulIdentifier","src":"12741:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12913:3:101","nodeType":"YulIdentifier","src":"12913:3:101"}],"functionName":{"name":"store_literal_in_memory_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc","nativeSrc":"12824:88:101","nodeType":"YulIdentifier","src":"12824:88:101"},"nativeSrc":"12824:93:101","nodeType":"YulFunctionCall","src":"12824:93:101"},"nativeSrc":"12824:93:101","nodeType":"YulExpressionStatement","src":"12824:93:101"},{"nativeSrc":"12926:19:101","nodeType":"YulAssignment","src":"12926:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12937:3:101","nodeType":"YulIdentifier","src":"12937:3:101"},{"kind":"number","nativeSrc":"12942:2:101","nodeType":"YulLiteral","src":"12942:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12933:3:101","nodeType":"YulIdentifier","src":"12933:3:101"},"nativeSrc":"12933:12:101","nodeType":"YulFunctionCall","src":"12933:12:101"},"variableNames":[{"name":"end","nativeSrc":"12926:3:101","nodeType":"YulIdentifier","src":"12926:3:101"}]}]},"name":"abi_encode_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc_to_t_string_memory_ptr_fromStack","nativeSrc":"12585:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12719:3:101","nodeType":"YulTypedName","src":"12719:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12727:3:101","nodeType":"YulTypedName","src":"12727:3:101","type":""}],"src":"12585:366:101"},{"body":{"nativeSrc":"13128:248:101","nodeType":"YulBlock","src":"13128:248:101","statements":[{"nativeSrc":"13138:26:101","nodeType":"YulAssignment","src":"13138:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13150:9:101","nodeType":"YulIdentifier","src":"13150:9:101"},{"kind":"number","nativeSrc":"13161:2:101","nodeType":"YulLiteral","src":"13161:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13146:3:101","nodeType":"YulIdentifier","src":"13146:3:101"},"nativeSrc":"13146:18:101","nodeType":"YulFunctionCall","src":"13146:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13138:4:101","nodeType":"YulIdentifier","src":"13138:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13185:9:101","nodeType":"YulIdentifier","src":"13185:9:101"},{"kind":"number","nativeSrc":"13196:1:101","nodeType":"YulLiteral","src":"13196:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13181:3:101","nodeType":"YulIdentifier","src":"13181:3:101"},"nativeSrc":"13181:17:101","nodeType":"YulFunctionCall","src":"13181:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13204:4:101","nodeType":"YulIdentifier","src":"13204:4:101"},{"name":"headStart","nativeSrc":"13210:9:101","nodeType":"YulIdentifier","src":"13210:9:101"}],"functionName":{"name":"sub","nativeSrc":"13200:3:101","nodeType":"YulIdentifier","src":"13200:3:101"},"nativeSrc":"13200:20:101","nodeType":"YulFunctionCall","src":"13200:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13174:6:101","nodeType":"YulIdentifier","src":"13174:6:101"},"nativeSrc":"13174:47:101","nodeType":"YulFunctionCall","src":"13174:47:101"},"nativeSrc":"13174:47:101","nodeType":"YulExpressionStatement","src":"13174:47:101"},{"nativeSrc":"13230:139:101","nodeType":"YulAssignment","src":"13230:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13364:4:101","nodeType":"YulIdentifier","src":"13364:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc_to_t_string_memory_ptr_fromStack","nativeSrc":"13238:124:101","nodeType":"YulIdentifier","src":"13238:124:101"},"nativeSrc":"13238:131:101","nodeType":"YulFunctionCall","src":"13238:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13230:4:101","nodeType":"YulIdentifier","src":"13230:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12957:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13108:9:101","nodeType":"YulTypedName","src":"13108:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13123:4:101","nodeType":"YulTypedName","src":"13123:4:101","type":""}],"src":"12957:419:101"},{"body":{"nativeSrc":"13410:152:101","nodeType":"YulBlock","src":"13410:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13427:1:101","nodeType":"YulLiteral","src":"13427:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"13430:77:101","nodeType":"YulLiteral","src":"13430:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"13420:6:101","nodeType":"YulIdentifier","src":"13420:6:101"},"nativeSrc":"13420:88:101","nodeType":"YulFunctionCall","src":"13420:88:101"},"nativeSrc":"13420:88:101","nodeType":"YulExpressionStatement","src":"13420:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13524:1:101","nodeType":"YulLiteral","src":"13524:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"13527:4:101","nodeType":"YulLiteral","src":"13527:4:101","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"13517:6:101","nodeType":"YulIdentifier","src":"13517:6:101"},"nativeSrc":"13517:15:101","nodeType":"YulFunctionCall","src":"13517:15:101"},"nativeSrc":"13517:15:101","nodeType":"YulExpressionStatement","src":"13517:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13548:1:101","nodeType":"YulLiteral","src":"13548:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"13551:4:101","nodeType":"YulLiteral","src":"13551:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13541:6:101","nodeType":"YulIdentifier","src":"13541:6:101"},"nativeSrc":"13541:15:101","nodeType":"YulFunctionCall","src":"13541:15:101"},"nativeSrc":"13541:15:101","nodeType":"YulExpressionStatement","src":"13541:15:101"}]},"name":"panic_error_0x32","nativeSrc":"13382:180:101","nodeType":"YulFunctionDefinition","src":"13382:180:101"},{"body":{"nativeSrc":"13674:71:101","nodeType":"YulBlock","src":"13674:71:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13696:6:101","nodeType":"YulIdentifier","src":"13696:6:101"},{"kind":"number","nativeSrc":"13704:1:101","nodeType":"YulLiteral","src":"13704:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13692:3:101","nodeType":"YulIdentifier","src":"13692:3:101"},"nativeSrc":"13692:14:101","nodeType":"YulFunctionCall","src":"13692:14:101"},{"hexValue":"61737365742063616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"13708:29:101","nodeType":"YulLiteral","src":"13708:29:101","type":"","value":"asset can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"13685:6:101","nodeType":"YulIdentifier","src":"13685:6:101"},"nativeSrc":"13685:53:101","nodeType":"YulFunctionCall","src":"13685:53:101"},"nativeSrc":"13685:53:101","nodeType":"YulExpressionStatement","src":"13685:53:101"}]},"name":"store_literal_in_memory_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937","nativeSrc":"13568:177:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13666:6:101","nodeType":"YulTypedName","src":"13666:6:101","type":""}],"src":"13568:177:101"},{"body":{"nativeSrc":"13897:220:101","nodeType":"YulBlock","src":"13897:220:101","statements":[{"nativeSrc":"13907:74:101","nodeType":"YulAssignment","src":"13907:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13973:3:101","nodeType":"YulIdentifier","src":"13973:3:101"},{"kind":"number","nativeSrc":"13978:2:101","nodeType":"YulLiteral","src":"13978:2:101","type":"","value":"27"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13914:58:101","nodeType":"YulIdentifier","src":"13914:58:101"},"nativeSrc":"13914:67:101","nodeType":"YulFunctionCall","src":"13914:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13907:3:101","nodeType":"YulIdentifier","src":"13907:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14079:3:101","nodeType":"YulIdentifier","src":"14079:3:101"}],"functionName":{"name":"store_literal_in_memory_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937","nativeSrc":"13990:88:101","nodeType":"YulIdentifier","src":"13990:88:101"},"nativeSrc":"13990:93:101","nodeType":"YulFunctionCall","src":"13990:93:101"},"nativeSrc":"13990:93:101","nodeType":"YulExpressionStatement","src":"13990:93:101"},{"nativeSrc":"14092:19:101","nodeType":"YulAssignment","src":"14092:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14103:3:101","nodeType":"YulIdentifier","src":"14103:3:101"},{"kind":"number","nativeSrc":"14108:2:101","nodeType":"YulLiteral","src":"14108:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14099:3:101","nodeType":"YulIdentifier","src":"14099:3:101"},"nativeSrc":"14099:12:101","nodeType":"YulFunctionCall","src":"14099:12:101"},"variableNames":[{"name":"end","nativeSrc":"14092:3:101","nodeType":"YulIdentifier","src":"14092:3:101"}]}]},"name":"abi_encode_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937_to_t_string_memory_ptr_fromStack","nativeSrc":"13751:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13885:3:101","nodeType":"YulTypedName","src":"13885:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13893:3:101","nodeType":"YulTypedName","src":"13893:3:101","type":""}],"src":"13751:366:101"},{"body":{"nativeSrc":"14294:248:101","nodeType":"YulBlock","src":"14294:248:101","statements":[{"nativeSrc":"14304:26:101","nodeType":"YulAssignment","src":"14304:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14316:9:101","nodeType":"YulIdentifier","src":"14316:9:101"},{"kind":"number","nativeSrc":"14327:2:101","nodeType":"YulLiteral","src":"14327:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14312:3:101","nodeType":"YulIdentifier","src":"14312:3:101"},"nativeSrc":"14312:18:101","nodeType":"YulFunctionCall","src":"14312:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14304:4:101","nodeType":"YulIdentifier","src":"14304:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14351:9:101","nodeType":"YulIdentifier","src":"14351:9:101"},{"kind":"number","nativeSrc":"14362:1:101","nodeType":"YulLiteral","src":"14362:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14347:3:101","nodeType":"YulIdentifier","src":"14347:3:101"},"nativeSrc":"14347:17:101","nodeType":"YulFunctionCall","src":"14347:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14370:4:101","nodeType":"YulIdentifier","src":"14370:4:101"},{"name":"headStart","nativeSrc":"14376:9:101","nodeType":"YulIdentifier","src":"14376:9:101"}],"functionName":{"name":"sub","nativeSrc":"14366:3:101","nodeType":"YulIdentifier","src":"14366:3:101"},"nativeSrc":"14366:20:101","nodeType":"YulFunctionCall","src":"14366:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14340:6:101","nodeType":"YulIdentifier","src":"14340:6:101"},"nativeSrc":"14340:47:101","nodeType":"YulFunctionCall","src":"14340:47:101"},"nativeSrc":"14340:47:101","nodeType":"YulExpressionStatement","src":"14340:47:101"},{"nativeSrc":"14396:139:101","nodeType":"YulAssignment","src":"14396:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14530:4:101","nodeType":"YulIdentifier","src":"14530:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937_to_t_string_memory_ptr_fromStack","nativeSrc":"14404:124:101","nodeType":"YulIdentifier","src":"14404:124:101"},"nativeSrc":"14404:131:101","nodeType":"YulFunctionCall","src":"14404:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14396:4:101","nodeType":"YulIdentifier","src":"14396:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14123:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14274:9:101","nodeType":"YulTypedName","src":"14274:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14289:4:101","nodeType":"YulTypedName","src":"14289:4:101","type":""}],"src":"14123:419:101"},{"body":{"nativeSrc":"14654:66:101","nodeType":"YulBlock","src":"14654:66:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14676:6:101","nodeType":"YulIdentifier","src":"14676:6:101"},{"kind":"number","nativeSrc":"14684:1:101","nodeType":"YulLiteral","src":"14684:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14672:3:101","nodeType":"YulIdentifier","src":"14672:3:101"},"nativeSrc":"14672:14:101","nodeType":"YulFunctionCall","src":"14672:14:101"},{"hexValue":"626f756e64206d75737420626520706f736974697665","kind":"string","nativeSrc":"14688:24:101","nodeType":"YulLiteral","src":"14688:24:101","type":"","value":"bound must be positive"}],"functionName":{"name":"mstore","nativeSrc":"14665:6:101","nodeType":"YulIdentifier","src":"14665:6:101"},"nativeSrc":"14665:48:101","nodeType":"YulFunctionCall","src":"14665:48:101"},"nativeSrc":"14665:48:101","nodeType":"YulExpressionStatement","src":"14665:48:101"}]},"name":"store_literal_in_memory_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c","nativeSrc":"14548:172:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14646:6:101","nodeType":"YulTypedName","src":"14646:6:101","type":""}],"src":"14548:172:101"},{"body":{"nativeSrc":"14872:220:101","nodeType":"YulBlock","src":"14872:220:101","statements":[{"nativeSrc":"14882:74:101","nodeType":"YulAssignment","src":"14882:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14948:3:101","nodeType":"YulIdentifier","src":"14948:3:101"},{"kind":"number","nativeSrc":"14953:2:101","nodeType":"YulLiteral","src":"14953:2:101","type":"","value":"22"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14889:58:101","nodeType":"YulIdentifier","src":"14889:58:101"},"nativeSrc":"14889:67:101","nodeType":"YulFunctionCall","src":"14889:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14882:3:101","nodeType":"YulIdentifier","src":"14882:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15054:3:101","nodeType":"YulIdentifier","src":"15054:3:101"}],"functionName":{"name":"store_literal_in_memory_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c","nativeSrc":"14965:88:101","nodeType":"YulIdentifier","src":"14965:88:101"},"nativeSrc":"14965:93:101","nodeType":"YulFunctionCall","src":"14965:93:101"},"nativeSrc":"14965:93:101","nodeType":"YulExpressionStatement","src":"14965:93:101"},{"nativeSrc":"15067:19:101","nodeType":"YulAssignment","src":"15067:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15078:3:101","nodeType":"YulIdentifier","src":"15078:3:101"},{"kind":"number","nativeSrc":"15083:2:101","nodeType":"YulLiteral","src":"15083:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15074:3:101","nodeType":"YulIdentifier","src":"15074:3:101"},"nativeSrc":"15074:12:101","nodeType":"YulFunctionCall","src":"15074:12:101"},"variableNames":[{"name":"end","nativeSrc":"15067:3:101","nodeType":"YulIdentifier","src":"15067:3:101"}]}]},"name":"abi_encode_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c_to_t_string_memory_ptr_fromStack","nativeSrc":"14726:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14860:3:101","nodeType":"YulTypedName","src":"14860:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14868:3:101","nodeType":"YulTypedName","src":"14868:3:101","type":""}],"src":"14726:366:101"},{"body":{"nativeSrc":"15269:248:101","nodeType":"YulBlock","src":"15269:248:101","statements":[{"nativeSrc":"15279:26:101","nodeType":"YulAssignment","src":"15279:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15291:9:101","nodeType":"YulIdentifier","src":"15291:9:101"},{"kind":"number","nativeSrc":"15302:2:101","nodeType":"YulLiteral","src":"15302:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15287:3:101","nodeType":"YulIdentifier","src":"15287:3:101"},"nativeSrc":"15287:18:101","nodeType":"YulFunctionCall","src":"15287:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15279:4:101","nodeType":"YulIdentifier","src":"15279:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15326:9:101","nodeType":"YulIdentifier","src":"15326:9:101"},{"kind":"number","nativeSrc":"15337:1:101","nodeType":"YulLiteral","src":"15337:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15322:3:101","nodeType":"YulIdentifier","src":"15322:3:101"},"nativeSrc":"15322:17:101","nodeType":"YulFunctionCall","src":"15322:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15345:4:101","nodeType":"YulIdentifier","src":"15345:4:101"},{"name":"headStart","nativeSrc":"15351:9:101","nodeType":"YulIdentifier","src":"15351:9:101"}],"functionName":{"name":"sub","nativeSrc":"15341:3:101","nodeType":"YulIdentifier","src":"15341:3:101"},"nativeSrc":"15341:20:101","nodeType":"YulFunctionCall","src":"15341:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15315:6:101","nodeType":"YulIdentifier","src":"15315:6:101"},"nativeSrc":"15315:47:101","nodeType":"YulFunctionCall","src":"15315:47:101"},"nativeSrc":"15315:47:101","nodeType":"YulExpressionStatement","src":"15315:47:101"},{"nativeSrc":"15371:139:101","nodeType":"YulAssignment","src":"15371:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15505:4:101","nodeType":"YulIdentifier","src":"15505:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c_to_t_string_memory_ptr_fromStack","nativeSrc":"15379:124:101","nodeType":"YulIdentifier","src":"15379:124:101"},"nativeSrc":"15379:131:101","nodeType":"YulFunctionCall","src":"15379:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15371:4:101","nodeType":"YulIdentifier","src":"15371:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15098:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15249:9:101","nodeType":"YulTypedName","src":"15249:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15264:4:101","nodeType":"YulTypedName","src":"15264:4:101","type":""}],"src":"15098:419:101"},{"body":{"nativeSrc":"15629:125:101","nodeType":"YulBlock","src":"15629:125:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15651:6:101","nodeType":"YulIdentifier","src":"15651:6:101"},{"kind":"number","nativeSrc":"15659:1:101","nodeType":"YulLiteral","src":"15659:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15647:3:101","nodeType":"YulIdentifier","src":"15647:3:101"},"nativeSrc":"15647:14:101","nodeType":"YulFunctionCall","src":"15647:14:101"},{"hexValue":"757070657220626f756e64206d75737420626520686967686572207468616e20","kind":"string","nativeSrc":"15663:34:101","nodeType":"YulLiteral","src":"15663:34:101","type":"","value":"upper bound must be higher than "}],"functionName":{"name":"mstore","nativeSrc":"15640:6:101","nodeType":"YulIdentifier","src":"15640:6:101"},"nativeSrc":"15640:58:101","nodeType":"YulFunctionCall","src":"15640:58:101"},"nativeSrc":"15640:58:101","nodeType":"YulExpressionStatement","src":"15640:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15719:6:101","nodeType":"YulIdentifier","src":"15719:6:101"},{"kind":"number","nativeSrc":"15727:2:101","nodeType":"YulLiteral","src":"15727:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15715:3:101","nodeType":"YulIdentifier","src":"15715:3:101"},"nativeSrc":"15715:15:101","nodeType":"YulFunctionCall","src":"15715:15:101"},{"hexValue":"6c6f776e657220626f756e64","kind":"string","nativeSrc":"15732:14:101","nodeType":"YulLiteral","src":"15732:14:101","type":"","value":"lowner bound"}],"functionName":{"name":"mstore","nativeSrc":"15708:6:101","nodeType":"YulIdentifier","src":"15708:6:101"},"nativeSrc":"15708:39:101","nodeType":"YulFunctionCall","src":"15708:39:101"},"nativeSrc":"15708:39:101","nodeType":"YulExpressionStatement","src":"15708:39:101"}]},"name":"store_literal_in_memory_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a","nativeSrc":"15523:231:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15621:6:101","nodeType":"YulTypedName","src":"15621:6:101","type":""}],"src":"15523:231:101"},{"body":{"nativeSrc":"15906:220:101","nodeType":"YulBlock","src":"15906:220:101","statements":[{"nativeSrc":"15916:74:101","nodeType":"YulAssignment","src":"15916:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15982:3:101","nodeType":"YulIdentifier","src":"15982:3:101"},{"kind":"number","nativeSrc":"15987:2:101","nodeType":"YulLiteral","src":"15987:2:101","type":"","value":"44"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15923:58:101","nodeType":"YulIdentifier","src":"15923:58:101"},"nativeSrc":"15923:67:101","nodeType":"YulFunctionCall","src":"15923:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15916:3:101","nodeType":"YulIdentifier","src":"15916:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16088:3:101","nodeType":"YulIdentifier","src":"16088:3:101"}],"functionName":{"name":"store_literal_in_memory_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a","nativeSrc":"15999:88:101","nodeType":"YulIdentifier","src":"15999:88:101"},"nativeSrc":"15999:93:101","nodeType":"YulFunctionCall","src":"15999:93:101"},"nativeSrc":"15999:93:101","nodeType":"YulExpressionStatement","src":"15999:93:101"},{"nativeSrc":"16101:19:101","nodeType":"YulAssignment","src":"16101:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"16112:3:101","nodeType":"YulIdentifier","src":"16112:3:101"},{"kind":"number","nativeSrc":"16117:2:101","nodeType":"YulLiteral","src":"16117:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16108:3:101","nodeType":"YulIdentifier","src":"16108:3:101"},"nativeSrc":"16108:12:101","nodeType":"YulFunctionCall","src":"16108:12:101"},"variableNames":[{"name":"end","nativeSrc":"16101:3:101","nodeType":"YulIdentifier","src":"16101:3:101"}]}]},"name":"abi_encode_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a_to_t_string_memory_ptr_fromStack","nativeSrc":"15760:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15894:3:101","nodeType":"YulTypedName","src":"15894:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15902:3:101","nodeType":"YulTypedName","src":"15902:3:101","type":""}],"src":"15760:366:101"},{"body":{"nativeSrc":"16303:248:101","nodeType":"YulBlock","src":"16303:248:101","statements":[{"nativeSrc":"16313:26:101","nodeType":"YulAssignment","src":"16313:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16325:9:101","nodeType":"YulIdentifier","src":"16325:9:101"},{"kind":"number","nativeSrc":"16336:2:101","nodeType":"YulLiteral","src":"16336:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16321:3:101","nodeType":"YulIdentifier","src":"16321:3:101"},"nativeSrc":"16321:18:101","nodeType":"YulFunctionCall","src":"16321:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16313:4:101","nodeType":"YulIdentifier","src":"16313:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16360:9:101","nodeType":"YulIdentifier","src":"16360:9:101"},{"kind":"number","nativeSrc":"16371:1:101","nodeType":"YulLiteral","src":"16371:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16356:3:101","nodeType":"YulIdentifier","src":"16356:3:101"},"nativeSrc":"16356:17:101","nodeType":"YulFunctionCall","src":"16356:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16379:4:101","nodeType":"YulIdentifier","src":"16379:4:101"},{"name":"headStart","nativeSrc":"16385:9:101","nodeType":"YulIdentifier","src":"16385:9:101"}],"functionName":{"name":"sub","nativeSrc":"16375:3:101","nodeType":"YulIdentifier","src":"16375:3:101"},"nativeSrc":"16375:20:101","nodeType":"YulFunctionCall","src":"16375:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16349:6:101","nodeType":"YulIdentifier","src":"16349:6:101"},"nativeSrc":"16349:47:101","nodeType":"YulFunctionCall","src":"16349:47:101"},"nativeSrc":"16349:47:101","nodeType":"YulExpressionStatement","src":"16349:47:101"},{"nativeSrc":"16405:139:101","nodeType":"YulAssignment","src":"16405:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16539:4:101","nodeType":"YulIdentifier","src":"16539:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a_to_t_string_memory_ptr_fromStack","nativeSrc":"16413:124:101","nodeType":"YulIdentifier","src":"16413:124:101"},"nativeSrc":"16413:131:101","nodeType":"YulFunctionCall","src":"16413:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16405:4:101","nodeType":"YulIdentifier","src":"16405:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16132:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16283:9:101","nodeType":"YulTypedName","src":"16283:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16298:4:101","nodeType":"YulTypedName","src":"16298:4:101","type":""}],"src":"16132:419:101"},{"body":{"nativeSrc":"16663:127:101","nodeType":"YulBlock","src":"16663:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16685:6:101","nodeType":"YulIdentifier","src":"16685:6:101"},{"kind":"number","nativeSrc":"16693:1:101","nodeType":"YulLiteral","src":"16693:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16681:3:101","nodeType":"YulIdentifier","src":"16681:3:101"},"nativeSrc":"16681:14:101","nodeType":"YulFunctionCall","src":"16681:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"16697:34:101","nodeType":"YulLiteral","src":"16697:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"16674:6:101","nodeType":"YulIdentifier","src":"16674:6:101"},"nativeSrc":"16674:58:101","nodeType":"YulFunctionCall","src":"16674:58:101"},"nativeSrc":"16674:58:101","nodeType":"YulExpressionStatement","src":"16674:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16753:6:101","nodeType":"YulIdentifier","src":"16753:6:101"},{"kind":"number","nativeSrc":"16761:2:101","nodeType":"YulLiteral","src":"16761:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16749:3:101","nodeType":"YulIdentifier","src":"16749:3:101"},"nativeSrc":"16749:15:101","nodeType":"YulFunctionCall","src":"16749:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"16766:16:101","nodeType":"YulLiteral","src":"16766:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"16742:6:101","nodeType":"YulIdentifier","src":"16742:6:101"},"nativeSrc":"16742:41:101","nodeType":"YulFunctionCall","src":"16742:41:101"},"nativeSrc":"16742:41:101","nodeType":"YulExpressionStatement","src":"16742:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"16557:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16655:6:101","nodeType":"YulTypedName","src":"16655:6:101","type":""}],"src":"16557:233:101"},{"body":{"nativeSrc":"16942:220:101","nodeType":"YulBlock","src":"16942:220:101","statements":[{"nativeSrc":"16952:74:101","nodeType":"YulAssignment","src":"16952:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"17018:3:101","nodeType":"YulIdentifier","src":"17018:3:101"},{"kind":"number","nativeSrc":"17023:2:101","nodeType":"YulLiteral","src":"17023:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16959:58:101","nodeType":"YulIdentifier","src":"16959:58:101"},"nativeSrc":"16959:67:101","nodeType":"YulFunctionCall","src":"16959:67:101"},"variableNames":[{"name":"pos","nativeSrc":"16952:3:101","nodeType":"YulIdentifier","src":"16952:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17124:3:101","nodeType":"YulIdentifier","src":"17124:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"17035:88:101","nodeType":"YulIdentifier","src":"17035:88:101"},"nativeSrc":"17035:93:101","nodeType":"YulFunctionCall","src":"17035:93:101"},"nativeSrc":"17035:93:101","nodeType":"YulExpressionStatement","src":"17035:93:101"},{"nativeSrc":"17137:19:101","nodeType":"YulAssignment","src":"17137:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"17148:3:101","nodeType":"YulIdentifier","src":"17148:3:101"},{"kind":"number","nativeSrc":"17153:2:101","nodeType":"YulLiteral","src":"17153:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17144:3:101","nodeType":"YulIdentifier","src":"17144:3:101"},"nativeSrc":"17144:12:101","nodeType":"YulFunctionCall","src":"17144:12:101"},"variableNames":[{"name":"end","nativeSrc":"17137:3:101","nodeType":"YulIdentifier","src":"17137:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"16796:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16930:3:101","nodeType":"YulTypedName","src":"16930:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16938:3:101","nodeType":"YulTypedName","src":"16938:3:101","type":""}],"src":"16796:366:101"},{"body":{"nativeSrc":"17339:248:101","nodeType":"YulBlock","src":"17339:248:101","statements":[{"nativeSrc":"17349:26:101","nodeType":"YulAssignment","src":"17349:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17361:9:101","nodeType":"YulIdentifier","src":"17361:9:101"},{"kind":"number","nativeSrc":"17372:2:101","nodeType":"YulLiteral","src":"17372:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17357:3:101","nodeType":"YulIdentifier","src":"17357:3:101"},"nativeSrc":"17357:18:101","nodeType":"YulFunctionCall","src":"17357:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17349:4:101","nodeType":"YulIdentifier","src":"17349:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17396:9:101","nodeType":"YulIdentifier","src":"17396:9:101"},{"kind":"number","nativeSrc":"17407:1:101","nodeType":"YulLiteral","src":"17407:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17392:3:101","nodeType":"YulIdentifier","src":"17392:3:101"},"nativeSrc":"17392:17:101","nodeType":"YulFunctionCall","src":"17392:17:101"},{"arguments":[{"name":"tail","nativeSrc":"17415:4:101","nodeType":"YulIdentifier","src":"17415:4:101"},{"name":"headStart","nativeSrc":"17421:9:101","nodeType":"YulIdentifier","src":"17421:9:101"}],"functionName":{"name":"sub","nativeSrc":"17411:3:101","nodeType":"YulIdentifier","src":"17411:3:101"},"nativeSrc":"17411:20:101","nodeType":"YulFunctionCall","src":"17411:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17385:6:101","nodeType":"YulIdentifier","src":"17385:6:101"},"nativeSrc":"17385:47:101","nodeType":"YulFunctionCall","src":"17385:47:101"},"nativeSrc":"17385:47:101","nodeType":"YulExpressionStatement","src":"17385:47:101"},{"nativeSrc":"17441:139:101","nodeType":"YulAssignment","src":"17441:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"17575:4:101","nodeType":"YulIdentifier","src":"17575:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"17449:124:101","nodeType":"YulIdentifier","src":"17449:124:101"},"nativeSrc":"17449:131:101","nodeType":"YulFunctionCall","src":"17449:131:101"},"variableNames":[{"name":"tail","nativeSrc":"17441:4:101","nodeType":"YulIdentifier","src":"17441:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17168:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17319:9:101","nodeType":"YulTypedName","src":"17319:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17334:4:101","nodeType":"YulTypedName","src":"17334:4:101","type":""}],"src":"17168:419:101"},{"body":{"nativeSrc":"17646:32:101","nodeType":"YulBlock","src":"17646:32:101","statements":[{"nativeSrc":"17656:16:101","nodeType":"YulAssignment","src":"17656:16:101","value":{"name":"value","nativeSrc":"17667:5:101","nodeType":"YulIdentifier","src":"17667:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"17656:7:101","nodeType":"YulIdentifier","src":"17656:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"17593:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17628:5:101","nodeType":"YulTypedName","src":"17628:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"17638:7:101","nodeType":"YulTypedName","src":"17638:7:101","type":""}],"src":"17593:85:101"},{"body":{"nativeSrc":"17727:43:101","nodeType":"YulBlock","src":"17727:43:101","statements":[{"nativeSrc":"17737:27:101","nodeType":"YulAssignment","src":"17737:27:101","value":{"arguments":[{"name":"value","nativeSrc":"17752:5:101","nodeType":"YulIdentifier","src":"17752:5:101"},{"kind":"number","nativeSrc":"17759:4:101","nodeType":"YulLiteral","src":"17759:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"17748:3:101","nodeType":"YulIdentifier","src":"17748:3:101"},"nativeSrc":"17748:16:101","nodeType":"YulFunctionCall","src":"17748:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"17737:7:101","nodeType":"YulIdentifier","src":"17737:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"17684:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17709:5:101","nodeType":"YulTypedName","src":"17709:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"17719:7:101","nodeType":"YulTypedName","src":"17719:7:101","type":""}],"src":"17684:86:101"},{"body":{"nativeSrc":"17842:88:101","nodeType":"YulBlock","src":"17842:88:101","statements":[{"nativeSrc":"17852:72:101","nodeType":"YulAssignment","src":"17852:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17916:5:101","nodeType":"YulIdentifier","src":"17916:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"17890:25:101","nodeType":"YulIdentifier","src":"17890:25:101"},"nativeSrc":"17890:32:101","nodeType":"YulFunctionCall","src":"17890:32:101"}],"functionName":{"name":"identity","nativeSrc":"17881:8:101","nodeType":"YulIdentifier","src":"17881:8:101"},"nativeSrc":"17881:42:101","nodeType":"YulFunctionCall","src":"17881:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"17865:15:101","nodeType":"YulIdentifier","src":"17865:15:101"},"nativeSrc":"17865:59:101","nodeType":"YulFunctionCall","src":"17865:59:101"},"variableNames":[{"name":"converted","nativeSrc":"17852:9:101","nodeType":"YulIdentifier","src":"17852:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"17776:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17822:5:101","nodeType":"YulTypedName","src":"17822:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"17832:9:101","nodeType":"YulTypedName","src":"17832:9:101","type":""}],"src":"17776:154:101"},{"body":{"nativeSrc":"18007:72:101","nodeType":"YulBlock","src":"18007:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18024:3:101","nodeType":"YulIdentifier","src":"18024:3:101"},{"arguments":[{"name":"value","nativeSrc":"18066:5:101","nodeType":"YulIdentifier","src":"18066:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"18029:36:101","nodeType":"YulIdentifier","src":"18029:36:101"},"nativeSrc":"18029:43:101","nodeType":"YulFunctionCall","src":"18029:43:101"}],"functionName":{"name":"mstore","nativeSrc":"18017:6:101","nodeType":"YulIdentifier","src":"18017:6:101"},"nativeSrc":"18017:56:101","nodeType":"YulFunctionCall","src":"18017:56:101"},"nativeSrc":"18017:56:101","nodeType":"YulExpressionStatement","src":"18017:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"17936:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17995:5:101","nodeType":"YulTypedName","src":"17995:5:101","type":""},{"name":"pos","nativeSrc":"18002:3:101","nodeType":"YulTypedName","src":"18002:3:101","type":""}],"src":"17936:143:101"},{"body":{"nativeSrc":"18189:130:101","nodeType":"YulBlock","src":"18189:130:101","statements":[{"nativeSrc":"18199:26:101","nodeType":"YulAssignment","src":"18199:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18211:9:101","nodeType":"YulIdentifier","src":"18211:9:101"},{"kind":"number","nativeSrc":"18222:2:101","nodeType":"YulLiteral","src":"18222:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18207:3:101","nodeType":"YulIdentifier","src":"18207:3:101"},"nativeSrc":"18207:18:101","nodeType":"YulFunctionCall","src":"18207:18:101"},"variableNames":[{"name":"tail","nativeSrc":"18199:4:101","nodeType":"YulIdentifier","src":"18199:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18285:6:101","nodeType":"YulIdentifier","src":"18285:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"18298:9:101","nodeType":"YulIdentifier","src":"18298:9:101"},{"kind":"number","nativeSrc":"18309:1:101","nodeType":"YulLiteral","src":"18309:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18294:3:101","nodeType":"YulIdentifier","src":"18294:3:101"},"nativeSrc":"18294:17:101","nodeType":"YulFunctionCall","src":"18294:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"18235:49:101","nodeType":"YulIdentifier","src":"18235:49:101"},"nativeSrc":"18235:77:101","nodeType":"YulFunctionCall","src":"18235:77:101"},"nativeSrc":"18235:77:101","nodeType":"YulExpressionStatement","src":"18235:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"18085:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18161:9:101","nodeType":"YulTypedName","src":"18161:9:101","type":""},{"name":"value0","nativeSrc":"18173:6:101","nodeType":"YulTypedName","src":"18173:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18184:4:101","nodeType":"YulTypedName","src":"18184:4:101","type":""}],"src":"18085:234:101"},{"body":{"nativeSrc":"18431:76:101","nodeType":"YulBlock","src":"18431:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"18453:6:101","nodeType":"YulIdentifier","src":"18453:6:101"},{"kind":"number","nativeSrc":"18461:1:101","nodeType":"YulLiteral","src":"18461:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18449:3:101","nodeType":"YulIdentifier","src":"18449:3:101"},"nativeSrc":"18449:14:101","nodeType":"YulFunctionCall","src":"18449:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"18465:34:101","nodeType":"YulLiteral","src":"18465:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"18442:6:101","nodeType":"YulIdentifier","src":"18442:6:101"},"nativeSrc":"18442:58:101","nodeType":"YulFunctionCall","src":"18442:58:101"},"nativeSrc":"18442:58:101","nodeType":"YulExpressionStatement","src":"18442:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"18325:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18423:6:101","nodeType":"YulTypedName","src":"18423:6:101","type":""}],"src":"18325:182:101"},{"body":{"nativeSrc":"18659:220:101","nodeType":"YulBlock","src":"18659:220:101","statements":[{"nativeSrc":"18669:74:101","nodeType":"YulAssignment","src":"18669:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"18735:3:101","nodeType":"YulIdentifier","src":"18735:3:101"},{"kind":"number","nativeSrc":"18740:2:101","nodeType":"YulLiteral","src":"18740:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"18676:58:101","nodeType":"YulIdentifier","src":"18676:58:101"},"nativeSrc":"18676:67:101","nodeType":"YulFunctionCall","src":"18676:67:101"},"variableNames":[{"name":"pos","nativeSrc":"18669:3:101","nodeType":"YulIdentifier","src":"18669:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18841:3:101","nodeType":"YulIdentifier","src":"18841:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"18752:88:101","nodeType":"YulIdentifier","src":"18752:88:101"},"nativeSrc":"18752:93:101","nodeType":"YulFunctionCall","src":"18752:93:101"},"nativeSrc":"18752:93:101","nodeType":"YulExpressionStatement","src":"18752:93:101"},{"nativeSrc":"18854:19:101","nodeType":"YulAssignment","src":"18854:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"18865:3:101","nodeType":"YulIdentifier","src":"18865:3:101"},{"kind":"number","nativeSrc":"18870:2:101","nodeType":"YulLiteral","src":"18870:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18861:3:101","nodeType":"YulIdentifier","src":"18861:3:101"},"nativeSrc":"18861:12:101","nodeType":"YulFunctionCall","src":"18861:12:101"},"variableNames":[{"name":"end","nativeSrc":"18854:3:101","nodeType":"YulIdentifier","src":"18854:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"18513:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18647:3:101","nodeType":"YulTypedName","src":"18647:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18655:3:101","nodeType":"YulTypedName","src":"18655:3:101","type":""}],"src":"18513:366:101"},{"body":{"nativeSrc":"19056:248:101","nodeType":"YulBlock","src":"19056:248:101","statements":[{"nativeSrc":"19066:26:101","nodeType":"YulAssignment","src":"19066:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"19078:9:101","nodeType":"YulIdentifier","src":"19078:9:101"},{"kind":"number","nativeSrc":"19089:2:101","nodeType":"YulLiteral","src":"19089:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19074:3:101","nodeType":"YulIdentifier","src":"19074:3:101"},"nativeSrc":"19074:18:101","nodeType":"YulFunctionCall","src":"19074:18:101"},"variableNames":[{"name":"tail","nativeSrc":"19066:4:101","nodeType":"YulIdentifier","src":"19066:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19113:9:101","nodeType":"YulIdentifier","src":"19113:9:101"},{"kind":"number","nativeSrc":"19124:1:101","nodeType":"YulLiteral","src":"19124:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19109:3:101","nodeType":"YulIdentifier","src":"19109:3:101"},"nativeSrc":"19109:17:101","nodeType":"YulFunctionCall","src":"19109:17:101"},{"arguments":[{"name":"tail","nativeSrc":"19132:4:101","nodeType":"YulIdentifier","src":"19132:4:101"},{"name":"headStart","nativeSrc":"19138:9:101","nodeType":"YulIdentifier","src":"19138:9:101"}],"functionName":{"name":"sub","nativeSrc":"19128:3:101","nodeType":"YulIdentifier","src":"19128:3:101"},"nativeSrc":"19128:20:101","nodeType":"YulFunctionCall","src":"19128:20:101"}],"functionName":{"name":"mstore","nativeSrc":"19102:6:101","nodeType":"YulIdentifier","src":"19102:6:101"},"nativeSrc":"19102:47:101","nodeType":"YulFunctionCall","src":"19102:47:101"},"nativeSrc":"19102:47:101","nodeType":"YulExpressionStatement","src":"19102:47:101"},{"nativeSrc":"19158:139:101","nodeType":"YulAssignment","src":"19158:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"19292:4:101","nodeType":"YulIdentifier","src":"19292:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"19166:124:101","nodeType":"YulIdentifier","src":"19166:124:101"},"nativeSrc":"19166:131:101","nodeType":"YulFunctionCall","src":"19166:131:101"},"variableNames":[{"name":"tail","nativeSrc":"19158:4:101","nodeType":"YulIdentifier","src":"19158:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18885:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19036:9:101","nodeType":"YulTypedName","src":"19036:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19051:4:101","nodeType":"YulTypedName","src":"19051:4:101","type":""}],"src":"18885:419:101"},{"body":{"nativeSrc":"19416:118:101","nodeType":"YulBlock","src":"19416:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19438:6:101","nodeType":"YulIdentifier","src":"19438:6:101"},{"kind":"number","nativeSrc":"19446:1:101","nodeType":"YulLiteral","src":"19446:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19434:3:101","nodeType":"YulIdentifier","src":"19434:3:101"},"nativeSrc":"19434:14:101","nodeType":"YulFunctionCall","src":"19434:14:101"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"19450:34:101","nodeType":"YulLiteral","src":"19450:34:101","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"19427:6:101","nodeType":"YulIdentifier","src":"19427:6:101"},"nativeSrc":"19427:58:101","nodeType":"YulFunctionCall","src":"19427:58:101"},"nativeSrc":"19427:58:101","nodeType":"YulExpressionStatement","src":"19427:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19506:6:101","nodeType":"YulIdentifier","src":"19506:6:101"},{"kind":"number","nativeSrc":"19514:2:101","nodeType":"YulLiteral","src":"19514:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19502:3:101","nodeType":"YulIdentifier","src":"19502:3:101"},"nativeSrc":"19502:15:101","nodeType":"YulFunctionCall","src":"19502:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"19519:7:101","nodeType":"YulLiteral","src":"19519:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"19495:6:101","nodeType":"YulIdentifier","src":"19495:6:101"},"nativeSrc":"19495:32:101","nodeType":"YulFunctionCall","src":"19495:32:101"},"nativeSrc":"19495:32:101","nodeType":"YulExpressionStatement","src":"19495:32:101"}]},"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"19310:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19408:6:101","nodeType":"YulTypedName","src":"19408:6:101","type":""}],"src":"19310:224:101"},{"body":{"nativeSrc":"19686:220:101","nodeType":"YulBlock","src":"19686:220:101","statements":[{"nativeSrc":"19696:74:101","nodeType":"YulAssignment","src":"19696:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"19762:3:101","nodeType":"YulIdentifier","src":"19762:3:101"},{"kind":"number","nativeSrc":"19767:2:101","nodeType":"YulLiteral","src":"19767:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19703:58:101","nodeType":"YulIdentifier","src":"19703:58:101"},"nativeSrc":"19703:67:101","nodeType":"YulFunctionCall","src":"19703:67:101"},"variableNames":[{"name":"pos","nativeSrc":"19696:3:101","nodeType":"YulIdentifier","src":"19696:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19868:3:101","nodeType":"YulIdentifier","src":"19868:3:101"}],"functionName":{"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"19779:88:101","nodeType":"YulIdentifier","src":"19779:88:101"},"nativeSrc":"19779:93:101","nodeType":"YulFunctionCall","src":"19779:93:101"},"nativeSrc":"19779:93:101","nodeType":"YulExpressionStatement","src":"19779:93:101"},{"nativeSrc":"19881:19:101","nodeType":"YulAssignment","src":"19881:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"19892:3:101","nodeType":"YulIdentifier","src":"19892:3:101"},{"kind":"number","nativeSrc":"19897:2:101","nodeType":"YulLiteral","src":"19897:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19888:3:101","nodeType":"YulIdentifier","src":"19888:3:101"},"nativeSrc":"19888:12:101","nodeType":"YulFunctionCall","src":"19888:12:101"},"variableNames":[{"name":"end","nativeSrc":"19881:3:101","nodeType":"YulIdentifier","src":"19881:3:101"}]}]},"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"19540:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19674:3:101","nodeType":"YulTypedName","src":"19674:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19682:3:101","nodeType":"YulTypedName","src":"19682:3:101","type":""}],"src":"19540:366:101"},{"body":{"nativeSrc":"20083:248:101","nodeType":"YulBlock","src":"20083:248:101","statements":[{"nativeSrc":"20093:26:101","nodeType":"YulAssignment","src":"20093:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20105:9:101","nodeType":"YulIdentifier","src":"20105:9:101"},{"kind":"number","nativeSrc":"20116:2:101","nodeType":"YulLiteral","src":"20116:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20101:3:101","nodeType":"YulIdentifier","src":"20101:3:101"},"nativeSrc":"20101:18:101","nodeType":"YulFunctionCall","src":"20101:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20093:4:101","nodeType":"YulIdentifier","src":"20093:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20140:9:101","nodeType":"YulIdentifier","src":"20140:9:101"},{"kind":"number","nativeSrc":"20151:1:101","nodeType":"YulLiteral","src":"20151:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20136:3:101","nodeType":"YulIdentifier","src":"20136:3:101"},"nativeSrc":"20136:17:101","nodeType":"YulFunctionCall","src":"20136:17:101"},{"arguments":[{"name":"tail","nativeSrc":"20159:4:101","nodeType":"YulIdentifier","src":"20159:4:101"},{"name":"headStart","nativeSrc":"20165:9:101","nodeType":"YulIdentifier","src":"20165:9:101"}],"functionName":{"name":"sub","nativeSrc":"20155:3:101","nodeType":"YulIdentifier","src":"20155:3:101"},"nativeSrc":"20155:20:101","nodeType":"YulFunctionCall","src":"20155:20:101"}],"functionName":{"name":"mstore","nativeSrc":"20129:6:101","nodeType":"YulIdentifier","src":"20129:6:101"},"nativeSrc":"20129:47:101","nodeType":"YulFunctionCall","src":"20129:47:101"},"nativeSrc":"20129:47:101","nodeType":"YulExpressionStatement","src":"20129:47:101"},{"nativeSrc":"20185:139:101","nodeType":"YulAssignment","src":"20185:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"20319:4:101","nodeType":"YulIdentifier","src":"20319:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"20193:124:101","nodeType":"YulIdentifier","src":"20193:124:101"},"nativeSrc":"20193:131:101","nodeType":"YulFunctionCall","src":"20193:131:101"},"variableNames":[{"name":"tail","nativeSrc":"20185:4:101","nodeType":"YulIdentifier","src":"20185:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19912:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20063:9:101","nodeType":"YulTypedName","src":"20063:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20078:4:101","nodeType":"YulTypedName","src":"20078:4:101","type":""}],"src":"19912:419:101"},{"body":{"nativeSrc":"20463:206:101","nodeType":"YulBlock","src":"20463:206:101","statements":[{"nativeSrc":"20473:26:101","nodeType":"YulAssignment","src":"20473:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20485:9:101","nodeType":"YulIdentifier","src":"20485:9:101"},{"kind":"number","nativeSrc":"20496:2:101","nodeType":"YulLiteral","src":"20496:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20481:3:101","nodeType":"YulIdentifier","src":"20481:3:101"},"nativeSrc":"20481:18:101","nodeType":"YulFunctionCall","src":"20481:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20473:4:101","nodeType":"YulIdentifier","src":"20473:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"20553:6:101","nodeType":"YulIdentifier","src":"20553:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"20566:9:101","nodeType":"YulIdentifier","src":"20566:9:101"},{"kind":"number","nativeSrc":"20577:1:101","nodeType":"YulLiteral","src":"20577:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20562:3:101","nodeType":"YulIdentifier","src":"20562:3:101"},"nativeSrc":"20562:17:101","nodeType":"YulFunctionCall","src":"20562:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20509:43:101","nodeType":"YulIdentifier","src":"20509:43:101"},"nativeSrc":"20509:71:101","nodeType":"YulFunctionCall","src":"20509:71:101"},"nativeSrc":"20509:71:101","nodeType":"YulExpressionStatement","src":"20509:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"20634:6:101","nodeType":"YulIdentifier","src":"20634:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"20647:9:101","nodeType":"YulIdentifier","src":"20647:9:101"},{"kind":"number","nativeSrc":"20658:2:101","nodeType":"YulLiteral","src":"20658:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20643:3:101","nodeType":"YulIdentifier","src":"20643:3:101"},"nativeSrc":"20643:18:101","nodeType":"YulFunctionCall","src":"20643:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20590:43:101","nodeType":"YulIdentifier","src":"20590:43:101"},"nativeSrc":"20590:72:101","nodeType":"YulFunctionCall","src":"20590:72:101"},"nativeSrc":"20590:72:101","nodeType":"YulExpressionStatement","src":"20590:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"20337:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20427:9:101","nodeType":"YulTypedName","src":"20427:9:101","type":""},{"name":"value1","nativeSrc":"20439:6:101","nodeType":"YulTypedName","src":"20439:6:101","type":""},{"name":"value0","nativeSrc":"20447:6:101","nodeType":"YulTypedName","src":"20447:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20458:4:101","nodeType":"YulTypedName","src":"20458:4:101","type":""}],"src":"20337:332:101"},{"body":{"nativeSrc":"20703:152:101","nodeType":"YulBlock","src":"20703:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20720:1:101","nodeType":"YulLiteral","src":"20720:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"20723:77:101","nodeType":"YulLiteral","src":"20723:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20713:6:101","nodeType":"YulIdentifier","src":"20713:6:101"},"nativeSrc":"20713:88:101","nodeType":"YulFunctionCall","src":"20713:88:101"},"nativeSrc":"20713:88:101","nodeType":"YulExpressionStatement","src":"20713:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20817:1:101","nodeType":"YulLiteral","src":"20817:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"20820:4:101","nodeType":"YulLiteral","src":"20820:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"20810:6:101","nodeType":"YulIdentifier","src":"20810:6:101"},"nativeSrc":"20810:15:101","nodeType":"YulFunctionCall","src":"20810:15:101"},"nativeSrc":"20810:15:101","nodeType":"YulExpressionStatement","src":"20810:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20841:1:101","nodeType":"YulLiteral","src":"20841:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"20844:4:101","nodeType":"YulLiteral","src":"20844:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20834:6:101","nodeType":"YulIdentifier","src":"20834:6:101"},"nativeSrc":"20834:15:101","nodeType":"YulFunctionCall","src":"20834:15:101"},"nativeSrc":"20834:15:101","nodeType":"YulExpressionStatement","src":"20834:15:101"}]},"name":"panic_error_0x11","nativeSrc":"20675:180:101","nodeType":"YulFunctionDefinition","src":"20675:180:101"},{"body":{"nativeSrc":"20909:362:101","nodeType":"YulBlock","src":"20909:362:101","statements":[{"nativeSrc":"20919:25:101","nodeType":"YulAssignment","src":"20919:25:101","value":{"arguments":[{"name":"x","nativeSrc":"20942:1:101","nodeType":"YulIdentifier","src":"20942:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20924:17:101","nodeType":"YulIdentifier","src":"20924:17:101"},"nativeSrc":"20924:20:101","nodeType":"YulFunctionCall","src":"20924:20:101"},"variableNames":[{"name":"x","nativeSrc":"20919:1:101","nodeType":"YulIdentifier","src":"20919:1:101"}]},{"nativeSrc":"20953:25:101","nodeType":"YulAssignment","src":"20953:25:101","value":{"arguments":[{"name":"y","nativeSrc":"20976:1:101","nodeType":"YulIdentifier","src":"20976:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20958:17:101","nodeType":"YulIdentifier","src":"20958:17:101"},"nativeSrc":"20958:20:101","nodeType":"YulFunctionCall","src":"20958:20:101"},"variableNames":[{"name":"y","nativeSrc":"20953:1:101","nodeType":"YulIdentifier","src":"20953:1:101"}]},{"nativeSrc":"20987:28:101","nodeType":"YulVariableDeclaration","src":"20987:28:101","value":{"arguments":[{"name":"x","nativeSrc":"21010:1:101","nodeType":"YulIdentifier","src":"21010:1:101"},{"name":"y","nativeSrc":"21013:1:101","nodeType":"YulIdentifier","src":"21013:1:101"}],"functionName":{"name":"mul","nativeSrc":"21006:3:101","nodeType":"YulIdentifier","src":"21006:3:101"},"nativeSrc":"21006:9:101","nodeType":"YulFunctionCall","src":"21006:9:101"},"variables":[{"name":"product_raw","nativeSrc":"20991:11:101","nodeType":"YulTypedName","src":"20991:11:101","type":""}]},{"nativeSrc":"21024:41:101","nodeType":"YulAssignment","src":"21024:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"21053:11:101","nodeType":"YulIdentifier","src":"21053:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21035:17:101","nodeType":"YulIdentifier","src":"21035:17:101"},"nativeSrc":"21035:30:101","nodeType":"YulFunctionCall","src":"21035:30:101"},"variableNames":[{"name":"product","nativeSrc":"21024:7:101","nodeType":"YulIdentifier","src":"21024:7:101"}]},{"body":{"nativeSrc":"21242:22:101","nodeType":"YulBlock","src":"21242:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21244:16:101","nodeType":"YulIdentifier","src":"21244:16:101"},"nativeSrc":"21244:18:101","nodeType":"YulFunctionCall","src":"21244:18:101"},"nativeSrc":"21244:18:101","nodeType":"YulExpressionStatement","src":"21244:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"21175:1:101","nodeType":"YulIdentifier","src":"21175:1:101"}],"functionName":{"name":"iszero","nativeSrc":"21168:6:101","nodeType":"YulIdentifier","src":"21168:6:101"},"nativeSrc":"21168:9:101","nodeType":"YulFunctionCall","src":"21168:9:101"},{"arguments":[{"name":"y","nativeSrc":"21198:1:101","nodeType":"YulIdentifier","src":"21198:1:101"},{"arguments":[{"name":"product","nativeSrc":"21205:7:101","nodeType":"YulIdentifier","src":"21205:7:101"},{"name":"x","nativeSrc":"21214:1:101","nodeType":"YulIdentifier","src":"21214:1:101"}],"functionName":{"name":"div","nativeSrc":"21201:3:101","nodeType":"YulIdentifier","src":"21201:3:101"},"nativeSrc":"21201:15:101","nodeType":"YulFunctionCall","src":"21201:15:101"}],"functionName":{"name":"eq","nativeSrc":"21195:2:101","nodeType":"YulIdentifier","src":"21195:2:101"},"nativeSrc":"21195:22:101","nodeType":"YulFunctionCall","src":"21195:22:101"}],"functionName":{"name":"or","nativeSrc":"21148:2:101","nodeType":"YulIdentifier","src":"21148:2:101"},"nativeSrc":"21148:83:101","nodeType":"YulFunctionCall","src":"21148:83:101"}],"functionName":{"name":"iszero","nativeSrc":"21128:6:101","nodeType":"YulIdentifier","src":"21128:6:101"},"nativeSrc":"21128:113:101","nodeType":"YulFunctionCall","src":"21128:113:101"},"nativeSrc":"21125:139:101","nodeType":"YulIf","src":"21125:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"20861:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20892:1:101","nodeType":"YulTypedName","src":"20892:1:101","type":""},{"name":"y","nativeSrc":"20895:1:101","nodeType":"YulTypedName","src":"20895:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"20901:7:101","nodeType":"YulTypedName","src":"20901:7:101","type":""}],"src":"20861:410:101"},{"body":{"nativeSrc":"21305:152:101","nodeType":"YulBlock","src":"21305:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21322:1:101","nodeType":"YulLiteral","src":"21322:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"21325:77:101","nodeType":"YulLiteral","src":"21325:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"21315:6:101","nodeType":"YulIdentifier","src":"21315:6:101"},"nativeSrc":"21315:88:101","nodeType":"YulFunctionCall","src":"21315:88:101"},"nativeSrc":"21315:88:101","nodeType":"YulExpressionStatement","src":"21315:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21419:1:101","nodeType":"YulLiteral","src":"21419:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"21422:4:101","nodeType":"YulLiteral","src":"21422:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"21412:6:101","nodeType":"YulIdentifier","src":"21412:6:101"},"nativeSrc":"21412:15:101","nodeType":"YulFunctionCall","src":"21412:15:101"},"nativeSrc":"21412:15:101","nodeType":"YulExpressionStatement","src":"21412:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21443:1:101","nodeType":"YulLiteral","src":"21443:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"21446:4:101","nodeType":"YulLiteral","src":"21446:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21436:6:101","nodeType":"YulIdentifier","src":"21436:6:101"},"nativeSrc":"21436:15:101","nodeType":"YulFunctionCall","src":"21436:15:101"},"nativeSrc":"21436:15:101","nodeType":"YulExpressionStatement","src":"21436:15:101"}]},"name":"panic_error_0x12","nativeSrc":"21277:180:101","nodeType":"YulFunctionDefinition","src":"21277:180:101"},{"body":{"nativeSrc":"21505:143:101","nodeType":"YulBlock","src":"21505:143:101","statements":[{"nativeSrc":"21515:25:101","nodeType":"YulAssignment","src":"21515:25:101","value":{"arguments":[{"name":"x","nativeSrc":"21538:1:101","nodeType":"YulIdentifier","src":"21538:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21520:17:101","nodeType":"YulIdentifier","src":"21520:17:101"},"nativeSrc":"21520:20:101","nodeType":"YulFunctionCall","src":"21520:20:101"},"variableNames":[{"name":"x","nativeSrc":"21515:1:101","nodeType":"YulIdentifier","src":"21515:1:101"}]},{"nativeSrc":"21549:25:101","nodeType":"YulAssignment","src":"21549:25:101","value":{"arguments":[{"name":"y","nativeSrc":"21572:1:101","nodeType":"YulIdentifier","src":"21572:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21554:17:101","nodeType":"YulIdentifier","src":"21554:17:101"},"nativeSrc":"21554:20:101","nodeType":"YulFunctionCall","src":"21554:20:101"},"variableNames":[{"name":"y","nativeSrc":"21549:1:101","nodeType":"YulIdentifier","src":"21549:1:101"}]},{"body":{"nativeSrc":"21596:22:101","nodeType":"YulBlock","src":"21596:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"21598:16:101","nodeType":"YulIdentifier","src":"21598:16:101"},"nativeSrc":"21598:18:101","nodeType":"YulFunctionCall","src":"21598:18:101"},"nativeSrc":"21598:18:101","nodeType":"YulExpressionStatement","src":"21598:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"21593:1:101","nodeType":"YulIdentifier","src":"21593:1:101"}],"functionName":{"name":"iszero","nativeSrc":"21586:6:101","nodeType":"YulIdentifier","src":"21586:6:101"},"nativeSrc":"21586:9:101","nodeType":"YulFunctionCall","src":"21586:9:101"},"nativeSrc":"21583:35:101","nodeType":"YulIf","src":"21583:35:101"},{"nativeSrc":"21628:14:101","nodeType":"YulAssignment","src":"21628:14:101","value":{"arguments":[{"name":"x","nativeSrc":"21637:1:101","nodeType":"YulIdentifier","src":"21637:1:101"},{"name":"y","nativeSrc":"21640:1:101","nodeType":"YulIdentifier","src":"21640:1:101"}],"functionName":{"name":"div","nativeSrc":"21633:3:101","nodeType":"YulIdentifier","src":"21633:3:101"},"nativeSrc":"21633:9:101","nodeType":"YulFunctionCall","src":"21633:9:101"},"variableNames":[{"name":"r","nativeSrc":"21628:1:101","nodeType":"YulIdentifier","src":"21628:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"21463:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21494:1:101","nodeType":"YulTypedName","src":"21494:1:101","type":""},{"name":"y","nativeSrc":"21497:1:101","nodeType":"YulTypedName","src":"21497:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"21503:1:101","nodeType":"YulTypedName","src":"21503:1:101","type":""}],"src":"21463:185:101"},{"body":{"nativeSrc":"21713:40:101","nodeType":"YulBlock","src":"21713:40:101","statements":[{"nativeSrc":"21724:22:101","nodeType":"YulAssignment","src":"21724:22:101","value":{"arguments":[{"name":"value","nativeSrc":"21740:5:101","nodeType":"YulIdentifier","src":"21740:5:101"}],"functionName":{"name":"mload","nativeSrc":"21734:5:101","nodeType":"YulIdentifier","src":"21734:5:101"},"nativeSrc":"21734:12:101","nodeType":"YulFunctionCall","src":"21734:12:101"},"variableNames":[{"name":"length","nativeSrc":"21724:6:101","nodeType":"YulIdentifier","src":"21724:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"21654:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21696:5:101","nodeType":"YulTypedName","src":"21696:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"21706:6:101","nodeType":"YulTypedName","src":"21706:6:101","type":""}],"src":"21654:99:101"},{"body":{"nativeSrc":"21821:77:101","nodeType":"YulBlock","src":"21821:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"21838:3:101","nodeType":"YulIdentifier","src":"21838:3:101"},{"name":"src","nativeSrc":"21843:3:101","nodeType":"YulIdentifier","src":"21843:3:101"},{"name":"length","nativeSrc":"21848:6:101","nodeType":"YulIdentifier","src":"21848:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"21832:5:101","nodeType":"YulIdentifier","src":"21832:5:101"},"nativeSrc":"21832:23:101","nodeType":"YulFunctionCall","src":"21832:23:101"},"nativeSrc":"21832:23:101","nodeType":"YulExpressionStatement","src":"21832:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"21875:3:101","nodeType":"YulIdentifier","src":"21875:3:101"},{"name":"length","nativeSrc":"21880:6:101","nodeType":"YulIdentifier","src":"21880:6:101"}],"functionName":{"name":"add","nativeSrc":"21871:3:101","nodeType":"YulIdentifier","src":"21871:3:101"},"nativeSrc":"21871:16:101","nodeType":"YulFunctionCall","src":"21871:16:101"},{"kind":"number","nativeSrc":"21889:1:101","nodeType":"YulLiteral","src":"21889:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"21864:6:101","nodeType":"YulIdentifier","src":"21864:6:101"},"nativeSrc":"21864:27:101","nodeType":"YulFunctionCall","src":"21864:27:101"},"nativeSrc":"21864:27:101","nodeType":"YulExpressionStatement","src":"21864:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"21759:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"21803:3:101","nodeType":"YulTypedName","src":"21803:3:101","type":""},{"name":"dst","nativeSrc":"21808:3:101","nodeType":"YulTypedName","src":"21808:3:101","type":""},{"name":"length","nativeSrc":"21813:6:101","nodeType":"YulTypedName","src":"21813:6:101","type":""}],"src":"21759:139:101"},{"body":{"nativeSrc":"21996:285:101","nodeType":"YulBlock","src":"21996:285:101","statements":[{"nativeSrc":"22006:53:101","nodeType":"YulVariableDeclaration","src":"22006:53:101","value":{"arguments":[{"name":"value","nativeSrc":"22053:5:101","nodeType":"YulIdentifier","src":"22053:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"22020:32:101","nodeType":"YulIdentifier","src":"22020:32:101"},"nativeSrc":"22020:39:101","nodeType":"YulFunctionCall","src":"22020:39:101"},"variables":[{"name":"length","nativeSrc":"22010:6:101","nodeType":"YulTypedName","src":"22010:6:101","type":""}]},{"nativeSrc":"22068:78:101","nodeType":"YulAssignment","src":"22068:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"22134:3:101","nodeType":"YulIdentifier","src":"22134:3:101"},{"name":"length","nativeSrc":"22139:6:101","nodeType":"YulIdentifier","src":"22139:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"22075:58:101","nodeType":"YulIdentifier","src":"22075:58:101"},"nativeSrc":"22075:71:101","nodeType":"YulFunctionCall","src":"22075:71:101"},"variableNames":[{"name":"pos","nativeSrc":"22068:3:101","nodeType":"YulIdentifier","src":"22068:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22194:5:101","nodeType":"YulIdentifier","src":"22194:5:101"},{"kind":"number","nativeSrc":"22201:4:101","nodeType":"YulLiteral","src":"22201:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22190:3:101","nodeType":"YulIdentifier","src":"22190:3:101"},"nativeSrc":"22190:16:101","nodeType":"YulFunctionCall","src":"22190:16:101"},{"name":"pos","nativeSrc":"22208:3:101","nodeType":"YulIdentifier","src":"22208:3:101"},{"name":"length","nativeSrc":"22213:6:101","nodeType":"YulIdentifier","src":"22213:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22155:34:101","nodeType":"YulIdentifier","src":"22155:34:101"},"nativeSrc":"22155:65:101","nodeType":"YulFunctionCall","src":"22155:65:101"},"nativeSrc":"22155:65:101","nodeType":"YulExpressionStatement","src":"22155:65:101"},{"nativeSrc":"22229:46:101","nodeType":"YulAssignment","src":"22229:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"22240:3:101","nodeType":"YulIdentifier","src":"22240:3:101"},{"arguments":[{"name":"length","nativeSrc":"22267:6:101","nodeType":"YulIdentifier","src":"22267:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"22245:21:101","nodeType":"YulIdentifier","src":"22245:21:101"},"nativeSrc":"22245:29:101","nodeType":"YulFunctionCall","src":"22245:29:101"}],"functionName":{"name":"add","nativeSrc":"22236:3:101","nodeType":"YulIdentifier","src":"22236:3:101"},"nativeSrc":"22236:39:101","nodeType":"YulFunctionCall","src":"22236:39:101"},"variableNames":[{"name":"end","nativeSrc":"22229:3:101","nodeType":"YulIdentifier","src":"22229:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"21904:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21977:5:101","nodeType":"YulTypedName","src":"21977:5:101","type":""},{"name":"pos","nativeSrc":"21984:3:101","nodeType":"YulTypedName","src":"21984:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21992:3:101","nodeType":"YulTypedName","src":"21992:3:101","type":""}],"src":"21904:377:101"},{"body":{"nativeSrc":"22433:277:101","nodeType":"YulBlock","src":"22433:277:101","statements":[{"nativeSrc":"22443:26:101","nodeType":"YulAssignment","src":"22443:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"22455:9:101","nodeType":"YulIdentifier","src":"22455:9:101"},{"kind":"number","nativeSrc":"22466:2:101","nodeType":"YulLiteral","src":"22466:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22451:3:101","nodeType":"YulIdentifier","src":"22451:3:101"},"nativeSrc":"22451:18:101","nodeType":"YulFunctionCall","src":"22451:18:101"},"variableNames":[{"name":"tail","nativeSrc":"22443:4:101","nodeType":"YulIdentifier","src":"22443:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22523:6:101","nodeType":"YulIdentifier","src":"22523:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"22536:9:101","nodeType":"YulIdentifier","src":"22536:9:101"},{"kind":"number","nativeSrc":"22547:1:101","nodeType":"YulLiteral","src":"22547:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22532:3:101","nodeType":"YulIdentifier","src":"22532:3:101"},"nativeSrc":"22532:17:101","nodeType":"YulFunctionCall","src":"22532:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22479:43:101","nodeType":"YulIdentifier","src":"22479:43:101"},"nativeSrc":"22479:71:101","nodeType":"YulFunctionCall","src":"22479:71:101"},"nativeSrc":"22479:71:101","nodeType":"YulExpressionStatement","src":"22479:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22571:9:101","nodeType":"YulIdentifier","src":"22571:9:101"},{"kind":"number","nativeSrc":"22582:2:101","nodeType":"YulLiteral","src":"22582:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22567:3:101","nodeType":"YulIdentifier","src":"22567:3:101"},"nativeSrc":"22567:18:101","nodeType":"YulFunctionCall","src":"22567:18:101"},{"arguments":[{"name":"tail","nativeSrc":"22591:4:101","nodeType":"YulIdentifier","src":"22591:4:101"},{"name":"headStart","nativeSrc":"22597:9:101","nodeType":"YulIdentifier","src":"22597:9:101"}],"functionName":{"name":"sub","nativeSrc":"22587:3:101","nodeType":"YulIdentifier","src":"22587:3:101"},"nativeSrc":"22587:20:101","nodeType":"YulFunctionCall","src":"22587:20:101"}],"functionName":{"name":"mstore","nativeSrc":"22560:6:101","nodeType":"YulIdentifier","src":"22560:6:101"},"nativeSrc":"22560:48:101","nodeType":"YulFunctionCall","src":"22560:48:101"},"nativeSrc":"22560:48:101","nodeType":"YulExpressionStatement","src":"22560:48:101"},{"nativeSrc":"22617:86:101","nodeType":"YulAssignment","src":"22617:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"22689:6:101","nodeType":"YulIdentifier","src":"22689:6:101"},{"name":"tail","nativeSrc":"22698:4:101","nodeType":"YulIdentifier","src":"22698:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"22625:63:101","nodeType":"YulIdentifier","src":"22625:63:101"},"nativeSrc":"22625:78:101","nodeType":"YulFunctionCall","src":"22625:78:101"},"variableNames":[{"name":"tail","nativeSrc":"22617:4:101","nodeType":"YulIdentifier","src":"22617:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22287:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22397:9:101","nodeType":"YulTypedName","src":"22397:9:101","type":""},{"name":"value1","nativeSrc":"22409:6:101","nodeType":"YulTypedName","src":"22409:6:101","type":""},{"name":"value0","nativeSrc":"22417:6:101","nodeType":"YulTypedName","src":"22417:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22428:4:101","nodeType":"YulTypedName","src":"22428:4:101","type":""}],"src":"22287:423:101"},{"body":{"nativeSrc":"22756:76:101","nodeType":"YulBlock","src":"22756:76:101","statements":[{"body":{"nativeSrc":"22810:16:101","nodeType":"YulBlock","src":"22810:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22819:1:101","nodeType":"YulLiteral","src":"22819:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22822:1:101","nodeType":"YulLiteral","src":"22822:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22812:6:101","nodeType":"YulIdentifier","src":"22812:6:101"},"nativeSrc":"22812:12:101","nodeType":"YulFunctionCall","src":"22812:12:101"},"nativeSrc":"22812:12:101","nodeType":"YulExpressionStatement","src":"22812:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22779:5:101","nodeType":"YulIdentifier","src":"22779:5:101"},{"arguments":[{"name":"value","nativeSrc":"22801:5:101","nodeType":"YulIdentifier","src":"22801:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"22786:14:101","nodeType":"YulIdentifier","src":"22786:14:101"},"nativeSrc":"22786:21:101","nodeType":"YulFunctionCall","src":"22786:21:101"}],"functionName":{"name":"eq","nativeSrc":"22776:2:101","nodeType":"YulIdentifier","src":"22776:2:101"},"nativeSrc":"22776:32:101","nodeType":"YulFunctionCall","src":"22776:32:101"}],"functionName":{"name":"iszero","nativeSrc":"22769:6:101","nodeType":"YulIdentifier","src":"22769:6:101"},"nativeSrc":"22769:40:101","nodeType":"YulFunctionCall","src":"22769:40:101"},"nativeSrc":"22766:60:101","nodeType":"YulIf","src":"22766:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"22716:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22749:5:101","nodeType":"YulTypedName","src":"22749:5:101","type":""}],"src":"22716:116:101"},{"body":{"nativeSrc":"22898:77:101","nodeType":"YulBlock","src":"22898:77:101","statements":[{"nativeSrc":"22908:22:101","nodeType":"YulAssignment","src":"22908:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"22923:6:101","nodeType":"YulIdentifier","src":"22923:6:101"}],"functionName":{"name":"mload","nativeSrc":"22917:5:101","nodeType":"YulIdentifier","src":"22917:5:101"},"nativeSrc":"22917:13:101","nodeType":"YulFunctionCall","src":"22917:13:101"},"variableNames":[{"name":"value","nativeSrc":"22908:5:101","nodeType":"YulIdentifier","src":"22908:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22963:5:101","nodeType":"YulIdentifier","src":"22963:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"22939:23:101","nodeType":"YulIdentifier","src":"22939:23:101"},"nativeSrc":"22939:30:101","nodeType":"YulFunctionCall","src":"22939:30:101"},"nativeSrc":"22939:30:101","nodeType":"YulExpressionStatement","src":"22939:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"22838:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22876:6:101","nodeType":"YulTypedName","src":"22876:6:101","type":""},{"name":"end","nativeSrc":"22884:3:101","nodeType":"YulTypedName","src":"22884:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22892:5:101","nodeType":"YulTypedName","src":"22892:5:101","type":""}],"src":"22838:137:101"},{"body":{"nativeSrc":"23055:271:101","nodeType":"YulBlock","src":"23055:271:101","statements":[{"body":{"nativeSrc":"23101:83:101","nodeType":"YulBlock","src":"23101:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"23103:77:101","nodeType":"YulIdentifier","src":"23103:77:101"},"nativeSrc":"23103:79:101","nodeType":"YulFunctionCall","src":"23103:79:101"},"nativeSrc":"23103:79:101","nodeType":"YulExpressionStatement","src":"23103:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23076:7:101","nodeType":"YulIdentifier","src":"23076:7:101"},{"name":"headStart","nativeSrc":"23085:9:101","nodeType":"YulIdentifier","src":"23085:9:101"}],"functionName":{"name":"sub","nativeSrc":"23072:3:101","nodeType":"YulIdentifier","src":"23072:3:101"},"nativeSrc":"23072:23:101","nodeType":"YulFunctionCall","src":"23072:23:101"},{"kind":"number","nativeSrc":"23097:2:101","nodeType":"YulLiteral","src":"23097:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23068:3:101","nodeType":"YulIdentifier","src":"23068:3:101"},"nativeSrc":"23068:32:101","nodeType":"YulFunctionCall","src":"23068:32:101"},"nativeSrc":"23065:119:101","nodeType":"YulIf","src":"23065:119:101"},{"nativeSrc":"23194:125:101","nodeType":"YulBlock","src":"23194:125:101","statements":[{"nativeSrc":"23209:15:101","nodeType":"YulVariableDeclaration","src":"23209:15:101","value":{"kind":"number","nativeSrc":"23223:1:101","nodeType":"YulLiteral","src":"23223:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23213:6:101","nodeType":"YulTypedName","src":"23213:6:101","type":""}]},{"nativeSrc":"23238:71:101","nodeType":"YulAssignment","src":"23238:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23281:9:101","nodeType":"YulIdentifier","src":"23281:9:101"},{"name":"offset","nativeSrc":"23292:6:101","nodeType":"YulIdentifier","src":"23292:6:101"}],"functionName":{"name":"add","nativeSrc":"23277:3:101","nodeType":"YulIdentifier","src":"23277:3:101"},"nativeSrc":"23277:22:101","nodeType":"YulFunctionCall","src":"23277:22:101"},{"name":"dataEnd","nativeSrc":"23301:7:101","nodeType":"YulIdentifier","src":"23301:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"23248:28:101","nodeType":"YulIdentifier","src":"23248:28:101"},"nativeSrc":"23248:61:101","nodeType":"YulFunctionCall","src":"23248:61:101"},"variableNames":[{"name":"value0","nativeSrc":"23238:6:101","nodeType":"YulIdentifier","src":"23238:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"22981:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23025:9:101","nodeType":"YulTypedName","src":"23025:9:101","type":""},{"name":"dataEnd","nativeSrc":"23036:7:101","nodeType":"YulTypedName","src":"23036:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23048:6:101","nodeType":"YulTypedName","src":"23048:6:101","type":""}],"src":"22981:345:101"},{"body":{"nativeSrc":"23506:359:101","nodeType":"YulBlock","src":"23506:359:101","statements":[{"nativeSrc":"23516:26:101","nodeType":"YulAssignment","src":"23516:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"23528:9:101","nodeType":"YulIdentifier","src":"23528:9:101"},{"kind":"number","nativeSrc":"23539:2:101","nodeType":"YulLiteral","src":"23539:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23524:3:101","nodeType":"YulIdentifier","src":"23524:3:101"},"nativeSrc":"23524:18:101","nodeType":"YulFunctionCall","src":"23524:18:101"},"variableNames":[{"name":"tail","nativeSrc":"23516:4:101","nodeType":"YulIdentifier","src":"23516:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"23596:6:101","nodeType":"YulIdentifier","src":"23596:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"23609:9:101","nodeType":"YulIdentifier","src":"23609:9:101"},{"kind":"number","nativeSrc":"23620:1:101","nodeType":"YulLiteral","src":"23620:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"23605:3:101","nodeType":"YulIdentifier","src":"23605:3:101"},"nativeSrc":"23605:17:101","nodeType":"YulFunctionCall","src":"23605:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"23552:43:101","nodeType":"YulIdentifier","src":"23552:43:101"},"nativeSrc":"23552:71:101","nodeType":"YulFunctionCall","src":"23552:71:101"},"nativeSrc":"23552:71:101","nodeType":"YulExpressionStatement","src":"23552:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"23677:6:101","nodeType":"YulIdentifier","src":"23677:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"23690:9:101","nodeType":"YulIdentifier","src":"23690:9:101"},{"kind":"number","nativeSrc":"23701:2:101","nodeType":"YulLiteral","src":"23701:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23686:3:101","nodeType":"YulIdentifier","src":"23686:3:101"},"nativeSrc":"23686:18:101","nodeType":"YulFunctionCall","src":"23686:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"23633:43:101","nodeType":"YulIdentifier","src":"23633:43:101"},"nativeSrc":"23633:72:101","nodeType":"YulFunctionCall","src":"23633:72:101"},"nativeSrc":"23633:72:101","nodeType":"YulExpressionStatement","src":"23633:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23726:9:101","nodeType":"YulIdentifier","src":"23726:9:101"},{"kind":"number","nativeSrc":"23737:2:101","nodeType":"YulLiteral","src":"23737:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23722:3:101","nodeType":"YulIdentifier","src":"23722:3:101"},"nativeSrc":"23722:18:101","nodeType":"YulFunctionCall","src":"23722:18:101"},{"arguments":[{"name":"tail","nativeSrc":"23746:4:101","nodeType":"YulIdentifier","src":"23746:4:101"},{"name":"headStart","nativeSrc":"23752:9:101","nodeType":"YulIdentifier","src":"23752:9:101"}],"functionName":{"name":"sub","nativeSrc":"23742:3:101","nodeType":"YulIdentifier","src":"23742:3:101"},"nativeSrc":"23742:20:101","nodeType":"YulFunctionCall","src":"23742:20:101"}],"functionName":{"name":"mstore","nativeSrc":"23715:6:101","nodeType":"YulIdentifier","src":"23715:6:101"},"nativeSrc":"23715:48:101","nodeType":"YulFunctionCall","src":"23715:48:101"},"nativeSrc":"23715:48:101","nodeType":"YulExpressionStatement","src":"23715:48:101"},{"nativeSrc":"23772:86:101","nodeType":"YulAssignment","src":"23772:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"23844:6:101","nodeType":"YulIdentifier","src":"23844:6:101"},{"name":"tail","nativeSrc":"23853:4:101","nodeType":"YulIdentifier","src":"23853:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"23780:63:101","nodeType":"YulIdentifier","src":"23780:63:101"},"nativeSrc":"23780:78:101","nodeType":"YulFunctionCall","src":"23780:78:101"},"variableNames":[{"name":"tail","nativeSrc":"23772:4:101","nodeType":"YulIdentifier","src":"23772:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"23332:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23462:9:101","nodeType":"YulTypedName","src":"23462:9:101","type":""},{"name":"value2","nativeSrc":"23474:6:101","nodeType":"YulTypedName","src":"23474:6:101","type":""},{"name":"value1","nativeSrc":"23482:6:101","nodeType":"YulTypedName","src":"23482:6:101","type":""},{"name":"value0","nativeSrc":"23490:6:101","nodeType":"YulTypedName","src":"23490:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23501:4:101","nodeType":"YulTypedName","src":"23501:4:101","type":""}],"src":"23332:533:101"},{"body":{"nativeSrc":"23977:124:101","nodeType":"YulBlock","src":"23977:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"23999:6:101","nodeType":"YulIdentifier","src":"23999:6:101"},{"kind":"number","nativeSrc":"24007:1:101","nodeType":"YulLiteral","src":"24007:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"23995:3:101","nodeType":"YulIdentifier","src":"23995:3:101"},"nativeSrc":"23995:14:101","nodeType":"YulFunctionCall","src":"23995:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"24011:34:101","nodeType":"YulLiteral","src":"24011:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"23988:6:101","nodeType":"YulIdentifier","src":"23988:6:101"},"nativeSrc":"23988:58:101","nodeType":"YulFunctionCall","src":"23988:58:101"},"nativeSrc":"23988:58:101","nodeType":"YulExpressionStatement","src":"23988:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"24067:6:101","nodeType":"YulIdentifier","src":"24067:6:101"},{"kind":"number","nativeSrc":"24075:2:101","nodeType":"YulLiteral","src":"24075:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24063:3:101","nodeType":"YulIdentifier","src":"24063:3:101"},"nativeSrc":"24063:15:101","nodeType":"YulFunctionCall","src":"24063:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"24080:13:101","nodeType":"YulLiteral","src":"24080:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"24056:6:101","nodeType":"YulIdentifier","src":"24056:6:101"},"nativeSrc":"24056:38:101","nodeType":"YulFunctionCall","src":"24056:38:101"},"nativeSrc":"24056:38:101","nodeType":"YulExpressionStatement","src":"24056:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"23871:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"23969:6:101","nodeType":"YulTypedName","src":"23969:6:101","type":""}],"src":"23871:230:101"},{"body":{"nativeSrc":"24253:220:101","nodeType":"YulBlock","src":"24253:220:101","statements":[{"nativeSrc":"24263:74:101","nodeType":"YulAssignment","src":"24263:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"24329:3:101","nodeType":"YulIdentifier","src":"24329:3:101"},{"kind":"number","nativeSrc":"24334:2:101","nodeType":"YulLiteral","src":"24334:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"24270:58:101","nodeType":"YulIdentifier","src":"24270:58:101"},"nativeSrc":"24270:67:101","nodeType":"YulFunctionCall","src":"24270:67:101"},"variableNames":[{"name":"pos","nativeSrc":"24263:3:101","nodeType":"YulIdentifier","src":"24263:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"24435:3:101","nodeType":"YulIdentifier","src":"24435:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"24346:88:101","nodeType":"YulIdentifier","src":"24346:88:101"},"nativeSrc":"24346:93:101","nodeType":"YulFunctionCall","src":"24346:93:101"},"nativeSrc":"24346:93:101","nodeType":"YulExpressionStatement","src":"24346:93:101"},{"nativeSrc":"24448:19:101","nodeType":"YulAssignment","src":"24448:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"24459:3:101","nodeType":"YulIdentifier","src":"24459:3:101"},{"kind":"number","nativeSrc":"24464:2:101","nodeType":"YulLiteral","src":"24464:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24455:3:101","nodeType":"YulIdentifier","src":"24455:3:101"},"nativeSrc":"24455:12:101","nodeType":"YulFunctionCall","src":"24455:12:101"},"variableNames":[{"name":"end","nativeSrc":"24448:3:101","nodeType":"YulIdentifier","src":"24448:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"24107:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"24241:3:101","nodeType":"YulTypedName","src":"24241:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24249:3:101","nodeType":"YulTypedName","src":"24249:3:101","type":""}],"src":"24107:366:101"},{"body":{"nativeSrc":"24650:248:101","nodeType":"YulBlock","src":"24650:248:101","statements":[{"nativeSrc":"24660:26:101","nodeType":"YulAssignment","src":"24660:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"24672:9:101","nodeType":"YulIdentifier","src":"24672:9:101"},{"kind":"number","nativeSrc":"24683:2:101","nodeType":"YulLiteral","src":"24683:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24668:3:101","nodeType":"YulIdentifier","src":"24668:3:101"},"nativeSrc":"24668:18:101","nodeType":"YulFunctionCall","src":"24668:18:101"},"variableNames":[{"name":"tail","nativeSrc":"24660:4:101","nodeType":"YulIdentifier","src":"24660:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24707:9:101","nodeType":"YulIdentifier","src":"24707:9:101"},{"kind":"number","nativeSrc":"24718:1:101","nodeType":"YulLiteral","src":"24718:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24703:3:101","nodeType":"YulIdentifier","src":"24703:3:101"},"nativeSrc":"24703:17:101","nodeType":"YulFunctionCall","src":"24703:17:101"},{"arguments":[{"name":"tail","nativeSrc":"24726:4:101","nodeType":"YulIdentifier","src":"24726:4:101"},{"name":"headStart","nativeSrc":"24732:9:101","nodeType":"YulIdentifier","src":"24732:9:101"}],"functionName":{"name":"sub","nativeSrc":"24722:3:101","nodeType":"YulIdentifier","src":"24722:3:101"},"nativeSrc":"24722:20:101","nodeType":"YulFunctionCall","src":"24722:20:101"}],"functionName":{"name":"mstore","nativeSrc":"24696:6:101","nodeType":"YulIdentifier","src":"24696:6:101"},"nativeSrc":"24696:47:101","nodeType":"YulFunctionCall","src":"24696:47:101"},"nativeSrc":"24696:47:101","nodeType":"YulExpressionStatement","src":"24696:47:101"},{"nativeSrc":"24752:139:101","nodeType":"YulAssignment","src":"24752:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"24886:4:101","nodeType":"YulIdentifier","src":"24886:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"24760:124:101","nodeType":"YulIdentifier","src":"24760:124:101"},"nativeSrc":"24760:131:101","nodeType":"YulFunctionCall","src":"24760:131:101"},"variableNames":[{"name":"tail","nativeSrc":"24752:4:101","nodeType":"YulIdentifier","src":"24752:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24479:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24630:9:101","nodeType":"YulTypedName","src":"24630:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24645:4:101","nodeType":"YulTypedName","src":"24645:4:101","type":""}],"src":"24479:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    // struct BoundValidator.ValidateConfig\n    function abi_decode_t_struct$_ValidateConfig_$4448_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // asset\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // upperBoundRatio\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n        {\n            // lowerBoundRatio\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct BoundValidator.ValidateConfig[]\n    function abi_decode_available_length_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr(length))\n        let dst := array\n\n        mstore(array, length)\n        dst := add(array, 0x20)\n\n        let srcEnd := add(offset, mul(length, 0x60))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x60) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_struct$_ValidateConfig_$4448_memory_ptr(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // struct BoundValidator.ValidateConfig[]\n    function abi_decode_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_array$_t_struct$_ValidateConfig_$4448_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_ValidateConfig_$4448_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_ValidateConfig_$4448_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9(memPtr) {\n\n        mstore(add(memPtr, 0), \"validation config not exist\")\n\n    }\n\n    function abi_encode_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n        store_literal_in_memory_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d1d3bc0ff181cca91e9a6d034b34420adb010a470ad157bd0c01a59ebf97eed9_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3(memPtr) {\n\n        mstore(add(memPtr, 0), \"anchor price is not valid\")\n\n    }\n\n    function abi_encode_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n        store_literal_in_memory_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_6a8ed154f0d39999f8231a825f55ac494deca025e5c8416f19f47574cdf453d3_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid validate config length\")\n\n    }\n\n    function abi_encode_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n        store_literal_in_memory_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c03fba22eee7e51876c3a894e36f6708c74bd6a3a3af5084727bbc629c8922fc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function store_literal_in_memory_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937(memPtr) {\n\n        mstore(add(memPtr, 0), \"asset can't be zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n        store_literal_in_memory_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_6c5f0450c53b88a656123b18ee9b93f4f4d8e2b639d4e86c6da9204681d30937_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c(memPtr) {\n\n        mstore(add(memPtr, 0), \"bound must be positive\")\n\n    }\n\n    function abi_encode_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n        store_literal_in_memory_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_aea82b5f533f743db7c0237abc4bbca8691ea978546cc36241a11981442ae98c_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a(memPtr) {\n\n        mstore(add(memPtr, 0), \"upper bound must be higher than \")\n\n        mstore(add(memPtr, 32), \"lowner bound\")\n\n    }\n\n    function abi_encode_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n        store_literal_in_memory_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_821f6fe634e44130541ed0fdd532e8b2f7e5d974cb597d72c45b0a6318d07d4a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid acess control manager ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100b1575f3560e01c8063af9e6c5b1161006e578063af9e6c5b14610130578063b4a0bdf314610143578063bca9e1161461015c578063c4d66de8146101a3578063e30c3978146101b6578063f2fde38b146101c7575f80fd5b80630e32cb86146100b5578063715018a6146100ca57806379ba5097146100d25780638da5cb5b146100da57806397c7033e146100fd5780639c3576151461011d575b5f80fd5b6100c86100c3366004610856565b6101da565b005b6100c86101ee565b6100c8610201565b6033546001600160a01b03165b6040516100f4919061088b565b60405180910390f35b61011061010b3660046108aa565b61023f565b6040516100f491906108fe565b6100c861012b366004610a68565b6102ac565b6100c861013e366004610aa0565b610307565b6097546001600160a01b03166040516100f49190610aeb565b61019461016a366004610856565b60c96020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b6040516100f493929190610aff565b6100c86101b1366004610856565b61041e565b6065546001600160a01b03166100e7565b6100c86101d5366004610856565b6104e9565b6101e261055a565b6101eb81610584565b50565b6101f661055a565b6101ff5f6105fd565b565b60655433906001600160a01b031681146102365760405162461bcd60e51b815260040161022d90610b6f565b60405180910390fd5b6101eb816105fd565b6001600160a01b0383165f90815260c9602052604081206001015481036102785760405162461bcd60e51b815260040161022d90610bb5565b815f036102975760405162461bcd60e51b815260040161022d90610bf8565b6102a2848484610616565b90505b9392505050565b80515f8190036102ce5760405162461bcd60e51b815260040161022d90610c3b565b5f5b81811015610302576102fa8382815181106102ed576102ed610c4b565b6020026020010151610307565b6001016102d0565b505050565b610328604051806060016040528060218152602001610fd360219139610684565b80516001600160a01b031661034f5760405162461bcd60e51b815260040161022d90610c92565b6020810151158061036257506040810151155b1561037f5760405162461bcd60e51b815260040161022d90610cce565b80604001518160200151116103a65760405162461bcd60e51b815260040161022d90610d26565b80516001600160a01b039081165f90815260c960209081526040808320855181546001600160a01b03191695169485178155918501516001830181905581860151600290930183905590519193909290917f28e2d96bdcf74fe6203e40d159d27ec2e15230239c0aee4a0a914196c550e6d19190a450565b5f54610100900460ff161580801561043c57505f54600160ff909116105b806104555750303b15801561045557505f5460ff166001145b6104715760405162461bcd60e51b815260040161022d90610d80565b5f805460ff191660011790558015610492575f805461ff0019166101001790555b61049b8261071b565b80156104e5575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104dc90600190610da3565b60405180910390a15b5050565b6104f161055a565b606580546001600160a01b0383166001600160a01b031990911681179091556105226033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146101ff5760405162461bcd60e51b815260040161022d90610de2565b6001600160a01b0381166105aa5760405162461bcd60e51b815260040161022d90610e33565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906104dc9083908590610e43565b606580546001600160a01b03191690556101eb81610752565b5f821561067b575f8361063184670de0b6b3a7640000610e72565b61063b9190610ea5565b6001600160a01b0386165f90815260c9602052604090206001810154600290910154919250908183118015906106715750808310155b93505050506102a5565b505f9392505050565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab906106b69033908690600401610ef4565b602060405180830381865afa1580156106d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f59190610f27565b9050806104e557333083604051634a3fa29360e01b815260040161022d93929190610f45565b5f54610100900460ff166107415760405162461bcd60e51b815260040161022d90610fc2565b6107496107a3565b6101eb816107d1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166107c95760405162461bcd60e51b815260040161022d90610fc2565b6101ff6107f7565b5f54610100900460ff166101e25760405162461bcd60e51b815260040161022d90610fc2565b5f54610100900460ff1661081d5760405162461bcd60e51b815260040161022d90610fc2565b6101ff336105fd565b5f6001600160a01b0382165b92915050565b61084181610826565b81146101eb575f80fd5b803561083281610838565b5f60208284031215610869576108695f80fd5b5f610874848461084b565b949350505050565b61088581610826565b82525050565b60208101610832828461087c565b80610841565b803561083281610899565b5f805f606084860312156108bf576108bf5f80fd5b5f6108ca868661084b565b93505060206108db8682870161089f565b92505060406108ec8682870161089f565b9150509250925092565b801515610885565b6020810161083282846108f6565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff821117156109465761094661090c565b6040525050565b5f61095760405190565b90506109638282610920565b919050565b5f67ffffffffffffffff8211156109815761098161090c565b5060209081020190565b5f6060828403121561099e5761099e5f80fd5b6109a8606061094d565b90505f6109b5848461084b565b82525060206109c68484830161089f565b60208301525060406109da8482850161089f565b60408301525092915050565b5f6109f86109f384610968565b61094d565b83815290506020810160608402830185811115610a1657610a165f80fd5b835b81811015610a3c5780610a2b888261098b565b845250602090920191606001610a18565b5050509392505050565b5f82601f830112610a5857610a585f80fd5b81356108748482602086016109e6565b5f60208284031215610a7b57610a7b5f80fd5b813567ffffffffffffffff811115610a9457610a945f80fd5b61087484828501610a46565b5f60608284031215610ab357610ab35f80fd5b5f610874848461098b565b5f6001600160a01b038216610832565b5f61083282610abe565b5f61083282610ace565b61088581610ad8565b602081016108328284610ae2565b80610885565b60608101610b0d828661087c565b610b1a6020830185610af9565b6108746040830184610af9565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161083281610b27565b601b81525f602082017f76616c69646174696f6e20636f6e666967206e6f742065786973740000000000815291505b5060200190565b6020808252810161083281610b7f565b601981525f602082017f616e63686f72207072696365206973206e6f742076616c69640000000000000081529150610bae565b6020808252810161083281610bc5565b601e81525f602082017f696e76616c69642076616c696461746520636f6e666967206c656e677468000081529150610bae565b6020808252810161083281610c08565b634e487b7160e01b5f52603260045260245ffd5b601b81525f602082017f61737365742063616e2774206265207a65726f2061646472657373000000000081529150610bae565b6020808252810161083281610c5f565b601681525f6020820175626f756e64206d75737420626520706f73697469766560501b81529150610bae565b6020808252810161083281610ca2565b602c81525f602082017f757070657220626f756e64206d75737420626520686967686572207468616e2081526b1b1bdddb995c88189bdd5b9960a21b60208201529150610b68565b6020808252810161083281610cde565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610b68565b6020808252810161083281610d36565b5f60ff8216610832565b61088581610d90565b602081016108328284610d9a565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610bae565b6020808252810161083281610db1565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610b68565b6020808252810161083281610df2565b60408101610e51828561087c565b6102a5602083018461087c565b634e487b7160e01b5f52601160045260245ffd5b818102808215838204851417610e8a57610e8a610e5e565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82610eb357610eb3610e91565b500490565b8281835e505f910152565b5f610ecc825190565b808452602084019350610ee3818560208601610eb8565b601f01601f19169290920192915050565b60408101610f02828561087c565b81810360208301526102a28184610ec3565b801515610841565b805161083281610f14565b5f60208284031215610f3a57610f3a5f80fd5b5f6108748484610f1c565b60608101610f53828661087c565b610f60602083018561087c565b8181036040830152610f728184610ec3565b95945050505050565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610b68565b6020808252810161083281610f7b56fe73657456616c6964617465436f6e6669672856616c6964617465436f6e66696729a2646970667358221220dc81bdd07e19c717a5bb3e8e5a24b192f30fb93391e8177155ad4b9b1716c08164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAF9E6C5B GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xAF9E6C5B EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0xBCA9E116 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xCA JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x97C7033E EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0x9C357615 EQ PUSH2 0x11D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH2 0x1DA JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC8 PUSH2 0x1EE JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x201 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x23F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x8FE JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0xA68 JUMP JUMPDEST PUSH2 0x2AC JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x13E CALLDATASIZE PUSH1 0x4 PUSH2 0xAA0 JUMP JUMPDEST PUSH2 0x307 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x194 PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH2 0x41E JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE7 JUMP JUMPDEST PUSH2 0xC8 PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x856 JUMP JUMPDEST PUSH2 0x4E9 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1EB DUP2 PUSH2 0x584 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1F6 PUSH2 0x55A JUMP JUMPDEST PUSH2 0x1FF PUSH0 PUSH2 0x5FD JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1EB DUP2 PUSH2 0x5FD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 SUB PUSH2 0x278 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xBB5 JUMP JUMPDEST DUP2 PUSH0 SUB PUSH2 0x297 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xBF8 JUMP JUMPDEST PUSH2 0x2A2 DUP5 DUP5 DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH0 DUP2 SWAP1 SUB PUSH2 0x2CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xC3B JUMP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH2 0x2FA DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2ED JUMPI PUSH2 0x2ED PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x307 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2D0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x328 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFD3 PUSH1 0x21 SWAP2 CODECOPY PUSH2 0x684 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD ISZERO DUP1 PUSH2 0x362 JUMPI POP PUSH1 0x40 DUP2 ADD MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x37F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xCCE JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xD26 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP6 AND SWAP5 DUP6 OR DUP2 SSTORE SWAP2 DUP6 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE DUP2 DUP7 ADD MLOAD PUSH1 0x2 SWAP1 SWAP4 ADD DUP4 SWAP1 SSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH32 0x28E2D96BDCF74FE6203E40D159D27EC2E15230239C0AEE4A0A914196C550E6D1 SWAP2 SWAP1 LOG4 POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x43C JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x455 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xD80 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x492 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x49B DUP3 PUSH2 0x71B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x4DC SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xDA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x4F1 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x522 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xDE2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xE33 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x4DC SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0xE43 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x1EB DUP2 PUSH2 0x752 JUMP JUMPDEST PUSH0 DUP3 ISZERO PUSH2 0x67B JUMPI PUSH0 DUP4 PUSH2 0x631 DUP5 PUSH8 0xDE0B6B3A7640000 PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x63B SWAP2 SWAP1 PUSH2 0xEA5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 DUP2 DUP4 GT DUP1 ISZERO SWAP1 PUSH2 0x671 JUMPI POP DUP1 DUP4 LT ISZERO JUMPDEST SWAP4 POP POP POP POP PUSH2 0x2A5 JUMP JUMPDEST POP PUSH0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x6B6 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xEF4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6D1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F5 SWAP2 SWAP1 PUSH2 0xF27 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x4E5 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF45 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x741 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH2 0x749 PUSH2 0x7A3 JUMP JUMPDEST PUSH2 0x1EB DUP2 PUSH2 0x7D1 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x7F7 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x81D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D SWAP1 PUSH2 0xFC2 JUMP JUMPDEST PUSH2 0x1FF CALLER PUSH2 0x5FD JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x841 DUP2 PUSH2 0x826 JUMP JUMPDEST DUP2 EQ PUSH2 0x1EB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x832 DUP2 PUSH2 0x838 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x869 JUMPI PUSH2 0x869 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x874 DUP5 DUP5 PUSH2 0x84B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x885 DUP2 PUSH2 0x826 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0x87C JUMP JUMPDEST DUP1 PUSH2 0x841 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x832 DUP2 PUSH2 0x899 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8BF JUMPI PUSH2 0x8BF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8CA DUP7 DUP7 PUSH2 0x84B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8DB DUP7 DUP3 DUP8 ADD PUSH2 0x89F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8EC DUP7 DUP3 DUP8 ADD PUSH2 0x89F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x885 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0x8F6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x946 JUMPI PUSH2 0x946 PUSH2 0x90C JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x957 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x963 DUP3 DUP3 PUSH2 0x920 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x981 JUMPI PUSH2 0x981 PUSH2 0x90C JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99E JUMPI PUSH2 0x99E PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 PUSH1 0x60 PUSH2 0x94D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x9B5 DUP5 DUP5 PUSH2 0x84B JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x9C6 DUP5 DUP5 DUP4 ADD PUSH2 0x89F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x9DA DUP5 DUP3 DUP6 ADD PUSH2 0x89F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9F8 PUSH2 0x9F3 DUP5 PUSH2 0x968 JUMP JUMPDEST PUSH2 0x94D JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x60 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA3C JUMPI DUP1 PUSH2 0xA2B DUP9 DUP3 PUSH2 0x98B JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0xA18 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xA58 JUMPI PUSH2 0xA58 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x874 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x9E6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA7B JUMPI PUSH2 0xA7B PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA94 JUMPI PUSH2 0xA94 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x874 DUP5 DUP3 DUP6 ADD PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB3 JUMPI PUSH2 0xAB3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x874 DUP5 DUP5 PUSH2 0x98B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x832 JUMP JUMPDEST PUSH0 PUSH2 0x832 DUP3 PUSH2 0xABE JUMP JUMPDEST PUSH0 PUSH2 0x832 DUP3 PUSH2 0xACE JUMP JUMPDEST PUSH2 0x885 DUP2 PUSH2 0xAD8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0xAE2 JUMP JUMPDEST DUP1 PUSH2 0x885 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xB0D DUP3 DUP7 PUSH2 0x87C JUMP JUMPDEST PUSH2 0xB1A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xAF9 JUMP JUMPDEST PUSH2 0x874 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x76616C69646174696F6E20636F6E666967206E6F742065786973740000000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x616E63686F72207072696365206973206E6F742076616C696400000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xBC5 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C69642076616C696461746520636F6E666967206C656E6774680000 DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xC08 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x61737365742063616E2774206265207A65726F20616464726573730000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x16 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH22 0x626F756E64206D75737420626520706F736974697665 PUSH1 0x50 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xCA2 JUMP JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757070657220626F756E64206D75737420626520686967686572207468616E20 DUP2 MSTORE PUSH12 0x1B1BDDDB995C88189BDD5B99 PUSH1 0xA2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xCDE JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xD36 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x832 JUMP JUMPDEST PUSH2 0x885 DUP2 PUSH2 0xD90 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x832 DUP3 DUP5 PUSH2 0xD9A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xDB1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE51 DUP3 DUP6 PUSH2 0x87C JUMP JUMPDEST PUSH2 0x2A5 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x87C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xE8A JUMPI PUSH2 0xE8A PUSH2 0xE5E JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xEB3 JUMPI PUSH2 0xEB3 PUSH2 0xE91 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xECC DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xEE3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xF02 DUP3 DUP6 PUSH2 0x87C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2A2 DUP2 DUP5 PUSH2 0xEC3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x841 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x832 DUP2 PUSH2 0xF14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF3A JUMPI PUSH2 0xF3A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x874 DUP5 DUP5 PUSH2 0xF1C JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xF53 DUP3 DUP7 PUSH2 0x87C JUMP JUMPDEST PUSH2 0xF60 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x87C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xF72 DUP2 DUP5 PUSH2 0xEC3 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x832 DUP2 PUSH2 0xF7B JUMP INVALID PUSH20 0x657456616C6964617465436F6E6669672856616C PUSH10 0x64617465436F6E666967 0x29 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC DUP2 0xBD 0xD0 PUSH31 0x19C717A5BB3E8E5A24B192F30FB93391E8177155AD4B9B1716C08164736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"556:4896:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2102:147:15;;;;;;:::i;:::-;;:::i;:::-;;2085:101:4;;;:::i;2031:212:3:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;;;;;;:::i;:::-;;;;;;;;3880:408:50;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2222:281::-;;;;;;:::i;:::-;;:::i;2988:585::-;;;;;;:::i;:::-;;:::i;2345:125:15:-;2442:21;;-1:-1:-1;;;;;2442:21:15;2345:125;;;;;;:::i;1134:57:50:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1134:57:50;;;;;;;;;;;;;;;;:::i;1730:135::-;;;;;;:::i;:::-;;:::i;1144:99:3:-;1223:13;;-1:-1:-1;;;;;1223:13:3;1144:99;;1436:178;;;;;;:::i;:::-;;:::i;2102:147:15:-;1355:13:4;:11;:13::i;:::-;2195:47:15::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:3:-;1223:13;;965:10:8;;-1:-1:-1;;;;;1223:13:3;2130:24;;2122:78;;;;-1:-1:-1;;;2122:78:3;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;3880:408:50:-;-1:-1:-1;;;;;4065:22:50;;4045:4;4065:22;;;:15;:22;;;;;:38;;;:43;;4061:86;;4110:37;;-1:-1:-1;;;4110:37:50;;;;;;;:::i;4061:86::-;4161:11;4176:1;4161:16;4157:57;;4179:35;;-1:-1:-1;;;4179:35:50;;;;;;;:::i;4157:57::-;4231:50;4247:5;4254:13;4269:11;4231:15;:50::i;:::-;4224:57;;3880:408;;;;;;:::o;2222:281::-;2319:14;;2302;2347:11;;;2343:57;;2360:40;;-1:-1:-1;;;2360:40:50;;;;;;;:::i;2343:57::-;2415:9;2410:87;2430:6;2426:1;:10;2410:87;;;2457:29;2475:7;2483:1;2475:10;;;;;;;;:::i;:::-;;;;;;;2457:17;:29::i;:::-;2438:3;;2410:87;;;;2292:211;2222:281;:::o;2988:585::-;3062:56;;;;;;;;;;;;;;;;;;:19;:56::i;:::-;3133:12;;-1:-1:-1;;;;;3133:26:50;3129:69;;3161:37;;-1:-1:-1;;;3161:37:50;;;;;;;:::i;3129:69::-;3212:22;;;;:27;;:58;;-1:-1:-1;3243:22:50;;;;:27;3212:58;3208:96;;;3272:32;;-1:-1:-1;;;3272:32:50;;;;;;;:::i;3208:96::-;3344:6;:22;;;3318:6;:22;;;:48;3314:108;;3368:54;;-1:-1:-1;;;3368:54:50;;;;;;;:::i;3314:108::-;3448:12;;-1:-1:-1;;;;;3432:29:50;;;;;;;:15;:29;;;;;;;;:38;;;;-1:-1:-1;;;;;;3432:38:50;;;;;;;;;;;;-1:-1:-1;3432:38:50;;;;;;;;;;;;;;;;3485:81;;3432:38;;;;;;3485:81;;3432:29;3485:81;2988:585;:::o;1730:135::-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;1812:46:50::1;1836:21;1812:23;:46::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3647:99;3269:483;1730:135:50;:::o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1525::3::1;:24:::0;;-1:-1:-1;;;;;1525:24:3;::::1;-1:-1:-1::0;;;;;;1525:24:3;;::::1;::::0;::::1;::::0;;;1589:7:::1;1534:6:4::0;;-1:-1:-1;;;;;1534:6:4;;1462:85;1589:7:3::1;-1:-1:-1::0;;;;;1564:43:3::1;;;;;;;;;;;1436:178:::0;:::o;1620:130:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2641:425:15:-;-1:-1:-1;;;;;2733:44:15;;2725:94;;;;-1:-1:-1;;;2725:94:15;;;;;;;:::i;:::-;2871:21;;;-1:-1:-1;;;;;2903:70:15;;;-1:-1:-1;;;;;;2903:70:15;;;;;;2988:71;;2871:21;;;2988:71;;;;2871:21;;2951;;2988:71;:::i;1798:153:3:-;1887:13;1880:20;;-1:-1:-1;;;;;;1880:20:3;;;1910:34;1935:8;1910:24;:34::i;4564:607:50:-;4670:4;4690:18;;4686:457;;4809:19;4854:13;4832:18;:11;4846:4;4832:18;:::i;:::-;4831:36;;;;:::i;:::-;-1:-1:-1;;;;;4913:22:50;;4881:29;4913:22;;;:15;:22;;;;;:38;;;;4997;;;;;4809:58;;-1:-1:-1;4913:38:50;5056:36;;;;;;:76;;;5111:21;5096:11;:36;;5056:76;5049:83;;;;;;;4686:457;-1:-1:-1;5159:5:50;4564:607;;;;;:::o;3203:282:15:-;3304:21;;:60;;-1:-1:-1;;;3304:60:15;;3281:20;;-1:-1:-1;;;;;3304:21:15;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;-1:-1:-1;;;3418:50:15;;;;;;;;;;:::i;1419:194::-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1519:21:15::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;2687:187:4:-:0;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;889:100:3:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;956:26:3::1;:24;:26::i;1619:164:15:-:0;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;1125:111:4:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;466:96:101:-:0;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;556:4896:50;;;955:79:101;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:101:o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1431:2;1416:18;;1444:71;1420:9;1488:6;1444:71;:::i;1611:122::-;1702:5;1684:24;1528:77;1739:139;1810:20;;1839:33;1810:20;1839:33;:::i;1884:619::-;1961:6;1969;1977;2026:2;2014:9;2005:7;2001:23;1997:32;1994:119;;;2032:79;556:4896:50;;;2032:79:101;2152:1;2177:53;2222:7;2202:9;2177:53;:::i;:::-;2167:63;;2123:117;2279:2;2305:53;2350:7;2341:6;2330:9;2326:22;2305:53;:::i;:::-;2295:63;;2250:118;2407:2;2433:53;2478:7;2469:6;2458:9;2454:22;2433:53;:::i;:::-;2423:63;;2378:118;1884:619;;;;;:::o;2605:109::-;2579:13;;2572:21;2686;2509:90;2720:210;2845:2;2830:18;;2858:65;2834:9;2896:6;2858:65;:::i;3167:180::-;-1:-1:-1;;;3212:1:101;3205:88;3312:4;3309:1;3302:15;3336:4;3333:1;3326:15;3353:281;-1:-1:-1;;3151:2:101;3131:14;;3127:28;3428:6;3424:40;3566:6;3554:10;3551:22;3530:18;3518:10;3515:34;3512:62;3509:88;;;3577:18;;:::i;:::-;3613:2;3606:22;-1:-1:-1;;3353:281:101:o;3640:129::-;3674:6;3701:20;73:2;67:9;;7:75;3701:20;3691:30;;3730:33;3758:4;3750:6;3730:33;:::i;:::-;3640:129;;;:::o;3775:343::-;3884:4;3974:18;3966:6;3963:30;3960:56;;;3996:18;;:::i;:::-;-1:-1:-1;4046:4:101;4034:17;;;4096:15;;3775:343::o;4537:765::-;4618:5;4662:4;4650:9;4645:3;4641:19;4637:30;4634:117;;;4670:79;556:4896:50;;;4670:79:101;4769:21;4785:4;4769:21;:::i;:::-;4760:30;-1:-1:-1;4850:1:101;4890:49;4935:3;4915:9;4890:49;:::i;:::-;4865:75;;-1:-1:-1;5021:2:101;5062:49;5107:3;5083:22;;;5062:49;:::i;:::-;5055:4;5048:5;5044:16;5037:75;4961:162;5193:2;5234:49;5279:3;5270:6;5259:9;5255:22;5234:49;:::i;:::-;5227:4;5220:5;5216:16;5209:75;5133:162;4537:765;;;;:::o;5354:806::-;5482:5;5507:113;5523:96;5612:6;5523:96;:::i;:::-;5507:113;:::i;:::-;5655:21;;;5498:122;-1:-1:-1;5703:4:101;5692:16;;5756:4;5744:17;;5732:30;;5774:15;;;5771:122;;;5804:79;556:4896:50;;;5804:79:101;5919:6;5902:252;5936:6;5931:3;5928:15;5902:252;;;6011:3;6040:69;6105:3;6093:10;6040:69;:::i;:::-;6028:82;;-1:-1:-1;6139:4:101;6130:14;;;;5962:4;5953:14;5902:252;;;5906:21;5488:672;;5354:806;;;;;:::o;6212:434::-;6315:5;6364:3;6357:4;6349:6;6345:17;6341:27;6331:122;;6372:79;556:4896:50;;;6372:79:101;6489:6;6476:20;6514:126;6636:3;6628:6;6621:4;6613:6;6609:17;6514:126;:::i;6652:603::-;6768:6;6817:2;6805:9;6796:7;6792:23;6788:32;6785:119;;;6823:79;556:4896:50;;;6823:79:101;6943:31;;7001:18;6990:30;;6987:117;;;7023:79;556:4896:50;;;7023:79:101;7128:110;7230:7;7221:6;7210:9;7206:22;7128:110;:::i;7261:393::-;7352:6;7401:2;7389:9;7380:7;7376:23;7372:32;7369:119;;;7407:79;556:4896:50;;;7407:79:101;7527:1;7552:85;7629:7;7609:9;7552:85;:::i;7726:142::-;7776:9;-1:-1:-1;;;;;400:54:101;;7809:53;334:126;7874;7924:9;7957:37;7988:5;7957:37;:::i;8006:158::-;8088:9;8121:37;8152:5;8121:37;:::i;8170:195::-;8289:69;8352:5;8289:69;:::i;8371:286::-;8534:2;8519:18;;8547:103;8523:9;8623:6;8547:103;:::i;8663:118::-;8768:5;8750:24;1528:77;8787:442;8974:2;8959:18;;8987:71;8963:9;9031:6;8987:71;:::i;:::-;9068:72;9136:2;9125:9;9121:18;9112:6;9068:72;:::i;:::-;9150;9218:2;9207:9;9203:18;9194:6;9150:72;:::i;9644:366::-;9871:2;9341:19;;9786:3;9393:4;9384:14;;9550:34;9527:58;;-1:-1:-1;;;9614:2:101;9602:15;;9595:36;9800:74;-1:-1:-1;9883:93:101;-1:-1:-1;10001:2:101;9992:12;;9644:366::o;10016:419::-;10220:2;10233:47;;;10205:18;;10297:131;10205:18;10297:131;:::i;10624:366::-;10851:2;9341:19;;10766:3;9393:4;9384:14;;10581:29;10558:53;;10780:74;-1:-1:-1;10863:93:101;-1:-1:-1;10981:2:101;10972:12;;10624:366::o;10996:419::-;11200:2;11213:47;;;11185:18;;11277:131;11185:18;11277:131;:::i;11602:366::-;11829:2;9341:19;;11744:3;9393:4;9384:14;;11561:27;11538:51;;11758:74;-1:-1:-1;11841:93:101;11421:175;11974:419;12178:2;12191:47;;;12163:18;;12255:131;12163:18;12255:131;:::i;12585:366::-;12812:2;9341:19;;12727:3;9393:4;9384:14;;12539:32;12516:56;;12741:74;-1:-1:-1;12824:93:101;12399:180;12957:419;13161:2;13174:47;;;13146:18;;13238:131;13146:18;13238:131;:::i;13382:180::-;-1:-1:-1;;;13427:1:101;13420:88;13527:4;13524:1;13517:15;13551:4;13548:1;13541:15;13751:366;13978:2;9341:19;;13893:3;9393:4;9384:14;;13708:29;13685:53;;13907:74;-1:-1:-1;13990:93:101;13568:177;14123:419;14327:2;14340:47;;;14312:18;;14404:131;14312:18;14404:131;:::i;14726:366::-;14953:2;9341:19;;14868:3;9393:4;9384:14;;-1:-1:-1;;;14665:48:101;;14882:74;-1:-1:-1;14965:93:101;14548:172;15098:419;15302:2;15315:47;;;15287:18;;15379:131;15287:18;15379:131;:::i;15760:366::-;15987:2;9341:19;;15902:3;9393:4;9384:14;;15663:34;15640:58;;-1:-1:-1;;;15727:2:101;15715:15;;15708:39;15916:74;-1:-1:-1;15999:93:101;15523:231;16132:419;16336:2;16349:47;;;16321:18;;16413:131;16321:18;16413:131;:::i;16796:366::-;17023:2;9341:19;;16938:3;9393:4;9384:14;;16697:34;16674:58;;-1:-1:-1;;;16761:2:101;16749:15;;16742:41;16952:74;-1:-1:-1;17035:93:101;16557:233;17168:419;17372:2;17385:47;;;17357:18;;17449:131;17357:18;17449:131;:::i;17776:154::-;17832:9;17759:4;17748:16;;17865:59;17684:86;17936:143;18029:43;18066:5;18029:43;:::i;18085:234::-;18222:2;18207:18;;18235:77;18211:9;18285:6;18235:77;:::i;18513:366::-;18740:2;9341:19;;;18465:34;9384:14;;18442:58;;;18655:3;18752:93;18325:182;18885:419;19089:2;19102:47;;;19074:18;;19166:131;19074:18;19166:131;:::i;19540:366::-;19767:2;9341:19;;19682:3;9393:4;9384:14;;19450:34;19427:58;;-1:-1:-1;;;19514:2:101;19502:15;;19495:32;19696:74;-1:-1:-1;19779:93:101;19310:224;19912:419;20116:2;20129:47;;;20101:18;;20193:131;20101:18;20193:131;:::i;20337:332::-;20496:2;20481:18;;20509:71;20485:9;20553:6;20509:71;:::i;:::-;20590:72;20658:2;20647:9;20643:18;20634:6;20590:72;:::i;20675:180::-;-1:-1:-1;;;20720:1:101;20713:88;20820:4;20817:1;20810:15;20844:4;20841:1;20834:15;20861:410;21006:9;;;;21168;;21201:15;;;21195:22;;21148:83;21125:139;;21244:18;;:::i;:::-;20909:362;20861:410;;;;:::o;21277:180::-;-1:-1:-1;;;21322:1:101;21315:88;21422:4;21419:1;21412:15;21446:4;21443:1;21436:15;21463:185;21503:1;21593;21583:35;;21598:18;;:::i;:::-;-1:-1:-1;21633:9:101;;21463:185::o;21759:139::-;21848:6;21843:3;21838;21832:23;-1:-1:-1;21889:1:101;21871:16;;21864:27;21759:139::o;21904:377::-;21992:3;22020:39;22053:5;21734:12;;21654:99;22020:39;9341:19;;;9393:4;9384:14;;22068:78;;22155:65;22213:6;22208:3;22201:4;22194:5;22190:16;22155:65;:::i;:::-;3151:2;3131:14;-1:-1:-1;;3127:28:101;22236:39;;;;;;-1:-1:-1;;21904:377:101:o;22287:423::-;22466:2;22451:18;;22479:71;22455:9;22523:6;22479:71;:::i;:::-;22597:9;22591:4;22587:20;22582:2;22571:9;22567:18;22560:48;22625:78;22698:4;22689:6;22625:78;:::i;22716:116::-;2579:13;;2572:21;22786;2509:90;22838:137;22917:13;;22939:30;22917:13;22939:30;:::i;22981:345::-;23048:6;23097:2;23085:9;23076:7;23072:23;23068:32;23065:119;;;23103:79;556:4896:50;;;23103:79:101;23223:1;23248:61;23301:7;23281:9;23248:61;:::i;23332:533::-;23539:2;23524:18;;23552:71;23528:9;23596:6;23552:71;:::i;:::-;23633:72;23701:2;23690:9;23686:18;23677:6;23633:72;:::i;:::-;23752:9;23746:4;23742:20;23737:2;23726:9;23722:18;23715:48;23780:78;23853:4;23844:6;23780:78;:::i;:::-;23772:86;23332:533;-1:-1:-1;;;;;23332:533:101:o;24107:366::-;24334:2;9341:19;;24249:3;9393:4;9384:14;;24011:34;23988:58;;-1:-1:-1;;;24075:2:101;24063:15;;24056:38;24263:74;-1:-1:-1;24346:93:101;23871:230;24479:419;24683:2;24696:47;;;24668:18;;24760:131;24668:18;24760:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"827400","executionCost":"30506","totalCost":"857906"},"external":{"acceptOwnership()":"infinite","accessControlManager()":"infinite","initialize(address)":"infinite","owner()":"infinite","pendingOwner()":"infinite","renounceOwnership()":"infinite","setAccessControlManager(address)":"infinite","setValidateConfig((address,uint256,uint256))":"infinite","setValidateConfigs((address,uint256,uint256)[])":"infinite","transferOwnership(address)":"infinite","validateConfigs(address)":"infinite","validatePriceWithAnchorPrice(address,uint256,uint256)":"infinite"},"internal":{"_isWithinAnchor(address,uint256,uint256)":"4598"}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","initialize(address)":"c4d66de8","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setValidateConfig((address,uint256,uint256))":"af9e6c5b","setValidateConfigs((address,uint256,uint256)[])":"9c357615","transferOwnership(address)":"f2fde38b","validateConfigs(address)":"bca9e116","validatePriceWithAnchorPrice(address,uint256,uint256)":"97c7033e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"upperBound\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"lowerBound\",\"type\":\"uint256\"}],\"name\":\"ValidateConfigAdded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"upperBoundRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lowerBoundRatio\",\"type\":\"uint256\"}],\"internalType\":\"struct BoundValidator.ValidateConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setValidateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"upperBoundRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lowerBoundRatio\",\"type\":\"uint256\"}],\"internalType\":\"struct BoundValidator.ValidateConfig[]\",\"name\":\"configs\",\"type\":\"tuple[]\"}],\"name\":\"setValidateConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateConfigs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"upperBoundRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lowerBoundRatio\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reportedPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"anchorPrice\",\"type\":\"uint256\"}],\"name\":\"validatePriceWithAnchorPrice\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"Address of the access control manager contract\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setValidateConfig((address,uint256,uint256))\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"Null address error is thrown if asset address is nullRange error thrown if bound ratio is not positiveRange error thrown if lower bound is greater than or equal to upper bound\",\"custom:event\":\"Emits ValidateConfigAdded when a validation config is successfully set\",\"params\":{\"config\":\"Validation config struct\"}},\"setValidateConfigs((address,uint256,uint256)[])\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"Zero length error is thrown if length of the config array is 0\",\"custom:event\":\"Emits ValidateConfigAdded for each validation config that is successfully set\",\"params\":{\"configs\":\"Array of validation configs\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"validatePriceWithAnchorPrice(address,uint256,uint256)\":{\"custom:error\":\"Missing error thrown if asset config is not setPrice error thrown if anchor price is not valid\",\"params\":{\"asset\":\"asset address\",\"reportedPrice\":\"The price to be tested\"}}},\"title\":\"BoundValidator\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"ValidateConfigAdded(address,uint256,uint256)\":{\"notice\":\"Emit this event when new validation configs are added\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract. Sets immutable variables.\"},\"initialize(address)\":{\"notice\":\"Initializes the owner of the contract\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setValidateConfig((address,uint256,uint256))\":{\"notice\":\"Add a single validation config\"},\"setValidateConfigs((address,uint256,uint256)[])\":{\"notice\":\"Add multiple validation configs at the same time\"},\"validateConfigs(address)\":{\"notice\":\"validation configs by asset\"},\"validatePriceWithAnchorPrice(address,uint256,uint256)\":{\"notice\":\"Test reported asset price against anchor price\"}},\"notice\":\"The BoundValidator contract is used to validate prices fetched from two different sources. Each asset has an upper and lower bound ratio set in the config. In order for a price to be valid it must fall within this range of the validator price.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/BoundValidator.sol\":\"BoundValidator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/VBep20Interface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\ninterface VBep20Interface is IERC20Metadata {\\n    /**\\n     * @notice Underlying asset for this VToken\\n     */\\n    function underlying() external view returns (address);\\n}\\n\",\"keccak256\":\"0x6e71c3df86501df5c0e4bace1333c0c91f9f9cced252a54fb99eeda219b789d5\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/BoundValidator.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../interfaces/VBep20Interface.sol\\\";\\nimport \\\"../interfaces/OracleInterface.sol\\\";\\nimport \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\\\";\\n\\n/**\\n * @title BoundValidator\\n * @author Venus\\n * @notice The BoundValidator contract is used to validate prices fetched from two different sources.\\n * Each asset has an upper and lower bound ratio set in the config. In order for a price to be valid\\n * it must fall within this range of the validator price.\\n */\\ncontract BoundValidator is AccessControlledV8, BoundValidatorInterface {\\n    struct ValidateConfig {\\n        /// @notice asset address\\n        address asset;\\n        /// @notice Upper bound of deviation between reported price and anchor price,\\n        /// beyond which the reported price will be invalidated\\n        uint256 upperBoundRatio;\\n        /// @notice Lower bound of deviation between reported price and anchor price,\\n        /// below which the reported price will be invalidated\\n        uint256 lowerBoundRatio;\\n    }\\n\\n    /// @notice validation configs by asset\\n    mapping(address => ValidateConfig) public validateConfigs;\\n\\n    /// @notice Emit this event when new validation configs are added\\n    event ValidateConfigAdded(address indexed asset, uint256 indexed upperBound, uint256 indexed lowerBound);\\n\\n    /// @notice Constructor for the implementation contract. Sets immutable variables.\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor() {\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the owner of the contract\\n     * @param accessControlManager_ Address of the access control manager contract\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Add multiple validation configs at the same time\\n     * @param configs Array of validation configs\\n     * @custom:access Only Governance\\n     * @custom:error Zero length error is thrown if length of the config array is 0\\n     * @custom:event Emits ValidateConfigAdded for each validation config that is successfully set\\n     */\\n    function setValidateConfigs(ValidateConfig[] memory configs) external {\\n        uint256 length = configs.length;\\n        if (length == 0) revert(\\\"invalid validate config length\\\");\\n        for (uint256 i; i < length; ++i) {\\n            setValidateConfig(configs[i]);\\n        }\\n    }\\n\\n    /**\\n     * @notice Add a single validation config\\n     * @param config Validation config struct\\n     * @custom:access Only Governance\\n     * @custom:error Null address error is thrown if asset address is null\\n     * @custom:error Range error thrown if bound ratio is not positive\\n     * @custom:error Range error thrown if lower bound is greater than or equal to upper bound\\n     * @custom:event Emits ValidateConfigAdded when a validation config is successfully set\\n     */\\n    function setValidateConfig(ValidateConfig memory config) public {\\n        _checkAccessAllowed(\\\"setValidateConfig(ValidateConfig)\\\");\\n\\n        if (config.asset == address(0)) revert(\\\"asset can't be zero address\\\");\\n        if (config.upperBoundRatio == 0 || config.lowerBoundRatio == 0) revert(\\\"bound must be positive\\\");\\n        if (config.upperBoundRatio <= config.lowerBoundRatio) revert(\\\"upper bound must be higher than lowner bound\\\");\\n        validateConfigs[config.asset] = config;\\n        emit ValidateConfigAdded(config.asset, config.upperBoundRatio, config.lowerBoundRatio);\\n    }\\n\\n    /**\\n     * @notice Test reported asset price against anchor price\\n     * @param asset asset address\\n     * @param reportedPrice The price to be tested\\n     * @custom:error Missing error thrown if asset config is not set\\n     * @custom:error Price error thrown if anchor price is not valid\\n     */\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reportedPrice,\\n        uint256 anchorPrice\\n    ) public view virtual override returns (bool) {\\n        if (validateConfigs[asset].upperBoundRatio == 0) revert(\\\"validation config not exist\\\");\\n        if (anchorPrice == 0) revert(\\\"anchor price is not valid\\\");\\n        return _isWithinAnchor(asset, reportedPrice, anchorPrice);\\n    }\\n\\n    /**\\n     * @notice Test whether the reported price is within the valid bounds\\n     * @param asset Asset address\\n     * @param reportedPrice The price to be tested\\n     * @param anchorPrice The reported price must be within the the valid bounds of this price\\n     */\\n    function _isWithinAnchor(address asset, uint256 reportedPrice, uint256 anchorPrice) private view returns (bool) {\\n        if (reportedPrice != 0) {\\n            // we need to multiply anchorPrice by 1e18 to make the ratio 18 decimals\\n            uint256 anchorRatio = (anchorPrice * 1e18) / reportedPrice;\\n            uint256 upperBoundAnchorRatio = validateConfigs[asset].upperBoundRatio;\\n            uint256 lowerBoundAnchorRatio = validateConfigs[asset].lowerBoundRatio;\\n            return anchorRatio <= upperBoundAnchorRatio && anchorRatio >= lowerBoundAnchorRatio;\\n        }\\n        return false;\\n    }\\n\\n    // BoundValidator is to get inherited, so it's a good practice to add some storage gaps like\\n    // OpenZepplin proposed in their contracts: https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n    // solhint-disable-next-line\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xa3e304eca85c87de21b59df54527bc6e05dbf4e00c0318e2836c61d15e879c43\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1940,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)2125"},{"astId":1945,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":4454,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"validateConfigs","offset":0,"slot":"201","type":"t_mapping(t_address,t_struct(ValidateConfig)4448_storage)"},{"astId":4681,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"__gap","offset":0,"slot":"202","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)2125":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_address,t_struct(ValidateConfig)4448_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct BoundValidator.ValidateConfig)","numberOfBytes":"32","value":"t_struct(ValidateConfig)4448_storage"},"t_struct(ValidateConfig)4448_storage":{"encoding":"inplace","label":"struct BoundValidator.ValidateConfig","members":[{"astId":4441,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"asset","offset":0,"slot":"0","type":"t_address"},{"astId":4444,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"upperBoundRatio","offset":0,"slot":"1","type":"t_uint256"},{"astId":4447,"contract":"contracts/oracles/BoundValidator.sol:BoundValidator","label":"lowerBoundRatio","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"ValidateConfigAdded(address,uint256,uint256)":{"notice":"Emit this event when new validation configs are added"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"constructor":{"notice":"Constructor for the implementation contract. Sets immutable variables."},"initialize(address)":{"notice":"Initializes the owner of the contract"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setValidateConfig((address,uint256,uint256))":{"notice":"Add a single validation config"},"setValidateConfigs((address,uint256,uint256)[])":{"notice":"Add multiple validation configs at the same time"},"validateConfigs(address)":{"notice":"validation configs by asset"},"validatePriceWithAnchorPrice(address,uint256,uint256)":{"notice":"Test reported asset price against anchor price"}},"notice":"The BoundValidator contract is used to validate prices fetched from two different sources. Each asset has an upper and lower bound ratio set in the config. In order for a price to be valid it must fall within this range of the validator price.","version":1}}},"contracts/oracles/ChainlinkOracle.sol":{"ChainlinkOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousPriceMantissa","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPriceMantissa","type":"uint256"}],"name":"PricePosted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"feed","type":"address"},{"indexed":false,"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"name":"TokenConfigAdded","type":"event"},{"inputs":[],"name":"NATIVE_TOKEN_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"prices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setDirectPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"internalType":"struct ChainlinkOracle.TokenConfig","name":"tokenConfig","type":"tuple"}],"name":"setTokenConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"internalType":"struct ChainlinkOracle.TokenConfig[]","name":"tokenConfigs_","type":"tuple[]"}],"name":"setTokenConfigs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenConfigs","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getPrice(address)":{"params":{"asset":"Address of the asset"},"returns":{"_0":"Price in USD from Chainlink or a manually set price for the asset"}},"initialize(address)":{"params":{"accessControlManager_":"Address of the access control manager contract"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setDirectPrice(address,uint256)":{"custom:access":"Only Governance","custom:event":"Emits PricePosted event on successfully setup of asset price","params":{"asset":"Asset address","price":"Asset price in 18 decimals"}},"setTokenConfig((address,address,uint256))":{"custom:access":"Only Governance","custom:error":"NotNullAddress error is thrown if asset address is nullNotNullAddress error is thrown if token feed address is nullRange error is thrown if maxStale period of token is not greater than zero","custom:event":"Emits TokenConfigAdded event on successfully setting of the token config","params":{"tokenConfig":"Token config struct"}},"setTokenConfigs((address,address,uint256)[])":{"custom:access":"Only Governance","custom:error":"Zero length error thrown, if length of the array in parameter is 0","params":{"tokenConfigs_":"config array"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"title":"ChainlinkOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_4761":{"entryPoint":null,"id":4761,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_492":{"entryPoint":29,"id":492,"parameterSlots":0,"returnSlots":0},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":161,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":242,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1638:101","nodeType":"YulBlock","src":"0:1638:101","statements":[{"body":{"nativeSrc":"103:73:101","nodeType":"YulBlock","src":"103:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"120:3:101","nodeType":"YulIdentifier","src":"120:3:101"},{"name":"length","nativeSrc":"125:6:101","nodeType":"YulIdentifier","src":"125:6:101"}],"functionName":{"name":"mstore","nativeSrc":"113:6:101","nodeType":"YulIdentifier","src":"113:6:101"},"nativeSrc":"113:19:101","nodeType":"YulFunctionCall","src":"113:19:101"},"nativeSrc":"113:19:101","nodeType":"YulExpressionStatement","src":"113:19:101"},{"nativeSrc":"141:29:101","nodeType":"YulAssignment","src":"141:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"160:3:101","nodeType":"YulIdentifier","src":"160:3:101"},{"kind":"number","nativeSrc":"165:4:101","nodeType":"YulLiteral","src":"165:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"156:3:101","nodeType":"YulIdentifier","src":"156:3:101"},"nativeSrc":"156:14:101","nodeType":"YulFunctionCall","src":"156:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"141:11:101","nodeType":"YulIdentifier","src":"141:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"75:3:101","nodeType":"YulTypedName","src":"75:3:101","type":""},{"name":"length","nativeSrc":"80:6:101","nodeType":"YulTypedName","src":"80:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"91:11:101","nodeType":"YulTypedName","src":"91:11:101","type":""}],"src":"7:169:101"},{"body":{"nativeSrc":"288:120:101","nodeType":"YulBlock","src":"288:120:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},{"kind":"number","nativeSrc":"318:1:101","nodeType":"YulLiteral","src":"318:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"306:3:101","nodeType":"YulIdentifier","src":"306:3:101"},"nativeSrc":"306:14:101","nodeType":"YulFunctionCall","src":"306:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"322:34:101","nodeType":"YulLiteral","src":"322:34:101","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"299:6:101","nodeType":"YulIdentifier","src":"299:6:101"},"nativeSrc":"299:58:101","nodeType":"YulFunctionCall","src":"299:58:101"},"nativeSrc":"299:58:101","nodeType":"YulExpressionStatement","src":"299:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"378:6:101","nodeType":"YulIdentifier","src":"378:6:101"},{"kind":"number","nativeSrc":"386:2:101","nodeType":"YulLiteral","src":"386:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"374:3:101","nodeType":"YulIdentifier","src":"374:3:101"},"nativeSrc":"374:15:101","nodeType":"YulFunctionCall","src":"374:15:101"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"391:9:101","nodeType":"YulLiteral","src":"391:9:101","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"367:6:101","nodeType":"YulIdentifier","src":"367:6:101"},"nativeSrc":"367:34:101","nodeType":"YulFunctionCall","src":"367:34:101"},"nativeSrc":"367:34:101","nodeType":"YulExpressionStatement","src":"367:34:101"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"182:226:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"280:6:101","nodeType":"YulTypedName","src":"280:6:101","type":""}],"src":"182:226:101"},{"body":{"nativeSrc":"560:220:101","nodeType":"YulBlock","src":"560:220:101","statements":[{"nativeSrc":"570:74:101","nodeType":"YulAssignment","src":"570:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"636:3:101","nodeType":"YulIdentifier","src":"636:3:101"},{"kind":"number","nativeSrc":"641:2:101","nodeType":"YulLiteral","src":"641:2:101","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"577:58:101","nodeType":"YulIdentifier","src":"577:58:101"},"nativeSrc":"577:67:101","nodeType":"YulFunctionCall","src":"577:67:101"},"variableNames":[{"name":"pos","nativeSrc":"570:3:101","nodeType":"YulIdentifier","src":"570:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"742:3:101","nodeType":"YulIdentifier","src":"742:3:101"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"653:88:101","nodeType":"YulIdentifier","src":"653:88:101"},"nativeSrc":"653:93:101","nodeType":"YulFunctionCall","src":"653:93:101"},"nativeSrc":"653:93:101","nodeType":"YulExpressionStatement","src":"653:93:101"},{"nativeSrc":"755:19:101","nodeType":"YulAssignment","src":"755:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"766:3:101","nodeType":"YulIdentifier","src":"766:3:101"},{"kind":"number","nativeSrc":"771:2:101","nodeType":"YulLiteral","src":"771:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"762:3:101","nodeType":"YulIdentifier","src":"762:3:101"},"nativeSrc":"762:12:101","nodeType":"YulFunctionCall","src":"762:12:101"},"variableNames":[{"name":"end","nativeSrc":"755:3:101","nodeType":"YulIdentifier","src":"755:3:101"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"414:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"548:3:101","nodeType":"YulTypedName","src":"548:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"556:3:101","nodeType":"YulTypedName","src":"556:3:101","type":""}],"src":"414:366:101"},{"body":{"nativeSrc":"957:248:101","nodeType":"YulBlock","src":"957:248:101","statements":[{"nativeSrc":"967:26:101","nodeType":"YulAssignment","src":"967:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"979:9:101","nodeType":"YulIdentifier","src":"979:9:101"},{"kind":"number","nativeSrc":"990:2:101","nodeType":"YulLiteral","src":"990:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"975:3:101","nodeType":"YulIdentifier","src":"975:3:101"},"nativeSrc":"975:18:101","nodeType":"YulFunctionCall","src":"975:18:101"},"variableNames":[{"name":"tail","nativeSrc":"967:4:101","nodeType":"YulIdentifier","src":"967:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1014:9:101","nodeType":"YulIdentifier","src":"1014:9:101"},{"kind":"number","nativeSrc":"1025:1:101","nodeType":"YulLiteral","src":"1025:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1010:3:101","nodeType":"YulIdentifier","src":"1010:3:101"},"nativeSrc":"1010:17:101","nodeType":"YulFunctionCall","src":"1010:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1033:4:101","nodeType":"YulIdentifier","src":"1033:4:101"},{"name":"headStart","nativeSrc":"1039:9:101","nodeType":"YulIdentifier","src":"1039:9:101"}],"functionName":{"name":"sub","nativeSrc":"1029:3:101","nodeType":"YulIdentifier","src":"1029:3:101"},"nativeSrc":"1029:20:101","nodeType":"YulFunctionCall","src":"1029:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1003:6:101","nodeType":"YulIdentifier","src":"1003:6:101"},"nativeSrc":"1003:47:101","nodeType":"YulFunctionCall","src":"1003:47:101"},"nativeSrc":"1003:47:101","nodeType":"YulExpressionStatement","src":"1003:47:101"},{"nativeSrc":"1059:139:101","nodeType":"YulAssignment","src":"1059:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"1193:4:101","nodeType":"YulIdentifier","src":"1193:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"1067:124:101","nodeType":"YulIdentifier","src":"1067:124:101"},"nativeSrc":"1067:131:101","nodeType":"YulFunctionCall","src":"1067:131:101"},"variableNames":[{"name":"tail","nativeSrc":"1059:4:101","nodeType":"YulIdentifier","src":"1059:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"786:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulTypedName","src":"937:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"952:4:101","nodeType":"YulTypedName","src":"952:4:101","type":""}],"src":"786:419:101"},{"body":{"nativeSrc":"1254:43:101","nodeType":"YulBlock","src":"1254:43:101","statements":[{"nativeSrc":"1264:27:101","nodeType":"YulAssignment","src":"1264:27:101","value":{"arguments":[{"name":"value","nativeSrc":"1279:5:101","nodeType":"YulIdentifier","src":"1279:5:101"},{"kind":"number","nativeSrc":"1286:4:101","nodeType":"YulLiteral","src":"1286:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1275:3:101","nodeType":"YulIdentifier","src":"1275:3:101"},"nativeSrc":"1275:16:101","nodeType":"YulFunctionCall","src":"1275:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1264:7:101","nodeType":"YulIdentifier","src":"1264:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"1211:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1236:5:101","nodeType":"YulTypedName","src":"1236:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1246:7:101","nodeType":"YulTypedName","src":"1246:7:101","type":""}],"src":"1211:86:101"},{"body":{"nativeSrc":"1364:51:101","nodeType":"YulBlock","src":"1364:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1381:3:101","nodeType":"YulIdentifier","src":"1381:3:101"},{"arguments":[{"name":"value","nativeSrc":"1402:5:101","nodeType":"YulIdentifier","src":"1402:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"1386:15:101","nodeType":"YulIdentifier","src":"1386:15:101"},"nativeSrc":"1386:22:101","nodeType":"YulFunctionCall","src":"1386:22:101"}],"functionName":{"name":"mstore","nativeSrc":"1374:6:101","nodeType":"YulIdentifier","src":"1374:6:101"},"nativeSrc":"1374:35:101","nodeType":"YulFunctionCall","src":"1374:35:101"},"nativeSrc":"1374:35:101","nodeType":"YulExpressionStatement","src":"1374:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"1303:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1352:5:101","nodeType":"YulTypedName","src":"1352:5:101","type":""},{"name":"pos","nativeSrc":"1359:3:101","nodeType":"YulTypedName","src":"1359:3:101","type":""}],"src":"1303:112:101"},{"body":{"nativeSrc":"1515:120:101","nodeType":"YulBlock","src":"1515:120:101","statements":[{"nativeSrc":"1525:26:101","nodeType":"YulAssignment","src":"1525:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1537:9:101","nodeType":"YulIdentifier","src":"1537:9:101"},{"kind":"number","nativeSrc":"1548:2:101","nodeType":"YulLiteral","src":"1548:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1533:3:101","nodeType":"YulIdentifier","src":"1533:3:101"},"nativeSrc":"1533:18:101","nodeType":"YulFunctionCall","src":"1533:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1525:4:101","nodeType":"YulIdentifier","src":"1525:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1601:6:101","nodeType":"YulIdentifier","src":"1601:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1614:9:101","nodeType":"YulIdentifier","src":"1614:9:101"},{"kind":"number","nativeSrc":"1625:1:101","nodeType":"YulLiteral","src":"1625:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1610:3:101","nodeType":"YulIdentifier","src":"1610:3:101"},"nativeSrc":"1610:17:101","nodeType":"YulFunctionCall","src":"1610:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"1561:39:101","nodeType":"YulIdentifier","src":"1561:39:101"},"nativeSrc":"1561:67:101","nodeType":"YulFunctionCall","src":"1561:67:101"},"nativeSrc":"1561:67:101","nodeType":"YulExpressionStatement","src":"1561:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1421:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1487:9:101","nodeType":"YulTypedName","src":"1487:9:101","type":""},{"name":"value0","nativeSrc":"1499:6:101","nodeType":"YulTypedName","src":"1499:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1510:4:101","nodeType":"YulTypedName","src":"1510:4:101","type":""}],"src":"1421:214:101"}]},"contents":"{\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001861001d565b610101565b5f54610100900460ff161561004d5760405162461bcd60e51b8152600401610044906100a1565b60405180910390fd5b5f5460ff9081161461009f575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891610096916100f2565b60405180910390a15b565b602080825281016100ec81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff82168152602081016100ec565b6115618061010e5f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c806379ba509711610093578063c4d66de811610063578063c4d66de814610213578063cfed246b14610226578063e30c397814610245578063f2fde38b14610256575f80fd5b806379ba5097146101bd5780638da5cb5b146101c5578063a9534f8a146101df578063b4a0bdf3146101fa575f80fd5b80631b69dc5f116100ce5780631b69dc5f1461012f578063392787d21461018257806341976e0914610195578063715018a6146101b5575f80fd5b80630431710e146100f457806309a8acb0146101095780630e32cb861461011c575b5f80fd5b610107610102366004610d5a565b610269565b005b610107610117366004610d92565b6102cd565b61010761012a366004610dcc565b610393565b61016a61013d366004610dcc565b60ca6020525f90815260409020805460018201546002909201546001600160a01b03918216929091169083565b60405161017993929190610dff565b60405180910390f35b610107610190366004610e27565b6103a7565b6101a86101a3366004610dcc565b6104ef565b6040516101799190610e45565b61010761059a565b6101076105ad565b6033546001600160a01b03165b6040516101799190610e53565b6101d273bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6097546001600160a01b03166040516101799190610e7e565b610107610221366004610dcc565b6105e2565b6101a8610234366004610dcc565b60c96020525f908152604090205481565b6065546001600160a01b03166101d2565b610107610264366004610dcc565b6106ad565b80515f036102925760405162461bcd60e51b815260040161028990610eb6565b60405180910390fd5b80515f5b818110156102c8576102c08382815181106102b3576102b3610ec6565b60200260200101516103a7565b600101610296565b505050565b816001600160a01b0381166102f45760405162461bcd60e51b815260040161028990610f05565b6103326040518060400160405280601f81526020017f736574446972656374507269636528616464726573732c75696e74323536290081525061071e565b6001600160a01b0383165f81815260c960205260409081902080549085905590519091907fa0844d44570b5ec5ac55e9e7d1e7fc8149b4f33b4b61f3c8fc08bacce058faee906103859084908790610f15565b60405180910390a250505050565b61039b6107b5565b6103a4816107df565b50565b80516001600160a01b0381166103cf5760405162461bcd60e51b815260040161028990610f05565b60208201516001600160a01b0381166103fa5760405162461bcd60e51b815260040161028990610f05565b6104386040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e66696729000000000081525061071e565b82604001515f0361045b5760405162461bcd60e51b815260040161028990610f63565b82516001600160a01b039081165f90815260ca6020908152604091829020865181549085166001600160a01b0319918216811783559288015160018301805496821696909216959095179055828701516002909101819055915190927f3cc8d9cb9370a23a8b9ffa75efa24cecb65c4693980e58260841adc474983c5f926104e292610f73565b60405180910390a2505050565b5f8073bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba196001600160a01b0384160161051e57506012610589565b5f839050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105829190610f95565b60ff169150505b6105938382610858565b9392505050565b6105a26107b5565b6105ab5f6108b8565b565b60655433906001600160a01b031681146105d95760405162461bcd60e51b815260040161028990610ffb565b6103a4816108b8565b5f54610100900460ff161580801561060057505f54600160ff909116105b806106195750303b15801561061957505f5460ff166001145b6106355760405162461bcd60e51b815260040161028990611055565b5f805460ff191660011790558015610656575f805461ff0019166101001790555b61065f826108d1565b80156106a9575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906106a090600190611078565b60405180910390a15b5050565b6106b56107b5565b606580546001600160a01b0383166001600160a01b031990911681179091556106e66033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab9061075090339086906004016110c2565b602060405180830381865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f91906110f5565b9050806106a957333083604051634a3fa29360e01b815260040161028993929190611113565b6033546001600160a01b031633146105ab5760405162461bcd60e51b81526004016102899061117a565b6001600160a01b0381166108055760405162461bcd60e51b8152600401610289906111cb565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906106a090839085906111db565b6001600160a01b0382165f90815260c96020526040812054801561087e5780915061088a565b61088784610908565b91505b5f61089684601261120a565b90506108a381600a611329565b6108ad9084611336565b925050505b92915050565b606580546001600160a01b03191690556103a481610ae3565b5f54610100900460ff166108f75760405162461bcd60e51b81526004016102899061139c565b6108ff610b34565b6103a481610b62565b6001600160a01b038082165f90815260ca6020526040812054909116806109415760405162461bcd60e51b815260040161028990610f05565b6001600160a01b038084165f90815260ca6020908152604080832081516060810183528154861681526001820154909516858401819052600290910154858301819052825163313ce56760e01b81529251919490939092859263313ce567926004808401939192918290030181865afa1580156109c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e49190610f95565b6109ef9060126113ac565b60ff1690505f80846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610a32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5691906113f1565b509350509250505f8213610a7c5760405162461bcd60e51b815260040161028990611495565b80421015610a9c5760405162461bcd60e51b8152600401610289906114d8565b4281900384811115610ac05760405162461bcd60e51b81526004016102899061151b565b610acb84600a611329565b610ad59084611336565b9a9950505050505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610b5a5760405162461bcd60e51b81526004016102899061139c565b6105ab610b88565b5f54610100900460ff1661039b5760405162461bcd60e51b81526004016102899061139c565b5f54610100900460ff16610bae5760405162461bcd60e51b81526004016102899061139c565b6105ab336108b8565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610bf157610bf1610bb7565b6040525050565b5f610c0260405190565b9050610c0e8282610bcb565b919050565b5f67ffffffffffffffff821115610c2c57610c2c610bb7565b5060209081020190565b5f6001600160a01b0382166108b2565b610c4f81610c36565b81146103a4575f80fd5b80356108b281610c46565b80610c4f565b80356108b281610c64565b5f60608284031215610c8857610c885f80fd5b610c926060610bf8565b90505f610c9f8484610c59565b8252506020610cb084848301610c59565b6020830152506040610cc484828501610c6a565b60408301525092915050565b5f610ce2610cdd84610c13565b610bf8565b83815290506020810160608402830185811115610d0057610d005f80fd5b835b81811015610d265780610d158882610c75565b845250602090920191606001610d02565b5050509392505050565b5f82601f830112610d4257610d425f80fd5b8135610d52848260208601610cd0565b949350505050565b5f60208284031215610d6d57610d6d5f80fd5b813567ffffffffffffffff811115610d8657610d865f80fd5b610d5284828501610d30565b5f8060408385031215610da657610da65f80fd5b5f610db18585610c59565b9250506020610dc285828601610c6a565b9150509250929050565b5f60208284031215610ddf57610ddf5f80fd5b5f610d528484610c59565b610df381610c36565b82525050565b80610df3565b60608101610e0d8286610dea565b610e1a6020830185610dea565b610d526040830184610df9565b5f60608284031215610e3a57610e3a5f80fd5b5f610d528484610c75565b602081016108b28284610df9565b602081016108b28284610dea565b5f6108b282610c36565b5f6108b282610e61565b610df381610e6b565b602081016108b28284610e75565b601181525f602082017006c656e6774682063616e2774206265203607c1b815291505b5060200190565b602080825281016108b281610e8c565b634e487b7160e01b5f52603260045260245ffd5b601581525f602082017463616e2774206265207a65726f206164647265737360581b81529150610eaf565b602080825281016108b281610eda565b60408101610f238285610df9565b6105936020830184610df9565b601a81525f602082017f7374616c6520706572696f642063616e2774206265207a65726f00000000000081529150610eaf565b602080825281016108b281610f30565b60408101610f238285610dea565b60ff8116610c4f565b80516108b281610f81565b5f60208284031215610fa857610fa85f80fd5b5f610d528484610f8a565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b602080825281016108b281610fb3565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610ff4565b602080825281016108b28161100b565b5f60ff82166108b2565b610df381611065565b602081016108b2828461106f565b8281835e505f910152565b5f61109a825190565b8084526020840193506110b1818560208601611086565b601f01601f19169290920192915050565b604081016110d08285610dea565b8181036020830152610d528184611091565b801515610c4f565b80516108b2816110e2565b5f60208284031215611108576111085f80fd5b5f610d5284846110ea565b606081016111218286610dea565b61112e6020830185610dea565b81810360408301526111408184611091565b95945050505050565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610eaf565b602080825281016108b281611149565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610ff4565b602080825281016108b28161118a565b604081016111e98285610dea565b6105936020830184610dea565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108b2576108b26111f6565b80825b600185111561125c5780860481111561123b5761123b6111f6565b600185161561124957908102905b80026112558560011c90565b9450611220565b94509492505050565b5f8261127357506001610593565b8161127f57505f610593565b8160018114611295576002811461129f576112cc565b6001915050610593565b60ff8411156112b0576112b06111f6565b8360020a9150848211156112c6576112c66111f6565b50610593565b5060208310610133831016604e8410600b84101617156112ff575081810a838111156112fa576112fa6111f6565b610593565b61130c848484600161121d565b92509050818404811115611322576113226111f6565b0292915050565b5f6105935f198484611265565b81810280821583820485141761134e5761134e6111f6565b5092915050565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610ff4565b602080825281016108b281611355565b60ff9182169190811690828203908111156108b2576108b26111f6565b69ffffffffffffffffffff8116610c4f565b80516108b2816113c9565b80516108b281610c64565b5f805f805f60a08688031215611408576114085f80fd5b5f61141388886113db565b9550506020611424888289016113e6565b9450506040611435888289016113e6565b9350506060611446888289016113e6565b9250506080611457888289016113db565b9150509295509295909350565b60208082527f636861696e6c696e6b207072696365206d75737420626520706f73697469766591019081525f610eaf565b602080825281016108b281611464565b601c81525f602082017f757064617465644174206578636565647320626c6f636b2074696d650000000081529150610eaf565b602080825281016108b2816114a5565b601781525f602082017f636861696e6c696e6b207072696365206578706972656400000000000000000081529150610eaf565b602080825281016108b2816114e856fea2646970667358221220f836632878c3069e88247c9ba2d062c721f6b65d5efa019c863ad403c4efc77564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x18 PUSH2 0x1D JUMP JUMPDEST PUSH2 0x101 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x44 SWAP1 PUSH2 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x9F JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0x96 SWAP2 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEC DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0x1561 DUP1 PUSH2 0x10E PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF0 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x93 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0x226 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x256 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1FA JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1B69DC5F GT PUSH2 0xCE JUMPI DUP1 PUSH4 0x1B69DC5F EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x392787D2 EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x431710E EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x9A8ACB0 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x107 PUSH2 0x102 CALLDATASIZE PUSH1 0x4 PUSH2 0xD5A JUMP JUMPDEST PUSH2 0x269 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x107 PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0x107 PUSH2 0x12A CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x13D CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x107 PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0xE27 JUMP JUMPDEST PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x4EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xE45 JUMP JUMPDEST PUSH2 0x107 PUSH2 0x59A JUMP JUMPDEST PUSH2 0x107 PUSH2 0x5AD JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH2 0x1D2 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xE7E JUMP JUMPDEST PUSH2 0x107 PUSH2 0x221 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x234 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x107 PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST DUP1 MLOAD PUSH0 SUB PUSH2 0x292 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xEB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C8 JUMPI PUSH2 0x2C0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2B3 JUMPI PUSH2 0x2B3 PUSH2 0xEC6 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3A7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x296 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x332 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574446972656374507269636528616464726573732C75696E743235362900 DUP2 MSTORE POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 DUP6 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xA0844D44570B5EC5AC55E9E7D1E7FC8149B4F33B4B61F3C8FC08BACCE058FAEE SWAP1 PUSH2 0x385 SWAP1 DUP5 SWAP1 DUP8 SWAP1 PUSH2 0xF15 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7B5 JUMP JUMPDEST PUSH2 0x3A4 DUP2 PUSH2 0x7DF JUMP JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x438 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574546F6B656E436F6E66696728546F6B656E436F6E666967290000000000 DUP2 MSTORE POP PUSH2 0x71E JUMP JUMPDEST DUP3 PUSH1 0x40 ADD MLOAD PUSH0 SUB PUSH2 0x45B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF63 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP1 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE SWAP3 DUP9 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP7 DUP3 AND SWAP7 SWAP1 SWAP3 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SSTORE DUP3 DUP8 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP2 SWAP1 SSTORE SWAP2 MLOAD SWAP1 SWAP3 PUSH32 0x3CC8D9CB9370A23A8B9FFA75EFA24CECB65C4693980E58260841ADC474983C5F SWAP3 PUSH2 0x4E2 SWAP3 PUSH2 0xF73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ADD PUSH2 0x51E JUMPI POP PUSH1 0x12 PUSH2 0x589 JUMP JUMPDEST PUSH0 DUP4 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x55E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x582 SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST PUSH1 0xFF AND SWAP2 POP POP JUMPDEST PUSH2 0x593 DUP4 DUP3 PUSH2 0x858 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A2 PUSH2 0x7B5 JUMP JUMPDEST PUSH2 0x5AB PUSH0 PUSH2 0x8B8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x5D9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xFFB JUMP JUMPDEST PUSH2 0x3A4 DUP2 PUSH2 0x8B8 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x600 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x619 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x619 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x635 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x1055 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x656 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x65F DUP3 PUSH2 0x8D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A9 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x6A0 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1078 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x6B5 PUSH2 0x7B5 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x6E6 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x750 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x10C2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x78F SWAP2 SWAP1 PUSH2 0x10F5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x6A9 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1113 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x117A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x805 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x11CB JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x6A0 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x87E JUMPI DUP1 SWAP2 POP PUSH2 0x88A JUMP JUMPDEST PUSH2 0x887 DUP5 PUSH2 0x908 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH0 PUSH2 0x896 DUP5 PUSH1 0x12 PUSH2 0x120A JUMP JUMPDEST SWAP1 POP PUSH2 0x8A3 DUP2 PUSH1 0xA PUSH2 0x1329 JUMP JUMPDEST PUSH2 0x8AD SWAP1 DUP5 PUSH2 0x1336 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x3A4 DUP2 PUSH2 0xAE3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x8F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x8FF PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x3A4 DUP2 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND DUP1 PUSH2 0x941 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP7 AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP1 SWAP6 AND DUP6 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD DUP6 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD PUSH4 0x313CE567 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 DUP6 SWAP3 PUSH4 0x313CE567 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x9E4 SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST PUSH2 0x9EF SWAP1 PUSH1 0x12 PUSH2 0x13AC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA32 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xA56 SWAP2 SWAP1 PUSH2 0x13F1 JUMP JUMPDEST POP SWAP4 POP POP SWAP3 POP POP PUSH0 DUP3 SGT PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x1495 JUMP JUMPDEST DUP1 TIMESTAMP LT ISZERO PUSH2 0xA9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x14D8 JUMP JUMPDEST TIMESTAMP DUP2 SWAP1 SUB DUP5 DUP2 GT ISZERO PUSH2 0xAC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH2 0xACB DUP5 PUSH1 0xA PUSH2 0x1329 JUMP JUMPDEST PUSH2 0xAD5 SWAP1 DUP5 PUSH2 0x1336 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xB5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x5AB PUSH2 0xB88 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x39B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xBAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x5AB CALLER PUSH2 0x8B8 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBF1 JUMPI PUSH2 0xBF1 PUSH2 0xBB7 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC02 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xC0E DUP3 DUP3 PUSH2 0xBCB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC2C JUMPI PUSH2 0xC2C PUSH2 0xBB7 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0xC4F DUP2 PUSH2 0xC36 JUMP JUMPDEST DUP2 EQ PUSH2 0x3A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8B2 DUP2 PUSH2 0xC46 JUMP JUMPDEST DUP1 PUSH2 0xC4F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8B2 DUP2 PUSH2 0xC64 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC88 JUMPI PUSH2 0xC88 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC92 PUSH1 0x60 PUSH2 0xBF8 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xC9F DUP5 DUP5 PUSH2 0xC59 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0xCB0 DUP5 DUP5 DUP4 ADD PUSH2 0xC59 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xCC4 DUP5 DUP3 DUP6 ADD PUSH2 0xC6A JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCE2 PUSH2 0xCDD DUP5 PUSH2 0xC13 JUMP JUMPDEST PUSH2 0xBF8 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x60 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xD00 JUMPI PUSH2 0xD00 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD26 JUMPI DUP1 PUSH2 0xD15 DUP9 DUP3 PUSH2 0xC75 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0xD02 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD42 JUMPI PUSH2 0xD42 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD52 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD6D JUMPI PUSH2 0xD6D PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD86 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xD52 DUP5 DUP3 DUP6 ADD PUSH2 0xD30 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA6 JUMPI PUSH2 0xDA6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xDB1 DUP6 DUP6 PUSH2 0xC59 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC2 DUP6 DUP3 DUP7 ADD PUSH2 0xC6A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDDF JUMPI PUSH2 0xDDF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0xDF3 DUP2 PUSH2 0xC36 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST DUP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xE0D DUP3 DUP7 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0xE1A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0xD52 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xDF9 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE3A JUMPI PUSH2 0xE3A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0xDEA JUMP JUMPDEST PUSH0 PUSH2 0x8B2 DUP3 PUSH2 0xC36 JUMP JUMPDEST PUSH0 PUSH2 0x8B2 DUP3 PUSH2 0xE61 JUMP JUMPDEST PUSH2 0xDF3 DUP2 PUSH2 0xE6B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0xE75 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH17 0x6C656E6774682063616E2774206265203 PUSH1 0x7C SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xE8C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xEDA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xF23 DUP3 DUP6 PUSH2 0xDF9 JUMP JUMPDEST PUSH2 0x593 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x7374616C6520706572696F642063616E2774206265207A65726F000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xF23 DUP3 DUP6 PUSH2 0xDEA JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xC4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0xF81 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFA8 JUMPI PUSH2 0xFA8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0xF8A JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xFB3 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x100B JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0xDF3 DUP2 PUSH2 0x1065 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0x106F JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x109A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x10B1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1086 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x10D0 DUP3 DUP6 PUSH2 0xDEA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xD52 DUP2 DUP5 PUSH2 0x1091 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xC4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0x10E2 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1108 JUMPI PUSH2 0x1108 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0x10EA JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1121 DUP3 DUP7 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0x112E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xDEA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1140 DUP2 DUP5 PUSH2 0x1091 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x1149 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x118A JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x11E9 DUP3 DUP6 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0x593 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xDEA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x8B2 JUMPI PUSH2 0x8B2 PUSH2 0x11F6 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x125C JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x123B JUMPI PUSH2 0x123B PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x1249 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x1255 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x1220 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1273 JUMPI POP PUSH1 0x1 PUSH2 0x593 JUMP JUMPDEST DUP2 PUSH2 0x127F JUMPI POP PUSH0 PUSH2 0x593 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1295 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x129F JUMPI PUSH2 0x12CC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x593 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x12B0 JUMPI PUSH2 0x12B0 PUSH2 0x11F6 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x12C6 JUMPI PUSH2 0x12C6 PUSH2 0x11F6 JUMP JUMPDEST POP PUSH2 0x593 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x12FF JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x12FA JUMPI PUSH2 0x12FA PUSH2 0x11F6 JUMP JUMPDEST PUSH2 0x593 JUMP JUMPDEST PUSH2 0x130C DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x121D JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x1322 JUMPI PUSH2 0x1322 PUSH2 0x11F6 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x593 PUSH0 NOT DUP5 DUP5 PUSH2 0x1265 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x134E JUMPI PUSH2 0x134E PUSH2 0x11F6 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x1355 JUMP JUMPDEST PUSH1 0xFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 SUB SWAP1 DUP2 GT ISZERO PUSH2 0x8B2 JUMPI PUSH2 0x8B2 PUSH2 0x11F6 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xC4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0x13C9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0xC64 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1408 JUMPI PUSH2 0x1408 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1413 DUP9 DUP9 PUSH2 0x13DB JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1424 DUP9 DUP3 DUP10 ADD PUSH2 0x13E6 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1435 DUP9 DUP3 DUP10 ADD PUSH2 0x13E6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1446 DUP9 DUP3 DUP10 ADD PUSH2 0x13E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1457 DUP9 DUP3 DUP10 ADD PUSH2 0x13DB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x636861696E6C696E6B207072696365206D75737420626520706F736974697665 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x1464 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757064617465644174206578636565647320626C6F636B2074696D6500000000 DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x14A5 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x636861696E6C696E6B2070726963652065787069726564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x14E8 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 CALLDATASIZE PUSH4 0x2878C306 SWAP15 DUP9 0x24 PUSH29 0x9BA2D062C721F6B65D5EFA019C863AD403C4EFC77564736F6C63430008 NOT STOP CALLER ","sourceMap":"448:7088:51:-:0;;;2103:53;;;;;;;;;-1:-1:-1;2127:22:51;:20;:22::i;:::-;448:7088;;5939:280:5;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:5;;;;;;;:::i;:::-;;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:5;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;786:419:101:-;990:2;1003:47;;;975:18;;1067:131;975:18;641:2;113:19;;322:34;165:4;156:14;;299:58;-1:-1:-1;;;374:15:101;;;367:34;762:12;;;414:366;1067:131;1059:139;786:419;-1:-1:-1;;786:419:101:o;1421:214::-;1286:4;1275:16;;1374:35;;1548:2;1533:18;;1561:67;1303:112;1421:214;448:7088:51;;;;;;"},"deployedBytecode":{"functionDebugData":{"@NATIVE_TOKEN_ADDR_4707":{"entryPoint":null,"id":4707,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_1976":{"entryPoint":2257,"id":1976,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_1988":{"entryPoint":2914,"id":1988,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_129":{"entryPoint":2868,"id":129,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":2952,"id":248,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_2079":{"entryPoint":1822,"id":2079,"parameterSlots":1,"returnSlots":0},"@_checkOwner_279":{"entryPoint":1973,"id":279,"parameterSlots":0,"returnSlots":0},"@_getChainlinkPrice_5076":{"entryPoint":2312,"id":5076,"parameterSlots":1,"returnSlots":1},"@_getPriceInternal_4979":{"entryPoint":2136,"id":4979,"parameterSlots":2,"returnSlots":1},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_2049":{"entryPoint":2015,"id":2049,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_181":{"entryPoint":2232,"id":181,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_336":{"entryPoint":2787,"id":336,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_203":{"entryPoint":1453,"id":203,"parameterSlots":0,"returnSlots":0},"@accessControlManager_2011":{"entryPoint":null,"id":2011,"parameterSlots":0,"returnSlots":1},"@getPrice_4933":{"entryPoint":1263,"id":4933,"parameterSlots":1,"returnSlots":1},"@initialize_4774":{"entryPoint":1506,"id":4774,"parameterSlots":1,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@pendingOwner_144":{"entryPoint":null,"id":144,"parameterSlots":0,"returnSlots":1},"@prices_4712":{"entryPoint":null,"id":4712,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_293":{"entryPoint":1434,"id":293,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_2001":{"entryPoint":915,"id":2001,"parameterSlots":1,"returnSlots":0},"@setDirectPrice_4808":{"entryPoint":717,"id":4808,"parameterSlots":2,"returnSlots":0},"@setTokenConfig_4893":{"entryPoint":935,"id":4893,"parameterSlots":1,"returnSlots":0},"@setTokenConfigs_4848":{"entryPoint":617,"id":4848,"parameterSlots":1,"returnSlots":0},"@tokenConfigs_4718":{"entryPoint":null,"id":4718,"parameterSlots":0,"returnSlots":0},"@transferOwnership_164":{"entryPoint":1709,"id":164,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3280,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3376,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":4330,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_int256_fromMemory":{"entryPoint":5094,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr":{"entryPoint":3189,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":3178,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint80_fromMemory":{"entryPoint":5083,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":3978,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3532,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3474,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3418,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TokenConfig_$4703_memory_ptr":{"entryPoint":3623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory":{"entryPoint":5105,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":3989,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3562,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":3701,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":4207,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4241,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":4019,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack":{"entryPoint":3724,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack":{"entryPoint":5220,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack":{"entryPoint":3802,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack":{"entryPoint":4490,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack":{"entryPoint":5352,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack":{"entryPoint":5285,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":4107,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":4425,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack":{"entryPoint":3888,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":4949,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3577,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":4571,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4371,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":3583,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4290,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":3955,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":3710,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":4216,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4091,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3766,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5269,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3845,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4555,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5403,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5336,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4181,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4474,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3939,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5020,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3653,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":3861,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":3064,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3091,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":4637,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":4905,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":4709,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":4918,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":4618,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":5036,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3126,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint80":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":3691,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":4197,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3681,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4230,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":3019,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4598,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3782,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2999,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3142,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4322,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3172,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":3969,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint80":{"entryPoint":5065,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30052:101","nodeType":"YulBlock","src":"0:30052:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"505:54:101","nodeType":"YulBlock","src":"505:54:101","statements":[{"nativeSrc":"515:38:101","nodeType":"YulAssignment","src":"515:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"533:5:101","nodeType":"YulIdentifier","src":"533:5:101"},{"kind":"number","nativeSrc":"540:2:101","nodeType":"YulLiteral","src":"540:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"529:3:101","nodeType":"YulIdentifier","src":"529:3:101"},"nativeSrc":"529:14:101","nodeType":"YulFunctionCall","src":"529:14:101"},{"arguments":[{"kind":"number","nativeSrc":"549:2:101","nodeType":"YulLiteral","src":"549:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"545:3:101","nodeType":"YulIdentifier","src":"545:3:101"},"nativeSrc":"545:7:101","nodeType":"YulFunctionCall","src":"545:7:101"}],"functionName":{"name":"and","nativeSrc":"525:3:101","nodeType":"YulIdentifier","src":"525:3:101"},"nativeSrc":"525:28:101","nodeType":"YulFunctionCall","src":"525:28:101"},"variableNames":[{"name":"result","nativeSrc":"515:6:101","nodeType":"YulIdentifier","src":"515:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"457:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"488:5:101","nodeType":"YulTypedName","src":"488:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"498:6:101","nodeType":"YulTypedName","src":"498:6:101","type":""}],"src":"457:102:101"},{"body":{"nativeSrc":"593:152:101","nodeType":"YulBlock","src":"593:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"610:1:101","nodeType":"YulLiteral","src":"610:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"613:77:101","nodeType":"YulLiteral","src":"613:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"603:6:101","nodeType":"YulIdentifier","src":"603:6:101"},"nativeSrc":"603:88:101","nodeType":"YulFunctionCall","src":"603:88:101"},"nativeSrc":"603:88:101","nodeType":"YulExpressionStatement","src":"603:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"707:1:101","nodeType":"YulLiteral","src":"707:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"710:4:101","nodeType":"YulLiteral","src":"710:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"700:6:101","nodeType":"YulIdentifier","src":"700:6:101"},"nativeSrc":"700:15:101","nodeType":"YulFunctionCall","src":"700:15:101"},"nativeSrc":"700:15:101","nodeType":"YulExpressionStatement","src":"700:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"731:1:101","nodeType":"YulLiteral","src":"731:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"734:4:101","nodeType":"YulLiteral","src":"734:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"724:6:101","nodeType":"YulIdentifier","src":"724:6:101"},"nativeSrc":"724:15:101","nodeType":"YulFunctionCall","src":"724:15:101"},"nativeSrc":"724:15:101","nodeType":"YulExpressionStatement","src":"724:15:101"}]},"name":"panic_error_0x41","nativeSrc":"565:180:101","nodeType":"YulFunctionDefinition","src":"565:180:101"},{"body":{"nativeSrc":"794:238:101","nodeType":"YulBlock","src":"794:238:101","statements":[{"nativeSrc":"804:58:101","nodeType":"YulVariableDeclaration","src":"804:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"826:6:101","nodeType":"YulIdentifier","src":"826:6:101"},{"arguments":[{"name":"size","nativeSrc":"856:4:101","nodeType":"YulIdentifier","src":"856:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"834:21:101","nodeType":"YulIdentifier","src":"834:21:101"},"nativeSrc":"834:27:101","nodeType":"YulFunctionCall","src":"834:27:101"}],"functionName":{"name":"add","nativeSrc":"822:3:101","nodeType":"YulIdentifier","src":"822:3:101"},"nativeSrc":"822:40:101","nodeType":"YulFunctionCall","src":"822:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"808:10:101","nodeType":"YulTypedName","src":"808:10:101","type":""}]},{"body":{"nativeSrc":"973:22:101","nodeType":"YulBlock","src":"973:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"975:16:101","nodeType":"YulIdentifier","src":"975:16:101"},"nativeSrc":"975:18:101","nodeType":"YulFunctionCall","src":"975:18:101"},"nativeSrc":"975:18:101","nodeType":"YulExpressionStatement","src":"975:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"916:10:101","nodeType":"YulIdentifier","src":"916:10:101"},{"kind":"number","nativeSrc":"928:18:101","nodeType":"YulLiteral","src":"928:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"913:2:101","nodeType":"YulIdentifier","src":"913:2:101"},"nativeSrc":"913:34:101","nodeType":"YulFunctionCall","src":"913:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"952:10:101","nodeType":"YulIdentifier","src":"952:10:101"},{"name":"memPtr","nativeSrc":"964:6:101","nodeType":"YulIdentifier","src":"964:6:101"}],"functionName":{"name":"lt","nativeSrc":"949:2:101","nodeType":"YulIdentifier","src":"949:2:101"},"nativeSrc":"949:22:101","nodeType":"YulFunctionCall","src":"949:22:101"}],"functionName":{"name":"or","nativeSrc":"910:2:101","nodeType":"YulIdentifier","src":"910:2:101"},"nativeSrc":"910:62:101","nodeType":"YulFunctionCall","src":"910:62:101"},"nativeSrc":"907:88:101","nodeType":"YulIf","src":"907:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1011:2:101","nodeType":"YulLiteral","src":"1011:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1015:10:101","nodeType":"YulIdentifier","src":"1015:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1004:6:101","nodeType":"YulIdentifier","src":"1004:6:101"},"nativeSrc":"1004:22:101","nodeType":"YulFunctionCall","src":"1004:22:101"},"nativeSrc":"1004:22:101","nodeType":"YulExpressionStatement","src":"1004:22:101"}]},"name":"finalize_allocation","nativeSrc":"751:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"780:6:101","nodeType":"YulTypedName","src":"780:6:101","type":""},{"name":"size","nativeSrc":"788:4:101","nodeType":"YulTypedName","src":"788:4:101","type":""}],"src":"751:281:101"},{"body":{"nativeSrc":"1079:88:101","nodeType":"YulBlock","src":"1079:88:101","statements":[{"nativeSrc":"1089:30:101","nodeType":"YulAssignment","src":"1089:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1099:18:101","nodeType":"YulIdentifier","src":"1099:18:101"},"nativeSrc":"1099:20:101","nodeType":"YulFunctionCall","src":"1099:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1089:6:101","nodeType":"YulIdentifier","src":"1089:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1148:6:101","nodeType":"YulIdentifier","src":"1148:6:101"},{"name":"size","nativeSrc":"1156:4:101","nodeType":"YulIdentifier","src":"1156:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1128:19:101","nodeType":"YulIdentifier","src":"1128:19:101"},"nativeSrc":"1128:33:101","nodeType":"YulFunctionCall","src":"1128:33:101"},"nativeSrc":"1128:33:101","nodeType":"YulExpressionStatement","src":"1128:33:101"}]},"name":"allocate_memory","nativeSrc":"1038:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1063:4:101","nodeType":"YulTypedName","src":"1063:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1072:6:101","nodeType":"YulTypedName","src":"1072:6:101","type":""}],"src":"1038:129:101"},{"body":{"nativeSrc":"1284:229:101","nodeType":"YulBlock","src":"1284:229:101","statements":[{"body":{"nativeSrc":"1389:22:101","nodeType":"YulBlock","src":"1389:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1391:16:101","nodeType":"YulIdentifier","src":"1391:16:101"},"nativeSrc":"1391:18:101","nodeType":"YulFunctionCall","src":"1391:18:101"},"nativeSrc":"1391:18:101","nodeType":"YulExpressionStatement","src":"1391:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1361:6:101","nodeType":"YulIdentifier","src":"1361:6:101"},{"kind":"number","nativeSrc":"1369:18:101","nodeType":"YulLiteral","src":"1369:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1358:2:101","nodeType":"YulIdentifier","src":"1358:2:101"},"nativeSrc":"1358:30:101","nodeType":"YulFunctionCall","src":"1358:30:101"},"nativeSrc":"1355:56:101","nodeType":"YulIf","src":"1355:56:101"},{"nativeSrc":"1421:25:101","nodeType":"YulAssignment","src":"1421:25:101","value":{"arguments":[{"name":"length","nativeSrc":"1433:6:101","nodeType":"YulIdentifier","src":"1433:6:101"},{"kind":"number","nativeSrc":"1441:4:101","nodeType":"YulLiteral","src":"1441:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"1429:3:101","nodeType":"YulIdentifier","src":"1429:3:101"},"nativeSrc":"1429:17:101","nodeType":"YulFunctionCall","src":"1429:17:101"},"variableNames":[{"name":"size","nativeSrc":"1421:4:101","nodeType":"YulIdentifier","src":"1421:4:101"}]},{"nativeSrc":"1483:23:101","nodeType":"YulAssignment","src":"1483:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1495:4:101","nodeType":"YulIdentifier","src":"1495:4:101"},{"kind":"number","nativeSrc":"1501:4:101","nodeType":"YulLiteral","src":"1501:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1491:3:101","nodeType":"YulIdentifier","src":"1491:3:101"},"nativeSrc":"1491:15:101","nodeType":"YulFunctionCall","src":"1491:15:101"},"variableNames":[{"name":"size","nativeSrc":"1483:4:101","nodeType":"YulIdentifier","src":"1483:4:101"}]}]},"name":"array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"1173:340:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1268:6:101","nodeType":"YulTypedName","src":"1268:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulTypedName","src":"1279:4:101","type":""}],"src":"1173:340:101"},{"body":{"nativeSrc":"1608:28:101","nodeType":"YulBlock","src":"1608:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1625:1:101","nodeType":"YulLiteral","src":"1625:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1628:1:101","nodeType":"YulLiteral","src":"1628:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1618:6:101","nodeType":"YulIdentifier","src":"1618:6:101"},"nativeSrc":"1618:12:101","nodeType":"YulFunctionCall","src":"1618:12:101"},"nativeSrc":"1618:12:101","nodeType":"YulExpressionStatement","src":"1618:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1519:117:101","nodeType":"YulFunctionDefinition","src":"1519:117:101"},{"body":{"nativeSrc":"1731:28:101","nodeType":"YulBlock","src":"1731:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1748:1:101","nodeType":"YulLiteral","src":"1748:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1751:1:101","nodeType":"YulLiteral","src":"1751:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"},"nativeSrc":"1741:12:101","nodeType":"YulFunctionCall","src":"1741:12:101"},"nativeSrc":"1741:12:101","nodeType":"YulExpressionStatement","src":"1741:12:101"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"1642:117:101","nodeType":"YulFunctionDefinition","src":"1642:117:101"},{"body":{"nativeSrc":"1854:28:101","nodeType":"YulBlock","src":"1854:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1871:1:101","nodeType":"YulLiteral","src":"1871:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1874:1:101","nodeType":"YulLiteral","src":"1874:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1864:6:101","nodeType":"YulIdentifier","src":"1864:6:101"},"nativeSrc":"1864:12:101","nodeType":"YulFunctionCall","src":"1864:12:101"},"nativeSrc":"1864:12:101","nodeType":"YulExpressionStatement","src":"1864:12:101"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"1765:117:101","nodeType":"YulFunctionDefinition","src":"1765:117:101"},{"body":{"nativeSrc":"1933:81:101","nodeType":"YulBlock","src":"1933:81:101","statements":[{"nativeSrc":"1943:65:101","nodeType":"YulAssignment","src":"1943:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1958:5:101","nodeType":"YulIdentifier","src":"1958:5:101"},{"kind":"number","nativeSrc":"1965:42:101","nodeType":"YulLiteral","src":"1965:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1954:3:101","nodeType":"YulIdentifier","src":"1954:3:101"},"nativeSrc":"1954:54:101","nodeType":"YulFunctionCall","src":"1954:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1943:7:101","nodeType":"YulIdentifier","src":"1943:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1888:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1915:5:101","nodeType":"YulTypedName","src":"1915:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1925:7:101","nodeType":"YulTypedName","src":"1925:7:101","type":""}],"src":"1888:126:101"},{"body":{"nativeSrc":"2065:51:101","nodeType":"YulBlock","src":"2065:51:101","statements":[{"nativeSrc":"2075:35:101","nodeType":"YulAssignment","src":"2075:35:101","value":{"arguments":[{"name":"value","nativeSrc":"2104:5:101","nodeType":"YulIdentifier","src":"2104:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2086:17:101","nodeType":"YulIdentifier","src":"2086:17:101"},"nativeSrc":"2086:24:101","nodeType":"YulFunctionCall","src":"2086:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2075:7:101","nodeType":"YulIdentifier","src":"2075:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"2020:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2047:5:101","nodeType":"YulTypedName","src":"2047:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2057:7:101","nodeType":"YulTypedName","src":"2057:7:101","type":""}],"src":"2020:96:101"},{"body":{"nativeSrc":"2165:79:101","nodeType":"YulBlock","src":"2165:79:101","statements":[{"body":{"nativeSrc":"2222:16:101","nodeType":"YulBlock","src":"2222:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2231:1:101","nodeType":"YulLiteral","src":"2231:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2234:1:101","nodeType":"YulLiteral","src":"2234:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2224:6:101","nodeType":"YulIdentifier","src":"2224:6:101"},"nativeSrc":"2224:12:101","nodeType":"YulFunctionCall","src":"2224:12:101"},"nativeSrc":"2224:12:101","nodeType":"YulExpressionStatement","src":"2224:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2188:5:101","nodeType":"YulIdentifier","src":"2188:5:101"},{"arguments":[{"name":"value","nativeSrc":"2213:5:101","nodeType":"YulIdentifier","src":"2213:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2195:17:101","nodeType":"YulIdentifier","src":"2195:17:101"},"nativeSrc":"2195:24:101","nodeType":"YulFunctionCall","src":"2195:24:101"}],"functionName":{"name":"eq","nativeSrc":"2185:2:101","nodeType":"YulIdentifier","src":"2185:2:101"},"nativeSrc":"2185:35:101","nodeType":"YulFunctionCall","src":"2185:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2178:6:101","nodeType":"YulIdentifier","src":"2178:6:101"},"nativeSrc":"2178:43:101","nodeType":"YulFunctionCall","src":"2178:43:101"},"nativeSrc":"2175:63:101","nodeType":"YulIf","src":"2175:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2122:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2158:5:101","nodeType":"YulTypedName","src":"2158:5:101","type":""}],"src":"2122:122:101"},{"body":{"nativeSrc":"2302:87:101","nodeType":"YulBlock","src":"2302:87:101","statements":[{"nativeSrc":"2312:29:101","nodeType":"YulAssignment","src":"2312:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2334:6:101","nodeType":"YulIdentifier","src":"2334:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2321:12:101","nodeType":"YulIdentifier","src":"2321:12:101"},"nativeSrc":"2321:20:101","nodeType":"YulFunctionCall","src":"2321:20:101"},"variableNames":[{"name":"value","nativeSrc":"2312:5:101","nodeType":"YulIdentifier","src":"2312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2377:5:101","nodeType":"YulIdentifier","src":"2377:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2350:26:101","nodeType":"YulIdentifier","src":"2350:26:101"},"nativeSrc":"2350:33:101","nodeType":"YulFunctionCall","src":"2350:33:101"},"nativeSrc":"2350:33:101","nodeType":"YulExpressionStatement","src":"2350:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2250:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2280:6:101","nodeType":"YulTypedName","src":"2280:6:101","type":""},{"name":"end","nativeSrc":"2288:3:101","nodeType":"YulTypedName","src":"2288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2296:5:101","nodeType":"YulTypedName","src":"2296:5:101","type":""}],"src":"2250:139:101"},{"body":{"nativeSrc":"2440:32:101","nodeType":"YulBlock","src":"2440:32:101","statements":[{"nativeSrc":"2450:16:101","nodeType":"YulAssignment","src":"2450:16:101","value":{"name":"value","nativeSrc":"2461:5:101","nodeType":"YulIdentifier","src":"2461:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2450:7:101","nodeType":"YulIdentifier","src":"2450:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2395:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2422:5:101","nodeType":"YulTypedName","src":"2422:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2432:7:101","nodeType":"YulTypedName","src":"2432:7:101","type":""}],"src":"2395:77:101"},{"body":{"nativeSrc":"2521:79:101","nodeType":"YulBlock","src":"2521:79:101","statements":[{"body":{"nativeSrc":"2578:16:101","nodeType":"YulBlock","src":"2578:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2587:1:101","nodeType":"YulLiteral","src":"2587:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2590:1:101","nodeType":"YulLiteral","src":"2590:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:12:101","nodeType":"YulFunctionCall","src":"2580:12:101"},"nativeSrc":"2580:12:101","nodeType":"YulExpressionStatement","src":"2580:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2544:5:101","nodeType":"YulIdentifier","src":"2544:5:101"},{"arguments":[{"name":"value","nativeSrc":"2569:5:101","nodeType":"YulIdentifier","src":"2569:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2551:17:101","nodeType":"YulIdentifier","src":"2551:17:101"},"nativeSrc":"2551:24:101","nodeType":"YulFunctionCall","src":"2551:24:101"}],"functionName":{"name":"eq","nativeSrc":"2541:2:101","nodeType":"YulIdentifier","src":"2541:2:101"},"nativeSrc":"2541:35:101","nodeType":"YulFunctionCall","src":"2541:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2534:6:101","nodeType":"YulIdentifier","src":"2534:6:101"},"nativeSrc":"2534:43:101","nodeType":"YulFunctionCall","src":"2534:43:101"},"nativeSrc":"2531:63:101","nodeType":"YulIf","src":"2531:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2478:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2514:5:101","nodeType":"YulTypedName","src":"2514:5:101","type":""}],"src":"2478:122:101"},{"body":{"nativeSrc":"2658:87:101","nodeType":"YulBlock","src":"2658:87:101","statements":[{"nativeSrc":"2668:29:101","nodeType":"YulAssignment","src":"2668:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2690:6:101","nodeType":"YulIdentifier","src":"2690:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2677:12:101","nodeType":"YulIdentifier","src":"2677:12:101"},"nativeSrc":"2677:20:101","nodeType":"YulFunctionCall","src":"2677:20:101"},"variableNames":[{"name":"value","nativeSrc":"2668:5:101","nodeType":"YulIdentifier","src":"2668:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2733:5:101","nodeType":"YulIdentifier","src":"2733:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2706:26:101","nodeType":"YulIdentifier","src":"2706:26:101"},"nativeSrc":"2706:33:101","nodeType":"YulFunctionCall","src":"2706:33:101"},"nativeSrc":"2706:33:101","nodeType":"YulExpressionStatement","src":"2706:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2606:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulTypedName","src":"2636:6:101","type":""},{"name":"end","nativeSrc":"2644:3:101","nodeType":"YulTypedName","src":"2644:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2652:5:101","nodeType":"YulTypedName","src":"2652:5:101","type":""}],"src":"2606:139:101"},{"body":{"nativeSrc":"2877:666:101","nodeType":"YulBlock","src":"2877:666:101","statements":[{"body":{"nativeSrc":"2921:83:101","nodeType":"YulBlock","src":"2921:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"2923:77:101","nodeType":"YulIdentifier","src":"2923:77:101"},"nativeSrc":"2923:79:101","nodeType":"YulFunctionCall","src":"2923:79:101"},"nativeSrc":"2923:79:101","nodeType":"YulExpressionStatement","src":"2923:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2898:3:101","nodeType":"YulIdentifier","src":"2898:3:101"},{"name":"headStart","nativeSrc":"2903:9:101","nodeType":"YulIdentifier","src":"2903:9:101"}],"functionName":{"name":"sub","nativeSrc":"2894:3:101","nodeType":"YulIdentifier","src":"2894:3:101"},"nativeSrc":"2894:19:101","nodeType":"YulFunctionCall","src":"2894:19:101"},{"kind":"number","nativeSrc":"2915:4:101","nodeType":"YulLiteral","src":"2915:4:101","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"2890:3:101","nodeType":"YulIdentifier","src":"2890:3:101"},"nativeSrc":"2890:30:101","nodeType":"YulFunctionCall","src":"2890:30:101"},"nativeSrc":"2887:117:101","nodeType":"YulIf","src":"2887:117:101"},{"nativeSrc":"3013:30:101","nodeType":"YulAssignment","src":"3013:30:101","value":{"arguments":[{"kind":"number","nativeSrc":"3038:4:101","nodeType":"YulLiteral","src":"3038:4:101","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"3022:15:101","nodeType":"YulIdentifier","src":"3022:15:101"},"nativeSrc":"3022:21:101","nodeType":"YulFunctionCall","src":"3022:21:101"},"variableNames":[{"name":"value","nativeSrc":"3013:5:101","nodeType":"YulIdentifier","src":"3013:5:101"}]},{"nativeSrc":"3053:151:101","nodeType":"YulBlock","src":"3053:151:101","statements":[{"nativeSrc":"3089:15:101","nodeType":"YulVariableDeclaration","src":"3089:15:101","value":{"kind":"number","nativeSrc":"3103:1:101","nodeType":"YulLiteral","src":"3103:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3093:6:101","nodeType":"YulTypedName","src":"3093:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3129:5:101","nodeType":"YulIdentifier","src":"3129:5:101"},{"kind":"number","nativeSrc":"3136:4:101","nodeType":"YulLiteral","src":"3136:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"3125:3:101","nodeType":"YulIdentifier","src":"3125:3:101"},"nativeSrc":"3125:16:101","nodeType":"YulFunctionCall","src":"3125:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3168:9:101","nodeType":"YulIdentifier","src":"3168:9:101"},{"name":"offset","nativeSrc":"3179:6:101","nodeType":"YulIdentifier","src":"3179:6:101"}],"functionName":{"name":"add","nativeSrc":"3164:3:101","nodeType":"YulIdentifier","src":"3164:3:101"},"nativeSrc":"3164:22:101","nodeType":"YulFunctionCall","src":"3164:22:101"},{"name":"end","nativeSrc":"3188:3:101","nodeType":"YulIdentifier","src":"3188:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3143:20:101","nodeType":"YulIdentifier","src":"3143:20:101"},"nativeSrc":"3143:49:101","nodeType":"YulFunctionCall","src":"3143:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3118:6:101","nodeType":"YulIdentifier","src":"3118:6:101"},"nativeSrc":"3118:75:101","nodeType":"YulFunctionCall","src":"3118:75:101"},"nativeSrc":"3118:75:101","nodeType":"YulExpressionStatement","src":"3118:75:101"}]},{"nativeSrc":"3214:151:101","nodeType":"YulBlock","src":"3214:151:101","statements":[{"nativeSrc":"3249:16:101","nodeType":"YulVariableDeclaration","src":"3249:16:101","value":{"kind":"number","nativeSrc":"3263:2:101","nodeType":"YulLiteral","src":"3263:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3253:6:101","nodeType":"YulTypedName","src":"3253:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3290:5:101","nodeType":"YulIdentifier","src":"3290:5:101"},{"kind":"number","nativeSrc":"3297:4:101","nodeType":"YulLiteral","src":"3297:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3286:3:101","nodeType":"YulIdentifier","src":"3286:3:101"},"nativeSrc":"3286:16:101","nodeType":"YulFunctionCall","src":"3286:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3329:9:101","nodeType":"YulIdentifier","src":"3329:9:101"},{"name":"offset","nativeSrc":"3340:6:101","nodeType":"YulIdentifier","src":"3340:6:101"}],"functionName":{"name":"add","nativeSrc":"3325:3:101","nodeType":"YulIdentifier","src":"3325:3:101"},"nativeSrc":"3325:22:101","nodeType":"YulFunctionCall","src":"3325:22:101"},{"name":"end","nativeSrc":"3349:3:101","nodeType":"YulIdentifier","src":"3349:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3304:20:101","nodeType":"YulIdentifier","src":"3304:20:101"},"nativeSrc":"3304:49:101","nodeType":"YulFunctionCall","src":"3304:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3279:6:101","nodeType":"YulIdentifier","src":"3279:6:101"},"nativeSrc":"3279:75:101","nodeType":"YulFunctionCall","src":"3279:75:101"},"nativeSrc":"3279:75:101","nodeType":"YulExpressionStatement","src":"3279:75:101"}]},{"nativeSrc":"3375:161:101","nodeType":"YulBlock","src":"3375:161:101","statements":[{"nativeSrc":"3420:16:101","nodeType":"YulVariableDeclaration","src":"3420:16:101","value":{"kind":"number","nativeSrc":"3434:2:101","nodeType":"YulLiteral","src":"3434:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3424:6:101","nodeType":"YulTypedName","src":"3424:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3461:5:101","nodeType":"YulIdentifier","src":"3461:5:101"},{"kind":"number","nativeSrc":"3468:4:101","nodeType":"YulLiteral","src":"3468:4:101","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3457:3:101","nodeType":"YulIdentifier","src":"3457:3:101"},"nativeSrc":"3457:16:101","nodeType":"YulFunctionCall","src":"3457:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3500:9:101","nodeType":"YulIdentifier","src":"3500:9:101"},{"name":"offset","nativeSrc":"3511:6:101","nodeType":"YulIdentifier","src":"3511:6:101"}],"functionName":{"name":"add","nativeSrc":"3496:3:101","nodeType":"YulIdentifier","src":"3496:3:101"},"nativeSrc":"3496:22:101","nodeType":"YulFunctionCall","src":"3496:22:101"},{"name":"end","nativeSrc":"3520:3:101","nodeType":"YulIdentifier","src":"3520:3:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3475:20:101","nodeType":"YulIdentifier","src":"3475:20:101"},"nativeSrc":"3475:49:101","nodeType":"YulFunctionCall","src":"3475:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3450:6:101","nodeType":"YulIdentifier","src":"3450:6:101"},"nativeSrc":"3450:75:101","nodeType":"YulFunctionCall","src":"3450:75:101"},"nativeSrc":"3450:75:101","nodeType":"YulExpressionStatement","src":"3450:75:101"}]}]},"name":"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"2793:750:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2852:9:101","nodeType":"YulTypedName","src":"2852:9:101","type":""},{"name":"end","nativeSrc":"2863:3:101","nodeType":"YulTypedName","src":"2863:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2871:5:101","nodeType":"YulTypedName","src":"2871:5:101","type":""}],"src":"2793:750:101"},{"body":{"nativeSrc":"3724:666:101","nodeType":"YulBlock","src":"3724:666:101","statements":[{"nativeSrc":"3734:119:101","nodeType":"YulAssignment","src":"3734:119:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3845:6:101","nodeType":"YulIdentifier","src":"3845:6:101"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"3759:85:101","nodeType":"YulIdentifier","src":"3759:85:101"},"nativeSrc":"3759:93:101","nodeType":"YulFunctionCall","src":"3759:93:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"3743:15:101","nodeType":"YulIdentifier","src":"3743:15:101"},"nativeSrc":"3743:110:101","nodeType":"YulFunctionCall","src":"3743:110:101"},"variableNames":[{"name":"array","nativeSrc":"3734:5:101","nodeType":"YulIdentifier","src":"3734:5:101"}]},{"nativeSrc":"3862:16:101","nodeType":"YulVariableDeclaration","src":"3862:16:101","value":{"name":"array","nativeSrc":"3873:5:101","nodeType":"YulIdentifier","src":"3873:5:101"},"variables":[{"name":"dst","nativeSrc":"3866:3:101","nodeType":"YulTypedName","src":"3866:3:101","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3895:5:101","nodeType":"YulIdentifier","src":"3895:5:101"},{"name":"length","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3888:6:101","nodeType":"YulIdentifier","src":"3888:6:101"},"nativeSrc":"3888:21:101","nodeType":"YulFunctionCall","src":"3888:21:101"},"nativeSrc":"3888:21:101","nodeType":"YulExpressionStatement","src":"3888:21:101"},{"nativeSrc":"3918:23:101","nodeType":"YulAssignment","src":"3918:23:101","value":{"arguments":[{"name":"array","nativeSrc":"3929:5:101","nodeType":"YulIdentifier","src":"3929:5:101"},{"kind":"number","nativeSrc":"3936:4:101","nodeType":"YulLiteral","src":"3936:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3925:3:101","nodeType":"YulIdentifier","src":"3925:3:101"},"nativeSrc":"3925:16:101","nodeType":"YulFunctionCall","src":"3925:16:101"},"variableNames":[{"name":"dst","nativeSrc":"3918:3:101","nodeType":"YulIdentifier","src":"3918:3:101"}]},{"nativeSrc":"3951:44:101","nodeType":"YulVariableDeclaration","src":"3951:44:101","value":{"arguments":[{"name":"offset","nativeSrc":"3969:6:101","nodeType":"YulIdentifier","src":"3969:6:101"},{"arguments":[{"name":"length","nativeSrc":"3981:6:101","nodeType":"YulIdentifier","src":"3981:6:101"},{"kind":"number","nativeSrc":"3989:4:101","nodeType":"YulLiteral","src":"3989:4:101","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"3977:3:101","nodeType":"YulIdentifier","src":"3977:3:101"},"nativeSrc":"3977:17:101","nodeType":"YulFunctionCall","src":"3977:17:101"}],"functionName":{"name":"add","nativeSrc":"3965:3:101","nodeType":"YulIdentifier","src":"3965:3:101"},"nativeSrc":"3965:30:101","nodeType":"YulFunctionCall","src":"3965:30:101"},"variables":[{"name":"srcEnd","nativeSrc":"3955:6:101","nodeType":"YulTypedName","src":"3955:6:101","type":""}]},{"body":{"nativeSrc":"4023:103:101","nodeType":"YulBlock","src":"4023:103:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4037:77:101","nodeType":"YulIdentifier","src":"4037:77:101"},"nativeSrc":"4037:79:101","nodeType":"YulFunctionCall","src":"4037:79:101"},"nativeSrc":"4037:79:101","nodeType":"YulExpressionStatement","src":"4037:79:101"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"4010:6:101","nodeType":"YulIdentifier","src":"4010:6:101"},{"name":"end","nativeSrc":"4018:3:101","nodeType":"YulIdentifier","src":"4018:3:101"}],"functionName":{"name":"gt","nativeSrc":"4007:2:101","nodeType":"YulIdentifier","src":"4007:2:101"},"nativeSrc":"4007:15:101","nodeType":"YulFunctionCall","src":"4007:15:101"},"nativeSrc":"4004:122:101","nodeType":"YulIf","src":"4004:122:101"},{"body":{"nativeSrc":"4211:173:101","nodeType":"YulBlock","src":"4211:173:101","statements":[{"nativeSrc":"4226:21:101","nodeType":"YulVariableDeclaration","src":"4226:21:101","value":{"name":"src","nativeSrc":"4244:3:101","nodeType":"YulIdentifier","src":"4244:3:101"},"variables":[{"name":"elementPos","nativeSrc":"4230:10:101","nodeType":"YulTypedName","src":"4230:10:101","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"4268:3:101","nodeType":"YulIdentifier","src":"4268:3:101"},{"arguments":[{"name":"elementPos","nativeSrc":"4323:10:101","nodeType":"YulIdentifier","src":"4323:10:101"},{"name":"end","nativeSrc":"4335:3:101","nodeType":"YulIdentifier","src":"4335:3:101"}],"functionName":{"name":"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"4273:49:101","nodeType":"YulIdentifier","src":"4273:49:101"},"nativeSrc":"4273:66:101","nodeType":"YulFunctionCall","src":"4273:66:101"}],"functionName":{"name":"mstore","nativeSrc":"4261:6:101","nodeType":"YulIdentifier","src":"4261:6:101"},"nativeSrc":"4261:79:101","nodeType":"YulFunctionCall","src":"4261:79:101"},"nativeSrc":"4261:79:101","nodeType":"YulExpressionStatement","src":"4261:79:101"},{"nativeSrc":"4353:21:101","nodeType":"YulAssignment","src":"4353:21:101","value":{"arguments":[{"name":"dst","nativeSrc":"4364:3:101","nodeType":"YulIdentifier","src":"4364:3:101"},{"kind":"number","nativeSrc":"4369:4:101","nodeType":"YulLiteral","src":"4369:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4360:3:101","nodeType":"YulIdentifier","src":"4360:3:101"},"nativeSrc":"4360:14:101","nodeType":"YulFunctionCall","src":"4360:14:101"},"variableNames":[{"name":"dst","nativeSrc":"4353:3:101","nodeType":"YulIdentifier","src":"4353:3:101"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"4164:3:101","nodeType":"YulIdentifier","src":"4164:3:101"},{"name":"srcEnd","nativeSrc":"4169:6:101","nodeType":"YulIdentifier","src":"4169:6:101"}],"functionName":{"name":"lt","nativeSrc":"4161:2:101","nodeType":"YulIdentifier","src":"4161:2:101"},"nativeSrc":"4161:15:101","nodeType":"YulFunctionCall","src":"4161:15:101"},"nativeSrc":"4135:249:101","nodeType":"YulForLoop","post":{"nativeSrc":"4177:25:101","nodeType":"YulBlock","src":"4177:25:101","statements":[{"nativeSrc":"4179:21:101","nodeType":"YulAssignment","src":"4179:21:101","value":{"arguments":[{"name":"src","nativeSrc":"4190:3:101","nodeType":"YulIdentifier","src":"4190:3:101"},{"kind":"number","nativeSrc":"4195:4:101","nodeType":"YulLiteral","src":"4195:4:101","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"4186:3:101","nodeType":"YulIdentifier","src":"4186:3:101"},"nativeSrc":"4186:14:101","nodeType":"YulFunctionCall","src":"4186:14:101"},"variableNames":[{"name":"src","nativeSrc":"4179:3:101","nodeType":"YulIdentifier","src":"4179:3:101"}]}]},"pre":{"nativeSrc":"4139:21:101","nodeType":"YulBlock","src":"4139:21:101","statements":[{"nativeSrc":"4141:17:101","nodeType":"YulVariableDeclaration","src":"4141:17:101","value":{"name":"offset","nativeSrc":"4152:6:101","nodeType":"YulIdentifier","src":"4152:6:101"},"variables":[{"name":"src","nativeSrc":"4145:3:101","nodeType":"YulTypedName","src":"4145:3:101","type":""}]}]},"src":"4135:249:101"}]},"name":"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"3593:797:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3694:6:101","nodeType":"YulTypedName","src":"3694:6:101","type":""},{"name":"length","nativeSrc":"3702:6:101","nodeType":"YulTypedName","src":"3702:6:101","type":""},{"name":"end","nativeSrc":"3710:3:101","nodeType":"YulTypedName","src":"3710:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3718:5:101","nodeType":"YulTypedName","src":"3718:5:101","type":""}],"src":"3593:797:101"},{"body":{"nativeSrc":"4546:322:101","nodeType":"YulBlock","src":"4546:322:101","statements":[{"body":{"nativeSrc":"4595:83:101","nodeType":"YulBlock","src":"4595:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4597:77:101","nodeType":"YulIdentifier","src":"4597:77:101"},"nativeSrc":"4597:79:101","nodeType":"YulFunctionCall","src":"4597:79:101"},"nativeSrc":"4597:79:101","nodeType":"YulExpressionStatement","src":"4597:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4574:6:101","nodeType":"YulIdentifier","src":"4574:6:101"},{"kind":"number","nativeSrc":"4582:4:101","nodeType":"YulLiteral","src":"4582:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4570:3:101","nodeType":"YulIdentifier","src":"4570:3:101"},"nativeSrc":"4570:17:101","nodeType":"YulFunctionCall","src":"4570:17:101"},{"name":"end","nativeSrc":"4589:3:101","nodeType":"YulIdentifier","src":"4589:3:101"}],"functionName":{"name":"slt","nativeSrc":"4566:3:101","nodeType":"YulIdentifier","src":"4566:3:101"},"nativeSrc":"4566:27:101","nodeType":"YulFunctionCall","src":"4566:27:101"}],"functionName":{"name":"iszero","nativeSrc":"4559:6:101","nodeType":"YulIdentifier","src":"4559:6:101"},"nativeSrc":"4559:35:101","nodeType":"YulFunctionCall","src":"4559:35:101"},"nativeSrc":"4556:122:101","nodeType":"YulIf","src":"4556:122:101"},{"nativeSrc":"4687:34:101","nodeType":"YulVariableDeclaration","src":"4687:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"4714:6:101","nodeType":"YulIdentifier","src":"4714:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"4701:12:101","nodeType":"YulIdentifier","src":"4701:12:101"},"nativeSrc":"4701:20:101","nodeType":"YulFunctionCall","src":"4701:20:101"},"variables":[{"name":"length","nativeSrc":"4691:6:101","nodeType":"YulTypedName","src":"4691:6:101","type":""}]},{"nativeSrc":"4730:132:101","nodeType":"YulAssignment","src":"4730:132:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4835:6:101","nodeType":"YulIdentifier","src":"4835:6:101"},{"kind":"number","nativeSrc":"4843:4:101","nodeType":"YulLiteral","src":"4843:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4831:3:101","nodeType":"YulIdentifier","src":"4831:3:101"},"nativeSrc":"4831:17:101","nodeType":"YulFunctionCall","src":"4831:17:101"},{"name":"length","nativeSrc":"4850:6:101","nodeType":"YulIdentifier","src":"4850:6:101"},{"name":"end","nativeSrc":"4858:3:101","nodeType":"YulIdentifier","src":"4858:3:101"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"4739:91:101","nodeType":"YulIdentifier","src":"4739:91:101"},"nativeSrc":"4739:123:101","nodeType":"YulFunctionCall","src":"4739:123:101"},"variableNames":[{"name":"array","nativeSrc":"4730:5:101","nodeType":"YulIdentifier","src":"4730:5:101"}]}]},"name":"abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"4440:428:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4524:6:101","nodeType":"YulTypedName","src":"4524:6:101","type":""},{"name":"end","nativeSrc":"4532:3:101","nodeType":"YulTypedName","src":"4532:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4540:5:101","nodeType":"YulTypedName","src":"4540:5:101","type":""}],"src":"4440:428:101"},{"body":{"nativeSrc":"4994:477:101","nodeType":"YulBlock","src":"4994:477:101","statements":[{"body":{"nativeSrc":"5040:83:101","nodeType":"YulBlock","src":"5040:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5042:77:101","nodeType":"YulIdentifier","src":"5042:77:101"},"nativeSrc":"5042:79:101","nodeType":"YulFunctionCall","src":"5042:79:101"},"nativeSrc":"5042:79:101","nodeType":"YulExpressionStatement","src":"5042:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5015:7:101","nodeType":"YulIdentifier","src":"5015:7:101"},{"name":"headStart","nativeSrc":"5024:9:101","nodeType":"YulIdentifier","src":"5024:9:101"}],"functionName":{"name":"sub","nativeSrc":"5011:3:101","nodeType":"YulIdentifier","src":"5011:3:101"},"nativeSrc":"5011:23:101","nodeType":"YulFunctionCall","src":"5011:23:101"},{"kind":"number","nativeSrc":"5036:2:101","nodeType":"YulLiteral","src":"5036:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5007:3:101","nodeType":"YulIdentifier","src":"5007:3:101"},"nativeSrc":"5007:32:101","nodeType":"YulFunctionCall","src":"5007:32:101"},"nativeSrc":"5004:119:101","nodeType":"YulIf","src":"5004:119:101"},{"nativeSrc":"5133:331:101","nodeType":"YulBlock","src":"5133:331:101","statements":[{"nativeSrc":"5148:45:101","nodeType":"YulVariableDeclaration","src":"5148:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5179:9:101","nodeType":"YulIdentifier","src":"5179:9:101"},{"kind":"number","nativeSrc":"5190:1:101","nodeType":"YulLiteral","src":"5190:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5175:3:101","nodeType":"YulIdentifier","src":"5175:3:101"},"nativeSrc":"5175:17:101","nodeType":"YulFunctionCall","src":"5175:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"5162:12:101","nodeType":"YulIdentifier","src":"5162:12:101"},"nativeSrc":"5162:31:101","nodeType":"YulFunctionCall","src":"5162:31:101"},"variables":[{"name":"offset","nativeSrc":"5152:6:101","nodeType":"YulTypedName","src":"5152:6:101","type":""}]},{"body":{"nativeSrc":"5240:83:101","nodeType":"YulBlock","src":"5240:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5242:77:101","nodeType":"YulIdentifier","src":"5242:77:101"},"nativeSrc":"5242:79:101","nodeType":"YulFunctionCall","src":"5242:79:101"},"nativeSrc":"5242:79:101","nodeType":"YulExpressionStatement","src":"5242:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5212:6:101","nodeType":"YulIdentifier","src":"5212:6:101"},{"kind":"number","nativeSrc":"5220:18:101","nodeType":"YulLiteral","src":"5220:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5209:2:101","nodeType":"YulIdentifier","src":"5209:2:101"},"nativeSrc":"5209:30:101","nodeType":"YulFunctionCall","src":"5209:30:101"},"nativeSrc":"5206:117:101","nodeType":"YulIf","src":"5206:117:101"},{"nativeSrc":"5337:117:101","nodeType":"YulAssignment","src":"5337:117:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5426:9:101","nodeType":"YulIdentifier","src":"5426:9:101"},{"name":"offset","nativeSrc":"5437:6:101","nodeType":"YulIdentifier","src":"5437:6:101"}],"functionName":{"name":"add","nativeSrc":"5422:3:101","nodeType":"YulIdentifier","src":"5422:3:101"},"nativeSrc":"5422:22:101","nodeType":"YulFunctionCall","src":"5422:22:101"},{"name":"dataEnd","nativeSrc":"5446:7:101","nodeType":"YulIdentifier","src":"5446:7:101"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"5347:74:101","nodeType":"YulIdentifier","src":"5347:74:101"},"nativeSrc":"5347:107:101","nodeType":"YulFunctionCall","src":"5347:107:101"},"variableNames":[{"name":"value0","nativeSrc":"5337:6:101","nodeType":"YulIdentifier","src":"5337:6:101"}]}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"4874:597:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4964:9:101","nodeType":"YulTypedName","src":"4964:9:101","type":""},{"name":"dataEnd","nativeSrc":"4975:7:101","nodeType":"YulTypedName","src":"4975:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4987:6:101","nodeType":"YulTypedName","src":"4987:6:101","type":""}],"src":"4874:597:101"},{"body":{"nativeSrc":"5560:391:101","nodeType":"YulBlock","src":"5560:391:101","statements":[{"body":{"nativeSrc":"5606:83:101","nodeType":"YulBlock","src":"5606:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5608:77:101","nodeType":"YulIdentifier","src":"5608:77:101"},"nativeSrc":"5608:79:101","nodeType":"YulFunctionCall","src":"5608:79:101"},"nativeSrc":"5608:79:101","nodeType":"YulExpressionStatement","src":"5608:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5581:7:101","nodeType":"YulIdentifier","src":"5581:7:101"},{"name":"headStart","nativeSrc":"5590:9:101","nodeType":"YulIdentifier","src":"5590:9:101"}],"functionName":{"name":"sub","nativeSrc":"5577:3:101","nodeType":"YulIdentifier","src":"5577:3:101"},"nativeSrc":"5577:23:101","nodeType":"YulFunctionCall","src":"5577:23:101"},{"kind":"number","nativeSrc":"5602:2:101","nodeType":"YulLiteral","src":"5602:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5573:3:101","nodeType":"YulIdentifier","src":"5573:3:101"},"nativeSrc":"5573:32:101","nodeType":"YulFunctionCall","src":"5573:32:101"},"nativeSrc":"5570:119:101","nodeType":"YulIf","src":"5570:119:101"},{"nativeSrc":"5699:117:101","nodeType":"YulBlock","src":"5699:117:101","statements":[{"nativeSrc":"5714:15:101","nodeType":"YulVariableDeclaration","src":"5714:15:101","value":{"kind":"number","nativeSrc":"5728:1:101","nodeType":"YulLiteral","src":"5728:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5718:6:101","nodeType":"YulTypedName","src":"5718:6:101","type":""}]},{"nativeSrc":"5743:63:101","nodeType":"YulAssignment","src":"5743:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5778:9:101","nodeType":"YulIdentifier","src":"5778:9:101"},{"name":"offset","nativeSrc":"5789:6:101","nodeType":"YulIdentifier","src":"5789:6:101"}],"functionName":{"name":"add","nativeSrc":"5774:3:101","nodeType":"YulIdentifier","src":"5774:3:101"},"nativeSrc":"5774:22:101","nodeType":"YulFunctionCall","src":"5774:22:101"},{"name":"dataEnd","nativeSrc":"5798:7:101","nodeType":"YulIdentifier","src":"5798:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5753:20:101","nodeType":"YulIdentifier","src":"5753:20:101"},"nativeSrc":"5753:53:101","nodeType":"YulFunctionCall","src":"5753:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5743:6:101","nodeType":"YulIdentifier","src":"5743:6:101"}]}]},{"nativeSrc":"5826:118:101","nodeType":"YulBlock","src":"5826:118:101","statements":[{"nativeSrc":"5841:16:101","nodeType":"YulVariableDeclaration","src":"5841:16:101","value":{"kind":"number","nativeSrc":"5855:2:101","nodeType":"YulLiteral","src":"5855:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5845:6:101","nodeType":"YulTypedName","src":"5845:6:101","type":""}]},{"nativeSrc":"5871:63:101","nodeType":"YulAssignment","src":"5871:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5906:9:101","nodeType":"YulIdentifier","src":"5906:9:101"},{"name":"offset","nativeSrc":"5917:6:101","nodeType":"YulIdentifier","src":"5917:6:101"}],"functionName":{"name":"add","nativeSrc":"5902:3:101","nodeType":"YulIdentifier","src":"5902:3:101"},"nativeSrc":"5902:22:101","nodeType":"YulFunctionCall","src":"5902:22:101"},{"name":"dataEnd","nativeSrc":"5926:7:101","nodeType":"YulIdentifier","src":"5926:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5881:20:101","nodeType":"YulIdentifier","src":"5881:20:101"},"nativeSrc":"5881:53:101","nodeType":"YulFunctionCall","src":"5881:53:101"},"variableNames":[{"name":"value1","nativeSrc":"5871:6:101","nodeType":"YulIdentifier","src":"5871:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"5477:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5522:9:101","nodeType":"YulTypedName","src":"5522:9:101","type":""},{"name":"dataEnd","nativeSrc":"5533:7:101","nodeType":"YulTypedName","src":"5533:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5545:6:101","nodeType":"YulTypedName","src":"5545:6:101","type":""},{"name":"value1","nativeSrc":"5553:6:101","nodeType":"YulTypedName","src":"5553:6:101","type":""}],"src":"5477:474:101"},{"body":{"nativeSrc":"6023:263:101","nodeType":"YulBlock","src":"6023:263:101","statements":[{"body":{"nativeSrc":"6069:83:101","nodeType":"YulBlock","src":"6069:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6071:77:101","nodeType":"YulIdentifier","src":"6071:77:101"},"nativeSrc":"6071:79:101","nodeType":"YulFunctionCall","src":"6071:79:101"},"nativeSrc":"6071:79:101","nodeType":"YulExpressionStatement","src":"6071:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6044:7:101","nodeType":"YulIdentifier","src":"6044:7:101"},{"name":"headStart","nativeSrc":"6053:9:101","nodeType":"YulIdentifier","src":"6053:9:101"}],"functionName":{"name":"sub","nativeSrc":"6040:3:101","nodeType":"YulIdentifier","src":"6040:3:101"},"nativeSrc":"6040:23:101","nodeType":"YulFunctionCall","src":"6040:23:101"},{"kind":"number","nativeSrc":"6065:2:101","nodeType":"YulLiteral","src":"6065:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6036:3:101","nodeType":"YulIdentifier","src":"6036:3:101"},"nativeSrc":"6036:32:101","nodeType":"YulFunctionCall","src":"6036:32:101"},"nativeSrc":"6033:119:101","nodeType":"YulIf","src":"6033:119:101"},{"nativeSrc":"6162:117:101","nodeType":"YulBlock","src":"6162:117:101","statements":[{"nativeSrc":"6177:15:101","nodeType":"YulVariableDeclaration","src":"6177:15:101","value":{"kind":"number","nativeSrc":"6191:1:101","nodeType":"YulLiteral","src":"6191:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6181:6:101","nodeType":"YulTypedName","src":"6181:6:101","type":""}]},{"nativeSrc":"6206:63:101","nodeType":"YulAssignment","src":"6206:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6241:9:101","nodeType":"YulIdentifier","src":"6241:9:101"},{"name":"offset","nativeSrc":"6252:6:101","nodeType":"YulIdentifier","src":"6252:6:101"}],"functionName":{"name":"add","nativeSrc":"6237:3:101","nodeType":"YulIdentifier","src":"6237:3:101"},"nativeSrc":"6237:22:101","nodeType":"YulFunctionCall","src":"6237:22:101"},{"name":"dataEnd","nativeSrc":"6261:7:101","nodeType":"YulIdentifier","src":"6261:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6216:20:101","nodeType":"YulIdentifier","src":"6216:20:101"},"nativeSrc":"6216:53:101","nodeType":"YulFunctionCall","src":"6216:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6206:6:101","nodeType":"YulIdentifier","src":"6206:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5957:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5993:9:101","nodeType":"YulTypedName","src":"5993:9:101","type":""},{"name":"dataEnd","nativeSrc":"6004:7:101","nodeType":"YulTypedName","src":"6004:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6016:6:101","nodeType":"YulTypedName","src":"6016:6:101","type":""}],"src":"5957:329:101"},{"body":{"nativeSrc":"6357:53:101","nodeType":"YulBlock","src":"6357:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6374:3:101","nodeType":"YulIdentifier","src":"6374:3:101"},{"arguments":[{"name":"value","nativeSrc":"6397:5:101","nodeType":"YulIdentifier","src":"6397:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6379:17:101","nodeType":"YulIdentifier","src":"6379:17:101"},"nativeSrc":"6379:24:101","nodeType":"YulFunctionCall","src":"6379:24:101"}],"functionName":{"name":"mstore","nativeSrc":"6367:6:101","nodeType":"YulIdentifier","src":"6367:6:101"},"nativeSrc":"6367:37:101","nodeType":"YulFunctionCall","src":"6367:37:101"},"nativeSrc":"6367:37:101","nodeType":"YulExpressionStatement","src":"6367:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6292:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6345:5:101","nodeType":"YulTypedName","src":"6345:5:101","type":""},{"name":"pos","nativeSrc":"6352:3:101","nodeType":"YulTypedName","src":"6352:3:101","type":""}],"src":"6292:118:101"},{"body":{"nativeSrc":"6481:53:101","nodeType":"YulBlock","src":"6481:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6498:3:101","nodeType":"YulIdentifier","src":"6498:3:101"},{"arguments":[{"name":"value","nativeSrc":"6521:5:101","nodeType":"YulIdentifier","src":"6521:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6503:17:101","nodeType":"YulIdentifier","src":"6503:17:101"},"nativeSrc":"6503:24:101","nodeType":"YulFunctionCall","src":"6503:24:101"}],"functionName":{"name":"mstore","nativeSrc":"6491:6:101","nodeType":"YulIdentifier","src":"6491:6:101"},"nativeSrc":"6491:37:101","nodeType":"YulFunctionCall","src":"6491:37:101"},"nativeSrc":"6491:37:101","nodeType":"YulExpressionStatement","src":"6491:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6416:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6469:5:101","nodeType":"YulTypedName","src":"6469:5:101","type":""},{"name":"pos","nativeSrc":"6476:3:101","nodeType":"YulTypedName","src":"6476:3:101","type":""}],"src":"6416:118:101"},{"body":{"nativeSrc":"6694:288:101","nodeType":"YulBlock","src":"6694:288:101","statements":[{"nativeSrc":"6704:26:101","nodeType":"YulAssignment","src":"6704:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6716:9:101","nodeType":"YulIdentifier","src":"6716:9:101"},{"kind":"number","nativeSrc":"6727:2:101","nodeType":"YulLiteral","src":"6727:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6712:3:101","nodeType":"YulIdentifier","src":"6712:3:101"},"nativeSrc":"6712:18:101","nodeType":"YulFunctionCall","src":"6712:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6704:4:101","nodeType":"YulIdentifier","src":"6704:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6784:6:101","nodeType":"YulIdentifier","src":"6784:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6797:9:101","nodeType":"YulIdentifier","src":"6797:9:101"},{"kind":"number","nativeSrc":"6808:1:101","nodeType":"YulLiteral","src":"6808:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6793:3:101","nodeType":"YulIdentifier","src":"6793:3:101"},"nativeSrc":"6793:17:101","nodeType":"YulFunctionCall","src":"6793:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6740:43:101","nodeType":"YulIdentifier","src":"6740:43:101"},"nativeSrc":"6740:71:101","nodeType":"YulFunctionCall","src":"6740:71:101"},"nativeSrc":"6740:71:101","nodeType":"YulExpressionStatement","src":"6740:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"6865:6:101","nodeType":"YulIdentifier","src":"6865:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6878:9:101","nodeType":"YulIdentifier","src":"6878:9:101"},{"kind":"number","nativeSrc":"6889:2:101","nodeType":"YulLiteral","src":"6889:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6874:3:101","nodeType":"YulIdentifier","src":"6874:3:101"},"nativeSrc":"6874:18:101","nodeType":"YulFunctionCall","src":"6874:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6821:43:101","nodeType":"YulIdentifier","src":"6821:43:101"},"nativeSrc":"6821:72:101","nodeType":"YulFunctionCall","src":"6821:72:101"},"nativeSrc":"6821:72:101","nodeType":"YulExpressionStatement","src":"6821:72:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"6947:6:101","nodeType":"YulIdentifier","src":"6947:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6960:9:101","nodeType":"YulIdentifier","src":"6960:9:101"},{"kind":"number","nativeSrc":"6971:2:101","nodeType":"YulLiteral","src":"6971:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"},"nativeSrc":"6956:18:101","nodeType":"YulFunctionCall","src":"6956:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6903:43:101","nodeType":"YulIdentifier","src":"6903:43:101"},"nativeSrc":"6903:72:101","nodeType":"YulFunctionCall","src":"6903:72:101"},"nativeSrc":"6903:72:101","nodeType":"YulExpressionStatement","src":"6903:72:101"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"6540:442:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6650:9:101","nodeType":"YulTypedName","src":"6650:9:101","type":""},{"name":"value2","nativeSrc":"6662:6:101","nodeType":"YulTypedName","src":"6662:6:101","type":""},{"name":"value1","nativeSrc":"6670:6:101","nodeType":"YulTypedName","src":"6670:6:101","type":""},{"name":"value0","nativeSrc":"6678:6:101","nodeType":"YulTypedName","src":"6678:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6689:4:101","nodeType":"YulTypedName","src":"6689:4:101","type":""}],"src":"6540:442:101"},{"body":{"nativeSrc":"7083:292:101","nodeType":"YulBlock","src":"7083:292:101","statements":[{"body":{"nativeSrc":"7129:83:101","nodeType":"YulBlock","src":"7129:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7131:77:101","nodeType":"YulIdentifier","src":"7131:77:101"},"nativeSrc":"7131:79:101","nodeType":"YulFunctionCall","src":"7131:79:101"},"nativeSrc":"7131:79:101","nodeType":"YulExpressionStatement","src":"7131:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7104:7:101","nodeType":"YulIdentifier","src":"7104:7:101"},{"name":"headStart","nativeSrc":"7113:9:101","nodeType":"YulIdentifier","src":"7113:9:101"}],"functionName":{"name":"sub","nativeSrc":"7100:3:101","nodeType":"YulIdentifier","src":"7100:3:101"},"nativeSrc":"7100:23:101","nodeType":"YulFunctionCall","src":"7100:23:101"},{"kind":"number","nativeSrc":"7125:2:101","nodeType":"YulLiteral","src":"7125:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7096:3:101","nodeType":"YulIdentifier","src":"7096:3:101"},"nativeSrc":"7096:32:101","nodeType":"YulFunctionCall","src":"7096:32:101"},"nativeSrc":"7093:119:101","nodeType":"YulIf","src":"7093:119:101"},{"nativeSrc":"7222:146:101","nodeType":"YulBlock","src":"7222:146:101","statements":[{"nativeSrc":"7237:15:101","nodeType":"YulVariableDeclaration","src":"7237:15:101","value":{"kind":"number","nativeSrc":"7251:1:101","nodeType":"YulLiteral","src":"7251:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7241:6:101","nodeType":"YulTypedName","src":"7241:6:101","type":""}]},{"nativeSrc":"7266:92:101","nodeType":"YulAssignment","src":"7266:92:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7330:9:101","nodeType":"YulIdentifier","src":"7330:9:101"},{"name":"offset","nativeSrc":"7341:6:101","nodeType":"YulIdentifier","src":"7341:6:101"}],"functionName":{"name":"add","nativeSrc":"7326:3:101","nodeType":"YulIdentifier","src":"7326:3:101"},"nativeSrc":"7326:22:101","nodeType":"YulFunctionCall","src":"7326:22:101"},{"name":"dataEnd","nativeSrc":"7350:7:101","nodeType":"YulIdentifier","src":"7350:7:101"}],"functionName":{"name":"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"7276:49:101","nodeType":"YulIdentifier","src":"7276:49:101"},"nativeSrc":"7276:82:101","nodeType":"YulFunctionCall","src":"7276:82:101"},"variableNames":[{"name":"value0","nativeSrc":"7266:6:101","nodeType":"YulIdentifier","src":"7266:6:101"}]}]}]},"name":"abi_decode_tuple_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"6988:387:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7053:9:101","nodeType":"YulTypedName","src":"7053:9:101","type":""},{"name":"dataEnd","nativeSrc":"7064:7:101","nodeType":"YulTypedName","src":"7064:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7076:6:101","nodeType":"YulTypedName","src":"7076:6:101","type":""}],"src":"6988:387:101"},{"body":{"nativeSrc":"7479:124:101","nodeType":"YulBlock","src":"7479:124:101","statements":[{"nativeSrc":"7489:26:101","nodeType":"YulAssignment","src":"7489:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7501:9:101","nodeType":"YulIdentifier","src":"7501:9:101"},{"kind":"number","nativeSrc":"7512:2:101","nodeType":"YulLiteral","src":"7512:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7497:3:101","nodeType":"YulIdentifier","src":"7497:3:101"},"nativeSrc":"7497:18:101","nodeType":"YulFunctionCall","src":"7497:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7489:4:101","nodeType":"YulIdentifier","src":"7489:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7569:6:101","nodeType":"YulIdentifier","src":"7569:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"7582:9:101","nodeType":"YulIdentifier","src":"7582:9:101"},{"kind":"number","nativeSrc":"7593:1:101","nodeType":"YulLiteral","src":"7593:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7578:3:101","nodeType":"YulIdentifier","src":"7578:3:101"},"nativeSrc":"7578:17:101","nodeType":"YulFunctionCall","src":"7578:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7525:43:101","nodeType":"YulIdentifier","src":"7525:43:101"},"nativeSrc":"7525:71:101","nodeType":"YulFunctionCall","src":"7525:71:101"},"nativeSrc":"7525:71:101","nodeType":"YulExpressionStatement","src":"7525:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7381:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7451:9:101","nodeType":"YulTypedName","src":"7451:9:101","type":""},{"name":"value0","nativeSrc":"7463:6:101","nodeType":"YulTypedName","src":"7463:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7474:4:101","nodeType":"YulTypedName","src":"7474:4:101","type":""}],"src":"7381:222:101"},{"body":{"nativeSrc":"7707:124:101","nodeType":"YulBlock","src":"7707:124:101","statements":[{"nativeSrc":"7717:26:101","nodeType":"YulAssignment","src":"7717:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7729:9:101","nodeType":"YulIdentifier","src":"7729:9:101"},{"kind":"number","nativeSrc":"7740:2:101","nodeType":"YulLiteral","src":"7740:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7725:3:101","nodeType":"YulIdentifier","src":"7725:3:101"},"nativeSrc":"7725:18:101","nodeType":"YulFunctionCall","src":"7725:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7717:4:101","nodeType":"YulIdentifier","src":"7717:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7797:6:101","nodeType":"YulIdentifier","src":"7797:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"7810:9:101","nodeType":"YulIdentifier","src":"7810:9:101"},{"kind":"number","nativeSrc":"7821:1:101","nodeType":"YulLiteral","src":"7821:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7806:3:101","nodeType":"YulIdentifier","src":"7806:3:101"},"nativeSrc":"7806:17:101","nodeType":"YulFunctionCall","src":"7806:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7753:43:101","nodeType":"YulIdentifier","src":"7753:43:101"},"nativeSrc":"7753:71:101","nodeType":"YulFunctionCall","src":"7753:71:101"},"nativeSrc":"7753:71:101","nodeType":"YulExpressionStatement","src":"7753:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7609:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7679:9:101","nodeType":"YulTypedName","src":"7679:9:101","type":""},{"name":"value0","nativeSrc":"7691:6:101","nodeType":"YulTypedName","src":"7691:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7702:4:101","nodeType":"YulTypedName","src":"7702:4:101","type":""}],"src":"7609:222:101"},{"body":{"nativeSrc":"7869:28:101","nodeType":"YulBlock","src":"7869:28:101","statements":[{"nativeSrc":"7879:12:101","nodeType":"YulAssignment","src":"7879:12:101","value":{"name":"value","nativeSrc":"7886:5:101","nodeType":"YulIdentifier","src":"7886:5:101"},"variableNames":[{"name":"ret","nativeSrc":"7879:3:101","nodeType":"YulIdentifier","src":"7879:3:101"}]}]},"name":"identity","nativeSrc":"7837:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7855:5:101","nodeType":"YulTypedName","src":"7855:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"7865:3:101","nodeType":"YulTypedName","src":"7865:3:101","type":""}],"src":"7837:60:101"},{"body":{"nativeSrc":"7963:82:101","nodeType":"YulBlock","src":"7963:82:101","statements":[{"nativeSrc":"7973:66:101","nodeType":"YulAssignment","src":"7973:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8031:5:101","nodeType":"YulIdentifier","src":"8031:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"8013:17:101","nodeType":"YulIdentifier","src":"8013:17:101"},"nativeSrc":"8013:24:101","nodeType":"YulFunctionCall","src":"8013:24:101"}],"functionName":{"name":"identity","nativeSrc":"8004:8:101","nodeType":"YulIdentifier","src":"8004:8:101"},"nativeSrc":"8004:34:101","nodeType":"YulFunctionCall","src":"8004:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"7986:17:101","nodeType":"YulIdentifier","src":"7986:17:101"},"nativeSrc":"7986:53:101","nodeType":"YulFunctionCall","src":"7986:53:101"},"variableNames":[{"name":"converted","nativeSrc":"7973:9:101","nodeType":"YulIdentifier","src":"7973:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"7903:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7943:5:101","nodeType":"YulTypedName","src":"7943:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7953:9:101","nodeType":"YulTypedName","src":"7953:9:101","type":""}],"src":"7903:142:101"},{"body":{"nativeSrc":"8111:66:101","nodeType":"YulBlock","src":"8111:66:101","statements":[{"nativeSrc":"8121:50:101","nodeType":"YulAssignment","src":"8121:50:101","value":{"arguments":[{"name":"value","nativeSrc":"8165:5:101","nodeType":"YulIdentifier","src":"8165:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"8134:30:101","nodeType":"YulIdentifier","src":"8134:30:101"},"nativeSrc":"8134:37:101","nodeType":"YulFunctionCall","src":"8134:37:101"},"variableNames":[{"name":"converted","nativeSrc":"8121:9:101","nodeType":"YulIdentifier","src":"8121:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"8051:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8091:5:101","nodeType":"YulTypedName","src":"8091:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8101:9:101","nodeType":"YulTypedName","src":"8101:9:101","type":""}],"src":"8051:126:101"},{"body":{"nativeSrc":"8275:66:101","nodeType":"YulBlock","src":"8275:66:101","statements":[{"nativeSrc":"8285:50:101","nodeType":"YulAssignment","src":"8285:50:101","value":{"arguments":[{"name":"value","nativeSrc":"8329:5:101","nodeType":"YulIdentifier","src":"8329:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"8298:30:101","nodeType":"YulIdentifier","src":"8298:30:101"},"nativeSrc":"8298:37:101","nodeType":"YulFunctionCall","src":"8298:37:101"},"variableNames":[{"name":"converted","nativeSrc":"8285:9:101","nodeType":"YulIdentifier","src":"8285:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"8183:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8255:5:101","nodeType":"YulTypedName","src":"8255:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8265:9:101","nodeType":"YulTypedName","src":"8265:9:101","type":""}],"src":"8183:158:101"},{"body":{"nativeSrc":"8444:98:101","nodeType":"YulBlock","src":"8444:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8461:3:101","nodeType":"YulIdentifier","src":"8461:3:101"},{"arguments":[{"name":"value","nativeSrc":"8529:5:101","nodeType":"YulIdentifier","src":"8529:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"8466:62:101","nodeType":"YulIdentifier","src":"8466:62:101"},"nativeSrc":"8466:69:101","nodeType":"YulFunctionCall","src":"8466:69:101"}],"functionName":{"name":"mstore","nativeSrc":"8454:6:101","nodeType":"YulIdentifier","src":"8454:6:101"},"nativeSrc":"8454:82:101","nodeType":"YulFunctionCall","src":"8454:82:101"},"nativeSrc":"8454:82:101","nodeType":"YulExpressionStatement","src":"8454:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"8347:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8432:5:101","nodeType":"YulTypedName","src":"8432:5:101","type":""},{"name":"pos","nativeSrc":"8439:3:101","nodeType":"YulTypedName","src":"8439:3:101","type":""}],"src":"8347:195:101"},{"body":{"nativeSrc":"8678:156:101","nodeType":"YulBlock","src":"8678:156:101","statements":[{"nativeSrc":"8688:26:101","nodeType":"YulAssignment","src":"8688:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8700:9:101","nodeType":"YulIdentifier","src":"8700:9:101"},{"kind":"number","nativeSrc":"8711:2:101","nodeType":"YulLiteral","src":"8711:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8696:3:101","nodeType":"YulIdentifier","src":"8696:3:101"},"nativeSrc":"8696:18:101","nodeType":"YulFunctionCall","src":"8696:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8688:4:101","nodeType":"YulIdentifier","src":"8688:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8800:6:101","nodeType":"YulIdentifier","src":"8800:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8813:9:101","nodeType":"YulIdentifier","src":"8813:9:101"},{"kind":"number","nativeSrc":"8824:1:101","nodeType":"YulLiteral","src":"8824:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8809:3:101","nodeType":"YulIdentifier","src":"8809:3:101"},"nativeSrc":"8809:17:101","nodeType":"YulFunctionCall","src":"8809:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"8724:75:101","nodeType":"YulIdentifier","src":"8724:75:101"},"nativeSrc":"8724:103:101","nodeType":"YulFunctionCall","src":"8724:103:101"},"nativeSrc":"8724:103:101","nodeType":"YulExpressionStatement","src":"8724:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"8548:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8650:9:101","nodeType":"YulTypedName","src":"8650:9:101","type":""},{"name":"value0","nativeSrc":"8662:6:101","nodeType":"YulTypedName","src":"8662:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8673:4:101","nodeType":"YulTypedName","src":"8673:4:101","type":""}],"src":"8548:286:101"},{"body":{"nativeSrc":"8936:73:101","nodeType":"YulBlock","src":"8936:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8953:3:101","nodeType":"YulIdentifier","src":"8953:3:101"},{"name":"length","nativeSrc":"8958:6:101","nodeType":"YulIdentifier","src":"8958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"8946:6:101","nodeType":"YulIdentifier","src":"8946:6:101"},"nativeSrc":"8946:19:101","nodeType":"YulFunctionCall","src":"8946:19:101"},"nativeSrc":"8946:19:101","nodeType":"YulExpressionStatement","src":"8946:19:101"},{"nativeSrc":"8974:29:101","nodeType":"YulAssignment","src":"8974:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"8993:3:101","nodeType":"YulIdentifier","src":"8993:3:101"},{"kind":"number","nativeSrc":"8998:4:101","nodeType":"YulLiteral","src":"8998:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8989:3:101","nodeType":"YulIdentifier","src":"8989:3:101"},"nativeSrc":"8989:14:101","nodeType":"YulFunctionCall","src":"8989:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"8974:11:101","nodeType":"YulIdentifier","src":"8974:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8840:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8908:3:101","nodeType":"YulTypedName","src":"8908:3:101","type":""},{"name":"length","nativeSrc":"8913:6:101","nodeType":"YulTypedName","src":"8913:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8924:11:101","nodeType":"YulTypedName","src":"8924:11:101","type":""}],"src":"8840:169:101"},{"body":{"nativeSrc":"9121:61:101","nodeType":"YulBlock","src":"9121:61:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9143:6:101","nodeType":"YulIdentifier","src":"9143:6:101"},{"kind":"number","nativeSrc":"9151:1:101","nodeType":"YulLiteral","src":"9151:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9139:3:101","nodeType":"YulIdentifier","src":"9139:3:101"},"nativeSrc":"9139:14:101","nodeType":"YulFunctionCall","src":"9139:14:101"},{"hexValue":"6c656e6774682063616e27742062652030","kind":"string","nativeSrc":"9155:19:101","nodeType":"YulLiteral","src":"9155:19:101","type":"","value":"length can't be 0"}],"functionName":{"name":"mstore","nativeSrc":"9132:6:101","nodeType":"YulIdentifier","src":"9132:6:101"},"nativeSrc":"9132:43:101","nodeType":"YulFunctionCall","src":"9132:43:101"},"nativeSrc":"9132:43:101","nodeType":"YulExpressionStatement","src":"9132:43:101"}]},"name":"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","nativeSrc":"9015:167:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9113:6:101","nodeType":"YulTypedName","src":"9113:6:101","type":""}],"src":"9015:167:101"},{"body":{"nativeSrc":"9334:220:101","nodeType":"YulBlock","src":"9334:220:101","statements":[{"nativeSrc":"9344:74:101","nodeType":"YulAssignment","src":"9344:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9410:3:101","nodeType":"YulIdentifier","src":"9410:3:101"},{"kind":"number","nativeSrc":"9415:2:101","nodeType":"YulLiteral","src":"9415:2:101","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9351:58:101","nodeType":"YulIdentifier","src":"9351:58:101"},"nativeSrc":"9351:67:101","nodeType":"YulFunctionCall","src":"9351:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9344:3:101","nodeType":"YulIdentifier","src":"9344:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9516:3:101","nodeType":"YulIdentifier","src":"9516:3:101"}],"functionName":{"name":"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","nativeSrc":"9427:88:101","nodeType":"YulIdentifier","src":"9427:88:101"},"nativeSrc":"9427:93:101","nodeType":"YulFunctionCall","src":"9427:93:101"},"nativeSrc":"9427:93:101","nodeType":"YulExpressionStatement","src":"9427:93:101"},{"nativeSrc":"9529:19:101","nodeType":"YulAssignment","src":"9529:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9540:3:101","nodeType":"YulIdentifier","src":"9540:3:101"},{"kind":"number","nativeSrc":"9545:2:101","nodeType":"YulLiteral","src":"9545:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9536:3:101","nodeType":"YulIdentifier","src":"9536:3:101"},"nativeSrc":"9536:12:101","nodeType":"YulFunctionCall","src":"9536:12:101"},"variableNames":[{"name":"end","nativeSrc":"9529:3:101","nodeType":"YulIdentifier","src":"9529:3:101"}]}]},"name":"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack","nativeSrc":"9188:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9322:3:101","nodeType":"YulTypedName","src":"9322:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9330:3:101","nodeType":"YulTypedName","src":"9330:3:101","type":""}],"src":"9188:366:101"},{"body":{"nativeSrc":"9731:248:101","nodeType":"YulBlock","src":"9731:248:101","statements":[{"nativeSrc":"9741:26:101","nodeType":"YulAssignment","src":"9741:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9753:9:101","nodeType":"YulIdentifier","src":"9753:9:101"},{"kind":"number","nativeSrc":"9764:2:101","nodeType":"YulLiteral","src":"9764:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9749:3:101","nodeType":"YulIdentifier","src":"9749:3:101"},"nativeSrc":"9749:18:101","nodeType":"YulFunctionCall","src":"9749:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9741:4:101","nodeType":"YulIdentifier","src":"9741:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9788:9:101","nodeType":"YulIdentifier","src":"9788:9:101"},{"kind":"number","nativeSrc":"9799:1:101","nodeType":"YulLiteral","src":"9799:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9784:3:101","nodeType":"YulIdentifier","src":"9784:3:101"},"nativeSrc":"9784:17:101","nodeType":"YulFunctionCall","src":"9784:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9807:4:101","nodeType":"YulIdentifier","src":"9807:4:101"},{"name":"headStart","nativeSrc":"9813:9:101","nodeType":"YulIdentifier","src":"9813:9:101"}],"functionName":{"name":"sub","nativeSrc":"9803:3:101","nodeType":"YulIdentifier","src":"9803:3:101"},"nativeSrc":"9803:20:101","nodeType":"YulFunctionCall","src":"9803:20:101"}],"functionName":{"name":"mstore","nativeSrc":"9777:6:101","nodeType":"YulIdentifier","src":"9777:6:101"},"nativeSrc":"9777:47:101","nodeType":"YulFunctionCall","src":"9777:47:101"},"nativeSrc":"9777:47:101","nodeType":"YulExpressionStatement","src":"9777:47:101"},{"nativeSrc":"9833:139:101","nodeType":"YulAssignment","src":"9833:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9967:4:101","nodeType":"YulIdentifier","src":"9967:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack","nativeSrc":"9841:124:101","nodeType":"YulIdentifier","src":"9841:124:101"},"nativeSrc":"9841:131:101","nodeType":"YulFunctionCall","src":"9841:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9833:4:101","nodeType":"YulIdentifier","src":"9833:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9560:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9711:9:101","nodeType":"YulTypedName","src":"9711:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9726:4:101","nodeType":"YulTypedName","src":"9726:4:101","type":""}],"src":"9560:419:101"},{"body":{"nativeSrc":"10013:152:101","nodeType":"YulBlock","src":"10013:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10030:1:101","nodeType":"YulLiteral","src":"10030:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"10033:77:101","nodeType":"YulLiteral","src":"10033:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10023:6:101","nodeType":"YulIdentifier","src":"10023:6:101"},"nativeSrc":"10023:88:101","nodeType":"YulFunctionCall","src":"10023:88:101"},"nativeSrc":"10023:88:101","nodeType":"YulExpressionStatement","src":"10023:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10127:1:101","nodeType":"YulLiteral","src":"10127:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"10130:4:101","nodeType":"YulLiteral","src":"10130:4:101","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"10120:6:101","nodeType":"YulIdentifier","src":"10120:6:101"},"nativeSrc":"10120:15:101","nodeType":"YulFunctionCall","src":"10120:15:101"},"nativeSrc":"10120:15:101","nodeType":"YulExpressionStatement","src":"10120:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10151:1:101","nodeType":"YulLiteral","src":"10151:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"10154:4:101","nodeType":"YulLiteral","src":"10154:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10144:6:101","nodeType":"YulIdentifier","src":"10144:6:101"},"nativeSrc":"10144:15:101","nodeType":"YulFunctionCall","src":"10144:15:101"},"nativeSrc":"10144:15:101","nodeType":"YulExpressionStatement","src":"10144:15:101"}]},"name":"panic_error_0x32","nativeSrc":"9985:180:101","nodeType":"YulFunctionDefinition","src":"9985:180:101"},{"body":{"nativeSrc":"10277:65:101","nodeType":"YulBlock","src":"10277:65:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10299:6:101","nodeType":"YulIdentifier","src":"10299:6:101"},{"kind":"number","nativeSrc":"10307:1:101","nodeType":"YulLiteral","src":"10307:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10295:3:101","nodeType":"YulIdentifier","src":"10295:3:101"},"nativeSrc":"10295:14:101","nodeType":"YulFunctionCall","src":"10295:14:101"},{"hexValue":"63616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"10311:23:101","nodeType":"YulLiteral","src":"10311:23:101","type":"","value":"can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"10288:6:101","nodeType":"YulIdentifier","src":"10288:6:101"},"nativeSrc":"10288:47:101","nodeType":"YulFunctionCall","src":"10288:47:101"},"nativeSrc":"10288:47:101","nodeType":"YulExpressionStatement","src":"10288:47:101"}]},"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"10171:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10269:6:101","nodeType":"YulTypedName","src":"10269:6:101","type":""}],"src":"10171:171:101"},{"body":{"nativeSrc":"10494:220:101","nodeType":"YulBlock","src":"10494:220:101","statements":[{"nativeSrc":"10504:74:101","nodeType":"YulAssignment","src":"10504:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10570:3:101","nodeType":"YulIdentifier","src":"10570:3:101"},{"kind":"number","nativeSrc":"10575:2:101","nodeType":"YulLiteral","src":"10575:2:101","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10511:58:101","nodeType":"YulIdentifier","src":"10511:58:101"},"nativeSrc":"10511:67:101","nodeType":"YulFunctionCall","src":"10511:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10504:3:101","nodeType":"YulIdentifier","src":"10504:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10676:3:101","nodeType":"YulIdentifier","src":"10676:3:101"}],"functionName":{"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"10587:88:101","nodeType":"YulIdentifier","src":"10587:88:101"},"nativeSrc":"10587:93:101","nodeType":"YulFunctionCall","src":"10587:93:101"},"nativeSrc":"10587:93:101","nodeType":"YulExpressionStatement","src":"10587:93:101"},{"nativeSrc":"10689:19:101","nodeType":"YulAssignment","src":"10689:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10700:3:101","nodeType":"YulIdentifier","src":"10700:3:101"},{"kind":"number","nativeSrc":"10705:2:101","nodeType":"YulLiteral","src":"10705:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10696:3:101","nodeType":"YulIdentifier","src":"10696:3:101"},"nativeSrc":"10696:12:101","nodeType":"YulFunctionCall","src":"10696:12:101"},"variableNames":[{"name":"end","nativeSrc":"10689:3:101","nodeType":"YulIdentifier","src":"10689:3:101"}]}]},"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"10348:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10482:3:101","nodeType":"YulTypedName","src":"10482:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10490:3:101","nodeType":"YulTypedName","src":"10490:3:101","type":""}],"src":"10348:366:101"},{"body":{"nativeSrc":"10891:248:101","nodeType":"YulBlock","src":"10891:248:101","statements":[{"nativeSrc":"10901:26:101","nodeType":"YulAssignment","src":"10901:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10913:9:101","nodeType":"YulIdentifier","src":"10913:9:101"},{"kind":"number","nativeSrc":"10924:2:101","nodeType":"YulLiteral","src":"10924:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10909:3:101","nodeType":"YulIdentifier","src":"10909:3:101"},"nativeSrc":"10909:18:101","nodeType":"YulFunctionCall","src":"10909:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10901:4:101","nodeType":"YulIdentifier","src":"10901:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10948:9:101","nodeType":"YulIdentifier","src":"10948:9:101"},{"kind":"number","nativeSrc":"10959:1:101","nodeType":"YulLiteral","src":"10959:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10944:3:101","nodeType":"YulIdentifier","src":"10944:3:101"},"nativeSrc":"10944:17:101","nodeType":"YulFunctionCall","src":"10944:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10967:4:101","nodeType":"YulIdentifier","src":"10967:4:101"},{"name":"headStart","nativeSrc":"10973:9:101","nodeType":"YulIdentifier","src":"10973:9:101"}],"functionName":{"name":"sub","nativeSrc":"10963:3:101","nodeType":"YulIdentifier","src":"10963:3:101"},"nativeSrc":"10963:20:101","nodeType":"YulFunctionCall","src":"10963:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10937:6:101","nodeType":"YulIdentifier","src":"10937:6:101"},"nativeSrc":"10937:47:101","nodeType":"YulFunctionCall","src":"10937:47:101"},"nativeSrc":"10937:47:101","nodeType":"YulExpressionStatement","src":"10937:47:101"},{"nativeSrc":"10993:139:101","nodeType":"YulAssignment","src":"10993:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11127:4:101","nodeType":"YulIdentifier","src":"11127:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"11001:124:101","nodeType":"YulIdentifier","src":"11001:124:101"},"nativeSrc":"11001:131:101","nodeType":"YulFunctionCall","src":"11001:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10993:4:101","nodeType":"YulIdentifier","src":"10993:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10720:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10871:9:101","nodeType":"YulTypedName","src":"10871:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10886:4:101","nodeType":"YulTypedName","src":"10886:4:101","type":""}],"src":"10720:419:101"},{"body":{"nativeSrc":"11271:206:101","nodeType":"YulBlock","src":"11271:206:101","statements":[{"nativeSrc":"11281:26:101","nodeType":"YulAssignment","src":"11281:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11293:9:101","nodeType":"YulIdentifier","src":"11293:9:101"},{"kind":"number","nativeSrc":"11304:2:101","nodeType":"YulLiteral","src":"11304:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11289:3:101","nodeType":"YulIdentifier","src":"11289:3:101"},"nativeSrc":"11289:18:101","nodeType":"YulFunctionCall","src":"11289:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11281:4:101","nodeType":"YulIdentifier","src":"11281:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11361:6:101","nodeType":"YulIdentifier","src":"11361:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11374:9:101","nodeType":"YulIdentifier","src":"11374:9:101"},{"kind":"number","nativeSrc":"11385:1:101","nodeType":"YulLiteral","src":"11385:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11370:3:101","nodeType":"YulIdentifier","src":"11370:3:101"},"nativeSrc":"11370:17:101","nodeType":"YulFunctionCall","src":"11370:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"11317:43:101","nodeType":"YulIdentifier","src":"11317:43:101"},"nativeSrc":"11317:71:101","nodeType":"YulFunctionCall","src":"11317:71:101"},"nativeSrc":"11317:71:101","nodeType":"YulExpressionStatement","src":"11317:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"11442:6:101","nodeType":"YulIdentifier","src":"11442:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11455:9:101","nodeType":"YulIdentifier","src":"11455:9:101"},{"kind":"number","nativeSrc":"11466:2:101","nodeType":"YulLiteral","src":"11466:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11451:3:101","nodeType":"YulIdentifier","src":"11451:3:101"},"nativeSrc":"11451:18:101","nodeType":"YulFunctionCall","src":"11451:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"11398:43:101","nodeType":"YulIdentifier","src":"11398:43:101"},"nativeSrc":"11398:72:101","nodeType":"YulFunctionCall","src":"11398:72:101"},"nativeSrc":"11398:72:101","nodeType":"YulExpressionStatement","src":"11398:72:101"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"11145:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11235:9:101","nodeType":"YulTypedName","src":"11235:9:101","type":""},{"name":"value1","nativeSrc":"11247:6:101","nodeType":"YulTypedName","src":"11247:6:101","type":""},{"name":"value0","nativeSrc":"11255:6:101","nodeType":"YulTypedName","src":"11255:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11266:4:101","nodeType":"YulTypedName","src":"11266:4:101","type":""}],"src":"11145:332:101"},{"body":{"nativeSrc":"11589:70:101","nodeType":"YulBlock","src":"11589:70:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11611:6:101","nodeType":"YulIdentifier","src":"11611:6:101"},{"kind":"number","nativeSrc":"11619:1:101","nodeType":"YulLiteral","src":"11619:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11607:3:101","nodeType":"YulIdentifier","src":"11607:3:101"},"nativeSrc":"11607:14:101","nodeType":"YulFunctionCall","src":"11607:14:101"},{"hexValue":"7374616c6520706572696f642063616e2774206265207a65726f","kind":"string","nativeSrc":"11623:28:101","nodeType":"YulLiteral","src":"11623:28:101","type":"","value":"stale period can't be zero"}],"functionName":{"name":"mstore","nativeSrc":"11600:6:101","nodeType":"YulIdentifier","src":"11600:6:101"},"nativeSrc":"11600:52:101","nodeType":"YulFunctionCall","src":"11600:52:101"},"nativeSrc":"11600:52:101","nodeType":"YulExpressionStatement","src":"11600:52:101"}]},"name":"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","nativeSrc":"11483:176:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11581:6:101","nodeType":"YulTypedName","src":"11581:6:101","type":""}],"src":"11483:176:101"},{"body":{"nativeSrc":"11811:220:101","nodeType":"YulBlock","src":"11811:220:101","statements":[{"nativeSrc":"11821:74:101","nodeType":"YulAssignment","src":"11821:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11887:3:101","nodeType":"YulIdentifier","src":"11887:3:101"},{"kind":"number","nativeSrc":"11892:2:101","nodeType":"YulLiteral","src":"11892:2:101","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11828:58:101","nodeType":"YulIdentifier","src":"11828:58:101"},"nativeSrc":"11828:67:101","nodeType":"YulFunctionCall","src":"11828:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11821:3:101","nodeType":"YulIdentifier","src":"11821:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11993:3:101","nodeType":"YulIdentifier","src":"11993:3:101"}],"functionName":{"name":"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","nativeSrc":"11904:88:101","nodeType":"YulIdentifier","src":"11904:88:101"},"nativeSrc":"11904:93:101","nodeType":"YulFunctionCall","src":"11904:93:101"},"nativeSrc":"11904:93:101","nodeType":"YulExpressionStatement","src":"11904:93:101"},{"nativeSrc":"12006:19:101","nodeType":"YulAssignment","src":"12006:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12017:3:101","nodeType":"YulIdentifier","src":"12017:3:101"},{"kind":"number","nativeSrc":"12022:2:101","nodeType":"YulLiteral","src":"12022:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12013:3:101","nodeType":"YulIdentifier","src":"12013:3:101"},"nativeSrc":"12013:12:101","nodeType":"YulFunctionCall","src":"12013:12:101"},"variableNames":[{"name":"end","nativeSrc":"12006:3:101","nodeType":"YulIdentifier","src":"12006:3:101"}]}]},"name":"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack","nativeSrc":"11665:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11799:3:101","nodeType":"YulTypedName","src":"11799:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11807:3:101","nodeType":"YulTypedName","src":"11807:3:101","type":""}],"src":"11665:366:101"},{"body":{"nativeSrc":"12208:248:101","nodeType":"YulBlock","src":"12208:248:101","statements":[{"nativeSrc":"12218:26:101","nodeType":"YulAssignment","src":"12218:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12230:9:101","nodeType":"YulIdentifier","src":"12230:9:101"},{"kind":"number","nativeSrc":"12241:2:101","nodeType":"YulLiteral","src":"12241:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12226:3:101","nodeType":"YulIdentifier","src":"12226:3:101"},"nativeSrc":"12226:18:101","nodeType":"YulFunctionCall","src":"12226:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12218:4:101","nodeType":"YulIdentifier","src":"12218:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12265:9:101","nodeType":"YulIdentifier","src":"12265:9:101"},{"kind":"number","nativeSrc":"12276:1:101","nodeType":"YulLiteral","src":"12276:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12261:3:101","nodeType":"YulIdentifier","src":"12261:3:101"},"nativeSrc":"12261:17:101","nodeType":"YulFunctionCall","src":"12261:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12284:4:101","nodeType":"YulIdentifier","src":"12284:4:101"},{"name":"headStart","nativeSrc":"12290:9:101","nodeType":"YulIdentifier","src":"12290:9:101"}],"functionName":{"name":"sub","nativeSrc":"12280:3:101","nodeType":"YulIdentifier","src":"12280:3:101"},"nativeSrc":"12280:20:101","nodeType":"YulFunctionCall","src":"12280:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12254:6:101","nodeType":"YulIdentifier","src":"12254:6:101"},"nativeSrc":"12254:47:101","nodeType":"YulFunctionCall","src":"12254:47:101"},"nativeSrc":"12254:47:101","nodeType":"YulExpressionStatement","src":"12254:47:101"},{"nativeSrc":"12310:139:101","nodeType":"YulAssignment","src":"12310:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12444:4:101","nodeType":"YulIdentifier","src":"12444:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack","nativeSrc":"12318:124:101","nodeType":"YulIdentifier","src":"12318:124:101"},"nativeSrc":"12318:131:101","nodeType":"YulFunctionCall","src":"12318:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12310:4:101","nodeType":"YulIdentifier","src":"12310:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12037:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12188:9:101","nodeType":"YulTypedName","src":"12188:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12203:4:101","nodeType":"YulTypedName","src":"12203:4:101","type":""}],"src":"12037:419:101"},{"body":{"nativeSrc":"12588:206:101","nodeType":"YulBlock","src":"12588:206:101","statements":[{"nativeSrc":"12598:26:101","nodeType":"YulAssignment","src":"12598:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12610:9:101","nodeType":"YulIdentifier","src":"12610:9:101"},{"kind":"number","nativeSrc":"12621:2:101","nodeType":"YulLiteral","src":"12621:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12606:3:101","nodeType":"YulIdentifier","src":"12606:3:101"},"nativeSrc":"12606:18:101","nodeType":"YulFunctionCall","src":"12606:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12598:4:101","nodeType":"YulIdentifier","src":"12598:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12678:6:101","nodeType":"YulIdentifier","src":"12678:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12691:9:101","nodeType":"YulIdentifier","src":"12691:9:101"},{"kind":"number","nativeSrc":"12702:1:101","nodeType":"YulLiteral","src":"12702:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12687:3:101","nodeType":"YulIdentifier","src":"12687:3:101"},"nativeSrc":"12687:17:101","nodeType":"YulFunctionCall","src":"12687:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12634:43:101","nodeType":"YulIdentifier","src":"12634:43:101"},"nativeSrc":"12634:71:101","nodeType":"YulFunctionCall","src":"12634:71:101"},"nativeSrc":"12634:71:101","nodeType":"YulExpressionStatement","src":"12634:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12759:6:101","nodeType":"YulIdentifier","src":"12759:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12772:9:101","nodeType":"YulIdentifier","src":"12772:9:101"},{"kind":"number","nativeSrc":"12783:2:101","nodeType":"YulLiteral","src":"12783:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12768:3:101","nodeType":"YulIdentifier","src":"12768:3:101"},"nativeSrc":"12768:18:101","nodeType":"YulFunctionCall","src":"12768:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12715:43:101","nodeType":"YulIdentifier","src":"12715:43:101"},"nativeSrc":"12715:72:101","nodeType":"YulFunctionCall","src":"12715:72:101"},"nativeSrc":"12715:72:101","nodeType":"YulExpressionStatement","src":"12715:72:101"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"12462:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12552:9:101","nodeType":"YulTypedName","src":"12552:9:101","type":""},{"name":"value1","nativeSrc":"12564:6:101","nodeType":"YulTypedName","src":"12564:6:101","type":""},{"name":"value0","nativeSrc":"12572:6:101","nodeType":"YulTypedName","src":"12572:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12583:4:101","nodeType":"YulTypedName","src":"12583:4:101","type":""}],"src":"12462:332:101"},{"body":{"nativeSrc":"12843:43:101","nodeType":"YulBlock","src":"12843:43:101","statements":[{"nativeSrc":"12853:27:101","nodeType":"YulAssignment","src":"12853:27:101","value":{"arguments":[{"name":"value","nativeSrc":"12868:5:101","nodeType":"YulIdentifier","src":"12868:5:101"},{"kind":"number","nativeSrc":"12875:4:101","nodeType":"YulLiteral","src":"12875:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"12864:3:101","nodeType":"YulIdentifier","src":"12864:3:101"},"nativeSrc":"12864:16:101","nodeType":"YulFunctionCall","src":"12864:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"12853:7:101","nodeType":"YulIdentifier","src":"12853:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"12800:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12825:5:101","nodeType":"YulTypedName","src":"12825:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12835:7:101","nodeType":"YulTypedName","src":"12835:7:101","type":""}],"src":"12800:86:101"},{"body":{"nativeSrc":"12933:77:101","nodeType":"YulBlock","src":"12933:77:101","statements":[{"body":{"nativeSrc":"12988:16:101","nodeType":"YulBlock","src":"12988:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12997:1:101","nodeType":"YulLiteral","src":"12997:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"13000:1:101","nodeType":"YulLiteral","src":"13000:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12990:6:101","nodeType":"YulIdentifier","src":"12990:6:101"},"nativeSrc":"12990:12:101","nodeType":"YulFunctionCall","src":"12990:12:101"},"nativeSrc":"12990:12:101","nodeType":"YulExpressionStatement","src":"12990:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12956:5:101","nodeType":"YulIdentifier","src":"12956:5:101"},{"arguments":[{"name":"value","nativeSrc":"12979:5:101","nodeType":"YulIdentifier","src":"12979:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"12963:15:101","nodeType":"YulIdentifier","src":"12963:15:101"},"nativeSrc":"12963:22:101","nodeType":"YulFunctionCall","src":"12963:22:101"}],"functionName":{"name":"eq","nativeSrc":"12953:2:101","nodeType":"YulIdentifier","src":"12953:2:101"},"nativeSrc":"12953:33:101","nodeType":"YulFunctionCall","src":"12953:33:101"}],"functionName":{"name":"iszero","nativeSrc":"12946:6:101","nodeType":"YulIdentifier","src":"12946:6:101"},"nativeSrc":"12946:41:101","nodeType":"YulFunctionCall","src":"12946:41:101"},"nativeSrc":"12943:61:101","nodeType":"YulIf","src":"12943:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"12892:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12926:5:101","nodeType":"YulTypedName","src":"12926:5:101","type":""}],"src":"12892:118:101"},{"body":{"nativeSrc":"13077:78:101","nodeType":"YulBlock","src":"13077:78:101","statements":[{"nativeSrc":"13087:22:101","nodeType":"YulAssignment","src":"13087:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"13102:6:101","nodeType":"YulIdentifier","src":"13102:6:101"}],"functionName":{"name":"mload","nativeSrc":"13096:5:101","nodeType":"YulIdentifier","src":"13096:5:101"},"nativeSrc":"13096:13:101","nodeType":"YulFunctionCall","src":"13096:13:101"},"variableNames":[{"name":"value","nativeSrc":"13087:5:101","nodeType":"YulIdentifier","src":"13087:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13143:5:101","nodeType":"YulIdentifier","src":"13143:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"13118:24:101","nodeType":"YulIdentifier","src":"13118:24:101"},"nativeSrc":"13118:31:101","nodeType":"YulFunctionCall","src":"13118:31:101"},"nativeSrc":"13118:31:101","nodeType":"YulExpressionStatement","src":"13118:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"13016:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13055:6:101","nodeType":"YulTypedName","src":"13055:6:101","type":""},{"name":"end","nativeSrc":"13063:3:101","nodeType":"YulTypedName","src":"13063:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13071:5:101","nodeType":"YulTypedName","src":"13071:5:101","type":""}],"src":"13016:139:101"},{"body":{"nativeSrc":"13236:272:101","nodeType":"YulBlock","src":"13236:272:101","statements":[{"body":{"nativeSrc":"13282:83:101","nodeType":"YulBlock","src":"13282:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13284:77:101","nodeType":"YulIdentifier","src":"13284:77:101"},"nativeSrc":"13284:79:101","nodeType":"YulFunctionCall","src":"13284:79:101"},"nativeSrc":"13284:79:101","nodeType":"YulExpressionStatement","src":"13284:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13257:7:101","nodeType":"YulIdentifier","src":"13257:7:101"},{"name":"headStart","nativeSrc":"13266:9:101","nodeType":"YulIdentifier","src":"13266:9:101"}],"functionName":{"name":"sub","nativeSrc":"13253:3:101","nodeType":"YulIdentifier","src":"13253:3:101"},"nativeSrc":"13253:23:101","nodeType":"YulFunctionCall","src":"13253:23:101"},{"kind":"number","nativeSrc":"13278:2:101","nodeType":"YulLiteral","src":"13278:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13249:3:101","nodeType":"YulIdentifier","src":"13249:3:101"},"nativeSrc":"13249:32:101","nodeType":"YulFunctionCall","src":"13249:32:101"},"nativeSrc":"13246:119:101","nodeType":"YulIf","src":"13246:119:101"},{"nativeSrc":"13375:126:101","nodeType":"YulBlock","src":"13375:126:101","statements":[{"nativeSrc":"13390:15:101","nodeType":"YulVariableDeclaration","src":"13390:15:101","value":{"kind":"number","nativeSrc":"13404:1:101","nodeType":"YulLiteral","src":"13404:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"13394:6:101","nodeType":"YulTypedName","src":"13394:6:101","type":""}]},{"nativeSrc":"13419:72:101","nodeType":"YulAssignment","src":"13419:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13463:9:101","nodeType":"YulIdentifier","src":"13463:9:101"},{"name":"offset","nativeSrc":"13474:6:101","nodeType":"YulIdentifier","src":"13474:6:101"}],"functionName":{"name":"add","nativeSrc":"13459:3:101","nodeType":"YulIdentifier","src":"13459:3:101"},"nativeSrc":"13459:22:101","nodeType":"YulFunctionCall","src":"13459:22:101"},{"name":"dataEnd","nativeSrc":"13483:7:101","nodeType":"YulIdentifier","src":"13483:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"13429:29:101","nodeType":"YulIdentifier","src":"13429:29:101"},"nativeSrc":"13429:62:101","nodeType":"YulFunctionCall","src":"13429:62:101"},"variableNames":[{"name":"value0","nativeSrc":"13419:6:101","nodeType":"YulIdentifier","src":"13419:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"13161:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13206:9:101","nodeType":"YulTypedName","src":"13206:9:101","type":""},{"name":"dataEnd","nativeSrc":"13217:7:101","nodeType":"YulTypedName","src":"13217:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13229:6:101","nodeType":"YulTypedName","src":"13229:6:101","type":""}],"src":"13161:347:101"},{"body":{"nativeSrc":"13620:122:101","nodeType":"YulBlock","src":"13620:122:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13642:6:101","nodeType":"YulIdentifier","src":"13642:6:101"},{"kind":"number","nativeSrc":"13650:1:101","nodeType":"YulLiteral","src":"13650:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13638:3:101","nodeType":"YulIdentifier","src":"13638:3:101"},"nativeSrc":"13638:14:101","nodeType":"YulFunctionCall","src":"13638:14:101"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"13654:34:101","nodeType":"YulLiteral","src":"13654:34:101","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"13631:6:101","nodeType":"YulIdentifier","src":"13631:6:101"},"nativeSrc":"13631:58:101","nodeType":"YulFunctionCall","src":"13631:58:101"},"nativeSrc":"13631:58:101","nodeType":"YulExpressionStatement","src":"13631:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13710:6:101","nodeType":"YulIdentifier","src":"13710:6:101"},{"kind":"number","nativeSrc":"13718:2:101","nodeType":"YulLiteral","src":"13718:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13706:3:101","nodeType":"YulIdentifier","src":"13706:3:101"},"nativeSrc":"13706:15:101","nodeType":"YulFunctionCall","src":"13706:15:101"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"13723:11:101","nodeType":"YulLiteral","src":"13723:11:101","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"13699:6:101","nodeType":"YulIdentifier","src":"13699:6:101"},"nativeSrc":"13699:36:101","nodeType":"YulFunctionCall","src":"13699:36:101"},"nativeSrc":"13699:36:101","nodeType":"YulExpressionStatement","src":"13699:36:101"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"13514:228:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13612:6:101","nodeType":"YulTypedName","src":"13612:6:101","type":""}],"src":"13514:228:101"},{"body":{"nativeSrc":"13894:220:101","nodeType":"YulBlock","src":"13894:220:101","statements":[{"nativeSrc":"13904:74:101","nodeType":"YulAssignment","src":"13904:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13970:3:101","nodeType":"YulIdentifier","src":"13970:3:101"},{"kind":"number","nativeSrc":"13975:2:101","nodeType":"YulLiteral","src":"13975:2:101","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13911:58:101","nodeType":"YulIdentifier","src":"13911:58:101"},"nativeSrc":"13911:67:101","nodeType":"YulFunctionCall","src":"13911:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13904:3:101","nodeType":"YulIdentifier","src":"13904:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14076:3:101","nodeType":"YulIdentifier","src":"14076:3:101"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"13987:88:101","nodeType":"YulIdentifier","src":"13987:88:101"},"nativeSrc":"13987:93:101","nodeType":"YulFunctionCall","src":"13987:93:101"},"nativeSrc":"13987:93:101","nodeType":"YulExpressionStatement","src":"13987:93:101"},{"nativeSrc":"14089:19:101","nodeType":"YulAssignment","src":"14089:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14100:3:101","nodeType":"YulIdentifier","src":"14100:3:101"},{"kind":"number","nativeSrc":"14105:2:101","nodeType":"YulLiteral","src":"14105:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14096:3:101","nodeType":"YulIdentifier","src":"14096:3:101"},"nativeSrc":"14096:12:101","nodeType":"YulFunctionCall","src":"14096:12:101"},"variableNames":[{"name":"end","nativeSrc":"14089:3:101","nodeType":"YulIdentifier","src":"14089:3:101"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"13748:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13882:3:101","nodeType":"YulTypedName","src":"13882:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13890:3:101","nodeType":"YulTypedName","src":"13890:3:101","type":""}],"src":"13748:366:101"},{"body":{"nativeSrc":"14291:248:101","nodeType":"YulBlock","src":"14291:248:101","statements":[{"nativeSrc":"14301:26:101","nodeType":"YulAssignment","src":"14301:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14313:9:101","nodeType":"YulIdentifier","src":"14313:9:101"},{"kind":"number","nativeSrc":"14324:2:101","nodeType":"YulLiteral","src":"14324:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14309:3:101","nodeType":"YulIdentifier","src":"14309:3:101"},"nativeSrc":"14309:18:101","nodeType":"YulFunctionCall","src":"14309:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14301:4:101","nodeType":"YulIdentifier","src":"14301:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14348:9:101","nodeType":"YulIdentifier","src":"14348:9:101"},{"kind":"number","nativeSrc":"14359:1:101","nodeType":"YulLiteral","src":"14359:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14344:3:101","nodeType":"YulIdentifier","src":"14344:3:101"},"nativeSrc":"14344:17:101","nodeType":"YulFunctionCall","src":"14344:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14367:4:101","nodeType":"YulIdentifier","src":"14367:4:101"},{"name":"headStart","nativeSrc":"14373:9:101","nodeType":"YulIdentifier","src":"14373:9:101"}],"functionName":{"name":"sub","nativeSrc":"14363:3:101","nodeType":"YulIdentifier","src":"14363:3:101"},"nativeSrc":"14363:20:101","nodeType":"YulFunctionCall","src":"14363:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14337:6:101","nodeType":"YulIdentifier","src":"14337:6:101"},"nativeSrc":"14337:47:101","nodeType":"YulFunctionCall","src":"14337:47:101"},"nativeSrc":"14337:47:101","nodeType":"YulExpressionStatement","src":"14337:47:101"},{"nativeSrc":"14393:139:101","nodeType":"YulAssignment","src":"14393:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14527:4:101","nodeType":"YulIdentifier","src":"14527:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"14401:124:101","nodeType":"YulIdentifier","src":"14401:124:101"},"nativeSrc":"14401:131:101","nodeType":"YulFunctionCall","src":"14401:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14393:4:101","nodeType":"YulIdentifier","src":"14393:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14120:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14271:9:101","nodeType":"YulTypedName","src":"14271:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14286:4:101","nodeType":"YulTypedName","src":"14286:4:101","type":""}],"src":"14120:419:101"},{"body":{"nativeSrc":"14651:127:101","nodeType":"YulBlock","src":"14651:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14673:6:101","nodeType":"YulIdentifier","src":"14673:6:101"},{"kind":"number","nativeSrc":"14681:1:101","nodeType":"YulLiteral","src":"14681:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14669:3:101","nodeType":"YulIdentifier","src":"14669:3:101"},"nativeSrc":"14669:14:101","nodeType":"YulFunctionCall","src":"14669:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"14685:34:101","nodeType":"YulLiteral","src":"14685:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"14662:6:101","nodeType":"YulIdentifier","src":"14662:6:101"},"nativeSrc":"14662:58:101","nodeType":"YulFunctionCall","src":"14662:58:101"},"nativeSrc":"14662:58:101","nodeType":"YulExpressionStatement","src":"14662:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14741:6:101","nodeType":"YulIdentifier","src":"14741:6:101"},{"kind":"number","nativeSrc":"14749:2:101","nodeType":"YulLiteral","src":"14749:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14737:3:101","nodeType":"YulIdentifier","src":"14737:3:101"},"nativeSrc":"14737:15:101","nodeType":"YulFunctionCall","src":"14737:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"14754:16:101","nodeType":"YulLiteral","src":"14754:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"14730:6:101","nodeType":"YulIdentifier","src":"14730:6:101"},"nativeSrc":"14730:41:101","nodeType":"YulFunctionCall","src":"14730:41:101"},"nativeSrc":"14730:41:101","nodeType":"YulExpressionStatement","src":"14730:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"14545:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14643:6:101","nodeType":"YulTypedName","src":"14643:6:101","type":""}],"src":"14545:233:101"},{"body":{"nativeSrc":"14930:220:101","nodeType":"YulBlock","src":"14930:220:101","statements":[{"nativeSrc":"14940:74:101","nodeType":"YulAssignment","src":"14940:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15006:3:101","nodeType":"YulIdentifier","src":"15006:3:101"},{"kind":"number","nativeSrc":"15011:2:101","nodeType":"YulLiteral","src":"15011:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14947:58:101","nodeType":"YulIdentifier","src":"14947:58:101"},"nativeSrc":"14947:67:101","nodeType":"YulFunctionCall","src":"14947:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14940:3:101","nodeType":"YulIdentifier","src":"14940:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15112:3:101","nodeType":"YulIdentifier","src":"15112:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"15023:88:101","nodeType":"YulIdentifier","src":"15023:88:101"},"nativeSrc":"15023:93:101","nodeType":"YulFunctionCall","src":"15023:93:101"},"nativeSrc":"15023:93:101","nodeType":"YulExpressionStatement","src":"15023:93:101"},{"nativeSrc":"15125:19:101","nodeType":"YulAssignment","src":"15125:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15136:3:101","nodeType":"YulIdentifier","src":"15136:3:101"},{"kind":"number","nativeSrc":"15141:2:101","nodeType":"YulLiteral","src":"15141:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15132:3:101","nodeType":"YulIdentifier","src":"15132:3:101"},"nativeSrc":"15132:12:101","nodeType":"YulFunctionCall","src":"15132:12:101"},"variableNames":[{"name":"end","nativeSrc":"15125:3:101","nodeType":"YulIdentifier","src":"15125:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"14784:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14918:3:101","nodeType":"YulTypedName","src":"14918:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14926:3:101","nodeType":"YulTypedName","src":"14926:3:101","type":""}],"src":"14784:366:101"},{"body":{"nativeSrc":"15327:248:101","nodeType":"YulBlock","src":"15327:248:101","statements":[{"nativeSrc":"15337:26:101","nodeType":"YulAssignment","src":"15337:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15349:9:101","nodeType":"YulIdentifier","src":"15349:9:101"},{"kind":"number","nativeSrc":"15360:2:101","nodeType":"YulLiteral","src":"15360:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15345:3:101","nodeType":"YulIdentifier","src":"15345:3:101"},"nativeSrc":"15345:18:101","nodeType":"YulFunctionCall","src":"15345:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15337:4:101","nodeType":"YulIdentifier","src":"15337:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15384:9:101","nodeType":"YulIdentifier","src":"15384:9:101"},{"kind":"number","nativeSrc":"15395:1:101","nodeType":"YulLiteral","src":"15395:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15380:3:101","nodeType":"YulIdentifier","src":"15380:3:101"},"nativeSrc":"15380:17:101","nodeType":"YulFunctionCall","src":"15380:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15403:4:101","nodeType":"YulIdentifier","src":"15403:4:101"},{"name":"headStart","nativeSrc":"15409:9:101","nodeType":"YulIdentifier","src":"15409:9:101"}],"functionName":{"name":"sub","nativeSrc":"15399:3:101","nodeType":"YulIdentifier","src":"15399:3:101"},"nativeSrc":"15399:20:101","nodeType":"YulFunctionCall","src":"15399:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15373:6:101","nodeType":"YulIdentifier","src":"15373:6:101"},"nativeSrc":"15373:47:101","nodeType":"YulFunctionCall","src":"15373:47:101"},"nativeSrc":"15373:47:101","nodeType":"YulExpressionStatement","src":"15373:47:101"},{"nativeSrc":"15429:139:101","nodeType":"YulAssignment","src":"15429:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15563:4:101","nodeType":"YulIdentifier","src":"15563:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"15437:124:101","nodeType":"YulIdentifier","src":"15437:124:101"},"nativeSrc":"15437:131:101","nodeType":"YulFunctionCall","src":"15437:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15429:4:101","nodeType":"YulIdentifier","src":"15429:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15156:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15307:9:101","nodeType":"YulTypedName","src":"15307:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15322:4:101","nodeType":"YulTypedName","src":"15322:4:101","type":""}],"src":"15156:419:101"},{"body":{"nativeSrc":"15634:32:101","nodeType":"YulBlock","src":"15634:32:101","statements":[{"nativeSrc":"15644:16:101","nodeType":"YulAssignment","src":"15644:16:101","value":{"name":"value","nativeSrc":"15655:5:101","nodeType":"YulIdentifier","src":"15655:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"15644:7:101","nodeType":"YulIdentifier","src":"15644:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"15581:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15616:5:101","nodeType":"YulTypedName","src":"15616:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"15626:7:101","nodeType":"YulTypedName","src":"15626:7:101","type":""}],"src":"15581:85:101"},{"body":{"nativeSrc":"15738:88:101","nodeType":"YulBlock","src":"15738:88:101","statements":[{"nativeSrc":"15748:72:101","nodeType":"YulAssignment","src":"15748:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15812:5:101","nodeType":"YulIdentifier","src":"15812:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"15786:25:101","nodeType":"YulIdentifier","src":"15786:25:101"},"nativeSrc":"15786:32:101","nodeType":"YulFunctionCall","src":"15786:32:101"}],"functionName":{"name":"identity","nativeSrc":"15777:8:101","nodeType":"YulIdentifier","src":"15777:8:101"},"nativeSrc":"15777:42:101","nodeType":"YulFunctionCall","src":"15777:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"15761:15:101","nodeType":"YulIdentifier","src":"15761:15:101"},"nativeSrc":"15761:59:101","nodeType":"YulFunctionCall","src":"15761:59:101"},"variableNames":[{"name":"converted","nativeSrc":"15748:9:101","nodeType":"YulIdentifier","src":"15748:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"15672:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15718:5:101","nodeType":"YulTypedName","src":"15718:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"15728:9:101","nodeType":"YulTypedName","src":"15728:9:101","type":""}],"src":"15672:154:101"},{"body":{"nativeSrc":"15903:72:101","nodeType":"YulBlock","src":"15903:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15920:3:101","nodeType":"YulIdentifier","src":"15920:3:101"},{"arguments":[{"name":"value","nativeSrc":"15962:5:101","nodeType":"YulIdentifier","src":"15962:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"15925:36:101","nodeType":"YulIdentifier","src":"15925:36:101"},"nativeSrc":"15925:43:101","nodeType":"YulFunctionCall","src":"15925:43:101"}],"functionName":{"name":"mstore","nativeSrc":"15913:6:101","nodeType":"YulIdentifier","src":"15913:6:101"},"nativeSrc":"15913:56:101","nodeType":"YulFunctionCall","src":"15913:56:101"},"nativeSrc":"15913:56:101","nodeType":"YulExpressionStatement","src":"15913:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"15832:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15891:5:101","nodeType":"YulTypedName","src":"15891:5:101","type":""},{"name":"pos","nativeSrc":"15898:3:101","nodeType":"YulTypedName","src":"15898:3:101","type":""}],"src":"15832:143:101"},{"body":{"nativeSrc":"16085:130:101","nodeType":"YulBlock","src":"16085:130:101","statements":[{"nativeSrc":"16095:26:101","nodeType":"YulAssignment","src":"16095:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16107:9:101","nodeType":"YulIdentifier","src":"16107:9:101"},{"kind":"number","nativeSrc":"16118:2:101","nodeType":"YulLiteral","src":"16118:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16103:3:101","nodeType":"YulIdentifier","src":"16103:3:101"},"nativeSrc":"16103:18:101","nodeType":"YulFunctionCall","src":"16103:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16095:4:101","nodeType":"YulIdentifier","src":"16095:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16181:6:101","nodeType":"YulIdentifier","src":"16181:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"16194:9:101","nodeType":"YulIdentifier","src":"16194:9:101"},{"kind":"number","nativeSrc":"16205:1:101","nodeType":"YulLiteral","src":"16205:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16190:3:101","nodeType":"YulIdentifier","src":"16190:3:101"},"nativeSrc":"16190:17:101","nodeType":"YulFunctionCall","src":"16190:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"16131:49:101","nodeType":"YulIdentifier","src":"16131:49:101"},"nativeSrc":"16131:77:101","nodeType":"YulFunctionCall","src":"16131:77:101"},"nativeSrc":"16131:77:101","nodeType":"YulExpressionStatement","src":"16131:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"15981:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16057:9:101","nodeType":"YulTypedName","src":"16057:9:101","type":""},{"name":"value0","nativeSrc":"16069:6:101","nodeType":"YulTypedName","src":"16069:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16080:4:101","nodeType":"YulTypedName","src":"16080:4:101","type":""}],"src":"15981:234:101"},{"body":{"nativeSrc":"16280:40:101","nodeType":"YulBlock","src":"16280:40:101","statements":[{"nativeSrc":"16291:22:101","nodeType":"YulAssignment","src":"16291:22:101","value":{"arguments":[{"name":"value","nativeSrc":"16307:5:101","nodeType":"YulIdentifier","src":"16307:5:101"}],"functionName":{"name":"mload","nativeSrc":"16301:5:101","nodeType":"YulIdentifier","src":"16301:5:101"},"nativeSrc":"16301:12:101","nodeType":"YulFunctionCall","src":"16301:12:101"},"variableNames":[{"name":"length","nativeSrc":"16291:6:101","nodeType":"YulIdentifier","src":"16291:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"16221:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16263:5:101","nodeType":"YulTypedName","src":"16263:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"16273:6:101","nodeType":"YulTypedName","src":"16273:6:101","type":""}],"src":"16221:99:101"},{"body":{"nativeSrc":"16388:77:101","nodeType":"YulBlock","src":"16388:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"16405:3:101","nodeType":"YulIdentifier","src":"16405:3:101"},{"name":"src","nativeSrc":"16410:3:101","nodeType":"YulIdentifier","src":"16410:3:101"},{"name":"length","nativeSrc":"16415:6:101","nodeType":"YulIdentifier","src":"16415:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"16399:5:101","nodeType":"YulIdentifier","src":"16399:5:101"},"nativeSrc":"16399:23:101","nodeType":"YulFunctionCall","src":"16399:23:101"},"nativeSrc":"16399:23:101","nodeType":"YulExpressionStatement","src":"16399:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"16442:3:101","nodeType":"YulIdentifier","src":"16442:3:101"},{"name":"length","nativeSrc":"16447:6:101","nodeType":"YulIdentifier","src":"16447:6:101"}],"functionName":{"name":"add","nativeSrc":"16438:3:101","nodeType":"YulIdentifier","src":"16438:3:101"},"nativeSrc":"16438:16:101","nodeType":"YulFunctionCall","src":"16438:16:101"},{"kind":"number","nativeSrc":"16456:1:101","nodeType":"YulLiteral","src":"16456:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16431:6:101","nodeType":"YulIdentifier","src":"16431:6:101"},"nativeSrc":"16431:27:101","nodeType":"YulFunctionCall","src":"16431:27:101"},"nativeSrc":"16431:27:101","nodeType":"YulExpressionStatement","src":"16431:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"16326:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"16370:3:101","nodeType":"YulTypedName","src":"16370:3:101","type":""},{"name":"dst","nativeSrc":"16375:3:101","nodeType":"YulTypedName","src":"16375:3:101","type":""},{"name":"length","nativeSrc":"16380:6:101","nodeType":"YulTypedName","src":"16380:6:101","type":""}],"src":"16326:139:101"},{"body":{"nativeSrc":"16563:285:101","nodeType":"YulBlock","src":"16563:285:101","statements":[{"nativeSrc":"16573:53:101","nodeType":"YulVariableDeclaration","src":"16573:53:101","value":{"arguments":[{"name":"value","nativeSrc":"16620:5:101","nodeType":"YulIdentifier","src":"16620:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"16587:32:101","nodeType":"YulIdentifier","src":"16587:32:101"},"nativeSrc":"16587:39:101","nodeType":"YulFunctionCall","src":"16587:39:101"},"variables":[{"name":"length","nativeSrc":"16577:6:101","nodeType":"YulTypedName","src":"16577:6:101","type":""}]},{"nativeSrc":"16635:78:101","nodeType":"YulAssignment","src":"16635:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"16701:3:101","nodeType":"YulIdentifier","src":"16701:3:101"},{"name":"length","nativeSrc":"16706:6:101","nodeType":"YulIdentifier","src":"16706:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16642:58:101","nodeType":"YulIdentifier","src":"16642:58:101"},"nativeSrc":"16642:71:101","nodeType":"YulFunctionCall","src":"16642:71:101"},"variableNames":[{"name":"pos","nativeSrc":"16635:3:101","nodeType":"YulIdentifier","src":"16635:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16761:5:101","nodeType":"YulIdentifier","src":"16761:5:101"},{"kind":"number","nativeSrc":"16768:4:101","nodeType":"YulLiteral","src":"16768:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16757:3:101","nodeType":"YulIdentifier","src":"16757:3:101"},"nativeSrc":"16757:16:101","nodeType":"YulFunctionCall","src":"16757:16:101"},{"name":"pos","nativeSrc":"16775:3:101","nodeType":"YulIdentifier","src":"16775:3:101"},{"name":"length","nativeSrc":"16780:6:101","nodeType":"YulIdentifier","src":"16780:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"16722:34:101","nodeType":"YulIdentifier","src":"16722:34:101"},"nativeSrc":"16722:65:101","nodeType":"YulFunctionCall","src":"16722:65:101"},"nativeSrc":"16722:65:101","nodeType":"YulExpressionStatement","src":"16722:65:101"},{"nativeSrc":"16796:46:101","nodeType":"YulAssignment","src":"16796:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"16807:3:101","nodeType":"YulIdentifier","src":"16807:3:101"},{"arguments":[{"name":"length","nativeSrc":"16834:6:101","nodeType":"YulIdentifier","src":"16834:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"16812:21:101","nodeType":"YulIdentifier","src":"16812:21:101"},"nativeSrc":"16812:29:101","nodeType":"YulFunctionCall","src":"16812:29:101"}],"functionName":{"name":"add","nativeSrc":"16803:3:101","nodeType":"YulIdentifier","src":"16803:3:101"},"nativeSrc":"16803:39:101","nodeType":"YulFunctionCall","src":"16803:39:101"},"variableNames":[{"name":"end","nativeSrc":"16796:3:101","nodeType":"YulIdentifier","src":"16796:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"16471:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16544:5:101","nodeType":"YulTypedName","src":"16544:5:101","type":""},{"name":"pos","nativeSrc":"16551:3:101","nodeType":"YulTypedName","src":"16551:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16559:3:101","nodeType":"YulTypedName","src":"16559:3:101","type":""}],"src":"16471:377:101"},{"body":{"nativeSrc":"17000:277:101","nodeType":"YulBlock","src":"17000:277:101","statements":[{"nativeSrc":"17010:26:101","nodeType":"YulAssignment","src":"17010:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17022:9:101","nodeType":"YulIdentifier","src":"17022:9:101"},{"kind":"number","nativeSrc":"17033:2:101","nodeType":"YulLiteral","src":"17033:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17018:3:101","nodeType":"YulIdentifier","src":"17018:3:101"},"nativeSrc":"17018:18:101","nodeType":"YulFunctionCall","src":"17018:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17010:4:101","nodeType":"YulIdentifier","src":"17010:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17090:6:101","nodeType":"YulIdentifier","src":"17090:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"17103:9:101","nodeType":"YulIdentifier","src":"17103:9:101"},{"kind":"number","nativeSrc":"17114:1:101","nodeType":"YulLiteral","src":"17114:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17099:3:101","nodeType":"YulIdentifier","src":"17099:3:101"},"nativeSrc":"17099:17:101","nodeType":"YulFunctionCall","src":"17099:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17046:43:101","nodeType":"YulIdentifier","src":"17046:43:101"},"nativeSrc":"17046:71:101","nodeType":"YulFunctionCall","src":"17046:71:101"},"nativeSrc":"17046:71:101","nodeType":"YulExpressionStatement","src":"17046:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17138:9:101","nodeType":"YulIdentifier","src":"17138:9:101"},{"kind":"number","nativeSrc":"17149:2:101","nodeType":"YulLiteral","src":"17149:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17134:3:101","nodeType":"YulIdentifier","src":"17134:3:101"},"nativeSrc":"17134:18:101","nodeType":"YulFunctionCall","src":"17134:18:101"},{"arguments":[{"name":"tail","nativeSrc":"17158:4:101","nodeType":"YulIdentifier","src":"17158:4:101"},{"name":"headStart","nativeSrc":"17164:9:101","nodeType":"YulIdentifier","src":"17164:9:101"}],"functionName":{"name":"sub","nativeSrc":"17154:3:101","nodeType":"YulIdentifier","src":"17154:3:101"},"nativeSrc":"17154:20:101","nodeType":"YulFunctionCall","src":"17154:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17127:6:101","nodeType":"YulIdentifier","src":"17127:6:101"},"nativeSrc":"17127:48:101","nodeType":"YulFunctionCall","src":"17127:48:101"},"nativeSrc":"17127:48:101","nodeType":"YulExpressionStatement","src":"17127:48:101"},{"nativeSrc":"17184:86:101","nodeType":"YulAssignment","src":"17184:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"17256:6:101","nodeType":"YulIdentifier","src":"17256:6:101"},{"name":"tail","nativeSrc":"17265:4:101","nodeType":"YulIdentifier","src":"17265:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"17192:63:101","nodeType":"YulIdentifier","src":"17192:63:101"},"nativeSrc":"17192:78:101","nodeType":"YulFunctionCall","src":"17192:78:101"},"variableNames":[{"name":"tail","nativeSrc":"17184:4:101","nodeType":"YulIdentifier","src":"17184:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16854:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16964:9:101","nodeType":"YulTypedName","src":"16964:9:101","type":""},{"name":"value1","nativeSrc":"16976:6:101","nodeType":"YulTypedName","src":"16976:6:101","type":""},{"name":"value0","nativeSrc":"16984:6:101","nodeType":"YulTypedName","src":"16984:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16995:4:101","nodeType":"YulTypedName","src":"16995:4:101","type":""}],"src":"16854:423:101"},{"body":{"nativeSrc":"17325:48:101","nodeType":"YulBlock","src":"17325:48:101","statements":[{"nativeSrc":"17335:32:101","nodeType":"YulAssignment","src":"17335:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17360:5:101","nodeType":"YulIdentifier","src":"17360:5:101"}],"functionName":{"name":"iszero","nativeSrc":"17353:6:101","nodeType":"YulIdentifier","src":"17353:6:101"},"nativeSrc":"17353:13:101","nodeType":"YulFunctionCall","src":"17353:13:101"}],"functionName":{"name":"iszero","nativeSrc":"17346:6:101","nodeType":"YulIdentifier","src":"17346:6:101"},"nativeSrc":"17346:21:101","nodeType":"YulFunctionCall","src":"17346:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"17335:7:101","nodeType":"YulIdentifier","src":"17335:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"17283:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17307:5:101","nodeType":"YulTypedName","src":"17307:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"17317:7:101","nodeType":"YulTypedName","src":"17317:7:101","type":""}],"src":"17283:90:101"},{"body":{"nativeSrc":"17419:76:101","nodeType":"YulBlock","src":"17419:76:101","statements":[{"body":{"nativeSrc":"17473:16:101","nodeType":"YulBlock","src":"17473:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17482:1:101","nodeType":"YulLiteral","src":"17482:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"17485:1:101","nodeType":"YulLiteral","src":"17485:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17475:6:101","nodeType":"YulIdentifier","src":"17475:6:101"},"nativeSrc":"17475:12:101","nodeType":"YulFunctionCall","src":"17475:12:101"},"nativeSrc":"17475:12:101","nodeType":"YulExpressionStatement","src":"17475:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17442:5:101","nodeType":"YulIdentifier","src":"17442:5:101"},{"arguments":[{"name":"value","nativeSrc":"17464:5:101","nodeType":"YulIdentifier","src":"17464:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"17449:14:101","nodeType":"YulIdentifier","src":"17449:14:101"},"nativeSrc":"17449:21:101","nodeType":"YulFunctionCall","src":"17449:21:101"}],"functionName":{"name":"eq","nativeSrc":"17439:2:101","nodeType":"YulIdentifier","src":"17439:2:101"},"nativeSrc":"17439:32:101","nodeType":"YulFunctionCall","src":"17439:32:101"}],"functionName":{"name":"iszero","nativeSrc":"17432:6:101","nodeType":"YulIdentifier","src":"17432:6:101"},"nativeSrc":"17432:40:101","nodeType":"YulFunctionCall","src":"17432:40:101"},"nativeSrc":"17429:60:101","nodeType":"YulIf","src":"17429:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"17379:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17412:5:101","nodeType":"YulTypedName","src":"17412:5:101","type":""}],"src":"17379:116:101"},{"body":{"nativeSrc":"17561:77:101","nodeType":"YulBlock","src":"17561:77:101","statements":[{"nativeSrc":"17571:22:101","nodeType":"YulAssignment","src":"17571:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"17586:6:101","nodeType":"YulIdentifier","src":"17586:6:101"}],"functionName":{"name":"mload","nativeSrc":"17580:5:101","nodeType":"YulIdentifier","src":"17580:5:101"},"nativeSrc":"17580:13:101","nodeType":"YulFunctionCall","src":"17580:13:101"},"variableNames":[{"name":"value","nativeSrc":"17571:5:101","nodeType":"YulIdentifier","src":"17571:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17626:5:101","nodeType":"YulIdentifier","src":"17626:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"17602:23:101","nodeType":"YulIdentifier","src":"17602:23:101"},"nativeSrc":"17602:30:101","nodeType":"YulFunctionCall","src":"17602:30:101"},"nativeSrc":"17602:30:101","nodeType":"YulExpressionStatement","src":"17602:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17501:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17539:6:101","nodeType":"YulTypedName","src":"17539:6:101","type":""},{"name":"end","nativeSrc":"17547:3:101","nodeType":"YulTypedName","src":"17547:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17555:5:101","nodeType":"YulTypedName","src":"17555:5:101","type":""}],"src":"17501:137:101"},{"body":{"nativeSrc":"17718:271:101","nodeType":"YulBlock","src":"17718:271:101","statements":[{"body":{"nativeSrc":"17764:83:101","nodeType":"YulBlock","src":"17764:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17766:77:101","nodeType":"YulIdentifier","src":"17766:77:101"},"nativeSrc":"17766:79:101","nodeType":"YulFunctionCall","src":"17766:79:101"},"nativeSrc":"17766:79:101","nodeType":"YulExpressionStatement","src":"17766:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17739:7:101","nodeType":"YulIdentifier","src":"17739:7:101"},{"name":"headStart","nativeSrc":"17748:9:101","nodeType":"YulIdentifier","src":"17748:9:101"}],"functionName":{"name":"sub","nativeSrc":"17735:3:101","nodeType":"YulIdentifier","src":"17735:3:101"},"nativeSrc":"17735:23:101","nodeType":"YulFunctionCall","src":"17735:23:101"},{"kind":"number","nativeSrc":"17760:2:101","nodeType":"YulLiteral","src":"17760:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17731:3:101","nodeType":"YulIdentifier","src":"17731:3:101"},"nativeSrc":"17731:32:101","nodeType":"YulFunctionCall","src":"17731:32:101"},"nativeSrc":"17728:119:101","nodeType":"YulIf","src":"17728:119:101"},{"nativeSrc":"17857:125:101","nodeType":"YulBlock","src":"17857:125:101","statements":[{"nativeSrc":"17872:15:101","nodeType":"YulVariableDeclaration","src":"17872:15:101","value":{"kind":"number","nativeSrc":"17886:1:101","nodeType":"YulLiteral","src":"17886:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17876:6:101","nodeType":"YulTypedName","src":"17876:6:101","type":""}]},{"nativeSrc":"17901:71:101","nodeType":"YulAssignment","src":"17901:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17944:9:101","nodeType":"YulIdentifier","src":"17944:9:101"},{"name":"offset","nativeSrc":"17955:6:101","nodeType":"YulIdentifier","src":"17955:6:101"}],"functionName":{"name":"add","nativeSrc":"17940:3:101","nodeType":"YulIdentifier","src":"17940:3:101"},"nativeSrc":"17940:22:101","nodeType":"YulFunctionCall","src":"17940:22:101"},{"name":"dataEnd","nativeSrc":"17964:7:101","nodeType":"YulIdentifier","src":"17964:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17911:28:101","nodeType":"YulIdentifier","src":"17911:28:101"},"nativeSrc":"17911:61:101","nodeType":"YulFunctionCall","src":"17911:61:101"},"variableNames":[{"name":"value0","nativeSrc":"17901:6:101","nodeType":"YulIdentifier","src":"17901:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"17644:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17688:9:101","nodeType":"YulTypedName","src":"17688:9:101","type":""},{"name":"dataEnd","nativeSrc":"17699:7:101","nodeType":"YulTypedName","src":"17699:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17711:6:101","nodeType":"YulTypedName","src":"17711:6:101","type":""}],"src":"17644:345:101"},{"body":{"nativeSrc":"18169:359:101","nodeType":"YulBlock","src":"18169:359:101","statements":[{"nativeSrc":"18179:26:101","nodeType":"YulAssignment","src":"18179:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18191:9:101","nodeType":"YulIdentifier","src":"18191:9:101"},{"kind":"number","nativeSrc":"18202:2:101","nodeType":"YulLiteral","src":"18202:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18187:3:101","nodeType":"YulIdentifier","src":"18187:3:101"},"nativeSrc":"18187:18:101","nodeType":"YulFunctionCall","src":"18187:18:101"},"variableNames":[{"name":"tail","nativeSrc":"18179:4:101","nodeType":"YulIdentifier","src":"18179:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18259:6:101","nodeType":"YulIdentifier","src":"18259:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"18272:9:101","nodeType":"YulIdentifier","src":"18272:9:101"},{"kind":"number","nativeSrc":"18283:1:101","nodeType":"YulLiteral","src":"18283:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18268:3:101","nodeType":"YulIdentifier","src":"18268:3:101"},"nativeSrc":"18268:17:101","nodeType":"YulFunctionCall","src":"18268:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18215:43:101","nodeType":"YulIdentifier","src":"18215:43:101"},"nativeSrc":"18215:71:101","nodeType":"YulFunctionCall","src":"18215:71:101"},"nativeSrc":"18215:71:101","nodeType":"YulExpressionStatement","src":"18215:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18340:6:101","nodeType":"YulIdentifier","src":"18340:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"18353:9:101","nodeType":"YulIdentifier","src":"18353:9:101"},{"kind":"number","nativeSrc":"18364:2:101","nodeType":"YulLiteral","src":"18364:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18349:3:101","nodeType":"YulIdentifier","src":"18349:3:101"},"nativeSrc":"18349:18:101","nodeType":"YulFunctionCall","src":"18349:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18296:43:101","nodeType":"YulIdentifier","src":"18296:43:101"},"nativeSrc":"18296:72:101","nodeType":"YulFunctionCall","src":"18296:72:101"},"nativeSrc":"18296:72:101","nodeType":"YulExpressionStatement","src":"18296:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18389:9:101","nodeType":"YulIdentifier","src":"18389:9:101"},{"kind":"number","nativeSrc":"18400:2:101","nodeType":"YulLiteral","src":"18400:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18385:3:101","nodeType":"YulIdentifier","src":"18385:3:101"},"nativeSrc":"18385:18:101","nodeType":"YulFunctionCall","src":"18385:18:101"},{"arguments":[{"name":"tail","nativeSrc":"18409:4:101","nodeType":"YulIdentifier","src":"18409:4:101"},{"name":"headStart","nativeSrc":"18415:9:101","nodeType":"YulIdentifier","src":"18415:9:101"}],"functionName":{"name":"sub","nativeSrc":"18405:3:101","nodeType":"YulIdentifier","src":"18405:3:101"},"nativeSrc":"18405:20:101","nodeType":"YulFunctionCall","src":"18405:20:101"}],"functionName":{"name":"mstore","nativeSrc":"18378:6:101","nodeType":"YulIdentifier","src":"18378:6:101"},"nativeSrc":"18378:48:101","nodeType":"YulFunctionCall","src":"18378:48:101"},"nativeSrc":"18378:48:101","nodeType":"YulExpressionStatement","src":"18378:48:101"},{"nativeSrc":"18435:86:101","nodeType":"YulAssignment","src":"18435:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"18507:6:101","nodeType":"YulIdentifier","src":"18507:6:101"},{"name":"tail","nativeSrc":"18516:4:101","nodeType":"YulIdentifier","src":"18516:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"18443:63:101","nodeType":"YulIdentifier","src":"18443:63:101"},"nativeSrc":"18443:78:101","nodeType":"YulFunctionCall","src":"18443:78:101"},"variableNames":[{"name":"tail","nativeSrc":"18435:4:101","nodeType":"YulIdentifier","src":"18435:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17995:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18125:9:101","nodeType":"YulTypedName","src":"18125:9:101","type":""},{"name":"value2","nativeSrc":"18137:6:101","nodeType":"YulTypedName","src":"18137:6:101","type":""},{"name":"value1","nativeSrc":"18145:6:101","nodeType":"YulTypedName","src":"18145:6:101","type":""},{"name":"value0","nativeSrc":"18153:6:101","nodeType":"YulTypedName","src":"18153:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18164:4:101","nodeType":"YulTypedName","src":"18164:4:101","type":""}],"src":"17995:533:101"},{"body":{"nativeSrc":"18640:76:101","nodeType":"YulBlock","src":"18640:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"18662:6:101","nodeType":"YulIdentifier","src":"18662:6:101"},{"kind":"number","nativeSrc":"18670:1:101","nodeType":"YulLiteral","src":"18670:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18658:3:101","nodeType":"YulIdentifier","src":"18658:3:101"},"nativeSrc":"18658:14:101","nodeType":"YulFunctionCall","src":"18658:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"18674:34:101","nodeType":"YulLiteral","src":"18674:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"18651:6:101","nodeType":"YulIdentifier","src":"18651:6:101"},"nativeSrc":"18651:58:101","nodeType":"YulFunctionCall","src":"18651:58:101"},"nativeSrc":"18651:58:101","nodeType":"YulExpressionStatement","src":"18651:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"18534:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18632:6:101","nodeType":"YulTypedName","src":"18632:6:101","type":""}],"src":"18534:182:101"},{"body":{"nativeSrc":"18868:220:101","nodeType":"YulBlock","src":"18868:220:101","statements":[{"nativeSrc":"18878:74:101","nodeType":"YulAssignment","src":"18878:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"18944:3:101","nodeType":"YulIdentifier","src":"18944:3:101"},{"kind":"number","nativeSrc":"18949:2:101","nodeType":"YulLiteral","src":"18949:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"18885:58:101","nodeType":"YulIdentifier","src":"18885:58:101"},"nativeSrc":"18885:67:101","nodeType":"YulFunctionCall","src":"18885:67:101"},"variableNames":[{"name":"pos","nativeSrc":"18878:3:101","nodeType":"YulIdentifier","src":"18878:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19050:3:101","nodeType":"YulIdentifier","src":"19050:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"18961:88:101","nodeType":"YulIdentifier","src":"18961:88:101"},"nativeSrc":"18961:93:101","nodeType":"YulFunctionCall","src":"18961:93:101"},"nativeSrc":"18961:93:101","nodeType":"YulExpressionStatement","src":"18961:93:101"},{"nativeSrc":"19063:19:101","nodeType":"YulAssignment","src":"19063:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"19074:3:101","nodeType":"YulIdentifier","src":"19074:3:101"},{"kind":"number","nativeSrc":"19079:2:101","nodeType":"YulLiteral","src":"19079:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19070:3:101","nodeType":"YulIdentifier","src":"19070:3:101"},"nativeSrc":"19070:12:101","nodeType":"YulFunctionCall","src":"19070:12:101"},"variableNames":[{"name":"end","nativeSrc":"19063:3:101","nodeType":"YulIdentifier","src":"19063:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"18722:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18856:3:101","nodeType":"YulTypedName","src":"18856:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18864:3:101","nodeType":"YulTypedName","src":"18864:3:101","type":""}],"src":"18722:366:101"},{"body":{"nativeSrc":"19265:248:101","nodeType":"YulBlock","src":"19265:248:101","statements":[{"nativeSrc":"19275:26:101","nodeType":"YulAssignment","src":"19275:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"19287:9:101","nodeType":"YulIdentifier","src":"19287:9:101"},{"kind":"number","nativeSrc":"19298:2:101","nodeType":"YulLiteral","src":"19298:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19283:3:101","nodeType":"YulIdentifier","src":"19283:3:101"},"nativeSrc":"19283:18:101","nodeType":"YulFunctionCall","src":"19283:18:101"},"variableNames":[{"name":"tail","nativeSrc":"19275:4:101","nodeType":"YulIdentifier","src":"19275:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19322:9:101","nodeType":"YulIdentifier","src":"19322:9:101"},{"kind":"number","nativeSrc":"19333:1:101","nodeType":"YulLiteral","src":"19333:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19318:3:101","nodeType":"YulIdentifier","src":"19318:3:101"},"nativeSrc":"19318:17:101","nodeType":"YulFunctionCall","src":"19318:17:101"},{"arguments":[{"name":"tail","nativeSrc":"19341:4:101","nodeType":"YulIdentifier","src":"19341:4:101"},{"name":"headStart","nativeSrc":"19347:9:101","nodeType":"YulIdentifier","src":"19347:9:101"}],"functionName":{"name":"sub","nativeSrc":"19337:3:101","nodeType":"YulIdentifier","src":"19337:3:101"},"nativeSrc":"19337:20:101","nodeType":"YulFunctionCall","src":"19337:20:101"}],"functionName":{"name":"mstore","nativeSrc":"19311:6:101","nodeType":"YulIdentifier","src":"19311:6:101"},"nativeSrc":"19311:47:101","nodeType":"YulFunctionCall","src":"19311:47:101"},"nativeSrc":"19311:47:101","nodeType":"YulExpressionStatement","src":"19311:47:101"},{"nativeSrc":"19367:139:101","nodeType":"YulAssignment","src":"19367:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"19501:4:101","nodeType":"YulIdentifier","src":"19501:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"19375:124:101","nodeType":"YulIdentifier","src":"19375:124:101"},"nativeSrc":"19375:131:101","nodeType":"YulFunctionCall","src":"19375:131:101"},"variableNames":[{"name":"tail","nativeSrc":"19367:4:101","nodeType":"YulIdentifier","src":"19367:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19094:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19245:9:101","nodeType":"YulTypedName","src":"19245:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19260:4:101","nodeType":"YulTypedName","src":"19260:4:101","type":""}],"src":"19094:419:101"},{"body":{"nativeSrc":"19625:118:101","nodeType":"YulBlock","src":"19625:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19647:6:101","nodeType":"YulIdentifier","src":"19647:6:101"},{"kind":"number","nativeSrc":"19655:1:101","nodeType":"YulLiteral","src":"19655:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19643:3:101","nodeType":"YulIdentifier","src":"19643:3:101"},"nativeSrc":"19643:14:101","nodeType":"YulFunctionCall","src":"19643:14:101"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"19659:34:101","nodeType":"YulLiteral","src":"19659:34:101","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"19636:6:101","nodeType":"YulIdentifier","src":"19636:6:101"},"nativeSrc":"19636:58:101","nodeType":"YulFunctionCall","src":"19636:58:101"},"nativeSrc":"19636:58:101","nodeType":"YulExpressionStatement","src":"19636:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19715:6:101","nodeType":"YulIdentifier","src":"19715:6:101"},{"kind":"number","nativeSrc":"19723:2:101","nodeType":"YulLiteral","src":"19723:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19711:3:101","nodeType":"YulIdentifier","src":"19711:3:101"},"nativeSrc":"19711:15:101","nodeType":"YulFunctionCall","src":"19711:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"19728:7:101","nodeType":"YulLiteral","src":"19728:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"19704:6:101","nodeType":"YulIdentifier","src":"19704:6:101"},"nativeSrc":"19704:32:101","nodeType":"YulFunctionCall","src":"19704:32:101"},"nativeSrc":"19704:32:101","nodeType":"YulExpressionStatement","src":"19704:32:101"}]},"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"19519:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19617:6:101","nodeType":"YulTypedName","src":"19617:6:101","type":""}],"src":"19519:224:101"},{"body":{"nativeSrc":"19895:220:101","nodeType":"YulBlock","src":"19895:220:101","statements":[{"nativeSrc":"19905:74:101","nodeType":"YulAssignment","src":"19905:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"19971:3:101","nodeType":"YulIdentifier","src":"19971:3:101"},{"kind":"number","nativeSrc":"19976:2:101","nodeType":"YulLiteral","src":"19976:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19912:58:101","nodeType":"YulIdentifier","src":"19912:58:101"},"nativeSrc":"19912:67:101","nodeType":"YulFunctionCall","src":"19912:67:101"},"variableNames":[{"name":"pos","nativeSrc":"19905:3:101","nodeType":"YulIdentifier","src":"19905:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20077:3:101","nodeType":"YulIdentifier","src":"20077:3:101"}],"functionName":{"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"19988:88:101","nodeType":"YulIdentifier","src":"19988:88:101"},"nativeSrc":"19988:93:101","nodeType":"YulFunctionCall","src":"19988:93:101"},"nativeSrc":"19988:93:101","nodeType":"YulExpressionStatement","src":"19988:93:101"},{"nativeSrc":"20090:19:101","nodeType":"YulAssignment","src":"20090:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"20101:3:101","nodeType":"YulIdentifier","src":"20101:3:101"},{"kind":"number","nativeSrc":"20106:2:101","nodeType":"YulLiteral","src":"20106:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20097:3:101","nodeType":"YulIdentifier","src":"20097:3:101"},"nativeSrc":"20097:12:101","nodeType":"YulFunctionCall","src":"20097:12:101"},"variableNames":[{"name":"end","nativeSrc":"20090:3:101","nodeType":"YulIdentifier","src":"20090:3:101"}]}]},"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"19749:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19883:3:101","nodeType":"YulTypedName","src":"19883:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19891:3:101","nodeType":"YulTypedName","src":"19891:3:101","type":""}],"src":"19749:366:101"},{"body":{"nativeSrc":"20292:248:101","nodeType":"YulBlock","src":"20292:248:101","statements":[{"nativeSrc":"20302:26:101","nodeType":"YulAssignment","src":"20302:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20314:9:101","nodeType":"YulIdentifier","src":"20314:9:101"},{"kind":"number","nativeSrc":"20325:2:101","nodeType":"YulLiteral","src":"20325:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20310:3:101","nodeType":"YulIdentifier","src":"20310:3:101"},"nativeSrc":"20310:18:101","nodeType":"YulFunctionCall","src":"20310:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20302:4:101","nodeType":"YulIdentifier","src":"20302:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20349:9:101","nodeType":"YulIdentifier","src":"20349:9:101"},{"kind":"number","nativeSrc":"20360:1:101","nodeType":"YulLiteral","src":"20360:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20345:3:101","nodeType":"YulIdentifier","src":"20345:3:101"},"nativeSrc":"20345:17:101","nodeType":"YulFunctionCall","src":"20345:17:101"},{"arguments":[{"name":"tail","nativeSrc":"20368:4:101","nodeType":"YulIdentifier","src":"20368:4:101"},{"name":"headStart","nativeSrc":"20374:9:101","nodeType":"YulIdentifier","src":"20374:9:101"}],"functionName":{"name":"sub","nativeSrc":"20364:3:101","nodeType":"YulIdentifier","src":"20364:3:101"},"nativeSrc":"20364:20:101","nodeType":"YulFunctionCall","src":"20364:20:101"}],"functionName":{"name":"mstore","nativeSrc":"20338:6:101","nodeType":"YulIdentifier","src":"20338:6:101"},"nativeSrc":"20338:47:101","nodeType":"YulFunctionCall","src":"20338:47:101"},"nativeSrc":"20338:47:101","nodeType":"YulExpressionStatement","src":"20338:47:101"},{"nativeSrc":"20394:139:101","nodeType":"YulAssignment","src":"20394:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"20528:4:101","nodeType":"YulIdentifier","src":"20528:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"20402:124:101","nodeType":"YulIdentifier","src":"20402:124:101"},"nativeSrc":"20402:131:101","nodeType":"YulFunctionCall","src":"20402:131:101"},"variableNames":[{"name":"tail","nativeSrc":"20394:4:101","nodeType":"YulIdentifier","src":"20394:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20121:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20272:9:101","nodeType":"YulTypedName","src":"20272:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20287:4:101","nodeType":"YulTypedName","src":"20287:4:101","type":""}],"src":"20121:419:101"},{"body":{"nativeSrc":"20672:206:101","nodeType":"YulBlock","src":"20672:206:101","statements":[{"nativeSrc":"20682:26:101","nodeType":"YulAssignment","src":"20682:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20694:9:101","nodeType":"YulIdentifier","src":"20694:9:101"},{"kind":"number","nativeSrc":"20705:2:101","nodeType":"YulLiteral","src":"20705:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20690:3:101","nodeType":"YulIdentifier","src":"20690:3:101"},"nativeSrc":"20690:18:101","nodeType":"YulFunctionCall","src":"20690:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20682:4:101","nodeType":"YulIdentifier","src":"20682:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"20762:6:101","nodeType":"YulIdentifier","src":"20762:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"20775:9:101","nodeType":"YulIdentifier","src":"20775:9:101"},{"kind":"number","nativeSrc":"20786:1:101","nodeType":"YulLiteral","src":"20786:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20771:3:101","nodeType":"YulIdentifier","src":"20771:3:101"},"nativeSrc":"20771:17:101","nodeType":"YulFunctionCall","src":"20771:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20718:43:101","nodeType":"YulIdentifier","src":"20718:43:101"},"nativeSrc":"20718:71:101","nodeType":"YulFunctionCall","src":"20718:71:101"},"nativeSrc":"20718:71:101","nodeType":"YulExpressionStatement","src":"20718:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"20843:6:101","nodeType":"YulIdentifier","src":"20843:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"20856:9:101","nodeType":"YulIdentifier","src":"20856:9:101"},{"kind":"number","nativeSrc":"20867:2:101","nodeType":"YulLiteral","src":"20867:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20852:3:101","nodeType":"YulIdentifier","src":"20852:3:101"},"nativeSrc":"20852:18:101","nodeType":"YulFunctionCall","src":"20852:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"20799:43:101","nodeType":"YulIdentifier","src":"20799:43:101"},"nativeSrc":"20799:72:101","nodeType":"YulFunctionCall","src":"20799:72:101"},"nativeSrc":"20799:72:101","nodeType":"YulExpressionStatement","src":"20799:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"20546:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20636:9:101","nodeType":"YulTypedName","src":"20636:9:101","type":""},{"name":"value1","nativeSrc":"20648:6:101","nodeType":"YulTypedName","src":"20648:6:101","type":""},{"name":"value0","nativeSrc":"20656:6:101","nodeType":"YulTypedName","src":"20656:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20667:4:101","nodeType":"YulTypedName","src":"20667:4:101","type":""}],"src":"20546:332:101"},{"body":{"nativeSrc":"20912:152:101","nodeType":"YulBlock","src":"20912:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20929:1:101","nodeType":"YulLiteral","src":"20929:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"20932:77:101","nodeType":"YulLiteral","src":"20932:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20922:6:101","nodeType":"YulIdentifier","src":"20922:6:101"},"nativeSrc":"20922:88:101","nodeType":"YulFunctionCall","src":"20922:88:101"},"nativeSrc":"20922:88:101","nodeType":"YulExpressionStatement","src":"20922:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21026:1:101","nodeType":"YulLiteral","src":"21026:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"21029:4:101","nodeType":"YulLiteral","src":"21029:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"21019:6:101","nodeType":"YulIdentifier","src":"21019:6:101"},"nativeSrc":"21019:15:101","nodeType":"YulFunctionCall","src":"21019:15:101"},"nativeSrc":"21019:15:101","nodeType":"YulExpressionStatement","src":"21019:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21050:1:101","nodeType":"YulLiteral","src":"21050:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"21053:4:101","nodeType":"YulLiteral","src":"21053:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21043:6:101","nodeType":"YulIdentifier","src":"21043:6:101"},"nativeSrc":"21043:15:101","nodeType":"YulFunctionCall","src":"21043:15:101"},"nativeSrc":"21043:15:101","nodeType":"YulExpressionStatement","src":"21043:15:101"}]},"name":"panic_error_0x11","nativeSrc":"20884:180:101","nodeType":"YulFunctionDefinition","src":"20884:180:101"},{"body":{"nativeSrc":"21115:149:101","nodeType":"YulBlock","src":"21115:149:101","statements":[{"nativeSrc":"21125:25:101","nodeType":"YulAssignment","src":"21125:25:101","value":{"arguments":[{"name":"x","nativeSrc":"21148:1:101","nodeType":"YulIdentifier","src":"21148:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21130:17:101","nodeType":"YulIdentifier","src":"21130:17:101"},"nativeSrc":"21130:20:101","nodeType":"YulFunctionCall","src":"21130:20:101"},"variableNames":[{"name":"x","nativeSrc":"21125:1:101","nodeType":"YulIdentifier","src":"21125:1:101"}]},{"nativeSrc":"21159:25:101","nodeType":"YulAssignment","src":"21159:25:101","value":{"arguments":[{"name":"y","nativeSrc":"21182:1:101","nodeType":"YulIdentifier","src":"21182:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21164:17:101","nodeType":"YulIdentifier","src":"21164:17:101"},"nativeSrc":"21164:20:101","nodeType":"YulFunctionCall","src":"21164:20:101"},"variableNames":[{"name":"y","nativeSrc":"21159:1:101","nodeType":"YulIdentifier","src":"21159:1:101"}]},{"nativeSrc":"21193:17:101","nodeType":"YulAssignment","src":"21193:17:101","value":{"arguments":[{"name":"x","nativeSrc":"21205:1:101","nodeType":"YulIdentifier","src":"21205:1:101"},{"name":"y","nativeSrc":"21208:1:101","nodeType":"YulIdentifier","src":"21208:1:101"}],"functionName":{"name":"sub","nativeSrc":"21201:3:101","nodeType":"YulIdentifier","src":"21201:3:101"},"nativeSrc":"21201:9:101","nodeType":"YulFunctionCall","src":"21201:9:101"},"variableNames":[{"name":"diff","nativeSrc":"21193:4:101","nodeType":"YulIdentifier","src":"21193:4:101"}]},{"body":{"nativeSrc":"21235:22:101","nodeType":"YulBlock","src":"21235:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21237:16:101","nodeType":"YulIdentifier","src":"21237:16:101"},"nativeSrc":"21237:18:101","nodeType":"YulFunctionCall","src":"21237:18:101"},"nativeSrc":"21237:18:101","nodeType":"YulExpressionStatement","src":"21237:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21226:4:101","nodeType":"YulIdentifier","src":"21226:4:101"},{"name":"x","nativeSrc":"21232:1:101","nodeType":"YulIdentifier","src":"21232:1:101"}],"functionName":{"name":"gt","nativeSrc":"21223:2:101","nodeType":"YulIdentifier","src":"21223:2:101"},"nativeSrc":"21223:11:101","nodeType":"YulFunctionCall","src":"21223:11:101"},"nativeSrc":"21220:37:101","nodeType":"YulIf","src":"21220:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"21070:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21101:1:101","nodeType":"YulTypedName","src":"21101:1:101","type":""},{"name":"y","nativeSrc":"21104:1:101","nodeType":"YulTypedName","src":"21104:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21110:4:101","nodeType":"YulTypedName","src":"21110:4:101","type":""}],"src":"21070:194:101"},{"body":{"nativeSrc":"21321:51:101","nodeType":"YulBlock","src":"21321:51:101","statements":[{"nativeSrc":"21331:34:101","nodeType":"YulAssignment","src":"21331:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"21356:1:101","nodeType":"YulLiteral","src":"21356:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"21359:5:101","nodeType":"YulIdentifier","src":"21359:5:101"}],"functionName":{"name":"shr","nativeSrc":"21352:3:101","nodeType":"YulIdentifier","src":"21352:3:101"},"nativeSrc":"21352:13:101","nodeType":"YulFunctionCall","src":"21352:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"21331:8:101","nodeType":"YulIdentifier","src":"21331:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"21270:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21302:5:101","nodeType":"YulTypedName","src":"21302:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"21312:8:101","nodeType":"YulTypedName","src":"21312:8:101","type":""}],"src":"21270:102:101"},{"body":{"nativeSrc":"21451:775:101","nodeType":"YulBlock","src":"21451:775:101","statements":[{"nativeSrc":"21461:15:101","nodeType":"YulAssignment","src":"21461:15:101","value":{"name":"_power","nativeSrc":"21470:6:101","nodeType":"YulIdentifier","src":"21470:6:101"},"variableNames":[{"name":"power","nativeSrc":"21461:5:101","nodeType":"YulIdentifier","src":"21461:5:101"}]},{"nativeSrc":"21485:14:101","nodeType":"YulAssignment","src":"21485:14:101","value":{"name":"_base","nativeSrc":"21494:5:101","nodeType":"YulIdentifier","src":"21494:5:101"},"variableNames":[{"name":"base","nativeSrc":"21485:4:101","nodeType":"YulIdentifier","src":"21485:4:101"}]},{"body":{"nativeSrc":"21543:677:101","nodeType":"YulBlock","src":"21543:677:101","statements":[{"body":{"nativeSrc":"21631:22:101","nodeType":"YulBlock","src":"21631:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21633:16:101","nodeType":"YulIdentifier","src":"21633:16:101"},"nativeSrc":"21633:18:101","nodeType":"YulFunctionCall","src":"21633:18:101"},"nativeSrc":"21633:18:101","nodeType":"YulExpressionStatement","src":"21633:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"21609:4:101","nodeType":"YulIdentifier","src":"21609:4:101"},{"arguments":[{"name":"max","nativeSrc":"21619:3:101","nodeType":"YulIdentifier","src":"21619:3:101"},{"name":"base","nativeSrc":"21624:4:101","nodeType":"YulIdentifier","src":"21624:4:101"}],"functionName":{"name":"div","nativeSrc":"21615:3:101","nodeType":"YulIdentifier","src":"21615:3:101"},"nativeSrc":"21615:14:101","nodeType":"YulFunctionCall","src":"21615:14:101"}],"functionName":{"name":"gt","nativeSrc":"21606:2:101","nodeType":"YulIdentifier","src":"21606:2:101"},"nativeSrc":"21606:24:101","nodeType":"YulFunctionCall","src":"21606:24:101"},"nativeSrc":"21603:50:101","nodeType":"YulIf","src":"21603:50:101"},{"body":{"nativeSrc":"21698:419:101","nodeType":"YulBlock","src":"21698:419:101","statements":[{"nativeSrc":"22078:25:101","nodeType":"YulAssignment","src":"22078:25:101","value":{"arguments":[{"name":"power","nativeSrc":"22091:5:101","nodeType":"YulIdentifier","src":"22091:5:101"},{"name":"base","nativeSrc":"22098:4:101","nodeType":"YulIdentifier","src":"22098:4:101"}],"functionName":{"name":"mul","nativeSrc":"22087:3:101","nodeType":"YulIdentifier","src":"22087:3:101"},"nativeSrc":"22087:16:101","nodeType":"YulFunctionCall","src":"22087:16:101"},"variableNames":[{"name":"power","nativeSrc":"22078:5:101","nodeType":"YulIdentifier","src":"22078:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"21673:8:101","nodeType":"YulIdentifier","src":"21673:8:101"},{"kind":"number","nativeSrc":"21683:1:101","nodeType":"YulLiteral","src":"21683:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"21669:3:101","nodeType":"YulIdentifier","src":"21669:3:101"},"nativeSrc":"21669:16:101","nodeType":"YulFunctionCall","src":"21669:16:101"},"nativeSrc":"21666:451:101","nodeType":"YulIf","src":"21666:451:101"},{"nativeSrc":"22130:23:101","nodeType":"YulAssignment","src":"22130:23:101","value":{"arguments":[{"name":"base","nativeSrc":"22142:4:101","nodeType":"YulIdentifier","src":"22142:4:101"},{"name":"base","nativeSrc":"22148:4:101","nodeType":"YulIdentifier","src":"22148:4:101"}],"functionName":{"name":"mul","nativeSrc":"22138:3:101","nodeType":"YulIdentifier","src":"22138:3:101"},"nativeSrc":"22138:15:101","nodeType":"YulFunctionCall","src":"22138:15:101"},"variableNames":[{"name":"base","nativeSrc":"22130:4:101","nodeType":"YulIdentifier","src":"22130:4:101"}]},{"nativeSrc":"22166:44:101","nodeType":"YulAssignment","src":"22166:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"22201:8:101","nodeType":"YulIdentifier","src":"22201:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"22178:22:101","nodeType":"YulIdentifier","src":"22178:22:101"},"nativeSrc":"22178:32:101","nodeType":"YulFunctionCall","src":"22178:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"22166:8:101","nodeType":"YulIdentifier","src":"22166:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"21519:8:101","nodeType":"YulIdentifier","src":"21519:8:101"},{"kind":"number","nativeSrc":"21529:1:101","nodeType":"YulLiteral","src":"21529:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"21516:2:101","nodeType":"YulIdentifier","src":"21516:2:101"},"nativeSrc":"21516:15:101","nodeType":"YulFunctionCall","src":"21516:15:101"},"nativeSrc":"21508:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"21532:2:101","nodeType":"YulBlock","src":"21532:2:101","statements":[]},"pre":{"nativeSrc":"21512:3:101","nodeType":"YulBlock","src":"21512:3:101","statements":[]},"src":"21508:712:101"}]},"name":"checked_exp_helper","nativeSrc":"21378:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"21406:6:101","nodeType":"YulTypedName","src":"21406:6:101","type":""},{"name":"_base","nativeSrc":"21414:5:101","nodeType":"YulTypedName","src":"21414:5:101","type":""},{"name":"exponent","nativeSrc":"21421:8:101","nodeType":"YulTypedName","src":"21421:8:101","type":""},{"name":"max","nativeSrc":"21431:3:101","nodeType":"YulTypedName","src":"21431:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"21439:5:101","nodeType":"YulTypedName","src":"21439:5:101","type":""},{"name":"base","nativeSrc":"21446:4:101","nodeType":"YulTypedName","src":"21446:4:101","type":""}],"src":"21378:848:101"},{"body":{"nativeSrc":"22292:1013:101","nodeType":"YulBlock","src":"22292:1013:101","statements":[{"body":{"nativeSrc":"22487:20:101","nodeType":"YulBlock","src":"22487:20:101","statements":[{"nativeSrc":"22489:10:101","nodeType":"YulAssignment","src":"22489:10:101","value":{"kind":"number","nativeSrc":"22498:1:101","nodeType":"YulLiteral","src":"22498:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"22489:5:101","nodeType":"YulIdentifier","src":"22489:5:101"}]},{"nativeSrc":"22500:5:101","nodeType":"YulLeave","src":"22500:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"22477:8:101","nodeType":"YulIdentifier","src":"22477:8:101"}],"functionName":{"name":"iszero","nativeSrc":"22470:6:101","nodeType":"YulIdentifier","src":"22470:6:101"},"nativeSrc":"22470:16:101","nodeType":"YulFunctionCall","src":"22470:16:101"},"nativeSrc":"22467:40:101","nodeType":"YulIf","src":"22467:40:101"},{"body":{"nativeSrc":"22532:20:101","nodeType":"YulBlock","src":"22532:20:101","statements":[{"nativeSrc":"22534:10:101","nodeType":"YulAssignment","src":"22534:10:101","value":{"kind":"number","nativeSrc":"22543:1:101","nodeType":"YulLiteral","src":"22543:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"22534:5:101","nodeType":"YulIdentifier","src":"22534:5:101"}]},{"nativeSrc":"22545:5:101","nodeType":"YulLeave","src":"22545:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"22526:4:101","nodeType":"YulIdentifier","src":"22526:4:101"}],"functionName":{"name":"iszero","nativeSrc":"22519:6:101","nodeType":"YulIdentifier","src":"22519:6:101"},"nativeSrc":"22519:12:101","nodeType":"YulFunctionCall","src":"22519:12:101"},"nativeSrc":"22516:36:101","nodeType":"YulIf","src":"22516:36:101"},{"cases":[{"body":{"nativeSrc":"22662:20:101","nodeType":"YulBlock","src":"22662:20:101","statements":[{"nativeSrc":"22664:10:101","nodeType":"YulAssignment","src":"22664:10:101","value":{"kind":"number","nativeSrc":"22673:1:101","nodeType":"YulLiteral","src":"22673:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"22664:5:101","nodeType":"YulIdentifier","src":"22664:5:101"}]},{"nativeSrc":"22675:5:101","nodeType":"YulLeave","src":"22675:5:101"}]},"nativeSrc":"22655:27:101","nodeType":"YulCase","src":"22655:27:101","value":{"kind":"number","nativeSrc":"22660:1:101","nodeType":"YulLiteral","src":"22660:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"22706:176:101","nodeType":"YulBlock","src":"22706:176:101","statements":[{"body":{"nativeSrc":"22741:22:101","nodeType":"YulBlock","src":"22741:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22743:16:101","nodeType":"YulIdentifier","src":"22743:16:101"},"nativeSrc":"22743:18:101","nodeType":"YulFunctionCall","src":"22743:18:101"},"nativeSrc":"22743:18:101","nodeType":"YulExpressionStatement","src":"22743:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"22726:8:101","nodeType":"YulIdentifier","src":"22726:8:101"},{"kind":"number","nativeSrc":"22736:3:101","nodeType":"YulLiteral","src":"22736:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"22723:2:101","nodeType":"YulIdentifier","src":"22723:2:101"},"nativeSrc":"22723:17:101","nodeType":"YulFunctionCall","src":"22723:17:101"},"nativeSrc":"22720:43:101","nodeType":"YulIf","src":"22720:43:101"},{"nativeSrc":"22776:25:101","nodeType":"YulAssignment","src":"22776:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"22789:1:101","nodeType":"YulLiteral","src":"22789:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"22792:8:101","nodeType":"YulIdentifier","src":"22792:8:101"}],"functionName":{"name":"exp","nativeSrc":"22785:3:101","nodeType":"YulIdentifier","src":"22785:3:101"},"nativeSrc":"22785:16:101","nodeType":"YulFunctionCall","src":"22785:16:101"},"variableNames":[{"name":"power","nativeSrc":"22776:5:101","nodeType":"YulIdentifier","src":"22776:5:101"}]},{"body":{"nativeSrc":"22832:22:101","nodeType":"YulBlock","src":"22832:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22834:16:101","nodeType":"YulIdentifier","src":"22834:16:101"},"nativeSrc":"22834:18:101","nodeType":"YulFunctionCall","src":"22834:18:101"},"nativeSrc":"22834:18:101","nodeType":"YulExpressionStatement","src":"22834:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"22820:5:101","nodeType":"YulIdentifier","src":"22820:5:101"},{"name":"max","nativeSrc":"22827:3:101","nodeType":"YulIdentifier","src":"22827:3:101"}],"functionName":{"name":"gt","nativeSrc":"22817:2:101","nodeType":"YulIdentifier","src":"22817:2:101"},"nativeSrc":"22817:14:101","nodeType":"YulFunctionCall","src":"22817:14:101"},"nativeSrc":"22814:40:101","nodeType":"YulIf","src":"22814:40:101"},{"nativeSrc":"22867:5:101","nodeType":"YulLeave","src":"22867:5:101"}]},"nativeSrc":"22691:191:101","nodeType":"YulCase","src":"22691:191:101","value":{"kind":"number","nativeSrc":"22696:1:101","nodeType":"YulLiteral","src":"22696:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"22612:4:101","nodeType":"YulIdentifier","src":"22612:4:101"},"nativeSrc":"22605:277:101","nodeType":"YulSwitch","src":"22605:277:101"},{"body":{"nativeSrc":"23014:123:101","nodeType":"YulBlock","src":"23014:123:101","statements":[{"nativeSrc":"23028:28:101","nodeType":"YulAssignment","src":"23028:28:101","value":{"arguments":[{"name":"base","nativeSrc":"23041:4:101","nodeType":"YulIdentifier","src":"23041:4:101"},{"name":"exponent","nativeSrc":"23047:8:101","nodeType":"YulIdentifier","src":"23047:8:101"}],"functionName":{"name":"exp","nativeSrc":"23037:3:101","nodeType":"YulIdentifier","src":"23037:3:101"},"nativeSrc":"23037:19:101","nodeType":"YulFunctionCall","src":"23037:19:101"},"variableNames":[{"name":"power","nativeSrc":"23028:5:101","nodeType":"YulIdentifier","src":"23028:5:101"}]},{"body":{"nativeSrc":"23087:22:101","nodeType":"YulBlock","src":"23087:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"23089:16:101","nodeType":"YulIdentifier","src":"23089:16:101"},"nativeSrc":"23089:18:101","nodeType":"YulFunctionCall","src":"23089:18:101"},"nativeSrc":"23089:18:101","nodeType":"YulExpressionStatement","src":"23089:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"23075:5:101","nodeType":"YulIdentifier","src":"23075:5:101"},{"name":"max","nativeSrc":"23082:3:101","nodeType":"YulIdentifier","src":"23082:3:101"}],"functionName":{"name":"gt","nativeSrc":"23072:2:101","nodeType":"YulIdentifier","src":"23072:2:101"},"nativeSrc":"23072:14:101","nodeType":"YulFunctionCall","src":"23072:14:101"},"nativeSrc":"23069:40:101","nodeType":"YulIf","src":"23069:40:101"},{"nativeSrc":"23122:5:101","nodeType":"YulLeave","src":"23122:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"22917:4:101","nodeType":"YulIdentifier","src":"22917:4:101"},{"kind":"number","nativeSrc":"22923:2:101","nodeType":"YulLiteral","src":"22923:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"22914:2:101","nodeType":"YulIdentifier","src":"22914:2:101"},"nativeSrc":"22914:12:101","nodeType":"YulFunctionCall","src":"22914:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"22931:8:101","nodeType":"YulIdentifier","src":"22931:8:101"},{"kind":"number","nativeSrc":"22941:2:101","nodeType":"YulLiteral","src":"22941:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"22928:2:101","nodeType":"YulIdentifier","src":"22928:2:101"},"nativeSrc":"22928:16:101","nodeType":"YulFunctionCall","src":"22928:16:101"}],"functionName":{"name":"and","nativeSrc":"22910:3:101","nodeType":"YulIdentifier","src":"22910:3:101"},"nativeSrc":"22910:35:101","nodeType":"YulFunctionCall","src":"22910:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"22966:4:101","nodeType":"YulIdentifier","src":"22966:4:101"},{"kind":"number","nativeSrc":"22972:3:101","nodeType":"YulLiteral","src":"22972:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"22963:2:101","nodeType":"YulIdentifier","src":"22963:2:101"},"nativeSrc":"22963:13:101","nodeType":"YulFunctionCall","src":"22963:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"22981:8:101","nodeType":"YulIdentifier","src":"22981:8:101"},{"kind":"number","nativeSrc":"22991:2:101","nodeType":"YulLiteral","src":"22991:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"22978:2:101","nodeType":"YulIdentifier","src":"22978:2:101"},"nativeSrc":"22978:16:101","nodeType":"YulFunctionCall","src":"22978:16:101"}],"functionName":{"name":"and","nativeSrc":"22959:3:101","nodeType":"YulIdentifier","src":"22959:3:101"},"nativeSrc":"22959:36:101","nodeType":"YulFunctionCall","src":"22959:36:101"}],"functionName":{"name":"or","nativeSrc":"22894:2:101","nodeType":"YulIdentifier","src":"22894:2:101"},"nativeSrc":"22894:111:101","nodeType":"YulFunctionCall","src":"22894:111:101"},"nativeSrc":"22891:246:101","nodeType":"YulIf","src":"22891:246:101"},{"nativeSrc":"23147:57:101","nodeType":"YulAssignment","src":"23147:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"23181:1:101","nodeType":"YulLiteral","src":"23181:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"23184:4:101","nodeType":"YulIdentifier","src":"23184:4:101"},{"name":"exponent","nativeSrc":"23190:8:101","nodeType":"YulIdentifier","src":"23190:8:101"},{"name":"max","nativeSrc":"23200:3:101","nodeType":"YulIdentifier","src":"23200:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"23162:18:101","nodeType":"YulIdentifier","src":"23162:18:101"},"nativeSrc":"23162:42:101","nodeType":"YulFunctionCall","src":"23162:42:101"},"variableNames":[{"name":"power","nativeSrc":"23147:5:101","nodeType":"YulIdentifier","src":"23147:5:101"},{"name":"base","nativeSrc":"23154:4:101","nodeType":"YulIdentifier","src":"23154:4:101"}]},{"body":{"nativeSrc":"23243:22:101","nodeType":"YulBlock","src":"23243:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"23245:16:101","nodeType":"YulIdentifier","src":"23245:16:101"},"nativeSrc":"23245:18:101","nodeType":"YulFunctionCall","src":"23245:18:101"},"nativeSrc":"23245:18:101","nodeType":"YulExpressionStatement","src":"23245:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"23220:5:101","nodeType":"YulIdentifier","src":"23220:5:101"},{"arguments":[{"name":"max","nativeSrc":"23231:3:101","nodeType":"YulIdentifier","src":"23231:3:101"},{"name":"base","nativeSrc":"23236:4:101","nodeType":"YulIdentifier","src":"23236:4:101"}],"functionName":{"name":"div","nativeSrc":"23227:3:101","nodeType":"YulIdentifier","src":"23227:3:101"},"nativeSrc":"23227:14:101","nodeType":"YulFunctionCall","src":"23227:14:101"}],"functionName":{"name":"gt","nativeSrc":"23217:2:101","nodeType":"YulIdentifier","src":"23217:2:101"},"nativeSrc":"23217:25:101","nodeType":"YulFunctionCall","src":"23217:25:101"},"nativeSrc":"23214:51:101","nodeType":"YulIf","src":"23214:51:101"},{"nativeSrc":"23274:25:101","nodeType":"YulAssignment","src":"23274:25:101","value":{"arguments":[{"name":"power","nativeSrc":"23287:5:101","nodeType":"YulIdentifier","src":"23287:5:101"},{"name":"base","nativeSrc":"23294:4:101","nodeType":"YulIdentifier","src":"23294:4:101"}],"functionName":{"name":"mul","nativeSrc":"23283:3:101","nodeType":"YulIdentifier","src":"23283:3:101"},"nativeSrc":"23283:16:101","nodeType":"YulFunctionCall","src":"23283:16:101"},"variableNames":[{"name":"power","nativeSrc":"23274:5:101","nodeType":"YulIdentifier","src":"23274:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"22232:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"22262:4:101","nodeType":"YulTypedName","src":"22262:4:101","type":""},{"name":"exponent","nativeSrc":"22268:8:101","nodeType":"YulTypedName","src":"22268:8:101","type":""},{"name":"max","nativeSrc":"22278:3:101","nodeType":"YulTypedName","src":"22278:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"22286:5:101","nodeType":"YulTypedName","src":"22286:5:101","type":""}],"src":"22232:1073:101"},{"body":{"nativeSrc":"23377:219:101","nodeType":"YulBlock","src":"23377:219:101","statements":[{"nativeSrc":"23387:31:101","nodeType":"YulAssignment","src":"23387:31:101","value":{"arguments":[{"name":"base","nativeSrc":"23413:4:101","nodeType":"YulIdentifier","src":"23413:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23395:17:101","nodeType":"YulIdentifier","src":"23395:17:101"},"nativeSrc":"23395:23:101","nodeType":"YulFunctionCall","src":"23395:23:101"},"variableNames":[{"name":"base","nativeSrc":"23387:4:101","nodeType":"YulIdentifier","src":"23387:4:101"}]},{"nativeSrc":"23427:39:101","nodeType":"YulAssignment","src":"23427:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"23457:8:101","nodeType":"YulIdentifier","src":"23457:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23439:17:101","nodeType":"YulIdentifier","src":"23439:17:101"},"nativeSrc":"23439:27:101","nodeType":"YulFunctionCall","src":"23439:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"23427:8:101","nodeType":"YulIdentifier","src":"23427:8:101"}]},{"nativeSrc":"23476:113:101","nodeType":"YulAssignment","src":"23476:113:101","value":{"arguments":[{"name":"base","nativeSrc":"23506:4:101","nodeType":"YulIdentifier","src":"23506:4:101"},{"name":"exponent","nativeSrc":"23512:8:101","nodeType":"YulIdentifier","src":"23512:8:101"},{"kind":"number","nativeSrc":"23522:66:101","nodeType":"YulLiteral","src":"23522:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"23485:20:101","nodeType":"YulIdentifier","src":"23485:20:101"},"nativeSrc":"23485:104:101","nodeType":"YulFunctionCall","src":"23485:104:101"},"variableNames":[{"name":"power","nativeSrc":"23476:5:101","nodeType":"YulIdentifier","src":"23476:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"23311:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"23352:4:101","nodeType":"YulTypedName","src":"23352:4:101","type":""},{"name":"exponent","nativeSrc":"23358:8:101","nodeType":"YulTypedName","src":"23358:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"23371:5:101","nodeType":"YulTypedName","src":"23371:5:101","type":""}],"src":"23311:285:101"},{"body":{"nativeSrc":"23650:362:101","nodeType":"YulBlock","src":"23650:362:101","statements":[{"nativeSrc":"23660:25:101","nodeType":"YulAssignment","src":"23660:25:101","value":{"arguments":[{"name":"x","nativeSrc":"23683:1:101","nodeType":"YulIdentifier","src":"23683:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23665:17:101","nodeType":"YulIdentifier","src":"23665:17:101"},"nativeSrc":"23665:20:101","nodeType":"YulFunctionCall","src":"23665:20:101"},"variableNames":[{"name":"x","nativeSrc":"23660:1:101","nodeType":"YulIdentifier","src":"23660:1:101"}]},{"nativeSrc":"23694:25:101","nodeType":"YulAssignment","src":"23694:25:101","value":{"arguments":[{"name":"y","nativeSrc":"23717:1:101","nodeType":"YulIdentifier","src":"23717:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23699:17:101","nodeType":"YulIdentifier","src":"23699:17:101"},"nativeSrc":"23699:20:101","nodeType":"YulFunctionCall","src":"23699:20:101"},"variableNames":[{"name":"y","nativeSrc":"23694:1:101","nodeType":"YulIdentifier","src":"23694:1:101"}]},{"nativeSrc":"23728:28:101","nodeType":"YulVariableDeclaration","src":"23728:28:101","value":{"arguments":[{"name":"x","nativeSrc":"23751:1:101","nodeType":"YulIdentifier","src":"23751:1:101"},{"name":"y","nativeSrc":"23754:1:101","nodeType":"YulIdentifier","src":"23754:1:101"}],"functionName":{"name":"mul","nativeSrc":"23747:3:101","nodeType":"YulIdentifier","src":"23747:3:101"},"nativeSrc":"23747:9:101","nodeType":"YulFunctionCall","src":"23747:9:101"},"variables":[{"name":"product_raw","nativeSrc":"23732:11:101","nodeType":"YulTypedName","src":"23732:11:101","type":""}]},{"nativeSrc":"23765:41:101","nodeType":"YulAssignment","src":"23765:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"23794:11:101","nodeType":"YulIdentifier","src":"23794:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23776:17:101","nodeType":"YulIdentifier","src":"23776:17:101"},"nativeSrc":"23776:30:101","nodeType":"YulFunctionCall","src":"23776:30:101"},"variableNames":[{"name":"product","nativeSrc":"23765:7:101","nodeType":"YulIdentifier","src":"23765:7:101"}]},{"body":{"nativeSrc":"23983:22:101","nodeType":"YulBlock","src":"23983:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"23985:16:101","nodeType":"YulIdentifier","src":"23985:16:101"},"nativeSrc":"23985:18:101","nodeType":"YulFunctionCall","src":"23985:18:101"},"nativeSrc":"23985:18:101","nodeType":"YulExpressionStatement","src":"23985:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"23916:1:101","nodeType":"YulIdentifier","src":"23916:1:101"}],"functionName":{"name":"iszero","nativeSrc":"23909:6:101","nodeType":"YulIdentifier","src":"23909:6:101"},"nativeSrc":"23909:9:101","nodeType":"YulFunctionCall","src":"23909:9:101"},{"arguments":[{"name":"y","nativeSrc":"23939:1:101","nodeType":"YulIdentifier","src":"23939:1:101"},{"arguments":[{"name":"product","nativeSrc":"23946:7:101","nodeType":"YulIdentifier","src":"23946:7:101"},{"name":"x","nativeSrc":"23955:1:101","nodeType":"YulIdentifier","src":"23955:1:101"}],"functionName":{"name":"div","nativeSrc":"23942:3:101","nodeType":"YulIdentifier","src":"23942:3:101"},"nativeSrc":"23942:15:101","nodeType":"YulFunctionCall","src":"23942:15:101"}],"functionName":{"name":"eq","nativeSrc":"23936:2:101","nodeType":"YulIdentifier","src":"23936:2:101"},"nativeSrc":"23936:22:101","nodeType":"YulFunctionCall","src":"23936:22:101"}],"functionName":{"name":"or","nativeSrc":"23889:2:101","nodeType":"YulIdentifier","src":"23889:2:101"},"nativeSrc":"23889:83:101","nodeType":"YulFunctionCall","src":"23889:83:101"}],"functionName":{"name":"iszero","nativeSrc":"23869:6:101","nodeType":"YulIdentifier","src":"23869:6:101"},"nativeSrc":"23869:113:101","nodeType":"YulFunctionCall","src":"23869:113:101"},"nativeSrc":"23866:139:101","nodeType":"YulIf","src":"23866:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"23602:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"23633:1:101","nodeType":"YulTypedName","src":"23633:1:101","type":""},{"name":"y","nativeSrc":"23636:1:101","nodeType":"YulTypedName","src":"23636:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"23642:7:101","nodeType":"YulTypedName","src":"23642:7:101","type":""}],"src":"23602:410:101"},{"body":{"nativeSrc":"24124:124:101","nodeType":"YulBlock","src":"24124:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"24146:6:101","nodeType":"YulIdentifier","src":"24146:6:101"},{"kind":"number","nativeSrc":"24154:1:101","nodeType":"YulLiteral","src":"24154:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24142:3:101","nodeType":"YulIdentifier","src":"24142:3:101"},"nativeSrc":"24142:14:101","nodeType":"YulFunctionCall","src":"24142:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"24158:34:101","nodeType":"YulLiteral","src":"24158:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"24135:6:101","nodeType":"YulIdentifier","src":"24135:6:101"},"nativeSrc":"24135:58:101","nodeType":"YulFunctionCall","src":"24135:58:101"},"nativeSrc":"24135:58:101","nodeType":"YulExpressionStatement","src":"24135:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"24214:6:101","nodeType":"YulIdentifier","src":"24214:6:101"},{"kind":"number","nativeSrc":"24222:2:101","nodeType":"YulLiteral","src":"24222:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24210:3:101","nodeType":"YulIdentifier","src":"24210:3:101"},"nativeSrc":"24210:15:101","nodeType":"YulFunctionCall","src":"24210:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"24227:13:101","nodeType":"YulLiteral","src":"24227:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"24203:6:101","nodeType":"YulIdentifier","src":"24203:6:101"},"nativeSrc":"24203:38:101","nodeType":"YulFunctionCall","src":"24203:38:101"},"nativeSrc":"24203:38:101","nodeType":"YulExpressionStatement","src":"24203:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"24018:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"24116:6:101","nodeType":"YulTypedName","src":"24116:6:101","type":""}],"src":"24018:230:101"},{"body":{"nativeSrc":"24400:220:101","nodeType":"YulBlock","src":"24400:220:101","statements":[{"nativeSrc":"24410:74:101","nodeType":"YulAssignment","src":"24410:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"24476:3:101","nodeType":"YulIdentifier","src":"24476:3:101"},{"kind":"number","nativeSrc":"24481:2:101","nodeType":"YulLiteral","src":"24481:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"24417:58:101","nodeType":"YulIdentifier","src":"24417:58:101"},"nativeSrc":"24417:67:101","nodeType":"YulFunctionCall","src":"24417:67:101"},"variableNames":[{"name":"pos","nativeSrc":"24410:3:101","nodeType":"YulIdentifier","src":"24410:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"24582:3:101","nodeType":"YulIdentifier","src":"24582:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"24493:88:101","nodeType":"YulIdentifier","src":"24493:88:101"},"nativeSrc":"24493:93:101","nodeType":"YulFunctionCall","src":"24493:93:101"},"nativeSrc":"24493:93:101","nodeType":"YulExpressionStatement","src":"24493:93:101"},{"nativeSrc":"24595:19:101","nodeType":"YulAssignment","src":"24595:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"24606:3:101","nodeType":"YulIdentifier","src":"24606:3:101"},{"kind":"number","nativeSrc":"24611:2:101","nodeType":"YulLiteral","src":"24611:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24602:3:101","nodeType":"YulIdentifier","src":"24602:3:101"},"nativeSrc":"24602:12:101","nodeType":"YulFunctionCall","src":"24602:12:101"},"variableNames":[{"name":"end","nativeSrc":"24595:3:101","nodeType":"YulIdentifier","src":"24595:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"24254:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"24388:3:101","nodeType":"YulTypedName","src":"24388:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24396:3:101","nodeType":"YulTypedName","src":"24396:3:101","type":""}],"src":"24254:366:101"},{"body":{"nativeSrc":"24797:248:101","nodeType":"YulBlock","src":"24797:248:101","statements":[{"nativeSrc":"24807:26:101","nodeType":"YulAssignment","src":"24807:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"24819:9:101","nodeType":"YulIdentifier","src":"24819:9:101"},{"kind":"number","nativeSrc":"24830:2:101","nodeType":"YulLiteral","src":"24830:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24815:3:101","nodeType":"YulIdentifier","src":"24815:3:101"},"nativeSrc":"24815:18:101","nodeType":"YulFunctionCall","src":"24815:18:101"},"variableNames":[{"name":"tail","nativeSrc":"24807:4:101","nodeType":"YulIdentifier","src":"24807:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24854:9:101","nodeType":"YulIdentifier","src":"24854:9:101"},{"kind":"number","nativeSrc":"24865:1:101","nodeType":"YulLiteral","src":"24865:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24850:3:101","nodeType":"YulIdentifier","src":"24850:3:101"},"nativeSrc":"24850:17:101","nodeType":"YulFunctionCall","src":"24850:17:101"},{"arguments":[{"name":"tail","nativeSrc":"24873:4:101","nodeType":"YulIdentifier","src":"24873:4:101"},{"name":"headStart","nativeSrc":"24879:9:101","nodeType":"YulIdentifier","src":"24879:9:101"}],"functionName":{"name":"sub","nativeSrc":"24869:3:101","nodeType":"YulIdentifier","src":"24869:3:101"},"nativeSrc":"24869:20:101","nodeType":"YulFunctionCall","src":"24869:20:101"}],"functionName":{"name":"mstore","nativeSrc":"24843:6:101","nodeType":"YulIdentifier","src":"24843:6:101"},"nativeSrc":"24843:47:101","nodeType":"YulFunctionCall","src":"24843:47:101"},"nativeSrc":"24843:47:101","nodeType":"YulExpressionStatement","src":"24843:47:101"},{"nativeSrc":"24899:139:101","nodeType":"YulAssignment","src":"24899:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"25033:4:101","nodeType":"YulIdentifier","src":"25033:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"24907:124:101","nodeType":"YulIdentifier","src":"24907:124:101"},"nativeSrc":"24907:131:101","nodeType":"YulFunctionCall","src":"24907:131:101"},"variableNames":[{"name":"tail","nativeSrc":"24899:4:101","nodeType":"YulIdentifier","src":"24899:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24626:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24777:9:101","nodeType":"YulTypedName","src":"24777:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24792:4:101","nodeType":"YulTypedName","src":"24792:4:101","type":""}],"src":"24626:419:101"},{"body":{"nativeSrc":"25094:148:101","nodeType":"YulBlock","src":"25094:148:101","statements":[{"nativeSrc":"25104:23:101","nodeType":"YulAssignment","src":"25104:23:101","value":{"arguments":[{"name":"x","nativeSrc":"25125:1:101","nodeType":"YulIdentifier","src":"25125:1:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"25109:15:101","nodeType":"YulIdentifier","src":"25109:15:101"},"nativeSrc":"25109:18:101","nodeType":"YulFunctionCall","src":"25109:18:101"},"variableNames":[{"name":"x","nativeSrc":"25104:1:101","nodeType":"YulIdentifier","src":"25104:1:101"}]},{"nativeSrc":"25136:23:101","nodeType":"YulAssignment","src":"25136:23:101","value":{"arguments":[{"name":"y","nativeSrc":"25157:1:101","nodeType":"YulIdentifier","src":"25157:1:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"25141:15:101","nodeType":"YulIdentifier","src":"25141:15:101"},"nativeSrc":"25141:18:101","nodeType":"YulFunctionCall","src":"25141:18:101"},"variableNames":[{"name":"y","nativeSrc":"25136:1:101","nodeType":"YulIdentifier","src":"25136:1:101"}]},{"nativeSrc":"25168:17:101","nodeType":"YulAssignment","src":"25168:17:101","value":{"arguments":[{"name":"x","nativeSrc":"25180:1:101","nodeType":"YulIdentifier","src":"25180:1:101"},{"name":"y","nativeSrc":"25183:1:101","nodeType":"YulIdentifier","src":"25183:1:101"}],"functionName":{"name":"sub","nativeSrc":"25176:3:101","nodeType":"YulIdentifier","src":"25176:3:101"},"nativeSrc":"25176:9:101","nodeType":"YulFunctionCall","src":"25176:9:101"},"variableNames":[{"name":"diff","nativeSrc":"25168:4:101","nodeType":"YulIdentifier","src":"25168:4:101"}]},{"body":{"nativeSrc":"25213:22:101","nodeType":"YulBlock","src":"25213:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"25215:16:101","nodeType":"YulIdentifier","src":"25215:16:101"},"nativeSrc":"25215:18:101","nodeType":"YulFunctionCall","src":"25215:18:101"},"nativeSrc":"25215:18:101","nodeType":"YulExpressionStatement","src":"25215:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"25201:4:101","nodeType":"YulIdentifier","src":"25201:4:101"},{"kind":"number","nativeSrc":"25207:4:101","nodeType":"YulLiteral","src":"25207:4:101","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"25198:2:101","nodeType":"YulIdentifier","src":"25198:2:101"},"nativeSrc":"25198:14:101","nodeType":"YulFunctionCall","src":"25198:14:101"},"nativeSrc":"25195:40:101","nodeType":"YulIf","src":"25195:40:101"}]},"name":"checked_sub_t_uint8","nativeSrc":"25051:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"25080:1:101","nodeType":"YulTypedName","src":"25080:1:101","type":""},{"name":"y","nativeSrc":"25083:1:101","nodeType":"YulTypedName","src":"25083:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"25089:4:101","nodeType":"YulTypedName","src":"25089:4:101","type":""}],"src":"25051:191:101"},{"body":{"nativeSrc":"25292:61:101","nodeType":"YulBlock","src":"25292:61:101","statements":[{"nativeSrc":"25302:45:101","nodeType":"YulAssignment","src":"25302:45:101","value":{"arguments":[{"name":"value","nativeSrc":"25317:5:101","nodeType":"YulIdentifier","src":"25317:5:101"},{"kind":"number","nativeSrc":"25324:22:101","nodeType":"YulLiteral","src":"25324:22:101","type":"","value":"0xffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"25313:3:101","nodeType":"YulIdentifier","src":"25313:3:101"},"nativeSrc":"25313:34:101","nodeType":"YulFunctionCall","src":"25313:34:101"},"variableNames":[{"name":"cleaned","nativeSrc":"25302:7:101","nodeType":"YulIdentifier","src":"25302:7:101"}]}]},"name":"cleanup_t_uint80","nativeSrc":"25248:105:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25274:5:101","nodeType":"YulTypedName","src":"25274:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"25284:7:101","nodeType":"YulTypedName","src":"25284:7:101","type":""}],"src":"25248:105:101"},{"body":{"nativeSrc":"25401:78:101","nodeType":"YulBlock","src":"25401:78:101","statements":[{"body":{"nativeSrc":"25457:16:101","nodeType":"YulBlock","src":"25457:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25466:1:101","nodeType":"YulLiteral","src":"25466:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"25469:1:101","nodeType":"YulLiteral","src":"25469:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25459:6:101","nodeType":"YulIdentifier","src":"25459:6:101"},"nativeSrc":"25459:12:101","nodeType":"YulFunctionCall","src":"25459:12:101"},"nativeSrc":"25459:12:101","nodeType":"YulExpressionStatement","src":"25459:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25424:5:101","nodeType":"YulIdentifier","src":"25424:5:101"},{"arguments":[{"name":"value","nativeSrc":"25448:5:101","nodeType":"YulIdentifier","src":"25448:5:101"}],"functionName":{"name":"cleanup_t_uint80","nativeSrc":"25431:16:101","nodeType":"YulIdentifier","src":"25431:16:101"},"nativeSrc":"25431:23:101","nodeType":"YulFunctionCall","src":"25431:23:101"}],"functionName":{"name":"eq","nativeSrc":"25421:2:101","nodeType":"YulIdentifier","src":"25421:2:101"},"nativeSrc":"25421:34:101","nodeType":"YulFunctionCall","src":"25421:34:101"}],"functionName":{"name":"iszero","nativeSrc":"25414:6:101","nodeType":"YulIdentifier","src":"25414:6:101"},"nativeSrc":"25414:42:101","nodeType":"YulFunctionCall","src":"25414:42:101"},"nativeSrc":"25411:62:101","nodeType":"YulIf","src":"25411:62:101"}]},"name":"validator_revert_t_uint80","nativeSrc":"25359:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25394:5:101","nodeType":"YulTypedName","src":"25394:5:101","type":""}],"src":"25359:120:101"},{"body":{"nativeSrc":"25547:79:101","nodeType":"YulBlock","src":"25547:79:101","statements":[{"nativeSrc":"25557:22:101","nodeType":"YulAssignment","src":"25557:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"25572:6:101","nodeType":"YulIdentifier","src":"25572:6:101"}],"functionName":{"name":"mload","nativeSrc":"25566:5:101","nodeType":"YulIdentifier","src":"25566:5:101"},"nativeSrc":"25566:13:101","nodeType":"YulFunctionCall","src":"25566:13:101"},"variableNames":[{"name":"value","nativeSrc":"25557:5:101","nodeType":"YulIdentifier","src":"25557:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"25614:5:101","nodeType":"YulIdentifier","src":"25614:5:101"}],"functionName":{"name":"validator_revert_t_uint80","nativeSrc":"25588:25:101","nodeType":"YulIdentifier","src":"25588:25:101"},"nativeSrc":"25588:32:101","nodeType":"YulFunctionCall","src":"25588:32:101"},"nativeSrc":"25588:32:101","nodeType":"YulExpressionStatement","src":"25588:32:101"}]},"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"25485:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"25525:6:101","nodeType":"YulTypedName","src":"25525:6:101","type":""},{"name":"end","nativeSrc":"25533:3:101","nodeType":"YulTypedName","src":"25533:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"25541:5:101","nodeType":"YulTypedName","src":"25541:5:101","type":""}],"src":"25485:141:101"},{"body":{"nativeSrc":"25676:32:101","nodeType":"YulBlock","src":"25676:32:101","statements":[{"nativeSrc":"25686:16:101","nodeType":"YulAssignment","src":"25686:16:101","value":{"name":"value","nativeSrc":"25697:5:101","nodeType":"YulIdentifier","src":"25697:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"25686:7:101","nodeType":"YulIdentifier","src":"25686:7:101"}]}]},"name":"cleanup_t_int256","nativeSrc":"25632:76:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25658:5:101","nodeType":"YulTypedName","src":"25658:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"25668:7:101","nodeType":"YulTypedName","src":"25668:7:101","type":""}],"src":"25632:76:101"},{"body":{"nativeSrc":"25756:78:101","nodeType":"YulBlock","src":"25756:78:101","statements":[{"body":{"nativeSrc":"25812:16:101","nodeType":"YulBlock","src":"25812:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25821:1:101","nodeType":"YulLiteral","src":"25821:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"25824:1:101","nodeType":"YulLiteral","src":"25824:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25814:6:101","nodeType":"YulIdentifier","src":"25814:6:101"},"nativeSrc":"25814:12:101","nodeType":"YulFunctionCall","src":"25814:12:101"},"nativeSrc":"25814:12:101","nodeType":"YulExpressionStatement","src":"25814:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25779:5:101","nodeType":"YulIdentifier","src":"25779:5:101"},{"arguments":[{"name":"value","nativeSrc":"25803:5:101","nodeType":"YulIdentifier","src":"25803:5:101"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"25786:16:101","nodeType":"YulIdentifier","src":"25786:16:101"},"nativeSrc":"25786:23:101","nodeType":"YulFunctionCall","src":"25786:23:101"}],"functionName":{"name":"eq","nativeSrc":"25776:2:101","nodeType":"YulIdentifier","src":"25776:2:101"},"nativeSrc":"25776:34:101","nodeType":"YulFunctionCall","src":"25776:34:101"}],"functionName":{"name":"iszero","nativeSrc":"25769:6:101","nodeType":"YulIdentifier","src":"25769:6:101"},"nativeSrc":"25769:42:101","nodeType":"YulFunctionCall","src":"25769:42:101"},"nativeSrc":"25766:62:101","nodeType":"YulIf","src":"25766:62:101"}]},"name":"validator_revert_t_int256","nativeSrc":"25714:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25749:5:101","nodeType":"YulTypedName","src":"25749:5:101","type":""}],"src":"25714:120:101"},{"body":{"nativeSrc":"25902:79:101","nodeType":"YulBlock","src":"25902:79:101","statements":[{"nativeSrc":"25912:22:101","nodeType":"YulAssignment","src":"25912:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"25927:6:101","nodeType":"YulIdentifier","src":"25927:6:101"}],"functionName":{"name":"mload","nativeSrc":"25921:5:101","nodeType":"YulIdentifier","src":"25921:5:101"},"nativeSrc":"25921:13:101","nodeType":"YulFunctionCall","src":"25921:13:101"},"variableNames":[{"name":"value","nativeSrc":"25912:5:101","nodeType":"YulIdentifier","src":"25912:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"25969:5:101","nodeType":"YulIdentifier","src":"25969:5:101"}],"functionName":{"name":"validator_revert_t_int256","nativeSrc":"25943:25:101","nodeType":"YulIdentifier","src":"25943:25:101"},"nativeSrc":"25943:32:101","nodeType":"YulFunctionCall","src":"25943:32:101"},"nativeSrc":"25943:32:101","nodeType":"YulExpressionStatement","src":"25943:32:101"}]},"name":"abi_decode_t_int256_fromMemory","nativeSrc":"25840:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"25880:6:101","nodeType":"YulTypedName","src":"25880:6:101","type":""},{"name":"end","nativeSrc":"25888:3:101","nodeType":"YulTypedName","src":"25888:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"25896:5:101","nodeType":"YulTypedName","src":"25896:5:101","type":""}],"src":"25840:141:101"},{"body":{"nativeSrc":"26050:80:101","nodeType":"YulBlock","src":"26050:80:101","statements":[{"nativeSrc":"26060:22:101","nodeType":"YulAssignment","src":"26060:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"26075:6:101","nodeType":"YulIdentifier","src":"26075:6:101"}],"functionName":{"name":"mload","nativeSrc":"26069:5:101","nodeType":"YulIdentifier","src":"26069:5:101"},"nativeSrc":"26069:13:101","nodeType":"YulFunctionCall","src":"26069:13:101"},"variableNames":[{"name":"value","nativeSrc":"26060:5:101","nodeType":"YulIdentifier","src":"26060:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"26118:5:101","nodeType":"YulIdentifier","src":"26118:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"26091:26:101","nodeType":"YulIdentifier","src":"26091:26:101"},"nativeSrc":"26091:33:101","nodeType":"YulFunctionCall","src":"26091:33:101"},"nativeSrc":"26091:33:101","nodeType":"YulExpressionStatement","src":"26091:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"25987:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"26028:6:101","nodeType":"YulTypedName","src":"26028:6:101","type":""},{"name":"end","nativeSrc":"26036:3:101","nodeType":"YulTypedName","src":"26036:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"26044:5:101","nodeType":"YulTypedName","src":"26044:5:101","type":""}],"src":"25987:143:101"},{"body":{"nativeSrc":"26278:829:101","nodeType":"YulBlock","src":"26278:829:101","statements":[{"body":{"nativeSrc":"26325:83:101","nodeType":"YulBlock","src":"26325:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"26327:77:101","nodeType":"YulIdentifier","src":"26327:77:101"},"nativeSrc":"26327:79:101","nodeType":"YulFunctionCall","src":"26327:79:101"},"nativeSrc":"26327:79:101","nodeType":"YulExpressionStatement","src":"26327:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26299:7:101","nodeType":"YulIdentifier","src":"26299:7:101"},{"name":"headStart","nativeSrc":"26308:9:101","nodeType":"YulIdentifier","src":"26308:9:101"}],"functionName":{"name":"sub","nativeSrc":"26295:3:101","nodeType":"YulIdentifier","src":"26295:3:101"},"nativeSrc":"26295:23:101","nodeType":"YulFunctionCall","src":"26295:23:101"},{"kind":"number","nativeSrc":"26320:3:101","nodeType":"YulLiteral","src":"26320:3:101","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"26291:3:101","nodeType":"YulIdentifier","src":"26291:3:101"},"nativeSrc":"26291:33:101","nodeType":"YulFunctionCall","src":"26291:33:101"},"nativeSrc":"26288:120:101","nodeType":"YulIf","src":"26288:120:101"},{"nativeSrc":"26418:127:101","nodeType":"YulBlock","src":"26418:127:101","statements":[{"nativeSrc":"26433:15:101","nodeType":"YulVariableDeclaration","src":"26433:15:101","value":{"kind":"number","nativeSrc":"26447:1:101","nodeType":"YulLiteral","src":"26447:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"26437:6:101","nodeType":"YulTypedName","src":"26437:6:101","type":""}]},{"nativeSrc":"26462:73:101","nodeType":"YulAssignment","src":"26462:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26507:9:101","nodeType":"YulIdentifier","src":"26507:9:101"},{"name":"offset","nativeSrc":"26518:6:101","nodeType":"YulIdentifier","src":"26518:6:101"}],"functionName":{"name":"add","nativeSrc":"26503:3:101","nodeType":"YulIdentifier","src":"26503:3:101"},"nativeSrc":"26503:22:101","nodeType":"YulFunctionCall","src":"26503:22:101"},{"name":"dataEnd","nativeSrc":"26527:7:101","nodeType":"YulIdentifier","src":"26527:7:101"}],"functionName":{"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"26472:30:101","nodeType":"YulIdentifier","src":"26472:30:101"},"nativeSrc":"26472:63:101","nodeType":"YulFunctionCall","src":"26472:63:101"},"variableNames":[{"name":"value0","nativeSrc":"26462:6:101","nodeType":"YulIdentifier","src":"26462:6:101"}]}]},{"nativeSrc":"26555:128:101","nodeType":"YulBlock","src":"26555:128:101","statements":[{"nativeSrc":"26570:16:101","nodeType":"YulVariableDeclaration","src":"26570:16:101","value":{"kind":"number","nativeSrc":"26584:2:101","nodeType":"YulLiteral","src":"26584:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"26574:6:101","nodeType":"YulTypedName","src":"26574:6:101","type":""}]},{"nativeSrc":"26600:73:101","nodeType":"YulAssignment","src":"26600:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26645:9:101","nodeType":"YulIdentifier","src":"26645:9:101"},{"name":"offset","nativeSrc":"26656:6:101","nodeType":"YulIdentifier","src":"26656:6:101"}],"functionName":{"name":"add","nativeSrc":"26641:3:101","nodeType":"YulIdentifier","src":"26641:3:101"},"nativeSrc":"26641:22:101","nodeType":"YulFunctionCall","src":"26641:22:101"},{"name":"dataEnd","nativeSrc":"26665:7:101","nodeType":"YulIdentifier","src":"26665:7:101"}],"functionName":{"name":"abi_decode_t_int256_fromMemory","nativeSrc":"26610:30:101","nodeType":"YulIdentifier","src":"26610:30:101"},"nativeSrc":"26610:63:101","nodeType":"YulFunctionCall","src":"26610:63:101"},"variableNames":[{"name":"value1","nativeSrc":"26600:6:101","nodeType":"YulIdentifier","src":"26600:6:101"}]}]},{"nativeSrc":"26693:129:101","nodeType":"YulBlock","src":"26693:129:101","statements":[{"nativeSrc":"26708:16:101","nodeType":"YulVariableDeclaration","src":"26708:16:101","value":{"kind":"number","nativeSrc":"26722:2:101","nodeType":"YulLiteral","src":"26722:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"26712:6:101","nodeType":"YulTypedName","src":"26712:6:101","type":""}]},{"nativeSrc":"26738:74:101","nodeType":"YulAssignment","src":"26738:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26784:9:101","nodeType":"YulIdentifier","src":"26784:9:101"},{"name":"offset","nativeSrc":"26795:6:101","nodeType":"YulIdentifier","src":"26795:6:101"}],"functionName":{"name":"add","nativeSrc":"26780:3:101","nodeType":"YulIdentifier","src":"26780:3:101"},"nativeSrc":"26780:22:101","nodeType":"YulFunctionCall","src":"26780:22:101"},{"name":"dataEnd","nativeSrc":"26804:7:101","nodeType":"YulIdentifier","src":"26804:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"26748:31:101","nodeType":"YulIdentifier","src":"26748:31:101"},"nativeSrc":"26748:64:101","nodeType":"YulFunctionCall","src":"26748:64:101"},"variableNames":[{"name":"value2","nativeSrc":"26738:6:101","nodeType":"YulIdentifier","src":"26738:6:101"}]}]},{"nativeSrc":"26832:129:101","nodeType":"YulBlock","src":"26832:129:101","statements":[{"nativeSrc":"26847:16:101","nodeType":"YulVariableDeclaration","src":"26847:16:101","value":{"kind":"number","nativeSrc":"26861:2:101","nodeType":"YulLiteral","src":"26861:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"26851:6:101","nodeType":"YulTypedName","src":"26851:6:101","type":""}]},{"nativeSrc":"26877:74:101","nodeType":"YulAssignment","src":"26877:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26923:9:101","nodeType":"YulIdentifier","src":"26923:9:101"},{"name":"offset","nativeSrc":"26934:6:101","nodeType":"YulIdentifier","src":"26934:6:101"}],"functionName":{"name":"add","nativeSrc":"26919:3:101","nodeType":"YulIdentifier","src":"26919:3:101"},"nativeSrc":"26919:22:101","nodeType":"YulFunctionCall","src":"26919:22:101"},{"name":"dataEnd","nativeSrc":"26943:7:101","nodeType":"YulIdentifier","src":"26943:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"26887:31:101","nodeType":"YulIdentifier","src":"26887:31:101"},"nativeSrc":"26887:64:101","nodeType":"YulFunctionCall","src":"26887:64:101"},"variableNames":[{"name":"value3","nativeSrc":"26877:6:101","nodeType":"YulIdentifier","src":"26877:6:101"}]}]},{"nativeSrc":"26971:129:101","nodeType":"YulBlock","src":"26971:129:101","statements":[{"nativeSrc":"26986:17:101","nodeType":"YulVariableDeclaration","src":"26986:17:101","value":{"kind":"number","nativeSrc":"27000:3:101","nodeType":"YulLiteral","src":"27000:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"26990:6:101","nodeType":"YulTypedName","src":"26990:6:101","type":""}]},{"nativeSrc":"27017:73:101","nodeType":"YulAssignment","src":"27017:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27062:9:101","nodeType":"YulIdentifier","src":"27062:9:101"},{"name":"offset","nativeSrc":"27073:6:101","nodeType":"YulIdentifier","src":"27073:6:101"}],"functionName":{"name":"add","nativeSrc":"27058:3:101","nodeType":"YulIdentifier","src":"27058:3:101"},"nativeSrc":"27058:22:101","nodeType":"YulFunctionCall","src":"27058:22:101"},{"name":"dataEnd","nativeSrc":"27082:7:101","nodeType":"YulIdentifier","src":"27082:7:101"}],"functionName":{"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"27027:30:101","nodeType":"YulIdentifier","src":"27027:30:101"},"nativeSrc":"27027:63:101","nodeType":"YulFunctionCall","src":"27027:63:101"},"variableNames":[{"name":"value4","nativeSrc":"27017:6:101","nodeType":"YulIdentifier","src":"27017:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory","nativeSrc":"26136:971:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26216:9:101","nodeType":"YulTypedName","src":"26216:9:101","type":""},{"name":"dataEnd","nativeSrc":"26227:7:101","nodeType":"YulTypedName","src":"26227:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26239:6:101","nodeType":"YulTypedName","src":"26239:6:101","type":""},{"name":"value1","nativeSrc":"26247:6:101","nodeType":"YulTypedName","src":"26247:6:101","type":""},{"name":"value2","nativeSrc":"26255:6:101","nodeType":"YulTypedName","src":"26255:6:101","type":""},{"name":"value3","nativeSrc":"26263:6:101","nodeType":"YulTypedName","src":"26263:6:101","type":""},{"name":"value4","nativeSrc":"26271:6:101","nodeType":"YulTypedName","src":"26271:6:101","type":""}],"src":"26136:971:101"},{"body":{"nativeSrc":"27219:76:101","nodeType":"YulBlock","src":"27219:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"27241:6:101","nodeType":"YulIdentifier","src":"27241:6:101"},{"kind":"number","nativeSrc":"27249:1:101","nodeType":"YulLiteral","src":"27249:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27237:3:101","nodeType":"YulIdentifier","src":"27237:3:101"},"nativeSrc":"27237:14:101","nodeType":"YulFunctionCall","src":"27237:14:101"},{"hexValue":"636861696e6c696e6b207072696365206d75737420626520706f736974697665","kind":"string","nativeSrc":"27253:34:101","nodeType":"YulLiteral","src":"27253:34:101","type":"","value":"chainlink price must be positive"}],"functionName":{"name":"mstore","nativeSrc":"27230:6:101","nodeType":"YulIdentifier","src":"27230:6:101"},"nativeSrc":"27230:58:101","nodeType":"YulFunctionCall","src":"27230:58:101"},"nativeSrc":"27230:58:101","nodeType":"YulExpressionStatement","src":"27230:58:101"}]},"name":"store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444","nativeSrc":"27113:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"27211:6:101","nodeType":"YulTypedName","src":"27211:6:101","type":""}],"src":"27113:182:101"},{"body":{"nativeSrc":"27447:220:101","nodeType":"YulBlock","src":"27447:220:101","statements":[{"nativeSrc":"27457:74:101","nodeType":"YulAssignment","src":"27457:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"27523:3:101","nodeType":"YulIdentifier","src":"27523:3:101"},{"kind":"number","nativeSrc":"27528:2:101","nodeType":"YulLiteral","src":"27528:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"27464:58:101","nodeType":"YulIdentifier","src":"27464:58:101"},"nativeSrc":"27464:67:101","nodeType":"YulFunctionCall","src":"27464:67:101"},"variableNames":[{"name":"pos","nativeSrc":"27457:3:101","nodeType":"YulIdentifier","src":"27457:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"27629:3:101","nodeType":"YulIdentifier","src":"27629:3:101"}],"functionName":{"name":"store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444","nativeSrc":"27540:88:101","nodeType":"YulIdentifier","src":"27540:88:101"},"nativeSrc":"27540:93:101","nodeType":"YulFunctionCall","src":"27540:93:101"},"nativeSrc":"27540:93:101","nodeType":"YulExpressionStatement","src":"27540:93:101"},{"nativeSrc":"27642:19:101","nodeType":"YulAssignment","src":"27642:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"27653:3:101","nodeType":"YulIdentifier","src":"27653:3:101"},{"kind":"number","nativeSrc":"27658:2:101","nodeType":"YulLiteral","src":"27658:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27649:3:101","nodeType":"YulIdentifier","src":"27649:3:101"},"nativeSrc":"27649:12:101","nodeType":"YulFunctionCall","src":"27649:12:101"},"variableNames":[{"name":"end","nativeSrc":"27642:3:101","nodeType":"YulIdentifier","src":"27642:3:101"}]}]},"name":"abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack","nativeSrc":"27301:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"27435:3:101","nodeType":"YulTypedName","src":"27435:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"27443:3:101","nodeType":"YulTypedName","src":"27443:3:101","type":""}],"src":"27301:366:101"},{"body":{"nativeSrc":"27844:248:101","nodeType":"YulBlock","src":"27844:248:101","statements":[{"nativeSrc":"27854:26:101","nodeType":"YulAssignment","src":"27854:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"27866:9:101","nodeType":"YulIdentifier","src":"27866:9:101"},{"kind":"number","nativeSrc":"27877:2:101","nodeType":"YulLiteral","src":"27877:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27862:3:101","nodeType":"YulIdentifier","src":"27862:3:101"},"nativeSrc":"27862:18:101","nodeType":"YulFunctionCall","src":"27862:18:101"},"variableNames":[{"name":"tail","nativeSrc":"27854:4:101","nodeType":"YulIdentifier","src":"27854:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27901:9:101","nodeType":"YulIdentifier","src":"27901:9:101"},{"kind":"number","nativeSrc":"27912:1:101","nodeType":"YulLiteral","src":"27912:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27897:3:101","nodeType":"YulIdentifier","src":"27897:3:101"},"nativeSrc":"27897:17:101","nodeType":"YulFunctionCall","src":"27897:17:101"},{"arguments":[{"name":"tail","nativeSrc":"27920:4:101","nodeType":"YulIdentifier","src":"27920:4:101"},{"name":"headStart","nativeSrc":"27926:9:101","nodeType":"YulIdentifier","src":"27926:9:101"}],"functionName":{"name":"sub","nativeSrc":"27916:3:101","nodeType":"YulIdentifier","src":"27916:3:101"},"nativeSrc":"27916:20:101","nodeType":"YulFunctionCall","src":"27916:20:101"}],"functionName":{"name":"mstore","nativeSrc":"27890:6:101","nodeType":"YulIdentifier","src":"27890:6:101"},"nativeSrc":"27890:47:101","nodeType":"YulFunctionCall","src":"27890:47:101"},"nativeSrc":"27890:47:101","nodeType":"YulExpressionStatement","src":"27890:47:101"},{"nativeSrc":"27946:139:101","nodeType":"YulAssignment","src":"27946:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"28080:4:101","nodeType":"YulIdentifier","src":"28080:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack","nativeSrc":"27954:124:101","nodeType":"YulIdentifier","src":"27954:124:101"},"nativeSrc":"27954:131:101","nodeType":"YulFunctionCall","src":"27954:131:101"},"variableNames":[{"name":"tail","nativeSrc":"27946:4:101","nodeType":"YulIdentifier","src":"27946:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27673:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27824:9:101","nodeType":"YulTypedName","src":"27824:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27839:4:101","nodeType":"YulTypedName","src":"27839:4:101","type":""}],"src":"27673:419:101"},{"body":{"nativeSrc":"28204:72:101","nodeType":"YulBlock","src":"28204:72:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"28226:6:101","nodeType":"YulIdentifier","src":"28226:6:101"},{"kind":"number","nativeSrc":"28234:1:101","nodeType":"YulLiteral","src":"28234:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28222:3:101","nodeType":"YulIdentifier","src":"28222:3:101"},"nativeSrc":"28222:14:101","nodeType":"YulFunctionCall","src":"28222:14:101"},{"hexValue":"757064617465644174206578636565647320626c6f636b2074696d65","kind":"string","nativeSrc":"28238:30:101","nodeType":"YulLiteral","src":"28238:30:101","type":"","value":"updatedAt exceeds block time"}],"functionName":{"name":"mstore","nativeSrc":"28215:6:101","nodeType":"YulIdentifier","src":"28215:6:101"},"nativeSrc":"28215:54:101","nodeType":"YulFunctionCall","src":"28215:54:101"},"nativeSrc":"28215:54:101","nodeType":"YulExpressionStatement","src":"28215:54:101"}]},"name":"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","nativeSrc":"28098:178:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"28196:6:101","nodeType":"YulTypedName","src":"28196:6:101","type":""}],"src":"28098:178:101"},{"body":{"nativeSrc":"28428:220:101","nodeType":"YulBlock","src":"28428:220:101","statements":[{"nativeSrc":"28438:74:101","nodeType":"YulAssignment","src":"28438:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"28504:3:101","nodeType":"YulIdentifier","src":"28504:3:101"},{"kind":"number","nativeSrc":"28509:2:101","nodeType":"YulLiteral","src":"28509:2:101","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"28445:58:101","nodeType":"YulIdentifier","src":"28445:58:101"},"nativeSrc":"28445:67:101","nodeType":"YulFunctionCall","src":"28445:67:101"},"variableNames":[{"name":"pos","nativeSrc":"28438:3:101","nodeType":"YulIdentifier","src":"28438:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"28610:3:101","nodeType":"YulIdentifier","src":"28610:3:101"}],"functionName":{"name":"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","nativeSrc":"28521:88:101","nodeType":"YulIdentifier","src":"28521:88:101"},"nativeSrc":"28521:93:101","nodeType":"YulFunctionCall","src":"28521:93:101"},"nativeSrc":"28521:93:101","nodeType":"YulExpressionStatement","src":"28521:93:101"},{"nativeSrc":"28623:19:101","nodeType":"YulAssignment","src":"28623:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"28634:3:101","nodeType":"YulIdentifier","src":"28634:3:101"},{"kind":"number","nativeSrc":"28639:2:101","nodeType":"YulLiteral","src":"28639:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28630:3:101","nodeType":"YulIdentifier","src":"28630:3:101"},"nativeSrc":"28630:12:101","nodeType":"YulFunctionCall","src":"28630:12:101"},"variableNames":[{"name":"end","nativeSrc":"28623:3:101","nodeType":"YulIdentifier","src":"28623:3:101"}]}]},"name":"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack","nativeSrc":"28282:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"28416:3:101","nodeType":"YulTypedName","src":"28416:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"28424:3:101","nodeType":"YulTypedName","src":"28424:3:101","type":""}],"src":"28282:366:101"},{"body":{"nativeSrc":"28825:248:101","nodeType":"YulBlock","src":"28825:248:101","statements":[{"nativeSrc":"28835:26:101","nodeType":"YulAssignment","src":"28835:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"28847:9:101","nodeType":"YulIdentifier","src":"28847:9:101"},{"kind":"number","nativeSrc":"28858:2:101","nodeType":"YulLiteral","src":"28858:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28843:3:101","nodeType":"YulIdentifier","src":"28843:3:101"},"nativeSrc":"28843:18:101","nodeType":"YulFunctionCall","src":"28843:18:101"},"variableNames":[{"name":"tail","nativeSrc":"28835:4:101","nodeType":"YulIdentifier","src":"28835:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28882:9:101","nodeType":"YulIdentifier","src":"28882:9:101"},{"kind":"number","nativeSrc":"28893:1:101","nodeType":"YulLiteral","src":"28893:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28878:3:101","nodeType":"YulIdentifier","src":"28878:3:101"},"nativeSrc":"28878:17:101","nodeType":"YulFunctionCall","src":"28878:17:101"},{"arguments":[{"name":"tail","nativeSrc":"28901:4:101","nodeType":"YulIdentifier","src":"28901:4:101"},{"name":"headStart","nativeSrc":"28907:9:101","nodeType":"YulIdentifier","src":"28907:9:101"}],"functionName":{"name":"sub","nativeSrc":"28897:3:101","nodeType":"YulIdentifier","src":"28897:3:101"},"nativeSrc":"28897:20:101","nodeType":"YulFunctionCall","src":"28897:20:101"}],"functionName":{"name":"mstore","nativeSrc":"28871:6:101","nodeType":"YulIdentifier","src":"28871:6:101"},"nativeSrc":"28871:47:101","nodeType":"YulFunctionCall","src":"28871:47:101"},"nativeSrc":"28871:47:101","nodeType":"YulExpressionStatement","src":"28871:47:101"},{"nativeSrc":"28927:139:101","nodeType":"YulAssignment","src":"28927:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"29061:4:101","nodeType":"YulIdentifier","src":"29061:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack","nativeSrc":"28935:124:101","nodeType":"YulIdentifier","src":"28935:124:101"},"nativeSrc":"28935:131:101","nodeType":"YulFunctionCall","src":"28935:131:101"},"variableNames":[{"name":"tail","nativeSrc":"28927:4:101","nodeType":"YulIdentifier","src":"28927:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28654:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28805:9:101","nodeType":"YulTypedName","src":"28805:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28820:4:101","nodeType":"YulTypedName","src":"28820:4:101","type":""}],"src":"28654:419:101"},{"body":{"nativeSrc":"29185:67:101","nodeType":"YulBlock","src":"29185:67:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"29207:6:101","nodeType":"YulIdentifier","src":"29207:6:101"},{"kind":"number","nativeSrc":"29215:1:101","nodeType":"YulLiteral","src":"29215:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29203:3:101","nodeType":"YulIdentifier","src":"29203:3:101"},"nativeSrc":"29203:14:101","nodeType":"YulFunctionCall","src":"29203:14:101"},{"hexValue":"636861696e6c696e6b2070726963652065787069726564","kind":"string","nativeSrc":"29219:25:101","nodeType":"YulLiteral","src":"29219:25:101","type":"","value":"chainlink price expired"}],"functionName":{"name":"mstore","nativeSrc":"29196:6:101","nodeType":"YulIdentifier","src":"29196:6:101"},"nativeSrc":"29196:49:101","nodeType":"YulFunctionCall","src":"29196:49:101"},"nativeSrc":"29196:49:101","nodeType":"YulExpressionStatement","src":"29196:49:101"}]},"name":"store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb","nativeSrc":"29079:173:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"29177:6:101","nodeType":"YulTypedName","src":"29177:6:101","type":""}],"src":"29079:173:101"},{"body":{"nativeSrc":"29404:220:101","nodeType":"YulBlock","src":"29404:220:101","statements":[{"nativeSrc":"29414:74:101","nodeType":"YulAssignment","src":"29414:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"29480:3:101","nodeType":"YulIdentifier","src":"29480:3:101"},{"kind":"number","nativeSrc":"29485:2:101","nodeType":"YulLiteral","src":"29485:2:101","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29421:58:101","nodeType":"YulIdentifier","src":"29421:58:101"},"nativeSrc":"29421:67:101","nodeType":"YulFunctionCall","src":"29421:67:101"},"variableNames":[{"name":"pos","nativeSrc":"29414:3:101","nodeType":"YulIdentifier","src":"29414:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"29586:3:101","nodeType":"YulIdentifier","src":"29586:3:101"}],"functionName":{"name":"store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb","nativeSrc":"29497:88:101","nodeType":"YulIdentifier","src":"29497:88:101"},"nativeSrc":"29497:93:101","nodeType":"YulFunctionCall","src":"29497:93:101"},"nativeSrc":"29497:93:101","nodeType":"YulExpressionStatement","src":"29497:93:101"},{"nativeSrc":"29599:19:101","nodeType":"YulAssignment","src":"29599:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"29610:3:101","nodeType":"YulIdentifier","src":"29610:3:101"},{"kind":"number","nativeSrc":"29615:2:101","nodeType":"YulLiteral","src":"29615:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29606:3:101","nodeType":"YulIdentifier","src":"29606:3:101"},"nativeSrc":"29606:12:101","nodeType":"YulFunctionCall","src":"29606:12:101"},"variableNames":[{"name":"end","nativeSrc":"29599:3:101","nodeType":"YulIdentifier","src":"29599:3:101"}]}]},"name":"abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack","nativeSrc":"29258:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29392:3:101","nodeType":"YulTypedName","src":"29392:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29400:3:101","nodeType":"YulTypedName","src":"29400:3:101","type":""}],"src":"29258:366:101"},{"body":{"nativeSrc":"29801:248:101","nodeType":"YulBlock","src":"29801:248:101","statements":[{"nativeSrc":"29811:26:101","nodeType":"YulAssignment","src":"29811:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"29823:9:101","nodeType":"YulIdentifier","src":"29823:9:101"},{"kind":"number","nativeSrc":"29834:2:101","nodeType":"YulLiteral","src":"29834:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29819:3:101","nodeType":"YulIdentifier","src":"29819:3:101"},"nativeSrc":"29819:18:101","nodeType":"YulFunctionCall","src":"29819:18:101"},"variableNames":[{"name":"tail","nativeSrc":"29811:4:101","nodeType":"YulIdentifier","src":"29811:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29858:9:101","nodeType":"YulIdentifier","src":"29858:9:101"},{"kind":"number","nativeSrc":"29869:1:101","nodeType":"YulLiteral","src":"29869:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29854:3:101","nodeType":"YulIdentifier","src":"29854:3:101"},"nativeSrc":"29854:17:101","nodeType":"YulFunctionCall","src":"29854:17:101"},{"arguments":[{"name":"tail","nativeSrc":"29877:4:101","nodeType":"YulIdentifier","src":"29877:4:101"},{"name":"headStart","nativeSrc":"29883:9:101","nodeType":"YulIdentifier","src":"29883:9:101"}],"functionName":{"name":"sub","nativeSrc":"29873:3:101","nodeType":"YulIdentifier","src":"29873:3:101"},"nativeSrc":"29873:20:101","nodeType":"YulFunctionCall","src":"29873:20:101"}],"functionName":{"name":"mstore","nativeSrc":"29847:6:101","nodeType":"YulIdentifier","src":"29847:6:101"},"nativeSrc":"29847:47:101","nodeType":"YulFunctionCall","src":"29847:47:101"},"nativeSrc":"29847:47:101","nodeType":"YulExpressionStatement","src":"29847:47:101"},{"nativeSrc":"29903:139:101","nodeType":"YulAssignment","src":"29903:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"30037:4:101","nodeType":"YulIdentifier","src":"30037:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack","nativeSrc":"29911:124:101","nodeType":"YulIdentifier","src":"29911:124:101"},"nativeSrc":"29911:131:101","nodeType":"YulFunctionCall","src":"29911:131:101"},"variableNames":[{"name":"tail","nativeSrc":"29903:4:101","nodeType":"YulIdentifier","src":"29903:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29630:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29781:9:101","nodeType":"YulTypedName","src":"29781:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29796:4:101","nodeType":"YulTypedName","src":"29796:4:101","type":""}],"src":"29630:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    // struct ChainlinkOracle.TokenConfig\n    function abi_decode_t_struct$_TokenConfig_$4703_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // asset\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // feed\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // maxStalePeriod\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct ChainlinkOracle.TokenConfig[]\n    function abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(length))\n        let dst := array\n\n        mstore(array, length)\n        dst := add(array, 0x20)\n\n        let srcEnd := add(offset, mul(length, 0x60))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x60) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_struct$_TokenConfig_$4703_memory_ptr(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // struct ChainlinkOracle.TokenConfig[]\n    function abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_decode_tuple_t_struct$_TokenConfig_$4703_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_TokenConfig_$4703_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed(memPtr) {\n\n        mstore(add(memPtr, 0), \"length can't be 0\")\n\n    }\n\n    function abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n        store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(memPtr) {\n\n        mstore(add(memPtr, 0), \"can't be zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134(memPtr) {\n\n        mstore(add(memPtr, 0), \"stale period can't be zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid acess control manager ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function checked_sub_t_uint8(x, y) -> diff {\n        x := cleanup_t_uint8(x)\n        y := cleanup_t_uint8(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xff) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint80(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint80(value) {\n        if iszero(eq(value, cleanup_t_uint80(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint80_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint80(value)\n    }\n\n    function cleanup_t_int256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_int256(value) {\n        if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_int256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_int256(value)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint80_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_int256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint80_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444(memPtr) {\n\n        mstore(add(memPtr, 0), \"chainlink price must be positive\")\n\n    }\n\n    function abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e(memPtr) {\n\n        mstore(add(memPtr, 0), \"updatedAt exceeds block time\")\n\n    }\n\n    function abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb(memPtr) {\n\n        mstore(add(memPtr, 0), \"chainlink price expired\")\n\n    }\n\n    function abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n        store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100f0575f3560e01c806379ba509711610093578063c4d66de811610063578063c4d66de814610213578063cfed246b14610226578063e30c397814610245578063f2fde38b14610256575f80fd5b806379ba5097146101bd5780638da5cb5b146101c5578063a9534f8a146101df578063b4a0bdf3146101fa575f80fd5b80631b69dc5f116100ce5780631b69dc5f1461012f578063392787d21461018257806341976e0914610195578063715018a6146101b5575f80fd5b80630431710e146100f457806309a8acb0146101095780630e32cb861461011c575b5f80fd5b610107610102366004610d5a565b610269565b005b610107610117366004610d92565b6102cd565b61010761012a366004610dcc565b610393565b61016a61013d366004610dcc565b60ca6020525f90815260409020805460018201546002909201546001600160a01b03918216929091169083565b60405161017993929190610dff565b60405180910390f35b610107610190366004610e27565b6103a7565b6101a86101a3366004610dcc565b6104ef565b6040516101799190610e45565b61010761059a565b6101076105ad565b6033546001600160a01b03165b6040516101799190610e53565b6101d273bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6097546001600160a01b03166040516101799190610e7e565b610107610221366004610dcc565b6105e2565b6101a8610234366004610dcc565b60c96020525f908152604090205481565b6065546001600160a01b03166101d2565b610107610264366004610dcc565b6106ad565b80515f036102925760405162461bcd60e51b815260040161028990610eb6565b60405180910390fd5b80515f5b818110156102c8576102c08382815181106102b3576102b3610ec6565b60200260200101516103a7565b600101610296565b505050565b816001600160a01b0381166102f45760405162461bcd60e51b815260040161028990610f05565b6103326040518060400160405280601f81526020017f736574446972656374507269636528616464726573732c75696e74323536290081525061071e565b6001600160a01b0383165f81815260c960205260409081902080549085905590519091907fa0844d44570b5ec5ac55e9e7d1e7fc8149b4f33b4b61f3c8fc08bacce058faee906103859084908790610f15565b60405180910390a250505050565b61039b6107b5565b6103a4816107df565b50565b80516001600160a01b0381166103cf5760405162461bcd60e51b815260040161028990610f05565b60208201516001600160a01b0381166103fa5760405162461bcd60e51b815260040161028990610f05565b6104386040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e66696729000000000081525061071e565b82604001515f0361045b5760405162461bcd60e51b815260040161028990610f63565b82516001600160a01b039081165f90815260ca6020908152604091829020865181549085166001600160a01b0319918216811783559288015160018301805496821696909216959095179055828701516002909101819055915190927f3cc8d9cb9370a23a8b9ffa75efa24cecb65c4693980e58260841adc474983c5f926104e292610f73565b60405180910390a2505050565b5f8073bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba196001600160a01b0384160161051e57506012610589565b5f839050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105829190610f95565b60ff169150505b6105938382610858565b9392505050565b6105a26107b5565b6105ab5f6108b8565b565b60655433906001600160a01b031681146105d95760405162461bcd60e51b815260040161028990610ffb565b6103a4816108b8565b5f54610100900460ff161580801561060057505f54600160ff909116105b806106195750303b15801561061957505f5460ff166001145b6106355760405162461bcd60e51b815260040161028990611055565b5f805460ff191660011790558015610656575f805461ff0019166101001790555b61065f826108d1565b80156106a9575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906106a090600190611078565b60405180910390a15b5050565b6106b56107b5565b606580546001600160a01b0383166001600160a01b031990911681179091556106e66033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab9061075090339086906004016110c2565b602060405180830381865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f91906110f5565b9050806106a957333083604051634a3fa29360e01b815260040161028993929190611113565b6033546001600160a01b031633146105ab5760405162461bcd60e51b81526004016102899061117a565b6001600160a01b0381166108055760405162461bcd60e51b8152600401610289906111cb565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906106a090839085906111db565b6001600160a01b0382165f90815260c96020526040812054801561087e5780915061088a565b61088784610908565b91505b5f61089684601261120a565b90506108a381600a611329565b6108ad9084611336565b925050505b92915050565b606580546001600160a01b03191690556103a481610ae3565b5f54610100900460ff166108f75760405162461bcd60e51b81526004016102899061139c565b6108ff610b34565b6103a481610b62565b6001600160a01b038082165f90815260ca6020526040812054909116806109415760405162461bcd60e51b815260040161028990610f05565b6001600160a01b038084165f90815260ca6020908152604080832081516060810183528154861681526001820154909516858401819052600290910154858301819052825163313ce56760e01b81529251919490939092859263313ce567926004808401939192918290030181865afa1580156109c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e49190610f95565b6109ef9060126113ac565b60ff1690505f80846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610a32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5691906113f1565b509350509250505f8213610a7c5760405162461bcd60e51b815260040161028990611495565b80421015610a9c5760405162461bcd60e51b8152600401610289906114d8565b4281900384811115610ac05760405162461bcd60e51b81526004016102899061151b565b610acb84600a611329565b610ad59084611336565b9a9950505050505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610b5a5760405162461bcd60e51b81526004016102899061139c565b6105ab610b88565b5f54610100900460ff1661039b5760405162461bcd60e51b81526004016102899061139c565b5f54610100900460ff16610bae5760405162461bcd60e51b81526004016102899061139c565b6105ab336108b8565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610bf157610bf1610bb7565b6040525050565b5f610c0260405190565b9050610c0e8282610bcb565b919050565b5f67ffffffffffffffff821115610c2c57610c2c610bb7565b5060209081020190565b5f6001600160a01b0382166108b2565b610c4f81610c36565b81146103a4575f80fd5b80356108b281610c46565b80610c4f565b80356108b281610c64565b5f60608284031215610c8857610c885f80fd5b610c926060610bf8565b90505f610c9f8484610c59565b8252506020610cb084848301610c59565b6020830152506040610cc484828501610c6a565b60408301525092915050565b5f610ce2610cdd84610c13565b610bf8565b83815290506020810160608402830185811115610d0057610d005f80fd5b835b81811015610d265780610d158882610c75565b845250602090920191606001610d02565b5050509392505050565b5f82601f830112610d4257610d425f80fd5b8135610d52848260208601610cd0565b949350505050565b5f60208284031215610d6d57610d6d5f80fd5b813567ffffffffffffffff811115610d8657610d865f80fd5b610d5284828501610d30565b5f8060408385031215610da657610da65f80fd5b5f610db18585610c59565b9250506020610dc285828601610c6a565b9150509250929050565b5f60208284031215610ddf57610ddf5f80fd5b5f610d528484610c59565b610df381610c36565b82525050565b80610df3565b60608101610e0d8286610dea565b610e1a6020830185610dea565b610d526040830184610df9565b5f60608284031215610e3a57610e3a5f80fd5b5f610d528484610c75565b602081016108b28284610df9565b602081016108b28284610dea565b5f6108b282610c36565b5f6108b282610e61565b610df381610e6b565b602081016108b28284610e75565b601181525f602082017006c656e6774682063616e2774206265203607c1b815291505b5060200190565b602080825281016108b281610e8c565b634e487b7160e01b5f52603260045260245ffd5b601581525f602082017463616e2774206265207a65726f206164647265737360581b81529150610eaf565b602080825281016108b281610eda565b60408101610f238285610df9565b6105936020830184610df9565b601a81525f602082017f7374616c6520706572696f642063616e2774206265207a65726f00000000000081529150610eaf565b602080825281016108b281610f30565b60408101610f238285610dea565b60ff8116610c4f565b80516108b281610f81565b5f60208284031215610fa857610fa85f80fd5b5f610d528484610f8a565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b602080825281016108b281610fb3565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610ff4565b602080825281016108b28161100b565b5f60ff82166108b2565b610df381611065565b602081016108b2828461106f565b8281835e505f910152565b5f61109a825190565b8084526020840193506110b1818560208601611086565b601f01601f19169290920192915050565b604081016110d08285610dea565b8181036020830152610d528184611091565b801515610c4f565b80516108b2816110e2565b5f60208284031215611108576111085f80fd5b5f610d5284846110ea565b606081016111218286610dea565b61112e6020830185610dea565b81810360408301526111408184611091565b95945050505050565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610eaf565b602080825281016108b281611149565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610ff4565b602080825281016108b28161118a565b604081016111e98285610dea565b6105936020830184610dea565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108b2576108b26111f6565b80825b600185111561125c5780860481111561123b5761123b6111f6565b600185161561124957908102905b80026112558560011c90565b9450611220565b94509492505050565b5f8261127357506001610593565b8161127f57505f610593565b8160018114611295576002811461129f576112cc565b6001915050610593565b60ff8411156112b0576112b06111f6565b8360020a9150848211156112c6576112c66111f6565b50610593565b5060208310610133831016604e8410600b84101617156112ff575081810a838111156112fa576112fa6111f6565b610593565b61130c848484600161121d565b92509050818404811115611322576113226111f6565b0292915050565b5f6105935f198484611265565b81810280821583820485141761134e5761134e6111f6565b5092915050565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610ff4565b602080825281016108b281611355565b60ff9182169190811690828203908111156108b2576108b26111f6565b69ffffffffffffffffffff8116610c4f565b80516108b2816113c9565b80516108b281610c64565b5f805f805f60a08688031215611408576114085f80fd5b5f61141388886113db565b9550506020611424888289016113e6565b9450506040611435888289016113e6565b9350506060611446888289016113e6565b9250506080611457888289016113db565b9150509295509295909350565b60208082527f636861696e6c696e6b207072696365206d75737420626520706f73697469766591019081525f610eaf565b602080825281016108b281611464565b601c81525f602082017f757064617465644174206578636565647320626c6f636b2074696d650000000081529150610eaf565b602080825281016108b2816114a5565b601781525f602082017f636861696e6c696e6b207072696365206578706972656400000000000000000081529150610eaf565b602080825281016108b2816114e856fea2646970667358221220f836632878c3069e88247c9ba2d062c721f6b65d5efa019c863ad403c4efc77564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF0 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x93 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0x226 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x256 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1FA JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1B69DC5F GT PUSH2 0xCE JUMPI DUP1 PUSH4 0x1B69DC5F EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x392787D2 EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x431710E EQ PUSH2 0xF4 JUMPI DUP1 PUSH4 0x9A8ACB0 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x107 PUSH2 0x102 CALLDATASIZE PUSH1 0x4 PUSH2 0xD5A JUMP JUMPDEST PUSH2 0x269 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x107 PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST PUSH2 0x107 PUSH2 0x12A CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x13D CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x107 PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0xE27 JUMP JUMPDEST PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x4EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xE45 JUMP JUMPDEST PUSH2 0x107 PUSH2 0x59A JUMP JUMPDEST PUSH2 0x107 PUSH2 0x5AD JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH2 0x1D2 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0xE7E JUMP JUMPDEST PUSH2 0x107 PUSH2 0x221 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x234 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x107 PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0xDCC JUMP JUMPDEST PUSH2 0x6AD JUMP JUMPDEST DUP1 MLOAD PUSH0 SUB PUSH2 0x292 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xEB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C8 JUMPI PUSH2 0x2C0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2B3 JUMPI PUSH2 0x2B3 PUSH2 0xEC6 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3A7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x296 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x332 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574446972656374507269636528616464726573732C75696E743235362900 DUP2 MSTORE POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 DUP6 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xA0844D44570B5EC5AC55E9E7D1E7FC8149B4F33B4B61F3C8FC08BACCE058FAEE SWAP1 PUSH2 0x385 SWAP1 DUP5 SWAP1 DUP8 SWAP1 PUSH2 0xF15 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x39B PUSH2 0x7B5 JUMP JUMPDEST PUSH2 0x3A4 DUP2 PUSH2 0x7DF JUMP JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x438 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574546F6B656E436F6E66696728546F6B656E436F6E666967290000000000 DUP2 MSTORE POP PUSH2 0x71E JUMP JUMPDEST DUP3 PUSH1 0x40 ADD MLOAD PUSH0 SUB PUSH2 0x45B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF63 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP1 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE SWAP3 DUP9 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP7 DUP3 AND SWAP7 SWAP1 SWAP3 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SSTORE DUP3 DUP8 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP2 SWAP1 SSTORE SWAP2 MLOAD SWAP1 SWAP3 PUSH32 0x3CC8D9CB9370A23A8B9FFA75EFA24CECB65C4693980E58260841ADC474983C5F SWAP3 PUSH2 0x4E2 SWAP3 PUSH2 0xF73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ADD PUSH2 0x51E JUMPI POP PUSH1 0x12 PUSH2 0x589 JUMP JUMPDEST PUSH0 DUP4 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x55E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x582 SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST PUSH1 0xFF AND SWAP2 POP POP JUMPDEST PUSH2 0x593 DUP4 DUP3 PUSH2 0x858 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5A2 PUSH2 0x7B5 JUMP JUMPDEST PUSH2 0x5AB PUSH0 PUSH2 0x8B8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x5D9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xFFB JUMP JUMPDEST PUSH2 0x3A4 DUP2 PUSH2 0x8B8 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x600 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x619 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x619 JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x635 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x1055 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x656 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x65F DUP3 PUSH2 0x8D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A9 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x6A0 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1078 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x6B5 PUSH2 0x7B5 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x6E6 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x750 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x10C2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x76B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x78F SWAP2 SWAP1 PUSH2 0x10F5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x6A9 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1113 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x117A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x805 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x11CB JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x6A0 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x87E JUMPI DUP1 SWAP2 POP PUSH2 0x88A JUMP JUMPDEST PUSH2 0x887 DUP5 PUSH2 0x908 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH0 PUSH2 0x896 DUP5 PUSH1 0x12 PUSH2 0x120A JUMP JUMPDEST SWAP1 POP PUSH2 0x8A3 DUP2 PUSH1 0xA PUSH2 0x1329 JUMP JUMPDEST PUSH2 0x8AD SWAP1 DUP5 PUSH2 0x1336 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x3A4 DUP2 PUSH2 0xAE3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x8F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x8FF PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x3A4 DUP2 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND DUP1 PUSH2 0x941 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP7 AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP1 SWAP6 AND DUP6 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD DUP6 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD PUSH4 0x313CE567 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 DUP6 SWAP3 PUSH4 0x313CE567 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x9E4 SWAP2 SWAP1 PUSH2 0xF95 JUMP JUMPDEST PUSH2 0x9EF SWAP1 PUSH1 0x12 PUSH2 0x13AC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA32 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xA56 SWAP2 SWAP1 PUSH2 0x13F1 JUMP JUMPDEST POP SWAP4 POP POP SWAP3 POP POP PUSH0 DUP3 SGT PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x1495 JUMP JUMPDEST DUP1 TIMESTAMP LT ISZERO PUSH2 0xA9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x14D8 JUMP JUMPDEST TIMESTAMP DUP2 SWAP1 SUB DUP5 DUP2 GT ISZERO PUSH2 0xAC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x151B JUMP JUMPDEST PUSH2 0xACB DUP5 PUSH1 0xA PUSH2 0x1329 JUMP JUMPDEST PUSH2 0xAD5 SWAP1 DUP5 PUSH2 0x1336 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xB5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x5AB PUSH2 0xB88 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x39B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xBAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x289 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH2 0x5AB CALLER PUSH2 0x8B8 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBF1 JUMPI PUSH2 0xBF1 PUSH2 0xBB7 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC02 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xC0E DUP3 DUP3 PUSH2 0xBCB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC2C JUMPI PUSH2 0xC2C PUSH2 0xBB7 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0xC4F DUP2 PUSH2 0xC36 JUMP JUMPDEST DUP2 EQ PUSH2 0x3A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8B2 DUP2 PUSH2 0xC46 JUMP JUMPDEST DUP1 PUSH2 0xC4F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8B2 DUP2 PUSH2 0xC64 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC88 JUMPI PUSH2 0xC88 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC92 PUSH1 0x60 PUSH2 0xBF8 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xC9F DUP5 DUP5 PUSH2 0xC59 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0xCB0 DUP5 DUP5 DUP4 ADD PUSH2 0xC59 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xCC4 DUP5 DUP3 DUP6 ADD PUSH2 0xC6A JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCE2 PUSH2 0xCDD DUP5 PUSH2 0xC13 JUMP JUMPDEST PUSH2 0xBF8 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x60 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xD00 JUMPI PUSH2 0xD00 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD26 JUMPI DUP1 PUSH2 0xD15 DUP9 DUP3 PUSH2 0xC75 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0xD02 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD42 JUMPI PUSH2 0xD42 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xD52 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD6D JUMPI PUSH2 0xD6D PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD86 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xD52 DUP5 DUP3 DUP6 ADD PUSH2 0xD30 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA6 JUMPI PUSH2 0xDA6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xDB1 DUP6 DUP6 PUSH2 0xC59 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC2 DUP6 DUP3 DUP7 ADD PUSH2 0xC6A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDDF JUMPI PUSH2 0xDDF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0xDF3 DUP2 PUSH2 0xC36 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST DUP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xE0D DUP3 DUP7 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0xE1A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0xD52 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xDF9 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE3A JUMPI PUSH2 0xE3A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0xC75 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0xDEA JUMP JUMPDEST PUSH0 PUSH2 0x8B2 DUP3 PUSH2 0xC36 JUMP JUMPDEST PUSH0 PUSH2 0x8B2 DUP3 PUSH2 0xE61 JUMP JUMPDEST PUSH2 0xDF3 DUP2 PUSH2 0xE6B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0xE75 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH17 0x6C656E6774682063616E2774206265203 PUSH1 0x7C SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xE8C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xEDA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xF23 DUP3 DUP6 PUSH2 0xDF9 JUMP JUMPDEST PUSH2 0x593 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x7374616C6520706572696F642063616E2774206265207A65726F000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xF23 DUP3 DUP6 PUSH2 0xDEA JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xC4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0xF81 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFA8 JUMPI PUSH2 0xFA8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0xF8A JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0xFB3 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x100B JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0xDF3 DUP2 PUSH2 0x1065 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x8B2 DUP3 DUP5 PUSH2 0x106F JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x109A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x10B1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1086 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x10D0 DUP3 DUP6 PUSH2 0xDEA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xD52 DUP2 DUP5 PUSH2 0x1091 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xC4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0x10E2 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1108 JUMPI PUSH2 0x1108 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD52 DUP5 DUP5 PUSH2 0x10EA JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1121 DUP3 DUP7 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0x112E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xDEA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1140 DUP2 DUP5 PUSH2 0x1091 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x1149 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x118A JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x11E9 DUP3 DUP6 PUSH2 0xDEA JUMP JUMPDEST PUSH2 0x593 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xDEA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x8B2 JUMPI PUSH2 0x8B2 PUSH2 0x11F6 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x125C JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x123B JUMPI PUSH2 0x123B PUSH2 0x11F6 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x1249 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x1255 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x1220 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x1273 JUMPI POP PUSH1 0x1 PUSH2 0x593 JUMP JUMPDEST DUP2 PUSH2 0x127F JUMPI POP PUSH0 PUSH2 0x593 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1295 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x129F JUMPI PUSH2 0x12CC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x593 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x12B0 JUMPI PUSH2 0x12B0 PUSH2 0x11F6 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x12C6 JUMPI PUSH2 0x12C6 PUSH2 0x11F6 JUMP JUMPDEST POP PUSH2 0x593 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x12FF JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x12FA JUMPI PUSH2 0x12FA PUSH2 0x11F6 JUMP JUMPDEST PUSH2 0x593 JUMP JUMPDEST PUSH2 0x130C DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x121D JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x1322 JUMPI PUSH2 0x1322 PUSH2 0x11F6 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x593 PUSH0 NOT DUP5 DUP5 PUSH2 0x1265 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x134E JUMPI PUSH2 0x134E PUSH2 0x11F6 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xFF4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x1355 JUMP JUMPDEST PUSH1 0xFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 SUB SWAP1 DUP2 GT ISZERO PUSH2 0x8B2 JUMPI PUSH2 0x8B2 PUSH2 0x11F6 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xC4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0x13C9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x8B2 DUP2 PUSH2 0xC64 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1408 JUMPI PUSH2 0x1408 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1413 DUP9 DUP9 PUSH2 0x13DB JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1424 DUP9 DUP3 DUP10 ADD PUSH2 0x13E6 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1435 DUP9 DUP3 DUP10 ADD PUSH2 0x13E6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1446 DUP9 DUP3 DUP10 ADD PUSH2 0x13E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1457 DUP9 DUP3 DUP10 ADD PUSH2 0x13DB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x636861696E6C696E6B207072696365206D75737420626520706F736974697665 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x1464 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757064617465644174206578636565647320626C6F636B2074696D6500000000 DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x14A5 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x636861696E6C696E6B2070726963652065787069726564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xEAF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x8B2 DUP2 PUSH2 0x14E8 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 CALLDATASIZE PUSH4 0x2878C306 SWAP15 DUP9 0x24 PUSH29 0x9BA2D062C721F6B65D5EFA019C863AD403C4EFC77564736F6C63430008 NOT STOP CALLER ","sourceMap":"448:7088:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3281:309;;;;;;:::i;:::-;;:::i;:::-;;2727:306;;;;;;:::i;:::-;;:::i;2102:147:15:-;;;;;;:::i;:::-;;:::i;1504:51:51:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1504:51:51;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4159:446;;;;;;:::i;:::-;;:::i;4816:352::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2085:101:4:-;;;:::i;2031:212:3:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;;;;;;:::i;1213:86:51:-;;1257:42;1213:86;;2345:125:15;2442:21;;-1:-1:-1;;;;;2442:21:15;2345:125;;;;;;:::i;2314:135:51:-;;;;;;:::i;:::-;;:::i;1417:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1144:99:3;1223:13;;-1:-1:-1;;;;;1223:13:3;1144:99;;1436:178;;;;;;:::i;:::-;;:::i;3281:309:51:-;3365:13;:20;3389:1;3365:25;3361:58;;3392:27;;-1:-1:-1;;;3392:27:51;;;;;;;:::i;:::-;;;;;;;;3361:58;3455:20;;3429:23;3485:99;3505:15;3501:1;:19;3485:99;;;3541:32;3556:13;3570:1;3556:16;;;;;;;;:::i;:::-;;;;;;;3541:14;:32::i;:::-;3522:3;;3485:99;;;;3351:239;3281:309;:::o;2727:306::-;2805:5;-1:-1:-1;;;;;1911:21:51;;1907:58;;1934:31;;-1:-1:-1;;;1934:31:51;;;;;;;:::i;1907:58::-;2822:54:::1;;;;;;;;;;;;;;;;;::::0;:19:::1;:54::i;:::-;-1:-1:-1::0;;;;;2919:13:51;::::1;2887:29;2919:13:::0;;;:6:::1;:13;::::0;;;;;;;;2942:21;;;;2978:48;;2919:13;;;2978:48:::1;::::0;::::1;::::0;2919:13;;2958:5;;2978:48:::1;:::i;:::-;;;;;;;;2812:221;2727:306:::0;;;:::o;2102:147:15:-;1355:13:4;:11;:13::i;:::-;2195:47:15::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;4159:446:51:-;4251:17;;-1:-1:-1;;;;;1911:21:51;;1907:58;;1934:31;;-1:-1:-1;;;1934:31:51;;;;;;;:::i;1907:58::-;4285:16:::1;::::0;::::1;::::0;-1:-1:-1;;;;;1911:21:51;::::1;1907:58;;1934:31;;-1:-1:-1::0;;;1934:31:51::1;;;;;;;:::i;1907:58::-;4313:50:::2;;;;;;;;;;;;;;;;;::::0;:19:::2;:50::i;:::-;4378:11;:26;;;4408:1;4378:31:::0;4374:73:::2;;4411:36;;-1:-1:-1::0;;;4411:36:51::2;;;;;;;:::i;4374:73::-;4470:17:::0;;-1:-1:-1;;;;;4457:31:51;;::::2;;::::0;;;:12:::2;:31;::::0;;;;;;;;:45;;;;;;::::2;-1:-1:-1::0;;;;;;4457:45:51;;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;;;::::2;::::0;;;;::::2;::::0;::::2;::::0;;::::2;::::0;;;4517:81;;4457:45;;4517:81:::2;::::0;::::2;::::0;::::2;:::i;:::-;;;;;;;;1975:1:::1;4159:446:::0;;:::o;4816:352::-;4878:7;;-1:-1:-1;;;;;;;4928:26:51;;;4924:186;;-1:-1:-1;4981:2:51;4924:186;;;5014:20;5052:5;5014:44;;5083:5;-1:-1:-1;;;;;5083:14:51;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5072:27;;;;5000:110;4924:186;5127:34;5145:5;5152:8;5127:17;:34::i;:::-;5120:41;4816:352;-1:-1:-1;;;4816:352:51:o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:3:-;1223:13;;965:10:8;;-1:-1:-1;;;;;1223:13:3;2130:24;;2122:78;;;;-1:-1:-1;;;2122:78:3;;;;;;;:::i;:::-;2210:26;2229:6;2210:18;:26::i;2314:135:51:-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;2396:46:51::1;2420:21;2396:23;:46::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3647:99;3269:483;2314:135:51;:::o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1525::3::1;:24:::0;;-1:-1:-1;;;;;1525:24:3;::::1;-1:-1:-1::0;;;;;;1525:24:3;;::::1;::::0;::::1;::::0;;;1589:7:::1;1534:6:4::0;;-1:-1:-1;;;;;1534:6:4;;1462:85;1589:7:3::1;-1:-1:-1::0;;;;;1564:43:3::1;;;;;;;;;;;1436:178:::0;:::o;3203:282:15:-;3304:21;;:60;;-1:-1:-1;;;3304:60:15;;3281:20;;-1:-1:-1;;;;;3304:21:15;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;-1:-1:-1;;;3418:50:15;;;;;;;;;;:::i;1620:130:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2641:425:15:-;-1:-1:-1;;;;;2733:44:15;;2725:94;;;;-1:-1:-1;;;2725:94:15;;;;;;;:::i;:::-;2871:21;;;-1:-1:-1;;;;;2903:70:15;;;-1:-1:-1;;;;;;2903:70:15;;;;;;2988:71;;2871:21;;;2988:71;;;;2871:21;;2951;;2988:71;:::i;5411:378:51:-;-1:-1:-1;;;;;5540:13:51;;5494;5540;;;:6;:13;;;;;;5567:15;;5563:128;;5606:10;5598:18;;5563:128;;;5655:25;5674:5;5655:18;:25::i;:::-;5647:33;;5563:128;5701:20;5724:13;5729:8;5724:2;:13;:::i;:::-;5701:36;-1:-1:-1;5763:18:51;5701:36;5763:2;:18;:::i;:::-;5754:28;;:5;:28;:::i;:::-;5747:35;;;;5411:378;;;;;:::o;1798:153:3:-;1887:13;1880:20;;-1:-1:-1;;;;;;1880:20:3;;;1910:34;1935:8;1910:24;:34::i;1419:194:15:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1519:21:15::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;6549:985:51:-:0;-1:-1:-1;;;;;6634:19:51;;;6670:7;6634:19;;;:12;:19;;;;;:25;6670:7;;6634:25;;1907:58;;1934:31;;-1:-1:-1;;;1934:31:51;;;;;;;:::i;1907:58::-;-1:-1:-1;;;;;6722:19:51;;::::1;6689:30;6722:19:::0;;;:12:::1;:19;::::0;;;;;;;6689:52;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;7043:15;;-1:-1:-1;;;7043:15:51;;;;6689:52;;;;:30;;:52;;7043:13:::1;::::0;:15:::1;::::0;;::::1;::::0;6722:19;;7043:15;;;;;;6689:52;7043:15:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7038:20;::::0;:2:::1;:20;:::i;:::-;7015:43;;;;7072:13;7089:17:::0;7112:4:::1;-1:-1:-1::0;;;;;7112:20:51::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7069:65;;;;;;;7158:1;7148:6;:11;7144:59;;7161:42;;-1:-1:-1::0;;;7161:42:51::1;;;;;;;:::i;7144:59::-;7235:9;7217:15;:27;7213:71;;;7246:38;;-1:-1:-1::0;;;7246:38:51::1;;;;;;;:::i;7213:71::-;7358:15;:27:::0;;::::1;7410:26:::0;;::::1;7406:65;;;7438:33;;-1:-1:-1::0;;;7438:33:51::1;;;;;;;:::i;7406:65::-;7508:18;7514:12:::0;7508:2:::1;:18;:::i;:::-;7489:38;::::0;7497:6;7489:38:::1;:::i;:::-;7482:45:::0;6549:985;-1:-1:-1;;;;;;;;;;6549:985:51:o;2687:187:4:-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;889:100:3:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;956:26:3::1;:24;:26::i;1619:164:15:-:0;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;1125:111:4:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;565:180:101:-:0;-1:-1:-1;;;610:1:101;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;-1:-1:-1;;549:2:101;529:14;;525:28;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;1011:2;1004:22;-1:-1:-1;;751:281:101:o;1038:129::-;1072:6;1099:20;73:2;67:9;;7:75;1099:20;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:340::-;1279:4;1369:18;1361:6;1358:30;1355:56;;;1391:18;;:::i;:::-;-1:-1:-1;1441:4:101;1429:17;;;1491:15;;1173:340::o;2020:96::-;2057:7;-1:-1:-1;;;;;1954:54:101;;2086:24;1888:126;2122:122;2195:24;2213:5;2195:24;:::i;:::-;2188:5;2185:35;2175:63;;2234:1;2231;2224:12;2250:139;2321:20;;2350:33;2321:20;2350:33;:::i;2478:122::-;2569:5;2551:24;2395:77;2606:139;2677:20;;2706:33;2677:20;2706:33;:::i;2793:750::-;2871:5;2915:4;2903:9;2898:3;2894:19;2890:30;2887:117;;;2923:79;448:7088:51;;;2923:79:101;3022:21;3038:4;3022:21;:::i;:::-;3013:30;-1:-1:-1;3103:1:101;3143:49;3188:3;3168:9;3143:49;:::i;:::-;3118:75;;-1:-1:-1;3263:2:101;3304:49;3349:3;3325:22;;;3304:49;:::i;:::-;3297:4;3290:5;3286:16;3279:75;3214:151;3434:2;3475:49;3520:3;3511:6;3500:9;3496:22;3475:49;:::i;:::-;3468:4;3461:5;3457:16;3450:75;3375:161;2793:750;;;;:::o;3593:797::-;3718:5;3743:110;3759:93;3845:6;3759:93;:::i;:::-;3743:110;:::i;:::-;3888:21;;;3734:119;-1:-1:-1;3936:4:101;3925:16;;3989:4;3977:17;;3965:30;;4007:15;;;4004:122;;;4037:79;448:7088:51;;;4037:79:101;4152:6;4135:249;4169:6;4164:3;4161:15;4135:249;;;4244:3;4273:66;4335:3;4323:10;4273:66;:::i;:::-;4261:79;;-1:-1:-1;4369:4:101;4360:14;;;;4195:4;4186:14;4135:249;;;4139:21;3724:666;;3593:797;;;;;:::o;4440:428::-;4540:5;4589:3;4582:4;4574:6;4570:17;4566:27;4556:122;;4597:79;448:7088:51;;;4597:79:101;4714:6;4701:20;4739:123;4858:3;4850:6;4843:4;4835:6;4831:17;4739:123;:::i;:::-;4730:132;4440:428;-1:-1:-1;;;;4440:428:101:o;4874:597::-;4987:6;5036:2;5024:9;5015:7;5011:23;5007:32;5004:119;;;5042:79;448:7088:51;;;5042:79:101;5162:31;;5220:18;5209:30;;5206:117;;;5242:79;448:7088:51;;;5242:79:101;5347:107;5446:7;5437:6;5426:9;5422:22;5347:107;:::i;5477:474::-;5545:6;5553;5602:2;5590:9;5581:7;5577:23;5573:32;5570:119;;;5608:79;448:7088:51;;;5608:79:101;5728:1;5753:53;5798:7;5778:9;5753:53;:::i;:::-;5743:63;;5699:117;5855:2;5881:53;5926:7;5917:6;5906:9;5902:22;5881:53;:::i;:::-;5871:63;;5826:118;5477:474;;;;;:::o;5957:329::-;6016:6;6065:2;6053:9;6044:7;6040:23;6036:32;6033:119;;;6071:79;448:7088:51;;;6071:79:101;6191:1;6216:53;6261:7;6241:9;6216:53;:::i;6292:118::-;6379:24;6397:5;6379:24;:::i;:::-;6374:3;6367:37;6292:118;;:::o;6416:::-;6521:5;6503:24;2395:77;6540:442;6727:2;6712:18;;6740:71;6716:9;6784:6;6740:71;:::i;:::-;6821:72;6889:2;6878:9;6874:18;6865:6;6821:72;:::i;:::-;6903;6971:2;6960:9;6956:18;6947:6;6903:72;:::i;6988:387::-;7076:6;7125:2;7113:9;7104:7;7100:23;7096:32;7093:119;;;7131:79;448:7088:51;;;7131:79:101;7251:1;7276:82;7350:7;7330:9;7276:82;:::i;7381:222::-;7512:2;7497:18;;7525:71;7501:9;7569:6;7525:71;:::i;7609:222::-;7740:2;7725:18;;7753:71;7729:9;7797:6;7753:71;:::i;8051:126::-;8101:9;8134:37;8165:5;8134:37;:::i;8183:158::-;8265:9;8298:37;8329:5;8298:37;:::i;8347:195::-;8466:69;8529:5;8466:69;:::i;8548:286::-;8711:2;8696:18;;8724:103;8700:9;8800:6;8724:103;:::i;9188:366::-;9415:2;8946:19;;9330:3;8998:4;8989:14;;-1:-1:-1;;;9132:43:101;;9344:74;-1:-1:-1;9427:93:101;-1:-1:-1;9545:2:101;9536:12;;9188:366::o;9560:419::-;9764:2;9777:47;;;9749:18;;9841:131;9749:18;9841:131;:::i;9985:180::-;-1:-1:-1;;;10030:1:101;10023:88;10130:4;10127:1;10120:15;10154:4;10151:1;10144:15;10348:366;10575:2;8946:19;;10490:3;8998:4;8989:14;;-1:-1:-1;;;10288:47:101;;10504:74;-1:-1:-1;10587:93:101;10171:171;10720:419;10924:2;10937:47;;;10909:18;;11001:131;10909:18;11001:131;:::i;11145:332::-;11304:2;11289:18;;11317:71;11293:9;11361:6;11317:71;:::i;:::-;11398:72;11466:2;11455:9;11451:18;11442:6;11398:72;:::i;11665:366::-;11892:2;8946:19;;11807:3;8998:4;8989:14;;11623:28;11600:52;;11821:74;-1:-1:-1;11904:93:101;11483:176;12037:419;12241:2;12254:47;;;12226:18;;12318:131;12226:18;12318:131;:::i;12462:332::-;12621:2;12606:18;;12634:71;12610:9;12678:6;12634:71;:::i;12892:118::-;12875:4;12864:16;;12963:22;12800:86;13016:139;13096:13;;13118:31;13096:13;13118:31;:::i;13161:347::-;13229:6;13278:2;13266:9;13257:7;13253:23;13249:32;13246:119;;;13284:79;448:7088:51;;;13284:79:101;13404:1;13429:62;13483:7;13463:9;13429:62;:::i;13748:366::-;13975:2;8946:19;;13890:3;8998:4;8989:14;;13654:34;13631:58;;-1:-1:-1;;;13718:2:101;13706:15;;13699:36;13904:74;-1:-1:-1;13987:93:101;-1:-1:-1;14105:2:101;14096:12;;13748:366::o;14120:419::-;14324:2;14337:47;;;14309:18;;14401:131;14309:18;14401:131;:::i;14784:366::-;15011:2;8946:19;;14926:3;8998:4;8989:14;;14685:34;14662:58;;-1:-1:-1;;;14749:2:101;14737:15;;14730:41;14940:74;-1:-1:-1;15023:93:101;14545:233;15156:419;15360:2;15373:47;;;15345:18;;15437:131;15345:18;15437:131;:::i;15672:154::-;15728:9;12875:4;12864:16;;15761:59;12800:86;15832:143;15925:43;15962:5;15925:43;:::i;15981:234::-;16118:2;16103:18;;16131:77;16107:9;16181:6;16131:77;:::i;16326:139::-;16415:6;16410:3;16405;16399:23;-1:-1:-1;16456:1:101;16438:16;;16431:27;16326:139::o;16471:377::-;16559:3;16587:39;16620:5;16301:12;;16221:99;16587:39;8946:19;;;8998:4;8989:14;;16635:78;;16722:65;16780:6;16775:3;16768:4;16761:5;16757:16;16722:65;:::i;:::-;549:2;529:14;-1:-1:-1;;525:28:101;16803:39;;;;;;-1:-1:-1;;16471:377:101:o;16854:423::-;17033:2;17018:18;;17046:71;17022:9;17090:6;17046:71;:::i;:::-;17164:9;17158:4;17154:20;17149:2;17138:9;17134:18;17127:48;17192:78;17265:4;17256:6;17192:78;:::i;17379:116::-;17353:13;;17346:21;17449;17283:90;17501:137;17580:13;;17602:30;17580:13;17602:30;:::i;17644:345::-;17711:6;17760:2;17748:9;17739:7;17735:23;17731:32;17728:119;;;17766:79;448:7088:51;;;17766:79:101;17886:1;17911:61;17964:7;17944:9;17911:61;:::i;17995:533::-;18202:2;18187:18;;18215:71;18191:9;18259:6;18215:71;:::i;:::-;18296:72;18364:2;18353:9;18349:18;18340:6;18296:72;:::i;:::-;18415:9;18409:4;18405:20;18400:2;18389:9;18385:18;18378:48;18443:78;18516:4;18507:6;18443:78;:::i;:::-;18435:86;17995:533;-1:-1:-1;;;;;17995:533:101:o;18722:366::-;18949:2;8946:19;;;18674:34;8989:14;;18651:58;;;18864:3;18961:93;18534:182;19094:419;19298:2;19311:47;;;19283:18;;19375:131;19283:18;19375:131;:::i;19749:366::-;19976:2;8946:19;;19891:3;8998:4;8989:14;;19659:34;19636:58;;-1:-1:-1;;;19723:2:101;19711:15;;19704:32;19905:74;-1:-1:-1;19988:93:101;19519:224;20121:419;20325:2;20338:47;;;20310:18;;20402:131;20310:18;20402:131;:::i;20546:332::-;20705:2;20690:18;;20718:71;20694:9;20762:6;20718:71;:::i;:::-;20799:72;20867:2;20856:9;20852:18;20843:6;20799:72;:::i;20884:180::-;-1:-1:-1;;;20929:1:101;20922:88;21029:4;21026:1;21019:15;21053:4;21050:1;21043:15;21070:194;21201:9;;;21223:11;;;21220:37;;;21237:18;;:::i;21378:848::-;21470:6;21494:5;21508:712;21529:1;21519:8;21516:15;21508:712;;;21624:4;21619:3;21615:14;21609:4;21606:24;21603:50;;;21633:18;;:::i;:::-;21683:1;21673:8;21669:16;21666:451;;;22087:16;;;;21666:451;22138:15;;22178:32;22201:8;21356:1;21352:13;;21270:102;22178:32;22166:44;;21508:712;;;21378:848;;;;;;;:::o;22232:1073::-;22286:5;22477:8;22467:40;;-1:-1:-1;22498:1:101;22500:5;;22467:40;22526:4;22516:36;;-1:-1:-1;22543:1:101;22545:5;;22516:36;22612:4;22660:1;22655:27;;;;22696:1;22691:191;;;;22605:277;;22655:27;22673:1;22664:10;;22675:5;;;22691:191;22736:3;22726:8;22723:17;22720:43;;;22743:18;;:::i;:::-;22792:8;22789:1;22785:16;22776:25;;22827:3;22820:5;22817:14;22814:40;;;22834:18;;:::i;:::-;22867:5;;;22605:277;;22991:2;22981:8;22978:16;22972:3;22966:4;22963:13;22959:36;22941:2;22931:8;22928:16;22923:2;22917:4;22914:12;22910:35;22894:111;22891:246;;;-1:-1:-1;23037:19:101;;;23072:14;;;23069:40;;;23089:18;;:::i;:::-;23122:5;;22891:246;23162:42;23200:3;23190:8;23184:4;23181:1;23162:42;:::i;:::-;23147:57;;;;23236:4;23231:3;23227:14;23220:5;23217:25;23214:51;;;23245:18;;:::i;:::-;23283:16;;22232:1073;-1:-1:-1;;22232:1073:101:o;23311:285::-;23371:5;23485:104;-1:-1:-1;;23512:8:101;23506:4;23485:104;:::i;23602:410::-;23747:9;;;;23909;;23942:15;;;23936:22;;23889:83;23866:139;;23985:18;;:::i;:::-;23650:362;23602:410;;;;:::o;24254:366::-;24481:2;8946:19;;24396:3;8998:4;8989:14;;24158:34;24135:58;;-1:-1:-1;;;24222:2:101;24210:15;;24203:38;24410:74;-1:-1:-1;24493:93:101;24018:230;24626:419;24830:2;24843:47;;;24815:18;;24907:131;24815:18;24907:131;:::i;25051:191::-;12875:4;12864:16;;;;;;;;25176:9;;;;25198:14;;25195:40;;;25215:18;;:::i;25359:120::-;25324:22;25313:34;;25431:23;25248:105;25485:141;25566:13;;25588:32;25566:13;25588:32;:::i;25840:141::-;25921:13;;25943:32;25921:13;25943:32;:::i;26136:971::-;26239:6;26247;26255;26263;26271;26320:3;26308:9;26299:7;26295:23;26291:33;26288:120;;;26327:79;448:7088:51;;;26327:79:101;26447:1;26472:63;26527:7;26507:9;26472:63;:::i;:::-;26462:73;;26418:127;26584:2;26610:63;26665:7;26656:6;26645:9;26641:22;26610:63;:::i;:::-;26600:73;;26555:128;26722:2;26748:64;26804:7;26795:6;26784:9;26780:22;26748:64;:::i;:::-;26738:74;;26693:129;26861:2;26887:64;26943:7;26934:6;26923:9;26919:22;26887:64;:::i;:::-;26877:74;;26832:129;27000:3;27027:63;27082:7;27073:6;27062:9;27058:22;27027:63;:::i;:::-;27017:73;;26971:129;26136:971;;;;;;;;:::o;27301:366::-;27528:2;8946:19;;;27253:34;8989:14;;27230:58;;;27443:3;27540:93;27113:182;27673:419;27877:2;27890:47;;;27862:18;;27954:131;27862:18;27954:131;:::i;28282:366::-;28509:2;8946:19;;28424:3;8998:4;8989:14;;28238:30;28215:54;;28438:74;-1:-1:-1;28521:93:101;28098:178;28654:419;28858:2;28871:47;;;28843:18;;28935:131;28843:18;28935:131;:::i;29258:366::-;29485:2;8946:19;;29400:3;8998:4;8989:14;;29219:25;29196:49;;29414:74;-1:-1:-1;29497:93:101;29079:173;29630:419;29834:2;29847:47;;;29819:18;;29911:131;29819:18;29911:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"1094600","executionCost":"30782","totalCost":"1125382"},"external":{"NATIVE_TOKEN_ADDR()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"infinite","getPrice(address)":"infinite","initialize(address)":"infinite","owner()":"infinite","pendingOwner()":"infinite","prices(address)":"infinite","renounceOwnership()":"infinite","setAccessControlManager(address)":"infinite","setDirectPrice(address,uint256)":"infinite","setTokenConfig((address,address,uint256))":"infinite","setTokenConfigs((address,address,uint256)[])":"infinite","tokenConfigs(address)":"infinite","transferOwnership(address)":"infinite"},"internal":{"_getChainlinkPrice(address)":"infinite","_getPriceInternal(address,uint256)":"infinite"}},"methodIdentifiers":{"NATIVE_TOKEN_ADDR()":"a9534f8a","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","getPrice(address)":"41976e09","initialize(address)":"c4d66de8","owner()":"8da5cb5b","pendingOwner()":"e30c3978","prices(address)":"cfed246b","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setDirectPrice(address,uint256)":"09a8acb0","setTokenConfig((address,address,uint256))":"392787d2","setTokenConfigs((address,address,uint256)[])":"0431710e","tokenConfigs(address)":"1b69dc5f","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousPriceMantissa\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPriceMantissa\",\"type\":\"uint256\"}],\"name\":\"PricePosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"name\":\"TokenConfigAdded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"prices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"setDirectPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainlinkOracle.TokenConfig\",\"name\":\"tokenConfig\",\"type\":\"tuple\"}],\"name\":\"setTokenConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainlinkOracle.TokenConfig[]\",\"name\":\"tokenConfigs_\",\"type\":\"tuple[]\"}],\"name\":\"setTokenConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenConfigs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getPrice(address)\":{\"params\":{\"asset\":\"Address of the asset\"},\"returns\":{\"_0\":\"Price in USD from Chainlink or a manually set price for the asset\"}},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"Address of the access control manager contract\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setDirectPrice(address,uint256)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits PricePosted event on successfully setup of asset price\",\"params\":{\"asset\":\"Asset address\",\"price\":\"Asset price in 18 decimals\"}},\"setTokenConfig((address,address,uint256))\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"NotNullAddress error is thrown if asset address is nullNotNullAddress error is thrown if token feed address is nullRange error is thrown if maxStale period of token is not greater than zero\",\"custom:event\":\"Emits TokenConfigAdded event on successfully setting of the token config\",\"params\":{\"tokenConfig\":\"Token config struct\"}},\"setTokenConfigs((address,address,uint256)[])\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"Zero length error thrown, if length of the array in parameter is 0\",\"params\":{\"tokenConfigs_\":\"config array\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"title\":\"ChainlinkOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"PricePosted(address,uint256,uint256)\":{\"notice\":\"Emit when a price is manually set\"},\"TokenConfigAdded(address,address,uint256)\":{\"notice\":\"Emit when a token config is added\"}},\"kind\":\"user\",\"methods\":{\"NATIVE_TOKEN_ADDR()\":{\"notice\":\"Set this as asset address for native token on each chain. This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain.\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getPrice(address)\":{\"notice\":\"Gets the price of a asset from the chainlink oracle\"},\"initialize(address)\":{\"notice\":\"Initializes the owner of the contract\"},\"prices(address)\":{\"notice\":\"Manually set an override price, useful under extenuating conditions such as price feed failure\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setDirectPrice(address,uint256)\":{\"notice\":\"Manually set the price of a given asset\"},\"setTokenConfig((address,address,uint256))\":{\"notice\":\"Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive\"},\"setTokenConfigs((address,address,uint256)[])\":{\"notice\":\"Add multiple token configs at the same time\"},\"tokenConfigs(address)\":{\"notice\":\"Token config by assets\"}},\"notice\":\"This oracle fetches prices of assets from the Chainlink oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/ChainlinkOracle.sol\":\"ChainlinkOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorV3Interface {\\n  function decimals() external view returns (uint8);\\n\\n  function description() external view returns (string memory);\\n\\n  function version() external view returns (uint256);\\n\\n  function getRoundData(uint80 _roundId)\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n\\n  function latestRoundData()\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n}\\n\",\"keccak256\":\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/VBep20Interface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\ninterface VBep20Interface is IERC20Metadata {\\n    /**\\n     * @notice Underlying asset for this VToken\\n     */\\n    function underlying() external view returns (address);\\n}\\n\",\"keccak256\":\"0x6e71c3df86501df5c0e4bace1333c0c91f9f9cced252a54fb99eeda219b789d5\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/ChainlinkOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../interfaces/VBep20Interface.sol\\\";\\nimport \\\"../interfaces/OracleInterface.sol\\\";\\nimport \\\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\\\";\\nimport \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\\\";\\n\\n/**\\n * @title ChainlinkOracle\\n * @author Venus\\n * @notice This oracle fetches prices of assets from the Chainlink oracle.\\n */\\ncontract ChainlinkOracle is AccessControlledV8, OracleInterface {\\n    struct TokenConfig {\\n        /// @notice Underlying token address, which can't be a null address\\n        /// @notice Used to check if a token is supported\\n        /// @notice 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB address for native tokens\\n        ///         (e.g BNB for BNB chain, ETH for Ethereum network)\\n        address asset;\\n        /// @notice Chainlink feed address\\n        address feed;\\n        /// @notice Price expiration period of this asset\\n        uint256 maxStalePeriod;\\n    }\\n\\n    /// @notice Set this as asset address for native token on each chain.\\n    /// This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain.\\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Manually set an override price, useful under extenuating conditions such as price feed failure\\n    mapping(address => uint256) public prices;\\n\\n    /// @notice Token config by assets\\n    mapping(address => TokenConfig) public tokenConfigs;\\n\\n    /// @notice Emit when a price is manually set\\n    event PricePosted(address indexed asset, uint256 previousPriceMantissa, uint256 newPriceMantissa);\\n\\n    /// @notice Emit when a token config is added\\n    event TokenConfigAdded(address indexed asset, address feed, uint256 maxStalePeriod);\\n\\n    modifier notNullAddress(address someone) {\\n        if (someone == address(0)) revert(\\\"can't be zero address\\\");\\n        _;\\n    }\\n\\n    /// @notice Constructor for the implementation contract.\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor() {\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the owner of the contract\\n     * @param accessControlManager_ Address of the access control manager contract\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Manually set the price of a given asset\\n     * @param asset Asset address\\n     * @param price Asset price in 18 decimals\\n     * @custom:access Only Governance\\n     * @custom:event Emits PricePosted event on successfully setup of asset price\\n     */\\n    function setDirectPrice(address asset, uint256 price) external notNullAddress(asset) {\\n        _checkAccessAllowed(\\\"setDirectPrice(address,uint256)\\\");\\n\\n        uint256 previousPriceMantissa = prices[asset];\\n        prices[asset] = price;\\n        emit PricePosted(asset, previousPriceMantissa, price);\\n    }\\n\\n    /**\\n     * @notice Add multiple token configs at the same time\\n     * @param tokenConfigs_ config array\\n     * @custom:access Only Governance\\n     * @custom:error Zero length error thrown, if length of the array in parameter is 0\\n     */\\n    function setTokenConfigs(TokenConfig[] memory tokenConfigs_) external {\\n        if (tokenConfigs_.length == 0) revert(\\\"length can't be 0\\\");\\n        uint256 numTokenConfigs = tokenConfigs_.length;\\n        for (uint256 i; i < numTokenConfigs; ++i) {\\n            setTokenConfig(tokenConfigs_[i]);\\n        }\\n    }\\n\\n    /**\\n     * @notice Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive\\n     * @param tokenConfig Token config struct\\n     * @custom:access Only Governance\\n     * @custom:error NotNullAddress error is thrown if asset address is null\\n     * @custom:error NotNullAddress error is thrown if token feed address is null\\n     * @custom:error Range error is thrown if maxStale period of token is not greater than zero\\n     * @custom:event Emits TokenConfigAdded event on successfully setting of the token config\\n     */\\n    function setTokenConfig(\\n        TokenConfig memory tokenConfig\\n    ) public notNullAddress(tokenConfig.asset) notNullAddress(tokenConfig.feed) {\\n        _checkAccessAllowed(\\\"setTokenConfig(TokenConfig)\\\");\\n\\n        if (tokenConfig.maxStalePeriod == 0) revert(\\\"stale period can't be zero\\\");\\n        tokenConfigs[tokenConfig.asset] = tokenConfig;\\n        emit TokenConfigAdded(tokenConfig.asset, tokenConfig.feed, tokenConfig.maxStalePeriod);\\n    }\\n\\n    /**\\n     * @notice Gets the price of a asset from the chainlink oracle\\n     * @param asset Address of the asset\\n     * @return Price in USD from Chainlink or a manually set price for the asset\\n     */\\n    function getPrice(address asset) public view virtual returns (uint256) {\\n        uint256 decimals;\\n\\n        if (asset == NATIVE_TOKEN_ADDR) {\\n            decimals = 18;\\n        } else {\\n            IERC20Metadata token = IERC20Metadata(asset);\\n            decimals = token.decimals();\\n        }\\n\\n        return _getPriceInternal(asset, decimals);\\n    }\\n\\n    /**\\n     * @notice Gets the Chainlink price for a given asset\\n     * @param asset address of the asset\\n     * @param decimals decimals of the asset\\n     * @return price Asset price in USD or a manually set price of the asset\\n     */\\n    function _getPriceInternal(address asset, uint256 decimals) internal view returns (uint256 price) {\\n        uint256 tokenPrice = prices[asset];\\n        if (tokenPrice != 0) {\\n            price = tokenPrice;\\n        } else {\\n            price = _getChainlinkPrice(asset);\\n        }\\n\\n        uint256 decimalDelta = 18 - decimals;\\n        return price * (10 ** decimalDelta);\\n    }\\n\\n    /**\\n     * @notice Get the Chainlink price for an asset, revert if token config doesn't exist\\n     * @dev The precision of the price feed is used to ensure the returned price has 18 decimals of precision\\n     * @param asset Address of the asset\\n     * @return price Price in USD, with 18 decimals of precision\\n     * @custom:error NotNullAddress error is thrown if the asset address is null\\n     * @custom:error Price error is thrown if the Chainlink price of asset is not greater than zero\\n     * @custom:error Timing error is thrown if current timestamp is less than the last updatedAt timestamp\\n     * @custom:error Timing error is thrown if time difference between current time and last updated time\\n     * is greater than maxStalePeriod\\n     */\\n    function _getChainlinkPrice(\\n        address asset\\n    ) private view notNullAddress(tokenConfigs[asset].asset) returns (uint256) {\\n        TokenConfig memory tokenConfig = tokenConfigs[asset];\\n        AggregatorV3Interface feed = AggregatorV3Interface(tokenConfig.feed);\\n\\n        // note: maxStalePeriod cannot be 0\\n        uint256 maxStalePeriod = tokenConfig.maxStalePeriod;\\n\\n        // Chainlink USD-denominated feeds store answers at 8 decimals, mostly\\n        uint256 decimalDelta = 18 - feed.decimals();\\n\\n        (, int256 answer, , uint256 updatedAt, ) = feed.latestRoundData();\\n        if (answer <= 0) revert(\\\"chainlink price must be positive\\\");\\n        if (block.timestamp < updatedAt) revert(\\\"updatedAt exceeds block time\\\");\\n\\n        uint256 deltaTime;\\n        unchecked {\\n            deltaTime = block.timestamp - updatedAt;\\n        }\\n\\n        if (deltaTime > maxStalePeriod) revert(\\\"chainlink price expired\\\");\\n\\n        return uint256(answer) * (10 ** decimalDelta);\\n    }\\n}\\n\",\"keccak256\":\"0x057852418e032dbb6210719170444bf73a4d12be50970570e28623719ea961a4\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1940,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)2125"},{"astId":1945,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":4712,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"prices","offset":0,"slot":"201","type":"t_mapping(t_address,t_uint256)"},{"astId":4718,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"tokenConfigs","offset":0,"slot":"202","type":"t_mapping(t_address,t_struct(TokenConfig)4703_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)2125":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_address,t_struct(TokenConfig)4703_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct ChainlinkOracle.TokenConfig)","numberOfBytes":"32","value":"t_struct(TokenConfig)4703_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(TokenConfig)4703_storage":{"encoding":"inplace","label":"struct ChainlinkOracle.TokenConfig","members":[{"astId":4696,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"asset","offset":0,"slot":"0","type":"t_address"},{"astId":4699,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"feed","offset":0,"slot":"1","type":"t_address"},{"astId":4702,"contract":"contracts/oracles/ChainlinkOracle.sol:ChainlinkOracle","label":"maxStalePeriod","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"PricePosted(address,uint256,uint256)":{"notice":"Emit when a price is manually set"},"TokenConfigAdded(address,address,uint256)":{"notice":"Emit when a token config is added"}},"kind":"user","methods":{"NATIVE_TOKEN_ADDR()":{"notice":"Set this as asset address for native token on each chain. This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain."},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"constructor":{"notice":"Constructor for the implementation contract."},"getPrice(address)":{"notice":"Gets the price of a asset from the chainlink oracle"},"initialize(address)":{"notice":"Initializes the owner of the contract"},"prices(address)":{"notice":"Manually set an override price, useful under extenuating conditions such as price feed failure"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setDirectPrice(address,uint256)":{"notice":"Manually set the price of a given asset"},"setTokenConfig((address,address,uint256))":{"notice":"Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive"},"setTokenConfigs((address,address,uint256)[])":{"notice":"Add multiple token configs at the same time"},"tokenConfigs(address)":{"notice":"Token config by assets"}},"notice":"This oracle fetches prices of assets from the Chainlink oracle.","version":1}}},"contracts/oracles/ERC4626Oracle.sol":{"ERC4626Oracle":{"abi":[{"inputs":[{"internalType":"address","name":"correlatedToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE_CORRELATED_TOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount The amount of underlying token for correlated token"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"ERC4626Oracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5132":{"entryPoint":null,"id":5132,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":397,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":476,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":493,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":764,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":504,"id":null,"parameterSlots":2,"returnSlots":9},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":775,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":736,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":813,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":1084,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":885,"id":null,"parameterSlots":3,"returnSlots":1},"cleanup_t_address":{"entryPoint":439,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":716,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":696,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":457,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":487,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":755,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6418:101","nodeType":"YulBlock","src":"0:6418:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"},{"body":{"nativeSrc":"3422:43:101","nodeType":"YulBlock","src":"3422:43:101","statements":[{"nativeSrc":"3432:27:101","nodeType":"YulAssignment","src":"3432:27:101","value":{"arguments":[{"name":"value","nativeSrc":"3447:5:101","nodeType":"YulIdentifier","src":"3447:5:101"},{"kind":"number","nativeSrc":"3454:4:101","nodeType":"YulLiteral","src":"3454:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3443:3:101","nodeType":"YulIdentifier","src":"3443:3:101"},"nativeSrc":"3443:16:101","nodeType":"YulFunctionCall","src":"3443:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3432:7:101","nodeType":"YulIdentifier","src":"3432:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"3379:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3404:5:101","nodeType":"YulTypedName","src":"3404:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3414:7:101","nodeType":"YulTypedName","src":"3414:7:101","type":""}],"src":"3379:86:101"},{"body":{"nativeSrc":"3512:77:101","nodeType":"YulBlock","src":"3512:77:101","statements":[{"body":{"nativeSrc":"3567:16:101","nodeType":"YulBlock","src":"3567:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3576:1:101","nodeType":"YulLiteral","src":"3576:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3579:1:101","nodeType":"YulLiteral","src":"3579:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3569:6:101","nodeType":"YulIdentifier","src":"3569:6:101"},"nativeSrc":"3569:12:101","nodeType":"YulFunctionCall","src":"3569:12:101"},"nativeSrc":"3569:12:101","nodeType":"YulExpressionStatement","src":"3569:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3535:5:101","nodeType":"YulIdentifier","src":"3535:5:101"},{"arguments":[{"name":"value","nativeSrc":"3558:5:101","nodeType":"YulIdentifier","src":"3558:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"3542:15:101","nodeType":"YulIdentifier","src":"3542:15:101"},"nativeSrc":"3542:22:101","nodeType":"YulFunctionCall","src":"3542:22:101"}],"functionName":{"name":"eq","nativeSrc":"3532:2:101","nodeType":"YulIdentifier","src":"3532:2:101"},"nativeSrc":"3532:33:101","nodeType":"YulFunctionCall","src":"3532:33:101"}],"functionName":{"name":"iszero","nativeSrc":"3525:6:101","nodeType":"YulIdentifier","src":"3525:6:101"},"nativeSrc":"3525:41:101","nodeType":"YulFunctionCall","src":"3525:41:101"},"nativeSrc":"3522:61:101","nodeType":"YulIf","src":"3522:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"3471:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3505:5:101","nodeType":"YulTypedName","src":"3505:5:101","type":""}],"src":"3471:118:101"},{"body":{"nativeSrc":"3656:78:101","nodeType":"YulBlock","src":"3656:78:101","statements":[{"nativeSrc":"3666:22:101","nodeType":"YulAssignment","src":"3666:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"3681:6:101","nodeType":"YulIdentifier","src":"3681:6:101"}],"functionName":{"name":"mload","nativeSrc":"3675:5:101","nodeType":"YulIdentifier","src":"3675:5:101"},"nativeSrc":"3675:13:101","nodeType":"YulFunctionCall","src":"3675:13:101"},"variableNames":[{"name":"value","nativeSrc":"3666:5:101","nodeType":"YulIdentifier","src":"3666:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3722:5:101","nodeType":"YulIdentifier","src":"3722:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"3697:24:101","nodeType":"YulIdentifier","src":"3697:24:101"},"nativeSrc":"3697:31:101","nodeType":"YulFunctionCall","src":"3697:31:101"},"nativeSrc":"3697:31:101","nodeType":"YulExpressionStatement","src":"3697:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"3595:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3634:6:101","nodeType":"YulTypedName","src":"3634:6:101","type":""},{"name":"end","nativeSrc":"3642:3:101","nodeType":"YulTypedName","src":"3642:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3650:5:101","nodeType":"YulTypedName","src":"3650:5:101","type":""}],"src":"3595:139:101"},{"body":{"nativeSrc":"3815:272:101","nodeType":"YulBlock","src":"3815:272:101","statements":[{"body":{"nativeSrc":"3861:83:101","nodeType":"YulBlock","src":"3861:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3863:77:101","nodeType":"YulIdentifier","src":"3863:77:101"},"nativeSrc":"3863:79:101","nodeType":"YulFunctionCall","src":"3863:79:101"},"nativeSrc":"3863:79:101","nodeType":"YulExpressionStatement","src":"3863:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3836:7:101","nodeType":"YulIdentifier","src":"3836:7:101"},{"name":"headStart","nativeSrc":"3845:9:101","nodeType":"YulIdentifier","src":"3845:9:101"}],"functionName":{"name":"sub","nativeSrc":"3832:3:101","nodeType":"YulIdentifier","src":"3832:3:101"},"nativeSrc":"3832:23:101","nodeType":"YulFunctionCall","src":"3832:23:101"},{"kind":"number","nativeSrc":"3857:2:101","nodeType":"YulLiteral","src":"3857:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3828:3:101","nodeType":"YulIdentifier","src":"3828:3:101"},"nativeSrc":"3828:32:101","nodeType":"YulFunctionCall","src":"3828:32:101"},"nativeSrc":"3825:119:101","nodeType":"YulIf","src":"3825:119:101"},{"nativeSrc":"3954:126:101","nodeType":"YulBlock","src":"3954:126:101","statements":[{"nativeSrc":"3969:15:101","nodeType":"YulVariableDeclaration","src":"3969:15:101","value":{"kind":"number","nativeSrc":"3983:1:101","nodeType":"YulLiteral","src":"3983:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3973:6:101","nodeType":"YulTypedName","src":"3973:6:101","type":""}]},{"nativeSrc":"3998:72:101","nodeType":"YulAssignment","src":"3998:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4042:9:101","nodeType":"YulIdentifier","src":"4042:9:101"},{"name":"offset","nativeSrc":"4053:6:101","nodeType":"YulIdentifier","src":"4053:6:101"}],"functionName":{"name":"add","nativeSrc":"4038:3:101","nodeType":"YulIdentifier","src":"4038:3:101"},"nativeSrc":"4038:22:101","nodeType":"YulFunctionCall","src":"4038:22:101"},{"name":"dataEnd","nativeSrc":"4062:7:101","nodeType":"YulIdentifier","src":"4062:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"4008:29:101","nodeType":"YulIdentifier","src":"4008:29:101"},"nativeSrc":"4008:62:101","nodeType":"YulFunctionCall","src":"4008:62:101"},"variableNames":[{"name":"value0","nativeSrc":"3998:6:101","nodeType":"YulIdentifier","src":"3998:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"3740:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3785:9:101","nodeType":"YulTypedName","src":"3785:9:101","type":""},{"name":"dataEnd","nativeSrc":"3796:7:101","nodeType":"YulTypedName","src":"3796:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3808:6:101","nodeType":"YulTypedName","src":"3808:6:101","type":""}],"src":"3740:347:101"},{"body":{"nativeSrc":"4144:51:101","nodeType":"YulBlock","src":"4144:51:101","statements":[{"nativeSrc":"4154:34:101","nodeType":"YulAssignment","src":"4154:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"4179:1:101","nodeType":"YulLiteral","src":"4179:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"4182:5:101","nodeType":"YulIdentifier","src":"4182:5:101"}],"functionName":{"name":"shr","nativeSrc":"4175:3:101","nodeType":"YulIdentifier","src":"4175:3:101"},"nativeSrc":"4175:13:101","nodeType":"YulFunctionCall","src":"4175:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"4154:8:101","nodeType":"YulIdentifier","src":"4154:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"4093:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4125:5:101","nodeType":"YulTypedName","src":"4125:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4135:8:101","nodeType":"YulTypedName","src":"4135:8:101","type":""}],"src":"4093:102:101"},{"body":{"nativeSrc":"4274:775:101","nodeType":"YulBlock","src":"4274:775:101","statements":[{"nativeSrc":"4284:15:101","nodeType":"YulAssignment","src":"4284:15:101","value":{"name":"_power","nativeSrc":"4293:6:101","nodeType":"YulIdentifier","src":"4293:6:101"},"variableNames":[{"name":"power","nativeSrc":"4284:5:101","nodeType":"YulIdentifier","src":"4284:5:101"}]},{"nativeSrc":"4308:14:101","nodeType":"YulAssignment","src":"4308:14:101","value":{"name":"_base","nativeSrc":"4317:5:101","nodeType":"YulIdentifier","src":"4317:5:101"},"variableNames":[{"name":"base","nativeSrc":"4308:4:101","nodeType":"YulIdentifier","src":"4308:4:101"}]},{"body":{"nativeSrc":"4366:677:101","nodeType":"YulBlock","src":"4366:677:101","statements":[{"body":{"nativeSrc":"4454:22:101","nodeType":"YulBlock","src":"4454:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4456:16:101","nodeType":"YulIdentifier","src":"4456:16:101"},"nativeSrc":"4456:18:101","nodeType":"YulFunctionCall","src":"4456:18:101"},"nativeSrc":"4456:18:101","nodeType":"YulExpressionStatement","src":"4456:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"4432:4:101","nodeType":"YulIdentifier","src":"4432:4:101"},{"arguments":[{"name":"max","nativeSrc":"4442:3:101","nodeType":"YulIdentifier","src":"4442:3:101"},{"name":"base","nativeSrc":"4447:4:101","nodeType":"YulIdentifier","src":"4447:4:101"}],"functionName":{"name":"div","nativeSrc":"4438:3:101","nodeType":"YulIdentifier","src":"4438:3:101"},"nativeSrc":"4438:14:101","nodeType":"YulFunctionCall","src":"4438:14:101"}],"functionName":{"name":"gt","nativeSrc":"4429:2:101","nodeType":"YulIdentifier","src":"4429:2:101"},"nativeSrc":"4429:24:101","nodeType":"YulFunctionCall","src":"4429:24:101"},"nativeSrc":"4426:50:101","nodeType":"YulIf","src":"4426:50:101"},{"body":{"nativeSrc":"4521:419:101","nodeType":"YulBlock","src":"4521:419:101","statements":[{"nativeSrc":"4901:25:101","nodeType":"YulAssignment","src":"4901:25:101","value":{"arguments":[{"name":"power","nativeSrc":"4914:5:101","nodeType":"YulIdentifier","src":"4914:5:101"},{"name":"base","nativeSrc":"4921:4:101","nodeType":"YulIdentifier","src":"4921:4:101"}],"functionName":{"name":"mul","nativeSrc":"4910:3:101","nodeType":"YulIdentifier","src":"4910:3:101"},"nativeSrc":"4910:16:101","nodeType":"YulFunctionCall","src":"4910:16:101"},"variableNames":[{"name":"power","nativeSrc":"4901:5:101","nodeType":"YulIdentifier","src":"4901:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"4496:8:101","nodeType":"YulIdentifier","src":"4496:8:101"},{"kind":"number","nativeSrc":"4506:1:101","nodeType":"YulLiteral","src":"4506:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4492:3:101","nodeType":"YulIdentifier","src":"4492:3:101"},"nativeSrc":"4492:16:101","nodeType":"YulFunctionCall","src":"4492:16:101"},"nativeSrc":"4489:451:101","nodeType":"YulIf","src":"4489:451:101"},{"nativeSrc":"4953:23:101","nodeType":"YulAssignment","src":"4953:23:101","value":{"arguments":[{"name":"base","nativeSrc":"4965:4:101","nodeType":"YulIdentifier","src":"4965:4:101"},{"name":"base","nativeSrc":"4971:4:101","nodeType":"YulIdentifier","src":"4971:4:101"}],"functionName":{"name":"mul","nativeSrc":"4961:3:101","nodeType":"YulIdentifier","src":"4961:3:101"},"nativeSrc":"4961:15:101","nodeType":"YulFunctionCall","src":"4961:15:101"},"variableNames":[{"name":"base","nativeSrc":"4953:4:101","nodeType":"YulIdentifier","src":"4953:4:101"}]},{"nativeSrc":"4989:44:101","nodeType":"YulAssignment","src":"4989:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"5024:8:101","nodeType":"YulIdentifier","src":"5024:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"5001:22:101","nodeType":"YulIdentifier","src":"5001:22:101"},"nativeSrc":"5001:32:101","nodeType":"YulFunctionCall","src":"5001:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"4989:8:101","nodeType":"YulIdentifier","src":"4989:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"4342:8:101","nodeType":"YulIdentifier","src":"4342:8:101"},{"kind":"number","nativeSrc":"4352:1:101","nodeType":"YulLiteral","src":"4352:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"4339:2:101","nodeType":"YulIdentifier","src":"4339:2:101"},"nativeSrc":"4339:15:101","nodeType":"YulFunctionCall","src":"4339:15:101"},"nativeSrc":"4331:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"4355:2:101","nodeType":"YulBlock","src":"4355:2:101","statements":[]},"pre":{"nativeSrc":"4335:3:101","nodeType":"YulBlock","src":"4335:3:101","statements":[]},"src":"4331:712:101"}]},"name":"checked_exp_helper","nativeSrc":"4201:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"4229:6:101","nodeType":"YulTypedName","src":"4229:6:101","type":""},{"name":"_base","nativeSrc":"4237:5:101","nodeType":"YulTypedName","src":"4237:5:101","type":""},{"name":"exponent","nativeSrc":"4244:8:101","nodeType":"YulTypedName","src":"4244:8:101","type":""},{"name":"max","nativeSrc":"4254:3:101","nodeType":"YulTypedName","src":"4254:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"4262:5:101","nodeType":"YulTypedName","src":"4262:5:101","type":""},{"name":"base","nativeSrc":"4269:4:101","nodeType":"YulTypedName","src":"4269:4:101","type":""}],"src":"4201:848:101"},{"body":{"nativeSrc":"5115:1013:101","nodeType":"YulBlock","src":"5115:1013:101","statements":[{"body":{"nativeSrc":"5310:20:101","nodeType":"YulBlock","src":"5310:20:101","statements":[{"nativeSrc":"5312:10:101","nodeType":"YulAssignment","src":"5312:10:101","value":{"kind":"number","nativeSrc":"5321:1:101","nodeType":"YulLiteral","src":"5321:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"5312:5:101","nodeType":"YulIdentifier","src":"5312:5:101"}]},{"nativeSrc":"5323:5:101","nodeType":"YulLeave","src":"5323:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"5300:8:101","nodeType":"YulIdentifier","src":"5300:8:101"}],"functionName":{"name":"iszero","nativeSrc":"5293:6:101","nodeType":"YulIdentifier","src":"5293:6:101"},"nativeSrc":"5293:16:101","nodeType":"YulFunctionCall","src":"5293:16:101"},"nativeSrc":"5290:40:101","nodeType":"YulIf","src":"5290:40:101"},{"body":{"nativeSrc":"5355:20:101","nodeType":"YulBlock","src":"5355:20:101","statements":[{"nativeSrc":"5357:10:101","nodeType":"YulAssignment","src":"5357:10:101","value":{"kind":"number","nativeSrc":"5366:1:101","nodeType":"YulLiteral","src":"5366:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"5357:5:101","nodeType":"YulIdentifier","src":"5357:5:101"}]},{"nativeSrc":"5368:5:101","nodeType":"YulLeave","src":"5368:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"5349:4:101","nodeType":"YulIdentifier","src":"5349:4:101"}],"functionName":{"name":"iszero","nativeSrc":"5342:6:101","nodeType":"YulIdentifier","src":"5342:6:101"},"nativeSrc":"5342:12:101","nodeType":"YulFunctionCall","src":"5342:12:101"},"nativeSrc":"5339:36:101","nodeType":"YulIf","src":"5339:36:101"},{"cases":[{"body":{"nativeSrc":"5485:20:101","nodeType":"YulBlock","src":"5485:20:101","statements":[{"nativeSrc":"5487:10:101","nodeType":"YulAssignment","src":"5487:10:101","value":{"kind":"number","nativeSrc":"5496:1:101","nodeType":"YulLiteral","src":"5496:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"5487:5:101","nodeType":"YulIdentifier","src":"5487:5:101"}]},{"nativeSrc":"5498:5:101","nodeType":"YulLeave","src":"5498:5:101"}]},"nativeSrc":"5478:27:101","nodeType":"YulCase","src":"5478:27:101","value":{"kind":"number","nativeSrc":"5483:1:101","nodeType":"YulLiteral","src":"5483:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"5529:176:101","nodeType":"YulBlock","src":"5529:176:101","statements":[{"body":{"nativeSrc":"5564:22:101","nodeType":"YulBlock","src":"5564:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5566:16:101","nodeType":"YulIdentifier","src":"5566:16:101"},"nativeSrc":"5566:18:101","nodeType":"YulFunctionCall","src":"5566:18:101"},"nativeSrc":"5566:18:101","nodeType":"YulExpressionStatement","src":"5566:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"5549:8:101","nodeType":"YulIdentifier","src":"5549:8:101"},{"kind":"number","nativeSrc":"5559:3:101","nodeType":"YulLiteral","src":"5559:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"5546:2:101","nodeType":"YulIdentifier","src":"5546:2:101"},"nativeSrc":"5546:17:101","nodeType":"YulFunctionCall","src":"5546:17:101"},"nativeSrc":"5543:43:101","nodeType":"YulIf","src":"5543:43:101"},{"nativeSrc":"5599:25:101","nodeType":"YulAssignment","src":"5599:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"5612:1:101","nodeType":"YulLiteral","src":"5612:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"5615:8:101","nodeType":"YulIdentifier","src":"5615:8:101"}],"functionName":{"name":"exp","nativeSrc":"5608:3:101","nodeType":"YulIdentifier","src":"5608:3:101"},"nativeSrc":"5608:16:101","nodeType":"YulFunctionCall","src":"5608:16:101"},"variableNames":[{"name":"power","nativeSrc":"5599:5:101","nodeType":"YulIdentifier","src":"5599:5:101"}]},{"body":{"nativeSrc":"5655:22:101","nodeType":"YulBlock","src":"5655:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5657:16:101","nodeType":"YulIdentifier","src":"5657:16:101"},"nativeSrc":"5657:18:101","nodeType":"YulFunctionCall","src":"5657:18:101"},"nativeSrc":"5657:18:101","nodeType":"YulExpressionStatement","src":"5657:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"5643:5:101","nodeType":"YulIdentifier","src":"5643:5:101"},{"name":"max","nativeSrc":"5650:3:101","nodeType":"YulIdentifier","src":"5650:3:101"}],"functionName":{"name":"gt","nativeSrc":"5640:2:101","nodeType":"YulIdentifier","src":"5640:2:101"},"nativeSrc":"5640:14:101","nodeType":"YulFunctionCall","src":"5640:14:101"},"nativeSrc":"5637:40:101","nodeType":"YulIf","src":"5637:40:101"},{"nativeSrc":"5690:5:101","nodeType":"YulLeave","src":"5690:5:101"}]},"nativeSrc":"5514:191:101","nodeType":"YulCase","src":"5514:191:101","value":{"kind":"number","nativeSrc":"5519:1:101","nodeType":"YulLiteral","src":"5519:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"5435:4:101","nodeType":"YulIdentifier","src":"5435:4:101"},"nativeSrc":"5428:277:101","nodeType":"YulSwitch","src":"5428:277:101"},{"body":{"nativeSrc":"5837:123:101","nodeType":"YulBlock","src":"5837:123:101","statements":[{"nativeSrc":"5851:28:101","nodeType":"YulAssignment","src":"5851:28:101","value":{"arguments":[{"name":"base","nativeSrc":"5864:4:101","nodeType":"YulIdentifier","src":"5864:4:101"},{"name":"exponent","nativeSrc":"5870:8:101","nodeType":"YulIdentifier","src":"5870:8:101"}],"functionName":{"name":"exp","nativeSrc":"5860:3:101","nodeType":"YulIdentifier","src":"5860:3:101"},"nativeSrc":"5860:19:101","nodeType":"YulFunctionCall","src":"5860:19:101"},"variableNames":[{"name":"power","nativeSrc":"5851:5:101","nodeType":"YulIdentifier","src":"5851:5:101"}]},{"body":{"nativeSrc":"5910:22:101","nodeType":"YulBlock","src":"5910:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5912:16:101","nodeType":"YulIdentifier","src":"5912:16:101"},"nativeSrc":"5912:18:101","nodeType":"YulFunctionCall","src":"5912:18:101"},"nativeSrc":"5912:18:101","nodeType":"YulExpressionStatement","src":"5912:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"5898:5:101","nodeType":"YulIdentifier","src":"5898:5:101"},{"name":"max","nativeSrc":"5905:3:101","nodeType":"YulIdentifier","src":"5905:3:101"}],"functionName":{"name":"gt","nativeSrc":"5895:2:101","nodeType":"YulIdentifier","src":"5895:2:101"},"nativeSrc":"5895:14:101","nodeType":"YulFunctionCall","src":"5895:14:101"},"nativeSrc":"5892:40:101","nodeType":"YulIf","src":"5892:40:101"},{"nativeSrc":"5945:5:101","nodeType":"YulLeave","src":"5945:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"5740:4:101","nodeType":"YulIdentifier","src":"5740:4:101"},{"kind":"number","nativeSrc":"5746:2:101","nodeType":"YulLiteral","src":"5746:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"5737:2:101","nodeType":"YulIdentifier","src":"5737:2:101"},"nativeSrc":"5737:12:101","nodeType":"YulFunctionCall","src":"5737:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"5754:8:101","nodeType":"YulIdentifier","src":"5754:8:101"},{"kind":"number","nativeSrc":"5764:2:101","nodeType":"YulLiteral","src":"5764:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"5751:2:101","nodeType":"YulIdentifier","src":"5751:2:101"},"nativeSrc":"5751:16:101","nodeType":"YulFunctionCall","src":"5751:16:101"}],"functionName":{"name":"and","nativeSrc":"5733:3:101","nodeType":"YulIdentifier","src":"5733:3:101"},"nativeSrc":"5733:35:101","nodeType":"YulFunctionCall","src":"5733:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"5789:4:101","nodeType":"YulIdentifier","src":"5789:4:101"},{"kind":"number","nativeSrc":"5795:3:101","nodeType":"YulLiteral","src":"5795:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"5786:2:101","nodeType":"YulIdentifier","src":"5786:2:101"},"nativeSrc":"5786:13:101","nodeType":"YulFunctionCall","src":"5786:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"5804:8:101","nodeType":"YulIdentifier","src":"5804:8:101"},{"kind":"number","nativeSrc":"5814:2:101","nodeType":"YulLiteral","src":"5814:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5801:2:101","nodeType":"YulIdentifier","src":"5801:2:101"},"nativeSrc":"5801:16:101","nodeType":"YulFunctionCall","src":"5801:16:101"}],"functionName":{"name":"and","nativeSrc":"5782:3:101","nodeType":"YulIdentifier","src":"5782:3:101"},"nativeSrc":"5782:36:101","nodeType":"YulFunctionCall","src":"5782:36:101"}],"functionName":{"name":"or","nativeSrc":"5717:2:101","nodeType":"YulIdentifier","src":"5717:2:101"},"nativeSrc":"5717:111:101","nodeType":"YulFunctionCall","src":"5717:111:101"},"nativeSrc":"5714:246:101","nodeType":"YulIf","src":"5714:246:101"},{"nativeSrc":"5970:57:101","nodeType":"YulAssignment","src":"5970:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"6004:1:101","nodeType":"YulLiteral","src":"6004:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"6007:4:101","nodeType":"YulIdentifier","src":"6007:4:101"},{"name":"exponent","nativeSrc":"6013:8:101","nodeType":"YulIdentifier","src":"6013:8:101"},{"name":"max","nativeSrc":"6023:3:101","nodeType":"YulIdentifier","src":"6023:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"5985:18:101","nodeType":"YulIdentifier","src":"5985:18:101"},"nativeSrc":"5985:42:101","nodeType":"YulFunctionCall","src":"5985:42:101"},"variableNames":[{"name":"power","nativeSrc":"5970:5:101","nodeType":"YulIdentifier","src":"5970:5:101"},{"name":"base","nativeSrc":"5977:4:101","nodeType":"YulIdentifier","src":"5977:4:101"}]},{"body":{"nativeSrc":"6066:22:101","nodeType":"YulBlock","src":"6066:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6068:16:101","nodeType":"YulIdentifier","src":"6068:16:101"},"nativeSrc":"6068:18:101","nodeType":"YulFunctionCall","src":"6068:18:101"},"nativeSrc":"6068:18:101","nodeType":"YulExpressionStatement","src":"6068:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"6043:5:101","nodeType":"YulIdentifier","src":"6043:5:101"},{"arguments":[{"name":"max","nativeSrc":"6054:3:101","nodeType":"YulIdentifier","src":"6054:3:101"},{"name":"base","nativeSrc":"6059:4:101","nodeType":"YulIdentifier","src":"6059:4:101"}],"functionName":{"name":"div","nativeSrc":"6050:3:101","nodeType":"YulIdentifier","src":"6050:3:101"},"nativeSrc":"6050:14:101","nodeType":"YulFunctionCall","src":"6050:14:101"}],"functionName":{"name":"gt","nativeSrc":"6040:2:101","nodeType":"YulIdentifier","src":"6040:2:101"},"nativeSrc":"6040:25:101","nodeType":"YulFunctionCall","src":"6040:25:101"},"nativeSrc":"6037:51:101","nodeType":"YulIf","src":"6037:51:101"},{"nativeSrc":"6097:25:101","nodeType":"YulAssignment","src":"6097:25:101","value":{"arguments":[{"name":"power","nativeSrc":"6110:5:101","nodeType":"YulIdentifier","src":"6110:5:101"},{"name":"base","nativeSrc":"6117:4:101","nodeType":"YulIdentifier","src":"6117:4:101"}],"functionName":{"name":"mul","nativeSrc":"6106:3:101","nodeType":"YulIdentifier","src":"6106:3:101"},"nativeSrc":"6106:16:101","nodeType":"YulFunctionCall","src":"6106:16:101"},"variableNames":[{"name":"power","nativeSrc":"6097:5:101","nodeType":"YulIdentifier","src":"6097:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"5055:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"5085:4:101","nodeType":"YulTypedName","src":"5085:4:101","type":""},{"name":"exponent","nativeSrc":"5091:8:101","nodeType":"YulTypedName","src":"5091:8:101","type":""},{"name":"max","nativeSrc":"5101:3:101","nodeType":"YulTypedName","src":"5101:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"5109:5:101","nodeType":"YulTypedName","src":"5109:5:101","type":""}],"src":"5055:1073:101"},{"body":{"nativeSrc":"6198:217:101","nodeType":"YulBlock","src":"6198:217:101","statements":[{"nativeSrc":"6208:31:101","nodeType":"YulAssignment","src":"6208:31:101","value":{"arguments":[{"name":"base","nativeSrc":"6234:4:101","nodeType":"YulIdentifier","src":"6234:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6216:17:101","nodeType":"YulIdentifier","src":"6216:17:101"},"nativeSrc":"6216:23:101","nodeType":"YulFunctionCall","src":"6216:23:101"},"variableNames":[{"name":"base","nativeSrc":"6208:4:101","nodeType":"YulIdentifier","src":"6208:4:101"}]},{"nativeSrc":"6248:37:101","nodeType":"YulAssignment","src":"6248:37:101","value":{"arguments":[{"name":"exponent","nativeSrc":"6276:8:101","nodeType":"YulIdentifier","src":"6276:8:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"6260:15:101","nodeType":"YulIdentifier","src":"6260:15:101"},"nativeSrc":"6260:25:101","nodeType":"YulFunctionCall","src":"6260:25:101"},"variableNames":[{"name":"exponent","nativeSrc":"6248:8:101","nodeType":"YulIdentifier","src":"6248:8:101"}]},{"nativeSrc":"6295:113:101","nodeType":"YulAssignment","src":"6295:113:101","value":{"arguments":[{"name":"base","nativeSrc":"6325:4:101","nodeType":"YulIdentifier","src":"6325:4:101"},{"name":"exponent","nativeSrc":"6331:8:101","nodeType":"YulIdentifier","src":"6331:8:101"},{"kind":"number","nativeSrc":"6341:66:101","nodeType":"YulLiteral","src":"6341:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"6304:20:101","nodeType":"YulIdentifier","src":"6304:20:101"},"nativeSrc":"6304:104:101","nodeType":"YulFunctionCall","src":"6304:104:101"},"variableNames":[{"name":"power","nativeSrc":"6295:5:101","nodeType":"YulIdentifier","src":"6295:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"6134:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"6173:4:101","nodeType":"YulTypedName","src":"6173:4:101","type":""},{"name":"exponent","nativeSrc":"6179:8:101","nodeType":"YulTypedName","src":"6179:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"6192:5:101","nodeType":"YulTypedName","src":"6192:5:101","type":""}],"src":"6134:281:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint8(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516112a03803806112a083398101604081905261002f916101f8565b8888888888888888886100466301e13380876102e0565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c58961018d565b6100ce8861018d565b6100d78761018d565b6100e08261018d565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004918255821660e0526040805163313ce56760e01b81529051928c169263313ce567928281019260209291908290030181865afa15801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f9190610307565b61017a90600a61043c565b610100525061044f975050505050505050565b6001600160a01b0381166101b4576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101d2816101b7565b81146101b4575f80fd5b80516101c3816101c9565b806101d2565b80516101c3816101e7565b5f805f805f805f805f6101208a8c031215610214576102145f80fd5b5f61021f8c8c6101dc565b99505060206102308c828d016101dc565b98505060406102418c828d016101dc565b97505060606102528c828d016101ed565b96505060806102638c828d016101ed565b95505060a06102748c828d016101ed565b94505060c06102858c828d016101ed565b93505060e06102968c828d016101dc565b9250506101006102a88c828d016101ed565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f826102ee576102ee6102b8565b500490565b60ff81166101d2565b80516101c3816102f3565b5f6020828403121561031a5761031a5f80fd5b5f61032584846102fc565b949350505050565b80825b600185111561036c5780860481111561034b5761034b6102cc565b600185161561035957908102905b80026103658560011c90565b9450610330565b94509492505050565b5f8261038357506001610435565b8161038f57505f610435565b81600181146103a557600281146103af576103dc565b6001915050610435565b60ff8411156103c0576103c06102cc565b8360020a9150848211156103d6576103d66102cc565b50610435565b5060208310610133831016604e8410600b841016171561040f575081810a8381111561040a5761040a6102cc565b610435565b61041c848484600161032d565b92509050818404811115610432576104326102cc565b81025b9392505050565b5f60ff831692506104355f198484610375565b60805160a05160c05160e05161010051610dd56104cb5f395f818161024501526106ea01525f8181610189015261091401525f81816102750152818161057401526107a701525f8181610139015281816105a101526107d601525f818161020b015281816102b2015281816106bd01526108550152610dd55ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d57806386f23a7514610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109c5565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109f2565b61011e60045481565b61011e61017f366004610a21565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a64565b6101cb6101c6366004610a83565b610360565b005b61011e60025481565b6101cb6101e4366004610aa1565b6103d1565b6101f16104a5565b60405161012b9190610ae3565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610aa1565b61062c565b61011e7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e610756565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816107a3565b9392505050565b5f61032f610756565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816107a3565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108fb565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108fb565b5f5461041f6301e1338084610b19565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109c5565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd610756565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b2c565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f610517610756565b9050600454818311610529578261052b565b815b6105359190610b3f565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109f2565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108fb565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b6040516303d1689d60e11b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a90610712907f0000000000000000000000000000000000000000000000000000000000000000906004016109c5565b602060405180830381865afa15801561072d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190610b5d565b905090565b5f80600354426107669190610b2c565b90505f670de0b6b3a7640000825f546002546107829190610b7b565b61078c9190610b7b565b6107969190610b19565b60025461031f9190610b3f565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081191906109f2565b602060405180830381865afa15801561082c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108509190610b5d565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190610bae565b60ff1690506108e781600a610cd8565b6108f18487610b7b565b6103579190610b19565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061094b9033908690600401610d21565b602060405180830381865afa158015610966573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098a9190610d54565b9050806109b957333083604051634a3fa29360e01b81526004016109b093929190610d72565b60405180910390fd5b5050565b805b82525050565b602081016109d382846109bd565b92915050565b5f6001600160a01b0382166109d3565b6109bf816109d9565b602081016109d382846109e9565b610a09816109d9565b8114610a13575f80fd5b50565b80356109d381610a00565b5f60208284031215610a3457610a345f80fd5b5f610a3f8484610a16565b949350505050565b5f6109d3826109d9565b5f6109d382610a47565b6109bf81610a51565b602081016109d38284610a5b565b80610a09565b80356109d381610a72565b5f60208284031215610a9657610a965f80fd5b5f610a3f8484610a78565b5f8060408385031215610ab557610ab55f80fd5b5f610ac08585610a78565b9250506020610ad185828601610a78565b9150509250929050565b8015156109bf565b602081016109d38284610adb565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b2757610b27610af1565b500490565b818103818111156109d3576109d3610b05565b808201808211156109d3576109d3610b05565b80516109d381610a72565b5f60208284031215610b7057610b705f80fd5b5f610a3f8484610b52565b818102808215838204851417610b9357610b93610b05565b5092915050565b60ff8116610a09565b80516109d381610b9a565b5f60208284031215610bc157610bc15f80fd5b5f610a3f8484610ba3565b80825b6001851115610c0b57808604811115610bea57610bea610b05565b6001851615610bf857908102905b8002610c048560011c90565b9450610bcf565b94509492505050565b5f82610c225750600161031f565b81610c2e57505f61031f565b8160018114610c445760028114610c4e57610c7b565b600191505061031f565b60ff841115610c5f57610c5f610b05565b8360020a915084821115610c7557610c75610b05565b5061031f565b5060208310610133831016604e8410600b8410161715610cae575081810a83811115610ca957610ca9610b05565b61031f565b610cbb8484846001610bcc565b92509050818404811115610cd157610cd1610b05565b0292915050565b5f61031f5f198484610c14565b8281835e505f910152565b5f610cf9825190565b808452602084019350610d10818560208601610ce5565b601f01601f19169290920192915050565b60408101610d2f82856109e9565b8181036020830152610a3f8184610cf0565b801515610a09565b80516109d381610d41565b5f60208284031215610d6757610d675f80fd5b5f610a3f8484610d49565b60608101610d8082866109e9565b610d8d60208301856109e9565b81810360408301526103578184610cf056fea2646970667358221220679da16a2e86bdb8fb0ba394d7bbfa8f4dbeaf8aff49fe7cffd1b51c5d69154a64736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x12A0 CODESIZE SUB DUP1 PUSH2 0x12A0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1F8 JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x2E0 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x18D JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x18D JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x18D JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x18D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 DUP3 SSTORE DUP3 AND PUSH1 0xE0 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH4 0x313CE567 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD SWAP3 DUP13 AND SWAP3 PUSH4 0x313CE567 SWAP3 DUP3 DUP2 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x16F SWAP2 SWAP1 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x17A SWAP1 PUSH1 0xA PUSH2 0x43C JUMP JUMPDEST PUSH2 0x100 MSTORE POP PUSH2 0x44F SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D2 DUP2 PUSH2 0x1B7 JUMP JUMPDEST DUP2 EQ PUSH2 0x1B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x1C3 DUP2 PUSH2 0x1C9 JUMP JUMPDEST DUP1 PUSH2 0x1D2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C3 DUP2 PUSH2 0x1E7 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x214 JUMPI PUSH2 0x214 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x21F DUP13 DUP13 PUSH2 0x1DC JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x230 DUP13 DUP3 DUP14 ADD PUSH2 0x1DC JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x241 DUP13 DUP3 DUP14 ADD PUSH2 0x1DC JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x252 DUP13 DUP3 DUP14 ADD PUSH2 0x1ED JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x263 DUP13 DUP3 DUP14 ADD PUSH2 0x1ED JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x274 DUP13 DUP3 DUP14 ADD PUSH2 0x1ED JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x285 DUP13 DUP3 DUP14 ADD PUSH2 0x1ED JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x296 DUP13 DUP3 DUP14 ADD PUSH2 0x1DC JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x2A8 DUP13 DUP3 DUP14 ADD PUSH2 0x1ED JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x2EE JUMPI PUSH2 0x2EE PUSH2 0x2B8 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x1D2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C3 DUP2 PUSH2 0x2F3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31A JUMPI PUSH2 0x31A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x325 DUP5 DUP5 PUSH2 0x2FC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x36C JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x34B JUMPI PUSH2 0x34B PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x359 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x365 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x330 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x383 JUMPI POP PUSH1 0x1 PUSH2 0x435 JUMP JUMPDEST DUP2 PUSH2 0x38F JUMPI POP PUSH0 PUSH2 0x435 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x3A5 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x3AF JUMPI PUSH2 0x3DC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x435 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x3C0 JUMPI PUSH2 0x3C0 PUSH2 0x2CC JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x3D6 JUMPI PUSH2 0x3D6 PUSH2 0x2CC JUMP JUMPDEST POP PUSH2 0x435 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x40F JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x40A JUMPI PUSH2 0x40A PUSH2 0x2CC JUMP JUMPDEST PUSH2 0x435 JUMP JUMPDEST PUSH2 0x41C DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x32D JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x432 JUMPI PUSH2 0x432 PUSH2 0x2CC JUMP JUMPDEST DUP2 MUL JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP4 AND SWAP3 POP PUSH2 0x435 PUSH0 NOT DUP5 DUP5 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xDD5 PUSH2 0x4CB PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x245 ADD MSTORE PUSH2 0x6EA ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x189 ADD MSTORE PUSH2 0x914 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x275 ADD MSTORE DUP2 DUP2 PUSH2 0x574 ADD MSTORE PUSH2 0x7A7 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x5A1 ADD MSTORE PUSH2 0x7D6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x20B ADD MSTORE DUP2 DUP2 PUSH2 0x2B2 ADD MSTORE DUP2 DUP2 PUSH2 0x6BD ADD MSTORE PUSH2 0x855 ADD MSTORE PUSH2 0xDD5 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x86F23A75 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0xA21 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA64 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA83 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xAA1 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xAA1 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x756 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x7A3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x756 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x7A3 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8FB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xB19 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x756 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB2C JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x756 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB3F JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9F2 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D1689D PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A2D13A SWAP1 PUSH2 0x712 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x751 SWAP2 SWAP1 PUSH2 0xB5D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x766 SWAP2 SWAP1 PUSH2 0xB2C JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x782 SWAP2 SWAP1 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0x78C SWAP2 SWAP1 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0x796 SWAP2 SWAP1 PUSH2 0xB19 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB3F JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x811 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x82C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x850 SWAP2 SWAP1 PUSH2 0xB5D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8B3 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8D7 SWAP2 SWAP1 PUSH2 0xBAE JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8E7 DUP2 PUSH1 0xA PUSH2 0xCD8 JUMP JUMPDEST PUSH2 0x8F1 DUP5 DUP8 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xB19 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x94B SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD21 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x966 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x98A SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9B9 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0x9BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9D3 JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0x9D9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0xA09 DUP2 PUSH2 0x9D9 JUMP JUMPDEST DUP2 EQ PUSH2 0xA13 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9D3 DUP2 PUSH2 0xA00 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA34 JUMPI PUSH2 0xA34 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xA16 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9D3 DUP3 PUSH2 0x9D9 JUMP JUMPDEST PUSH0 PUSH2 0x9D3 DUP3 PUSH2 0xA47 JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0xA51 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0xA5B JUMP JUMPDEST DUP1 PUSH2 0xA09 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9D3 DUP2 PUSH2 0xA72 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA96 JUMPI PUSH2 0xA96 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xA78 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAB5 JUMPI PUSH2 0xAB5 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAC0 DUP6 DUP6 PUSH2 0xA78 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAD1 DUP6 DUP3 DUP7 ADD PUSH2 0xA78 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0xADB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB27 JUMPI PUSH2 0xB27 PUSH2 0xAF1 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9D3 JUMPI PUSH2 0x9D3 PUSH2 0xB05 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9D3 JUMPI PUSH2 0x9D3 PUSH2 0xB05 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9D3 DUP2 PUSH2 0xA72 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB70 JUMPI PUSH2 0xB70 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xB52 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB93 JUMPI PUSH2 0xB93 PUSH2 0xB05 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA09 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9D3 DUP2 PUSH2 0xB9A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBC1 JUMPI PUSH2 0xBC1 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xBA3 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC0B JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBEA JUMPI PUSH2 0xBEA PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBF8 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC04 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBCF JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC22 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC2E JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC44 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC4E JUMPI PUSH2 0xC7B JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC5F JUMPI PUSH2 0xC5F PUSH2 0xB05 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC75 JUMPI PUSH2 0xC75 PUSH2 0xB05 JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCAE JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCA9 JUMPI PUSH2 0xCA9 PUSH2 0xB05 JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xCBB DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBCC JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCD1 JUMPI PUSH2 0xCD1 PUSH2 0xB05 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xC14 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCF9 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD10 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCE5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD2F DUP3 DUP6 PUSH2 0x9E9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA3F DUP2 DUP5 PUSH2 0xCF0 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA09 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9D3 DUP2 PUSH2 0xD41 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD67 JUMPI PUSH2 0xD67 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD80 DUP3 DUP7 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0xD8D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9E9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCF0 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0x9DA16A2E86BDB8FB SIGNEXTEND LOG3 SWAP5 0xD7 0xBB STATICCALL DUP16 0x4D 0xBE 0xAF DUP11 SELFDESTRUCT BLOBHASH INVALID PUSH29 0xFFD1B51C5D69154A64736F6C6343000819003300000000000000000000 ","sourceMap":"306:1260:52:-:0;;;473:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;860:15;889;918;947:16;977:17;1008:30;1052:24;1090:20;1124:12;3527:36:67;408:10:17;947:16:52;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;4469:71;;;;1190:36:52::1;::::0;;-1:-1:-1;;;1190:36:52;;;;:34;;::::1;::::0;::::1;::::0;:36;;::::1;::::0;::::1;::::0;;;;;;;;:34;:36:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1184:42;::::0;:2:::1;:42;:::i;:::-;1161:65;::::0;-1:-1:-1;306:1260:52;;-1:-1:-1;;;;;;;;306:1260:52;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3002:180;-1:-1:-1;;;3047:1:101;3040:88;3147:4;3144:1;3137:15;3171:4;3168:1;3161:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;3471:118::-;3454:4;3443:16;;3542:22;3379:86;3595:139;3675:13;;3697:31;3675:13;3697:31;:::i;3740:347::-;3808:6;3857:2;3845:9;3836:7;3832:23;3828:32;3825:119;;;3863:79;197:1;194;187:12;3863:79;3983:1;4008:62;4062:7;4042:9;4008:62;:::i;:::-;3998:72;3740:347;-1:-1:-1;;;;3740:347:101:o;4201:848::-;4293:6;4317:5;4331:712;4352:1;4342:8;4339:15;4331:712;;;4447:4;4442:3;4438:14;4432:4;4429:24;4426:50;;;4456:18;;:::i;:::-;4506:1;4496:8;4492:16;4489:451;;;4910:16;;;;4489:451;4961:15;;5001:32;5024:8;4179:1;4175:13;;4093:102;5001:32;4989:44;;4331:712;;;4201:848;;;;;;;:::o;5055:1073::-;5109:5;5300:8;5290:40;;-1:-1:-1;5321:1:101;5323:5;;5290:40;5349:4;5339:36;;-1:-1:-1;5366:1:101;5368:5;;5339:36;5435:4;5483:1;5478:27;;;;5519:1;5514:191;;;;5428:277;;5478:27;5496:1;5487:10;;5498:5;;;5514:191;5559:3;5549:8;5546:17;5543:43;;;5566:18;;:::i;:::-;5615:8;5612:1;5608:16;5599:25;;5650:3;5643:5;5640:14;5637:40;;;5657:18;;:::i;:::-;5690:5;;;5428:277;;5814:2;5804:8;5801:16;5795:3;5789:4;5786:13;5782:36;5764:2;5754:8;5751:16;5746:2;5740:4;5737:12;5733:35;5717:111;5714:246;;;-1:-1:-1;5860:19:101;;;5895:14;;;5892:40;;;5912:18;;:::i;:::-;5945:5;;5714:246;5985:42;6023:3;6013:8;6007:4;6004:1;5985:42;:::i;:::-;5970:57;;;;6059:4;6054:3;6050:14;6043:5;6040:25;6037:51;;;6068:18;;:::i;:::-;6106:16;;5055:1073;;;;;;:::o;6134:281::-;6192:5;3454:4;3443:16;;6248:37;;6304:104;-1:-1:-1;;6331:8:101;6325:4;6304:104;:::i;6134:281::-;306:1260:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@ONE_CORRELATED_TOKEN_5088":{"entryPoint":null,"id":5088,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1955,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2299,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1878,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":687,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_5147":{"entryPoint":1700,"id":5147,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1189,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":977,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":864,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1580,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1248,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2582,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3401,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2680,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2898,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2979,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2593,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3412,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2691,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2909,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2721,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2990,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2537,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2779,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2651,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2493,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2546,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3442,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3361,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2787,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2660,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2501,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2879,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2841,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3020,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3288,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3092,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2939,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2860,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2521,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2641,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2631,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3301,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2821,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2801,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2560,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3393,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2674,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2970,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12568:101","nodeType":"YulBlock","src":"0:12568:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5171:152:101","nodeType":"YulBlock","src":"5171:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5188:1:101","nodeType":"YulLiteral","src":"5188:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5191:77:101","nodeType":"YulLiteral","src":"5191:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5181:6:101","nodeType":"YulIdentifier","src":"5181:6:101"},"nativeSrc":"5181:88:101","nodeType":"YulFunctionCall","src":"5181:88:101"},"nativeSrc":"5181:88:101","nodeType":"YulExpressionStatement","src":"5181:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5285:1:101","nodeType":"YulLiteral","src":"5285:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5288:4:101","nodeType":"YulLiteral","src":"5288:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:101","nodeType":"YulIdentifier","src":"5278:6:101"},"nativeSrc":"5278:15:101","nodeType":"YulFunctionCall","src":"5278:15:101"},"nativeSrc":"5278:15:101","nodeType":"YulExpressionStatement","src":"5278:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5309:1:101","nodeType":"YulLiteral","src":"5309:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5312:4:101","nodeType":"YulLiteral","src":"5312:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5302:6:101","nodeType":"YulIdentifier","src":"5302:6:101"},"nativeSrc":"5302:15:101","nodeType":"YulFunctionCall","src":"5302:15:101"},"nativeSrc":"5302:15:101","nodeType":"YulExpressionStatement","src":"5302:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5143:180:101","nodeType":"YulFunctionDefinition","src":"5143:180:101"},{"body":{"nativeSrc":"5357:152:101","nodeType":"YulBlock","src":"5357:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5374:1:101","nodeType":"YulLiteral","src":"5374:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5377:77:101","nodeType":"YulLiteral","src":"5377:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:101","nodeType":"YulIdentifier","src":"5367:6:101"},"nativeSrc":"5367:88:101","nodeType":"YulFunctionCall","src":"5367:88:101"},"nativeSrc":"5367:88:101","nodeType":"YulExpressionStatement","src":"5367:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5471:1:101","nodeType":"YulLiteral","src":"5471:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5474:4:101","nodeType":"YulLiteral","src":"5474:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5464:6:101","nodeType":"YulIdentifier","src":"5464:6:101"},"nativeSrc":"5464:15:101","nodeType":"YulFunctionCall","src":"5464:15:101"},"nativeSrc":"5464:15:101","nodeType":"YulExpressionStatement","src":"5464:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5495:1:101","nodeType":"YulLiteral","src":"5495:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5498:4:101","nodeType":"YulLiteral","src":"5498:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5488:6:101","nodeType":"YulIdentifier","src":"5488:6:101"},"nativeSrc":"5488:15:101","nodeType":"YulFunctionCall","src":"5488:15:101"},"nativeSrc":"5488:15:101","nodeType":"YulExpressionStatement","src":"5488:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5329:180:101","nodeType":"YulFunctionDefinition","src":"5329:180:101"},{"body":{"nativeSrc":"5557:143:101","nodeType":"YulBlock","src":"5557:143:101","statements":[{"nativeSrc":"5567:25:101","nodeType":"YulAssignment","src":"5567:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5590:1:101","nodeType":"YulIdentifier","src":"5590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5572:17:101","nodeType":"YulIdentifier","src":"5572:17:101"},"nativeSrc":"5572:20:101","nodeType":"YulFunctionCall","src":"5572:20:101"},"variableNames":[{"name":"x","nativeSrc":"5567:1:101","nodeType":"YulIdentifier","src":"5567:1:101"}]},{"nativeSrc":"5601:25:101","nodeType":"YulAssignment","src":"5601:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5624:1:101","nodeType":"YulIdentifier","src":"5624:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5606:17:101","nodeType":"YulIdentifier","src":"5606:17:101"},"nativeSrc":"5606:20:101","nodeType":"YulFunctionCall","src":"5606:20:101"},"variableNames":[{"name":"y","nativeSrc":"5601:1:101","nodeType":"YulIdentifier","src":"5601:1:101"}]},{"body":{"nativeSrc":"5648:22:101","nodeType":"YulBlock","src":"5648:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"5650:16:101","nodeType":"YulIdentifier","src":"5650:16:101"},"nativeSrc":"5650:18:101","nodeType":"YulFunctionCall","src":"5650:18:101"},"nativeSrc":"5650:18:101","nodeType":"YulExpressionStatement","src":"5650:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"5645:1:101","nodeType":"YulIdentifier","src":"5645:1:101"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:101","nodeType":"YulIdentifier","src":"5638:6:101"},"nativeSrc":"5638:9:101","nodeType":"YulFunctionCall","src":"5638:9:101"},"nativeSrc":"5635:35:101","nodeType":"YulIf","src":"5635:35:101"},{"nativeSrc":"5680:14:101","nodeType":"YulAssignment","src":"5680:14:101","value":{"arguments":[{"name":"x","nativeSrc":"5689:1:101","nodeType":"YulIdentifier","src":"5689:1:101"},{"name":"y","nativeSrc":"5692:1:101","nodeType":"YulIdentifier","src":"5692:1:101"}],"functionName":{"name":"div","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"},"nativeSrc":"5685:9:101","nodeType":"YulFunctionCall","src":"5685:9:101"},"variableNames":[{"name":"r","nativeSrc":"5680:1:101","nodeType":"YulIdentifier","src":"5680:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"5515:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5546:1:101","nodeType":"YulTypedName","src":"5546:1:101","type":""},{"name":"y","nativeSrc":"5549:1:101","nodeType":"YulTypedName","src":"5549:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"5555:1:101","nodeType":"YulTypedName","src":"5555:1:101","type":""}],"src":"5515:185:101"},{"body":{"nativeSrc":"5751:149:101","nodeType":"YulBlock","src":"5751:149:101","statements":[{"nativeSrc":"5761:25:101","nodeType":"YulAssignment","src":"5761:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5784:1:101","nodeType":"YulIdentifier","src":"5784:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5766:17:101","nodeType":"YulIdentifier","src":"5766:17:101"},"nativeSrc":"5766:20:101","nodeType":"YulFunctionCall","src":"5766:20:101"},"variableNames":[{"name":"x","nativeSrc":"5761:1:101","nodeType":"YulIdentifier","src":"5761:1:101"}]},{"nativeSrc":"5795:25:101","nodeType":"YulAssignment","src":"5795:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5818:1:101","nodeType":"YulIdentifier","src":"5818:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5800:17:101","nodeType":"YulIdentifier","src":"5800:17:101"},"nativeSrc":"5800:20:101","nodeType":"YulFunctionCall","src":"5800:20:101"},"variableNames":[{"name":"y","nativeSrc":"5795:1:101","nodeType":"YulIdentifier","src":"5795:1:101"}]},{"nativeSrc":"5829:17:101","nodeType":"YulAssignment","src":"5829:17:101","value":{"arguments":[{"name":"x","nativeSrc":"5841:1:101","nodeType":"YulIdentifier","src":"5841:1:101"},{"name":"y","nativeSrc":"5844:1:101","nodeType":"YulIdentifier","src":"5844:1:101"}],"functionName":{"name":"sub","nativeSrc":"5837:3:101","nodeType":"YulIdentifier","src":"5837:3:101"},"nativeSrc":"5837:9:101","nodeType":"YulFunctionCall","src":"5837:9:101"},"variableNames":[{"name":"diff","nativeSrc":"5829:4:101","nodeType":"YulIdentifier","src":"5829:4:101"}]},{"body":{"nativeSrc":"5871:22:101","nodeType":"YulBlock","src":"5871:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5873:16:101","nodeType":"YulIdentifier","src":"5873:16:101"},"nativeSrc":"5873:18:101","nodeType":"YulFunctionCall","src":"5873:18:101"},"nativeSrc":"5873:18:101","nodeType":"YulExpressionStatement","src":"5873:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"5862:4:101","nodeType":"YulIdentifier","src":"5862:4:101"},{"name":"x","nativeSrc":"5868:1:101","nodeType":"YulIdentifier","src":"5868:1:101"}],"functionName":{"name":"gt","nativeSrc":"5859:2:101","nodeType":"YulIdentifier","src":"5859:2:101"},"nativeSrc":"5859:11:101","nodeType":"YulFunctionCall","src":"5859:11:101"},"nativeSrc":"5856:37:101","nodeType":"YulIf","src":"5856:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"5706:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5737:1:101","nodeType":"YulTypedName","src":"5737:1:101","type":""},{"name":"y","nativeSrc":"5740:1:101","nodeType":"YulTypedName","src":"5740:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5746:4:101","nodeType":"YulTypedName","src":"5746:4:101","type":""}],"src":"5706:194:101"},{"body":{"nativeSrc":"5950:147:101","nodeType":"YulBlock","src":"5950:147:101","statements":[{"nativeSrc":"5960:25:101","nodeType":"YulAssignment","src":"5960:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5983:1:101","nodeType":"YulIdentifier","src":"5983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5965:17:101","nodeType":"YulIdentifier","src":"5965:17:101"},"nativeSrc":"5965:20:101","nodeType":"YulFunctionCall","src":"5965:20:101"},"variableNames":[{"name":"x","nativeSrc":"5960:1:101","nodeType":"YulIdentifier","src":"5960:1:101"}]},{"nativeSrc":"5994:25:101","nodeType":"YulAssignment","src":"5994:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6017:1:101","nodeType":"YulIdentifier","src":"6017:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5999:17:101","nodeType":"YulIdentifier","src":"5999:17:101"},"nativeSrc":"5999:20:101","nodeType":"YulFunctionCall","src":"5999:20:101"},"variableNames":[{"name":"y","nativeSrc":"5994:1:101","nodeType":"YulIdentifier","src":"5994:1:101"}]},{"nativeSrc":"6028:16:101","nodeType":"YulAssignment","src":"6028:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6039:1:101","nodeType":"YulIdentifier","src":"6039:1:101"},{"name":"y","nativeSrc":"6042:1:101","nodeType":"YulIdentifier","src":"6042:1:101"}],"functionName":{"name":"add","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},"nativeSrc":"6035:9:101","nodeType":"YulFunctionCall","src":"6035:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"}]},{"body":{"nativeSrc":"6068:22:101","nodeType":"YulBlock","src":"6068:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6070:16:101","nodeType":"YulIdentifier","src":"6070:16:101"},"nativeSrc":"6070:18:101","nodeType":"YulFunctionCall","src":"6070:18:101"},"nativeSrc":"6070:18:101","nodeType":"YulExpressionStatement","src":"6070:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6060:1:101","nodeType":"YulIdentifier","src":"6060:1:101"},{"name":"sum","nativeSrc":"6063:3:101","nodeType":"YulIdentifier","src":"6063:3:101"}],"functionName":{"name":"gt","nativeSrc":"6057:2:101","nodeType":"YulIdentifier","src":"6057:2:101"},"nativeSrc":"6057:10:101","nodeType":"YulFunctionCall","src":"6057:10:101"},"nativeSrc":"6054:36:101","nodeType":"YulIf","src":"6054:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"5906:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5937:1:101","nodeType":"YulTypedName","src":"5937:1:101","type":""},{"name":"y","nativeSrc":"5940:1:101","nodeType":"YulTypedName","src":"5940:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5946:3:101","nodeType":"YulTypedName","src":"5946:3:101","type":""}],"src":"5906:191:101"},{"body":{"nativeSrc":"6166:80:101","nodeType":"YulBlock","src":"6166:80:101","statements":[{"nativeSrc":"6176:22:101","nodeType":"YulAssignment","src":"6176:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6191:6:101","nodeType":"YulIdentifier","src":"6191:6:101"}],"functionName":{"name":"mload","nativeSrc":"6185:5:101","nodeType":"YulIdentifier","src":"6185:5:101"},"nativeSrc":"6185:13:101","nodeType":"YulFunctionCall","src":"6185:13:101"},"variableNames":[{"name":"value","nativeSrc":"6176:5:101","nodeType":"YulIdentifier","src":"6176:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6234:5:101","nodeType":"YulIdentifier","src":"6234:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6207:26:101","nodeType":"YulIdentifier","src":"6207:26:101"},"nativeSrc":"6207:33:101","nodeType":"YulFunctionCall","src":"6207:33:101"},"nativeSrc":"6207:33:101","nodeType":"YulExpressionStatement","src":"6207:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6103:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6144:6:101","nodeType":"YulTypedName","src":"6144:6:101","type":""},{"name":"end","nativeSrc":"6152:3:101","nodeType":"YulTypedName","src":"6152:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6160:5:101","nodeType":"YulTypedName","src":"6160:5:101","type":""}],"src":"6103:143:101"},{"body":{"nativeSrc":"6329:274:101","nodeType":"YulBlock","src":"6329:274:101","statements":[{"body":{"nativeSrc":"6375:83:101","nodeType":"YulBlock","src":"6375:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6377:77:101","nodeType":"YulIdentifier","src":"6377:77:101"},"nativeSrc":"6377:79:101","nodeType":"YulFunctionCall","src":"6377:79:101"},"nativeSrc":"6377:79:101","nodeType":"YulExpressionStatement","src":"6377:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6350:7:101","nodeType":"YulIdentifier","src":"6350:7:101"},{"name":"headStart","nativeSrc":"6359:9:101","nodeType":"YulIdentifier","src":"6359:9:101"}],"functionName":{"name":"sub","nativeSrc":"6346:3:101","nodeType":"YulIdentifier","src":"6346:3:101"},"nativeSrc":"6346:23:101","nodeType":"YulFunctionCall","src":"6346:23:101"},{"kind":"number","nativeSrc":"6371:2:101","nodeType":"YulLiteral","src":"6371:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6342:3:101","nodeType":"YulIdentifier","src":"6342:3:101"},"nativeSrc":"6342:32:101","nodeType":"YulFunctionCall","src":"6342:32:101"},"nativeSrc":"6339:119:101","nodeType":"YulIf","src":"6339:119:101"},{"nativeSrc":"6468:128:101","nodeType":"YulBlock","src":"6468:128:101","statements":[{"nativeSrc":"6483:15:101","nodeType":"YulVariableDeclaration","src":"6483:15:101","value":{"kind":"number","nativeSrc":"6497:1:101","nodeType":"YulLiteral","src":"6497:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6487:6:101","nodeType":"YulTypedName","src":"6487:6:101","type":""}]},{"nativeSrc":"6512:74:101","nodeType":"YulAssignment","src":"6512:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6558:9:101","nodeType":"YulIdentifier","src":"6558:9:101"},{"name":"offset","nativeSrc":"6569:6:101","nodeType":"YulIdentifier","src":"6569:6:101"}],"functionName":{"name":"add","nativeSrc":"6554:3:101","nodeType":"YulIdentifier","src":"6554:3:101"},"nativeSrc":"6554:22:101","nodeType":"YulFunctionCall","src":"6554:22:101"},{"name":"dataEnd","nativeSrc":"6578:7:101","nodeType":"YulIdentifier","src":"6578:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6522:31:101","nodeType":"YulIdentifier","src":"6522:31:101"},"nativeSrc":"6522:64:101","nodeType":"YulFunctionCall","src":"6522:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6512:6:101","nodeType":"YulIdentifier","src":"6512:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6252:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6299:9:101","nodeType":"YulTypedName","src":"6299:9:101","type":""},{"name":"dataEnd","nativeSrc":"6310:7:101","nodeType":"YulTypedName","src":"6310:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6322:6:101","nodeType":"YulTypedName","src":"6322:6:101","type":""}],"src":"6252:351:101"},{"body":{"nativeSrc":"6657:362:101","nodeType":"YulBlock","src":"6657:362:101","statements":[{"nativeSrc":"6667:25:101","nodeType":"YulAssignment","src":"6667:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6690:1:101","nodeType":"YulIdentifier","src":"6690:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6672:17:101","nodeType":"YulIdentifier","src":"6672:17:101"},"nativeSrc":"6672:20:101","nodeType":"YulFunctionCall","src":"6672:20:101"},"variableNames":[{"name":"x","nativeSrc":"6667:1:101","nodeType":"YulIdentifier","src":"6667:1:101"}]},{"nativeSrc":"6701:25:101","nodeType":"YulAssignment","src":"6701:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6724:1:101","nodeType":"YulIdentifier","src":"6724:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6706:17:101","nodeType":"YulIdentifier","src":"6706:17:101"},"nativeSrc":"6706:20:101","nodeType":"YulFunctionCall","src":"6706:20:101"},"variableNames":[{"name":"y","nativeSrc":"6701:1:101","nodeType":"YulIdentifier","src":"6701:1:101"}]},{"nativeSrc":"6735:28:101","nodeType":"YulVariableDeclaration","src":"6735:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6758:1:101","nodeType":"YulIdentifier","src":"6758:1:101"},{"name":"y","nativeSrc":"6761:1:101","nodeType":"YulIdentifier","src":"6761:1:101"}],"functionName":{"name":"mul","nativeSrc":"6754:3:101","nodeType":"YulIdentifier","src":"6754:3:101"},"nativeSrc":"6754:9:101","nodeType":"YulFunctionCall","src":"6754:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6739:11:101","nodeType":"YulTypedName","src":"6739:11:101","type":""}]},{"nativeSrc":"6772:41:101","nodeType":"YulAssignment","src":"6772:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6801:11:101","nodeType":"YulIdentifier","src":"6801:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6783:17:101","nodeType":"YulIdentifier","src":"6783:17:101"},"nativeSrc":"6783:30:101","nodeType":"YulFunctionCall","src":"6783:30:101"},"variableNames":[{"name":"product","nativeSrc":"6772:7:101","nodeType":"YulIdentifier","src":"6772:7:101"}]},{"body":{"nativeSrc":"6990:22:101","nodeType":"YulBlock","src":"6990:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6992:16:101","nodeType":"YulIdentifier","src":"6992:16:101"},"nativeSrc":"6992:18:101","nodeType":"YulFunctionCall","src":"6992:18:101"},"nativeSrc":"6992:18:101","nodeType":"YulExpressionStatement","src":"6992:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6923:1:101","nodeType":"YulIdentifier","src":"6923:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6916:6:101","nodeType":"YulIdentifier","src":"6916:6:101"},"nativeSrc":"6916:9:101","nodeType":"YulFunctionCall","src":"6916:9:101"},{"arguments":[{"name":"y","nativeSrc":"6946:1:101","nodeType":"YulIdentifier","src":"6946:1:101"},{"arguments":[{"name":"product","nativeSrc":"6953:7:101","nodeType":"YulIdentifier","src":"6953:7:101"},{"name":"x","nativeSrc":"6962:1:101","nodeType":"YulIdentifier","src":"6962:1:101"}],"functionName":{"name":"div","nativeSrc":"6949:3:101","nodeType":"YulIdentifier","src":"6949:3:101"},"nativeSrc":"6949:15:101","nodeType":"YulFunctionCall","src":"6949:15:101"}],"functionName":{"name":"eq","nativeSrc":"6943:2:101","nodeType":"YulIdentifier","src":"6943:2:101"},"nativeSrc":"6943:22:101","nodeType":"YulFunctionCall","src":"6943:22:101"}],"functionName":{"name":"or","nativeSrc":"6896:2:101","nodeType":"YulIdentifier","src":"6896:2:101"},"nativeSrc":"6896:83:101","nodeType":"YulFunctionCall","src":"6896:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6876:6:101","nodeType":"YulIdentifier","src":"6876:6:101"},"nativeSrc":"6876:113:101","nodeType":"YulFunctionCall","src":"6876:113:101"},"nativeSrc":"6873:139:101","nodeType":"YulIf","src":"6873:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"6609:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6640:1:101","nodeType":"YulTypedName","src":"6640:1:101","type":""},{"name":"y","nativeSrc":"6643:1:101","nodeType":"YulTypedName","src":"6643:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6649:7:101","nodeType":"YulTypedName","src":"6649:7:101","type":""}],"src":"6609:410:101"},{"body":{"nativeSrc":"7068:43:101","nodeType":"YulBlock","src":"7068:43:101","statements":[{"nativeSrc":"7078:27:101","nodeType":"YulAssignment","src":"7078:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7093:5:101","nodeType":"YulIdentifier","src":"7093:5:101"},{"kind":"number","nativeSrc":"7100:4:101","nodeType":"YulLiteral","src":"7100:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7089:3:101","nodeType":"YulIdentifier","src":"7089:3:101"},"nativeSrc":"7089:16:101","nodeType":"YulFunctionCall","src":"7089:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7078:7:101","nodeType":"YulIdentifier","src":"7078:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7025:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7050:5:101","nodeType":"YulTypedName","src":"7050:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7060:7:101","nodeType":"YulTypedName","src":"7060:7:101","type":""}],"src":"7025:86:101"},{"body":{"nativeSrc":"7158:77:101","nodeType":"YulBlock","src":"7158:77:101","statements":[{"body":{"nativeSrc":"7213:16:101","nodeType":"YulBlock","src":"7213:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7222:1:101","nodeType":"YulLiteral","src":"7222:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7225:1:101","nodeType":"YulLiteral","src":"7225:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7215:6:101","nodeType":"YulIdentifier","src":"7215:6:101"},"nativeSrc":"7215:12:101","nodeType":"YulFunctionCall","src":"7215:12:101"},"nativeSrc":"7215:12:101","nodeType":"YulExpressionStatement","src":"7215:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7181:5:101","nodeType":"YulIdentifier","src":"7181:5:101"},{"arguments":[{"name":"value","nativeSrc":"7204:5:101","nodeType":"YulIdentifier","src":"7204:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7188:15:101","nodeType":"YulIdentifier","src":"7188:15:101"},"nativeSrc":"7188:22:101","nodeType":"YulFunctionCall","src":"7188:22:101"}],"functionName":{"name":"eq","nativeSrc":"7178:2:101","nodeType":"YulIdentifier","src":"7178:2:101"},"nativeSrc":"7178:33:101","nodeType":"YulFunctionCall","src":"7178:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7171:6:101","nodeType":"YulIdentifier","src":"7171:6:101"},"nativeSrc":"7171:41:101","nodeType":"YulFunctionCall","src":"7171:41:101"},"nativeSrc":"7168:61:101","nodeType":"YulIf","src":"7168:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7117:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7151:5:101","nodeType":"YulTypedName","src":"7151:5:101","type":""}],"src":"7117:118:101"},{"body":{"nativeSrc":"7302:78:101","nodeType":"YulBlock","src":"7302:78:101","statements":[{"nativeSrc":"7312:22:101","nodeType":"YulAssignment","src":"7312:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7327:6:101","nodeType":"YulIdentifier","src":"7327:6:101"}],"functionName":{"name":"mload","nativeSrc":"7321:5:101","nodeType":"YulIdentifier","src":"7321:5:101"},"nativeSrc":"7321:13:101","nodeType":"YulFunctionCall","src":"7321:13:101"},"variableNames":[{"name":"value","nativeSrc":"7312:5:101","nodeType":"YulIdentifier","src":"7312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7368:5:101","nodeType":"YulIdentifier","src":"7368:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7343:24:101","nodeType":"YulIdentifier","src":"7343:24:101"},"nativeSrc":"7343:31:101","nodeType":"YulFunctionCall","src":"7343:31:101"},"nativeSrc":"7343:31:101","nodeType":"YulExpressionStatement","src":"7343:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7241:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7280:6:101","nodeType":"YulTypedName","src":"7280:6:101","type":""},{"name":"end","nativeSrc":"7288:3:101","nodeType":"YulTypedName","src":"7288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7296:5:101","nodeType":"YulTypedName","src":"7296:5:101","type":""}],"src":"7241:139:101"},{"body":{"nativeSrc":"7461:272:101","nodeType":"YulBlock","src":"7461:272:101","statements":[{"body":{"nativeSrc":"7507:83:101","nodeType":"YulBlock","src":"7507:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7509:77:101","nodeType":"YulIdentifier","src":"7509:77:101"},"nativeSrc":"7509:79:101","nodeType":"YulFunctionCall","src":"7509:79:101"},"nativeSrc":"7509:79:101","nodeType":"YulExpressionStatement","src":"7509:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7482:7:101","nodeType":"YulIdentifier","src":"7482:7:101"},{"name":"headStart","nativeSrc":"7491:9:101","nodeType":"YulIdentifier","src":"7491:9:101"}],"functionName":{"name":"sub","nativeSrc":"7478:3:101","nodeType":"YulIdentifier","src":"7478:3:101"},"nativeSrc":"7478:23:101","nodeType":"YulFunctionCall","src":"7478:23:101"},{"kind":"number","nativeSrc":"7503:2:101","nodeType":"YulLiteral","src":"7503:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7474:3:101","nodeType":"YulIdentifier","src":"7474:3:101"},"nativeSrc":"7474:32:101","nodeType":"YulFunctionCall","src":"7474:32:101"},"nativeSrc":"7471:119:101","nodeType":"YulIf","src":"7471:119:101"},{"nativeSrc":"7600:126:101","nodeType":"YulBlock","src":"7600:126:101","statements":[{"nativeSrc":"7615:15:101","nodeType":"YulVariableDeclaration","src":"7615:15:101","value":{"kind":"number","nativeSrc":"7629:1:101","nodeType":"YulLiteral","src":"7629:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7619:6:101","nodeType":"YulTypedName","src":"7619:6:101","type":""}]},{"nativeSrc":"7644:72:101","nodeType":"YulAssignment","src":"7644:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:101","nodeType":"YulIdentifier","src":"7688:9:101"},{"name":"offset","nativeSrc":"7699:6:101","nodeType":"YulIdentifier","src":"7699:6:101"}],"functionName":{"name":"add","nativeSrc":"7684:3:101","nodeType":"YulIdentifier","src":"7684:3:101"},"nativeSrc":"7684:22:101","nodeType":"YulFunctionCall","src":"7684:22:101"},{"name":"dataEnd","nativeSrc":"7708:7:101","nodeType":"YulIdentifier","src":"7708:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7654:29:101","nodeType":"YulIdentifier","src":"7654:29:101"},"nativeSrc":"7654:62:101","nodeType":"YulFunctionCall","src":"7654:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7644:6:101","nodeType":"YulIdentifier","src":"7644:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7386:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7431:9:101","nodeType":"YulTypedName","src":"7431:9:101","type":""},{"name":"dataEnd","nativeSrc":"7442:7:101","nodeType":"YulTypedName","src":"7442:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7454:6:101","nodeType":"YulTypedName","src":"7454:6:101","type":""}],"src":"7386:347:101"},{"body":{"nativeSrc":"7790:51:101","nodeType":"YulBlock","src":"7790:51:101","statements":[{"nativeSrc":"7800:34:101","nodeType":"YulAssignment","src":"7800:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7825:1:101","nodeType":"YulLiteral","src":"7825:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7828:5:101","nodeType":"YulIdentifier","src":"7828:5:101"}],"functionName":{"name":"shr","nativeSrc":"7821:3:101","nodeType":"YulIdentifier","src":"7821:3:101"},"nativeSrc":"7821:13:101","nodeType":"YulFunctionCall","src":"7821:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7800:8:101","nodeType":"YulIdentifier","src":"7800:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7739:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7771:5:101","nodeType":"YulTypedName","src":"7771:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7781:8:101","nodeType":"YulTypedName","src":"7781:8:101","type":""}],"src":"7739:102:101"},{"body":{"nativeSrc":"7920:775:101","nodeType":"YulBlock","src":"7920:775:101","statements":[{"nativeSrc":"7930:15:101","nodeType":"YulAssignment","src":"7930:15:101","value":{"name":"_power","nativeSrc":"7939:6:101","nodeType":"YulIdentifier","src":"7939:6:101"},"variableNames":[{"name":"power","nativeSrc":"7930:5:101","nodeType":"YulIdentifier","src":"7930:5:101"}]},{"nativeSrc":"7954:14:101","nodeType":"YulAssignment","src":"7954:14:101","value":{"name":"_base","nativeSrc":"7963:5:101","nodeType":"YulIdentifier","src":"7963:5:101"},"variableNames":[{"name":"base","nativeSrc":"7954:4:101","nodeType":"YulIdentifier","src":"7954:4:101"}]},{"body":{"nativeSrc":"8012:677:101","nodeType":"YulBlock","src":"8012:677:101","statements":[{"body":{"nativeSrc":"8100:22:101","nodeType":"YulBlock","src":"8100:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8102:16:101","nodeType":"YulIdentifier","src":"8102:16:101"},"nativeSrc":"8102:18:101","nodeType":"YulFunctionCall","src":"8102:18:101"},"nativeSrc":"8102:18:101","nodeType":"YulExpressionStatement","src":"8102:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8078:4:101","nodeType":"YulIdentifier","src":"8078:4:101"},{"arguments":[{"name":"max","nativeSrc":"8088:3:101","nodeType":"YulIdentifier","src":"8088:3:101"},{"name":"base","nativeSrc":"8093:4:101","nodeType":"YulIdentifier","src":"8093:4:101"}],"functionName":{"name":"div","nativeSrc":"8084:3:101","nodeType":"YulIdentifier","src":"8084:3:101"},"nativeSrc":"8084:14:101","nodeType":"YulFunctionCall","src":"8084:14:101"}],"functionName":{"name":"gt","nativeSrc":"8075:2:101","nodeType":"YulIdentifier","src":"8075:2:101"},"nativeSrc":"8075:24:101","nodeType":"YulFunctionCall","src":"8075:24:101"},"nativeSrc":"8072:50:101","nodeType":"YulIf","src":"8072:50:101"},{"body":{"nativeSrc":"8167:419:101","nodeType":"YulBlock","src":"8167:419:101","statements":[{"nativeSrc":"8547:25:101","nodeType":"YulAssignment","src":"8547:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},{"name":"base","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"mul","nativeSrc":"8556:3:101","nodeType":"YulIdentifier","src":"8556:3:101"},"nativeSrc":"8556:16:101","nodeType":"YulFunctionCall","src":"8556:16:101"},"variableNames":[{"name":"power","nativeSrc":"8547:5:101","nodeType":"YulIdentifier","src":"8547:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8142:8:101","nodeType":"YulIdentifier","src":"8142:8:101"},{"kind":"number","nativeSrc":"8152:1:101","nodeType":"YulLiteral","src":"8152:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8138:3:101","nodeType":"YulIdentifier","src":"8138:3:101"},"nativeSrc":"8138:16:101","nodeType":"YulFunctionCall","src":"8138:16:101"},"nativeSrc":"8135:451:101","nodeType":"YulIf","src":"8135:451:101"},{"nativeSrc":"8599:23:101","nodeType":"YulAssignment","src":"8599:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8611:4:101","nodeType":"YulIdentifier","src":"8611:4:101"},{"name":"base","nativeSrc":"8617:4:101","nodeType":"YulIdentifier","src":"8617:4:101"}],"functionName":{"name":"mul","nativeSrc":"8607:3:101","nodeType":"YulIdentifier","src":"8607:3:101"},"nativeSrc":"8607:15:101","nodeType":"YulFunctionCall","src":"8607:15:101"},"variableNames":[{"name":"base","nativeSrc":"8599:4:101","nodeType":"YulIdentifier","src":"8599:4:101"}]},{"nativeSrc":"8635:44:101","nodeType":"YulAssignment","src":"8635:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8670:8:101","nodeType":"YulIdentifier","src":"8670:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8647:22:101","nodeType":"YulIdentifier","src":"8647:22:101"},"nativeSrc":"8647:32:101","nodeType":"YulFunctionCall","src":"8647:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8635:8:101","nodeType":"YulIdentifier","src":"8635:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7988:8:101","nodeType":"YulIdentifier","src":"7988:8:101"},{"kind":"number","nativeSrc":"7998:1:101","nodeType":"YulLiteral","src":"7998:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7985:2:101","nodeType":"YulIdentifier","src":"7985:2:101"},"nativeSrc":"7985:15:101","nodeType":"YulFunctionCall","src":"7985:15:101"},"nativeSrc":"7977:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8001:2:101","nodeType":"YulBlock","src":"8001:2:101","statements":[]},"pre":{"nativeSrc":"7981:3:101","nodeType":"YulBlock","src":"7981:3:101","statements":[]},"src":"7977:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7847:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7875:6:101","nodeType":"YulTypedName","src":"7875:6:101","type":""},{"name":"_base","nativeSrc":"7883:5:101","nodeType":"YulTypedName","src":"7883:5:101","type":""},{"name":"exponent","nativeSrc":"7890:8:101","nodeType":"YulTypedName","src":"7890:8:101","type":""},{"name":"max","nativeSrc":"7900:3:101","nodeType":"YulTypedName","src":"7900:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7908:5:101","nodeType":"YulTypedName","src":"7908:5:101","type":""},{"name":"base","nativeSrc":"7915:4:101","nodeType":"YulTypedName","src":"7915:4:101","type":""}],"src":"7847:848:101"},{"body":{"nativeSrc":"8761:1013:101","nodeType":"YulBlock","src":"8761:1013:101","statements":[{"body":{"nativeSrc":"8956:20:101","nodeType":"YulBlock","src":"8956:20:101","statements":[{"nativeSrc":"8958:10:101","nodeType":"YulAssignment","src":"8958:10:101","value":{"kind":"number","nativeSrc":"8967:1:101","nodeType":"YulLiteral","src":"8967:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8958:5:101","nodeType":"YulIdentifier","src":"8958:5:101"}]},{"nativeSrc":"8969:5:101","nodeType":"YulLeave","src":"8969:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8946:8:101","nodeType":"YulIdentifier","src":"8946:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8939:6:101","nodeType":"YulIdentifier","src":"8939:6:101"},"nativeSrc":"8939:16:101","nodeType":"YulFunctionCall","src":"8939:16:101"},"nativeSrc":"8936:40:101","nodeType":"YulIf","src":"8936:40:101"},{"body":{"nativeSrc":"9001:20:101","nodeType":"YulBlock","src":"9001:20:101","statements":[{"nativeSrc":"9003:10:101","nodeType":"YulAssignment","src":"9003:10:101","value":{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9003:5:101","nodeType":"YulIdentifier","src":"9003:5:101"}]},{"nativeSrc":"9014:5:101","nodeType":"YulLeave","src":"9014:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8995:4:101","nodeType":"YulIdentifier","src":"8995:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8988:6:101","nodeType":"YulIdentifier","src":"8988:6:101"},"nativeSrc":"8988:12:101","nodeType":"YulFunctionCall","src":"8988:12:101"},"nativeSrc":"8985:36:101","nodeType":"YulIf","src":"8985:36:101"},{"cases":[{"body":{"nativeSrc":"9131:20:101","nodeType":"YulBlock","src":"9131:20:101","statements":[{"nativeSrc":"9133:10:101","nodeType":"YulAssignment","src":"9133:10:101","value":{"kind":"number","nativeSrc":"9142:1:101","nodeType":"YulLiteral","src":"9142:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9133:5:101","nodeType":"YulIdentifier","src":"9133:5:101"}]},{"nativeSrc":"9144:5:101","nodeType":"YulLeave","src":"9144:5:101"}]},"nativeSrc":"9124:27:101","nodeType":"YulCase","src":"9124:27:101","value":{"kind":"number","nativeSrc":"9129:1:101","nodeType":"YulLiteral","src":"9129:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9175:176:101","nodeType":"YulBlock","src":"9175:176:101","statements":[{"body":{"nativeSrc":"9210:22:101","nodeType":"YulBlock","src":"9210:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9212:16:101","nodeType":"YulIdentifier","src":"9212:16:101"},"nativeSrc":"9212:18:101","nodeType":"YulFunctionCall","src":"9212:18:101"},"nativeSrc":"9212:18:101","nodeType":"YulExpressionStatement","src":"9212:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9195:8:101","nodeType":"YulIdentifier","src":"9195:8:101"},{"kind":"number","nativeSrc":"9205:3:101","nodeType":"YulLiteral","src":"9205:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9192:2:101","nodeType":"YulIdentifier","src":"9192:2:101"},"nativeSrc":"9192:17:101","nodeType":"YulFunctionCall","src":"9192:17:101"},"nativeSrc":"9189:43:101","nodeType":"YulIf","src":"9189:43:101"},{"nativeSrc":"9245:25:101","nodeType":"YulAssignment","src":"9245:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9258:1:101","nodeType":"YulLiteral","src":"9258:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9261:8:101","nodeType":"YulIdentifier","src":"9261:8:101"}],"functionName":{"name":"exp","nativeSrc":"9254:3:101","nodeType":"YulIdentifier","src":"9254:3:101"},"nativeSrc":"9254:16:101","nodeType":"YulFunctionCall","src":"9254:16:101"},"variableNames":[{"name":"power","nativeSrc":"9245:5:101","nodeType":"YulIdentifier","src":"9245:5:101"}]},{"body":{"nativeSrc":"9301:22:101","nodeType":"YulBlock","src":"9301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9303:16:101","nodeType":"YulIdentifier","src":"9303:16:101"},"nativeSrc":"9303:18:101","nodeType":"YulFunctionCall","src":"9303:18:101"},"nativeSrc":"9303:18:101","nodeType":"YulExpressionStatement","src":"9303:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9289:5:101","nodeType":"YulIdentifier","src":"9289:5:101"},{"name":"max","nativeSrc":"9296:3:101","nodeType":"YulIdentifier","src":"9296:3:101"}],"functionName":{"name":"gt","nativeSrc":"9286:2:101","nodeType":"YulIdentifier","src":"9286:2:101"},"nativeSrc":"9286:14:101","nodeType":"YulFunctionCall","src":"9286:14:101"},"nativeSrc":"9283:40:101","nodeType":"YulIf","src":"9283:40:101"},{"nativeSrc":"9336:5:101","nodeType":"YulLeave","src":"9336:5:101"}]},"nativeSrc":"9160:191:101","nodeType":"YulCase","src":"9160:191:101","value":{"kind":"number","nativeSrc":"9165:1:101","nodeType":"YulLiteral","src":"9165:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9081:4:101","nodeType":"YulIdentifier","src":"9081:4:101"},"nativeSrc":"9074:277:101","nodeType":"YulSwitch","src":"9074:277:101"},{"body":{"nativeSrc":"9483:123:101","nodeType":"YulBlock","src":"9483:123:101","statements":[{"nativeSrc":"9497:28:101","nodeType":"YulAssignment","src":"9497:28:101","value":{"arguments":[{"name":"base","nativeSrc":"9510:4:101","nodeType":"YulIdentifier","src":"9510:4:101"},{"name":"exponent","nativeSrc":"9516:8:101","nodeType":"YulIdentifier","src":"9516:8:101"}],"functionName":{"name":"exp","nativeSrc":"9506:3:101","nodeType":"YulIdentifier","src":"9506:3:101"},"nativeSrc":"9506:19:101","nodeType":"YulFunctionCall","src":"9506:19:101"},"variableNames":[{"name":"power","nativeSrc":"9497:5:101","nodeType":"YulIdentifier","src":"9497:5:101"}]},{"body":{"nativeSrc":"9556:22:101","nodeType":"YulBlock","src":"9556:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9558:16:101","nodeType":"YulIdentifier","src":"9558:16:101"},"nativeSrc":"9558:18:101","nodeType":"YulFunctionCall","src":"9558:18:101"},"nativeSrc":"9558:18:101","nodeType":"YulExpressionStatement","src":"9558:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9544:5:101","nodeType":"YulIdentifier","src":"9544:5:101"},{"name":"max","nativeSrc":"9551:3:101","nodeType":"YulIdentifier","src":"9551:3:101"}],"functionName":{"name":"gt","nativeSrc":"9541:2:101","nodeType":"YulIdentifier","src":"9541:2:101"},"nativeSrc":"9541:14:101","nodeType":"YulFunctionCall","src":"9541:14:101"},"nativeSrc":"9538:40:101","nodeType":"YulIf","src":"9538:40:101"},{"nativeSrc":"9591:5:101","nodeType":"YulLeave","src":"9591:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9386:4:101","nodeType":"YulIdentifier","src":"9386:4:101"},{"kind":"number","nativeSrc":"9392:2:101","nodeType":"YulLiteral","src":"9392:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9383:2:101","nodeType":"YulIdentifier","src":"9383:2:101"},"nativeSrc":"9383:12:101","nodeType":"YulFunctionCall","src":"9383:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9400:8:101","nodeType":"YulIdentifier","src":"9400:8:101"},{"kind":"number","nativeSrc":"9410:2:101","nodeType":"YulLiteral","src":"9410:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9397:2:101","nodeType":"YulIdentifier","src":"9397:2:101"},"nativeSrc":"9397:16:101","nodeType":"YulFunctionCall","src":"9397:16:101"}],"functionName":{"name":"and","nativeSrc":"9379:3:101","nodeType":"YulIdentifier","src":"9379:3:101"},"nativeSrc":"9379:35:101","nodeType":"YulFunctionCall","src":"9379:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9435:4:101","nodeType":"YulIdentifier","src":"9435:4:101"},{"kind":"number","nativeSrc":"9441:3:101","nodeType":"YulLiteral","src":"9441:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9432:2:101","nodeType":"YulIdentifier","src":"9432:2:101"},"nativeSrc":"9432:13:101","nodeType":"YulFunctionCall","src":"9432:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9450:8:101","nodeType":"YulIdentifier","src":"9450:8:101"},{"kind":"number","nativeSrc":"9460:2:101","nodeType":"YulLiteral","src":"9460:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9447:2:101","nodeType":"YulIdentifier","src":"9447:2:101"},"nativeSrc":"9447:16:101","nodeType":"YulFunctionCall","src":"9447:16:101"}],"functionName":{"name":"and","nativeSrc":"9428:3:101","nodeType":"YulIdentifier","src":"9428:3:101"},"nativeSrc":"9428:36:101","nodeType":"YulFunctionCall","src":"9428:36:101"}],"functionName":{"name":"or","nativeSrc":"9363:2:101","nodeType":"YulIdentifier","src":"9363:2:101"},"nativeSrc":"9363:111:101","nodeType":"YulFunctionCall","src":"9363:111:101"},"nativeSrc":"9360:246:101","nodeType":"YulIf","src":"9360:246:101"},{"nativeSrc":"9616:57:101","nodeType":"YulAssignment","src":"9616:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9650:1:101","nodeType":"YulLiteral","src":"9650:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9653:4:101","nodeType":"YulIdentifier","src":"9653:4:101"},{"name":"exponent","nativeSrc":"9659:8:101","nodeType":"YulIdentifier","src":"9659:8:101"},{"name":"max","nativeSrc":"9669:3:101","nodeType":"YulIdentifier","src":"9669:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9631:18:101","nodeType":"YulIdentifier","src":"9631:18:101"},"nativeSrc":"9631:42:101","nodeType":"YulFunctionCall","src":"9631:42:101"},"variableNames":[{"name":"power","nativeSrc":"9616:5:101","nodeType":"YulIdentifier","src":"9616:5:101"},{"name":"base","nativeSrc":"9623:4:101","nodeType":"YulIdentifier","src":"9623:4:101"}]},{"body":{"nativeSrc":"9712:22:101","nodeType":"YulBlock","src":"9712:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9714:16:101","nodeType":"YulIdentifier","src":"9714:16:101"},"nativeSrc":"9714:18:101","nodeType":"YulFunctionCall","src":"9714:18:101"},"nativeSrc":"9714:18:101","nodeType":"YulExpressionStatement","src":"9714:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9689:5:101","nodeType":"YulIdentifier","src":"9689:5:101"},{"arguments":[{"name":"max","nativeSrc":"9700:3:101","nodeType":"YulIdentifier","src":"9700:3:101"},{"name":"base","nativeSrc":"9705:4:101","nodeType":"YulIdentifier","src":"9705:4:101"}],"functionName":{"name":"div","nativeSrc":"9696:3:101","nodeType":"YulIdentifier","src":"9696:3:101"},"nativeSrc":"9696:14:101","nodeType":"YulFunctionCall","src":"9696:14:101"}],"functionName":{"name":"gt","nativeSrc":"9686:2:101","nodeType":"YulIdentifier","src":"9686:2:101"},"nativeSrc":"9686:25:101","nodeType":"YulFunctionCall","src":"9686:25:101"},"nativeSrc":"9683:51:101","nodeType":"YulIf","src":"9683:51:101"},{"nativeSrc":"9743:25:101","nodeType":"YulAssignment","src":"9743:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9756:5:101","nodeType":"YulIdentifier","src":"9756:5:101"},{"name":"base","nativeSrc":"9763:4:101","nodeType":"YulIdentifier","src":"9763:4:101"}],"functionName":{"name":"mul","nativeSrc":"9752:3:101","nodeType":"YulIdentifier","src":"9752:3:101"},"nativeSrc":"9752:16:101","nodeType":"YulFunctionCall","src":"9752:16:101"},"variableNames":[{"name":"power","nativeSrc":"9743:5:101","nodeType":"YulIdentifier","src":"9743:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8701:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8731:4:101","nodeType":"YulTypedName","src":"8731:4:101","type":""},{"name":"exponent","nativeSrc":"8737:8:101","nodeType":"YulTypedName","src":"8737:8:101","type":""},{"name":"max","nativeSrc":"8747:3:101","nodeType":"YulTypedName","src":"8747:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8755:5:101","nodeType":"YulTypedName","src":"8755:5:101","type":""}],"src":"8701:1073:101"},{"body":{"nativeSrc":"9846:219:101","nodeType":"YulBlock","src":"9846:219:101","statements":[{"nativeSrc":"9856:31:101","nodeType":"YulAssignment","src":"9856:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9882:4:101","nodeType":"YulIdentifier","src":"9882:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9864:17:101","nodeType":"YulIdentifier","src":"9864:17:101"},"nativeSrc":"9864:23:101","nodeType":"YulFunctionCall","src":"9864:23:101"},"variableNames":[{"name":"base","nativeSrc":"9856:4:101","nodeType":"YulIdentifier","src":"9856:4:101"}]},{"nativeSrc":"9896:39:101","nodeType":"YulAssignment","src":"9896:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9926:8:101","nodeType":"YulIdentifier","src":"9926:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9908:17:101","nodeType":"YulIdentifier","src":"9908:17:101"},"nativeSrc":"9908:27:101","nodeType":"YulFunctionCall","src":"9908:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9896:8:101","nodeType":"YulIdentifier","src":"9896:8:101"}]},{"nativeSrc":"9945:113:101","nodeType":"YulAssignment","src":"9945:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9975:4:101","nodeType":"YulIdentifier","src":"9975:4:101"},{"name":"exponent","nativeSrc":"9981:8:101","nodeType":"YulIdentifier","src":"9981:8:101"},{"kind":"number","nativeSrc":"9991:66:101","nodeType":"YulLiteral","src":"9991:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9954:20:101","nodeType":"YulIdentifier","src":"9954:20:101"},"nativeSrc":"9954:104:101","nodeType":"YulFunctionCall","src":"9954:104:101"},"variableNames":[{"name":"power","nativeSrc":"9945:5:101","nodeType":"YulIdentifier","src":"9945:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9780:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9821:4:101","nodeType":"YulTypedName","src":"9821:4:101","type":""},{"name":"exponent","nativeSrc":"9827:8:101","nodeType":"YulTypedName","src":"9827:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9840:5:101","nodeType":"YulTypedName","src":"9840:5:101","type":""}],"src":"9780:285:101"},{"body":{"nativeSrc":"10130:40:101","nodeType":"YulBlock","src":"10130:40:101","statements":[{"nativeSrc":"10141:22:101","nodeType":"YulAssignment","src":"10141:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10157:5:101","nodeType":"YulIdentifier","src":"10157:5:101"}],"functionName":{"name":"mload","nativeSrc":"10151:5:101","nodeType":"YulIdentifier","src":"10151:5:101"},"nativeSrc":"10151:12:101","nodeType":"YulFunctionCall","src":"10151:12:101"},"variableNames":[{"name":"length","nativeSrc":"10141:6:101","nodeType":"YulIdentifier","src":"10141:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10071:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10113:5:101","nodeType":"YulTypedName","src":"10113:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10123:6:101","nodeType":"YulTypedName","src":"10123:6:101","type":""}],"src":"10071:99:101"},{"body":{"nativeSrc":"10272:73:101","nodeType":"YulBlock","src":"10272:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10289:3:101","nodeType":"YulIdentifier","src":"10289:3:101"},{"name":"length","nativeSrc":"10294:6:101","nodeType":"YulIdentifier","src":"10294:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10282:6:101","nodeType":"YulIdentifier","src":"10282:6:101"},"nativeSrc":"10282:19:101","nodeType":"YulFunctionCall","src":"10282:19:101"},"nativeSrc":"10282:19:101","nodeType":"YulExpressionStatement","src":"10282:19:101"},{"nativeSrc":"10310:29:101","nodeType":"YulAssignment","src":"10310:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10329:3:101","nodeType":"YulIdentifier","src":"10329:3:101"},{"kind":"number","nativeSrc":"10334:4:101","nodeType":"YulLiteral","src":"10334:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10325:3:101","nodeType":"YulIdentifier","src":"10325:3:101"},"nativeSrc":"10325:14:101","nodeType":"YulFunctionCall","src":"10325:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10310:11:101","nodeType":"YulIdentifier","src":"10310:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10176:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10244:3:101","nodeType":"YulTypedName","src":"10244:3:101","type":""},{"name":"length","nativeSrc":"10249:6:101","nodeType":"YulTypedName","src":"10249:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10260:11:101","nodeType":"YulTypedName","src":"10260:11:101","type":""}],"src":"10176:169:101"},{"body":{"nativeSrc":"10413:77:101","nodeType":"YulBlock","src":"10413:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10430:3:101","nodeType":"YulIdentifier","src":"10430:3:101"},{"name":"src","nativeSrc":"10435:3:101","nodeType":"YulIdentifier","src":"10435:3:101"},{"name":"length","nativeSrc":"10440:6:101","nodeType":"YulIdentifier","src":"10440:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10424:5:101","nodeType":"YulIdentifier","src":"10424:5:101"},"nativeSrc":"10424:23:101","nodeType":"YulFunctionCall","src":"10424:23:101"},"nativeSrc":"10424:23:101","nodeType":"YulExpressionStatement","src":"10424:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10467:3:101","nodeType":"YulIdentifier","src":"10467:3:101"},{"name":"length","nativeSrc":"10472:6:101","nodeType":"YulIdentifier","src":"10472:6:101"}],"functionName":{"name":"add","nativeSrc":"10463:3:101","nodeType":"YulIdentifier","src":"10463:3:101"},"nativeSrc":"10463:16:101","nodeType":"YulFunctionCall","src":"10463:16:101"},{"kind":"number","nativeSrc":"10481:1:101","nodeType":"YulLiteral","src":"10481:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10456:6:101","nodeType":"YulIdentifier","src":"10456:6:101"},"nativeSrc":"10456:27:101","nodeType":"YulFunctionCall","src":"10456:27:101"},"nativeSrc":"10456:27:101","nodeType":"YulExpressionStatement","src":"10456:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10351:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10395:3:101","nodeType":"YulTypedName","src":"10395:3:101","type":""},{"name":"dst","nativeSrc":"10400:3:101","nodeType":"YulTypedName","src":"10400:3:101","type":""},{"name":"length","nativeSrc":"10405:6:101","nodeType":"YulTypedName","src":"10405:6:101","type":""}],"src":"10351:139:101"},{"body":{"nativeSrc":"10544:54:101","nodeType":"YulBlock","src":"10544:54:101","statements":[{"nativeSrc":"10554:38:101","nodeType":"YulAssignment","src":"10554:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10572:5:101","nodeType":"YulIdentifier","src":"10572:5:101"},{"kind":"number","nativeSrc":"10579:2:101","nodeType":"YulLiteral","src":"10579:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10568:3:101","nodeType":"YulIdentifier","src":"10568:3:101"},"nativeSrc":"10568:14:101","nodeType":"YulFunctionCall","src":"10568:14:101"},{"arguments":[{"kind":"number","nativeSrc":"10588:2:101","nodeType":"YulLiteral","src":"10588:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10584:3:101","nodeType":"YulIdentifier","src":"10584:3:101"},"nativeSrc":"10584:7:101","nodeType":"YulFunctionCall","src":"10584:7:101"}],"functionName":{"name":"and","nativeSrc":"10564:3:101","nodeType":"YulIdentifier","src":"10564:3:101"},"nativeSrc":"10564:28:101","nodeType":"YulFunctionCall","src":"10564:28:101"},"variableNames":[{"name":"result","nativeSrc":"10554:6:101","nodeType":"YulIdentifier","src":"10554:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"10496:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10527:5:101","nodeType":"YulTypedName","src":"10527:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10537:6:101","nodeType":"YulTypedName","src":"10537:6:101","type":""}],"src":"10496:102:101"},{"body":{"nativeSrc":"10696:285:101","nodeType":"YulBlock","src":"10696:285:101","statements":[{"nativeSrc":"10706:53:101","nodeType":"YulVariableDeclaration","src":"10706:53:101","value":{"arguments":[{"name":"value","nativeSrc":"10753:5:101","nodeType":"YulIdentifier","src":"10753:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"10720:32:101","nodeType":"YulIdentifier","src":"10720:32:101"},"nativeSrc":"10720:39:101","nodeType":"YulFunctionCall","src":"10720:39:101"},"variables":[{"name":"length","nativeSrc":"10710:6:101","nodeType":"YulTypedName","src":"10710:6:101","type":""}]},{"nativeSrc":"10768:78:101","nodeType":"YulAssignment","src":"10768:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"10834:3:101","nodeType":"YulIdentifier","src":"10834:3:101"},{"name":"length","nativeSrc":"10839:6:101","nodeType":"YulIdentifier","src":"10839:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10775:58:101","nodeType":"YulIdentifier","src":"10775:58:101"},"nativeSrc":"10775:71:101","nodeType":"YulFunctionCall","src":"10775:71:101"},"variableNames":[{"name":"pos","nativeSrc":"10768:3:101","nodeType":"YulIdentifier","src":"10768:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10894:5:101","nodeType":"YulIdentifier","src":"10894:5:101"},{"kind":"number","nativeSrc":"10901:4:101","nodeType":"YulLiteral","src":"10901:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10890:3:101","nodeType":"YulIdentifier","src":"10890:3:101"},"nativeSrc":"10890:16:101","nodeType":"YulFunctionCall","src":"10890:16:101"},{"name":"pos","nativeSrc":"10908:3:101","nodeType":"YulIdentifier","src":"10908:3:101"},{"name":"length","nativeSrc":"10913:6:101","nodeType":"YulIdentifier","src":"10913:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10855:34:101","nodeType":"YulIdentifier","src":"10855:34:101"},"nativeSrc":"10855:65:101","nodeType":"YulFunctionCall","src":"10855:65:101"},"nativeSrc":"10855:65:101","nodeType":"YulExpressionStatement","src":"10855:65:101"},{"nativeSrc":"10929:46:101","nodeType":"YulAssignment","src":"10929:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"10940:3:101","nodeType":"YulIdentifier","src":"10940:3:101"},{"arguments":[{"name":"length","nativeSrc":"10967:6:101","nodeType":"YulIdentifier","src":"10967:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10945:21:101","nodeType":"YulIdentifier","src":"10945:21:101"},"nativeSrc":"10945:29:101","nodeType":"YulFunctionCall","src":"10945:29:101"}],"functionName":{"name":"add","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},"nativeSrc":"10936:39:101","nodeType":"YulFunctionCall","src":"10936:39:101"},"variableNames":[{"name":"end","nativeSrc":"10929:3:101","nodeType":"YulIdentifier","src":"10929:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10604:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10677:5:101","nodeType":"YulTypedName","src":"10677:5:101","type":""},{"name":"pos","nativeSrc":"10684:3:101","nodeType":"YulTypedName","src":"10684:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10692:3:101","nodeType":"YulTypedName","src":"10692:3:101","type":""}],"src":"10604:377:101"},{"body":{"nativeSrc":"11133:277:101","nodeType":"YulBlock","src":"11133:277:101","statements":[{"nativeSrc":"11143:26:101","nodeType":"YulAssignment","src":"11143:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11155:9:101","nodeType":"YulIdentifier","src":"11155:9:101"},{"kind":"number","nativeSrc":"11166:2:101","nodeType":"YulLiteral","src":"11166:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11151:3:101","nodeType":"YulIdentifier","src":"11151:3:101"},"nativeSrc":"11151:18:101","nodeType":"YulFunctionCall","src":"11151:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11223:6:101","nodeType":"YulIdentifier","src":"11223:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11236:9:101","nodeType":"YulIdentifier","src":"11236:9:101"},{"kind":"number","nativeSrc":"11247:1:101","nodeType":"YulLiteral","src":"11247:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11232:3:101","nodeType":"YulIdentifier","src":"11232:3:101"},"nativeSrc":"11232:17:101","nodeType":"YulFunctionCall","src":"11232:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11179:43:101","nodeType":"YulIdentifier","src":"11179:43:101"},"nativeSrc":"11179:71:101","nodeType":"YulFunctionCall","src":"11179:71:101"},"nativeSrc":"11179:71:101","nodeType":"YulExpressionStatement","src":"11179:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11271:9:101","nodeType":"YulIdentifier","src":"11271:9:101"},{"kind":"number","nativeSrc":"11282:2:101","nodeType":"YulLiteral","src":"11282:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11267:3:101","nodeType":"YulIdentifier","src":"11267:3:101"},"nativeSrc":"11267:18:101","nodeType":"YulFunctionCall","src":"11267:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11291:4:101","nodeType":"YulIdentifier","src":"11291:4:101"},{"name":"headStart","nativeSrc":"11297:9:101","nodeType":"YulIdentifier","src":"11297:9:101"}],"functionName":{"name":"sub","nativeSrc":"11287:3:101","nodeType":"YulIdentifier","src":"11287:3:101"},"nativeSrc":"11287:20:101","nodeType":"YulFunctionCall","src":"11287:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11260:6:101","nodeType":"YulIdentifier","src":"11260:6:101"},"nativeSrc":"11260:48:101","nodeType":"YulFunctionCall","src":"11260:48:101"},"nativeSrc":"11260:48:101","nodeType":"YulExpressionStatement","src":"11260:48:101"},{"nativeSrc":"11317:86:101","nodeType":"YulAssignment","src":"11317:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11389:6:101","nodeType":"YulIdentifier","src":"11389:6:101"},{"name":"tail","nativeSrc":"11398:4:101","nodeType":"YulIdentifier","src":"11398:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11325:63:101","nodeType":"YulIdentifier","src":"11325:63:101"},"nativeSrc":"11325:78:101","nodeType":"YulFunctionCall","src":"11325:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11317:4:101","nodeType":"YulIdentifier","src":"11317:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10987:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11097:9:101","nodeType":"YulTypedName","src":"11097:9:101","type":""},{"name":"value1","nativeSrc":"11109:6:101","nodeType":"YulTypedName","src":"11109:6:101","type":""},{"name":"value0","nativeSrc":"11117:6:101","nodeType":"YulTypedName","src":"11117:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11128:4:101","nodeType":"YulTypedName","src":"11128:4:101","type":""}],"src":"10987:423:101"},{"body":{"nativeSrc":"11456:76:101","nodeType":"YulBlock","src":"11456:76:101","statements":[{"body":{"nativeSrc":"11510:16:101","nodeType":"YulBlock","src":"11510:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11519:1:101","nodeType":"YulLiteral","src":"11519:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"11522:1:101","nodeType":"YulLiteral","src":"11522:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11512:6:101","nodeType":"YulIdentifier","src":"11512:6:101"},"nativeSrc":"11512:12:101","nodeType":"YulFunctionCall","src":"11512:12:101"},"nativeSrc":"11512:12:101","nodeType":"YulExpressionStatement","src":"11512:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11479:5:101","nodeType":"YulIdentifier","src":"11479:5:101"},{"arguments":[{"name":"value","nativeSrc":"11501:5:101","nodeType":"YulIdentifier","src":"11501:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"11486:14:101","nodeType":"YulIdentifier","src":"11486:14:101"},"nativeSrc":"11486:21:101","nodeType":"YulFunctionCall","src":"11486:21:101"}],"functionName":{"name":"eq","nativeSrc":"11476:2:101","nodeType":"YulIdentifier","src":"11476:2:101"},"nativeSrc":"11476:32:101","nodeType":"YulFunctionCall","src":"11476:32:101"}],"functionName":{"name":"iszero","nativeSrc":"11469:6:101","nodeType":"YulIdentifier","src":"11469:6:101"},"nativeSrc":"11469:40:101","nodeType":"YulFunctionCall","src":"11469:40:101"},"nativeSrc":"11466:60:101","nodeType":"YulIf","src":"11466:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11416:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11449:5:101","nodeType":"YulTypedName","src":"11449:5:101","type":""}],"src":"11416:116:101"},{"body":{"nativeSrc":"11598:77:101","nodeType":"YulBlock","src":"11598:77:101","statements":[{"nativeSrc":"11608:22:101","nodeType":"YulAssignment","src":"11608:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"11623:6:101","nodeType":"YulIdentifier","src":"11623:6:101"}],"functionName":{"name":"mload","nativeSrc":"11617:5:101","nodeType":"YulIdentifier","src":"11617:5:101"},"nativeSrc":"11617:13:101","nodeType":"YulFunctionCall","src":"11617:13:101"},"variableNames":[{"name":"value","nativeSrc":"11608:5:101","nodeType":"YulIdentifier","src":"11608:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11663:5:101","nodeType":"YulIdentifier","src":"11663:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"11639:23:101","nodeType":"YulIdentifier","src":"11639:23:101"},"nativeSrc":"11639:30:101","nodeType":"YulFunctionCall","src":"11639:30:101"},"nativeSrc":"11639:30:101","nodeType":"YulExpressionStatement","src":"11639:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11538:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11576:6:101","nodeType":"YulTypedName","src":"11576:6:101","type":""},{"name":"end","nativeSrc":"11584:3:101","nodeType":"YulTypedName","src":"11584:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11592:5:101","nodeType":"YulTypedName","src":"11592:5:101","type":""}],"src":"11538:137:101"},{"body":{"nativeSrc":"11755:271:101","nodeType":"YulBlock","src":"11755:271:101","statements":[{"body":{"nativeSrc":"11801:83:101","nodeType":"YulBlock","src":"11801:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11803:77:101","nodeType":"YulIdentifier","src":"11803:77:101"},"nativeSrc":"11803:79:101","nodeType":"YulFunctionCall","src":"11803:79:101"},"nativeSrc":"11803:79:101","nodeType":"YulExpressionStatement","src":"11803:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11776:7:101","nodeType":"YulIdentifier","src":"11776:7:101"},{"name":"headStart","nativeSrc":"11785:9:101","nodeType":"YulIdentifier","src":"11785:9:101"}],"functionName":{"name":"sub","nativeSrc":"11772:3:101","nodeType":"YulIdentifier","src":"11772:3:101"},"nativeSrc":"11772:23:101","nodeType":"YulFunctionCall","src":"11772:23:101"},{"kind":"number","nativeSrc":"11797:2:101","nodeType":"YulLiteral","src":"11797:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:32:101","nodeType":"YulFunctionCall","src":"11768:32:101"},"nativeSrc":"11765:119:101","nodeType":"YulIf","src":"11765:119:101"},{"nativeSrc":"11894:125:101","nodeType":"YulBlock","src":"11894:125:101","statements":[{"nativeSrc":"11909:15:101","nodeType":"YulVariableDeclaration","src":"11909:15:101","value":{"kind":"number","nativeSrc":"11923:1:101","nodeType":"YulLiteral","src":"11923:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11913:6:101","nodeType":"YulTypedName","src":"11913:6:101","type":""}]},{"nativeSrc":"11938:71:101","nodeType":"YulAssignment","src":"11938:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11981:9:101","nodeType":"YulIdentifier","src":"11981:9:101"},{"name":"offset","nativeSrc":"11992:6:101","nodeType":"YulIdentifier","src":"11992:6:101"}],"functionName":{"name":"add","nativeSrc":"11977:3:101","nodeType":"YulIdentifier","src":"11977:3:101"},"nativeSrc":"11977:22:101","nodeType":"YulFunctionCall","src":"11977:22:101"},{"name":"dataEnd","nativeSrc":"12001:7:101","nodeType":"YulIdentifier","src":"12001:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11948:28:101","nodeType":"YulIdentifier","src":"11948:28:101"},"nativeSrc":"11948:61:101","nodeType":"YulFunctionCall","src":"11948:61:101"},"variableNames":[{"name":"value0","nativeSrc":"11938:6:101","nodeType":"YulIdentifier","src":"11938:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"11681:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11725:9:101","nodeType":"YulTypedName","src":"11725:9:101","type":""},{"name":"dataEnd","nativeSrc":"11736:7:101","nodeType":"YulTypedName","src":"11736:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11748:6:101","nodeType":"YulTypedName","src":"11748:6:101","type":""}],"src":"11681:345:101"},{"body":{"nativeSrc":"12206:359:101","nodeType":"YulBlock","src":"12206:359:101","statements":[{"nativeSrc":"12216:26:101","nodeType":"YulAssignment","src":"12216:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12228:9:101","nodeType":"YulIdentifier","src":"12228:9:101"},{"kind":"number","nativeSrc":"12239:2:101","nodeType":"YulLiteral","src":"12239:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12224:3:101","nodeType":"YulIdentifier","src":"12224:3:101"},"nativeSrc":"12224:18:101","nodeType":"YulFunctionCall","src":"12224:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12216:4:101","nodeType":"YulIdentifier","src":"12216:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12296:6:101","nodeType":"YulIdentifier","src":"12296:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12309:9:101","nodeType":"YulIdentifier","src":"12309:9:101"},{"kind":"number","nativeSrc":"12320:1:101","nodeType":"YulLiteral","src":"12320:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12305:3:101","nodeType":"YulIdentifier","src":"12305:3:101"},"nativeSrc":"12305:17:101","nodeType":"YulFunctionCall","src":"12305:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12252:43:101","nodeType":"YulIdentifier","src":"12252:43:101"},"nativeSrc":"12252:71:101","nodeType":"YulFunctionCall","src":"12252:71:101"},"nativeSrc":"12252:71:101","nodeType":"YulExpressionStatement","src":"12252:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12377:6:101","nodeType":"YulIdentifier","src":"12377:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12390:9:101","nodeType":"YulIdentifier","src":"12390:9:101"},{"kind":"number","nativeSrc":"12401:2:101","nodeType":"YulLiteral","src":"12401:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12386:3:101","nodeType":"YulIdentifier","src":"12386:3:101"},"nativeSrc":"12386:18:101","nodeType":"YulFunctionCall","src":"12386:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12333:43:101","nodeType":"YulIdentifier","src":"12333:43:101"},"nativeSrc":"12333:72:101","nodeType":"YulFunctionCall","src":"12333:72:101"},"nativeSrc":"12333:72:101","nodeType":"YulExpressionStatement","src":"12333:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12426:9:101","nodeType":"YulIdentifier","src":"12426:9:101"},{"kind":"number","nativeSrc":"12437:2:101","nodeType":"YulLiteral","src":"12437:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:18:101","nodeType":"YulFunctionCall","src":"12422:18:101"},{"arguments":[{"name":"tail","nativeSrc":"12446:4:101","nodeType":"YulIdentifier","src":"12446:4:101"},{"name":"headStart","nativeSrc":"12452:9:101","nodeType":"YulIdentifier","src":"12452:9:101"}],"functionName":{"name":"sub","nativeSrc":"12442:3:101","nodeType":"YulIdentifier","src":"12442:3:101"},"nativeSrc":"12442:20:101","nodeType":"YulFunctionCall","src":"12442:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:48:101","nodeType":"YulFunctionCall","src":"12415:48:101"},"nativeSrc":"12415:48:101","nodeType":"YulExpressionStatement","src":"12415:48:101"},{"nativeSrc":"12472:86:101","nodeType":"YulAssignment","src":"12472:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"12544:6:101","nodeType":"YulIdentifier","src":"12544:6:101"},{"name":"tail","nativeSrc":"12553:4:101","nodeType":"YulIdentifier","src":"12553:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"12480:63:101","nodeType":"YulIdentifier","src":"12480:63:101"},"nativeSrc":"12480:78:101","nodeType":"YulFunctionCall","src":"12480:78:101"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:101","nodeType":"YulIdentifier","src":"12472:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12032:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12162:9:101","nodeType":"YulTypedName","src":"12162:9:101","type":""},{"name":"value2","nativeSrc":"12174:6:101","nodeType":"YulTypedName","src":"12174:6:101","type":""},{"name":"value1","nativeSrc":"12182:6:101","nodeType":"YulTypedName","src":"12182:6:101","type":""},{"name":"value0","nativeSrc":"12190:6:101","nodeType":"YulTypedName","src":"12190:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12201:4:101","nodeType":"YulTypedName","src":"12201:4:101","type":""}],"src":"12032:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5088":[{"length":32,"start":581},{"length":32,"start":1770}],"6589":[{"length":32,"start":523},{"length":32,"start":690},{"length":32,"start":1725},{"length":32,"start":2133}],"6592":[{"length":32,"start":313},{"length":32,"start":1441},{"length":32,"start":2006}],"6596":[{"length":32,"start":629},{"length":32,"start":1396},{"length":32,"start":1959}],"6600":[{"length":32,"start":393},{"length":32,"start":2324}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d57806386f23a7514610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109c5565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109f2565b61011e60045481565b61011e61017f366004610a21565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a64565b6101cb6101c6366004610a83565b610360565b005b61011e60025481565b6101cb6101e4366004610aa1565b6103d1565b6101f16104a5565b60405161012b9190610ae3565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610aa1565b61062c565b61011e7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e610756565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816107a3565b9392505050565b5f61032f610756565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816107a3565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108fb565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108fb565b5f5461041f6301e1338084610b19565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109c5565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd610756565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b2c565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f610517610756565b9050600454818311610529578261052b565b815b6105359190610b3f565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109f2565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108fb565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b6040516303d1689d60e11b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a90610712907f0000000000000000000000000000000000000000000000000000000000000000906004016109c5565b602060405180830381865afa15801561072d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190610b5d565b905090565b5f80600354426107669190610b2c565b90505f670de0b6b3a7640000825f546002546107829190610b7b565b61078c9190610b7b565b6107969190610b19565b60025461031f9190610b3f565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081191906109f2565b602060405180830381865afa15801561082c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108509190610b5d565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d79190610bae565b60ff1690506108e781600a610cd8565b6108f18487610b7b565b6103579190610b19565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061094b9033908690600401610d21565b602060405180830381865afa158015610966573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098a9190610d54565b9050806109b957333083604051634a3fa29360e01b81526004016109b093929190610d72565b60405180910390fd5b5050565b805b82525050565b602081016109d382846109bd565b92915050565b5f6001600160a01b0382166109d3565b6109bf816109d9565b602081016109d382846109e9565b610a09816109d9565b8114610a13575f80fd5b50565b80356109d381610a00565b5f60208284031215610a3457610a345f80fd5b5f610a3f8484610a16565b949350505050565b5f6109d3826109d9565b5f6109d382610a47565b6109bf81610a51565b602081016109d38284610a5b565b80610a09565b80356109d381610a72565b5f60208284031215610a9657610a965f80fd5b5f610a3f8484610a78565b5f8060408385031215610ab557610ab55f80fd5b5f610ac08585610a78565b9250506020610ad185828601610a78565b9150509250929050565b8015156109bf565b602081016109d38284610adb565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b2757610b27610af1565b500490565b818103818111156109d3576109d3610b05565b808201808211156109d3576109d3610b05565b80516109d381610a72565b5f60208284031215610b7057610b705f80fd5b5f610a3f8484610b52565b818102808215838204851417610b9357610b93610b05565b5092915050565b60ff8116610a09565b80516109d381610b9a565b5f60208284031215610bc157610bc15f80fd5b5f610a3f8484610ba3565b80825b6001851115610c0b57808604811115610bea57610bea610b05565b6001851615610bf857908102905b8002610c048560011c90565b9450610bcf565b94509492505050565b5f82610c225750600161031f565b81610c2e57505f61031f565b8160018114610c445760028114610c4e57610c7b565b600191505061031f565b60ff841115610c5f57610c5f610b05565b8360020a915084821115610c7557610c75610b05565b5061031f565b5060208310610133831016604e8410600b8410161715610cae575081810a83811115610ca957610ca9610b05565b61031f565b610cbb8484846001610bcc565b92509050818404811115610cd157610cd1610b05565b0292915050565b5f61031f5f198484610c14565b8281835e505f910152565b5f610cf9825190565b808452602084019350610d10818560208601610ce5565b601f01601f19169290920192915050565b60408101610d2f82856109e9565b8181036020830152610a3f8184610cf0565b801515610a09565b80516109d381610d41565b5f60208284031215610d6757610d675f80fd5b5f610a3f8484610d49565b60608101610d8082866109e9565b610d8d60208301856109e9565b81810360408301526103578184610cf056fea2646970667358221220679da16a2e86bdb8fb0ba394d7bbfa8f4dbeaf8aff49fe7cffd1b51c5d69154a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x86F23A75 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0xA21 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA64 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA83 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xAA1 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xAA1 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x756 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x7A3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x756 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x7A3 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8FB JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xB19 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x756 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB2C JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x756 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB3F JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9F2 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D1689D PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A2D13A SWAP1 PUSH2 0x712 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x751 SWAP2 SWAP1 PUSH2 0xB5D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x766 SWAP2 SWAP1 PUSH2 0xB2C JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x782 SWAP2 SWAP1 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0x78C SWAP2 SWAP1 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0x796 SWAP2 SWAP1 PUSH2 0xB19 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB3F JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x811 SWAP2 SWAP1 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x82C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x850 SWAP2 SWAP1 PUSH2 0xB5D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8B3 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8D7 SWAP2 SWAP1 PUSH2 0xBAE JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8E7 DUP2 PUSH1 0xA PUSH2 0xCD8 JUMP JUMPDEST PUSH2 0x8F1 DUP5 DUP8 PUSH2 0xB7B JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xB19 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x94B SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD21 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x966 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x98A SWAP2 SWAP1 PUSH2 0xD54 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9B9 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0x9BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9D3 JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0x9D9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0xA09 DUP2 PUSH2 0x9D9 JUMP JUMPDEST DUP2 EQ PUSH2 0xA13 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9D3 DUP2 PUSH2 0xA00 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA34 JUMPI PUSH2 0xA34 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xA16 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9D3 DUP3 PUSH2 0x9D9 JUMP JUMPDEST PUSH0 PUSH2 0x9D3 DUP3 PUSH2 0xA47 JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0xA51 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0xA5B JUMP JUMPDEST DUP1 PUSH2 0xA09 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9D3 DUP2 PUSH2 0xA72 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA96 JUMPI PUSH2 0xA96 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xA78 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAB5 JUMPI PUSH2 0xAB5 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAC0 DUP6 DUP6 PUSH2 0xA78 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAD1 DUP6 DUP3 DUP7 ADD PUSH2 0xA78 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9D3 DUP3 DUP5 PUSH2 0xADB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB27 JUMPI PUSH2 0xB27 PUSH2 0xAF1 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9D3 JUMPI PUSH2 0x9D3 PUSH2 0xB05 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9D3 JUMPI PUSH2 0x9D3 PUSH2 0xB05 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9D3 DUP2 PUSH2 0xA72 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB70 JUMPI PUSH2 0xB70 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xB52 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB93 JUMPI PUSH2 0xB93 PUSH2 0xB05 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA09 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9D3 DUP2 PUSH2 0xB9A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBC1 JUMPI PUSH2 0xBC1 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xBA3 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC0B JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBEA JUMPI PUSH2 0xBEA PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBF8 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC04 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBCF JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC22 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC2E JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC44 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC4E JUMPI PUSH2 0xC7B JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC5F JUMPI PUSH2 0xC5F PUSH2 0xB05 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC75 JUMPI PUSH2 0xC75 PUSH2 0xB05 JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCAE JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCA9 JUMPI PUSH2 0xCA9 PUSH2 0xB05 JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xCBB DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBCC JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCD1 JUMPI PUSH2 0xCD1 PUSH2 0xB05 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xC14 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCF9 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD10 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCE5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD2F DUP3 DUP6 PUSH2 0x9E9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA3F DUP2 DUP5 PUSH2 0xCF0 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA09 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9D3 DUP2 PUSH2 0xD41 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD67 JUMPI PUSH2 0xD67 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA3F DUP5 DUP5 PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD80 DUP3 DUP7 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0xD8D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9E9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCF0 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0x9DA16A2E86BDB8FB SIGNEXTEND LOG3 SWAP5 0xD7 0xBB STATICCALL DUP16 0x4D 0xBE 0xAF DUP11 SELFDESTRUCT BLOBHASH INVALID PUSH29 0xFFD1B51C5D69154A64736F6C6343000819003300000000000000000000 ","sourceMap":"306:1260:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;360:45:52:-;;;;;1635:32:67;;;;;;1099:58;;;;;1406:158:52;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1406:158:52:-;1493:64;;-1:-1:-1;;;1493:64:52;;1467:7;;-1:-1:-1;;;;;1502:16:52;1493:42;;;;:64;;1536:20;;1493:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1486:71;;1406:158;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;306:1260:52;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;306:1260:52;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;306:1260:52;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5143:180::-;-1:-1:-1;;;5188:1:101;5181:88;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5329:180;-1:-1:-1;;;5374:1:101;5367:88;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5515:185;5555:1;5645;5635:35;;5650:18;;:::i;:::-;-1:-1:-1;5685:9:101;;5515:185::o;5706:194::-;5837:9;;;5859:11;;;5856:37;;;5873:18;;:::i;5906:191::-;6035:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6103:143::-;6185:13;;6207:33;6185:13;6207:33;:::i;6252:351::-;6322:6;6371:2;6359:9;6350:7;6346:23;6342:32;6339:119;;;6377:79;306:1260:52;;;6377:79:101;6497:1;6522:64;6578:7;6558:9;6522:64;:::i;6609:410::-;6754:9;;;;6916;;6949:15;;;6943:22;;6896:83;6873:139;;6992:18;;:::i;:::-;6657:362;6609:410;;;;:::o;7117:118::-;7100:4;7089:16;;7188:22;7025:86;7241:139;7321:13;;7343:31;7321:13;7343:31;:::i;7386:347::-;7454:6;7503:2;7491:9;7482:7;7478:23;7474:32;7471:119;;;7509:79;306:1260:52;;;7509:79:101;7629:1;7654:62;7708:7;7688:9;7654:62;:::i;7847:848::-;7939:6;7963:5;7977:712;7998:1;7988:8;7985:15;7977:712;;;8093:4;8088:3;8084:14;8078:4;8075:24;8072:50;;;8102:18;;:::i;:::-;8152:1;8142:8;8138:16;8135:451;;;8556:16;;;;8135:451;8607:15;;8647:32;8670:8;7825:1;7821:13;;7739:102;8647:32;8635:44;;7977:712;;;7847:848;;;;;;;:::o;8701:1073::-;8755:5;8946:8;8936:40;;-1:-1:-1;8967:1:101;8969:5;;8936:40;8995:4;8985:36;;-1:-1:-1;9012:1:101;9014:5;;8985:36;9081:4;9129:1;9124:27;;;;9165:1;9160:191;;;;9074:277;;9124:27;9142:1;9133:10;;9144:5;;;9160:191;9205:3;9195:8;9192:17;9189:43;;;9212:18;;:::i;:::-;9261:8;9258:1;9254:16;9245:25;;9296:3;9289:5;9286:14;9283:40;;;9303:18;;:::i;:::-;9336:5;;;9074:277;;9460:2;9450:8;9447:16;9441:3;9435:4;9432:13;9428:36;9410:2;9400:8;9397:16;9392:2;9386:4;9383:12;9379:35;9363:111;9360:246;;;-1:-1:-1;9506:19:101;;;9541:14;;;9538:40;;;9558:18;;:::i;:::-;9591:5;;9360:246;9631:42;9669:3;9659:8;9653:4;9650:1;9631:42;:::i;:::-;9616:57;;;;9705:4;9700:3;9696:14;9689:5;9686:25;9683:51;;;9714:18;;:::i;:::-;9752:16;;8701:1073;-1:-1:-1;;8701:1073:101:o;9780:285::-;9840:5;9954:104;-1:-1:-1;;9981:8:101;9975:4;9954:104;:::i;10351:139::-;10440:6;10435:3;10430;10424:23;-1:-1:-1;10481:1:101;10463:16;;10456:27;10351:139::o;10604:377::-;10692:3;10720:39;10753:5;10151:12;;10071:99;10720:39;10282:19;;;10334:4;10325:14;;10768:78;;10855:65;10913:6;10908:3;10901:4;10894:5;10890:16;10855:65;:::i;:::-;10588:2;10568:14;-1:-1:-1;;10564:28:101;10936:39;;;;;;-1:-1:-1;;10604:377:101:o;10987:423::-;11166:2;11151:18;;11179:71;11155:9;11223:6;11179:71;:::i;:::-;11297:9;11291:4;11287:20;11282:2;11271:9;11267:18;11260:48;11325:78;11398:4;11389:6;11325:78;:::i;11416:116::-;4124:13;;4117:21;11486;4054:90;11538:137;11617:13;;11639:30;11617:13;11639:30;:::i;11681:345::-;11748:6;11797:2;11785:9;11776:7;11772:23;11768:32;11765:119;;;11803:79;306:1260:52;;;11803:79:101;11923:1;11948:61;12001:7;11981:9;11948:61;:::i;12032:533::-;12239:2;12224:18;;12252:71;12228:9;12296:6;12252:71;:::i;:::-;12333:72;12401:2;12390:9;12386:18;12377:6;12333:72;:::i;:::-;12452:9;12446:4;12442:20;12437:2;12426:9;12422:18;12415:48;12480:78;12553:4;12544:6;12480:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"708200","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","ONE_CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","ONE_CORRELATED_TOKEN()":"86f23a75","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"correlatedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ONE_CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount The amount of underlying token for correlated token\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"ERC4626Oracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of underlying token for 1 correlated token\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of ERC4626 tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/ERC4626Oracle.sol\":\"ERC4626Oracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IERC4626.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IERC4626 {\\n    function convertToAssets(uint256 shares) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x7f2096f62d52d5f4db07dce231fc37d7ce25f7aecf4245cc03da87002d3038ff\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/ERC4626Oracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IERC4626 } from \\\"../interfaces/IERC4626.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\n\\n/**\\n * @title ERC4626Oracle\\n * @author Venus\\n * @notice This oracle fetches the price of ERC4626 tokens\\n */\\ncontract ERC4626Oracle is CorrelatedTokenOracle {\\n    uint256 public immutable ONE_CORRELATED_TOKEN;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address correlatedToken,\\n        address underlyingToken,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            correlatedToken,\\n            underlyingToken,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ONE_CORRELATED_TOKEN = 10 ** IERC4626(correlatedToken).decimals();\\n    }\\n\\n    /**\\n     * @notice Fetches the amount of underlying token for 1 correlated token\\n     * @return amount The amount of underlying token for correlated token\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return IERC4626(CORRELATED_TOKEN).convertToAssets(ONE_CORRELATED_TOKEN);\\n    }\\n}\\n\",\"keccak256\":\"0xecc831e1b4550077d57832eca98e1fd796153a9b1690141887079deff9bdd676\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/ERC4626Oracle.sol:ERC4626Oracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/ERC4626Oracle.sol:ERC4626Oracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/ERC4626Oracle.sol:ERC4626Oracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/ERC4626Oracle.sol:ERC4626Oracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/ERC4626Oracle.sol:ERC4626Oracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of underlying token for 1 correlated token"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of ERC4626 tokens","version":1}}},"contracts/oracles/EtherfiAccountantOracle.sol":{"EtherfiAccountantOracle":{"abi":[{"inputs":[{"internalType":"address","name":"accountant","type":"address"},{"internalType":"address","name":"correlatedToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ACCOUNTANT","outputs":[{"internalType":"contract IAccountant","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount Amount of WBTC"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"EtherfiAccountantOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5209":{"entryPoint":null,"id":5209,"parameterSlots":10,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":312,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":419,"id":null,"parameterSlots":2,"returnSlots":10},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":652,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":354,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":632,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":372,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3533:101","nodeType":"YulBlock","src":"0:3533:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1435:1532:101","nodeType":"YulBlock","src":"1435:1532:101","statements":[{"body":{"nativeSrc":"1482:83:101","nodeType":"YulBlock","src":"1482:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1484:77:101","nodeType":"YulIdentifier","src":"1484:77:101"},"nativeSrc":"1484:79:101","nodeType":"YulFunctionCall","src":"1484:79:101"},"nativeSrc":"1484:79:101","nodeType":"YulExpressionStatement","src":"1484:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1456:7:101","nodeType":"YulIdentifier","src":"1456:7:101"},{"name":"headStart","nativeSrc":"1465:9:101","nodeType":"YulIdentifier","src":"1465:9:101"}],"functionName":{"name":"sub","nativeSrc":"1452:3:101","nodeType":"YulIdentifier","src":"1452:3:101"},"nativeSrc":"1452:23:101","nodeType":"YulFunctionCall","src":"1452:23:101"},{"kind":"number","nativeSrc":"1477:3:101","nodeType":"YulLiteral","src":"1477:3:101","type":"","value":"320"}],"functionName":{"name":"slt","nativeSrc":"1448:3:101","nodeType":"YulIdentifier","src":"1448:3:101"},"nativeSrc":"1448:33:101","nodeType":"YulFunctionCall","src":"1448:33:101"},"nativeSrc":"1445:120:101","nodeType":"YulIf","src":"1445:120:101"},{"nativeSrc":"1575:128:101","nodeType":"YulBlock","src":"1575:128:101","statements":[{"nativeSrc":"1590:15:101","nodeType":"YulVariableDeclaration","src":"1590:15:101","value":{"kind":"number","nativeSrc":"1604:1:101","nodeType":"YulLiteral","src":"1604:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1594:6:101","nodeType":"YulTypedName","src":"1594:6:101","type":""}]},{"nativeSrc":"1619:74:101","nodeType":"YulAssignment","src":"1619:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1665:9:101","nodeType":"YulIdentifier","src":"1665:9:101"},{"name":"offset","nativeSrc":"1676:6:101","nodeType":"YulIdentifier","src":"1676:6:101"}],"functionName":{"name":"add","nativeSrc":"1661:3:101","nodeType":"YulIdentifier","src":"1661:3:101"},"nativeSrc":"1661:22:101","nodeType":"YulFunctionCall","src":"1661:22:101"},{"name":"dataEnd","nativeSrc":"1685:7:101","nodeType":"YulIdentifier","src":"1685:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1629:31:101","nodeType":"YulIdentifier","src":"1629:31:101"},"nativeSrc":"1629:64:101","nodeType":"YulFunctionCall","src":"1629:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1619:6:101","nodeType":"YulIdentifier","src":"1619:6:101"}]}]},{"nativeSrc":"1713:129:101","nodeType":"YulBlock","src":"1713:129:101","statements":[{"nativeSrc":"1728:16:101","nodeType":"YulVariableDeclaration","src":"1728:16:101","value":{"kind":"number","nativeSrc":"1742:2:101","nodeType":"YulLiteral","src":"1742:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1732:6:101","nodeType":"YulTypedName","src":"1732:6:101","type":""}]},{"nativeSrc":"1758:74:101","nodeType":"YulAssignment","src":"1758:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1804:9:101","nodeType":"YulIdentifier","src":"1804:9:101"},{"name":"offset","nativeSrc":"1815:6:101","nodeType":"YulIdentifier","src":"1815:6:101"}],"functionName":{"name":"add","nativeSrc":"1800:3:101","nodeType":"YulIdentifier","src":"1800:3:101"},"nativeSrc":"1800:22:101","nodeType":"YulFunctionCall","src":"1800:22:101"},{"name":"dataEnd","nativeSrc":"1824:7:101","nodeType":"YulIdentifier","src":"1824:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1768:31:101","nodeType":"YulIdentifier","src":"1768:31:101"},"nativeSrc":"1768:64:101","nodeType":"YulFunctionCall","src":"1768:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1758:6:101","nodeType":"YulIdentifier","src":"1758:6:101"}]}]},{"nativeSrc":"1852:129:101","nodeType":"YulBlock","src":"1852:129:101","statements":[{"nativeSrc":"1867:16:101","nodeType":"YulVariableDeclaration","src":"1867:16:101","value":{"kind":"number","nativeSrc":"1881:2:101","nodeType":"YulLiteral","src":"1881:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1871:6:101","nodeType":"YulTypedName","src":"1871:6:101","type":""}]},{"nativeSrc":"1897:74:101","nodeType":"YulAssignment","src":"1897:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1943:9:101","nodeType":"YulIdentifier","src":"1943:9:101"},{"name":"offset","nativeSrc":"1954:6:101","nodeType":"YulIdentifier","src":"1954:6:101"}],"functionName":{"name":"add","nativeSrc":"1939:3:101","nodeType":"YulIdentifier","src":"1939:3:101"},"nativeSrc":"1939:22:101","nodeType":"YulFunctionCall","src":"1939:22:101"},{"name":"dataEnd","nativeSrc":"1963:7:101","nodeType":"YulIdentifier","src":"1963:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1907:31:101","nodeType":"YulIdentifier","src":"1907:31:101"},"nativeSrc":"1907:64:101","nodeType":"YulFunctionCall","src":"1907:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1897:6:101","nodeType":"YulIdentifier","src":"1897:6:101"}]}]},{"nativeSrc":"1991:129:101","nodeType":"YulBlock","src":"1991:129:101","statements":[{"nativeSrc":"2006:16:101","nodeType":"YulVariableDeclaration","src":"2006:16:101","value":{"kind":"number","nativeSrc":"2020:2:101","nodeType":"YulLiteral","src":"2020:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"2010:6:101","nodeType":"YulTypedName","src":"2010:6:101","type":""}]},{"nativeSrc":"2036:74:101","nodeType":"YulAssignment","src":"2036:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2082:9:101","nodeType":"YulIdentifier","src":"2082:9:101"},{"name":"offset","nativeSrc":"2093:6:101","nodeType":"YulIdentifier","src":"2093:6:101"}],"functionName":{"name":"add","nativeSrc":"2078:3:101","nodeType":"YulIdentifier","src":"2078:3:101"},"nativeSrc":"2078:22:101","nodeType":"YulFunctionCall","src":"2078:22:101"},{"name":"dataEnd","nativeSrc":"2102:7:101","nodeType":"YulIdentifier","src":"2102:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2046:31:101","nodeType":"YulIdentifier","src":"2046:31:101"},"nativeSrc":"2046:64:101","nodeType":"YulFunctionCall","src":"2046:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2036:6:101","nodeType":"YulIdentifier","src":"2036:6:101"}]}]},{"nativeSrc":"2130:130:101","nodeType":"YulBlock","src":"2130:130:101","statements":[{"nativeSrc":"2145:17:101","nodeType":"YulVariableDeclaration","src":"2145:17:101","value":{"kind":"number","nativeSrc":"2159:3:101","nodeType":"YulLiteral","src":"2159:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2149:6:101","nodeType":"YulTypedName","src":"2149:6:101","type":""}]},{"nativeSrc":"2176:74:101","nodeType":"YulAssignment","src":"2176:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2222:9:101","nodeType":"YulIdentifier","src":"2222:9:101"},{"name":"offset","nativeSrc":"2233:6:101","nodeType":"YulIdentifier","src":"2233:6:101"}],"functionName":{"name":"add","nativeSrc":"2218:3:101","nodeType":"YulIdentifier","src":"2218:3:101"},"nativeSrc":"2218:22:101","nodeType":"YulFunctionCall","src":"2218:22:101"},{"name":"dataEnd","nativeSrc":"2242:7:101","nodeType":"YulIdentifier","src":"2242:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2186:31:101","nodeType":"YulIdentifier","src":"2186:31:101"},"nativeSrc":"2186:64:101","nodeType":"YulFunctionCall","src":"2186:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}]}]},{"nativeSrc":"2270:130:101","nodeType":"YulBlock","src":"2270:130:101","statements":[{"nativeSrc":"2285:17:101","nodeType":"YulVariableDeclaration","src":"2285:17:101","value":{"kind":"number","nativeSrc":"2299:3:101","nodeType":"YulLiteral","src":"2299:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2289:6:101","nodeType":"YulTypedName","src":"2289:6:101","type":""}]},{"nativeSrc":"2316:74:101","nodeType":"YulAssignment","src":"2316:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2362:9:101","nodeType":"YulIdentifier","src":"2362:9:101"},{"name":"offset","nativeSrc":"2373:6:101","nodeType":"YulIdentifier","src":"2373:6:101"}],"functionName":{"name":"add","nativeSrc":"2358:3:101","nodeType":"YulIdentifier","src":"2358:3:101"},"nativeSrc":"2358:22:101","nodeType":"YulFunctionCall","src":"2358:22:101"},{"name":"dataEnd","nativeSrc":"2382:7:101","nodeType":"YulIdentifier","src":"2382:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2326:31:101","nodeType":"YulIdentifier","src":"2326:31:101"},"nativeSrc":"2326:64:101","nodeType":"YulFunctionCall","src":"2326:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2316:6:101","nodeType":"YulIdentifier","src":"2316:6:101"}]}]},{"nativeSrc":"2410:130:101","nodeType":"YulBlock","src":"2410:130:101","statements":[{"nativeSrc":"2425:17:101","nodeType":"YulVariableDeclaration","src":"2425:17:101","value":{"kind":"number","nativeSrc":"2439:3:101","nodeType":"YulLiteral","src":"2439:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2429:6:101","nodeType":"YulTypedName","src":"2429:6:101","type":""}]},{"nativeSrc":"2456:74:101","nodeType":"YulAssignment","src":"2456:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2502:9:101","nodeType":"YulIdentifier","src":"2502:9:101"},{"name":"offset","nativeSrc":"2513:6:101","nodeType":"YulIdentifier","src":"2513:6:101"}],"functionName":{"name":"add","nativeSrc":"2498:3:101","nodeType":"YulIdentifier","src":"2498:3:101"},"nativeSrc":"2498:22:101","nodeType":"YulFunctionCall","src":"2498:22:101"},{"name":"dataEnd","nativeSrc":"2522:7:101","nodeType":"YulIdentifier","src":"2522:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2466:31:101","nodeType":"YulIdentifier","src":"2466:31:101"},"nativeSrc":"2466:64:101","nodeType":"YulFunctionCall","src":"2466:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2456:6:101","nodeType":"YulIdentifier","src":"2456:6:101"}]}]},{"nativeSrc":"2550:130:101","nodeType":"YulBlock","src":"2550:130:101","statements":[{"nativeSrc":"2565:17:101","nodeType":"YulVariableDeclaration","src":"2565:17:101","value":{"kind":"number","nativeSrc":"2579:3:101","nodeType":"YulLiteral","src":"2579:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2569:6:101","nodeType":"YulTypedName","src":"2569:6:101","type":""}]},{"nativeSrc":"2596:74:101","nodeType":"YulAssignment","src":"2596:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2642:9:101","nodeType":"YulIdentifier","src":"2642:9:101"},{"name":"offset","nativeSrc":"2653:6:101","nodeType":"YulIdentifier","src":"2653:6:101"}],"functionName":{"name":"add","nativeSrc":"2638:3:101","nodeType":"YulIdentifier","src":"2638:3:101"},"nativeSrc":"2638:22:101","nodeType":"YulFunctionCall","src":"2638:22:101"},{"name":"dataEnd","nativeSrc":"2662:7:101","nodeType":"YulIdentifier","src":"2662:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2606:31:101","nodeType":"YulIdentifier","src":"2606:31:101"},"nativeSrc":"2606:64:101","nodeType":"YulFunctionCall","src":"2606:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2596:6:101","nodeType":"YulIdentifier","src":"2596:6:101"}]}]},{"nativeSrc":"2690:130:101","nodeType":"YulBlock","src":"2690:130:101","statements":[{"nativeSrc":"2705:17:101","nodeType":"YulVariableDeclaration","src":"2705:17:101","value":{"kind":"number","nativeSrc":"2719:3:101","nodeType":"YulLiteral","src":"2719:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2709:6:101","nodeType":"YulTypedName","src":"2709:6:101","type":""}]},{"nativeSrc":"2736:74:101","nodeType":"YulAssignment","src":"2736:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2782:9:101","nodeType":"YulIdentifier","src":"2782:9:101"},{"name":"offset","nativeSrc":"2793:6:101","nodeType":"YulIdentifier","src":"2793:6:101"}],"functionName":{"name":"add","nativeSrc":"2778:3:101","nodeType":"YulIdentifier","src":"2778:3:101"},"nativeSrc":"2778:22:101","nodeType":"YulFunctionCall","src":"2778:22:101"},{"name":"dataEnd","nativeSrc":"2802:7:101","nodeType":"YulIdentifier","src":"2802:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2746:31:101","nodeType":"YulIdentifier","src":"2746:31:101"},"nativeSrc":"2746:64:101","nodeType":"YulFunctionCall","src":"2746:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2736:6:101","nodeType":"YulIdentifier","src":"2736:6:101"}]}]},{"nativeSrc":"2830:130:101","nodeType":"YulBlock","src":"2830:130:101","statements":[{"nativeSrc":"2845:17:101","nodeType":"YulVariableDeclaration","src":"2845:17:101","value":{"kind":"number","nativeSrc":"2859:3:101","nodeType":"YulLiteral","src":"2859:3:101","type":"","value":"288"},"variables":[{"name":"offset","nativeSrc":"2849:6:101","nodeType":"YulTypedName","src":"2849:6:101","type":""}]},{"nativeSrc":"2876:74:101","nodeType":"YulAssignment","src":"2876:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2922:9:101","nodeType":"YulIdentifier","src":"2922:9:101"},{"name":"offset","nativeSrc":"2933:6:101","nodeType":"YulIdentifier","src":"2933:6:101"}],"functionName":{"name":"add","nativeSrc":"2918:3:101","nodeType":"YulIdentifier","src":"2918:3:101"},"nativeSrc":"2918:22:101","nodeType":"YulFunctionCall","src":"2918:22:101"},{"name":"dataEnd","nativeSrc":"2942:7:101","nodeType":"YulIdentifier","src":"2942:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2886:31:101","nodeType":"YulIdentifier","src":"2886:31:101"},"nativeSrc":"2886:64:101","nodeType":"YulFunctionCall","src":"2886:64:101"},"variableNames":[{"name":"value9","nativeSrc":"2876:6:101","nodeType":"YulIdentifier","src":"2876:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1762:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1333:9:101","nodeType":"YulTypedName","src":"1333:9:101","type":""},{"name":"dataEnd","nativeSrc":"1344:7:101","nodeType":"YulTypedName","src":"1344:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1356:6:101","nodeType":"YulTypedName","src":"1356:6:101","type":""},{"name":"value1","nativeSrc":"1364:6:101","nodeType":"YulTypedName","src":"1364:6:101","type":""},{"name":"value2","nativeSrc":"1372:6:101","nodeType":"YulTypedName","src":"1372:6:101","type":""},{"name":"value3","nativeSrc":"1380:6:101","nodeType":"YulTypedName","src":"1380:6:101","type":""},{"name":"value4","nativeSrc":"1388:6:101","nodeType":"YulTypedName","src":"1388:6:101","type":""},{"name":"value5","nativeSrc":"1396:6:101","nodeType":"YulTypedName","src":"1396:6:101","type":""},{"name":"value6","nativeSrc":"1404:6:101","nodeType":"YulTypedName","src":"1404:6:101","type":""},{"name":"value7","nativeSrc":"1412:6:101","nodeType":"YulTypedName","src":"1412:6:101","type":""},{"name":"value8","nativeSrc":"1420:6:101","nodeType":"YulTypedName","src":"1420:6:101","type":""},{"name":"value9","nativeSrc":"1428:6:101","nodeType":"YulTypedName","src":"1428:6:101","type":""}],"src":"1205:1762:101"},{"body":{"nativeSrc":"3001:152:101","nodeType":"YulBlock","src":"3001:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3018:1:101","nodeType":"YulLiteral","src":"3018:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3021:77:101","nodeType":"YulLiteral","src":"3021:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3011:6:101","nodeType":"YulIdentifier","src":"3011:6:101"},"nativeSrc":"3011:88:101","nodeType":"YulFunctionCall","src":"3011:88:101"},"nativeSrc":"3011:88:101","nodeType":"YulExpressionStatement","src":"3011:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3115:1:101","nodeType":"YulLiteral","src":"3115:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3118:4:101","nodeType":"YulLiteral","src":"3118:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3108:6:101","nodeType":"YulIdentifier","src":"3108:6:101"},"nativeSrc":"3108:15:101","nodeType":"YulFunctionCall","src":"3108:15:101"},"nativeSrc":"3108:15:101","nodeType":"YulExpressionStatement","src":"3108:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3139:1:101","nodeType":"YulLiteral","src":"3139:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3142:4:101","nodeType":"YulLiteral","src":"3142:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3132:6:101","nodeType":"YulIdentifier","src":"3132:6:101"},"nativeSrc":"3132:15:101","nodeType":"YulFunctionCall","src":"3132:15:101"},"nativeSrc":"3132:15:101","nodeType":"YulExpressionStatement","src":"3132:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2973:180:101","nodeType":"YulFunctionDefinition","src":"2973:180:101"},{"body":{"nativeSrc":"3187:152:101","nodeType":"YulBlock","src":"3187:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3204:1:101","nodeType":"YulLiteral","src":"3204:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3207:77:101","nodeType":"YulLiteral","src":"3207:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3197:6:101","nodeType":"YulIdentifier","src":"3197:6:101"},"nativeSrc":"3197:88:101","nodeType":"YulFunctionCall","src":"3197:88:101"},"nativeSrc":"3197:88:101","nodeType":"YulExpressionStatement","src":"3197:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3301:1:101","nodeType":"YulLiteral","src":"3301:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3294:6:101","nodeType":"YulIdentifier","src":"3294:6:101"},"nativeSrc":"3294:15:101","nodeType":"YulFunctionCall","src":"3294:15:101"},"nativeSrc":"3294:15:101","nodeType":"YulExpressionStatement","src":"3294:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3325:1:101","nodeType":"YulLiteral","src":"3325:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3328:4:101","nodeType":"YulLiteral","src":"3328:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3318:6:101","nodeType":"YulIdentifier","src":"3318:6:101"},"nativeSrc":"3318:15:101","nodeType":"YulFunctionCall","src":"3318:15:101"},"nativeSrc":"3318:15:101","nodeType":"YulExpressionStatement","src":"3318:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3159:180:101","nodeType":"YulFunctionDefinition","src":"3159:180:101"},{"body":{"nativeSrc":"3387:143:101","nodeType":"YulBlock","src":"3387:143:101","statements":[{"nativeSrc":"3397:25:101","nodeType":"YulAssignment","src":"3397:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3420:1:101","nodeType":"YulIdentifier","src":"3420:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3402:17:101","nodeType":"YulIdentifier","src":"3402:17:101"},"nativeSrc":"3402:20:101","nodeType":"YulFunctionCall","src":"3402:20:101"},"variableNames":[{"name":"x","nativeSrc":"3397:1:101","nodeType":"YulIdentifier","src":"3397:1:101"}]},{"nativeSrc":"3431:25:101","nodeType":"YulAssignment","src":"3431:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3454:1:101","nodeType":"YulIdentifier","src":"3454:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3436:17:101","nodeType":"YulIdentifier","src":"3436:17:101"},"nativeSrc":"3436:20:101","nodeType":"YulFunctionCall","src":"3436:20:101"},"variableNames":[{"name":"y","nativeSrc":"3431:1:101","nodeType":"YulIdentifier","src":"3431:1:101"}]},{"body":{"nativeSrc":"3478:22:101","nodeType":"YulBlock","src":"3478:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3480:16:101","nodeType":"YulIdentifier","src":"3480:16:101"},"nativeSrc":"3480:18:101","nodeType":"YulFunctionCall","src":"3480:18:101"},"nativeSrc":"3480:18:101","nodeType":"YulExpressionStatement","src":"3480:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3475:1:101","nodeType":"YulIdentifier","src":"3475:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3468:6:101","nodeType":"YulIdentifier","src":"3468:6:101"},"nativeSrc":"3468:9:101","nodeType":"YulFunctionCall","src":"3468:9:101"},"nativeSrc":"3465:35:101","nodeType":"YulIf","src":"3465:35:101"},{"nativeSrc":"3510:14:101","nodeType":"YulAssignment","src":"3510:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3519:1:101","nodeType":"YulIdentifier","src":"3519:1:101"},{"name":"y","nativeSrc":"3522:1:101","nodeType":"YulIdentifier","src":"3522:1:101"}],"functionName":{"name":"div","nativeSrc":"3515:3:101","nodeType":"YulIdentifier","src":"3515:3:101"},"nativeSrc":"3515:9:101","nodeType":"YulFunctionCall","src":"3515:9:101"},"variableNames":[{"name":"r","nativeSrc":"3510:1:101","nodeType":"YulIdentifier","src":"3510:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3345:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3376:1:101","nodeType":"YulTypedName","src":"3376:1:101","type":""},{"name":"y","nativeSrc":"3379:1:101","nodeType":"YulTypedName","src":"3379:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3385:1:101","nodeType":"YulTypedName","src":"3385:1:101","type":""}],"src":"3345:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n        if slt(sub(dataEnd, headStart), 320) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 288\n\n            value9 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516110bd3803806110bd83398101604081905261002f916101a3565b8888888888888888886100466301e133808761028c565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610138565b6100ce88610138565b6100d787610138565b6100e082610138565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261011a8a610138565b5050506001600160a01b03909616610100525061029f945050505050565b6001600160a01b03811661015f576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61017d81610162565b811461015f575f80fd5b805161016e81610174565b8061017d565b805161016e81610192565b5f805f805f805f805f806101408b8d0312156101c0576101c05f80fd5b5f6101cb8d8d610187565b9a505060206101dc8d828e01610187565b99505060406101ed8d828e01610187565b98505060606101fe8d828e01610187565b975050608061020f8d828e01610198565b96505060a06102208d828e01610198565b95505060c06102318d828e01610198565b94505060e06102428d828e01610198565b9350506101006102548d828e01610187565b9250506101206102668d828e01610198565b9150509295989b9194979a5092959850565b634e487b7160e01b5f52601260045260245ffd5b5f8261029a5761029a610278565b500490565b60805160a05160c05160e05161010051610da96103145f395f818161024501526106a701525f818161018901526108e801525f818161027501528181610574015261077b01525f8181610139015281816105a101526107aa01525f818161020b015281816102b201526108290152610da95ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780638b9d294014610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610999565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109c6565b61011e60045481565b61011e61017f3660046109f5565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a38565b6101cb6101c6366004610a57565b610360565b005b61011e60025481565b6101cb6101e4366004610a75565b6103d1565b6101f16104a5565b60405161012b9190610ab7565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a75565b61062c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61072a565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f81610777565b9392505050565b5f61032f61072a565b90505f818311801561034057508115155b61034a578261034c565b815b905061035781610777565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108cf565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108cf565b5f5461041f6301e1338084610aed565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610999565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61072a565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b00565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761072a565b9050600454818311610529578261052b565b815b6105359190610b13565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109c6565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108cf565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663282a87006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107259190610b31565b905090565b5f806003544261073a9190610b00565b90505f670de0b6b3a7640000825f546002546107569190610b4f565b6107609190610b4f565b61076a9190610aed565b60025461031f9190610b13565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107e591906109c6565b602060405180830381865afa158015610800573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108249190610b31565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610887573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ab9190610b82565b60ff1690506108bb81600a610cac565b6108c58487610b4f565b6103579190610aed565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061091f9033908690600401610cf5565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e9190610d28565b90508061098d57333083604051634a3fa29360e01b815260040161098493929190610d46565b60405180910390fd5b5050565b805b82525050565b602081016109a78284610991565b92915050565b5f6001600160a01b0382166109a7565b610993816109ad565b602081016109a782846109bd565b6109dd816109ad565b81146109e7575f80fd5b50565b80356109a7816109d4565b5f60208284031215610a0857610a085f80fd5b5f610a1384846109ea565b949350505050565b5f6109a7826109ad565b5f6109a782610a1b565b61099381610a25565b602081016109a78284610a2f565b806109dd565b80356109a781610a46565b5f60208284031215610a6a57610a6a5f80fd5b5f610a138484610a4c565b5f8060408385031215610a8957610a895f80fd5b5f610a948585610a4c565b9250506020610aa585828601610a4c565b9150509250929050565b801515610993565b602081016109a78284610aaf565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610afb57610afb610ac5565b500490565b818103818111156109a7576109a7610ad9565b808201808211156109a7576109a7610ad9565b80516109a781610a46565b5f60208284031215610b4457610b445f80fd5b5f610a138484610b26565b818102808215838204851417610b6757610b67610ad9565b5092915050565b60ff81166109dd565b80516109a781610b6e565b5f60208284031215610b9557610b955f80fd5b5f610a138484610b77565b80825b6001851115610bdf57808604811115610bbe57610bbe610ad9565b6001851615610bcc57908102905b8002610bd88560011c90565b9450610ba3565b94509492505050565b5f82610bf65750600161031f565b81610c0257505f61031f565b8160018114610c185760028114610c2257610c4f565b600191505061031f565b60ff841115610c3357610c33610ad9565b8360020a915084821115610c4957610c49610ad9565b5061031f565b5060208310610133831016604e8410600b8410161715610c82575081810a83811115610c7d57610c7d610ad9565b61031f565b610c8f8484846001610ba0565b92509050818404811115610ca557610ca5610ad9565b0292915050565b5f61031f5f198484610be8565b8281835e505f910152565b5f610ccd825190565b808452602084019350610ce4818560208601610cb9565b601f01601f19169290920192915050565b60408101610d0382856109bd565b8181036020830152610a138184610cc4565b8015156109dd565b80516109a781610d15565b5f60208284031215610d3b57610d3b5f80fd5b5f610a138484610d1d565b60608101610d5482866109bd565b610d6160208301856109bd565b81810360408301526103578184610cc456fea26469706673582212202dcac3ee550544790d58d02ab03d610c6ed0fce29ad7b3f0d0bac649d48d9d0264736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10BD CODESIZE SUB DUP1 PUSH2 0x10BD DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1A3 JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x28C JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x138 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x11A DUP11 PUSH2 0x138 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH2 0x100 MSTORE POP PUSH2 0x29F SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17D DUP2 PUSH2 0x162 JUMP JUMPDEST DUP2 EQ PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x174 JUMP JUMPDEST DUP1 PUSH2 0x17D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x192 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x1C0 JUMPI PUSH2 0x1C0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CB DUP14 DUP14 PUSH2 0x187 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x1DC DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x1ED DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x1FE DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x20F DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x220 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x231 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 PUSH2 0x242 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 PUSH2 0x254 DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 PUSH2 0x266 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x29A JUMPI PUSH2 0x29A PUSH2 0x278 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xDA9 PUSH2 0x314 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x245 ADD MSTORE PUSH2 0x6A7 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x189 ADD MSTORE PUSH2 0x8E8 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x275 ADD MSTORE DUP2 DUP2 PUSH2 0x574 ADD MSTORE PUSH2 0x77B ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x5A1 ADD MSTORE PUSH2 0x7AA ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x20B ADD MSTORE DUP2 DUP2 PUSH2 0x2B2 ADD MSTORE PUSH2 0x829 ADD MSTORE PUSH2 0xDA9 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x8B9D2940 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x72A JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xAED JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x72A JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB00 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x282A8700 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 0x701 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x725 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x73A SWAP2 SWAP1 PUSH2 0xB00 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x756 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x760 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x800 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x824 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x887 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8AB SWAP2 SWAP1 PUSH2 0xB82 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8BB DUP2 PUSH1 0xA PUSH2 0xCAC JUMP JUMPDEST PUSH2 0x8C5 DUP5 DUP8 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x91F SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x95E SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x98D JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x984 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9A7 JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0x9DD DUP2 PUSH2 0x9AD JUMP JUMPDEST DUP2 EQ PUSH2 0x9E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0x9D4 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA08 JUMPI PUSH2 0xA08 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0x9EA JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0x9AD JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0xA1B JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0xA25 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xA2F JUMP JUMPDEST DUP1 PUSH2 0x9DD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA6A JUMPI PUSH2 0xA6A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xA4C JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA89 JUMPI PUSH2 0xA89 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA94 DUP6 DUP6 PUSH2 0xA4C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA5 DUP6 DUP3 DUP7 ADD PUSH2 0xA4C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x993 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xAAF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAFB JUMPI PUSH2 0xAFB PUSH2 0xAC5 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB44 JUMPI PUSH2 0xB44 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB26 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB67 JUMPI PUSH2 0xB67 PUSH2 0xAD9 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xB6E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB77 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBDF JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBBE JUMPI PUSH2 0xBBE PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBCC JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBD8 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBA3 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBF6 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC02 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC18 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC22 JUMPI PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC33 JUMPI PUSH2 0xC33 PUSH2 0xAD9 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC49 PUSH2 0xAD9 JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC82 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC7D JUMPI PUSH2 0xC7D PUSH2 0xAD9 JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xC8F DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBA0 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCA5 JUMPI PUSH2 0xCA5 PUSH2 0xAD9 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBE8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCCD DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD03 DUP3 DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA13 DUP2 DUP5 PUSH2 0xCC4 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xD15 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xD1D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD54 DUP3 DUP7 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0xD61 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCC4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0xCA 0xC3 0xEE SSTORE SDIV PREVRANDAO PUSH26 0xD58D02AB03D610C6ED0FCE29AD7B3F0D0BAC649D48D9D026473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"490:1261:53:-:0;;;699:801;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1114:15;1143;1172;1201:16;1231:17;1262:30;1306:24;1344:20;1378:12;3527:36:67;408:10:17;1201:16:53;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1415:32:53::1;1436:10:::0;1415:20:::1;:32::i;:::-;-1:-1:-1::0;;;;;;;;1457:36:53;;::::1;;::::0;-1:-1:-1;490:1261:53;;-1:-1:-1;;;;;490:1261:53;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1762::-;1356:6;1364;1372;1380;1388;1396;1404;1412;1420;1428;1477:3;1465:9;1456:7;1452:23;1448:33;1445:120;;;1484:79;197:1;194;187:12;1484:79;1604:1;1629:64;1685:7;1665:9;1629:64;:::i;:::-;1619:74;;1575:128;1742:2;1768:64;1824:7;1815:6;1804:9;1800:22;1768:64;:::i;:::-;1758:74;;1713:129;1881:2;1907:64;1963:7;1954:6;1943:9;1939:22;1907:64;:::i;:::-;1897:74;;1852:129;2020:2;2046:64;2102:7;2093:6;2082:9;2078:22;2046:64;:::i;:::-;2036:74;;1991:129;2159:3;2186:64;2242:7;2233:6;2222:9;2218:22;2186:64;:::i;:::-;2176:74;;2130:130;2299:3;2326:64;2382:7;2373:6;2362:9;2358:22;2326:64;:::i;:::-;2316:74;;2270:130;2439:3;2466:64;2522:7;2513:6;2502:9;2498:22;2466:64;:::i;:::-;2456:74;;2410:130;2579:3;2606:64;2662:7;2653:6;2642:9;2638:22;2606:64;:::i;:::-;2596:74;;2550:130;2719:3;2746:64;2802:7;2793:6;2782:9;2778:22;2746:64;:::i;:::-;2736:74;;2690:130;2859:3;2886:64;2942:7;2933:6;2922:9;2918:22;2886:64;:::i;:::-;2876:74;;2830:130;1205:1762;;;;;;;;;;;;;:::o;2973:180::-;-1:-1:-1;;;3018:1:101;3011:88;3118:4;3115:1;3108:15;3142:4;3139:1;3132:15;3345:185;3385:1;3475;3465:35;;3480:18;;:::i;:::-;-1:-1:-1;3515:9:101;;3345:185::o;:::-;490:1261:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@ACCOUNTANT_5163":{"entryPoint":null,"id":5163,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1911,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2255,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1834,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":687,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_5221":{"entryPoint":1700,"id":5221,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1189,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":977,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":864,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1580,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1248,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2538,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3357,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2854,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2935,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2549,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3368,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2647,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2865,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2677,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2946,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2493,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2735,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2607,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3268,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2449,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2502,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3398,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3317,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2743,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2616,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccountant_$3450__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2835,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2797,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2976,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3244,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3048,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2895,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2816,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2477,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2597,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccountant_$3450_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2587,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3257,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2777,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2757,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2516,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3349,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2630,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2926,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13165:101","nodeType":"YulBlock","src":"0:13165:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4561:66:101","nodeType":"YulBlock","src":"4561:66:101","statements":[{"nativeSrc":"4571:50:101","nodeType":"YulAssignment","src":"4571:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4615:5:101","nodeType":"YulIdentifier","src":"4615:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4584:30:101","nodeType":"YulIdentifier","src":"4584:30:101"},"nativeSrc":"4584:37:101","nodeType":"YulFunctionCall","src":"4584:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4571:9:101","nodeType":"YulIdentifier","src":"4571:9:101"}]}]},"name":"convert_t_contract$_IAccountant_$3450_to_t_address","nativeSrc":"4481:146:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4541:5:101","nodeType":"YulTypedName","src":"4541:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4551:9:101","nodeType":"YulTypedName","src":"4551:9:101","type":""}],"src":"4481:146:101"},{"body":{"nativeSrc":"4718:86:101","nodeType":"YulBlock","src":"4718:86:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4735:3:101","nodeType":"YulIdentifier","src":"4735:3:101"},{"arguments":[{"name":"value","nativeSrc":"4791:5:101","nodeType":"YulIdentifier","src":"4791:5:101"}],"functionName":{"name":"convert_t_contract$_IAccountant_$3450_to_t_address","nativeSrc":"4740:50:101","nodeType":"YulIdentifier","src":"4740:50:101"},"nativeSrc":"4740:57:101","nodeType":"YulFunctionCall","src":"4740:57:101"}],"functionName":{"name":"mstore","nativeSrc":"4728:6:101","nodeType":"YulIdentifier","src":"4728:6:101"},"nativeSrc":"4728:70:101","nodeType":"YulFunctionCall","src":"4728:70:101"},"nativeSrc":"4728:70:101","nodeType":"YulExpressionStatement","src":"4728:70:101"}]},"name":"abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack","nativeSrc":"4633:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4706:5:101","nodeType":"YulTypedName","src":"4706:5:101","type":""},{"name":"pos","nativeSrc":"4713:3:101","nodeType":"YulTypedName","src":"4713:3:101","type":""}],"src":"4633:171:101"},{"body":{"nativeSrc":"4928:144:101","nodeType":"YulBlock","src":"4928:144:101","statements":[{"nativeSrc":"4938:26:101","nodeType":"YulAssignment","src":"4938:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4950:9:101","nodeType":"YulIdentifier","src":"4950:9:101"},{"kind":"number","nativeSrc":"4961:2:101","nodeType":"YulLiteral","src":"4961:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4946:3:101","nodeType":"YulIdentifier","src":"4946:3:101"},"nativeSrc":"4946:18:101","nodeType":"YulFunctionCall","src":"4946:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4938:4:101","nodeType":"YulIdentifier","src":"4938:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5038:6:101","nodeType":"YulIdentifier","src":"5038:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5051:9:101","nodeType":"YulIdentifier","src":"5051:9:101"},{"kind":"number","nativeSrc":"5062:1:101","nodeType":"YulLiteral","src":"5062:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5047:3:101","nodeType":"YulIdentifier","src":"5047:3:101"},"nativeSrc":"5047:17:101","nodeType":"YulFunctionCall","src":"5047:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack","nativeSrc":"4974:63:101","nodeType":"YulIdentifier","src":"4974:63:101"},"nativeSrc":"4974:91:101","nodeType":"YulFunctionCall","src":"4974:91:101"},"nativeSrc":"4974:91:101","nodeType":"YulExpressionStatement","src":"4974:91:101"}]},"name":"abi_encode_tuple_t_contract$_IAccountant_$3450__to_t_address__fromStack_reversed","nativeSrc":"4810:262:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4900:9:101","nodeType":"YulTypedName","src":"4900:9:101","type":""},{"name":"value0","nativeSrc":"4912:6:101","nodeType":"YulTypedName","src":"4912:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4923:4:101","nodeType":"YulTypedName","src":"4923:4:101","type":""}],"src":"4810:262:101"},{"body":{"nativeSrc":"5171:66:101","nodeType":"YulBlock","src":"5171:66:101","statements":[{"nativeSrc":"5181:50:101","nodeType":"YulAssignment","src":"5181:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5225:5:101","nodeType":"YulIdentifier","src":"5225:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5194:30:101","nodeType":"YulIdentifier","src":"5194:30:101"},"nativeSrc":"5194:37:101","nodeType":"YulFunctionCall","src":"5194:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5181:9:101","nodeType":"YulIdentifier","src":"5181:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5078:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5151:5:101","nodeType":"YulTypedName","src":"5151:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5161:9:101","nodeType":"YulTypedName","src":"5161:9:101","type":""}],"src":"5078:159:101"},{"body":{"nativeSrc":"5341:99:101","nodeType":"YulBlock","src":"5341:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5358:3:101","nodeType":"YulIdentifier","src":"5358:3:101"},{"arguments":[{"name":"value","nativeSrc":"5427:5:101","nodeType":"YulIdentifier","src":"5427:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5363:63:101","nodeType":"YulIdentifier","src":"5363:63:101"},"nativeSrc":"5363:70:101","nodeType":"YulFunctionCall","src":"5363:70:101"}],"functionName":{"name":"mstore","nativeSrc":"5351:6:101","nodeType":"YulIdentifier","src":"5351:6:101"},"nativeSrc":"5351:83:101","nodeType":"YulFunctionCall","src":"5351:83:101"},"nativeSrc":"5351:83:101","nodeType":"YulExpressionStatement","src":"5351:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5243:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5329:5:101","nodeType":"YulTypedName","src":"5329:5:101","type":""},{"name":"pos","nativeSrc":"5336:3:101","nodeType":"YulTypedName","src":"5336:3:101","type":""}],"src":"5243:197:101"},{"body":{"nativeSrc":"5577:157:101","nodeType":"YulBlock","src":"5577:157:101","statements":[{"nativeSrc":"5587:26:101","nodeType":"YulAssignment","src":"5587:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5599:9:101","nodeType":"YulIdentifier","src":"5599:9:101"},{"kind":"number","nativeSrc":"5610:2:101","nodeType":"YulLiteral","src":"5610:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5595:3:101","nodeType":"YulIdentifier","src":"5595:3:101"},"nativeSrc":"5595:18:101","nodeType":"YulFunctionCall","src":"5595:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5587:4:101","nodeType":"YulIdentifier","src":"5587:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5700:6:101","nodeType":"YulIdentifier","src":"5700:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5713:9:101","nodeType":"YulIdentifier","src":"5713:9:101"},{"kind":"number","nativeSrc":"5724:1:101","nodeType":"YulLiteral","src":"5724:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5709:3:101","nodeType":"YulIdentifier","src":"5709:3:101"},"nativeSrc":"5709:17:101","nodeType":"YulFunctionCall","src":"5709:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5623:76:101","nodeType":"YulIdentifier","src":"5623:76:101"},"nativeSrc":"5623:104:101","nodeType":"YulFunctionCall","src":"5623:104:101"},"nativeSrc":"5623:104:101","nodeType":"YulExpressionStatement","src":"5623:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"5446:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5549:9:101","nodeType":"YulTypedName","src":"5549:9:101","type":""},{"name":"value0","nativeSrc":"5561:6:101","nodeType":"YulTypedName","src":"5561:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5572:4:101","nodeType":"YulTypedName","src":"5572:4:101","type":""}],"src":"5446:288:101"},{"body":{"nativeSrc":"5768:152:101","nodeType":"YulBlock","src":"5768:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5785:1:101","nodeType":"YulLiteral","src":"5785:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5788:77:101","nodeType":"YulLiteral","src":"5788:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5778:6:101","nodeType":"YulIdentifier","src":"5778:6:101"},"nativeSrc":"5778:88:101","nodeType":"YulFunctionCall","src":"5778:88:101"},"nativeSrc":"5778:88:101","nodeType":"YulExpressionStatement","src":"5778:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5882:1:101","nodeType":"YulLiteral","src":"5882:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5885:4:101","nodeType":"YulLiteral","src":"5885:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5875:6:101","nodeType":"YulIdentifier","src":"5875:6:101"},"nativeSrc":"5875:15:101","nodeType":"YulFunctionCall","src":"5875:15:101"},"nativeSrc":"5875:15:101","nodeType":"YulExpressionStatement","src":"5875:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5906:1:101","nodeType":"YulLiteral","src":"5906:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5909:4:101","nodeType":"YulLiteral","src":"5909:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5899:6:101","nodeType":"YulIdentifier","src":"5899:6:101"},"nativeSrc":"5899:15:101","nodeType":"YulFunctionCall","src":"5899:15:101"},"nativeSrc":"5899:15:101","nodeType":"YulExpressionStatement","src":"5899:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5740:180:101","nodeType":"YulFunctionDefinition","src":"5740:180:101"},{"body":{"nativeSrc":"5954:152:101","nodeType":"YulBlock","src":"5954:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5971:1:101","nodeType":"YulLiteral","src":"5971:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5974:77:101","nodeType":"YulLiteral","src":"5974:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5964:6:101","nodeType":"YulIdentifier","src":"5964:6:101"},"nativeSrc":"5964:88:101","nodeType":"YulFunctionCall","src":"5964:88:101"},"nativeSrc":"5964:88:101","nodeType":"YulExpressionStatement","src":"5964:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6068:1:101","nodeType":"YulLiteral","src":"6068:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6071:4:101","nodeType":"YulLiteral","src":"6071:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6061:6:101","nodeType":"YulIdentifier","src":"6061:6:101"},"nativeSrc":"6061:15:101","nodeType":"YulFunctionCall","src":"6061:15:101"},"nativeSrc":"6061:15:101","nodeType":"YulExpressionStatement","src":"6061:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6092:1:101","nodeType":"YulLiteral","src":"6092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6095:4:101","nodeType":"YulLiteral","src":"6095:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6085:6:101","nodeType":"YulIdentifier","src":"6085:6:101"},"nativeSrc":"6085:15:101","nodeType":"YulFunctionCall","src":"6085:15:101"},"nativeSrc":"6085:15:101","nodeType":"YulExpressionStatement","src":"6085:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5926:180:101","nodeType":"YulFunctionDefinition","src":"5926:180:101"},{"body":{"nativeSrc":"6154:143:101","nodeType":"YulBlock","src":"6154:143:101","statements":[{"nativeSrc":"6164:25:101","nodeType":"YulAssignment","src":"6164:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6187:1:101","nodeType":"YulIdentifier","src":"6187:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6169:17:101","nodeType":"YulIdentifier","src":"6169:17:101"},"nativeSrc":"6169:20:101","nodeType":"YulFunctionCall","src":"6169:20:101"},"variableNames":[{"name":"x","nativeSrc":"6164:1:101","nodeType":"YulIdentifier","src":"6164:1:101"}]},{"nativeSrc":"6198:25:101","nodeType":"YulAssignment","src":"6198:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6221:1:101","nodeType":"YulIdentifier","src":"6221:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6203:17:101","nodeType":"YulIdentifier","src":"6203:17:101"},"nativeSrc":"6203:20:101","nodeType":"YulFunctionCall","src":"6203:20:101"},"variableNames":[{"name":"y","nativeSrc":"6198:1:101","nodeType":"YulIdentifier","src":"6198:1:101"}]},{"body":{"nativeSrc":"6245:22:101","nodeType":"YulBlock","src":"6245:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6247:16:101","nodeType":"YulIdentifier","src":"6247:16:101"},"nativeSrc":"6247:18:101","nodeType":"YulFunctionCall","src":"6247:18:101"},"nativeSrc":"6247:18:101","nodeType":"YulExpressionStatement","src":"6247:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6242:1:101","nodeType":"YulIdentifier","src":"6242:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6235:6:101","nodeType":"YulIdentifier","src":"6235:6:101"},"nativeSrc":"6235:9:101","nodeType":"YulFunctionCall","src":"6235:9:101"},"nativeSrc":"6232:35:101","nodeType":"YulIf","src":"6232:35:101"},{"nativeSrc":"6277:14:101","nodeType":"YulAssignment","src":"6277:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6286:1:101","nodeType":"YulIdentifier","src":"6286:1:101"},{"name":"y","nativeSrc":"6289:1:101","nodeType":"YulIdentifier","src":"6289:1:101"}],"functionName":{"name":"div","nativeSrc":"6282:3:101","nodeType":"YulIdentifier","src":"6282:3:101"},"nativeSrc":"6282:9:101","nodeType":"YulFunctionCall","src":"6282:9:101"},"variableNames":[{"name":"r","nativeSrc":"6277:1:101","nodeType":"YulIdentifier","src":"6277:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6112:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6143:1:101","nodeType":"YulTypedName","src":"6143:1:101","type":""},{"name":"y","nativeSrc":"6146:1:101","nodeType":"YulTypedName","src":"6146:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6152:1:101","nodeType":"YulTypedName","src":"6152:1:101","type":""}],"src":"6112:185:101"},{"body":{"nativeSrc":"6348:149:101","nodeType":"YulBlock","src":"6348:149:101","statements":[{"nativeSrc":"6358:25:101","nodeType":"YulAssignment","src":"6358:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6381:1:101","nodeType":"YulIdentifier","src":"6381:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6363:17:101","nodeType":"YulIdentifier","src":"6363:17:101"},"nativeSrc":"6363:20:101","nodeType":"YulFunctionCall","src":"6363:20:101"},"variableNames":[{"name":"x","nativeSrc":"6358:1:101","nodeType":"YulIdentifier","src":"6358:1:101"}]},{"nativeSrc":"6392:25:101","nodeType":"YulAssignment","src":"6392:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6415:1:101","nodeType":"YulIdentifier","src":"6415:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6397:17:101","nodeType":"YulIdentifier","src":"6397:17:101"},"nativeSrc":"6397:20:101","nodeType":"YulFunctionCall","src":"6397:20:101"},"variableNames":[{"name":"y","nativeSrc":"6392:1:101","nodeType":"YulIdentifier","src":"6392:1:101"}]},{"nativeSrc":"6426:17:101","nodeType":"YulAssignment","src":"6426:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6438:1:101","nodeType":"YulIdentifier","src":"6438:1:101"},{"name":"y","nativeSrc":"6441:1:101","nodeType":"YulIdentifier","src":"6441:1:101"}],"functionName":{"name":"sub","nativeSrc":"6434:3:101","nodeType":"YulIdentifier","src":"6434:3:101"},"nativeSrc":"6434:9:101","nodeType":"YulFunctionCall","src":"6434:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6426:4:101","nodeType":"YulIdentifier","src":"6426:4:101"}]},{"body":{"nativeSrc":"6468:22:101","nodeType":"YulBlock","src":"6468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6470:16:101","nodeType":"YulIdentifier","src":"6470:16:101"},"nativeSrc":"6470:18:101","nodeType":"YulFunctionCall","src":"6470:18:101"},"nativeSrc":"6470:18:101","nodeType":"YulExpressionStatement","src":"6470:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6459:4:101","nodeType":"YulIdentifier","src":"6459:4:101"},{"name":"x","nativeSrc":"6465:1:101","nodeType":"YulIdentifier","src":"6465:1:101"}],"functionName":{"name":"gt","nativeSrc":"6456:2:101","nodeType":"YulIdentifier","src":"6456:2:101"},"nativeSrc":"6456:11:101","nodeType":"YulFunctionCall","src":"6456:11:101"},"nativeSrc":"6453:37:101","nodeType":"YulIf","src":"6453:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6303:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6334:1:101","nodeType":"YulTypedName","src":"6334:1:101","type":""},{"name":"y","nativeSrc":"6337:1:101","nodeType":"YulTypedName","src":"6337:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6343:4:101","nodeType":"YulTypedName","src":"6343:4:101","type":""}],"src":"6303:194:101"},{"body":{"nativeSrc":"6547:147:101","nodeType":"YulBlock","src":"6547:147:101","statements":[{"nativeSrc":"6557:25:101","nodeType":"YulAssignment","src":"6557:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6580:1:101","nodeType":"YulIdentifier","src":"6580:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6562:17:101","nodeType":"YulIdentifier","src":"6562:17:101"},"nativeSrc":"6562:20:101","nodeType":"YulFunctionCall","src":"6562:20:101"},"variableNames":[{"name":"x","nativeSrc":"6557:1:101","nodeType":"YulIdentifier","src":"6557:1:101"}]},{"nativeSrc":"6591:25:101","nodeType":"YulAssignment","src":"6591:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6614:1:101","nodeType":"YulIdentifier","src":"6614:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6596:17:101","nodeType":"YulIdentifier","src":"6596:17:101"},"nativeSrc":"6596:20:101","nodeType":"YulFunctionCall","src":"6596:20:101"},"variableNames":[{"name":"y","nativeSrc":"6591:1:101","nodeType":"YulIdentifier","src":"6591:1:101"}]},{"nativeSrc":"6625:16:101","nodeType":"YulAssignment","src":"6625:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6636:1:101","nodeType":"YulIdentifier","src":"6636:1:101"},{"name":"y","nativeSrc":"6639:1:101","nodeType":"YulIdentifier","src":"6639:1:101"}],"functionName":{"name":"add","nativeSrc":"6632:3:101","nodeType":"YulIdentifier","src":"6632:3:101"},"nativeSrc":"6632:9:101","nodeType":"YulFunctionCall","src":"6632:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6625:3:101","nodeType":"YulIdentifier","src":"6625:3:101"}]},{"body":{"nativeSrc":"6665:22:101","nodeType":"YulBlock","src":"6665:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6667:16:101","nodeType":"YulIdentifier","src":"6667:16:101"},"nativeSrc":"6667:18:101","nodeType":"YulFunctionCall","src":"6667:18:101"},"nativeSrc":"6667:18:101","nodeType":"YulExpressionStatement","src":"6667:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6657:1:101","nodeType":"YulIdentifier","src":"6657:1:101"},{"name":"sum","nativeSrc":"6660:3:101","nodeType":"YulIdentifier","src":"6660:3:101"}],"functionName":{"name":"gt","nativeSrc":"6654:2:101","nodeType":"YulIdentifier","src":"6654:2:101"},"nativeSrc":"6654:10:101","nodeType":"YulFunctionCall","src":"6654:10:101"},"nativeSrc":"6651:36:101","nodeType":"YulIf","src":"6651:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6503:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6534:1:101","nodeType":"YulTypedName","src":"6534:1:101","type":""},{"name":"y","nativeSrc":"6537:1:101","nodeType":"YulTypedName","src":"6537:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6543:3:101","nodeType":"YulTypedName","src":"6543:3:101","type":""}],"src":"6503:191:101"},{"body":{"nativeSrc":"6763:80:101","nodeType":"YulBlock","src":"6763:80:101","statements":[{"nativeSrc":"6773:22:101","nodeType":"YulAssignment","src":"6773:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6788:6:101","nodeType":"YulIdentifier","src":"6788:6:101"}],"functionName":{"name":"mload","nativeSrc":"6782:5:101","nodeType":"YulIdentifier","src":"6782:5:101"},"nativeSrc":"6782:13:101","nodeType":"YulFunctionCall","src":"6782:13:101"},"variableNames":[{"name":"value","nativeSrc":"6773:5:101","nodeType":"YulIdentifier","src":"6773:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6831:5:101","nodeType":"YulIdentifier","src":"6831:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6804:26:101","nodeType":"YulIdentifier","src":"6804:26:101"},"nativeSrc":"6804:33:101","nodeType":"YulFunctionCall","src":"6804:33:101"},"nativeSrc":"6804:33:101","nodeType":"YulExpressionStatement","src":"6804:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6700:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6741:6:101","nodeType":"YulTypedName","src":"6741:6:101","type":""},{"name":"end","nativeSrc":"6749:3:101","nodeType":"YulTypedName","src":"6749:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6757:5:101","nodeType":"YulTypedName","src":"6757:5:101","type":""}],"src":"6700:143:101"},{"body":{"nativeSrc":"6926:274:101","nodeType":"YulBlock","src":"6926:274:101","statements":[{"body":{"nativeSrc":"6972:83:101","nodeType":"YulBlock","src":"6972:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6974:77:101","nodeType":"YulIdentifier","src":"6974:77:101"},"nativeSrc":"6974:79:101","nodeType":"YulFunctionCall","src":"6974:79:101"},"nativeSrc":"6974:79:101","nodeType":"YulExpressionStatement","src":"6974:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6947:7:101","nodeType":"YulIdentifier","src":"6947:7:101"},{"name":"headStart","nativeSrc":"6956:9:101","nodeType":"YulIdentifier","src":"6956:9:101"}],"functionName":{"name":"sub","nativeSrc":"6943:3:101","nodeType":"YulIdentifier","src":"6943:3:101"},"nativeSrc":"6943:23:101","nodeType":"YulFunctionCall","src":"6943:23:101"},{"kind":"number","nativeSrc":"6968:2:101","nodeType":"YulLiteral","src":"6968:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6939:3:101","nodeType":"YulIdentifier","src":"6939:3:101"},"nativeSrc":"6939:32:101","nodeType":"YulFunctionCall","src":"6939:32:101"},"nativeSrc":"6936:119:101","nodeType":"YulIf","src":"6936:119:101"},{"nativeSrc":"7065:128:101","nodeType":"YulBlock","src":"7065:128:101","statements":[{"nativeSrc":"7080:15:101","nodeType":"YulVariableDeclaration","src":"7080:15:101","value":{"kind":"number","nativeSrc":"7094:1:101","nodeType":"YulLiteral","src":"7094:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7084:6:101","nodeType":"YulTypedName","src":"7084:6:101","type":""}]},{"nativeSrc":"7109:74:101","nodeType":"YulAssignment","src":"7109:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7155:9:101","nodeType":"YulIdentifier","src":"7155:9:101"},{"name":"offset","nativeSrc":"7166:6:101","nodeType":"YulIdentifier","src":"7166:6:101"}],"functionName":{"name":"add","nativeSrc":"7151:3:101","nodeType":"YulIdentifier","src":"7151:3:101"},"nativeSrc":"7151:22:101","nodeType":"YulFunctionCall","src":"7151:22:101"},{"name":"dataEnd","nativeSrc":"7175:7:101","nodeType":"YulIdentifier","src":"7175:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7119:31:101","nodeType":"YulIdentifier","src":"7119:31:101"},"nativeSrc":"7119:64:101","nodeType":"YulFunctionCall","src":"7119:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7109:6:101","nodeType":"YulIdentifier","src":"7109:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6849:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6896:9:101","nodeType":"YulTypedName","src":"6896:9:101","type":""},{"name":"dataEnd","nativeSrc":"6907:7:101","nodeType":"YulTypedName","src":"6907:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6919:6:101","nodeType":"YulTypedName","src":"6919:6:101","type":""}],"src":"6849:351:101"},{"body":{"nativeSrc":"7254:362:101","nodeType":"YulBlock","src":"7254:362:101","statements":[{"nativeSrc":"7264:25:101","nodeType":"YulAssignment","src":"7264:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7287:1:101","nodeType":"YulIdentifier","src":"7287:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7269:17:101","nodeType":"YulIdentifier","src":"7269:17:101"},"nativeSrc":"7269:20:101","nodeType":"YulFunctionCall","src":"7269:20:101"},"variableNames":[{"name":"x","nativeSrc":"7264:1:101","nodeType":"YulIdentifier","src":"7264:1:101"}]},{"nativeSrc":"7298:25:101","nodeType":"YulAssignment","src":"7298:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7321:1:101","nodeType":"YulIdentifier","src":"7321:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7303:17:101","nodeType":"YulIdentifier","src":"7303:17:101"},"nativeSrc":"7303:20:101","nodeType":"YulFunctionCall","src":"7303:20:101"},"variableNames":[{"name":"y","nativeSrc":"7298:1:101","nodeType":"YulIdentifier","src":"7298:1:101"}]},{"nativeSrc":"7332:28:101","nodeType":"YulVariableDeclaration","src":"7332:28:101","value":{"arguments":[{"name":"x","nativeSrc":"7355:1:101","nodeType":"YulIdentifier","src":"7355:1:101"},{"name":"y","nativeSrc":"7358:1:101","nodeType":"YulIdentifier","src":"7358:1:101"}],"functionName":{"name":"mul","nativeSrc":"7351:3:101","nodeType":"YulIdentifier","src":"7351:3:101"},"nativeSrc":"7351:9:101","nodeType":"YulFunctionCall","src":"7351:9:101"},"variables":[{"name":"product_raw","nativeSrc":"7336:11:101","nodeType":"YulTypedName","src":"7336:11:101","type":""}]},{"nativeSrc":"7369:41:101","nodeType":"YulAssignment","src":"7369:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"7398:11:101","nodeType":"YulIdentifier","src":"7398:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7380:17:101","nodeType":"YulIdentifier","src":"7380:17:101"},"nativeSrc":"7380:30:101","nodeType":"YulFunctionCall","src":"7380:30:101"},"variableNames":[{"name":"product","nativeSrc":"7369:7:101","nodeType":"YulIdentifier","src":"7369:7:101"}]},{"body":{"nativeSrc":"7587:22:101","nodeType":"YulBlock","src":"7587:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7589:16:101","nodeType":"YulIdentifier","src":"7589:16:101"},"nativeSrc":"7589:18:101","nodeType":"YulFunctionCall","src":"7589:18:101"},"nativeSrc":"7589:18:101","nodeType":"YulExpressionStatement","src":"7589:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7520:1:101","nodeType":"YulIdentifier","src":"7520:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7513:6:101","nodeType":"YulIdentifier","src":"7513:6:101"},"nativeSrc":"7513:9:101","nodeType":"YulFunctionCall","src":"7513:9:101"},{"arguments":[{"name":"y","nativeSrc":"7543:1:101","nodeType":"YulIdentifier","src":"7543:1:101"},{"arguments":[{"name":"product","nativeSrc":"7550:7:101","nodeType":"YulIdentifier","src":"7550:7:101"},{"name":"x","nativeSrc":"7559:1:101","nodeType":"YulIdentifier","src":"7559:1:101"}],"functionName":{"name":"div","nativeSrc":"7546:3:101","nodeType":"YulIdentifier","src":"7546:3:101"},"nativeSrc":"7546:15:101","nodeType":"YulFunctionCall","src":"7546:15:101"}],"functionName":{"name":"eq","nativeSrc":"7540:2:101","nodeType":"YulIdentifier","src":"7540:2:101"},"nativeSrc":"7540:22:101","nodeType":"YulFunctionCall","src":"7540:22:101"}],"functionName":{"name":"or","nativeSrc":"7493:2:101","nodeType":"YulIdentifier","src":"7493:2:101"},"nativeSrc":"7493:83:101","nodeType":"YulFunctionCall","src":"7493:83:101"}],"functionName":{"name":"iszero","nativeSrc":"7473:6:101","nodeType":"YulIdentifier","src":"7473:6:101"},"nativeSrc":"7473:113:101","nodeType":"YulFunctionCall","src":"7473:113:101"},"nativeSrc":"7470:139:101","nodeType":"YulIf","src":"7470:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"7206:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7237:1:101","nodeType":"YulTypedName","src":"7237:1:101","type":""},{"name":"y","nativeSrc":"7240:1:101","nodeType":"YulTypedName","src":"7240:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7246:7:101","nodeType":"YulTypedName","src":"7246:7:101","type":""}],"src":"7206:410:101"},{"body":{"nativeSrc":"7665:43:101","nodeType":"YulBlock","src":"7665:43:101","statements":[{"nativeSrc":"7675:27:101","nodeType":"YulAssignment","src":"7675:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7690:5:101","nodeType":"YulIdentifier","src":"7690:5:101"},{"kind":"number","nativeSrc":"7697:4:101","nodeType":"YulLiteral","src":"7697:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7686:3:101","nodeType":"YulIdentifier","src":"7686:3:101"},"nativeSrc":"7686:16:101","nodeType":"YulFunctionCall","src":"7686:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7675:7:101","nodeType":"YulIdentifier","src":"7675:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7622:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7647:5:101","nodeType":"YulTypedName","src":"7647:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7657:7:101","nodeType":"YulTypedName","src":"7657:7:101","type":""}],"src":"7622:86:101"},{"body":{"nativeSrc":"7755:77:101","nodeType":"YulBlock","src":"7755:77:101","statements":[{"body":{"nativeSrc":"7810:16:101","nodeType":"YulBlock","src":"7810:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7819:1:101","nodeType":"YulLiteral","src":"7819:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7822:1:101","nodeType":"YulLiteral","src":"7822:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7812:6:101","nodeType":"YulIdentifier","src":"7812:6:101"},"nativeSrc":"7812:12:101","nodeType":"YulFunctionCall","src":"7812:12:101"},"nativeSrc":"7812:12:101","nodeType":"YulExpressionStatement","src":"7812:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7778:5:101","nodeType":"YulIdentifier","src":"7778:5:101"},{"arguments":[{"name":"value","nativeSrc":"7801:5:101","nodeType":"YulIdentifier","src":"7801:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7785:15:101","nodeType":"YulIdentifier","src":"7785:15:101"},"nativeSrc":"7785:22:101","nodeType":"YulFunctionCall","src":"7785:22:101"}],"functionName":{"name":"eq","nativeSrc":"7775:2:101","nodeType":"YulIdentifier","src":"7775:2:101"},"nativeSrc":"7775:33:101","nodeType":"YulFunctionCall","src":"7775:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7768:6:101","nodeType":"YulIdentifier","src":"7768:6:101"},"nativeSrc":"7768:41:101","nodeType":"YulFunctionCall","src":"7768:41:101"},"nativeSrc":"7765:61:101","nodeType":"YulIf","src":"7765:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7714:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7748:5:101","nodeType":"YulTypedName","src":"7748:5:101","type":""}],"src":"7714:118:101"},{"body":{"nativeSrc":"7899:78:101","nodeType":"YulBlock","src":"7899:78:101","statements":[{"nativeSrc":"7909:22:101","nodeType":"YulAssignment","src":"7909:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7924:6:101","nodeType":"YulIdentifier","src":"7924:6:101"}],"functionName":{"name":"mload","nativeSrc":"7918:5:101","nodeType":"YulIdentifier","src":"7918:5:101"},"nativeSrc":"7918:13:101","nodeType":"YulFunctionCall","src":"7918:13:101"},"variableNames":[{"name":"value","nativeSrc":"7909:5:101","nodeType":"YulIdentifier","src":"7909:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7965:5:101","nodeType":"YulIdentifier","src":"7965:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7940:24:101","nodeType":"YulIdentifier","src":"7940:24:101"},"nativeSrc":"7940:31:101","nodeType":"YulFunctionCall","src":"7940:31:101"},"nativeSrc":"7940:31:101","nodeType":"YulExpressionStatement","src":"7940:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7838:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7877:6:101","nodeType":"YulTypedName","src":"7877:6:101","type":""},{"name":"end","nativeSrc":"7885:3:101","nodeType":"YulTypedName","src":"7885:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7893:5:101","nodeType":"YulTypedName","src":"7893:5:101","type":""}],"src":"7838:139:101"},{"body":{"nativeSrc":"8058:272:101","nodeType":"YulBlock","src":"8058:272:101","statements":[{"body":{"nativeSrc":"8104:83:101","nodeType":"YulBlock","src":"8104:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8106:77:101","nodeType":"YulIdentifier","src":"8106:77:101"},"nativeSrc":"8106:79:101","nodeType":"YulFunctionCall","src":"8106:79:101"},"nativeSrc":"8106:79:101","nodeType":"YulExpressionStatement","src":"8106:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8079:7:101","nodeType":"YulIdentifier","src":"8079:7:101"},{"name":"headStart","nativeSrc":"8088:9:101","nodeType":"YulIdentifier","src":"8088:9:101"}],"functionName":{"name":"sub","nativeSrc":"8075:3:101","nodeType":"YulIdentifier","src":"8075:3:101"},"nativeSrc":"8075:23:101","nodeType":"YulFunctionCall","src":"8075:23:101"},{"kind":"number","nativeSrc":"8100:2:101","nodeType":"YulLiteral","src":"8100:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8071:3:101","nodeType":"YulIdentifier","src":"8071:3:101"},"nativeSrc":"8071:32:101","nodeType":"YulFunctionCall","src":"8071:32:101"},"nativeSrc":"8068:119:101","nodeType":"YulIf","src":"8068:119:101"},{"nativeSrc":"8197:126:101","nodeType":"YulBlock","src":"8197:126:101","statements":[{"nativeSrc":"8212:15:101","nodeType":"YulVariableDeclaration","src":"8212:15:101","value":{"kind":"number","nativeSrc":"8226:1:101","nodeType":"YulLiteral","src":"8226:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8216:6:101","nodeType":"YulTypedName","src":"8216:6:101","type":""}]},{"nativeSrc":"8241:72:101","nodeType":"YulAssignment","src":"8241:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8285:9:101","nodeType":"YulIdentifier","src":"8285:9:101"},{"name":"offset","nativeSrc":"8296:6:101","nodeType":"YulIdentifier","src":"8296:6:101"}],"functionName":{"name":"add","nativeSrc":"8281:3:101","nodeType":"YulIdentifier","src":"8281:3:101"},"nativeSrc":"8281:22:101","nodeType":"YulFunctionCall","src":"8281:22:101"},{"name":"dataEnd","nativeSrc":"8305:7:101","nodeType":"YulIdentifier","src":"8305:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"8251:29:101","nodeType":"YulIdentifier","src":"8251:29:101"},"nativeSrc":"8251:62:101","nodeType":"YulFunctionCall","src":"8251:62:101"},"variableNames":[{"name":"value0","nativeSrc":"8241:6:101","nodeType":"YulIdentifier","src":"8241:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7983:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8028:9:101","nodeType":"YulTypedName","src":"8028:9:101","type":""},{"name":"dataEnd","nativeSrc":"8039:7:101","nodeType":"YulTypedName","src":"8039:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8051:6:101","nodeType":"YulTypedName","src":"8051:6:101","type":""}],"src":"7983:347:101"},{"body":{"nativeSrc":"8387:51:101","nodeType":"YulBlock","src":"8387:51:101","statements":[{"nativeSrc":"8397:34:101","nodeType":"YulAssignment","src":"8397:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8422:1:101","nodeType":"YulLiteral","src":"8422:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8425:5:101","nodeType":"YulIdentifier","src":"8425:5:101"}],"functionName":{"name":"shr","nativeSrc":"8418:3:101","nodeType":"YulIdentifier","src":"8418:3:101"},"nativeSrc":"8418:13:101","nodeType":"YulFunctionCall","src":"8418:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8397:8:101","nodeType":"YulIdentifier","src":"8397:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"8336:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8368:5:101","nodeType":"YulTypedName","src":"8368:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8378:8:101","nodeType":"YulTypedName","src":"8378:8:101","type":""}],"src":"8336:102:101"},{"body":{"nativeSrc":"8517:775:101","nodeType":"YulBlock","src":"8517:775:101","statements":[{"nativeSrc":"8527:15:101","nodeType":"YulAssignment","src":"8527:15:101","value":{"name":"_power","nativeSrc":"8536:6:101","nodeType":"YulIdentifier","src":"8536:6:101"},"variableNames":[{"name":"power","nativeSrc":"8527:5:101","nodeType":"YulIdentifier","src":"8527:5:101"}]},{"nativeSrc":"8551:14:101","nodeType":"YulAssignment","src":"8551:14:101","value":{"name":"_base","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},"variableNames":[{"name":"base","nativeSrc":"8551:4:101","nodeType":"YulIdentifier","src":"8551:4:101"}]},{"body":{"nativeSrc":"8609:677:101","nodeType":"YulBlock","src":"8609:677:101","statements":[{"body":{"nativeSrc":"8697:22:101","nodeType":"YulBlock","src":"8697:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8699:16:101","nodeType":"YulIdentifier","src":"8699:16:101"},"nativeSrc":"8699:18:101","nodeType":"YulFunctionCall","src":"8699:18:101"},"nativeSrc":"8699:18:101","nodeType":"YulExpressionStatement","src":"8699:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8675:4:101","nodeType":"YulIdentifier","src":"8675:4:101"},{"arguments":[{"name":"max","nativeSrc":"8685:3:101","nodeType":"YulIdentifier","src":"8685:3:101"},{"name":"base","nativeSrc":"8690:4:101","nodeType":"YulIdentifier","src":"8690:4:101"}],"functionName":{"name":"div","nativeSrc":"8681:3:101","nodeType":"YulIdentifier","src":"8681:3:101"},"nativeSrc":"8681:14:101","nodeType":"YulFunctionCall","src":"8681:14:101"}],"functionName":{"name":"gt","nativeSrc":"8672:2:101","nodeType":"YulIdentifier","src":"8672:2:101"},"nativeSrc":"8672:24:101","nodeType":"YulFunctionCall","src":"8672:24:101"},"nativeSrc":"8669:50:101","nodeType":"YulIf","src":"8669:50:101"},{"body":{"nativeSrc":"8764:419:101","nodeType":"YulBlock","src":"8764:419:101","statements":[{"nativeSrc":"9144:25:101","nodeType":"YulAssignment","src":"9144:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9157:5:101","nodeType":"YulIdentifier","src":"9157:5:101"},{"name":"base","nativeSrc":"9164:4:101","nodeType":"YulIdentifier","src":"9164:4:101"}],"functionName":{"name":"mul","nativeSrc":"9153:3:101","nodeType":"YulIdentifier","src":"9153:3:101"},"nativeSrc":"9153:16:101","nodeType":"YulFunctionCall","src":"9153:16:101"},"variableNames":[{"name":"power","nativeSrc":"9144:5:101","nodeType":"YulIdentifier","src":"9144:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8739:8:101","nodeType":"YulIdentifier","src":"8739:8:101"},{"kind":"number","nativeSrc":"8749:1:101","nodeType":"YulLiteral","src":"8749:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8735:3:101","nodeType":"YulIdentifier","src":"8735:3:101"},"nativeSrc":"8735:16:101","nodeType":"YulFunctionCall","src":"8735:16:101"},"nativeSrc":"8732:451:101","nodeType":"YulIf","src":"8732:451:101"},{"nativeSrc":"9196:23:101","nodeType":"YulAssignment","src":"9196:23:101","value":{"arguments":[{"name":"base","nativeSrc":"9208:4:101","nodeType":"YulIdentifier","src":"9208:4:101"},{"name":"base","nativeSrc":"9214:4:101","nodeType":"YulIdentifier","src":"9214:4:101"}],"functionName":{"name":"mul","nativeSrc":"9204:3:101","nodeType":"YulIdentifier","src":"9204:3:101"},"nativeSrc":"9204:15:101","nodeType":"YulFunctionCall","src":"9204:15:101"},"variableNames":[{"name":"base","nativeSrc":"9196:4:101","nodeType":"YulIdentifier","src":"9196:4:101"}]},{"nativeSrc":"9232:44:101","nodeType":"YulAssignment","src":"9232:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9267:8:101","nodeType":"YulIdentifier","src":"9267:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"9244:22:101","nodeType":"YulIdentifier","src":"9244:22:101"},"nativeSrc":"9244:32:101","nodeType":"YulFunctionCall","src":"9244:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"9232:8:101","nodeType":"YulIdentifier","src":"9232:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8585:8:101","nodeType":"YulIdentifier","src":"8585:8:101"},{"kind":"number","nativeSrc":"8595:1:101","nodeType":"YulLiteral","src":"8595:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8582:2:101","nodeType":"YulIdentifier","src":"8582:2:101"},"nativeSrc":"8582:15:101","nodeType":"YulFunctionCall","src":"8582:15:101"},"nativeSrc":"8574:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8598:2:101","nodeType":"YulBlock","src":"8598:2:101","statements":[]},"pre":{"nativeSrc":"8578:3:101","nodeType":"YulBlock","src":"8578:3:101","statements":[]},"src":"8574:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8444:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8472:6:101","nodeType":"YulTypedName","src":"8472:6:101","type":""},{"name":"_base","nativeSrc":"8480:5:101","nodeType":"YulTypedName","src":"8480:5:101","type":""},{"name":"exponent","nativeSrc":"8487:8:101","nodeType":"YulTypedName","src":"8487:8:101","type":""},{"name":"max","nativeSrc":"8497:3:101","nodeType":"YulTypedName","src":"8497:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8505:5:101","nodeType":"YulTypedName","src":"8505:5:101","type":""},{"name":"base","nativeSrc":"8512:4:101","nodeType":"YulTypedName","src":"8512:4:101","type":""}],"src":"8444:848:101"},{"body":{"nativeSrc":"9358:1013:101","nodeType":"YulBlock","src":"9358:1013:101","statements":[{"body":{"nativeSrc":"9553:20:101","nodeType":"YulBlock","src":"9553:20:101","statements":[{"nativeSrc":"9555:10:101","nodeType":"YulAssignment","src":"9555:10:101","value":{"kind":"number","nativeSrc":"9564:1:101","nodeType":"YulLiteral","src":"9564:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9555:5:101","nodeType":"YulIdentifier","src":"9555:5:101"}]},{"nativeSrc":"9566:5:101","nodeType":"YulLeave","src":"9566:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9543:8:101","nodeType":"YulIdentifier","src":"9543:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9536:6:101","nodeType":"YulIdentifier","src":"9536:6:101"},"nativeSrc":"9536:16:101","nodeType":"YulFunctionCall","src":"9536:16:101"},"nativeSrc":"9533:40:101","nodeType":"YulIf","src":"9533:40:101"},{"body":{"nativeSrc":"9598:20:101","nodeType":"YulBlock","src":"9598:20:101","statements":[{"nativeSrc":"9600:10:101","nodeType":"YulAssignment","src":"9600:10:101","value":{"kind":"number","nativeSrc":"9609:1:101","nodeType":"YulLiteral","src":"9609:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9600:5:101","nodeType":"YulIdentifier","src":"9600:5:101"}]},{"nativeSrc":"9611:5:101","nodeType":"YulLeave","src":"9611:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9592:4:101","nodeType":"YulIdentifier","src":"9592:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9585:6:101","nodeType":"YulIdentifier","src":"9585:6:101"},"nativeSrc":"9585:12:101","nodeType":"YulFunctionCall","src":"9585:12:101"},"nativeSrc":"9582:36:101","nodeType":"YulIf","src":"9582:36:101"},{"cases":[{"body":{"nativeSrc":"9728:20:101","nodeType":"YulBlock","src":"9728:20:101","statements":[{"nativeSrc":"9730:10:101","nodeType":"YulAssignment","src":"9730:10:101","value":{"kind":"number","nativeSrc":"9739:1:101","nodeType":"YulLiteral","src":"9739:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9730:5:101","nodeType":"YulIdentifier","src":"9730:5:101"}]},{"nativeSrc":"9741:5:101","nodeType":"YulLeave","src":"9741:5:101"}]},"nativeSrc":"9721:27:101","nodeType":"YulCase","src":"9721:27:101","value":{"kind":"number","nativeSrc":"9726:1:101","nodeType":"YulLiteral","src":"9726:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9772:176:101","nodeType":"YulBlock","src":"9772:176:101","statements":[{"body":{"nativeSrc":"9807:22:101","nodeType":"YulBlock","src":"9807:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9809:16:101","nodeType":"YulIdentifier","src":"9809:16:101"},"nativeSrc":"9809:18:101","nodeType":"YulFunctionCall","src":"9809:18:101"},"nativeSrc":"9809:18:101","nodeType":"YulExpressionStatement","src":"9809:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9792:8:101","nodeType":"YulIdentifier","src":"9792:8:101"},{"kind":"number","nativeSrc":"9802:3:101","nodeType":"YulLiteral","src":"9802:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9789:2:101","nodeType":"YulIdentifier","src":"9789:2:101"},"nativeSrc":"9789:17:101","nodeType":"YulFunctionCall","src":"9789:17:101"},"nativeSrc":"9786:43:101","nodeType":"YulIf","src":"9786:43:101"},{"nativeSrc":"9842:25:101","nodeType":"YulAssignment","src":"9842:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9855:1:101","nodeType":"YulLiteral","src":"9855:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9858:8:101","nodeType":"YulIdentifier","src":"9858:8:101"}],"functionName":{"name":"exp","nativeSrc":"9851:3:101","nodeType":"YulIdentifier","src":"9851:3:101"},"nativeSrc":"9851:16:101","nodeType":"YulFunctionCall","src":"9851:16:101"},"variableNames":[{"name":"power","nativeSrc":"9842:5:101","nodeType":"YulIdentifier","src":"9842:5:101"}]},{"body":{"nativeSrc":"9898:22:101","nodeType":"YulBlock","src":"9898:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9900:16:101","nodeType":"YulIdentifier","src":"9900:16:101"},"nativeSrc":"9900:18:101","nodeType":"YulFunctionCall","src":"9900:18:101"},"nativeSrc":"9900:18:101","nodeType":"YulExpressionStatement","src":"9900:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9886:5:101","nodeType":"YulIdentifier","src":"9886:5:101"},{"name":"max","nativeSrc":"9893:3:101","nodeType":"YulIdentifier","src":"9893:3:101"}],"functionName":{"name":"gt","nativeSrc":"9883:2:101","nodeType":"YulIdentifier","src":"9883:2:101"},"nativeSrc":"9883:14:101","nodeType":"YulFunctionCall","src":"9883:14:101"},"nativeSrc":"9880:40:101","nodeType":"YulIf","src":"9880:40:101"},{"nativeSrc":"9933:5:101","nodeType":"YulLeave","src":"9933:5:101"}]},"nativeSrc":"9757:191:101","nodeType":"YulCase","src":"9757:191:101","value":{"kind":"number","nativeSrc":"9762:1:101","nodeType":"YulLiteral","src":"9762:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9678:4:101","nodeType":"YulIdentifier","src":"9678:4:101"},"nativeSrc":"9671:277:101","nodeType":"YulSwitch","src":"9671:277:101"},{"body":{"nativeSrc":"10080:123:101","nodeType":"YulBlock","src":"10080:123:101","statements":[{"nativeSrc":"10094:28:101","nodeType":"YulAssignment","src":"10094:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10107:4:101","nodeType":"YulIdentifier","src":"10107:4:101"},{"name":"exponent","nativeSrc":"10113:8:101","nodeType":"YulIdentifier","src":"10113:8:101"}],"functionName":{"name":"exp","nativeSrc":"10103:3:101","nodeType":"YulIdentifier","src":"10103:3:101"},"nativeSrc":"10103:19:101","nodeType":"YulFunctionCall","src":"10103:19:101"},"variableNames":[{"name":"power","nativeSrc":"10094:5:101","nodeType":"YulIdentifier","src":"10094:5:101"}]},{"body":{"nativeSrc":"10153:22:101","nodeType":"YulBlock","src":"10153:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10155:16:101","nodeType":"YulIdentifier","src":"10155:16:101"},"nativeSrc":"10155:18:101","nodeType":"YulFunctionCall","src":"10155:18:101"},"nativeSrc":"10155:18:101","nodeType":"YulExpressionStatement","src":"10155:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10141:5:101","nodeType":"YulIdentifier","src":"10141:5:101"},{"name":"max","nativeSrc":"10148:3:101","nodeType":"YulIdentifier","src":"10148:3:101"}],"functionName":{"name":"gt","nativeSrc":"10138:2:101","nodeType":"YulIdentifier","src":"10138:2:101"},"nativeSrc":"10138:14:101","nodeType":"YulFunctionCall","src":"10138:14:101"},"nativeSrc":"10135:40:101","nodeType":"YulIf","src":"10135:40:101"},{"nativeSrc":"10188:5:101","nodeType":"YulLeave","src":"10188:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9983:4:101","nodeType":"YulIdentifier","src":"9983:4:101"},{"kind":"number","nativeSrc":"9989:2:101","nodeType":"YulLiteral","src":"9989:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9980:2:101","nodeType":"YulIdentifier","src":"9980:2:101"},"nativeSrc":"9980:12:101","nodeType":"YulFunctionCall","src":"9980:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9997:8:101","nodeType":"YulIdentifier","src":"9997:8:101"},{"kind":"number","nativeSrc":"10007:2:101","nodeType":"YulLiteral","src":"10007:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9994:2:101","nodeType":"YulIdentifier","src":"9994:2:101"},"nativeSrc":"9994:16:101","nodeType":"YulFunctionCall","src":"9994:16:101"}],"functionName":{"name":"and","nativeSrc":"9976:3:101","nodeType":"YulIdentifier","src":"9976:3:101"},"nativeSrc":"9976:35:101","nodeType":"YulFunctionCall","src":"9976:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10032:4:101","nodeType":"YulIdentifier","src":"10032:4:101"},{"kind":"number","nativeSrc":"10038:3:101","nodeType":"YulLiteral","src":"10038:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"10029:2:101","nodeType":"YulIdentifier","src":"10029:2:101"},"nativeSrc":"10029:13:101","nodeType":"YulFunctionCall","src":"10029:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"10047:8:101","nodeType":"YulIdentifier","src":"10047:8:101"},{"kind":"number","nativeSrc":"10057:2:101","nodeType":"YulLiteral","src":"10057:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10044:2:101","nodeType":"YulIdentifier","src":"10044:2:101"},"nativeSrc":"10044:16:101","nodeType":"YulFunctionCall","src":"10044:16:101"}],"functionName":{"name":"and","nativeSrc":"10025:3:101","nodeType":"YulIdentifier","src":"10025:3:101"},"nativeSrc":"10025:36:101","nodeType":"YulFunctionCall","src":"10025:36:101"}],"functionName":{"name":"or","nativeSrc":"9960:2:101","nodeType":"YulIdentifier","src":"9960:2:101"},"nativeSrc":"9960:111:101","nodeType":"YulFunctionCall","src":"9960:111:101"},"nativeSrc":"9957:246:101","nodeType":"YulIf","src":"9957:246:101"},{"nativeSrc":"10213:57:101","nodeType":"YulAssignment","src":"10213:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"10247:1:101","nodeType":"YulLiteral","src":"10247:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"10250:4:101","nodeType":"YulIdentifier","src":"10250:4:101"},{"name":"exponent","nativeSrc":"10256:8:101","nodeType":"YulIdentifier","src":"10256:8:101"},{"name":"max","nativeSrc":"10266:3:101","nodeType":"YulIdentifier","src":"10266:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"10228:18:101","nodeType":"YulIdentifier","src":"10228:18:101"},"nativeSrc":"10228:42:101","nodeType":"YulFunctionCall","src":"10228:42:101"},"variableNames":[{"name":"power","nativeSrc":"10213:5:101","nodeType":"YulIdentifier","src":"10213:5:101"},{"name":"base","nativeSrc":"10220:4:101","nodeType":"YulIdentifier","src":"10220:4:101"}]},{"body":{"nativeSrc":"10309:22:101","nodeType":"YulBlock","src":"10309:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10311:16:101","nodeType":"YulIdentifier","src":"10311:16:101"},"nativeSrc":"10311:18:101","nodeType":"YulFunctionCall","src":"10311:18:101"},"nativeSrc":"10311:18:101","nodeType":"YulExpressionStatement","src":"10311:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10286:5:101","nodeType":"YulIdentifier","src":"10286:5:101"},{"arguments":[{"name":"max","nativeSrc":"10297:3:101","nodeType":"YulIdentifier","src":"10297:3:101"},{"name":"base","nativeSrc":"10302:4:101","nodeType":"YulIdentifier","src":"10302:4:101"}],"functionName":{"name":"div","nativeSrc":"10293:3:101","nodeType":"YulIdentifier","src":"10293:3:101"},"nativeSrc":"10293:14:101","nodeType":"YulFunctionCall","src":"10293:14:101"}],"functionName":{"name":"gt","nativeSrc":"10283:2:101","nodeType":"YulIdentifier","src":"10283:2:101"},"nativeSrc":"10283:25:101","nodeType":"YulFunctionCall","src":"10283:25:101"},"nativeSrc":"10280:51:101","nodeType":"YulIf","src":"10280:51:101"},{"nativeSrc":"10340:25:101","nodeType":"YulAssignment","src":"10340:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10353:5:101","nodeType":"YulIdentifier","src":"10353:5:101"},{"name":"base","nativeSrc":"10360:4:101","nodeType":"YulIdentifier","src":"10360:4:101"}],"functionName":{"name":"mul","nativeSrc":"10349:3:101","nodeType":"YulIdentifier","src":"10349:3:101"},"nativeSrc":"10349:16:101","nodeType":"YulFunctionCall","src":"10349:16:101"},"variableNames":[{"name":"power","nativeSrc":"10340:5:101","nodeType":"YulIdentifier","src":"10340:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"9298:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9328:4:101","nodeType":"YulTypedName","src":"9328:4:101","type":""},{"name":"exponent","nativeSrc":"9334:8:101","nodeType":"YulTypedName","src":"9334:8:101","type":""},{"name":"max","nativeSrc":"9344:3:101","nodeType":"YulTypedName","src":"9344:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9352:5:101","nodeType":"YulTypedName","src":"9352:5:101","type":""}],"src":"9298:1073:101"},{"body":{"nativeSrc":"10443:219:101","nodeType":"YulBlock","src":"10443:219:101","statements":[{"nativeSrc":"10453:31:101","nodeType":"YulAssignment","src":"10453:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10479:4:101","nodeType":"YulIdentifier","src":"10479:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10461:17:101","nodeType":"YulIdentifier","src":"10461:17:101"},"nativeSrc":"10461:23:101","nodeType":"YulFunctionCall","src":"10461:23:101"},"variableNames":[{"name":"base","nativeSrc":"10453:4:101","nodeType":"YulIdentifier","src":"10453:4:101"}]},{"nativeSrc":"10493:39:101","nodeType":"YulAssignment","src":"10493:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10523:8:101","nodeType":"YulIdentifier","src":"10523:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10505:17:101","nodeType":"YulIdentifier","src":"10505:17:101"},"nativeSrc":"10505:27:101","nodeType":"YulFunctionCall","src":"10505:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10493:8:101","nodeType":"YulIdentifier","src":"10493:8:101"}]},{"nativeSrc":"10542:113:101","nodeType":"YulAssignment","src":"10542:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10572:4:101","nodeType":"YulIdentifier","src":"10572:4:101"},{"name":"exponent","nativeSrc":"10578:8:101","nodeType":"YulIdentifier","src":"10578:8:101"},{"kind":"number","nativeSrc":"10588:66:101","nodeType":"YulLiteral","src":"10588:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10551:20:101","nodeType":"YulIdentifier","src":"10551:20:101"},"nativeSrc":"10551:104:101","nodeType":"YulFunctionCall","src":"10551:104:101"},"variableNames":[{"name":"power","nativeSrc":"10542:5:101","nodeType":"YulIdentifier","src":"10542:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"10377:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10418:4:101","nodeType":"YulTypedName","src":"10418:4:101","type":""},{"name":"exponent","nativeSrc":"10424:8:101","nodeType":"YulTypedName","src":"10424:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10437:5:101","nodeType":"YulTypedName","src":"10437:5:101","type":""}],"src":"10377:285:101"},{"body":{"nativeSrc":"10727:40:101","nodeType":"YulBlock","src":"10727:40:101","statements":[{"nativeSrc":"10738:22:101","nodeType":"YulAssignment","src":"10738:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10754:5:101","nodeType":"YulIdentifier","src":"10754:5:101"}],"functionName":{"name":"mload","nativeSrc":"10748:5:101","nodeType":"YulIdentifier","src":"10748:5:101"},"nativeSrc":"10748:12:101","nodeType":"YulFunctionCall","src":"10748:12:101"},"variableNames":[{"name":"length","nativeSrc":"10738:6:101","nodeType":"YulIdentifier","src":"10738:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10668:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10710:5:101","nodeType":"YulTypedName","src":"10710:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10720:6:101","nodeType":"YulTypedName","src":"10720:6:101","type":""}],"src":"10668:99:101"},{"body":{"nativeSrc":"10869:73:101","nodeType":"YulBlock","src":"10869:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10886:3:101","nodeType":"YulIdentifier","src":"10886:3:101"},{"name":"length","nativeSrc":"10891:6:101","nodeType":"YulIdentifier","src":"10891:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10879:6:101","nodeType":"YulIdentifier","src":"10879:6:101"},"nativeSrc":"10879:19:101","nodeType":"YulFunctionCall","src":"10879:19:101"},"nativeSrc":"10879:19:101","nodeType":"YulExpressionStatement","src":"10879:19:101"},{"nativeSrc":"10907:29:101","nodeType":"YulAssignment","src":"10907:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10926:3:101","nodeType":"YulIdentifier","src":"10926:3:101"},{"kind":"number","nativeSrc":"10931:4:101","nodeType":"YulLiteral","src":"10931:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10922:3:101","nodeType":"YulIdentifier","src":"10922:3:101"},"nativeSrc":"10922:14:101","nodeType":"YulFunctionCall","src":"10922:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10907:11:101","nodeType":"YulIdentifier","src":"10907:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10773:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10841:3:101","nodeType":"YulTypedName","src":"10841:3:101","type":""},{"name":"length","nativeSrc":"10846:6:101","nodeType":"YulTypedName","src":"10846:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10857:11:101","nodeType":"YulTypedName","src":"10857:11:101","type":""}],"src":"10773:169:101"},{"body":{"nativeSrc":"11010:77:101","nodeType":"YulBlock","src":"11010:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11027:3:101","nodeType":"YulIdentifier","src":"11027:3:101"},{"name":"src","nativeSrc":"11032:3:101","nodeType":"YulIdentifier","src":"11032:3:101"},{"name":"length","nativeSrc":"11037:6:101","nodeType":"YulIdentifier","src":"11037:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"11021:5:101","nodeType":"YulIdentifier","src":"11021:5:101"},"nativeSrc":"11021:23:101","nodeType":"YulFunctionCall","src":"11021:23:101"},"nativeSrc":"11021:23:101","nodeType":"YulExpressionStatement","src":"11021:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11064:3:101","nodeType":"YulIdentifier","src":"11064:3:101"},{"name":"length","nativeSrc":"11069:6:101","nodeType":"YulIdentifier","src":"11069:6:101"}],"functionName":{"name":"add","nativeSrc":"11060:3:101","nodeType":"YulIdentifier","src":"11060:3:101"},"nativeSrc":"11060:16:101","nodeType":"YulFunctionCall","src":"11060:16:101"},{"kind":"number","nativeSrc":"11078:1:101","nodeType":"YulLiteral","src":"11078:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11053:6:101","nodeType":"YulIdentifier","src":"11053:6:101"},"nativeSrc":"11053:27:101","nodeType":"YulFunctionCall","src":"11053:27:101"},"nativeSrc":"11053:27:101","nodeType":"YulExpressionStatement","src":"11053:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10948:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10992:3:101","nodeType":"YulTypedName","src":"10992:3:101","type":""},{"name":"dst","nativeSrc":"10997:3:101","nodeType":"YulTypedName","src":"10997:3:101","type":""},{"name":"length","nativeSrc":"11002:6:101","nodeType":"YulTypedName","src":"11002:6:101","type":""}],"src":"10948:139:101"},{"body":{"nativeSrc":"11141:54:101","nodeType":"YulBlock","src":"11141:54:101","statements":[{"nativeSrc":"11151:38:101","nodeType":"YulAssignment","src":"11151:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11169:5:101","nodeType":"YulIdentifier","src":"11169:5:101"},{"kind":"number","nativeSrc":"11176:2:101","nodeType":"YulLiteral","src":"11176:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11165:3:101","nodeType":"YulIdentifier","src":"11165:3:101"},"nativeSrc":"11165:14:101","nodeType":"YulFunctionCall","src":"11165:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11185:2:101","nodeType":"YulLiteral","src":"11185:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11181:3:101","nodeType":"YulIdentifier","src":"11181:3:101"},"nativeSrc":"11181:7:101","nodeType":"YulFunctionCall","src":"11181:7:101"}],"functionName":{"name":"and","nativeSrc":"11161:3:101","nodeType":"YulIdentifier","src":"11161:3:101"},"nativeSrc":"11161:28:101","nodeType":"YulFunctionCall","src":"11161:28:101"},"variableNames":[{"name":"result","nativeSrc":"11151:6:101","nodeType":"YulIdentifier","src":"11151:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11093:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11124:5:101","nodeType":"YulTypedName","src":"11124:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11134:6:101","nodeType":"YulTypedName","src":"11134:6:101","type":""}],"src":"11093:102:101"},{"body":{"nativeSrc":"11293:285:101","nodeType":"YulBlock","src":"11293:285:101","statements":[{"nativeSrc":"11303:53:101","nodeType":"YulVariableDeclaration","src":"11303:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11350:5:101","nodeType":"YulIdentifier","src":"11350:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11317:32:101","nodeType":"YulIdentifier","src":"11317:32:101"},"nativeSrc":"11317:39:101","nodeType":"YulFunctionCall","src":"11317:39:101"},"variables":[{"name":"length","nativeSrc":"11307:6:101","nodeType":"YulTypedName","src":"11307:6:101","type":""}]},{"nativeSrc":"11365:78:101","nodeType":"YulAssignment","src":"11365:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11431:3:101","nodeType":"YulIdentifier","src":"11431:3:101"},{"name":"length","nativeSrc":"11436:6:101","nodeType":"YulIdentifier","src":"11436:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11372:58:101","nodeType":"YulIdentifier","src":"11372:58:101"},"nativeSrc":"11372:71:101","nodeType":"YulFunctionCall","src":"11372:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11365:3:101","nodeType":"YulIdentifier","src":"11365:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11491:5:101","nodeType":"YulIdentifier","src":"11491:5:101"},{"kind":"number","nativeSrc":"11498:4:101","nodeType":"YulLiteral","src":"11498:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11487:3:101","nodeType":"YulIdentifier","src":"11487:3:101"},"nativeSrc":"11487:16:101","nodeType":"YulFunctionCall","src":"11487:16:101"},{"name":"pos","nativeSrc":"11505:3:101","nodeType":"YulIdentifier","src":"11505:3:101"},{"name":"length","nativeSrc":"11510:6:101","nodeType":"YulIdentifier","src":"11510:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11452:34:101","nodeType":"YulIdentifier","src":"11452:34:101"},"nativeSrc":"11452:65:101","nodeType":"YulFunctionCall","src":"11452:65:101"},"nativeSrc":"11452:65:101","nodeType":"YulExpressionStatement","src":"11452:65:101"},{"nativeSrc":"11526:46:101","nodeType":"YulAssignment","src":"11526:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11537:3:101","nodeType":"YulIdentifier","src":"11537:3:101"},{"arguments":[{"name":"length","nativeSrc":"11564:6:101","nodeType":"YulIdentifier","src":"11564:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11542:21:101","nodeType":"YulIdentifier","src":"11542:21:101"},"nativeSrc":"11542:29:101","nodeType":"YulFunctionCall","src":"11542:29:101"}],"functionName":{"name":"add","nativeSrc":"11533:3:101","nodeType":"YulIdentifier","src":"11533:3:101"},"nativeSrc":"11533:39:101","nodeType":"YulFunctionCall","src":"11533:39:101"},"variableNames":[{"name":"end","nativeSrc":"11526:3:101","nodeType":"YulIdentifier","src":"11526:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11201:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11274:5:101","nodeType":"YulTypedName","src":"11274:5:101","type":""},{"name":"pos","nativeSrc":"11281:3:101","nodeType":"YulTypedName","src":"11281:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11289:3:101","nodeType":"YulTypedName","src":"11289:3:101","type":""}],"src":"11201:377:101"},{"body":{"nativeSrc":"11730:277:101","nodeType":"YulBlock","src":"11730:277:101","statements":[{"nativeSrc":"11740:26:101","nodeType":"YulAssignment","src":"11740:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11752:9:101","nodeType":"YulIdentifier","src":"11752:9:101"},{"kind":"number","nativeSrc":"11763:2:101","nodeType":"YulLiteral","src":"11763:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11748:3:101","nodeType":"YulIdentifier","src":"11748:3:101"},"nativeSrc":"11748:18:101","nodeType":"YulFunctionCall","src":"11748:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11740:4:101","nodeType":"YulIdentifier","src":"11740:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11820:6:101","nodeType":"YulIdentifier","src":"11820:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11833:9:101","nodeType":"YulIdentifier","src":"11833:9:101"},{"kind":"number","nativeSrc":"11844:1:101","nodeType":"YulLiteral","src":"11844:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11829:3:101","nodeType":"YulIdentifier","src":"11829:3:101"},"nativeSrc":"11829:17:101","nodeType":"YulFunctionCall","src":"11829:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11776:43:101","nodeType":"YulIdentifier","src":"11776:43:101"},"nativeSrc":"11776:71:101","nodeType":"YulFunctionCall","src":"11776:71:101"},"nativeSrc":"11776:71:101","nodeType":"YulExpressionStatement","src":"11776:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11868:9:101","nodeType":"YulIdentifier","src":"11868:9:101"},{"kind":"number","nativeSrc":"11879:2:101","nodeType":"YulLiteral","src":"11879:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11864:3:101","nodeType":"YulIdentifier","src":"11864:3:101"},"nativeSrc":"11864:18:101","nodeType":"YulFunctionCall","src":"11864:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11888:4:101","nodeType":"YulIdentifier","src":"11888:4:101"},{"name":"headStart","nativeSrc":"11894:9:101","nodeType":"YulIdentifier","src":"11894:9:101"}],"functionName":{"name":"sub","nativeSrc":"11884:3:101","nodeType":"YulIdentifier","src":"11884:3:101"},"nativeSrc":"11884:20:101","nodeType":"YulFunctionCall","src":"11884:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11857:6:101","nodeType":"YulIdentifier","src":"11857:6:101"},"nativeSrc":"11857:48:101","nodeType":"YulFunctionCall","src":"11857:48:101"},"nativeSrc":"11857:48:101","nodeType":"YulExpressionStatement","src":"11857:48:101"},{"nativeSrc":"11914:86:101","nodeType":"YulAssignment","src":"11914:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11986:6:101","nodeType":"YulIdentifier","src":"11986:6:101"},{"name":"tail","nativeSrc":"11995:4:101","nodeType":"YulIdentifier","src":"11995:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11922:63:101","nodeType":"YulIdentifier","src":"11922:63:101"},"nativeSrc":"11922:78:101","nodeType":"YulFunctionCall","src":"11922:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11914:4:101","nodeType":"YulIdentifier","src":"11914:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11584:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11694:9:101","nodeType":"YulTypedName","src":"11694:9:101","type":""},{"name":"value1","nativeSrc":"11706:6:101","nodeType":"YulTypedName","src":"11706:6:101","type":""},{"name":"value0","nativeSrc":"11714:6:101","nodeType":"YulTypedName","src":"11714:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11725:4:101","nodeType":"YulTypedName","src":"11725:4:101","type":""}],"src":"11584:423:101"},{"body":{"nativeSrc":"12053:76:101","nodeType":"YulBlock","src":"12053:76:101","statements":[{"body":{"nativeSrc":"12107:16:101","nodeType":"YulBlock","src":"12107:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12116:1:101","nodeType":"YulLiteral","src":"12116:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12119:1:101","nodeType":"YulLiteral","src":"12119:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12109:6:101","nodeType":"YulIdentifier","src":"12109:6:101"},"nativeSrc":"12109:12:101","nodeType":"YulFunctionCall","src":"12109:12:101"},"nativeSrc":"12109:12:101","nodeType":"YulExpressionStatement","src":"12109:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12076:5:101","nodeType":"YulIdentifier","src":"12076:5:101"},{"arguments":[{"name":"value","nativeSrc":"12098:5:101","nodeType":"YulIdentifier","src":"12098:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12083:14:101","nodeType":"YulIdentifier","src":"12083:14:101"},"nativeSrc":"12083:21:101","nodeType":"YulFunctionCall","src":"12083:21:101"}],"functionName":{"name":"eq","nativeSrc":"12073:2:101","nodeType":"YulIdentifier","src":"12073:2:101"},"nativeSrc":"12073:32:101","nodeType":"YulFunctionCall","src":"12073:32:101"}],"functionName":{"name":"iszero","nativeSrc":"12066:6:101","nodeType":"YulIdentifier","src":"12066:6:101"},"nativeSrc":"12066:40:101","nodeType":"YulFunctionCall","src":"12066:40:101"},"nativeSrc":"12063:60:101","nodeType":"YulIf","src":"12063:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"12013:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12046:5:101","nodeType":"YulTypedName","src":"12046:5:101","type":""}],"src":"12013:116:101"},{"body":{"nativeSrc":"12195:77:101","nodeType":"YulBlock","src":"12195:77:101","statements":[{"nativeSrc":"12205:22:101","nodeType":"YulAssignment","src":"12205:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12220:6:101","nodeType":"YulIdentifier","src":"12220:6:101"}],"functionName":{"name":"mload","nativeSrc":"12214:5:101","nodeType":"YulIdentifier","src":"12214:5:101"},"nativeSrc":"12214:13:101","nodeType":"YulFunctionCall","src":"12214:13:101"},"variableNames":[{"name":"value","nativeSrc":"12205:5:101","nodeType":"YulIdentifier","src":"12205:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12260:5:101","nodeType":"YulIdentifier","src":"12260:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12236:23:101","nodeType":"YulIdentifier","src":"12236:23:101"},"nativeSrc":"12236:30:101","nodeType":"YulFunctionCall","src":"12236:30:101"},"nativeSrc":"12236:30:101","nodeType":"YulExpressionStatement","src":"12236:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12135:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12173:6:101","nodeType":"YulTypedName","src":"12173:6:101","type":""},{"name":"end","nativeSrc":"12181:3:101","nodeType":"YulTypedName","src":"12181:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12189:5:101","nodeType":"YulTypedName","src":"12189:5:101","type":""}],"src":"12135:137:101"},{"body":{"nativeSrc":"12352:271:101","nodeType":"YulBlock","src":"12352:271:101","statements":[{"body":{"nativeSrc":"12398:83:101","nodeType":"YulBlock","src":"12398:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12400:77:101","nodeType":"YulIdentifier","src":"12400:77:101"},"nativeSrc":"12400:79:101","nodeType":"YulFunctionCall","src":"12400:79:101"},"nativeSrc":"12400:79:101","nodeType":"YulExpressionStatement","src":"12400:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12373:7:101","nodeType":"YulIdentifier","src":"12373:7:101"},{"name":"headStart","nativeSrc":"12382:9:101","nodeType":"YulIdentifier","src":"12382:9:101"}],"functionName":{"name":"sub","nativeSrc":"12369:3:101","nodeType":"YulIdentifier","src":"12369:3:101"},"nativeSrc":"12369:23:101","nodeType":"YulFunctionCall","src":"12369:23:101"},{"kind":"number","nativeSrc":"12394:2:101","nodeType":"YulLiteral","src":"12394:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12365:3:101","nodeType":"YulIdentifier","src":"12365:3:101"},"nativeSrc":"12365:32:101","nodeType":"YulFunctionCall","src":"12365:32:101"},"nativeSrc":"12362:119:101","nodeType":"YulIf","src":"12362:119:101"},{"nativeSrc":"12491:125:101","nodeType":"YulBlock","src":"12491:125:101","statements":[{"nativeSrc":"12506:15:101","nodeType":"YulVariableDeclaration","src":"12506:15:101","value":{"kind":"number","nativeSrc":"12520:1:101","nodeType":"YulLiteral","src":"12520:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12510:6:101","nodeType":"YulTypedName","src":"12510:6:101","type":""}]},{"nativeSrc":"12535:71:101","nodeType":"YulAssignment","src":"12535:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12578:9:101","nodeType":"YulIdentifier","src":"12578:9:101"},{"name":"offset","nativeSrc":"12589:6:101","nodeType":"YulIdentifier","src":"12589:6:101"}],"functionName":{"name":"add","nativeSrc":"12574:3:101","nodeType":"YulIdentifier","src":"12574:3:101"},"nativeSrc":"12574:22:101","nodeType":"YulFunctionCall","src":"12574:22:101"},{"name":"dataEnd","nativeSrc":"12598:7:101","nodeType":"YulIdentifier","src":"12598:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12545:28:101","nodeType":"YulIdentifier","src":"12545:28:101"},"nativeSrc":"12545:61:101","nodeType":"YulFunctionCall","src":"12545:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12535:6:101","nodeType":"YulIdentifier","src":"12535:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12278:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12322:9:101","nodeType":"YulTypedName","src":"12322:9:101","type":""},{"name":"dataEnd","nativeSrc":"12333:7:101","nodeType":"YulTypedName","src":"12333:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12345:6:101","nodeType":"YulTypedName","src":"12345:6:101","type":""}],"src":"12278:345:101"},{"body":{"nativeSrc":"12803:359:101","nodeType":"YulBlock","src":"12803:359:101","statements":[{"nativeSrc":"12813:26:101","nodeType":"YulAssignment","src":"12813:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12825:9:101","nodeType":"YulIdentifier","src":"12825:9:101"},{"kind":"number","nativeSrc":"12836:2:101","nodeType":"YulLiteral","src":"12836:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12821:3:101","nodeType":"YulIdentifier","src":"12821:3:101"},"nativeSrc":"12821:18:101","nodeType":"YulFunctionCall","src":"12821:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12813:4:101","nodeType":"YulIdentifier","src":"12813:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12893:6:101","nodeType":"YulIdentifier","src":"12893:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12906:9:101","nodeType":"YulIdentifier","src":"12906:9:101"},{"kind":"number","nativeSrc":"12917:1:101","nodeType":"YulLiteral","src":"12917:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12902:3:101","nodeType":"YulIdentifier","src":"12902:3:101"},"nativeSrc":"12902:17:101","nodeType":"YulFunctionCall","src":"12902:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12849:43:101","nodeType":"YulIdentifier","src":"12849:43:101"},"nativeSrc":"12849:71:101","nodeType":"YulFunctionCall","src":"12849:71:101"},"nativeSrc":"12849:71:101","nodeType":"YulExpressionStatement","src":"12849:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12974:6:101","nodeType":"YulIdentifier","src":"12974:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12987:9:101","nodeType":"YulIdentifier","src":"12987:9:101"},{"kind":"number","nativeSrc":"12998:2:101","nodeType":"YulLiteral","src":"12998:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12983:3:101","nodeType":"YulIdentifier","src":"12983:3:101"},"nativeSrc":"12983:18:101","nodeType":"YulFunctionCall","src":"12983:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12930:43:101","nodeType":"YulIdentifier","src":"12930:43:101"},"nativeSrc":"12930:72:101","nodeType":"YulFunctionCall","src":"12930:72:101"},"nativeSrc":"12930:72:101","nodeType":"YulExpressionStatement","src":"12930:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13023:9:101","nodeType":"YulIdentifier","src":"13023:9:101"},{"kind":"number","nativeSrc":"13034:2:101","nodeType":"YulLiteral","src":"13034:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13019:3:101","nodeType":"YulIdentifier","src":"13019:3:101"},"nativeSrc":"13019:18:101","nodeType":"YulFunctionCall","src":"13019:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13043:4:101","nodeType":"YulIdentifier","src":"13043:4:101"},{"name":"headStart","nativeSrc":"13049:9:101","nodeType":"YulIdentifier","src":"13049:9:101"}],"functionName":{"name":"sub","nativeSrc":"13039:3:101","nodeType":"YulIdentifier","src":"13039:3:101"},"nativeSrc":"13039:20:101","nodeType":"YulFunctionCall","src":"13039:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13012:6:101","nodeType":"YulIdentifier","src":"13012:6:101"},"nativeSrc":"13012:48:101","nodeType":"YulFunctionCall","src":"13012:48:101"},"nativeSrc":"13012:48:101","nodeType":"YulExpressionStatement","src":"13012:48:101"},{"nativeSrc":"13069:86:101","nodeType":"YulAssignment","src":"13069:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13141:6:101","nodeType":"YulIdentifier","src":"13141:6:101"},{"name":"tail","nativeSrc":"13150:4:101","nodeType":"YulIdentifier","src":"13150:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13077:63:101","nodeType":"YulIdentifier","src":"13077:63:101"},"nativeSrc":"13077:78:101","nodeType":"YulFunctionCall","src":"13077:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13069:4:101","nodeType":"YulIdentifier","src":"13069:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12629:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12759:9:101","nodeType":"YulTypedName","src":"12759:9:101","type":""},{"name":"value2","nativeSrc":"12771:6:101","nodeType":"YulTypedName","src":"12771:6:101","type":""},{"name":"value1","nativeSrc":"12779:6:101","nodeType":"YulTypedName","src":"12779:6:101","type":""},{"name":"value0","nativeSrc":"12787:6:101","nodeType":"YulTypedName","src":"12787:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12798:4:101","nodeType":"YulTypedName","src":"12798:4:101","type":""}],"src":"12629:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IAccountant_$3450_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccountant_$3450_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccountant_$3450__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5163":[{"length":32,"start":581},{"length":32,"start":1703}],"6589":[{"length":32,"start":523},{"length":32,"start":690},{"length":32,"start":2089}],"6592":[{"length":32,"start":313},{"length":32,"start":1441},{"length":32,"start":1962}],"6596":[{"length":32,"start":629},{"length":32,"start":1396},{"length":32,"start":1915}],"6600":[{"length":32,"start":393},{"length":32,"start":2280}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780638b9d294014610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610999565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109c6565b61011e60045481565b61011e61017f3660046109f5565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a38565b6101cb6101c6366004610a57565b610360565b005b61011e60025481565b6101cb6101e4366004610a75565b6103d1565b6101f16104a5565b60405161012b9190610ab7565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a75565b61062c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61072a565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f81610777565b9392505050565b5f61032f61072a565b90505f818311801561034057508115155b61034a578261034c565b815b905061035781610777565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108cf565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108cf565b5f5461041f6301e1338084610aed565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610999565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61072a565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b00565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761072a565b9050600454818311610529578261052b565b815b6105359190610b13565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109c6565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108cf565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663282a87006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107259190610b31565b905090565b5f806003544261073a9190610b00565b90505f670de0b6b3a7640000825f546002546107569190610b4f565b6107609190610b4f565b61076a9190610aed565b60025461031f9190610b13565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107e591906109c6565b602060405180830381865afa158015610800573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108249190610b31565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610887573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ab9190610b82565b60ff1690506108bb81600a610cac565b6108c58487610b4f565b6103579190610aed565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061091f9033908690600401610cf5565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e9190610d28565b90508061098d57333083604051634a3fa29360e01b815260040161098493929190610d46565b60405180910390fd5b5050565b805b82525050565b602081016109a78284610991565b92915050565b5f6001600160a01b0382166109a7565b610993816109ad565b602081016109a782846109bd565b6109dd816109ad565b81146109e7575f80fd5b50565b80356109a7816109d4565b5f60208284031215610a0857610a085f80fd5b5f610a1384846109ea565b949350505050565b5f6109a7826109ad565b5f6109a782610a1b565b61099381610a25565b602081016109a78284610a2f565b806109dd565b80356109a781610a46565b5f60208284031215610a6a57610a6a5f80fd5b5f610a138484610a4c565b5f8060408385031215610a8957610a895f80fd5b5f610a948585610a4c565b9250506020610aa585828601610a4c565b9150509250929050565b801515610993565b602081016109a78284610aaf565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610afb57610afb610ac5565b500490565b818103818111156109a7576109a7610ad9565b808201808211156109a7576109a7610ad9565b80516109a781610a46565b5f60208284031215610b4457610b445f80fd5b5f610a138484610b26565b818102808215838204851417610b6757610b67610ad9565b5092915050565b60ff81166109dd565b80516109a781610b6e565b5f60208284031215610b9557610b955f80fd5b5f610a138484610b77565b80825b6001851115610bdf57808604811115610bbe57610bbe610ad9565b6001851615610bcc57908102905b8002610bd88560011c90565b9450610ba3565b94509492505050565b5f82610bf65750600161031f565b81610c0257505f61031f565b8160018114610c185760028114610c2257610c4f565b600191505061031f565b60ff841115610c3357610c33610ad9565b8360020a915084821115610c4957610c49610ad9565b5061031f565b5060208310610133831016604e8410600b8410161715610c82575081810a83811115610c7d57610c7d610ad9565b61031f565b610c8f8484846001610ba0565b92509050818404811115610ca557610ca5610ad9565b0292915050565b5f61031f5f198484610be8565b8281835e505f910152565b5f610ccd825190565b808452602084019350610ce4818560208601610cb9565b601f01601f19169290920192915050565b60408101610d0382856109bd565b8181036020830152610a138184610cc4565b8015156109dd565b80516109a781610d15565b5f60208284031215610d3b57610d3b5f80fd5b5f610a138484610d1d565b60608101610d5482866109bd565b610d6160208301856109bd565b81810360408301526103578184610cc456fea26469706673582212202dcac3ee550544790d58d02ab03d610c6ed0fce29ad7b3f0d0bac649d48d9d0264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x8B9D2940 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x72A JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xAED JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x72A JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB00 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x282A8700 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 0x701 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x725 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x73A SWAP2 SWAP1 PUSH2 0xB00 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x756 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x760 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x800 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x824 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x887 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8AB SWAP2 SWAP1 PUSH2 0xB82 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8BB DUP2 PUSH1 0xA PUSH2 0xCAC JUMP JUMPDEST PUSH2 0x8C5 DUP5 DUP8 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x91F SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x95E SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x98D JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x984 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9A7 JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0x9DD DUP2 PUSH2 0x9AD JUMP JUMPDEST DUP2 EQ PUSH2 0x9E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0x9D4 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA08 JUMPI PUSH2 0xA08 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0x9EA JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0x9AD JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0xA1B JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0xA25 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xA2F JUMP JUMPDEST DUP1 PUSH2 0x9DD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA6A JUMPI PUSH2 0xA6A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xA4C JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA89 JUMPI PUSH2 0xA89 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA94 DUP6 DUP6 PUSH2 0xA4C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA5 DUP6 DUP3 DUP7 ADD PUSH2 0xA4C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x993 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xAAF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAFB JUMPI PUSH2 0xAFB PUSH2 0xAC5 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB44 JUMPI PUSH2 0xB44 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB26 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB67 JUMPI PUSH2 0xB67 PUSH2 0xAD9 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xB6E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB77 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBDF JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBBE JUMPI PUSH2 0xBBE PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBCC JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBD8 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBA3 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBF6 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC02 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC18 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC22 JUMPI PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC33 JUMPI PUSH2 0xC33 PUSH2 0xAD9 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC49 PUSH2 0xAD9 JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC82 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC7D JUMPI PUSH2 0xC7D PUSH2 0xAD9 JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xC8F DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBA0 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCA5 JUMPI PUSH2 0xCA5 PUSH2 0xAD9 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBE8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCCD DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD03 DUP3 DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA13 DUP2 DUP5 PUSH2 0xCC4 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xD15 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xD1D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD54 DUP3 DUP7 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0xD61 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCC4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0xCA 0xC3 0xEE SSTORE SDIV PREVRANDAO PUSH26 0xD58D02AB03D610C6ED0FCE29AD7B3F0D0BAC649D48D9D026473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"490:1261:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;592:39:53:-;;;;;1635:32:67;;;;;;1099:58;;;;;1631:118:53;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1631:118:53:-;1692:7;1718:10;-1:-1:-1;;;;;1718:22:53;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1711:31;;1631:118;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;490:1261:53;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;490:1261:53;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;490:1261:53;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5740:180::-;-1:-1:-1;;;5785:1:101;5778:88;5885:4;5882:1;5875:15;5909:4;5906:1;5899:15;5926:180;-1:-1:-1;;;5971:1:101;5964:88;6071:4;6068:1;6061:15;6095:4;6092:1;6085:15;6112:185;6152:1;6242;6232:35;;6247:18;;:::i;:::-;-1:-1:-1;6282:9:101;;6112:185::o;6303:194::-;6434:9;;;6456:11;;;6453:37;;;6470:18;;:::i;6503:191::-;6632:9;;;6654:10;;;6651:36;;;6667:18;;:::i;6700:143::-;6782:13;;6804:33;6782:13;6804:33;:::i;6849:351::-;6919:6;6968:2;6956:9;6947:7;6943:23;6939:32;6936:119;;;6974:79;490:1261:53;;;6974:79:101;7094:1;7119:64;7175:7;7155:9;7119:64;:::i;7206:410::-;7351:9;;;;7513;;7546:15;;;7540:22;;7493:83;7470:139;;7589:18;;:::i;:::-;7254:362;7206:410;;;;:::o;7714:118::-;7697:4;7686:16;;7785:22;7622:86;7838:139;7918:13;;7940:31;7918:13;7940:31;:::i;7983:347::-;8051:6;8100:2;8088:9;8079:7;8075:23;8071:32;8068:119;;;8106:79;490:1261:53;;;8106:79:101;8226:1;8251:62;8305:7;8285:9;8251:62;:::i;8444:848::-;8536:6;8560:5;8574:712;8595:1;8585:8;8582:15;8574:712;;;8690:4;8685:3;8681:14;8675:4;8672:24;8669:50;;;8699:18;;:::i;:::-;8749:1;8739:8;8735:16;8732:451;;;9153:16;;;;8732:451;9204:15;;9244:32;9267:8;8422:1;8418:13;;8336:102;9244:32;9232:44;;8574:712;;;8444:848;;;;;;;:::o;9298:1073::-;9352:5;9543:8;9533:40;;-1:-1:-1;9564:1:101;9566:5;;9533:40;9592:4;9582:36;;-1:-1:-1;9609:1:101;9611:5;;9582:36;9678:4;9726:1;9721:27;;;;9762:1;9757:191;;;;9671:277;;9721:27;9739:1;9730:10;;9741:5;;;9757:191;9802:3;9792:8;9789:17;9786:43;;;9809:18;;:::i;:::-;9858:8;9855:1;9851:16;9842:25;;9893:3;9886:5;9883:14;9880:40;;;9900:18;;:::i;:::-;9933:5;;;9671:277;;10057:2;10047:8;10044:16;10038:3;10032:4;10029:13;10025:36;10007:2;9997:8;9994:16;9989:2;9983:4;9980:12;9976:35;9960:111;9957:246;;;-1:-1:-1;10103:19:101;;;10138:14;;;10135:40;;;10155:18;;:::i;:::-;10188:5;;9957:246;10228:42;10266:3;10256:8;10250:4;10247:1;10228:42;:::i;:::-;10213:57;;;;10302:4;10297:3;10293:14;10286:5;10283:25;10280:51;;;10311:18;;:::i;:::-;10349:16;;9298:1073;-1:-1:-1;;9298:1073:101:o;10377:285::-;10437:5;10551:104;-1:-1:-1;;10578:8:101;10572:4;10551:104;:::i;10948:139::-;11037:6;11032:3;11027;11021:23;-1:-1:-1;11078:1:101;11060:16;;11053:27;10948:139::o;11201:377::-;11289:3;11317:39;11350:5;10748:12;;10668:99;11317:39;10879:19;;;10931:4;10922:14;;11365:78;;11452:65;11510:6;11505:3;11498:4;11491:5;11487:16;11452:65;:::i;:::-;11185:2;11165:14;-1:-1:-1;;11161:28:101;11533:39;;;;;;-1:-1:-1;;11201:377:101:o;11584:423::-;11763:2;11748:18;;11776:71;11752:9;11820:6;11776:71;:::i;:::-;11894:9;11888:4;11884:20;11879:2;11868:9;11864:18;11857:48;11922:78;11995:4;11986:6;11922:78;:::i;12013:116::-;4124:13;;4117:21;12083;4054:90;12135:137;12214:13;;12236:30;12214:13;12236:30;:::i;12278:345::-;12345:6;12394:2;12382:9;12373:7;12369:23;12365:32;12362:119;;;12400:79;490:1261:53;;;12400:79:101;12520:1;12545:61;12598:7;12578:9;12545:61;:::i;12629:533::-;12836:2;12821:18;;12849:71;12825:9;12893:6;12849:71;:::i;:::-;12930:72;12998:2;12987:9;12983:18;12974:6;12930:72;:::i;:::-;13049:9;13043:4;13039:20;13034:2;13023:9;13019:18;13012:48;13077:78;13150:4;13141:6;13077:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"699400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","ACCOUNTANT()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","ACCOUNTANT()":"8b9d2940","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accountant\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"correlatedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACCOUNTANT\",\"outputs\":[{\"internalType\":\"contract IAccountant\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount Amount of WBTC\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"EtherfiAccountantOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"ACCOUNTANT()\":{\"notice\":\"Address of Accountant\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the conversion rate from the ACCOUNTANT contract\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of any Ether.fi asset that uses Accountant contracts to derive the underlying price\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/EtherfiAccountantOracle.sol\":\"EtherfiAccountantOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IAccountant.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAccountant {\\n    function getRateSafe() external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x04672ffcad2a2f951d7afc7288a5875dc6e67d12445666c959ac64966102b06b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/EtherfiAccountantOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { IAccountant } from \\\"../interfaces/IAccountant.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title EtherfiAccountantOracle\\n * @author Venus\\n * @notice This oracle fetches the price of any Ether.fi asset that uses\\n * Accountant contracts to derive the underlying price\\n */\\ncontract EtherfiAccountantOracle is CorrelatedTokenOracle {\\n    /// @notice Address of Accountant\\n    IAccountant public immutable ACCOUNTANT;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address accountant,\\n        address correlatedToken,\\n        address underlyingToken,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            correlatedToken,\\n            underlyingToken,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(accountant);\\n        ACCOUNTANT = IAccountant(accountant);\\n    }\\n\\n    /**\\n     * @notice Fetches the conversion rate from the ACCOUNTANT contract\\n     * @return amount Amount of WBTC\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return ACCOUNTANT.getRateSafe();\\n    }\\n}\\n\",\"keccak256\":\"0xf28853cd689d11667714f25d17956b1d00bd23b5bccab40ec90a96697906241d\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/EtherfiAccountantOracle.sol:EtherfiAccountantOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/EtherfiAccountantOracle.sol:EtherfiAccountantOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/EtherfiAccountantOracle.sol:EtherfiAccountantOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/EtherfiAccountantOracle.sol:EtherfiAccountantOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/EtherfiAccountantOracle.sol:EtherfiAccountantOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"ACCOUNTANT()":{"notice":"Address of Accountant"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the conversion rate from the ACCOUNTANT contract"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of any Ether.fi asset that uses Accountant contracts to derive the underlying price","version":1}}},"contracts/oracles/OneJumpOracle.sol":{"OneJumpOracle":{"abi":[{"inputs":[{"internalType":"address","name":"correlatedToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"address","name":"intermediateOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INTERMEDIATE_ORACLE","outputs":[{"internalType":"contract OracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount The amount of the underlying token for 1 correlated token scaled by the underlying token decimals"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"OneJumpOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5285":{"entryPoint":null,"id":5285,"parameterSlots":10,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":312,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":419,"id":null,"parameterSlots":2,"returnSlots":10},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":652,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":354,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":632,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":372,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3533:101","nodeType":"YulBlock","src":"0:3533:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1435:1532:101","nodeType":"YulBlock","src":"1435:1532:101","statements":[{"body":{"nativeSrc":"1482:83:101","nodeType":"YulBlock","src":"1482:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1484:77:101","nodeType":"YulIdentifier","src":"1484:77:101"},"nativeSrc":"1484:79:101","nodeType":"YulFunctionCall","src":"1484:79:101"},"nativeSrc":"1484:79:101","nodeType":"YulExpressionStatement","src":"1484:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1456:7:101","nodeType":"YulIdentifier","src":"1456:7:101"},{"name":"headStart","nativeSrc":"1465:9:101","nodeType":"YulIdentifier","src":"1465:9:101"}],"functionName":{"name":"sub","nativeSrc":"1452:3:101","nodeType":"YulIdentifier","src":"1452:3:101"},"nativeSrc":"1452:23:101","nodeType":"YulFunctionCall","src":"1452:23:101"},{"kind":"number","nativeSrc":"1477:3:101","nodeType":"YulLiteral","src":"1477:3:101","type":"","value":"320"}],"functionName":{"name":"slt","nativeSrc":"1448:3:101","nodeType":"YulIdentifier","src":"1448:3:101"},"nativeSrc":"1448:33:101","nodeType":"YulFunctionCall","src":"1448:33:101"},"nativeSrc":"1445:120:101","nodeType":"YulIf","src":"1445:120:101"},{"nativeSrc":"1575:128:101","nodeType":"YulBlock","src":"1575:128:101","statements":[{"nativeSrc":"1590:15:101","nodeType":"YulVariableDeclaration","src":"1590:15:101","value":{"kind":"number","nativeSrc":"1604:1:101","nodeType":"YulLiteral","src":"1604:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1594:6:101","nodeType":"YulTypedName","src":"1594:6:101","type":""}]},{"nativeSrc":"1619:74:101","nodeType":"YulAssignment","src":"1619:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1665:9:101","nodeType":"YulIdentifier","src":"1665:9:101"},{"name":"offset","nativeSrc":"1676:6:101","nodeType":"YulIdentifier","src":"1676:6:101"}],"functionName":{"name":"add","nativeSrc":"1661:3:101","nodeType":"YulIdentifier","src":"1661:3:101"},"nativeSrc":"1661:22:101","nodeType":"YulFunctionCall","src":"1661:22:101"},{"name":"dataEnd","nativeSrc":"1685:7:101","nodeType":"YulIdentifier","src":"1685:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1629:31:101","nodeType":"YulIdentifier","src":"1629:31:101"},"nativeSrc":"1629:64:101","nodeType":"YulFunctionCall","src":"1629:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1619:6:101","nodeType":"YulIdentifier","src":"1619:6:101"}]}]},{"nativeSrc":"1713:129:101","nodeType":"YulBlock","src":"1713:129:101","statements":[{"nativeSrc":"1728:16:101","nodeType":"YulVariableDeclaration","src":"1728:16:101","value":{"kind":"number","nativeSrc":"1742:2:101","nodeType":"YulLiteral","src":"1742:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1732:6:101","nodeType":"YulTypedName","src":"1732:6:101","type":""}]},{"nativeSrc":"1758:74:101","nodeType":"YulAssignment","src":"1758:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1804:9:101","nodeType":"YulIdentifier","src":"1804:9:101"},{"name":"offset","nativeSrc":"1815:6:101","nodeType":"YulIdentifier","src":"1815:6:101"}],"functionName":{"name":"add","nativeSrc":"1800:3:101","nodeType":"YulIdentifier","src":"1800:3:101"},"nativeSrc":"1800:22:101","nodeType":"YulFunctionCall","src":"1800:22:101"},{"name":"dataEnd","nativeSrc":"1824:7:101","nodeType":"YulIdentifier","src":"1824:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1768:31:101","nodeType":"YulIdentifier","src":"1768:31:101"},"nativeSrc":"1768:64:101","nodeType":"YulFunctionCall","src":"1768:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1758:6:101","nodeType":"YulIdentifier","src":"1758:6:101"}]}]},{"nativeSrc":"1852:129:101","nodeType":"YulBlock","src":"1852:129:101","statements":[{"nativeSrc":"1867:16:101","nodeType":"YulVariableDeclaration","src":"1867:16:101","value":{"kind":"number","nativeSrc":"1881:2:101","nodeType":"YulLiteral","src":"1881:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1871:6:101","nodeType":"YulTypedName","src":"1871:6:101","type":""}]},{"nativeSrc":"1897:74:101","nodeType":"YulAssignment","src":"1897:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1943:9:101","nodeType":"YulIdentifier","src":"1943:9:101"},{"name":"offset","nativeSrc":"1954:6:101","nodeType":"YulIdentifier","src":"1954:6:101"}],"functionName":{"name":"add","nativeSrc":"1939:3:101","nodeType":"YulIdentifier","src":"1939:3:101"},"nativeSrc":"1939:22:101","nodeType":"YulFunctionCall","src":"1939:22:101"},{"name":"dataEnd","nativeSrc":"1963:7:101","nodeType":"YulIdentifier","src":"1963:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1907:31:101","nodeType":"YulIdentifier","src":"1907:31:101"},"nativeSrc":"1907:64:101","nodeType":"YulFunctionCall","src":"1907:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1897:6:101","nodeType":"YulIdentifier","src":"1897:6:101"}]}]},{"nativeSrc":"1991:129:101","nodeType":"YulBlock","src":"1991:129:101","statements":[{"nativeSrc":"2006:16:101","nodeType":"YulVariableDeclaration","src":"2006:16:101","value":{"kind":"number","nativeSrc":"2020:2:101","nodeType":"YulLiteral","src":"2020:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"2010:6:101","nodeType":"YulTypedName","src":"2010:6:101","type":""}]},{"nativeSrc":"2036:74:101","nodeType":"YulAssignment","src":"2036:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2082:9:101","nodeType":"YulIdentifier","src":"2082:9:101"},{"name":"offset","nativeSrc":"2093:6:101","nodeType":"YulIdentifier","src":"2093:6:101"}],"functionName":{"name":"add","nativeSrc":"2078:3:101","nodeType":"YulIdentifier","src":"2078:3:101"},"nativeSrc":"2078:22:101","nodeType":"YulFunctionCall","src":"2078:22:101"},{"name":"dataEnd","nativeSrc":"2102:7:101","nodeType":"YulIdentifier","src":"2102:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2046:31:101","nodeType":"YulIdentifier","src":"2046:31:101"},"nativeSrc":"2046:64:101","nodeType":"YulFunctionCall","src":"2046:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2036:6:101","nodeType":"YulIdentifier","src":"2036:6:101"}]}]},{"nativeSrc":"2130:130:101","nodeType":"YulBlock","src":"2130:130:101","statements":[{"nativeSrc":"2145:17:101","nodeType":"YulVariableDeclaration","src":"2145:17:101","value":{"kind":"number","nativeSrc":"2159:3:101","nodeType":"YulLiteral","src":"2159:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2149:6:101","nodeType":"YulTypedName","src":"2149:6:101","type":""}]},{"nativeSrc":"2176:74:101","nodeType":"YulAssignment","src":"2176:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2222:9:101","nodeType":"YulIdentifier","src":"2222:9:101"},{"name":"offset","nativeSrc":"2233:6:101","nodeType":"YulIdentifier","src":"2233:6:101"}],"functionName":{"name":"add","nativeSrc":"2218:3:101","nodeType":"YulIdentifier","src":"2218:3:101"},"nativeSrc":"2218:22:101","nodeType":"YulFunctionCall","src":"2218:22:101"},{"name":"dataEnd","nativeSrc":"2242:7:101","nodeType":"YulIdentifier","src":"2242:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2186:31:101","nodeType":"YulIdentifier","src":"2186:31:101"},"nativeSrc":"2186:64:101","nodeType":"YulFunctionCall","src":"2186:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}]}]},{"nativeSrc":"2270:130:101","nodeType":"YulBlock","src":"2270:130:101","statements":[{"nativeSrc":"2285:17:101","nodeType":"YulVariableDeclaration","src":"2285:17:101","value":{"kind":"number","nativeSrc":"2299:3:101","nodeType":"YulLiteral","src":"2299:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2289:6:101","nodeType":"YulTypedName","src":"2289:6:101","type":""}]},{"nativeSrc":"2316:74:101","nodeType":"YulAssignment","src":"2316:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2362:9:101","nodeType":"YulIdentifier","src":"2362:9:101"},{"name":"offset","nativeSrc":"2373:6:101","nodeType":"YulIdentifier","src":"2373:6:101"}],"functionName":{"name":"add","nativeSrc":"2358:3:101","nodeType":"YulIdentifier","src":"2358:3:101"},"nativeSrc":"2358:22:101","nodeType":"YulFunctionCall","src":"2358:22:101"},{"name":"dataEnd","nativeSrc":"2382:7:101","nodeType":"YulIdentifier","src":"2382:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2326:31:101","nodeType":"YulIdentifier","src":"2326:31:101"},"nativeSrc":"2326:64:101","nodeType":"YulFunctionCall","src":"2326:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2316:6:101","nodeType":"YulIdentifier","src":"2316:6:101"}]}]},{"nativeSrc":"2410:130:101","nodeType":"YulBlock","src":"2410:130:101","statements":[{"nativeSrc":"2425:17:101","nodeType":"YulVariableDeclaration","src":"2425:17:101","value":{"kind":"number","nativeSrc":"2439:3:101","nodeType":"YulLiteral","src":"2439:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2429:6:101","nodeType":"YulTypedName","src":"2429:6:101","type":""}]},{"nativeSrc":"2456:74:101","nodeType":"YulAssignment","src":"2456:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2502:9:101","nodeType":"YulIdentifier","src":"2502:9:101"},{"name":"offset","nativeSrc":"2513:6:101","nodeType":"YulIdentifier","src":"2513:6:101"}],"functionName":{"name":"add","nativeSrc":"2498:3:101","nodeType":"YulIdentifier","src":"2498:3:101"},"nativeSrc":"2498:22:101","nodeType":"YulFunctionCall","src":"2498:22:101"},{"name":"dataEnd","nativeSrc":"2522:7:101","nodeType":"YulIdentifier","src":"2522:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2466:31:101","nodeType":"YulIdentifier","src":"2466:31:101"},"nativeSrc":"2466:64:101","nodeType":"YulFunctionCall","src":"2466:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2456:6:101","nodeType":"YulIdentifier","src":"2456:6:101"}]}]},{"nativeSrc":"2550:130:101","nodeType":"YulBlock","src":"2550:130:101","statements":[{"nativeSrc":"2565:17:101","nodeType":"YulVariableDeclaration","src":"2565:17:101","value":{"kind":"number","nativeSrc":"2579:3:101","nodeType":"YulLiteral","src":"2579:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2569:6:101","nodeType":"YulTypedName","src":"2569:6:101","type":""}]},{"nativeSrc":"2596:74:101","nodeType":"YulAssignment","src":"2596:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2642:9:101","nodeType":"YulIdentifier","src":"2642:9:101"},{"name":"offset","nativeSrc":"2653:6:101","nodeType":"YulIdentifier","src":"2653:6:101"}],"functionName":{"name":"add","nativeSrc":"2638:3:101","nodeType":"YulIdentifier","src":"2638:3:101"},"nativeSrc":"2638:22:101","nodeType":"YulFunctionCall","src":"2638:22:101"},{"name":"dataEnd","nativeSrc":"2662:7:101","nodeType":"YulIdentifier","src":"2662:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2606:31:101","nodeType":"YulIdentifier","src":"2606:31:101"},"nativeSrc":"2606:64:101","nodeType":"YulFunctionCall","src":"2606:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2596:6:101","nodeType":"YulIdentifier","src":"2596:6:101"}]}]},{"nativeSrc":"2690:130:101","nodeType":"YulBlock","src":"2690:130:101","statements":[{"nativeSrc":"2705:17:101","nodeType":"YulVariableDeclaration","src":"2705:17:101","value":{"kind":"number","nativeSrc":"2719:3:101","nodeType":"YulLiteral","src":"2719:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2709:6:101","nodeType":"YulTypedName","src":"2709:6:101","type":""}]},{"nativeSrc":"2736:74:101","nodeType":"YulAssignment","src":"2736:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2782:9:101","nodeType":"YulIdentifier","src":"2782:9:101"},{"name":"offset","nativeSrc":"2793:6:101","nodeType":"YulIdentifier","src":"2793:6:101"}],"functionName":{"name":"add","nativeSrc":"2778:3:101","nodeType":"YulIdentifier","src":"2778:3:101"},"nativeSrc":"2778:22:101","nodeType":"YulFunctionCall","src":"2778:22:101"},{"name":"dataEnd","nativeSrc":"2802:7:101","nodeType":"YulIdentifier","src":"2802:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2746:31:101","nodeType":"YulIdentifier","src":"2746:31:101"},"nativeSrc":"2746:64:101","nodeType":"YulFunctionCall","src":"2746:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2736:6:101","nodeType":"YulIdentifier","src":"2736:6:101"}]}]},{"nativeSrc":"2830:130:101","nodeType":"YulBlock","src":"2830:130:101","statements":[{"nativeSrc":"2845:17:101","nodeType":"YulVariableDeclaration","src":"2845:17:101","value":{"kind":"number","nativeSrc":"2859:3:101","nodeType":"YulLiteral","src":"2859:3:101","type":"","value":"288"},"variables":[{"name":"offset","nativeSrc":"2849:6:101","nodeType":"YulTypedName","src":"2849:6:101","type":""}]},{"nativeSrc":"2876:74:101","nodeType":"YulAssignment","src":"2876:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2922:9:101","nodeType":"YulIdentifier","src":"2922:9:101"},{"name":"offset","nativeSrc":"2933:6:101","nodeType":"YulIdentifier","src":"2933:6:101"}],"functionName":{"name":"add","nativeSrc":"2918:3:101","nodeType":"YulIdentifier","src":"2918:3:101"},"nativeSrc":"2918:22:101","nodeType":"YulFunctionCall","src":"2918:22:101"},{"name":"dataEnd","nativeSrc":"2942:7:101","nodeType":"YulIdentifier","src":"2942:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2886:31:101","nodeType":"YulIdentifier","src":"2886:31:101"},"nativeSrc":"2886:64:101","nodeType":"YulFunctionCall","src":"2886:64:101"},"variableNames":[{"name":"value9","nativeSrc":"2876:6:101","nodeType":"YulIdentifier","src":"2876:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1762:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1333:9:101","nodeType":"YulTypedName","src":"1333:9:101","type":""},{"name":"dataEnd","nativeSrc":"1344:7:101","nodeType":"YulTypedName","src":"1344:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1356:6:101","nodeType":"YulTypedName","src":"1356:6:101","type":""},{"name":"value1","nativeSrc":"1364:6:101","nodeType":"YulTypedName","src":"1364:6:101","type":""},{"name":"value2","nativeSrc":"1372:6:101","nodeType":"YulTypedName","src":"1372:6:101","type":""},{"name":"value3","nativeSrc":"1380:6:101","nodeType":"YulTypedName","src":"1380:6:101","type":""},{"name":"value4","nativeSrc":"1388:6:101","nodeType":"YulTypedName","src":"1388:6:101","type":""},{"name":"value5","nativeSrc":"1396:6:101","nodeType":"YulTypedName","src":"1396:6:101","type":""},{"name":"value6","nativeSrc":"1404:6:101","nodeType":"YulTypedName","src":"1404:6:101","type":""},{"name":"value7","nativeSrc":"1412:6:101","nodeType":"YulTypedName","src":"1412:6:101","type":""},{"name":"value8","nativeSrc":"1420:6:101","nodeType":"YulTypedName","src":"1420:6:101","type":""},{"name":"value9","nativeSrc":"1428:6:101","nodeType":"YulTypedName","src":"1428:6:101","type":""}],"src":"1205:1762:101"},{"body":{"nativeSrc":"3001:152:101","nodeType":"YulBlock","src":"3001:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3018:1:101","nodeType":"YulLiteral","src":"3018:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3021:77:101","nodeType":"YulLiteral","src":"3021:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3011:6:101","nodeType":"YulIdentifier","src":"3011:6:101"},"nativeSrc":"3011:88:101","nodeType":"YulFunctionCall","src":"3011:88:101"},"nativeSrc":"3011:88:101","nodeType":"YulExpressionStatement","src":"3011:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3115:1:101","nodeType":"YulLiteral","src":"3115:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3118:4:101","nodeType":"YulLiteral","src":"3118:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3108:6:101","nodeType":"YulIdentifier","src":"3108:6:101"},"nativeSrc":"3108:15:101","nodeType":"YulFunctionCall","src":"3108:15:101"},"nativeSrc":"3108:15:101","nodeType":"YulExpressionStatement","src":"3108:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3139:1:101","nodeType":"YulLiteral","src":"3139:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3142:4:101","nodeType":"YulLiteral","src":"3142:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3132:6:101","nodeType":"YulIdentifier","src":"3132:6:101"},"nativeSrc":"3132:15:101","nodeType":"YulFunctionCall","src":"3132:15:101"},"nativeSrc":"3132:15:101","nodeType":"YulExpressionStatement","src":"3132:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2973:180:101","nodeType":"YulFunctionDefinition","src":"2973:180:101"},{"body":{"nativeSrc":"3187:152:101","nodeType":"YulBlock","src":"3187:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3204:1:101","nodeType":"YulLiteral","src":"3204:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3207:77:101","nodeType":"YulLiteral","src":"3207:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3197:6:101","nodeType":"YulIdentifier","src":"3197:6:101"},"nativeSrc":"3197:88:101","nodeType":"YulFunctionCall","src":"3197:88:101"},"nativeSrc":"3197:88:101","nodeType":"YulExpressionStatement","src":"3197:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3301:1:101","nodeType":"YulLiteral","src":"3301:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3294:6:101","nodeType":"YulIdentifier","src":"3294:6:101"},"nativeSrc":"3294:15:101","nodeType":"YulFunctionCall","src":"3294:15:101"},"nativeSrc":"3294:15:101","nodeType":"YulExpressionStatement","src":"3294:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3325:1:101","nodeType":"YulLiteral","src":"3325:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3328:4:101","nodeType":"YulLiteral","src":"3328:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3318:6:101","nodeType":"YulIdentifier","src":"3318:6:101"},"nativeSrc":"3318:15:101","nodeType":"YulFunctionCall","src":"3318:15:101"},"nativeSrc":"3318:15:101","nodeType":"YulExpressionStatement","src":"3318:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3159:180:101","nodeType":"YulFunctionDefinition","src":"3159:180:101"},{"body":{"nativeSrc":"3387:143:101","nodeType":"YulBlock","src":"3387:143:101","statements":[{"nativeSrc":"3397:25:101","nodeType":"YulAssignment","src":"3397:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3420:1:101","nodeType":"YulIdentifier","src":"3420:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3402:17:101","nodeType":"YulIdentifier","src":"3402:17:101"},"nativeSrc":"3402:20:101","nodeType":"YulFunctionCall","src":"3402:20:101"},"variableNames":[{"name":"x","nativeSrc":"3397:1:101","nodeType":"YulIdentifier","src":"3397:1:101"}]},{"nativeSrc":"3431:25:101","nodeType":"YulAssignment","src":"3431:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3454:1:101","nodeType":"YulIdentifier","src":"3454:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3436:17:101","nodeType":"YulIdentifier","src":"3436:17:101"},"nativeSrc":"3436:20:101","nodeType":"YulFunctionCall","src":"3436:20:101"},"variableNames":[{"name":"y","nativeSrc":"3431:1:101","nodeType":"YulIdentifier","src":"3431:1:101"}]},{"body":{"nativeSrc":"3478:22:101","nodeType":"YulBlock","src":"3478:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3480:16:101","nodeType":"YulIdentifier","src":"3480:16:101"},"nativeSrc":"3480:18:101","nodeType":"YulFunctionCall","src":"3480:18:101"},"nativeSrc":"3480:18:101","nodeType":"YulExpressionStatement","src":"3480:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3475:1:101","nodeType":"YulIdentifier","src":"3475:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3468:6:101","nodeType":"YulIdentifier","src":"3468:6:101"},"nativeSrc":"3468:9:101","nodeType":"YulFunctionCall","src":"3468:9:101"},"nativeSrc":"3465:35:101","nodeType":"YulIf","src":"3465:35:101"},{"nativeSrc":"3510:14:101","nodeType":"YulAssignment","src":"3510:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3519:1:101","nodeType":"YulIdentifier","src":"3519:1:101"},{"name":"y","nativeSrc":"3522:1:101","nodeType":"YulIdentifier","src":"3522:1:101"}],"functionName":{"name":"div","nativeSrc":"3515:3:101","nodeType":"YulIdentifier","src":"3515:3:101"},"nativeSrc":"3515:9:101","nodeType":"YulFunctionCall","src":"3515:9:101"},"variableNames":[{"name":"r","nativeSrc":"3510:1:101","nodeType":"YulIdentifier","src":"3510:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3345:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3376:1:101","nodeType":"YulTypedName","src":"3376:1:101","type":""},{"name":"y","nativeSrc":"3379:1:101","nodeType":"YulTypedName","src":"3379:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3385:1:101","nodeType":"YulTypedName","src":"3385:1:101","type":""}],"src":"3345:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n        if slt(sub(dataEnd, headStart), 320) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 288\n\n            value9 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b5060405161124438038061124483398101604081905261002f916101a3565b8989898888888888886100466301e133808761028c565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610138565b6100ce88610138565b6100d787610138565b6100e082610138565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261011a87610138565b5050506001600160a01b03909316610100525061029f945050505050565b6001600160a01b03811661015f576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61017d81610162565b811461015f575f80fd5b805161016e81610174565b8061017d565b805161016e81610192565b5f805f805f805f805f806101408b8d0312156101c0576101c05f80fd5b5f6101cb8d8d610187565b9a505060206101dc8d828e01610187565b99505060406101ed8d828e01610187565b98505060606101fe8d828e01610187565b975050608061020f8d828e01610198565b96505060a06102208d828e01610198565b95505060c06102318d828e01610198565b94505060e06102428d828e01610198565b9350506101006102548d828e01610187565b9250506101206102668d828e01610198565b9150509295989b9194979a5092959850565b634e487b7160e01b5f52601260045260245ffd5b5f8261029a5761029a610278565b500490565b60805160a05160c05160e05161010051610f1b6103295f395f818161028d01526107b401525f81816101890152610a5a01525f818161024e0152818161057401526108ed01525f8181610139015281816105a1015281816106a8015261091c01525f818161020b015281816102b20152818161072e015281816107e3015261099b0152610f1b5ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063abb8561314610270578063ac5a693e14610278578063bdf13af214610280578063ef4fa51b14610288575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610b0b565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610b38565b61011e60045481565b61011e61017f366004610b67565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610baa565b6101cb6101c6366004610bc9565b610360565b005b61011e60025481565b6101cb6101e4366004610be7565b6103d1565b6101f16104a5565b60405161012b9190610c29565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610be7565b61062c565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61089c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816108e9565b9392505050565b5f61032f61089c565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816108e9565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610a41565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610a41565b5f5461041f6301e1338084610c5f565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610b0b565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61089c565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610c72565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761089c565b9050600454818311610529578261052b565b815b6105359190610c85565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f000000000000000000000000000000000000000000000000000000000000000090600401610b38565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610a41565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610702573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107269190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610788573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ac9190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081e9190610b38565b602060405180830381865afa158015610839573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085d9190610cd5565b905061086a836024610c72565b61087590600a610dff565b61088083600a610dff565b61088a9083610e0c565b6108949190610c5f565b935050505090565b5f80600354426108ac9190610c72565b90505f670de0b6b3a7640000825f546002546108c89190610e0c565b6108d29190610e0c565b6108dc9190610c5f565b60025461031f9190610c85565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016109579190610b38565b602060405180830381865afa158015610972573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109969190610cd5565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1d9190610cac565b60ff169050610a2d81600a610dff565b610a378487610e0c565b6103579190610c5f565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab90610a919033908690600401610e67565b602060405180830381865afa158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad09190610e9a565b905080610aff57333083604051634a3fa29360e01b8152600401610af693929190610eb8565b60405180910390fd5b5050565b805b82525050565b60208101610b198284610b03565b92915050565b5f6001600160a01b038216610b19565b610b0581610b1f565b60208101610b198284610b2f565b610b4f81610b1f565b8114610b59575f80fd5b50565b8035610b1981610b46565b5f60208284031215610b7a57610b7a5f80fd5b5f610b858484610b5c565b949350505050565b5f610b1982610b1f565b5f610b1982610b8d565b610b0581610b97565b60208101610b198284610ba1565b80610b4f565b8035610b1981610bb8565b5f60208284031215610bdc57610bdc5f80fd5b5f610b858484610bbe565b5f8060408385031215610bfb57610bfb5f80fd5b5f610c068585610bbe565b9250506020610c1785828601610bbe565b9150509250929050565b801515610b05565b60208101610b198284610c21565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610c6d57610c6d610c37565b500490565b81810381811115610b1957610b19610c4b565b80820180821115610b1957610b19610c4b565b60ff8116610b4f565b8051610b1981610c98565b5f60208284031215610cbf57610cbf5f80fd5b5f610b858484610ca1565b8051610b1981610bb8565b5f60208284031215610ce857610ce85f80fd5b5f610b858484610cca565b80825b6001851115610d3257808604811115610d1157610d11610c4b565b6001851615610d1f57908102905b8002610d2b8560011c90565b9450610cf6565b94509492505050565b5f82610d495750600161031f565b81610d5557505f61031f565b8160018114610d6b5760028114610d7557610da2565b600191505061031f565b60ff841115610d8657610d86610c4b565b8360020a915084821115610d9c57610d9c610c4b565b5061031f565b5060208310610133831016604e8410600b8410161715610dd5575081810a83811115610dd057610dd0610c4b565b61031f565b610de28484846001610cf3565b92509050818404811115610df857610df8610c4b565b0292915050565b5f61031f5f198484610d3b565b818102808215838204851417610e2457610e24610c4b565b5092915050565b8281835e505f910152565b5f610e3f825190565b808452602084019350610e56818560208601610e2b565b601f01601f19169290920192915050565b60408101610e758285610b2f565b8181036020830152610b858184610e36565b801515610b4f565b8051610b1981610e87565b5f60208284031215610ead57610ead5f80fd5b5f610b858484610e8f565b60608101610ec68286610b2f565b610ed36020830185610b2f565b81810360408301526103578184610e3656fea264697066735822122084b9b4f99d18d67bf744570db1b94b71dc0b20993a9d8decc1c66b840c6df8ca64736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1244 CODESIZE SUB DUP1 PUSH2 0x1244 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1A3 JUMP JUMPDEST DUP10 DUP10 DUP10 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x28C JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x138 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x11A DUP8 PUSH2 0x138 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH2 0x100 MSTORE POP PUSH2 0x29F SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17D DUP2 PUSH2 0x162 JUMP JUMPDEST DUP2 EQ PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x174 JUMP JUMPDEST DUP1 PUSH2 0x17D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x192 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x1C0 JUMPI PUSH2 0x1C0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CB DUP14 DUP14 PUSH2 0x187 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x1DC DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x1ED DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x1FE DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x20F DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x220 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x231 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 PUSH2 0x242 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 PUSH2 0x254 DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 PUSH2 0x266 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x29A JUMPI PUSH2 0x29A PUSH2 0x278 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xF1B PUSH2 0x329 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x28D ADD MSTORE PUSH2 0x7B4 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x189 ADD MSTORE PUSH2 0xA5A ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x24E ADD MSTORE DUP2 DUP2 PUSH2 0x574 ADD MSTORE PUSH2 0x8ED ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x5A1 ADD MSTORE DUP2 DUP2 PUSH2 0x6A8 ADD MSTORE PUSH2 0x91C ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x20B ADD MSTORE DUP2 DUP2 PUSH2 0x2B2 ADD MSTORE DUP2 DUP2 PUSH2 0x72E ADD MSTORE DUP2 DUP2 PUSH2 0x7E3 ADD MSTORE PUSH2 0x99B ADD MSTORE PUSH2 0xF1B PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xEF4FA51B EQ PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xB0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC9 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xC29 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x89C JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x8E9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x89C JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x8E9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0xA41 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0xA41 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xC5F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0xB0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x89C JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xC72 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x89C JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xC85 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xB38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0xA41 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x702 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x726 SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x788 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7AC SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81E SWAP2 SWAP1 PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x85D SWAP2 SWAP1 PUSH2 0xCD5 JUMP JUMPDEST SWAP1 POP PUSH2 0x86A DUP4 PUSH1 0x24 PUSH2 0xC72 JUMP JUMPDEST PUSH2 0x875 SWAP1 PUSH1 0xA PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x880 DUP4 PUSH1 0xA PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x88A SWAP1 DUP4 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x894 SWAP2 SWAP1 PUSH2 0xC5F JUMP JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0xC72 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x8C8 SWAP2 SWAP1 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x8D2 SWAP2 SWAP1 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x8DC SWAP2 SWAP1 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xC85 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x957 SWAP2 SWAP1 PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x996 SWAP2 SWAP1 PUSH2 0xCD5 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x9F9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xA1D SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0xA2D DUP2 PUSH1 0xA PUSH2 0xDFF JUMP JUMPDEST PUSH2 0xA37 DUP5 DUP8 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xA91 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xE67 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAAC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xAD0 SWAP2 SWAP1 PUSH2 0xE9A JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xAFF JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xB03 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB19 JUMP JUMPDEST PUSH2 0xB05 DUP2 PUSH2 0xB1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xB2F JUMP JUMPDEST PUSH2 0xB4F DUP2 PUSH2 0xB1F JUMP JUMPDEST DUP2 EQ PUSH2 0xB59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xB19 DUP2 PUSH2 0xB46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7A JUMPI PUSH2 0xB7A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xB5C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB19 DUP3 PUSH2 0xB1F JUMP JUMPDEST PUSH0 PUSH2 0xB19 DUP3 PUSH2 0xB8D JUMP JUMPDEST PUSH2 0xB05 DUP2 PUSH2 0xB97 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xBA1 JUMP JUMPDEST DUP1 PUSH2 0xB4F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xB19 DUP2 PUSH2 0xBB8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBDC JUMPI PUSH2 0xBDC PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xBBE JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBFB JUMPI PUSH2 0xBFB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xC06 DUP6 DUP6 PUSH2 0xBBE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC17 DUP6 DUP3 DUP7 ADD PUSH2 0xBBE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xC21 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xC6D JUMPI PUSH2 0xC6D PUSH2 0xC37 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xB19 JUMPI PUSH2 0xB19 PUSH2 0xC4B JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xB19 JUMPI PUSH2 0xB19 PUSH2 0xC4B JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xB4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB19 DUP2 PUSH2 0xC98 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xCA1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB19 DUP2 PUSH2 0xBB8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE8 JUMPI PUSH2 0xCE8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xCCA JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xD32 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xD11 JUMPI PUSH2 0xD11 PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xD1F JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xD2B DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xCF6 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xD49 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xD55 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xD6B JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xD75 JUMPI PUSH2 0xDA2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD86 PUSH2 0xC4B JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xD9C JUMPI PUSH2 0xD9C PUSH2 0xC4B JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xDD5 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xDD0 JUMPI PUSH2 0xDD0 PUSH2 0xC4B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xDE2 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xCF3 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xDF8 JUMPI PUSH2 0xDF8 PUSH2 0xC4B JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xD3B JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xE24 JUMPI PUSH2 0xE24 PUSH2 0xC4B JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xE3F DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xE56 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE2B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE75 DUP3 DUP6 PUSH2 0xB2F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xB85 DUP2 DUP5 PUSH2 0xE36 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xB4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB19 DUP2 PUSH2 0xE87 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAD JUMPI PUSH2 0xEAD PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xEC6 DUP3 DUP7 PUSH2 0xB2F JUMP JUMPDEST PUSH2 0xED3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xB2F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xE36 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 0xB9 0xB4 0xF9 SWAP14 XOR 0xD6 PUSH28 0xF744570DB1B94B71DC0B20993A9D8DECC1C66B840C6DF8CA64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"546:1745:54:-:0;;;771:838;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1194:15;1223;1252;1281:16;1311:17;1342:30;1386:24;1424:20;1458:12;3527:36:67;408:10:17;1281:16:54;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1495:40:54::1;1516:18:::0;1495:20:::1;:40::i;:::-;-1:-1:-1::0;;;;;;;;1545:57:54;;::::1;;::::0;-1:-1:-1;546:1745:54;;-1:-1:-1;;;;;546:1745:54;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1762::-;1356:6;1364;1372;1380;1388;1396;1404;1412;1420;1428;1477:3;1465:9;1456:7;1452:23;1448:33;1445:120;;;1484:79;197:1;194;187:12;1484:79;1604:1;1629:64;1685:7;1665:9;1629:64;:::i;:::-;1619:74;;1575:128;1742:2;1768:64;1824:7;1815:6;1804:9;1800:22;1768:64;:::i;:::-;1758:74;;1713:129;1881:2;1907:64;1963:7;1954:6;1943:9;1939:22;1907:64;:::i;:::-;1897:74;;1852:129;2020:2;2046:64;2102:7;2093:6;2082:9;2078:22;2046:64;:::i;:::-;2036:74;;1991:129;2159:3;2186:64;2242:7;2233:6;2222:9;2218:22;2186:64;:::i;:::-;2176:74;;2130:130;2299:3;2326:64;2382:7;2373:6;2362:9;2358:22;2326:64;:::i;:::-;2316:74;;2270:130;2439:3;2466:64;2522:7;2513:6;2502:9;2498:22;2466:64;:::i;:::-;2456:74;;2410:130;2579:3;2606:64;2662:7;2653:6;2642:9;2638:22;2606:64;:::i;:::-;2596:74;;2550:130;2719:3;2746:64;2802:7;2793:6;2782:9;2778:22;2746:64;:::i;:::-;2736:74;;2690:130;2859:3;2886:64;2942:7;2933:6;2922:9;2918:22;2886:64;:::i;:::-;2876:74;;2830:130;1205:1762;;;;;;;;;;;;;:::o;2973:180::-;-1:-1:-1;;;3018:1:101;3011:88;3118:4;3115:1;3108:15;3142:4;3139:1;3132:15;3345:185;3385:1;3475;3465:35;;3480:18;;:::i;:::-;-1:-1:-1;3515:9:101;;3345:185::o;:::-;546:1745:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@INTERMEDIATE_ORACLE_5239":{"entryPoint":null,"id":5239,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":2281,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2625,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":2204,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":687,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_5332":{"entryPoint":1700,"id":5332,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1189,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":977,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":864,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1580,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1248,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2908,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3727,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":3006,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":3274,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":3233,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2919,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3738,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3017,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3285,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":3047,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":3244,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2863,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3105,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2977,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3638,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2819,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2872,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3768,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3687,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3113,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2986,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2827,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3205,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":3167,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3315,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3583,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3387,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3596,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":3186,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2847,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2967,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_OracleInterface_$3666_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2957,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3627,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3147,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":3127,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2886,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3719,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3000,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":3224,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13185:101","nodeType":"YulBlock","src":"0:13185:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5227:66:101","nodeType":"YulBlock","src":"5227:66:101","statements":[{"nativeSrc":"5237:50:101","nodeType":"YulAssignment","src":"5237:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5281:5:101","nodeType":"YulIdentifier","src":"5281:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5250:30:101","nodeType":"YulIdentifier","src":"5250:30:101"},"nativeSrc":"5250:37:101","nodeType":"YulFunctionCall","src":"5250:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5237:9:101","nodeType":"YulIdentifier","src":"5237:9:101"}]}]},"name":"convert_t_contract$_OracleInterface_$3666_to_t_address","nativeSrc":"5143:150:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5207:5:101","nodeType":"YulTypedName","src":"5207:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5217:9:101","nodeType":"YulTypedName","src":"5217:9:101","type":""}],"src":"5143:150:101"},{"body":{"nativeSrc":"5388:90:101","nodeType":"YulBlock","src":"5388:90:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5405:3:101","nodeType":"YulIdentifier","src":"5405:3:101"},{"arguments":[{"name":"value","nativeSrc":"5465:5:101","nodeType":"YulIdentifier","src":"5465:5:101"}],"functionName":{"name":"convert_t_contract$_OracleInterface_$3666_to_t_address","nativeSrc":"5410:54:101","nodeType":"YulIdentifier","src":"5410:54:101"},"nativeSrc":"5410:61:101","nodeType":"YulFunctionCall","src":"5410:61:101"}],"functionName":{"name":"mstore","nativeSrc":"5398:6:101","nodeType":"YulIdentifier","src":"5398:6:101"},"nativeSrc":"5398:74:101","nodeType":"YulFunctionCall","src":"5398:74:101"},"nativeSrc":"5398:74:101","nodeType":"YulExpressionStatement","src":"5398:74:101"}]},"name":"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack","nativeSrc":"5299:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5376:5:101","nodeType":"YulTypedName","src":"5376:5:101","type":""},{"name":"pos","nativeSrc":"5383:3:101","nodeType":"YulTypedName","src":"5383:3:101","type":""}],"src":"5299:179:101"},{"body":{"nativeSrc":"5606:148:101","nodeType":"YulBlock","src":"5606:148:101","statements":[{"nativeSrc":"5616:26:101","nodeType":"YulAssignment","src":"5616:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5628:9:101","nodeType":"YulIdentifier","src":"5628:9:101"},{"kind":"number","nativeSrc":"5639:2:101","nodeType":"YulLiteral","src":"5639:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5624:3:101","nodeType":"YulIdentifier","src":"5624:3:101"},"nativeSrc":"5624:18:101","nodeType":"YulFunctionCall","src":"5624:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5616:4:101","nodeType":"YulIdentifier","src":"5616:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5720:6:101","nodeType":"YulIdentifier","src":"5720:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5733:9:101","nodeType":"YulIdentifier","src":"5733:9:101"},{"kind":"number","nativeSrc":"5744:1:101","nodeType":"YulLiteral","src":"5744:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5729:3:101","nodeType":"YulIdentifier","src":"5729:3:101"},"nativeSrc":"5729:17:101","nodeType":"YulFunctionCall","src":"5729:17:101"}],"functionName":{"name":"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack","nativeSrc":"5652:67:101","nodeType":"YulIdentifier","src":"5652:67:101"},"nativeSrc":"5652:95:101","nodeType":"YulFunctionCall","src":"5652:95:101"},"nativeSrc":"5652:95:101","nodeType":"YulExpressionStatement","src":"5652:95:101"}]},"name":"abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed","nativeSrc":"5484:270:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5578:9:101","nodeType":"YulTypedName","src":"5578:9:101","type":""},{"name":"value0","nativeSrc":"5590:6:101","nodeType":"YulTypedName","src":"5590:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5601:4:101","nodeType":"YulTypedName","src":"5601:4:101","type":""}],"src":"5484:270:101"},{"body":{"nativeSrc":"5788:152:101","nodeType":"YulBlock","src":"5788:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5805:1:101","nodeType":"YulLiteral","src":"5805:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5808:77:101","nodeType":"YulLiteral","src":"5808:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5798:6:101","nodeType":"YulIdentifier","src":"5798:6:101"},"nativeSrc":"5798:88:101","nodeType":"YulFunctionCall","src":"5798:88:101"},"nativeSrc":"5798:88:101","nodeType":"YulExpressionStatement","src":"5798:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5902:1:101","nodeType":"YulLiteral","src":"5902:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5905:4:101","nodeType":"YulLiteral","src":"5905:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5895:6:101","nodeType":"YulIdentifier","src":"5895:6:101"},"nativeSrc":"5895:15:101","nodeType":"YulFunctionCall","src":"5895:15:101"},"nativeSrc":"5895:15:101","nodeType":"YulExpressionStatement","src":"5895:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5926:1:101","nodeType":"YulLiteral","src":"5926:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5929:4:101","nodeType":"YulLiteral","src":"5929:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5919:6:101","nodeType":"YulIdentifier","src":"5919:6:101"},"nativeSrc":"5919:15:101","nodeType":"YulFunctionCall","src":"5919:15:101"},"nativeSrc":"5919:15:101","nodeType":"YulExpressionStatement","src":"5919:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5760:180:101","nodeType":"YulFunctionDefinition","src":"5760:180:101"},{"body":{"nativeSrc":"5974:152:101","nodeType":"YulBlock","src":"5974:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5991:1:101","nodeType":"YulLiteral","src":"5991:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5994:77:101","nodeType":"YulLiteral","src":"5994:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5984:6:101","nodeType":"YulIdentifier","src":"5984:6:101"},"nativeSrc":"5984:88:101","nodeType":"YulFunctionCall","src":"5984:88:101"},"nativeSrc":"5984:88:101","nodeType":"YulExpressionStatement","src":"5984:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6088:1:101","nodeType":"YulLiteral","src":"6088:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6091:4:101","nodeType":"YulLiteral","src":"6091:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6081:6:101","nodeType":"YulIdentifier","src":"6081:6:101"},"nativeSrc":"6081:15:101","nodeType":"YulFunctionCall","src":"6081:15:101"},"nativeSrc":"6081:15:101","nodeType":"YulExpressionStatement","src":"6081:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6112:1:101","nodeType":"YulLiteral","src":"6112:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6115:4:101","nodeType":"YulLiteral","src":"6115:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6105:6:101","nodeType":"YulIdentifier","src":"6105:6:101"},"nativeSrc":"6105:15:101","nodeType":"YulFunctionCall","src":"6105:15:101"},"nativeSrc":"6105:15:101","nodeType":"YulExpressionStatement","src":"6105:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5946:180:101","nodeType":"YulFunctionDefinition","src":"5946:180:101"},{"body":{"nativeSrc":"6174:143:101","nodeType":"YulBlock","src":"6174:143:101","statements":[{"nativeSrc":"6184:25:101","nodeType":"YulAssignment","src":"6184:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6207:1:101","nodeType":"YulIdentifier","src":"6207:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6189:17:101","nodeType":"YulIdentifier","src":"6189:17:101"},"nativeSrc":"6189:20:101","nodeType":"YulFunctionCall","src":"6189:20:101"},"variableNames":[{"name":"x","nativeSrc":"6184:1:101","nodeType":"YulIdentifier","src":"6184:1:101"}]},{"nativeSrc":"6218:25:101","nodeType":"YulAssignment","src":"6218:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6241:1:101","nodeType":"YulIdentifier","src":"6241:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6223:17:101","nodeType":"YulIdentifier","src":"6223:17:101"},"nativeSrc":"6223:20:101","nodeType":"YulFunctionCall","src":"6223:20:101"},"variableNames":[{"name":"y","nativeSrc":"6218:1:101","nodeType":"YulIdentifier","src":"6218:1:101"}]},{"body":{"nativeSrc":"6265:22:101","nodeType":"YulBlock","src":"6265:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6267:16:101","nodeType":"YulIdentifier","src":"6267:16:101"},"nativeSrc":"6267:18:101","nodeType":"YulFunctionCall","src":"6267:18:101"},"nativeSrc":"6267:18:101","nodeType":"YulExpressionStatement","src":"6267:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6262:1:101","nodeType":"YulIdentifier","src":"6262:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6255:6:101","nodeType":"YulIdentifier","src":"6255:6:101"},"nativeSrc":"6255:9:101","nodeType":"YulFunctionCall","src":"6255:9:101"},"nativeSrc":"6252:35:101","nodeType":"YulIf","src":"6252:35:101"},{"nativeSrc":"6297:14:101","nodeType":"YulAssignment","src":"6297:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6306:1:101","nodeType":"YulIdentifier","src":"6306:1:101"},{"name":"y","nativeSrc":"6309:1:101","nodeType":"YulIdentifier","src":"6309:1:101"}],"functionName":{"name":"div","nativeSrc":"6302:3:101","nodeType":"YulIdentifier","src":"6302:3:101"},"nativeSrc":"6302:9:101","nodeType":"YulFunctionCall","src":"6302:9:101"},"variableNames":[{"name":"r","nativeSrc":"6297:1:101","nodeType":"YulIdentifier","src":"6297:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6132:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6163:1:101","nodeType":"YulTypedName","src":"6163:1:101","type":""},{"name":"y","nativeSrc":"6166:1:101","nodeType":"YulTypedName","src":"6166:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6172:1:101","nodeType":"YulTypedName","src":"6172:1:101","type":""}],"src":"6132:185:101"},{"body":{"nativeSrc":"6368:149:101","nodeType":"YulBlock","src":"6368:149:101","statements":[{"nativeSrc":"6378:25:101","nodeType":"YulAssignment","src":"6378:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6401:1:101","nodeType":"YulIdentifier","src":"6401:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6383:17:101","nodeType":"YulIdentifier","src":"6383:17:101"},"nativeSrc":"6383:20:101","nodeType":"YulFunctionCall","src":"6383:20:101"},"variableNames":[{"name":"x","nativeSrc":"6378:1:101","nodeType":"YulIdentifier","src":"6378:1:101"}]},{"nativeSrc":"6412:25:101","nodeType":"YulAssignment","src":"6412:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6435:1:101","nodeType":"YulIdentifier","src":"6435:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6417:17:101","nodeType":"YulIdentifier","src":"6417:17:101"},"nativeSrc":"6417:20:101","nodeType":"YulFunctionCall","src":"6417:20:101"},"variableNames":[{"name":"y","nativeSrc":"6412:1:101","nodeType":"YulIdentifier","src":"6412:1:101"}]},{"nativeSrc":"6446:17:101","nodeType":"YulAssignment","src":"6446:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6458:1:101","nodeType":"YulIdentifier","src":"6458:1:101"},{"name":"y","nativeSrc":"6461:1:101","nodeType":"YulIdentifier","src":"6461:1:101"}],"functionName":{"name":"sub","nativeSrc":"6454:3:101","nodeType":"YulIdentifier","src":"6454:3:101"},"nativeSrc":"6454:9:101","nodeType":"YulFunctionCall","src":"6454:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6446:4:101","nodeType":"YulIdentifier","src":"6446:4:101"}]},{"body":{"nativeSrc":"6488:22:101","nodeType":"YulBlock","src":"6488:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6490:16:101","nodeType":"YulIdentifier","src":"6490:16:101"},"nativeSrc":"6490:18:101","nodeType":"YulFunctionCall","src":"6490:18:101"},"nativeSrc":"6490:18:101","nodeType":"YulExpressionStatement","src":"6490:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6479:4:101","nodeType":"YulIdentifier","src":"6479:4:101"},{"name":"x","nativeSrc":"6485:1:101","nodeType":"YulIdentifier","src":"6485:1:101"}],"functionName":{"name":"gt","nativeSrc":"6476:2:101","nodeType":"YulIdentifier","src":"6476:2:101"},"nativeSrc":"6476:11:101","nodeType":"YulFunctionCall","src":"6476:11:101"},"nativeSrc":"6473:37:101","nodeType":"YulIf","src":"6473:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6323:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6354:1:101","nodeType":"YulTypedName","src":"6354:1:101","type":""},{"name":"y","nativeSrc":"6357:1:101","nodeType":"YulTypedName","src":"6357:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6363:4:101","nodeType":"YulTypedName","src":"6363:4:101","type":""}],"src":"6323:194:101"},{"body":{"nativeSrc":"6567:147:101","nodeType":"YulBlock","src":"6567:147:101","statements":[{"nativeSrc":"6577:25:101","nodeType":"YulAssignment","src":"6577:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6600:1:101","nodeType":"YulIdentifier","src":"6600:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6582:17:101","nodeType":"YulIdentifier","src":"6582:17:101"},"nativeSrc":"6582:20:101","nodeType":"YulFunctionCall","src":"6582:20:101"},"variableNames":[{"name":"x","nativeSrc":"6577:1:101","nodeType":"YulIdentifier","src":"6577:1:101"}]},{"nativeSrc":"6611:25:101","nodeType":"YulAssignment","src":"6611:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6634:1:101","nodeType":"YulIdentifier","src":"6634:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6616:17:101","nodeType":"YulIdentifier","src":"6616:17:101"},"nativeSrc":"6616:20:101","nodeType":"YulFunctionCall","src":"6616:20:101"},"variableNames":[{"name":"y","nativeSrc":"6611:1:101","nodeType":"YulIdentifier","src":"6611:1:101"}]},{"nativeSrc":"6645:16:101","nodeType":"YulAssignment","src":"6645:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6656:1:101","nodeType":"YulIdentifier","src":"6656:1:101"},{"name":"y","nativeSrc":"6659:1:101","nodeType":"YulIdentifier","src":"6659:1:101"}],"functionName":{"name":"add","nativeSrc":"6652:3:101","nodeType":"YulIdentifier","src":"6652:3:101"},"nativeSrc":"6652:9:101","nodeType":"YulFunctionCall","src":"6652:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6645:3:101","nodeType":"YulIdentifier","src":"6645:3:101"}]},{"body":{"nativeSrc":"6685:22:101","nodeType":"YulBlock","src":"6685:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6687:16:101","nodeType":"YulIdentifier","src":"6687:16:101"},"nativeSrc":"6687:18:101","nodeType":"YulFunctionCall","src":"6687:18:101"},"nativeSrc":"6687:18:101","nodeType":"YulExpressionStatement","src":"6687:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6677:1:101","nodeType":"YulIdentifier","src":"6677:1:101"},{"name":"sum","nativeSrc":"6680:3:101","nodeType":"YulIdentifier","src":"6680:3:101"}],"functionName":{"name":"gt","nativeSrc":"6674:2:101","nodeType":"YulIdentifier","src":"6674:2:101"},"nativeSrc":"6674:10:101","nodeType":"YulFunctionCall","src":"6674:10:101"},"nativeSrc":"6671:36:101","nodeType":"YulIf","src":"6671:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6523:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6554:1:101","nodeType":"YulTypedName","src":"6554:1:101","type":""},{"name":"y","nativeSrc":"6557:1:101","nodeType":"YulTypedName","src":"6557:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6563:3:101","nodeType":"YulTypedName","src":"6563:3:101","type":""}],"src":"6523:191:101"},{"body":{"nativeSrc":"6763:43:101","nodeType":"YulBlock","src":"6763:43:101","statements":[{"nativeSrc":"6773:27:101","nodeType":"YulAssignment","src":"6773:27:101","value":{"arguments":[{"name":"value","nativeSrc":"6788:5:101","nodeType":"YulIdentifier","src":"6788:5:101"},{"kind":"number","nativeSrc":"6795:4:101","nodeType":"YulLiteral","src":"6795:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"6784:3:101","nodeType":"YulIdentifier","src":"6784:3:101"},"nativeSrc":"6784:16:101","nodeType":"YulFunctionCall","src":"6784:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6773:7:101","nodeType":"YulIdentifier","src":"6773:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"6720:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6745:5:101","nodeType":"YulTypedName","src":"6745:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6755:7:101","nodeType":"YulTypedName","src":"6755:7:101","type":""}],"src":"6720:86:101"},{"body":{"nativeSrc":"6853:77:101","nodeType":"YulBlock","src":"6853:77:101","statements":[{"body":{"nativeSrc":"6908:16:101","nodeType":"YulBlock","src":"6908:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6917:1:101","nodeType":"YulLiteral","src":"6917:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6920:1:101","nodeType":"YulLiteral","src":"6920:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6910:6:101","nodeType":"YulIdentifier","src":"6910:6:101"},"nativeSrc":"6910:12:101","nodeType":"YulFunctionCall","src":"6910:12:101"},"nativeSrc":"6910:12:101","nodeType":"YulExpressionStatement","src":"6910:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6876:5:101","nodeType":"YulIdentifier","src":"6876:5:101"},{"arguments":[{"name":"value","nativeSrc":"6899:5:101","nodeType":"YulIdentifier","src":"6899:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"6883:15:101","nodeType":"YulIdentifier","src":"6883:15:101"},"nativeSrc":"6883:22:101","nodeType":"YulFunctionCall","src":"6883:22:101"}],"functionName":{"name":"eq","nativeSrc":"6873:2:101","nodeType":"YulIdentifier","src":"6873:2:101"},"nativeSrc":"6873:33:101","nodeType":"YulFunctionCall","src":"6873:33:101"}],"functionName":{"name":"iszero","nativeSrc":"6866:6:101","nodeType":"YulIdentifier","src":"6866:6:101"},"nativeSrc":"6866:41:101","nodeType":"YulFunctionCall","src":"6866:41:101"},"nativeSrc":"6863:61:101","nodeType":"YulIf","src":"6863:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"6812:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6846:5:101","nodeType":"YulTypedName","src":"6846:5:101","type":""}],"src":"6812:118:101"},{"body":{"nativeSrc":"6997:78:101","nodeType":"YulBlock","src":"6997:78:101","statements":[{"nativeSrc":"7007:22:101","nodeType":"YulAssignment","src":"7007:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7022:6:101","nodeType":"YulIdentifier","src":"7022:6:101"}],"functionName":{"name":"mload","nativeSrc":"7016:5:101","nodeType":"YulIdentifier","src":"7016:5:101"},"nativeSrc":"7016:13:101","nodeType":"YulFunctionCall","src":"7016:13:101"},"variableNames":[{"name":"value","nativeSrc":"7007:5:101","nodeType":"YulIdentifier","src":"7007:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7063:5:101","nodeType":"YulIdentifier","src":"7063:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7038:24:101","nodeType":"YulIdentifier","src":"7038:24:101"},"nativeSrc":"7038:31:101","nodeType":"YulFunctionCall","src":"7038:31:101"},"nativeSrc":"7038:31:101","nodeType":"YulExpressionStatement","src":"7038:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"6936:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6975:6:101","nodeType":"YulTypedName","src":"6975:6:101","type":""},{"name":"end","nativeSrc":"6983:3:101","nodeType":"YulTypedName","src":"6983:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6991:5:101","nodeType":"YulTypedName","src":"6991:5:101","type":""}],"src":"6936:139:101"},{"body":{"nativeSrc":"7156:272:101","nodeType":"YulBlock","src":"7156:272:101","statements":[{"body":{"nativeSrc":"7202:83:101","nodeType":"YulBlock","src":"7202:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7204:77:101","nodeType":"YulIdentifier","src":"7204:77:101"},"nativeSrc":"7204:79:101","nodeType":"YulFunctionCall","src":"7204:79:101"},"nativeSrc":"7204:79:101","nodeType":"YulExpressionStatement","src":"7204:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7177:7:101","nodeType":"YulIdentifier","src":"7177:7:101"},{"name":"headStart","nativeSrc":"7186:9:101","nodeType":"YulIdentifier","src":"7186:9:101"}],"functionName":{"name":"sub","nativeSrc":"7173:3:101","nodeType":"YulIdentifier","src":"7173:3:101"},"nativeSrc":"7173:23:101","nodeType":"YulFunctionCall","src":"7173:23:101"},{"kind":"number","nativeSrc":"7198:2:101","nodeType":"YulLiteral","src":"7198:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7169:3:101","nodeType":"YulIdentifier","src":"7169:3:101"},"nativeSrc":"7169:32:101","nodeType":"YulFunctionCall","src":"7169:32:101"},"nativeSrc":"7166:119:101","nodeType":"YulIf","src":"7166:119:101"},{"nativeSrc":"7295:126:101","nodeType":"YulBlock","src":"7295:126:101","statements":[{"nativeSrc":"7310:15:101","nodeType":"YulVariableDeclaration","src":"7310:15:101","value":{"kind":"number","nativeSrc":"7324:1:101","nodeType":"YulLiteral","src":"7324:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7314:6:101","nodeType":"YulTypedName","src":"7314:6:101","type":""}]},{"nativeSrc":"7339:72:101","nodeType":"YulAssignment","src":"7339:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7383:9:101","nodeType":"YulIdentifier","src":"7383:9:101"},{"name":"offset","nativeSrc":"7394:6:101","nodeType":"YulIdentifier","src":"7394:6:101"}],"functionName":{"name":"add","nativeSrc":"7379:3:101","nodeType":"YulIdentifier","src":"7379:3:101"},"nativeSrc":"7379:22:101","nodeType":"YulFunctionCall","src":"7379:22:101"},{"name":"dataEnd","nativeSrc":"7403:7:101","nodeType":"YulIdentifier","src":"7403:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7349:29:101","nodeType":"YulIdentifier","src":"7349:29:101"},"nativeSrc":"7349:62:101","nodeType":"YulFunctionCall","src":"7349:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7339:6:101","nodeType":"YulIdentifier","src":"7339:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7081:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7126:9:101","nodeType":"YulTypedName","src":"7126:9:101","type":""},{"name":"dataEnd","nativeSrc":"7137:7:101","nodeType":"YulTypedName","src":"7137:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7149:6:101","nodeType":"YulTypedName","src":"7149:6:101","type":""}],"src":"7081:347:101"},{"body":{"nativeSrc":"7497:80:101","nodeType":"YulBlock","src":"7497:80:101","statements":[{"nativeSrc":"7507:22:101","nodeType":"YulAssignment","src":"7507:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7522:6:101","nodeType":"YulIdentifier","src":"7522:6:101"}],"functionName":{"name":"mload","nativeSrc":"7516:5:101","nodeType":"YulIdentifier","src":"7516:5:101"},"nativeSrc":"7516:13:101","nodeType":"YulFunctionCall","src":"7516:13:101"},"variableNames":[{"name":"value","nativeSrc":"7507:5:101","nodeType":"YulIdentifier","src":"7507:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7565:5:101","nodeType":"YulIdentifier","src":"7565:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7538:26:101","nodeType":"YulIdentifier","src":"7538:26:101"},"nativeSrc":"7538:33:101","nodeType":"YulFunctionCall","src":"7538:33:101"},"nativeSrc":"7538:33:101","nodeType":"YulExpressionStatement","src":"7538:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7434:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7475:6:101","nodeType":"YulTypedName","src":"7475:6:101","type":""},{"name":"end","nativeSrc":"7483:3:101","nodeType":"YulTypedName","src":"7483:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7491:5:101","nodeType":"YulTypedName","src":"7491:5:101","type":""}],"src":"7434:143:101"},{"body":{"nativeSrc":"7660:274:101","nodeType":"YulBlock","src":"7660:274:101","statements":[{"body":{"nativeSrc":"7706:83:101","nodeType":"YulBlock","src":"7706:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7708:77:101","nodeType":"YulIdentifier","src":"7708:77:101"},"nativeSrc":"7708:79:101","nodeType":"YulFunctionCall","src":"7708:79:101"},"nativeSrc":"7708:79:101","nodeType":"YulExpressionStatement","src":"7708:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7681:7:101","nodeType":"YulIdentifier","src":"7681:7:101"},{"name":"headStart","nativeSrc":"7690:9:101","nodeType":"YulIdentifier","src":"7690:9:101"}],"functionName":{"name":"sub","nativeSrc":"7677:3:101","nodeType":"YulIdentifier","src":"7677:3:101"},"nativeSrc":"7677:23:101","nodeType":"YulFunctionCall","src":"7677:23:101"},{"kind":"number","nativeSrc":"7702:2:101","nodeType":"YulLiteral","src":"7702:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7673:3:101","nodeType":"YulIdentifier","src":"7673:3:101"},"nativeSrc":"7673:32:101","nodeType":"YulFunctionCall","src":"7673:32:101"},"nativeSrc":"7670:119:101","nodeType":"YulIf","src":"7670:119:101"},{"nativeSrc":"7799:128:101","nodeType":"YulBlock","src":"7799:128:101","statements":[{"nativeSrc":"7814:15:101","nodeType":"YulVariableDeclaration","src":"7814:15:101","value":{"kind":"number","nativeSrc":"7828:1:101","nodeType":"YulLiteral","src":"7828:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7818:6:101","nodeType":"YulTypedName","src":"7818:6:101","type":""}]},{"nativeSrc":"7843:74:101","nodeType":"YulAssignment","src":"7843:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7889:9:101","nodeType":"YulIdentifier","src":"7889:9:101"},{"name":"offset","nativeSrc":"7900:6:101","nodeType":"YulIdentifier","src":"7900:6:101"}],"functionName":{"name":"add","nativeSrc":"7885:3:101","nodeType":"YulIdentifier","src":"7885:3:101"},"nativeSrc":"7885:22:101","nodeType":"YulFunctionCall","src":"7885:22:101"},{"name":"dataEnd","nativeSrc":"7909:7:101","nodeType":"YulIdentifier","src":"7909:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7853:31:101","nodeType":"YulIdentifier","src":"7853:31:101"},"nativeSrc":"7853:64:101","nodeType":"YulFunctionCall","src":"7853:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7843:6:101","nodeType":"YulIdentifier","src":"7843:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"7583:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7630:9:101","nodeType":"YulTypedName","src":"7630:9:101","type":""},{"name":"dataEnd","nativeSrc":"7641:7:101","nodeType":"YulTypedName","src":"7641:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7653:6:101","nodeType":"YulTypedName","src":"7653:6:101","type":""}],"src":"7583:351:101"},{"body":{"nativeSrc":"7991:51:101","nodeType":"YulBlock","src":"7991:51:101","statements":[{"nativeSrc":"8001:34:101","nodeType":"YulAssignment","src":"8001:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8026:1:101","nodeType":"YulLiteral","src":"8026:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8029:5:101","nodeType":"YulIdentifier","src":"8029:5:101"}],"functionName":{"name":"shr","nativeSrc":"8022:3:101","nodeType":"YulIdentifier","src":"8022:3:101"},"nativeSrc":"8022:13:101","nodeType":"YulFunctionCall","src":"8022:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8001:8:101","nodeType":"YulIdentifier","src":"8001:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7940:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7972:5:101","nodeType":"YulTypedName","src":"7972:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7982:8:101","nodeType":"YulTypedName","src":"7982:8:101","type":""}],"src":"7940:102:101"},{"body":{"nativeSrc":"8121:775:101","nodeType":"YulBlock","src":"8121:775:101","statements":[{"nativeSrc":"8131:15:101","nodeType":"YulAssignment","src":"8131:15:101","value":{"name":"_power","nativeSrc":"8140:6:101","nodeType":"YulIdentifier","src":"8140:6:101"},"variableNames":[{"name":"power","nativeSrc":"8131:5:101","nodeType":"YulIdentifier","src":"8131:5:101"}]},{"nativeSrc":"8155:14:101","nodeType":"YulAssignment","src":"8155:14:101","value":{"name":"_base","nativeSrc":"8164:5:101","nodeType":"YulIdentifier","src":"8164:5:101"},"variableNames":[{"name":"base","nativeSrc":"8155:4:101","nodeType":"YulIdentifier","src":"8155:4:101"}]},{"body":{"nativeSrc":"8213:677:101","nodeType":"YulBlock","src":"8213:677:101","statements":[{"body":{"nativeSrc":"8301:22:101","nodeType":"YulBlock","src":"8301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8303:16:101","nodeType":"YulIdentifier","src":"8303:16:101"},"nativeSrc":"8303:18:101","nodeType":"YulFunctionCall","src":"8303:18:101"},"nativeSrc":"8303:18:101","nodeType":"YulExpressionStatement","src":"8303:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8279:4:101","nodeType":"YulIdentifier","src":"8279:4:101"},{"arguments":[{"name":"max","nativeSrc":"8289:3:101","nodeType":"YulIdentifier","src":"8289:3:101"},{"name":"base","nativeSrc":"8294:4:101","nodeType":"YulIdentifier","src":"8294:4:101"}],"functionName":{"name":"div","nativeSrc":"8285:3:101","nodeType":"YulIdentifier","src":"8285:3:101"},"nativeSrc":"8285:14:101","nodeType":"YulFunctionCall","src":"8285:14:101"}],"functionName":{"name":"gt","nativeSrc":"8276:2:101","nodeType":"YulIdentifier","src":"8276:2:101"},"nativeSrc":"8276:24:101","nodeType":"YulFunctionCall","src":"8276:24:101"},"nativeSrc":"8273:50:101","nodeType":"YulIf","src":"8273:50:101"},{"body":{"nativeSrc":"8368:419:101","nodeType":"YulBlock","src":"8368:419:101","statements":[{"nativeSrc":"8748:25:101","nodeType":"YulAssignment","src":"8748:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8761:5:101","nodeType":"YulIdentifier","src":"8761:5:101"},{"name":"base","nativeSrc":"8768:4:101","nodeType":"YulIdentifier","src":"8768:4:101"}],"functionName":{"name":"mul","nativeSrc":"8757:3:101","nodeType":"YulIdentifier","src":"8757:3:101"},"nativeSrc":"8757:16:101","nodeType":"YulFunctionCall","src":"8757:16:101"},"variableNames":[{"name":"power","nativeSrc":"8748:5:101","nodeType":"YulIdentifier","src":"8748:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8343:8:101","nodeType":"YulIdentifier","src":"8343:8:101"},{"kind":"number","nativeSrc":"8353:1:101","nodeType":"YulLiteral","src":"8353:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8339:3:101","nodeType":"YulIdentifier","src":"8339:3:101"},"nativeSrc":"8339:16:101","nodeType":"YulFunctionCall","src":"8339:16:101"},"nativeSrc":"8336:451:101","nodeType":"YulIf","src":"8336:451:101"},{"nativeSrc":"8800:23:101","nodeType":"YulAssignment","src":"8800:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8812:4:101","nodeType":"YulIdentifier","src":"8812:4:101"},{"name":"base","nativeSrc":"8818:4:101","nodeType":"YulIdentifier","src":"8818:4:101"}],"functionName":{"name":"mul","nativeSrc":"8808:3:101","nodeType":"YulIdentifier","src":"8808:3:101"},"nativeSrc":"8808:15:101","nodeType":"YulFunctionCall","src":"8808:15:101"},"variableNames":[{"name":"base","nativeSrc":"8800:4:101","nodeType":"YulIdentifier","src":"8800:4:101"}]},{"nativeSrc":"8836:44:101","nodeType":"YulAssignment","src":"8836:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8871:8:101","nodeType":"YulIdentifier","src":"8871:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8848:22:101","nodeType":"YulIdentifier","src":"8848:22:101"},"nativeSrc":"8848:32:101","nodeType":"YulFunctionCall","src":"8848:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8836:8:101","nodeType":"YulIdentifier","src":"8836:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8189:8:101","nodeType":"YulIdentifier","src":"8189:8:101"},{"kind":"number","nativeSrc":"8199:1:101","nodeType":"YulLiteral","src":"8199:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8186:2:101","nodeType":"YulIdentifier","src":"8186:2:101"},"nativeSrc":"8186:15:101","nodeType":"YulFunctionCall","src":"8186:15:101"},"nativeSrc":"8178:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8202:2:101","nodeType":"YulBlock","src":"8202:2:101","statements":[]},"pre":{"nativeSrc":"8182:3:101","nodeType":"YulBlock","src":"8182:3:101","statements":[]},"src":"8178:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8048:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8076:6:101","nodeType":"YulTypedName","src":"8076:6:101","type":""},{"name":"_base","nativeSrc":"8084:5:101","nodeType":"YulTypedName","src":"8084:5:101","type":""},{"name":"exponent","nativeSrc":"8091:8:101","nodeType":"YulTypedName","src":"8091:8:101","type":""},{"name":"max","nativeSrc":"8101:3:101","nodeType":"YulTypedName","src":"8101:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8109:5:101","nodeType":"YulTypedName","src":"8109:5:101","type":""},{"name":"base","nativeSrc":"8116:4:101","nodeType":"YulTypedName","src":"8116:4:101","type":""}],"src":"8048:848:101"},{"body":{"nativeSrc":"8962:1013:101","nodeType":"YulBlock","src":"8962:1013:101","statements":[{"body":{"nativeSrc":"9157:20:101","nodeType":"YulBlock","src":"9157:20:101","statements":[{"nativeSrc":"9159:10:101","nodeType":"YulAssignment","src":"9159:10:101","value":{"kind":"number","nativeSrc":"9168:1:101","nodeType":"YulLiteral","src":"9168:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9159:5:101","nodeType":"YulIdentifier","src":"9159:5:101"}]},{"nativeSrc":"9170:5:101","nodeType":"YulLeave","src":"9170:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9147:8:101","nodeType":"YulIdentifier","src":"9147:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9140:6:101","nodeType":"YulIdentifier","src":"9140:6:101"},"nativeSrc":"9140:16:101","nodeType":"YulFunctionCall","src":"9140:16:101"},"nativeSrc":"9137:40:101","nodeType":"YulIf","src":"9137:40:101"},{"body":{"nativeSrc":"9202:20:101","nodeType":"YulBlock","src":"9202:20:101","statements":[{"nativeSrc":"9204:10:101","nodeType":"YulAssignment","src":"9204:10:101","value":{"kind":"number","nativeSrc":"9213:1:101","nodeType":"YulLiteral","src":"9213:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9204:5:101","nodeType":"YulIdentifier","src":"9204:5:101"}]},{"nativeSrc":"9215:5:101","nodeType":"YulLeave","src":"9215:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9196:4:101","nodeType":"YulIdentifier","src":"9196:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9189:6:101","nodeType":"YulIdentifier","src":"9189:6:101"},"nativeSrc":"9189:12:101","nodeType":"YulFunctionCall","src":"9189:12:101"},"nativeSrc":"9186:36:101","nodeType":"YulIf","src":"9186:36:101"},{"cases":[{"body":{"nativeSrc":"9332:20:101","nodeType":"YulBlock","src":"9332:20:101","statements":[{"nativeSrc":"9334:10:101","nodeType":"YulAssignment","src":"9334:10:101","value":{"kind":"number","nativeSrc":"9343:1:101","nodeType":"YulLiteral","src":"9343:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9334:5:101","nodeType":"YulIdentifier","src":"9334:5:101"}]},{"nativeSrc":"9345:5:101","nodeType":"YulLeave","src":"9345:5:101"}]},"nativeSrc":"9325:27:101","nodeType":"YulCase","src":"9325:27:101","value":{"kind":"number","nativeSrc":"9330:1:101","nodeType":"YulLiteral","src":"9330:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9376:176:101","nodeType":"YulBlock","src":"9376:176:101","statements":[{"body":{"nativeSrc":"9411:22:101","nodeType":"YulBlock","src":"9411:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9413:16:101","nodeType":"YulIdentifier","src":"9413:16:101"},"nativeSrc":"9413:18:101","nodeType":"YulFunctionCall","src":"9413:18:101"},"nativeSrc":"9413:18:101","nodeType":"YulExpressionStatement","src":"9413:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9396:8:101","nodeType":"YulIdentifier","src":"9396:8:101"},{"kind":"number","nativeSrc":"9406:3:101","nodeType":"YulLiteral","src":"9406:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9393:2:101","nodeType":"YulIdentifier","src":"9393:2:101"},"nativeSrc":"9393:17:101","nodeType":"YulFunctionCall","src":"9393:17:101"},"nativeSrc":"9390:43:101","nodeType":"YulIf","src":"9390:43:101"},{"nativeSrc":"9446:25:101","nodeType":"YulAssignment","src":"9446:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9459:1:101","nodeType":"YulLiteral","src":"9459:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9462:8:101","nodeType":"YulIdentifier","src":"9462:8:101"}],"functionName":{"name":"exp","nativeSrc":"9455:3:101","nodeType":"YulIdentifier","src":"9455:3:101"},"nativeSrc":"9455:16:101","nodeType":"YulFunctionCall","src":"9455:16:101"},"variableNames":[{"name":"power","nativeSrc":"9446:5:101","nodeType":"YulIdentifier","src":"9446:5:101"}]},{"body":{"nativeSrc":"9502:22:101","nodeType":"YulBlock","src":"9502:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9504:16:101","nodeType":"YulIdentifier","src":"9504:16:101"},"nativeSrc":"9504:18:101","nodeType":"YulFunctionCall","src":"9504:18:101"},"nativeSrc":"9504:18:101","nodeType":"YulExpressionStatement","src":"9504:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9490:5:101","nodeType":"YulIdentifier","src":"9490:5:101"},{"name":"max","nativeSrc":"9497:3:101","nodeType":"YulIdentifier","src":"9497:3:101"}],"functionName":{"name":"gt","nativeSrc":"9487:2:101","nodeType":"YulIdentifier","src":"9487:2:101"},"nativeSrc":"9487:14:101","nodeType":"YulFunctionCall","src":"9487:14:101"},"nativeSrc":"9484:40:101","nodeType":"YulIf","src":"9484:40:101"},{"nativeSrc":"9537:5:101","nodeType":"YulLeave","src":"9537:5:101"}]},"nativeSrc":"9361:191:101","nodeType":"YulCase","src":"9361:191:101","value":{"kind":"number","nativeSrc":"9366:1:101","nodeType":"YulLiteral","src":"9366:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9282:4:101","nodeType":"YulIdentifier","src":"9282:4:101"},"nativeSrc":"9275:277:101","nodeType":"YulSwitch","src":"9275:277:101"},{"body":{"nativeSrc":"9684:123:101","nodeType":"YulBlock","src":"9684:123:101","statements":[{"nativeSrc":"9698:28:101","nodeType":"YulAssignment","src":"9698:28:101","value":{"arguments":[{"name":"base","nativeSrc":"9711:4:101","nodeType":"YulIdentifier","src":"9711:4:101"},{"name":"exponent","nativeSrc":"9717:8:101","nodeType":"YulIdentifier","src":"9717:8:101"}],"functionName":{"name":"exp","nativeSrc":"9707:3:101","nodeType":"YulIdentifier","src":"9707:3:101"},"nativeSrc":"9707:19:101","nodeType":"YulFunctionCall","src":"9707:19:101"},"variableNames":[{"name":"power","nativeSrc":"9698:5:101","nodeType":"YulIdentifier","src":"9698:5:101"}]},{"body":{"nativeSrc":"9757:22:101","nodeType":"YulBlock","src":"9757:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9759:16:101","nodeType":"YulIdentifier","src":"9759:16:101"},"nativeSrc":"9759:18:101","nodeType":"YulFunctionCall","src":"9759:18:101"},"nativeSrc":"9759:18:101","nodeType":"YulExpressionStatement","src":"9759:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9745:5:101","nodeType":"YulIdentifier","src":"9745:5:101"},{"name":"max","nativeSrc":"9752:3:101","nodeType":"YulIdentifier","src":"9752:3:101"}],"functionName":{"name":"gt","nativeSrc":"9742:2:101","nodeType":"YulIdentifier","src":"9742:2:101"},"nativeSrc":"9742:14:101","nodeType":"YulFunctionCall","src":"9742:14:101"},"nativeSrc":"9739:40:101","nodeType":"YulIf","src":"9739:40:101"},{"nativeSrc":"9792:5:101","nodeType":"YulLeave","src":"9792:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9587:4:101","nodeType":"YulIdentifier","src":"9587:4:101"},{"kind":"number","nativeSrc":"9593:2:101","nodeType":"YulLiteral","src":"9593:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9584:2:101","nodeType":"YulIdentifier","src":"9584:2:101"},"nativeSrc":"9584:12:101","nodeType":"YulFunctionCall","src":"9584:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9601:8:101","nodeType":"YulIdentifier","src":"9601:8:101"},{"kind":"number","nativeSrc":"9611:2:101","nodeType":"YulLiteral","src":"9611:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9598:2:101","nodeType":"YulIdentifier","src":"9598:2:101"},"nativeSrc":"9598:16:101","nodeType":"YulFunctionCall","src":"9598:16:101"}],"functionName":{"name":"and","nativeSrc":"9580:3:101","nodeType":"YulIdentifier","src":"9580:3:101"},"nativeSrc":"9580:35:101","nodeType":"YulFunctionCall","src":"9580:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9636:4:101","nodeType":"YulIdentifier","src":"9636:4:101"},{"kind":"number","nativeSrc":"9642:3:101","nodeType":"YulLiteral","src":"9642:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9633:2:101","nodeType":"YulIdentifier","src":"9633:2:101"},"nativeSrc":"9633:13:101","nodeType":"YulFunctionCall","src":"9633:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9651:8:101","nodeType":"YulIdentifier","src":"9651:8:101"},{"kind":"number","nativeSrc":"9661:2:101","nodeType":"YulLiteral","src":"9661:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9648:2:101","nodeType":"YulIdentifier","src":"9648:2:101"},"nativeSrc":"9648:16:101","nodeType":"YulFunctionCall","src":"9648:16:101"}],"functionName":{"name":"and","nativeSrc":"9629:3:101","nodeType":"YulIdentifier","src":"9629:3:101"},"nativeSrc":"9629:36:101","nodeType":"YulFunctionCall","src":"9629:36:101"}],"functionName":{"name":"or","nativeSrc":"9564:2:101","nodeType":"YulIdentifier","src":"9564:2:101"},"nativeSrc":"9564:111:101","nodeType":"YulFunctionCall","src":"9564:111:101"},"nativeSrc":"9561:246:101","nodeType":"YulIf","src":"9561:246:101"},{"nativeSrc":"9817:57:101","nodeType":"YulAssignment","src":"9817:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9851:1:101","nodeType":"YulLiteral","src":"9851:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9854:4:101","nodeType":"YulIdentifier","src":"9854:4:101"},{"name":"exponent","nativeSrc":"9860:8:101","nodeType":"YulIdentifier","src":"9860:8:101"},{"name":"max","nativeSrc":"9870:3:101","nodeType":"YulIdentifier","src":"9870:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9832:18:101","nodeType":"YulIdentifier","src":"9832:18:101"},"nativeSrc":"9832:42:101","nodeType":"YulFunctionCall","src":"9832:42:101"},"variableNames":[{"name":"power","nativeSrc":"9817:5:101","nodeType":"YulIdentifier","src":"9817:5:101"},{"name":"base","nativeSrc":"9824:4:101","nodeType":"YulIdentifier","src":"9824:4:101"}]},{"body":{"nativeSrc":"9913:22:101","nodeType":"YulBlock","src":"9913:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9915:16:101","nodeType":"YulIdentifier","src":"9915:16:101"},"nativeSrc":"9915:18:101","nodeType":"YulFunctionCall","src":"9915:18:101"},"nativeSrc":"9915:18:101","nodeType":"YulExpressionStatement","src":"9915:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9890:5:101","nodeType":"YulIdentifier","src":"9890:5:101"},{"arguments":[{"name":"max","nativeSrc":"9901:3:101","nodeType":"YulIdentifier","src":"9901:3:101"},{"name":"base","nativeSrc":"9906:4:101","nodeType":"YulIdentifier","src":"9906:4:101"}],"functionName":{"name":"div","nativeSrc":"9897:3:101","nodeType":"YulIdentifier","src":"9897:3:101"},"nativeSrc":"9897:14:101","nodeType":"YulFunctionCall","src":"9897:14:101"}],"functionName":{"name":"gt","nativeSrc":"9887:2:101","nodeType":"YulIdentifier","src":"9887:2:101"},"nativeSrc":"9887:25:101","nodeType":"YulFunctionCall","src":"9887:25:101"},"nativeSrc":"9884:51:101","nodeType":"YulIf","src":"9884:51:101"},{"nativeSrc":"9944:25:101","nodeType":"YulAssignment","src":"9944:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9957:5:101","nodeType":"YulIdentifier","src":"9957:5:101"},{"name":"base","nativeSrc":"9964:4:101","nodeType":"YulIdentifier","src":"9964:4:101"}],"functionName":{"name":"mul","nativeSrc":"9953:3:101","nodeType":"YulIdentifier","src":"9953:3:101"},"nativeSrc":"9953:16:101","nodeType":"YulFunctionCall","src":"9953:16:101"},"variableNames":[{"name":"power","nativeSrc":"9944:5:101","nodeType":"YulIdentifier","src":"9944:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8902:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8932:4:101","nodeType":"YulTypedName","src":"8932:4:101","type":""},{"name":"exponent","nativeSrc":"8938:8:101","nodeType":"YulTypedName","src":"8938:8:101","type":""},{"name":"max","nativeSrc":"8948:3:101","nodeType":"YulTypedName","src":"8948:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8956:5:101","nodeType":"YulTypedName","src":"8956:5:101","type":""}],"src":"8902:1073:101"},{"body":{"nativeSrc":"10047:219:101","nodeType":"YulBlock","src":"10047:219:101","statements":[{"nativeSrc":"10057:31:101","nodeType":"YulAssignment","src":"10057:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10083:4:101","nodeType":"YulIdentifier","src":"10083:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10065:17:101","nodeType":"YulIdentifier","src":"10065:17:101"},"nativeSrc":"10065:23:101","nodeType":"YulFunctionCall","src":"10065:23:101"},"variableNames":[{"name":"base","nativeSrc":"10057:4:101","nodeType":"YulIdentifier","src":"10057:4:101"}]},{"nativeSrc":"10097:39:101","nodeType":"YulAssignment","src":"10097:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10127:8:101","nodeType":"YulIdentifier","src":"10127:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10109:17:101","nodeType":"YulIdentifier","src":"10109:17:101"},"nativeSrc":"10109:27:101","nodeType":"YulFunctionCall","src":"10109:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10097:8:101","nodeType":"YulIdentifier","src":"10097:8:101"}]},{"nativeSrc":"10146:113:101","nodeType":"YulAssignment","src":"10146:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10176:4:101","nodeType":"YulIdentifier","src":"10176:4:101"},{"name":"exponent","nativeSrc":"10182:8:101","nodeType":"YulIdentifier","src":"10182:8:101"},{"kind":"number","nativeSrc":"10192:66:101","nodeType":"YulLiteral","src":"10192:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10155:20:101","nodeType":"YulIdentifier","src":"10155:20:101"},"nativeSrc":"10155:104:101","nodeType":"YulFunctionCall","src":"10155:104:101"},"variableNames":[{"name":"power","nativeSrc":"10146:5:101","nodeType":"YulIdentifier","src":"10146:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9981:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10022:4:101","nodeType":"YulTypedName","src":"10022:4:101","type":""},{"name":"exponent","nativeSrc":"10028:8:101","nodeType":"YulTypedName","src":"10028:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10041:5:101","nodeType":"YulTypedName","src":"10041:5:101","type":""}],"src":"9981:285:101"},{"body":{"nativeSrc":"10320:362:101","nodeType":"YulBlock","src":"10320:362:101","statements":[{"nativeSrc":"10330:25:101","nodeType":"YulAssignment","src":"10330:25:101","value":{"arguments":[{"name":"x","nativeSrc":"10353:1:101","nodeType":"YulIdentifier","src":"10353:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10335:17:101","nodeType":"YulIdentifier","src":"10335:17:101"},"nativeSrc":"10335:20:101","nodeType":"YulFunctionCall","src":"10335:20:101"},"variableNames":[{"name":"x","nativeSrc":"10330:1:101","nodeType":"YulIdentifier","src":"10330:1:101"}]},{"nativeSrc":"10364:25:101","nodeType":"YulAssignment","src":"10364:25:101","value":{"arguments":[{"name":"y","nativeSrc":"10387:1:101","nodeType":"YulIdentifier","src":"10387:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10369:17:101","nodeType":"YulIdentifier","src":"10369:17:101"},"nativeSrc":"10369:20:101","nodeType":"YulFunctionCall","src":"10369:20:101"},"variableNames":[{"name":"y","nativeSrc":"10364:1:101","nodeType":"YulIdentifier","src":"10364:1:101"}]},{"nativeSrc":"10398:28:101","nodeType":"YulVariableDeclaration","src":"10398:28:101","value":{"arguments":[{"name":"x","nativeSrc":"10421:1:101","nodeType":"YulIdentifier","src":"10421:1:101"},{"name":"y","nativeSrc":"10424:1:101","nodeType":"YulIdentifier","src":"10424:1:101"}],"functionName":{"name":"mul","nativeSrc":"10417:3:101","nodeType":"YulIdentifier","src":"10417:3:101"},"nativeSrc":"10417:9:101","nodeType":"YulFunctionCall","src":"10417:9:101"},"variables":[{"name":"product_raw","nativeSrc":"10402:11:101","nodeType":"YulTypedName","src":"10402:11:101","type":""}]},{"nativeSrc":"10435:41:101","nodeType":"YulAssignment","src":"10435:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"10464:11:101","nodeType":"YulIdentifier","src":"10464:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10446:17:101","nodeType":"YulIdentifier","src":"10446:17:101"},"nativeSrc":"10446:30:101","nodeType":"YulFunctionCall","src":"10446:30:101"},"variableNames":[{"name":"product","nativeSrc":"10435:7:101","nodeType":"YulIdentifier","src":"10435:7:101"}]},{"body":{"nativeSrc":"10653:22:101","nodeType":"YulBlock","src":"10653:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10655:16:101","nodeType":"YulIdentifier","src":"10655:16:101"},"nativeSrc":"10655:18:101","nodeType":"YulFunctionCall","src":"10655:18:101"},"nativeSrc":"10655:18:101","nodeType":"YulExpressionStatement","src":"10655:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"10586:1:101","nodeType":"YulIdentifier","src":"10586:1:101"}],"functionName":{"name":"iszero","nativeSrc":"10579:6:101","nodeType":"YulIdentifier","src":"10579:6:101"},"nativeSrc":"10579:9:101","nodeType":"YulFunctionCall","src":"10579:9:101"},{"arguments":[{"name":"y","nativeSrc":"10609:1:101","nodeType":"YulIdentifier","src":"10609:1:101"},{"arguments":[{"name":"product","nativeSrc":"10616:7:101","nodeType":"YulIdentifier","src":"10616:7:101"},{"name":"x","nativeSrc":"10625:1:101","nodeType":"YulIdentifier","src":"10625:1:101"}],"functionName":{"name":"div","nativeSrc":"10612:3:101","nodeType":"YulIdentifier","src":"10612:3:101"},"nativeSrc":"10612:15:101","nodeType":"YulFunctionCall","src":"10612:15:101"}],"functionName":{"name":"eq","nativeSrc":"10606:2:101","nodeType":"YulIdentifier","src":"10606:2:101"},"nativeSrc":"10606:22:101","nodeType":"YulFunctionCall","src":"10606:22:101"}],"functionName":{"name":"or","nativeSrc":"10559:2:101","nodeType":"YulIdentifier","src":"10559:2:101"},"nativeSrc":"10559:83:101","nodeType":"YulFunctionCall","src":"10559:83:101"}],"functionName":{"name":"iszero","nativeSrc":"10539:6:101","nodeType":"YulIdentifier","src":"10539:6:101"},"nativeSrc":"10539:113:101","nodeType":"YulFunctionCall","src":"10539:113:101"},"nativeSrc":"10536:139:101","nodeType":"YulIf","src":"10536:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"10272:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"10303:1:101","nodeType":"YulTypedName","src":"10303:1:101","type":""},{"name":"y","nativeSrc":"10306:1:101","nodeType":"YulTypedName","src":"10306:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"10312:7:101","nodeType":"YulTypedName","src":"10312:7:101","type":""}],"src":"10272:410:101"},{"body":{"nativeSrc":"10747:40:101","nodeType":"YulBlock","src":"10747:40:101","statements":[{"nativeSrc":"10758:22:101","nodeType":"YulAssignment","src":"10758:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10774:5:101","nodeType":"YulIdentifier","src":"10774:5:101"}],"functionName":{"name":"mload","nativeSrc":"10768:5:101","nodeType":"YulIdentifier","src":"10768:5:101"},"nativeSrc":"10768:12:101","nodeType":"YulFunctionCall","src":"10768:12:101"},"variableNames":[{"name":"length","nativeSrc":"10758:6:101","nodeType":"YulIdentifier","src":"10758:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10688:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10730:5:101","nodeType":"YulTypedName","src":"10730:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10740:6:101","nodeType":"YulTypedName","src":"10740:6:101","type":""}],"src":"10688:99:101"},{"body":{"nativeSrc":"10889:73:101","nodeType":"YulBlock","src":"10889:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10906:3:101","nodeType":"YulIdentifier","src":"10906:3:101"},{"name":"length","nativeSrc":"10911:6:101","nodeType":"YulIdentifier","src":"10911:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10899:6:101","nodeType":"YulIdentifier","src":"10899:6:101"},"nativeSrc":"10899:19:101","nodeType":"YulFunctionCall","src":"10899:19:101"},"nativeSrc":"10899:19:101","nodeType":"YulExpressionStatement","src":"10899:19:101"},{"nativeSrc":"10927:29:101","nodeType":"YulAssignment","src":"10927:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10946:3:101","nodeType":"YulIdentifier","src":"10946:3:101"},{"kind":"number","nativeSrc":"10951:4:101","nodeType":"YulLiteral","src":"10951:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10942:3:101","nodeType":"YulIdentifier","src":"10942:3:101"},"nativeSrc":"10942:14:101","nodeType":"YulFunctionCall","src":"10942:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10927:11:101","nodeType":"YulIdentifier","src":"10927:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10793:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10861:3:101","nodeType":"YulTypedName","src":"10861:3:101","type":""},{"name":"length","nativeSrc":"10866:6:101","nodeType":"YulTypedName","src":"10866:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10877:11:101","nodeType":"YulTypedName","src":"10877:11:101","type":""}],"src":"10793:169:101"},{"body":{"nativeSrc":"11030:77:101","nodeType":"YulBlock","src":"11030:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11047:3:101","nodeType":"YulIdentifier","src":"11047:3:101"},{"name":"src","nativeSrc":"11052:3:101","nodeType":"YulIdentifier","src":"11052:3:101"},{"name":"length","nativeSrc":"11057:6:101","nodeType":"YulIdentifier","src":"11057:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"11041:5:101","nodeType":"YulIdentifier","src":"11041:5:101"},"nativeSrc":"11041:23:101","nodeType":"YulFunctionCall","src":"11041:23:101"},"nativeSrc":"11041:23:101","nodeType":"YulExpressionStatement","src":"11041:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11084:3:101","nodeType":"YulIdentifier","src":"11084:3:101"},{"name":"length","nativeSrc":"11089:6:101","nodeType":"YulIdentifier","src":"11089:6:101"}],"functionName":{"name":"add","nativeSrc":"11080:3:101","nodeType":"YulIdentifier","src":"11080:3:101"},"nativeSrc":"11080:16:101","nodeType":"YulFunctionCall","src":"11080:16:101"},{"kind":"number","nativeSrc":"11098:1:101","nodeType":"YulLiteral","src":"11098:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11073:6:101","nodeType":"YulIdentifier","src":"11073:6:101"},"nativeSrc":"11073:27:101","nodeType":"YulFunctionCall","src":"11073:27:101"},"nativeSrc":"11073:27:101","nodeType":"YulExpressionStatement","src":"11073:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10968:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11012:3:101","nodeType":"YulTypedName","src":"11012:3:101","type":""},{"name":"dst","nativeSrc":"11017:3:101","nodeType":"YulTypedName","src":"11017:3:101","type":""},{"name":"length","nativeSrc":"11022:6:101","nodeType":"YulTypedName","src":"11022:6:101","type":""}],"src":"10968:139:101"},{"body":{"nativeSrc":"11161:54:101","nodeType":"YulBlock","src":"11161:54:101","statements":[{"nativeSrc":"11171:38:101","nodeType":"YulAssignment","src":"11171:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11189:5:101","nodeType":"YulIdentifier","src":"11189:5:101"},{"kind":"number","nativeSrc":"11196:2:101","nodeType":"YulLiteral","src":"11196:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11185:3:101","nodeType":"YulIdentifier","src":"11185:3:101"},"nativeSrc":"11185:14:101","nodeType":"YulFunctionCall","src":"11185:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11205:2:101","nodeType":"YulLiteral","src":"11205:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11201:3:101","nodeType":"YulIdentifier","src":"11201:3:101"},"nativeSrc":"11201:7:101","nodeType":"YulFunctionCall","src":"11201:7:101"}],"functionName":{"name":"and","nativeSrc":"11181:3:101","nodeType":"YulIdentifier","src":"11181:3:101"},"nativeSrc":"11181:28:101","nodeType":"YulFunctionCall","src":"11181:28:101"},"variableNames":[{"name":"result","nativeSrc":"11171:6:101","nodeType":"YulIdentifier","src":"11171:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11113:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11144:5:101","nodeType":"YulTypedName","src":"11144:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11154:6:101","nodeType":"YulTypedName","src":"11154:6:101","type":""}],"src":"11113:102:101"},{"body":{"nativeSrc":"11313:285:101","nodeType":"YulBlock","src":"11313:285:101","statements":[{"nativeSrc":"11323:53:101","nodeType":"YulVariableDeclaration","src":"11323:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11370:5:101","nodeType":"YulIdentifier","src":"11370:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11337:32:101","nodeType":"YulIdentifier","src":"11337:32:101"},"nativeSrc":"11337:39:101","nodeType":"YulFunctionCall","src":"11337:39:101"},"variables":[{"name":"length","nativeSrc":"11327:6:101","nodeType":"YulTypedName","src":"11327:6:101","type":""}]},{"nativeSrc":"11385:78:101","nodeType":"YulAssignment","src":"11385:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11451:3:101","nodeType":"YulIdentifier","src":"11451:3:101"},{"name":"length","nativeSrc":"11456:6:101","nodeType":"YulIdentifier","src":"11456:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11392:58:101","nodeType":"YulIdentifier","src":"11392:58:101"},"nativeSrc":"11392:71:101","nodeType":"YulFunctionCall","src":"11392:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11385:3:101","nodeType":"YulIdentifier","src":"11385:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11511:5:101","nodeType":"YulIdentifier","src":"11511:5:101"},{"kind":"number","nativeSrc":"11518:4:101","nodeType":"YulLiteral","src":"11518:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11507:3:101","nodeType":"YulIdentifier","src":"11507:3:101"},"nativeSrc":"11507:16:101","nodeType":"YulFunctionCall","src":"11507:16:101"},{"name":"pos","nativeSrc":"11525:3:101","nodeType":"YulIdentifier","src":"11525:3:101"},{"name":"length","nativeSrc":"11530:6:101","nodeType":"YulIdentifier","src":"11530:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11472:34:101","nodeType":"YulIdentifier","src":"11472:34:101"},"nativeSrc":"11472:65:101","nodeType":"YulFunctionCall","src":"11472:65:101"},"nativeSrc":"11472:65:101","nodeType":"YulExpressionStatement","src":"11472:65:101"},{"nativeSrc":"11546:46:101","nodeType":"YulAssignment","src":"11546:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11557:3:101","nodeType":"YulIdentifier","src":"11557:3:101"},{"arguments":[{"name":"length","nativeSrc":"11584:6:101","nodeType":"YulIdentifier","src":"11584:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11562:21:101","nodeType":"YulIdentifier","src":"11562:21:101"},"nativeSrc":"11562:29:101","nodeType":"YulFunctionCall","src":"11562:29:101"}],"functionName":{"name":"add","nativeSrc":"11553:3:101","nodeType":"YulIdentifier","src":"11553:3:101"},"nativeSrc":"11553:39:101","nodeType":"YulFunctionCall","src":"11553:39:101"},"variableNames":[{"name":"end","nativeSrc":"11546:3:101","nodeType":"YulIdentifier","src":"11546:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11221:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11294:5:101","nodeType":"YulTypedName","src":"11294:5:101","type":""},{"name":"pos","nativeSrc":"11301:3:101","nodeType":"YulTypedName","src":"11301:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11309:3:101","nodeType":"YulTypedName","src":"11309:3:101","type":""}],"src":"11221:377:101"},{"body":{"nativeSrc":"11750:277:101","nodeType":"YulBlock","src":"11750:277:101","statements":[{"nativeSrc":"11760:26:101","nodeType":"YulAssignment","src":"11760:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11772:9:101","nodeType":"YulIdentifier","src":"11772:9:101"},{"kind":"number","nativeSrc":"11783:2:101","nodeType":"YulLiteral","src":"11783:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:18:101","nodeType":"YulFunctionCall","src":"11768:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11760:4:101","nodeType":"YulIdentifier","src":"11760:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11840:6:101","nodeType":"YulIdentifier","src":"11840:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11853:9:101","nodeType":"YulIdentifier","src":"11853:9:101"},{"kind":"number","nativeSrc":"11864:1:101","nodeType":"YulLiteral","src":"11864:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11849:3:101","nodeType":"YulIdentifier","src":"11849:3:101"},"nativeSrc":"11849:17:101","nodeType":"YulFunctionCall","src":"11849:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11796:43:101","nodeType":"YulIdentifier","src":"11796:43:101"},"nativeSrc":"11796:71:101","nodeType":"YulFunctionCall","src":"11796:71:101"},"nativeSrc":"11796:71:101","nodeType":"YulExpressionStatement","src":"11796:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11888:9:101","nodeType":"YulIdentifier","src":"11888:9:101"},{"kind":"number","nativeSrc":"11899:2:101","nodeType":"YulLiteral","src":"11899:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11884:3:101","nodeType":"YulIdentifier","src":"11884:3:101"},"nativeSrc":"11884:18:101","nodeType":"YulFunctionCall","src":"11884:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11908:4:101","nodeType":"YulIdentifier","src":"11908:4:101"},{"name":"headStart","nativeSrc":"11914:9:101","nodeType":"YulIdentifier","src":"11914:9:101"}],"functionName":{"name":"sub","nativeSrc":"11904:3:101","nodeType":"YulIdentifier","src":"11904:3:101"},"nativeSrc":"11904:20:101","nodeType":"YulFunctionCall","src":"11904:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11877:6:101","nodeType":"YulIdentifier","src":"11877:6:101"},"nativeSrc":"11877:48:101","nodeType":"YulFunctionCall","src":"11877:48:101"},"nativeSrc":"11877:48:101","nodeType":"YulExpressionStatement","src":"11877:48:101"},{"nativeSrc":"11934:86:101","nodeType":"YulAssignment","src":"11934:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"12006:6:101","nodeType":"YulIdentifier","src":"12006:6:101"},{"name":"tail","nativeSrc":"12015:4:101","nodeType":"YulIdentifier","src":"12015:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11942:63:101","nodeType":"YulIdentifier","src":"11942:63:101"},"nativeSrc":"11942:78:101","nodeType":"YulFunctionCall","src":"11942:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11934:4:101","nodeType":"YulIdentifier","src":"11934:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11604:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11714:9:101","nodeType":"YulTypedName","src":"11714:9:101","type":""},{"name":"value1","nativeSrc":"11726:6:101","nodeType":"YulTypedName","src":"11726:6:101","type":""},{"name":"value0","nativeSrc":"11734:6:101","nodeType":"YulTypedName","src":"11734:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11745:4:101","nodeType":"YulTypedName","src":"11745:4:101","type":""}],"src":"11604:423:101"},{"body":{"nativeSrc":"12073:76:101","nodeType":"YulBlock","src":"12073:76:101","statements":[{"body":{"nativeSrc":"12127:16:101","nodeType":"YulBlock","src":"12127:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12136:1:101","nodeType":"YulLiteral","src":"12136:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12139:1:101","nodeType":"YulLiteral","src":"12139:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12129:6:101","nodeType":"YulIdentifier","src":"12129:6:101"},"nativeSrc":"12129:12:101","nodeType":"YulFunctionCall","src":"12129:12:101"},"nativeSrc":"12129:12:101","nodeType":"YulExpressionStatement","src":"12129:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12096:5:101","nodeType":"YulIdentifier","src":"12096:5:101"},{"arguments":[{"name":"value","nativeSrc":"12118:5:101","nodeType":"YulIdentifier","src":"12118:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12103:14:101","nodeType":"YulIdentifier","src":"12103:14:101"},"nativeSrc":"12103:21:101","nodeType":"YulFunctionCall","src":"12103:21:101"}],"functionName":{"name":"eq","nativeSrc":"12093:2:101","nodeType":"YulIdentifier","src":"12093:2:101"},"nativeSrc":"12093:32:101","nodeType":"YulFunctionCall","src":"12093:32:101"}],"functionName":{"name":"iszero","nativeSrc":"12086:6:101","nodeType":"YulIdentifier","src":"12086:6:101"},"nativeSrc":"12086:40:101","nodeType":"YulFunctionCall","src":"12086:40:101"},"nativeSrc":"12083:60:101","nodeType":"YulIf","src":"12083:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"12033:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12066:5:101","nodeType":"YulTypedName","src":"12066:5:101","type":""}],"src":"12033:116:101"},{"body":{"nativeSrc":"12215:77:101","nodeType":"YulBlock","src":"12215:77:101","statements":[{"nativeSrc":"12225:22:101","nodeType":"YulAssignment","src":"12225:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12240:6:101","nodeType":"YulIdentifier","src":"12240:6:101"}],"functionName":{"name":"mload","nativeSrc":"12234:5:101","nodeType":"YulIdentifier","src":"12234:5:101"},"nativeSrc":"12234:13:101","nodeType":"YulFunctionCall","src":"12234:13:101"},"variableNames":[{"name":"value","nativeSrc":"12225:5:101","nodeType":"YulIdentifier","src":"12225:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12280:5:101","nodeType":"YulIdentifier","src":"12280:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12256:23:101","nodeType":"YulIdentifier","src":"12256:23:101"},"nativeSrc":"12256:30:101","nodeType":"YulFunctionCall","src":"12256:30:101"},"nativeSrc":"12256:30:101","nodeType":"YulExpressionStatement","src":"12256:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12155:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12193:6:101","nodeType":"YulTypedName","src":"12193:6:101","type":""},{"name":"end","nativeSrc":"12201:3:101","nodeType":"YulTypedName","src":"12201:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12209:5:101","nodeType":"YulTypedName","src":"12209:5:101","type":""}],"src":"12155:137:101"},{"body":{"nativeSrc":"12372:271:101","nodeType":"YulBlock","src":"12372:271:101","statements":[{"body":{"nativeSrc":"12418:83:101","nodeType":"YulBlock","src":"12418:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12420:77:101","nodeType":"YulIdentifier","src":"12420:77:101"},"nativeSrc":"12420:79:101","nodeType":"YulFunctionCall","src":"12420:79:101"},"nativeSrc":"12420:79:101","nodeType":"YulExpressionStatement","src":"12420:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12393:7:101","nodeType":"YulIdentifier","src":"12393:7:101"},{"name":"headStart","nativeSrc":"12402:9:101","nodeType":"YulIdentifier","src":"12402:9:101"}],"functionName":{"name":"sub","nativeSrc":"12389:3:101","nodeType":"YulIdentifier","src":"12389:3:101"},"nativeSrc":"12389:23:101","nodeType":"YulFunctionCall","src":"12389:23:101"},{"kind":"number","nativeSrc":"12414:2:101","nodeType":"YulLiteral","src":"12414:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12385:3:101","nodeType":"YulIdentifier","src":"12385:3:101"},"nativeSrc":"12385:32:101","nodeType":"YulFunctionCall","src":"12385:32:101"},"nativeSrc":"12382:119:101","nodeType":"YulIf","src":"12382:119:101"},{"nativeSrc":"12511:125:101","nodeType":"YulBlock","src":"12511:125:101","statements":[{"nativeSrc":"12526:15:101","nodeType":"YulVariableDeclaration","src":"12526:15:101","value":{"kind":"number","nativeSrc":"12540:1:101","nodeType":"YulLiteral","src":"12540:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12530:6:101","nodeType":"YulTypedName","src":"12530:6:101","type":""}]},{"nativeSrc":"12555:71:101","nodeType":"YulAssignment","src":"12555:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12598:9:101","nodeType":"YulIdentifier","src":"12598:9:101"},{"name":"offset","nativeSrc":"12609:6:101","nodeType":"YulIdentifier","src":"12609:6:101"}],"functionName":{"name":"add","nativeSrc":"12594:3:101","nodeType":"YulIdentifier","src":"12594:3:101"},"nativeSrc":"12594:22:101","nodeType":"YulFunctionCall","src":"12594:22:101"},{"name":"dataEnd","nativeSrc":"12618:7:101","nodeType":"YulIdentifier","src":"12618:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12565:28:101","nodeType":"YulIdentifier","src":"12565:28:101"},"nativeSrc":"12565:61:101","nodeType":"YulFunctionCall","src":"12565:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12555:6:101","nodeType":"YulIdentifier","src":"12555:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12298:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12342:9:101","nodeType":"YulTypedName","src":"12342:9:101","type":""},{"name":"dataEnd","nativeSrc":"12353:7:101","nodeType":"YulTypedName","src":"12353:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12365:6:101","nodeType":"YulTypedName","src":"12365:6:101","type":""}],"src":"12298:345:101"},{"body":{"nativeSrc":"12823:359:101","nodeType":"YulBlock","src":"12823:359:101","statements":[{"nativeSrc":"12833:26:101","nodeType":"YulAssignment","src":"12833:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12845:9:101","nodeType":"YulIdentifier","src":"12845:9:101"},{"kind":"number","nativeSrc":"12856:2:101","nodeType":"YulLiteral","src":"12856:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12841:3:101","nodeType":"YulIdentifier","src":"12841:3:101"},"nativeSrc":"12841:18:101","nodeType":"YulFunctionCall","src":"12841:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12833:4:101","nodeType":"YulIdentifier","src":"12833:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12913:6:101","nodeType":"YulIdentifier","src":"12913:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12926:9:101","nodeType":"YulIdentifier","src":"12926:9:101"},{"kind":"number","nativeSrc":"12937:1:101","nodeType":"YulLiteral","src":"12937:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12922:3:101","nodeType":"YulIdentifier","src":"12922:3:101"},"nativeSrc":"12922:17:101","nodeType":"YulFunctionCall","src":"12922:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12869:43:101","nodeType":"YulIdentifier","src":"12869:43:101"},"nativeSrc":"12869:71:101","nodeType":"YulFunctionCall","src":"12869:71:101"},"nativeSrc":"12869:71:101","nodeType":"YulExpressionStatement","src":"12869:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12994:6:101","nodeType":"YulIdentifier","src":"12994:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13007:9:101","nodeType":"YulIdentifier","src":"13007:9:101"},{"kind":"number","nativeSrc":"13018:2:101","nodeType":"YulLiteral","src":"13018:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13003:3:101","nodeType":"YulIdentifier","src":"13003:3:101"},"nativeSrc":"13003:18:101","nodeType":"YulFunctionCall","src":"13003:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12950:43:101","nodeType":"YulIdentifier","src":"12950:43:101"},"nativeSrc":"12950:72:101","nodeType":"YulFunctionCall","src":"12950:72:101"},"nativeSrc":"12950:72:101","nodeType":"YulExpressionStatement","src":"12950:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13043:9:101","nodeType":"YulIdentifier","src":"13043:9:101"},{"kind":"number","nativeSrc":"13054:2:101","nodeType":"YulLiteral","src":"13054:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13039:3:101","nodeType":"YulIdentifier","src":"13039:3:101"},"nativeSrc":"13039:18:101","nodeType":"YulFunctionCall","src":"13039:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13063:4:101","nodeType":"YulIdentifier","src":"13063:4:101"},{"name":"headStart","nativeSrc":"13069:9:101","nodeType":"YulIdentifier","src":"13069:9:101"}],"functionName":{"name":"sub","nativeSrc":"13059:3:101","nodeType":"YulIdentifier","src":"13059:3:101"},"nativeSrc":"13059:20:101","nodeType":"YulFunctionCall","src":"13059:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13032:6:101","nodeType":"YulIdentifier","src":"13032:6:101"},"nativeSrc":"13032:48:101","nodeType":"YulFunctionCall","src":"13032:48:101"},"nativeSrc":"13032:48:101","nodeType":"YulExpressionStatement","src":"13032:48:101"},{"nativeSrc":"13089:86:101","nodeType":"YulAssignment","src":"13089:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13161:6:101","nodeType":"YulIdentifier","src":"13161:6:101"},{"name":"tail","nativeSrc":"13170:4:101","nodeType":"YulIdentifier","src":"13170:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13097:63:101","nodeType":"YulIdentifier","src":"13097:63:101"},"nativeSrc":"13097:78:101","nodeType":"YulFunctionCall","src":"13097:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13089:4:101","nodeType":"YulIdentifier","src":"13089:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12649:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12779:9:101","nodeType":"YulTypedName","src":"12779:9:101","type":""},{"name":"value2","nativeSrc":"12791:6:101","nodeType":"YulTypedName","src":"12791:6:101","type":""},{"name":"value1","nativeSrc":"12799:6:101","nodeType":"YulTypedName","src":"12799:6:101","type":""},{"name":"value0","nativeSrc":"12807:6:101","nodeType":"YulTypedName","src":"12807:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12818:4:101","nodeType":"YulTypedName","src":"12818:4:101","type":""}],"src":"12649:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_OracleInterface_$3666_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_OracleInterface_$3666_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5239":[{"length":32,"start":653},{"length":32,"start":1972}],"6589":[{"length":32,"start":523},{"length":32,"start":690},{"length":32,"start":1838},{"length":32,"start":2019},{"length":32,"start":2459}],"6592":[{"length":32,"start":313},{"length":32,"start":1441},{"length":32,"start":1704},{"length":32,"start":2332}],"6596":[{"length":32,"start":590},{"length":32,"start":1396},{"length":32,"start":2285}],"6600":[{"length":32,"start":393},{"length":32,"start":2650}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063abb8561314610270578063ac5a693e14610278578063bdf13af214610280578063ef4fa51b14610288575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610b0b565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610b38565b61011e60045481565b61011e61017f366004610b67565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610baa565b6101cb6101c6366004610bc9565b610360565b005b61011e60025481565b6101cb6101e4366004610be7565b6103d1565b6101f16104a5565b60405161012b9190610c29565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610be7565b61062c565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61089c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816108e9565b9392505050565b5f61032f61089c565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816108e9565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610a41565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610a41565b5f5461041f6301e1338084610c5f565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610b0b565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61089c565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610c72565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761089c565b9050600454818311610529578261052b565b815b6105359190610c85565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f000000000000000000000000000000000000000000000000000000000000000090600401610b38565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610a41565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610702573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107269190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610788573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ac9190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081e9190610b38565b602060405180830381865afa158015610839573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085d9190610cd5565b905061086a836024610c72565b61087590600a610dff565b61088083600a610dff565b61088a9083610e0c565b6108949190610c5f565b935050505090565b5f80600354426108ac9190610c72565b90505f670de0b6b3a7640000825f546002546108c89190610e0c565b6108d29190610e0c565b6108dc9190610c5f565b60025461031f9190610c85565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016109579190610b38565b602060405180830381865afa158015610972573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109969190610cd5565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1d9190610cac565b60ff169050610a2d81600a610dff565b610a378487610e0c565b6103579190610c5f565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab90610a919033908690600401610e67565b602060405180830381865afa158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad09190610e9a565b905080610aff57333083604051634a3fa29360e01b8152600401610af693929190610eb8565b60405180910390fd5b5050565b805b82525050565b60208101610b198284610b03565b92915050565b5f6001600160a01b038216610b19565b610b0581610b1f565b60208101610b198284610b2f565b610b4f81610b1f565b8114610b59575f80fd5b50565b8035610b1981610b46565b5f60208284031215610b7a57610b7a5f80fd5b5f610b858484610b5c565b949350505050565b5f610b1982610b1f565b5f610b1982610b8d565b610b0581610b97565b60208101610b198284610ba1565b80610b4f565b8035610b1981610bb8565b5f60208284031215610bdc57610bdc5f80fd5b5f610b858484610bbe565b5f8060408385031215610bfb57610bfb5f80fd5b5f610c068585610bbe565b9250506020610c1785828601610bbe565b9150509250929050565b801515610b05565b60208101610b198284610c21565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610c6d57610c6d610c37565b500490565b81810381811115610b1957610b19610c4b565b80820180821115610b1957610b19610c4b565b60ff8116610b4f565b8051610b1981610c98565b5f60208284031215610cbf57610cbf5f80fd5b5f610b858484610ca1565b8051610b1981610bb8565b5f60208284031215610ce857610ce85f80fd5b5f610b858484610cca565b80825b6001851115610d3257808604811115610d1157610d11610c4b565b6001851615610d1f57908102905b8002610d2b8560011c90565b9450610cf6565b94509492505050565b5f82610d495750600161031f565b81610d5557505f61031f565b8160018114610d6b5760028114610d7557610da2565b600191505061031f565b60ff841115610d8657610d86610c4b565b8360020a915084821115610d9c57610d9c610c4b565b5061031f565b5060208310610133831016604e8410600b8410161715610dd5575081810a83811115610dd057610dd0610c4b565b61031f565b610de28484846001610cf3565b92509050818404811115610df857610df8610c4b565b0292915050565b5f61031f5f198484610d3b565b818102808215838204851417610e2457610e24610c4b565b5092915050565b8281835e505f910152565b5f610e3f825190565b808452602084019350610e56818560208601610e2b565b601f01601f19169290920192915050565b60408101610e758285610b2f565b8181036020830152610b858184610e36565b801515610b4f565b8051610b1981610e87565b5f60208284031215610ead57610ead5f80fd5b5f610b858484610e8f565b60608101610ec68286610b2f565b610ed36020830185610b2f565b81810360408301526103578184610e3656fea264697066735822122084b9b4f99d18d67bf744570db1b94b71dc0b20993a9d8decc1c66b840c6df8ca64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xEF4FA51B EQ PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xB0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC9 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xC29 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x89C JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x8E9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x89C JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x8E9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0xA41 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0xA41 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xC5F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0xB0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x89C JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xC72 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x89C JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xC85 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xB38 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0xA41 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x702 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x726 SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x788 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7AC SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81E SWAP2 SWAP1 PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x85D SWAP2 SWAP1 PUSH2 0xCD5 JUMP JUMPDEST SWAP1 POP PUSH2 0x86A DUP4 PUSH1 0x24 PUSH2 0xC72 JUMP JUMPDEST PUSH2 0x875 SWAP1 PUSH1 0xA PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x880 DUP4 PUSH1 0xA PUSH2 0xDFF JUMP JUMPDEST PUSH2 0x88A SWAP1 DUP4 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x894 SWAP2 SWAP1 PUSH2 0xC5F JUMP JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x8AC SWAP2 SWAP1 PUSH2 0xC72 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x8C8 SWAP2 SWAP1 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x8D2 SWAP2 SWAP1 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x8DC SWAP2 SWAP1 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xC85 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x957 SWAP2 SWAP1 PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x996 SWAP2 SWAP1 PUSH2 0xCD5 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x9F9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xA1D SWAP2 SWAP1 PUSH2 0xCAC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0xA2D DUP2 PUSH1 0xA PUSH2 0xDFF JUMP JUMPDEST PUSH2 0xA37 DUP5 DUP8 PUSH2 0xE0C JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xC5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xA91 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xE67 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAAC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xAD0 SWAP2 SWAP1 PUSH2 0xE9A JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xAFF JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAF6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xB03 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xB19 JUMP JUMPDEST PUSH2 0xB05 DUP2 PUSH2 0xB1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xB2F JUMP JUMPDEST PUSH2 0xB4F DUP2 PUSH2 0xB1F JUMP JUMPDEST DUP2 EQ PUSH2 0xB59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xB19 DUP2 PUSH2 0xB46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7A JUMPI PUSH2 0xB7A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xB5C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB19 DUP3 PUSH2 0xB1F JUMP JUMPDEST PUSH0 PUSH2 0xB19 DUP3 PUSH2 0xB8D JUMP JUMPDEST PUSH2 0xB05 DUP2 PUSH2 0xB97 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xBA1 JUMP JUMPDEST DUP1 PUSH2 0xB4F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xB19 DUP2 PUSH2 0xBB8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBDC JUMPI PUSH2 0xBDC PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xBBE JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBFB JUMPI PUSH2 0xBFB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xC06 DUP6 DUP6 PUSH2 0xBBE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC17 DUP6 DUP3 DUP7 ADD PUSH2 0xBBE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB19 DUP3 DUP5 PUSH2 0xC21 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xC6D JUMPI PUSH2 0xC6D PUSH2 0xC37 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xB19 JUMPI PUSH2 0xB19 PUSH2 0xC4B JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xB19 JUMPI PUSH2 0xB19 PUSH2 0xC4B JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xB4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB19 DUP2 PUSH2 0xC98 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xCA1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB19 DUP2 PUSH2 0xBB8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE8 JUMPI PUSH2 0xCE8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xCCA JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xD32 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xD11 JUMPI PUSH2 0xD11 PUSH2 0xC4B JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xD1F JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xD2B DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xCF6 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xD49 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xD55 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xD6B JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xD75 JUMPI PUSH2 0xDA2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xD86 JUMPI PUSH2 0xD86 PUSH2 0xC4B JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xD9C JUMPI PUSH2 0xD9C PUSH2 0xC4B JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xDD5 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xDD0 JUMPI PUSH2 0xDD0 PUSH2 0xC4B JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xDE2 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xCF3 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xDF8 JUMPI PUSH2 0xDF8 PUSH2 0xC4B JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xD3B JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xE24 JUMPI PUSH2 0xE24 PUSH2 0xC4B JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xE3F DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xE56 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE2B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE75 DUP3 DUP6 PUSH2 0xB2F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xB85 DUP2 DUP5 PUSH2 0xE36 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xB4F JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB19 DUP2 PUSH2 0xE87 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEAD JUMPI PUSH2 0xEAD PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB85 DUP5 DUP5 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xEC6 DUP3 DUP7 PUSH2 0xB2F JUMP JUMPDEST PUSH2 0xED3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xB2F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xE36 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 0xB9 0xB4 0xF9 SWAP14 XOR 0xD6 PUSH28 0xF744570DB1B94B71DC0B20993A9D8DECC1C66B840C6DF8CA64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"546:1745:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;1863:426:54;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;651:52:54:-;;;;;8441:597:67;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1863:426:54:-;1924:7;1943:26;1987:16;-1:-1:-1;;;;;1972:41:54;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1943:72;;;;2025:26;2069:16;-1:-1:-1;;;;;2054:41:54;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2025:72;;;;2108:24;2135:19;-1:-1:-1;;;;;2135:28:54;;2164:16;2135:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2108:73;-1:-1:-1;2257:23:54;2262:18;2257:2;:23;:::i;:::-;2250:31;;:2;:31;:::i;:::-;2220:24;2226:18;2220:2;:24;:::i;:::-;2200:45;;:16;:45;:::i;:::-;2199:83;;;;:::i;:::-;2192:90;;;;;1863:426;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;546:1745:54;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;546:1745:54;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;546:1745:54;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5760:180::-;-1:-1:-1;;;5805:1:101;5798:88;5905:4;5902:1;5895:15;5929:4;5926:1;5919:15;5946:180;-1:-1:-1;;;5991:1:101;5984:88;6091:4;6088:1;6081:15;6115:4;6112:1;6105:15;6132:185;6172:1;6262;6252:35;;6267:18;;:::i;:::-;-1:-1:-1;6302:9:101;;6132:185::o;6323:194::-;6454:9;;;6476:11;;;6473:37;;;6490:18;;:::i;6523:191::-;6652:9;;;6674:10;;;6671:36;;;6687:18;;:::i;6812:118::-;6795:4;6784:16;;6883:22;6720:86;6936:139;7016:13;;7038:31;7016:13;7038:31;:::i;7081:347::-;7149:6;7198:2;7186:9;7177:7;7173:23;7169:32;7166:119;;;7204:79;546:1745:54;;;7204:79:101;7324:1;7349:62;7403:7;7383:9;7349:62;:::i;7434:143::-;7516:13;;7538:33;7516:13;7538:33;:::i;7583:351::-;7653:6;7702:2;7690:9;7681:7;7677:23;7673:32;7670:119;;;7708:79;546:1745:54;;;7708:79:101;7828:1;7853:64;7909:7;7889:9;7853:64;:::i;8048:848::-;8140:6;8164:5;8178:712;8199:1;8189:8;8186:15;8178:712;;;8294:4;8289:3;8285:14;8279:4;8276:24;8273:50;;;8303:18;;:::i;:::-;8353:1;8343:8;8339:16;8336:451;;;8757:16;;;;8336:451;8808:15;;8848:32;8871:8;8026:1;8022:13;;7940:102;8848:32;8836:44;;8178:712;;;8048:848;;;;;;;:::o;8902:1073::-;8956:5;9147:8;9137:40;;-1:-1:-1;9168:1:101;9170:5;;9137:40;9196:4;9186:36;;-1:-1:-1;9213:1:101;9215:5;;9186:36;9282:4;9330:1;9325:27;;;;9366:1;9361:191;;;;9275:277;;9325:27;9343:1;9334:10;;9345:5;;;9361:191;9406:3;9396:8;9393:17;9390:43;;;9413:18;;:::i;:::-;9462:8;9459:1;9455:16;9446:25;;9497:3;9490:5;9487:14;9484:40;;;9504:18;;:::i;:::-;9537:5;;;9275:277;;9661:2;9651:8;9648:16;9642:3;9636:4;9633:13;9629:36;9611:2;9601:8;9598:16;9593:2;9587:4;9584:12;9580:35;9564:111;9561:246;;;-1:-1:-1;9707:19:101;;;9742:14;;;9739:40;;;9759:18;;:::i;:::-;9792:5;;9561:246;9832:42;9870:3;9860:8;9854:4;9851:1;9832:42;:::i;:::-;9817:57;;;;9906:4;9901:3;9897:14;9890:5;9887:25;9884:51;;;9915:18;;:::i;:::-;9953:16;;8902:1073;-1:-1:-1;;8902:1073:101:o;9981:285::-;10041:5;10155:104;-1:-1:-1;;10182:8:101;10176:4;10155:104;:::i;10272:410::-;10417:9;;;;10579;;10612:15;;;10606:22;;10559:83;10536:139;;10655:18;;:::i;:::-;10320:362;10272:410;;;;:::o;10968:139::-;11057:6;11052:3;11047;11041:23;-1:-1:-1;11098:1:101;11080:16;;11073:27;10968:139::o;11221:377::-;11309:3;11337:39;11370:5;10768:12;;10688:99;11337:39;10899:19;;;10951:4;10942:14;;11385:78;;11472:65;11530:6;11525:3;11518:4;11511:5;11507:16;11472:65;:::i;:::-;11205:2;11185:14;-1:-1:-1;;11181:28:101;11553:39;;;;;;-1:-1:-1;;11221:377:101:o;11604:423::-;11783:2;11768:18;;11796:71;11772:9;11840:6;11796:71;:::i;:::-;11914:9;11908:4;11904:20;11899:2;11888:9;11884:18;11877:48;11942:78;12015:4;12006:6;11942:78;:::i;12033:116::-;4124:13;;4117:21;12103;4054:90;12155:137;12234:13;;12256:30;12234:13;12256:30;:::i;12298:345::-;12365:6;12414:2;12402:9;12393:7;12389:23;12385:32;12382:119;;;12420:79;546:1745:54;;;12420:79:101;12540:1;12565:61;12618:7;12598:9;12565:61;:::i;12649:533::-;12856:2;12841:18;;12869:71;12845:9;12913:6;12869:71;:::i;:::-;12950:72;13018:2;13007:9;13003:18;12994:6;12950:72;:::i;:::-;13069:9;13063:4;13059:20;13054:2;13043:9;13039:18;13032:48;13097:78;13170:4;13161:6;13097:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"773400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","INTERMEDIATE_ORACLE()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2425","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2449","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","INTERMEDIATE_ORACLE()":"ef4fa51b","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"correlatedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"intermediateOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTERMEDIATE_ORACLE\",\"outputs\":[{\"internalType\":\"contract OracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount The amount of the underlying token for 1 correlated token scaled by the underlying token decimals\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"OneJumpOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"INTERMEDIATE_ORACLE()\":{\"notice\":\"Address of the intermediate oracle\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of the underlying token for 1 correlated token, using the intermediate oracle\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of an asset in through an intermediate asset\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/OneJumpOracle.sol\":\"OneJumpOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/OneJumpOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { OracleInterface } from \\\"../interfaces/OracleInterface.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\n/**\\n * @title OneJumpOracle\\n * @author Venus\\n * @notice This oracle fetches the price of an asset in through an intermediate asset\\n */\\ncontract OneJumpOracle is CorrelatedTokenOracle {\\n    /// @notice Address of the intermediate oracle\\n    OracleInterface public immutable INTERMEDIATE_ORACLE;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address correlatedToken,\\n        address underlyingToken,\\n        address resilientOracle,\\n        address intermediateOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            correlatedToken,\\n            underlyingToken,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(intermediateOracle);\\n        INTERMEDIATE_ORACLE = OracleInterface(intermediateOracle);\\n    }\\n\\n    /**\\n     * @notice Fetches the amount of the underlying token for 1 correlated token, using the intermediate oracle\\n     * @return amount The amount of the underlying token for 1 correlated token scaled by the underlying token decimals\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        uint256 underlyingDecimals = IERC20Metadata(UNDERLYING_TOKEN).decimals();\\n        uint256 correlatedDecimals = IERC20Metadata(CORRELATED_TOKEN).decimals();\\n\\n        uint256 underlyingAmount = INTERMEDIATE_ORACLE.getPrice(CORRELATED_TOKEN);\\n\\n        return (underlyingAmount * (10 ** correlatedDecimals)) / (10 ** (36 - underlyingDecimals));\\n    }\\n}\\n\",\"keccak256\":\"0xa08f479bef67278c8b7a32cdf49691b76ed64c9f29c7dbd3435bd1a964f6b4ac\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/OneJumpOracle.sol:OneJumpOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/OneJumpOracle.sol:OneJumpOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/OneJumpOracle.sol:OneJumpOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/OneJumpOracle.sol:OneJumpOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/OneJumpOracle.sol:OneJumpOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"INTERMEDIATE_ORACLE()":{"notice":"Address of the intermediate oracle"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of the underlying token for 1 correlated token, using the intermediate oracle"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of an asset in through an intermediate asset","version":1}}},"contracts/oracles/PendleOracle.sol":{"PendleOracle":{"abi":[{"inputs":[{"components":[{"internalType":"address","name":"market","type":"address"},{"internalType":"address","name":"ptOracle","type":"address"},{"internalType":"enum PendleOracle.RateKind","name":"rateKind","type":"uint8"},{"internalType":"address","name":"ptToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint32","name":"twapDuration","type":"uint32"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"snapshotGap","type":"uint256"}],"internalType":"struct PendleOracle.ConstructorParams","name":"params","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidDuration","type":"error"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"inputs":[],"name":"ZeroValueNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MARKET","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_ORACLE","outputs":[{"internalType":"contract IPendlePtOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_KIND","outputs":[{"internalType":"enum PendleOracle.RateKind","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TWAP_DURATION","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","details":"As a base price the oracle uses either the price of the Pendle market's asset (in this case PT_TO_ASSET rate should be used) or the price of the Pendle market's interest bearing token (e.g. wstETH for stETH; in this case PT_TO_SY rate should be used). Technically, interest bearing token is different from standardized yield (SY) token, but since SY is a wrapper around an interest bearing token, we can safely assume the prices of the two are equal. This is not always true for asset price though: using PT_TO_ASSET rate assumes that the yield token can be seamlessly redeemed for the underlying asset. In reality, this might not always be the case. For more details, see https://docs.pendle.finance/Developers/Contracts/StandardizedYield","kind":"dev","methods":{"constructor":{"custom:error":"InvalidDuration Thrown if the duration is invalid"},"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount The amount of underlying token (either the market's asset or the yield token) for 1 PT, adjusted for decimals such that the result has the same precision as the underlying token"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"stateVariables":{"UNDERLYING_DECIMALS":{"details":"We make an assumption that the underlying decimals will not change throughout the lifetime of the Pendle market"}},"title":"PendleOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5504":{"entryPoint":null,"id":5504,"parameterSlots":1,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":739,"id":2165,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroValue_2180":{"entryPoint":781,"id":2180,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":941,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":1535,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_RateKind_$5392_fromMemory":{"entryPoint":964,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory":{"entryPoint":1015,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint16_fromMemory":{"entryPoint":1556,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":1004,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint32_fromMemory":{"entryPoint":987,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":1425,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_uint16t_bool_fromMemory":{"entryPoint":1567,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory":{"entryPoint":1318,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":1436,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1466,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":1481,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address_t_uint32__to_t_address_t_uint32__fromStack_reversed":{"entryPoint":1493,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":877,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":1377,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":904,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":833,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":1357,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":1396,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":813,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":922,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":1527,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_RateKind_$5392":{"entryPoint":952,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":1546,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":998,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint32":{"entryPoint":975,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":1416,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9414:101","nodeType":"YulBlock","src":"0:9414:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"505:54:101","nodeType":"YulBlock","src":"505:54:101","statements":[{"nativeSrc":"515:38:101","nodeType":"YulAssignment","src":"515:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"533:5:101","nodeType":"YulIdentifier","src":"533:5:101"},{"kind":"number","nativeSrc":"540:2:101","nodeType":"YulLiteral","src":"540:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"529:3:101","nodeType":"YulIdentifier","src":"529:3:101"},"nativeSrc":"529:14:101","nodeType":"YulFunctionCall","src":"529:14:101"},{"arguments":[{"kind":"number","nativeSrc":"549:2:101","nodeType":"YulLiteral","src":"549:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"545:3:101","nodeType":"YulIdentifier","src":"545:3:101"},"nativeSrc":"545:7:101","nodeType":"YulFunctionCall","src":"545:7:101"}],"functionName":{"name":"and","nativeSrc":"525:3:101","nodeType":"YulIdentifier","src":"525:3:101"},"nativeSrc":"525:28:101","nodeType":"YulFunctionCall","src":"525:28:101"},"variableNames":[{"name":"result","nativeSrc":"515:6:101","nodeType":"YulIdentifier","src":"515:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"457:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"488:5:101","nodeType":"YulTypedName","src":"488:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"498:6:101","nodeType":"YulTypedName","src":"498:6:101","type":""}],"src":"457:102:101"},{"body":{"nativeSrc":"593:152:101","nodeType":"YulBlock","src":"593:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"610:1:101","nodeType":"YulLiteral","src":"610:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"613:77:101","nodeType":"YulLiteral","src":"613:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"603:6:101","nodeType":"YulIdentifier","src":"603:6:101"},"nativeSrc":"603:88:101","nodeType":"YulFunctionCall","src":"603:88:101"},"nativeSrc":"603:88:101","nodeType":"YulExpressionStatement","src":"603:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"707:1:101","nodeType":"YulLiteral","src":"707:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"710:4:101","nodeType":"YulLiteral","src":"710:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"700:6:101","nodeType":"YulIdentifier","src":"700:6:101"},"nativeSrc":"700:15:101","nodeType":"YulFunctionCall","src":"700:15:101"},"nativeSrc":"700:15:101","nodeType":"YulExpressionStatement","src":"700:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"731:1:101","nodeType":"YulLiteral","src":"731:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"734:4:101","nodeType":"YulLiteral","src":"734:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"724:6:101","nodeType":"YulIdentifier","src":"724:6:101"},"nativeSrc":"724:15:101","nodeType":"YulFunctionCall","src":"724:15:101"},"nativeSrc":"724:15:101","nodeType":"YulExpressionStatement","src":"724:15:101"}]},"name":"panic_error_0x41","nativeSrc":"565:180:101","nodeType":"YulFunctionDefinition","src":"565:180:101"},{"body":{"nativeSrc":"794:238:101","nodeType":"YulBlock","src":"794:238:101","statements":[{"nativeSrc":"804:58:101","nodeType":"YulVariableDeclaration","src":"804:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"826:6:101","nodeType":"YulIdentifier","src":"826:6:101"},{"arguments":[{"name":"size","nativeSrc":"856:4:101","nodeType":"YulIdentifier","src":"856:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"834:21:101","nodeType":"YulIdentifier","src":"834:21:101"},"nativeSrc":"834:27:101","nodeType":"YulFunctionCall","src":"834:27:101"}],"functionName":{"name":"add","nativeSrc":"822:3:101","nodeType":"YulIdentifier","src":"822:3:101"},"nativeSrc":"822:40:101","nodeType":"YulFunctionCall","src":"822:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"808:10:101","nodeType":"YulTypedName","src":"808:10:101","type":""}]},{"body":{"nativeSrc":"973:22:101","nodeType":"YulBlock","src":"973:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"975:16:101","nodeType":"YulIdentifier","src":"975:16:101"},"nativeSrc":"975:18:101","nodeType":"YulFunctionCall","src":"975:18:101"},"nativeSrc":"975:18:101","nodeType":"YulExpressionStatement","src":"975:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"916:10:101","nodeType":"YulIdentifier","src":"916:10:101"},{"kind":"number","nativeSrc":"928:18:101","nodeType":"YulLiteral","src":"928:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"913:2:101","nodeType":"YulIdentifier","src":"913:2:101"},"nativeSrc":"913:34:101","nodeType":"YulFunctionCall","src":"913:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"952:10:101","nodeType":"YulIdentifier","src":"952:10:101"},{"name":"memPtr","nativeSrc":"964:6:101","nodeType":"YulIdentifier","src":"964:6:101"}],"functionName":{"name":"lt","nativeSrc":"949:2:101","nodeType":"YulIdentifier","src":"949:2:101"},"nativeSrc":"949:22:101","nodeType":"YulFunctionCall","src":"949:22:101"}],"functionName":{"name":"or","nativeSrc":"910:2:101","nodeType":"YulIdentifier","src":"910:2:101"},"nativeSrc":"910:62:101","nodeType":"YulFunctionCall","src":"910:62:101"},"nativeSrc":"907:88:101","nodeType":"YulIf","src":"907:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1011:2:101","nodeType":"YulLiteral","src":"1011:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1015:10:101","nodeType":"YulIdentifier","src":"1015:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1004:6:101","nodeType":"YulIdentifier","src":"1004:6:101"},"nativeSrc":"1004:22:101","nodeType":"YulFunctionCall","src":"1004:22:101"},"nativeSrc":"1004:22:101","nodeType":"YulExpressionStatement","src":"1004:22:101"}]},"name":"finalize_allocation","nativeSrc":"751:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"780:6:101","nodeType":"YulTypedName","src":"780:6:101","type":""},{"name":"size","nativeSrc":"788:4:101","nodeType":"YulTypedName","src":"788:4:101","type":""}],"src":"751:281:101"},{"body":{"nativeSrc":"1079:88:101","nodeType":"YulBlock","src":"1079:88:101","statements":[{"nativeSrc":"1089:30:101","nodeType":"YulAssignment","src":"1089:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1099:18:101","nodeType":"YulIdentifier","src":"1099:18:101"},"nativeSrc":"1099:20:101","nodeType":"YulFunctionCall","src":"1099:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1089:6:101","nodeType":"YulIdentifier","src":"1089:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1148:6:101","nodeType":"YulIdentifier","src":"1148:6:101"},{"name":"size","nativeSrc":"1156:4:101","nodeType":"YulIdentifier","src":"1156:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1128:19:101","nodeType":"YulIdentifier","src":"1128:19:101"},"nativeSrc":"1128:33:101","nodeType":"YulFunctionCall","src":"1128:33:101"},"nativeSrc":"1128:33:101","nodeType":"YulExpressionStatement","src":"1128:33:101"}]},"name":"allocate_memory","nativeSrc":"1038:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1063:4:101","nodeType":"YulTypedName","src":"1063:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1072:6:101","nodeType":"YulTypedName","src":"1072:6:101","type":""}],"src":"1038:129:101"},{"body":{"nativeSrc":"1262:28:101","nodeType":"YulBlock","src":"1262:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1279:1:101","nodeType":"YulLiteral","src":"1279:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1282:1:101","nodeType":"YulLiteral","src":"1282:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1272:6:101","nodeType":"YulIdentifier","src":"1272:6:101"},"nativeSrc":"1272:12:101","nodeType":"YulFunctionCall","src":"1272:12:101"},"nativeSrc":"1272:12:101","nodeType":"YulExpressionStatement","src":"1272:12:101"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"1173:117:101","nodeType":"YulFunctionDefinition","src":"1173:117:101"},{"body":{"nativeSrc":"1341:81:101","nodeType":"YulBlock","src":"1341:81:101","statements":[{"nativeSrc":"1351:65:101","nodeType":"YulAssignment","src":"1351:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1366:5:101","nodeType":"YulIdentifier","src":"1366:5:101"},{"kind":"number","nativeSrc":"1373:42:101","nodeType":"YulLiteral","src":"1373:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1362:3:101","nodeType":"YulIdentifier","src":"1362:3:101"},"nativeSrc":"1362:54:101","nodeType":"YulFunctionCall","src":"1362:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1351:7:101","nodeType":"YulIdentifier","src":"1351:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1296:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1323:5:101","nodeType":"YulTypedName","src":"1323:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1333:7:101","nodeType":"YulTypedName","src":"1333:7:101","type":""}],"src":"1296:126:101"},{"body":{"nativeSrc":"1473:51:101","nodeType":"YulBlock","src":"1473:51:101","statements":[{"nativeSrc":"1483:35:101","nodeType":"YulAssignment","src":"1483:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1512:5:101","nodeType":"YulIdentifier","src":"1512:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1494:17:101","nodeType":"YulIdentifier","src":"1494:17:101"},"nativeSrc":"1494:24:101","nodeType":"YulFunctionCall","src":"1494:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1483:7:101","nodeType":"YulIdentifier","src":"1483:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1428:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1455:5:101","nodeType":"YulTypedName","src":"1455:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1465:7:101","nodeType":"YulTypedName","src":"1465:7:101","type":""}],"src":"1428:96:101"},{"body":{"nativeSrc":"1573:79:101","nodeType":"YulBlock","src":"1573:79:101","statements":[{"body":{"nativeSrc":"1630:16:101","nodeType":"YulBlock","src":"1630:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1639:1:101","nodeType":"YulLiteral","src":"1639:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1642:1:101","nodeType":"YulLiteral","src":"1642:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1632:6:101","nodeType":"YulIdentifier","src":"1632:6:101"},"nativeSrc":"1632:12:101","nodeType":"YulFunctionCall","src":"1632:12:101"},"nativeSrc":"1632:12:101","nodeType":"YulExpressionStatement","src":"1632:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulIdentifier","src":"1596:5:101"},{"arguments":[{"name":"value","nativeSrc":"1621:5:101","nodeType":"YulIdentifier","src":"1621:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1603:17:101","nodeType":"YulIdentifier","src":"1603:17:101"},"nativeSrc":"1603:24:101","nodeType":"YulFunctionCall","src":"1603:24:101"}],"functionName":{"name":"eq","nativeSrc":"1593:2:101","nodeType":"YulIdentifier","src":"1593:2:101"},"nativeSrc":"1593:35:101","nodeType":"YulFunctionCall","src":"1593:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1586:6:101","nodeType":"YulIdentifier","src":"1586:6:101"},"nativeSrc":"1586:43:101","nodeType":"YulFunctionCall","src":"1586:43:101"},"nativeSrc":"1583:63:101","nodeType":"YulIf","src":"1583:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1530:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1566:5:101","nodeType":"YulTypedName","src":"1566:5:101","type":""}],"src":"1530:122:101"},{"body":{"nativeSrc":"1721:80:101","nodeType":"YulBlock","src":"1721:80:101","statements":[{"nativeSrc":"1731:22:101","nodeType":"YulAssignment","src":"1731:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1746:6:101","nodeType":"YulIdentifier","src":"1746:6:101"}],"functionName":{"name":"mload","nativeSrc":"1740:5:101","nodeType":"YulIdentifier","src":"1740:5:101"},"nativeSrc":"1740:13:101","nodeType":"YulFunctionCall","src":"1740:13:101"},"variableNames":[{"name":"value","nativeSrc":"1731:5:101","nodeType":"YulIdentifier","src":"1731:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1789:5:101","nodeType":"YulIdentifier","src":"1789:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1762:26:101","nodeType":"YulIdentifier","src":"1762:26:101"},"nativeSrc":"1762:33:101","nodeType":"YulFunctionCall","src":"1762:33:101"},"nativeSrc":"1762:33:101","nodeType":"YulExpressionStatement","src":"1762:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"1658:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1699:6:101","nodeType":"YulTypedName","src":"1699:6:101","type":""},{"name":"end","nativeSrc":"1707:3:101","nodeType":"YulTypedName","src":"1707:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1715:5:101","nodeType":"YulTypedName","src":"1715:5:101","type":""}],"src":"1658:143:101"},{"body":{"nativeSrc":"1863:56:101","nodeType":"YulBlock","src":"1863:56:101","statements":[{"body":{"nativeSrc":"1897:16:101","nodeType":"YulBlock","src":"1897:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1906:1:101","nodeType":"YulLiteral","src":"1906:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1909:1:101","nodeType":"YulLiteral","src":"1909:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1899:6:101","nodeType":"YulIdentifier","src":"1899:6:101"},"nativeSrc":"1899:12:101","nodeType":"YulFunctionCall","src":"1899:12:101"},"nativeSrc":"1899:12:101","nodeType":"YulExpressionStatement","src":"1899:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1886:5:101","nodeType":"YulIdentifier","src":"1886:5:101"},{"kind":"number","nativeSrc":"1893:1:101","nodeType":"YulLiteral","src":"1893:1:101","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"1883:2:101","nodeType":"YulIdentifier","src":"1883:2:101"},"nativeSrc":"1883:12:101","nodeType":"YulFunctionCall","src":"1883:12:101"}],"functionName":{"name":"iszero","nativeSrc":"1876:6:101","nodeType":"YulIdentifier","src":"1876:6:101"},"nativeSrc":"1876:20:101","nodeType":"YulFunctionCall","src":"1876:20:101"},"nativeSrc":"1873:40:101","nodeType":"YulIf","src":"1873:40:101"}]},"name":"validator_revert_t_enum$_RateKind_$5392","nativeSrc":"1807:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1856:5:101","nodeType":"YulTypedName","src":"1856:5:101","type":""}],"src":"1807:112:101"},{"body":{"nativeSrc":"2001:93:101","nodeType":"YulBlock","src":"2001:93:101","statements":[{"nativeSrc":"2011:22:101","nodeType":"YulAssignment","src":"2011:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2026:6:101","nodeType":"YulIdentifier","src":"2026:6:101"}],"functionName":{"name":"mload","nativeSrc":"2020:5:101","nodeType":"YulIdentifier","src":"2020:5:101"},"nativeSrc":"2020:13:101","nodeType":"YulFunctionCall","src":"2020:13:101"},"variableNames":[{"name":"value","nativeSrc":"2011:5:101","nodeType":"YulIdentifier","src":"2011:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2082:5:101","nodeType":"YulIdentifier","src":"2082:5:101"}],"functionName":{"name":"validator_revert_t_enum$_RateKind_$5392","nativeSrc":"2042:39:101","nodeType":"YulIdentifier","src":"2042:39:101"},"nativeSrc":"2042:46:101","nodeType":"YulFunctionCall","src":"2042:46:101"},"nativeSrc":"2042:46:101","nodeType":"YulExpressionStatement","src":"2042:46:101"}]},"name":"abi_decode_t_enum$_RateKind_$5392_fromMemory","nativeSrc":"1925:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1979:6:101","nodeType":"YulTypedName","src":"1979:6:101","type":""},{"name":"end","nativeSrc":"1987:3:101","nodeType":"YulTypedName","src":"1987:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1995:5:101","nodeType":"YulTypedName","src":"1995:5:101","type":""}],"src":"1925:169:101"},{"body":{"nativeSrc":"2144:49:101","nodeType":"YulBlock","src":"2144:49:101","statements":[{"nativeSrc":"2154:33:101","nodeType":"YulAssignment","src":"2154:33:101","value":{"arguments":[{"name":"value","nativeSrc":"2169:5:101","nodeType":"YulIdentifier","src":"2169:5:101"},{"kind":"number","nativeSrc":"2176:10:101","nodeType":"YulLiteral","src":"2176:10:101","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"2165:3:101","nodeType":"YulIdentifier","src":"2165:3:101"},"nativeSrc":"2165:22:101","nodeType":"YulFunctionCall","src":"2165:22:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2154:7:101","nodeType":"YulIdentifier","src":"2154:7:101"}]}]},"name":"cleanup_t_uint32","nativeSrc":"2100:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2126:5:101","nodeType":"YulTypedName","src":"2126:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2136:7:101","nodeType":"YulTypedName","src":"2136:7:101","type":""}],"src":"2100:93:101"},{"body":{"nativeSrc":"2241:78:101","nodeType":"YulBlock","src":"2241:78:101","statements":[{"body":{"nativeSrc":"2297:16:101","nodeType":"YulBlock","src":"2297:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2306:1:101","nodeType":"YulLiteral","src":"2306:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2309:1:101","nodeType":"YulLiteral","src":"2309:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"},"nativeSrc":"2299:12:101","nodeType":"YulFunctionCall","src":"2299:12:101"},"nativeSrc":"2299:12:101","nodeType":"YulExpressionStatement","src":"2299:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2264:5:101","nodeType":"YulIdentifier","src":"2264:5:101"},{"arguments":[{"name":"value","nativeSrc":"2288:5:101","nodeType":"YulIdentifier","src":"2288:5:101"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"2271:16:101","nodeType":"YulIdentifier","src":"2271:16:101"},"nativeSrc":"2271:23:101","nodeType":"YulFunctionCall","src":"2271:23:101"}],"functionName":{"name":"eq","nativeSrc":"2261:2:101","nodeType":"YulIdentifier","src":"2261:2:101"},"nativeSrc":"2261:34:101","nodeType":"YulFunctionCall","src":"2261:34:101"}],"functionName":{"name":"iszero","nativeSrc":"2254:6:101","nodeType":"YulIdentifier","src":"2254:6:101"},"nativeSrc":"2254:42:101","nodeType":"YulFunctionCall","src":"2254:42:101"},"nativeSrc":"2251:62:101","nodeType":"YulIf","src":"2251:62:101"}]},"name":"validator_revert_t_uint32","nativeSrc":"2199:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2234:5:101","nodeType":"YulTypedName","src":"2234:5:101","type":""}],"src":"2199:120:101"},{"body":{"nativeSrc":"2387:79:101","nodeType":"YulBlock","src":"2387:79:101","statements":[{"nativeSrc":"2397:22:101","nodeType":"YulAssignment","src":"2397:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulIdentifier","src":"2412:6:101"}],"functionName":{"name":"mload","nativeSrc":"2406:5:101","nodeType":"YulIdentifier","src":"2406:5:101"},"nativeSrc":"2406:13:101","nodeType":"YulFunctionCall","src":"2406:13:101"},"variableNames":[{"name":"value","nativeSrc":"2397:5:101","nodeType":"YulIdentifier","src":"2397:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2454:5:101","nodeType":"YulIdentifier","src":"2454:5:101"}],"functionName":{"name":"validator_revert_t_uint32","nativeSrc":"2428:25:101","nodeType":"YulIdentifier","src":"2428:25:101"},"nativeSrc":"2428:32:101","nodeType":"YulFunctionCall","src":"2428:32:101"},"nativeSrc":"2428:32:101","nodeType":"YulExpressionStatement","src":"2428:32:101"}]},"name":"abi_decode_t_uint32_fromMemory","nativeSrc":"2325:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2365:6:101","nodeType":"YulTypedName","src":"2365:6:101","type":""},{"name":"end","nativeSrc":"2373:3:101","nodeType":"YulTypedName","src":"2373:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"src":"2325:141:101"},{"body":{"nativeSrc":"2517:32:101","nodeType":"YulBlock","src":"2517:32:101","statements":[{"nativeSrc":"2527:16:101","nodeType":"YulAssignment","src":"2527:16:101","value":{"name":"value","nativeSrc":"2538:5:101","nodeType":"YulIdentifier","src":"2538:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2527:7:101","nodeType":"YulIdentifier","src":"2527:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2472:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2499:5:101","nodeType":"YulTypedName","src":"2499:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2509:7:101","nodeType":"YulTypedName","src":"2509:7:101","type":""}],"src":"2472:77:101"},{"body":{"nativeSrc":"2598:79:101","nodeType":"YulBlock","src":"2598:79:101","statements":[{"body":{"nativeSrc":"2655:16:101","nodeType":"YulBlock","src":"2655:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2664:1:101","nodeType":"YulLiteral","src":"2664:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2667:1:101","nodeType":"YulLiteral","src":"2667:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2657:6:101","nodeType":"YulIdentifier","src":"2657:6:101"},"nativeSrc":"2657:12:101","nodeType":"YulFunctionCall","src":"2657:12:101"},"nativeSrc":"2657:12:101","nodeType":"YulExpressionStatement","src":"2657:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2621:5:101","nodeType":"YulIdentifier","src":"2621:5:101"},{"arguments":[{"name":"value","nativeSrc":"2646:5:101","nodeType":"YulIdentifier","src":"2646:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2628:17:101","nodeType":"YulIdentifier","src":"2628:17:101"},"nativeSrc":"2628:24:101","nodeType":"YulFunctionCall","src":"2628:24:101"}],"functionName":{"name":"eq","nativeSrc":"2618:2:101","nodeType":"YulIdentifier","src":"2618:2:101"},"nativeSrc":"2618:35:101","nodeType":"YulFunctionCall","src":"2618:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2611:6:101","nodeType":"YulIdentifier","src":"2611:6:101"},"nativeSrc":"2611:43:101","nodeType":"YulFunctionCall","src":"2611:43:101"},"nativeSrc":"2608:63:101","nodeType":"YulIf","src":"2608:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2555:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2591:5:101","nodeType":"YulTypedName","src":"2591:5:101","type":""}],"src":"2555:122:101"},{"body":{"nativeSrc":"2746:80:101","nodeType":"YulBlock","src":"2746:80:101","statements":[{"nativeSrc":"2756:22:101","nodeType":"YulAssignment","src":"2756:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2771:6:101","nodeType":"YulIdentifier","src":"2771:6:101"}],"functionName":{"name":"mload","nativeSrc":"2765:5:101","nodeType":"YulIdentifier","src":"2765:5:101"},"nativeSrc":"2765:13:101","nodeType":"YulFunctionCall","src":"2765:13:101"},"variableNames":[{"name":"value","nativeSrc":"2756:5:101","nodeType":"YulIdentifier","src":"2756:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2814:5:101","nodeType":"YulIdentifier","src":"2814:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2787:26:101","nodeType":"YulIdentifier","src":"2787:26:101"},"nativeSrc":"2787:33:101","nodeType":"YulFunctionCall","src":"2787:33:101"},"nativeSrc":"2787:33:101","nodeType":"YulExpressionStatement","src":"2787:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2683:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2724:6:101","nodeType":"YulTypedName","src":"2724:6:101","type":""},{"name":"end","nativeSrc":"2732:3:101","nodeType":"YulTypedName","src":"2732:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2740:5:101","nodeType":"YulTypedName","src":"2740:5:101","type":""}],"src":"2683:143:101"},{"body":{"nativeSrc":"2978:2579:101","nodeType":"YulBlock","src":"2978:2579:101","statements":[{"body":{"nativeSrc":"3024:83:101","nodeType":"YulBlock","src":"3024:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"3026:77:101","nodeType":"YulIdentifier","src":"3026:77:101"},"nativeSrc":"3026:79:101","nodeType":"YulFunctionCall","src":"3026:79:101"},"nativeSrc":"3026:79:101","nodeType":"YulExpressionStatement","src":"3026:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2999:3:101","nodeType":"YulIdentifier","src":"2999:3:101"},{"name":"headStart","nativeSrc":"3004:9:101","nodeType":"YulIdentifier","src":"3004:9:101"}],"functionName":{"name":"sub","nativeSrc":"2995:3:101","nodeType":"YulIdentifier","src":"2995:3:101"},"nativeSrc":"2995:19:101","nodeType":"YulFunctionCall","src":"2995:19:101"},{"kind":"number","nativeSrc":"3016:6:101","nodeType":"YulLiteral","src":"3016:6:101","type":"","value":"0x01a0"}],"functionName":{"name":"slt","nativeSrc":"2991:3:101","nodeType":"YulIdentifier","src":"2991:3:101"},"nativeSrc":"2991:32:101","nodeType":"YulFunctionCall","src":"2991:32:101"},"nativeSrc":"2988:119:101","nodeType":"YulIf","src":"2988:119:101"},{"nativeSrc":"3116:32:101","nodeType":"YulAssignment","src":"3116:32:101","value":{"arguments":[{"kind":"number","nativeSrc":"3141:6:101","nodeType":"YulLiteral","src":"3141:6:101","type":"","value":"0x01a0"}],"functionName":{"name":"allocate_memory","nativeSrc":"3125:15:101","nodeType":"YulIdentifier","src":"3125:15:101"},"nativeSrc":"3125:23:101","nodeType":"YulFunctionCall","src":"3125:23:101"},"variableNames":[{"name":"value","nativeSrc":"3116:5:101","nodeType":"YulIdentifier","src":"3116:5:101"}]},{"nativeSrc":"3158:163:101","nodeType":"YulBlock","src":"3158:163:101","statements":[{"nativeSrc":"3195:15:101","nodeType":"YulVariableDeclaration","src":"3195:15:101","value":{"kind":"number","nativeSrc":"3209:1:101","nodeType":"YulLiteral","src":"3209:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3199:6:101","nodeType":"YulTypedName","src":"3199:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3235:5:101","nodeType":"YulIdentifier","src":"3235:5:101"},{"kind":"number","nativeSrc":"3242:4:101","nodeType":"YulLiteral","src":"3242:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"3231:3:101","nodeType":"YulIdentifier","src":"3231:3:101"},"nativeSrc":"3231:16:101","nodeType":"YulFunctionCall","src":"3231:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3285:9:101","nodeType":"YulIdentifier","src":"3285:9:101"},{"name":"offset","nativeSrc":"3296:6:101","nodeType":"YulIdentifier","src":"3296:6:101"}],"functionName":{"name":"add","nativeSrc":"3281:3:101","nodeType":"YulIdentifier","src":"3281:3:101"},"nativeSrc":"3281:22:101","nodeType":"YulFunctionCall","src":"3281:22:101"},{"name":"end","nativeSrc":"3305:3:101","nodeType":"YulIdentifier","src":"3305:3:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3249:31:101","nodeType":"YulIdentifier","src":"3249:31:101"},"nativeSrc":"3249:60:101","nodeType":"YulFunctionCall","src":"3249:60:101"}],"functionName":{"name":"mstore","nativeSrc":"3224:6:101","nodeType":"YulIdentifier","src":"3224:6:101"},"nativeSrc":"3224:86:101","nodeType":"YulFunctionCall","src":"3224:86:101"},"nativeSrc":"3224:86:101","nodeType":"YulExpressionStatement","src":"3224:86:101"}]},{"nativeSrc":"3331:166:101","nodeType":"YulBlock","src":"3331:166:101","statements":[{"nativeSrc":"3370:16:101","nodeType":"YulVariableDeclaration","src":"3370:16:101","value":{"kind":"number","nativeSrc":"3384:2:101","nodeType":"YulLiteral","src":"3384:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3374:6:101","nodeType":"YulTypedName","src":"3374:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3411:5:101","nodeType":"YulIdentifier","src":"3411:5:101"},{"kind":"number","nativeSrc":"3418:4:101","nodeType":"YulLiteral","src":"3418:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3407:3:101","nodeType":"YulIdentifier","src":"3407:3:101"},"nativeSrc":"3407:16:101","nodeType":"YulFunctionCall","src":"3407:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3461:9:101","nodeType":"YulIdentifier","src":"3461:9:101"},{"name":"offset","nativeSrc":"3472:6:101","nodeType":"YulIdentifier","src":"3472:6:101"}],"functionName":{"name":"add","nativeSrc":"3457:3:101","nodeType":"YulIdentifier","src":"3457:3:101"},"nativeSrc":"3457:22:101","nodeType":"YulFunctionCall","src":"3457:22:101"},{"name":"end","nativeSrc":"3481:3:101","nodeType":"YulIdentifier","src":"3481:3:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3425:31:101","nodeType":"YulIdentifier","src":"3425:31:101"},"nativeSrc":"3425:60:101","nodeType":"YulFunctionCall","src":"3425:60:101"}],"functionName":{"name":"mstore","nativeSrc":"3400:6:101","nodeType":"YulIdentifier","src":"3400:6:101"},"nativeSrc":"3400:86:101","nodeType":"YulFunctionCall","src":"3400:86:101"},"nativeSrc":"3400:86:101","nodeType":"YulExpressionStatement","src":"3400:86:101"}]},{"nativeSrc":"3507:179:101","nodeType":"YulBlock","src":"3507:179:101","statements":[{"nativeSrc":"3546:16:101","nodeType":"YulVariableDeclaration","src":"3546:16:101","value":{"kind":"number","nativeSrc":"3560:2:101","nodeType":"YulLiteral","src":"3560:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3550:6:101","nodeType":"YulTypedName","src":"3550:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3587:5:101","nodeType":"YulIdentifier","src":"3587:5:101"},{"kind":"number","nativeSrc":"3594:4:101","nodeType":"YulLiteral","src":"3594:4:101","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3583:3:101","nodeType":"YulIdentifier","src":"3583:3:101"},"nativeSrc":"3583:16:101","nodeType":"YulFunctionCall","src":"3583:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3650:9:101","nodeType":"YulIdentifier","src":"3650:9:101"},{"name":"offset","nativeSrc":"3661:6:101","nodeType":"YulIdentifier","src":"3661:6:101"}],"functionName":{"name":"add","nativeSrc":"3646:3:101","nodeType":"YulIdentifier","src":"3646:3:101"},"nativeSrc":"3646:22:101","nodeType":"YulFunctionCall","src":"3646:22:101"},{"name":"end","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"}],"functionName":{"name":"abi_decode_t_enum$_RateKind_$5392_fromMemory","nativeSrc":"3601:44:101","nodeType":"YulIdentifier","src":"3601:44:101"},"nativeSrc":"3601:73:101","nodeType":"YulFunctionCall","src":"3601:73:101"}],"functionName":{"name":"mstore","nativeSrc":"3576:6:101","nodeType":"YulIdentifier","src":"3576:6:101"},"nativeSrc":"3576:99:101","nodeType":"YulFunctionCall","src":"3576:99:101"},"nativeSrc":"3576:99:101","nodeType":"YulExpressionStatement","src":"3576:99:101"}]},{"nativeSrc":"3696:165:101","nodeType":"YulBlock","src":"3696:165:101","statements":[{"nativeSrc":"3734:16:101","nodeType":"YulVariableDeclaration","src":"3734:16:101","value":{"kind":"number","nativeSrc":"3748:2:101","nodeType":"YulLiteral","src":"3748:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"3738:6:101","nodeType":"YulTypedName","src":"3738:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3775:5:101","nodeType":"YulIdentifier","src":"3775:5:101"},{"kind":"number","nativeSrc":"3782:4:101","nodeType":"YulLiteral","src":"3782:4:101","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3771:3:101","nodeType":"YulIdentifier","src":"3771:3:101"},"nativeSrc":"3771:16:101","nodeType":"YulFunctionCall","src":"3771:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3825:9:101","nodeType":"YulIdentifier","src":"3825:9:101"},{"name":"offset","nativeSrc":"3836:6:101","nodeType":"YulIdentifier","src":"3836:6:101"}],"functionName":{"name":"add","nativeSrc":"3821:3:101","nodeType":"YulIdentifier","src":"3821:3:101"},"nativeSrc":"3821:22:101","nodeType":"YulFunctionCall","src":"3821:22:101"},{"name":"end","nativeSrc":"3845:3:101","nodeType":"YulIdentifier","src":"3845:3:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3789:31:101","nodeType":"YulIdentifier","src":"3789:31:101"},"nativeSrc":"3789:60:101","nodeType":"YulFunctionCall","src":"3789:60:101"}],"functionName":{"name":"mstore","nativeSrc":"3764:6:101","nodeType":"YulIdentifier","src":"3764:6:101"},"nativeSrc":"3764:86:101","nodeType":"YulFunctionCall","src":"3764:86:101"},"nativeSrc":"3764:86:101","nodeType":"YulExpressionStatement","src":"3764:86:101"}]},{"nativeSrc":"3871:174:101","nodeType":"YulBlock","src":"3871:174:101","statements":[{"nativeSrc":"3917:17:101","nodeType":"YulVariableDeclaration","src":"3917:17:101","value":{"kind":"number","nativeSrc":"3931:3:101","nodeType":"YulLiteral","src":"3931:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"3921:6:101","nodeType":"YulTypedName","src":"3921:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3959:5:101","nodeType":"YulIdentifier","src":"3959:5:101"},{"kind":"number","nativeSrc":"3966:4:101","nodeType":"YulLiteral","src":"3966:4:101","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"3955:3:101","nodeType":"YulIdentifier","src":"3955:3:101"},"nativeSrc":"3955:16:101","nodeType":"YulFunctionCall","src":"3955:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:101","nodeType":"YulIdentifier","src":"4009:9:101"},{"name":"offset","nativeSrc":"4020:6:101","nodeType":"YulIdentifier","src":"4020:6:101"}],"functionName":{"name":"add","nativeSrc":"4005:3:101","nodeType":"YulIdentifier","src":"4005:3:101"},"nativeSrc":"4005:22:101","nodeType":"YulFunctionCall","src":"4005:22:101"},{"name":"end","nativeSrc":"4029:3:101","nodeType":"YulIdentifier","src":"4029:3:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3973:31:101","nodeType":"YulIdentifier","src":"3973:31:101"},"nativeSrc":"3973:60:101","nodeType":"YulFunctionCall","src":"3973:60:101"}],"functionName":{"name":"mstore","nativeSrc":"3948:6:101","nodeType":"YulIdentifier","src":"3948:6:101"},"nativeSrc":"3948:86:101","nodeType":"YulFunctionCall","src":"3948:86:101"},"nativeSrc":"3948:86:101","nodeType":"YulExpressionStatement","src":"3948:86:101"}]},{"nativeSrc":"4055:174:101","nodeType":"YulBlock","src":"4055:174:101","statements":[{"nativeSrc":"4101:17:101","nodeType":"YulVariableDeclaration","src":"4101:17:101","value":{"kind":"number","nativeSrc":"4115:3:101","nodeType":"YulLiteral","src":"4115:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"4105:6:101","nodeType":"YulTypedName","src":"4105:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4143:5:101","nodeType":"YulIdentifier","src":"4143:5:101"},{"kind":"number","nativeSrc":"4150:4:101","nodeType":"YulLiteral","src":"4150:4:101","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"4139:3:101","nodeType":"YulIdentifier","src":"4139:3:101"},"nativeSrc":"4139:16:101","nodeType":"YulFunctionCall","src":"4139:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4193:9:101","nodeType":"YulIdentifier","src":"4193:9:101"},{"name":"offset","nativeSrc":"4204:6:101","nodeType":"YulIdentifier","src":"4204:6:101"}],"functionName":{"name":"add","nativeSrc":"4189:3:101","nodeType":"YulIdentifier","src":"4189:3:101"},"nativeSrc":"4189:22:101","nodeType":"YulFunctionCall","src":"4189:22:101"},{"name":"end","nativeSrc":"4213:3:101","nodeType":"YulIdentifier","src":"4213:3:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"4157:31:101","nodeType":"YulIdentifier","src":"4157:31:101"},"nativeSrc":"4157:60:101","nodeType":"YulFunctionCall","src":"4157:60:101"}],"functionName":{"name":"mstore","nativeSrc":"4132:6:101","nodeType":"YulIdentifier","src":"4132:6:101"},"nativeSrc":"4132:86:101","nodeType":"YulFunctionCall","src":"4132:86:101"},"nativeSrc":"4132:86:101","nodeType":"YulExpressionStatement","src":"4132:86:101"}]},{"nativeSrc":"4239:170:101","nodeType":"YulBlock","src":"4239:170:101","statements":[{"nativeSrc":"4282:17:101","nodeType":"YulVariableDeclaration","src":"4282:17:101","value":{"kind":"number","nativeSrc":"4296:3:101","nodeType":"YulLiteral","src":"4296:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"4286:6:101","nodeType":"YulTypedName","src":"4286:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4324:5:101","nodeType":"YulIdentifier","src":"4324:5:101"},{"kind":"number","nativeSrc":"4331:4:101","nodeType":"YulLiteral","src":"4331:4:101","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"4320:3:101","nodeType":"YulIdentifier","src":"4320:3:101"},"nativeSrc":"4320:16:101","nodeType":"YulFunctionCall","src":"4320:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4373:9:101","nodeType":"YulIdentifier","src":"4373:9:101"},{"name":"offset","nativeSrc":"4384:6:101","nodeType":"YulIdentifier","src":"4384:6:101"}],"functionName":{"name":"add","nativeSrc":"4369:3:101","nodeType":"YulIdentifier","src":"4369:3:101"},"nativeSrc":"4369:22:101","nodeType":"YulFunctionCall","src":"4369:22:101"},{"name":"end","nativeSrc":"4393:3:101","nodeType":"YulIdentifier","src":"4393:3:101"}],"functionName":{"name":"abi_decode_t_uint32_fromMemory","nativeSrc":"4338:30:101","nodeType":"YulIdentifier","src":"4338:30:101"},"nativeSrc":"4338:59:101","nodeType":"YulFunctionCall","src":"4338:59:101"}],"functionName":{"name":"mstore","nativeSrc":"4313:6:101","nodeType":"YulIdentifier","src":"4313:6:101"},"nativeSrc":"4313:85:101","nodeType":"YulFunctionCall","src":"4313:85:101"},"nativeSrc":"4313:85:101","nodeType":"YulExpressionStatement","src":"4313:85:101"}]},{"nativeSrc":"4419:175:101","nodeType":"YulBlock","src":"4419:175:101","statements":[{"nativeSrc":"4466:17:101","nodeType":"YulVariableDeclaration","src":"4466:17:101","value":{"kind":"number","nativeSrc":"4480:3:101","nodeType":"YulLiteral","src":"4480:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"4470:6:101","nodeType":"YulTypedName","src":"4470:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4508:5:101","nodeType":"YulIdentifier","src":"4508:5:101"},{"kind":"number","nativeSrc":"4515:4:101","nodeType":"YulLiteral","src":"4515:4:101","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"4504:3:101","nodeType":"YulIdentifier","src":"4504:3:101"},"nativeSrc":"4504:16:101","nodeType":"YulFunctionCall","src":"4504:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4558:9:101","nodeType":"YulIdentifier","src":"4558:9:101"},{"name":"offset","nativeSrc":"4569:6:101","nodeType":"YulIdentifier","src":"4569:6:101"}],"functionName":{"name":"add","nativeSrc":"4554:3:101","nodeType":"YulIdentifier","src":"4554:3:101"},"nativeSrc":"4554:22:101","nodeType":"YulFunctionCall","src":"4554:22:101"},{"name":"end","nativeSrc":"4578:3:101","nodeType":"YulIdentifier","src":"4578:3:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"4522:31:101","nodeType":"YulIdentifier","src":"4522:31:101"},"nativeSrc":"4522:60:101","nodeType":"YulFunctionCall","src":"4522:60:101"}],"functionName":{"name":"mstore","nativeSrc":"4497:6:101","nodeType":"YulIdentifier","src":"4497:6:101"},"nativeSrc":"4497:86:101","nodeType":"YulFunctionCall","src":"4497:86:101"},"nativeSrc":"4497:86:101","nodeType":"YulExpressionStatement","src":"4497:86:101"}]},{"nativeSrc":"4604:177:101","nodeType":"YulBlock","src":"4604:177:101","statements":[{"nativeSrc":"4651:17:101","nodeType":"YulVariableDeclaration","src":"4651:17:101","value":{"kind":"number","nativeSrc":"4665:3:101","nodeType":"YulLiteral","src":"4665:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"4655:6:101","nodeType":"YulTypedName","src":"4655:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4693:5:101","nodeType":"YulIdentifier","src":"4693:5:101"},{"kind":"number","nativeSrc":"4700:6:101","nodeType":"YulLiteral","src":"4700:6:101","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"4689:3:101","nodeType":"YulIdentifier","src":"4689:3:101"},"nativeSrc":"4689:18:101","nodeType":"YulFunctionCall","src":"4689:18:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4745:9:101","nodeType":"YulIdentifier","src":"4745:9:101"},{"name":"offset","nativeSrc":"4756:6:101","nodeType":"YulIdentifier","src":"4756:6:101"}],"functionName":{"name":"add","nativeSrc":"4741:3:101","nodeType":"YulIdentifier","src":"4741:3:101"},"nativeSrc":"4741:22:101","nodeType":"YulFunctionCall","src":"4741:22:101"},{"name":"end","nativeSrc":"4765:3:101","nodeType":"YulIdentifier","src":"4765:3:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"4709:31:101","nodeType":"YulIdentifier","src":"4709:31:101"},"nativeSrc":"4709:60:101","nodeType":"YulFunctionCall","src":"4709:60:101"}],"functionName":{"name":"mstore","nativeSrc":"4682:6:101","nodeType":"YulIdentifier","src":"4682:6:101"},"nativeSrc":"4682:88:101","nodeType":"YulFunctionCall","src":"4682:88:101"},"nativeSrc":"4682:88:101","nodeType":"YulExpressionStatement","src":"4682:88:101"}]},{"nativeSrc":"4791:191:101","nodeType":"YulBlock","src":"4791:191:101","statements":[{"nativeSrc":"4852:17:101","nodeType":"YulVariableDeclaration","src":"4852:17:101","value":{"kind":"number","nativeSrc":"4866:3:101","nodeType":"YulLiteral","src":"4866:3:101","type":"","value":"288"},"variables":[{"name":"offset","nativeSrc":"4856:6:101","nodeType":"YulTypedName","src":"4856:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4894:5:101","nodeType":"YulIdentifier","src":"4894:5:101"},{"kind":"number","nativeSrc":"4901:6:101","nodeType":"YulLiteral","src":"4901:6:101","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"4890:3:101","nodeType":"YulIdentifier","src":"4890:3:101"},"nativeSrc":"4890:18:101","nodeType":"YulFunctionCall","src":"4890:18:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4946:9:101","nodeType":"YulIdentifier","src":"4946:9:101"},{"name":"offset","nativeSrc":"4957:6:101","nodeType":"YulIdentifier","src":"4957:6:101"}],"functionName":{"name":"add","nativeSrc":"4942:3:101","nodeType":"YulIdentifier","src":"4942:3:101"},"nativeSrc":"4942:22:101","nodeType":"YulFunctionCall","src":"4942:22:101"},{"name":"end","nativeSrc":"4966:3:101","nodeType":"YulIdentifier","src":"4966:3:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"4910:31:101","nodeType":"YulIdentifier","src":"4910:31:101"},"nativeSrc":"4910:60:101","nodeType":"YulFunctionCall","src":"4910:60:101"}],"functionName":{"name":"mstore","nativeSrc":"4883:6:101","nodeType":"YulIdentifier","src":"4883:6:101"},"nativeSrc":"4883:88:101","nodeType":"YulFunctionCall","src":"4883:88:101"},"nativeSrc":"4883:88:101","nodeType":"YulExpressionStatement","src":"4883:88:101"}]},{"nativeSrc":"4992:185:101","nodeType":"YulBlock","src":"4992:185:101","statements":[{"nativeSrc":"5047:17:101","nodeType":"YulVariableDeclaration","src":"5047:17:101","value":{"kind":"number","nativeSrc":"5061:3:101","nodeType":"YulLiteral","src":"5061:3:101","type":"","value":"320"},"variables":[{"name":"offset","nativeSrc":"5051:6:101","nodeType":"YulTypedName","src":"5051:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5089:5:101","nodeType":"YulIdentifier","src":"5089:5:101"},{"kind":"number","nativeSrc":"5096:6:101","nodeType":"YulLiteral","src":"5096:6:101","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"5085:3:101","nodeType":"YulIdentifier","src":"5085:3:101"},"nativeSrc":"5085:18:101","nodeType":"YulFunctionCall","src":"5085:18:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5141:9:101","nodeType":"YulIdentifier","src":"5141:9:101"},{"name":"offset","nativeSrc":"5152:6:101","nodeType":"YulIdentifier","src":"5152:6:101"}],"functionName":{"name":"add","nativeSrc":"5137:3:101","nodeType":"YulIdentifier","src":"5137:3:101"},"nativeSrc":"5137:22:101","nodeType":"YulFunctionCall","src":"5137:22:101"},{"name":"end","nativeSrc":"5161:3:101","nodeType":"YulIdentifier","src":"5161:3:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"5105:31:101","nodeType":"YulIdentifier","src":"5105:31:101"},"nativeSrc":"5105:60:101","nodeType":"YulFunctionCall","src":"5105:60:101"}],"functionName":{"name":"mstore","nativeSrc":"5078:6:101","nodeType":"YulIdentifier","src":"5078:6:101"},"nativeSrc":"5078:88:101","nodeType":"YulFunctionCall","src":"5078:88:101"},"nativeSrc":"5078:88:101","nodeType":"YulExpressionStatement","src":"5078:88:101"}]},{"nativeSrc":"5187:181:101","nodeType":"YulBlock","src":"5187:181:101","statements":[{"nativeSrc":"5238:17:101","nodeType":"YulVariableDeclaration","src":"5238:17:101","value":{"kind":"number","nativeSrc":"5252:3:101","nodeType":"YulLiteral","src":"5252:3:101","type":"","value":"352"},"variables":[{"name":"offset","nativeSrc":"5242:6:101","nodeType":"YulTypedName","src":"5242:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5280:5:101","nodeType":"YulIdentifier","src":"5280:5:101"},{"kind":"number","nativeSrc":"5287:6:101","nodeType":"YulLiteral","src":"5287:6:101","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"5276:3:101","nodeType":"YulIdentifier","src":"5276:3:101"},"nativeSrc":"5276:18:101","nodeType":"YulFunctionCall","src":"5276:18:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5332:9:101","nodeType":"YulIdentifier","src":"5332:9:101"},{"name":"offset","nativeSrc":"5343:6:101","nodeType":"YulIdentifier","src":"5343:6:101"}],"functionName":{"name":"add","nativeSrc":"5328:3:101","nodeType":"YulIdentifier","src":"5328:3:101"},"nativeSrc":"5328:22:101","nodeType":"YulFunctionCall","src":"5328:22:101"},{"name":"end","nativeSrc":"5352:3:101","nodeType":"YulIdentifier","src":"5352:3:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"5296:31:101","nodeType":"YulIdentifier","src":"5296:31:101"},"nativeSrc":"5296:60:101","nodeType":"YulFunctionCall","src":"5296:60:101"}],"functionName":{"name":"mstore","nativeSrc":"5269:6:101","nodeType":"YulIdentifier","src":"5269:6:101"},"nativeSrc":"5269:88:101","nodeType":"YulFunctionCall","src":"5269:88:101"},"nativeSrc":"5269:88:101","nodeType":"YulExpressionStatement","src":"5269:88:101"}]},{"nativeSrc":"5378:172:101","nodeType":"YulBlock","src":"5378:172:101","statements":[{"nativeSrc":"5420:17:101","nodeType":"YulVariableDeclaration","src":"5420:17:101","value":{"kind":"number","nativeSrc":"5434:3:101","nodeType":"YulLiteral","src":"5434:3:101","type":"","value":"384"},"variables":[{"name":"offset","nativeSrc":"5424:6:101","nodeType":"YulTypedName","src":"5424:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5462:5:101","nodeType":"YulIdentifier","src":"5462:5:101"},{"kind":"number","nativeSrc":"5469:6:101","nodeType":"YulLiteral","src":"5469:6:101","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"5458:3:101","nodeType":"YulIdentifier","src":"5458:3:101"},"nativeSrc":"5458:18:101","nodeType":"YulFunctionCall","src":"5458:18:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5514:9:101","nodeType":"YulIdentifier","src":"5514:9:101"},{"name":"offset","nativeSrc":"5525:6:101","nodeType":"YulIdentifier","src":"5525:6:101"}],"functionName":{"name":"add","nativeSrc":"5510:3:101","nodeType":"YulIdentifier","src":"5510:3:101"},"nativeSrc":"5510:22:101","nodeType":"YulFunctionCall","src":"5510:22:101"},{"name":"end","nativeSrc":"5534:3:101","nodeType":"YulIdentifier","src":"5534:3:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"5478:31:101","nodeType":"YulIdentifier","src":"5478:31:101"},"nativeSrc":"5478:60:101","nodeType":"YulFunctionCall","src":"5478:60:101"}],"functionName":{"name":"mstore","nativeSrc":"5451:6:101","nodeType":"YulIdentifier","src":"5451:6:101"},"nativeSrc":"5451:88:101","nodeType":"YulFunctionCall","src":"5451:88:101"},"nativeSrc":"5451:88:101","nodeType":"YulExpressionStatement","src":"5451:88:101"}]}]},"name":"abi_decode_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory","nativeSrc":"2877:2680:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2953:9:101","nodeType":"YulTypedName","src":"2953:9:101","type":""},{"name":"end","nativeSrc":"2964:3:101","nodeType":"YulTypedName","src":"2964:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2972:5:101","nodeType":"YulTypedName","src":"2972:5:101","type":""}],"src":"2877:2680:101"},{"body":{"nativeSrc":"5675:310:101","nodeType":"YulBlock","src":"5675:310:101","statements":[{"body":{"nativeSrc":"5722:83:101","nodeType":"YulBlock","src":"5722:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5724:77:101","nodeType":"YulIdentifier","src":"5724:77:101"},"nativeSrc":"5724:79:101","nodeType":"YulFunctionCall","src":"5724:79:101"},"nativeSrc":"5724:79:101","nodeType":"YulExpressionStatement","src":"5724:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5696:7:101","nodeType":"YulIdentifier","src":"5696:7:101"},{"name":"headStart","nativeSrc":"5705:9:101","nodeType":"YulIdentifier","src":"5705:9:101"}],"functionName":{"name":"sub","nativeSrc":"5692:3:101","nodeType":"YulIdentifier","src":"5692:3:101"},"nativeSrc":"5692:23:101","nodeType":"YulFunctionCall","src":"5692:23:101"},{"kind":"number","nativeSrc":"5717:3:101","nodeType":"YulLiteral","src":"5717:3:101","type":"","value":"416"}],"functionName":{"name":"slt","nativeSrc":"5688:3:101","nodeType":"YulIdentifier","src":"5688:3:101"},"nativeSrc":"5688:33:101","nodeType":"YulFunctionCall","src":"5688:33:101"},"nativeSrc":"5685:120:101","nodeType":"YulIf","src":"5685:120:101"},{"nativeSrc":"5815:163:101","nodeType":"YulBlock","src":"5815:163:101","statements":[{"nativeSrc":"5830:15:101","nodeType":"YulVariableDeclaration","src":"5830:15:101","value":{"kind":"number","nativeSrc":"5844:1:101","nodeType":"YulLiteral","src":"5844:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5834:6:101","nodeType":"YulTypedName","src":"5834:6:101","type":""}]},{"nativeSrc":"5859:109:101","nodeType":"YulAssignment","src":"5859:109:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5940:9:101","nodeType":"YulIdentifier","src":"5940:9:101"},{"name":"offset","nativeSrc":"5951:6:101","nodeType":"YulIdentifier","src":"5951:6:101"}],"functionName":{"name":"add","nativeSrc":"5936:3:101","nodeType":"YulIdentifier","src":"5936:3:101"},"nativeSrc":"5936:22:101","nodeType":"YulFunctionCall","src":"5936:22:101"},{"name":"dataEnd","nativeSrc":"5960:7:101","nodeType":"YulIdentifier","src":"5960:7:101"}],"functionName":{"name":"abi_decode_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory","nativeSrc":"5869:66:101","nodeType":"YulIdentifier","src":"5869:66:101"},"nativeSrc":"5869:99:101","nodeType":"YulFunctionCall","src":"5869:99:101"},"variableNames":[{"name":"value0","nativeSrc":"5859:6:101","nodeType":"YulIdentifier","src":"5859:6:101"}]}]}]},"name":"abi_decode_tuple_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory","nativeSrc":"5563:422:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5645:9:101","nodeType":"YulTypedName","src":"5645:9:101","type":""},{"name":"dataEnd","nativeSrc":"5656:7:101","nodeType":"YulTypedName","src":"5656:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5668:6:101","nodeType":"YulTypedName","src":"5668:6:101","type":""}],"src":"5563:422:101"},{"body":{"nativeSrc":"6019:152:101","nodeType":"YulBlock","src":"6019:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6036:1:101","nodeType":"YulLiteral","src":"6036:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6039:77:101","nodeType":"YulLiteral","src":"6039:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6029:6:101","nodeType":"YulIdentifier","src":"6029:6:101"},"nativeSrc":"6029:88:101","nodeType":"YulFunctionCall","src":"6029:88:101"},"nativeSrc":"6029:88:101","nodeType":"YulExpressionStatement","src":"6029:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6133:1:101","nodeType":"YulLiteral","src":"6133:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6136:4:101","nodeType":"YulLiteral","src":"6136:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"6126:6:101","nodeType":"YulIdentifier","src":"6126:6:101"},"nativeSrc":"6126:15:101","nodeType":"YulFunctionCall","src":"6126:15:101"},"nativeSrc":"6126:15:101","nodeType":"YulExpressionStatement","src":"6126:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6157:1:101","nodeType":"YulLiteral","src":"6157:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6160:4:101","nodeType":"YulLiteral","src":"6160:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6150:6:101","nodeType":"YulIdentifier","src":"6150:6:101"},"nativeSrc":"6150:15:101","nodeType":"YulFunctionCall","src":"6150:15:101"},"nativeSrc":"6150:15:101","nodeType":"YulExpressionStatement","src":"6150:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5991:180:101","nodeType":"YulFunctionDefinition","src":"5991:180:101"},{"body":{"nativeSrc":"6205:152:101","nodeType":"YulBlock","src":"6205:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6222:1:101","nodeType":"YulLiteral","src":"6222:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6225:77:101","nodeType":"YulLiteral","src":"6225:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6215:6:101","nodeType":"YulIdentifier","src":"6215:6:101"},"nativeSrc":"6215:88:101","nodeType":"YulFunctionCall","src":"6215:88:101"},"nativeSrc":"6215:88:101","nodeType":"YulExpressionStatement","src":"6215:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6319:1:101","nodeType":"YulLiteral","src":"6319:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6322:4:101","nodeType":"YulLiteral","src":"6322:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6312:6:101","nodeType":"YulIdentifier","src":"6312:6:101"},"nativeSrc":"6312:15:101","nodeType":"YulFunctionCall","src":"6312:15:101"},"nativeSrc":"6312:15:101","nodeType":"YulExpressionStatement","src":"6312:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6343:1:101","nodeType":"YulLiteral","src":"6343:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6346:4:101","nodeType":"YulLiteral","src":"6346:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6336:6:101","nodeType":"YulIdentifier","src":"6336:6:101"},"nativeSrc":"6336:15:101","nodeType":"YulFunctionCall","src":"6336:15:101"},"nativeSrc":"6336:15:101","nodeType":"YulExpressionStatement","src":"6336:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6177:180:101","nodeType":"YulFunctionDefinition","src":"6177:180:101"},{"body":{"nativeSrc":"6405:143:101","nodeType":"YulBlock","src":"6405:143:101","statements":[{"nativeSrc":"6415:25:101","nodeType":"YulAssignment","src":"6415:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6438:1:101","nodeType":"YulIdentifier","src":"6438:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6420:17:101","nodeType":"YulIdentifier","src":"6420:17:101"},"nativeSrc":"6420:20:101","nodeType":"YulFunctionCall","src":"6420:20:101"},"variableNames":[{"name":"x","nativeSrc":"6415:1:101","nodeType":"YulIdentifier","src":"6415:1:101"}]},{"nativeSrc":"6449:25:101","nodeType":"YulAssignment","src":"6449:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6472:1:101","nodeType":"YulIdentifier","src":"6472:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6454:17:101","nodeType":"YulIdentifier","src":"6454:17:101"},"nativeSrc":"6454:20:101","nodeType":"YulFunctionCall","src":"6454:20:101"},"variableNames":[{"name":"y","nativeSrc":"6449:1:101","nodeType":"YulIdentifier","src":"6449:1:101"}]},{"body":{"nativeSrc":"6496:22:101","nodeType":"YulBlock","src":"6496:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6498:16:101","nodeType":"YulIdentifier","src":"6498:16:101"},"nativeSrc":"6498:18:101","nodeType":"YulFunctionCall","src":"6498:18:101"},"nativeSrc":"6498:18:101","nodeType":"YulExpressionStatement","src":"6498:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6493:1:101","nodeType":"YulIdentifier","src":"6493:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6486:6:101","nodeType":"YulIdentifier","src":"6486:6:101"},"nativeSrc":"6486:9:101","nodeType":"YulFunctionCall","src":"6486:9:101"},"nativeSrc":"6483:35:101","nodeType":"YulIf","src":"6483:35:101"},{"nativeSrc":"6528:14:101","nodeType":"YulAssignment","src":"6528:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6537:1:101","nodeType":"YulIdentifier","src":"6537:1:101"},{"name":"y","nativeSrc":"6540:1:101","nodeType":"YulIdentifier","src":"6540:1:101"}],"functionName":{"name":"div","nativeSrc":"6533:3:101","nodeType":"YulIdentifier","src":"6533:3:101"},"nativeSrc":"6533:9:101","nodeType":"YulFunctionCall","src":"6533:9:101"},"variableNames":[{"name":"r","nativeSrc":"6528:1:101","nodeType":"YulIdentifier","src":"6528:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6363:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6394:1:101","nodeType":"YulTypedName","src":"6394:1:101","type":""},{"name":"y","nativeSrc":"6397:1:101","nodeType":"YulTypedName","src":"6397:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6403:1:101","nodeType":"YulTypedName","src":"6403:1:101","type":""}],"src":"6363:185:101"},{"body":{"nativeSrc":"6582:152:101","nodeType":"YulBlock","src":"6582:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6599:1:101","nodeType":"YulLiteral","src":"6599:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6602:77:101","nodeType":"YulLiteral","src":"6602:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6592:6:101","nodeType":"YulIdentifier","src":"6592:6:101"},"nativeSrc":"6592:88:101","nodeType":"YulFunctionCall","src":"6592:88:101"},"nativeSrc":"6592:88:101","nodeType":"YulExpressionStatement","src":"6592:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6696:1:101","nodeType":"YulLiteral","src":"6696:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6699:4:101","nodeType":"YulLiteral","src":"6699:4:101","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"6689:6:101","nodeType":"YulIdentifier","src":"6689:6:101"},"nativeSrc":"6689:15:101","nodeType":"YulFunctionCall","src":"6689:15:101"},"nativeSrc":"6689:15:101","nodeType":"YulExpressionStatement","src":"6689:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6720:1:101","nodeType":"YulLiteral","src":"6720:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6723:4:101","nodeType":"YulLiteral","src":"6723:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6713:6:101","nodeType":"YulIdentifier","src":"6713:6:101"},"nativeSrc":"6713:15:101","nodeType":"YulFunctionCall","src":"6713:15:101"},"nativeSrc":"6713:15:101","nodeType":"YulExpressionStatement","src":"6713:15:101"}]},"name":"panic_error_0x21","nativeSrc":"6554:180:101","nodeType":"YulFunctionDefinition","src":"6554:180:101"},{"body":{"nativeSrc":"6783:43:101","nodeType":"YulBlock","src":"6783:43:101","statements":[{"nativeSrc":"6793:27:101","nodeType":"YulAssignment","src":"6793:27:101","value":{"arguments":[{"name":"value","nativeSrc":"6808:5:101","nodeType":"YulIdentifier","src":"6808:5:101"},{"kind":"number","nativeSrc":"6815:4:101","nodeType":"YulLiteral","src":"6815:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"6804:3:101","nodeType":"YulIdentifier","src":"6804:3:101"},"nativeSrc":"6804:16:101","nodeType":"YulFunctionCall","src":"6804:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6793:7:101","nodeType":"YulIdentifier","src":"6793:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"6740:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6765:5:101","nodeType":"YulTypedName","src":"6765:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6775:7:101","nodeType":"YulTypedName","src":"6775:7:101","type":""}],"src":"6740:86:101"},{"body":{"nativeSrc":"6873:77:101","nodeType":"YulBlock","src":"6873:77:101","statements":[{"body":{"nativeSrc":"6928:16:101","nodeType":"YulBlock","src":"6928:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6937:1:101","nodeType":"YulLiteral","src":"6937:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6940:1:101","nodeType":"YulLiteral","src":"6940:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6930:6:101","nodeType":"YulIdentifier","src":"6930:6:101"},"nativeSrc":"6930:12:101","nodeType":"YulFunctionCall","src":"6930:12:101"},"nativeSrc":"6930:12:101","nodeType":"YulExpressionStatement","src":"6930:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6896:5:101","nodeType":"YulIdentifier","src":"6896:5:101"},{"arguments":[{"name":"value","nativeSrc":"6919:5:101","nodeType":"YulIdentifier","src":"6919:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"6903:15:101","nodeType":"YulIdentifier","src":"6903:15:101"},"nativeSrc":"6903:22:101","nodeType":"YulFunctionCall","src":"6903:22:101"}],"functionName":{"name":"eq","nativeSrc":"6893:2:101","nodeType":"YulIdentifier","src":"6893:2:101"},"nativeSrc":"6893:33:101","nodeType":"YulFunctionCall","src":"6893:33:101"}],"functionName":{"name":"iszero","nativeSrc":"6886:6:101","nodeType":"YulIdentifier","src":"6886:6:101"},"nativeSrc":"6886:41:101","nodeType":"YulFunctionCall","src":"6886:41:101"},"nativeSrc":"6883:61:101","nodeType":"YulIf","src":"6883:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"6832:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6866:5:101","nodeType":"YulTypedName","src":"6866:5:101","type":""}],"src":"6832:118:101"},{"body":{"nativeSrc":"7017:78:101","nodeType":"YulBlock","src":"7017:78:101","statements":[{"nativeSrc":"7027:22:101","nodeType":"YulAssignment","src":"7027:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7042:6:101","nodeType":"YulIdentifier","src":"7042:6:101"}],"functionName":{"name":"mload","nativeSrc":"7036:5:101","nodeType":"YulIdentifier","src":"7036:5:101"},"nativeSrc":"7036:13:101","nodeType":"YulFunctionCall","src":"7036:13:101"},"variableNames":[{"name":"value","nativeSrc":"7027:5:101","nodeType":"YulIdentifier","src":"7027:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7083:5:101","nodeType":"YulIdentifier","src":"7083:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7058:24:101","nodeType":"YulIdentifier","src":"7058:24:101"},"nativeSrc":"7058:31:101","nodeType":"YulFunctionCall","src":"7058:31:101"},"nativeSrc":"7058:31:101","nodeType":"YulExpressionStatement","src":"7058:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"6956:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6995:6:101","nodeType":"YulTypedName","src":"6995:6:101","type":""},{"name":"end","nativeSrc":"7003:3:101","nodeType":"YulTypedName","src":"7003:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7011:5:101","nodeType":"YulTypedName","src":"7011:5:101","type":""}],"src":"6956:139:101"},{"body":{"nativeSrc":"7176:272:101","nodeType":"YulBlock","src":"7176:272:101","statements":[{"body":{"nativeSrc":"7222:83:101","nodeType":"YulBlock","src":"7222:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7224:77:101","nodeType":"YulIdentifier","src":"7224:77:101"},"nativeSrc":"7224:79:101","nodeType":"YulFunctionCall","src":"7224:79:101"},"nativeSrc":"7224:79:101","nodeType":"YulExpressionStatement","src":"7224:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7197:7:101","nodeType":"YulIdentifier","src":"7197:7:101"},{"name":"headStart","nativeSrc":"7206:9:101","nodeType":"YulIdentifier","src":"7206:9:101"}],"functionName":{"name":"sub","nativeSrc":"7193:3:101","nodeType":"YulIdentifier","src":"7193:3:101"},"nativeSrc":"7193:23:101","nodeType":"YulFunctionCall","src":"7193:23:101"},{"kind":"number","nativeSrc":"7218:2:101","nodeType":"YulLiteral","src":"7218:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7189:3:101","nodeType":"YulIdentifier","src":"7189:3:101"},"nativeSrc":"7189:32:101","nodeType":"YulFunctionCall","src":"7189:32:101"},"nativeSrc":"7186:119:101","nodeType":"YulIf","src":"7186:119:101"},{"nativeSrc":"7315:126:101","nodeType":"YulBlock","src":"7315:126:101","statements":[{"nativeSrc":"7330:15:101","nodeType":"YulVariableDeclaration","src":"7330:15:101","value":{"kind":"number","nativeSrc":"7344:1:101","nodeType":"YulLiteral","src":"7344:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7334:6:101","nodeType":"YulTypedName","src":"7334:6:101","type":""}]},{"nativeSrc":"7359:72:101","nodeType":"YulAssignment","src":"7359:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7403:9:101","nodeType":"YulIdentifier","src":"7403:9:101"},{"name":"offset","nativeSrc":"7414:6:101","nodeType":"YulIdentifier","src":"7414:6:101"}],"functionName":{"name":"add","nativeSrc":"7399:3:101","nodeType":"YulIdentifier","src":"7399:3:101"},"nativeSrc":"7399:22:101","nodeType":"YulFunctionCall","src":"7399:22:101"},{"name":"dataEnd","nativeSrc":"7423:7:101","nodeType":"YulIdentifier","src":"7423:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7369:29:101","nodeType":"YulIdentifier","src":"7369:29:101"},"nativeSrc":"7369:62:101","nodeType":"YulFunctionCall","src":"7369:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7359:6:101","nodeType":"YulIdentifier","src":"7359:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7101:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7146:9:101","nodeType":"YulTypedName","src":"7146:9:101","type":""},{"name":"dataEnd","nativeSrc":"7157:7:101","nodeType":"YulTypedName","src":"7157:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7169:6:101","nodeType":"YulTypedName","src":"7169:6:101","type":""}],"src":"7101:347:101"},{"body":{"nativeSrc":"7519:53:101","nodeType":"YulBlock","src":"7519:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7536:3:101","nodeType":"YulIdentifier","src":"7536:3:101"},{"arguments":[{"name":"value","nativeSrc":"7559:5:101","nodeType":"YulIdentifier","src":"7559:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7541:17:101","nodeType":"YulIdentifier","src":"7541:17:101"},"nativeSrc":"7541:24:101","nodeType":"YulFunctionCall","src":"7541:24:101"}],"functionName":{"name":"mstore","nativeSrc":"7529:6:101","nodeType":"YulIdentifier","src":"7529:6:101"},"nativeSrc":"7529:37:101","nodeType":"YulFunctionCall","src":"7529:37:101"},"nativeSrc":"7529:37:101","nodeType":"YulExpressionStatement","src":"7529:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7454:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7507:5:101","nodeType":"YulTypedName","src":"7507:5:101","type":""},{"name":"pos","nativeSrc":"7514:3:101","nodeType":"YulTypedName","src":"7514:3:101","type":""}],"src":"7454:118:101"},{"body":{"nativeSrc":"7641:52:101","nodeType":"YulBlock","src":"7641:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7658:3:101","nodeType":"YulIdentifier","src":"7658:3:101"},{"arguments":[{"name":"value","nativeSrc":"7680:5:101","nodeType":"YulIdentifier","src":"7680:5:101"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"7663:16:101","nodeType":"YulIdentifier","src":"7663:16:101"},"nativeSrc":"7663:23:101","nodeType":"YulFunctionCall","src":"7663:23:101"}],"functionName":{"name":"mstore","nativeSrc":"7651:6:101","nodeType":"YulIdentifier","src":"7651:6:101"},"nativeSrc":"7651:36:101","nodeType":"YulFunctionCall","src":"7651:36:101"},"nativeSrc":"7651:36:101","nodeType":"YulExpressionStatement","src":"7651:36:101"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"7578:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7629:5:101","nodeType":"YulTypedName","src":"7629:5:101","type":""},{"name":"pos","nativeSrc":"7636:3:101","nodeType":"YulTypedName","src":"7636:3:101","type":""}],"src":"7578:115:101"},{"body":{"nativeSrc":"7823:204:101","nodeType":"YulBlock","src":"7823:204:101","statements":[{"nativeSrc":"7833:26:101","nodeType":"YulAssignment","src":"7833:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7845:9:101","nodeType":"YulIdentifier","src":"7845:9:101"},{"kind":"number","nativeSrc":"7856:2:101","nodeType":"YulLiteral","src":"7856:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7841:3:101","nodeType":"YulIdentifier","src":"7841:3:101"},"nativeSrc":"7841:18:101","nodeType":"YulFunctionCall","src":"7841:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7833:4:101","nodeType":"YulIdentifier","src":"7833:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7913:6:101","nodeType":"YulIdentifier","src":"7913:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"7926:9:101","nodeType":"YulIdentifier","src":"7926:9:101"},{"kind":"number","nativeSrc":"7937:1:101","nodeType":"YulLiteral","src":"7937:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7922:3:101","nodeType":"YulIdentifier","src":"7922:3:101"},"nativeSrc":"7922:17:101","nodeType":"YulFunctionCall","src":"7922:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7869:43:101","nodeType":"YulIdentifier","src":"7869:43:101"},"nativeSrc":"7869:71:101","nodeType":"YulFunctionCall","src":"7869:71:101"},"nativeSrc":"7869:71:101","nodeType":"YulExpressionStatement","src":"7869:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7992:6:101","nodeType":"YulIdentifier","src":"7992:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8005:9:101","nodeType":"YulIdentifier","src":"8005:9:101"},{"kind":"number","nativeSrc":"8016:2:101","nodeType":"YulLiteral","src":"8016:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8001:3:101","nodeType":"YulIdentifier","src":"8001:3:101"},"nativeSrc":"8001:18:101","nodeType":"YulFunctionCall","src":"8001:18:101"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"7950:41:101","nodeType":"YulIdentifier","src":"7950:41:101"},"nativeSrc":"7950:70:101","nodeType":"YulFunctionCall","src":"7950:70:101"},"nativeSrc":"7950:70:101","nodeType":"YulExpressionStatement","src":"7950:70:101"}]},"name":"abi_encode_tuple_t_address_t_uint32__to_t_address_t_uint32__fromStack_reversed","nativeSrc":"7699:328:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7787:9:101","nodeType":"YulTypedName","src":"7787:9:101","type":""},{"name":"value1","nativeSrc":"7799:6:101","nodeType":"YulTypedName","src":"7799:6:101","type":""},{"name":"value0","nativeSrc":"7807:6:101","nodeType":"YulTypedName","src":"7807:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7818:4:101","nodeType":"YulTypedName","src":"7818:4:101","type":""}],"src":"7699:328:101"},{"body":{"nativeSrc":"8075:48:101","nodeType":"YulBlock","src":"8075:48:101","statements":[{"nativeSrc":"8085:32:101","nodeType":"YulAssignment","src":"8085:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8110:5:101","nodeType":"YulIdentifier","src":"8110:5:101"}],"functionName":{"name":"iszero","nativeSrc":"8103:6:101","nodeType":"YulIdentifier","src":"8103:6:101"},"nativeSrc":"8103:13:101","nodeType":"YulFunctionCall","src":"8103:13:101"}],"functionName":{"name":"iszero","nativeSrc":"8096:6:101","nodeType":"YulIdentifier","src":"8096:6:101"},"nativeSrc":"8096:21:101","nodeType":"YulFunctionCall","src":"8096:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"8085:7:101","nodeType":"YulIdentifier","src":"8085:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"8033:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8057:5:101","nodeType":"YulTypedName","src":"8057:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8067:7:101","nodeType":"YulTypedName","src":"8067:7:101","type":""}],"src":"8033:90:101"},{"body":{"nativeSrc":"8169:76:101","nodeType":"YulBlock","src":"8169:76:101","statements":[{"body":{"nativeSrc":"8223:16:101","nodeType":"YulBlock","src":"8223:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8232:1:101","nodeType":"YulLiteral","src":"8232:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"8235:1:101","nodeType":"YulLiteral","src":"8235:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8225:6:101","nodeType":"YulIdentifier","src":"8225:6:101"},"nativeSrc":"8225:12:101","nodeType":"YulFunctionCall","src":"8225:12:101"},"nativeSrc":"8225:12:101","nodeType":"YulExpressionStatement","src":"8225:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8192:5:101","nodeType":"YulIdentifier","src":"8192:5:101"},{"arguments":[{"name":"value","nativeSrc":"8214:5:101","nodeType":"YulIdentifier","src":"8214:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"8199:14:101","nodeType":"YulIdentifier","src":"8199:14:101"},"nativeSrc":"8199:21:101","nodeType":"YulFunctionCall","src":"8199:21:101"}],"functionName":{"name":"eq","nativeSrc":"8189:2:101","nodeType":"YulIdentifier","src":"8189:2:101"},"nativeSrc":"8189:32:101","nodeType":"YulFunctionCall","src":"8189:32:101"}],"functionName":{"name":"iszero","nativeSrc":"8182:6:101","nodeType":"YulIdentifier","src":"8182:6:101"},"nativeSrc":"8182:40:101","nodeType":"YulFunctionCall","src":"8182:40:101"},"nativeSrc":"8179:60:101","nodeType":"YulIf","src":"8179:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"8129:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8162:5:101","nodeType":"YulTypedName","src":"8162:5:101","type":""}],"src":"8129:116:101"},{"body":{"nativeSrc":"8311:77:101","nodeType":"YulBlock","src":"8311:77:101","statements":[{"nativeSrc":"8321:22:101","nodeType":"YulAssignment","src":"8321:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"8336:6:101","nodeType":"YulIdentifier","src":"8336:6:101"}],"functionName":{"name":"mload","nativeSrc":"8330:5:101","nodeType":"YulIdentifier","src":"8330:5:101"},"nativeSrc":"8330:13:101","nodeType":"YulFunctionCall","src":"8330:13:101"},"variableNames":[{"name":"value","nativeSrc":"8321:5:101","nodeType":"YulIdentifier","src":"8321:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8376:5:101","nodeType":"YulIdentifier","src":"8376:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"8352:23:101","nodeType":"YulIdentifier","src":"8352:23:101"},"nativeSrc":"8352:30:101","nodeType":"YulFunctionCall","src":"8352:30:101"},"nativeSrc":"8352:30:101","nodeType":"YulExpressionStatement","src":"8352:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"8251:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8289:6:101","nodeType":"YulTypedName","src":"8289:6:101","type":""},{"name":"end","nativeSrc":"8297:3:101","nodeType":"YulTypedName","src":"8297:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8305:5:101","nodeType":"YulTypedName","src":"8305:5:101","type":""}],"src":"8251:137:101"},{"body":{"nativeSrc":"8438:45:101","nodeType":"YulBlock","src":"8438:45:101","statements":[{"nativeSrc":"8448:29:101","nodeType":"YulAssignment","src":"8448:29:101","value":{"arguments":[{"name":"value","nativeSrc":"8463:5:101","nodeType":"YulIdentifier","src":"8463:5:101"},{"kind":"number","nativeSrc":"8470:6:101","nodeType":"YulLiteral","src":"8470:6:101","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"8459:3:101","nodeType":"YulIdentifier","src":"8459:3:101"},"nativeSrc":"8459:18:101","nodeType":"YulFunctionCall","src":"8459:18:101"},"variableNames":[{"name":"cleaned","nativeSrc":"8448:7:101","nodeType":"YulIdentifier","src":"8448:7:101"}]}]},"name":"cleanup_t_uint16","nativeSrc":"8394:89:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8420:5:101","nodeType":"YulTypedName","src":"8420:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8430:7:101","nodeType":"YulTypedName","src":"8430:7:101","type":""}],"src":"8394:89:101"},{"body":{"nativeSrc":"8531:78:101","nodeType":"YulBlock","src":"8531:78:101","statements":[{"body":{"nativeSrc":"8587:16:101","nodeType":"YulBlock","src":"8587:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8596:1:101","nodeType":"YulLiteral","src":"8596:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"8599:1:101","nodeType":"YulLiteral","src":"8599:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8589:6:101","nodeType":"YulIdentifier","src":"8589:6:101"},"nativeSrc":"8589:12:101","nodeType":"YulFunctionCall","src":"8589:12:101"},"nativeSrc":"8589:12:101","nodeType":"YulExpressionStatement","src":"8589:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8554:5:101","nodeType":"YulIdentifier","src":"8554:5:101"},{"arguments":[{"name":"value","nativeSrc":"8578:5:101","nodeType":"YulIdentifier","src":"8578:5:101"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"8561:16:101","nodeType":"YulIdentifier","src":"8561:16:101"},"nativeSrc":"8561:23:101","nodeType":"YulFunctionCall","src":"8561:23:101"}],"functionName":{"name":"eq","nativeSrc":"8551:2:101","nodeType":"YulIdentifier","src":"8551:2:101"},"nativeSrc":"8551:34:101","nodeType":"YulFunctionCall","src":"8551:34:101"}],"functionName":{"name":"iszero","nativeSrc":"8544:6:101","nodeType":"YulIdentifier","src":"8544:6:101"},"nativeSrc":"8544:42:101","nodeType":"YulFunctionCall","src":"8544:42:101"},"nativeSrc":"8541:62:101","nodeType":"YulIf","src":"8541:62:101"}]},"name":"validator_revert_t_uint16","nativeSrc":"8489:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8524:5:101","nodeType":"YulTypedName","src":"8524:5:101","type":""}],"src":"8489:120:101"},{"body":{"nativeSrc":"8677:79:101","nodeType":"YulBlock","src":"8677:79:101","statements":[{"nativeSrc":"8687:22:101","nodeType":"YulAssignment","src":"8687:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"8702:6:101","nodeType":"YulIdentifier","src":"8702:6:101"}],"functionName":{"name":"mload","nativeSrc":"8696:5:101","nodeType":"YulIdentifier","src":"8696:5:101"},"nativeSrc":"8696:13:101","nodeType":"YulFunctionCall","src":"8696:13:101"},"variableNames":[{"name":"value","nativeSrc":"8687:5:101","nodeType":"YulIdentifier","src":"8687:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8744:5:101","nodeType":"YulIdentifier","src":"8744:5:101"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"8718:25:101","nodeType":"YulIdentifier","src":"8718:25:101"},"nativeSrc":"8718:32:101","nodeType":"YulFunctionCall","src":"8718:32:101"},"nativeSrc":"8718:32:101","nodeType":"YulExpressionStatement","src":"8718:32:101"}]},"name":"abi_decode_t_uint16_fromMemory","nativeSrc":"8615:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8655:6:101","nodeType":"YulTypedName","src":"8655:6:101","type":""},{"name":"end","nativeSrc":"8663:3:101","nodeType":"YulTypedName","src":"8663:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8671:5:101","nodeType":"YulTypedName","src":"8671:5:101","type":""}],"src":"8615:141:101"},{"body":{"nativeSrc":"8866:545:101","nodeType":"YulBlock","src":"8866:545:101","statements":[{"body":{"nativeSrc":"8912:83:101","nodeType":"YulBlock","src":"8912:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8914:77:101","nodeType":"YulIdentifier","src":"8914:77:101"},"nativeSrc":"8914:79:101","nodeType":"YulFunctionCall","src":"8914:79:101"},"nativeSrc":"8914:79:101","nodeType":"YulExpressionStatement","src":"8914:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8887:7:101","nodeType":"YulIdentifier","src":"8887:7:101"},{"name":"headStart","nativeSrc":"8896:9:101","nodeType":"YulIdentifier","src":"8896:9:101"}],"functionName":{"name":"sub","nativeSrc":"8883:3:101","nodeType":"YulIdentifier","src":"8883:3:101"},"nativeSrc":"8883:23:101","nodeType":"YulFunctionCall","src":"8883:23:101"},{"kind":"number","nativeSrc":"8908:2:101","nodeType":"YulLiteral","src":"8908:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8879:3:101","nodeType":"YulIdentifier","src":"8879:3:101"},"nativeSrc":"8879:32:101","nodeType":"YulFunctionCall","src":"8879:32:101"},"nativeSrc":"8876:119:101","nodeType":"YulIf","src":"8876:119:101"},{"nativeSrc":"9005:125:101","nodeType":"YulBlock","src":"9005:125:101","statements":[{"nativeSrc":"9020:15:101","nodeType":"YulVariableDeclaration","src":"9020:15:101","value":{"kind":"number","nativeSrc":"9034:1:101","nodeType":"YulLiteral","src":"9034:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9024:6:101","nodeType":"YulTypedName","src":"9024:6:101","type":""}]},{"nativeSrc":"9049:71:101","nodeType":"YulAssignment","src":"9049:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9092:9:101","nodeType":"YulIdentifier","src":"9092:9:101"},{"name":"offset","nativeSrc":"9103:6:101","nodeType":"YulIdentifier","src":"9103:6:101"}],"functionName":{"name":"add","nativeSrc":"9088:3:101","nodeType":"YulIdentifier","src":"9088:3:101"},"nativeSrc":"9088:22:101","nodeType":"YulFunctionCall","src":"9088:22:101"},{"name":"dataEnd","nativeSrc":"9112:7:101","nodeType":"YulIdentifier","src":"9112:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"9059:28:101","nodeType":"YulIdentifier","src":"9059:28:101"},"nativeSrc":"9059:61:101","nodeType":"YulFunctionCall","src":"9059:61:101"},"variableNames":[{"name":"value0","nativeSrc":"9049:6:101","nodeType":"YulIdentifier","src":"9049:6:101"}]}]},{"nativeSrc":"9140:128:101","nodeType":"YulBlock","src":"9140:128:101","statements":[{"nativeSrc":"9155:16:101","nodeType":"YulVariableDeclaration","src":"9155:16:101","value":{"kind":"number","nativeSrc":"9169:2:101","nodeType":"YulLiteral","src":"9169:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9159:6:101","nodeType":"YulTypedName","src":"9159:6:101","type":""}]},{"nativeSrc":"9185:73:101","nodeType":"YulAssignment","src":"9185:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9230:9:101","nodeType":"YulIdentifier","src":"9230:9:101"},{"name":"offset","nativeSrc":"9241:6:101","nodeType":"YulIdentifier","src":"9241:6:101"}],"functionName":{"name":"add","nativeSrc":"9226:3:101","nodeType":"YulIdentifier","src":"9226:3:101"},"nativeSrc":"9226:22:101","nodeType":"YulFunctionCall","src":"9226:22:101"},{"name":"dataEnd","nativeSrc":"9250:7:101","nodeType":"YulIdentifier","src":"9250:7:101"}],"functionName":{"name":"abi_decode_t_uint16_fromMemory","nativeSrc":"9195:30:101","nodeType":"YulIdentifier","src":"9195:30:101"},"nativeSrc":"9195:63:101","nodeType":"YulFunctionCall","src":"9195:63:101"},"variableNames":[{"name":"value1","nativeSrc":"9185:6:101","nodeType":"YulIdentifier","src":"9185:6:101"}]}]},{"nativeSrc":"9278:126:101","nodeType":"YulBlock","src":"9278:126:101","statements":[{"nativeSrc":"9293:16:101","nodeType":"YulVariableDeclaration","src":"9293:16:101","value":{"kind":"number","nativeSrc":"9307:2:101","nodeType":"YulLiteral","src":"9307:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9297:6:101","nodeType":"YulTypedName","src":"9297:6:101","type":""}]},{"nativeSrc":"9323:71:101","nodeType":"YulAssignment","src":"9323:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9366:9:101","nodeType":"YulIdentifier","src":"9366:9:101"},{"name":"offset","nativeSrc":"9377:6:101","nodeType":"YulIdentifier","src":"9377:6:101"}],"functionName":{"name":"add","nativeSrc":"9362:3:101","nodeType":"YulIdentifier","src":"9362:3:101"},"nativeSrc":"9362:22:101","nodeType":"YulFunctionCall","src":"9362:22:101"},{"name":"dataEnd","nativeSrc":"9386:7:101","nodeType":"YulIdentifier","src":"9386:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"9333:28:101","nodeType":"YulIdentifier","src":"9333:28:101"},"nativeSrc":"9333:61:101","nodeType":"YulFunctionCall","src":"9333:61:101"},"variableNames":[{"name":"value2","nativeSrc":"9323:6:101","nodeType":"YulIdentifier","src":"9323:6:101"}]}]}]},"name":"abi_decode_tuple_t_boolt_uint16t_bool_fromMemory","nativeSrc":"8762:649:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8820:9:101","nodeType":"YulTypedName","src":"8820:9:101","type":""},{"name":"dataEnd","nativeSrc":"8831:7:101","nodeType":"YulTypedName","src":"8831:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8843:6:101","nodeType":"YulTypedName","src":"8843:6:101","type":""},{"name":"value1","nativeSrc":"8851:6:101","nodeType":"YulTypedName","src":"8851:6:101","type":""},{"name":"value2","nativeSrc":"8859:6:101","nodeType":"YulTypedName","src":"8859:6:101","type":""}],"src":"8762:649:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function validator_revert_t_enum$_RateKind_$5392(value) {\n        if iszero(lt(value, 2)) { revert(0, 0) }\n    }\n\n    function abi_decode_t_enum$_RateKind_$5392_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_enum$_RateKind_$5392(value)\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function validator_revert_t_uint32(value) {\n        if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint32_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint32(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    // struct PendleOracle.ConstructorParams\n    function abi_decode_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x01a0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x01a0)\n\n        {\n            // market\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // ptOracle\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // rateKind\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_enum$_RateKind_$5392_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // ptToken\n\n            let offset := 96\n\n            mstore(add(value, 0x60), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // underlyingToken\n\n            let offset := 128\n\n            mstore(add(value, 0x80), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // resilientOracle\n\n            let offset := 160\n\n            mstore(add(value, 0xa0), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // twapDuration\n\n            let offset := 192\n\n            mstore(add(value, 0xc0), abi_decode_t_uint32_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // annualGrowthRate\n\n            let offset := 224\n\n            mstore(add(value, 0xe0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // snapshotInterval\n\n            let offset := 256\n\n            mstore(add(value, 0x0100), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // initialSnapshotMaxExchangeRate\n\n            let offset := 288\n\n            mstore(add(value, 0x0120), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // initialSnapshotTimestamp\n\n            let offset := 320\n\n            mstore(add(value, 0x0140), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // accessControlManager\n\n            let offset := 352\n\n            mstore(add(value, 0x0160), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // snapshotGap\n\n            let offset := 384\n\n            mstore(add(value, 0x0180), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 416) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_ConstructorParams_$5388_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function panic_error_0x21() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_address_t_uint32__to_t_address_t_uint32__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint16(value)\n    }\n\n    function abi_decode_tuple_t_boolt_uint16t_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101a0604052348015610010575f80fd5b5060405161182b38038061182b83398101604081905261002f91610526565b6060810151608082015160a083015160e084015161010085015161012086015161014087015161016088015161018089015161006f6301e1338087610561565b5f81905515801561007f57505f85115b8061009357505f8054118015610093575084155b156100b1576040516353b7e64560e11b815260040160405180910390fd5b8315806100bc575082155b80156100c757505f85115b156100e55760405163b8a5589b60e01b815260040160405180910390fd5b6100ee896102e3565b6100f7886102e3565b610100876102e3565b610109826102e3565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e0528051610145906102e3565b6020810151610153906102e3565b60c08101516101679063ffffffff1661030d565b80516001600160a01b0390811661014052602082015116610100526040810151600181111561019857610198610574565b6101208160018111156101ad576101ad610574565b815250508060c0015163ffffffff166101608163ffffffff168152505060a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022c919061059c565b60ff166101805261010051610140516101605160405162439f4b60e91b81525f9384936001600160a01b039091169263873e96009261026f9291906004016105d5565b606060405180830381865afa15801561028a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ae919061061f565b925050915081806102bd575080155b156102db57604051637616640160e01b815260040160405180910390fd5b50505061066b565b6001600160a01b03811661030a576040516342bcdf7f60e11b815260040160405180910390fd5b50565b805f0361030a5760405163273e150360e21b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156103665761036661032d565b6040525050565b5f61037760405190565b90506103838282610341565b919050565b5f6001600160a01b0382165b92915050565b6103a381610388565b811461030a575f80fd5b80516103948161039a565b6002811061030a575f80fd5b8051610394816103b8565b63ffffffff81166103a3565b8051610394816103cf565b806103a3565b8051610394816103e6565b5f6101a0828403121561040b5761040b5f80fd5b6104166101a061036d565b90505f61042384846103ad565b8252506020610434848483016103ad565b6020830152506040610448848285016103c4565b604083015250606061045c848285016103ad565b6060830152506080610470848285016103ad565b60808301525060a0610484848285016103ad565b60a08301525060c0610498848285016103db565b60c08301525060e06104ac848285016103ec565b60e0830152506101006104c1848285016103ec565b610100830152506101206104d7848285016103ec565b610120830152506101406104ed848285016103ec565b61014083015250610160610503848285016103ad565b61016083015250610180610519848285016103ec565b6101808301525092915050565b5f6101a0828403121561053a5761053a5f80fd5b5f61054584846103f7565b949350505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261056f5761056f61054d565b500490565b634e487b7160e01b5f52602160045260245ffd5b60ff81166103a3565b805161039481610588565b5f602082840312156105af576105af5f80fd5b5f6105458484610591565b6105c381610388565b82525050565b63ffffffff81166105c3565b604081016105e382856105ba565b6105f060208301846105c9565b9392505050565b8015156103a3565b8051610394816105f7565b61ffff81166103a3565b80516103948161060a565b5f805f60608486031215610634576106345f80fd5b5f61063f86866105ff565b935050602061065086828701610614565b9250506040610661868287016105ff565b9150509250925092565b60805160a05160c05160e05161010051610120516101405161016051610180516110f26107395f395f81816101cd015261098101525f818161030001528181610834015261090801525f818161037c0152818161081201526108e601525f8181610146015261079901525f81816102d9015281816107e501526108b901525f818161021d0152610b7f01525f818161033d015281816106630152610a1201525f8181610199015281816106900152610a4101525f818161029f015281816103a10152610ac001526110f25ff3fe608060405234801561000f575f80fd5b506004361061013d575f3560e01c806369240426116100b45780639c43eb54116100795780639c43eb541461032f578063a4edcd4c14610338578063abb856131461035f578063ac5a693e14610367578063bdf13af21461036f578063f46f16c214610377575f80fd5b8063692404261461029257806369818a351461029a5780637fc4e4a0146102c1578063809d7b31146102d4578063879ac8f8146102fb575f80fd5b806341976e091161010557806341976e091461020557806345be2dc7146102185780635213f9c81461024c578063596efe6f14610261578063643d813d1461026a578063671528d41461027d575f80fd5b806302125d091461014157806307d0413c1461017e57806329db1be6146101945780633dae7c22146101c85780634169d245146101fc575b5f80fd5b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610c7d565b60405180910390f35b61018760015481565b6040516101759190610c91565b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610cb8565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610ccf565b61018760045481565b610187610213366004610cfb565b61039e565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610d3e565b61025f61025a366004610d5d565b61044f565b005b61018760025481565b61025f610278366004610d7b565b6104c0565b610285610594565b6040516101759190610dbd565b61025f6105cf565b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b61025f6102cf366004610d7b565b61071b565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610dd7565b61018760035481565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b610187610793565b6101875f5481565b6101876109c1565b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146103f157604051630f58058360e11b815260040160405180910390fd5b5f6103fa610793565b90506001545f036104155761040e81610a0e565b9392505050565b5f61041e6109c1565b90505f818311801561042f57508115155b610439578261043b565b815b905061044681610a0e565b95945050505050565b61048d6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610b66565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104fe6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610b66565b5f5461050e6301e1338084610e0d565b5f81905515801561051e57505f82115b8061053257505f8054118015610532575081155b15610550576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516105859190610c91565b60405180910390a45060015550565b5f6001545f036105a357505f90565b5f6105ac6109c1565b9050805f036105bc575f91505090565b5f6105c5610793565b9190911192915050565b6001546003546105df9042610e20565b10806105eb5750600154155b156105f257565b5f6105fb610793565b90505f6106066109c1565b9050600454818311610618578261061a565b815b6106249190610e33565b6002819055426003555f0361064c57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906106b8907f000000000000000000000000000000000000000000000000000000000000000090600401610cb8565b5f604051808303815f87803b1580156106cf575f80fd5b505af11580156106e1573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6107596040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610b66565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f8060017f000000000000000000000000000000000000000000000000000000000000000060018111156107c9576107c9610c28565b036108a25760405163a31426d160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a31426d19061085c907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401610e46565b602060405180830381865afa158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190610e6c565b9050610972565b60405163abca0eab60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063abca0eab90610930907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401610e46565b602060405180830381865afa15801561094b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096f9190610e6c565b90505b670de0b6b3a7640000816109a77f0000000000000000000000000000000000000000000000000000000000000000600a610f96565b6109b19190610faa565b6109bb9190610e0d565b91505090565b5f80600354426109d19190610e20565b90505f670de0b6b3a7640000825f546002546109ed9190610faa565b6109f79190610faa565b610a019190610e0d565b60025461040e9190610e33565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610a7c9190610cb8565b602060405180830381865afa158015610a97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abb9190610e6c565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b429190610fdd565b60ff169050610b5281600a610ffb565b610b5c8487610faa565b6104469190610e0d565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab90610bb6903390869060040161103e565b602060405180830381865afa158015610bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611071565b905080610c2457333083604051634a3fa29360e01b8152600401610c1b9392919061108f565b60405180910390fd5b5050565b634e487b7160e01b5f52602160045260245ffd5b60028110610c4c57610c4c610c28565b50565b80610c5981610c3c565b919050565b5f610c6882610c4f565b92915050565b610c7781610c5e565b82525050565b60208101610c688284610c6e565b80610c77565b60208101610c688284610c8b565b5f6001600160a01b038216610c68565b610c7781610c9f565b60208101610c688284610caf565b60ff8116610c77565b60208101610c688284610cc6565b610ce681610c9f565b8114610c4c575f80fd5b8035610c6881610cdd565b5f60208284031215610d0e57610d0e5f80fd5b5f610d198484610cf0565b949350505050565b5f610c6882610c9f565b5f610c6882610d21565b610c7781610d2b565b60208101610c688284610d35565b80610ce6565b8035610c6881610d4c565b5f60208284031215610d7057610d705f80fd5b5f610d198484610d52565b5f8060408385031215610d8f57610d8f5f80fd5b5f610d9a8585610d52565b9250506020610dab85828601610d52565b9150509250929050565b801515610c77565b60208101610c688284610db5565b63ffffffff8116610c77565b60208101610c688284610dcb565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610e1b57610e1b610de5565b500490565b81810381811115610c6857610c68610df9565b80820180821115610c6857610c68610df9565b60408101610e548285610caf565b61040e6020830184610dcb565b8051610c6881610d4c565b5f60208284031215610e7f57610e7f5f80fd5b5f610d198484610e61565b80825b6001851115610ec957808604811115610ea857610ea8610df9565b6001851615610eb657908102905b8002610ec28560011c90565b9450610e8d565b94509492505050565b5f82610ee05750600161040e565b81610eec57505f61040e565b8160018114610f025760028114610f0c57610f39565b600191505061040e565b60ff841115610f1d57610f1d610df9565b8360020a915084821115610f3357610f33610df9565b5061040e565b5060208310610133831016604e8410600b8410161715610f6c575081810a83811115610f6757610f67610df9565b61040e565b610f798484846001610e8a565b92509050818404811115610f8f57610f8f610df9565b0292915050565b5f60ff83165b925061040e5f198484610ed2565b818102808215838204851417610fc257610fc2610df9565b5092915050565b60ff8116610ce6565b8051610c6881610fc9565b5f60208284031215610ff057610ff05f80fd5b5f610d198484610fd2565b5f82610f9c565b8281835e505f910152565b5f611016825190565b80845260208401935061102d818560208601611002565b601f01601f19169290920192915050565b6040810161104c8285610caf565b8181036020830152610d19818461100d565b801515610ce6565b8051610c688161105e565b5f60208284031215611084576110845f80fd5b5f610d198484611066565b6060810161109d8286610caf565b6110aa6020830185610caf565b8181036040830152610446818461100d56fea2646970667358221220e7d60a6a23b4e57c15e675cd9e372b18d97a7f6898fefafcbf778770ce8947dd64736f6c63430008190033","opcodes":"PUSH2 0x1A0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x182B CODESIZE SUB DUP1 PUSH2 0x182B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x526 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x80 DUP3 ADD MLOAD PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xE0 DUP5 ADD MLOAD PUSH2 0x100 DUP6 ADD MLOAD PUSH2 0x120 DUP7 ADD MLOAD PUSH2 0x140 DUP8 ADD MLOAD PUSH2 0x160 DUP9 ADD MLOAD PUSH2 0x180 DUP10 ADD MLOAD PUSH2 0x6F PUSH4 0x1E13380 DUP8 PUSH2 0x561 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x7F JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x93 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x93 JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0xB1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0xBC JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xC7 JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xEE DUP10 PUSH2 0x2E3 JUMP JUMPDEST PUSH2 0xF7 DUP9 PUSH2 0x2E3 JUMP JUMPDEST PUSH2 0x100 DUP8 PUSH2 0x2E3 JUMP JUMPDEST PUSH2 0x109 DUP3 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE DUP1 MLOAD PUSH2 0x145 SWAP1 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH2 0x153 SWAP1 PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD MLOAD PUSH2 0x167 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x30D JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH2 0x140 MSTORE PUSH1 0x20 DUP3 ADD MLOAD AND PUSH2 0x100 MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x198 JUMPI PUSH2 0x198 PUSH2 0x574 JUMP JUMPDEST PUSH2 0x120 DUP2 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1AD JUMPI PUSH2 0x1AD PUSH2 0x574 JUMP JUMPDEST DUP2 MSTORE POP POP DUP1 PUSH1 0xC0 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x160 DUP2 PUSH4 0xFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0xA0 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x208 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x22C SWAP2 SWAP1 PUSH2 0x59C JUMP JUMPDEST PUSH1 0xFF AND PUSH2 0x180 MSTORE PUSH2 0x100 MLOAD PUSH2 0x140 MLOAD PUSH2 0x160 MLOAD PUSH1 0x40 MLOAD PUSH3 0x439F4B PUSH1 0xE9 SHL DUP2 MSTORE PUSH0 SWAP4 DUP5 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0x873E9600 SWAP3 PUSH2 0x26F SWAP3 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x5D5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x2AE SWAP2 SWAP1 PUSH2 0x61F JUMP JUMPDEST SWAP3 POP POP SWAP2 POP DUP2 DUP1 PUSH2 0x2BD JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x2DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x76166401 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP PUSH2 0x66B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x30A JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x30A JUMPI PUSH1 0x40 MLOAD PUSH4 0x273E1503 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x366 JUMPI PUSH2 0x366 PUSH2 0x32D JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x377 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x383 DUP3 DUP3 PUSH2 0x341 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x388 JUMP JUMPDEST DUP2 EQ PUSH2 0x30A JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x39A JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x30A JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x3B8 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x3A3 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x3CF JUMP JUMPDEST DUP1 PUSH2 0x3A3 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x3E6 JUMP JUMPDEST PUSH0 PUSH2 0x1A0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40B JUMPI PUSH2 0x40B PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x416 PUSH2 0x1A0 PUSH2 0x36D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x423 DUP5 DUP5 PUSH2 0x3AD JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x434 DUP5 DUP5 DUP4 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x448 DUP5 DUP3 DUP6 ADD PUSH2 0x3C4 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x45C DUP5 DUP3 DUP6 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x470 DUP5 DUP3 DUP6 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x484 DUP5 DUP3 DUP6 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x498 DUP5 DUP3 DUP6 ADD PUSH2 0x3DB JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x4AC DUP5 DUP3 DUP6 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x4C1 DUP5 DUP3 DUP6 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x4D7 DUP5 DUP3 DUP6 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 PUSH2 0x4ED DUP5 DUP3 DUP6 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 PUSH2 0x503 DUP5 DUP3 DUP6 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP PUSH2 0x180 PUSH2 0x519 DUP5 DUP3 DUP6 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH2 0x180 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x53A JUMPI PUSH2 0x53A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x545 DUP5 DUP5 PUSH2 0x3F7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x56F JUMPI PUSH2 0x56F PUSH2 0x54D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x3A3 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x588 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AF JUMPI PUSH2 0x5AF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x545 DUP5 DUP5 PUSH2 0x591 JUMP JUMPDEST PUSH2 0x5C3 DUP2 PUSH2 0x388 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x5E3 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST PUSH2 0x5F0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5C9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3A3 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x5F7 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x3A3 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x60A JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x634 JUMPI PUSH2 0x634 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x63F DUP7 DUP7 PUSH2 0x5FF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x614 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x661 DUP7 DUP3 DUP8 ADD PUSH2 0x5FF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x10F2 PUSH2 0x739 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x1CD ADD MSTORE PUSH2 0x981 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x300 ADD MSTORE DUP2 DUP2 PUSH2 0x834 ADD MSTORE PUSH2 0x908 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x37C ADD MSTORE DUP2 DUP2 PUSH2 0x812 ADD MSTORE PUSH2 0x8E6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x146 ADD MSTORE PUSH2 0x799 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x2D9 ADD MSTORE DUP2 DUP2 PUSH2 0x7E5 ADD MSTORE PUSH2 0x8B9 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x21D ADD MSTORE PUSH2 0xB7F ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x33D ADD MSTORE DUP2 DUP2 PUSH2 0x663 ADD MSTORE PUSH2 0xA12 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x199 ADD MSTORE DUP2 DUP2 PUSH2 0x690 ADD MSTORE PUSH2 0xA41 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x29F ADD MSTORE DUP2 DUP2 PUSH2 0x3A1 ADD MSTORE PUSH2 0xAC0 ADD MSTORE PUSH2 0x10F2 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xB4 JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x35F JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0xF46F16C2 EQ PUSH2 0x377 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x29A JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x2C1 JUMPI DUP1 PUSH4 0x809D7B31 EQ PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x879AC8F8 EQ PUSH2 0x2FB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41976E09 GT PUSH2 0x105 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2125D09 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x7D0413C EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x3DAE7C22 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x168 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xC7D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x187 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0x1BB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xCB8 JUMP JUMPDEST PUSH2 0x1EF PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xCCF JUMP JUMPDEST PUSH2 0x187 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0xCFB JUMP JUMPDEST PUSH2 0x39E JUMP JUMPDEST PUSH2 0x23F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xD3E JUMP JUMPDEST PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0xD5D JUMP JUMPDEST PUSH2 0x44F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x187 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25F PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x4C0 JUMP JUMPDEST PUSH2 0x285 PUSH2 0x594 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xDBD JUMP JUMPDEST PUSH2 0x25F PUSH2 0x5CF JUMP JUMPDEST PUSH2 0x1BB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x25F PUSH2 0x2CF CALLDATASIZE PUSH1 0x4 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x71B JUMP JUMPDEST PUSH2 0x23F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x322 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xDD7 JUMP JUMPDEST PUSH2 0x187 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x23F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x187 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x1BB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3F1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x3FA PUSH2 0x793 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x415 JUMPI PUSH2 0x40E DUP2 PUSH2 0xA0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41E PUSH2 0x9C1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x42F JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x439 JUMPI DUP3 PUSH2 0x43B JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x446 DUP2 PUSH2 0xA0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x48D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x4FE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0xB66 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x50E PUSH4 0x1E13380 DUP5 PUSH2 0xE0D JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x51E JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x532 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x532 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x550 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x585 SWAP2 SWAP1 PUSH2 0xC91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x5A3 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x5AC PUSH2 0x9C1 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x5BC JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x5C5 PUSH2 0x793 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5DF SWAP1 TIMESTAMP PUSH2 0xE20 JUMP JUMPDEST LT DUP1 PUSH2 0x5EB JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x5F2 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x5FB PUSH2 0x793 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x606 PUSH2 0x9C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x618 JUMPI DUP3 PUSH2 0x61A JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x624 SWAP2 SWAP1 PUSH2 0xE33 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x64C JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x6B8 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6CF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6E1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x759 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH32 0x0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x7C9 JUMPI PUSH2 0x7C9 PUSH2 0xC28 JUMP JUMPDEST SUB PUSH2 0x8A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA31426D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA31426D1 SWAP1 PUSH2 0x85C SWAP1 PUSH32 0x0 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x877 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x89B SWAP2 SWAP1 PUSH2 0xE6C JUMP JUMPDEST SWAP1 POP PUSH2 0x972 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xABCA0EAB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xABCA0EAB SWAP1 PUSH2 0x930 SWAP1 PUSH32 0x0 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x96F SWAP2 SWAP1 PUSH2 0xE6C JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 PUSH2 0x9A7 PUSH32 0x0 PUSH1 0xA PUSH2 0xF96 JUMP JUMPDEST PUSH2 0x9B1 SWAP2 SWAP1 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0x9BB SWAP2 SWAP1 PUSH2 0xE0D JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x9D1 SWAP2 SWAP1 PUSH2 0xE20 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x9ED SWAP2 SWAP1 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0x9F7 SWAP2 SWAP1 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0xA01 SWAP2 SWAP1 PUSH2 0xE0D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x40E SWAP2 SWAP1 PUSH2 0xE33 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA7C SWAP2 SWAP1 PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA97 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xABB SWAP2 SWAP1 PUSH2 0xE6C JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0xB1E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xB42 SWAP2 SWAP1 PUSH2 0xFDD JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0xB52 DUP2 PUSH1 0xA PUSH2 0xFFB JUMP JUMPDEST PUSH2 0xB5C DUP5 DUP8 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0x446 SWAP2 SWAP1 PUSH2 0xE0D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xBB6 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBD1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xBF5 SWAP2 SWAP1 PUSH2 0x1071 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xC24 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x108F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0xC4C JUMPI PUSH2 0xC4C PUSH2 0xC28 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH2 0xC59 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC68 DUP3 PUSH2 0xC4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xC5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xC6E JUMP JUMPDEST DUP1 PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xC8B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC68 JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xCAF JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xCC6 JUMP JUMPDEST PUSH2 0xCE6 DUP2 PUSH2 0xC9F JUMP JUMPDEST DUP2 EQ PUSH2 0xC4C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC68 DUP2 PUSH2 0xCDD JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0E JUMPI PUSH2 0xD0E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xCF0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC68 DUP3 PUSH2 0xC9F JUMP JUMPDEST PUSH0 PUSH2 0xC68 DUP3 PUSH2 0xD21 JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xD35 JUMP JUMPDEST DUP1 PUSH2 0xCE6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC68 DUP2 PUSH2 0xD4C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD70 JUMPI PUSH2 0xD70 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xD52 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD8F JUMPI PUSH2 0xD8F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD9A DUP6 DUP6 PUSH2 0xD52 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDAB DUP6 DUP3 DUP7 ADD PUSH2 0xD52 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xDB5 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xDCB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDE5 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xC68 JUMPI PUSH2 0xC68 PUSH2 0xDF9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xC68 JUMPI PUSH2 0xC68 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE54 DUP3 DUP6 PUSH2 0xCAF JUMP JUMPDEST PUSH2 0x40E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xDCB JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC68 DUP2 PUSH2 0xD4C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE7F JUMPI PUSH2 0xE7F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xE61 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xEC9 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xEB6 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xEC2 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xE8D JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xEE0 JUMPI POP PUSH1 0x1 PUSH2 0x40E JUMP JUMPDEST DUP2 PUSH2 0xEEC JUMPI POP PUSH0 PUSH2 0x40E JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xF02 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xF0C JUMPI PUSH2 0xF39 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x40E JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xF1D JUMPI PUSH2 0xF1D PUSH2 0xDF9 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xF33 JUMPI PUSH2 0xF33 PUSH2 0xDF9 JUMP JUMPDEST POP PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xF6C JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xF67 JUMPI PUSH2 0xF67 PUSH2 0xDF9 JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH2 0xF79 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xE8A JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xF8F JUMPI PUSH2 0xF8F PUSH2 0xDF9 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP4 AND JUMPDEST SWAP3 POP PUSH2 0x40E PUSH0 NOT DUP5 DUP5 PUSH2 0xED2 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xFC2 JUMPI PUSH2 0xFC2 PUSH2 0xDF9 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xCE6 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC68 DUP2 PUSH2 0xFC9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF0 JUMPI PUSH2 0xFF0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xFD2 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xF9C JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x1016 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x102D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x104C DUP3 DUP6 PUSH2 0xCAF JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xD19 DUP2 DUP5 PUSH2 0x100D JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xCE6 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC68 DUP2 PUSH2 0x105E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1084 JUMPI PUSH2 0x1084 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0x1066 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x109D DUP3 DUP7 PUSH2 0xCAF JUMP JUMPDEST PUSH2 0x10AA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xCAF JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x446 DUP2 DUP5 PUSH2 0x100D JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0xD6 EXP PUSH11 0x23B4E57C15E675CD9E372B XOR 0xD9 PUSH27 0x7F6898FEFAFCBF778770CE8947DD64736F6C634300081900330000 ","sourceMap":"1316:4174:55:-:0;;;3708:1124;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3810:14;;;;3838:22;;;;3874;;;;3910:23;;;;3947;;;;3984:37;;;;4035:31;;;;4080:27;;;;4121:18;;;;3527:36:67;408:10:17;3910:23:55;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;4185:13:55;;4164:35:::1;::::0;:20:::1;:35::i;:::-;4230:15;::::0;::::1;::::0;4209:37:::1;::::0;:20:::1;:37::i;:::-;4275:19;::::0;::::1;::::0;4256:39:::1;::::0;::::1;;:18;:39::i;:::-;4315:13:::0;;-1:-1:-1;;;;;4306:22:55;;::::1;;::::0;4366:15:::1;::::0;::::1;::::0;4338:44:::1;;::::0;-1:-1:-1;4404:15:55;::::1;::::0;4392:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;::::0;::::1;4445:6;:19;;;4429:35;;;;;;;;::::0;::::1;4511:16;;-1:-1:-1::0;;;;;4496:41:55::1;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4474:65;;;::::0;4622:9:::1;::::0;4660:6:::1;::::0;4680:13:::1;::::0;4622:81:::1;::::0;-1:-1:-1;;;4622:81:55;;4551:32:::1;::::0;;;-1:-1:-1;;;;;4622:24:55;;::::1;::::0;::::1;::::0;:81:::1;::::0;4660:6;4680:13;4622:81:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4550:153;;;;;4717:27;:58;;;;4749:26;4748:27;4717:58;4713:113;;;4798:17;;-1:-1:-1::0;;;4798:17:55::1;;;;;;;;;;;4713:113;4154:678;;3708:1124:::0;1316:4174;;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;802:119::-;861:6;871:1;861:11;857:62;;891:21;;-1:-1:-1;;;891:21:18;;;;;;;;;;;565:180:101;-1:-1:-1;;;610:1:101;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;-1:-1:-1;;549:2:101;529:14;;525:28;826:6;822:40;964:6;952:10;949:22;-1:-1:-1;;;;;916:10:101;913:34;910:62;907:88;;;975:18;;:::i;:::-;1011:2;1004:22;-1:-1:-1;;751:281:101:o;1038:129::-;1072:6;1099:20;73:2;67:9;;7:75;1099:20;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1428:96::-;1465:7;-1:-1:-1;;;;;1362:54:101;;1494:24;1483:35;1428:96;-1:-1:-1;;1428:96:101:o;1530:122::-;1603:24;1621:5;1603:24;:::i;:::-;1596:5;1593:35;1583:63;;1642:1;1639;1632:12;1658:143;1740:13;;1762:33;1740:13;1762:33;:::i;1807:112::-;1893:1;1886:5;1883:12;1873:40;;1909:1;1906;1899:12;1925:169;2020:13;;2042:46;2020:13;2042:46;:::i;2199:120::-;2176:10;2165:22;;2271:23;2100:93;2325:141;2406:13;;2428:32;2406:13;2428:32;:::i;2555:122::-;2646:5;2628:24;2472:77;2683:143;2765:13;;2787:33;2765:13;2787:33;:::i;2877:2680::-;2972:5;3016:6;3004:9;2999:3;2995:19;2991:32;2988:119;;;3026:79;197:1;194;187:12;3026:79;3125:23;3141:6;3125:23;:::i;:::-;3116:32;-1:-1:-1;3209:1:101;3249:60;3305:3;3285:9;3249:60;:::i;:::-;3224:86;;-1:-1:-1;3384:2:101;3425:60;3481:3;3457:22;;;3425:60;:::i;:::-;3418:4;3411:5;3407:16;3400:86;3331:166;3560:2;3601:73;3670:3;3661:6;3650:9;3646:22;3601:73;:::i;:::-;3594:4;3587:5;3583:16;3576:99;3507:179;3748:2;3789:60;3845:3;3836:6;3825:9;3821:22;3789:60;:::i;:::-;3782:4;3775:5;3771:16;3764:86;3696:165;3931:3;3973:60;4029:3;4020:6;4009:9;4005:22;3973:60;:::i;:::-;3966:4;3959:5;3955:16;3948:86;3871:174;4115:3;4157:60;4213:3;4204:6;4193:9;4189:22;4157:60;:::i;:::-;4150:4;4143:5;4139:16;4132:86;4055:174;4296:3;4338:59;4393:3;4384:6;4373:9;4369:22;4338:59;:::i;:::-;4331:4;4324:5;4320:16;4313:85;4239:170;4480:3;4522:60;4578:3;4569:6;4558:9;4554:22;4522:60;:::i;:::-;4515:4;4508:5;4504:16;4497:86;4419:175;4665:3;4709:60;4765:3;4756:6;4745:9;4741:22;4709:60;:::i;:::-;4700:6;4693:5;4689:18;4682:88;4604:177;4866:3;4910:60;4966:3;4957:6;4946:9;4942:22;4910:60;:::i;:::-;4901:6;4894:5;4890:18;4883:88;4791:191;5061:3;5105:60;5161:3;5152:6;5141:9;5137:22;5105:60;:::i;:::-;5096:6;5089:5;5085:18;5078:88;4992:185;5252:3;5296:60;5352:3;5343:6;5332:9;5328:22;5296:60;:::i;:::-;5287:6;5280:5;5276:18;5269:88;5187:181;5434:3;5478:60;5534:3;5525:6;5514:9;5510:22;5478:60;:::i;:::-;5469:6;5462:5;5458:18;5451:88;5378:172;2877:2680;;;;:::o;5563:422::-;5668:6;5717:3;5705:9;5696:7;5692:23;5688:33;5685:120;;;5724:79;197:1;194;187:12;5724:79;5844:1;5869:99;5960:7;5940:9;5869:99;:::i;:::-;5859:109;5563:422;-1:-1:-1;;;;5563:422:101:o;5991:180::-;-1:-1:-1;;;6036:1:101;6029:88;6136:4;6133:1;6126:15;6160:4;6157:1;6150:15;6363:185;6403:1;6493;6483:35;;6498:18;;:::i;:::-;-1:-1:-1;6533:9:101;;6363:185::o;6554:180::-;-1:-1:-1;;;6599:1:101;6592:88;6699:4;6696:1;6689:15;6723:4;6720:1;6713:15;6832:118;6815:4;6804:16;;6903:22;6740:86;6956:139;7036:13;;7058:31;7036:13;7058:31;:::i;7101:347::-;7169:6;7218:2;7206:9;7197:7;7193:23;7189:32;7186:119;;;7224:79;197:1;194;187:12;7224:79;7344:1;7369:62;7423:7;7403:9;7369:62;:::i;7454:118::-;7541:24;7559:5;7541:24;:::i;:::-;7536:3;7529:37;7454:118;;:::o;7578:115::-;2176:10;2165:22;;7663:23;2100:93;7699:328;7856:2;7841:18;;7869:71;7845:9;7913:6;7869:71;:::i;:::-;7950:70;8016:2;8005:9;8001:18;7992:6;7950:70;:::i;:::-;7699:328;;;;;:::o;8129:116::-;8103:13;;8096:21;8199;8033:90;8251:137;8330:13;;8352:30;8330:13;8352:30;:::i;8489:120::-;8470:6;8459:18;;8561:23;8394:89;8615:141;8696:13;;8718:32;8696:13;8718:32;:::i;8762:649::-;8843:6;8851;8859;8908:2;8896:9;8887:7;8883:23;8879:32;8876:119;;;8914:79;197:1;194;187:12;8914:79;9034:1;9059:61;9112:7;9092:9;9059:61;:::i;:::-;9049:71;;9005:125;9169:2;9195:63;9250:7;9241:6;9230:9;9226:22;9195:63;:::i;:::-;9185:73;;9140:128;9307:2;9333:61;9386:7;9377:6;9366:9;9362:22;9333:61;:::i;:::-;9323:71;;9278:126;8762:649;;;;;:::o;:::-;1316:4174:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@MARKET_5403":{"entryPoint":null,"id":5403,"parameterSlots":0,"returnSlots":0},"@PT_ORACLE_5396":{"entryPoint":null,"id":5396,"parameterSlots":0,"returnSlots":0},"@RATE_KIND_5400":{"entryPoint":null,"id":5400,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@TWAP_DURATION_5406":{"entryPoint":null,"id":5406,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_DECIMALS_5409":{"entryPoint":null,"id":5409,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":2574,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2918,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":2497,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":926,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_5548":{"entryPoint":1939,"id":5548,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1428,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":1216,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":1103,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1819,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1487,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":3312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":4198,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":3410,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":3681,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":4050,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3323,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4209,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3421,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3692,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":3451,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":4061,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3247,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3509,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":3381,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IPendlePtOracle_$3568_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RateKind_$5392_to_t_uint8_fromStack":{"entryPoint":3182,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4109,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3211,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":3531,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":3270,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3256,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4239,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4158,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint32__to_t_address_t_uint32__fromStack_reversed":{"entryPoint":3654,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":3390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPendlePtOracle_$3568__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_RateKind_$5392__to_t_uint8__fromStack_reversed":{"entryPoint":3197,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":3543,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":3279,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3635,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":3597,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3722,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":4091,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_t_uint256_t_uint8":{"entryPoint":3990,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3794,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":4010,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":3616,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3231,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_RateKind_$5392":{"entryPoint":3151,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":3371,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IPendlePtOracle_$3568_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_RateKind_$5392_to_t_uint8":{"entryPoint":3166,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3361,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4098,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3577,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":3557,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":3112,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_assert_t_enum$_RateKind_$5392":{"entryPoint":3132,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3293,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4190,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3404,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":4041,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:15593:101","nodeType":"YulBlock","src":"0:15593:101","statements":[{"body":{"nativeSrc":"35:152:101","nodeType":"YulBlock","src":"35:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52:1:101","nodeType":"YulLiteral","src":"52:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"55:77:101","nodeType":"YulLiteral","src":"55:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"45:6:101","nodeType":"YulIdentifier","src":"45:6:101"},"nativeSrc":"45:88:101","nodeType":"YulFunctionCall","src":"45:88:101"},"nativeSrc":"45:88:101","nodeType":"YulExpressionStatement","src":"45:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149:1:101","nodeType":"YulLiteral","src":"149:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"152:4:101","nodeType":"YulLiteral","src":"152:4:101","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"142:6:101","nodeType":"YulIdentifier","src":"142:6:101"},"nativeSrc":"142:15:101","nodeType":"YulFunctionCall","src":"142:15:101"},"nativeSrc":"142:15:101","nodeType":"YulExpressionStatement","src":"142:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173:1:101","nodeType":"YulLiteral","src":"173:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"176:4:101","nodeType":"YulLiteral","src":"176:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"166:6:101","nodeType":"YulIdentifier","src":"166:6:101"},"nativeSrc":"166:15:101","nodeType":"YulFunctionCall","src":"166:15:101"},"nativeSrc":"166:15:101","nodeType":"YulExpressionStatement","src":"166:15:101"}]},"name":"panic_error_0x21","nativeSrc":"7:180:101","nodeType":"YulFunctionDefinition","src":"7:180:101"},{"body":{"nativeSrc":"249:62:101","nodeType":"YulBlock","src":"249:62:101","statements":[{"body":{"nativeSrc":"283:22:101","nodeType":"YulBlock","src":"283:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"285:16:101","nodeType":"YulIdentifier","src":"285:16:101"},"nativeSrc":"285:18:101","nodeType":"YulFunctionCall","src":"285:18:101"},"nativeSrc":"285:18:101","nodeType":"YulExpressionStatement","src":"285:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"272:5:101","nodeType":"YulIdentifier","src":"272:5:101"},{"kind":"number","nativeSrc":"279:1:101","nodeType":"YulLiteral","src":"279:1:101","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"269:2:101","nodeType":"YulIdentifier","src":"269:2:101"},"nativeSrc":"269:12:101","nodeType":"YulFunctionCall","src":"269:12:101"}],"functionName":{"name":"iszero","nativeSrc":"262:6:101","nodeType":"YulIdentifier","src":"262:6:101"},"nativeSrc":"262:20:101","nodeType":"YulFunctionCall","src":"262:20:101"},"nativeSrc":"259:46:101","nodeType":"YulIf","src":"259:46:101"}]},"name":"validator_assert_t_enum$_RateKind_$5392","nativeSrc":"193:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"242:5:101","nodeType":"YulTypedName","src":"242:5:101","type":""}],"src":"193:118:101"},{"body":{"nativeSrc":"375:79:101","nodeType":"YulBlock","src":"375:79:101","statements":[{"nativeSrc":"385:16:101","nodeType":"YulAssignment","src":"385:16:101","value":{"name":"value","nativeSrc":"396:5:101","nodeType":"YulIdentifier","src":"396:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"385:7:101","nodeType":"YulIdentifier","src":"385:7:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"442:5:101","nodeType":"YulIdentifier","src":"442:5:101"}],"functionName":{"name":"validator_assert_t_enum$_RateKind_$5392","nativeSrc":"402:39:101","nodeType":"YulIdentifier","src":"402:39:101"},"nativeSrc":"402:46:101","nodeType":"YulFunctionCall","src":"402:46:101"},"nativeSrc":"402:46:101","nodeType":"YulExpressionStatement","src":"402:46:101"}]},"name":"cleanup_t_enum$_RateKind_$5392","nativeSrc":"317:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"357:5:101","nodeType":"YulTypedName","src":"357:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"367:7:101","nodeType":"YulTypedName","src":"367:7:101","type":""}],"src":"317:137:101"},{"body":{"nativeSrc":"531:66:101","nodeType":"YulBlock","src":"531:66:101","statements":[{"nativeSrc":"541:50:101","nodeType":"YulAssignment","src":"541:50:101","value":{"arguments":[{"name":"value","nativeSrc":"585:5:101","nodeType":"YulIdentifier","src":"585:5:101"}],"functionName":{"name":"cleanup_t_enum$_RateKind_$5392","nativeSrc":"554:30:101","nodeType":"YulIdentifier","src":"554:30:101"},"nativeSrc":"554:37:101","nodeType":"YulFunctionCall","src":"554:37:101"},"variableNames":[{"name":"converted","nativeSrc":"541:9:101","nodeType":"YulIdentifier","src":"541:9:101"}]}]},"name":"convert_t_enum$_RateKind_$5392_to_t_uint8","nativeSrc":"460:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"511:5:101","nodeType":"YulTypedName","src":"511:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"521:9:101","nodeType":"YulTypedName","src":"521:9:101","type":""}],"src":"460:137:101"},{"body":{"nativeSrc":"679:77:101","nodeType":"YulBlock","src":"679:77:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"696:3:101","nodeType":"YulIdentifier","src":"696:3:101"},{"arguments":[{"name":"value","nativeSrc":"743:5:101","nodeType":"YulIdentifier","src":"743:5:101"}],"functionName":{"name":"convert_t_enum$_RateKind_$5392_to_t_uint8","nativeSrc":"701:41:101","nodeType":"YulIdentifier","src":"701:41:101"},"nativeSrc":"701:48:101","nodeType":"YulFunctionCall","src":"701:48:101"}],"functionName":{"name":"mstore","nativeSrc":"689:6:101","nodeType":"YulIdentifier","src":"689:6:101"},"nativeSrc":"689:61:101","nodeType":"YulFunctionCall","src":"689:61:101"},"nativeSrc":"689:61:101","nodeType":"YulExpressionStatement","src":"689:61:101"}]},"name":"abi_encode_t_enum$_RateKind_$5392_to_t_uint8_fromStack","nativeSrc":"603:153:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"667:5:101","nodeType":"YulTypedName","src":"667:5:101","type":""},{"name":"pos","nativeSrc":"674:3:101","nodeType":"YulTypedName","src":"674:3:101","type":""}],"src":"603:153:101"},{"body":{"nativeSrc":"871:135:101","nodeType":"YulBlock","src":"871:135:101","statements":[{"nativeSrc":"881:26:101","nodeType":"YulAssignment","src":"881:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"893:9:101","nodeType":"YulIdentifier","src":"893:9:101"},{"kind":"number","nativeSrc":"904:2:101","nodeType":"YulLiteral","src":"904:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"889:3:101","nodeType":"YulIdentifier","src":"889:3:101"},"nativeSrc":"889:18:101","nodeType":"YulFunctionCall","src":"889:18:101"},"variableNames":[{"name":"tail","nativeSrc":"881:4:101","nodeType":"YulIdentifier","src":"881:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"972:6:101","nodeType":"YulIdentifier","src":"972:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"985:9:101","nodeType":"YulIdentifier","src":"985:9:101"},{"kind":"number","nativeSrc":"996:1:101","nodeType":"YulLiteral","src":"996:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"981:3:101","nodeType":"YulIdentifier","src":"981:3:101"},"nativeSrc":"981:17:101","nodeType":"YulFunctionCall","src":"981:17:101"}],"functionName":{"name":"abi_encode_t_enum$_RateKind_$5392_to_t_uint8_fromStack","nativeSrc":"917:54:101","nodeType":"YulIdentifier","src":"917:54:101"},"nativeSrc":"917:82:101","nodeType":"YulFunctionCall","src":"917:82:101"},"nativeSrc":"917:82:101","nodeType":"YulExpressionStatement","src":"917:82:101"}]},"name":"abi_encode_tuple_t_enum$_RateKind_$5392__to_t_uint8__fromStack_reversed","nativeSrc":"762:244:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"843:9:101","nodeType":"YulTypedName","src":"843:9:101","type":""},{"name":"value0","nativeSrc":"855:6:101","nodeType":"YulTypedName","src":"855:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"866:4:101","nodeType":"YulTypedName","src":"866:4:101","type":""}],"src":"762:244:101"},{"body":{"nativeSrc":"1057:32:101","nodeType":"YulBlock","src":"1057:32:101","statements":[{"nativeSrc":"1067:16:101","nodeType":"YulAssignment","src":"1067:16:101","value":{"name":"value","nativeSrc":"1078:5:101","nodeType":"YulIdentifier","src":"1078:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1067:7:101","nodeType":"YulIdentifier","src":"1067:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1012:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1039:5:101","nodeType":"YulTypedName","src":"1039:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1049:7:101","nodeType":"YulTypedName","src":"1049:7:101","type":""}],"src":"1012:77:101"},{"body":{"nativeSrc":"1160:53:101","nodeType":"YulBlock","src":"1160:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1177:3:101","nodeType":"YulIdentifier","src":"1177:3:101"},{"arguments":[{"name":"value","nativeSrc":"1200:5:101","nodeType":"YulIdentifier","src":"1200:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1182:17:101","nodeType":"YulIdentifier","src":"1182:17:101"},"nativeSrc":"1182:24:101","nodeType":"YulFunctionCall","src":"1182:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1170:6:101","nodeType":"YulIdentifier","src":"1170:6:101"},"nativeSrc":"1170:37:101","nodeType":"YulFunctionCall","src":"1170:37:101"},"nativeSrc":"1170:37:101","nodeType":"YulExpressionStatement","src":"1170:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1095:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1148:5:101","nodeType":"YulTypedName","src":"1148:5:101","type":""},{"name":"pos","nativeSrc":"1155:3:101","nodeType":"YulTypedName","src":"1155:3:101","type":""}],"src":"1095:118:101"},{"body":{"nativeSrc":"1317:124:101","nodeType":"YulBlock","src":"1317:124:101","statements":[{"nativeSrc":"1327:26:101","nodeType":"YulAssignment","src":"1327:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1339:9:101","nodeType":"YulIdentifier","src":"1339:9:101"},{"kind":"number","nativeSrc":"1350:2:101","nodeType":"YulLiteral","src":"1350:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1335:3:101","nodeType":"YulIdentifier","src":"1335:3:101"},"nativeSrc":"1335:18:101","nodeType":"YulFunctionCall","src":"1335:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1327:4:101","nodeType":"YulIdentifier","src":"1327:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1407:6:101","nodeType":"YulIdentifier","src":"1407:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1420:9:101","nodeType":"YulIdentifier","src":"1420:9:101"},{"kind":"number","nativeSrc":"1431:1:101","nodeType":"YulLiteral","src":"1431:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1416:3:101","nodeType":"YulIdentifier","src":"1416:3:101"},"nativeSrc":"1416:17:101","nodeType":"YulFunctionCall","src":"1416:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1363:43:101","nodeType":"YulIdentifier","src":"1363:43:101"},"nativeSrc":"1363:71:101","nodeType":"YulFunctionCall","src":"1363:71:101"},"nativeSrc":"1363:71:101","nodeType":"YulExpressionStatement","src":"1363:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1219:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1289:9:101","nodeType":"YulTypedName","src":"1289:9:101","type":""},{"name":"value0","nativeSrc":"1301:6:101","nodeType":"YulTypedName","src":"1301:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1312:4:101","nodeType":"YulTypedName","src":"1312:4:101","type":""}],"src":"1219:222:101"},{"body":{"nativeSrc":"1492:81:101","nodeType":"YulBlock","src":"1492:81:101","statements":[{"nativeSrc":"1502:65:101","nodeType":"YulAssignment","src":"1502:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1517:5:101","nodeType":"YulIdentifier","src":"1517:5:101"},{"kind":"number","nativeSrc":"1524:42:101","nodeType":"YulLiteral","src":"1524:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1513:3:101","nodeType":"YulIdentifier","src":"1513:3:101"},"nativeSrc":"1513:54:101","nodeType":"YulFunctionCall","src":"1513:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1502:7:101","nodeType":"YulIdentifier","src":"1502:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1447:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1474:5:101","nodeType":"YulTypedName","src":"1474:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1484:7:101","nodeType":"YulTypedName","src":"1484:7:101","type":""}],"src":"1447:126:101"},{"body":{"nativeSrc":"1624:51:101","nodeType":"YulBlock","src":"1624:51:101","statements":[{"nativeSrc":"1634:35:101","nodeType":"YulAssignment","src":"1634:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1663:5:101","nodeType":"YulIdentifier","src":"1663:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1645:17:101","nodeType":"YulIdentifier","src":"1645:17:101"},"nativeSrc":"1645:24:101","nodeType":"YulFunctionCall","src":"1645:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1634:7:101","nodeType":"YulIdentifier","src":"1634:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1579:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1606:5:101","nodeType":"YulTypedName","src":"1606:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1616:7:101","nodeType":"YulTypedName","src":"1616:7:101","type":""}],"src":"1579:96:101"},{"body":{"nativeSrc":"1746:53:101","nodeType":"YulBlock","src":"1746:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1763:3:101","nodeType":"YulIdentifier","src":"1763:3:101"},{"arguments":[{"name":"value","nativeSrc":"1786:5:101","nodeType":"YulIdentifier","src":"1786:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1768:17:101","nodeType":"YulIdentifier","src":"1768:17:101"},"nativeSrc":"1768:24:101","nodeType":"YulFunctionCall","src":"1768:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1756:6:101","nodeType":"YulIdentifier","src":"1756:6:101"},"nativeSrc":"1756:37:101","nodeType":"YulFunctionCall","src":"1756:37:101"},"nativeSrc":"1756:37:101","nodeType":"YulExpressionStatement","src":"1756:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1681:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1734:5:101","nodeType":"YulTypedName","src":"1734:5:101","type":""},{"name":"pos","nativeSrc":"1741:3:101","nodeType":"YulTypedName","src":"1741:3:101","type":""}],"src":"1681:118:101"},{"body":{"nativeSrc":"1903:124:101","nodeType":"YulBlock","src":"1903:124:101","statements":[{"nativeSrc":"1913:26:101","nodeType":"YulAssignment","src":"1913:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1925:9:101","nodeType":"YulIdentifier","src":"1925:9:101"},{"kind":"number","nativeSrc":"1936:2:101","nodeType":"YulLiteral","src":"1936:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1921:3:101","nodeType":"YulIdentifier","src":"1921:3:101"},"nativeSrc":"1921:18:101","nodeType":"YulFunctionCall","src":"1921:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1913:4:101","nodeType":"YulIdentifier","src":"1913:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1993:6:101","nodeType":"YulIdentifier","src":"1993:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2006:9:101","nodeType":"YulIdentifier","src":"2006:9:101"},{"kind":"number","nativeSrc":"2017:1:101","nodeType":"YulLiteral","src":"2017:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2002:3:101","nodeType":"YulIdentifier","src":"2002:3:101"},"nativeSrc":"2002:17:101","nodeType":"YulFunctionCall","src":"2002:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1949:43:101","nodeType":"YulIdentifier","src":"1949:43:101"},"nativeSrc":"1949:71:101","nodeType":"YulFunctionCall","src":"1949:71:101"},"nativeSrc":"1949:71:101","nodeType":"YulExpressionStatement","src":"1949:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1805:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1875:9:101","nodeType":"YulTypedName","src":"1875:9:101","type":""},{"name":"value0","nativeSrc":"1887:6:101","nodeType":"YulTypedName","src":"1887:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1898:4:101","nodeType":"YulTypedName","src":"1898:4:101","type":""}],"src":"1805:222:101"},{"body":{"nativeSrc":"2076:43:101","nodeType":"YulBlock","src":"2076:43:101","statements":[{"nativeSrc":"2086:27:101","nodeType":"YulAssignment","src":"2086:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2101:5:101","nodeType":"YulIdentifier","src":"2101:5:101"},{"kind":"number","nativeSrc":"2108:4:101","nodeType":"YulLiteral","src":"2108:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2097:3:101","nodeType":"YulIdentifier","src":"2097:3:101"},"nativeSrc":"2097:16:101","nodeType":"YulFunctionCall","src":"2097:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2086:7:101","nodeType":"YulIdentifier","src":"2086:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2033:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2058:5:101","nodeType":"YulTypedName","src":"2058:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2068:7:101","nodeType":"YulTypedName","src":"2068:7:101","type":""}],"src":"2033:86:101"},{"body":{"nativeSrc":"2186:51:101","nodeType":"YulBlock","src":"2186:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2203:3:101","nodeType":"YulIdentifier","src":"2203:3:101"},{"arguments":[{"name":"value","nativeSrc":"2224:5:101","nodeType":"YulIdentifier","src":"2224:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2208:15:101","nodeType":"YulIdentifier","src":"2208:15:101"},"nativeSrc":"2208:22:101","nodeType":"YulFunctionCall","src":"2208:22:101"}],"functionName":{"name":"mstore","nativeSrc":"2196:6:101","nodeType":"YulIdentifier","src":"2196:6:101"},"nativeSrc":"2196:35:101","nodeType":"YulFunctionCall","src":"2196:35:101"},"nativeSrc":"2196:35:101","nodeType":"YulExpressionStatement","src":"2196:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"2125:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2174:5:101","nodeType":"YulTypedName","src":"2174:5:101","type":""},{"name":"pos","nativeSrc":"2181:3:101","nodeType":"YulTypedName","src":"2181:3:101","type":""}],"src":"2125:112:101"},{"body":{"nativeSrc":"2337:120:101","nodeType":"YulBlock","src":"2337:120:101","statements":[{"nativeSrc":"2347:26:101","nodeType":"YulAssignment","src":"2347:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2359:9:101","nodeType":"YulIdentifier","src":"2359:9:101"},{"kind":"number","nativeSrc":"2370:2:101","nodeType":"YulLiteral","src":"2370:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2355:3:101","nodeType":"YulIdentifier","src":"2355:3:101"},"nativeSrc":"2355:18:101","nodeType":"YulFunctionCall","src":"2355:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2347:4:101","nodeType":"YulIdentifier","src":"2347:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2423:6:101","nodeType":"YulIdentifier","src":"2423:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2436:9:101","nodeType":"YulIdentifier","src":"2436:9:101"},{"kind":"number","nativeSrc":"2447:1:101","nodeType":"YulLiteral","src":"2447:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2432:3:101","nodeType":"YulIdentifier","src":"2432:3:101"},"nativeSrc":"2432:17:101","nodeType":"YulFunctionCall","src":"2432:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"2383:39:101","nodeType":"YulIdentifier","src":"2383:39:101"},"nativeSrc":"2383:67:101","nodeType":"YulFunctionCall","src":"2383:67:101"},"nativeSrc":"2383:67:101","nodeType":"YulExpressionStatement","src":"2383:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"2243:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2309:9:101","nodeType":"YulTypedName","src":"2309:9:101","type":""},{"name":"value0","nativeSrc":"2321:6:101","nodeType":"YulTypedName","src":"2321:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2332:4:101","nodeType":"YulTypedName","src":"2332:4:101","type":""}],"src":"2243:214:101"},{"body":{"nativeSrc":"2503:35:101","nodeType":"YulBlock","src":"2503:35:101","statements":[{"nativeSrc":"2513:19:101","nodeType":"YulAssignment","src":"2513:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"2529:2:101","nodeType":"YulLiteral","src":"2529:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2523:5:101","nodeType":"YulIdentifier","src":"2523:5:101"},"nativeSrc":"2523:9:101","nodeType":"YulFunctionCall","src":"2523:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"2513:6:101","nodeType":"YulIdentifier","src":"2513:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"2463:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"2496:6:101","nodeType":"YulTypedName","src":"2496:6:101","type":""}],"src":"2463:75:101"},{"body":{"nativeSrc":"2633:28:101","nodeType":"YulBlock","src":"2633:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2650:1:101","nodeType":"YulLiteral","src":"2650:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2653:1:101","nodeType":"YulLiteral","src":"2653:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2643:6:101","nodeType":"YulIdentifier","src":"2643:6:101"},"nativeSrc":"2643:12:101","nodeType":"YulFunctionCall","src":"2643:12:101"},"nativeSrc":"2643:12:101","nodeType":"YulExpressionStatement","src":"2643:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2544:117:101","nodeType":"YulFunctionDefinition","src":"2544:117:101"},{"body":{"nativeSrc":"2756:28:101","nodeType":"YulBlock","src":"2756:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2773:1:101","nodeType":"YulLiteral","src":"2773:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2776:1:101","nodeType":"YulLiteral","src":"2776:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2766:6:101","nodeType":"YulIdentifier","src":"2766:6:101"},"nativeSrc":"2766:12:101","nodeType":"YulFunctionCall","src":"2766:12:101"},"nativeSrc":"2766:12:101","nodeType":"YulExpressionStatement","src":"2766:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2667:117:101","nodeType":"YulFunctionDefinition","src":"2667:117:101"},{"body":{"nativeSrc":"2833:79:101","nodeType":"YulBlock","src":"2833:79:101","statements":[{"body":{"nativeSrc":"2890:16:101","nodeType":"YulBlock","src":"2890:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2899:1:101","nodeType":"YulLiteral","src":"2899:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2902:1:101","nodeType":"YulLiteral","src":"2902:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2892:6:101","nodeType":"YulIdentifier","src":"2892:6:101"},"nativeSrc":"2892:12:101","nodeType":"YulFunctionCall","src":"2892:12:101"},"nativeSrc":"2892:12:101","nodeType":"YulExpressionStatement","src":"2892:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2856:5:101","nodeType":"YulIdentifier","src":"2856:5:101"},{"arguments":[{"name":"value","nativeSrc":"2881:5:101","nodeType":"YulIdentifier","src":"2881:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2863:17:101","nodeType":"YulIdentifier","src":"2863:17:101"},"nativeSrc":"2863:24:101","nodeType":"YulFunctionCall","src":"2863:24:101"}],"functionName":{"name":"eq","nativeSrc":"2853:2:101","nodeType":"YulIdentifier","src":"2853:2:101"},"nativeSrc":"2853:35:101","nodeType":"YulFunctionCall","src":"2853:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2846:6:101","nodeType":"YulIdentifier","src":"2846:6:101"},"nativeSrc":"2846:43:101","nodeType":"YulFunctionCall","src":"2846:43:101"},"nativeSrc":"2843:63:101","nodeType":"YulIf","src":"2843:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2790:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2826:5:101","nodeType":"YulTypedName","src":"2826:5:101","type":""}],"src":"2790:122:101"},{"body":{"nativeSrc":"2970:87:101","nodeType":"YulBlock","src":"2970:87:101","statements":[{"nativeSrc":"2980:29:101","nodeType":"YulAssignment","src":"2980:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3002:6:101","nodeType":"YulIdentifier","src":"3002:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2989:12:101","nodeType":"YulIdentifier","src":"2989:12:101"},"nativeSrc":"2989:20:101","nodeType":"YulFunctionCall","src":"2989:20:101"},"variableNames":[{"name":"value","nativeSrc":"2980:5:101","nodeType":"YulIdentifier","src":"2980:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3045:5:101","nodeType":"YulIdentifier","src":"3045:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3018:26:101","nodeType":"YulIdentifier","src":"3018:26:101"},"nativeSrc":"3018:33:101","nodeType":"YulFunctionCall","src":"3018:33:101"},"nativeSrc":"3018:33:101","nodeType":"YulExpressionStatement","src":"3018:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2918:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2948:6:101","nodeType":"YulTypedName","src":"2948:6:101","type":""},{"name":"end","nativeSrc":"2956:3:101","nodeType":"YulTypedName","src":"2956:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2964:5:101","nodeType":"YulTypedName","src":"2964:5:101","type":""}],"src":"2918:139:101"},{"body":{"nativeSrc":"3129:263:101","nodeType":"YulBlock","src":"3129:263:101","statements":[{"body":{"nativeSrc":"3175:83:101","nodeType":"YulBlock","src":"3175:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3177:77:101","nodeType":"YulIdentifier","src":"3177:77:101"},"nativeSrc":"3177:79:101","nodeType":"YulFunctionCall","src":"3177:79:101"},"nativeSrc":"3177:79:101","nodeType":"YulExpressionStatement","src":"3177:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3150:7:101","nodeType":"YulIdentifier","src":"3150:7:101"},{"name":"headStart","nativeSrc":"3159:9:101","nodeType":"YulIdentifier","src":"3159:9:101"}],"functionName":{"name":"sub","nativeSrc":"3146:3:101","nodeType":"YulIdentifier","src":"3146:3:101"},"nativeSrc":"3146:23:101","nodeType":"YulFunctionCall","src":"3146:23:101"},{"kind":"number","nativeSrc":"3171:2:101","nodeType":"YulLiteral","src":"3171:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3142:3:101","nodeType":"YulIdentifier","src":"3142:3:101"},"nativeSrc":"3142:32:101","nodeType":"YulFunctionCall","src":"3142:32:101"},"nativeSrc":"3139:119:101","nodeType":"YulIf","src":"3139:119:101"},{"nativeSrc":"3268:117:101","nodeType":"YulBlock","src":"3268:117:101","statements":[{"nativeSrc":"3283:15:101","nodeType":"YulVariableDeclaration","src":"3283:15:101","value":{"kind":"number","nativeSrc":"3297:1:101","nodeType":"YulLiteral","src":"3297:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3287:6:101","nodeType":"YulTypedName","src":"3287:6:101","type":""}]},{"nativeSrc":"3312:63:101","nodeType":"YulAssignment","src":"3312:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3347:9:101","nodeType":"YulIdentifier","src":"3347:9:101"},{"name":"offset","nativeSrc":"3358:6:101","nodeType":"YulIdentifier","src":"3358:6:101"}],"functionName":{"name":"add","nativeSrc":"3343:3:101","nodeType":"YulIdentifier","src":"3343:3:101"},"nativeSrc":"3343:22:101","nodeType":"YulFunctionCall","src":"3343:22:101"},{"name":"dataEnd","nativeSrc":"3367:7:101","nodeType":"YulIdentifier","src":"3367:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3322:20:101","nodeType":"YulIdentifier","src":"3322:20:101"},"nativeSrc":"3322:53:101","nodeType":"YulFunctionCall","src":"3322:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3312:6:101","nodeType":"YulIdentifier","src":"3312:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3063:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3099:9:101","nodeType":"YulTypedName","src":"3099:9:101","type":""},{"name":"dataEnd","nativeSrc":"3110:7:101","nodeType":"YulTypedName","src":"3110:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3122:6:101","nodeType":"YulTypedName","src":"3122:6:101","type":""}],"src":"3063:329:101"},{"body":{"nativeSrc":"3430:28:101","nodeType":"YulBlock","src":"3430:28:101","statements":[{"nativeSrc":"3440:12:101","nodeType":"YulAssignment","src":"3440:12:101","value":{"name":"value","nativeSrc":"3447:5:101","nodeType":"YulIdentifier","src":"3447:5:101"},"variableNames":[{"name":"ret","nativeSrc":"3440:3:101","nodeType":"YulIdentifier","src":"3440:3:101"}]}]},"name":"identity","nativeSrc":"3398:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3416:5:101","nodeType":"YulTypedName","src":"3416:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"3426:3:101","nodeType":"YulTypedName","src":"3426:3:101","type":""}],"src":"3398:60:101"},{"body":{"nativeSrc":"3524:82:101","nodeType":"YulBlock","src":"3524:82:101","statements":[{"nativeSrc":"3534:66:101","nodeType":"YulAssignment","src":"3534:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3592:5:101","nodeType":"YulIdentifier","src":"3592:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3574:17:101","nodeType":"YulIdentifier","src":"3574:17:101"},"nativeSrc":"3574:24:101","nodeType":"YulFunctionCall","src":"3574:24:101"}],"functionName":{"name":"identity","nativeSrc":"3565:8:101","nodeType":"YulIdentifier","src":"3565:8:101"},"nativeSrc":"3565:34:101","nodeType":"YulFunctionCall","src":"3565:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3547:17:101","nodeType":"YulIdentifier","src":"3547:17:101"},"nativeSrc":"3547:53:101","nodeType":"YulFunctionCall","src":"3547:53:101"},"variableNames":[{"name":"converted","nativeSrc":"3534:9:101","nodeType":"YulIdentifier","src":"3534:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3464:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3504:5:101","nodeType":"YulTypedName","src":"3504:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3514:9:101","nodeType":"YulTypedName","src":"3514:9:101","type":""}],"src":"3464:142:101"},{"body":{"nativeSrc":"3672:66:101","nodeType":"YulBlock","src":"3672:66:101","statements":[{"nativeSrc":"3682:50:101","nodeType":"YulAssignment","src":"3682:50:101","value":{"arguments":[{"name":"value","nativeSrc":"3726:5:101","nodeType":"YulIdentifier","src":"3726:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3695:30:101","nodeType":"YulIdentifier","src":"3695:30:101"},"nativeSrc":"3695:37:101","nodeType":"YulFunctionCall","src":"3695:37:101"},"variableNames":[{"name":"converted","nativeSrc":"3682:9:101","nodeType":"YulIdentifier","src":"3682:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"3612:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3652:5:101","nodeType":"YulTypedName","src":"3652:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3662:9:101","nodeType":"YulTypedName","src":"3662:9:101","type":""}],"src":"3612:126:101"},{"body":{"nativeSrc":"3836:66:101","nodeType":"YulBlock","src":"3836:66:101","statements":[{"nativeSrc":"3846:50:101","nodeType":"YulAssignment","src":"3846:50:101","value":{"arguments":[{"name":"value","nativeSrc":"3890:5:101","nodeType":"YulIdentifier","src":"3890:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3859:30:101","nodeType":"YulIdentifier","src":"3859:30:101"},"nativeSrc":"3859:37:101","nodeType":"YulFunctionCall","src":"3859:37:101"},"variableNames":[{"name":"converted","nativeSrc":"3846:9:101","nodeType":"YulIdentifier","src":"3846:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"3744:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3816:5:101","nodeType":"YulTypedName","src":"3816:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3826:9:101","nodeType":"YulTypedName","src":"3826:9:101","type":""}],"src":"3744:158:101"},{"body":{"nativeSrc":"4005:98:101","nodeType":"YulBlock","src":"4005:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4022:3:101","nodeType":"YulIdentifier","src":"4022:3:101"},{"arguments":[{"name":"value","nativeSrc":"4090:5:101","nodeType":"YulIdentifier","src":"4090:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"4027:62:101","nodeType":"YulIdentifier","src":"4027:62:101"},"nativeSrc":"4027:69:101","nodeType":"YulFunctionCall","src":"4027:69:101"}],"functionName":{"name":"mstore","nativeSrc":"4015:6:101","nodeType":"YulIdentifier","src":"4015:6:101"},"nativeSrc":"4015:82:101","nodeType":"YulFunctionCall","src":"4015:82:101"},"nativeSrc":"4015:82:101","nodeType":"YulExpressionStatement","src":"4015:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"3908:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3993:5:101","nodeType":"YulTypedName","src":"3993:5:101","type":""},{"name":"pos","nativeSrc":"4000:3:101","nodeType":"YulTypedName","src":"4000:3:101","type":""}],"src":"3908:195:101"},{"body":{"nativeSrc":"4239:156:101","nodeType":"YulBlock","src":"4239:156:101","statements":[{"nativeSrc":"4249:26:101","nodeType":"YulAssignment","src":"4249:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4261:9:101","nodeType":"YulIdentifier","src":"4261:9:101"},{"kind":"number","nativeSrc":"4272:2:101","nodeType":"YulLiteral","src":"4272:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4257:3:101","nodeType":"YulIdentifier","src":"4257:3:101"},"nativeSrc":"4257:18:101","nodeType":"YulFunctionCall","src":"4257:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4249:4:101","nodeType":"YulIdentifier","src":"4249:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4361:6:101","nodeType":"YulIdentifier","src":"4361:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4374:9:101","nodeType":"YulIdentifier","src":"4374:9:101"},{"kind":"number","nativeSrc":"4385:1:101","nodeType":"YulLiteral","src":"4385:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4370:3:101","nodeType":"YulIdentifier","src":"4370:3:101"},"nativeSrc":"4370:17:101","nodeType":"YulFunctionCall","src":"4370:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"4285:75:101","nodeType":"YulIdentifier","src":"4285:75:101"},"nativeSrc":"4285:103:101","nodeType":"YulFunctionCall","src":"4285:103:101"},"nativeSrc":"4285:103:101","nodeType":"YulExpressionStatement","src":"4285:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"4109:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4211:9:101","nodeType":"YulTypedName","src":"4211:9:101","type":""},{"name":"value0","nativeSrc":"4223:6:101","nodeType":"YulTypedName","src":"4223:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4234:4:101","nodeType":"YulTypedName","src":"4234:4:101","type":""}],"src":"4109:286:101"},{"body":{"nativeSrc":"4444:79:101","nodeType":"YulBlock","src":"4444:79:101","statements":[{"body":{"nativeSrc":"4501:16:101","nodeType":"YulBlock","src":"4501:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4510:1:101","nodeType":"YulLiteral","src":"4510:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4513:1:101","nodeType":"YulLiteral","src":"4513:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4503:6:101","nodeType":"YulIdentifier","src":"4503:6:101"},"nativeSrc":"4503:12:101","nodeType":"YulFunctionCall","src":"4503:12:101"},"nativeSrc":"4503:12:101","nodeType":"YulExpressionStatement","src":"4503:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4467:5:101","nodeType":"YulIdentifier","src":"4467:5:101"},{"arguments":[{"name":"value","nativeSrc":"4492:5:101","nodeType":"YulIdentifier","src":"4492:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4474:17:101","nodeType":"YulIdentifier","src":"4474:17:101"},"nativeSrc":"4474:24:101","nodeType":"YulFunctionCall","src":"4474:24:101"}],"functionName":{"name":"eq","nativeSrc":"4464:2:101","nodeType":"YulIdentifier","src":"4464:2:101"},"nativeSrc":"4464:35:101","nodeType":"YulFunctionCall","src":"4464:35:101"}],"functionName":{"name":"iszero","nativeSrc":"4457:6:101","nodeType":"YulIdentifier","src":"4457:6:101"},"nativeSrc":"4457:43:101","nodeType":"YulFunctionCall","src":"4457:43:101"},"nativeSrc":"4454:63:101","nodeType":"YulIf","src":"4454:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"4401:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4437:5:101","nodeType":"YulTypedName","src":"4437:5:101","type":""}],"src":"4401:122:101"},{"body":{"nativeSrc":"4581:87:101","nodeType":"YulBlock","src":"4581:87:101","statements":[{"nativeSrc":"4591:29:101","nodeType":"YulAssignment","src":"4591:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"4613:6:101","nodeType":"YulIdentifier","src":"4613:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"4600:12:101","nodeType":"YulIdentifier","src":"4600:12:101"},"nativeSrc":"4600:20:101","nodeType":"YulFunctionCall","src":"4600:20:101"},"variableNames":[{"name":"value","nativeSrc":"4591:5:101","nodeType":"YulIdentifier","src":"4591:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4656:5:101","nodeType":"YulIdentifier","src":"4656:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"4629:26:101","nodeType":"YulIdentifier","src":"4629:26:101"},"nativeSrc":"4629:33:101","nodeType":"YulFunctionCall","src":"4629:33:101"},"nativeSrc":"4629:33:101","nodeType":"YulExpressionStatement","src":"4629:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"4529:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4559:6:101","nodeType":"YulTypedName","src":"4559:6:101","type":""},{"name":"end","nativeSrc":"4567:3:101","nodeType":"YulTypedName","src":"4567:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4575:5:101","nodeType":"YulTypedName","src":"4575:5:101","type":""}],"src":"4529:139:101"},{"body":{"nativeSrc":"4740:263:101","nodeType":"YulBlock","src":"4740:263:101","statements":[{"body":{"nativeSrc":"4786:83:101","nodeType":"YulBlock","src":"4786:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4788:77:101","nodeType":"YulIdentifier","src":"4788:77:101"},"nativeSrc":"4788:79:101","nodeType":"YulFunctionCall","src":"4788:79:101"},"nativeSrc":"4788:79:101","nodeType":"YulExpressionStatement","src":"4788:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4761:7:101","nodeType":"YulIdentifier","src":"4761:7:101"},{"name":"headStart","nativeSrc":"4770:9:101","nodeType":"YulIdentifier","src":"4770:9:101"}],"functionName":{"name":"sub","nativeSrc":"4757:3:101","nodeType":"YulIdentifier","src":"4757:3:101"},"nativeSrc":"4757:23:101","nodeType":"YulFunctionCall","src":"4757:23:101"},{"kind":"number","nativeSrc":"4782:2:101","nodeType":"YulLiteral","src":"4782:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4753:3:101","nodeType":"YulIdentifier","src":"4753:3:101"},"nativeSrc":"4753:32:101","nodeType":"YulFunctionCall","src":"4753:32:101"},"nativeSrc":"4750:119:101","nodeType":"YulIf","src":"4750:119:101"},{"nativeSrc":"4879:117:101","nodeType":"YulBlock","src":"4879:117:101","statements":[{"nativeSrc":"4894:15:101","nodeType":"YulVariableDeclaration","src":"4894:15:101","value":{"kind":"number","nativeSrc":"4908:1:101","nodeType":"YulLiteral","src":"4908:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4898:6:101","nodeType":"YulTypedName","src":"4898:6:101","type":""}]},{"nativeSrc":"4923:63:101","nodeType":"YulAssignment","src":"4923:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4958:9:101","nodeType":"YulIdentifier","src":"4958:9:101"},{"name":"offset","nativeSrc":"4969:6:101","nodeType":"YulIdentifier","src":"4969:6:101"}],"functionName":{"name":"add","nativeSrc":"4954:3:101","nodeType":"YulIdentifier","src":"4954:3:101"},"nativeSrc":"4954:22:101","nodeType":"YulFunctionCall","src":"4954:22:101"},{"name":"dataEnd","nativeSrc":"4978:7:101","nodeType":"YulIdentifier","src":"4978:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4933:20:101","nodeType":"YulIdentifier","src":"4933:20:101"},"nativeSrc":"4933:53:101","nodeType":"YulFunctionCall","src":"4933:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4923:6:101","nodeType":"YulIdentifier","src":"4923:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"4674:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4710:9:101","nodeType":"YulTypedName","src":"4710:9:101","type":""},{"name":"dataEnd","nativeSrc":"4721:7:101","nodeType":"YulTypedName","src":"4721:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4733:6:101","nodeType":"YulTypedName","src":"4733:6:101","type":""}],"src":"4674:329:101"},{"body":{"nativeSrc":"5092:391:101","nodeType":"YulBlock","src":"5092:391:101","statements":[{"body":{"nativeSrc":"5138:83:101","nodeType":"YulBlock","src":"5138:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5140:77:101","nodeType":"YulIdentifier","src":"5140:77:101"},"nativeSrc":"5140:79:101","nodeType":"YulFunctionCall","src":"5140:79:101"},"nativeSrc":"5140:79:101","nodeType":"YulExpressionStatement","src":"5140:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5113:7:101","nodeType":"YulIdentifier","src":"5113:7:101"},{"name":"headStart","nativeSrc":"5122:9:101","nodeType":"YulIdentifier","src":"5122:9:101"}],"functionName":{"name":"sub","nativeSrc":"5109:3:101","nodeType":"YulIdentifier","src":"5109:3:101"},"nativeSrc":"5109:23:101","nodeType":"YulFunctionCall","src":"5109:23:101"},{"kind":"number","nativeSrc":"5134:2:101","nodeType":"YulLiteral","src":"5134:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5105:3:101","nodeType":"YulIdentifier","src":"5105:3:101"},"nativeSrc":"5105:32:101","nodeType":"YulFunctionCall","src":"5105:32:101"},"nativeSrc":"5102:119:101","nodeType":"YulIf","src":"5102:119:101"},{"nativeSrc":"5231:117:101","nodeType":"YulBlock","src":"5231:117:101","statements":[{"nativeSrc":"5246:15:101","nodeType":"YulVariableDeclaration","src":"5246:15:101","value":{"kind":"number","nativeSrc":"5260:1:101","nodeType":"YulLiteral","src":"5260:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5250:6:101","nodeType":"YulTypedName","src":"5250:6:101","type":""}]},{"nativeSrc":"5275:63:101","nodeType":"YulAssignment","src":"5275:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5310:9:101","nodeType":"YulIdentifier","src":"5310:9:101"},{"name":"offset","nativeSrc":"5321:6:101","nodeType":"YulIdentifier","src":"5321:6:101"}],"functionName":{"name":"add","nativeSrc":"5306:3:101","nodeType":"YulIdentifier","src":"5306:3:101"},"nativeSrc":"5306:22:101","nodeType":"YulFunctionCall","src":"5306:22:101"},{"name":"dataEnd","nativeSrc":"5330:7:101","nodeType":"YulIdentifier","src":"5330:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5285:20:101","nodeType":"YulIdentifier","src":"5285:20:101"},"nativeSrc":"5285:53:101","nodeType":"YulFunctionCall","src":"5285:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5275:6:101","nodeType":"YulIdentifier","src":"5275:6:101"}]}]},{"nativeSrc":"5358:118:101","nodeType":"YulBlock","src":"5358:118:101","statements":[{"nativeSrc":"5373:16:101","nodeType":"YulVariableDeclaration","src":"5373:16:101","value":{"kind":"number","nativeSrc":"5387:2:101","nodeType":"YulLiteral","src":"5387:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5377:6:101","nodeType":"YulTypedName","src":"5377:6:101","type":""}]},{"nativeSrc":"5403:63:101","nodeType":"YulAssignment","src":"5403:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5438:9:101","nodeType":"YulIdentifier","src":"5438:9:101"},{"name":"offset","nativeSrc":"5449:6:101","nodeType":"YulIdentifier","src":"5449:6:101"}],"functionName":{"name":"add","nativeSrc":"5434:3:101","nodeType":"YulIdentifier","src":"5434:3:101"},"nativeSrc":"5434:22:101","nodeType":"YulFunctionCall","src":"5434:22:101"},{"name":"dataEnd","nativeSrc":"5458:7:101","nodeType":"YulIdentifier","src":"5458:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5413:20:101","nodeType":"YulIdentifier","src":"5413:20:101"},"nativeSrc":"5413:53:101","nodeType":"YulFunctionCall","src":"5413:53:101"},"variableNames":[{"name":"value1","nativeSrc":"5403:6:101","nodeType":"YulIdentifier","src":"5403:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"5009:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5054:9:101","nodeType":"YulTypedName","src":"5054:9:101","type":""},{"name":"dataEnd","nativeSrc":"5065:7:101","nodeType":"YulTypedName","src":"5065:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5077:6:101","nodeType":"YulTypedName","src":"5077:6:101","type":""},{"name":"value1","nativeSrc":"5085:6:101","nodeType":"YulTypedName","src":"5085:6:101","type":""}],"src":"5009:474:101"},{"body":{"nativeSrc":"5531:48:101","nodeType":"YulBlock","src":"5531:48:101","statements":[{"nativeSrc":"5541:32:101","nodeType":"YulAssignment","src":"5541:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5566:5:101","nodeType":"YulIdentifier","src":"5566:5:101"}],"functionName":{"name":"iszero","nativeSrc":"5559:6:101","nodeType":"YulIdentifier","src":"5559:6:101"},"nativeSrc":"5559:13:101","nodeType":"YulFunctionCall","src":"5559:13:101"}],"functionName":{"name":"iszero","nativeSrc":"5552:6:101","nodeType":"YulIdentifier","src":"5552:6:101"},"nativeSrc":"5552:21:101","nodeType":"YulFunctionCall","src":"5552:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5541:7:101","nodeType":"YulIdentifier","src":"5541:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"5489:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5513:5:101","nodeType":"YulTypedName","src":"5513:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5523:7:101","nodeType":"YulTypedName","src":"5523:7:101","type":""}],"src":"5489:90:101"},{"body":{"nativeSrc":"5644:50:101","nodeType":"YulBlock","src":"5644:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5661:3:101","nodeType":"YulIdentifier","src":"5661:3:101"},{"arguments":[{"name":"value","nativeSrc":"5681:5:101","nodeType":"YulIdentifier","src":"5681:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"5666:14:101","nodeType":"YulIdentifier","src":"5666:14:101"},"nativeSrc":"5666:21:101","nodeType":"YulFunctionCall","src":"5666:21:101"}],"functionName":{"name":"mstore","nativeSrc":"5654:6:101","nodeType":"YulIdentifier","src":"5654:6:101"},"nativeSrc":"5654:34:101","nodeType":"YulFunctionCall","src":"5654:34:101"},"nativeSrc":"5654:34:101","nodeType":"YulExpressionStatement","src":"5654:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5585:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5632:5:101","nodeType":"YulTypedName","src":"5632:5:101","type":""},{"name":"pos","nativeSrc":"5639:3:101","nodeType":"YulTypedName","src":"5639:3:101","type":""}],"src":"5585:109:101"},{"body":{"nativeSrc":"5792:118:101","nodeType":"YulBlock","src":"5792:118:101","statements":[{"nativeSrc":"5802:26:101","nodeType":"YulAssignment","src":"5802:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5814:9:101","nodeType":"YulIdentifier","src":"5814:9:101"},{"kind":"number","nativeSrc":"5825:2:101","nodeType":"YulLiteral","src":"5825:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5810:3:101","nodeType":"YulIdentifier","src":"5810:3:101"},"nativeSrc":"5810:18:101","nodeType":"YulFunctionCall","src":"5810:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5802:4:101","nodeType":"YulIdentifier","src":"5802:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5876:6:101","nodeType":"YulIdentifier","src":"5876:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5889:9:101","nodeType":"YulIdentifier","src":"5889:9:101"},{"kind":"number","nativeSrc":"5900:1:101","nodeType":"YulLiteral","src":"5900:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5885:3:101","nodeType":"YulIdentifier","src":"5885:3:101"},"nativeSrc":"5885:17:101","nodeType":"YulFunctionCall","src":"5885:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5838:37:101","nodeType":"YulIdentifier","src":"5838:37:101"},"nativeSrc":"5838:65:101","nodeType":"YulFunctionCall","src":"5838:65:101"},"nativeSrc":"5838:65:101","nodeType":"YulExpressionStatement","src":"5838:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"5700:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5764:9:101","nodeType":"YulTypedName","src":"5764:9:101","type":""},{"name":"value0","nativeSrc":"5776:6:101","nodeType":"YulTypedName","src":"5776:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5787:4:101","nodeType":"YulTypedName","src":"5787:4:101","type":""}],"src":"5700:210:101"},{"body":{"nativeSrc":"6000:66:101","nodeType":"YulBlock","src":"6000:66:101","statements":[{"nativeSrc":"6010:50:101","nodeType":"YulAssignment","src":"6010:50:101","value":{"arguments":[{"name":"value","nativeSrc":"6054:5:101","nodeType":"YulIdentifier","src":"6054:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"6023:30:101","nodeType":"YulIdentifier","src":"6023:30:101"},"nativeSrc":"6023:37:101","nodeType":"YulFunctionCall","src":"6023:37:101"},"variableNames":[{"name":"converted","nativeSrc":"6010:9:101","nodeType":"YulIdentifier","src":"6010:9:101"}]}]},"name":"convert_t_contract$_IPendlePtOracle_$3568_to_t_address","nativeSrc":"5916:150:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5980:5:101","nodeType":"YulTypedName","src":"5980:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5990:9:101","nodeType":"YulTypedName","src":"5990:9:101","type":""}],"src":"5916:150:101"},{"body":{"nativeSrc":"6161:90:101","nodeType":"YulBlock","src":"6161:90:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6178:3:101","nodeType":"YulIdentifier","src":"6178:3:101"},{"arguments":[{"name":"value","nativeSrc":"6238:5:101","nodeType":"YulIdentifier","src":"6238:5:101"}],"functionName":{"name":"convert_t_contract$_IPendlePtOracle_$3568_to_t_address","nativeSrc":"6183:54:101","nodeType":"YulIdentifier","src":"6183:54:101"},"nativeSrc":"6183:61:101","nodeType":"YulFunctionCall","src":"6183:61:101"}],"functionName":{"name":"mstore","nativeSrc":"6171:6:101","nodeType":"YulIdentifier","src":"6171:6:101"},"nativeSrc":"6171:74:101","nodeType":"YulFunctionCall","src":"6171:74:101"},"nativeSrc":"6171:74:101","nodeType":"YulExpressionStatement","src":"6171:74:101"}]},"name":"abi_encode_t_contract$_IPendlePtOracle_$3568_to_t_address_fromStack","nativeSrc":"6072:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6149:5:101","nodeType":"YulTypedName","src":"6149:5:101","type":""},{"name":"pos","nativeSrc":"6156:3:101","nodeType":"YulTypedName","src":"6156:3:101","type":""}],"src":"6072:179:101"},{"body":{"nativeSrc":"6379:148:101","nodeType":"YulBlock","src":"6379:148:101","statements":[{"nativeSrc":"6389:26:101","nodeType":"YulAssignment","src":"6389:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6401:9:101","nodeType":"YulIdentifier","src":"6401:9:101"},{"kind":"number","nativeSrc":"6412:2:101","nodeType":"YulLiteral","src":"6412:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6397:3:101","nodeType":"YulIdentifier","src":"6397:3:101"},"nativeSrc":"6397:18:101","nodeType":"YulFunctionCall","src":"6397:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6389:4:101","nodeType":"YulIdentifier","src":"6389:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6493:6:101","nodeType":"YulIdentifier","src":"6493:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6506:9:101","nodeType":"YulIdentifier","src":"6506:9:101"},{"kind":"number","nativeSrc":"6517:1:101","nodeType":"YulLiteral","src":"6517:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6502:3:101","nodeType":"YulIdentifier","src":"6502:3:101"},"nativeSrc":"6502:17:101","nodeType":"YulFunctionCall","src":"6502:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IPendlePtOracle_$3568_to_t_address_fromStack","nativeSrc":"6425:67:101","nodeType":"YulIdentifier","src":"6425:67:101"},"nativeSrc":"6425:95:101","nodeType":"YulFunctionCall","src":"6425:95:101"},"nativeSrc":"6425:95:101","nodeType":"YulExpressionStatement","src":"6425:95:101"}]},"name":"abi_encode_tuple_t_contract$_IPendlePtOracle_$3568__to_t_address__fromStack_reversed","nativeSrc":"6257:270:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6351:9:101","nodeType":"YulTypedName","src":"6351:9:101","type":""},{"name":"value0","nativeSrc":"6363:6:101","nodeType":"YulTypedName","src":"6363:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6374:4:101","nodeType":"YulTypedName","src":"6374:4:101","type":""}],"src":"6257:270:101"},{"body":{"nativeSrc":"6577:49:101","nodeType":"YulBlock","src":"6577:49:101","statements":[{"nativeSrc":"6587:33:101","nodeType":"YulAssignment","src":"6587:33:101","value":{"arguments":[{"name":"value","nativeSrc":"6602:5:101","nodeType":"YulIdentifier","src":"6602:5:101"},{"kind":"number","nativeSrc":"6609:10:101","nodeType":"YulLiteral","src":"6609:10:101","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"6598:3:101","nodeType":"YulIdentifier","src":"6598:3:101"},"nativeSrc":"6598:22:101","nodeType":"YulFunctionCall","src":"6598:22:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6587:7:101","nodeType":"YulIdentifier","src":"6587:7:101"}]}]},"name":"cleanup_t_uint32","nativeSrc":"6533:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6559:5:101","nodeType":"YulTypedName","src":"6559:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6569:7:101","nodeType":"YulTypedName","src":"6569:7:101","type":""}],"src":"6533:93:101"},{"body":{"nativeSrc":"6695:52:101","nodeType":"YulBlock","src":"6695:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6712:3:101","nodeType":"YulIdentifier","src":"6712:3:101"},{"arguments":[{"name":"value","nativeSrc":"6734:5:101","nodeType":"YulIdentifier","src":"6734:5:101"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"6717:16:101","nodeType":"YulIdentifier","src":"6717:16:101"},"nativeSrc":"6717:23:101","nodeType":"YulFunctionCall","src":"6717:23:101"}],"functionName":{"name":"mstore","nativeSrc":"6705:6:101","nodeType":"YulIdentifier","src":"6705:6:101"},"nativeSrc":"6705:36:101","nodeType":"YulFunctionCall","src":"6705:36:101"},"nativeSrc":"6705:36:101","nodeType":"YulExpressionStatement","src":"6705:36:101"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"6632:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6683:5:101","nodeType":"YulTypedName","src":"6683:5:101","type":""},{"name":"pos","nativeSrc":"6690:3:101","nodeType":"YulTypedName","src":"6690:3:101","type":""}],"src":"6632:115:101"},{"body":{"nativeSrc":"6849:122:101","nodeType":"YulBlock","src":"6849:122:101","statements":[{"nativeSrc":"6859:26:101","nodeType":"YulAssignment","src":"6859:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6871:9:101","nodeType":"YulIdentifier","src":"6871:9:101"},{"kind":"number","nativeSrc":"6882:2:101","nodeType":"YulLiteral","src":"6882:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6867:3:101","nodeType":"YulIdentifier","src":"6867:3:101"},"nativeSrc":"6867:18:101","nodeType":"YulFunctionCall","src":"6867:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6859:4:101","nodeType":"YulIdentifier","src":"6859:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6937:6:101","nodeType":"YulIdentifier","src":"6937:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6950:9:101","nodeType":"YulIdentifier","src":"6950:9:101"},{"kind":"number","nativeSrc":"6961:1:101","nodeType":"YulLiteral","src":"6961:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6946:3:101","nodeType":"YulIdentifier","src":"6946:3:101"},"nativeSrc":"6946:17:101","nodeType":"YulFunctionCall","src":"6946:17:101"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"6895:41:101","nodeType":"YulIdentifier","src":"6895:41:101"},"nativeSrc":"6895:69:101","nodeType":"YulFunctionCall","src":"6895:69:101"},"nativeSrc":"6895:69:101","nodeType":"YulExpressionStatement","src":"6895:69:101"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nativeSrc":"6753:218:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6821:9:101","nodeType":"YulTypedName","src":"6821:9:101","type":""},{"name":"value0","nativeSrc":"6833:6:101","nodeType":"YulTypedName","src":"6833:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6844:4:101","nodeType":"YulTypedName","src":"6844:4:101","type":""}],"src":"6753:218:101"},{"body":{"nativeSrc":"7070:66:101","nodeType":"YulBlock","src":"7070:66:101","statements":[{"nativeSrc":"7080:50:101","nodeType":"YulAssignment","src":"7080:50:101","value":{"arguments":[{"name":"value","nativeSrc":"7124:5:101","nodeType":"YulIdentifier","src":"7124:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"7093:30:101","nodeType":"YulIdentifier","src":"7093:30:101"},"nativeSrc":"7093:37:101","nodeType":"YulFunctionCall","src":"7093:37:101"},"variableNames":[{"name":"converted","nativeSrc":"7080:9:101","nodeType":"YulIdentifier","src":"7080:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"6977:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7050:5:101","nodeType":"YulTypedName","src":"7050:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7060:9:101","nodeType":"YulTypedName","src":"7060:9:101","type":""}],"src":"6977:159:101"},{"body":{"nativeSrc":"7240:99:101","nodeType":"YulBlock","src":"7240:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7257:3:101","nodeType":"YulIdentifier","src":"7257:3:101"},{"arguments":[{"name":"value","nativeSrc":"7326:5:101","nodeType":"YulIdentifier","src":"7326:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"7262:63:101","nodeType":"YulIdentifier","src":"7262:63:101"},"nativeSrc":"7262:70:101","nodeType":"YulFunctionCall","src":"7262:70:101"}],"functionName":{"name":"mstore","nativeSrc":"7250:6:101","nodeType":"YulIdentifier","src":"7250:6:101"},"nativeSrc":"7250:83:101","nodeType":"YulFunctionCall","src":"7250:83:101"},"nativeSrc":"7250:83:101","nodeType":"YulExpressionStatement","src":"7250:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"7142:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7228:5:101","nodeType":"YulTypedName","src":"7228:5:101","type":""},{"name":"pos","nativeSrc":"7235:3:101","nodeType":"YulTypedName","src":"7235:3:101","type":""}],"src":"7142:197:101"},{"body":{"nativeSrc":"7476:157:101","nodeType":"YulBlock","src":"7476:157:101","statements":[{"nativeSrc":"7486:26:101","nodeType":"YulAssignment","src":"7486:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7498:9:101","nodeType":"YulIdentifier","src":"7498:9:101"},{"kind":"number","nativeSrc":"7509:2:101","nodeType":"YulLiteral","src":"7509:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7494:3:101","nodeType":"YulIdentifier","src":"7494:3:101"},"nativeSrc":"7494:18:101","nodeType":"YulFunctionCall","src":"7494:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7486:4:101","nodeType":"YulIdentifier","src":"7486:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7599:6:101","nodeType":"YulIdentifier","src":"7599:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"7612:9:101","nodeType":"YulIdentifier","src":"7612:9:101"},{"kind":"number","nativeSrc":"7623:1:101","nodeType":"YulLiteral","src":"7623:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7608:3:101","nodeType":"YulIdentifier","src":"7608:3:101"},"nativeSrc":"7608:17:101","nodeType":"YulFunctionCall","src":"7608:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"7522:76:101","nodeType":"YulIdentifier","src":"7522:76:101"},"nativeSrc":"7522:104:101","nodeType":"YulFunctionCall","src":"7522:104:101"},"nativeSrc":"7522:104:101","nodeType":"YulExpressionStatement","src":"7522:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"7345:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7448:9:101","nodeType":"YulTypedName","src":"7448:9:101","type":""},{"name":"value0","nativeSrc":"7460:6:101","nodeType":"YulTypedName","src":"7460:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7471:4:101","nodeType":"YulTypedName","src":"7471:4:101","type":""}],"src":"7345:288:101"},{"body":{"nativeSrc":"7667:152:101","nodeType":"YulBlock","src":"7667:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7684:1:101","nodeType":"YulLiteral","src":"7684:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7687:77:101","nodeType":"YulLiteral","src":"7687:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7677:6:101","nodeType":"YulIdentifier","src":"7677:6:101"},"nativeSrc":"7677:88:101","nodeType":"YulFunctionCall","src":"7677:88:101"},"nativeSrc":"7677:88:101","nodeType":"YulExpressionStatement","src":"7677:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7781:1:101","nodeType":"YulLiteral","src":"7781:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"7784:4:101","nodeType":"YulLiteral","src":"7784:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7774:6:101","nodeType":"YulIdentifier","src":"7774:6:101"},"nativeSrc":"7774:15:101","nodeType":"YulFunctionCall","src":"7774:15:101"},"nativeSrc":"7774:15:101","nodeType":"YulExpressionStatement","src":"7774:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7805:1:101","nodeType":"YulLiteral","src":"7805:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7808:4:101","nodeType":"YulLiteral","src":"7808:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7798:6:101","nodeType":"YulIdentifier","src":"7798:6:101"},"nativeSrc":"7798:15:101","nodeType":"YulFunctionCall","src":"7798:15:101"},"nativeSrc":"7798:15:101","nodeType":"YulExpressionStatement","src":"7798:15:101"}]},"name":"panic_error_0x12","nativeSrc":"7639:180:101","nodeType":"YulFunctionDefinition","src":"7639:180:101"},{"body":{"nativeSrc":"7853:152:101","nodeType":"YulBlock","src":"7853:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7870:1:101","nodeType":"YulLiteral","src":"7870:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7873:77:101","nodeType":"YulLiteral","src":"7873:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7863:6:101","nodeType":"YulIdentifier","src":"7863:6:101"},"nativeSrc":"7863:88:101","nodeType":"YulFunctionCall","src":"7863:88:101"},"nativeSrc":"7863:88:101","nodeType":"YulExpressionStatement","src":"7863:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7967:1:101","nodeType":"YulLiteral","src":"7967:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"7970:4:101","nodeType":"YulLiteral","src":"7970:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7960:6:101","nodeType":"YulIdentifier","src":"7960:6:101"},"nativeSrc":"7960:15:101","nodeType":"YulFunctionCall","src":"7960:15:101"},"nativeSrc":"7960:15:101","nodeType":"YulExpressionStatement","src":"7960:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7991:1:101","nodeType":"YulLiteral","src":"7991:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7994:4:101","nodeType":"YulLiteral","src":"7994:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7984:6:101","nodeType":"YulIdentifier","src":"7984:6:101"},"nativeSrc":"7984:15:101","nodeType":"YulFunctionCall","src":"7984:15:101"},"nativeSrc":"7984:15:101","nodeType":"YulExpressionStatement","src":"7984:15:101"}]},"name":"panic_error_0x11","nativeSrc":"7825:180:101","nodeType":"YulFunctionDefinition","src":"7825:180:101"},{"body":{"nativeSrc":"8053:143:101","nodeType":"YulBlock","src":"8053:143:101","statements":[{"nativeSrc":"8063:25:101","nodeType":"YulAssignment","src":"8063:25:101","value":{"arguments":[{"name":"x","nativeSrc":"8086:1:101","nodeType":"YulIdentifier","src":"8086:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8068:17:101","nodeType":"YulIdentifier","src":"8068:17:101"},"nativeSrc":"8068:20:101","nodeType":"YulFunctionCall","src":"8068:20:101"},"variableNames":[{"name":"x","nativeSrc":"8063:1:101","nodeType":"YulIdentifier","src":"8063:1:101"}]},{"nativeSrc":"8097:25:101","nodeType":"YulAssignment","src":"8097:25:101","value":{"arguments":[{"name":"y","nativeSrc":"8120:1:101","nodeType":"YulIdentifier","src":"8120:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8102:17:101","nodeType":"YulIdentifier","src":"8102:17:101"},"nativeSrc":"8102:20:101","nodeType":"YulFunctionCall","src":"8102:20:101"},"variableNames":[{"name":"y","nativeSrc":"8097:1:101","nodeType":"YulIdentifier","src":"8097:1:101"}]},{"body":{"nativeSrc":"8144:22:101","nodeType":"YulBlock","src":"8144:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8146:16:101","nodeType":"YulIdentifier","src":"8146:16:101"},"nativeSrc":"8146:18:101","nodeType":"YulFunctionCall","src":"8146:18:101"},"nativeSrc":"8146:18:101","nodeType":"YulExpressionStatement","src":"8146:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8141:1:101","nodeType":"YulIdentifier","src":"8141:1:101"}],"functionName":{"name":"iszero","nativeSrc":"8134:6:101","nodeType":"YulIdentifier","src":"8134:6:101"},"nativeSrc":"8134:9:101","nodeType":"YulFunctionCall","src":"8134:9:101"},"nativeSrc":"8131:35:101","nodeType":"YulIf","src":"8131:35:101"},{"nativeSrc":"8176:14:101","nodeType":"YulAssignment","src":"8176:14:101","value":{"arguments":[{"name":"x","nativeSrc":"8185:1:101","nodeType":"YulIdentifier","src":"8185:1:101"},{"name":"y","nativeSrc":"8188:1:101","nodeType":"YulIdentifier","src":"8188:1:101"}],"functionName":{"name":"div","nativeSrc":"8181:3:101","nodeType":"YulIdentifier","src":"8181:3:101"},"nativeSrc":"8181:9:101","nodeType":"YulFunctionCall","src":"8181:9:101"},"variableNames":[{"name":"r","nativeSrc":"8176:1:101","nodeType":"YulIdentifier","src":"8176:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"8011:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8042:1:101","nodeType":"YulTypedName","src":"8042:1:101","type":""},{"name":"y","nativeSrc":"8045:1:101","nodeType":"YulTypedName","src":"8045:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8051:1:101","nodeType":"YulTypedName","src":"8051:1:101","type":""}],"src":"8011:185:101"},{"body":{"nativeSrc":"8247:149:101","nodeType":"YulBlock","src":"8247:149:101","statements":[{"nativeSrc":"8257:25:101","nodeType":"YulAssignment","src":"8257:25:101","value":{"arguments":[{"name":"x","nativeSrc":"8280:1:101","nodeType":"YulIdentifier","src":"8280:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8262:17:101","nodeType":"YulIdentifier","src":"8262:17:101"},"nativeSrc":"8262:20:101","nodeType":"YulFunctionCall","src":"8262:20:101"},"variableNames":[{"name":"x","nativeSrc":"8257:1:101","nodeType":"YulIdentifier","src":"8257:1:101"}]},{"nativeSrc":"8291:25:101","nodeType":"YulAssignment","src":"8291:25:101","value":{"arguments":[{"name":"y","nativeSrc":"8314:1:101","nodeType":"YulIdentifier","src":"8314:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8296:17:101","nodeType":"YulIdentifier","src":"8296:17:101"},"nativeSrc":"8296:20:101","nodeType":"YulFunctionCall","src":"8296:20:101"},"variableNames":[{"name":"y","nativeSrc":"8291:1:101","nodeType":"YulIdentifier","src":"8291:1:101"}]},{"nativeSrc":"8325:17:101","nodeType":"YulAssignment","src":"8325:17:101","value":{"arguments":[{"name":"x","nativeSrc":"8337:1:101","nodeType":"YulIdentifier","src":"8337:1:101"},{"name":"y","nativeSrc":"8340:1:101","nodeType":"YulIdentifier","src":"8340:1:101"}],"functionName":{"name":"sub","nativeSrc":"8333:3:101","nodeType":"YulIdentifier","src":"8333:3:101"},"nativeSrc":"8333:9:101","nodeType":"YulFunctionCall","src":"8333:9:101"},"variableNames":[{"name":"diff","nativeSrc":"8325:4:101","nodeType":"YulIdentifier","src":"8325:4:101"}]},{"body":{"nativeSrc":"8367:22:101","nodeType":"YulBlock","src":"8367:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8369:16:101","nodeType":"YulIdentifier","src":"8369:16:101"},"nativeSrc":"8369:18:101","nodeType":"YulFunctionCall","src":"8369:18:101"},"nativeSrc":"8369:18:101","nodeType":"YulExpressionStatement","src":"8369:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"8358:4:101","nodeType":"YulIdentifier","src":"8358:4:101"},{"name":"x","nativeSrc":"8364:1:101","nodeType":"YulIdentifier","src":"8364:1:101"}],"functionName":{"name":"gt","nativeSrc":"8355:2:101","nodeType":"YulIdentifier","src":"8355:2:101"},"nativeSrc":"8355:11:101","nodeType":"YulFunctionCall","src":"8355:11:101"},"nativeSrc":"8352:37:101","nodeType":"YulIf","src":"8352:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"8202:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8233:1:101","nodeType":"YulTypedName","src":"8233:1:101","type":""},{"name":"y","nativeSrc":"8236:1:101","nodeType":"YulTypedName","src":"8236:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"8242:4:101","nodeType":"YulTypedName","src":"8242:4:101","type":""}],"src":"8202:194:101"},{"body":{"nativeSrc":"8446:147:101","nodeType":"YulBlock","src":"8446:147:101","statements":[{"nativeSrc":"8456:25:101","nodeType":"YulAssignment","src":"8456:25:101","value":{"arguments":[{"name":"x","nativeSrc":"8479:1:101","nodeType":"YulIdentifier","src":"8479:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8461:17:101","nodeType":"YulIdentifier","src":"8461:17:101"},"nativeSrc":"8461:20:101","nodeType":"YulFunctionCall","src":"8461:20:101"},"variableNames":[{"name":"x","nativeSrc":"8456:1:101","nodeType":"YulIdentifier","src":"8456:1:101"}]},{"nativeSrc":"8490:25:101","nodeType":"YulAssignment","src":"8490:25:101","value":{"arguments":[{"name":"y","nativeSrc":"8513:1:101","nodeType":"YulIdentifier","src":"8513:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8495:17:101","nodeType":"YulIdentifier","src":"8495:17:101"},"nativeSrc":"8495:20:101","nodeType":"YulFunctionCall","src":"8495:20:101"},"variableNames":[{"name":"y","nativeSrc":"8490:1:101","nodeType":"YulIdentifier","src":"8490:1:101"}]},{"nativeSrc":"8524:16:101","nodeType":"YulAssignment","src":"8524:16:101","value":{"arguments":[{"name":"x","nativeSrc":"8535:1:101","nodeType":"YulIdentifier","src":"8535:1:101"},{"name":"y","nativeSrc":"8538:1:101","nodeType":"YulIdentifier","src":"8538:1:101"}],"functionName":{"name":"add","nativeSrc":"8531:3:101","nodeType":"YulIdentifier","src":"8531:3:101"},"nativeSrc":"8531:9:101","nodeType":"YulFunctionCall","src":"8531:9:101"},"variableNames":[{"name":"sum","nativeSrc":"8524:3:101","nodeType":"YulIdentifier","src":"8524:3:101"}]},{"body":{"nativeSrc":"8564:22:101","nodeType":"YulBlock","src":"8564:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8566:16:101","nodeType":"YulIdentifier","src":"8566:16:101"},"nativeSrc":"8566:18:101","nodeType":"YulFunctionCall","src":"8566:18:101"},"nativeSrc":"8566:18:101","nodeType":"YulExpressionStatement","src":"8566:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"8556:1:101","nodeType":"YulIdentifier","src":"8556:1:101"},{"name":"sum","nativeSrc":"8559:3:101","nodeType":"YulIdentifier","src":"8559:3:101"}],"functionName":{"name":"gt","nativeSrc":"8553:2:101","nodeType":"YulIdentifier","src":"8553:2:101"},"nativeSrc":"8553:10:101","nodeType":"YulFunctionCall","src":"8553:10:101"},"nativeSrc":"8550:36:101","nodeType":"YulIf","src":"8550:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"8402:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8433:1:101","nodeType":"YulTypedName","src":"8433:1:101","type":""},{"name":"y","nativeSrc":"8436:1:101","nodeType":"YulTypedName","src":"8436:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"8442:3:101","nodeType":"YulTypedName","src":"8442:3:101","type":""}],"src":"8402:191:101"},{"body":{"nativeSrc":"8723:204:101","nodeType":"YulBlock","src":"8723:204:101","statements":[{"nativeSrc":"8733:26:101","nodeType":"YulAssignment","src":"8733:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8745:9:101","nodeType":"YulIdentifier","src":"8745:9:101"},{"kind":"number","nativeSrc":"8756:2:101","nodeType":"YulLiteral","src":"8756:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8741:3:101","nodeType":"YulIdentifier","src":"8741:3:101"},"nativeSrc":"8741:18:101","nodeType":"YulFunctionCall","src":"8741:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8733:4:101","nodeType":"YulIdentifier","src":"8733:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8813:6:101","nodeType":"YulIdentifier","src":"8813:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8826:9:101","nodeType":"YulIdentifier","src":"8826:9:101"},{"kind":"number","nativeSrc":"8837:1:101","nodeType":"YulLiteral","src":"8837:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8822:3:101","nodeType":"YulIdentifier","src":"8822:3:101"},"nativeSrc":"8822:17:101","nodeType":"YulFunctionCall","src":"8822:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8769:43:101","nodeType":"YulIdentifier","src":"8769:43:101"},"nativeSrc":"8769:71:101","nodeType":"YulFunctionCall","src":"8769:71:101"},"nativeSrc":"8769:71:101","nodeType":"YulExpressionStatement","src":"8769:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"8892:6:101","nodeType":"YulIdentifier","src":"8892:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8905:9:101","nodeType":"YulIdentifier","src":"8905:9:101"},{"kind":"number","nativeSrc":"8916:2:101","nodeType":"YulLiteral","src":"8916:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8901:3:101","nodeType":"YulIdentifier","src":"8901:3:101"},"nativeSrc":"8901:18:101","nodeType":"YulFunctionCall","src":"8901:18:101"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"8850:41:101","nodeType":"YulIdentifier","src":"8850:41:101"},"nativeSrc":"8850:70:101","nodeType":"YulFunctionCall","src":"8850:70:101"},"nativeSrc":"8850:70:101","nodeType":"YulExpressionStatement","src":"8850:70:101"}]},"name":"abi_encode_tuple_t_address_t_uint32__to_t_address_t_uint32__fromStack_reversed","nativeSrc":"8599:328:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8687:9:101","nodeType":"YulTypedName","src":"8687:9:101","type":""},{"name":"value1","nativeSrc":"8699:6:101","nodeType":"YulTypedName","src":"8699:6:101","type":""},{"name":"value0","nativeSrc":"8707:6:101","nodeType":"YulTypedName","src":"8707:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8718:4:101","nodeType":"YulTypedName","src":"8718:4:101","type":""}],"src":"8599:328:101"},{"body":{"nativeSrc":"8996:80:101","nodeType":"YulBlock","src":"8996:80:101","statements":[{"nativeSrc":"9006:22:101","nodeType":"YulAssignment","src":"9006:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"9021:6:101","nodeType":"YulIdentifier","src":"9021:6:101"}],"functionName":{"name":"mload","nativeSrc":"9015:5:101","nodeType":"YulIdentifier","src":"9015:5:101"},"nativeSrc":"9015:13:101","nodeType":"YulFunctionCall","src":"9015:13:101"},"variableNames":[{"name":"value","nativeSrc":"9006:5:101","nodeType":"YulIdentifier","src":"9006:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9064:5:101","nodeType":"YulIdentifier","src":"9064:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"9037:26:101","nodeType":"YulIdentifier","src":"9037:26:101"},"nativeSrc":"9037:33:101","nodeType":"YulFunctionCall","src":"9037:33:101"},"nativeSrc":"9037:33:101","nodeType":"YulExpressionStatement","src":"9037:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"8933:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8974:6:101","nodeType":"YulTypedName","src":"8974:6:101","type":""},{"name":"end","nativeSrc":"8982:3:101","nodeType":"YulTypedName","src":"8982:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8990:5:101","nodeType":"YulTypedName","src":"8990:5:101","type":""}],"src":"8933:143:101"},{"body":{"nativeSrc":"9159:274:101","nodeType":"YulBlock","src":"9159:274:101","statements":[{"body":{"nativeSrc":"9205:83:101","nodeType":"YulBlock","src":"9205:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9207:77:101","nodeType":"YulIdentifier","src":"9207:77:101"},"nativeSrc":"9207:79:101","nodeType":"YulFunctionCall","src":"9207:79:101"},"nativeSrc":"9207:79:101","nodeType":"YulExpressionStatement","src":"9207:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9180:7:101","nodeType":"YulIdentifier","src":"9180:7:101"},{"name":"headStart","nativeSrc":"9189:9:101","nodeType":"YulIdentifier","src":"9189:9:101"}],"functionName":{"name":"sub","nativeSrc":"9176:3:101","nodeType":"YulIdentifier","src":"9176:3:101"},"nativeSrc":"9176:23:101","nodeType":"YulFunctionCall","src":"9176:23:101"},{"kind":"number","nativeSrc":"9201:2:101","nodeType":"YulLiteral","src":"9201:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9172:3:101","nodeType":"YulIdentifier","src":"9172:3:101"},"nativeSrc":"9172:32:101","nodeType":"YulFunctionCall","src":"9172:32:101"},"nativeSrc":"9169:119:101","nodeType":"YulIf","src":"9169:119:101"},{"nativeSrc":"9298:128:101","nodeType":"YulBlock","src":"9298:128:101","statements":[{"nativeSrc":"9313:15:101","nodeType":"YulVariableDeclaration","src":"9313:15:101","value":{"kind":"number","nativeSrc":"9327:1:101","nodeType":"YulLiteral","src":"9327:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9317:6:101","nodeType":"YulTypedName","src":"9317:6:101","type":""}]},{"nativeSrc":"9342:74:101","nodeType":"YulAssignment","src":"9342:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9388:9:101","nodeType":"YulIdentifier","src":"9388:9:101"},{"name":"offset","nativeSrc":"9399:6:101","nodeType":"YulIdentifier","src":"9399:6:101"}],"functionName":{"name":"add","nativeSrc":"9384:3:101","nodeType":"YulIdentifier","src":"9384:3:101"},"nativeSrc":"9384:22:101","nodeType":"YulFunctionCall","src":"9384:22:101"},{"name":"dataEnd","nativeSrc":"9408:7:101","nodeType":"YulIdentifier","src":"9408:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"9352:31:101","nodeType":"YulIdentifier","src":"9352:31:101"},"nativeSrc":"9352:64:101","nodeType":"YulFunctionCall","src":"9352:64:101"},"variableNames":[{"name":"value0","nativeSrc":"9342:6:101","nodeType":"YulIdentifier","src":"9342:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"9082:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9129:9:101","nodeType":"YulTypedName","src":"9129:9:101","type":""},{"name":"dataEnd","nativeSrc":"9140:7:101","nodeType":"YulTypedName","src":"9140:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9152:6:101","nodeType":"YulTypedName","src":"9152:6:101","type":""}],"src":"9082:351:101"},{"body":{"nativeSrc":"9490:51:101","nodeType":"YulBlock","src":"9490:51:101","statements":[{"nativeSrc":"9500:34:101","nodeType":"YulAssignment","src":"9500:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"9525:1:101","nodeType":"YulLiteral","src":"9525:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"9528:5:101","nodeType":"YulIdentifier","src":"9528:5:101"}],"functionName":{"name":"shr","nativeSrc":"9521:3:101","nodeType":"YulIdentifier","src":"9521:3:101"},"nativeSrc":"9521:13:101","nodeType":"YulFunctionCall","src":"9521:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"9500:8:101","nodeType":"YulIdentifier","src":"9500:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"9439:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9471:5:101","nodeType":"YulTypedName","src":"9471:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"9481:8:101","nodeType":"YulTypedName","src":"9481:8:101","type":""}],"src":"9439:102:101"},{"body":{"nativeSrc":"9620:775:101","nodeType":"YulBlock","src":"9620:775:101","statements":[{"nativeSrc":"9630:15:101","nodeType":"YulAssignment","src":"9630:15:101","value":{"name":"_power","nativeSrc":"9639:6:101","nodeType":"YulIdentifier","src":"9639:6:101"},"variableNames":[{"name":"power","nativeSrc":"9630:5:101","nodeType":"YulIdentifier","src":"9630:5:101"}]},{"nativeSrc":"9654:14:101","nodeType":"YulAssignment","src":"9654:14:101","value":{"name":"_base","nativeSrc":"9663:5:101","nodeType":"YulIdentifier","src":"9663:5:101"},"variableNames":[{"name":"base","nativeSrc":"9654:4:101","nodeType":"YulIdentifier","src":"9654:4:101"}]},{"body":{"nativeSrc":"9712:677:101","nodeType":"YulBlock","src":"9712:677:101","statements":[{"body":{"nativeSrc":"9800:22:101","nodeType":"YulBlock","src":"9800:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9802:16:101","nodeType":"YulIdentifier","src":"9802:16:101"},"nativeSrc":"9802:18:101","nodeType":"YulFunctionCall","src":"9802:18:101"},"nativeSrc":"9802:18:101","nodeType":"YulExpressionStatement","src":"9802:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9778:4:101","nodeType":"YulIdentifier","src":"9778:4:101"},{"arguments":[{"name":"max","nativeSrc":"9788:3:101","nodeType":"YulIdentifier","src":"9788:3:101"},{"name":"base","nativeSrc":"9793:4:101","nodeType":"YulIdentifier","src":"9793:4:101"}],"functionName":{"name":"div","nativeSrc":"9784:3:101","nodeType":"YulIdentifier","src":"9784:3:101"},"nativeSrc":"9784:14:101","nodeType":"YulFunctionCall","src":"9784:14:101"}],"functionName":{"name":"gt","nativeSrc":"9775:2:101","nodeType":"YulIdentifier","src":"9775:2:101"},"nativeSrc":"9775:24:101","nodeType":"YulFunctionCall","src":"9775:24:101"},"nativeSrc":"9772:50:101","nodeType":"YulIf","src":"9772:50:101"},{"body":{"nativeSrc":"9867:419:101","nodeType":"YulBlock","src":"9867:419:101","statements":[{"nativeSrc":"10247:25:101","nodeType":"YulAssignment","src":"10247:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10260:5:101","nodeType":"YulIdentifier","src":"10260:5:101"},{"name":"base","nativeSrc":"10267:4:101","nodeType":"YulIdentifier","src":"10267:4:101"}],"functionName":{"name":"mul","nativeSrc":"10256:3:101","nodeType":"YulIdentifier","src":"10256:3:101"},"nativeSrc":"10256:16:101","nodeType":"YulFunctionCall","src":"10256:16:101"},"variableNames":[{"name":"power","nativeSrc":"10247:5:101","nodeType":"YulIdentifier","src":"10247:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9842:8:101","nodeType":"YulIdentifier","src":"9842:8:101"},{"kind":"number","nativeSrc":"9852:1:101","nodeType":"YulLiteral","src":"9852:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"9838:3:101","nodeType":"YulIdentifier","src":"9838:3:101"},"nativeSrc":"9838:16:101","nodeType":"YulFunctionCall","src":"9838:16:101"},"nativeSrc":"9835:451:101","nodeType":"YulIf","src":"9835:451:101"},{"nativeSrc":"10299:23:101","nodeType":"YulAssignment","src":"10299:23:101","value":{"arguments":[{"name":"base","nativeSrc":"10311:4:101","nodeType":"YulIdentifier","src":"10311:4:101"},{"name":"base","nativeSrc":"10317:4:101","nodeType":"YulIdentifier","src":"10317:4:101"}],"functionName":{"name":"mul","nativeSrc":"10307:3:101","nodeType":"YulIdentifier","src":"10307:3:101"},"nativeSrc":"10307:15:101","nodeType":"YulFunctionCall","src":"10307:15:101"},"variableNames":[{"name":"base","nativeSrc":"10299:4:101","nodeType":"YulIdentifier","src":"10299:4:101"}]},{"nativeSrc":"10335:44:101","nodeType":"YulAssignment","src":"10335:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10370:8:101","nodeType":"YulIdentifier","src":"10370:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"10347:22:101","nodeType":"YulIdentifier","src":"10347:22:101"},"nativeSrc":"10347:32:101","nodeType":"YulFunctionCall","src":"10347:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"10335:8:101","nodeType":"YulIdentifier","src":"10335:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9688:8:101","nodeType":"YulIdentifier","src":"9688:8:101"},{"kind":"number","nativeSrc":"9698:1:101","nodeType":"YulLiteral","src":"9698:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"9685:2:101","nodeType":"YulIdentifier","src":"9685:2:101"},"nativeSrc":"9685:15:101","nodeType":"YulFunctionCall","src":"9685:15:101"},"nativeSrc":"9677:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"9701:2:101","nodeType":"YulBlock","src":"9701:2:101","statements":[]},"pre":{"nativeSrc":"9681:3:101","nodeType":"YulBlock","src":"9681:3:101","statements":[]},"src":"9677:712:101"}]},"name":"checked_exp_helper","nativeSrc":"9547:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"9575:6:101","nodeType":"YulTypedName","src":"9575:6:101","type":""},{"name":"_base","nativeSrc":"9583:5:101","nodeType":"YulTypedName","src":"9583:5:101","type":""},{"name":"exponent","nativeSrc":"9590:8:101","nodeType":"YulTypedName","src":"9590:8:101","type":""},{"name":"max","nativeSrc":"9600:3:101","nodeType":"YulTypedName","src":"9600:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9608:5:101","nodeType":"YulTypedName","src":"9608:5:101","type":""},{"name":"base","nativeSrc":"9615:4:101","nodeType":"YulTypedName","src":"9615:4:101","type":""}],"src":"9547:848:101"},{"body":{"nativeSrc":"10461:1013:101","nodeType":"YulBlock","src":"10461:1013:101","statements":[{"body":{"nativeSrc":"10656:20:101","nodeType":"YulBlock","src":"10656:20:101","statements":[{"nativeSrc":"10658:10:101","nodeType":"YulAssignment","src":"10658:10:101","value":{"kind":"number","nativeSrc":"10667:1:101","nodeType":"YulLiteral","src":"10667:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"10658:5:101","nodeType":"YulIdentifier","src":"10658:5:101"}]},{"nativeSrc":"10669:5:101","nodeType":"YulLeave","src":"10669:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"10646:8:101","nodeType":"YulIdentifier","src":"10646:8:101"}],"functionName":{"name":"iszero","nativeSrc":"10639:6:101","nodeType":"YulIdentifier","src":"10639:6:101"},"nativeSrc":"10639:16:101","nodeType":"YulFunctionCall","src":"10639:16:101"},"nativeSrc":"10636:40:101","nodeType":"YulIf","src":"10636:40:101"},{"body":{"nativeSrc":"10701:20:101","nodeType":"YulBlock","src":"10701:20:101","statements":[{"nativeSrc":"10703:10:101","nodeType":"YulAssignment","src":"10703:10:101","value":{"kind":"number","nativeSrc":"10712:1:101","nodeType":"YulLiteral","src":"10712:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"10703:5:101","nodeType":"YulIdentifier","src":"10703:5:101"}]},{"nativeSrc":"10714:5:101","nodeType":"YulLeave","src":"10714:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"10695:4:101","nodeType":"YulIdentifier","src":"10695:4:101"}],"functionName":{"name":"iszero","nativeSrc":"10688:6:101","nodeType":"YulIdentifier","src":"10688:6:101"},"nativeSrc":"10688:12:101","nodeType":"YulFunctionCall","src":"10688:12:101"},"nativeSrc":"10685:36:101","nodeType":"YulIf","src":"10685:36:101"},{"cases":[{"body":{"nativeSrc":"10831:20:101","nodeType":"YulBlock","src":"10831:20:101","statements":[{"nativeSrc":"10833:10:101","nodeType":"YulAssignment","src":"10833:10:101","value":{"kind":"number","nativeSrc":"10842:1:101","nodeType":"YulLiteral","src":"10842:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"10833:5:101","nodeType":"YulIdentifier","src":"10833:5:101"}]},{"nativeSrc":"10844:5:101","nodeType":"YulLeave","src":"10844:5:101"}]},"nativeSrc":"10824:27:101","nodeType":"YulCase","src":"10824:27:101","value":{"kind":"number","nativeSrc":"10829:1:101","nodeType":"YulLiteral","src":"10829:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"10875:176:101","nodeType":"YulBlock","src":"10875:176:101","statements":[{"body":{"nativeSrc":"10910:22:101","nodeType":"YulBlock","src":"10910:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10912:16:101","nodeType":"YulIdentifier","src":"10912:16:101"},"nativeSrc":"10912:18:101","nodeType":"YulFunctionCall","src":"10912:18:101"},"nativeSrc":"10912:18:101","nodeType":"YulExpressionStatement","src":"10912:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"10895:8:101","nodeType":"YulIdentifier","src":"10895:8:101"},{"kind":"number","nativeSrc":"10905:3:101","nodeType":"YulLiteral","src":"10905:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"10892:2:101","nodeType":"YulIdentifier","src":"10892:2:101"},"nativeSrc":"10892:17:101","nodeType":"YulFunctionCall","src":"10892:17:101"},"nativeSrc":"10889:43:101","nodeType":"YulIf","src":"10889:43:101"},{"nativeSrc":"10945:25:101","nodeType":"YulAssignment","src":"10945:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"10958:1:101","nodeType":"YulLiteral","src":"10958:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"10961:8:101","nodeType":"YulIdentifier","src":"10961:8:101"}],"functionName":{"name":"exp","nativeSrc":"10954:3:101","nodeType":"YulIdentifier","src":"10954:3:101"},"nativeSrc":"10954:16:101","nodeType":"YulFunctionCall","src":"10954:16:101"},"variableNames":[{"name":"power","nativeSrc":"10945:5:101","nodeType":"YulIdentifier","src":"10945:5:101"}]},{"body":{"nativeSrc":"11001:22:101","nodeType":"YulBlock","src":"11001:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11003:16:101","nodeType":"YulIdentifier","src":"11003:16:101"},"nativeSrc":"11003:18:101","nodeType":"YulFunctionCall","src":"11003:18:101"},"nativeSrc":"11003:18:101","nodeType":"YulExpressionStatement","src":"11003:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10989:5:101","nodeType":"YulIdentifier","src":"10989:5:101"},{"name":"max","nativeSrc":"10996:3:101","nodeType":"YulIdentifier","src":"10996:3:101"}],"functionName":{"name":"gt","nativeSrc":"10986:2:101","nodeType":"YulIdentifier","src":"10986:2:101"},"nativeSrc":"10986:14:101","nodeType":"YulFunctionCall","src":"10986:14:101"},"nativeSrc":"10983:40:101","nodeType":"YulIf","src":"10983:40:101"},{"nativeSrc":"11036:5:101","nodeType":"YulLeave","src":"11036:5:101"}]},"nativeSrc":"10860:191:101","nodeType":"YulCase","src":"10860:191:101","value":{"kind":"number","nativeSrc":"10865:1:101","nodeType":"YulLiteral","src":"10865:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"10781:4:101","nodeType":"YulIdentifier","src":"10781:4:101"},"nativeSrc":"10774:277:101","nodeType":"YulSwitch","src":"10774:277:101"},{"body":{"nativeSrc":"11183:123:101","nodeType":"YulBlock","src":"11183:123:101","statements":[{"nativeSrc":"11197:28:101","nodeType":"YulAssignment","src":"11197:28:101","value":{"arguments":[{"name":"base","nativeSrc":"11210:4:101","nodeType":"YulIdentifier","src":"11210:4:101"},{"name":"exponent","nativeSrc":"11216:8:101","nodeType":"YulIdentifier","src":"11216:8:101"}],"functionName":{"name":"exp","nativeSrc":"11206:3:101","nodeType":"YulIdentifier","src":"11206:3:101"},"nativeSrc":"11206:19:101","nodeType":"YulFunctionCall","src":"11206:19:101"},"variableNames":[{"name":"power","nativeSrc":"11197:5:101","nodeType":"YulIdentifier","src":"11197:5:101"}]},{"body":{"nativeSrc":"11256:22:101","nodeType":"YulBlock","src":"11256:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11258:16:101","nodeType":"YulIdentifier","src":"11258:16:101"},"nativeSrc":"11258:18:101","nodeType":"YulFunctionCall","src":"11258:18:101"},"nativeSrc":"11258:18:101","nodeType":"YulExpressionStatement","src":"11258:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"11244:5:101","nodeType":"YulIdentifier","src":"11244:5:101"},{"name":"max","nativeSrc":"11251:3:101","nodeType":"YulIdentifier","src":"11251:3:101"}],"functionName":{"name":"gt","nativeSrc":"11241:2:101","nodeType":"YulIdentifier","src":"11241:2:101"},"nativeSrc":"11241:14:101","nodeType":"YulFunctionCall","src":"11241:14:101"},"nativeSrc":"11238:40:101","nodeType":"YulIf","src":"11238:40:101"},{"nativeSrc":"11291:5:101","nodeType":"YulLeave","src":"11291:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"11086:4:101","nodeType":"YulIdentifier","src":"11086:4:101"},{"kind":"number","nativeSrc":"11092:2:101","nodeType":"YulLiteral","src":"11092:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"11083:2:101","nodeType":"YulIdentifier","src":"11083:2:101"},"nativeSrc":"11083:12:101","nodeType":"YulFunctionCall","src":"11083:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"11100:8:101","nodeType":"YulIdentifier","src":"11100:8:101"},{"kind":"number","nativeSrc":"11110:2:101","nodeType":"YulLiteral","src":"11110:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"11097:2:101","nodeType":"YulIdentifier","src":"11097:2:101"},"nativeSrc":"11097:16:101","nodeType":"YulFunctionCall","src":"11097:16:101"}],"functionName":{"name":"and","nativeSrc":"11079:3:101","nodeType":"YulIdentifier","src":"11079:3:101"},"nativeSrc":"11079:35:101","nodeType":"YulFunctionCall","src":"11079:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"11135:4:101","nodeType":"YulIdentifier","src":"11135:4:101"},{"kind":"number","nativeSrc":"11141:3:101","nodeType":"YulLiteral","src":"11141:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"11132:2:101","nodeType":"YulIdentifier","src":"11132:2:101"},"nativeSrc":"11132:13:101","nodeType":"YulFunctionCall","src":"11132:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"11150:8:101","nodeType":"YulIdentifier","src":"11150:8:101"},{"kind":"number","nativeSrc":"11160:2:101","nodeType":"YulLiteral","src":"11160:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"11147:2:101","nodeType":"YulIdentifier","src":"11147:2:101"},"nativeSrc":"11147:16:101","nodeType":"YulFunctionCall","src":"11147:16:101"}],"functionName":{"name":"and","nativeSrc":"11128:3:101","nodeType":"YulIdentifier","src":"11128:3:101"},"nativeSrc":"11128:36:101","nodeType":"YulFunctionCall","src":"11128:36:101"}],"functionName":{"name":"or","nativeSrc":"11063:2:101","nodeType":"YulIdentifier","src":"11063:2:101"},"nativeSrc":"11063:111:101","nodeType":"YulFunctionCall","src":"11063:111:101"},"nativeSrc":"11060:246:101","nodeType":"YulIf","src":"11060:246:101"},{"nativeSrc":"11316:57:101","nodeType":"YulAssignment","src":"11316:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"11350:1:101","nodeType":"YulLiteral","src":"11350:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"11353:4:101","nodeType":"YulIdentifier","src":"11353:4:101"},{"name":"exponent","nativeSrc":"11359:8:101","nodeType":"YulIdentifier","src":"11359:8:101"},{"name":"max","nativeSrc":"11369:3:101","nodeType":"YulIdentifier","src":"11369:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"11331:18:101","nodeType":"YulIdentifier","src":"11331:18:101"},"nativeSrc":"11331:42:101","nodeType":"YulFunctionCall","src":"11331:42:101"},"variableNames":[{"name":"power","nativeSrc":"11316:5:101","nodeType":"YulIdentifier","src":"11316:5:101"},{"name":"base","nativeSrc":"11323:4:101","nodeType":"YulIdentifier","src":"11323:4:101"}]},{"body":{"nativeSrc":"11412:22:101","nodeType":"YulBlock","src":"11412:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11414:16:101","nodeType":"YulIdentifier","src":"11414:16:101"},"nativeSrc":"11414:18:101","nodeType":"YulFunctionCall","src":"11414:18:101"},"nativeSrc":"11414:18:101","nodeType":"YulExpressionStatement","src":"11414:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"11389:5:101","nodeType":"YulIdentifier","src":"11389:5:101"},{"arguments":[{"name":"max","nativeSrc":"11400:3:101","nodeType":"YulIdentifier","src":"11400:3:101"},{"name":"base","nativeSrc":"11405:4:101","nodeType":"YulIdentifier","src":"11405:4:101"}],"functionName":{"name":"div","nativeSrc":"11396:3:101","nodeType":"YulIdentifier","src":"11396:3:101"},"nativeSrc":"11396:14:101","nodeType":"YulFunctionCall","src":"11396:14:101"}],"functionName":{"name":"gt","nativeSrc":"11386:2:101","nodeType":"YulIdentifier","src":"11386:2:101"},"nativeSrc":"11386:25:101","nodeType":"YulFunctionCall","src":"11386:25:101"},"nativeSrc":"11383:51:101","nodeType":"YulIf","src":"11383:51:101"},{"nativeSrc":"11443:25:101","nodeType":"YulAssignment","src":"11443:25:101","value":{"arguments":[{"name":"power","nativeSrc":"11456:5:101","nodeType":"YulIdentifier","src":"11456:5:101"},{"name":"base","nativeSrc":"11463:4:101","nodeType":"YulIdentifier","src":"11463:4:101"}],"functionName":{"name":"mul","nativeSrc":"11452:3:101","nodeType":"YulIdentifier","src":"11452:3:101"},"nativeSrc":"11452:16:101","nodeType":"YulFunctionCall","src":"11452:16:101"},"variableNames":[{"name":"power","nativeSrc":"11443:5:101","nodeType":"YulIdentifier","src":"11443:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"10401:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10431:4:101","nodeType":"YulTypedName","src":"10431:4:101","type":""},{"name":"exponent","nativeSrc":"10437:8:101","nodeType":"YulTypedName","src":"10437:8:101","type":""},{"name":"max","nativeSrc":"10447:3:101","nodeType":"YulTypedName","src":"10447:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10455:5:101","nodeType":"YulTypedName","src":"10455:5:101","type":""}],"src":"10401:1073:101"},{"body":{"nativeSrc":"11544:217:101","nodeType":"YulBlock","src":"11544:217:101","statements":[{"nativeSrc":"11554:31:101","nodeType":"YulAssignment","src":"11554:31:101","value":{"arguments":[{"name":"base","nativeSrc":"11580:4:101","nodeType":"YulIdentifier","src":"11580:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11562:17:101","nodeType":"YulIdentifier","src":"11562:17:101"},"nativeSrc":"11562:23:101","nodeType":"YulFunctionCall","src":"11562:23:101"},"variableNames":[{"name":"base","nativeSrc":"11554:4:101","nodeType":"YulIdentifier","src":"11554:4:101"}]},{"nativeSrc":"11594:37:101","nodeType":"YulAssignment","src":"11594:37:101","value":{"arguments":[{"name":"exponent","nativeSrc":"11622:8:101","nodeType":"YulIdentifier","src":"11622:8:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"11606:15:101","nodeType":"YulIdentifier","src":"11606:15:101"},"nativeSrc":"11606:25:101","nodeType":"YulFunctionCall","src":"11606:25:101"},"variableNames":[{"name":"exponent","nativeSrc":"11594:8:101","nodeType":"YulIdentifier","src":"11594:8:101"}]},{"nativeSrc":"11641:113:101","nodeType":"YulAssignment","src":"11641:113:101","value":{"arguments":[{"name":"base","nativeSrc":"11671:4:101","nodeType":"YulIdentifier","src":"11671:4:101"},{"name":"exponent","nativeSrc":"11677:8:101","nodeType":"YulIdentifier","src":"11677:8:101"},{"kind":"number","nativeSrc":"11687:66:101","nodeType":"YulLiteral","src":"11687:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"11650:20:101","nodeType":"YulIdentifier","src":"11650:20:101"},"nativeSrc":"11650:104:101","nodeType":"YulFunctionCall","src":"11650:104:101"},"variableNames":[{"name":"power","nativeSrc":"11641:5:101","nodeType":"YulIdentifier","src":"11641:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"11480:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"11519:4:101","nodeType":"YulTypedName","src":"11519:4:101","type":""},{"name":"exponent","nativeSrc":"11525:8:101","nodeType":"YulTypedName","src":"11525:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"11538:5:101","nodeType":"YulTypedName","src":"11538:5:101","type":""}],"src":"11480:281:101"},{"body":{"nativeSrc":"11815:362:101","nodeType":"YulBlock","src":"11815:362:101","statements":[{"nativeSrc":"11825:25:101","nodeType":"YulAssignment","src":"11825:25:101","value":{"arguments":[{"name":"x","nativeSrc":"11848:1:101","nodeType":"YulIdentifier","src":"11848:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11830:17:101","nodeType":"YulIdentifier","src":"11830:17:101"},"nativeSrc":"11830:20:101","nodeType":"YulFunctionCall","src":"11830:20:101"},"variableNames":[{"name":"x","nativeSrc":"11825:1:101","nodeType":"YulIdentifier","src":"11825:1:101"}]},{"nativeSrc":"11859:25:101","nodeType":"YulAssignment","src":"11859:25:101","value":{"arguments":[{"name":"y","nativeSrc":"11882:1:101","nodeType":"YulIdentifier","src":"11882:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11864:17:101","nodeType":"YulIdentifier","src":"11864:17:101"},"nativeSrc":"11864:20:101","nodeType":"YulFunctionCall","src":"11864:20:101"},"variableNames":[{"name":"y","nativeSrc":"11859:1:101","nodeType":"YulIdentifier","src":"11859:1:101"}]},{"nativeSrc":"11893:28:101","nodeType":"YulVariableDeclaration","src":"11893:28:101","value":{"arguments":[{"name":"x","nativeSrc":"11916:1:101","nodeType":"YulIdentifier","src":"11916:1:101"},{"name":"y","nativeSrc":"11919:1:101","nodeType":"YulIdentifier","src":"11919:1:101"}],"functionName":{"name":"mul","nativeSrc":"11912:3:101","nodeType":"YulIdentifier","src":"11912:3:101"},"nativeSrc":"11912:9:101","nodeType":"YulFunctionCall","src":"11912:9:101"},"variables":[{"name":"product_raw","nativeSrc":"11897:11:101","nodeType":"YulTypedName","src":"11897:11:101","type":""}]},{"nativeSrc":"11930:41:101","nodeType":"YulAssignment","src":"11930:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"11959:11:101","nodeType":"YulIdentifier","src":"11959:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11941:17:101","nodeType":"YulIdentifier","src":"11941:17:101"},"nativeSrc":"11941:30:101","nodeType":"YulFunctionCall","src":"11941:30:101"},"variableNames":[{"name":"product","nativeSrc":"11930:7:101","nodeType":"YulIdentifier","src":"11930:7:101"}]},{"body":{"nativeSrc":"12148:22:101","nodeType":"YulBlock","src":"12148:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12150:16:101","nodeType":"YulIdentifier","src":"12150:16:101"},"nativeSrc":"12150:18:101","nodeType":"YulFunctionCall","src":"12150:18:101"},"nativeSrc":"12150:18:101","nodeType":"YulExpressionStatement","src":"12150:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12081:1:101","nodeType":"YulIdentifier","src":"12081:1:101"}],"functionName":{"name":"iszero","nativeSrc":"12074:6:101","nodeType":"YulIdentifier","src":"12074:6:101"},"nativeSrc":"12074:9:101","nodeType":"YulFunctionCall","src":"12074:9:101"},{"arguments":[{"name":"y","nativeSrc":"12104:1:101","nodeType":"YulIdentifier","src":"12104:1:101"},{"arguments":[{"name":"product","nativeSrc":"12111:7:101","nodeType":"YulIdentifier","src":"12111:7:101"},{"name":"x","nativeSrc":"12120:1:101","nodeType":"YulIdentifier","src":"12120:1:101"}],"functionName":{"name":"div","nativeSrc":"12107:3:101","nodeType":"YulIdentifier","src":"12107:3:101"},"nativeSrc":"12107:15:101","nodeType":"YulFunctionCall","src":"12107:15:101"}],"functionName":{"name":"eq","nativeSrc":"12101:2:101","nodeType":"YulIdentifier","src":"12101:2:101"},"nativeSrc":"12101:22:101","nodeType":"YulFunctionCall","src":"12101:22:101"}],"functionName":{"name":"or","nativeSrc":"12054:2:101","nodeType":"YulIdentifier","src":"12054:2:101"},"nativeSrc":"12054:83:101","nodeType":"YulFunctionCall","src":"12054:83:101"}],"functionName":{"name":"iszero","nativeSrc":"12034:6:101","nodeType":"YulIdentifier","src":"12034:6:101"},"nativeSrc":"12034:113:101","nodeType":"YulFunctionCall","src":"12034:113:101"},"nativeSrc":"12031:139:101","nodeType":"YulIf","src":"12031:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"11767:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11798:1:101","nodeType":"YulTypedName","src":"11798:1:101","type":""},{"name":"y","nativeSrc":"11801:1:101","nodeType":"YulTypedName","src":"11801:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"11807:7:101","nodeType":"YulTypedName","src":"11807:7:101","type":""}],"src":"11767:410:101"},{"body":{"nativeSrc":"12224:77:101","nodeType":"YulBlock","src":"12224:77:101","statements":[{"body":{"nativeSrc":"12279:16:101","nodeType":"YulBlock","src":"12279:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12288:1:101","nodeType":"YulLiteral","src":"12288:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12291:1:101","nodeType":"YulLiteral","src":"12291:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12281:6:101","nodeType":"YulIdentifier","src":"12281:6:101"},"nativeSrc":"12281:12:101","nodeType":"YulFunctionCall","src":"12281:12:101"},"nativeSrc":"12281:12:101","nodeType":"YulExpressionStatement","src":"12281:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12247:5:101","nodeType":"YulIdentifier","src":"12247:5:101"},{"arguments":[{"name":"value","nativeSrc":"12270:5:101","nodeType":"YulIdentifier","src":"12270:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"12254:15:101","nodeType":"YulIdentifier","src":"12254:15:101"},"nativeSrc":"12254:22:101","nodeType":"YulFunctionCall","src":"12254:22:101"}],"functionName":{"name":"eq","nativeSrc":"12244:2:101","nodeType":"YulIdentifier","src":"12244:2:101"},"nativeSrc":"12244:33:101","nodeType":"YulFunctionCall","src":"12244:33:101"}],"functionName":{"name":"iszero","nativeSrc":"12237:6:101","nodeType":"YulIdentifier","src":"12237:6:101"},"nativeSrc":"12237:41:101","nodeType":"YulFunctionCall","src":"12237:41:101"},"nativeSrc":"12234:61:101","nodeType":"YulIf","src":"12234:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"12183:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12217:5:101","nodeType":"YulTypedName","src":"12217:5:101","type":""}],"src":"12183:118:101"},{"body":{"nativeSrc":"12368:78:101","nodeType":"YulBlock","src":"12368:78:101","statements":[{"nativeSrc":"12378:22:101","nodeType":"YulAssignment","src":"12378:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12393:6:101","nodeType":"YulIdentifier","src":"12393:6:101"}],"functionName":{"name":"mload","nativeSrc":"12387:5:101","nodeType":"YulIdentifier","src":"12387:5:101"},"nativeSrc":"12387:13:101","nodeType":"YulFunctionCall","src":"12387:13:101"},"variableNames":[{"name":"value","nativeSrc":"12378:5:101","nodeType":"YulIdentifier","src":"12378:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12434:5:101","nodeType":"YulIdentifier","src":"12434:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"12409:24:101","nodeType":"YulIdentifier","src":"12409:24:101"},"nativeSrc":"12409:31:101","nodeType":"YulFunctionCall","src":"12409:31:101"},"nativeSrc":"12409:31:101","nodeType":"YulExpressionStatement","src":"12409:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"12307:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12346:6:101","nodeType":"YulTypedName","src":"12346:6:101","type":""},{"name":"end","nativeSrc":"12354:3:101","nodeType":"YulTypedName","src":"12354:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12362:5:101","nodeType":"YulTypedName","src":"12362:5:101","type":""}],"src":"12307:139:101"},{"body":{"nativeSrc":"12527:272:101","nodeType":"YulBlock","src":"12527:272:101","statements":[{"body":{"nativeSrc":"12573:83:101","nodeType":"YulBlock","src":"12573:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12575:77:101","nodeType":"YulIdentifier","src":"12575:77:101"},"nativeSrc":"12575:79:101","nodeType":"YulFunctionCall","src":"12575:79:101"},"nativeSrc":"12575:79:101","nodeType":"YulExpressionStatement","src":"12575:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12548:7:101","nodeType":"YulIdentifier","src":"12548:7:101"},{"name":"headStart","nativeSrc":"12557:9:101","nodeType":"YulIdentifier","src":"12557:9:101"}],"functionName":{"name":"sub","nativeSrc":"12544:3:101","nodeType":"YulIdentifier","src":"12544:3:101"},"nativeSrc":"12544:23:101","nodeType":"YulFunctionCall","src":"12544:23:101"},{"kind":"number","nativeSrc":"12569:2:101","nodeType":"YulLiteral","src":"12569:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12540:3:101","nodeType":"YulIdentifier","src":"12540:3:101"},"nativeSrc":"12540:32:101","nodeType":"YulFunctionCall","src":"12540:32:101"},"nativeSrc":"12537:119:101","nodeType":"YulIf","src":"12537:119:101"},{"nativeSrc":"12666:126:101","nodeType":"YulBlock","src":"12666:126:101","statements":[{"nativeSrc":"12681:15:101","nodeType":"YulVariableDeclaration","src":"12681:15:101","value":{"kind":"number","nativeSrc":"12695:1:101","nodeType":"YulLiteral","src":"12695:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12685:6:101","nodeType":"YulTypedName","src":"12685:6:101","type":""}]},{"nativeSrc":"12710:72:101","nodeType":"YulAssignment","src":"12710:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12754:9:101","nodeType":"YulIdentifier","src":"12754:9:101"},{"name":"offset","nativeSrc":"12765:6:101","nodeType":"YulIdentifier","src":"12765:6:101"}],"functionName":{"name":"add","nativeSrc":"12750:3:101","nodeType":"YulIdentifier","src":"12750:3:101"},"nativeSrc":"12750:22:101","nodeType":"YulFunctionCall","src":"12750:22:101"},{"name":"dataEnd","nativeSrc":"12774:7:101","nodeType":"YulIdentifier","src":"12774:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"12720:29:101","nodeType":"YulIdentifier","src":"12720:29:101"},"nativeSrc":"12720:62:101","nodeType":"YulFunctionCall","src":"12720:62:101"},"variableNames":[{"name":"value0","nativeSrc":"12710:6:101","nodeType":"YulIdentifier","src":"12710:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"12452:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12497:9:101","nodeType":"YulTypedName","src":"12497:9:101","type":""},{"name":"dataEnd","nativeSrc":"12508:7:101","nodeType":"YulTypedName","src":"12508:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12520:6:101","nodeType":"YulTypedName","src":"12520:6:101","type":""}],"src":"12452:347:101"},{"body":{"nativeSrc":"12871:219:101","nodeType":"YulBlock","src":"12871:219:101","statements":[{"nativeSrc":"12881:31:101","nodeType":"YulAssignment","src":"12881:31:101","value":{"arguments":[{"name":"base","nativeSrc":"12907:4:101","nodeType":"YulIdentifier","src":"12907:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12889:17:101","nodeType":"YulIdentifier","src":"12889:17:101"},"nativeSrc":"12889:23:101","nodeType":"YulFunctionCall","src":"12889:23:101"},"variableNames":[{"name":"base","nativeSrc":"12881:4:101","nodeType":"YulIdentifier","src":"12881:4:101"}]},{"nativeSrc":"12921:39:101","nodeType":"YulAssignment","src":"12921:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"12951:8:101","nodeType":"YulIdentifier","src":"12951:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12933:17:101","nodeType":"YulIdentifier","src":"12933:17:101"},"nativeSrc":"12933:27:101","nodeType":"YulFunctionCall","src":"12933:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"12921:8:101","nodeType":"YulIdentifier","src":"12921:8:101"}]},{"nativeSrc":"12970:113:101","nodeType":"YulAssignment","src":"12970:113:101","value":{"arguments":[{"name":"base","nativeSrc":"13000:4:101","nodeType":"YulIdentifier","src":"13000:4:101"},{"name":"exponent","nativeSrc":"13006:8:101","nodeType":"YulIdentifier","src":"13006:8:101"},{"kind":"number","nativeSrc":"13016:66:101","nodeType":"YulLiteral","src":"13016:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"12979:20:101","nodeType":"YulIdentifier","src":"12979:20:101"},"nativeSrc":"12979:104:101","nodeType":"YulFunctionCall","src":"12979:104:101"},"variableNames":[{"name":"power","nativeSrc":"12970:5:101","nodeType":"YulIdentifier","src":"12970:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"12805:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"12846:4:101","nodeType":"YulTypedName","src":"12846:4:101","type":""},{"name":"exponent","nativeSrc":"12852:8:101","nodeType":"YulTypedName","src":"12852:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"12865:5:101","nodeType":"YulTypedName","src":"12865:5:101","type":""}],"src":"12805:285:101"},{"body":{"nativeSrc":"13155:40:101","nodeType":"YulBlock","src":"13155:40:101","statements":[{"nativeSrc":"13166:22:101","nodeType":"YulAssignment","src":"13166:22:101","value":{"arguments":[{"name":"value","nativeSrc":"13182:5:101","nodeType":"YulIdentifier","src":"13182:5:101"}],"functionName":{"name":"mload","nativeSrc":"13176:5:101","nodeType":"YulIdentifier","src":"13176:5:101"},"nativeSrc":"13176:12:101","nodeType":"YulFunctionCall","src":"13176:12:101"},"variableNames":[{"name":"length","nativeSrc":"13166:6:101","nodeType":"YulIdentifier","src":"13166:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"13096:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13138:5:101","nodeType":"YulTypedName","src":"13138:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13148:6:101","nodeType":"YulTypedName","src":"13148:6:101","type":""}],"src":"13096:99:101"},{"body":{"nativeSrc":"13297:73:101","nodeType":"YulBlock","src":"13297:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13314:3:101","nodeType":"YulIdentifier","src":"13314:3:101"},{"name":"length","nativeSrc":"13319:6:101","nodeType":"YulIdentifier","src":"13319:6:101"}],"functionName":{"name":"mstore","nativeSrc":"13307:6:101","nodeType":"YulIdentifier","src":"13307:6:101"},"nativeSrc":"13307:19:101","nodeType":"YulFunctionCall","src":"13307:19:101"},"nativeSrc":"13307:19:101","nodeType":"YulExpressionStatement","src":"13307:19:101"},{"nativeSrc":"13335:29:101","nodeType":"YulAssignment","src":"13335:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"13354:3:101","nodeType":"YulIdentifier","src":"13354:3:101"},{"kind":"number","nativeSrc":"13359:4:101","nodeType":"YulLiteral","src":"13359:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13350:3:101","nodeType":"YulIdentifier","src":"13350:3:101"},"nativeSrc":"13350:14:101","nodeType":"YulFunctionCall","src":"13350:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"13335:11:101","nodeType":"YulIdentifier","src":"13335:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13201:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13269:3:101","nodeType":"YulTypedName","src":"13269:3:101","type":""},{"name":"length","nativeSrc":"13274:6:101","nodeType":"YulTypedName","src":"13274:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13285:11:101","nodeType":"YulTypedName","src":"13285:11:101","type":""}],"src":"13201:169:101"},{"body":{"nativeSrc":"13438:77:101","nodeType":"YulBlock","src":"13438:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13455:3:101","nodeType":"YulIdentifier","src":"13455:3:101"},{"name":"src","nativeSrc":"13460:3:101","nodeType":"YulIdentifier","src":"13460:3:101"},{"name":"length","nativeSrc":"13465:6:101","nodeType":"YulIdentifier","src":"13465:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"13449:5:101","nodeType":"YulIdentifier","src":"13449:5:101"},"nativeSrc":"13449:23:101","nodeType":"YulFunctionCall","src":"13449:23:101"},"nativeSrc":"13449:23:101","nodeType":"YulExpressionStatement","src":"13449:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13492:3:101","nodeType":"YulIdentifier","src":"13492:3:101"},{"name":"length","nativeSrc":"13497:6:101","nodeType":"YulIdentifier","src":"13497:6:101"}],"functionName":{"name":"add","nativeSrc":"13488:3:101","nodeType":"YulIdentifier","src":"13488:3:101"},"nativeSrc":"13488:16:101","nodeType":"YulFunctionCall","src":"13488:16:101"},{"kind":"number","nativeSrc":"13506:1:101","nodeType":"YulLiteral","src":"13506:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13481:6:101","nodeType":"YulIdentifier","src":"13481:6:101"},"nativeSrc":"13481:27:101","nodeType":"YulFunctionCall","src":"13481:27:101"},"nativeSrc":"13481:27:101","nodeType":"YulExpressionStatement","src":"13481:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13376:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13420:3:101","nodeType":"YulTypedName","src":"13420:3:101","type":""},{"name":"dst","nativeSrc":"13425:3:101","nodeType":"YulTypedName","src":"13425:3:101","type":""},{"name":"length","nativeSrc":"13430:6:101","nodeType":"YulTypedName","src":"13430:6:101","type":""}],"src":"13376:139:101"},{"body":{"nativeSrc":"13569:54:101","nodeType":"YulBlock","src":"13569:54:101","statements":[{"nativeSrc":"13579:38:101","nodeType":"YulAssignment","src":"13579:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13597:5:101","nodeType":"YulIdentifier","src":"13597:5:101"},{"kind":"number","nativeSrc":"13604:2:101","nodeType":"YulLiteral","src":"13604:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13593:3:101","nodeType":"YulIdentifier","src":"13593:3:101"},"nativeSrc":"13593:14:101","nodeType":"YulFunctionCall","src":"13593:14:101"},{"arguments":[{"kind":"number","nativeSrc":"13613:2:101","nodeType":"YulLiteral","src":"13613:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13609:3:101","nodeType":"YulIdentifier","src":"13609:3:101"},"nativeSrc":"13609:7:101","nodeType":"YulFunctionCall","src":"13609:7:101"}],"functionName":{"name":"and","nativeSrc":"13589:3:101","nodeType":"YulIdentifier","src":"13589:3:101"},"nativeSrc":"13589:28:101","nodeType":"YulFunctionCall","src":"13589:28:101"},"variableNames":[{"name":"result","nativeSrc":"13579:6:101","nodeType":"YulIdentifier","src":"13579:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"13521:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13552:5:101","nodeType":"YulTypedName","src":"13552:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"13562:6:101","nodeType":"YulTypedName","src":"13562:6:101","type":""}],"src":"13521:102:101"},{"body":{"nativeSrc":"13721:285:101","nodeType":"YulBlock","src":"13721:285:101","statements":[{"nativeSrc":"13731:53:101","nodeType":"YulVariableDeclaration","src":"13731:53:101","value":{"arguments":[{"name":"value","nativeSrc":"13778:5:101","nodeType":"YulIdentifier","src":"13778:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"13745:32:101","nodeType":"YulIdentifier","src":"13745:32:101"},"nativeSrc":"13745:39:101","nodeType":"YulFunctionCall","src":"13745:39:101"},"variables":[{"name":"length","nativeSrc":"13735:6:101","nodeType":"YulTypedName","src":"13735:6:101","type":""}]},{"nativeSrc":"13793:78:101","nodeType":"YulAssignment","src":"13793:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"13859:3:101","nodeType":"YulIdentifier","src":"13859:3:101"},{"name":"length","nativeSrc":"13864:6:101","nodeType":"YulIdentifier","src":"13864:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13800:58:101","nodeType":"YulIdentifier","src":"13800:58:101"},"nativeSrc":"13800:71:101","nodeType":"YulFunctionCall","src":"13800:71:101"},"variableNames":[{"name":"pos","nativeSrc":"13793:3:101","nodeType":"YulIdentifier","src":"13793:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13919:5:101","nodeType":"YulIdentifier","src":"13919:5:101"},{"kind":"number","nativeSrc":"13926:4:101","nodeType":"YulLiteral","src":"13926:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13915:3:101","nodeType":"YulIdentifier","src":"13915:3:101"},"nativeSrc":"13915:16:101","nodeType":"YulFunctionCall","src":"13915:16:101"},{"name":"pos","nativeSrc":"13933:3:101","nodeType":"YulIdentifier","src":"13933:3:101"},{"name":"length","nativeSrc":"13938:6:101","nodeType":"YulIdentifier","src":"13938:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13880:34:101","nodeType":"YulIdentifier","src":"13880:34:101"},"nativeSrc":"13880:65:101","nodeType":"YulFunctionCall","src":"13880:65:101"},"nativeSrc":"13880:65:101","nodeType":"YulExpressionStatement","src":"13880:65:101"},{"nativeSrc":"13954:46:101","nodeType":"YulAssignment","src":"13954:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"13965:3:101","nodeType":"YulIdentifier","src":"13965:3:101"},{"arguments":[{"name":"length","nativeSrc":"13992:6:101","nodeType":"YulIdentifier","src":"13992:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13970:21:101","nodeType":"YulIdentifier","src":"13970:21:101"},"nativeSrc":"13970:29:101","nodeType":"YulFunctionCall","src":"13970:29:101"}],"functionName":{"name":"add","nativeSrc":"13961:3:101","nodeType":"YulIdentifier","src":"13961:3:101"},"nativeSrc":"13961:39:101","nodeType":"YulFunctionCall","src":"13961:39:101"},"variableNames":[{"name":"end","nativeSrc":"13954:3:101","nodeType":"YulIdentifier","src":"13954:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13629:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13702:5:101","nodeType":"YulTypedName","src":"13702:5:101","type":""},{"name":"pos","nativeSrc":"13709:3:101","nodeType":"YulTypedName","src":"13709:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13717:3:101","nodeType":"YulTypedName","src":"13717:3:101","type":""}],"src":"13629:377:101"},{"body":{"nativeSrc":"14158:277:101","nodeType":"YulBlock","src":"14158:277:101","statements":[{"nativeSrc":"14168:26:101","nodeType":"YulAssignment","src":"14168:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14180:9:101","nodeType":"YulIdentifier","src":"14180:9:101"},{"kind":"number","nativeSrc":"14191:2:101","nodeType":"YulLiteral","src":"14191:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14176:3:101","nodeType":"YulIdentifier","src":"14176:3:101"},"nativeSrc":"14176:18:101","nodeType":"YulFunctionCall","src":"14176:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14168:4:101","nodeType":"YulIdentifier","src":"14168:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14248:6:101","nodeType":"YulIdentifier","src":"14248:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14261:9:101","nodeType":"YulIdentifier","src":"14261:9:101"},{"kind":"number","nativeSrc":"14272:1:101","nodeType":"YulLiteral","src":"14272:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14257:3:101","nodeType":"YulIdentifier","src":"14257:3:101"},"nativeSrc":"14257:17:101","nodeType":"YulFunctionCall","src":"14257:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14204:43:101","nodeType":"YulIdentifier","src":"14204:43:101"},"nativeSrc":"14204:71:101","nodeType":"YulFunctionCall","src":"14204:71:101"},"nativeSrc":"14204:71:101","nodeType":"YulExpressionStatement","src":"14204:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14296:9:101","nodeType":"YulIdentifier","src":"14296:9:101"},{"kind":"number","nativeSrc":"14307:2:101","nodeType":"YulLiteral","src":"14307:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14292:3:101","nodeType":"YulIdentifier","src":"14292:3:101"},"nativeSrc":"14292:18:101","nodeType":"YulFunctionCall","src":"14292:18:101"},{"arguments":[{"name":"tail","nativeSrc":"14316:4:101","nodeType":"YulIdentifier","src":"14316:4:101"},{"name":"headStart","nativeSrc":"14322:9:101","nodeType":"YulIdentifier","src":"14322:9:101"}],"functionName":{"name":"sub","nativeSrc":"14312:3:101","nodeType":"YulIdentifier","src":"14312:3:101"},"nativeSrc":"14312:20:101","nodeType":"YulFunctionCall","src":"14312:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14285:6:101","nodeType":"YulIdentifier","src":"14285:6:101"},"nativeSrc":"14285:48:101","nodeType":"YulFunctionCall","src":"14285:48:101"},"nativeSrc":"14285:48:101","nodeType":"YulExpressionStatement","src":"14285:48:101"},{"nativeSrc":"14342:86:101","nodeType":"YulAssignment","src":"14342:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"14414:6:101","nodeType":"YulIdentifier","src":"14414:6:101"},{"name":"tail","nativeSrc":"14423:4:101","nodeType":"YulIdentifier","src":"14423:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"14350:63:101","nodeType":"YulIdentifier","src":"14350:63:101"},"nativeSrc":"14350:78:101","nodeType":"YulFunctionCall","src":"14350:78:101"},"variableNames":[{"name":"tail","nativeSrc":"14342:4:101","nodeType":"YulIdentifier","src":"14342:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14012:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14122:9:101","nodeType":"YulTypedName","src":"14122:9:101","type":""},{"name":"value1","nativeSrc":"14134:6:101","nodeType":"YulTypedName","src":"14134:6:101","type":""},{"name":"value0","nativeSrc":"14142:6:101","nodeType":"YulTypedName","src":"14142:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14153:4:101","nodeType":"YulTypedName","src":"14153:4:101","type":""}],"src":"14012:423:101"},{"body":{"nativeSrc":"14481:76:101","nodeType":"YulBlock","src":"14481:76:101","statements":[{"body":{"nativeSrc":"14535:16:101","nodeType":"YulBlock","src":"14535:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14544:1:101","nodeType":"YulLiteral","src":"14544:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"14547:1:101","nodeType":"YulLiteral","src":"14547:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14537:6:101","nodeType":"YulIdentifier","src":"14537:6:101"},"nativeSrc":"14537:12:101","nodeType":"YulFunctionCall","src":"14537:12:101"},"nativeSrc":"14537:12:101","nodeType":"YulExpressionStatement","src":"14537:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14504:5:101","nodeType":"YulIdentifier","src":"14504:5:101"},{"arguments":[{"name":"value","nativeSrc":"14526:5:101","nodeType":"YulIdentifier","src":"14526:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"14511:14:101","nodeType":"YulIdentifier","src":"14511:14:101"},"nativeSrc":"14511:21:101","nodeType":"YulFunctionCall","src":"14511:21:101"}],"functionName":{"name":"eq","nativeSrc":"14501:2:101","nodeType":"YulIdentifier","src":"14501:2:101"},"nativeSrc":"14501:32:101","nodeType":"YulFunctionCall","src":"14501:32:101"}],"functionName":{"name":"iszero","nativeSrc":"14494:6:101","nodeType":"YulIdentifier","src":"14494:6:101"},"nativeSrc":"14494:40:101","nodeType":"YulFunctionCall","src":"14494:40:101"},"nativeSrc":"14491:60:101","nodeType":"YulIf","src":"14491:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"14441:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14474:5:101","nodeType":"YulTypedName","src":"14474:5:101","type":""}],"src":"14441:116:101"},{"body":{"nativeSrc":"14623:77:101","nodeType":"YulBlock","src":"14623:77:101","statements":[{"nativeSrc":"14633:22:101","nodeType":"YulAssignment","src":"14633:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"14648:6:101","nodeType":"YulIdentifier","src":"14648:6:101"}],"functionName":{"name":"mload","nativeSrc":"14642:5:101","nodeType":"YulIdentifier","src":"14642:5:101"},"nativeSrc":"14642:13:101","nodeType":"YulFunctionCall","src":"14642:13:101"},"variableNames":[{"name":"value","nativeSrc":"14633:5:101","nodeType":"YulIdentifier","src":"14633:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14688:5:101","nodeType":"YulIdentifier","src":"14688:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"14664:23:101","nodeType":"YulIdentifier","src":"14664:23:101"},"nativeSrc":"14664:30:101","nodeType":"YulFunctionCall","src":"14664:30:101"},"nativeSrc":"14664:30:101","nodeType":"YulExpressionStatement","src":"14664:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14563:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14601:6:101","nodeType":"YulTypedName","src":"14601:6:101","type":""},{"name":"end","nativeSrc":"14609:3:101","nodeType":"YulTypedName","src":"14609:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14617:5:101","nodeType":"YulTypedName","src":"14617:5:101","type":""}],"src":"14563:137:101"},{"body":{"nativeSrc":"14780:271:101","nodeType":"YulBlock","src":"14780:271:101","statements":[{"body":{"nativeSrc":"14826:83:101","nodeType":"YulBlock","src":"14826:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14828:77:101","nodeType":"YulIdentifier","src":"14828:77:101"},"nativeSrc":"14828:79:101","nodeType":"YulFunctionCall","src":"14828:79:101"},"nativeSrc":"14828:79:101","nodeType":"YulExpressionStatement","src":"14828:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14801:7:101","nodeType":"YulIdentifier","src":"14801:7:101"},{"name":"headStart","nativeSrc":"14810:9:101","nodeType":"YulIdentifier","src":"14810:9:101"}],"functionName":{"name":"sub","nativeSrc":"14797:3:101","nodeType":"YulIdentifier","src":"14797:3:101"},"nativeSrc":"14797:23:101","nodeType":"YulFunctionCall","src":"14797:23:101"},{"kind":"number","nativeSrc":"14822:2:101","nodeType":"YulLiteral","src":"14822:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14793:3:101","nodeType":"YulIdentifier","src":"14793:3:101"},"nativeSrc":"14793:32:101","nodeType":"YulFunctionCall","src":"14793:32:101"},"nativeSrc":"14790:119:101","nodeType":"YulIf","src":"14790:119:101"},{"nativeSrc":"14919:125:101","nodeType":"YulBlock","src":"14919:125:101","statements":[{"nativeSrc":"14934:15:101","nodeType":"YulVariableDeclaration","src":"14934:15:101","value":{"kind":"number","nativeSrc":"14948:1:101","nodeType":"YulLiteral","src":"14948:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14938:6:101","nodeType":"YulTypedName","src":"14938:6:101","type":""}]},{"nativeSrc":"14963:71:101","nodeType":"YulAssignment","src":"14963:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15006:9:101","nodeType":"YulIdentifier","src":"15006:9:101"},{"name":"offset","nativeSrc":"15017:6:101","nodeType":"YulIdentifier","src":"15017:6:101"}],"functionName":{"name":"add","nativeSrc":"15002:3:101","nodeType":"YulIdentifier","src":"15002:3:101"},"nativeSrc":"15002:22:101","nodeType":"YulFunctionCall","src":"15002:22:101"},{"name":"dataEnd","nativeSrc":"15026:7:101","nodeType":"YulIdentifier","src":"15026:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14973:28:101","nodeType":"YulIdentifier","src":"14973:28:101"},"nativeSrc":"14973:61:101","nodeType":"YulFunctionCall","src":"14973:61:101"},"variableNames":[{"name":"value0","nativeSrc":"14963:6:101","nodeType":"YulIdentifier","src":"14963:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"14706:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14750:9:101","nodeType":"YulTypedName","src":"14750:9:101","type":""},{"name":"dataEnd","nativeSrc":"14761:7:101","nodeType":"YulTypedName","src":"14761:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14773:6:101","nodeType":"YulTypedName","src":"14773:6:101","type":""}],"src":"14706:345:101"},{"body":{"nativeSrc":"15231:359:101","nodeType":"YulBlock","src":"15231:359:101","statements":[{"nativeSrc":"15241:26:101","nodeType":"YulAssignment","src":"15241:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15253:9:101","nodeType":"YulIdentifier","src":"15253:9:101"},{"kind":"number","nativeSrc":"15264:2:101","nodeType":"YulLiteral","src":"15264:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15249:3:101","nodeType":"YulIdentifier","src":"15249:3:101"},"nativeSrc":"15249:18:101","nodeType":"YulFunctionCall","src":"15249:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15241:4:101","nodeType":"YulIdentifier","src":"15241:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"15321:6:101","nodeType":"YulIdentifier","src":"15321:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"15334:9:101","nodeType":"YulIdentifier","src":"15334:9:101"},{"kind":"number","nativeSrc":"15345:1:101","nodeType":"YulLiteral","src":"15345:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15330:3:101","nodeType":"YulIdentifier","src":"15330:3:101"},"nativeSrc":"15330:17:101","nodeType":"YulFunctionCall","src":"15330:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"15277:43:101","nodeType":"YulIdentifier","src":"15277:43:101"},"nativeSrc":"15277:71:101","nodeType":"YulFunctionCall","src":"15277:71:101"},"nativeSrc":"15277:71:101","nodeType":"YulExpressionStatement","src":"15277:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"15402:6:101","nodeType":"YulIdentifier","src":"15402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"15415:9:101","nodeType":"YulIdentifier","src":"15415:9:101"},{"kind":"number","nativeSrc":"15426:2:101","nodeType":"YulLiteral","src":"15426:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15411:3:101","nodeType":"YulIdentifier","src":"15411:3:101"},"nativeSrc":"15411:18:101","nodeType":"YulFunctionCall","src":"15411:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"15358:43:101","nodeType":"YulIdentifier","src":"15358:43:101"},"nativeSrc":"15358:72:101","nodeType":"YulFunctionCall","src":"15358:72:101"},"nativeSrc":"15358:72:101","nodeType":"YulExpressionStatement","src":"15358:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15451:9:101","nodeType":"YulIdentifier","src":"15451:9:101"},{"kind":"number","nativeSrc":"15462:2:101","nodeType":"YulLiteral","src":"15462:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15447:3:101","nodeType":"YulIdentifier","src":"15447:3:101"},"nativeSrc":"15447:18:101","nodeType":"YulFunctionCall","src":"15447:18:101"},{"arguments":[{"name":"tail","nativeSrc":"15471:4:101","nodeType":"YulIdentifier","src":"15471:4:101"},{"name":"headStart","nativeSrc":"15477:9:101","nodeType":"YulIdentifier","src":"15477:9:101"}],"functionName":{"name":"sub","nativeSrc":"15467:3:101","nodeType":"YulIdentifier","src":"15467:3:101"},"nativeSrc":"15467:20:101","nodeType":"YulFunctionCall","src":"15467:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15440:6:101","nodeType":"YulIdentifier","src":"15440:6:101"},"nativeSrc":"15440:48:101","nodeType":"YulFunctionCall","src":"15440:48:101"},"nativeSrc":"15440:48:101","nodeType":"YulExpressionStatement","src":"15440:48:101"},{"nativeSrc":"15497:86:101","nodeType":"YulAssignment","src":"15497:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"15569:6:101","nodeType":"YulIdentifier","src":"15569:6:101"},{"name":"tail","nativeSrc":"15578:4:101","nodeType":"YulIdentifier","src":"15578:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"15505:63:101","nodeType":"YulIdentifier","src":"15505:63:101"},"nativeSrc":"15505:78:101","nodeType":"YulFunctionCall","src":"15505:78:101"},"variableNames":[{"name":"tail","nativeSrc":"15497:4:101","nodeType":"YulIdentifier","src":"15497:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15057:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15187:9:101","nodeType":"YulTypedName","src":"15187:9:101","type":""},{"name":"value2","nativeSrc":"15199:6:101","nodeType":"YulTypedName","src":"15199:6:101","type":""},{"name":"value1","nativeSrc":"15207:6:101","nodeType":"YulTypedName","src":"15207:6:101","type":""},{"name":"value0","nativeSrc":"15215:6:101","nodeType":"YulTypedName","src":"15215:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15226:4:101","nodeType":"YulTypedName","src":"15226:4:101","type":""}],"src":"15057:533:101"}]},"contents":"{\n\n    function panic_error_0x21() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n\n    function validator_assert_t_enum$_RateKind_$5392(value) {\n        if iszero(lt(value, 2)) { panic_error_0x21() }\n    }\n\n    function cleanup_t_enum$_RateKind_$5392(value) -> cleaned {\n        cleaned := value validator_assert_t_enum$_RateKind_$5392(value)\n    }\n\n    function convert_t_enum$_RateKind_$5392_to_t_uint8(value) -> converted {\n        converted := cleanup_t_enum$_RateKind_$5392(value)\n    }\n\n    function abi_encode_t_enum$_RateKind_$5392_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_enum$_RateKind_$5392_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_enum$_RateKind_$5392__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_enum$_RateKind_$5392_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IPendlePtOracle_$3568_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IPendlePtOracle_$3568_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IPendlePtOracle_$3568_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IPendlePtOracle_$3568__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IPendlePtOracle_$3568_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint32__to_t_address_t_uint32__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint8(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5396":[{"length":32,"start":729},{"length":32,"start":2021},{"length":32,"start":2233}],"5400":[{"length":32,"start":326},{"length":32,"start":1945}],"5403":[{"length":32,"start":892},{"length":32,"start":2066},{"length":32,"start":2278}],"5406":[{"length":32,"start":768},{"length":32,"start":2100},{"length":32,"start":2312}],"5409":[{"length":32,"start":461},{"length":32,"start":2433}],"6589":[{"length":32,"start":671},{"length":32,"start":929},{"length":32,"start":2752}],"6592":[{"length":32,"start":409},{"length":32,"start":1680},{"length":32,"start":2625}],"6596":[{"length":32,"start":829},{"length":32,"start":1635},{"length":32,"start":2578}],"6600":[{"length":32,"start":541},{"length":32,"start":2943}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061013d575f3560e01c806369240426116100b45780639c43eb54116100795780639c43eb541461032f578063a4edcd4c14610338578063abb856131461035f578063ac5a693e14610367578063bdf13af21461036f578063f46f16c214610377575f80fd5b8063692404261461029257806369818a351461029a5780637fc4e4a0146102c1578063809d7b31146102d4578063879ac8f8146102fb575f80fd5b806341976e091161010557806341976e091461020557806345be2dc7146102185780635213f9c81461024c578063596efe6f14610261578063643d813d1461026a578063671528d41461027d575f80fd5b806302125d091461014157806307d0413c1461017e57806329db1be6146101945780633dae7c22146101c85780634169d245146101fc575b5f80fd5b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610c7d565b60405180910390f35b61018760015481565b6040516101759190610c91565b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610cb8565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610ccf565b61018760045481565b610187610213366004610cfb565b61039e565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610d3e565b61025f61025a366004610d5d565b61044f565b005b61018760025481565b61025f610278366004610d7b565b6104c0565b610285610594565b6040516101759190610dbd565b61025f6105cf565b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b61025f6102cf366004610d7b565b61071b565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b6103227f000000000000000000000000000000000000000000000000000000000000000081565b6040516101759190610dd7565b61018760035481565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b610187610793565b6101875f5481565b6101876109c1565b6101bb7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146103f157604051630f58058360e11b815260040160405180910390fd5b5f6103fa610793565b90506001545f036104155761040e81610a0e565b9392505050565b5f61041e6109c1565b90505f818311801561042f57508115155b610439578261043b565b815b905061044681610a0e565b95945050505050565b61048d6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610b66565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104fe6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610b66565b5f5461050e6301e1338084610e0d565b5f81905515801561051e57505f82115b8061053257505f8054118015610532575081155b15610550576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516105859190610c91565b60405180910390a45060015550565b5f6001545f036105a357505f90565b5f6105ac6109c1565b9050805f036105bc575f91505090565b5f6105c5610793565b9190911192915050565b6001546003546105df9042610e20565b10806105eb5750600154155b156105f257565b5f6105fb610793565b90505f6106066109c1565b9050600454818311610618578261061a565b815b6106249190610e33565b6002819055426003555f0361064c57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906106b8907f000000000000000000000000000000000000000000000000000000000000000090600401610cb8565b5f604051808303815f87803b1580156106cf575f80fd5b505af11580156106e1573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6107596040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610b66565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f8060017f000000000000000000000000000000000000000000000000000000000000000060018111156107c9576107c9610c28565b036108a25760405163a31426d160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a31426d19061085c907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401610e46565b602060405180830381865afa158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190610e6c565b9050610972565b60405163abca0eab60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063abca0eab90610930907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401610e46565b602060405180830381865afa15801561094b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096f9190610e6c565b90505b670de0b6b3a7640000816109a77f0000000000000000000000000000000000000000000000000000000000000000600a610f96565b6109b19190610faa565b6109bb9190610e0d565b91505090565b5f80600354426109d19190610e20565b90505f670de0b6b3a7640000825f546002546109ed9190610faa565b6109f79190610faa565b610a019190610e0d565b60025461040e9190610e33565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610a7c9190610cb8565b602060405180830381865afa158015610a97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610abb9190610e6c565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b429190610fdd565b60ff169050610b5281600a610ffb565b610b5c8487610faa565b6104469190610e0d565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab90610bb6903390869060040161103e565b602060405180830381865afa158015610bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611071565b905080610c2457333083604051634a3fa29360e01b8152600401610c1b9392919061108f565b60405180910390fd5b5050565b634e487b7160e01b5f52602160045260245ffd5b60028110610c4c57610c4c610c28565b50565b80610c5981610c3c565b919050565b5f610c6882610c4f565b92915050565b610c7781610c5e565b82525050565b60208101610c688284610c6e565b80610c77565b60208101610c688284610c8b565b5f6001600160a01b038216610c68565b610c7781610c9f565b60208101610c688284610caf565b60ff8116610c77565b60208101610c688284610cc6565b610ce681610c9f565b8114610c4c575f80fd5b8035610c6881610cdd565b5f60208284031215610d0e57610d0e5f80fd5b5f610d198484610cf0565b949350505050565b5f610c6882610c9f565b5f610c6882610d21565b610c7781610d2b565b60208101610c688284610d35565b80610ce6565b8035610c6881610d4c565b5f60208284031215610d7057610d705f80fd5b5f610d198484610d52565b5f8060408385031215610d8f57610d8f5f80fd5b5f610d9a8585610d52565b9250506020610dab85828601610d52565b9150509250929050565b801515610c77565b60208101610c688284610db5565b63ffffffff8116610c77565b60208101610c688284610dcb565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610e1b57610e1b610de5565b500490565b81810381811115610c6857610c68610df9565b80820180821115610c6857610c68610df9565b60408101610e548285610caf565b61040e6020830184610dcb565b8051610c6881610d4c565b5f60208284031215610e7f57610e7f5f80fd5b5f610d198484610e61565b80825b6001851115610ec957808604811115610ea857610ea8610df9565b6001851615610eb657908102905b8002610ec28560011c90565b9450610e8d565b94509492505050565b5f82610ee05750600161040e565b81610eec57505f61040e565b8160018114610f025760028114610f0c57610f39565b600191505061040e565b60ff841115610f1d57610f1d610df9565b8360020a915084821115610f3357610f33610df9565b5061040e565b5060208310610133831016604e8410600b8410161715610f6c575081810a83811115610f6757610f67610df9565b61040e565b610f798484846001610e8a565b92509050818404811115610f8f57610f8f610df9565b0292915050565b5f60ff83165b925061040e5f198484610ed2565b818102808215838204851417610fc257610fc2610df9565b5092915050565b60ff8116610ce6565b8051610c6881610fc9565b5f60208284031215610ff057610ff05f80fd5b5f610d198484610fd2565b5f82610f9c565b8281835e505f910152565b5f611016825190565b80845260208401935061102d818560208601611002565b601f01601f19169290920192915050565b6040810161104c8285610caf565b8181036020830152610d19818461100d565b801515610ce6565b8051610c688161105e565b5f60208284031215611084576110845f80fd5b5f610d198484611066565b6060810161109d8286610caf565b6110aa6020830185610caf565b8181036040830152610446818461100d56fea2646970667358221220e7d60a6a23b4e57c15e675cd9e372b18d97a7f6898fefafcbf778770ce8947dd64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xB4 JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x35F JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0xF46F16C2 EQ PUSH2 0x377 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x29A JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x2C1 JUMPI DUP1 PUSH4 0x809D7B31 EQ PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x879AC8F8 EQ PUSH2 0x2FB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41976E09 GT PUSH2 0x105 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2125D09 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x7D0413C EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x3DAE7C22 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x1FC JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x168 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xC7D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x187 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0x1BB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xCB8 JUMP JUMPDEST PUSH2 0x1EF PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xCCF JUMP JUMPDEST PUSH2 0x187 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0xCFB JUMP JUMPDEST PUSH2 0x39E JUMP JUMPDEST PUSH2 0x23F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xD3E JUMP JUMPDEST PUSH2 0x25F PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0xD5D JUMP JUMPDEST PUSH2 0x44F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x187 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x25F PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x4C0 JUMP JUMPDEST PUSH2 0x285 PUSH2 0x594 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xDBD JUMP JUMPDEST PUSH2 0x25F PUSH2 0x5CF JUMP JUMPDEST PUSH2 0x1BB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x25F PUSH2 0x2CF CALLDATASIZE PUSH1 0x4 PUSH2 0xD7B JUMP JUMPDEST PUSH2 0x71B JUMP JUMPDEST PUSH2 0x23F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x322 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0xDD7 JUMP JUMPDEST PUSH2 0x187 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x23F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x187 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x187 PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x1BB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3F1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x3FA PUSH2 0x793 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x415 JUMPI PUSH2 0x40E DUP2 PUSH2 0xA0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x41E PUSH2 0x9C1 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x42F JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x439 JUMPI DUP3 PUSH2 0x43B JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x446 DUP2 PUSH2 0xA0E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x48D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x4FE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0xB66 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x50E PUSH4 0x1E13380 DUP5 PUSH2 0xE0D JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x51E JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x532 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x532 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x550 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x585 SWAP2 SWAP1 PUSH2 0xC91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x5A3 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x5AC PUSH2 0x9C1 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x5BC JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x5C5 PUSH2 0x793 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x5DF SWAP1 TIMESTAMP PUSH2 0xE20 JUMP JUMPDEST LT DUP1 PUSH2 0x5EB JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x5F2 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x5FB PUSH2 0x793 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x606 PUSH2 0x9C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x618 JUMPI DUP3 PUSH2 0x61A JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x624 SWAP2 SWAP1 PUSH2 0xE33 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x64C JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x6B8 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6CF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6E1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x759 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0xB66 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH32 0x0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x7C9 JUMPI PUSH2 0x7C9 PUSH2 0xC28 JUMP JUMPDEST SUB PUSH2 0x8A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA31426D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA31426D1 SWAP1 PUSH2 0x85C SWAP1 PUSH32 0x0 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x877 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x89B SWAP2 SWAP1 PUSH2 0xE6C JUMP JUMPDEST SWAP1 POP PUSH2 0x972 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xABCA0EAB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xABCA0EAB SWAP1 PUSH2 0x930 SWAP1 PUSH32 0x0 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x96F SWAP2 SWAP1 PUSH2 0xE6C JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 PUSH2 0x9A7 PUSH32 0x0 PUSH1 0xA PUSH2 0xF96 JUMP JUMPDEST PUSH2 0x9B1 SWAP2 SWAP1 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0x9BB SWAP2 SWAP1 PUSH2 0xE0D JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x9D1 SWAP2 SWAP1 PUSH2 0xE20 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x9ED SWAP2 SWAP1 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0x9F7 SWAP2 SWAP1 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0xA01 SWAP2 SWAP1 PUSH2 0xE0D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x40E SWAP2 SWAP1 PUSH2 0xE33 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA7C SWAP2 SWAP1 PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA97 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xABB SWAP2 SWAP1 PUSH2 0xE6C JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0xB1E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xB42 SWAP2 SWAP1 PUSH2 0xFDD JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0xB52 DUP2 PUSH1 0xA PUSH2 0xFFB JUMP JUMPDEST PUSH2 0xB5C DUP5 DUP8 PUSH2 0xFAA JUMP JUMPDEST PUSH2 0x446 SWAP2 SWAP1 PUSH2 0xE0D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xBB6 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBD1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xBF5 SWAP2 SWAP1 PUSH2 0x1071 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xC24 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x108F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0xC4C JUMPI PUSH2 0xC4C PUSH2 0xC28 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH2 0xC59 DUP2 PUSH2 0xC3C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC68 DUP3 PUSH2 0xC4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xC5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xC6E JUMP JUMPDEST DUP1 PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xC8B JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC68 JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xC9F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xCAF JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xCC6 JUMP JUMPDEST PUSH2 0xCE6 DUP2 PUSH2 0xC9F JUMP JUMPDEST DUP2 EQ PUSH2 0xC4C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC68 DUP2 PUSH2 0xCDD JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0E JUMPI PUSH2 0xD0E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xCF0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC68 DUP3 PUSH2 0xC9F JUMP JUMPDEST PUSH0 PUSH2 0xC68 DUP3 PUSH2 0xD21 JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xD2B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xD35 JUMP JUMPDEST DUP1 PUSH2 0xCE6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC68 DUP2 PUSH2 0xD4C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD70 JUMPI PUSH2 0xD70 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xD52 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD8F JUMPI PUSH2 0xD8F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD9A DUP6 DUP6 PUSH2 0xD52 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDAB DUP6 DUP3 DUP7 ADD PUSH2 0xD52 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xDB5 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC68 DUP3 DUP5 PUSH2 0xDCB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xE1B JUMPI PUSH2 0xE1B PUSH2 0xDE5 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xC68 JUMPI PUSH2 0xC68 PUSH2 0xDF9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xC68 JUMPI PUSH2 0xC68 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE54 DUP3 DUP6 PUSH2 0xCAF JUMP JUMPDEST PUSH2 0x40E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xDCB JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC68 DUP2 PUSH2 0xD4C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE7F JUMPI PUSH2 0xE7F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xE61 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xEC9 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xEB6 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xEC2 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xE8D JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xEE0 JUMPI POP PUSH1 0x1 PUSH2 0x40E JUMP JUMPDEST DUP2 PUSH2 0xEEC JUMPI POP PUSH0 PUSH2 0x40E JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xF02 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xF0C JUMPI PUSH2 0xF39 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x40E JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xF1D JUMPI PUSH2 0xF1D PUSH2 0xDF9 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xF33 JUMPI PUSH2 0xF33 PUSH2 0xDF9 JUMP JUMPDEST POP PUSH2 0x40E JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xF6C JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xF67 JUMPI PUSH2 0xF67 PUSH2 0xDF9 JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH2 0xF79 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xE8A JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xF8F JUMPI PUSH2 0xF8F PUSH2 0xDF9 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP4 AND JUMPDEST SWAP3 POP PUSH2 0x40E PUSH0 NOT DUP5 DUP5 PUSH2 0xED2 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xFC2 JUMPI PUSH2 0xFC2 PUSH2 0xDF9 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xCE6 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC68 DUP2 PUSH2 0xFC9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF0 JUMPI PUSH2 0xFF0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0xFD2 JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xF9C JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x1016 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x102D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1002 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x104C DUP3 DUP6 PUSH2 0xCAF JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xD19 DUP2 DUP5 PUSH2 0x100D JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xCE6 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC68 DUP2 PUSH2 0x105E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1084 JUMPI PUSH2 0x1084 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xD19 DUP5 DUP5 PUSH2 0x1066 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x109D DUP3 DUP7 PUSH2 0xCAF JUMP JUMPDEST PUSH2 0x10AA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xCAF JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x446 DUP2 DUP5 PUSH2 0x100D JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0xD6 EXP PUSH11 0x23B4E57C15E675CD9E372B XOR 0xD9 PUSH27 0x7F6898FEFAFCBF778770CE8947DD64736F6C634300081900330000 ","sourceMap":"1316:4174:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3043:35;;;;;;;;;;;;:::i;:::-;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;1007:41::-;;;;;;;;;;;;:::i;3432:42:55:-;;;;;;;;;;;;:::i;1728:26:67:-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;2893:42:55:-;;;;;3206:37;;;;;;;;;;;;:::i;1635:32:67:-;;;;;;1099:58;;;;;5119:369:55;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;3123:31:55:-;;;;;8441:597:67;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;5119:369:55:-;5180:7;;5238:17;5225:9;:30;;;;;;;;:::i;:::-;;5221:201;;5278:46;;-1:-1:-1;;;5278:46:55;;-1:-1:-1;;;;;5278:9:55;:23;;;;:46;;5302:6;;5310:13;;5278:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5271:53;;5221:201;;;5362:49;;-1:-1:-1;;;5362:49:55;;-1:-1:-1;;;;;5362:9:55;:26;;;;:49;;5389:6;;5397:13;;5362:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5355:56;;5221:201;5477:4;5469;5440:25;5446:19;5440:2;:25;:::i;:::-;5439:34;;;;:::i;:::-;5438:43;;;;:::i;:::-;5431:50;;;5119:369;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;7:180:101:-;-1:-1:-1;;;52:1:101;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:118;279:1;272:5;269:12;259:46;;285:18;;:::i;:::-;193:118;:::o;317:137::-;396:5;402:46;396:5;402:46;:::i;:::-;317:137;;;:::o;460:::-;521:9;554:37;585:5;554:37;:::i;:::-;541:50;460:137;-1:-1:-1;;460:137:101:o;603:153::-;701:48;743:5;701:48;:::i;:::-;696:3;689:61;603:153;;:::o;762:244::-;904:2;889:18;;917:82;893:9;972:6;917:82;:::i;1095:118::-;1200:5;1182:24;1012:77;1219:222;1350:2;1335:18;;1363:71;1339:9;1407:6;1363:71;:::i;1579:96::-;1616:7;-1:-1:-1;;;;;1513:54:101;;1645:24;1447:126;1681:118;1768:24;1786:5;1768:24;:::i;1805:222::-;1936:2;1921:18;;1949:71;1925:9;1993:6;1949:71;:::i;2125:112::-;2108:4;2097:16;;2208:22;2033:86;2243:214;2370:2;2355:18;;2383:67;2359:9;2423:6;2383:67;:::i;2790:122::-;2863:24;2881:5;2863:24;:::i;:::-;2856:5;2853:35;2843:63;;2902:1;2899;2892:12;2918:139;2989:20;;3018:33;2989:20;3018:33;:::i;3063:329::-;3122:6;3171:2;3159:9;3150:7;3146:23;3142:32;3139:119;;;3177:79;1316:4174:55;;;3177:79:101;3297:1;3322:53;3367:7;3347:9;3322:53;:::i;:::-;3312:63;3063:329;-1:-1:-1;;;;3063:329:101:o;3612:126::-;3662:9;3695:37;3726:5;3695:37;:::i;3744:158::-;3826:9;3859:37;3890:5;3859:37;:::i;3908:195::-;4027:69;4090:5;4027:69;:::i;4109:286::-;4272:2;4257:18;;4285:103;4261:9;4361:6;4285:103;:::i;4401:122::-;4492:5;4474:24;1012:77;4529:139;4600:20;;4629:33;4600:20;4629:33;:::i;4674:329::-;4733:6;4782:2;4770:9;4761:7;4757:23;4753:32;4750:119;;;4788:79;1316:4174:55;;;4788:79:101;4908:1;4933:53;4978:7;4958:9;4933:53;:::i;5009:474::-;5077:6;5085;5134:2;5122:9;5113:7;5109:23;5105:32;5102:119;;;5140:79;1316:4174:55;;;5140:79:101;5260:1;5285:53;5330:7;5310:9;5285:53;:::i;:::-;5275:63;;5231:117;5387:2;5413:53;5458:7;5449:6;5438:9;5434:22;5413:53;:::i;:::-;5403:63;;5358:118;5009:474;;;;;:::o;5585:109::-;5559:13;;5552:21;5666;5489:90;5700:210;5825:2;5810:18;;5838:65;5814:9;5876:6;5838:65;:::i;6632:115::-;6609:10;6598:22;;6717:23;6533:93;6753:218;6882:2;6867:18;;6895:69;6871:9;6937:6;6895:69;:::i;7639:180::-;-1:-1:-1;;;7684:1:101;7677:88;7784:4;7781:1;7774:15;7808:4;7805:1;7798:15;7825:180;-1:-1:-1;;;7870:1:101;7863:88;7970:4;7967:1;7960:15;7994:4;7991:1;7984:15;8011:185;8051:1;8141;8131:35;;8146:18;;:::i;:::-;-1:-1:-1;8181:9:101;;8011:185::o;8202:194::-;8333:9;;;8355:11;;;8352:37;;;8369:18;;:::i;8402:191::-;8531:9;;;8553:10;;;8550:36;;;8566:18;;:::i;8599:328::-;8756:2;8741:18;;8769:71;8745:9;8813:6;8769:71;:::i;:::-;8850:70;8916:2;8905:9;8901:18;8892:6;8850:70;:::i;8933:143::-;9015:13;;9037:33;9015:13;9037:33;:::i;9082:351::-;9152:6;9201:2;9189:9;9180:7;9176:23;9172:32;9169:119;;;9207:79;1316:4174:55;;;9207:79:101;9327:1;9352:64;9408:7;9388:9;9352:64;:::i;9547:848::-;9639:6;9663:5;9677:712;9698:1;9688:8;9685:15;9677:712;;;9793:4;9788:3;9784:14;9778:4;9775:24;9772:50;;;9802:18;;:::i;:::-;9852:1;9842:8;9838:16;9835:451;;;10256:16;;;;9835:451;10307:15;;10347:32;10370:8;9525:1;9521:13;;9439:102;10347:32;10335:44;;9677:712;;;9547:848;;;;;;;:::o;10401:1073::-;10455:5;10646:8;10636:40;;-1:-1:-1;10667:1:101;10669:5;;10636:40;10695:4;10685:36;;-1:-1:-1;10712:1:101;10714:5;;10685:36;10781:4;10829:1;10824:27;;;;10865:1;10860:191;;;;10774:277;;10824:27;10842:1;10833:10;;10844:5;;;10860:191;10905:3;10895:8;10892:17;10889:43;;;10912:18;;:::i;:::-;10961:8;10958:1;10954:16;10945:25;;10996:3;10989:5;10986:14;10983:40;;;11003:18;;:::i;:::-;11036:5;;;10774:277;;11160:2;11150:8;11147:16;11141:3;11135:4;11132:13;11128:36;11110:2;11100:8;11097:16;11092:2;11086:4;11083:12;11079:35;11063:111;11060:246;;;-1:-1:-1;11206:19:101;;;11241:14;;;11238:40;;;11258:18;;:::i;:::-;11291:5;;11060:246;11331:42;11369:3;11359:8;11353:4;11350:1;11331:42;:::i;:::-;11316:57;;;;11405:4;11400:3;11396:14;11389:5;11386:25;11383:51;;;11414:18;;:::i;:::-;11452:16;;10401:1073;-1:-1:-1;;10401:1073:101:o;11480:281::-;11538:5;2108:4;2097:16;;11606:25;11594:37;;11650:104;-1:-1:-1;;11677:8:101;11671:4;11650:104;:::i;11767:410::-;11912:9;;;;12074;;12107:15;;;12101:22;;12054:83;12031:139;;12150:18;;:::i;:::-;11815:362;11767:410;;;;:::o;12183:118::-;2108:4;2097:16;;12254:22;2033:86;12307:139;12387:13;;12409:31;12387:13;12409:31;:::i;12452:347::-;12520:6;12569:2;12557:9;12548:7;12544:23;12540:32;12537:119;;;12575:79;1316:4174:55;;;12575:79:101;12695:1;12720:62;12774:7;12754:9;12720:62;:::i;12805:285::-;12865:5;12951:8;12933:27;1012:77;13376:139;13465:6;13460:3;13455;13449:23;-1:-1:-1;13506:1:101;13488:16;;13481:27;13376:139::o;13629:377::-;13717:3;13745:39;13778:5;13176:12;;13096:99;13745:39;13307:19;;;13359:4;13350:14;;13793:78;;13880:65;13938:6;13933:3;13926:4;13919:5;13915:16;13880:65;:::i;:::-;13613:2;13593:14;-1:-1:-1;;13589:28:101;13961:39;;;;;;-1:-1:-1;;13629:377:101:o;14012:423::-;14191:2;14176:18;;14204:71;14180:9;14248:6;14204:71;:::i;:::-;14322:9;14316:4;14312:20;14307:2;14296:9;14292:18;14285:48;14350:78;14423:4;14414:6;14350:78;:::i;14441:116::-;5559:13;;5552:21;14511;5489:90;14563:137;14642:13;;14664:30;14642:13;14664:30;:::i;14706:345::-;14773:6;14822:2;14810:9;14801:7;14797:23;14793:32;14790:119;;;14828:79;1316:4174:55;;;14828:79:101;14948:1;14973:61;15026:7;15006:9;14973:61;:::i;15057:533::-;15264:2;15249:18;;15277:71;15253:9;15321:6;15277:71;:::i;:::-;15358:72;15426:2;15415:9;15411:18;15402:6;15358:72;:::i;:::-;15477:9;15471:4;15467:20;15462:2;15451:9;15447:18;15440:48;15505:78;15578:4;15569:6;15505:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"867600","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","MARKET()":"infinite","PT_ORACLE()":"infinite","RATE_KIND()":"infinite","RESILIENT_ORACLE()":"infinite","TWAP_DURATION()":"infinite","UNDERLYING_DECIMALS()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2458","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2483","snapshotInterval()":"2417","snapshotMaxExchangeRate()":"2460","snapshotTimestamp()":"2393","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","MARKET()":"f46f16c2","PT_ORACLE()":"809d7b31","RATE_KIND()":"02125d09","RESILIENT_ORACLE()":"a4edcd4c","TWAP_DURATION()":"879ac8f8","UNDERLYING_DECIMALS()":"3dae7c22","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ptOracle\",\"type\":\"address\"},{\"internalType\":\"enum PendleOracle.RateKind\",\"name\":\"rateKind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"ptToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"twapDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"snapshotGap\",\"type\":\"uint256\"}],\"internalType\":\"struct PendleOracle.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_ORACLE\",\"outputs\":[{\"internalType\":\"contract IPendlePtOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RATE_KIND\",\"outputs\":[{\"internalType\":\"enum PendleOracle.RateKind\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TWAP_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_DECIMALS\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"details\":\"As a base price the oracle uses either the price of the Pendle market's asset (in this case PT_TO_ASSET rate should be used) or the price of the Pendle market's interest bearing token (e.g. wstETH for stETH; in this case PT_TO_SY rate should be used). Technically, interest bearing token is different from standardized yield (SY) token, but since SY is a wrapper around an interest bearing token, we can safely assume the prices of the two are equal. This is not always true for asset price though: using PT_TO_ASSET rate assumes that the yield token can be seamlessly redeemed for the underlying asset. In reality, this might not always be the case. For more details, see https://docs.pendle.finance/Developers/Contracts/StandardizedYield\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:error\":\"InvalidDuration Thrown if the duration is invalid\"},\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount The amount of underlying token (either the market's asset or the yield token) for 1 PT, adjusted for decimals such that the result has the same precision as the underlying token\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"stateVariables\":{\"UNDERLYING_DECIMALS\":{\"details\":\"We make an assumption that the underlying decimals will not change throughout the lifetime of the Pendle market\"}},\"title\":\"PendleOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidDuration()\":[{\"notice\":\"Thrown if the duration is invalid\"}],\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}],\"ZeroValueNotAllowed()\":[{\"notice\":\"Thrown if the supplied value is 0 where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"MARKET()\":{\"notice\":\"Address of the market\"},\"PT_ORACLE()\":{\"notice\":\"Address of the PT oracle\"},\"RATE_KIND()\":{\"notice\":\"Whether to use PT/SY (standardized yield token) rate or PT/market asset rate\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"TWAP_DURATION()\":{\"notice\":\"Twap duration for the oracle\"},\"UNDERLYING_DECIMALS()\":{\"notice\":\"Decimals of the underlying token\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of underlying token for 1 PT\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of a pendle token\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/PendleOracle.sol\":\"PendleOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IPendlePtOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IPendlePtOracle {\\n    function getPtToAssetRate(address market, uint32 duration) external view returns (uint256);\\n\\n    function getPtToSyRate(address market, uint32 duration) external view returns (uint256);\\n\\n    function getOracleState(\\n        address market,\\n        uint32 duration\\n    )\\n        external\\n        view\\n        returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied);\\n}\\n\",\"keccak256\":\"0x14d96d7f75397e4291288ef6367053bd970d95fc0c3e2a028b077f6342e0160a\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/PendleOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IPendlePtOracle } from \\\"../interfaces/IPendlePtOracle.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { ensureNonzeroAddress, ensureNonzeroValue } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\n/**\\n * @title PendleOracle\\n * @author Venus\\n * @notice This oracle fetches the price of a pendle token\\n * @dev As a base price the oracle uses either the price of the Pendle\\n * market's asset (in this case PT_TO_ASSET rate should be used) or\\n * the price of the Pendle market's interest bearing token (e.g. wstETH\\n * for stETH; in this case PT_TO_SY rate should be used). Technically,\\n * interest bearing token is different from standardized yield (SY) token,\\n * but since SY is a wrapper around an interest bearing token, we can safely\\n * assume the prices of the two are equal. This is not always true for asset\\n * price though: using PT_TO_ASSET rate assumes that the yield token can\\n * be seamlessly redeemed for the underlying asset. In reality, this might\\n * not always be the case. For more details, see\\n * https://docs.pendle.finance/Developers/Contracts/StandardizedYield\\n */\\ncontract PendleOracle is CorrelatedTokenOracle {\\n    struct ConstructorParams {\\n        /// @notice Pendle market\\n        address market;\\n        /// @notice Pendle oracle\\n        address ptOracle;\\n        /// @notice Either PT_TO_ASSET or PT_TO_SY\\n        RateKind rateKind;\\n        /// @notice Pendle PT token\\n        address ptToken;\\n        /// @notice Underlying token, can be either the market's asset or the interest bearing token\\n        address underlyingToken;\\n        /// @notice Resilient oracle to get the underlying token price from\\n        address resilientOracle;\\n        /// @notice TWAP duration to call Pendle oracle with\\n        uint32 twapDuration;\\n        /// @notice Annual growth rate of the underlying token\\n        uint256 annualGrowthRate;\\n        /// @notice Snapshot interval for the oracle\\n        uint256 snapshotInterval;\\n        /// @notice Initial exchange rate of the underlying token\\n        uint256 initialSnapshotMaxExchangeRate;\\n        /// @notice Initial timestamp of the underlying token\\n        uint256 initialSnapshotTimestamp;\\n        /// @notice Access control manager\\n        address accessControlManager;\\n        /// @notice Gap to add when updating the snapshot\\n        uint256 snapshotGap;\\n    }\\n\\n    /// @notice Which asset to use as a base for the returned PT\\n    /// price. Can be either a standardized yield token (SY), in\\n    /// this case PT/SY price is returned, or the Pendle\\n    /// market's asset directly.\\n    enum RateKind {\\n        PT_TO_ASSET,\\n        PT_TO_SY\\n    }\\n\\n    /// @notice Address of the PT oracle\\n    IPendlePtOracle public immutable PT_ORACLE;\\n\\n    /// @notice Whether to use PT/SY (standardized yield token) rate\\n    /// or PT/market asset rate\\n    RateKind public immutable RATE_KIND;\\n\\n    /// @notice Address of the market\\n    address public immutable MARKET;\\n\\n    /// @notice Twap duration for the oracle\\n    uint32 public immutable TWAP_DURATION;\\n\\n    /// @notice Decimals of the underlying token\\n    /// @dev We make an assumption that the underlying decimals will\\n    /// not change throughout the lifetime of the Pendle market\\n    uint8 public immutable UNDERLYING_DECIMALS;\\n\\n    /// @notice Thrown if the duration is invalid\\n    error InvalidDuration();\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidDuration Thrown if the duration is invalid\\n     */\\n    constructor(\\n        ConstructorParams memory params\\n    )\\n        CorrelatedTokenOracle(\\n            params.ptToken,\\n            params.underlyingToken,\\n            params.resilientOracle,\\n            params.annualGrowthRate,\\n            params.snapshotInterval,\\n            params.initialSnapshotMaxExchangeRate,\\n            params.initialSnapshotTimestamp,\\n            params.accessControlManager,\\n            params.snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(params.market);\\n        ensureNonzeroAddress(params.ptOracle);\\n        ensureNonzeroValue(params.twapDuration);\\n\\n        MARKET = params.market;\\n        PT_ORACLE = IPendlePtOracle(params.ptOracle);\\n        RATE_KIND = params.rateKind;\\n        TWAP_DURATION = params.twapDuration;\\n        UNDERLYING_DECIMALS = IERC20Metadata(UNDERLYING_TOKEN).decimals();\\n\\n        (bool increaseCardinalityRequired, , bool oldestObservationSatisfied) = PT_ORACLE.getOracleState(\\n            MARKET,\\n            TWAP_DURATION\\n        );\\n        if (increaseCardinalityRequired || !oldestObservationSatisfied) {\\n            revert InvalidDuration();\\n        }\\n    }\\n\\n    /// @notice Fetches the amount of underlying token for 1 PT\\n    /// @return amount The amount of underlying token (either the market's asset\\n    /// or the yield token) for 1 PT, adjusted for decimals such that the result\\n    /// has the same precision as the underlying token\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        uint256 rate;\\n        if (RATE_KIND == RateKind.PT_TO_SY) {\\n            rate = PT_ORACLE.getPtToSyRate(MARKET, TWAP_DURATION);\\n        } else {\\n            rate = PT_ORACLE.getPtToAssetRate(MARKET, TWAP_DURATION);\\n        }\\n        return ((10 ** UNDERLYING_DECIMALS) * rate) / 1e18;\\n    }\\n}\\n\",\"keccak256\":\"0xaa7963ac7657ea62079c2162cb4fc45524f8ffbbc6e84f89a5d4e54b71dc6025\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/PendleOracle.sol:PendleOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/PendleOracle.sol:PendleOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/PendleOracle.sol:PendleOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/PendleOracle.sol:PendleOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/PendleOracle.sol:PendleOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidDuration()":[{"notice":"Thrown if the duration is invalid"}],"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}],"ZeroValueNotAllowed()":[{"notice":"Thrown if the supplied value is 0 where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"MARKET()":{"notice":"Address of the market"},"PT_ORACLE()":{"notice":"Address of the PT oracle"},"RATE_KIND()":{"notice":"Whether to use PT/SY (standardized yield token) rate or PT/market asset rate"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"TWAP_DURATION()":{"notice":"Twap duration for the oracle"},"UNDERLYING_DECIMALS()":{"notice":"Decimals of the underlying token"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of underlying token for 1 PT"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of a pendle token","version":1}}},"contracts/oracles/SFraxOracle.sol":{"SFraxOracle":{"abi":[{"inputs":[{"internalType":"address","name":"sFrax","type":"address"},{"internalType":"address","name":"frax","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount The amount of FRAX for sFrax"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"SFraxOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5594":{"entryPoint":null,"id":5594,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":288,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":367,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":395,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":607,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":330,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":587,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":348,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":378,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610100604052348015610010575f80fd5b5060405161106838038061106883398101604081905261002f9161018b565b8888888888888888886100466301e133808761025f565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610120565b6100ce88610120565b6100d787610120565b6100e082610120565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05250610272975050505050505050565b6001600160a01b038116610147576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101658161014a565b8114610147575f80fd5b80516101568161015c565b80610165565b80516101568161017a565b5f805f805f805f805f6101208a8c0312156101a7576101a75f80fd5b5f6101b28c8c61016f565b99505060206101c38c828d0161016f565b98505060406101d48c828d0161016f565b97505060606101e58c828d01610180565b96505060806101f68c828d01610180565b95505060a06102078c828d01610180565b94505060c06102188c828d01610180565b93505060e06102298c828d0161016f565b92505061010061023b8c828d01610180565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261026d5761026d61024b565b500490565b60805160a05160c05160e051610d8b6102dd5f395f818161017e01526108ca01525f818161024301528181610542015261075d01525f818161012e0152818161056f015261078c01525f8181610200015281816102800152818161068b015261080b0152610d8b5ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b604051610120919061097b565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b60405161012091906109a8565b61011360045481565b6101136101743660046109d7565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a1a565b6101c06101bb366004610a39565b61032e565b005b61011360025481565b6101c06101d9366004610a57565b61039f565b6101e6610473565b6040516101209190610a99565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610a57565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b61011361070c565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed81610759565b9392505050565b5f6102fd61070c565b90505f818311801561030e57508115155b610318578261031a565b815b905061032581610759565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108b1565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108b1565b5f546103ed6301e1338084610acf565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de60885604051610464919061097b565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b61070c565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610ae2565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e561070c565b90506004548183116104f757826104f9565b815b6105039190610af5565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f0000000000000000000000000000000000000000000000000000000000000000906004016109a8565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108b1565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b6040516303d1689d60e11b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a906106c890670de0b6b3a76400009060040161097b565b602060405180830381865afa1580156106e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107079190610b13565b905090565b5f806003544261071c9190610ae2565b90505f670de0b6b3a7640000825f546002546107389190610b31565b6107429190610b31565b61074c9190610acf565b6002546102ed9190610af5565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107c791906109a8565b602060405180830381865afa1580156107e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108069190610b13565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088d9190610b64565b60ff16905061089d81600a610c8e565b6108a78487610b31565b6103259190610acf565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109019033908690600401610cd7565b602060405180830381865afa15801561091c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109409190610d0a565b90508061096f57333083604051634a3fa29360e01b815260040161096693929190610d28565b60405180910390fd5b5050565b805b82525050565b602081016109898284610973565b92915050565b5f6001600160a01b038216610989565b6109758161098f565b60208101610989828461099f565b6109bf8161098f565b81146109c9575f80fd5b50565b8035610989816109b6565b5f602082840312156109ea576109ea5f80fd5b5f6109f584846109cc565b949350505050565b5f6109898261098f565b5f610989826109fd565b61097581610a07565b602081016109898284610a11565b806109bf565b803561098981610a28565b5f60208284031215610a4c57610a4c5f80fd5b5f6109f58484610a2e565b5f8060408385031215610a6b57610a6b5f80fd5b5f610a768585610a2e565b9250506020610a8785828601610a2e565b9150509250929050565b801515610975565b602081016109898284610a91565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610add57610add610aa7565b500490565b8181038181111561098957610989610abb565b8082018082111561098957610989610abb565b805161098981610a28565b5f60208284031215610b2657610b265f80fd5b5f6109f58484610b08565b818102808215838204851417610b4957610b49610abb565b5092915050565b60ff81166109bf565b805161098981610b50565b5f60208284031215610b7757610b775f80fd5b5f6109f58484610b59565b80825b6001851115610bc157808604811115610ba057610ba0610abb565b6001851615610bae57908102905b8002610bba8560011c90565b9450610b85565b94509492505050565b5f82610bd8575060016102ed565b81610be457505f6102ed565b8160018114610bfa5760028114610c0457610c31565b60019150506102ed565b60ff841115610c1557610c15610abb565b8360020a915084821115610c2b57610c2b610abb565b506102ed565b5060208310610133831016604e8410600b8410161715610c64575081810a83811115610c5f57610c5f610abb565b6102ed565b610c718484846001610b82565b92509050818404811115610c8757610c87610abb565b0292915050565b5f6102ed5f198484610bca565b8281835e505f910152565b5f610caf825190565b808452602084019350610cc6818560208601610c9b565b601f01601f19169290920192915050565b60408101610ce5828561099f565b81810360208301526109f58184610ca6565b8015156109bf565b805161098981610cf7565b5f60208284031215610d1d57610d1d5f80fd5b5f6109f58484610cff565b60608101610d36828661099f565b610d43602083018561099f565b81810360408301526103258184610ca656fea26469706673582212204ecdeaf323ec03b90ddbebf675bba4368c39a6792dd390aebbe4d40fb81d5f2e64736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1068 CODESIZE SUB DUP1 PUSH2 0x1068 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x18B JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x25F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE POP PUSH2 0x272 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x147 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165 DUP2 PUSH2 0x14A JUMP JUMPDEST DUP2 EQ PUSH2 0x147 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x15C JUMP JUMPDEST DUP1 PUSH2 0x165 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x17A JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1A7 JUMPI PUSH2 0x1A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1B2 DUP13 DUP13 PUSH2 0x16F JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1C3 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1D4 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x1E5 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x1F6 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x207 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x218 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x229 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x23B DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x26D JUMPI PUSH2 0x26D PUSH2 0x24B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0xD8B PUSH2 0x2DD PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x17E ADD MSTORE PUSH2 0x8CA ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x243 ADD MSTORE DUP2 DUP2 PUSH2 0x542 ADD MSTORE PUSH2 0x75D ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x12E ADD MSTORE DUP2 DUP2 PUSH2 0x56F ADD MSTORE PUSH2 0x78C ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x200 ADD MSTORE DUP2 DUP2 PUSH2 0x280 ADD MSTORE DUP2 DUP2 PUSH2 0x68B ADD MSTORE PUSH2 0x80B ADD MSTORE PUSH2 0xD8B PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x9D7 JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA1A JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA39 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA99 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x70C JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x759 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x70C JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x759 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8B1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xACF JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x70C JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xAE2 JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x70C JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9A8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D1689D PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A2D13A SWAP1 PUSH2 0x6C8 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x97B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6E3 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x707 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x71C SWAP2 SWAP1 PUSH2 0xAE2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x738 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x742 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x74C SWAP2 SWAP1 PUSH2 0xACF JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7E2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x806 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x869 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x88D SWAP2 SWAP1 PUSH2 0xB64 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x89D DUP2 PUSH1 0xA PUSH2 0xC8E JUMP JUMPDEST PUSH2 0x8A7 DUP5 DUP8 PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xACF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x901 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCD7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x91C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x940 SWAP2 SWAP1 PUSH2 0xD0A JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x96F JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0x973 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x989 JUMP JUMPDEST PUSH2 0x975 DUP2 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0x99F JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0x98F JUMP JUMPDEST DUP2 EQ PUSH2 0x9C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x989 DUP2 PUSH2 0x9B6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9EA JUMPI PUSH2 0x9EA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0x9CC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x989 DUP3 PUSH2 0x98F JUMP JUMPDEST PUSH0 PUSH2 0x989 DUP3 PUSH2 0x9FD JUMP JUMPDEST PUSH2 0x975 DUP2 PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0xA11 JUMP JUMPDEST DUP1 PUSH2 0x9BF JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x989 DUP2 PUSH2 0xA28 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA4C JUMPI PUSH2 0xA4C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xA2E JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA6B JUMPI PUSH2 0xA6B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA76 DUP6 DUP6 PUSH2 0xA2E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA87 DUP6 DUP3 DUP7 ADD PUSH2 0xA2E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x975 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0xA91 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xADD JUMPI PUSH2 0xADD PUSH2 0xAA7 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH2 0x989 PUSH2 0xABB JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x989 JUMPI PUSH2 0x989 PUSH2 0xABB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x989 DUP2 PUSH2 0xA28 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB26 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xB08 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB49 JUMPI PUSH2 0xB49 PUSH2 0xABB JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9BF JUMP JUMPDEST DUP1 MLOAD PUSH2 0x989 DUP2 PUSH2 0xB50 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB77 JUMPI PUSH2 0xB77 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xB59 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBC1 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBA0 JUMPI PUSH2 0xBA0 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBAE JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBBA DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB85 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBD8 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xBE4 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xBFA JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC04 JUMPI PUSH2 0xC31 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC15 JUMPI PUSH2 0xC15 PUSH2 0xABB JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC2B JUMPI PUSH2 0xC2B PUSH2 0xABB JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC64 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC5F JUMPI PUSH2 0xC5F PUSH2 0xABB JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xC71 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB82 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC87 JUMPI PUSH2 0xC87 PUSH2 0xABB JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xBCA JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCAF DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCC6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC9B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xCE5 DUP3 DUP6 PUSH2 0x99F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9F5 DUP2 DUP5 PUSH2 0xCA6 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9BF JUMP JUMPDEST DUP1 MLOAD PUSH2 0x989 DUP2 PUSH2 0xCF7 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1D JUMPI PUSH2 0xD1D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xCFF JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD36 DUP3 DUP7 PUSH2 0x99F JUMP JUMPDEST PUSH2 0xD43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x99F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xCA6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E 0xCD 0xEA RETURN 0x23 0xEC SUB 0xB9 0xD 0xDB 0xEB 0xF6 PUSH22 0xBBA4368C39A6792DD390AEBBE4D40FB81D5F2E64736F PUSH13 0x63430008190033000000000000 ","sourceMap":"378:1025:56:-:0;;;491:638;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;857:5;876:4;894:15;923:16;953:17;984:30;1028:24;1066:20;1100:12;3527:36:67;408:10:17;923:16:56;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;-1:-1:-1;378:1025:56;;-1:-1:-1;;;;;;;;378:1025:56;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;378:1025:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1881,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2225,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1804,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":637,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_5609":{"entryPoint":1650,"id":5609,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1139,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":927,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":814,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1530,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1198,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2508,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3327,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2606,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2824,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2905,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3338,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2617,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2835,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2647,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2916,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2463,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2705,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2577,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3238,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2419,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3368,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3287,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2713,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2586,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2427,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2805,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2767,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2946,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3214,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3018,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2865,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2786,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2447,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2567,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2557,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3227,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2747,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2727,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2486,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3319,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2600,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2896,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12568:101","nodeType":"YulBlock","src":"0:12568:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5171:152:101","nodeType":"YulBlock","src":"5171:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5188:1:101","nodeType":"YulLiteral","src":"5188:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5191:77:101","nodeType":"YulLiteral","src":"5191:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5181:6:101","nodeType":"YulIdentifier","src":"5181:6:101"},"nativeSrc":"5181:88:101","nodeType":"YulFunctionCall","src":"5181:88:101"},"nativeSrc":"5181:88:101","nodeType":"YulExpressionStatement","src":"5181:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5285:1:101","nodeType":"YulLiteral","src":"5285:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5288:4:101","nodeType":"YulLiteral","src":"5288:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:101","nodeType":"YulIdentifier","src":"5278:6:101"},"nativeSrc":"5278:15:101","nodeType":"YulFunctionCall","src":"5278:15:101"},"nativeSrc":"5278:15:101","nodeType":"YulExpressionStatement","src":"5278:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5309:1:101","nodeType":"YulLiteral","src":"5309:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5312:4:101","nodeType":"YulLiteral","src":"5312:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5302:6:101","nodeType":"YulIdentifier","src":"5302:6:101"},"nativeSrc":"5302:15:101","nodeType":"YulFunctionCall","src":"5302:15:101"},"nativeSrc":"5302:15:101","nodeType":"YulExpressionStatement","src":"5302:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5143:180:101","nodeType":"YulFunctionDefinition","src":"5143:180:101"},{"body":{"nativeSrc":"5357:152:101","nodeType":"YulBlock","src":"5357:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5374:1:101","nodeType":"YulLiteral","src":"5374:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5377:77:101","nodeType":"YulLiteral","src":"5377:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:101","nodeType":"YulIdentifier","src":"5367:6:101"},"nativeSrc":"5367:88:101","nodeType":"YulFunctionCall","src":"5367:88:101"},"nativeSrc":"5367:88:101","nodeType":"YulExpressionStatement","src":"5367:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5471:1:101","nodeType":"YulLiteral","src":"5471:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5474:4:101","nodeType":"YulLiteral","src":"5474:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5464:6:101","nodeType":"YulIdentifier","src":"5464:6:101"},"nativeSrc":"5464:15:101","nodeType":"YulFunctionCall","src":"5464:15:101"},"nativeSrc":"5464:15:101","nodeType":"YulExpressionStatement","src":"5464:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5495:1:101","nodeType":"YulLiteral","src":"5495:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5498:4:101","nodeType":"YulLiteral","src":"5498:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5488:6:101","nodeType":"YulIdentifier","src":"5488:6:101"},"nativeSrc":"5488:15:101","nodeType":"YulFunctionCall","src":"5488:15:101"},"nativeSrc":"5488:15:101","nodeType":"YulExpressionStatement","src":"5488:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5329:180:101","nodeType":"YulFunctionDefinition","src":"5329:180:101"},{"body":{"nativeSrc":"5557:143:101","nodeType":"YulBlock","src":"5557:143:101","statements":[{"nativeSrc":"5567:25:101","nodeType":"YulAssignment","src":"5567:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5590:1:101","nodeType":"YulIdentifier","src":"5590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5572:17:101","nodeType":"YulIdentifier","src":"5572:17:101"},"nativeSrc":"5572:20:101","nodeType":"YulFunctionCall","src":"5572:20:101"},"variableNames":[{"name":"x","nativeSrc":"5567:1:101","nodeType":"YulIdentifier","src":"5567:1:101"}]},{"nativeSrc":"5601:25:101","nodeType":"YulAssignment","src":"5601:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5624:1:101","nodeType":"YulIdentifier","src":"5624:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5606:17:101","nodeType":"YulIdentifier","src":"5606:17:101"},"nativeSrc":"5606:20:101","nodeType":"YulFunctionCall","src":"5606:20:101"},"variableNames":[{"name":"y","nativeSrc":"5601:1:101","nodeType":"YulIdentifier","src":"5601:1:101"}]},{"body":{"nativeSrc":"5648:22:101","nodeType":"YulBlock","src":"5648:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"5650:16:101","nodeType":"YulIdentifier","src":"5650:16:101"},"nativeSrc":"5650:18:101","nodeType":"YulFunctionCall","src":"5650:18:101"},"nativeSrc":"5650:18:101","nodeType":"YulExpressionStatement","src":"5650:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"5645:1:101","nodeType":"YulIdentifier","src":"5645:1:101"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:101","nodeType":"YulIdentifier","src":"5638:6:101"},"nativeSrc":"5638:9:101","nodeType":"YulFunctionCall","src":"5638:9:101"},"nativeSrc":"5635:35:101","nodeType":"YulIf","src":"5635:35:101"},{"nativeSrc":"5680:14:101","nodeType":"YulAssignment","src":"5680:14:101","value":{"arguments":[{"name":"x","nativeSrc":"5689:1:101","nodeType":"YulIdentifier","src":"5689:1:101"},{"name":"y","nativeSrc":"5692:1:101","nodeType":"YulIdentifier","src":"5692:1:101"}],"functionName":{"name":"div","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"},"nativeSrc":"5685:9:101","nodeType":"YulFunctionCall","src":"5685:9:101"},"variableNames":[{"name":"r","nativeSrc":"5680:1:101","nodeType":"YulIdentifier","src":"5680:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"5515:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5546:1:101","nodeType":"YulTypedName","src":"5546:1:101","type":""},{"name":"y","nativeSrc":"5549:1:101","nodeType":"YulTypedName","src":"5549:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"5555:1:101","nodeType":"YulTypedName","src":"5555:1:101","type":""}],"src":"5515:185:101"},{"body":{"nativeSrc":"5751:149:101","nodeType":"YulBlock","src":"5751:149:101","statements":[{"nativeSrc":"5761:25:101","nodeType":"YulAssignment","src":"5761:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5784:1:101","nodeType":"YulIdentifier","src":"5784:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5766:17:101","nodeType":"YulIdentifier","src":"5766:17:101"},"nativeSrc":"5766:20:101","nodeType":"YulFunctionCall","src":"5766:20:101"},"variableNames":[{"name":"x","nativeSrc":"5761:1:101","nodeType":"YulIdentifier","src":"5761:1:101"}]},{"nativeSrc":"5795:25:101","nodeType":"YulAssignment","src":"5795:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5818:1:101","nodeType":"YulIdentifier","src":"5818:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5800:17:101","nodeType":"YulIdentifier","src":"5800:17:101"},"nativeSrc":"5800:20:101","nodeType":"YulFunctionCall","src":"5800:20:101"},"variableNames":[{"name":"y","nativeSrc":"5795:1:101","nodeType":"YulIdentifier","src":"5795:1:101"}]},{"nativeSrc":"5829:17:101","nodeType":"YulAssignment","src":"5829:17:101","value":{"arguments":[{"name":"x","nativeSrc":"5841:1:101","nodeType":"YulIdentifier","src":"5841:1:101"},{"name":"y","nativeSrc":"5844:1:101","nodeType":"YulIdentifier","src":"5844:1:101"}],"functionName":{"name":"sub","nativeSrc":"5837:3:101","nodeType":"YulIdentifier","src":"5837:3:101"},"nativeSrc":"5837:9:101","nodeType":"YulFunctionCall","src":"5837:9:101"},"variableNames":[{"name":"diff","nativeSrc":"5829:4:101","nodeType":"YulIdentifier","src":"5829:4:101"}]},{"body":{"nativeSrc":"5871:22:101","nodeType":"YulBlock","src":"5871:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5873:16:101","nodeType":"YulIdentifier","src":"5873:16:101"},"nativeSrc":"5873:18:101","nodeType":"YulFunctionCall","src":"5873:18:101"},"nativeSrc":"5873:18:101","nodeType":"YulExpressionStatement","src":"5873:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"5862:4:101","nodeType":"YulIdentifier","src":"5862:4:101"},{"name":"x","nativeSrc":"5868:1:101","nodeType":"YulIdentifier","src":"5868:1:101"}],"functionName":{"name":"gt","nativeSrc":"5859:2:101","nodeType":"YulIdentifier","src":"5859:2:101"},"nativeSrc":"5859:11:101","nodeType":"YulFunctionCall","src":"5859:11:101"},"nativeSrc":"5856:37:101","nodeType":"YulIf","src":"5856:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"5706:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5737:1:101","nodeType":"YulTypedName","src":"5737:1:101","type":""},{"name":"y","nativeSrc":"5740:1:101","nodeType":"YulTypedName","src":"5740:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5746:4:101","nodeType":"YulTypedName","src":"5746:4:101","type":""}],"src":"5706:194:101"},{"body":{"nativeSrc":"5950:147:101","nodeType":"YulBlock","src":"5950:147:101","statements":[{"nativeSrc":"5960:25:101","nodeType":"YulAssignment","src":"5960:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5983:1:101","nodeType":"YulIdentifier","src":"5983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5965:17:101","nodeType":"YulIdentifier","src":"5965:17:101"},"nativeSrc":"5965:20:101","nodeType":"YulFunctionCall","src":"5965:20:101"},"variableNames":[{"name":"x","nativeSrc":"5960:1:101","nodeType":"YulIdentifier","src":"5960:1:101"}]},{"nativeSrc":"5994:25:101","nodeType":"YulAssignment","src":"5994:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6017:1:101","nodeType":"YulIdentifier","src":"6017:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5999:17:101","nodeType":"YulIdentifier","src":"5999:17:101"},"nativeSrc":"5999:20:101","nodeType":"YulFunctionCall","src":"5999:20:101"},"variableNames":[{"name":"y","nativeSrc":"5994:1:101","nodeType":"YulIdentifier","src":"5994:1:101"}]},{"nativeSrc":"6028:16:101","nodeType":"YulAssignment","src":"6028:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6039:1:101","nodeType":"YulIdentifier","src":"6039:1:101"},{"name":"y","nativeSrc":"6042:1:101","nodeType":"YulIdentifier","src":"6042:1:101"}],"functionName":{"name":"add","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},"nativeSrc":"6035:9:101","nodeType":"YulFunctionCall","src":"6035:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"}]},{"body":{"nativeSrc":"6068:22:101","nodeType":"YulBlock","src":"6068:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6070:16:101","nodeType":"YulIdentifier","src":"6070:16:101"},"nativeSrc":"6070:18:101","nodeType":"YulFunctionCall","src":"6070:18:101"},"nativeSrc":"6070:18:101","nodeType":"YulExpressionStatement","src":"6070:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6060:1:101","nodeType":"YulIdentifier","src":"6060:1:101"},{"name":"sum","nativeSrc":"6063:3:101","nodeType":"YulIdentifier","src":"6063:3:101"}],"functionName":{"name":"gt","nativeSrc":"6057:2:101","nodeType":"YulIdentifier","src":"6057:2:101"},"nativeSrc":"6057:10:101","nodeType":"YulFunctionCall","src":"6057:10:101"},"nativeSrc":"6054:36:101","nodeType":"YulIf","src":"6054:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"5906:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5937:1:101","nodeType":"YulTypedName","src":"5937:1:101","type":""},{"name":"y","nativeSrc":"5940:1:101","nodeType":"YulTypedName","src":"5940:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5946:3:101","nodeType":"YulTypedName","src":"5946:3:101","type":""}],"src":"5906:191:101"},{"body":{"nativeSrc":"6166:80:101","nodeType":"YulBlock","src":"6166:80:101","statements":[{"nativeSrc":"6176:22:101","nodeType":"YulAssignment","src":"6176:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6191:6:101","nodeType":"YulIdentifier","src":"6191:6:101"}],"functionName":{"name":"mload","nativeSrc":"6185:5:101","nodeType":"YulIdentifier","src":"6185:5:101"},"nativeSrc":"6185:13:101","nodeType":"YulFunctionCall","src":"6185:13:101"},"variableNames":[{"name":"value","nativeSrc":"6176:5:101","nodeType":"YulIdentifier","src":"6176:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6234:5:101","nodeType":"YulIdentifier","src":"6234:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6207:26:101","nodeType":"YulIdentifier","src":"6207:26:101"},"nativeSrc":"6207:33:101","nodeType":"YulFunctionCall","src":"6207:33:101"},"nativeSrc":"6207:33:101","nodeType":"YulExpressionStatement","src":"6207:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6103:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6144:6:101","nodeType":"YulTypedName","src":"6144:6:101","type":""},{"name":"end","nativeSrc":"6152:3:101","nodeType":"YulTypedName","src":"6152:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6160:5:101","nodeType":"YulTypedName","src":"6160:5:101","type":""}],"src":"6103:143:101"},{"body":{"nativeSrc":"6329:274:101","nodeType":"YulBlock","src":"6329:274:101","statements":[{"body":{"nativeSrc":"6375:83:101","nodeType":"YulBlock","src":"6375:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6377:77:101","nodeType":"YulIdentifier","src":"6377:77:101"},"nativeSrc":"6377:79:101","nodeType":"YulFunctionCall","src":"6377:79:101"},"nativeSrc":"6377:79:101","nodeType":"YulExpressionStatement","src":"6377:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6350:7:101","nodeType":"YulIdentifier","src":"6350:7:101"},{"name":"headStart","nativeSrc":"6359:9:101","nodeType":"YulIdentifier","src":"6359:9:101"}],"functionName":{"name":"sub","nativeSrc":"6346:3:101","nodeType":"YulIdentifier","src":"6346:3:101"},"nativeSrc":"6346:23:101","nodeType":"YulFunctionCall","src":"6346:23:101"},{"kind":"number","nativeSrc":"6371:2:101","nodeType":"YulLiteral","src":"6371:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6342:3:101","nodeType":"YulIdentifier","src":"6342:3:101"},"nativeSrc":"6342:32:101","nodeType":"YulFunctionCall","src":"6342:32:101"},"nativeSrc":"6339:119:101","nodeType":"YulIf","src":"6339:119:101"},{"nativeSrc":"6468:128:101","nodeType":"YulBlock","src":"6468:128:101","statements":[{"nativeSrc":"6483:15:101","nodeType":"YulVariableDeclaration","src":"6483:15:101","value":{"kind":"number","nativeSrc":"6497:1:101","nodeType":"YulLiteral","src":"6497:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6487:6:101","nodeType":"YulTypedName","src":"6487:6:101","type":""}]},{"nativeSrc":"6512:74:101","nodeType":"YulAssignment","src":"6512:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6558:9:101","nodeType":"YulIdentifier","src":"6558:9:101"},{"name":"offset","nativeSrc":"6569:6:101","nodeType":"YulIdentifier","src":"6569:6:101"}],"functionName":{"name":"add","nativeSrc":"6554:3:101","nodeType":"YulIdentifier","src":"6554:3:101"},"nativeSrc":"6554:22:101","nodeType":"YulFunctionCall","src":"6554:22:101"},{"name":"dataEnd","nativeSrc":"6578:7:101","nodeType":"YulIdentifier","src":"6578:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6522:31:101","nodeType":"YulIdentifier","src":"6522:31:101"},"nativeSrc":"6522:64:101","nodeType":"YulFunctionCall","src":"6522:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6512:6:101","nodeType":"YulIdentifier","src":"6512:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6252:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6299:9:101","nodeType":"YulTypedName","src":"6299:9:101","type":""},{"name":"dataEnd","nativeSrc":"6310:7:101","nodeType":"YulTypedName","src":"6310:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6322:6:101","nodeType":"YulTypedName","src":"6322:6:101","type":""}],"src":"6252:351:101"},{"body":{"nativeSrc":"6657:362:101","nodeType":"YulBlock","src":"6657:362:101","statements":[{"nativeSrc":"6667:25:101","nodeType":"YulAssignment","src":"6667:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6690:1:101","nodeType":"YulIdentifier","src":"6690:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6672:17:101","nodeType":"YulIdentifier","src":"6672:17:101"},"nativeSrc":"6672:20:101","nodeType":"YulFunctionCall","src":"6672:20:101"},"variableNames":[{"name":"x","nativeSrc":"6667:1:101","nodeType":"YulIdentifier","src":"6667:1:101"}]},{"nativeSrc":"6701:25:101","nodeType":"YulAssignment","src":"6701:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6724:1:101","nodeType":"YulIdentifier","src":"6724:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6706:17:101","nodeType":"YulIdentifier","src":"6706:17:101"},"nativeSrc":"6706:20:101","nodeType":"YulFunctionCall","src":"6706:20:101"},"variableNames":[{"name":"y","nativeSrc":"6701:1:101","nodeType":"YulIdentifier","src":"6701:1:101"}]},{"nativeSrc":"6735:28:101","nodeType":"YulVariableDeclaration","src":"6735:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6758:1:101","nodeType":"YulIdentifier","src":"6758:1:101"},{"name":"y","nativeSrc":"6761:1:101","nodeType":"YulIdentifier","src":"6761:1:101"}],"functionName":{"name":"mul","nativeSrc":"6754:3:101","nodeType":"YulIdentifier","src":"6754:3:101"},"nativeSrc":"6754:9:101","nodeType":"YulFunctionCall","src":"6754:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6739:11:101","nodeType":"YulTypedName","src":"6739:11:101","type":""}]},{"nativeSrc":"6772:41:101","nodeType":"YulAssignment","src":"6772:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6801:11:101","nodeType":"YulIdentifier","src":"6801:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6783:17:101","nodeType":"YulIdentifier","src":"6783:17:101"},"nativeSrc":"6783:30:101","nodeType":"YulFunctionCall","src":"6783:30:101"},"variableNames":[{"name":"product","nativeSrc":"6772:7:101","nodeType":"YulIdentifier","src":"6772:7:101"}]},{"body":{"nativeSrc":"6990:22:101","nodeType":"YulBlock","src":"6990:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6992:16:101","nodeType":"YulIdentifier","src":"6992:16:101"},"nativeSrc":"6992:18:101","nodeType":"YulFunctionCall","src":"6992:18:101"},"nativeSrc":"6992:18:101","nodeType":"YulExpressionStatement","src":"6992:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6923:1:101","nodeType":"YulIdentifier","src":"6923:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6916:6:101","nodeType":"YulIdentifier","src":"6916:6:101"},"nativeSrc":"6916:9:101","nodeType":"YulFunctionCall","src":"6916:9:101"},{"arguments":[{"name":"y","nativeSrc":"6946:1:101","nodeType":"YulIdentifier","src":"6946:1:101"},{"arguments":[{"name":"product","nativeSrc":"6953:7:101","nodeType":"YulIdentifier","src":"6953:7:101"},{"name":"x","nativeSrc":"6962:1:101","nodeType":"YulIdentifier","src":"6962:1:101"}],"functionName":{"name":"div","nativeSrc":"6949:3:101","nodeType":"YulIdentifier","src":"6949:3:101"},"nativeSrc":"6949:15:101","nodeType":"YulFunctionCall","src":"6949:15:101"}],"functionName":{"name":"eq","nativeSrc":"6943:2:101","nodeType":"YulIdentifier","src":"6943:2:101"},"nativeSrc":"6943:22:101","nodeType":"YulFunctionCall","src":"6943:22:101"}],"functionName":{"name":"or","nativeSrc":"6896:2:101","nodeType":"YulIdentifier","src":"6896:2:101"},"nativeSrc":"6896:83:101","nodeType":"YulFunctionCall","src":"6896:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6876:6:101","nodeType":"YulIdentifier","src":"6876:6:101"},"nativeSrc":"6876:113:101","nodeType":"YulFunctionCall","src":"6876:113:101"},"nativeSrc":"6873:139:101","nodeType":"YulIf","src":"6873:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"6609:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6640:1:101","nodeType":"YulTypedName","src":"6640:1:101","type":""},{"name":"y","nativeSrc":"6643:1:101","nodeType":"YulTypedName","src":"6643:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6649:7:101","nodeType":"YulTypedName","src":"6649:7:101","type":""}],"src":"6609:410:101"},{"body":{"nativeSrc":"7068:43:101","nodeType":"YulBlock","src":"7068:43:101","statements":[{"nativeSrc":"7078:27:101","nodeType":"YulAssignment","src":"7078:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7093:5:101","nodeType":"YulIdentifier","src":"7093:5:101"},{"kind":"number","nativeSrc":"7100:4:101","nodeType":"YulLiteral","src":"7100:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7089:3:101","nodeType":"YulIdentifier","src":"7089:3:101"},"nativeSrc":"7089:16:101","nodeType":"YulFunctionCall","src":"7089:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7078:7:101","nodeType":"YulIdentifier","src":"7078:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7025:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7050:5:101","nodeType":"YulTypedName","src":"7050:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7060:7:101","nodeType":"YulTypedName","src":"7060:7:101","type":""}],"src":"7025:86:101"},{"body":{"nativeSrc":"7158:77:101","nodeType":"YulBlock","src":"7158:77:101","statements":[{"body":{"nativeSrc":"7213:16:101","nodeType":"YulBlock","src":"7213:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7222:1:101","nodeType":"YulLiteral","src":"7222:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7225:1:101","nodeType":"YulLiteral","src":"7225:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7215:6:101","nodeType":"YulIdentifier","src":"7215:6:101"},"nativeSrc":"7215:12:101","nodeType":"YulFunctionCall","src":"7215:12:101"},"nativeSrc":"7215:12:101","nodeType":"YulExpressionStatement","src":"7215:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7181:5:101","nodeType":"YulIdentifier","src":"7181:5:101"},{"arguments":[{"name":"value","nativeSrc":"7204:5:101","nodeType":"YulIdentifier","src":"7204:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7188:15:101","nodeType":"YulIdentifier","src":"7188:15:101"},"nativeSrc":"7188:22:101","nodeType":"YulFunctionCall","src":"7188:22:101"}],"functionName":{"name":"eq","nativeSrc":"7178:2:101","nodeType":"YulIdentifier","src":"7178:2:101"},"nativeSrc":"7178:33:101","nodeType":"YulFunctionCall","src":"7178:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7171:6:101","nodeType":"YulIdentifier","src":"7171:6:101"},"nativeSrc":"7171:41:101","nodeType":"YulFunctionCall","src":"7171:41:101"},"nativeSrc":"7168:61:101","nodeType":"YulIf","src":"7168:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7117:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7151:5:101","nodeType":"YulTypedName","src":"7151:5:101","type":""}],"src":"7117:118:101"},{"body":{"nativeSrc":"7302:78:101","nodeType":"YulBlock","src":"7302:78:101","statements":[{"nativeSrc":"7312:22:101","nodeType":"YulAssignment","src":"7312:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7327:6:101","nodeType":"YulIdentifier","src":"7327:6:101"}],"functionName":{"name":"mload","nativeSrc":"7321:5:101","nodeType":"YulIdentifier","src":"7321:5:101"},"nativeSrc":"7321:13:101","nodeType":"YulFunctionCall","src":"7321:13:101"},"variableNames":[{"name":"value","nativeSrc":"7312:5:101","nodeType":"YulIdentifier","src":"7312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7368:5:101","nodeType":"YulIdentifier","src":"7368:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7343:24:101","nodeType":"YulIdentifier","src":"7343:24:101"},"nativeSrc":"7343:31:101","nodeType":"YulFunctionCall","src":"7343:31:101"},"nativeSrc":"7343:31:101","nodeType":"YulExpressionStatement","src":"7343:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7241:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7280:6:101","nodeType":"YulTypedName","src":"7280:6:101","type":""},{"name":"end","nativeSrc":"7288:3:101","nodeType":"YulTypedName","src":"7288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7296:5:101","nodeType":"YulTypedName","src":"7296:5:101","type":""}],"src":"7241:139:101"},{"body":{"nativeSrc":"7461:272:101","nodeType":"YulBlock","src":"7461:272:101","statements":[{"body":{"nativeSrc":"7507:83:101","nodeType":"YulBlock","src":"7507:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7509:77:101","nodeType":"YulIdentifier","src":"7509:77:101"},"nativeSrc":"7509:79:101","nodeType":"YulFunctionCall","src":"7509:79:101"},"nativeSrc":"7509:79:101","nodeType":"YulExpressionStatement","src":"7509:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7482:7:101","nodeType":"YulIdentifier","src":"7482:7:101"},{"name":"headStart","nativeSrc":"7491:9:101","nodeType":"YulIdentifier","src":"7491:9:101"}],"functionName":{"name":"sub","nativeSrc":"7478:3:101","nodeType":"YulIdentifier","src":"7478:3:101"},"nativeSrc":"7478:23:101","nodeType":"YulFunctionCall","src":"7478:23:101"},{"kind":"number","nativeSrc":"7503:2:101","nodeType":"YulLiteral","src":"7503:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7474:3:101","nodeType":"YulIdentifier","src":"7474:3:101"},"nativeSrc":"7474:32:101","nodeType":"YulFunctionCall","src":"7474:32:101"},"nativeSrc":"7471:119:101","nodeType":"YulIf","src":"7471:119:101"},{"nativeSrc":"7600:126:101","nodeType":"YulBlock","src":"7600:126:101","statements":[{"nativeSrc":"7615:15:101","nodeType":"YulVariableDeclaration","src":"7615:15:101","value":{"kind":"number","nativeSrc":"7629:1:101","nodeType":"YulLiteral","src":"7629:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7619:6:101","nodeType":"YulTypedName","src":"7619:6:101","type":""}]},{"nativeSrc":"7644:72:101","nodeType":"YulAssignment","src":"7644:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:101","nodeType":"YulIdentifier","src":"7688:9:101"},{"name":"offset","nativeSrc":"7699:6:101","nodeType":"YulIdentifier","src":"7699:6:101"}],"functionName":{"name":"add","nativeSrc":"7684:3:101","nodeType":"YulIdentifier","src":"7684:3:101"},"nativeSrc":"7684:22:101","nodeType":"YulFunctionCall","src":"7684:22:101"},{"name":"dataEnd","nativeSrc":"7708:7:101","nodeType":"YulIdentifier","src":"7708:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7654:29:101","nodeType":"YulIdentifier","src":"7654:29:101"},"nativeSrc":"7654:62:101","nodeType":"YulFunctionCall","src":"7654:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7644:6:101","nodeType":"YulIdentifier","src":"7644:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7386:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7431:9:101","nodeType":"YulTypedName","src":"7431:9:101","type":""},{"name":"dataEnd","nativeSrc":"7442:7:101","nodeType":"YulTypedName","src":"7442:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7454:6:101","nodeType":"YulTypedName","src":"7454:6:101","type":""}],"src":"7386:347:101"},{"body":{"nativeSrc":"7790:51:101","nodeType":"YulBlock","src":"7790:51:101","statements":[{"nativeSrc":"7800:34:101","nodeType":"YulAssignment","src":"7800:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7825:1:101","nodeType":"YulLiteral","src":"7825:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7828:5:101","nodeType":"YulIdentifier","src":"7828:5:101"}],"functionName":{"name":"shr","nativeSrc":"7821:3:101","nodeType":"YulIdentifier","src":"7821:3:101"},"nativeSrc":"7821:13:101","nodeType":"YulFunctionCall","src":"7821:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7800:8:101","nodeType":"YulIdentifier","src":"7800:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7739:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7771:5:101","nodeType":"YulTypedName","src":"7771:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7781:8:101","nodeType":"YulTypedName","src":"7781:8:101","type":""}],"src":"7739:102:101"},{"body":{"nativeSrc":"7920:775:101","nodeType":"YulBlock","src":"7920:775:101","statements":[{"nativeSrc":"7930:15:101","nodeType":"YulAssignment","src":"7930:15:101","value":{"name":"_power","nativeSrc":"7939:6:101","nodeType":"YulIdentifier","src":"7939:6:101"},"variableNames":[{"name":"power","nativeSrc":"7930:5:101","nodeType":"YulIdentifier","src":"7930:5:101"}]},{"nativeSrc":"7954:14:101","nodeType":"YulAssignment","src":"7954:14:101","value":{"name":"_base","nativeSrc":"7963:5:101","nodeType":"YulIdentifier","src":"7963:5:101"},"variableNames":[{"name":"base","nativeSrc":"7954:4:101","nodeType":"YulIdentifier","src":"7954:4:101"}]},{"body":{"nativeSrc":"8012:677:101","nodeType":"YulBlock","src":"8012:677:101","statements":[{"body":{"nativeSrc":"8100:22:101","nodeType":"YulBlock","src":"8100:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8102:16:101","nodeType":"YulIdentifier","src":"8102:16:101"},"nativeSrc":"8102:18:101","nodeType":"YulFunctionCall","src":"8102:18:101"},"nativeSrc":"8102:18:101","nodeType":"YulExpressionStatement","src":"8102:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8078:4:101","nodeType":"YulIdentifier","src":"8078:4:101"},{"arguments":[{"name":"max","nativeSrc":"8088:3:101","nodeType":"YulIdentifier","src":"8088:3:101"},{"name":"base","nativeSrc":"8093:4:101","nodeType":"YulIdentifier","src":"8093:4:101"}],"functionName":{"name":"div","nativeSrc":"8084:3:101","nodeType":"YulIdentifier","src":"8084:3:101"},"nativeSrc":"8084:14:101","nodeType":"YulFunctionCall","src":"8084:14:101"}],"functionName":{"name":"gt","nativeSrc":"8075:2:101","nodeType":"YulIdentifier","src":"8075:2:101"},"nativeSrc":"8075:24:101","nodeType":"YulFunctionCall","src":"8075:24:101"},"nativeSrc":"8072:50:101","nodeType":"YulIf","src":"8072:50:101"},{"body":{"nativeSrc":"8167:419:101","nodeType":"YulBlock","src":"8167:419:101","statements":[{"nativeSrc":"8547:25:101","nodeType":"YulAssignment","src":"8547:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},{"name":"base","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"mul","nativeSrc":"8556:3:101","nodeType":"YulIdentifier","src":"8556:3:101"},"nativeSrc":"8556:16:101","nodeType":"YulFunctionCall","src":"8556:16:101"},"variableNames":[{"name":"power","nativeSrc":"8547:5:101","nodeType":"YulIdentifier","src":"8547:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8142:8:101","nodeType":"YulIdentifier","src":"8142:8:101"},{"kind":"number","nativeSrc":"8152:1:101","nodeType":"YulLiteral","src":"8152:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8138:3:101","nodeType":"YulIdentifier","src":"8138:3:101"},"nativeSrc":"8138:16:101","nodeType":"YulFunctionCall","src":"8138:16:101"},"nativeSrc":"8135:451:101","nodeType":"YulIf","src":"8135:451:101"},{"nativeSrc":"8599:23:101","nodeType":"YulAssignment","src":"8599:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8611:4:101","nodeType":"YulIdentifier","src":"8611:4:101"},{"name":"base","nativeSrc":"8617:4:101","nodeType":"YulIdentifier","src":"8617:4:101"}],"functionName":{"name":"mul","nativeSrc":"8607:3:101","nodeType":"YulIdentifier","src":"8607:3:101"},"nativeSrc":"8607:15:101","nodeType":"YulFunctionCall","src":"8607:15:101"},"variableNames":[{"name":"base","nativeSrc":"8599:4:101","nodeType":"YulIdentifier","src":"8599:4:101"}]},{"nativeSrc":"8635:44:101","nodeType":"YulAssignment","src":"8635:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8670:8:101","nodeType":"YulIdentifier","src":"8670:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8647:22:101","nodeType":"YulIdentifier","src":"8647:22:101"},"nativeSrc":"8647:32:101","nodeType":"YulFunctionCall","src":"8647:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8635:8:101","nodeType":"YulIdentifier","src":"8635:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7988:8:101","nodeType":"YulIdentifier","src":"7988:8:101"},{"kind":"number","nativeSrc":"7998:1:101","nodeType":"YulLiteral","src":"7998:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7985:2:101","nodeType":"YulIdentifier","src":"7985:2:101"},"nativeSrc":"7985:15:101","nodeType":"YulFunctionCall","src":"7985:15:101"},"nativeSrc":"7977:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8001:2:101","nodeType":"YulBlock","src":"8001:2:101","statements":[]},"pre":{"nativeSrc":"7981:3:101","nodeType":"YulBlock","src":"7981:3:101","statements":[]},"src":"7977:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7847:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7875:6:101","nodeType":"YulTypedName","src":"7875:6:101","type":""},{"name":"_base","nativeSrc":"7883:5:101","nodeType":"YulTypedName","src":"7883:5:101","type":""},{"name":"exponent","nativeSrc":"7890:8:101","nodeType":"YulTypedName","src":"7890:8:101","type":""},{"name":"max","nativeSrc":"7900:3:101","nodeType":"YulTypedName","src":"7900:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7908:5:101","nodeType":"YulTypedName","src":"7908:5:101","type":""},{"name":"base","nativeSrc":"7915:4:101","nodeType":"YulTypedName","src":"7915:4:101","type":""}],"src":"7847:848:101"},{"body":{"nativeSrc":"8761:1013:101","nodeType":"YulBlock","src":"8761:1013:101","statements":[{"body":{"nativeSrc":"8956:20:101","nodeType":"YulBlock","src":"8956:20:101","statements":[{"nativeSrc":"8958:10:101","nodeType":"YulAssignment","src":"8958:10:101","value":{"kind":"number","nativeSrc":"8967:1:101","nodeType":"YulLiteral","src":"8967:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8958:5:101","nodeType":"YulIdentifier","src":"8958:5:101"}]},{"nativeSrc":"8969:5:101","nodeType":"YulLeave","src":"8969:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8946:8:101","nodeType":"YulIdentifier","src":"8946:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8939:6:101","nodeType":"YulIdentifier","src":"8939:6:101"},"nativeSrc":"8939:16:101","nodeType":"YulFunctionCall","src":"8939:16:101"},"nativeSrc":"8936:40:101","nodeType":"YulIf","src":"8936:40:101"},{"body":{"nativeSrc":"9001:20:101","nodeType":"YulBlock","src":"9001:20:101","statements":[{"nativeSrc":"9003:10:101","nodeType":"YulAssignment","src":"9003:10:101","value":{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9003:5:101","nodeType":"YulIdentifier","src":"9003:5:101"}]},{"nativeSrc":"9014:5:101","nodeType":"YulLeave","src":"9014:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8995:4:101","nodeType":"YulIdentifier","src":"8995:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8988:6:101","nodeType":"YulIdentifier","src":"8988:6:101"},"nativeSrc":"8988:12:101","nodeType":"YulFunctionCall","src":"8988:12:101"},"nativeSrc":"8985:36:101","nodeType":"YulIf","src":"8985:36:101"},{"cases":[{"body":{"nativeSrc":"9131:20:101","nodeType":"YulBlock","src":"9131:20:101","statements":[{"nativeSrc":"9133:10:101","nodeType":"YulAssignment","src":"9133:10:101","value":{"kind":"number","nativeSrc":"9142:1:101","nodeType":"YulLiteral","src":"9142:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9133:5:101","nodeType":"YulIdentifier","src":"9133:5:101"}]},{"nativeSrc":"9144:5:101","nodeType":"YulLeave","src":"9144:5:101"}]},"nativeSrc":"9124:27:101","nodeType":"YulCase","src":"9124:27:101","value":{"kind":"number","nativeSrc":"9129:1:101","nodeType":"YulLiteral","src":"9129:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9175:176:101","nodeType":"YulBlock","src":"9175:176:101","statements":[{"body":{"nativeSrc":"9210:22:101","nodeType":"YulBlock","src":"9210:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9212:16:101","nodeType":"YulIdentifier","src":"9212:16:101"},"nativeSrc":"9212:18:101","nodeType":"YulFunctionCall","src":"9212:18:101"},"nativeSrc":"9212:18:101","nodeType":"YulExpressionStatement","src":"9212:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9195:8:101","nodeType":"YulIdentifier","src":"9195:8:101"},{"kind":"number","nativeSrc":"9205:3:101","nodeType":"YulLiteral","src":"9205:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9192:2:101","nodeType":"YulIdentifier","src":"9192:2:101"},"nativeSrc":"9192:17:101","nodeType":"YulFunctionCall","src":"9192:17:101"},"nativeSrc":"9189:43:101","nodeType":"YulIf","src":"9189:43:101"},{"nativeSrc":"9245:25:101","nodeType":"YulAssignment","src":"9245:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9258:1:101","nodeType":"YulLiteral","src":"9258:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9261:8:101","nodeType":"YulIdentifier","src":"9261:8:101"}],"functionName":{"name":"exp","nativeSrc":"9254:3:101","nodeType":"YulIdentifier","src":"9254:3:101"},"nativeSrc":"9254:16:101","nodeType":"YulFunctionCall","src":"9254:16:101"},"variableNames":[{"name":"power","nativeSrc":"9245:5:101","nodeType":"YulIdentifier","src":"9245:5:101"}]},{"body":{"nativeSrc":"9301:22:101","nodeType":"YulBlock","src":"9301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9303:16:101","nodeType":"YulIdentifier","src":"9303:16:101"},"nativeSrc":"9303:18:101","nodeType":"YulFunctionCall","src":"9303:18:101"},"nativeSrc":"9303:18:101","nodeType":"YulExpressionStatement","src":"9303:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9289:5:101","nodeType":"YulIdentifier","src":"9289:5:101"},{"name":"max","nativeSrc":"9296:3:101","nodeType":"YulIdentifier","src":"9296:3:101"}],"functionName":{"name":"gt","nativeSrc":"9286:2:101","nodeType":"YulIdentifier","src":"9286:2:101"},"nativeSrc":"9286:14:101","nodeType":"YulFunctionCall","src":"9286:14:101"},"nativeSrc":"9283:40:101","nodeType":"YulIf","src":"9283:40:101"},{"nativeSrc":"9336:5:101","nodeType":"YulLeave","src":"9336:5:101"}]},"nativeSrc":"9160:191:101","nodeType":"YulCase","src":"9160:191:101","value":{"kind":"number","nativeSrc":"9165:1:101","nodeType":"YulLiteral","src":"9165:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9081:4:101","nodeType":"YulIdentifier","src":"9081:4:101"},"nativeSrc":"9074:277:101","nodeType":"YulSwitch","src":"9074:277:101"},{"body":{"nativeSrc":"9483:123:101","nodeType":"YulBlock","src":"9483:123:101","statements":[{"nativeSrc":"9497:28:101","nodeType":"YulAssignment","src":"9497:28:101","value":{"arguments":[{"name":"base","nativeSrc":"9510:4:101","nodeType":"YulIdentifier","src":"9510:4:101"},{"name":"exponent","nativeSrc":"9516:8:101","nodeType":"YulIdentifier","src":"9516:8:101"}],"functionName":{"name":"exp","nativeSrc":"9506:3:101","nodeType":"YulIdentifier","src":"9506:3:101"},"nativeSrc":"9506:19:101","nodeType":"YulFunctionCall","src":"9506:19:101"},"variableNames":[{"name":"power","nativeSrc":"9497:5:101","nodeType":"YulIdentifier","src":"9497:5:101"}]},{"body":{"nativeSrc":"9556:22:101","nodeType":"YulBlock","src":"9556:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9558:16:101","nodeType":"YulIdentifier","src":"9558:16:101"},"nativeSrc":"9558:18:101","nodeType":"YulFunctionCall","src":"9558:18:101"},"nativeSrc":"9558:18:101","nodeType":"YulExpressionStatement","src":"9558:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9544:5:101","nodeType":"YulIdentifier","src":"9544:5:101"},{"name":"max","nativeSrc":"9551:3:101","nodeType":"YulIdentifier","src":"9551:3:101"}],"functionName":{"name":"gt","nativeSrc":"9541:2:101","nodeType":"YulIdentifier","src":"9541:2:101"},"nativeSrc":"9541:14:101","nodeType":"YulFunctionCall","src":"9541:14:101"},"nativeSrc":"9538:40:101","nodeType":"YulIf","src":"9538:40:101"},{"nativeSrc":"9591:5:101","nodeType":"YulLeave","src":"9591:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9386:4:101","nodeType":"YulIdentifier","src":"9386:4:101"},{"kind":"number","nativeSrc":"9392:2:101","nodeType":"YulLiteral","src":"9392:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9383:2:101","nodeType":"YulIdentifier","src":"9383:2:101"},"nativeSrc":"9383:12:101","nodeType":"YulFunctionCall","src":"9383:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9400:8:101","nodeType":"YulIdentifier","src":"9400:8:101"},{"kind":"number","nativeSrc":"9410:2:101","nodeType":"YulLiteral","src":"9410:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9397:2:101","nodeType":"YulIdentifier","src":"9397:2:101"},"nativeSrc":"9397:16:101","nodeType":"YulFunctionCall","src":"9397:16:101"}],"functionName":{"name":"and","nativeSrc":"9379:3:101","nodeType":"YulIdentifier","src":"9379:3:101"},"nativeSrc":"9379:35:101","nodeType":"YulFunctionCall","src":"9379:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9435:4:101","nodeType":"YulIdentifier","src":"9435:4:101"},{"kind":"number","nativeSrc":"9441:3:101","nodeType":"YulLiteral","src":"9441:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9432:2:101","nodeType":"YulIdentifier","src":"9432:2:101"},"nativeSrc":"9432:13:101","nodeType":"YulFunctionCall","src":"9432:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9450:8:101","nodeType":"YulIdentifier","src":"9450:8:101"},{"kind":"number","nativeSrc":"9460:2:101","nodeType":"YulLiteral","src":"9460:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9447:2:101","nodeType":"YulIdentifier","src":"9447:2:101"},"nativeSrc":"9447:16:101","nodeType":"YulFunctionCall","src":"9447:16:101"}],"functionName":{"name":"and","nativeSrc":"9428:3:101","nodeType":"YulIdentifier","src":"9428:3:101"},"nativeSrc":"9428:36:101","nodeType":"YulFunctionCall","src":"9428:36:101"}],"functionName":{"name":"or","nativeSrc":"9363:2:101","nodeType":"YulIdentifier","src":"9363:2:101"},"nativeSrc":"9363:111:101","nodeType":"YulFunctionCall","src":"9363:111:101"},"nativeSrc":"9360:246:101","nodeType":"YulIf","src":"9360:246:101"},{"nativeSrc":"9616:57:101","nodeType":"YulAssignment","src":"9616:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9650:1:101","nodeType":"YulLiteral","src":"9650:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9653:4:101","nodeType":"YulIdentifier","src":"9653:4:101"},{"name":"exponent","nativeSrc":"9659:8:101","nodeType":"YulIdentifier","src":"9659:8:101"},{"name":"max","nativeSrc":"9669:3:101","nodeType":"YulIdentifier","src":"9669:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9631:18:101","nodeType":"YulIdentifier","src":"9631:18:101"},"nativeSrc":"9631:42:101","nodeType":"YulFunctionCall","src":"9631:42:101"},"variableNames":[{"name":"power","nativeSrc":"9616:5:101","nodeType":"YulIdentifier","src":"9616:5:101"},{"name":"base","nativeSrc":"9623:4:101","nodeType":"YulIdentifier","src":"9623:4:101"}]},{"body":{"nativeSrc":"9712:22:101","nodeType":"YulBlock","src":"9712:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9714:16:101","nodeType":"YulIdentifier","src":"9714:16:101"},"nativeSrc":"9714:18:101","nodeType":"YulFunctionCall","src":"9714:18:101"},"nativeSrc":"9714:18:101","nodeType":"YulExpressionStatement","src":"9714:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9689:5:101","nodeType":"YulIdentifier","src":"9689:5:101"},{"arguments":[{"name":"max","nativeSrc":"9700:3:101","nodeType":"YulIdentifier","src":"9700:3:101"},{"name":"base","nativeSrc":"9705:4:101","nodeType":"YulIdentifier","src":"9705:4:101"}],"functionName":{"name":"div","nativeSrc":"9696:3:101","nodeType":"YulIdentifier","src":"9696:3:101"},"nativeSrc":"9696:14:101","nodeType":"YulFunctionCall","src":"9696:14:101"}],"functionName":{"name":"gt","nativeSrc":"9686:2:101","nodeType":"YulIdentifier","src":"9686:2:101"},"nativeSrc":"9686:25:101","nodeType":"YulFunctionCall","src":"9686:25:101"},"nativeSrc":"9683:51:101","nodeType":"YulIf","src":"9683:51:101"},{"nativeSrc":"9743:25:101","nodeType":"YulAssignment","src":"9743:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9756:5:101","nodeType":"YulIdentifier","src":"9756:5:101"},{"name":"base","nativeSrc":"9763:4:101","nodeType":"YulIdentifier","src":"9763:4:101"}],"functionName":{"name":"mul","nativeSrc":"9752:3:101","nodeType":"YulIdentifier","src":"9752:3:101"},"nativeSrc":"9752:16:101","nodeType":"YulFunctionCall","src":"9752:16:101"},"variableNames":[{"name":"power","nativeSrc":"9743:5:101","nodeType":"YulIdentifier","src":"9743:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8701:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8731:4:101","nodeType":"YulTypedName","src":"8731:4:101","type":""},{"name":"exponent","nativeSrc":"8737:8:101","nodeType":"YulTypedName","src":"8737:8:101","type":""},{"name":"max","nativeSrc":"8747:3:101","nodeType":"YulTypedName","src":"8747:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8755:5:101","nodeType":"YulTypedName","src":"8755:5:101","type":""}],"src":"8701:1073:101"},{"body":{"nativeSrc":"9846:219:101","nodeType":"YulBlock","src":"9846:219:101","statements":[{"nativeSrc":"9856:31:101","nodeType":"YulAssignment","src":"9856:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9882:4:101","nodeType":"YulIdentifier","src":"9882:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9864:17:101","nodeType":"YulIdentifier","src":"9864:17:101"},"nativeSrc":"9864:23:101","nodeType":"YulFunctionCall","src":"9864:23:101"},"variableNames":[{"name":"base","nativeSrc":"9856:4:101","nodeType":"YulIdentifier","src":"9856:4:101"}]},{"nativeSrc":"9896:39:101","nodeType":"YulAssignment","src":"9896:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9926:8:101","nodeType":"YulIdentifier","src":"9926:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9908:17:101","nodeType":"YulIdentifier","src":"9908:17:101"},"nativeSrc":"9908:27:101","nodeType":"YulFunctionCall","src":"9908:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9896:8:101","nodeType":"YulIdentifier","src":"9896:8:101"}]},{"nativeSrc":"9945:113:101","nodeType":"YulAssignment","src":"9945:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9975:4:101","nodeType":"YulIdentifier","src":"9975:4:101"},{"name":"exponent","nativeSrc":"9981:8:101","nodeType":"YulIdentifier","src":"9981:8:101"},{"kind":"number","nativeSrc":"9991:66:101","nodeType":"YulLiteral","src":"9991:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9954:20:101","nodeType":"YulIdentifier","src":"9954:20:101"},"nativeSrc":"9954:104:101","nodeType":"YulFunctionCall","src":"9954:104:101"},"variableNames":[{"name":"power","nativeSrc":"9945:5:101","nodeType":"YulIdentifier","src":"9945:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9780:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9821:4:101","nodeType":"YulTypedName","src":"9821:4:101","type":""},{"name":"exponent","nativeSrc":"9827:8:101","nodeType":"YulTypedName","src":"9827:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9840:5:101","nodeType":"YulTypedName","src":"9840:5:101","type":""}],"src":"9780:285:101"},{"body":{"nativeSrc":"10130:40:101","nodeType":"YulBlock","src":"10130:40:101","statements":[{"nativeSrc":"10141:22:101","nodeType":"YulAssignment","src":"10141:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10157:5:101","nodeType":"YulIdentifier","src":"10157:5:101"}],"functionName":{"name":"mload","nativeSrc":"10151:5:101","nodeType":"YulIdentifier","src":"10151:5:101"},"nativeSrc":"10151:12:101","nodeType":"YulFunctionCall","src":"10151:12:101"},"variableNames":[{"name":"length","nativeSrc":"10141:6:101","nodeType":"YulIdentifier","src":"10141:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10071:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10113:5:101","nodeType":"YulTypedName","src":"10113:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10123:6:101","nodeType":"YulTypedName","src":"10123:6:101","type":""}],"src":"10071:99:101"},{"body":{"nativeSrc":"10272:73:101","nodeType":"YulBlock","src":"10272:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10289:3:101","nodeType":"YulIdentifier","src":"10289:3:101"},{"name":"length","nativeSrc":"10294:6:101","nodeType":"YulIdentifier","src":"10294:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10282:6:101","nodeType":"YulIdentifier","src":"10282:6:101"},"nativeSrc":"10282:19:101","nodeType":"YulFunctionCall","src":"10282:19:101"},"nativeSrc":"10282:19:101","nodeType":"YulExpressionStatement","src":"10282:19:101"},{"nativeSrc":"10310:29:101","nodeType":"YulAssignment","src":"10310:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10329:3:101","nodeType":"YulIdentifier","src":"10329:3:101"},{"kind":"number","nativeSrc":"10334:4:101","nodeType":"YulLiteral","src":"10334:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10325:3:101","nodeType":"YulIdentifier","src":"10325:3:101"},"nativeSrc":"10325:14:101","nodeType":"YulFunctionCall","src":"10325:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10310:11:101","nodeType":"YulIdentifier","src":"10310:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10176:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10244:3:101","nodeType":"YulTypedName","src":"10244:3:101","type":""},{"name":"length","nativeSrc":"10249:6:101","nodeType":"YulTypedName","src":"10249:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10260:11:101","nodeType":"YulTypedName","src":"10260:11:101","type":""}],"src":"10176:169:101"},{"body":{"nativeSrc":"10413:77:101","nodeType":"YulBlock","src":"10413:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10430:3:101","nodeType":"YulIdentifier","src":"10430:3:101"},{"name":"src","nativeSrc":"10435:3:101","nodeType":"YulIdentifier","src":"10435:3:101"},{"name":"length","nativeSrc":"10440:6:101","nodeType":"YulIdentifier","src":"10440:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10424:5:101","nodeType":"YulIdentifier","src":"10424:5:101"},"nativeSrc":"10424:23:101","nodeType":"YulFunctionCall","src":"10424:23:101"},"nativeSrc":"10424:23:101","nodeType":"YulExpressionStatement","src":"10424:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10467:3:101","nodeType":"YulIdentifier","src":"10467:3:101"},{"name":"length","nativeSrc":"10472:6:101","nodeType":"YulIdentifier","src":"10472:6:101"}],"functionName":{"name":"add","nativeSrc":"10463:3:101","nodeType":"YulIdentifier","src":"10463:3:101"},"nativeSrc":"10463:16:101","nodeType":"YulFunctionCall","src":"10463:16:101"},{"kind":"number","nativeSrc":"10481:1:101","nodeType":"YulLiteral","src":"10481:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10456:6:101","nodeType":"YulIdentifier","src":"10456:6:101"},"nativeSrc":"10456:27:101","nodeType":"YulFunctionCall","src":"10456:27:101"},"nativeSrc":"10456:27:101","nodeType":"YulExpressionStatement","src":"10456:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10351:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10395:3:101","nodeType":"YulTypedName","src":"10395:3:101","type":""},{"name":"dst","nativeSrc":"10400:3:101","nodeType":"YulTypedName","src":"10400:3:101","type":""},{"name":"length","nativeSrc":"10405:6:101","nodeType":"YulTypedName","src":"10405:6:101","type":""}],"src":"10351:139:101"},{"body":{"nativeSrc":"10544:54:101","nodeType":"YulBlock","src":"10544:54:101","statements":[{"nativeSrc":"10554:38:101","nodeType":"YulAssignment","src":"10554:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10572:5:101","nodeType":"YulIdentifier","src":"10572:5:101"},{"kind":"number","nativeSrc":"10579:2:101","nodeType":"YulLiteral","src":"10579:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10568:3:101","nodeType":"YulIdentifier","src":"10568:3:101"},"nativeSrc":"10568:14:101","nodeType":"YulFunctionCall","src":"10568:14:101"},{"arguments":[{"kind":"number","nativeSrc":"10588:2:101","nodeType":"YulLiteral","src":"10588:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10584:3:101","nodeType":"YulIdentifier","src":"10584:3:101"},"nativeSrc":"10584:7:101","nodeType":"YulFunctionCall","src":"10584:7:101"}],"functionName":{"name":"and","nativeSrc":"10564:3:101","nodeType":"YulIdentifier","src":"10564:3:101"},"nativeSrc":"10564:28:101","nodeType":"YulFunctionCall","src":"10564:28:101"},"variableNames":[{"name":"result","nativeSrc":"10554:6:101","nodeType":"YulIdentifier","src":"10554:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"10496:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10527:5:101","nodeType":"YulTypedName","src":"10527:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10537:6:101","nodeType":"YulTypedName","src":"10537:6:101","type":""}],"src":"10496:102:101"},{"body":{"nativeSrc":"10696:285:101","nodeType":"YulBlock","src":"10696:285:101","statements":[{"nativeSrc":"10706:53:101","nodeType":"YulVariableDeclaration","src":"10706:53:101","value":{"arguments":[{"name":"value","nativeSrc":"10753:5:101","nodeType":"YulIdentifier","src":"10753:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"10720:32:101","nodeType":"YulIdentifier","src":"10720:32:101"},"nativeSrc":"10720:39:101","nodeType":"YulFunctionCall","src":"10720:39:101"},"variables":[{"name":"length","nativeSrc":"10710:6:101","nodeType":"YulTypedName","src":"10710:6:101","type":""}]},{"nativeSrc":"10768:78:101","nodeType":"YulAssignment","src":"10768:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"10834:3:101","nodeType":"YulIdentifier","src":"10834:3:101"},{"name":"length","nativeSrc":"10839:6:101","nodeType":"YulIdentifier","src":"10839:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10775:58:101","nodeType":"YulIdentifier","src":"10775:58:101"},"nativeSrc":"10775:71:101","nodeType":"YulFunctionCall","src":"10775:71:101"},"variableNames":[{"name":"pos","nativeSrc":"10768:3:101","nodeType":"YulIdentifier","src":"10768:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10894:5:101","nodeType":"YulIdentifier","src":"10894:5:101"},{"kind":"number","nativeSrc":"10901:4:101","nodeType":"YulLiteral","src":"10901:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10890:3:101","nodeType":"YulIdentifier","src":"10890:3:101"},"nativeSrc":"10890:16:101","nodeType":"YulFunctionCall","src":"10890:16:101"},{"name":"pos","nativeSrc":"10908:3:101","nodeType":"YulIdentifier","src":"10908:3:101"},{"name":"length","nativeSrc":"10913:6:101","nodeType":"YulIdentifier","src":"10913:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10855:34:101","nodeType":"YulIdentifier","src":"10855:34:101"},"nativeSrc":"10855:65:101","nodeType":"YulFunctionCall","src":"10855:65:101"},"nativeSrc":"10855:65:101","nodeType":"YulExpressionStatement","src":"10855:65:101"},{"nativeSrc":"10929:46:101","nodeType":"YulAssignment","src":"10929:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"10940:3:101","nodeType":"YulIdentifier","src":"10940:3:101"},{"arguments":[{"name":"length","nativeSrc":"10967:6:101","nodeType":"YulIdentifier","src":"10967:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10945:21:101","nodeType":"YulIdentifier","src":"10945:21:101"},"nativeSrc":"10945:29:101","nodeType":"YulFunctionCall","src":"10945:29:101"}],"functionName":{"name":"add","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},"nativeSrc":"10936:39:101","nodeType":"YulFunctionCall","src":"10936:39:101"},"variableNames":[{"name":"end","nativeSrc":"10929:3:101","nodeType":"YulIdentifier","src":"10929:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10604:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10677:5:101","nodeType":"YulTypedName","src":"10677:5:101","type":""},{"name":"pos","nativeSrc":"10684:3:101","nodeType":"YulTypedName","src":"10684:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10692:3:101","nodeType":"YulTypedName","src":"10692:3:101","type":""}],"src":"10604:377:101"},{"body":{"nativeSrc":"11133:277:101","nodeType":"YulBlock","src":"11133:277:101","statements":[{"nativeSrc":"11143:26:101","nodeType":"YulAssignment","src":"11143:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11155:9:101","nodeType":"YulIdentifier","src":"11155:9:101"},{"kind":"number","nativeSrc":"11166:2:101","nodeType":"YulLiteral","src":"11166:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11151:3:101","nodeType":"YulIdentifier","src":"11151:3:101"},"nativeSrc":"11151:18:101","nodeType":"YulFunctionCall","src":"11151:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11223:6:101","nodeType":"YulIdentifier","src":"11223:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11236:9:101","nodeType":"YulIdentifier","src":"11236:9:101"},{"kind":"number","nativeSrc":"11247:1:101","nodeType":"YulLiteral","src":"11247:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11232:3:101","nodeType":"YulIdentifier","src":"11232:3:101"},"nativeSrc":"11232:17:101","nodeType":"YulFunctionCall","src":"11232:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11179:43:101","nodeType":"YulIdentifier","src":"11179:43:101"},"nativeSrc":"11179:71:101","nodeType":"YulFunctionCall","src":"11179:71:101"},"nativeSrc":"11179:71:101","nodeType":"YulExpressionStatement","src":"11179:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11271:9:101","nodeType":"YulIdentifier","src":"11271:9:101"},{"kind":"number","nativeSrc":"11282:2:101","nodeType":"YulLiteral","src":"11282:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11267:3:101","nodeType":"YulIdentifier","src":"11267:3:101"},"nativeSrc":"11267:18:101","nodeType":"YulFunctionCall","src":"11267:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11291:4:101","nodeType":"YulIdentifier","src":"11291:4:101"},{"name":"headStart","nativeSrc":"11297:9:101","nodeType":"YulIdentifier","src":"11297:9:101"}],"functionName":{"name":"sub","nativeSrc":"11287:3:101","nodeType":"YulIdentifier","src":"11287:3:101"},"nativeSrc":"11287:20:101","nodeType":"YulFunctionCall","src":"11287:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11260:6:101","nodeType":"YulIdentifier","src":"11260:6:101"},"nativeSrc":"11260:48:101","nodeType":"YulFunctionCall","src":"11260:48:101"},"nativeSrc":"11260:48:101","nodeType":"YulExpressionStatement","src":"11260:48:101"},{"nativeSrc":"11317:86:101","nodeType":"YulAssignment","src":"11317:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11389:6:101","nodeType":"YulIdentifier","src":"11389:6:101"},{"name":"tail","nativeSrc":"11398:4:101","nodeType":"YulIdentifier","src":"11398:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11325:63:101","nodeType":"YulIdentifier","src":"11325:63:101"},"nativeSrc":"11325:78:101","nodeType":"YulFunctionCall","src":"11325:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11317:4:101","nodeType":"YulIdentifier","src":"11317:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10987:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11097:9:101","nodeType":"YulTypedName","src":"11097:9:101","type":""},{"name":"value1","nativeSrc":"11109:6:101","nodeType":"YulTypedName","src":"11109:6:101","type":""},{"name":"value0","nativeSrc":"11117:6:101","nodeType":"YulTypedName","src":"11117:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11128:4:101","nodeType":"YulTypedName","src":"11128:4:101","type":""}],"src":"10987:423:101"},{"body":{"nativeSrc":"11456:76:101","nodeType":"YulBlock","src":"11456:76:101","statements":[{"body":{"nativeSrc":"11510:16:101","nodeType":"YulBlock","src":"11510:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11519:1:101","nodeType":"YulLiteral","src":"11519:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"11522:1:101","nodeType":"YulLiteral","src":"11522:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11512:6:101","nodeType":"YulIdentifier","src":"11512:6:101"},"nativeSrc":"11512:12:101","nodeType":"YulFunctionCall","src":"11512:12:101"},"nativeSrc":"11512:12:101","nodeType":"YulExpressionStatement","src":"11512:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11479:5:101","nodeType":"YulIdentifier","src":"11479:5:101"},{"arguments":[{"name":"value","nativeSrc":"11501:5:101","nodeType":"YulIdentifier","src":"11501:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"11486:14:101","nodeType":"YulIdentifier","src":"11486:14:101"},"nativeSrc":"11486:21:101","nodeType":"YulFunctionCall","src":"11486:21:101"}],"functionName":{"name":"eq","nativeSrc":"11476:2:101","nodeType":"YulIdentifier","src":"11476:2:101"},"nativeSrc":"11476:32:101","nodeType":"YulFunctionCall","src":"11476:32:101"}],"functionName":{"name":"iszero","nativeSrc":"11469:6:101","nodeType":"YulIdentifier","src":"11469:6:101"},"nativeSrc":"11469:40:101","nodeType":"YulFunctionCall","src":"11469:40:101"},"nativeSrc":"11466:60:101","nodeType":"YulIf","src":"11466:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11416:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11449:5:101","nodeType":"YulTypedName","src":"11449:5:101","type":""}],"src":"11416:116:101"},{"body":{"nativeSrc":"11598:77:101","nodeType":"YulBlock","src":"11598:77:101","statements":[{"nativeSrc":"11608:22:101","nodeType":"YulAssignment","src":"11608:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"11623:6:101","nodeType":"YulIdentifier","src":"11623:6:101"}],"functionName":{"name":"mload","nativeSrc":"11617:5:101","nodeType":"YulIdentifier","src":"11617:5:101"},"nativeSrc":"11617:13:101","nodeType":"YulFunctionCall","src":"11617:13:101"},"variableNames":[{"name":"value","nativeSrc":"11608:5:101","nodeType":"YulIdentifier","src":"11608:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11663:5:101","nodeType":"YulIdentifier","src":"11663:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"11639:23:101","nodeType":"YulIdentifier","src":"11639:23:101"},"nativeSrc":"11639:30:101","nodeType":"YulFunctionCall","src":"11639:30:101"},"nativeSrc":"11639:30:101","nodeType":"YulExpressionStatement","src":"11639:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11538:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11576:6:101","nodeType":"YulTypedName","src":"11576:6:101","type":""},{"name":"end","nativeSrc":"11584:3:101","nodeType":"YulTypedName","src":"11584:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11592:5:101","nodeType":"YulTypedName","src":"11592:5:101","type":""}],"src":"11538:137:101"},{"body":{"nativeSrc":"11755:271:101","nodeType":"YulBlock","src":"11755:271:101","statements":[{"body":{"nativeSrc":"11801:83:101","nodeType":"YulBlock","src":"11801:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11803:77:101","nodeType":"YulIdentifier","src":"11803:77:101"},"nativeSrc":"11803:79:101","nodeType":"YulFunctionCall","src":"11803:79:101"},"nativeSrc":"11803:79:101","nodeType":"YulExpressionStatement","src":"11803:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11776:7:101","nodeType":"YulIdentifier","src":"11776:7:101"},{"name":"headStart","nativeSrc":"11785:9:101","nodeType":"YulIdentifier","src":"11785:9:101"}],"functionName":{"name":"sub","nativeSrc":"11772:3:101","nodeType":"YulIdentifier","src":"11772:3:101"},"nativeSrc":"11772:23:101","nodeType":"YulFunctionCall","src":"11772:23:101"},{"kind":"number","nativeSrc":"11797:2:101","nodeType":"YulLiteral","src":"11797:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:32:101","nodeType":"YulFunctionCall","src":"11768:32:101"},"nativeSrc":"11765:119:101","nodeType":"YulIf","src":"11765:119:101"},{"nativeSrc":"11894:125:101","nodeType":"YulBlock","src":"11894:125:101","statements":[{"nativeSrc":"11909:15:101","nodeType":"YulVariableDeclaration","src":"11909:15:101","value":{"kind":"number","nativeSrc":"11923:1:101","nodeType":"YulLiteral","src":"11923:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11913:6:101","nodeType":"YulTypedName","src":"11913:6:101","type":""}]},{"nativeSrc":"11938:71:101","nodeType":"YulAssignment","src":"11938:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11981:9:101","nodeType":"YulIdentifier","src":"11981:9:101"},{"name":"offset","nativeSrc":"11992:6:101","nodeType":"YulIdentifier","src":"11992:6:101"}],"functionName":{"name":"add","nativeSrc":"11977:3:101","nodeType":"YulIdentifier","src":"11977:3:101"},"nativeSrc":"11977:22:101","nodeType":"YulFunctionCall","src":"11977:22:101"},{"name":"dataEnd","nativeSrc":"12001:7:101","nodeType":"YulIdentifier","src":"12001:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11948:28:101","nodeType":"YulIdentifier","src":"11948:28:101"},"nativeSrc":"11948:61:101","nodeType":"YulFunctionCall","src":"11948:61:101"},"variableNames":[{"name":"value0","nativeSrc":"11938:6:101","nodeType":"YulIdentifier","src":"11938:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"11681:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11725:9:101","nodeType":"YulTypedName","src":"11725:9:101","type":""},{"name":"dataEnd","nativeSrc":"11736:7:101","nodeType":"YulTypedName","src":"11736:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11748:6:101","nodeType":"YulTypedName","src":"11748:6:101","type":""}],"src":"11681:345:101"},{"body":{"nativeSrc":"12206:359:101","nodeType":"YulBlock","src":"12206:359:101","statements":[{"nativeSrc":"12216:26:101","nodeType":"YulAssignment","src":"12216:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12228:9:101","nodeType":"YulIdentifier","src":"12228:9:101"},{"kind":"number","nativeSrc":"12239:2:101","nodeType":"YulLiteral","src":"12239:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12224:3:101","nodeType":"YulIdentifier","src":"12224:3:101"},"nativeSrc":"12224:18:101","nodeType":"YulFunctionCall","src":"12224:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12216:4:101","nodeType":"YulIdentifier","src":"12216:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12296:6:101","nodeType":"YulIdentifier","src":"12296:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12309:9:101","nodeType":"YulIdentifier","src":"12309:9:101"},{"kind":"number","nativeSrc":"12320:1:101","nodeType":"YulLiteral","src":"12320:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12305:3:101","nodeType":"YulIdentifier","src":"12305:3:101"},"nativeSrc":"12305:17:101","nodeType":"YulFunctionCall","src":"12305:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12252:43:101","nodeType":"YulIdentifier","src":"12252:43:101"},"nativeSrc":"12252:71:101","nodeType":"YulFunctionCall","src":"12252:71:101"},"nativeSrc":"12252:71:101","nodeType":"YulExpressionStatement","src":"12252:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12377:6:101","nodeType":"YulIdentifier","src":"12377:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12390:9:101","nodeType":"YulIdentifier","src":"12390:9:101"},{"kind":"number","nativeSrc":"12401:2:101","nodeType":"YulLiteral","src":"12401:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12386:3:101","nodeType":"YulIdentifier","src":"12386:3:101"},"nativeSrc":"12386:18:101","nodeType":"YulFunctionCall","src":"12386:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12333:43:101","nodeType":"YulIdentifier","src":"12333:43:101"},"nativeSrc":"12333:72:101","nodeType":"YulFunctionCall","src":"12333:72:101"},"nativeSrc":"12333:72:101","nodeType":"YulExpressionStatement","src":"12333:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12426:9:101","nodeType":"YulIdentifier","src":"12426:9:101"},{"kind":"number","nativeSrc":"12437:2:101","nodeType":"YulLiteral","src":"12437:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:18:101","nodeType":"YulFunctionCall","src":"12422:18:101"},{"arguments":[{"name":"tail","nativeSrc":"12446:4:101","nodeType":"YulIdentifier","src":"12446:4:101"},{"name":"headStart","nativeSrc":"12452:9:101","nodeType":"YulIdentifier","src":"12452:9:101"}],"functionName":{"name":"sub","nativeSrc":"12442:3:101","nodeType":"YulIdentifier","src":"12442:3:101"},"nativeSrc":"12442:20:101","nodeType":"YulFunctionCall","src":"12442:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:48:101","nodeType":"YulFunctionCall","src":"12415:48:101"},"nativeSrc":"12415:48:101","nodeType":"YulExpressionStatement","src":"12415:48:101"},{"nativeSrc":"12472:86:101","nodeType":"YulAssignment","src":"12472:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"12544:6:101","nodeType":"YulIdentifier","src":"12544:6:101"},{"name":"tail","nativeSrc":"12553:4:101","nodeType":"YulIdentifier","src":"12553:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"12480:63:101","nodeType":"YulIdentifier","src":"12480:63:101"},"nativeSrc":"12480:78:101","nodeType":"YulFunctionCall","src":"12480:78:101"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:101","nodeType":"YulIdentifier","src":"12472:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12032:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12162:9:101","nodeType":"YulTypedName","src":"12162:9:101","type":""},{"name":"value2","nativeSrc":"12174:6:101","nodeType":"YulTypedName","src":"12174:6:101","type":""},{"name":"value1","nativeSrc":"12182:6:101","nodeType":"YulTypedName","src":"12182:6:101","type":""},{"name":"value0","nativeSrc":"12190:6:101","nodeType":"YulTypedName","src":"12190:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12201:4:101","nodeType":"YulTypedName","src":"12201:4:101","type":""}],"src":"12032:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6589":[{"length":32,"start":512},{"length":32,"start":640},{"length":32,"start":1675},{"length":32,"start":2059}],"6592":[{"length":32,"start":302},{"length":32,"start":1391},{"length":32,"start":1932}],"6596":[{"length":32,"start":579},{"length":32,"start":1346},{"length":32,"start":1885}],"6600":[{"length":32,"start":382},{"length":32,"start":2250}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b604051610120919061097b565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b60405161012091906109a8565b61011360045481565b6101136101743660046109d7565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a1a565b6101c06101bb366004610a39565b61032e565b005b61011360025481565b6101c06101d9366004610a57565b61039f565b6101e6610473565b6040516101209190610a99565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610a57565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b61011361070c565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed81610759565b9392505050565b5f6102fd61070c565b90505f818311801561030e57508115155b610318578261031a565b815b905061032581610759565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108b1565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108b1565b5f546103ed6301e1338084610acf565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de60885604051610464919061097b565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b61070c565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610ae2565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e561070c565b90506004548183116104f757826104f9565b815b6105039190610af5565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f0000000000000000000000000000000000000000000000000000000000000000906004016109a8565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108b1565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b6040516303d1689d60e11b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307a2d13a906106c890670de0b6b3a76400009060040161097b565b602060405180830381865afa1580156106e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107079190610b13565b905090565b5f806003544261071c9190610ae2565b90505f670de0b6b3a7640000825f546002546107389190610b31565b6107429190610b31565b61074c9190610acf565b6002546102ed9190610af5565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107c791906109a8565b602060405180830381865afa1580156107e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108069190610b13565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088d9190610b64565b60ff16905061089d81600a610c8e565b6108a78487610b31565b6103259190610acf565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109019033908690600401610cd7565b602060405180830381865afa15801561091c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109409190610d0a565b90508061096f57333083604051634a3fa29360e01b815260040161096693929190610d28565b60405180910390fd5b5050565b805b82525050565b602081016109898284610973565b92915050565b5f6001600160a01b038216610989565b6109758161098f565b60208101610989828461099f565b6109bf8161098f565b81146109c9575f80fd5b50565b8035610989816109b6565b5f602082840312156109ea576109ea5f80fd5b5f6109f584846109cc565b949350505050565b5f6109898261098f565b5f610989826109fd565b61097581610a07565b602081016109898284610a11565b806109bf565b803561098981610a28565b5f60208284031215610a4c57610a4c5f80fd5b5f6109f58484610a2e565b5f8060408385031215610a6b57610a6b5f80fd5b5f610a768585610a2e565b9250506020610a8785828601610a2e565b9150509250929050565b801515610975565b602081016109898284610a91565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610add57610add610aa7565b500490565b8181038181111561098957610989610abb565b8082018082111561098957610989610abb565b805161098981610a28565b5f60208284031215610b2657610b265f80fd5b5f6109f58484610b08565b818102808215838204851417610b4957610b49610abb565b5092915050565b60ff81166109bf565b805161098981610b50565b5f60208284031215610b7757610b775f80fd5b5f6109f58484610b59565b80825b6001851115610bc157808604811115610ba057610ba0610abb565b6001851615610bae57908102905b8002610bba8560011c90565b9450610b85565b94509492505050565b5f82610bd8575060016102ed565b81610be457505f6102ed565b8160018114610bfa5760028114610c0457610c31565b60019150506102ed565b60ff841115610c1557610c15610abb565b8360020a915084821115610c2b57610c2b610abb565b506102ed565b5060208310610133831016604e8410600b8410161715610c64575081810a83811115610c5f57610c5f610abb565b6102ed565b610c718484846001610b82565b92509050818404811115610c8757610c87610abb565b0292915050565b5f6102ed5f198484610bca565b8281835e505f910152565b5f610caf825190565b808452602084019350610cc6818560208601610c9b565b601f01601f19169290920192915050565b60408101610ce5828561099f565b81810360208301526109f58184610ca6565b8015156109bf565b805161098981610cf7565b5f60208284031215610d1d57610d1d5f80fd5b5f6109f58484610cff565b60608101610d36828661099f565b610d43602083018561099f565b81810360408301526103258184610ca656fea26469706673582212204ecdeaf323ec03b90ddbebf675bba4368c39a6792dd390aebbe4d40fb81d5f2e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x9D7 JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA1A JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA39 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA99 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x70C JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x759 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x70C JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x759 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8B1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xACF JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x70C JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xAE2 JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x70C JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9A8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D1689D PUSH1 0xE1 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A2D13A SWAP1 PUSH2 0x6C8 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x97B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6E3 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x707 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x71C SWAP2 SWAP1 PUSH2 0xAE2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x738 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x742 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x74C SWAP2 SWAP1 PUSH2 0xACF JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xAF5 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7E2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x806 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x869 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x88D SWAP2 SWAP1 PUSH2 0xB64 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x89D DUP2 PUSH1 0xA PUSH2 0xC8E JUMP JUMPDEST PUSH2 0x8A7 DUP5 DUP8 PUSH2 0xB31 JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xACF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x901 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCD7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x91C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x940 SWAP2 SWAP1 PUSH2 0xD0A JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x96F JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0x973 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x989 JUMP JUMPDEST PUSH2 0x975 DUP2 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0x99F JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0x98F JUMP JUMPDEST DUP2 EQ PUSH2 0x9C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x989 DUP2 PUSH2 0x9B6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9EA JUMPI PUSH2 0x9EA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0x9CC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x989 DUP3 PUSH2 0x98F JUMP JUMPDEST PUSH0 PUSH2 0x989 DUP3 PUSH2 0x9FD JUMP JUMPDEST PUSH2 0x975 DUP2 PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0xA11 JUMP JUMPDEST DUP1 PUSH2 0x9BF JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x989 DUP2 PUSH2 0xA28 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA4C JUMPI PUSH2 0xA4C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xA2E JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA6B JUMPI PUSH2 0xA6B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA76 DUP6 DUP6 PUSH2 0xA2E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA87 DUP6 DUP3 DUP7 ADD PUSH2 0xA2E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x975 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x989 DUP3 DUP5 PUSH2 0xA91 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xADD JUMPI PUSH2 0xADD PUSH2 0xAA7 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH2 0x989 PUSH2 0xABB JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x989 JUMPI PUSH2 0x989 PUSH2 0xABB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x989 DUP2 PUSH2 0xA28 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB26 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xB08 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB49 JUMPI PUSH2 0xB49 PUSH2 0xABB JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9BF JUMP JUMPDEST DUP1 MLOAD PUSH2 0x989 DUP2 PUSH2 0xB50 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB77 JUMPI PUSH2 0xB77 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xB59 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBC1 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBA0 JUMPI PUSH2 0xBA0 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBAE JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBBA DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB85 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBD8 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xBE4 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xBFA JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC04 JUMPI PUSH2 0xC31 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC15 JUMPI PUSH2 0xC15 PUSH2 0xABB JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC2B JUMPI PUSH2 0xC2B PUSH2 0xABB JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC64 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC5F JUMPI PUSH2 0xC5F PUSH2 0xABB JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xC71 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB82 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC87 JUMPI PUSH2 0xC87 PUSH2 0xABB JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xBCA JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCAF DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCC6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC9B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xCE5 DUP3 DUP6 PUSH2 0x99F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9F5 DUP2 DUP5 PUSH2 0xCA6 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9BF JUMP JUMPDEST DUP1 MLOAD PUSH2 0x989 DUP2 PUSH2 0xCF7 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1D JUMPI PUSH2 0xD1D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9F5 DUP5 DUP5 PUSH2 0xCFF JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD36 DUP3 DUP7 PUSH2 0x99F JUMP JUMPDEST PUSH2 0xD43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x99F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xCA6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4E 0xCD 0xEA RETURN 0x23 0xEC SUB 0xB9 0xD 0xDB 0xEB 0xF6 PUSH22 0xBBA4368C39A6792DD390AEBBE4D40FB81D5F2E64736F PUSH13 0x63430008190033000000000000 ","sourceMap":"378:1025:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;1256:145:56;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1256:145:56:-;1343:51;;-1:-1:-1;;;1343:51:56;;1317:7;;-1:-1:-1;;;;;1350:16:56;1343:40;;;;:51;;186:4:17;;1343:51:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1336:58;;1256:145;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;378:1025:56;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;378:1025:56;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;378:1025:56;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5143:180::-;-1:-1:-1;;;5188:1:101;5181:88;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5329:180;-1:-1:-1;;;5374:1:101;5367:88;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5515:185;5555:1;5645;5635:35;;5650:18;;:::i;:::-;-1:-1:-1;5685:9:101;;5515:185::o;5706:194::-;5837:9;;;5859:11;;;5856:37;;;5873:18;;:::i;5906:191::-;6035:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6103:143::-;6185:13;;6207:33;6185:13;6207:33;:::i;6252:351::-;6322:6;6371:2;6359:9;6350:7;6346:23;6342:32;6339:119;;;6377:79;378:1025:56;;;6377:79:101;6497:1;6522:64;6578:7;6558:9;6522:64;:::i;6609:410::-;6754:9;;;;6916;;6949:15;;;6943:22;;6896:83;6873:139;;6992:18;;:::i;:::-;6657:362;6609:410;;;;:::o;7117:118::-;7100:4;7089:16;;7188:22;7025:86;7241:139;7321:13;;7343:31;7321:13;7343:31;:::i;7386:347::-;7454:6;7503:2;7491:9;7482:7;7478:23;7474:32;7471:119;;;7509:79;378:1025:56;;;7509:79:101;7629:1;7654:62;7708:7;7688:9;7654:62;:::i;7847:848::-;7939:6;7963:5;7977:712;7998:1;7988:8;7985:15;7977:712;;;8093:4;8088:3;8084:14;8078:4;8075:24;8072:50;;;8102:18;;:::i;:::-;8152:1;8142:8;8138:16;8135:451;;;8556:16;;;;8135:451;8607:15;;8647:32;8670:8;7825:1;7821:13;;7739:102;8647:32;8635:44;;7977:712;;;7847:848;;;;;;;:::o;8701:1073::-;8755:5;8946:8;8936:40;;-1:-1:-1;8967:1:101;8969:5;;8936:40;8995:4;8985:36;;-1:-1:-1;9012:1:101;9014:5;;8985:36;9081:4;9129:1;9124:27;;;;9165:1;9160:191;;;;9074:277;;9124:27;9142:1;9133:10;;9144:5;;;9160:191;9205:3;9195:8;9192:17;9189:43;;;9212:18;;:::i;:::-;9261:8;9258:1;9254:16;9245:25;;9296:3;9289:5;9286:14;9283:40;;;9303:18;;:::i;:::-;9336:5;;;9074:277;;9460:2;9450:8;9447:16;9441:3;9435:4;9432:13;9428:36;9410:2;9400:8;9397:16;9392:2;9386:4;9383:12;9379:35;9363:111;9360:246;;;-1:-1:-1;9506:19:101;;;9541:14;;;9538:40;;;9558:18;;:::i;:::-;9591:5;;9360:246;9631:42;9669:3;9659:8;9653:4;9650:1;9631:42;:::i;:::-;9616:57;;;;9705:4;9700:3;9696:14;9689:5;9686:25;9683:51;;;9714:18;;:::i;:::-;9752:16;;8701:1073;-1:-1:-1;;8701:1073:101:o;9780:285::-;9840:5;9954:104;-1:-1:-1;;9981:8:101;9975:4;9954:104;:::i;10351:139::-;10440:6;10435:3;10430;10424:23;-1:-1:-1;10481:1:101;10463:16;;10456:27;10351:139::o;10604:377::-;10692:3;10720:39;10753:5;10151:12;;10071:99;10720:39;10282:19;;;10334:4;10325:14;;10768:78;;10855:65;10913:6;10908:3;10901:4;10894:5;10890:16;10855:65;:::i;:::-;10588:2;10568:14;-1:-1:-1;;10564:28:101;10936:39;;;;;;-1:-1:-1;;10604:377:101:o;10987:423::-;11166:2;11151:18;;11179:71;11155:9;11223:6;11179:71;:::i;:::-;11297:9;11291:4;11287:20;11282:2;11271:9;11267:18;11260:48;11325:78;11398:4;11389:6;11325:78;:::i;11416:116::-;4124:13;;4117:21;11486;4054:90;11538:137;11617:13;;11639:30;11617:13;11639:30;:::i;11681:345::-;11748:6;11797:2;11785:9;11776:7;11772:23;11768:32;11765:119;;;11803:79;378:1025:56;;;11803:79:101;11923:1;11948:61;12001:7;11981:9;11948:61;:::i;12032:533::-;12239:2;12224:18;;12252:71;12228:9;12296:6;12252:71;:::i;:::-;12333:72;12401:2;12390:9;12386:18;12377:6;12333:72;:::i;:::-;12452:9;12446:4;12442:20;12437:2;12426:9;12422:18;12415:48;12480:78;12553:4;12544:6;12480:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"693400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sFrax\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"frax\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount The amount of FRAX for sFrax\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"SFraxOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of FRAX for 1 sFrax\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of sFrax\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/SFraxOracle.sol\":\"SFraxOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ISFrax.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISFrax {\\n    function convertToAssets(uint256 shares) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x478821eeeb2b7699442dc19b5029f918f650448cb0655b88348a167ea856efb8\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/SFraxOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { ISFrax } from \\\"../interfaces/ISFrax.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\n\\n/**\\n * @title SFraxOracle\\n * @author Venus\\n * @notice This oracle fetches the price of sFrax\\n */\\ncontract SFraxOracle is CorrelatedTokenOracle {\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address sFrax,\\n        address frax,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            sFrax,\\n            frax,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {}\\n\\n    /**\\n     * @notice Fetches the amount of FRAX for 1 sFrax\\n     * @return amount The amount of FRAX for sFrax\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return ISFrax(CORRELATED_TOKEN).convertToAssets(EXP_SCALE);\\n    }\\n}\\n\",\"keccak256\":\"0x4d959a249f385f90a40f1a7a0adf2193c4cecdc2225959c3971fd952ba210b7f\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/SFraxOracle.sol:SFraxOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/SFraxOracle.sol:SFraxOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/SFraxOracle.sol:SFraxOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/SFraxOracle.sol:SFraxOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/SFraxOracle.sol:SFraxOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of FRAX for 1 sFrax"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of sFrax","version":1}}},"contracts/oracles/SFrxETHOracle.sol":{"SFrxETHOracle":{"abi":[{"inputs":[{"internalType":"address","name":"_sfrxEthFraxOracle","type":"address"},{"internalType":"address","name":"_sfrxETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BadPriceData","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[],"name":"PriceDifferenceExceeded","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"inputs":[],"name":"ZeroValueNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMaxAllowedPriceDifference","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxAllowedPriceDifference","type":"uint256"}],"name":"MaxAllowedPriceDifferenceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"SFRXETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SFRXETH_FRAX_ORACLE","outputs":[{"internalType":"contract ISfrxEthFraxOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_acm","type":"address"},{"internalType":"uint256","name":"_maxAllowedPriceDifference","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxAllowedPriceDifference","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAllowedPriceDifference","type":"uint256"}],"name":"setMaxAllowedPriceDifference","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:error":"ZeroAddressNotAllowed is thrown when `_sfrxEthFraxOracle` or `_sfrxETH` are the zero address","custom:oz-upgrades-unsafe-allow":"constructor"},"getPrice(address)":{"custom:error":"InvalidTokenAddress is thrown when the `asset` is not the sfrxETH token (`SFRXETH`)BadPriceData is thrown if the `SFRXETH_FRAX_ORACLE` oracle informs it has bad dataZeroValueNotAllowed is thrown if the prices (low or high, in USD) are zeroPriceDifferenceExceeded is thrown if priceHigh/priceLow is greater than `maxAllowedPriceDifference`","params":{"asset":"Address of the sfrxETH token"},"returns":{"_0":"price The price scaled by 1e18"}},"initialize(address,uint256)":{"custom:error":"ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero","params":{"_acm":"Address of the access control manager contract","_maxAllowedPriceDifference":"Maximum allowed price difference"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setMaxAllowedPriceDifference(uint256)":{"custom:error":"ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero","params":{"_maxAllowedPriceDifference":"Maximum allowed price difference"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"SFRXETH":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"},"SFRXETH_FRAX_ORACLE":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"SFrxETHOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5684":{"entryPoint":null,"id":5684,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_492":{"entryPoint":140,"id":492,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":98,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":309,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":320,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":378,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":453,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":272,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":290,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2989:101","nodeType":"YulBlock","src":"0:2989:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"939:413:101","nodeType":"YulBlock","src":"939:413:101","statements":[{"body":{"nativeSrc":"985:83:101","nodeType":"YulBlock","src":"985:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"987:77:101","nodeType":"YulIdentifier","src":"987:77:101"},"nativeSrc":"987:79:101","nodeType":"YulFunctionCall","src":"987:79:101"},"nativeSrc":"987:79:101","nodeType":"YulExpressionStatement","src":"987:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"960:7:101","nodeType":"YulIdentifier","src":"960:7:101"},{"name":"headStart","nativeSrc":"969:9:101","nodeType":"YulIdentifier","src":"969:9:101"}],"functionName":{"name":"sub","nativeSrc":"956:3:101","nodeType":"YulIdentifier","src":"956:3:101"},"nativeSrc":"956:23:101","nodeType":"YulFunctionCall","src":"956:23:101"},{"kind":"number","nativeSrc":"981:2:101","nodeType":"YulLiteral","src":"981:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"952:3:101","nodeType":"YulIdentifier","src":"952:3:101"},"nativeSrc":"952:32:101","nodeType":"YulFunctionCall","src":"952:32:101"},"nativeSrc":"949:119:101","nodeType":"YulIf","src":"949:119:101"},{"nativeSrc":"1078:128:101","nodeType":"YulBlock","src":"1078:128:101","statements":[{"nativeSrc":"1093:15:101","nodeType":"YulVariableDeclaration","src":"1093:15:101","value":{"kind":"number","nativeSrc":"1107:1:101","nodeType":"YulLiteral","src":"1107:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""}]},{"nativeSrc":"1122:74:101","nodeType":"YulAssignment","src":"1122:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1168:9:101","nodeType":"YulIdentifier","src":"1168:9:101"},{"name":"offset","nativeSrc":"1179:6:101","nodeType":"YulIdentifier","src":"1179:6:101"}],"functionName":{"name":"add","nativeSrc":"1164:3:101","nodeType":"YulIdentifier","src":"1164:3:101"},"nativeSrc":"1164:22:101","nodeType":"YulFunctionCall","src":"1164:22:101"},{"name":"dataEnd","nativeSrc":"1188:7:101","nodeType":"YulIdentifier","src":"1188:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1132:31:101","nodeType":"YulIdentifier","src":"1132:31:101"},"nativeSrc":"1132:64:101","nodeType":"YulFunctionCall","src":"1132:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1122:6:101","nodeType":"YulIdentifier","src":"1122:6:101"}]}]},{"nativeSrc":"1216:129:101","nodeType":"YulBlock","src":"1216:129:101","statements":[{"nativeSrc":"1231:16:101","nodeType":"YulVariableDeclaration","src":"1231:16:101","value":{"kind":"number","nativeSrc":"1245:2:101","nodeType":"YulLiteral","src":"1245:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1235:6:101","nodeType":"YulTypedName","src":"1235:6:101","type":""}]},{"nativeSrc":"1261:74:101","nodeType":"YulAssignment","src":"1261:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1307:9:101","nodeType":"YulIdentifier","src":"1307:9:101"},{"name":"offset","nativeSrc":"1318:6:101","nodeType":"YulIdentifier","src":"1318:6:101"}],"functionName":{"name":"add","nativeSrc":"1303:3:101","nodeType":"YulIdentifier","src":"1303:3:101"},"nativeSrc":"1303:22:101","nodeType":"YulFunctionCall","src":"1303:22:101"},{"name":"dataEnd","nativeSrc":"1327:7:101","nodeType":"YulIdentifier","src":"1327:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1271:31:101","nodeType":"YulIdentifier","src":"1271:31:101"},"nativeSrc":"1271:64:101","nodeType":"YulFunctionCall","src":"1271:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1261:6:101","nodeType":"YulIdentifier","src":"1261:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nativeSrc":"845:507:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"901:9:101","nodeType":"YulTypedName","src":"901:9:101","type":""},{"name":"dataEnd","nativeSrc":"912:7:101","nodeType":"YulTypedName","src":"912:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"924:6:101","nodeType":"YulTypedName","src":"924:6:101","type":""},{"name":"value1","nativeSrc":"932:6:101","nodeType":"YulTypedName","src":"932:6:101","type":""}],"src":"845:507:101"},{"body":{"nativeSrc":"1454:73:101","nodeType":"YulBlock","src":"1454:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1471:3:101","nodeType":"YulIdentifier","src":"1471:3:101"},{"name":"length","nativeSrc":"1476:6:101","nodeType":"YulIdentifier","src":"1476:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1464:6:101","nodeType":"YulIdentifier","src":"1464:6:101"},"nativeSrc":"1464:19:101","nodeType":"YulFunctionCall","src":"1464:19:101"},"nativeSrc":"1464:19:101","nodeType":"YulExpressionStatement","src":"1464:19:101"},{"nativeSrc":"1492:29:101","nodeType":"YulAssignment","src":"1492:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"1511:3:101","nodeType":"YulIdentifier","src":"1511:3:101"},{"kind":"number","nativeSrc":"1516:4:101","nodeType":"YulLiteral","src":"1516:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1507:3:101","nodeType":"YulIdentifier","src":"1507:3:101"},"nativeSrc":"1507:14:101","nodeType":"YulFunctionCall","src":"1507:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"1492:11:101","nodeType":"YulIdentifier","src":"1492:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1358:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1426:3:101","nodeType":"YulTypedName","src":"1426:3:101","type":""},{"name":"length","nativeSrc":"1431:6:101","nodeType":"YulTypedName","src":"1431:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1442:11:101","nodeType":"YulTypedName","src":"1442:11:101","type":""}],"src":"1358:169:101"},{"body":{"nativeSrc":"1639:120:101","nodeType":"YulBlock","src":"1639:120:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1661:6:101","nodeType":"YulIdentifier","src":"1661:6:101"},{"kind":"number","nativeSrc":"1669:1:101","nodeType":"YulLiteral","src":"1669:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1657:3:101","nodeType":"YulIdentifier","src":"1657:3:101"},"nativeSrc":"1657:14:101","nodeType":"YulFunctionCall","src":"1657:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1673:34:101","nodeType":"YulLiteral","src":"1673:34:101","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1650:6:101","nodeType":"YulIdentifier","src":"1650:6:101"},"nativeSrc":"1650:58:101","nodeType":"YulFunctionCall","src":"1650:58:101"},"nativeSrc":"1650:58:101","nodeType":"YulExpressionStatement","src":"1650:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1729:6:101","nodeType":"YulIdentifier","src":"1729:6:101"},{"kind":"number","nativeSrc":"1737:2:101","nodeType":"YulLiteral","src":"1737:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1725:3:101","nodeType":"YulIdentifier","src":"1725:3:101"},"nativeSrc":"1725:15:101","nodeType":"YulFunctionCall","src":"1725:15:101"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1742:9:101","nodeType":"YulLiteral","src":"1742:9:101","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1718:6:101","nodeType":"YulIdentifier","src":"1718:6:101"},"nativeSrc":"1718:34:101","nodeType":"YulFunctionCall","src":"1718:34:101"},"nativeSrc":"1718:34:101","nodeType":"YulExpressionStatement","src":"1718:34:101"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"1533:226:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1631:6:101","nodeType":"YulTypedName","src":"1631:6:101","type":""}],"src":"1533:226:101"},{"body":{"nativeSrc":"1911:220:101","nodeType":"YulBlock","src":"1911:220:101","statements":[{"nativeSrc":"1921:74:101","nodeType":"YulAssignment","src":"1921:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"1987:3:101","nodeType":"YulIdentifier","src":"1987:3:101"},{"kind":"number","nativeSrc":"1992:2:101","nodeType":"YulLiteral","src":"1992:2:101","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1928:58:101","nodeType":"YulIdentifier","src":"1928:58:101"},"nativeSrc":"1928:67:101","nodeType":"YulFunctionCall","src":"1928:67:101"},"variableNames":[{"name":"pos","nativeSrc":"1921:3:101","nodeType":"YulIdentifier","src":"1921:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2093:3:101","nodeType":"YulIdentifier","src":"2093:3:101"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"2004:88:101","nodeType":"YulIdentifier","src":"2004:88:101"},"nativeSrc":"2004:93:101","nodeType":"YulFunctionCall","src":"2004:93:101"},"nativeSrc":"2004:93:101","nodeType":"YulExpressionStatement","src":"2004:93:101"},{"nativeSrc":"2106:19:101","nodeType":"YulAssignment","src":"2106:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"2117:3:101","nodeType":"YulIdentifier","src":"2117:3:101"},{"kind":"number","nativeSrc":"2122:2:101","nodeType":"YulLiteral","src":"2122:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2113:3:101","nodeType":"YulIdentifier","src":"2113:3:101"},"nativeSrc":"2113:12:101","nodeType":"YulFunctionCall","src":"2113:12:101"},"variableNames":[{"name":"end","nativeSrc":"2106:3:101","nodeType":"YulIdentifier","src":"2106:3:101"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"1765:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1899:3:101","nodeType":"YulTypedName","src":"1899:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1907:3:101","nodeType":"YulTypedName","src":"1907:3:101","type":""}],"src":"1765:366:101"},{"body":{"nativeSrc":"2308:248:101","nodeType":"YulBlock","src":"2308:248:101","statements":[{"nativeSrc":"2318:26:101","nodeType":"YulAssignment","src":"2318:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2330:9:101","nodeType":"YulIdentifier","src":"2330:9:101"},{"kind":"number","nativeSrc":"2341:2:101","nodeType":"YulLiteral","src":"2341:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2326:3:101","nodeType":"YulIdentifier","src":"2326:3:101"},"nativeSrc":"2326:18:101","nodeType":"YulFunctionCall","src":"2326:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2318:4:101","nodeType":"YulIdentifier","src":"2318:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2365:9:101","nodeType":"YulIdentifier","src":"2365:9:101"},{"kind":"number","nativeSrc":"2376:1:101","nodeType":"YulLiteral","src":"2376:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2361:3:101","nodeType":"YulIdentifier","src":"2361:3:101"},"nativeSrc":"2361:17:101","nodeType":"YulFunctionCall","src":"2361:17:101"},{"arguments":[{"name":"tail","nativeSrc":"2384:4:101","nodeType":"YulIdentifier","src":"2384:4:101"},{"name":"headStart","nativeSrc":"2390:9:101","nodeType":"YulIdentifier","src":"2390:9:101"}],"functionName":{"name":"sub","nativeSrc":"2380:3:101","nodeType":"YulIdentifier","src":"2380:3:101"},"nativeSrc":"2380:20:101","nodeType":"YulFunctionCall","src":"2380:20:101"}],"functionName":{"name":"mstore","nativeSrc":"2354:6:101","nodeType":"YulIdentifier","src":"2354:6:101"},"nativeSrc":"2354:47:101","nodeType":"YulFunctionCall","src":"2354:47:101"},"nativeSrc":"2354:47:101","nodeType":"YulExpressionStatement","src":"2354:47:101"},{"nativeSrc":"2410:139:101","nodeType":"YulAssignment","src":"2410:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"2544:4:101","nodeType":"YulIdentifier","src":"2544:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"2418:124:101","nodeType":"YulIdentifier","src":"2418:124:101"},"nativeSrc":"2418:131:101","nodeType":"YulFunctionCall","src":"2418:131:101"},"variableNames":[{"name":"tail","nativeSrc":"2410:4:101","nodeType":"YulIdentifier","src":"2410:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2137:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2288:9:101","nodeType":"YulTypedName","src":"2288:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2303:4:101","nodeType":"YulTypedName","src":"2303:4:101","type":""}],"src":"2137:419:101"},{"body":{"nativeSrc":"2605:43:101","nodeType":"YulBlock","src":"2605:43:101","statements":[{"nativeSrc":"2615:27:101","nodeType":"YulAssignment","src":"2615:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2630:5:101","nodeType":"YulIdentifier","src":"2630:5:101"},{"kind":"number","nativeSrc":"2637:4:101","nodeType":"YulLiteral","src":"2637:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2626:3:101","nodeType":"YulIdentifier","src":"2626:3:101"},"nativeSrc":"2626:16:101","nodeType":"YulFunctionCall","src":"2626:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2615:7:101","nodeType":"YulIdentifier","src":"2615:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2562:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2587:5:101","nodeType":"YulTypedName","src":"2587:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2597:7:101","nodeType":"YulTypedName","src":"2597:7:101","type":""}],"src":"2562:86:101"},{"body":{"nativeSrc":"2715:51:101","nodeType":"YulBlock","src":"2715:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2732:3:101","nodeType":"YulIdentifier","src":"2732:3:101"},{"arguments":[{"name":"value","nativeSrc":"2753:5:101","nodeType":"YulIdentifier","src":"2753:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2737:15:101","nodeType":"YulIdentifier","src":"2737:15:101"},"nativeSrc":"2737:22:101","nodeType":"YulFunctionCall","src":"2737:22:101"}],"functionName":{"name":"mstore","nativeSrc":"2725:6:101","nodeType":"YulIdentifier","src":"2725:6:101"},"nativeSrc":"2725:35:101","nodeType":"YulFunctionCall","src":"2725:35:101"},"nativeSrc":"2725:35:101","nodeType":"YulExpressionStatement","src":"2725:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"2654:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2703:5:101","nodeType":"YulTypedName","src":"2703:5:101","type":""},{"name":"pos","nativeSrc":"2710:3:101","nodeType":"YulTypedName","src":"2710:3:101","type":""}],"src":"2654:112:101"},{"body":{"nativeSrc":"2866:120:101","nodeType":"YulBlock","src":"2866:120:101","statements":[{"nativeSrc":"2876:26:101","nodeType":"YulAssignment","src":"2876:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2888:9:101","nodeType":"YulIdentifier","src":"2888:9:101"},{"kind":"number","nativeSrc":"2899:2:101","nodeType":"YulLiteral","src":"2899:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2884:3:101","nodeType":"YulIdentifier","src":"2884:3:101"},"nativeSrc":"2884:18:101","nodeType":"YulFunctionCall","src":"2884:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2876:4:101","nodeType":"YulIdentifier","src":"2876:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2952:6:101","nodeType":"YulIdentifier","src":"2952:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2965:9:101","nodeType":"YulIdentifier","src":"2965:9:101"},{"kind":"number","nativeSrc":"2976:1:101","nodeType":"YulLiteral","src":"2976:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2961:3:101","nodeType":"YulIdentifier","src":"2961:3:101"},"nativeSrc":"2961:17:101","nodeType":"YulFunctionCall","src":"2961:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"2912:39:101","nodeType":"YulIdentifier","src":"2912:39:101"},"nativeSrc":"2912:67:101","nodeType":"YulFunctionCall","src":"2912:67:101"},"nativeSrc":"2912:67:101","nodeType":"YulExpressionStatement","src":"2912:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"2772:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2838:9:101","nodeType":"YulTypedName","src":"2838:9:101","type":""},{"name":"value0","nativeSrc":"2850:6:101","nodeType":"YulTypedName","src":"2850:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2861:4:101","nodeType":"YulTypedName","src":"2861:4:101","type":""}],"src":"2772:214:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561000f575f80fd5b5060405161107238038061107283398101604081905261002e91610140565b61003782610062565b61004081610062565b6001600160a01b03808316608052811660a05261005b61008c565b50506101d4565b6001600160a01b038116610089576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f54610100900460ff16156100bc5760405162461bcd60e51b81526004016100b39061017a565b60405180910390fd5b5f5460ff9081161461010e575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891610105916101c5565b60405180910390a15b565b5f6001600160a01b0382165b92915050565b61012b81610110565b8114610089575f80fd5b805161011c81610122565b5f8060408385031215610154576101545f80fd5b5f61015f8585610135565b925050602061017085828601610135565b9150509250929050565b6020808252810161011c81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff821681526020810161011c565b60805160a051610e706102025f395f8181610126015261021101525f818160e901526102660152610e705ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063cd6dc68711610063578063cd6dc687146101b0578063d5445950146101c3578063e30c3978146101d6578063f2fde38b146101e7575f80fd5b80638da5cb5b146101855780639fd1944f14610196578063b4a0bdf31461019f575f80fd5b80630e32cb86146100cf578063127cac45146100e457806335da603d1461012157806341976e0914610155578063715018a61461017557806379ba50971461017d575b5f80fd5b6100e26100dd366004610886565b6101fa565b005b61010b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108df565b60405180910390f35b6101487f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108f6565b610168610163366004610886565b61020e565b604051610118919061090a565b6100e26103c2565b6100e26103d5565b6033546001600160a01b0316610148565b61016860c95481565b6097546001600160a01b031661010b565b6100e26101be366004610929565b610413565b6100e26101d1366004610963565b6104ed565b6065546001600160a01b0316610148565b6100e26101f5366004610886565b610557565b6102026105c8565b61020b816105f2565b50565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461026157604051630f58058360e11b815260040160405180910390fd5b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd9a548b6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e4919061099f565b92509250925082156103095760405163a40e329160e01b815260040160405180910390fd5b5f8261031e6002670de0b6b3a7640000610b0e565b6103289190610b35565b90505f8261033f6002670de0b6b3a7640000610b0e565b6103499190610b35565b905061035482610677565b61035d81610677565b5f81610371670de0b6b3a764000085610b48565b61037b9190610b35565b905060c9548111156103a05760405163280cb9ed60e11b815260040160405180910390fd5b60026103ac8385610b67565b6103b69190610b35565b98975050505050505050565b6103ca6105c8565b6103d35f610697565b565b60655433906001600160a01b0316811461040a5760405162461bcd60e51b815260040161040190610bc2565b60405180910390fd5b61020b81610697565b5f54610100900460ff161580801561043157505f54600160ff909116105b8061044a5750303b15801561044a57505f5460ff166001145b6104665760405162461bcd60e51b815260040161040190610c1c565b5f805460ff191660011790558015610487575f805461ff0019166101001790555b61049082610677565b610499836106b0565b60c982905580156104e8575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104df90600190610c3f565b60405180910390a15b505050565b61050e604051806060016040528060258152602001610e16602591396106e7565b61051781610677565b7f8d4d923222e4a17f030a7f3fe695e9e6c13b437df4b3b48c2332f584395aba9060c9548260405161054a929190610c4d565b60405180910390a160c955565b61055f6105c8565b606580546001600160a01b0383166001600160a01b031990911681179091556105906033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146103d35760405162461bcd60e51b815260040161040190610c68565b6001600160a01b0381166106185760405162461bcd60e51b815260040161040190610ce3565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09061066b9083908590610cf3565b60405180910390a15050565b805f0361020b5760405163273e150360e21b815260040160405180910390fd5b606580546001600160a01b031916905561020b81610782565b5f54610100900460ff166106d65760405162461bcd60e51b815260040161040190610d55565b6106de6107d3565b61020b81610801565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab906107199033908690600401610da1565b602060405180830381865afa158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190610dc1565b90508061077e57333083604051634a3fa29360e01b815260040161040193929190610ddf565b5050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166107f95760405162461bcd60e51b815260040161040190610d55565b6103d3610827565b5f54610100900460ff166102025760405162461bcd60e51b815260040161040190610d55565b5f54610100900460ff1661084d5760405162461bcd60e51b815260040161040190610d55565b6103d333610697565b5f6001600160a01b0382165b92915050565b61087181610856565b811461020b575f80fd5b803561086281610868565b5f60208284031215610899576108995f80fd5b5f6108a4848461087b565b949350505050565b5f6001600160a01b038216610862565b5f610862826108ac565b5f610862826108bc565b6108d9816108c6565b82525050565b6020810161086282846108d0565b6108d981610856565b6020810161086282846108ed565b806108d9565b602081016108628284610904565b80610871565b803561086281610918565b5f806040838503121561093d5761093d5f80fd5b5f610948858561087b565b92505060206109598582860161091e565b9150509250929050565b5f60208284031215610976576109765f80fd5b5f6108a4848461091e565b801515610871565b805161086281610981565b805161086281610918565b5f805f606084860312156109b4576109b45f80fd5b5f6109bf8686610989565b93505060206109d086828701610994565b92505060406109e186828701610994565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b80825b6001851115610a3e57808604811115610a1d57610a1d6109eb565b6001851615610a2b57908102905b8002610a378560011c90565b9450610a02565b94509492505050565b5f82610a5557506001610b07565b81610a6157505f610b07565b8160018114610a775760028114610a8157610aae565b6001915050610b07565b60ff841115610a9257610a926109eb565b8360020a915084821115610aa857610aa86109eb565b50610b07565b5060208310610133831016604e8410600b8410161715610ae1575081810a83811115610adc57610adc6109eb565b610b07565b610aee84848460016109ff565b92509050818404811115610b0457610b046109eb565b81025b9392505050565b5f60ff83169250610b075f198484610a47565b634e487b7160e01b5f52601260045260245ffd5b5f82610b4357610b43610b21565b500490565b818102808215838204851417610b6057610b606109eb565b5092915050565b80820180821115610862576108626109eb565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161086281610b7a565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610bbb565b6020808252810161086281610bd2565b5f60ff8216610862565b6108d981610c2c565b602081016108628284610c36565b60408101610c5b8285610904565b610b076020830184610904565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610862565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610bbb565b6020808252810161086281610ca2565b60408101610d0182856108ed565b610b0760208301846108ed565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610bbb565b6020808252810161086281610d0e565b8281835e505f910152565b5f610d79825190565b808452602084019350610d90818560208601610d65565b601f01601f19169290920192915050565b60408101610daf82856108ed565b81810360208301526108a48184610d70565b5f60208284031215610dd457610dd45f80fd5b5f6108a48484610989565b60608101610ded82866108ed565b610dfa60208301856108ed565b8181036040830152610e0c8184610d70565b9594505050505056fe7365744d6178416c6c6f7765645072696365446966666572656e63652875696e7432353629a26469706673582212202f4749ca7dc9cb45a8d74c0d8153cd6ee9a374652830f7078ce44e2dfe3f044c64736f6c63430008190033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1072 CODESIZE SUB DUP1 PUSH2 0x1072 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x140 JUMP JUMPDEST PUSH2 0x37 DUP3 PUSH2 0x62 JUMP JUMPDEST PUSH2 0x40 DUP2 PUSH2 0x62 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x80 MSTORE DUP2 AND PUSH1 0xA0 MSTORE PUSH2 0x5B PUSH2 0x8C JUMP JUMPDEST POP POP PUSH2 0x1D4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x89 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3 SWAP1 PUSH2 0x17A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x10E JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0x105 SWAP2 PUSH2 0x1C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12B DUP2 PUSH2 0x110 JUMP JUMPDEST DUP2 EQ PUSH2 0x89 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x11C DUP2 PUSH2 0x122 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x154 JUMPI PUSH2 0x154 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x15F DUP6 DUP6 PUSH2 0x135 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x170 DUP6 DUP3 DUP7 ADD PUSH2 0x135 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x11C DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0x11C JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0xE70 PUSH2 0x202 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x126 ADD MSTORE PUSH2 0x211 ADD MSTORE PUSH0 DUP2 DUP2 PUSH1 0xE9 ADD MSTORE PUSH2 0x266 ADD MSTORE PUSH2 0xE70 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x88 JUMPI DUP1 PUSH4 0xCD6DC687 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xCD6DC687 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0xD5445950 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x9FD1944F EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x19F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x127CAC45 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x35DA603D EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xE2 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x8DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x148 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x8F6 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x163 CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x20E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x90A JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x3D5 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x148 JUMP JUMPDEST PUSH2 0x168 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10B JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1BE CALLDATASIZE PUSH1 0x4 PUSH2 0x929 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x963 JUMP JUMPDEST PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x148 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x557 JUMP JUMPDEST PUSH2 0x202 PUSH2 0x5C8 JUMP JUMPDEST PUSH2 0x20B DUP2 PUSH2 0x5F2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x261 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBD9A548B 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 0x2C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x2E4 SWAP2 SWAP1 PUSH2 0x99F JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP DUP3 ISZERO PUSH2 0x309 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA40E3291 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x31E PUSH1 0x2 PUSH8 0xDE0B6B3A7640000 PUSH2 0xB0E JUMP JUMPDEST PUSH2 0x328 SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH2 0x33F PUSH1 0x2 PUSH8 0xDE0B6B3A7640000 PUSH2 0xB0E JUMP JUMPDEST PUSH2 0x349 SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP1 POP PUSH2 0x354 DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x35D DUP2 PUSH2 0x677 JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x371 PUSH8 0xDE0B6B3A7640000 DUP6 PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x37B SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP1 POP PUSH1 0xC9 SLOAD DUP2 GT ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x280CB9ED PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH2 0x3AC DUP4 DUP6 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x3B6 SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3CA PUSH2 0x5C8 JUMP JUMPDEST PUSH2 0x3D3 PUSH0 PUSH2 0x697 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x40A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xBC2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x20B DUP2 PUSH2 0x697 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x431 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x44A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44A JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x466 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xC1C JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x490 DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x499 DUP4 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x4E8 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x4DF SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xC3F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x50E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE16 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x6E7 JUMP JUMPDEST PUSH2 0x517 DUP2 PUSH2 0x677 JUMP JUMPDEST PUSH32 0x8D4D923222E4A17F030A7F3FE695E9E6C13B437DF4B3B48C2332F584395ABA90 PUSH1 0xC9 SLOAD DUP3 PUSH1 0x40 MLOAD PUSH2 0x54A SWAP3 SWAP2 SWAP1 PUSH2 0xC4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xC9 SSTORE JUMP JUMPDEST PUSH2 0x55F PUSH2 0x5C8 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x590 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xC68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x618 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xCE3 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x66B SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH4 0x273E1503 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x20B DUP2 PUSH2 0x782 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x6D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH2 0x6DE PUSH2 0x7D3 JUMP JUMPDEST PUSH2 0x20B DUP2 PUSH2 0x801 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x719 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x734 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x758 SWAP2 SWAP1 PUSH2 0xDC1 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x77E JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDDF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x7F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x827 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x202 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x84D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH2 0x3D3 CALLER PUSH2 0x697 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x871 DUP2 PUSH2 0x856 JUMP JUMPDEST DUP2 EQ PUSH2 0x20B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x862 DUP2 PUSH2 0x868 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x899 JUMPI PUSH2 0x899 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8A4 DUP5 DUP5 PUSH2 0x87B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x862 JUMP JUMPDEST PUSH0 PUSH2 0x862 DUP3 PUSH2 0x8AC JUMP JUMPDEST PUSH0 PUSH2 0x862 DUP3 PUSH2 0x8BC JUMP JUMPDEST PUSH2 0x8D9 DUP2 PUSH2 0x8C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0x8D0 JUMP JUMPDEST PUSH2 0x8D9 DUP2 PUSH2 0x856 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0x8ED JUMP JUMPDEST DUP1 PUSH2 0x8D9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0x904 JUMP JUMPDEST DUP1 PUSH2 0x871 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x862 DUP2 PUSH2 0x918 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x93D JUMPI PUSH2 0x93D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x948 DUP6 DUP6 PUSH2 0x87B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x959 DUP6 DUP3 DUP7 ADD PUSH2 0x91E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x976 JUMPI PUSH2 0x976 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8A4 DUP5 DUP5 PUSH2 0x91E JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x871 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x862 DUP2 PUSH2 0x981 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x862 DUP2 PUSH2 0x918 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x9B4 JUMPI PUSH2 0x9B4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9BF DUP7 DUP7 PUSH2 0x989 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x9D0 DUP7 DUP3 DUP8 ADD PUSH2 0x994 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x9E1 DUP7 DUP3 DUP8 ADD PUSH2 0x994 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xA3E JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xA1D JUMPI PUSH2 0xA1D PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xA2B JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xA37 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xA02 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xA55 JUMPI POP PUSH1 0x1 PUSH2 0xB07 JUMP JUMPDEST DUP2 PUSH2 0xA61 JUMPI POP PUSH0 PUSH2 0xB07 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xA77 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xA81 JUMPI PUSH2 0xAAE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xB07 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xA92 JUMPI PUSH2 0xA92 PUSH2 0x9EB JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xAA8 JUMPI PUSH2 0xAA8 PUSH2 0x9EB JUMP JUMPDEST POP PUSH2 0xB07 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xAE1 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xADC JUMPI PUSH2 0xADC PUSH2 0x9EB JUMP JUMPDEST PUSH2 0xB07 JUMP JUMPDEST PUSH2 0xAEE DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x9FF JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xB04 JUMPI PUSH2 0xB04 PUSH2 0x9EB JUMP JUMPDEST DUP2 MUL JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP4 AND SWAP3 POP PUSH2 0xB07 PUSH0 NOT DUP5 DUP5 PUSH2 0xA47 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB43 JUMPI PUSH2 0xB43 PUSH2 0xB21 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB60 JUMPI PUSH2 0xB60 PUSH2 0x9EB JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x862 JUMPI PUSH2 0x862 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBBB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xBD2 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x862 JUMP JUMPDEST PUSH2 0x8D9 DUP2 PUSH2 0xC2C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0xC36 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xC5B DUP3 DUP6 PUSH2 0x904 JUMP JUMPDEST PUSH2 0xB07 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x904 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x862 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBBB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xCA2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD01 DUP3 DUP6 PUSH2 0x8ED JUMP JUMPDEST PUSH2 0xB07 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBBB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD79 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD90 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD65 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xDAF DUP3 DUP6 PUSH2 0x8ED JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8A4 DUP2 DUP5 PUSH2 0xD70 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDD4 JUMPI PUSH2 0xDD4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8A4 DUP5 DUP5 PUSH2 0x989 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xDED DUP3 DUP7 PUSH2 0x8ED JUMP JUMPDEST PUSH2 0xDFA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x8ED JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xE0C DUP2 DUP5 PUSH2 0xD70 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID PUSH20 0x65744D6178416C6C6F7765645072696365446966 PUSH7 0x6572656E636528 PUSH22 0x696E7432353629A26469706673582212202F4749CA7D 0xC9 0xCB GASLIMIT 0xA8 0xD7 0x4C 0xD DUP2 MSTORE8 0xCD PUSH15 0xE9A374652830F7078CE44E2DFE3F04 0x4C PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"636:4081:57:-:0;;;1817:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1885:40;1906:18;1885:20;:40::i;:::-;1935:30;1956:8;1935:20;:30::i;:::-;-1:-1:-1;;;;;1976:60:57;;;;;2046:18;;;;2075:22;:20;:22::i;:::-;1817:287;;636:4081;;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;5939:280:5:-;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:5;;;;;;;:::i;:::-;;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:5;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;197:1;194;187:12;987:79;1107:1;1132:64;1188:7;1168:9;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;2137:419::-;2341:2;2354:47;;;2326:18;;2418:131;2326:18;1992:2;1464:19;;1673:34;1516:4;1507:14;;1650:58;-1:-1:-1;;;1725:15:101;;;1718:34;2113:12;;;1765:366;2772:214;2637:4;2626:16;;2725:35;;2899:2;2884:18;;2912:67;2654:112;2772:214;636:4081:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@SFRXETH_5635":{"entryPoint":null,"id":5635,"parameterSlots":0,"returnSlots":0},"@SFRXETH_FRAX_ORACLE_5632":{"entryPoint":null,"id":5632,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_1976":{"entryPoint":1712,"id":1976,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_1988":{"entryPoint":2049,"id":1988,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_129":{"entryPoint":2003,"id":129,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":2087,"id":248,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_2079":{"entryPoint":1767,"id":2079,"parameterSlots":1,"returnSlots":0},"@_checkOwner_279":{"entryPoint":1480,"id":279,"parameterSlots":0,"returnSlots":0},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_2049":{"entryPoint":1522,"id":2049,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_181":{"entryPoint":1687,"id":181,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_336":{"entryPoint":1922,"id":336,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_203":{"entryPoint":981,"id":203,"parameterSlots":0,"returnSlots":0},"@accessControlManager_2011":{"entryPoint":null,"id":2011,"parameterSlots":0,"returnSlots":1},"@ensureNonzeroValue_2180":{"entryPoint":1655,"id":2180,"parameterSlots":1,"returnSlots":0},"@getPrice_5811":{"entryPoint":526,"id":5811,"parameterSlots":1,"returnSlots":1},"@initialize_5707":{"entryPoint":1043,"id":5707,"parameterSlots":2,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@maxAllowedPriceDifference_5638":{"entryPoint":null,"id":5638,"parameterSlots":0,"returnSlots":0},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@pendingOwner_144":{"entryPoint":null,"id":144,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_293":{"entryPoint":962,"id":293,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_2001":{"entryPoint":506,"id":2001,"parameterSlots":1,"returnSlots":0},"@setMaxAllowedPriceDifference_5731":{"entryPoint":1261,"id":5731,"parameterSlots":1,"returnSlots":0},"@transferOwnership_164":{"entryPoint":1367,"id":164,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2171,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":2441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2334,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2182,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2345,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3521,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory":{"entryPoint":2463,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":2403,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2285,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address_fromStack":{"entryPoint":2256,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":3126,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3440,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":2938,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack":{"entryPoint":3234,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":3026,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":3342,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2308,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2294,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":3315,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3551,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3489,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ISfrxEthFraxOracle_$3595__to_t_address__fromStack_reversed":{"entryPoint":2271,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":3135,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3010,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3299,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3100,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3176,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3413,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2314,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":3149,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2919,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2869,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2559,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":2830,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2631,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2888,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2134,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address":{"entryPoint":2246,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":3116,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2236,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":2220,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3429,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2539,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2849,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2152,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":2433,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2328,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:18115:101","nodeType":"YulBlock","src":"0:18115:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"907:263:101","nodeType":"YulBlock","src":"907:263:101","statements":[{"body":{"nativeSrc":"953:83:101","nodeType":"YulBlock","src":"953:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:101","nodeType":"YulIdentifier","src":"955:77:101"},"nativeSrc":"955:79:101","nodeType":"YulFunctionCall","src":"955:79:101"},"nativeSrc":"955:79:101","nodeType":"YulExpressionStatement","src":"955:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:101","nodeType":"YulIdentifier","src":"928:7:101"},{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulIdentifier","src":"937:9:101"}],"functionName":{"name":"sub","nativeSrc":"924:3:101","nodeType":"YulIdentifier","src":"924:3:101"},"nativeSrc":"924:23:101","nodeType":"YulFunctionCall","src":"924:23:101"},{"kind":"number","nativeSrc":"949:2:101","nodeType":"YulLiteral","src":"949:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:101","nodeType":"YulIdentifier","src":"920:3:101"},"nativeSrc":"920:32:101","nodeType":"YulFunctionCall","src":"920:32:101"},"nativeSrc":"917:119:101","nodeType":"YulIf","src":"917:119:101"},{"nativeSrc":"1046:117:101","nodeType":"YulBlock","src":"1046:117:101","statements":[{"nativeSrc":"1061:15:101","nodeType":"YulVariableDeclaration","src":"1061:15:101","value":{"kind":"number","nativeSrc":"1075:1:101","nodeType":"YulLiteral","src":"1075:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:101","nodeType":"YulTypedName","src":"1065:6:101","type":""}]},{"nativeSrc":"1090:63:101","nodeType":"YulAssignment","src":"1090:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:101","nodeType":"YulIdentifier","src":"1125:9:101"},{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"add","nativeSrc":"1121:3:101","nodeType":"YulIdentifier","src":"1121:3:101"},"nativeSrc":"1121:22:101","nodeType":"YulFunctionCall","src":"1121:22:101"},{"name":"dataEnd","nativeSrc":"1145:7:101","nodeType":"YulIdentifier","src":"1145:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:101","nodeType":"YulIdentifier","src":"1100:20:101"},"nativeSrc":"1100:53:101","nodeType":"YulFunctionCall","src":"1100:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:101","nodeType":"YulIdentifier","src":"1090:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:101","nodeType":"YulTypedName","src":"877:9:101","type":""},{"name":"dataEnd","nativeSrc":"888:7:101","nodeType":"YulTypedName","src":"888:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:101","nodeType":"YulTypedName","src":"900:6:101","type":""}],"src":"841:329:101"},{"body":{"nativeSrc":"1208:28:101","nodeType":"YulBlock","src":"1208:28:101","statements":[{"nativeSrc":"1218:12:101","nodeType":"YulAssignment","src":"1218:12:101","value":{"name":"value","nativeSrc":"1225:5:101","nodeType":"YulIdentifier","src":"1225:5:101"},"variableNames":[{"name":"ret","nativeSrc":"1218:3:101","nodeType":"YulIdentifier","src":"1218:3:101"}]}]},"name":"identity","nativeSrc":"1176:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1194:5:101","nodeType":"YulTypedName","src":"1194:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1204:3:101","nodeType":"YulTypedName","src":"1204:3:101","type":""}],"src":"1176:60:101"},{"body":{"nativeSrc":"1302:82:101","nodeType":"YulBlock","src":"1302:82:101","statements":[{"nativeSrc":"1312:66:101","nodeType":"YulAssignment","src":"1312:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1370:5:101","nodeType":"YulIdentifier","src":"1370:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1352:17:101","nodeType":"YulIdentifier","src":"1352:17:101"},"nativeSrc":"1352:24:101","nodeType":"YulFunctionCall","src":"1352:24:101"}],"functionName":{"name":"identity","nativeSrc":"1343:8:101","nodeType":"YulIdentifier","src":"1343:8:101"},"nativeSrc":"1343:34:101","nodeType":"YulFunctionCall","src":"1343:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1325:17:101","nodeType":"YulIdentifier","src":"1325:17:101"},"nativeSrc":"1325:53:101","nodeType":"YulFunctionCall","src":"1325:53:101"},"variableNames":[{"name":"converted","nativeSrc":"1312:9:101","nodeType":"YulIdentifier","src":"1312:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1242:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1282:5:101","nodeType":"YulTypedName","src":"1282:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1292:9:101","nodeType":"YulTypedName","src":"1292:9:101","type":""}],"src":"1242:142:101"},{"body":{"nativeSrc":"1450:66:101","nodeType":"YulBlock","src":"1450:66:101","statements":[{"nativeSrc":"1460:50:101","nodeType":"YulAssignment","src":"1460:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1504:5:101","nodeType":"YulIdentifier","src":"1504:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1473:30:101","nodeType":"YulIdentifier","src":"1473:30:101"},"nativeSrc":"1473:37:101","nodeType":"YulFunctionCall","src":"1473:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1460:9:101","nodeType":"YulIdentifier","src":"1460:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"1390:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1430:5:101","nodeType":"YulTypedName","src":"1430:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1440:9:101","nodeType":"YulTypedName","src":"1440:9:101","type":""}],"src":"1390:126:101"},{"body":{"nativeSrc":"1609:66:101","nodeType":"YulBlock","src":"1609:66:101","statements":[{"nativeSrc":"1619:50:101","nodeType":"YulAssignment","src":"1619:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1663:5:101","nodeType":"YulIdentifier","src":"1663:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1632:30:101","nodeType":"YulIdentifier","src":"1632:30:101"},"nativeSrc":"1632:37:101","nodeType":"YulFunctionCall","src":"1632:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1619:9:101","nodeType":"YulIdentifier","src":"1619:9:101"}]}]},"name":"convert_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address","nativeSrc":"1522:153:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1589:5:101","nodeType":"YulTypedName","src":"1589:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1599:9:101","nodeType":"YulTypedName","src":"1599:9:101","type":""}],"src":"1522:153:101"},{"body":{"nativeSrc":"1773:93:101","nodeType":"YulBlock","src":"1773:93:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1790:3:101","nodeType":"YulIdentifier","src":"1790:3:101"},{"arguments":[{"name":"value","nativeSrc":"1853:5:101","nodeType":"YulIdentifier","src":"1853:5:101"}],"functionName":{"name":"convert_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address","nativeSrc":"1795:57:101","nodeType":"YulIdentifier","src":"1795:57:101"},"nativeSrc":"1795:64:101","nodeType":"YulFunctionCall","src":"1795:64:101"}],"functionName":{"name":"mstore","nativeSrc":"1783:6:101","nodeType":"YulIdentifier","src":"1783:6:101"},"nativeSrc":"1783:77:101","nodeType":"YulFunctionCall","src":"1783:77:101"},"nativeSrc":"1783:77:101","nodeType":"YulExpressionStatement","src":"1783:77:101"}]},"name":"abi_encode_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address_fromStack","nativeSrc":"1681:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1761:5:101","nodeType":"YulTypedName","src":"1761:5:101","type":""},{"name":"pos","nativeSrc":"1768:3:101","nodeType":"YulTypedName","src":"1768:3:101","type":""}],"src":"1681:185:101"},{"body":{"nativeSrc":"1997:151:101","nodeType":"YulBlock","src":"1997:151:101","statements":[{"nativeSrc":"2007:26:101","nodeType":"YulAssignment","src":"2007:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2019:9:101","nodeType":"YulIdentifier","src":"2019:9:101"},{"kind":"number","nativeSrc":"2030:2:101","nodeType":"YulLiteral","src":"2030:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2015:3:101","nodeType":"YulIdentifier","src":"2015:3:101"},"nativeSrc":"2015:18:101","nodeType":"YulFunctionCall","src":"2015:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2007:4:101","nodeType":"YulIdentifier","src":"2007:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2114:6:101","nodeType":"YulIdentifier","src":"2114:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2127:9:101","nodeType":"YulIdentifier","src":"2127:9:101"},{"kind":"number","nativeSrc":"2138:1:101","nodeType":"YulLiteral","src":"2138:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2123:3:101","nodeType":"YulIdentifier","src":"2123:3:101"},"nativeSrc":"2123:17:101","nodeType":"YulFunctionCall","src":"2123:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address_fromStack","nativeSrc":"2043:70:101","nodeType":"YulIdentifier","src":"2043:70:101"},"nativeSrc":"2043:98:101","nodeType":"YulFunctionCall","src":"2043:98:101"},"nativeSrc":"2043:98:101","nodeType":"YulExpressionStatement","src":"2043:98:101"}]},"name":"abi_encode_tuple_t_contract$_ISfrxEthFraxOracle_$3595__to_t_address__fromStack_reversed","nativeSrc":"1872:276:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1969:9:101","nodeType":"YulTypedName","src":"1969:9:101","type":""},{"name":"value0","nativeSrc":"1981:6:101","nodeType":"YulTypedName","src":"1981:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1992:4:101","nodeType":"YulTypedName","src":"1992:4:101","type":""}],"src":"1872:276:101"},{"body":{"nativeSrc":"2219:53:101","nodeType":"YulBlock","src":"2219:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2236:3:101","nodeType":"YulIdentifier","src":"2236:3:101"},{"arguments":[{"name":"value","nativeSrc":"2259:5:101","nodeType":"YulIdentifier","src":"2259:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2241:17:101","nodeType":"YulIdentifier","src":"2241:17:101"},"nativeSrc":"2241:24:101","nodeType":"YulFunctionCall","src":"2241:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2229:6:101","nodeType":"YulIdentifier","src":"2229:6:101"},"nativeSrc":"2229:37:101","nodeType":"YulFunctionCall","src":"2229:37:101"},"nativeSrc":"2229:37:101","nodeType":"YulExpressionStatement","src":"2229:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2154:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2207:5:101","nodeType":"YulTypedName","src":"2207:5:101","type":""},{"name":"pos","nativeSrc":"2214:3:101","nodeType":"YulTypedName","src":"2214:3:101","type":""}],"src":"2154:118:101"},{"body":{"nativeSrc":"2376:124:101","nodeType":"YulBlock","src":"2376:124:101","statements":[{"nativeSrc":"2386:26:101","nodeType":"YulAssignment","src":"2386:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2398:9:101","nodeType":"YulIdentifier","src":"2398:9:101"},{"kind":"number","nativeSrc":"2409:2:101","nodeType":"YulLiteral","src":"2409:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2394:3:101","nodeType":"YulIdentifier","src":"2394:3:101"},"nativeSrc":"2394:18:101","nodeType":"YulFunctionCall","src":"2394:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2386:4:101","nodeType":"YulIdentifier","src":"2386:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2466:6:101","nodeType":"YulIdentifier","src":"2466:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2479:9:101","nodeType":"YulIdentifier","src":"2479:9:101"},{"kind":"number","nativeSrc":"2490:1:101","nodeType":"YulLiteral","src":"2490:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2475:3:101","nodeType":"YulIdentifier","src":"2475:3:101"},"nativeSrc":"2475:17:101","nodeType":"YulFunctionCall","src":"2475:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2422:43:101","nodeType":"YulIdentifier","src":"2422:43:101"},"nativeSrc":"2422:71:101","nodeType":"YulFunctionCall","src":"2422:71:101"},"nativeSrc":"2422:71:101","nodeType":"YulExpressionStatement","src":"2422:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2278:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2348:9:101","nodeType":"YulTypedName","src":"2348:9:101","type":""},{"name":"value0","nativeSrc":"2360:6:101","nodeType":"YulTypedName","src":"2360:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2371:4:101","nodeType":"YulTypedName","src":"2371:4:101","type":""}],"src":"2278:222:101"},{"body":{"nativeSrc":"2551:32:101","nodeType":"YulBlock","src":"2551:32:101","statements":[{"nativeSrc":"2561:16:101","nodeType":"YulAssignment","src":"2561:16:101","value":{"name":"value","nativeSrc":"2572:5:101","nodeType":"YulIdentifier","src":"2572:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2561:7:101","nodeType":"YulIdentifier","src":"2561:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2506:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2533:5:101","nodeType":"YulTypedName","src":"2533:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2543:7:101","nodeType":"YulTypedName","src":"2543:7:101","type":""}],"src":"2506:77:101"},{"body":{"nativeSrc":"2654:53:101","nodeType":"YulBlock","src":"2654:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2671:3:101","nodeType":"YulIdentifier","src":"2671:3:101"},{"arguments":[{"name":"value","nativeSrc":"2694:5:101","nodeType":"YulIdentifier","src":"2694:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2676:17:101","nodeType":"YulIdentifier","src":"2676:17:101"},"nativeSrc":"2676:24:101","nodeType":"YulFunctionCall","src":"2676:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2664:6:101","nodeType":"YulIdentifier","src":"2664:6:101"},"nativeSrc":"2664:37:101","nodeType":"YulFunctionCall","src":"2664:37:101"},"nativeSrc":"2664:37:101","nodeType":"YulExpressionStatement","src":"2664:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2589:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2642:5:101","nodeType":"YulTypedName","src":"2642:5:101","type":""},{"name":"pos","nativeSrc":"2649:3:101","nodeType":"YulTypedName","src":"2649:3:101","type":""}],"src":"2589:118:101"},{"body":{"nativeSrc":"2811:124:101","nodeType":"YulBlock","src":"2811:124:101","statements":[{"nativeSrc":"2821:26:101","nodeType":"YulAssignment","src":"2821:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2833:9:101","nodeType":"YulIdentifier","src":"2833:9:101"},{"kind":"number","nativeSrc":"2844:2:101","nodeType":"YulLiteral","src":"2844:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2829:3:101","nodeType":"YulIdentifier","src":"2829:3:101"},"nativeSrc":"2829:18:101","nodeType":"YulFunctionCall","src":"2829:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2821:4:101","nodeType":"YulIdentifier","src":"2821:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2901:6:101","nodeType":"YulIdentifier","src":"2901:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2914:9:101","nodeType":"YulIdentifier","src":"2914:9:101"},{"kind":"number","nativeSrc":"2925:1:101","nodeType":"YulLiteral","src":"2925:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2910:3:101","nodeType":"YulIdentifier","src":"2910:3:101"},"nativeSrc":"2910:17:101","nodeType":"YulFunctionCall","src":"2910:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2857:43:101","nodeType":"YulIdentifier","src":"2857:43:101"},"nativeSrc":"2857:71:101","nodeType":"YulFunctionCall","src":"2857:71:101"},"nativeSrc":"2857:71:101","nodeType":"YulExpressionStatement","src":"2857:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2713:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2783:9:101","nodeType":"YulTypedName","src":"2783:9:101","type":""},{"name":"value0","nativeSrc":"2795:6:101","nodeType":"YulTypedName","src":"2795:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2806:4:101","nodeType":"YulTypedName","src":"2806:4:101","type":""}],"src":"2713:222:101"},{"body":{"nativeSrc":"3033:66:101","nodeType":"YulBlock","src":"3033:66:101","statements":[{"nativeSrc":"3043:50:101","nodeType":"YulAssignment","src":"3043:50:101","value":{"arguments":[{"name":"value","nativeSrc":"3087:5:101","nodeType":"YulIdentifier","src":"3087:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3056:30:101","nodeType":"YulIdentifier","src":"3056:30:101"},"nativeSrc":"3056:37:101","nodeType":"YulFunctionCall","src":"3056:37:101"},"variableNames":[{"name":"converted","nativeSrc":"3043:9:101","nodeType":"YulIdentifier","src":"3043:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2941:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3013:5:101","nodeType":"YulTypedName","src":"3013:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3023:9:101","nodeType":"YulTypedName","src":"3023:9:101","type":""}],"src":"2941:158:101"},{"body":{"nativeSrc":"3202:98:101","nodeType":"YulBlock","src":"3202:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3219:3:101","nodeType":"YulIdentifier","src":"3219:3:101"},{"arguments":[{"name":"value","nativeSrc":"3287:5:101","nodeType":"YulIdentifier","src":"3287:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"3224:62:101","nodeType":"YulIdentifier","src":"3224:62:101"},"nativeSrc":"3224:69:101","nodeType":"YulFunctionCall","src":"3224:69:101"}],"functionName":{"name":"mstore","nativeSrc":"3212:6:101","nodeType":"YulIdentifier","src":"3212:6:101"},"nativeSrc":"3212:82:101","nodeType":"YulFunctionCall","src":"3212:82:101"},"nativeSrc":"3212:82:101","nodeType":"YulExpressionStatement","src":"3212:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"3105:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3190:5:101","nodeType":"YulTypedName","src":"3190:5:101","type":""},{"name":"pos","nativeSrc":"3197:3:101","nodeType":"YulTypedName","src":"3197:3:101","type":""}],"src":"3105:195:101"},{"body":{"nativeSrc":"3436:156:101","nodeType":"YulBlock","src":"3436:156:101","statements":[{"nativeSrc":"3446:26:101","nodeType":"YulAssignment","src":"3446:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3458:9:101","nodeType":"YulIdentifier","src":"3458:9:101"},{"kind":"number","nativeSrc":"3469:2:101","nodeType":"YulLiteral","src":"3469:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3454:3:101","nodeType":"YulIdentifier","src":"3454:3:101"},"nativeSrc":"3454:18:101","nodeType":"YulFunctionCall","src":"3454:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3446:4:101","nodeType":"YulIdentifier","src":"3446:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3558:6:101","nodeType":"YulIdentifier","src":"3558:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3571:9:101","nodeType":"YulIdentifier","src":"3571:9:101"},{"kind":"number","nativeSrc":"3582:1:101","nodeType":"YulLiteral","src":"3582:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3567:3:101","nodeType":"YulIdentifier","src":"3567:3:101"},"nativeSrc":"3567:17:101","nodeType":"YulFunctionCall","src":"3567:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"3482:75:101","nodeType":"YulIdentifier","src":"3482:75:101"},"nativeSrc":"3482:103:101","nodeType":"YulFunctionCall","src":"3482:103:101"},"nativeSrc":"3482:103:101","nodeType":"YulExpressionStatement","src":"3482:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"3306:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3408:9:101","nodeType":"YulTypedName","src":"3408:9:101","type":""},{"name":"value0","nativeSrc":"3420:6:101","nodeType":"YulTypedName","src":"3420:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3431:4:101","nodeType":"YulTypedName","src":"3431:4:101","type":""}],"src":"3306:286:101"},{"body":{"nativeSrc":"3641:79:101","nodeType":"YulBlock","src":"3641:79:101","statements":[{"body":{"nativeSrc":"3698:16:101","nodeType":"YulBlock","src":"3698:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3707:1:101","nodeType":"YulLiteral","src":"3707:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3710:1:101","nodeType":"YulLiteral","src":"3710:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3700:6:101","nodeType":"YulIdentifier","src":"3700:6:101"},"nativeSrc":"3700:12:101","nodeType":"YulFunctionCall","src":"3700:12:101"},"nativeSrc":"3700:12:101","nodeType":"YulExpressionStatement","src":"3700:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3664:5:101","nodeType":"YulIdentifier","src":"3664:5:101"},{"arguments":[{"name":"value","nativeSrc":"3689:5:101","nodeType":"YulIdentifier","src":"3689:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3671:17:101","nodeType":"YulIdentifier","src":"3671:17:101"},"nativeSrc":"3671:24:101","nodeType":"YulFunctionCall","src":"3671:24:101"}],"functionName":{"name":"eq","nativeSrc":"3661:2:101","nodeType":"YulIdentifier","src":"3661:2:101"},"nativeSrc":"3661:35:101","nodeType":"YulFunctionCall","src":"3661:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3654:6:101","nodeType":"YulIdentifier","src":"3654:6:101"},"nativeSrc":"3654:43:101","nodeType":"YulFunctionCall","src":"3654:43:101"},"nativeSrc":"3651:63:101","nodeType":"YulIf","src":"3651:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"3598:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3634:5:101","nodeType":"YulTypedName","src":"3634:5:101","type":""}],"src":"3598:122:101"},{"body":{"nativeSrc":"3778:87:101","nodeType":"YulBlock","src":"3778:87:101","statements":[{"nativeSrc":"3788:29:101","nodeType":"YulAssignment","src":"3788:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3810:6:101","nodeType":"YulIdentifier","src":"3810:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3797:12:101","nodeType":"YulIdentifier","src":"3797:12:101"},"nativeSrc":"3797:20:101","nodeType":"YulFunctionCall","src":"3797:20:101"},"variableNames":[{"name":"value","nativeSrc":"3788:5:101","nodeType":"YulIdentifier","src":"3788:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3853:5:101","nodeType":"YulIdentifier","src":"3853:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3826:26:101","nodeType":"YulIdentifier","src":"3826:26:101"},"nativeSrc":"3826:33:101","nodeType":"YulFunctionCall","src":"3826:33:101"},"nativeSrc":"3826:33:101","nodeType":"YulExpressionStatement","src":"3826:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3726:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3756:6:101","nodeType":"YulTypedName","src":"3756:6:101","type":""},{"name":"end","nativeSrc":"3764:3:101","nodeType":"YulTypedName","src":"3764:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3772:5:101","nodeType":"YulTypedName","src":"3772:5:101","type":""}],"src":"3726:139:101"},{"body":{"nativeSrc":"3954:391:101","nodeType":"YulBlock","src":"3954:391:101","statements":[{"body":{"nativeSrc":"4000:83:101","nodeType":"YulBlock","src":"4000:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4002:77:101","nodeType":"YulIdentifier","src":"4002:77:101"},"nativeSrc":"4002:79:101","nodeType":"YulFunctionCall","src":"4002:79:101"},"nativeSrc":"4002:79:101","nodeType":"YulExpressionStatement","src":"4002:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3975:7:101","nodeType":"YulIdentifier","src":"3975:7:101"},{"name":"headStart","nativeSrc":"3984:9:101","nodeType":"YulIdentifier","src":"3984:9:101"}],"functionName":{"name":"sub","nativeSrc":"3971:3:101","nodeType":"YulIdentifier","src":"3971:3:101"},"nativeSrc":"3971:23:101","nodeType":"YulFunctionCall","src":"3971:23:101"},{"kind":"number","nativeSrc":"3996:2:101","nodeType":"YulLiteral","src":"3996:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3967:3:101","nodeType":"YulIdentifier","src":"3967:3:101"},"nativeSrc":"3967:32:101","nodeType":"YulFunctionCall","src":"3967:32:101"},"nativeSrc":"3964:119:101","nodeType":"YulIf","src":"3964:119:101"},{"nativeSrc":"4093:117:101","nodeType":"YulBlock","src":"4093:117:101","statements":[{"nativeSrc":"4108:15:101","nodeType":"YulVariableDeclaration","src":"4108:15:101","value":{"kind":"number","nativeSrc":"4122:1:101","nodeType":"YulLiteral","src":"4122:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4112:6:101","nodeType":"YulTypedName","src":"4112:6:101","type":""}]},{"nativeSrc":"4137:63:101","nodeType":"YulAssignment","src":"4137:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4172:9:101","nodeType":"YulIdentifier","src":"4172:9:101"},{"name":"offset","nativeSrc":"4183:6:101","nodeType":"YulIdentifier","src":"4183:6:101"}],"functionName":{"name":"add","nativeSrc":"4168:3:101","nodeType":"YulIdentifier","src":"4168:3:101"},"nativeSrc":"4168:22:101","nodeType":"YulFunctionCall","src":"4168:22:101"},{"name":"dataEnd","nativeSrc":"4192:7:101","nodeType":"YulIdentifier","src":"4192:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4147:20:101","nodeType":"YulIdentifier","src":"4147:20:101"},"nativeSrc":"4147:53:101","nodeType":"YulFunctionCall","src":"4147:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4137:6:101","nodeType":"YulIdentifier","src":"4137:6:101"}]}]},{"nativeSrc":"4220:118:101","nodeType":"YulBlock","src":"4220:118:101","statements":[{"nativeSrc":"4235:16:101","nodeType":"YulVariableDeclaration","src":"4235:16:101","value":{"kind":"number","nativeSrc":"4249:2:101","nodeType":"YulLiteral","src":"4249:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4239:6:101","nodeType":"YulTypedName","src":"4239:6:101","type":""}]},{"nativeSrc":"4265:63:101","nodeType":"YulAssignment","src":"4265:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4300:9:101","nodeType":"YulIdentifier","src":"4300:9:101"},{"name":"offset","nativeSrc":"4311:6:101","nodeType":"YulIdentifier","src":"4311:6:101"}],"functionName":{"name":"add","nativeSrc":"4296:3:101","nodeType":"YulIdentifier","src":"4296:3:101"},"nativeSrc":"4296:22:101","nodeType":"YulFunctionCall","src":"4296:22:101"},{"name":"dataEnd","nativeSrc":"4320:7:101","nodeType":"YulIdentifier","src":"4320:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4275:20:101","nodeType":"YulIdentifier","src":"4275:20:101"},"nativeSrc":"4275:53:101","nodeType":"YulFunctionCall","src":"4275:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4265:6:101","nodeType":"YulIdentifier","src":"4265:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"3871:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3916:9:101","nodeType":"YulTypedName","src":"3916:9:101","type":""},{"name":"dataEnd","nativeSrc":"3927:7:101","nodeType":"YulTypedName","src":"3927:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3939:6:101","nodeType":"YulTypedName","src":"3939:6:101","type":""},{"name":"value1","nativeSrc":"3947:6:101","nodeType":"YulTypedName","src":"3947:6:101","type":""}],"src":"3871:474:101"},{"body":{"nativeSrc":"4417:263:101","nodeType":"YulBlock","src":"4417:263:101","statements":[{"body":{"nativeSrc":"4463:83:101","nodeType":"YulBlock","src":"4463:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4465:77:101","nodeType":"YulIdentifier","src":"4465:77:101"},"nativeSrc":"4465:79:101","nodeType":"YulFunctionCall","src":"4465:79:101"},"nativeSrc":"4465:79:101","nodeType":"YulExpressionStatement","src":"4465:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4438:7:101","nodeType":"YulIdentifier","src":"4438:7:101"},{"name":"headStart","nativeSrc":"4447:9:101","nodeType":"YulIdentifier","src":"4447:9:101"}],"functionName":{"name":"sub","nativeSrc":"4434:3:101","nodeType":"YulIdentifier","src":"4434:3:101"},"nativeSrc":"4434:23:101","nodeType":"YulFunctionCall","src":"4434:23:101"},{"kind":"number","nativeSrc":"4459:2:101","nodeType":"YulLiteral","src":"4459:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4430:3:101","nodeType":"YulIdentifier","src":"4430:3:101"},"nativeSrc":"4430:32:101","nodeType":"YulFunctionCall","src":"4430:32:101"},"nativeSrc":"4427:119:101","nodeType":"YulIf","src":"4427:119:101"},{"nativeSrc":"4556:117:101","nodeType":"YulBlock","src":"4556:117:101","statements":[{"nativeSrc":"4571:15:101","nodeType":"YulVariableDeclaration","src":"4571:15:101","value":{"kind":"number","nativeSrc":"4585:1:101","nodeType":"YulLiteral","src":"4585:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4575:6:101","nodeType":"YulTypedName","src":"4575:6:101","type":""}]},{"nativeSrc":"4600:63:101","nodeType":"YulAssignment","src":"4600:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4635:9:101","nodeType":"YulIdentifier","src":"4635:9:101"},{"name":"offset","nativeSrc":"4646:6:101","nodeType":"YulIdentifier","src":"4646:6:101"}],"functionName":{"name":"add","nativeSrc":"4631:3:101","nodeType":"YulIdentifier","src":"4631:3:101"},"nativeSrc":"4631:22:101","nodeType":"YulFunctionCall","src":"4631:22:101"},{"name":"dataEnd","nativeSrc":"4655:7:101","nodeType":"YulIdentifier","src":"4655:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4610:20:101","nodeType":"YulIdentifier","src":"4610:20:101"},"nativeSrc":"4610:53:101","nodeType":"YulFunctionCall","src":"4610:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4600:6:101","nodeType":"YulIdentifier","src":"4600:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"4351:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4387:9:101","nodeType":"YulTypedName","src":"4387:9:101","type":""},{"name":"dataEnd","nativeSrc":"4398:7:101","nodeType":"YulTypedName","src":"4398:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4410:6:101","nodeType":"YulTypedName","src":"4410:6:101","type":""}],"src":"4351:329:101"},{"body":{"nativeSrc":"4728:48:101","nodeType":"YulBlock","src":"4728:48:101","statements":[{"nativeSrc":"4738:32:101","nodeType":"YulAssignment","src":"4738:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4763:5:101","nodeType":"YulIdentifier","src":"4763:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4756:6:101","nodeType":"YulIdentifier","src":"4756:6:101"},"nativeSrc":"4756:13:101","nodeType":"YulFunctionCall","src":"4756:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4749:6:101","nodeType":"YulIdentifier","src":"4749:6:101"},"nativeSrc":"4749:21:101","nodeType":"YulFunctionCall","src":"4749:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4738:7:101","nodeType":"YulIdentifier","src":"4738:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4686:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4710:5:101","nodeType":"YulTypedName","src":"4710:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4720:7:101","nodeType":"YulTypedName","src":"4720:7:101","type":""}],"src":"4686:90:101"},{"body":{"nativeSrc":"4822:76:101","nodeType":"YulBlock","src":"4822:76:101","statements":[{"body":{"nativeSrc":"4876:16:101","nodeType":"YulBlock","src":"4876:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4885:1:101","nodeType":"YulLiteral","src":"4885:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4888:1:101","nodeType":"YulLiteral","src":"4888:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4878:6:101","nodeType":"YulIdentifier","src":"4878:6:101"},"nativeSrc":"4878:12:101","nodeType":"YulFunctionCall","src":"4878:12:101"},"nativeSrc":"4878:12:101","nodeType":"YulExpressionStatement","src":"4878:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4845:5:101","nodeType":"YulIdentifier","src":"4845:5:101"},{"arguments":[{"name":"value","nativeSrc":"4867:5:101","nodeType":"YulIdentifier","src":"4867:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4852:14:101","nodeType":"YulIdentifier","src":"4852:14:101"},"nativeSrc":"4852:21:101","nodeType":"YulFunctionCall","src":"4852:21:101"}],"functionName":{"name":"eq","nativeSrc":"4842:2:101","nodeType":"YulIdentifier","src":"4842:2:101"},"nativeSrc":"4842:32:101","nodeType":"YulFunctionCall","src":"4842:32:101"}],"functionName":{"name":"iszero","nativeSrc":"4835:6:101","nodeType":"YulIdentifier","src":"4835:6:101"},"nativeSrc":"4835:40:101","nodeType":"YulFunctionCall","src":"4835:40:101"},"nativeSrc":"4832:60:101","nodeType":"YulIf","src":"4832:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"4782:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4815:5:101","nodeType":"YulTypedName","src":"4815:5:101","type":""}],"src":"4782:116:101"},{"body":{"nativeSrc":"4964:77:101","nodeType":"YulBlock","src":"4964:77:101","statements":[{"nativeSrc":"4974:22:101","nodeType":"YulAssignment","src":"4974:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"4989:6:101","nodeType":"YulIdentifier","src":"4989:6:101"}],"functionName":{"name":"mload","nativeSrc":"4983:5:101","nodeType":"YulIdentifier","src":"4983:5:101"},"nativeSrc":"4983:13:101","nodeType":"YulFunctionCall","src":"4983:13:101"},"variableNames":[{"name":"value","nativeSrc":"4974:5:101","nodeType":"YulIdentifier","src":"4974:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5029:5:101","nodeType":"YulIdentifier","src":"5029:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"5005:23:101","nodeType":"YulIdentifier","src":"5005:23:101"},"nativeSrc":"5005:30:101","nodeType":"YulFunctionCall","src":"5005:30:101"},"nativeSrc":"5005:30:101","nodeType":"YulExpressionStatement","src":"5005:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"4904:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4942:6:101","nodeType":"YulTypedName","src":"4942:6:101","type":""},{"name":"end","nativeSrc":"4950:3:101","nodeType":"YulTypedName","src":"4950:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4958:5:101","nodeType":"YulTypedName","src":"4958:5:101","type":""}],"src":"4904:137:101"},{"body":{"nativeSrc":"5110:80:101","nodeType":"YulBlock","src":"5110:80:101","statements":[{"nativeSrc":"5120:22:101","nodeType":"YulAssignment","src":"5120:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"5135:6:101","nodeType":"YulIdentifier","src":"5135:6:101"}],"functionName":{"name":"mload","nativeSrc":"5129:5:101","nodeType":"YulIdentifier","src":"5129:5:101"},"nativeSrc":"5129:13:101","nodeType":"YulFunctionCall","src":"5129:13:101"},"variableNames":[{"name":"value","nativeSrc":"5120:5:101","nodeType":"YulIdentifier","src":"5120:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5178:5:101","nodeType":"YulIdentifier","src":"5178:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"5151:26:101","nodeType":"YulIdentifier","src":"5151:26:101"},"nativeSrc":"5151:33:101","nodeType":"YulFunctionCall","src":"5151:33:101"},"nativeSrc":"5151:33:101","nodeType":"YulExpressionStatement","src":"5151:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"5047:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5088:6:101","nodeType":"YulTypedName","src":"5088:6:101","type":""},{"name":"end","nativeSrc":"5096:3:101","nodeType":"YulTypedName","src":"5096:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5104:5:101","nodeType":"YulTypedName","src":"5104:5:101","type":""}],"src":"5047:143:101"},{"body":{"nativeSrc":"5304:549:101","nodeType":"YulBlock","src":"5304:549:101","statements":[{"body":{"nativeSrc":"5350:83:101","nodeType":"YulBlock","src":"5350:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5352:77:101","nodeType":"YulIdentifier","src":"5352:77:101"},"nativeSrc":"5352:79:101","nodeType":"YulFunctionCall","src":"5352:79:101"},"nativeSrc":"5352:79:101","nodeType":"YulExpressionStatement","src":"5352:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5325:7:101","nodeType":"YulIdentifier","src":"5325:7:101"},{"name":"headStart","nativeSrc":"5334:9:101","nodeType":"YulIdentifier","src":"5334:9:101"}],"functionName":{"name":"sub","nativeSrc":"5321:3:101","nodeType":"YulIdentifier","src":"5321:3:101"},"nativeSrc":"5321:23:101","nodeType":"YulFunctionCall","src":"5321:23:101"},{"kind":"number","nativeSrc":"5346:2:101","nodeType":"YulLiteral","src":"5346:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5317:3:101","nodeType":"YulIdentifier","src":"5317:3:101"},"nativeSrc":"5317:32:101","nodeType":"YulFunctionCall","src":"5317:32:101"},"nativeSrc":"5314:119:101","nodeType":"YulIf","src":"5314:119:101"},{"nativeSrc":"5443:125:101","nodeType":"YulBlock","src":"5443:125:101","statements":[{"nativeSrc":"5458:15:101","nodeType":"YulVariableDeclaration","src":"5458:15:101","value":{"kind":"number","nativeSrc":"5472:1:101","nodeType":"YulLiteral","src":"5472:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5462:6:101","nodeType":"YulTypedName","src":"5462:6:101","type":""}]},{"nativeSrc":"5487:71:101","nodeType":"YulAssignment","src":"5487:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5530:9:101","nodeType":"YulIdentifier","src":"5530:9:101"},{"name":"offset","nativeSrc":"5541:6:101","nodeType":"YulIdentifier","src":"5541:6:101"}],"functionName":{"name":"add","nativeSrc":"5526:3:101","nodeType":"YulIdentifier","src":"5526:3:101"},"nativeSrc":"5526:22:101","nodeType":"YulFunctionCall","src":"5526:22:101"},{"name":"dataEnd","nativeSrc":"5550:7:101","nodeType":"YulIdentifier","src":"5550:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"5497:28:101","nodeType":"YulIdentifier","src":"5497:28:101"},"nativeSrc":"5497:61:101","nodeType":"YulFunctionCall","src":"5497:61:101"},"variableNames":[{"name":"value0","nativeSrc":"5487:6:101","nodeType":"YulIdentifier","src":"5487:6:101"}]}]},{"nativeSrc":"5578:129:101","nodeType":"YulBlock","src":"5578:129:101","statements":[{"nativeSrc":"5593:16:101","nodeType":"YulVariableDeclaration","src":"5593:16:101","value":{"kind":"number","nativeSrc":"5607:2:101","nodeType":"YulLiteral","src":"5607:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5597:6:101","nodeType":"YulTypedName","src":"5597:6:101","type":""}]},{"nativeSrc":"5623:74:101","nodeType":"YulAssignment","src":"5623:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5669:9:101","nodeType":"YulIdentifier","src":"5669:9:101"},{"name":"offset","nativeSrc":"5680:6:101","nodeType":"YulIdentifier","src":"5680:6:101"}],"functionName":{"name":"add","nativeSrc":"5665:3:101","nodeType":"YulIdentifier","src":"5665:3:101"},"nativeSrc":"5665:22:101","nodeType":"YulFunctionCall","src":"5665:22:101"},{"name":"dataEnd","nativeSrc":"5689:7:101","nodeType":"YulIdentifier","src":"5689:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"5633:31:101","nodeType":"YulIdentifier","src":"5633:31:101"},"nativeSrc":"5633:64:101","nodeType":"YulFunctionCall","src":"5633:64:101"},"variableNames":[{"name":"value1","nativeSrc":"5623:6:101","nodeType":"YulIdentifier","src":"5623:6:101"}]}]},{"nativeSrc":"5717:129:101","nodeType":"YulBlock","src":"5717:129:101","statements":[{"nativeSrc":"5732:16:101","nodeType":"YulVariableDeclaration","src":"5732:16:101","value":{"kind":"number","nativeSrc":"5746:2:101","nodeType":"YulLiteral","src":"5746:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5736:6:101","nodeType":"YulTypedName","src":"5736:6:101","type":""}]},{"nativeSrc":"5762:74:101","nodeType":"YulAssignment","src":"5762:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5808:9:101","nodeType":"YulIdentifier","src":"5808:9:101"},{"name":"offset","nativeSrc":"5819:6:101","nodeType":"YulIdentifier","src":"5819:6:101"}],"functionName":{"name":"add","nativeSrc":"5804:3:101","nodeType":"YulIdentifier","src":"5804:3:101"},"nativeSrc":"5804:22:101","nodeType":"YulFunctionCall","src":"5804:22:101"},{"name":"dataEnd","nativeSrc":"5828:7:101","nodeType":"YulIdentifier","src":"5828:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"5772:31:101","nodeType":"YulIdentifier","src":"5772:31:101"},"nativeSrc":"5772:64:101","nodeType":"YulFunctionCall","src":"5772:64:101"},"variableNames":[{"name":"value2","nativeSrc":"5762:6:101","nodeType":"YulIdentifier","src":"5762:6:101"}]}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nativeSrc":"5196:657:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5258:9:101","nodeType":"YulTypedName","src":"5258:9:101","type":""},{"name":"dataEnd","nativeSrc":"5269:7:101","nodeType":"YulTypedName","src":"5269:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5281:6:101","nodeType":"YulTypedName","src":"5281:6:101","type":""},{"name":"value1","nativeSrc":"5289:6:101","nodeType":"YulTypedName","src":"5289:6:101","type":""},{"name":"value2","nativeSrc":"5297:6:101","nodeType":"YulTypedName","src":"5297:6:101","type":""}],"src":"5196:657:101"},{"body":{"nativeSrc":"5887:152:101","nodeType":"YulBlock","src":"5887:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5904:1:101","nodeType":"YulLiteral","src":"5904:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5907:77:101","nodeType":"YulLiteral","src":"5907:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5897:6:101","nodeType":"YulIdentifier","src":"5897:6:101"},"nativeSrc":"5897:88:101","nodeType":"YulFunctionCall","src":"5897:88:101"},"nativeSrc":"5897:88:101","nodeType":"YulExpressionStatement","src":"5897:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6001:1:101","nodeType":"YulLiteral","src":"6001:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6004:4:101","nodeType":"YulLiteral","src":"6004:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5994:6:101","nodeType":"YulIdentifier","src":"5994:6:101"},"nativeSrc":"5994:15:101","nodeType":"YulFunctionCall","src":"5994:15:101"},"nativeSrc":"5994:15:101","nodeType":"YulExpressionStatement","src":"5994:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6025:1:101","nodeType":"YulLiteral","src":"6025:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6028:4:101","nodeType":"YulLiteral","src":"6028:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6018:6:101","nodeType":"YulIdentifier","src":"6018:6:101"},"nativeSrc":"6018:15:101","nodeType":"YulFunctionCall","src":"6018:15:101"},"nativeSrc":"6018:15:101","nodeType":"YulExpressionStatement","src":"6018:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5859:180:101","nodeType":"YulFunctionDefinition","src":"5859:180:101"},{"body":{"nativeSrc":"6096:51:101","nodeType":"YulBlock","src":"6096:51:101","statements":[{"nativeSrc":"6106:34:101","nodeType":"YulAssignment","src":"6106:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"6131:1:101","nodeType":"YulLiteral","src":"6131:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"6134:5:101","nodeType":"YulIdentifier","src":"6134:5:101"}],"functionName":{"name":"shr","nativeSrc":"6127:3:101","nodeType":"YulIdentifier","src":"6127:3:101"},"nativeSrc":"6127:13:101","nodeType":"YulFunctionCall","src":"6127:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"6106:8:101","nodeType":"YulIdentifier","src":"6106:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"6045:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6077:5:101","nodeType":"YulTypedName","src":"6077:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6087:8:101","nodeType":"YulTypedName","src":"6087:8:101","type":""}],"src":"6045:102:101"},{"body":{"nativeSrc":"6226:775:101","nodeType":"YulBlock","src":"6226:775:101","statements":[{"nativeSrc":"6236:15:101","nodeType":"YulAssignment","src":"6236:15:101","value":{"name":"_power","nativeSrc":"6245:6:101","nodeType":"YulIdentifier","src":"6245:6:101"},"variableNames":[{"name":"power","nativeSrc":"6236:5:101","nodeType":"YulIdentifier","src":"6236:5:101"}]},{"nativeSrc":"6260:14:101","nodeType":"YulAssignment","src":"6260:14:101","value":{"name":"_base","nativeSrc":"6269:5:101","nodeType":"YulIdentifier","src":"6269:5:101"},"variableNames":[{"name":"base","nativeSrc":"6260:4:101","nodeType":"YulIdentifier","src":"6260:4:101"}]},{"body":{"nativeSrc":"6318:677:101","nodeType":"YulBlock","src":"6318:677:101","statements":[{"body":{"nativeSrc":"6406:22:101","nodeType":"YulBlock","src":"6406:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6408:16:101","nodeType":"YulIdentifier","src":"6408:16:101"},"nativeSrc":"6408:18:101","nodeType":"YulFunctionCall","src":"6408:18:101"},"nativeSrc":"6408:18:101","nodeType":"YulExpressionStatement","src":"6408:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"6384:4:101","nodeType":"YulIdentifier","src":"6384:4:101"},{"arguments":[{"name":"max","nativeSrc":"6394:3:101","nodeType":"YulIdentifier","src":"6394:3:101"},{"name":"base","nativeSrc":"6399:4:101","nodeType":"YulIdentifier","src":"6399:4:101"}],"functionName":{"name":"div","nativeSrc":"6390:3:101","nodeType":"YulIdentifier","src":"6390:3:101"},"nativeSrc":"6390:14:101","nodeType":"YulFunctionCall","src":"6390:14:101"}],"functionName":{"name":"gt","nativeSrc":"6381:2:101","nodeType":"YulIdentifier","src":"6381:2:101"},"nativeSrc":"6381:24:101","nodeType":"YulFunctionCall","src":"6381:24:101"},"nativeSrc":"6378:50:101","nodeType":"YulIf","src":"6378:50:101"},{"body":{"nativeSrc":"6473:419:101","nodeType":"YulBlock","src":"6473:419:101","statements":[{"nativeSrc":"6853:25:101","nodeType":"YulAssignment","src":"6853:25:101","value":{"arguments":[{"name":"power","nativeSrc":"6866:5:101","nodeType":"YulIdentifier","src":"6866:5:101"},{"name":"base","nativeSrc":"6873:4:101","nodeType":"YulIdentifier","src":"6873:4:101"}],"functionName":{"name":"mul","nativeSrc":"6862:3:101","nodeType":"YulIdentifier","src":"6862:3:101"},"nativeSrc":"6862:16:101","nodeType":"YulFunctionCall","src":"6862:16:101"},"variableNames":[{"name":"power","nativeSrc":"6853:5:101","nodeType":"YulIdentifier","src":"6853:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"6448:8:101","nodeType":"YulIdentifier","src":"6448:8:101"},{"kind":"number","nativeSrc":"6458:1:101","nodeType":"YulLiteral","src":"6458:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6444:3:101","nodeType":"YulIdentifier","src":"6444:3:101"},"nativeSrc":"6444:16:101","nodeType":"YulFunctionCall","src":"6444:16:101"},"nativeSrc":"6441:451:101","nodeType":"YulIf","src":"6441:451:101"},{"nativeSrc":"6905:23:101","nodeType":"YulAssignment","src":"6905:23:101","value":{"arguments":[{"name":"base","nativeSrc":"6917:4:101","nodeType":"YulIdentifier","src":"6917:4:101"},{"name":"base","nativeSrc":"6923:4:101","nodeType":"YulIdentifier","src":"6923:4:101"}],"functionName":{"name":"mul","nativeSrc":"6913:3:101","nodeType":"YulIdentifier","src":"6913:3:101"},"nativeSrc":"6913:15:101","nodeType":"YulFunctionCall","src":"6913:15:101"},"variableNames":[{"name":"base","nativeSrc":"6905:4:101","nodeType":"YulIdentifier","src":"6905:4:101"}]},{"nativeSrc":"6941:44:101","nodeType":"YulAssignment","src":"6941:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"6976:8:101","nodeType":"YulIdentifier","src":"6976:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"6953:22:101","nodeType":"YulIdentifier","src":"6953:22:101"},"nativeSrc":"6953:32:101","nodeType":"YulFunctionCall","src":"6953:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"6941:8:101","nodeType":"YulIdentifier","src":"6941:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"6294:8:101","nodeType":"YulIdentifier","src":"6294:8:101"},{"kind":"number","nativeSrc":"6304:1:101","nodeType":"YulLiteral","src":"6304:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"6291:2:101","nodeType":"YulIdentifier","src":"6291:2:101"},"nativeSrc":"6291:15:101","nodeType":"YulFunctionCall","src":"6291:15:101"},"nativeSrc":"6283:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"6307:2:101","nodeType":"YulBlock","src":"6307:2:101","statements":[]},"pre":{"nativeSrc":"6287:3:101","nodeType":"YulBlock","src":"6287:3:101","statements":[]},"src":"6283:712:101"}]},"name":"checked_exp_helper","nativeSrc":"6153:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"6181:6:101","nodeType":"YulTypedName","src":"6181:6:101","type":""},{"name":"_base","nativeSrc":"6189:5:101","nodeType":"YulTypedName","src":"6189:5:101","type":""},{"name":"exponent","nativeSrc":"6196:8:101","nodeType":"YulTypedName","src":"6196:8:101","type":""},{"name":"max","nativeSrc":"6206:3:101","nodeType":"YulTypedName","src":"6206:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"6214:5:101","nodeType":"YulTypedName","src":"6214:5:101","type":""},{"name":"base","nativeSrc":"6221:4:101","nodeType":"YulTypedName","src":"6221:4:101","type":""}],"src":"6153:848:101"},{"body":{"nativeSrc":"7067:1013:101","nodeType":"YulBlock","src":"7067:1013:101","statements":[{"body":{"nativeSrc":"7262:20:101","nodeType":"YulBlock","src":"7262:20:101","statements":[{"nativeSrc":"7264:10:101","nodeType":"YulAssignment","src":"7264:10:101","value":{"kind":"number","nativeSrc":"7273:1:101","nodeType":"YulLiteral","src":"7273:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7264:5:101","nodeType":"YulIdentifier","src":"7264:5:101"}]},{"nativeSrc":"7275:5:101","nodeType":"YulLeave","src":"7275:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7252:8:101","nodeType":"YulIdentifier","src":"7252:8:101"}],"functionName":{"name":"iszero","nativeSrc":"7245:6:101","nodeType":"YulIdentifier","src":"7245:6:101"},"nativeSrc":"7245:16:101","nodeType":"YulFunctionCall","src":"7245:16:101"},"nativeSrc":"7242:40:101","nodeType":"YulIf","src":"7242:40:101"},{"body":{"nativeSrc":"7307:20:101","nodeType":"YulBlock","src":"7307:20:101","statements":[{"nativeSrc":"7309:10:101","nodeType":"YulAssignment","src":"7309:10:101","value":{"kind":"number","nativeSrc":"7318:1:101","nodeType":"YulLiteral","src":"7318:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"7309:5:101","nodeType":"YulIdentifier","src":"7309:5:101"}]},{"nativeSrc":"7320:5:101","nodeType":"YulLeave","src":"7320:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"7301:4:101","nodeType":"YulIdentifier","src":"7301:4:101"}],"functionName":{"name":"iszero","nativeSrc":"7294:6:101","nodeType":"YulIdentifier","src":"7294:6:101"},"nativeSrc":"7294:12:101","nodeType":"YulFunctionCall","src":"7294:12:101"},"nativeSrc":"7291:36:101","nodeType":"YulIf","src":"7291:36:101"},{"cases":[{"body":{"nativeSrc":"7437:20:101","nodeType":"YulBlock","src":"7437:20:101","statements":[{"nativeSrc":"7439:10:101","nodeType":"YulAssignment","src":"7439:10:101","value":{"kind":"number","nativeSrc":"7448:1:101","nodeType":"YulLiteral","src":"7448:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7439:5:101","nodeType":"YulIdentifier","src":"7439:5:101"}]},{"nativeSrc":"7450:5:101","nodeType":"YulLeave","src":"7450:5:101"}]},"nativeSrc":"7430:27:101","nodeType":"YulCase","src":"7430:27:101","value":{"kind":"number","nativeSrc":"7435:1:101","nodeType":"YulLiteral","src":"7435:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"7481:176:101","nodeType":"YulBlock","src":"7481:176:101","statements":[{"body":{"nativeSrc":"7516:22:101","nodeType":"YulBlock","src":"7516:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7518:16:101","nodeType":"YulIdentifier","src":"7518:16:101"},"nativeSrc":"7518:18:101","nodeType":"YulFunctionCall","src":"7518:18:101"},"nativeSrc":"7518:18:101","nodeType":"YulExpressionStatement","src":"7518:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7501:8:101","nodeType":"YulIdentifier","src":"7501:8:101"},{"kind":"number","nativeSrc":"7511:3:101","nodeType":"YulLiteral","src":"7511:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"7498:2:101","nodeType":"YulIdentifier","src":"7498:2:101"},"nativeSrc":"7498:17:101","nodeType":"YulFunctionCall","src":"7498:17:101"},"nativeSrc":"7495:43:101","nodeType":"YulIf","src":"7495:43:101"},{"nativeSrc":"7551:25:101","nodeType":"YulAssignment","src":"7551:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"7564:1:101","nodeType":"YulLiteral","src":"7564:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"7567:8:101","nodeType":"YulIdentifier","src":"7567:8:101"}],"functionName":{"name":"exp","nativeSrc":"7560:3:101","nodeType":"YulIdentifier","src":"7560:3:101"},"nativeSrc":"7560:16:101","nodeType":"YulFunctionCall","src":"7560:16:101"},"variableNames":[{"name":"power","nativeSrc":"7551:5:101","nodeType":"YulIdentifier","src":"7551:5:101"}]},{"body":{"nativeSrc":"7607:22:101","nodeType":"YulBlock","src":"7607:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7609:16:101","nodeType":"YulIdentifier","src":"7609:16:101"},"nativeSrc":"7609:18:101","nodeType":"YulFunctionCall","src":"7609:18:101"},"nativeSrc":"7609:18:101","nodeType":"YulExpressionStatement","src":"7609:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"7595:5:101","nodeType":"YulIdentifier","src":"7595:5:101"},{"name":"max","nativeSrc":"7602:3:101","nodeType":"YulIdentifier","src":"7602:3:101"}],"functionName":{"name":"gt","nativeSrc":"7592:2:101","nodeType":"YulIdentifier","src":"7592:2:101"},"nativeSrc":"7592:14:101","nodeType":"YulFunctionCall","src":"7592:14:101"},"nativeSrc":"7589:40:101","nodeType":"YulIf","src":"7589:40:101"},{"nativeSrc":"7642:5:101","nodeType":"YulLeave","src":"7642:5:101"}]},"nativeSrc":"7466:191:101","nodeType":"YulCase","src":"7466:191:101","value":{"kind":"number","nativeSrc":"7471:1:101","nodeType":"YulLiteral","src":"7471:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"7387:4:101","nodeType":"YulIdentifier","src":"7387:4:101"},"nativeSrc":"7380:277:101","nodeType":"YulSwitch","src":"7380:277:101"},{"body":{"nativeSrc":"7789:123:101","nodeType":"YulBlock","src":"7789:123:101","statements":[{"nativeSrc":"7803:28:101","nodeType":"YulAssignment","src":"7803:28:101","value":{"arguments":[{"name":"base","nativeSrc":"7816:4:101","nodeType":"YulIdentifier","src":"7816:4:101"},{"name":"exponent","nativeSrc":"7822:8:101","nodeType":"YulIdentifier","src":"7822:8:101"}],"functionName":{"name":"exp","nativeSrc":"7812:3:101","nodeType":"YulIdentifier","src":"7812:3:101"},"nativeSrc":"7812:19:101","nodeType":"YulFunctionCall","src":"7812:19:101"},"variableNames":[{"name":"power","nativeSrc":"7803:5:101","nodeType":"YulIdentifier","src":"7803:5:101"}]},{"body":{"nativeSrc":"7862:22:101","nodeType":"YulBlock","src":"7862:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7864:16:101","nodeType":"YulIdentifier","src":"7864:16:101"},"nativeSrc":"7864:18:101","nodeType":"YulFunctionCall","src":"7864:18:101"},"nativeSrc":"7864:18:101","nodeType":"YulExpressionStatement","src":"7864:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"7850:5:101","nodeType":"YulIdentifier","src":"7850:5:101"},{"name":"max","nativeSrc":"7857:3:101","nodeType":"YulIdentifier","src":"7857:3:101"}],"functionName":{"name":"gt","nativeSrc":"7847:2:101","nodeType":"YulIdentifier","src":"7847:2:101"},"nativeSrc":"7847:14:101","nodeType":"YulFunctionCall","src":"7847:14:101"},"nativeSrc":"7844:40:101","nodeType":"YulIf","src":"7844:40:101"},{"nativeSrc":"7897:5:101","nodeType":"YulLeave","src":"7897:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"7692:4:101","nodeType":"YulIdentifier","src":"7692:4:101"},{"kind":"number","nativeSrc":"7698:2:101","nodeType":"YulLiteral","src":"7698:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"7689:2:101","nodeType":"YulIdentifier","src":"7689:2:101"},"nativeSrc":"7689:12:101","nodeType":"YulFunctionCall","src":"7689:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"7706:8:101","nodeType":"YulIdentifier","src":"7706:8:101"},{"kind":"number","nativeSrc":"7716:2:101","nodeType":"YulLiteral","src":"7716:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"7703:2:101","nodeType":"YulIdentifier","src":"7703:2:101"},"nativeSrc":"7703:16:101","nodeType":"YulFunctionCall","src":"7703:16:101"}],"functionName":{"name":"and","nativeSrc":"7685:3:101","nodeType":"YulIdentifier","src":"7685:3:101"},"nativeSrc":"7685:35:101","nodeType":"YulFunctionCall","src":"7685:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"7741:4:101","nodeType":"YulIdentifier","src":"7741:4:101"},{"kind":"number","nativeSrc":"7747:3:101","nodeType":"YulLiteral","src":"7747:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"7738:2:101","nodeType":"YulIdentifier","src":"7738:2:101"},"nativeSrc":"7738:13:101","nodeType":"YulFunctionCall","src":"7738:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"7756:8:101","nodeType":"YulIdentifier","src":"7756:8:101"},{"kind":"number","nativeSrc":"7766:2:101","nodeType":"YulLiteral","src":"7766:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"7753:2:101","nodeType":"YulIdentifier","src":"7753:2:101"},"nativeSrc":"7753:16:101","nodeType":"YulFunctionCall","src":"7753:16:101"}],"functionName":{"name":"and","nativeSrc":"7734:3:101","nodeType":"YulIdentifier","src":"7734:3:101"},"nativeSrc":"7734:36:101","nodeType":"YulFunctionCall","src":"7734:36:101"}],"functionName":{"name":"or","nativeSrc":"7669:2:101","nodeType":"YulIdentifier","src":"7669:2:101"},"nativeSrc":"7669:111:101","nodeType":"YulFunctionCall","src":"7669:111:101"},"nativeSrc":"7666:246:101","nodeType":"YulIf","src":"7666:246:101"},{"nativeSrc":"7922:57:101","nodeType":"YulAssignment","src":"7922:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"7956:1:101","nodeType":"YulLiteral","src":"7956:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"7959:4:101","nodeType":"YulIdentifier","src":"7959:4:101"},{"name":"exponent","nativeSrc":"7965:8:101","nodeType":"YulIdentifier","src":"7965:8:101"},{"name":"max","nativeSrc":"7975:3:101","nodeType":"YulIdentifier","src":"7975:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"7937:18:101","nodeType":"YulIdentifier","src":"7937:18:101"},"nativeSrc":"7937:42:101","nodeType":"YulFunctionCall","src":"7937:42:101"},"variableNames":[{"name":"power","nativeSrc":"7922:5:101","nodeType":"YulIdentifier","src":"7922:5:101"},{"name":"base","nativeSrc":"7929:4:101","nodeType":"YulIdentifier","src":"7929:4:101"}]},{"body":{"nativeSrc":"8018:22:101","nodeType":"YulBlock","src":"8018:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8020:16:101","nodeType":"YulIdentifier","src":"8020:16:101"},"nativeSrc":"8020:18:101","nodeType":"YulFunctionCall","src":"8020:18:101"},"nativeSrc":"8020:18:101","nodeType":"YulExpressionStatement","src":"8020:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"7995:5:101","nodeType":"YulIdentifier","src":"7995:5:101"},{"arguments":[{"name":"max","nativeSrc":"8006:3:101","nodeType":"YulIdentifier","src":"8006:3:101"},{"name":"base","nativeSrc":"8011:4:101","nodeType":"YulIdentifier","src":"8011:4:101"}],"functionName":{"name":"div","nativeSrc":"8002:3:101","nodeType":"YulIdentifier","src":"8002:3:101"},"nativeSrc":"8002:14:101","nodeType":"YulFunctionCall","src":"8002:14:101"}],"functionName":{"name":"gt","nativeSrc":"7992:2:101","nodeType":"YulIdentifier","src":"7992:2:101"},"nativeSrc":"7992:25:101","nodeType":"YulFunctionCall","src":"7992:25:101"},"nativeSrc":"7989:51:101","nodeType":"YulIf","src":"7989:51:101"},{"nativeSrc":"8049:25:101","nodeType":"YulAssignment","src":"8049:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8062:5:101","nodeType":"YulIdentifier","src":"8062:5:101"},{"name":"base","nativeSrc":"8069:4:101","nodeType":"YulIdentifier","src":"8069:4:101"}],"functionName":{"name":"mul","nativeSrc":"8058:3:101","nodeType":"YulIdentifier","src":"8058:3:101"},"nativeSrc":"8058:16:101","nodeType":"YulFunctionCall","src":"8058:16:101"},"variableNames":[{"name":"power","nativeSrc":"8049:5:101","nodeType":"YulIdentifier","src":"8049:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"7007:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"7037:4:101","nodeType":"YulTypedName","src":"7037:4:101","type":""},{"name":"exponent","nativeSrc":"7043:8:101","nodeType":"YulTypedName","src":"7043:8:101","type":""},{"name":"max","nativeSrc":"7053:3:101","nodeType":"YulTypedName","src":"7053:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7061:5:101","nodeType":"YulTypedName","src":"7061:5:101","type":""}],"src":"7007:1073:101"},{"body":{"nativeSrc":"8129:43:101","nodeType":"YulBlock","src":"8129:43:101","statements":[{"nativeSrc":"8139:27:101","nodeType":"YulAssignment","src":"8139:27:101","value":{"arguments":[{"name":"value","nativeSrc":"8154:5:101","nodeType":"YulIdentifier","src":"8154:5:101"},{"kind":"number","nativeSrc":"8161:4:101","nodeType":"YulLiteral","src":"8161:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"8150:3:101","nodeType":"YulIdentifier","src":"8150:3:101"},"nativeSrc":"8150:16:101","nodeType":"YulFunctionCall","src":"8150:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"8139:7:101","nodeType":"YulIdentifier","src":"8139:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"8086:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8111:5:101","nodeType":"YulTypedName","src":"8111:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8121:7:101","nodeType":"YulTypedName","src":"8121:7:101","type":""}],"src":"8086:86:101"},{"body":{"nativeSrc":"8242:217:101","nodeType":"YulBlock","src":"8242:217:101","statements":[{"nativeSrc":"8252:31:101","nodeType":"YulAssignment","src":"8252:31:101","value":{"arguments":[{"name":"base","nativeSrc":"8278:4:101","nodeType":"YulIdentifier","src":"8278:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8260:17:101","nodeType":"YulIdentifier","src":"8260:17:101"},"nativeSrc":"8260:23:101","nodeType":"YulFunctionCall","src":"8260:23:101"},"variableNames":[{"name":"base","nativeSrc":"8252:4:101","nodeType":"YulIdentifier","src":"8252:4:101"}]},{"nativeSrc":"8292:37:101","nodeType":"YulAssignment","src":"8292:37:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8320:8:101","nodeType":"YulIdentifier","src":"8320:8:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"8304:15:101","nodeType":"YulIdentifier","src":"8304:15:101"},"nativeSrc":"8304:25:101","nodeType":"YulFunctionCall","src":"8304:25:101"},"variableNames":[{"name":"exponent","nativeSrc":"8292:8:101","nodeType":"YulIdentifier","src":"8292:8:101"}]},{"nativeSrc":"8339:113:101","nodeType":"YulAssignment","src":"8339:113:101","value":{"arguments":[{"name":"base","nativeSrc":"8369:4:101","nodeType":"YulIdentifier","src":"8369:4:101"},{"name":"exponent","nativeSrc":"8375:8:101","nodeType":"YulIdentifier","src":"8375:8:101"},{"kind":"number","nativeSrc":"8385:66:101","nodeType":"YulLiteral","src":"8385:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"8348:20:101","nodeType":"YulIdentifier","src":"8348:20:101"},"nativeSrc":"8348:104:101","nodeType":"YulFunctionCall","src":"8348:104:101"},"variableNames":[{"name":"power","nativeSrc":"8339:5:101","nodeType":"YulIdentifier","src":"8339:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"8178:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8217:4:101","nodeType":"YulTypedName","src":"8217:4:101","type":""},{"name":"exponent","nativeSrc":"8223:8:101","nodeType":"YulTypedName","src":"8223:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8236:5:101","nodeType":"YulTypedName","src":"8236:5:101","type":""}],"src":"8178:281:101"},{"body":{"nativeSrc":"8493:152:101","nodeType":"YulBlock","src":"8493:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8510:1:101","nodeType":"YulLiteral","src":"8510:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"8513:77:101","nodeType":"YulLiteral","src":"8513:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8503:6:101","nodeType":"YulIdentifier","src":"8503:6:101"},"nativeSrc":"8503:88:101","nodeType":"YulFunctionCall","src":"8503:88:101"},"nativeSrc":"8503:88:101","nodeType":"YulExpressionStatement","src":"8503:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8607:1:101","nodeType":"YulLiteral","src":"8607:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"8610:4:101","nodeType":"YulLiteral","src":"8610:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"8600:6:101","nodeType":"YulIdentifier","src":"8600:6:101"},"nativeSrc":"8600:15:101","nodeType":"YulFunctionCall","src":"8600:15:101"},"nativeSrc":"8600:15:101","nodeType":"YulExpressionStatement","src":"8600:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8631:1:101","nodeType":"YulLiteral","src":"8631:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"8634:4:101","nodeType":"YulLiteral","src":"8634:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8624:6:101","nodeType":"YulIdentifier","src":"8624:6:101"},"nativeSrc":"8624:15:101","nodeType":"YulFunctionCall","src":"8624:15:101"},"nativeSrc":"8624:15:101","nodeType":"YulExpressionStatement","src":"8624:15:101"}]},"name":"panic_error_0x12","nativeSrc":"8465:180:101","nodeType":"YulFunctionDefinition","src":"8465:180:101"},{"body":{"nativeSrc":"8693:143:101","nodeType":"YulBlock","src":"8693:143:101","statements":[{"nativeSrc":"8703:25:101","nodeType":"YulAssignment","src":"8703:25:101","value":{"arguments":[{"name":"x","nativeSrc":"8726:1:101","nodeType":"YulIdentifier","src":"8726:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8708:17:101","nodeType":"YulIdentifier","src":"8708:17:101"},"nativeSrc":"8708:20:101","nodeType":"YulFunctionCall","src":"8708:20:101"},"variableNames":[{"name":"x","nativeSrc":"8703:1:101","nodeType":"YulIdentifier","src":"8703:1:101"}]},{"nativeSrc":"8737:25:101","nodeType":"YulAssignment","src":"8737:25:101","value":{"arguments":[{"name":"y","nativeSrc":"8760:1:101","nodeType":"YulIdentifier","src":"8760:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8742:17:101","nodeType":"YulIdentifier","src":"8742:17:101"},"nativeSrc":"8742:20:101","nodeType":"YulFunctionCall","src":"8742:20:101"},"variableNames":[{"name":"y","nativeSrc":"8737:1:101","nodeType":"YulIdentifier","src":"8737:1:101"}]},{"body":{"nativeSrc":"8784:22:101","nodeType":"YulBlock","src":"8784:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8786:16:101","nodeType":"YulIdentifier","src":"8786:16:101"},"nativeSrc":"8786:18:101","nodeType":"YulFunctionCall","src":"8786:18:101"},"nativeSrc":"8786:18:101","nodeType":"YulExpressionStatement","src":"8786:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8781:1:101","nodeType":"YulIdentifier","src":"8781:1:101"}],"functionName":{"name":"iszero","nativeSrc":"8774:6:101","nodeType":"YulIdentifier","src":"8774:6:101"},"nativeSrc":"8774:9:101","nodeType":"YulFunctionCall","src":"8774:9:101"},"nativeSrc":"8771:35:101","nodeType":"YulIf","src":"8771:35:101"},{"nativeSrc":"8816:14:101","nodeType":"YulAssignment","src":"8816:14:101","value":{"arguments":[{"name":"x","nativeSrc":"8825:1:101","nodeType":"YulIdentifier","src":"8825:1:101"},{"name":"y","nativeSrc":"8828:1:101","nodeType":"YulIdentifier","src":"8828:1:101"}],"functionName":{"name":"div","nativeSrc":"8821:3:101","nodeType":"YulIdentifier","src":"8821:3:101"},"nativeSrc":"8821:9:101","nodeType":"YulFunctionCall","src":"8821:9:101"},"variableNames":[{"name":"r","nativeSrc":"8816:1:101","nodeType":"YulIdentifier","src":"8816:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"8651:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8682:1:101","nodeType":"YulTypedName","src":"8682:1:101","type":""},{"name":"y","nativeSrc":"8685:1:101","nodeType":"YulTypedName","src":"8685:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8691:1:101","nodeType":"YulTypedName","src":"8691:1:101","type":""}],"src":"8651:185:101"},{"body":{"nativeSrc":"8890:362:101","nodeType":"YulBlock","src":"8890:362:101","statements":[{"nativeSrc":"8900:25:101","nodeType":"YulAssignment","src":"8900:25:101","value":{"arguments":[{"name":"x","nativeSrc":"8923:1:101","nodeType":"YulIdentifier","src":"8923:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8905:17:101","nodeType":"YulIdentifier","src":"8905:17:101"},"nativeSrc":"8905:20:101","nodeType":"YulFunctionCall","src":"8905:20:101"},"variableNames":[{"name":"x","nativeSrc":"8900:1:101","nodeType":"YulIdentifier","src":"8900:1:101"}]},{"nativeSrc":"8934:25:101","nodeType":"YulAssignment","src":"8934:25:101","value":{"arguments":[{"name":"y","nativeSrc":"8957:1:101","nodeType":"YulIdentifier","src":"8957:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8939:17:101","nodeType":"YulIdentifier","src":"8939:17:101"},"nativeSrc":"8939:20:101","nodeType":"YulFunctionCall","src":"8939:20:101"},"variableNames":[{"name":"y","nativeSrc":"8934:1:101","nodeType":"YulIdentifier","src":"8934:1:101"}]},{"nativeSrc":"8968:28:101","nodeType":"YulVariableDeclaration","src":"8968:28:101","value":{"arguments":[{"name":"x","nativeSrc":"8991:1:101","nodeType":"YulIdentifier","src":"8991:1:101"},{"name":"y","nativeSrc":"8994:1:101","nodeType":"YulIdentifier","src":"8994:1:101"}],"functionName":{"name":"mul","nativeSrc":"8987:3:101","nodeType":"YulIdentifier","src":"8987:3:101"},"nativeSrc":"8987:9:101","nodeType":"YulFunctionCall","src":"8987:9:101"},"variables":[{"name":"product_raw","nativeSrc":"8972:11:101","nodeType":"YulTypedName","src":"8972:11:101","type":""}]},{"nativeSrc":"9005:41:101","nodeType":"YulAssignment","src":"9005:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"9034:11:101","nodeType":"YulIdentifier","src":"9034:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9016:17:101","nodeType":"YulIdentifier","src":"9016:17:101"},"nativeSrc":"9016:30:101","nodeType":"YulFunctionCall","src":"9016:30:101"},"variableNames":[{"name":"product","nativeSrc":"9005:7:101","nodeType":"YulIdentifier","src":"9005:7:101"}]},{"body":{"nativeSrc":"9223:22:101","nodeType":"YulBlock","src":"9223:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9225:16:101","nodeType":"YulIdentifier","src":"9225:16:101"},"nativeSrc":"9225:18:101","nodeType":"YulFunctionCall","src":"9225:18:101"},"nativeSrc":"9225:18:101","nodeType":"YulExpressionStatement","src":"9225:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"9156:1:101","nodeType":"YulIdentifier","src":"9156:1:101"}],"functionName":{"name":"iszero","nativeSrc":"9149:6:101","nodeType":"YulIdentifier","src":"9149:6:101"},"nativeSrc":"9149:9:101","nodeType":"YulFunctionCall","src":"9149:9:101"},{"arguments":[{"name":"y","nativeSrc":"9179:1:101","nodeType":"YulIdentifier","src":"9179:1:101"},{"arguments":[{"name":"product","nativeSrc":"9186:7:101","nodeType":"YulIdentifier","src":"9186:7:101"},{"name":"x","nativeSrc":"9195:1:101","nodeType":"YulIdentifier","src":"9195:1:101"}],"functionName":{"name":"div","nativeSrc":"9182:3:101","nodeType":"YulIdentifier","src":"9182:3:101"},"nativeSrc":"9182:15:101","nodeType":"YulFunctionCall","src":"9182:15:101"}],"functionName":{"name":"eq","nativeSrc":"9176:2:101","nodeType":"YulIdentifier","src":"9176:2:101"},"nativeSrc":"9176:22:101","nodeType":"YulFunctionCall","src":"9176:22:101"}],"functionName":{"name":"or","nativeSrc":"9129:2:101","nodeType":"YulIdentifier","src":"9129:2:101"},"nativeSrc":"9129:83:101","nodeType":"YulFunctionCall","src":"9129:83:101"}],"functionName":{"name":"iszero","nativeSrc":"9109:6:101","nodeType":"YulIdentifier","src":"9109:6:101"},"nativeSrc":"9109:113:101","nodeType":"YulFunctionCall","src":"9109:113:101"},"nativeSrc":"9106:139:101","nodeType":"YulIf","src":"9106:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"8842:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8873:1:101","nodeType":"YulTypedName","src":"8873:1:101","type":""},{"name":"y","nativeSrc":"8876:1:101","nodeType":"YulTypedName","src":"8876:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"8882:7:101","nodeType":"YulTypedName","src":"8882:7:101","type":""}],"src":"8842:410:101"},{"body":{"nativeSrc":"9302:147:101","nodeType":"YulBlock","src":"9302:147:101","statements":[{"nativeSrc":"9312:25:101","nodeType":"YulAssignment","src":"9312:25:101","value":{"arguments":[{"name":"x","nativeSrc":"9335:1:101","nodeType":"YulIdentifier","src":"9335:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9317:17:101","nodeType":"YulIdentifier","src":"9317:17:101"},"nativeSrc":"9317:20:101","nodeType":"YulFunctionCall","src":"9317:20:101"},"variableNames":[{"name":"x","nativeSrc":"9312:1:101","nodeType":"YulIdentifier","src":"9312:1:101"}]},{"nativeSrc":"9346:25:101","nodeType":"YulAssignment","src":"9346:25:101","value":{"arguments":[{"name":"y","nativeSrc":"9369:1:101","nodeType":"YulIdentifier","src":"9369:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9351:17:101","nodeType":"YulIdentifier","src":"9351:17:101"},"nativeSrc":"9351:20:101","nodeType":"YulFunctionCall","src":"9351:20:101"},"variableNames":[{"name":"y","nativeSrc":"9346:1:101","nodeType":"YulIdentifier","src":"9346:1:101"}]},{"nativeSrc":"9380:16:101","nodeType":"YulAssignment","src":"9380:16:101","value":{"arguments":[{"name":"x","nativeSrc":"9391:1:101","nodeType":"YulIdentifier","src":"9391:1:101"},{"name":"y","nativeSrc":"9394:1:101","nodeType":"YulIdentifier","src":"9394:1:101"}],"functionName":{"name":"add","nativeSrc":"9387:3:101","nodeType":"YulIdentifier","src":"9387:3:101"},"nativeSrc":"9387:9:101","nodeType":"YulFunctionCall","src":"9387:9:101"},"variableNames":[{"name":"sum","nativeSrc":"9380:3:101","nodeType":"YulIdentifier","src":"9380:3:101"}]},{"body":{"nativeSrc":"9420:22:101","nodeType":"YulBlock","src":"9420:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9422:16:101","nodeType":"YulIdentifier","src":"9422:16:101"},"nativeSrc":"9422:18:101","nodeType":"YulFunctionCall","src":"9422:18:101"},"nativeSrc":"9422:18:101","nodeType":"YulExpressionStatement","src":"9422:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"9412:1:101","nodeType":"YulIdentifier","src":"9412:1:101"},{"name":"sum","nativeSrc":"9415:3:101","nodeType":"YulIdentifier","src":"9415:3:101"}],"functionName":{"name":"gt","nativeSrc":"9409:2:101","nodeType":"YulIdentifier","src":"9409:2:101"},"nativeSrc":"9409:10:101","nodeType":"YulFunctionCall","src":"9409:10:101"},"nativeSrc":"9406:36:101","nodeType":"YulIf","src":"9406:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"9258:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9289:1:101","nodeType":"YulTypedName","src":"9289:1:101","type":""},{"name":"y","nativeSrc":"9292:1:101","nodeType":"YulTypedName","src":"9292:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"9298:3:101","nodeType":"YulTypedName","src":"9298:3:101","type":""}],"src":"9258:191:101"},{"body":{"nativeSrc":"9551:73:101","nodeType":"YulBlock","src":"9551:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9568:3:101","nodeType":"YulIdentifier","src":"9568:3:101"},{"name":"length","nativeSrc":"9573:6:101","nodeType":"YulIdentifier","src":"9573:6:101"}],"functionName":{"name":"mstore","nativeSrc":"9561:6:101","nodeType":"YulIdentifier","src":"9561:6:101"},"nativeSrc":"9561:19:101","nodeType":"YulFunctionCall","src":"9561:19:101"},"nativeSrc":"9561:19:101","nodeType":"YulExpressionStatement","src":"9561:19:101"},{"nativeSrc":"9589:29:101","nodeType":"YulAssignment","src":"9589:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"9608:3:101","nodeType":"YulIdentifier","src":"9608:3:101"},{"kind":"number","nativeSrc":"9613:4:101","nodeType":"YulLiteral","src":"9613:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9604:3:101","nodeType":"YulIdentifier","src":"9604:3:101"},"nativeSrc":"9604:14:101","nodeType":"YulFunctionCall","src":"9604:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"9589:11:101","nodeType":"YulIdentifier","src":"9589:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9455:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9523:3:101","nodeType":"YulTypedName","src":"9523:3:101","type":""},{"name":"length","nativeSrc":"9528:6:101","nodeType":"YulTypedName","src":"9528:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"9539:11:101","nodeType":"YulTypedName","src":"9539:11:101","type":""}],"src":"9455:169:101"},{"body":{"nativeSrc":"9736:122:101","nodeType":"YulBlock","src":"9736:122:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9758:6:101","nodeType":"YulIdentifier","src":"9758:6:101"},{"kind":"number","nativeSrc":"9766:1:101","nodeType":"YulLiteral","src":"9766:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9754:3:101","nodeType":"YulIdentifier","src":"9754:3:101"},"nativeSrc":"9754:14:101","nodeType":"YulFunctionCall","src":"9754:14:101"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"9770:34:101","nodeType":"YulLiteral","src":"9770:34:101","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"9747:6:101","nodeType":"YulIdentifier","src":"9747:6:101"},"nativeSrc":"9747:58:101","nodeType":"YulFunctionCall","src":"9747:58:101"},"nativeSrc":"9747:58:101","nodeType":"YulExpressionStatement","src":"9747:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9826:6:101","nodeType":"YulIdentifier","src":"9826:6:101"},{"kind":"number","nativeSrc":"9834:2:101","nodeType":"YulLiteral","src":"9834:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9822:3:101","nodeType":"YulIdentifier","src":"9822:3:101"},"nativeSrc":"9822:15:101","nodeType":"YulFunctionCall","src":"9822:15:101"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"9839:11:101","nodeType":"YulLiteral","src":"9839:11:101","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"9815:6:101","nodeType":"YulIdentifier","src":"9815:6:101"},"nativeSrc":"9815:36:101","nodeType":"YulFunctionCall","src":"9815:36:101"},"nativeSrc":"9815:36:101","nodeType":"YulExpressionStatement","src":"9815:36:101"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"9630:228:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9728:6:101","nodeType":"YulTypedName","src":"9728:6:101","type":""}],"src":"9630:228:101"},{"body":{"nativeSrc":"10010:220:101","nodeType":"YulBlock","src":"10010:220:101","statements":[{"nativeSrc":"10020:74:101","nodeType":"YulAssignment","src":"10020:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10086:3:101","nodeType":"YulIdentifier","src":"10086:3:101"},{"kind":"number","nativeSrc":"10091:2:101","nodeType":"YulLiteral","src":"10091:2:101","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10027:58:101","nodeType":"YulIdentifier","src":"10027:58:101"},"nativeSrc":"10027:67:101","nodeType":"YulFunctionCall","src":"10027:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10020:3:101","nodeType":"YulIdentifier","src":"10020:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10192:3:101","nodeType":"YulIdentifier","src":"10192:3:101"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"10103:88:101","nodeType":"YulIdentifier","src":"10103:88:101"},"nativeSrc":"10103:93:101","nodeType":"YulFunctionCall","src":"10103:93:101"},"nativeSrc":"10103:93:101","nodeType":"YulExpressionStatement","src":"10103:93:101"},{"nativeSrc":"10205:19:101","nodeType":"YulAssignment","src":"10205:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10216:3:101","nodeType":"YulIdentifier","src":"10216:3:101"},{"kind":"number","nativeSrc":"10221:2:101","nodeType":"YulLiteral","src":"10221:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10212:3:101","nodeType":"YulIdentifier","src":"10212:3:101"},"nativeSrc":"10212:12:101","nodeType":"YulFunctionCall","src":"10212:12:101"},"variableNames":[{"name":"end","nativeSrc":"10205:3:101","nodeType":"YulIdentifier","src":"10205:3:101"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"9864:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9998:3:101","nodeType":"YulTypedName","src":"9998:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10006:3:101","nodeType":"YulTypedName","src":"10006:3:101","type":""}],"src":"9864:366:101"},{"body":{"nativeSrc":"10407:248:101","nodeType":"YulBlock","src":"10407:248:101","statements":[{"nativeSrc":"10417:26:101","nodeType":"YulAssignment","src":"10417:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10429:9:101","nodeType":"YulIdentifier","src":"10429:9:101"},{"kind":"number","nativeSrc":"10440:2:101","nodeType":"YulLiteral","src":"10440:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10425:3:101","nodeType":"YulIdentifier","src":"10425:3:101"},"nativeSrc":"10425:18:101","nodeType":"YulFunctionCall","src":"10425:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10417:4:101","nodeType":"YulIdentifier","src":"10417:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10464:9:101","nodeType":"YulIdentifier","src":"10464:9:101"},{"kind":"number","nativeSrc":"10475:1:101","nodeType":"YulLiteral","src":"10475:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10460:3:101","nodeType":"YulIdentifier","src":"10460:3:101"},"nativeSrc":"10460:17:101","nodeType":"YulFunctionCall","src":"10460:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10483:4:101","nodeType":"YulIdentifier","src":"10483:4:101"},{"name":"headStart","nativeSrc":"10489:9:101","nodeType":"YulIdentifier","src":"10489:9:101"}],"functionName":{"name":"sub","nativeSrc":"10479:3:101","nodeType":"YulIdentifier","src":"10479:3:101"},"nativeSrc":"10479:20:101","nodeType":"YulFunctionCall","src":"10479:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10453:6:101","nodeType":"YulIdentifier","src":"10453:6:101"},"nativeSrc":"10453:47:101","nodeType":"YulFunctionCall","src":"10453:47:101"},"nativeSrc":"10453:47:101","nodeType":"YulExpressionStatement","src":"10453:47:101"},{"nativeSrc":"10509:139:101","nodeType":"YulAssignment","src":"10509:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10643:4:101","nodeType":"YulIdentifier","src":"10643:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"10517:124:101","nodeType":"YulIdentifier","src":"10517:124:101"},"nativeSrc":"10517:131:101","nodeType":"YulFunctionCall","src":"10517:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10509:4:101","nodeType":"YulIdentifier","src":"10509:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10236:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10387:9:101","nodeType":"YulTypedName","src":"10387:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10402:4:101","nodeType":"YulTypedName","src":"10402:4:101","type":""}],"src":"10236:419:101"},{"body":{"nativeSrc":"10767:127:101","nodeType":"YulBlock","src":"10767:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10789:6:101","nodeType":"YulIdentifier","src":"10789:6:101"},{"kind":"number","nativeSrc":"10797:1:101","nodeType":"YulLiteral","src":"10797:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10785:3:101","nodeType":"YulIdentifier","src":"10785:3:101"},"nativeSrc":"10785:14:101","nodeType":"YulFunctionCall","src":"10785:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"10801:34:101","nodeType":"YulLiteral","src":"10801:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"10778:6:101","nodeType":"YulIdentifier","src":"10778:6:101"},"nativeSrc":"10778:58:101","nodeType":"YulFunctionCall","src":"10778:58:101"},"nativeSrc":"10778:58:101","nodeType":"YulExpressionStatement","src":"10778:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10857:6:101","nodeType":"YulIdentifier","src":"10857:6:101"},{"kind":"number","nativeSrc":"10865:2:101","nodeType":"YulLiteral","src":"10865:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10853:3:101","nodeType":"YulIdentifier","src":"10853:3:101"},"nativeSrc":"10853:15:101","nodeType":"YulFunctionCall","src":"10853:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"10870:16:101","nodeType":"YulLiteral","src":"10870:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"10846:6:101","nodeType":"YulIdentifier","src":"10846:6:101"},"nativeSrc":"10846:41:101","nodeType":"YulFunctionCall","src":"10846:41:101"},"nativeSrc":"10846:41:101","nodeType":"YulExpressionStatement","src":"10846:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"10661:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10759:6:101","nodeType":"YulTypedName","src":"10759:6:101","type":""}],"src":"10661:233:101"},{"body":{"nativeSrc":"11046:220:101","nodeType":"YulBlock","src":"11046:220:101","statements":[{"nativeSrc":"11056:74:101","nodeType":"YulAssignment","src":"11056:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11122:3:101","nodeType":"YulIdentifier","src":"11122:3:101"},{"kind":"number","nativeSrc":"11127:2:101","nodeType":"YulLiteral","src":"11127:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11063:58:101","nodeType":"YulIdentifier","src":"11063:58:101"},"nativeSrc":"11063:67:101","nodeType":"YulFunctionCall","src":"11063:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11056:3:101","nodeType":"YulIdentifier","src":"11056:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11228:3:101","nodeType":"YulIdentifier","src":"11228:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"11139:88:101","nodeType":"YulIdentifier","src":"11139:88:101"},"nativeSrc":"11139:93:101","nodeType":"YulFunctionCall","src":"11139:93:101"},"nativeSrc":"11139:93:101","nodeType":"YulExpressionStatement","src":"11139:93:101"},{"nativeSrc":"11241:19:101","nodeType":"YulAssignment","src":"11241:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11252:3:101","nodeType":"YulIdentifier","src":"11252:3:101"},{"kind":"number","nativeSrc":"11257:2:101","nodeType":"YulLiteral","src":"11257:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11248:3:101","nodeType":"YulIdentifier","src":"11248:3:101"},"nativeSrc":"11248:12:101","nodeType":"YulFunctionCall","src":"11248:12:101"},"variableNames":[{"name":"end","nativeSrc":"11241:3:101","nodeType":"YulIdentifier","src":"11241:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"10900:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11034:3:101","nodeType":"YulTypedName","src":"11034:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11042:3:101","nodeType":"YulTypedName","src":"11042:3:101","type":""}],"src":"10900:366:101"},{"body":{"nativeSrc":"11443:248:101","nodeType":"YulBlock","src":"11443:248:101","statements":[{"nativeSrc":"11453:26:101","nodeType":"YulAssignment","src":"11453:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11465:9:101","nodeType":"YulIdentifier","src":"11465:9:101"},{"kind":"number","nativeSrc":"11476:2:101","nodeType":"YulLiteral","src":"11476:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11461:3:101","nodeType":"YulIdentifier","src":"11461:3:101"},"nativeSrc":"11461:18:101","nodeType":"YulFunctionCall","src":"11461:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11453:4:101","nodeType":"YulIdentifier","src":"11453:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11500:9:101","nodeType":"YulIdentifier","src":"11500:9:101"},{"kind":"number","nativeSrc":"11511:1:101","nodeType":"YulLiteral","src":"11511:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11496:3:101","nodeType":"YulIdentifier","src":"11496:3:101"},"nativeSrc":"11496:17:101","nodeType":"YulFunctionCall","src":"11496:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11519:4:101","nodeType":"YulIdentifier","src":"11519:4:101"},{"name":"headStart","nativeSrc":"11525:9:101","nodeType":"YulIdentifier","src":"11525:9:101"}],"functionName":{"name":"sub","nativeSrc":"11515:3:101","nodeType":"YulIdentifier","src":"11515:3:101"},"nativeSrc":"11515:20:101","nodeType":"YulFunctionCall","src":"11515:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11489:6:101","nodeType":"YulIdentifier","src":"11489:6:101"},"nativeSrc":"11489:47:101","nodeType":"YulFunctionCall","src":"11489:47:101"},"nativeSrc":"11489:47:101","nodeType":"YulExpressionStatement","src":"11489:47:101"},{"nativeSrc":"11545:139:101","nodeType":"YulAssignment","src":"11545:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11679:4:101","nodeType":"YulIdentifier","src":"11679:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"11553:124:101","nodeType":"YulIdentifier","src":"11553:124:101"},"nativeSrc":"11553:131:101","nodeType":"YulFunctionCall","src":"11553:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11545:4:101","nodeType":"YulIdentifier","src":"11545:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11272:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11423:9:101","nodeType":"YulTypedName","src":"11423:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11438:4:101","nodeType":"YulTypedName","src":"11438:4:101","type":""}],"src":"11272:419:101"},{"body":{"nativeSrc":"11750:32:101","nodeType":"YulBlock","src":"11750:32:101","statements":[{"nativeSrc":"11760:16:101","nodeType":"YulAssignment","src":"11760:16:101","value":{"name":"value","nativeSrc":"11771:5:101","nodeType":"YulIdentifier","src":"11771:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"11760:7:101","nodeType":"YulIdentifier","src":"11760:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"11697:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11732:5:101","nodeType":"YulTypedName","src":"11732:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11742:7:101","nodeType":"YulTypedName","src":"11742:7:101","type":""}],"src":"11697:85:101"},{"body":{"nativeSrc":"11854:88:101","nodeType":"YulBlock","src":"11854:88:101","statements":[{"nativeSrc":"11864:72:101","nodeType":"YulAssignment","src":"11864:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11928:5:101","nodeType":"YulIdentifier","src":"11928:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"11902:25:101","nodeType":"YulIdentifier","src":"11902:25:101"},"nativeSrc":"11902:32:101","nodeType":"YulFunctionCall","src":"11902:32:101"}],"functionName":{"name":"identity","nativeSrc":"11893:8:101","nodeType":"YulIdentifier","src":"11893:8:101"},"nativeSrc":"11893:42:101","nodeType":"YulFunctionCall","src":"11893:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"11877:15:101","nodeType":"YulIdentifier","src":"11877:15:101"},"nativeSrc":"11877:59:101","nodeType":"YulFunctionCall","src":"11877:59:101"},"variableNames":[{"name":"converted","nativeSrc":"11864:9:101","nodeType":"YulIdentifier","src":"11864:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"11788:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11834:5:101","nodeType":"YulTypedName","src":"11834:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"11844:9:101","nodeType":"YulTypedName","src":"11844:9:101","type":""}],"src":"11788:154:101"},{"body":{"nativeSrc":"12019:72:101","nodeType":"YulBlock","src":"12019:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12036:3:101","nodeType":"YulIdentifier","src":"12036:3:101"},{"arguments":[{"name":"value","nativeSrc":"12078:5:101","nodeType":"YulIdentifier","src":"12078:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"12041:36:101","nodeType":"YulIdentifier","src":"12041:36:101"},"nativeSrc":"12041:43:101","nodeType":"YulFunctionCall","src":"12041:43:101"}],"functionName":{"name":"mstore","nativeSrc":"12029:6:101","nodeType":"YulIdentifier","src":"12029:6:101"},"nativeSrc":"12029:56:101","nodeType":"YulFunctionCall","src":"12029:56:101"},"nativeSrc":"12029:56:101","nodeType":"YulExpressionStatement","src":"12029:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"11948:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12007:5:101","nodeType":"YulTypedName","src":"12007:5:101","type":""},{"name":"pos","nativeSrc":"12014:3:101","nodeType":"YulTypedName","src":"12014:3:101","type":""}],"src":"11948:143:101"},{"body":{"nativeSrc":"12201:130:101","nodeType":"YulBlock","src":"12201:130:101","statements":[{"nativeSrc":"12211:26:101","nodeType":"YulAssignment","src":"12211:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12223:9:101","nodeType":"YulIdentifier","src":"12223:9:101"},{"kind":"number","nativeSrc":"12234:2:101","nodeType":"YulLiteral","src":"12234:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12219:3:101","nodeType":"YulIdentifier","src":"12219:3:101"},"nativeSrc":"12219:18:101","nodeType":"YulFunctionCall","src":"12219:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12211:4:101","nodeType":"YulIdentifier","src":"12211:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12297:6:101","nodeType":"YulIdentifier","src":"12297:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12310:9:101","nodeType":"YulIdentifier","src":"12310:9:101"},{"kind":"number","nativeSrc":"12321:1:101","nodeType":"YulLiteral","src":"12321:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12306:3:101","nodeType":"YulIdentifier","src":"12306:3:101"},"nativeSrc":"12306:17:101","nodeType":"YulFunctionCall","src":"12306:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"12247:49:101","nodeType":"YulIdentifier","src":"12247:49:101"},"nativeSrc":"12247:77:101","nodeType":"YulFunctionCall","src":"12247:77:101"},"nativeSrc":"12247:77:101","nodeType":"YulExpressionStatement","src":"12247:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"12097:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12173:9:101","nodeType":"YulTypedName","src":"12173:9:101","type":""},{"name":"value0","nativeSrc":"12185:6:101","nodeType":"YulTypedName","src":"12185:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12196:4:101","nodeType":"YulTypedName","src":"12196:4:101","type":""}],"src":"12097:234:101"},{"body":{"nativeSrc":"12463:206:101","nodeType":"YulBlock","src":"12463:206:101","statements":[{"nativeSrc":"12473:26:101","nodeType":"YulAssignment","src":"12473:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12485:9:101","nodeType":"YulIdentifier","src":"12485:9:101"},{"kind":"number","nativeSrc":"12496:2:101","nodeType":"YulLiteral","src":"12496:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12481:3:101","nodeType":"YulIdentifier","src":"12481:3:101"},"nativeSrc":"12481:18:101","nodeType":"YulFunctionCall","src":"12481:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12473:4:101","nodeType":"YulIdentifier","src":"12473:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12553:6:101","nodeType":"YulIdentifier","src":"12553:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12566:9:101","nodeType":"YulIdentifier","src":"12566:9:101"},{"kind":"number","nativeSrc":"12577:1:101","nodeType":"YulLiteral","src":"12577:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12562:3:101","nodeType":"YulIdentifier","src":"12562:3:101"},"nativeSrc":"12562:17:101","nodeType":"YulFunctionCall","src":"12562:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12509:43:101","nodeType":"YulIdentifier","src":"12509:43:101"},"nativeSrc":"12509:71:101","nodeType":"YulFunctionCall","src":"12509:71:101"},"nativeSrc":"12509:71:101","nodeType":"YulExpressionStatement","src":"12509:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12634:6:101","nodeType":"YulIdentifier","src":"12634:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12647:9:101","nodeType":"YulIdentifier","src":"12647:9:101"},{"kind":"number","nativeSrc":"12658:2:101","nodeType":"YulLiteral","src":"12658:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12643:3:101","nodeType":"YulIdentifier","src":"12643:3:101"},"nativeSrc":"12643:18:101","nodeType":"YulFunctionCall","src":"12643:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12590:43:101","nodeType":"YulIdentifier","src":"12590:43:101"},"nativeSrc":"12590:72:101","nodeType":"YulFunctionCall","src":"12590:72:101"},"nativeSrc":"12590:72:101","nodeType":"YulExpressionStatement","src":"12590:72:101"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12337:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12427:9:101","nodeType":"YulTypedName","src":"12427:9:101","type":""},{"name":"value1","nativeSrc":"12439:6:101","nodeType":"YulTypedName","src":"12439:6:101","type":""},{"name":"value0","nativeSrc":"12447:6:101","nodeType":"YulTypedName","src":"12447:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12458:4:101","nodeType":"YulTypedName","src":"12458:4:101","type":""}],"src":"12337:332:101"},{"body":{"nativeSrc":"12781:76:101","nodeType":"YulBlock","src":"12781:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12803:6:101","nodeType":"YulIdentifier","src":"12803:6:101"},{"kind":"number","nativeSrc":"12811:1:101","nodeType":"YulLiteral","src":"12811:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12799:3:101","nodeType":"YulIdentifier","src":"12799:3:101"},"nativeSrc":"12799:14:101","nodeType":"YulFunctionCall","src":"12799:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"12815:34:101","nodeType":"YulLiteral","src":"12815:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"12792:6:101","nodeType":"YulIdentifier","src":"12792:6:101"},"nativeSrc":"12792:58:101","nodeType":"YulFunctionCall","src":"12792:58:101"},"nativeSrc":"12792:58:101","nodeType":"YulExpressionStatement","src":"12792:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"12675:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12773:6:101","nodeType":"YulTypedName","src":"12773:6:101","type":""}],"src":"12675:182:101"},{"body":{"nativeSrc":"13009:220:101","nodeType":"YulBlock","src":"13009:220:101","statements":[{"nativeSrc":"13019:74:101","nodeType":"YulAssignment","src":"13019:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13085:3:101","nodeType":"YulIdentifier","src":"13085:3:101"},{"kind":"number","nativeSrc":"13090:2:101","nodeType":"YulLiteral","src":"13090:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13026:58:101","nodeType":"YulIdentifier","src":"13026:58:101"},"nativeSrc":"13026:67:101","nodeType":"YulFunctionCall","src":"13026:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13019:3:101","nodeType":"YulIdentifier","src":"13019:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13191:3:101","nodeType":"YulIdentifier","src":"13191:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"13102:88:101","nodeType":"YulIdentifier","src":"13102:88:101"},"nativeSrc":"13102:93:101","nodeType":"YulFunctionCall","src":"13102:93:101"},"nativeSrc":"13102:93:101","nodeType":"YulExpressionStatement","src":"13102:93:101"},{"nativeSrc":"13204:19:101","nodeType":"YulAssignment","src":"13204:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13215:3:101","nodeType":"YulIdentifier","src":"13215:3:101"},{"kind":"number","nativeSrc":"13220:2:101","nodeType":"YulLiteral","src":"13220:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13211:3:101","nodeType":"YulIdentifier","src":"13211:3:101"},"nativeSrc":"13211:12:101","nodeType":"YulFunctionCall","src":"13211:12:101"},"variableNames":[{"name":"end","nativeSrc":"13204:3:101","nodeType":"YulIdentifier","src":"13204:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"12863:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12997:3:101","nodeType":"YulTypedName","src":"12997:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13005:3:101","nodeType":"YulTypedName","src":"13005:3:101","type":""}],"src":"12863:366:101"},{"body":{"nativeSrc":"13406:248:101","nodeType":"YulBlock","src":"13406:248:101","statements":[{"nativeSrc":"13416:26:101","nodeType":"YulAssignment","src":"13416:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13428:9:101","nodeType":"YulIdentifier","src":"13428:9:101"},{"kind":"number","nativeSrc":"13439:2:101","nodeType":"YulLiteral","src":"13439:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13424:3:101","nodeType":"YulIdentifier","src":"13424:3:101"},"nativeSrc":"13424:18:101","nodeType":"YulFunctionCall","src":"13424:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13416:4:101","nodeType":"YulIdentifier","src":"13416:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13463:9:101","nodeType":"YulIdentifier","src":"13463:9:101"},{"kind":"number","nativeSrc":"13474:1:101","nodeType":"YulLiteral","src":"13474:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13459:3:101","nodeType":"YulIdentifier","src":"13459:3:101"},"nativeSrc":"13459:17:101","nodeType":"YulFunctionCall","src":"13459:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13482:4:101","nodeType":"YulIdentifier","src":"13482:4:101"},{"name":"headStart","nativeSrc":"13488:9:101","nodeType":"YulIdentifier","src":"13488:9:101"}],"functionName":{"name":"sub","nativeSrc":"13478:3:101","nodeType":"YulIdentifier","src":"13478:3:101"},"nativeSrc":"13478:20:101","nodeType":"YulFunctionCall","src":"13478:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13452:6:101","nodeType":"YulIdentifier","src":"13452:6:101"},"nativeSrc":"13452:47:101","nodeType":"YulFunctionCall","src":"13452:47:101"},"nativeSrc":"13452:47:101","nodeType":"YulExpressionStatement","src":"13452:47:101"},{"nativeSrc":"13508:139:101","nodeType":"YulAssignment","src":"13508:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13642:4:101","nodeType":"YulIdentifier","src":"13642:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"13516:124:101","nodeType":"YulIdentifier","src":"13516:124:101"},"nativeSrc":"13516:131:101","nodeType":"YulFunctionCall","src":"13516:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13508:4:101","nodeType":"YulIdentifier","src":"13508:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13235:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13386:9:101","nodeType":"YulTypedName","src":"13386:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13401:4:101","nodeType":"YulTypedName","src":"13401:4:101","type":""}],"src":"13235:419:101"},{"body":{"nativeSrc":"13766:118:101","nodeType":"YulBlock","src":"13766:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13788:6:101","nodeType":"YulIdentifier","src":"13788:6:101"},{"kind":"number","nativeSrc":"13796:1:101","nodeType":"YulLiteral","src":"13796:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13784:3:101","nodeType":"YulIdentifier","src":"13784:3:101"},"nativeSrc":"13784:14:101","nodeType":"YulFunctionCall","src":"13784:14:101"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"13800:34:101","nodeType":"YulLiteral","src":"13800:34:101","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"13777:6:101","nodeType":"YulIdentifier","src":"13777:6:101"},"nativeSrc":"13777:58:101","nodeType":"YulFunctionCall","src":"13777:58:101"},"nativeSrc":"13777:58:101","nodeType":"YulExpressionStatement","src":"13777:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13856:6:101","nodeType":"YulIdentifier","src":"13856:6:101"},{"kind":"number","nativeSrc":"13864:2:101","nodeType":"YulLiteral","src":"13864:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13852:3:101","nodeType":"YulIdentifier","src":"13852:3:101"},"nativeSrc":"13852:15:101","nodeType":"YulFunctionCall","src":"13852:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"13869:7:101","nodeType":"YulLiteral","src":"13869:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"13845:6:101","nodeType":"YulIdentifier","src":"13845:6:101"},"nativeSrc":"13845:32:101","nodeType":"YulFunctionCall","src":"13845:32:101"},"nativeSrc":"13845:32:101","nodeType":"YulExpressionStatement","src":"13845:32:101"}]},"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"13660:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13758:6:101","nodeType":"YulTypedName","src":"13758:6:101","type":""}],"src":"13660:224:101"},{"body":{"nativeSrc":"14036:220:101","nodeType":"YulBlock","src":"14036:220:101","statements":[{"nativeSrc":"14046:74:101","nodeType":"YulAssignment","src":"14046:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14112:3:101","nodeType":"YulIdentifier","src":"14112:3:101"},{"kind":"number","nativeSrc":"14117:2:101","nodeType":"YulLiteral","src":"14117:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14053:58:101","nodeType":"YulIdentifier","src":"14053:58:101"},"nativeSrc":"14053:67:101","nodeType":"YulFunctionCall","src":"14053:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14046:3:101","nodeType":"YulIdentifier","src":"14046:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14218:3:101","nodeType":"YulIdentifier","src":"14218:3:101"}],"functionName":{"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"14129:88:101","nodeType":"YulIdentifier","src":"14129:88:101"},"nativeSrc":"14129:93:101","nodeType":"YulFunctionCall","src":"14129:93:101"},"nativeSrc":"14129:93:101","nodeType":"YulExpressionStatement","src":"14129:93:101"},{"nativeSrc":"14231:19:101","nodeType":"YulAssignment","src":"14231:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14242:3:101","nodeType":"YulIdentifier","src":"14242:3:101"},{"kind":"number","nativeSrc":"14247:2:101","nodeType":"YulLiteral","src":"14247:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14238:3:101","nodeType":"YulIdentifier","src":"14238:3:101"},"nativeSrc":"14238:12:101","nodeType":"YulFunctionCall","src":"14238:12:101"},"variableNames":[{"name":"end","nativeSrc":"14231:3:101","nodeType":"YulIdentifier","src":"14231:3:101"}]}]},"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"13890:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14024:3:101","nodeType":"YulTypedName","src":"14024:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14032:3:101","nodeType":"YulTypedName","src":"14032:3:101","type":""}],"src":"13890:366:101"},{"body":{"nativeSrc":"14433:248:101","nodeType":"YulBlock","src":"14433:248:101","statements":[{"nativeSrc":"14443:26:101","nodeType":"YulAssignment","src":"14443:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14455:9:101","nodeType":"YulIdentifier","src":"14455:9:101"},{"kind":"number","nativeSrc":"14466:2:101","nodeType":"YulLiteral","src":"14466:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14451:3:101","nodeType":"YulIdentifier","src":"14451:3:101"},"nativeSrc":"14451:18:101","nodeType":"YulFunctionCall","src":"14451:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14443:4:101","nodeType":"YulIdentifier","src":"14443:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14490:9:101","nodeType":"YulIdentifier","src":"14490:9:101"},{"kind":"number","nativeSrc":"14501:1:101","nodeType":"YulLiteral","src":"14501:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14486:3:101","nodeType":"YulIdentifier","src":"14486:3:101"},"nativeSrc":"14486:17:101","nodeType":"YulFunctionCall","src":"14486:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14509:4:101","nodeType":"YulIdentifier","src":"14509:4:101"},{"name":"headStart","nativeSrc":"14515:9:101","nodeType":"YulIdentifier","src":"14515:9:101"}],"functionName":{"name":"sub","nativeSrc":"14505:3:101","nodeType":"YulIdentifier","src":"14505:3:101"},"nativeSrc":"14505:20:101","nodeType":"YulFunctionCall","src":"14505:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14479:6:101","nodeType":"YulIdentifier","src":"14479:6:101"},"nativeSrc":"14479:47:101","nodeType":"YulFunctionCall","src":"14479:47:101"},"nativeSrc":"14479:47:101","nodeType":"YulExpressionStatement","src":"14479:47:101"},{"nativeSrc":"14535:139:101","nodeType":"YulAssignment","src":"14535:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14669:4:101","nodeType":"YulIdentifier","src":"14669:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"14543:124:101","nodeType":"YulIdentifier","src":"14543:124:101"},"nativeSrc":"14543:131:101","nodeType":"YulFunctionCall","src":"14543:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14535:4:101","nodeType":"YulIdentifier","src":"14535:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14262:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14413:9:101","nodeType":"YulTypedName","src":"14413:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14428:4:101","nodeType":"YulTypedName","src":"14428:4:101","type":""}],"src":"14262:419:101"},{"body":{"nativeSrc":"14813:206:101","nodeType":"YulBlock","src":"14813:206:101","statements":[{"nativeSrc":"14823:26:101","nodeType":"YulAssignment","src":"14823:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14835:9:101","nodeType":"YulIdentifier","src":"14835:9:101"},{"kind":"number","nativeSrc":"14846:2:101","nodeType":"YulLiteral","src":"14846:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14831:3:101","nodeType":"YulIdentifier","src":"14831:3:101"},"nativeSrc":"14831:18:101","nodeType":"YulFunctionCall","src":"14831:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14823:4:101","nodeType":"YulIdentifier","src":"14823:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14903:6:101","nodeType":"YulIdentifier","src":"14903:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14916:9:101","nodeType":"YulIdentifier","src":"14916:9:101"},{"kind":"number","nativeSrc":"14927:1:101","nodeType":"YulLiteral","src":"14927:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14912:3:101","nodeType":"YulIdentifier","src":"14912:3:101"},"nativeSrc":"14912:17:101","nodeType":"YulFunctionCall","src":"14912:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14859:43:101","nodeType":"YulIdentifier","src":"14859:43:101"},"nativeSrc":"14859:71:101","nodeType":"YulFunctionCall","src":"14859:71:101"},"nativeSrc":"14859:71:101","nodeType":"YulExpressionStatement","src":"14859:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14984:6:101","nodeType":"YulIdentifier","src":"14984:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14997:9:101","nodeType":"YulIdentifier","src":"14997:9:101"},{"kind":"number","nativeSrc":"15008:2:101","nodeType":"YulLiteral","src":"15008:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14993:3:101","nodeType":"YulIdentifier","src":"14993:3:101"},"nativeSrc":"14993:18:101","nodeType":"YulFunctionCall","src":"14993:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14940:43:101","nodeType":"YulIdentifier","src":"14940:43:101"},"nativeSrc":"14940:72:101","nodeType":"YulFunctionCall","src":"14940:72:101"},"nativeSrc":"14940:72:101","nodeType":"YulExpressionStatement","src":"14940:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"14687:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14777:9:101","nodeType":"YulTypedName","src":"14777:9:101","type":""},{"name":"value1","nativeSrc":"14789:6:101","nodeType":"YulTypedName","src":"14789:6:101","type":""},{"name":"value0","nativeSrc":"14797:6:101","nodeType":"YulTypedName","src":"14797:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14808:4:101","nodeType":"YulTypedName","src":"14808:4:101","type":""}],"src":"14687:332:101"},{"body":{"nativeSrc":"15131:124:101","nodeType":"YulBlock","src":"15131:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15153:6:101","nodeType":"YulIdentifier","src":"15153:6:101"},{"kind":"number","nativeSrc":"15161:1:101","nodeType":"YulLiteral","src":"15161:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15149:3:101","nodeType":"YulIdentifier","src":"15149:3:101"},"nativeSrc":"15149:14:101","nodeType":"YulFunctionCall","src":"15149:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"15165:34:101","nodeType":"YulLiteral","src":"15165:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"15142:6:101","nodeType":"YulIdentifier","src":"15142:6:101"},"nativeSrc":"15142:58:101","nodeType":"YulFunctionCall","src":"15142:58:101"},"nativeSrc":"15142:58:101","nodeType":"YulExpressionStatement","src":"15142:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15221:6:101","nodeType":"YulIdentifier","src":"15221:6:101"},{"kind":"number","nativeSrc":"15229:2:101","nodeType":"YulLiteral","src":"15229:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15217:3:101","nodeType":"YulIdentifier","src":"15217:3:101"},"nativeSrc":"15217:15:101","nodeType":"YulFunctionCall","src":"15217:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"15234:13:101","nodeType":"YulLiteral","src":"15234:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"15210:6:101","nodeType":"YulIdentifier","src":"15210:6:101"},"nativeSrc":"15210:38:101","nodeType":"YulFunctionCall","src":"15210:38:101"},"nativeSrc":"15210:38:101","nodeType":"YulExpressionStatement","src":"15210:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"15025:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15123:6:101","nodeType":"YulTypedName","src":"15123:6:101","type":""}],"src":"15025:230:101"},{"body":{"nativeSrc":"15407:220:101","nodeType":"YulBlock","src":"15407:220:101","statements":[{"nativeSrc":"15417:74:101","nodeType":"YulAssignment","src":"15417:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15483:3:101","nodeType":"YulIdentifier","src":"15483:3:101"},{"kind":"number","nativeSrc":"15488:2:101","nodeType":"YulLiteral","src":"15488:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15424:58:101","nodeType":"YulIdentifier","src":"15424:58:101"},"nativeSrc":"15424:67:101","nodeType":"YulFunctionCall","src":"15424:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15417:3:101","nodeType":"YulIdentifier","src":"15417:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15589:3:101","nodeType":"YulIdentifier","src":"15589:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"15500:88:101","nodeType":"YulIdentifier","src":"15500:88:101"},"nativeSrc":"15500:93:101","nodeType":"YulFunctionCall","src":"15500:93:101"},"nativeSrc":"15500:93:101","nodeType":"YulExpressionStatement","src":"15500:93:101"},{"nativeSrc":"15602:19:101","nodeType":"YulAssignment","src":"15602:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15613:3:101","nodeType":"YulIdentifier","src":"15613:3:101"},{"kind":"number","nativeSrc":"15618:2:101","nodeType":"YulLiteral","src":"15618:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15609:3:101","nodeType":"YulIdentifier","src":"15609:3:101"},"nativeSrc":"15609:12:101","nodeType":"YulFunctionCall","src":"15609:12:101"},"variableNames":[{"name":"end","nativeSrc":"15602:3:101","nodeType":"YulIdentifier","src":"15602:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"15261:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15395:3:101","nodeType":"YulTypedName","src":"15395:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15403:3:101","nodeType":"YulTypedName","src":"15403:3:101","type":""}],"src":"15261:366:101"},{"body":{"nativeSrc":"15804:248:101","nodeType":"YulBlock","src":"15804:248:101","statements":[{"nativeSrc":"15814:26:101","nodeType":"YulAssignment","src":"15814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15826:9:101","nodeType":"YulIdentifier","src":"15826:9:101"},{"kind":"number","nativeSrc":"15837:2:101","nodeType":"YulLiteral","src":"15837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15822:3:101","nodeType":"YulIdentifier","src":"15822:3:101"},"nativeSrc":"15822:18:101","nodeType":"YulFunctionCall","src":"15822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15814:4:101","nodeType":"YulIdentifier","src":"15814:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15861:9:101","nodeType":"YulIdentifier","src":"15861:9:101"},{"kind":"number","nativeSrc":"15872:1:101","nodeType":"YulLiteral","src":"15872:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15857:3:101","nodeType":"YulIdentifier","src":"15857:3:101"},"nativeSrc":"15857:17:101","nodeType":"YulFunctionCall","src":"15857:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15880:4:101","nodeType":"YulIdentifier","src":"15880:4:101"},{"name":"headStart","nativeSrc":"15886:9:101","nodeType":"YulIdentifier","src":"15886:9:101"}],"functionName":{"name":"sub","nativeSrc":"15876:3:101","nodeType":"YulIdentifier","src":"15876:3:101"},"nativeSrc":"15876:20:101","nodeType":"YulFunctionCall","src":"15876:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15850:6:101","nodeType":"YulIdentifier","src":"15850:6:101"},"nativeSrc":"15850:47:101","nodeType":"YulFunctionCall","src":"15850:47:101"},"nativeSrc":"15850:47:101","nodeType":"YulExpressionStatement","src":"15850:47:101"},{"nativeSrc":"15906:139:101","nodeType":"YulAssignment","src":"15906:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16040:4:101","nodeType":"YulIdentifier","src":"16040:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"15914:124:101","nodeType":"YulIdentifier","src":"15914:124:101"},"nativeSrc":"15914:131:101","nodeType":"YulFunctionCall","src":"15914:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15906:4:101","nodeType":"YulIdentifier","src":"15906:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15633:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15784:9:101","nodeType":"YulTypedName","src":"15784:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15799:4:101","nodeType":"YulTypedName","src":"15799:4:101","type":""}],"src":"15633:419:101"},{"body":{"nativeSrc":"16117:40:101","nodeType":"YulBlock","src":"16117:40:101","statements":[{"nativeSrc":"16128:22:101","nodeType":"YulAssignment","src":"16128:22:101","value":{"arguments":[{"name":"value","nativeSrc":"16144:5:101","nodeType":"YulIdentifier","src":"16144:5:101"}],"functionName":{"name":"mload","nativeSrc":"16138:5:101","nodeType":"YulIdentifier","src":"16138:5:101"},"nativeSrc":"16138:12:101","nodeType":"YulFunctionCall","src":"16138:12:101"},"variableNames":[{"name":"length","nativeSrc":"16128:6:101","nodeType":"YulIdentifier","src":"16128:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"16058:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16100:5:101","nodeType":"YulTypedName","src":"16100:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"16110:6:101","nodeType":"YulTypedName","src":"16110:6:101","type":""}],"src":"16058:99:101"},{"body":{"nativeSrc":"16225:77:101","nodeType":"YulBlock","src":"16225:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"16242:3:101","nodeType":"YulIdentifier","src":"16242:3:101"},{"name":"src","nativeSrc":"16247:3:101","nodeType":"YulIdentifier","src":"16247:3:101"},{"name":"length","nativeSrc":"16252:6:101","nodeType":"YulIdentifier","src":"16252:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"16236:5:101","nodeType":"YulIdentifier","src":"16236:5:101"},"nativeSrc":"16236:23:101","nodeType":"YulFunctionCall","src":"16236:23:101"},"nativeSrc":"16236:23:101","nodeType":"YulExpressionStatement","src":"16236:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"16279:3:101","nodeType":"YulIdentifier","src":"16279:3:101"},{"name":"length","nativeSrc":"16284:6:101","nodeType":"YulIdentifier","src":"16284:6:101"}],"functionName":{"name":"add","nativeSrc":"16275:3:101","nodeType":"YulIdentifier","src":"16275:3:101"},"nativeSrc":"16275:16:101","nodeType":"YulFunctionCall","src":"16275:16:101"},{"kind":"number","nativeSrc":"16293:1:101","nodeType":"YulLiteral","src":"16293:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16268:6:101","nodeType":"YulIdentifier","src":"16268:6:101"},"nativeSrc":"16268:27:101","nodeType":"YulFunctionCall","src":"16268:27:101"},"nativeSrc":"16268:27:101","nodeType":"YulExpressionStatement","src":"16268:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"16163:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"16207:3:101","nodeType":"YulTypedName","src":"16207:3:101","type":""},{"name":"dst","nativeSrc":"16212:3:101","nodeType":"YulTypedName","src":"16212:3:101","type":""},{"name":"length","nativeSrc":"16217:6:101","nodeType":"YulTypedName","src":"16217:6:101","type":""}],"src":"16163:139:101"},{"body":{"nativeSrc":"16356:54:101","nodeType":"YulBlock","src":"16356:54:101","statements":[{"nativeSrc":"16366:38:101","nodeType":"YulAssignment","src":"16366:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16384:5:101","nodeType":"YulIdentifier","src":"16384:5:101"},{"kind":"number","nativeSrc":"16391:2:101","nodeType":"YulLiteral","src":"16391:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"16380:3:101","nodeType":"YulIdentifier","src":"16380:3:101"},"nativeSrc":"16380:14:101","nodeType":"YulFunctionCall","src":"16380:14:101"},{"arguments":[{"kind":"number","nativeSrc":"16400:2:101","nodeType":"YulLiteral","src":"16400:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"16396:3:101","nodeType":"YulIdentifier","src":"16396:3:101"},"nativeSrc":"16396:7:101","nodeType":"YulFunctionCall","src":"16396:7:101"}],"functionName":{"name":"and","nativeSrc":"16376:3:101","nodeType":"YulIdentifier","src":"16376:3:101"},"nativeSrc":"16376:28:101","nodeType":"YulFunctionCall","src":"16376:28:101"},"variableNames":[{"name":"result","nativeSrc":"16366:6:101","nodeType":"YulIdentifier","src":"16366:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"16308:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16339:5:101","nodeType":"YulTypedName","src":"16339:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"16349:6:101","nodeType":"YulTypedName","src":"16349:6:101","type":""}],"src":"16308:102:101"},{"body":{"nativeSrc":"16508:285:101","nodeType":"YulBlock","src":"16508:285:101","statements":[{"nativeSrc":"16518:53:101","nodeType":"YulVariableDeclaration","src":"16518:53:101","value":{"arguments":[{"name":"value","nativeSrc":"16565:5:101","nodeType":"YulIdentifier","src":"16565:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"16532:32:101","nodeType":"YulIdentifier","src":"16532:32:101"},"nativeSrc":"16532:39:101","nodeType":"YulFunctionCall","src":"16532:39:101"},"variables":[{"name":"length","nativeSrc":"16522:6:101","nodeType":"YulTypedName","src":"16522:6:101","type":""}]},{"nativeSrc":"16580:78:101","nodeType":"YulAssignment","src":"16580:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"16646:3:101","nodeType":"YulIdentifier","src":"16646:3:101"},{"name":"length","nativeSrc":"16651:6:101","nodeType":"YulIdentifier","src":"16651:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16587:58:101","nodeType":"YulIdentifier","src":"16587:58:101"},"nativeSrc":"16587:71:101","nodeType":"YulFunctionCall","src":"16587:71:101"},"variableNames":[{"name":"pos","nativeSrc":"16580:3:101","nodeType":"YulIdentifier","src":"16580:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16706:5:101","nodeType":"YulIdentifier","src":"16706:5:101"},{"kind":"number","nativeSrc":"16713:4:101","nodeType":"YulLiteral","src":"16713:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16702:3:101","nodeType":"YulIdentifier","src":"16702:3:101"},"nativeSrc":"16702:16:101","nodeType":"YulFunctionCall","src":"16702:16:101"},{"name":"pos","nativeSrc":"16720:3:101","nodeType":"YulIdentifier","src":"16720:3:101"},{"name":"length","nativeSrc":"16725:6:101","nodeType":"YulIdentifier","src":"16725:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"16667:34:101","nodeType":"YulIdentifier","src":"16667:34:101"},"nativeSrc":"16667:65:101","nodeType":"YulFunctionCall","src":"16667:65:101"},"nativeSrc":"16667:65:101","nodeType":"YulExpressionStatement","src":"16667:65:101"},{"nativeSrc":"16741:46:101","nodeType":"YulAssignment","src":"16741:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"16752:3:101","nodeType":"YulIdentifier","src":"16752:3:101"},{"arguments":[{"name":"length","nativeSrc":"16779:6:101","nodeType":"YulIdentifier","src":"16779:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"16757:21:101","nodeType":"YulIdentifier","src":"16757:21:101"},"nativeSrc":"16757:29:101","nodeType":"YulFunctionCall","src":"16757:29:101"}],"functionName":{"name":"add","nativeSrc":"16748:3:101","nodeType":"YulIdentifier","src":"16748:3:101"},"nativeSrc":"16748:39:101","nodeType":"YulFunctionCall","src":"16748:39:101"},"variableNames":[{"name":"end","nativeSrc":"16741:3:101","nodeType":"YulIdentifier","src":"16741:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"16416:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16489:5:101","nodeType":"YulTypedName","src":"16489:5:101","type":""},{"name":"pos","nativeSrc":"16496:3:101","nodeType":"YulTypedName","src":"16496:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16504:3:101","nodeType":"YulTypedName","src":"16504:3:101","type":""}],"src":"16416:377:101"},{"body":{"nativeSrc":"16945:277:101","nodeType":"YulBlock","src":"16945:277:101","statements":[{"nativeSrc":"16955:26:101","nodeType":"YulAssignment","src":"16955:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16967:9:101","nodeType":"YulIdentifier","src":"16967:9:101"},{"kind":"number","nativeSrc":"16978:2:101","nodeType":"YulLiteral","src":"16978:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16963:3:101","nodeType":"YulIdentifier","src":"16963:3:101"},"nativeSrc":"16963:18:101","nodeType":"YulFunctionCall","src":"16963:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16955:4:101","nodeType":"YulIdentifier","src":"16955:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17035:6:101","nodeType":"YulIdentifier","src":"17035:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"17048:9:101","nodeType":"YulIdentifier","src":"17048:9:101"},{"kind":"number","nativeSrc":"17059:1:101","nodeType":"YulLiteral","src":"17059:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17044:3:101","nodeType":"YulIdentifier","src":"17044:3:101"},"nativeSrc":"17044:17:101","nodeType":"YulFunctionCall","src":"17044:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"16991:43:101","nodeType":"YulIdentifier","src":"16991:43:101"},"nativeSrc":"16991:71:101","nodeType":"YulFunctionCall","src":"16991:71:101"},"nativeSrc":"16991:71:101","nodeType":"YulExpressionStatement","src":"16991:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17083:9:101","nodeType":"YulIdentifier","src":"17083:9:101"},{"kind":"number","nativeSrc":"17094:2:101","nodeType":"YulLiteral","src":"17094:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17079:3:101","nodeType":"YulIdentifier","src":"17079:3:101"},"nativeSrc":"17079:18:101","nodeType":"YulFunctionCall","src":"17079:18:101"},{"arguments":[{"name":"tail","nativeSrc":"17103:4:101","nodeType":"YulIdentifier","src":"17103:4:101"},{"name":"headStart","nativeSrc":"17109:9:101","nodeType":"YulIdentifier","src":"17109:9:101"}],"functionName":{"name":"sub","nativeSrc":"17099:3:101","nodeType":"YulIdentifier","src":"17099:3:101"},"nativeSrc":"17099:20:101","nodeType":"YulFunctionCall","src":"17099:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17072:6:101","nodeType":"YulIdentifier","src":"17072:6:101"},"nativeSrc":"17072:48:101","nodeType":"YulFunctionCall","src":"17072:48:101"},"nativeSrc":"17072:48:101","nodeType":"YulExpressionStatement","src":"17072:48:101"},{"nativeSrc":"17129:86:101","nodeType":"YulAssignment","src":"17129:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"17201:6:101","nodeType":"YulIdentifier","src":"17201:6:101"},{"name":"tail","nativeSrc":"17210:4:101","nodeType":"YulIdentifier","src":"17210:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"17137:63:101","nodeType":"YulIdentifier","src":"17137:63:101"},"nativeSrc":"17137:78:101","nodeType":"YulFunctionCall","src":"17137:78:101"},"variableNames":[{"name":"tail","nativeSrc":"17129:4:101","nodeType":"YulIdentifier","src":"17129:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16799:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16909:9:101","nodeType":"YulTypedName","src":"16909:9:101","type":""},{"name":"value1","nativeSrc":"16921:6:101","nodeType":"YulTypedName","src":"16921:6:101","type":""},{"name":"value0","nativeSrc":"16929:6:101","nodeType":"YulTypedName","src":"16929:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16940:4:101","nodeType":"YulTypedName","src":"16940:4:101","type":""}],"src":"16799:423:101"},{"body":{"nativeSrc":"17302:271:101","nodeType":"YulBlock","src":"17302:271:101","statements":[{"body":{"nativeSrc":"17348:83:101","nodeType":"YulBlock","src":"17348:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17350:77:101","nodeType":"YulIdentifier","src":"17350:77:101"},"nativeSrc":"17350:79:101","nodeType":"YulFunctionCall","src":"17350:79:101"},"nativeSrc":"17350:79:101","nodeType":"YulExpressionStatement","src":"17350:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17323:7:101","nodeType":"YulIdentifier","src":"17323:7:101"},{"name":"headStart","nativeSrc":"17332:9:101","nodeType":"YulIdentifier","src":"17332:9:101"}],"functionName":{"name":"sub","nativeSrc":"17319:3:101","nodeType":"YulIdentifier","src":"17319:3:101"},"nativeSrc":"17319:23:101","nodeType":"YulFunctionCall","src":"17319:23:101"},{"kind":"number","nativeSrc":"17344:2:101","nodeType":"YulLiteral","src":"17344:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17315:3:101","nodeType":"YulIdentifier","src":"17315:3:101"},"nativeSrc":"17315:32:101","nodeType":"YulFunctionCall","src":"17315:32:101"},"nativeSrc":"17312:119:101","nodeType":"YulIf","src":"17312:119:101"},{"nativeSrc":"17441:125:101","nodeType":"YulBlock","src":"17441:125:101","statements":[{"nativeSrc":"17456:15:101","nodeType":"YulVariableDeclaration","src":"17456:15:101","value":{"kind":"number","nativeSrc":"17470:1:101","nodeType":"YulLiteral","src":"17470:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17460:6:101","nodeType":"YulTypedName","src":"17460:6:101","type":""}]},{"nativeSrc":"17485:71:101","nodeType":"YulAssignment","src":"17485:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17528:9:101","nodeType":"YulIdentifier","src":"17528:9:101"},{"name":"offset","nativeSrc":"17539:6:101","nodeType":"YulIdentifier","src":"17539:6:101"}],"functionName":{"name":"add","nativeSrc":"17524:3:101","nodeType":"YulIdentifier","src":"17524:3:101"},"nativeSrc":"17524:22:101","nodeType":"YulFunctionCall","src":"17524:22:101"},{"name":"dataEnd","nativeSrc":"17548:7:101","nodeType":"YulIdentifier","src":"17548:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17495:28:101","nodeType":"YulIdentifier","src":"17495:28:101"},"nativeSrc":"17495:61:101","nodeType":"YulFunctionCall","src":"17495:61:101"},"variableNames":[{"name":"value0","nativeSrc":"17485:6:101","nodeType":"YulIdentifier","src":"17485:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"17228:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17272:9:101","nodeType":"YulTypedName","src":"17272:9:101","type":""},{"name":"dataEnd","nativeSrc":"17283:7:101","nodeType":"YulTypedName","src":"17283:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17295:6:101","nodeType":"YulTypedName","src":"17295:6:101","type":""}],"src":"17228:345:101"},{"body":{"nativeSrc":"17753:359:101","nodeType":"YulBlock","src":"17753:359:101","statements":[{"nativeSrc":"17763:26:101","nodeType":"YulAssignment","src":"17763:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17775:9:101","nodeType":"YulIdentifier","src":"17775:9:101"},{"kind":"number","nativeSrc":"17786:2:101","nodeType":"YulLiteral","src":"17786:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17771:3:101","nodeType":"YulIdentifier","src":"17771:3:101"},"nativeSrc":"17771:18:101","nodeType":"YulFunctionCall","src":"17771:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17763:4:101","nodeType":"YulIdentifier","src":"17763:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17843:6:101","nodeType":"YulIdentifier","src":"17843:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"17856:9:101","nodeType":"YulIdentifier","src":"17856:9:101"},{"kind":"number","nativeSrc":"17867:1:101","nodeType":"YulLiteral","src":"17867:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17852:3:101","nodeType":"YulIdentifier","src":"17852:3:101"},"nativeSrc":"17852:17:101","nodeType":"YulFunctionCall","src":"17852:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17799:43:101","nodeType":"YulIdentifier","src":"17799:43:101"},"nativeSrc":"17799:71:101","nodeType":"YulFunctionCall","src":"17799:71:101"},"nativeSrc":"17799:71:101","nodeType":"YulExpressionStatement","src":"17799:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"17924:6:101","nodeType":"YulIdentifier","src":"17924:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"17937:9:101","nodeType":"YulIdentifier","src":"17937:9:101"},{"kind":"number","nativeSrc":"17948:2:101","nodeType":"YulLiteral","src":"17948:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17933:3:101","nodeType":"YulIdentifier","src":"17933:3:101"},"nativeSrc":"17933:18:101","nodeType":"YulFunctionCall","src":"17933:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17880:43:101","nodeType":"YulIdentifier","src":"17880:43:101"},"nativeSrc":"17880:72:101","nodeType":"YulFunctionCall","src":"17880:72:101"},"nativeSrc":"17880:72:101","nodeType":"YulExpressionStatement","src":"17880:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17973:9:101","nodeType":"YulIdentifier","src":"17973:9:101"},{"kind":"number","nativeSrc":"17984:2:101","nodeType":"YulLiteral","src":"17984:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17969:3:101","nodeType":"YulIdentifier","src":"17969:3:101"},"nativeSrc":"17969:18:101","nodeType":"YulFunctionCall","src":"17969:18:101"},{"arguments":[{"name":"tail","nativeSrc":"17993:4:101","nodeType":"YulIdentifier","src":"17993:4:101"},{"name":"headStart","nativeSrc":"17999:9:101","nodeType":"YulIdentifier","src":"17999:9:101"}],"functionName":{"name":"sub","nativeSrc":"17989:3:101","nodeType":"YulIdentifier","src":"17989:3:101"},"nativeSrc":"17989:20:101","nodeType":"YulFunctionCall","src":"17989:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17962:6:101","nodeType":"YulIdentifier","src":"17962:6:101"},"nativeSrc":"17962:48:101","nodeType":"YulFunctionCall","src":"17962:48:101"},"nativeSrc":"17962:48:101","nodeType":"YulExpressionStatement","src":"17962:48:101"},{"nativeSrc":"18019:86:101","nodeType":"YulAssignment","src":"18019:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"18091:6:101","nodeType":"YulIdentifier","src":"18091:6:101"},{"name":"tail","nativeSrc":"18100:4:101","nodeType":"YulIdentifier","src":"18100:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"18027:63:101","nodeType":"YulIdentifier","src":"18027:63:101"},"nativeSrc":"18027:78:101","nodeType":"YulFunctionCall","src":"18027:78:101"},"variableNames":[{"name":"tail","nativeSrc":"18019:4:101","nodeType":"YulIdentifier","src":"18019:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17579:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17709:9:101","nodeType":"YulTypedName","src":"17709:9:101","type":""},{"name":"value2","nativeSrc":"17721:6:101","nodeType":"YulTypedName","src":"17721:6:101","type":""},{"name":"value1","nativeSrc":"17729:6:101","nodeType":"YulTypedName","src":"17729:6:101","type":""},{"name":"value0","nativeSrc":"17737:6:101","nodeType":"YulTypedName","src":"17737:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17748:4:101","nodeType":"YulTypedName","src":"17748:4:101","type":""}],"src":"17579:533:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ISfrxEthFraxOracle_$3595__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ISfrxEthFraxOracle_$3595_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint8(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid acess control manager ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5632":[{"length":32,"start":233},{"length":32,"start":614}],"5635":[{"length":32,"start":294},{"length":32,"start":529}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063cd6dc68711610063578063cd6dc687146101b0578063d5445950146101c3578063e30c3978146101d6578063f2fde38b146101e7575f80fd5b80638da5cb5b146101855780639fd1944f14610196578063b4a0bdf31461019f575f80fd5b80630e32cb86146100cf578063127cac45146100e457806335da603d1461012157806341976e0914610155578063715018a61461017557806379ba50971461017d575b5f80fd5b6100e26100dd366004610886565b6101fa565b005b61010b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108df565b60405180910390f35b6101487f000000000000000000000000000000000000000000000000000000000000000081565b60405161011891906108f6565b610168610163366004610886565b61020e565b604051610118919061090a565b6100e26103c2565b6100e26103d5565b6033546001600160a01b0316610148565b61016860c95481565b6097546001600160a01b031661010b565b6100e26101be366004610929565b610413565b6100e26101d1366004610963565b6104ed565b6065546001600160a01b0316610148565b6100e26101f5366004610886565b610557565b6102026105c8565b61020b816105f2565b50565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461026157604051630f58058360e11b815260040160405180910390fd5b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd9a548b6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e4919061099f565b92509250925082156103095760405163a40e329160e01b815260040160405180910390fd5b5f8261031e6002670de0b6b3a7640000610b0e565b6103289190610b35565b90505f8261033f6002670de0b6b3a7640000610b0e565b6103499190610b35565b905061035482610677565b61035d81610677565b5f81610371670de0b6b3a764000085610b48565b61037b9190610b35565b905060c9548111156103a05760405163280cb9ed60e11b815260040160405180910390fd5b60026103ac8385610b67565b6103b69190610b35565b98975050505050505050565b6103ca6105c8565b6103d35f610697565b565b60655433906001600160a01b0316811461040a5760405162461bcd60e51b815260040161040190610bc2565b60405180910390fd5b61020b81610697565b5f54610100900460ff161580801561043157505f54600160ff909116105b8061044a5750303b15801561044a57505f5460ff166001145b6104665760405162461bcd60e51b815260040161040190610c1c565b5f805460ff191660011790558015610487575f805461ff0019166101001790555b61049082610677565b610499836106b0565b60c982905580156104e8575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104df90600190610c3f565b60405180910390a15b505050565b61050e604051806060016040528060258152602001610e16602591396106e7565b61051781610677565b7f8d4d923222e4a17f030a7f3fe695e9e6c13b437df4b3b48c2332f584395aba9060c9548260405161054a929190610c4d565b60405180910390a160c955565b61055f6105c8565b606580546001600160a01b0383166001600160a01b031990911681179091556105906033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146103d35760405162461bcd60e51b815260040161040190610c68565b6001600160a01b0381166106185760405162461bcd60e51b815260040161040190610ce3565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09061066b9083908590610cf3565b60405180910390a15050565b805f0361020b5760405163273e150360e21b815260040160405180910390fd5b606580546001600160a01b031916905561020b81610782565b5f54610100900460ff166106d65760405162461bcd60e51b815260040161040190610d55565b6106de6107d3565b61020b81610801565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab906107199033908690600401610da1565b602060405180830381865afa158015610734573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190610dc1565b90508061077e57333083604051634a3fa29360e01b815260040161040193929190610ddf565b5050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166107f95760405162461bcd60e51b815260040161040190610d55565b6103d3610827565b5f54610100900460ff166102025760405162461bcd60e51b815260040161040190610d55565b5f54610100900460ff1661084d5760405162461bcd60e51b815260040161040190610d55565b6103d333610697565b5f6001600160a01b0382165b92915050565b61087181610856565b811461020b575f80fd5b803561086281610868565b5f60208284031215610899576108995f80fd5b5f6108a4848461087b565b949350505050565b5f6001600160a01b038216610862565b5f610862826108ac565b5f610862826108bc565b6108d9816108c6565b82525050565b6020810161086282846108d0565b6108d981610856565b6020810161086282846108ed565b806108d9565b602081016108628284610904565b80610871565b803561086281610918565b5f806040838503121561093d5761093d5f80fd5b5f610948858561087b565b92505060206109598582860161091e565b9150509250929050565b5f60208284031215610976576109765f80fd5b5f6108a4848461091e565b801515610871565b805161086281610981565b805161086281610918565b5f805f606084860312156109b4576109b45f80fd5b5f6109bf8686610989565b93505060206109d086828701610994565b92505060406109e186828701610994565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b80825b6001851115610a3e57808604811115610a1d57610a1d6109eb565b6001851615610a2b57908102905b8002610a378560011c90565b9450610a02565b94509492505050565b5f82610a5557506001610b07565b81610a6157505f610b07565b8160018114610a775760028114610a8157610aae565b6001915050610b07565b60ff841115610a9257610a926109eb565b8360020a915084821115610aa857610aa86109eb565b50610b07565b5060208310610133831016604e8410600b8410161715610ae1575081810a83811115610adc57610adc6109eb565b610b07565b610aee84848460016109ff565b92509050818404811115610b0457610b046109eb565b81025b9392505050565b5f60ff83169250610b075f198484610a47565b634e487b7160e01b5f52601260045260245ffd5b5f82610b4357610b43610b21565b500490565b818102808215838204851417610b6057610b606109eb565b5092915050565b80820180821115610862576108626109eb565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b6020808252810161086281610b7a565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150610bbb565b6020808252810161086281610bd2565b5f60ff8216610862565b6108d981610c2c565b602081016108628284610c36565b60408101610c5b8285610904565b610b076020830184610904565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610862565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150610bbb565b6020808252810161086281610ca2565b60408101610d0182856108ed565b610b0760208301846108ed565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610bbb565b6020808252810161086281610d0e565b8281835e505f910152565b5f610d79825190565b808452602084019350610d90818560208601610d65565b601f01601f19169290920192915050565b60408101610daf82856108ed565b81810360208301526108a48184610d70565b5f60208284031215610dd457610dd45f80fd5b5f6108a48484610989565b60608101610ded82866108ed565b610dfa60208301856108ed565b8181036040830152610e0c8184610d70565b9594505050505056fe7365744d6178416c6c6f7765645072696365446966666572656e63652875696e7432353629a26469706673582212202f4749ca7dc9cb45a8d74c0d8153cd6ee9a374652830f7078ce44e2dfe3f044c64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x88 JUMPI DUP1 PUSH4 0xCD6DC687 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xCD6DC687 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0xD5445950 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x9FD1944F EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x19F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x127CAC45 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x35DA603D EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x17D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xE2 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x8DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x148 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x8F6 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x163 CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x20E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x90A JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x3D5 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x148 JUMP JUMPDEST PUSH2 0x168 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x10B JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1BE CALLDATASIZE PUSH1 0x4 PUSH2 0x929 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x963 JUMP JUMPDEST PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x148 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x557 JUMP JUMPDEST PUSH2 0x202 PUSH2 0x5C8 JUMP JUMPDEST PUSH2 0x20B DUP2 PUSH2 0x5F2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x261 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBD9A548B 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 0x2C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x2E4 SWAP2 SWAP1 PUSH2 0x99F JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP DUP3 ISZERO PUSH2 0x309 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA40E3291 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x31E PUSH1 0x2 PUSH8 0xDE0B6B3A7640000 PUSH2 0xB0E JUMP JUMPDEST PUSH2 0x328 SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH2 0x33F PUSH1 0x2 PUSH8 0xDE0B6B3A7640000 PUSH2 0xB0E JUMP JUMPDEST PUSH2 0x349 SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP1 POP PUSH2 0x354 DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x35D DUP2 PUSH2 0x677 JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x371 PUSH8 0xDE0B6B3A7640000 DUP6 PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x37B SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP1 POP PUSH1 0xC9 SLOAD DUP2 GT ISZERO PUSH2 0x3A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x280CB9ED PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH2 0x3AC DUP4 DUP6 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x3B6 SWAP2 SWAP1 PUSH2 0xB35 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3CA PUSH2 0x5C8 JUMP JUMPDEST PUSH2 0x3D3 PUSH0 PUSH2 0x697 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x40A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xBC2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x20B DUP2 PUSH2 0x697 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x431 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x44A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x44A JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x466 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xC1C JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x490 DUP3 PUSH2 0x677 JUMP JUMPDEST PUSH2 0x499 DUP4 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x4E8 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x4DF SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xC3F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x50E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE16 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x6E7 JUMP JUMPDEST PUSH2 0x517 DUP2 PUSH2 0x677 JUMP JUMPDEST PUSH32 0x8D4D923222E4A17F030A7F3FE695E9E6C13B437DF4B3B48C2332F584395ABA90 PUSH1 0xC9 SLOAD DUP3 PUSH1 0x40 MLOAD PUSH2 0x54A SWAP3 SWAP2 SWAP1 PUSH2 0xC4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xC9 SSTORE JUMP JUMPDEST PUSH2 0x55F PUSH2 0x5C8 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x590 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xC68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x618 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xCE3 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x66B SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 PUSH0 SUB PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH4 0x273E1503 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x20B DUP2 PUSH2 0x782 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x6D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH2 0x6DE PUSH2 0x7D3 JUMP JUMPDEST PUSH2 0x20B DUP2 PUSH2 0x801 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x719 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x734 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x758 SWAP2 SWAP1 PUSH2 0xDC1 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x77E JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDDF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x7F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x827 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x202 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x84D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x401 SWAP1 PUSH2 0xD55 JUMP JUMPDEST PUSH2 0x3D3 CALLER PUSH2 0x697 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x871 DUP2 PUSH2 0x856 JUMP JUMPDEST DUP2 EQ PUSH2 0x20B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x862 DUP2 PUSH2 0x868 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x899 JUMPI PUSH2 0x899 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8A4 DUP5 DUP5 PUSH2 0x87B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x862 JUMP JUMPDEST PUSH0 PUSH2 0x862 DUP3 PUSH2 0x8AC JUMP JUMPDEST PUSH0 PUSH2 0x862 DUP3 PUSH2 0x8BC JUMP JUMPDEST PUSH2 0x8D9 DUP2 PUSH2 0x8C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0x8D0 JUMP JUMPDEST PUSH2 0x8D9 DUP2 PUSH2 0x856 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0x8ED JUMP JUMPDEST DUP1 PUSH2 0x8D9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0x904 JUMP JUMPDEST DUP1 PUSH2 0x871 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x862 DUP2 PUSH2 0x918 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x93D JUMPI PUSH2 0x93D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x948 DUP6 DUP6 PUSH2 0x87B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x959 DUP6 DUP3 DUP7 ADD PUSH2 0x91E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x976 JUMPI PUSH2 0x976 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8A4 DUP5 DUP5 PUSH2 0x91E JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x871 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x862 DUP2 PUSH2 0x981 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x862 DUP2 PUSH2 0x918 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x9B4 JUMPI PUSH2 0x9B4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9BF DUP7 DUP7 PUSH2 0x989 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x9D0 DUP7 DUP3 DUP8 ADD PUSH2 0x994 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x9E1 DUP7 DUP3 DUP8 ADD PUSH2 0x994 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xA3E JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xA1D JUMPI PUSH2 0xA1D PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xA2B JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xA37 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xA02 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xA55 JUMPI POP PUSH1 0x1 PUSH2 0xB07 JUMP JUMPDEST DUP2 PUSH2 0xA61 JUMPI POP PUSH0 PUSH2 0xB07 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xA77 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xA81 JUMPI PUSH2 0xAAE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xB07 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xA92 JUMPI PUSH2 0xA92 PUSH2 0x9EB JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xAA8 JUMPI PUSH2 0xAA8 PUSH2 0x9EB JUMP JUMPDEST POP PUSH2 0xB07 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xAE1 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xADC JUMPI PUSH2 0xADC PUSH2 0x9EB JUMP JUMPDEST PUSH2 0xB07 JUMP JUMPDEST PUSH2 0xAEE DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x9FF JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xB04 JUMPI PUSH2 0xB04 PUSH2 0x9EB JUMP JUMPDEST DUP2 MUL JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP4 AND SWAP3 POP PUSH2 0xB07 PUSH0 NOT DUP5 DUP5 PUSH2 0xA47 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB43 JUMPI PUSH2 0xB43 PUSH2 0xB21 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB60 JUMPI PUSH2 0xB60 PUSH2 0x9EB JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x862 JUMPI PUSH2 0x862 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBBB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xBD2 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x862 JUMP JUMPDEST PUSH2 0x8D9 DUP2 PUSH2 0xC2C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x862 DUP3 DUP5 PUSH2 0xC36 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xC5B DUP3 DUP6 PUSH2 0x904 JUMP JUMPDEST PUSH2 0xB07 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x904 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x862 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBBB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xCA2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD01 DUP3 DUP6 PUSH2 0x8ED JUMP JUMPDEST PUSH2 0xB07 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8ED JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBBB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x862 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD79 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD90 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD65 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xDAF DUP3 DUP6 PUSH2 0x8ED JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8A4 DUP2 DUP5 PUSH2 0xD70 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDD4 JUMPI PUSH2 0xDD4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8A4 DUP5 DUP5 PUSH2 0x989 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xDED DUP3 DUP7 PUSH2 0x8ED JUMP JUMPDEST PUSH2 0xDFA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x8ED JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xE0C DUP2 DUP5 PUSH2 0xD70 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID PUSH20 0x65744D6178416C6C6F7765645072696365446966 PUSH7 0x6572656E636528 PUSH22 0x696E7432353629A26469706673582212202F4749CA7D 0xC9 0xCB GASLIMIT 0xA8 0xD7 0x4C 0xD DUP2 MSTORE8 0xCD PUSH15 0xE9A374652830F7078CE44E2DFE3F04 0x4C PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"636:4081:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2102:147:15;;;;;;:::i;:::-;;:::i;:::-;;815:55:57;;;;;;;;;;;;:::i;:::-;;;;;;;;978:32;;;;;;;;;;;;:::i;3892:823::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2085:101:4:-;;;:::i;2031:212:3:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;1066:40:57;;;;;;2345:125:15;2442:21;;-1:-1:-1;;;;;2442:21:15;2345:125;;2416:258:57;;;;;;:::i;:::-;;:::i;2918:383::-;;;;;;:::i;:::-;;:::i;1144:99:3:-;1223:13;;-1:-1:-1;;;;;1223:13:3;1144:99;;1436:178;;;;;;:::i;:::-;;:::i;2102:147:15:-;1355:13:4;:11;:13::i;:::-;2195:47:15::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;3892:823:57:-;3948:7;3980;-1:-1:-1;;;;;3971:16:57;:5;-1:-1:-1;;;;;3971:16:57;;3967:50;;3996:21;;-1:-1:-1;;;3996:21:57;;;;;;;;;;;3967:50;4029:14;4045:16;4063:17;4084:19;-1:-1:-1;;;;;4084:29:57;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4028:87;;;;;;4130:9;4126:36;;;4148:14;;-1:-1:-1;;;4148:14:57;;;;;;;;;;;4126:36;4207:22;4251:8;4233:14;4246:1;186:4:17;4233:14:57;:::i;:::-;4232:27;;;;:::i;:::-;4207:52;-1:-1:-1;4269:21:57;4312:9;4294:14;4307:1;186:4:17;4294:14:57;:::i;:::-;4293:28;;;;:::i;:::-;4269:52;;4332:34;4351:14;4332:18;:34::i;:::-;4376:33;4395:13;4376:18;:33::i;:::-;4457:18;4509:13;4479:26;186:4:17;4479:14:57;:26;:::i;:::-;4478:44;;;;:::i;:::-;4457:65;;4549:25;;4536:10;:38;4532:76;;;4583:25;;-1:-1:-1;;;4583:25:57;;;;;;;;;;;4532:76;4707:1;4673:30;4690:13;4673:14;:30;:::i;:::-;4672:36;;;;:::i;:::-;4665:43;3892:823;-1:-1:-1;;;;;;;;3892:823:57:o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:3:-;1223:13;;965:10:8;;-1:-1:-1;;;;;1223:13:3;2130:24;;2122:78;;;;-1:-1:-1;;;2122:78:3;;;;;;;:::i;:::-;;;;;;;;;2210:26;2229:6;2210:18;:26::i;2416:258:57:-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;2517:46:57::1;2536:26;2517:18;:46::i;:::-;2574:29;2598:4;2574:23;:29::i;:::-;2613:25;:54:::0;;;3647:99:5;;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3647:99;3269:483;2416:258:57;;:::o;2918:383::-;3011:60;;;;;;;;;;;;;;;;;;:19;:60::i;:::-;3081:46;3100:26;3081:18;:46::i;:::-;3143:87;3176:25;;3203:26;3143:87;;;;;;;:::i;:::-;;;;;;;;3240:25;:54;2918:383::o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1525::3::1;:24:::0;;-1:-1:-1;;;;;1525:24:3;::::1;-1:-1:-1::0;;;;;;1525:24:3;;::::1;::::0;::::1;::::0;;;1589:7:::1;1534:6:4::0;;-1:-1:-1;;;;;1534:6:4;;1462:85;1589:7:3::1;-1:-1:-1::0;;;;;1564:43:3::1;;;;;;;;;;;1436:178:::0;:::o;1620:130:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2641:425:15:-;-1:-1:-1;;;;;2733:44:15;;2725:94;;;;-1:-1:-1;;;2725:94:15;;;;;;;:::i;:::-;2871:21;;;-1:-1:-1;;;;;2903:70:15;;;-1:-1:-1;;;;;;2903:70:15;;;;;;2988:71;;2871:21;;;2988:71;;;;2871:21;;2951;;2988:71;:::i;:::-;;;;;;;;2715:351;2641:425;:::o;802:119:18:-;861:6;871:1;861:11;857:62;;891:21;;-1:-1:-1;;;891:21:18;;;;;;;;;;;1798:153:3;1887:13;1880:20;;-1:-1:-1;;;;;;1880:20:3;;;1910:34;1935:8;1910:24;:34::i;1419:194:15:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1519:21:15::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;3203:282::-:0;3304:21;;:60;;-1:-1:-1;;;3304:60:15;;3281:20;;-1:-1:-1;;;;;3304:21:15;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;-1:-1:-1;;;3418:50:15;;;;;;;;;;:::i;3375:104::-;3271:214;3203:282;:::o;2687:187:4:-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;889:100:3:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;956:26:3::1;:24;:26::i;1619:164:15:-:0;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;1125:111:4:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;466:96:101:-:0;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;636:4081:57;;;955:79:101;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:101:o;1242:142::-;1292:9;-1:-1:-1;;;;;400:54:101;;1325:53;334:126;1390;1440:9;1473:37;1504:5;1473:37;:::i;1522:153::-;1599:9;1632:37;1663:5;1632:37;:::i;1681:185::-;1795:64;1853:5;1795:64;:::i;:::-;1790:3;1783:77;1681:185;;:::o;1872:276::-;2030:2;2015:18;;2043:98;2019:9;2114:6;2043:98;:::i;2154:118::-;2241:24;2259:5;2241:24;:::i;2278:222::-;2409:2;2394:18;;2422:71;2398:9;2466:6;2422:71;:::i;2589:118::-;2694:5;2676:24;1176:60;2713:222;2844:2;2829:18;;2857:71;2833:9;2901:6;2857:71;:::i;3598:122::-;3689:5;3671:24;1176:60;3726:139;3797:20;;3826:33;3797:20;3826:33;:::i;3871:474::-;3939:6;3947;3996:2;3984:9;3975:7;3971:23;3967:32;3964:119;;;4002:79;636:4081:57;;;4002:79:101;4122:1;4147:53;4192:7;4172:9;4147:53;:::i;:::-;4137:63;;4093:117;4249:2;4275:53;4320:7;4311:6;4300:9;4296:22;4275:53;:::i;:::-;4265:63;;4220:118;3871:474;;;;;:::o;4351:329::-;4410:6;4459:2;4447:9;4438:7;4434:23;4430:32;4427:119;;;4465:79;636:4081:57;;;4465:79:101;4585:1;4610:53;4655:7;4635:9;4610:53;:::i;4782:116::-;4756:13;;4749:21;4852;4686:90;4904:137;4983:13;;5005:30;4983:13;5005:30;:::i;5047:143::-;5129:13;;5151:33;5129:13;5151:33;:::i;5196:657::-;5281:6;5289;5297;5346:2;5334:9;5325:7;5321:23;5317:32;5314:119;;;5352:79;636:4081:57;;;5352:79:101;5472:1;5497:61;5550:7;5530:9;5497:61;:::i;:::-;5487:71;;5443:125;5607:2;5633:64;5689:7;5680:6;5669:9;5665:22;5633:64;:::i;:::-;5623:74;;5578:129;5746:2;5772:64;5828:7;5819:6;5808:9;5804:22;5772:64;:::i;:::-;5762:74;;5717:129;5196:657;;;;;:::o;5859:180::-;-1:-1:-1;;;5904:1:101;5897:88;6004:4;6001:1;5994:15;6028:4;6025:1;6018:15;6153:848;6245:6;6269:5;6283:712;6304:1;6294:8;6291:15;6283:712;;;6399:4;6394:3;6390:14;6384:4;6381:24;6378:50;;;6408:18;;:::i;:::-;6458:1;6448:8;6444:16;6441:451;;;6862:16;;;;6441:451;6913:15;;6953:32;6976:8;6131:1;6127:13;;6045:102;6953:32;6941:44;;6283:712;;;6153:848;;;;;;;:::o;7007:1073::-;7061:5;7252:8;7242:40;;-1:-1:-1;7273:1:101;7275:5;;7242:40;7301:4;7291:36;;-1:-1:-1;7318:1:101;7320:5;;7291:36;7387:4;7435:1;7430:27;;;;7471:1;7466:191;;;;7380:277;;7430:27;7448:1;7439:10;;7450:5;;;7466:191;7511:3;7501:8;7498:17;7495:43;;;7518:18;;:::i;:::-;7567:8;7564:1;7560:16;7551:25;;7602:3;7595:5;7592:14;7589:40;;;7609:18;;:::i;:::-;7642:5;;;7380:277;;7766:2;7756:8;7753:16;7747:3;7741:4;7738:13;7734:36;7716:2;7706:8;7703:16;7698:2;7692:4;7689:12;7685:35;7669:111;7666:246;;;-1:-1:-1;7812:19:101;;;7847:14;;;7844:40;;;7864:18;;:::i;:::-;7897:5;;7666:246;7937:42;7975:3;7965:8;7959:4;7956:1;7937:42;:::i;:::-;7922:57;;;;8011:4;8006:3;8002:14;7995:5;7992:25;7989:51;;;8020:18;;:::i;:::-;8058:16;;7007:1073;;;;;;:::o;8178:281::-;8236:5;8161:4;8150:16;;8292:37;;8348:104;-1:-1:-1;;8375:8:101;8369:4;8348:104;:::i;8465:180::-;-1:-1:-1;;;8510:1:101;8503:88;8610:4;8607:1;8600:15;8634:4;8631:1;8624:15;8651:185;8691:1;8781;8771:35;;8786:18;;:::i;:::-;-1:-1:-1;8821:9:101;;8651:185::o;8842:410::-;8987:9;;;;9149;;9182:15;;;9176:22;;9129:83;9106:139;;9225:18;;:::i;:::-;8890:362;8842:410;;;;:::o;9258:191::-;9387:9;;;9409:10;;;9406:36;;;9422:18;;:::i;9864:366::-;10091:2;9561:19;;10006:3;9613:4;9604:14;;9770:34;9747:58;;-1:-1:-1;;;9834:2:101;9822:15;;9815:36;10020:74;-1:-1:-1;10103:93:101;-1:-1:-1;10221:2:101;10212:12;;9864:366::o;10236:419::-;10440:2;10453:47;;;10425:18;;10517:131;10425:18;10517:131;:::i;10900:366::-;11127:2;9561:19;;11042:3;9613:4;9604:14;;10801:34;10778:58;;-1:-1:-1;;;10865:2:101;10853:15;;10846:41;11056:74;-1:-1:-1;11139:93:101;10661:233;11272:419;11476:2;11489:47;;;11461:18;;11553:131;11461:18;11553:131;:::i;11788:154::-;11844:9;8161:4;8150:16;;11877:59;8086:86;11948:143;12041:43;12078:5;12041:43;:::i;12097:234::-;12234:2;12219:18;;12247:77;12223:9;12297:6;12247:77;:::i;12337:332::-;12496:2;12481:18;;12509:71;12485:9;12553:6;12509:71;:::i;:::-;12590:72;12658:2;12647:9;12643:18;12634:6;12590:72;:::i;13235:419::-;13439:2;13452:47;;;13424:18;;;9561:19;;;12815:34;9604:14;;;12792:58;13211:12;;;13516:131;12863:366;13890;14117:2;9561:19;;14032:3;9613:4;9604:14;;13800:34;13777:58;;-1:-1:-1;;;13864:2:101;13852:15;;13845:32;14046:74;-1:-1:-1;14129:93:101;13660:224;14262:419;14466:2;14479:47;;;14451:18;;14543:131;14451:18;14543:131;:::i;14687:332::-;14846:2;14831:18;;14859:71;14835:9;14903:6;14859:71;:::i;:::-;14940:72;15008:2;14997:9;14993:18;14984:6;14940:72;:::i;15261:366::-;15488:2;9561:19;;15403:3;9613:4;9604:14;;15165:34;15142:58;;-1:-1:-1;;;15229:2:101;15217:15;;15210:38;15417:74;-1:-1:-1;15500:93:101;15025:230;15633:419;15837:2;15850:47;;;15822:18;;15914:131;15822:18;15914:131;:::i;16163:139::-;16252:6;16247:3;16242;16236:23;-1:-1:-1;16293:1:101;16275:16;;16268:27;16163:139::o;16416:377::-;16504:3;16532:39;16565:5;16138:12;;16058:99;16532:39;9561:19;;;9613:4;9604:14;;16580:78;;16667:65;16725:6;16720:3;16713:4;16706:5;16702:16;16667:65;:::i;:::-;16400:2;16380:14;-1:-1:-1;;16376:28:101;16748:39;;;;;;-1:-1:-1;;16416:377:101:o;16799:423::-;16978:2;16963:18;;16991:71;16967:9;17035:6;16991:71;:::i;:::-;17109:9;17103:4;17099:20;17094:2;17083:9;17079:18;17072:48;17137:78;17210:4;17201:6;17137:78;:::i;17228:345::-;17295:6;17344:2;17332:9;17323:7;17319:23;17315:32;17312:119;;;17350:79;636:4081:57;;;17350:79:101;17470:1;17495:61;17548:7;17528:9;17495:61;:::i;17579:533::-;17786:2;17771:18;;17799:71;17775:9;17843:6;17799:71;:::i;:::-;17880:72;17948:2;17937:9;17933:18;17924:6;17880:72;:::i;:::-;17999:9;17993:4;17989:20;17984:2;17973:9;17969:18;17962:48;18027:78;18100:4;18091:6;18027:78;:::i;:::-;18019:86;17579:533;-1:-1:-1;;;;;17579:533:101:o"},"gasEstimates":{"creation":{"codeDepositCost":"739200","executionCost":"infinite","totalCost":"infinite"},"external":{"SFRXETH()":"infinite","SFRXETH_FRAX_ORACLE()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"infinite","getPrice(address)":"infinite","initialize(address,uint256)":"infinite","maxAllowedPriceDifference()":"2416","owner()":"infinite","pendingOwner()":"infinite","renounceOwnership()":"infinite","setAccessControlManager(address)":"infinite","setMaxAllowedPriceDifference(uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"SFRXETH()":"35da603d","SFRXETH_FRAX_ORACLE()":"127cac45","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","getPrice(address)":"41976e09","initialize(address,uint256)":"cd6dc687","maxAllowedPriceDifference()":"9fd1944f","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setMaxAllowedPriceDifference(uint256)":"d5445950","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sfrxEthFraxOracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sfrxETH\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BadPriceData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PriceDifferenceExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxAllowedPriceDifference\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxAllowedPriceDifference\",\"type\":\"uint256\"}],\"name\":\"MaxAllowedPriceDifferenceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SFRXETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SFRXETH_FRAX_ORACLE\",\"outputs\":[{\"internalType\":\"contract ISfrxEthFraxOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_acm\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_maxAllowedPriceDifference\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAllowedPriceDifference\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxAllowedPriceDifference\",\"type\":\"uint256\"}],\"name\":\"setMaxAllowedPriceDifference\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:error\":\"ZeroAddressNotAllowed is thrown when `_sfrxEthFraxOracle` or `_sfrxETH` are the zero address\",\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress is thrown when the `asset` is not the sfrxETH token (`SFRXETH`)BadPriceData is thrown if the `SFRXETH_FRAX_ORACLE` oracle informs it has bad dataZeroValueNotAllowed is thrown if the prices (low or high, in USD) are zeroPriceDifferenceExceeded is thrown if priceHigh/priceLow is greater than `maxAllowedPriceDifference`\",\"params\":{\"asset\":\"Address of the sfrxETH token\"},\"returns\":{\"_0\":\"price The price scaled by 1e18\"}},\"initialize(address,uint256)\":{\"custom:error\":\"ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero\",\"params\":{\"_acm\":\"Address of the access control manager contract\",\"_maxAllowedPriceDifference\":\"Maximum allowed price difference\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setMaxAllowedPriceDifference(uint256)\":{\"custom:error\":\"ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero\",\"params\":{\"_maxAllowedPriceDifference\":\"Maximum allowed price difference\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"SFRXETH\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"SFRXETH_FRAX_ORACLE\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"SFrxETHOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"BadPriceData()\":[{\"notice\":\"Thrown if the price data is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"PriceDifferenceExceeded()\":[{\"notice\":\"Thrown if the price difference exceeds the allowed limit\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}],\"ZeroValueNotAllowed()\":[{\"notice\":\"Thrown if the supplied value is 0 where it is not allowed\"}]},\"events\":{\"MaxAllowedPriceDifferenceUpdated(uint256,uint256)\":{\"notice\":\"Emits when the maximum allowed price difference is updated\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"SFRXETH()\":{\"notice\":\"Address of sfrxETH\"},\"SFRXETH_FRAX_ORACLE()\":{\"notice\":\"Address of SfrxEthFraxOracle\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getPrice(address)\":{\"notice\":\"Fetches the USD price of sfrxETH\"},\"initialize(address,uint256)\":{\"notice\":\"Sets the contracts required to fetch prices\"},\"maxAllowedPriceDifference()\":{\"notice\":\"Maximum allowed price difference\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setMaxAllowedPriceDifference(uint256)\":{\"notice\":\"Sets the maximum allowed price difference\"}},\"notice\":\"This oracle fetches the price of sfrxETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/SFrxETHOracle.sol\":\"SFrxETHOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ISfrxEthFraxOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISfrxEthFraxOracle {\\n    function getPrices() external view returns (bool _isbadData, uint256 _priceLow, uint256 _priceHigh);\\n}\\n\",\"keccak256\":\"0x1444fbcfe658b985041e7ca5da6cce92fd143ca46d9793316ab2ef542fbde87a\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/SFrxETHOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { ISfrxEthFraxOracle } from \\\"../interfaces/ISfrxEthFraxOracle.sol\\\";\\nimport { ensureNonzeroAddress, ensureNonzeroValue } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { AccessControlledV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\\\";\\nimport { OracleInterface } from \\\"../interfaces/OracleInterface.sol\\\";\\n\\n/**\\n * @title SFrxETHOracle\\n * @author Venus\\n * @notice This oracle fetches the price of sfrxETH\\n */\\ncontract SFrxETHOracle is AccessControlledV8, OracleInterface {\\n    /// @notice Address of SfrxEthFraxOracle\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    ISfrxEthFraxOracle public immutable SFRXETH_FRAX_ORACLE;\\n\\n    /// @notice Address of sfrxETH\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    address public immutable SFRXETH;\\n\\n    /// @notice Maximum allowed price difference\\n    uint256 public maxAllowedPriceDifference;\\n\\n    /// @notice Emits when the maximum allowed price difference is updated\\n    event MaxAllowedPriceDifferenceUpdated(uint256 oldMaxAllowedPriceDifference, uint256 newMaxAllowedPriceDifference);\\n\\n    /// @notice Thrown if the price data is invalid\\n    error BadPriceData();\\n\\n    /// @notice Thrown if the price difference exceeds the allowed limit\\n    error PriceDifferenceExceeded();\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Constructor for the implementation contract.\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    /// @custom:error ZeroAddressNotAllowed is thrown when `_sfrxEthFraxOracle` or `_sfrxETH` are the zero address\\n    constructor(address _sfrxEthFraxOracle, address _sfrxETH) {\\n        ensureNonzeroAddress(_sfrxEthFraxOracle);\\n        ensureNonzeroAddress(_sfrxETH);\\n\\n        SFRXETH_FRAX_ORACLE = ISfrxEthFraxOracle(_sfrxEthFraxOracle);\\n        SFRXETH = _sfrxETH;\\n\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Sets the contracts required to fetch prices\\n     * @param _acm Address of the access control manager contract\\n     * @param _maxAllowedPriceDifference Maximum allowed price difference\\n     * @custom:error ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero\\n     */\\n    function initialize(address _acm, uint256 _maxAllowedPriceDifference) external initializer {\\n        ensureNonzeroValue(_maxAllowedPriceDifference);\\n\\n        __AccessControlled_init(_acm);\\n        maxAllowedPriceDifference = _maxAllowedPriceDifference;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum allowed price difference\\n     * @param _maxAllowedPriceDifference Maximum allowed price difference\\n     * @custom:error ZeroValueNotAllowed is thrown if `_maxAllowedPriceDifference` is zero\\n     */\\n    function setMaxAllowedPriceDifference(uint256 _maxAllowedPriceDifference) external {\\n        _checkAccessAllowed(\\\"setMaxAllowedPriceDifference(uint256)\\\");\\n        ensureNonzeroValue(_maxAllowedPriceDifference);\\n\\n        emit MaxAllowedPriceDifferenceUpdated(maxAllowedPriceDifference, _maxAllowedPriceDifference);\\n        maxAllowedPriceDifference = _maxAllowedPriceDifference;\\n    }\\n\\n    /**\\n     * @notice Fetches the USD price of sfrxETH\\n     * @param asset Address of the sfrxETH token\\n     * @return price The price scaled by 1e18\\n     * @custom:error InvalidTokenAddress is thrown when the `asset` is not the sfrxETH token (`SFRXETH`)\\n     * @custom:error BadPriceData is thrown if the `SFRXETH_FRAX_ORACLE` oracle informs it has bad data\\n     * @custom:error ZeroValueNotAllowed is thrown if the prices (low or high, in USD) are zero\\n     * @custom:error PriceDifferenceExceeded is thrown if priceHigh/priceLow is greater than `maxAllowedPriceDifference`\\n     */\\n    function getPrice(address asset) external view returns (uint256) {\\n        if (asset != SFRXETH) revert InvalidTokenAddress();\\n\\n        (bool isBadData, uint256 priceLow, uint256 priceHigh) = SFRXETH_FRAX_ORACLE.getPrices();\\n\\n        if (isBadData) revert BadPriceData();\\n\\n        // calculate price in USD\\n        uint256 priceHighInUSD = (EXP_SCALE ** 2) / priceLow;\\n        uint256 priceLowInUSD = (EXP_SCALE ** 2) / priceHigh;\\n\\n        ensureNonzeroValue(priceHighInUSD);\\n        ensureNonzeroValue(priceLowInUSD);\\n\\n        // validate price difference\\n        uint256 difference = (priceHighInUSD * EXP_SCALE) / priceLowInUSD;\\n        if (difference > maxAllowedPriceDifference) revert PriceDifferenceExceeded();\\n\\n        // calculate and return average price\\n        return (priceHighInUSD + priceLowInUSD) / 2;\\n    }\\n}\\n\",\"keccak256\":\"0xea4740b6629d3cb39eb9652d51b8e02a58cce3620142625881c367b3e484fd92\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1940,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)2125"},{"astId":1945,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":5638,"contract":"contracts/oracles/SFrxETHOracle.sol:SFrxETHOracle","label":"maxAllowedPriceDifference","offset":0,"slot":"201","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)2125":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"BadPriceData()":[{"notice":"Thrown if the price data is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"PriceDifferenceExceeded()":[{"notice":"Thrown if the price difference exceeds the allowed limit"}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}],"ZeroValueNotAllowed()":[{"notice":"Thrown if the supplied value is 0 where it is not allowed"}]},"events":{"MaxAllowedPriceDifferenceUpdated(uint256,uint256)":{"notice":"Emits when the maximum allowed price difference is updated"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"SFRXETH()":{"notice":"Address of sfrxETH"},"SFRXETH_FRAX_ORACLE()":{"notice":"Address of SfrxEthFraxOracle"},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"constructor":{"notice":"Constructor for the implementation contract."},"getPrice(address)":{"notice":"Fetches the USD price of sfrxETH"},"initialize(address,uint256)":{"notice":"Sets the contracts required to fetch prices"},"maxAllowedPriceDifference()":{"notice":"Maximum allowed price difference"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setMaxAllowedPriceDifference(uint256)":{"notice":"Sets the maximum allowed price difference"}},"notice":"This oracle fetches the price of sfrxETH","version":1}}},"contracts/oracles/SequencerChainlinkOracle.sol":{"SequencerChainlinkOracle":{"abi":[{"inputs":[{"internalType":"contract AggregatorV3Interface","name":"_sequencer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousPriceMantissa","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPriceMantissa","type":"uint256"}],"name":"PricePosted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"feed","type":"address"},{"indexed":false,"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"name":"TokenConfigAdded","type":"event"},{"inputs":[],"name":"GRACE_PERIOD_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"prices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sequencer","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setDirectPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"internalType":"struct ChainlinkOracle.TokenConfig","name":"tokenConfig","type":"tuple"}],"name":"setTokenConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"internalType":"struct ChainlinkOracle.TokenConfig[]","name":"tokenConfigs_","type":"tuple[]"}],"name":"setTokenConfigs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenConfigs","outputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"feed","type":"address"},{"internalType":"uint256","name":"maxStalePeriod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor","params":{"_sequencer":"L2 sequencer"}},"getPrice(address)":{"params":{"asset":"Address of the asset"},"returns":{"_0":"Price in USD from Chainlink or a manually set price for the asset"}},"initialize(address)":{"params":{"accessControlManager_":"Address of the access control manager contract"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setDirectPrice(address,uint256)":{"custom:access":"Only Governance","custom:event":"Emits PricePosted event on successfully setup of asset price","params":{"asset":"Asset address","price":"Asset price in 18 decimals"}},"setTokenConfig((address,address,uint256))":{"custom:access":"Only Governance","custom:error":"NotNullAddress error is thrown if asset address is nullNotNullAddress error is thrown if token feed address is nullRange error is thrown if maxStale period of token is not greater than zero","custom:event":"Emits TokenConfigAdded event on successfully setting of the token config","params":{"tokenConfig":"Token config struct"}},"setTokenConfigs((address,address,uint256)[])":{"custom:access":"Only Governance","custom:error":"Zero length error thrown, if length of the array in parameter is 0","params":{"tokenConfigs_":"config array"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"sequencer":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"Sequencer Chain Link Oracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_4761":{"entryPoint":null,"id":4761,"parameterSlots":0,"returnSlots":0},"@_5856":{"entryPoint":null,"id":5856,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_492":{"entryPoint":118,"id":492,"parameterSlots":0,"returnSlots":0},"abi_decode_t_contract$_AggregatorV3Interface_$102_fromMemory":{"entryPoint":291,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_AggregatorV3Interface_$102_fromMemory":{"entryPoint":302,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":340,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":382,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":457,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":241,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_AggregatorV3Interface_$102":{"entryPoint":259,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_AggregatorV3Interface_$102":{"entryPoint":269,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4103:101","nodeType":"YulBlock","src":"0:4103:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"642:51:101","nodeType":"YulBlock","src":"642:51:101","statements":[{"nativeSrc":"652:35:101","nodeType":"YulAssignment","src":"652:35:101","value":{"arguments":[{"name":"value","nativeSrc":"681:5:101","nodeType":"YulIdentifier","src":"681:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"663:17:101","nodeType":"YulIdentifier","src":"663:17:101"},"nativeSrc":"663:24:101","nodeType":"YulFunctionCall","src":"663:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"652:7:101","nodeType":"YulIdentifier","src":"652:7:101"}]}]},"name":"cleanup_t_contract$_AggregatorV3Interface_$102","nativeSrc":"568:125:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"624:5:101","nodeType":"YulTypedName","src":"624:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"634:7:101","nodeType":"YulTypedName","src":"634:7:101","type":""}],"src":"568:125:101"},{"body":{"nativeSrc":"771:108:101","nodeType":"YulBlock","src":"771:108:101","statements":[{"body":{"nativeSrc":"857:16:101","nodeType":"YulBlock","src":"857:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"866:1:101","nodeType":"YulLiteral","src":"866:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"869:1:101","nodeType":"YulLiteral","src":"869:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"859:6:101","nodeType":"YulIdentifier","src":"859:6:101"},"nativeSrc":"859:12:101","nodeType":"YulFunctionCall","src":"859:12:101"},"nativeSrc":"859:12:101","nodeType":"YulExpressionStatement","src":"859:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"794:5:101","nodeType":"YulIdentifier","src":"794:5:101"},{"arguments":[{"name":"value","nativeSrc":"848:5:101","nodeType":"YulIdentifier","src":"848:5:101"}],"functionName":{"name":"cleanup_t_contract$_AggregatorV3Interface_$102","nativeSrc":"801:46:101","nodeType":"YulIdentifier","src":"801:46:101"},"nativeSrc":"801:53:101","nodeType":"YulFunctionCall","src":"801:53:101"}],"functionName":{"name":"eq","nativeSrc":"791:2:101","nodeType":"YulIdentifier","src":"791:2:101"},"nativeSrc":"791:64:101","nodeType":"YulFunctionCall","src":"791:64:101"}],"functionName":{"name":"iszero","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"},"nativeSrc":"784:72:101","nodeType":"YulFunctionCall","src":"784:72:101"},"nativeSrc":"781:92:101","nodeType":"YulIf","src":"781:92:101"}]},"name":"validator_revert_t_contract$_AggregatorV3Interface_$102","nativeSrc":"699:180:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"764:5:101","nodeType":"YulTypedName","src":"764:5:101","type":""}],"src":"699:180:101"},{"body":{"nativeSrc":"977:109:101","nodeType":"YulBlock","src":"977:109:101","statements":[{"nativeSrc":"987:22:101","nodeType":"YulAssignment","src":"987:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1002:6:101","nodeType":"YulIdentifier","src":"1002:6:101"}],"functionName":{"name":"mload","nativeSrc":"996:5:101","nodeType":"YulIdentifier","src":"996:5:101"},"nativeSrc":"996:13:101","nodeType":"YulFunctionCall","src":"996:13:101"},"variableNames":[{"name":"value","nativeSrc":"987:5:101","nodeType":"YulIdentifier","src":"987:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1074:5:101","nodeType":"YulIdentifier","src":"1074:5:101"}],"functionName":{"name":"validator_revert_t_contract$_AggregatorV3Interface_$102","nativeSrc":"1018:55:101","nodeType":"YulIdentifier","src":"1018:55:101"},"nativeSrc":"1018:62:101","nodeType":"YulFunctionCall","src":"1018:62:101"},"nativeSrc":"1018:62:101","nodeType":"YulExpressionStatement","src":"1018:62:101"}]},"name":"abi_decode_t_contract$_AggregatorV3Interface_$102_fromMemory","nativeSrc":"885:201:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"955:6:101","nodeType":"YulTypedName","src":"955:6:101","type":""},{"name":"end","nativeSrc":"963:3:101","nodeType":"YulTypedName","src":"963:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"971:5:101","nodeType":"YulTypedName","src":"971:5:101","type":""}],"src":"885:201:101"},{"body":{"nativeSrc":"1198:303:101","nodeType":"YulBlock","src":"1198:303:101","statements":[{"body":{"nativeSrc":"1244:83:101","nodeType":"YulBlock","src":"1244:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1246:77:101","nodeType":"YulIdentifier","src":"1246:77:101"},"nativeSrc":"1246:79:101","nodeType":"YulFunctionCall","src":"1246:79:101"},"nativeSrc":"1246:79:101","nodeType":"YulExpressionStatement","src":"1246:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1219:7:101","nodeType":"YulIdentifier","src":"1219:7:101"},{"name":"headStart","nativeSrc":"1228:9:101","nodeType":"YulIdentifier","src":"1228:9:101"}],"functionName":{"name":"sub","nativeSrc":"1215:3:101","nodeType":"YulIdentifier","src":"1215:3:101"},"nativeSrc":"1215:23:101","nodeType":"YulFunctionCall","src":"1215:23:101"},{"kind":"number","nativeSrc":"1240:2:101","nodeType":"YulLiteral","src":"1240:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1211:3:101","nodeType":"YulIdentifier","src":"1211:3:101"},"nativeSrc":"1211:32:101","nodeType":"YulFunctionCall","src":"1211:32:101"},"nativeSrc":"1208:119:101","nodeType":"YulIf","src":"1208:119:101"},{"nativeSrc":"1337:157:101","nodeType":"YulBlock","src":"1337:157:101","statements":[{"nativeSrc":"1352:15:101","nodeType":"YulVariableDeclaration","src":"1352:15:101","value":{"kind":"number","nativeSrc":"1366:1:101","nodeType":"YulLiteral","src":"1366:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1356:6:101","nodeType":"YulTypedName","src":"1356:6:101","type":""}]},{"nativeSrc":"1381:103:101","nodeType":"YulAssignment","src":"1381:103:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1456:9:101","nodeType":"YulIdentifier","src":"1456:9:101"},{"name":"offset","nativeSrc":"1467:6:101","nodeType":"YulIdentifier","src":"1467:6:101"}],"functionName":{"name":"add","nativeSrc":"1452:3:101","nodeType":"YulIdentifier","src":"1452:3:101"},"nativeSrc":"1452:22:101","nodeType":"YulFunctionCall","src":"1452:22:101"},{"name":"dataEnd","nativeSrc":"1476:7:101","nodeType":"YulIdentifier","src":"1476:7:101"}],"functionName":{"name":"abi_decode_t_contract$_AggregatorV3Interface_$102_fromMemory","nativeSrc":"1391:60:101","nodeType":"YulIdentifier","src":"1391:60:101"},"nativeSrc":"1391:93:101","nodeType":"YulFunctionCall","src":"1391:93:101"},"variableNames":[{"name":"value0","nativeSrc":"1381:6:101","nodeType":"YulIdentifier","src":"1381:6:101"}]}]}]},"name":"abi_decode_tuple_t_contract$_AggregatorV3Interface_$102_fromMemory","nativeSrc":"1092:409:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1168:9:101","nodeType":"YulTypedName","src":"1168:9:101","type":""},{"name":"dataEnd","nativeSrc":"1179:7:101","nodeType":"YulTypedName","src":"1179:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1191:6:101","nodeType":"YulTypedName","src":"1191:6:101","type":""}],"src":"1092:409:101"},{"body":{"nativeSrc":"1603:73:101","nodeType":"YulBlock","src":"1603:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1620:3:101","nodeType":"YulIdentifier","src":"1620:3:101"},{"name":"length","nativeSrc":"1625:6:101","nodeType":"YulIdentifier","src":"1625:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1613:6:101","nodeType":"YulIdentifier","src":"1613:6:101"},"nativeSrc":"1613:19:101","nodeType":"YulFunctionCall","src":"1613:19:101"},"nativeSrc":"1613:19:101","nodeType":"YulExpressionStatement","src":"1613:19:101"},{"nativeSrc":"1641:29:101","nodeType":"YulAssignment","src":"1641:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"1660:3:101","nodeType":"YulIdentifier","src":"1660:3:101"},{"kind":"number","nativeSrc":"1665:4:101","nodeType":"YulLiteral","src":"1665:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1656:3:101","nodeType":"YulIdentifier","src":"1656:3:101"},"nativeSrc":"1656:14:101","nodeType":"YulFunctionCall","src":"1656:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"1641:11:101","nodeType":"YulIdentifier","src":"1641:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1507:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1575:3:101","nodeType":"YulTypedName","src":"1575:3:101","type":""},{"name":"length","nativeSrc":"1580:6:101","nodeType":"YulTypedName","src":"1580:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1591:11:101","nodeType":"YulTypedName","src":"1591:11:101","type":""}],"src":"1507:169:101"},{"body":{"nativeSrc":"1788:56:101","nodeType":"YulBlock","src":"1788:56:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1810:6:101","nodeType":"YulIdentifier","src":"1810:6:101"},{"kind":"number","nativeSrc":"1818:1:101","nodeType":"YulLiteral","src":"1818:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1806:3:101","nodeType":"YulIdentifier","src":"1806:3:101"},"nativeSrc":"1806:14:101","nodeType":"YulFunctionCall","src":"1806:14:101"},{"hexValue":"7a65726f2061646472657373","kind":"string","nativeSrc":"1822:14:101","nodeType":"YulLiteral","src":"1822:14:101","type":"","value":"zero address"}],"functionName":{"name":"mstore","nativeSrc":"1799:6:101","nodeType":"YulIdentifier","src":"1799:6:101"},"nativeSrc":"1799:38:101","nodeType":"YulFunctionCall","src":"1799:38:101"},"nativeSrc":"1799:38:101","nodeType":"YulExpressionStatement","src":"1799:38:101"}]},"name":"store_literal_in_memory_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7","nativeSrc":"1682:162:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1780:6:101","nodeType":"YulTypedName","src":"1780:6:101","type":""}],"src":"1682:162:101"},{"body":{"nativeSrc":"1996:220:101","nodeType":"YulBlock","src":"1996:220:101","statements":[{"nativeSrc":"2006:74:101","nodeType":"YulAssignment","src":"2006:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"2072:3:101","nodeType":"YulIdentifier","src":"2072:3:101"},{"kind":"number","nativeSrc":"2077:2:101","nodeType":"YulLiteral","src":"2077:2:101","type":"","value":"12"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2013:58:101","nodeType":"YulIdentifier","src":"2013:58:101"},"nativeSrc":"2013:67:101","nodeType":"YulFunctionCall","src":"2013:67:101"},"variableNames":[{"name":"pos","nativeSrc":"2006:3:101","nodeType":"YulIdentifier","src":"2006:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2178:3:101","nodeType":"YulIdentifier","src":"2178:3:101"}],"functionName":{"name":"store_literal_in_memory_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7","nativeSrc":"2089:88:101","nodeType":"YulIdentifier","src":"2089:88:101"},"nativeSrc":"2089:93:101","nodeType":"YulFunctionCall","src":"2089:93:101"},"nativeSrc":"2089:93:101","nodeType":"YulExpressionStatement","src":"2089:93:101"},{"nativeSrc":"2191:19:101","nodeType":"YulAssignment","src":"2191:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"2202:3:101","nodeType":"YulIdentifier","src":"2202:3:101"},{"kind":"number","nativeSrc":"2207:2:101","nodeType":"YulLiteral","src":"2207:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2198:3:101","nodeType":"YulIdentifier","src":"2198:3:101"},"nativeSrc":"2198:12:101","nodeType":"YulFunctionCall","src":"2198:12:101"},"variableNames":[{"name":"end","nativeSrc":"2191:3:101","nodeType":"YulIdentifier","src":"2191:3:101"}]}]},"name":"abi_encode_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7_to_t_string_memory_ptr_fromStack","nativeSrc":"1850:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1984:3:101","nodeType":"YulTypedName","src":"1984:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1992:3:101","nodeType":"YulTypedName","src":"1992:3:101","type":""}],"src":"1850:366:101"},{"body":{"nativeSrc":"2393:248:101","nodeType":"YulBlock","src":"2393:248:101","statements":[{"nativeSrc":"2403:26:101","nodeType":"YulAssignment","src":"2403:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2415:9:101","nodeType":"YulIdentifier","src":"2415:9:101"},{"kind":"number","nativeSrc":"2426:2:101","nodeType":"YulLiteral","src":"2426:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2411:3:101","nodeType":"YulIdentifier","src":"2411:3:101"},"nativeSrc":"2411:18:101","nodeType":"YulFunctionCall","src":"2411:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2403:4:101","nodeType":"YulIdentifier","src":"2403:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2450:9:101","nodeType":"YulIdentifier","src":"2450:9:101"},{"kind":"number","nativeSrc":"2461:1:101","nodeType":"YulLiteral","src":"2461:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2446:3:101","nodeType":"YulIdentifier","src":"2446:3:101"},"nativeSrc":"2446:17:101","nodeType":"YulFunctionCall","src":"2446:17:101"},{"arguments":[{"name":"tail","nativeSrc":"2469:4:101","nodeType":"YulIdentifier","src":"2469:4:101"},{"name":"headStart","nativeSrc":"2475:9:101","nodeType":"YulIdentifier","src":"2475:9:101"}],"functionName":{"name":"sub","nativeSrc":"2465:3:101","nodeType":"YulIdentifier","src":"2465:3:101"},"nativeSrc":"2465:20:101","nodeType":"YulFunctionCall","src":"2465:20:101"}],"functionName":{"name":"mstore","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"},"nativeSrc":"2439:47:101","nodeType":"YulFunctionCall","src":"2439:47:101"},"nativeSrc":"2439:47:101","nodeType":"YulExpressionStatement","src":"2439:47:101"},{"nativeSrc":"2495:139:101","nodeType":"YulAssignment","src":"2495:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"2629:4:101","nodeType":"YulIdentifier","src":"2629:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7_to_t_string_memory_ptr_fromStack","nativeSrc":"2503:124:101","nodeType":"YulIdentifier","src":"2503:124:101"},"nativeSrc":"2503:131:101","nodeType":"YulFunctionCall","src":"2503:131:101"},"variableNames":[{"name":"tail","nativeSrc":"2495:4:101","nodeType":"YulIdentifier","src":"2495:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2222:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2373:9:101","nodeType":"YulTypedName","src":"2373:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2388:4:101","nodeType":"YulTypedName","src":"2388:4:101","type":""}],"src":"2222:419:101"},{"body":{"nativeSrc":"2753:120:101","nodeType":"YulBlock","src":"2753:120:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2775:6:101","nodeType":"YulIdentifier","src":"2775:6:101"},{"kind":"number","nativeSrc":"2783:1:101","nodeType":"YulLiteral","src":"2783:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2771:3:101","nodeType":"YulIdentifier","src":"2771:3:101"},"nativeSrc":"2771:14:101","nodeType":"YulFunctionCall","src":"2771:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"2787:34:101","nodeType":"YulLiteral","src":"2787:34:101","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"2764:6:101","nodeType":"YulIdentifier","src":"2764:6:101"},"nativeSrc":"2764:58:101","nodeType":"YulFunctionCall","src":"2764:58:101"},"nativeSrc":"2764:58:101","nodeType":"YulExpressionStatement","src":"2764:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2843:6:101","nodeType":"YulIdentifier","src":"2843:6:101"},{"kind":"number","nativeSrc":"2851:2:101","nodeType":"YulLiteral","src":"2851:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2839:3:101","nodeType":"YulIdentifier","src":"2839:3:101"},"nativeSrc":"2839:15:101","nodeType":"YulFunctionCall","src":"2839:15:101"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"2856:9:101","nodeType":"YulLiteral","src":"2856:9:101","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"2832:6:101","nodeType":"YulIdentifier","src":"2832:6:101"},"nativeSrc":"2832:34:101","nodeType":"YulFunctionCall","src":"2832:34:101"},"nativeSrc":"2832:34:101","nodeType":"YulExpressionStatement","src":"2832:34:101"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"2647:226:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2745:6:101","nodeType":"YulTypedName","src":"2745:6:101","type":""}],"src":"2647:226:101"},{"body":{"nativeSrc":"3025:220:101","nodeType":"YulBlock","src":"3025:220:101","statements":[{"nativeSrc":"3035:74:101","nodeType":"YulAssignment","src":"3035:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"3101:3:101","nodeType":"YulIdentifier","src":"3101:3:101"},{"kind":"number","nativeSrc":"3106:2:101","nodeType":"YulLiteral","src":"3106:2:101","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3042:58:101","nodeType":"YulIdentifier","src":"3042:58:101"},"nativeSrc":"3042:67:101","nodeType":"YulFunctionCall","src":"3042:67:101"},"variableNames":[{"name":"pos","nativeSrc":"3035:3:101","nodeType":"YulIdentifier","src":"3035:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:101","nodeType":"YulIdentifier","src":"3207:3:101"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"3118:88:101","nodeType":"YulIdentifier","src":"3118:88:101"},"nativeSrc":"3118:93:101","nodeType":"YulFunctionCall","src":"3118:93:101"},"nativeSrc":"3118:93:101","nodeType":"YulExpressionStatement","src":"3118:93:101"},{"nativeSrc":"3220:19:101","nodeType":"YulAssignment","src":"3220:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"3231:3:101","nodeType":"YulIdentifier","src":"3231:3:101"},{"kind":"number","nativeSrc":"3236:2:101","nodeType":"YulLiteral","src":"3236:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3227:3:101","nodeType":"YulIdentifier","src":"3227:3:101"},"nativeSrc":"3227:12:101","nodeType":"YulFunctionCall","src":"3227:12:101"},"variableNames":[{"name":"end","nativeSrc":"3220:3:101","nodeType":"YulIdentifier","src":"3220:3:101"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"2879:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3013:3:101","nodeType":"YulTypedName","src":"3013:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3021:3:101","nodeType":"YulTypedName","src":"3021:3:101","type":""}],"src":"2879:366:101"},{"body":{"nativeSrc":"3422:248:101","nodeType":"YulBlock","src":"3422:248:101","statements":[{"nativeSrc":"3432:26:101","nodeType":"YulAssignment","src":"3432:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3444:9:101","nodeType":"YulIdentifier","src":"3444:9:101"},{"kind":"number","nativeSrc":"3455:2:101","nodeType":"YulLiteral","src":"3455:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3440:3:101","nodeType":"YulIdentifier","src":"3440:3:101"},"nativeSrc":"3440:18:101","nodeType":"YulFunctionCall","src":"3440:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3432:4:101","nodeType":"YulIdentifier","src":"3432:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3479:9:101","nodeType":"YulIdentifier","src":"3479:9:101"},{"kind":"number","nativeSrc":"3490:1:101","nodeType":"YulLiteral","src":"3490:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3475:3:101","nodeType":"YulIdentifier","src":"3475:3:101"},"nativeSrc":"3475:17:101","nodeType":"YulFunctionCall","src":"3475:17:101"},{"arguments":[{"name":"tail","nativeSrc":"3498:4:101","nodeType":"YulIdentifier","src":"3498:4:101"},{"name":"headStart","nativeSrc":"3504:9:101","nodeType":"YulIdentifier","src":"3504:9:101"}],"functionName":{"name":"sub","nativeSrc":"3494:3:101","nodeType":"YulIdentifier","src":"3494:3:101"},"nativeSrc":"3494:20:101","nodeType":"YulFunctionCall","src":"3494:20:101"}],"functionName":{"name":"mstore","nativeSrc":"3468:6:101","nodeType":"YulIdentifier","src":"3468:6:101"},"nativeSrc":"3468:47:101","nodeType":"YulFunctionCall","src":"3468:47:101"},"nativeSrc":"3468:47:101","nodeType":"YulExpressionStatement","src":"3468:47:101"},{"nativeSrc":"3524:139:101","nodeType":"YulAssignment","src":"3524:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"3658:4:101","nodeType":"YulIdentifier","src":"3658:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"3532:124:101","nodeType":"YulIdentifier","src":"3532:124:101"},"nativeSrc":"3532:131:101","nodeType":"YulFunctionCall","src":"3532:131:101"},"variableNames":[{"name":"tail","nativeSrc":"3524:4:101","nodeType":"YulIdentifier","src":"3524:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3251:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3402:9:101","nodeType":"YulTypedName","src":"3402:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3417:4:101","nodeType":"YulTypedName","src":"3417:4:101","type":""}],"src":"3251:419:101"},{"body":{"nativeSrc":"3719:43:101","nodeType":"YulBlock","src":"3719:43:101","statements":[{"nativeSrc":"3729:27:101","nodeType":"YulAssignment","src":"3729:27:101","value":{"arguments":[{"name":"value","nativeSrc":"3744:5:101","nodeType":"YulIdentifier","src":"3744:5:101"},{"kind":"number","nativeSrc":"3751:4:101","nodeType":"YulLiteral","src":"3751:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3740:3:101","nodeType":"YulIdentifier","src":"3740:3:101"},"nativeSrc":"3740:16:101","nodeType":"YulFunctionCall","src":"3740:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3729:7:101","nodeType":"YulIdentifier","src":"3729:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"3676:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3701:5:101","nodeType":"YulTypedName","src":"3701:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3711:7:101","nodeType":"YulTypedName","src":"3711:7:101","type":""}],"src":"3676:86:101"},{"body":{"nativeSrc":"3829:51:101","nodeType":"YulBlock","src":"3829:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3846:3:101","nodeType":"YulIdentifier","src":"3846:3:101"},{"arguments":[{"name":"value","nativeSrc":"3867:5:101","nodeType":"YulIdentifier","src":"3867:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"3851:15:101","nodeType":"YulIdentifier","src":"3851:15:101"},"nativeSrc":"3851:22:101","nodeType":"YulFunctionCall","src":"3851:22:101"}],"functionName":{"name":"mstore","nativeSrc":"3839:6:101","nodeType":"YulIdentifier","src":"3839:6:101"},"nativeSrc":"3839:35:101","nodeType":"YulFunctionCall","src":"3839:35:101"},"nativeSrc":"3839:35:101","nodeType":"YulExpressionStatement","src":"3839:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"3768:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3817:5:101","nodeType":"YulTypedName","src":"3817:5:101","type":""},{"name":"pos","nativeSrc":"3824:3:101","nodeType":"YulTypedName","src":"3824:3:101","type":""}],"src":"3768:112:101"},{"body":{"nativeSrc":"3980:120:101","nodeType":"YulBlock","src":"3980:120:101","statements":[{"nativeSrc":"3990:26:101","nodeType":"YulAssignment","src":"3990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4002:9:101","nodeType":"YulIdentifier","src":"4002:9:101"},{"kind":"number","nativeSrc":"4013:2:101","nodeType":"YulLiteral","src":"4013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3998:3:101","nodeType":"YulIdentifier","src":"3998:3:101"},"nativeSrc":"3998:18:101","nodeType":"YulFunctionCall","src":"3998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3990:4:101","nodeType":"YulIdentifier","src":"3990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4066:6:101","nodeType":"YulIdentifier","src":"4066:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4079:9:101","nodeType":"YulIdentifier","src":"4079:9:101"},{"kind":"number","nativeSrc":"4090:1:101","nodeType":"YulLiteral","src":"4090:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4075:3:101","nodeType":"YulIdentifier","src":"4075:3:101"},"nativeSrc":"4075:17:101","nodeType":"YulFunctionCall","src":"4075:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4026:39:101","nodeType":"YulIdentifier","src":"4026:39:101"},"nativeSrc":"4026:67:101","nodeType":"YulFunctionCall","src":"4026:67:101"},"nativeSrc":"4026:67:101","nodeType":"YulExpressionStatement","src":"4026:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"3886:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3952:9:101","nodeType":"YulTypedName","src":"3952:9:101","type":""},{"name":"value0","nativeSrc":"3964:6:101","nodeType":"YulTypedName","src":"3964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3975:4:101","nodeType":"YulTypedName","src":"3975:4:101","type":""}],"src":"3886:214:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_contract$_AggregatorV3Interface_$102(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_AggregatorV3Interface_$102(value) {\n        if iszero(eq(value, cleanup_t_contract$_AggregatorV3Interface_$102(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_AggregatorV3Interface_$102_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_contract$_AggregatorV3Interface_$102(value)\n    }\n\n    function abi_decode_tuple_t_contract$_AggregatorV3Interface_$102_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_AggregatorV3Interface_$102_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7(memPtr) {\n\n        mstore(add(memPtr, 0), \"zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n        store_literal_in_memory_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a4b4461cfc9c1f0249c17896b005545dc5d1690f81d2023afc517b07ed3227a7_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b506040516118cb3803806118cb83398101604081905261002e9161012e565b610036610076565b6001600160a01b0381166100655760405162461bcd60e51b815260040161005c90610154565b60405180910390fd5b6001600160a01b03166080526101d8565b5f54610100900460ff161561009d5760405162461bcd60e51b815260040161005c9061017e565b5f5460ff908116146100ef575f805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498916100e6916101c9565b60405180910390a15b565b5f6001600160a01b0382165b92915050565b5f6100fd826100f1565b61011681610103565b8114610120575f80fd5b50565b80516100fd8161010d565b5f60208284031215610141576101415f80fd5b5f61014c8484610123565b949350505050565b602080825281016100fd81600c81526b7a65726f206164647265737360a01b602082015260400190565b602080825281016100fd81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff82168152602081016100fd565b6080516116d46101f75f395f81816101d0015261083101526116d45ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c806379ba50971161009e578063c4d66de81161006e578063c4d66de814610255578063cfed246b14610268578063e30c397814610287578063ed2f860314610298578063f2fde38b146102a1575f80fd5b806379ba5097146102075780638da5cb5b1461020f578063a9534f8a14610229578063b4a0bdf314610244575f80fd5b8063392787d2116100d9578063392787d21461019857806341976e09146101ab5780635c1bba38146101cb578063715018a6146101ff575f80fd5b80630431710e1461010a57806309a8acb01461011f5780630e32cb86146101325780631b69dc5f14610145575b5f80fd5b61011d610118366004610e93565b6102b4565b005b61011d61012d366004610ecb565b610318565b61011d610140366004610f05565b6103de565b610180610153366004610f05565b60ca6020525f90815260409020805460018201546002909201546001600160a01b03918216929091169083565b60405161018f93929190610f38565b60405180910390f35b61011d6101a6366004610f60565b6103f2565b6101be6101b9366004610f05565b61053a565b60405161018f9190610f7e565b6101f27f000000000000000000000000000000000000000000000000000000000000000081565b60405161018f9190610fa9565b61011d61056e565b61011d610581565b6033546001600160a01b03165b60405161018f9190610fb7565b61021c73bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6097546001600160a01b03166101f2565b61011d610263366004610f05565b6105b6565b6101be610276366004610f05565b60c96020525f908152604090205481565b6065546001600160a01b031661021c565b6101be610e1081565b61011d6102af366004610f05565b610681565b80515f036102dd5760405162461bcd60e51b81526004016102d490610fef565b60405180910390fd5b80515f5b818110156103135761030b8382815181106102fe576102fe610fff565b60200260200101516103f2565b6001016102e1565b505050565b816001600160a01b03811661033f5760405162461bcd60e51b81526004016102d49061103e565b61037d6040518060400160405280601f81526020017f736574446972656374507269636528616464726573732c75696e7432353629008152506106f2565b6001600160a01b0383165f81815260c960205260409081902080549085905590519091907fa0844d44570b5ec5ac55e9e7d1e7fc8149b4f33b4b61f3c8fc08bacce058faee906103d0908490879061104e565b60405180910390a250505050565b6103e6610789565b6103ef816107b3565b50565b80516001600160a01b03811661041a5760405162461bcd60e51b81526004016102d49061103e565b60208201516001600160a01b0381166104455760405162461bcd60e51b81526004016102d49061103e565b6104836040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e6669672900000000008152506106f2565b82604001515f036104a65760405162461bcd60e51b81526004016102d49061109c565b82516001600160a01b039081165f90815260ca6020908152604091829020865181549085166001600160a01b0319918216811783559288015160018301805496821696909216959095179055828701516002909101819055915190927f3cc8d9cb9370a23a8b9ffa75efa24cecb65c4693980e58260841adc474983c5f9261052d926110ac565b60405180910390a2505050565b5f61054361082c565b61055f5760405162461bcd60e51b81526004016102d4906110ed565b610568826108e8565b92915050565b610576610789565b61057f5f610993565b565b60655433906001600160a01b031681146105ad5760405162461bcd60e51b81526004016102d490611145565b6103ef81610993565b5f54610100900460ff16158080156105d457505f54600160ff909116105b806105ed5750303b1580156105ed57505f5460ff166001145b6106095760405162461bcd60e51b81526004016102d49061119f565b5f805460ff19166001179055801561062a575f805461ff0019166101001790555b610633826109ac565b801561067d575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610674906001906111c2565b60405180910390a15b5050565b610689610789565b606580546001600160a01b0383166001600160a01b031990911681179091556106ba6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab90610724903390869060040161120c565b602060405180830381865afa15801561073f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610763919061123f565b90508061067d57333083604051634a3fa29360e01b81526004016102d49392919061125d565b6033546001600160a01b0316331461057f5760405162461bcd60e51b81526004016102d4906112bb565b6001600160a01b0381166107d95760405162461bcd60e51b81526004016102d49061130c565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610674908390859061131c565b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561088b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108af919061135f565b50509250925050610e1081426108c591906113e6565b1115806108d25750816001145b156108df575f9250505090565b60019250505090565b5f8073bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba196001600160a01b0384160161091757506012610982565b5f839050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610957573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097b919061140d565b60ff169150505b61098c83826109e3565b9392505050565b606580546001600160a01b03191690556103ef81610a41565b5f54610100900460ff166109d25760405162461bcd60e51b81526004016102d490611472565b6109da610a92565b6103ef81610ac0565b6001600160a01b0382165f90815260c960205260408120548015610a0957809150610a15565b610a1284610ae6565b91505b5f610a218460126113e6565b9050610a2e81600a61158e565b610a38908461159b565b95945050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610ab85760405162461bcd60e51b81526004016102d490611472565b61057f610cc1565b5f54610100900460ff166103e65760405162461bcd60e51b81526004016102d490611472565b6001600160a01b038082165f90815260ca602052604081205490911680610b1f5760405162461bcd60e51b81526004016102d49061103e565b6001600160a01b038084165f90815260ca6020908152604080832081516060810183528154861681526001820154909516858401819052600290910154858301819052825163313ce56760e01b81529251919490939092859263313ce567926004808401939192918290030181865afa158015610b9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc2919061140d565b610bcd9060126115ba565b60ff1690505f80846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610c10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c34919061135f565b509350509250505f8213610c5a5760405162461bcd60e51b81526004016102d490611608565b80421015610c7a5760405162461bcd60e51b81526004016102d49061164b565b4281900384811115610c9e5760405162461bcd60e51b81526004016102d49061168e565b610ca984600a61158e565b610cb3908461159b565b9a9950505050505050505050565b5f54610100900460ff16610ce75760405162461bcd60e51b81526004016102d490611472565b61057f33610993565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610d2a57610d2a610cf0565b6040525050565b5f610d3b60405190565b9050610d478282610d04565b919050565b5f67ffffffffffffffff821115610d6557610d65610cf0565b5060209081020190565b5f6001600160a01b038216610568565b610d8881610d6f565b81146103ef575f80fd5b803561056881610d7f565b80610d88565b803561056881610d9d565b5f60608284031215610dc157610dc15f80fd5b610dcb6060610d31565b90505f610dd88484610d92565b8252506020610de984848301610d92565b6020830152506040610dfd84828501610da3565b60408301525092915050565b5f610e1b610e1684610d4c565b610d31565b83815290506020810160608402830185811115610e3957610e395f80fd5b835b81811015610e5f5780610e4e8882610dae565b845250602090920191606001610e3b565b5050509392505050565b5f82601f830112610e7b57610e7b5f80fd5b8135610e8b848260208601610e09565b949350505050565b5f60208284031215610ea657610ea65f80fd5b813567ffffffffffffffff811115610ebf57610ebf5f80fd5b610e8b84828501610e69565b5f8060408385031215610edf57610edf5f80fd5b5f610eea8585610d92565b9250506020610efb85828601610da3565b9150509250929050565b5f60208284031215610f1857610f185f80fd5b5f610e8b8484610d92565b610f2c81610d6f565b82525050565b80610f2c565b60608101610f468286610f23565b610f536020830185610f23565b610e8b6040830184610f32565b5f60608284031215610f7357610f735f80fd5b5f610e8b8484610dae565b602081016105688284610f32565b5f61056882610d6f565b5f61056882610f8c565b610f2c81610f96565b602081016105688284610fa0565b602081016105688284610f23565b601181525f602082017006c656e6774682063616e2774206265203607c1b815291505b5060200190565b6020808252810161056881610fc5565b634e487b7160e01b5f52603260045260245ffd5b601581525f602082017463616e2774206265207a65726f206164647265737360581b81529150610fe8565b6020808252810161056881611013565b6040810161105c8285610f32565b61098c6020830184610f32565b601a81525f602082017f7374616c6520706572696f642063616e2774206265207a65726f00000000000081529150610fe8565b6020808252810161056881611069565b6040810161105c8285610f23565b601881525f602082017f4c322073657175656e63657220756e617661696c61626c65000000000000000081529150610fe8565b60208082528101610568816110ba565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b60208082528101610568816110fd565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b6020820152915061113e565b6020808252810161056881611155565b5f60ff8216610568565b610f2c816111af565b6020810161056882846111b9565b8281835e505f910152565b5f6111e4825190565b8084526020840193506111fb8185602086016111d0565b601f01601f19169290920192915050565b6040810161121a8285610f23565b8181036020830152610e8b81846111db565b801515610d88565b80516105688161122c565b5f60208284031215611252576112525f80fd5b5f610e8b8484611234565b6060810161126b8286610f23565b6112786020830185610f23565b8181036040830152610a3881846111db565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610fe8565b602080825281016105688161128a565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061113e565b60208082528101610568816112cb565b6040810161132a8285610f23565b61098c6020830184610f23565b69ffffffffffffffffffff8116610d88565b805161056881611337565b805161056881610d9d565b5f805f805f60a08688031215611376576113765f80fd5b5f6113818888611349565b955050602061139288828901611354565b94505060406113a388828901611354565b93505060606113b488828901611354565b92505060806113c588828901611349565b9150509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610568576105686113d2565b60ff8116610d88565b8051610568816113f9565b5f60208284031215611420576114205f80fd5b5f610e8b8484611402565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061113e565b602080825281016105688161142b565b80825b60018511156114c1578086048111156114a0576114a06113d2565b60018516156114ae57908102905b80026114ba8560011c90565b9450611485565b94509492505050565b5f826114d85750600161098c565b816114e457505f61098c565b81600181146114fa576002811461150457611531565b600191505061098c565b60ff841115611515576115156113d2565b8360020a91508482111561152b5761152b6113d2565b5061098c565b5060208310610133831016604e8410600b8410161715611564575081810a8381111561155f5761155f6113d2565b61098c565b6115718484846001611482565b92509050818404811115611587576115876113d2565b0292915050565b5f61098c5f1984846114ca565b8181028082158382048514176115b3576115b36113d2565b5092915050565b60ff918216919081169082820390811115610568576105686113d2565b60208082527f636861696e6c696e6b207072696365206d75737420626520706f73697469766591019081525f610fe8565b60208082528101610568816115d7565b601c81525f602082017f757064617465644174206578636565647320626c6f636b2074696d650000000081529150610fe8565b6020808252810161056881611618565b601781525f602082017f636861696e6c696e6b207072696365206578706972656400000000000000000081529150610fe8565b602080825281016105688161165b56fea2646970667358221220e39bd41ebe25c13a22bacd86e087a69771fd8673e3645e265210555b7293cc5464736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x18CB CODESIZE SUB DUP1 PUSH2 0x18CB DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x12E JUMP JUMPDEST PUSH2 0x36 PUSH2 0x76 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C SWAP1 PUSH2 0x154 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x1D8 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C SWAP1 PUSH2 0x17E JUMP JUMPDEST PUSH0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0xEF JUMPI PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0xE6 SWAP2 PUSH2 0x1C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFD DUP3 PUSH2 0xF1 JUMP JUMPDEST PUSH2 0x116 DUP2 PUSH2 0x103 JUMP JUMPDEST DUP2 EQ PUSH2 0x120 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0xFD DUP2 PUSH2 0x10D JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x141 JUMPI PUSH2 0x141 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x14C DUP5 DUP5 PUSH2 0x123 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xFD DUP2 PUSH1 0xC DUP2 MSTORE PUSH12 0x7A65726F2061646472657373 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xFD DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xFD JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x16D4 PUSH2 0x1F7 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x1D0 ADD MSTORE PUSH2 0x831 ADD MSTORE PUSH2 0x16D4 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x287 JUMPI DUP1 PUSH4 0xED2F8603 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2A1 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x244 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x392787D2 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x392787D2 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x5C1BBA38 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1FF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x431710E EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x9A8ACB0 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x1B69DC5F EQ PUSH2 0x145 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D PUSH2 0x118 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x2B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0xECB JUMP JUMPDEST PUSH2 0x318 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x140 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x3DE JUMP JUMPDEST PUSH2 0x180 PUSH2 0x153 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11D PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0xF60 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x53A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xF7E JUMP JUMPDEST PUSH2 0x1F2 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xFA9 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x56E JUMP JUMPDEST PUSH2 0x11D PUSH2 0x581 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x21C PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x263 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x5B6 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x276 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x21C JUMP JUMPDEST PUSH2 0x1BE PUSH2 0xE10 DUP2 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x2AF CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST DUP1 MLOAD PUSH0 SUB PUSH2 0x2DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0xFEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x313 JUMPI PUSH2 0x30B DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2FE JUMPI PUSH2 0x2FE PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2E1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x33F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH2 0x37D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574446972656374507269636528616464726573732C75696E743235362900 DUP2 MSTORE POP PUSH2 0x6F2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 DUP6 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xA0844D44570B5EC5AC55E9E7D1E7FC8149B4F33B4B61F3C8FC08BACCE058FAEE SWAP1 PUSH2 0x3D0 SWAP1 DUP5 SWAP1 DUP8 SWAP1 PUSH2 0x104E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x3E6 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x7B3 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x41A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH2 0x483 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574546F6B656E436F6E66696728546F6B656E436F6E666967290000000000 DUP2 MSTORE POP PUSH2 0x6F2 JUMP JUMPDEST DUP3 PUSH1 0x40 ADD MLOAD PUSH0 SUB PUSH2 0x4A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x109C JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP1 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE SWAP3 DUP9 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP7 DUP3 AND SWAP7 SWAP1 SWAP3 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SSTORE DUP3 DUP8 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP2 SWAP1 SSTORE SWAP2 MLOAD SWAP1 SWAP3 PUSH32 0x3CC8D9CB9370A23A8B9FFA75EFA24CECB65C4693980E58260841ADC474983C5F SWAP3 PUSH2 0x52D SWAP3 PUSH2 0x10AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x543 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x55F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH2 0x568 DUP3 PUSH2 0x8E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x576 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x57F PUSH0 PUSH2 0x993 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x5AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1145 JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x993 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x5D4 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x5ED JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5ED JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x609 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x62A JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x633 DUP3 PUSH2 0x9AC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x67D JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x674 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x689 PUSH2 0x789 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x6BA PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x724 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x120C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x763 SWAP2 SWAP1 PUSH2 0x123F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x67D JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x125D JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x12BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7D9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x130C JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x674 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x131C JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8AF SWAP2 SWAP1 PUSH2 0x135F JUMP JUMPDEST POP POP SWAP3 POP SWAP3 POP POP PUSH2 0xE10 DUP2 TIMESTAMP PUSH2 0x8C5 SWAP2 SWAP1 PUSH2 0x13E6 JUMP JUMPDEST GT ISZERO DUP1 PUSH2 0x8D2 JUMPI POP DUP2 PUSH1 0x1 EQ JUMPDEST ISZERO PUSH2 0x8DF JUMPI PUSH0 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ADD PUSH2 0x917 JUMPI POP PUSH1 0x12 PUSH2 0x982 JUMP JUMPDEST PUSH0 DUP4 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x957 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x97B SWAP2 SWAP1 PUSH2 0x140D JUMP JUMPDEST PUSH1 0xFF AND SWAP2 POP POP JUMPDEST PUSH2 0x98C DUP4 DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x3EF DUP2 PUSH2 0xA41 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x9D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x9DA PUSH2 0xA92 JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0xAC0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0xA09 JUMPI DUP1 SWAP2 POP PUSH2 0xA15 JUMP JUMPDEST PUSH2 0xA12 DUP5 PUSH2 0xAE6 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH0 PUSH2 0xA21 DUP5 PUSH1 0x12 PUSH2 0x13E6 JUMP JUMPDEST SWAP1 POP PUSH2 0xA2E DUP2 PUSH1 0xA PUSH2 0x158E JUMP JUMPDEST PUSH2 0xA38 SWAP1 DUP5 PUSH2 0x159B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xAB8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x57F PUSH2 0xCC1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND DUP1 PUSH2 0xB1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP7 AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP1 SWAP6 AND DUP6 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD DUP6 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD PUSH4 0x313CE567 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 DUP6 SWAP3 PUSH4 0x313CE567 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xBC2 SWAP2 SWAP1 PUSH2 0x140D JUMP JUMPDEST PUSH2 0xBCD SWAP1 PUSH1 0x12 PUSH2 0x15BA JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC10 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xC34 SWAP2 SWAP1 PUSH2 0x135F JUMP JUMPDEST POP SWAP4 POP POP SWAP3 POP POP PUSH0 DUP3 SGT PUSH2 0xC5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1608 JUMP JUMPDEST DUP1 TIMESTAMP LT ISZERO PUSH2 0xC7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x164B JUMP JUMPDEST TIMESTAMP DUP2 SWAP1 SUB DUP5 DUP2 GT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x168E JUMP JUMPDEST PUSH2 0xCA9 DUP5 PUSH1 0xA PUSH2 0x158E JUMP JUMPDEST PUSH2 0xCB3 SWAP1 DUP5 PUSH2 0x159B JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x57F CALLER PUSH2 0x993 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD2A PUSH2 0xCF0 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xD3B PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xD47 DUP3 DUP3 PUSH2 0xD04 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xD65 JUMPI PUSH2 0xD65 PUSH2 0xCF0 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x568 JUMP JUMPDEST PUSH2 0xD88 DUP2 PUSH2 0xD6F JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x568 DUP2 PUSH2 0xD7F JUMP JUMPDEST DUP1 PUSH2 0xD88 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x568 DUP2 PUSH2 0xD9D JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH2 0xDC1 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xDCB PUSH1 0x60 PUSH2 0xD31 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDD8 DUP5 DUP5 PUSH2 0xD92 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0xDE9 DUP5 DUP5 DUP4 ADD PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xDFD DUP5 DUP3 DUP6 ADD PUSH2 0xDA3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE1B PUSH2 0xE16 DUP5 PUSH2 0xD4C JUMP JUMPDEST PUSH2 0xD31 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x60 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE39 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xE5F JUMPI DUP1 PUSH2 0xE4E DUP9 DUP3 PUSH2 0xDAE JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0xE3B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE7B JUMPI PUSH2 0xE7B PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE8B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE09 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA6 JUMPI PUSH2 0xEA6 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEBF JUMPI PUSH2 0xEBF PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xE8B DUP5 DUP3 DUP6 ADD PUSH2 0xE69 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEDF JUMPI PUSH2 0xEDF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xEEA DUP6 DUP6 PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEFB DUP6 DUP3 DUP7 ADD PUSH2 0xDA3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF18 JUMPI PUSH2 0xF18 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0xF2C DUP2 PUSH2 0xD6F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST DUP1 PUSH2 0xF2C JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xF46 DUP3 DUP7 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0xF53 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0xE8B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF32 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF73 JUMPI PUSH2 0xF73 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0xDAE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0xF32 JUMP JUMPDEST PUSH0 PUSH2 0x568 DUP3 PUSH2 0xD6F JUMP JUMPDEST PUSH0 PUSH2 0x568 DUP3 PUSH2 0xF8C JUMP JUMPDEST PUSH2 0xF2C DUP2 PUSH2 0xF96 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0xFA0 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH17 0x6C656E6774682063616E2774206265203 PUSH1 0x7C SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0xFC5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1013 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x105C DUP3 DUP6 PUSH2 0xF32 JUMP JUMPDEST PUSH2 0x98C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x7374616C6520706572696F642063616E2774206265207A65726F000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1069 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x105C DUP3 DUP6 PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C322073657175656E63657220756E617661696C61626C650000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x10BA JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x10FD JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x113E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1155 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x568 JUMP JUMPDEST PUSH2 0xF2C DUP2 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0x11B9 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x11E4 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x11FB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x11D0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x121A DUP3 DUP6 PUSH2 0xF23 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xE8B DUP2 DUP5 PUSH2 0x11DB JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xD88 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0x122C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1252 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0x1234 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x126B DUP3 DUP7 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0x1278 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF23 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA38 DUP2 DUP5 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x128A JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x113E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x132A DUP3 DUP6 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0x98C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF23 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xD88 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0x1337 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0xD9D JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1376 JUMPI PUSH2 0x1376 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1381 DUP9 DUP9 PUSH2 0x1349 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1392 DUP9 DUP3 DUP10 ADD PUSH2 0x1354 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x13A3 DUP9 DUP3 DUP10 ADD PUSH2 0x1354 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x13B4 DUP9 DUP3 DUP10 ADD PUSH2 0x1354 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x13C5 DUP9 DUP3 DUP10 ADD PUSH2 0x1349 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x13D2 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xD88 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0x13F9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1420 JUMPI PUSH2 0x1420 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0x1402 JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x113E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x14C1 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x14A0 JUMPI PUSH2 0x14A0 PUSH2 0x13D2 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x14AE JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x14BA DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x1485 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x14D8 JUMPI POP PUSH1 0x1 PUSH2 0x98C JUMP JUMPDEST DUP2 PUSH2 0x14E4 JUMPI POP PUSH0 PUSH2 0x98C JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x14FA JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1504 JUMPI PUSH2 0x1531 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x98C JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1515 JUMPI PUSH2 0x1515 PUSH2 0x13D2 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x152B JUMPI PUSH2 0x152B PUSH2 0x13D2 JUMP JUMPDEST POP PUSH2 0x98C JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1564 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x155F JUMPI PUSH2 0x155F PUSH2 0x13D2 JUMP JUMPDEST PUSH2 0x98C JUMP JUMPDEST PUSH2 0x1571 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1482 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x1587 JUMPI PUSH2 0x1587 PUSH2 0x13D2 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x98C PUSH0 NOT DUP5 DUP5 PUSH2 0x14CA JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x15B3 JUMPI PUSH2 0x15B3 PUSH2 0x13D2 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 SUB SWAP1 DUP2 GT ISZERO PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x13D2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x636861696E6C696E6B207072696365206D75737420626520706F736974697665 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x15D7 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757064617465644174206578636565647320626C6F636B2074696D6500000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1618 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x636861696E6C696E6B2070726963652065787069726564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x165B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 SWAP12 0xD4 0x1E 0xBE 0x25 0xC1 GASPRICE 0x22 0xBA 0xCD DUP7 0xE0 DUP8 0xA6 SWAP8 PUSH18 0xFD8673E3645E265210555B7293CC5464736F PUSH13 0x63430008190033000000000000 ","sourceMap":"349:1345:58:-:0;;;804:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2127:22:51;:20;:22::i;:::-;-1:-1:-1;;;;;886:33:58;::::1;878:58;;;;-1:-1:-1::0;;;878:58:58::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;947:22:58::1;;::::0;349:1345;;5939:280:5;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:5;;;;;;;:::i;:::-;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:5;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:125::-;634:7;663:24;681:5;663:24;:::i;699:180::-;801:53;848:5;801:53;:::i;:::-;794:5;791:64;781:92;;869:1;866;859:12;781:92;699:180;:::o;885:201::-;996:13;;1018:62;996:13;1018:62;:::i;1092:409::-;1191:6;1240:2;1228:9;1219:7;1215:23;1211:32;1208:119;;;1246:79;197:1;194;187:12;1246:79;1366:1;1391:93;1476:7;1456:9;1391:93;:::i;:::-;1381:103;1092:409;-1:-1:-1;;;;1092:409:101:o;2222:419::-;2426:2;2439:47;;;2411:18;;2503:131;2411:18;2077:2;1613:19;;-1:-1:-1;;;1665:4:101;1656:14;;1799:38;2198:12;;;1850:366;3251:419;3455:2;3468:47;;;3440:18;;3532:131;3440:18;3106:2;1613:19;;2787:34;1665:4;1656:14;;2764:58;-1:-1:-1;;;2839:15:101;;;2832:34;3227:12;;;2879:366;3886:214;3751:4;3740:16;;3839:35;;4013:2;3998:18;;4026:67;3768:112;3886:214;349:1345:58;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GRACE_PERIOD_TIME_5829":{"entryPoint":null,"id":5829,"parameterSlots":0,"returnSlots":0},"@NATIVE_TOKEN_ADDR_4707":{"entryPoint":null,"id":4707,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_1976":{"entryPoint":2476,"id":1976,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_1988":{"entryPoint":2752,"id":1988,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_129":{"entryPoint":2706,"id":129,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":3265,"id":248,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_2079":{"entryPoint":1778,"id":2079,"parameterSlots":1,"returnSlots":0},"@_checkOwner_279":{"entryPoint":1929,"id":279,"parameterSlots":0,"returnSlots":0},"@_getChainlinkPrice_5076":{"entryPoint":2790,"id":5076,"parameterSlots":1,"returnSlots":1},"@_getPriceInternal_4979":{"entryPoint":2531,"id":4979,"parameterSlots":2,"returnSlots":1},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_2049":{"entryPoint":1971,"id":2049,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_181":{"entryPoint":2451,"id":181,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_336":{"entryPoint":2625,"id":336,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_203":{"entryPoint":1409,"id":203,"parameterSlots":0,"returnSlots":0},"@accessControlManager_2011":{"entryPoint":null,"id":2011,"parameterSlots":0,"returnSlots":1},"@getPrice_4933":{"entryPoint":2280,"id":4933,"parameterSlots":1,"returnSlots":1},"@getPrice_5879":{"entryPoint":1338,"id":5879,"parameterSlots":1,"returnSlots":1},"@initialize_4774":{"entryPoint":1462,"id":4774,"parameterSlots":1,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@isSequencerActive_5908":{"entryPoint":2092,"id":5908,"parameterSlots":0,"returnSlots":1},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@pendingOwner_144":{"entryPoint":null,"id":144,"parameterSlots":0,"returnSlots":1},"@prices_4712":{"entryPoint":null,"id":4712,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_293":{"entryPoint":1390,"id":293,"parameterSlots":0,"returnSlots":0},"@sequencer_5825":{"entryPoint":null,"id":5825,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_2001":{"entryPoint":990,"id":2001,"parameterSlots":1,"returnSlots":0},"@setDirectPrice_4808":{"entryPoint":792,"id":4808,"parameterSlots":2,"returnSlots":0},"@setTokenConfig_4893":{"entryPoint":1010,"id":4893,"parameterSlots":1,"returnSlots":0},"@setTokenConfigs_4848":{"entryPoint":692,"id":4848,"parameterSlots":1,"returnSlots":0},"@tokenConfigs_4718":{"entryPoint":null,"id":4718,"parameterSlots":0,"returnSlots":0},"@transferOwnership_164":{"entryPoint":1665,"id":164,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3593,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3474,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3689,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":4660,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_int256_fromMemory":{"entryPoint":4948,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr":{"entryPoint":3502,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":3491,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint80_fromMemory":{"entryPoint":4937,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":5122,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3787,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3731,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TokenConfig_$4703_memory_ptr":{"entryPoint":3936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory":{"entryPoint":4959,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":5133,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3875,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_AggregatorV3Interface_$102_to_t_address_fromStack":{"entryPoint":4000,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":4537,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4571,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":4349,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack":{"entryPoint":4037,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack":{"entryPoint":5591,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack":{"entryPoint":4115,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack":{"entryPoint":4811,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack":{"entryPoint":5723,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack":{"entryPoint":5656,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":4437,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b_to_t_string_memory_ptr_fromStack":{"entryPoint":4282,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":4746,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack":{"entryPoint":4201,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":5163,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3890,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4023,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":4892,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4701,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":3896,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4620,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":4268,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_AggregatorV3Interface_$102__to_t_address__fromStack_reversed":{"entryPoint":4009,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__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":4546,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4421,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4079,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5640,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4158,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4876,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5774,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5707,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4511,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4333,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4795,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4252,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5234,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3966,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":4174,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":3377,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr":{"entryPoint":3404,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":5250,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":5518,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":5322,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5531,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5094,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":5562,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3439,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint80":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_AggregatorV3Interface_$102_to_t_address":{"entryPoint":3990,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":4527,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3980,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4560,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":3332,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5074,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":4095,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3312,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3455,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4652,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3485,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":5113,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint80":{"entryPoint":4919,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:31671:101","nodeType":"YulBlock","src":"0:31671:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"505:54:101","nodeType":"YulBlock","src":"505:54:101","statements":[{"nativeSrc":"515:38:101","nodeType":"YulAssignment","src":"515:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"533:5:101","nodeType":"YulIdentifier","src":"533:5:101"},{"kind":"number","nativeSrc":"540:2:101","nodeType":"YulLiteral","src":"540:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"529:3:101","nodeType":"YulIdentifier","src":"529:3:101"},"nativeSrc":"529:14:101","nodeType":"YulFunctionCall","src":"529:14:101"},{"arguments":[{"kind":"number","nativeSrc":"549:2:101","nodeType":"YulLiteral","src":"549:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"545:3:101","nodeType":"YulIdentifier","src":"545:3:101"},"nativeSrc":"545:7:101","nodeType":"YulFunctionCall","src":"545:7:101"}],"functionName":{"name":"and","nativeSrc":"525:3:101","nodeType":"YulIdentifier","src":"525:3:101"},"nativeSrc":"525:28:101","nodeType":"YulFunctionCall","src":"525:28:101"},"variableNames":[{"name":"result","nativeSrc":"515:6:101","nodeType":"YulIdentifier","src":"515:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"457:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"488:5:101","nodeType":"YulTypedName","src":"488:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"498:6:101","nodeType":"YulTypedName","src":"498:6:101","type":""}],"src":"457:102:101"},{"body":{"nativeSrc":"593:152:101","nodeType":"YulBlock","src":"593:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"610:1:101","nodeType":"YulLiteral","src":"610:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"613:77:101","nodeType":"YulLiteral","src":"613:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"603:6:101","nodeType":"YulIdentifier","src":"603:6:101"},"nativeSrc":"603:88:101","nodeType":"YulFunctionCall","src":"603:88:101"},"nativeSrc":"603:88:101","nodeType":"YulExpressionStatement","src":"603:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"707:1:101","nodeType":"YulLiteral","src":"707:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"710:4:101","nodeType":"YulLiteral","src":"710:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"700:6:101","nodeType":"YulIdentifier","src":"700:6:101"},"nativeSrc":"700:15:101","nodeType":"YulFunctionCall","src":"700:15:101"},"nativeSrc":"700:15:101","nodeType":"YulExpressionStatement","src":"700:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"731:1:101","nodeType":"YulLiteral","src":"731:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"734:4:101","nodeType":"YulLiteral","src":"734:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"724:6:101","nodeType":"YulIdentifier","src":"724:6:101"},"nativeSrc":"724:15:101","nodeType":"YulFunctionCall","src":"724:15:101"},"nativeSrc":"724:15:101","nodeType":"YulExpressionStatement","src":"724:15:101"}]},"name":"panic_error_0x41","nativeSrc":"565:180:101","nodeType":"YulFunctionDefinition","src":"565:180:101"},{"body":{"nativeSrc":"794:238:101","nodeType":"YulBlock","src":"794:238:101","statements":[{"nativeSrc":"804:58:101","nodeType":"YulVariableDeclaration","src":"804:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"826:6:101","nodeType":"YulIdentifier","src":"826:6:101"},{"arguments":[{"name":"size","nativeSrc":"856:4:101","nodeType":"YulIdentifier","src":"856:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"834:21:101","nodeType":"YulIdentifier","src":"834:21:101"},"nativeSrc":"834:27:101","nodeType":"YulFunctionCall","src":"834:27:101"}],"functionName":{"name":"add","nativeSrc":"822:3:101","nodeType":"YulIdentifier","src":"822:3:101"},"nativeSrc":"822:40:101","nodeType":"YulFunctionCall","src":"822:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"808:10:101","nodeType":"YulTypedName","src":"808:10:101","type":""}]},{"body":{"nativeSrc":"973:22:101","nodeType":"YulBlock","src":"973:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"975:16:101","nodeType":"YulIdentifier","src":"975:16:101"},"nativeSrc":"975:18:101","nodeType":"YulFunctionCall","src":"975:18:101"},"nativeSrc":"975:18:101","nodeType":"YulExpressionStatement","src":"975:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"916:10:101","nodeType":"YulIdentifier","src":"916:10:101"},{"kind":"number","nativeSrc":"928:18:101","nodeType":"YulLiteral","src":"928:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"913:2:101","nodeType":"YulIdentifier","src":"913:2:101"},"nativeSrc":"913:34:101","nodeType":"YulFunctionCall","src":"913:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"952:10:101","nodeType":"YulIdentifier","src":"952:10:101"},{"name":"memPtr","nativeSrc":"964:6:101","nodeType":"YulIdentifier","src":"964:6:101"}],"functionName":{"name":"lt","nativeSrc":"949:2:101","nodeType":"YulIdentifier","src":"949:2:101"},"nativeSrc":"949:22:101","nodeType":"YulFunctionCall","src":"949:22:101"}],"functionName":{"name":"or","nativeSrc":"910:2:101","nodeType":"YulIdentifier","src":"910:2:101"},"nativeSrc":"910:62:101","nodeType":"YulFunctionCall","src":"910:62:101"},"nativeSrc":"907:88:101","nodeType":"YulIf","src":"907:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1011:2:101","nodeType":"YulLiteral","src":"1011:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1015:10:101","nodeType":"YulIdentifier","src":"1015:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1004:6:101","nodeType":"YulIdentifier","src":"1004:6:101"},"nativeSrc":"1004:22:101","nodeType":"YulFunctionCall","src":"1004:22:101"},"nativeSrc":"1004:22:101","nodeType":"YulExpressionStatement","src":"1004:22:101"}]},"name":"finalize_allocation","nativeSrc":"751:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"780:6:101","nodeType":"YulTypedName","src":"780:6:101","type":""},{"name":"size","nativeSrc":"788:4:101","nodeType":"YulTypedName","src":"788:4:101","type":""}],"src":"751:281:101"},{"body":{"nativeSrc":"1079:88:101","nodeType":"YulBlock","src":"1079:88:101","statements":[{"nativeSrc":"1089:30:101","nodeType":"YulAssignment","src":"1089:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1099:18:101","nodeType":"YulIdentifier","src":"1099:18:101"},"nativeSrc":"1099:20:101","nodeType":"YulFunctionCall","src":"1099:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1089:6:101","nodeType":"YulIdentifier","src":"1089:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1148:6:101","nodeType":"YulIdentifier","src":"1148:6:101"},{"name":"size","nativeSrc":"1156:4:101","nodeType":"YulIdentifier","src":"1156:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1128:19:101","nodeType":"YulIdentifier","src":"1128:19:101"},"nativeSrc":"1128:33:101","nodeType":"YulFunctionCall","src":"1128:33:101"},"nativeSrc":"1128:33:101","nodeType":"YulExpressionStatement","src":"1128:33:101"}]},"name":"allocate_memory","nativeSrc":"1038:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1063:4:101","nodeType":"YulTypedName","src":"1063:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1072:6:101","nodeType":"YulTypedName","src":"1072:6:101","type":""}],"src":"1038:129:101"},{"body":{"nativeSrc":"1284:229:101","nodeType":"YulBlock","src":"1284:229:101","statements":[{"body":{"nativeSrc":"1389:22:101","nodeType":"YulBlock","src":"1389:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1391:16:101","nodeType":"YulIdentifier","src":"1391:16:101"},"nativeSrc":"1391:18:101","nodeType":"YulFunctionCall","src":"1391:18:101"},"nativeSrc":"1391:18:101","nodeType":"YulExpressionStatement","src":"1391:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1361:6:101","nodeType":"YulIdentifier","src":"1361:6:101"},{"kind":"number","nativeSrc":"1369:18:101","nodeType":"YulLiteral","src":"1369:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1358:2:101","nodeType":"YulIdentifier","src":"1358:2:101"},"nativeSrc":"1358:30:101","nodeType":"YulFunctionCall","src":"1358:30:101"},"nativeSrc":"1355:56:101","nodeType":"YulIf","src":"1355:56:101"},{"nativeSrc":"1421:25:101","nodeType":"YulAssignment","src":"1421:25:101","value":{"arguments":[{"name":"length","nativeSrc":"1433:6:101","nodeType":"YulIdentifier","src":"1433:6:101"},{"kind":"number","nativeSrc":"1441:4:101","nodeType":"YulLiteral","src":"1441:4:101","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"1429:3:101","nodeType":"YulIdentifier","src":"1429:3:101"},"nativeSrc":"1429:17:101","nodeType":"YulFunctionCall","src":"1429:17:101"},"variableNames":[{"name":"size","nativeSrc":"1421:4:101","nodeType":"YulIdentifier","src":"1421:4:101"}]},{"nativeSrc":"1483:23:101","nodeType":"YulAssignment","src":"1483:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1495:4:101","nodeType":"YulIdentifier","src":"1495:4:101"},{"kind":"number","nativeSrc":"1501:4:101","nodeType":"YulLiteral","src":"1501:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1491:3:101","nodeType":"YulIdentifier","src":"1491:3:101"},"nativeSrc":"1491:15:101","nodeType":"YulFunctionCall","src":"1491:15:101"},"variableNames":[{"name":"size","nativeSrc":"1483:4:101","nodeType":"YulIdentifier","src":"1483:4:101"}]}]},"name":"array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"1173:340:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1268:6:101","nodeType":"YulTypedName","src":"1268:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulTypedName","src":"1279:4:101","type":""}],"src":"1173:340:101"},{"body":{"nativeSrc":"1608:28:101","nodeType":"YulBlock","src":"1608:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1625:1:101","nodeType":"YulLiteral","src":"1625:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1628:1:101","nodeType":"YulLiteral","src":"1628:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1618:6:101","nodeType":"YulIdentifier","src":"1618:6:101"},"nativeSrc":"1618:12:101","nodeType":"YulFunctionCall","src":"1618:12:101"},"nativeSrc":"1618:12:101","nodeType":"YulExpressionStatement","src":"1618:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1519:117:101","nodeType":"YulFunctionDefinition","src":"1519:117:101"},{"body":{"nativeSrc":"1731:28:101","nodeType":"YulBlock","src":"1731:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1748:1:101","nodeType":"YulLiteral","src":"1748:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1751:1:101","nodeType":"YulLiteral","src":"1751:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"},"nativeSrc":"1741:12:101","nodeType":"YulFunctionCall","src":"1741:12:101"},"nativeSrc":"1741:12:101","nodeType":"YulExpressionStatement","src":"1741:12:101"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"1642:117:101","nodeType":"YulFunctionDefinition","src":"1642:117:101"},{"body":{"nativeSrc":"1854:28:101","nodeType":"YulBlock","src":"1854:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1871:1:101","nodeType":"YulLiteral","src":"1871:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1874:1:101","nodeType":"YulLiteral","src":"1874:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1864:6:101","nodeType":"YulIdentifier","src":"1864:6:101"},"nativeSrc":"1864:12:101","nodeType":"YulFunctionCall","src":"1864:12:101"},"nativeSrc":"1864:12:101","nodeType":"YulExpressionStatement","src":"1864:12:101"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"1765:117:101","nodeType":"YulFunctionDefinition","src":"1765:117:101"},{"body":{"nativeSrc":"1933:81:101","nodeType":"YulBlock","src":"1933:81:101","statements":[{"nativeSrc":"1943:65:101","nodeType":"YulAssignment","src":"1943:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1958:5:101","nodeType":"YulIdentifier","src":"1958:5:101"},{"kind":"number","nativeSrc":"1965:42:101","nodeType":"YulLiteral","src":"1965:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1954:3:101","nodeType":"YulIdentifier","src":"1954:3:101"},"nativeSrc":"1954:54:101","nodeType":"YulFunctionCall","src":"1954:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1943:7:101","nodeType":"YulIdentifier","src":"1943:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1888:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1915:5:101","nodeType":"YulTypedName","src":"1915:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1925:7:101","nodeType":"YulTypedName","src":"1925:7:101","type":""}],"src":"1888:126:101"},{"body":{"nativeSrc":"2065:51:101","nodeType":"YulBlock","src":"2065:51:101","statements":[{"nativeSrc":"2075:35:101","nodeType":"YulAssignment","src":"2075:35:101","value":{"arguments":[{"name":"value","nativeSrc":"2104:5:101","nodeType":"YulIdentifier","src":"2104:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2086:17:101","nodeType":"YulIdentifier","src":"2086:17:101"},"nativeSrc":"2086:24:101","nodeType":"YulFunctionCall","src":"2086:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2075:7:101","nodeType":"YulIdentifier","src":"2075:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"2020:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2047:5:101","nodeType":"YulTypedName","src":"2047:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2057:7:101","nodeType":"YulTypedName","src":"2057:7:101","type":""}],"src":"2020:96:101"},{"body":{"nativeSrc":"2165:79:101","nodeType":"YulBlock","src":"2165:79:101","statements":[{"body":{"nativeSrc":"2222:16:101","nodeType":"YulBlock","src":"2222:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2231:1:101","nodeType":"YulLiteral","src":"2231:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2234:1:101","nodeType":"YulLiteral","src":"2234:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2224:6:101","nodeType":"YulIdentifier","src":"2224:6:101"},"nativeSrc":"2224:12:101","nodeType":"YulFunctionCall","src":"2224:12:101"},"nativeSrc":"2224:12:101","nodeType":"YulExpressionStatement","src":"2224:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2188:5:101","nodeType":"YulIdentifier","src":"2188:5:101"},{"arguments":[{"name":"value","nativeSrc":"2213:5:101","nodeType":"YulIdentifier","src":"2213:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2195:17:101","nodeType":"YulIdentifier","src":"2195:17:101"},"nativeSrc":"2195:24:101","nodeType":"YulFunctionCall","src":"2195:24:101"}],"functionName":{"name":"eq","nativeSrc":"2185:2:101","nodeType":"YulIdentifier","src":"2185:2:101"},"nativeSrc":"2185:35:101","nodeType":"YulFunctionCall","src":"2185:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2178:6:101","nodeType":"YulIdentifier","src":"2178:6:101"},"nativeSrc":"2178:43:101","nodeType":"YulFunctionCall","src":"2178:43:101"},"nativeSrc":"2175:63:101","nodeType":"YulIf","src":"2175:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2122:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2158:5:101","nodeType":"YulTypedName","src":"2158:5:101","type":""}],"src":"2122:122:101"},{"body":{"nativeSrc":"2302:87:101","nodeType":"YulBlock","src":"2302:87:101","statements":[{"nativeSrc":"2312:29:101","nodeType":"YulAssignment","src":"2312:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2334:6:101","nodeType":"YulIdentifier","src":"2334:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2321:12:101","nodeType":"YulIdentifier","src":"2321:12:101"},"nativeSrc":"2321:20:101","nodeType":"YulFunctionCall","src":"2321:20:101"},"variableNames":[{"name":"value","nativeSrc":"2312:5:101","nodeType":"YulIdentifier","src":"2312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2377:5:101","nodeType":"YulIdentifier","src":"2377:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2350:26:101","nodeType":"YulIdentifier","src":"2350:26:101"},"nativeSrc":"2350:33:101","nodeType":"YulFunctionCall","src":"2350:33:101"},"nativeSrc":"2350:33:101","nodeType":"YulExpressionStatement","src":"2350:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2250:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2280:6:101","nodeType":"YulTypedName","src":"2280:6:101","type":""},{"name":"end","nativeSrc":"2288:3:101","nodeType":"YulTypedName","src":"2288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2296:5:101","nodeType":"YulTypedName","src":"2296:5:101","type":""}],"src":"2250:139:101"},{"body":{"nativeSrc":"2440:32:101","nodeType":"YulBlock","src":"2440:32:101","statements":[{"nativeSrc":"2450:16:101","nodeType":"YulAssignment","src":"2450:16:101","value":{"name":"value","nativeSrc":"2461:5:101","nodeType":"YulIdentifier","src":"2461:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2450:7:101","nodeType":"YulIdentifier","src":"2450:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2395:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2422:5:101","nodeType":"YulTypedName","src":"2422:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2432:7:101","nodeType":"YulTypedName","src":"2432:7:101","type":""}],"src":"2395:77:101"},{"body":{"nativeSrc":"2521:79:101","nodeType":"YulBlock","src":"2521:79:101","statements":[{"body":{"nativeSrc":"2578:16:101","nodeType":"YulBlock","src":"2578:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2587:1:101","nodeType":"YulLiteral","src":"2587:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2590:1:101","nodeType":"YulLiteral","src":"2590:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:12:101","nodeType":"YulFunctionCall","src":"2580:12:101"},"nativeSrc":"2580:12:101","nodeType":"YulExpressionStatement","src":"2580:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2544:5:101","nodeType":"YulIdentifier","src":"2544:5:101"},{"arguments":[{"name":"value","nativeSrc":"2569:5:101","nodeType":"YulIdentifier","src":"2569:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2551:17:101","nodeType":"YulIdentifier","src":"2551:17:101"},"nativeSrc":"2551:24:101","nodeType":"YulFunctionCall","src":"2551:24:101"}],"functionName":{"name":"eq","nativeSrc":"2541:2:101","nodeType":"YulIdentifier","src":"2541:2:101"},"nativeSrc":"2541:35:101","nodeType":"YulFunctionCall","src":"2541:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2534:6:101","nodeType":"YulIdentifier","src":"2534:6:101"},"nativeSrc":"2534:43:101","nodeType":"YulFunctionCall","src":"2534:43:101"},"nativeSrc":"2531:63:101","nodeType":"YulIf","src":"2531:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2478:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2514:5:101","nodeType":"YulTypedName","src":"2514:5:101","type":""}],"src":"2478:122:101"},{"body":{"nativeSrc":"2658:87:101","nodeType":"YulBlock","src":"2658:87:101","statements":[{"nativeSrc":"2668:29:101","nodeType":"YulAssignment","src":"2668:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2690:6:101","nodeType":"YulIdentifier","src":"2690:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2677:12:101","nodeType":"YulIdentifier","src":"2677:12:101"},"nativeSrc":"2677:20:101","nodeType":"YulFunctionCall","src":"2677:20:101"},"variableNames":[{"name":"value","nativeSrc":"2668:5:101","nodeType":"YulIdentifier","src":"2668:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2733:5:101","nodeType":"YulIdentifier","src":"2733:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2706:26:101","nodeType":"YulIdentifier","src":"2706:26:101"},"nativeSrc":"2706:33:101","nodeType":"YulFunctionCall","src":"2706:33:101"},"nativeSrc":"2706:33:101","nodeType":"YulExpressionStatement","src":"2706:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2606:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulTypedName","src":"2636:6:101","type":""},{"name":"end","nativeSrc":"2644:3:101","nodeType":"YulTypedName","src":"2644:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2652:5:101","nodeType":"YulTypedName","src":"2652:5:101","type":""}],"src":"2606:139:101"},{"body":{"nativeSrc":"2877:666:101","nodeType":"YulBlock","src":"2877:666:101","statements":[{"body":{"nativeSrc":"2921:83:101","nodeType":"YulBlock","src":"2921:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"2923:77:101","nodeType":"YulIdentifier","src":"2923:77:101"},"nativeSrc":"2923:79:101","nodeType":"YulFunctionCall","src":"2923:79:101"},"nativeSrc":"2923:79:101","nodeType":"YulExpressionStatement","src":"2923:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2898:3:101","nodeType":"YulIdentifier","src":"2898:3:101"},{"name":"headStart","nativeSrc":"2903:9:101","nodeType":"YulIdentifier","src":"2903:9:101"}],"functionName":{"name":"sub","nativeSrc":"2894:3:101","nodeType":"YulIdentifier","src":"2894:3:101"},"nativeSrc":"2894:19:101","nodeType":"YulFunctionCall","src":"2894:19:101"},{"kind":"number","nativeSrc":"2915:4:101","nodeType":"YulLiteral","src":"2915:4:101","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"2890:3:101","nodeType":"YulIdentifier","src":"2890:3:101"},"nativeSrc":"2890:30:101","nodeType":"YulFunctionCall","src":"2890:30:101"},"nativeSrc":"2887:117:101","nodeType":"YulIf","src":"2887:117:101"},{"nativeSrc":"3013:30:101","nodeType":"YulAssignment","src":"3013:30:101","value":{"arguments":[{"kind":"number","nativeSrc":"3038:4:101","nodeType":"YulLiteral","src":"3038:4:101","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"3022:15:101","nodeType":"YulIdentifier","src":"3022:15:101"},"nativeSrc":"3022:21:101","nodeType":"YulFunctionCall","src":"3022:21:101"},"variableNames":[{"name":"value","nativeSrc":"3013:5:101","nodeType":"YulIdentifier","src":"3013:5:101"}]},{"nativeSrc":"3053:151:101","nodeType":"YulBlock","src":"3053:151:101","statements":[{"nativeSrc":"3089:15:101","nodeType":"YulVariableDeclaration","src":"3089:15:101","value":{"kind":"number","nativeSrc":"3103:1:101","nodeType":"YulLiteral","src":"3103:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3093:6:101","nodeType":"YulTypedName","src":"3093:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3129:5:101","nodeType":"YulIdentifier","src":"3129:5:101"},{"kind":"number","nativeSrc":"3136:4:101","nodeType":"YulLiteral","src":"3136:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"3125:3:101","nodeType":"YulIdentifier","src":"3125:3:101"},"nativeSrc":"3125:16:101","nodeType":"YulFunctionCall","src":"3125:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3168:9:101","nodeType":"YulIdentifier","src":"3168:9:101"},{"name":"offset","nativeSrc":"3179:6:101","nodeType":"YulIdentifier","src":"3179:6:101"}],"functionName":{"name":"add","nativeSrc":"3164:3:101","nodeType":"YulIdentifier","src":"3164:3:101"},"nativeSrc":"3164:22:101","nodeType":"YulFunctionCall","src":"3164:22:101"},{"name":"end","nativeSrc":"3188:3:101","nodeType":"YulIdentifier","src":"3188:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3143:20:101","nodeType":"YulIdentifier","src":"3143:20:101"},"nativeSrc":"3143:49:101","nodeType":"YulFunctionCall","src":"3143:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3118:6:101","nodeType":"YulIdentifier","src":"3118:6:101"},"nativeSrc":"3118:75:101","nodeType":"YulFunctionCall","src":"3118:75:101"},"nativeSrc":"3118:75:101","nodeType":"YulExpressionStatement","src":"3118:75:101"}]},{"nativeSrc":"3214:151:101","nodeType":"YulBlock","src":"3214:151:101","statements":[{"nativeSrc":"3249:16:101","nodeType":"YulVariableDeclaration","src":"3249:16:101","value":{"kind":"number","nativeSrc":"3263:2:101","nodeType":"YulLiteral","src":"3263:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3253:6:101","nodeType":"YulTypedName","src":"3253:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3290:5:101","nodeType":"YulIdentifier","src":"3290:5:101"},{"kind":"number","nativeSrc":"3297:4:101","nodeType":"YulLiteral","src":"3297:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3286:3:101","nodeType":"YulIdentifier","src":"3286:3:101"},"nativeSrc":"3286:16:101","nodeType":"YulFunctionCall","src":"3286:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3329:9:101","nodeType":"YulIdentifier","src":"3329:9:101"},{"name":"offset","nativeSrc":"3340:6:101","nodeType":"YulIdentifier","src":"3340:6:101"}],"functionName":{"name":"add","nativeSrc":"3325:3:101","nodeType":"YulIdentifier","src":"3325:3:101"},"nativeSrc":"3325:22:101","nodeType":"YulFunctionCall","src":"3325:22:101"},{"name":"end","nativeSrc":"3349:3:101","nodeType":"YulIdentifier","src":"3349:3:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3304:20:101","nodeType":"YulIdentifier","src":"3304:20:101"},"nativeSrc":"3304:49:101","nodeType":"YulFunctionCall","src":"3304:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3279:6:101","nodeType":"YulIdentifier","src":"3279:6:101"},"nativeSrc":"3279:75:101","nodeType":"YulFunctionCall","src":"3279:75:101"},"nativeSrc":"3279:75:101","nodeType":"YulExpressionStatement","src":"3279:75:101"}]},{"nativeSrc":"3375:161:101","nodeType":"YulBlock","src":"3375:161:101","statements":[{"nativeSrc":"3420:16:101","nodeType":"YulVariableDeclaration","src":"3420:16:101","value":{"kind":"number","nativeSrc":"3434:2:101","nodeType":"YulLiteral","src":"3434:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3424:6:101","nodeType":"YulTypedName","src":"3424:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3461:5:101","nodeType":"YulIdentifier","src":"3461:5:101"},{"kind":"number","nativeSrc":"3468:4:101","nodeType":"YulLiteral","src":"3468:4:101","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3457:3:101","nodeType":"YulIdentifier","src":"3457:3:101"},"nativeSrc":"3457:16:101","nodeType":"YulFunctionCall","src":"3457:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3500:9:101","nodeType":"YulIdentifier","src":"3500:9:101"},{"name":"offset","nativeSrc":"3511:6:101","nodeType":"YulIdentifier","src":"3511:6:101"}],"functionName":{"name":"add","nativeSrc":"3496:3:101","nodeType":"YulIdentifier","src":"3496:3:101"},"nativeSrc":"3496:22:101","nodeType":"YulFunctionCall","src":"3496:22:101"},{"name":"end","nativeSrc":"3520:3:101","nodeType":"YulIdentifier","src":"3520:3:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3475:20:101","nodeType":"YulIdentifier","src":"3475:20:101"},"nativeSrc":"3475:49:101","nodeType":"YulFunctionCall","src":"3475:49:101"}],"functionName":{"name":"mstore","nativeSrc":"3450:6:101","nodeType":"YulIdentifier","src":"3450:6:101"},"nativeSrc":"3450:75:101","nodeType":"YulFunctionCall","src":"3450:75:101"},"nativeSrc":"3450:75:101","nodeType":"YulExpressionStatement","src":"3450:75:101"}]}]},"name":"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"2793:750:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2852:9:101","nodeType":"YulTypedName","src":"2852:9:101","type":""},{"name":"end","nativeSrc":"2863:3:101","nodeType":"YulTypedName","src":"2863:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2871:5:101","nodeType":"YulTypedName","src":"2871:5:101","type":""}],"src":"2793:750:101"},{"body":{"nativeSrc":"3724:666:101","nodeType":"YulBlock","src":"3724:666:101","statements":[{"nativeSrc":"3734:119:101","nodeType":"YulAssignment","src":"3734:119:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3845:6:101","nodeType":"YulIdentifier","src":"3845:6:101"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"3759:85:101","nodeType":"YulIdentifier","src":"3759:85:101"},"nativeSrc":"3759:93:101","nodeType":"YulFunctionCall","src":"3759:93:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"3743:15:101","nodeType":"YulIdentifier","src":"3743:15:101"},"nativeSrc":"3743:110:101","nodeType":"YulFunctionCall","src":"3743:110:101"},"variableNames":[{"name":"array","nativeSrc":"3734:5:101","nodeType":"YulIdentifier","src":"3734:5:101"}]},{"nativeSrc":"3862:16:101","nodeType":"YulVariableDeclaration","src":"3862:16:101","value":{"name":"array","nativeSrc":"3873:5:101","nodeType":"YulIdentifier","src":"3873:5:101"},"variables":[{"name":"dst","nativeSrc":"3866:3:101","nodeType":"YulTypedName","src":"3866:3:101","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3895:5:101","nodeType":"YulIdentifier","src":"3895:5:101"},{"name":"length","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3888:6:101","nodeType":"YulIdentifier","src":"3888:6:101"},"nativeSrc":"3888:21:101","nodeType":"YulFunctionCall","src":"3888:21:101"},"nativeSrc":"3888:21:101","nodeType":"YulExpressionStatement","src":"3888:21:101"},{"nativeSrc":"3918:23:101","nodeType":"YulAssignment","src":"3918:23:101","value":{"arguments":[{"name":"array","nativeSrc":"3929:5:101","nodeType":"YulIdentifier","src":"3929:5:101"},{"kind":"number","nativeSrc":"3936:4:101","nodeType":"YulLiteral","src":"3936:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3925:3:101","nodeType":"YulIdentifier","src":"3925:3:101"},"nativeSrc":"3925:16:101","nodeType":"YulFunctionCall","src":"3925:16:101"},"variableNames":[{"name":"dst","nativeSrc":"3918:3:101","nodeType":"YulIdentifier","src":"3918:3:101"}]},{"nativeSrc":"3951:44:101","nodeType":"YulVariableDeclaration","src":"3951:44:101","value":{"arguments":[{"name":"offset","nativeSrc":"3969:6:101","nodeType":"YulIdentifier","src":"3969:6:101"},{"arguments":[{"name":"length","nativeSrc":"3981:6:101","nodeType":"YulIdentifier","src":"3981:6:101"},{"kind":"number","nativeSrc":"3989:4:101","nodeType":"YulLiteral","src":"3989:4:101","type":"","value":"0x60"}],"functionName":{"name":"mul","nativeSrc":"3977:3:101","nodeType":"YulIdentifier","src":"3977:3:101"},"nativeSrc":"3977:17:101","nodeType":"YulFunctionCall","src":"3977:17:101"}],"functionName":{"name":"add","nativeSrc":"3965:3:101","nodeType":"YulIdentifier","src":"3965:3:101"},"nativeSrc":"3965:30:101","nodeType":"YulFunctionCall","src":"3965:30:101"},"variables":[{"name":"srcEnd","nativeSrc":"3955:6:101","nodeType":"YulTypedName","src":"3955:6:101","type":""}]},{"body":{"nativeSrc":"4023:103:101","nodeType":"YulBlock","src":"4023:103:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4037:77:101","nodeType":"YulIdentifier","src":"4037:77:101"},"nativeSrc":"4037:79:101","nodeType":"YulFunctionCall","src":"4037:79:101"},"nativeSrc":"4037:79:101","nodeType":"YulExpressionStatement","src":"4037:79:101"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"4010:6:101","nodeType":"YulIdentifier","src":"4010:6:101"},{"name":"end","nativeSrc":"4018:3:101","nodeType":"YulIdentifier","src":"4018:3:101"}],"functionName":{"name":"gt","nativeSrc":"4007:2:101","nodeType":"YulIdentifier","src":"4007:2:101"},"nativeSrc":"4007:15:101","nodeType":"YulFunctionCall","src":"4007:15:101"},"nativeSrc":"4004:122:101","nodeType":"YulIf","src":"4004:122:101"},{"body":{"nativeSrc":"4211:173:101","nodeType":"YulBlock","src":"4211:173:101","statements":[{"nativeSrc":"4226:21:101","nodeType":"YulVariableDeclaration","src":"4226:21:101","value":{"name":"src","nativeSrc":"4244:3:101","nodeType":"YulIdentifier","src":"4244:3:101"},"variables":[{"name":"elementPos","nativeSrc":"4230:10:101","nodeType":"YulTypedName","src":"4230:10:101","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"4268:3:101","nodeType":"YulIdentifier","src":"4268:3:101"},{"arguments":[{"name":"elementPos","nativeSrc":"4323:10:101","nodeType":"YulIdentifier","src":"4323:10:101"},{"name":"end","nativeSrc":"4335:3:101","nodeType":"YulIdentifier","src":"4335:3:101"}],"functionName":{"name":"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"4273:49:101","nodeType":"YulIdentifier","src":"4273:49:101"},"nativeSrc":"4273:66:101","nodeType":"YulFunctionCall","src":"4273:66:101"}],"functionName":{"name":"mstore","nativeSrc":"4261:6:101","nodeType":"YulIdentifier","src":"4261:6:101"},"nativeSrc":"4261:79:101","nodeType":"YulFunctionCall","src":"4261:79:101"},"nativeSrc":"4261:79:101","nodeType":"YulExpressionStatement","src":"4261:79:101"},{"nativeSrc":"4353:21:101","nodeType":"YulAssignment","src":"4353:21:101","value":{"arguments":[{"name":"dst","nativeSrc":"4364:3:101","nodeType":"YulIdentifier","src":"4364:3:101"},{"kind":"number","nativeSrc":"4369:4:101","nodeType":"YulLiteral","src":"4369:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4360:3:101","nodeType":"YulIdentifier","src":"4360:3:101"},"nativeSrc":"4360:14:101","nodeType":"YulFunctionCall","src":"4360:14:101"},"variableNames":[{"name":"dst","nativeSrc":"4353:3:101","nodeType":"YulIdentifier","src":"4353:3:101"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"4164:3:101","nodeType":"YulIdentifier","src":"4164:3:101"},{"name":"srcEnd","nativeSrc":"4169:6:101","nodeType":"YulIdentifier","src":"4169:6:101"}],"functionName":{"name":"lt","nativeSrc":"4161:2:101","nodeType":"YulIdentifier","src":"4161:2:101"},"nativeSrc":"4161:15:101","nodeType":"YulFunctionCall","src":"4161:15:101"},"nativeSrc":"4135:249:101","nodeType":"YulForLoop","post":{"nativeSrc":"4177:25:101","nodeType":"YulBlock","src":"4177:25:101","statements":[{"nativeSrc":"4179:21:101","nodeType":"YulAssignment","src":"4179:21:101","value":{"arguments":[{"name":"src","nativeSrc":"4190:3:101","nodeType":"YulIdentifier","src":"4190:3:101"},{"kind":"number","nativeSrc":"4195:4:101","nodeType":"YulLiteral","src":"4195:4:101","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"4186:3:101","nodeType":"YulIdentifier","src":"4186:3:101"},"nativeSrc":"4186:14:101","nodeType":"YulFunctionCall","src":"4186:14:101"},"variableNames":[{"name":"src","nativeSrc":"4179:3:101","nodeType":"YulIdentifier","src":"4179:3:101"}]}]},"pre":{"nativeSrc":"4139:21:101","nodeType":"YulBlock","src":"4139:21:101","statements":[{"nativeSrc":"4141:17:101","nodeType":"YulVariableDeclaration","src":"4141:17:101","value":{"name":"offset","nativeSrc":"4152:6:101","nodeType":"YulIdentifier","src":"4152:6:101"},"variables":[{"name":"src","nativeSrc":"4145:3:101","nodeType":"YulTypedName","src":"4145:3:101","type":""}]}]},"src":"4135:249:101"}]},"name":"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"3593:797:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3694:6:101","nodeType":"YulTypedName","src":"3694:6:101","type":""},{"name":"length","nativeSrc":"3702:6:101","nodeType":"YulTypedName","src":"3702:6:101","type":""},{"name":"end","nativeSrc":"3710:3:101","nodeType":"YulTypedName","src":"3710:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3718:5:101","nodeType":"YulTypedName","src":"3718:5:101","type":""}],"src":"3593:797:101"},{"body":{"nativeSrc":"4546:322:101","nodeType":"YulBlock","src":"4546:322:101","statements":[{"body":{"nativeSrc":"4595:83:101","nodeType":"YulBlock","src":"4595:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4597:77:101","nodeType":"YulIdentifier","src":"4597:77:101"},"nativeSrc":"4597:79:101","nodeType":"YulFunctionCall","src":"4597:79:101"},"nativeSrc":"4597:79:101","nodeType":"YulExpressionStatement","src":"4597:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4574:6:101","nodeType":"YulIdentifier","src":"4574:6:101"},{"kind":"number","nativeSrc":"4582:4:101","nodeType":"YulLiteral","src":"4582:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4570:3:101","nodeType":"YulIdentifier","src":"4570:3:101"},"nativeSrc":"4570:17:101","nodeType":"YulFunctionCall","src":"4570:17:101"},{"name":"end","nativeSrc":"4589:3:101","nodeType":"YulIdentifier","src":"4589:3:101"}],"functionName":{"name":"slt","nativeSrc":"4566:3:101","nodeType":"YulIdentifier","src":"4566:3:101"},"nativeSrc":"4566:27:101","nodeType":"YulFunctionCall","src":"4566:27:101"}],"functionName":{"name":"iszero","nativeSrc":"4559:6:101","nodeType":"YulIdentifier","src":"4559:6:101"},"nativeSrc":"4559:35:101","nodeType":"YulFunctionCall","src":"4559:35:101"},"nativeSrc":"4556:122:101","nodeType":"YulIf","src":"4556:122:101"},{"nativeSrc":"4687:34:101","nodeType":"YulVariableDeclaration","src":"4687:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"4714:6:101","nodeType":"YulIdentifier","src":"4714:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"4701:12:101","nodeType":"YulIdentifier","src":"4701:12:101"},"nativeSrc":"4701:20:101","nodeType":"YulFunctionCall","src":"4701:20:101"},"variables":[{"name":"length","nativeSrc":"4691:6:101","nodeType":"YulTypedName","src":"4691:6:101","type":""}]},{"nativeSrc":"4730:132:101","nodeType":"YulAssignment","src":"4730:132:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4835:6:101","nodeType":"YulIdentifier","src":"4835:6:101"},{"kind":"number","nativeSrc":"4843:4:101","nodeType":"YulLiteral","src":"4843:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4831:3:101","nodeType":"YulIdentifier","src":"4831:3:101"},"nativeSrc":"4831:17:101","nodeType":"YulFunctionCall","src":"4831:17:101"},{"name":"length","nativeSrc":"4850:6:101","nodeType":"YulIdentifier","src":"4850:6:101"},{"name":"end","nativeSrc":"4858:3:101","nodeType":"YulIdentifier","src":"4858:3:101"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"4739:91:101","nodeType":"YulIdentifier","src":"4739:91:101"},"nativeSrc":"4739:123:101","nodeType":"YulFunctionCall","src":"4739:123:101"},"variableNames":[{"name":"array","nativeSrc":"4730:5:101","nodeType":"YulIdentifier","src":"4730:5:101"}]}]},"name":"abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"4440:428:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4524:6:101","nodeType":"YulTypedName","src":"4524:6:101","type":""},{"name":"end","nativeSrc":"4532:3:101","nodeType":"YulTypedName","src":"4532:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4540:5:101","nodeType":"YulTypedName","src":"4540:5:101","type":""}],"src":"4440:428:101"},{"body":{"nativeSrc":"4994:477:101","nodeType":"YulBlock","src":"4994:477:101","statements":[{"body":{"nativeSrc":"5040:83:101","nodeType":"YulBlock","src":"5040:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5042:77:101","nodeType":"YulIdentifier","src":"5042:77:101"},"nativeSrc":"5042:79:101","nodeType":"YulFunctionCall","src":"5042:79:101"},"nativeSrc":"5042:79:101","nodeType":"YulExpressionStatement","src":"5042:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5015:7:101","nodeType":"YulIdentifier","src":"5015:7:101"},{"name":"headStart","nativeSrc":"5024:9:101","nodeType":"YulIdentifier","src":"5024:9:101"}],"functionName":{"name":"sub","nativeSrc":"5011:3:101","nodeType":"YulIdentifier","src":"5011:3:101"},"nativeSrc":"5011:23:101","nodeType":"YulFunctionCall","src":"5011:23:101"},{"kind":"number","nativeSrc":"5036:2:101","nodeType":"YulLiteral","src":"5036:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5007:3:101","nodeType":"YulIdentifier","src":"5007:3:101"},"nativeSrc":"5007:32:101","nodeType":"YulFunctionCall","src":"5007:32:101"},"nativeSrc":"5004:119:101","nodeType":"YulIf","src":"5004:119:101"},{"nativeSrc":"5133:331:101","nodeType":"YulBlock","src":"5133:331:101","statements":[{"nativeSrc":"5148:45:101","nodeType":"YulVariableDeclaration","src":"5148:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5179:9:101","nodeType":"YulIdentifier","src":"5179:9:101"},{"kind":"number","nativeSrc":"5190:1:101","nodeType":"YulLiteral","src":"5190:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5175:3:101","nodeType":"YulIdentifier","src":"5175:3:101"},"nativeSrc":"5175:17:101","nodeType":"YulFunctionCall","src":"5175:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"5162:12:101","nodeType":"YulIdentifier","src":"5162:12:101"},"nativeSrc":"5162:31:101","nodeType":"YulFunctionCall","src":"5162:31:101"},"variables":[{"name":"offset","nativeSrc":"5152:6:101","nodeType":"YulTypedName","src":"5152:6:101","type":""}]},{"body":{"nativeSrc":"5240:83:101","nodeType":"YulBlock","src":"5240:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5242:77:101","nodeType":"YulIdentifier","src":"5242:77:101"},"nativeSrc":"5242:79:101","nodeType":"YulFunctionCall","src":"5242:79:101"},"nativeSrc":"5242:79:101","nodeType":"YulExpressionStatement","src":"5242:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5212:6:101","nodeType":"YulIdentifier","src":"5212:6:101"},{"kind":"number","nativeSrc":"5220:18:101","nodeType":"YulLiteral","src":"5220:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5209:2:101","nodeType":"YulIdentifier","src":"5209:2:101"},"nativeSrc":"5209:30:101","nodeType":"YulFunctionCall","src":"5209:30:101"},"nativeSrc":"5206:117:101","nodeType":"YulIf","src":"5206:117:101"},{"nativeSrc":"5337:117:101","nodeType":"YulAssignment","src":"5337:117:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5426:9:101","nodeType":"YulIdentifier","src":"5426:9:101"},{"name":"offset","nativeSrc":"5437:6:101","nodeType":"YulIdentifier","src":"5437:6:101"}],"functionName":{"name":"add","nativeSrc":"5422:3:101","nodeType":"YulIdentifier","src":"5422:3:101"},"nativeSrc":"5422:22:101","nodeType":"YulFunctionCall","src":"5422:22:101"},{"name":"dataEnd","nativeSrc":"5446:7:101","nodeType":"YulIdentifier","src":"5446:7:101"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"5347:74:101","nodeType":"YulIdentifier","src":"5347:74:101"},"nativeSrc":"5347:107:101","nodeType":"YulFunctionCall","src":"5347:107:101"},"variableNames":[{"name":"value0","nativeSrc":"5337:6:101","nodeType":"YulIdentifier","src":"5337:6:101"}]}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr","nativeSrc":"4874:597:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4964:9:101","nodeType":"YulTypedName","src":"4964:9:101","type":""},{"name":"dataEnd","nativeSrc":"4975:7:101","nodeType":"YulTypedName","src":"4975:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4987:6:101","nodeType":"YulTypedName","src":"4987:6:101","type":""}],"src":"4874:597:101"},{"body":{"nativeSrc":"5560:391:101","nodeType":"YulBlock","src":"5560:391:101","statements":[{"body":{"nativeSrc":"5606:83:101","nodeType":"YulBlock","src":"5606:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5608:77:101","nodeType":"YulIdentifier","src":"5608:77:101"},"nativeSrc":"5608:79:101","nodeType":"YulFunctionCall","src":"5608:79:101"},"nativeSrc":"5608:79:101","nodeType":"YulExpressionStatement","src":"5608:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5581:7:101","nodeType":"YulIdentifier","src":"5581:7:101"},{"name":"headStart","nativeSrc":"5590:9:101","nodeType":"YulIdentifier","src":"5590:9:101"}],"functionName":{"name":"sub","nativeSrc":"5577:3:101","nodeType":"YulIdentifier","src":"5577:3:101"},"nativeSrc":"5577:23:101","nodeType":"YulFunctionCall","src":"5577:23:101"},{"kind":"number","nativeSrc":"5602:2:101","nodeType":"YulLiteral","src":"5602:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5573:3:101","nodeType":"YulIdentifier","src":"5573:3:101"},"nativeSrc":"5573:32:101","nodeType":"YulFunctionCall","src":"5573:32:101"},"nativeSrc":"5570:119:101","nodeType":"YulIf","src":"5570:119:101"},{"nativeSrc":"5699:117:101","nodeType":"YulBlock","src":"5699:117:101","statements":[{"nativeSrc":"5714:15:101","nodeType":"YulVariableDeclaration","src":"5714:15:101","value":{"kind":"number","nativeSrc":"5728:1:101","nodeType":"YulLiteral","src":"5728:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5718:6:101","nodeType":"YulTypedName","src":"5718:6:101","type":""}]},{"nativeSrc":"5743:63:101","nodeType":"YulAssignment","src":"5743:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5778:9:101","nodeType":"YulIdentifier","src":"5778:9:101"},{"name":"offset","nativeSrc":"5789:6:101","nodeType":"YulIdentifier","src":"5789:6:101"}],"functionName":{"name":"add","nativeSrc":"5774:3:101","nodeType":"YulIdentifier","src":"5774:3:101"},"nativeSrc":"5774:22:101","nodeType":"YulFunctionCall","src":"5774:22:101"},{"name":"dataEnd","nativeSrc":"5798:7:101","nodeType":"YulIdentifier","src":"5798:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5753:20:101","nodeType":"YulIdentifier","src":"5753:20:101"},"nativeSrc":"5753:53:101","nodeType":"YulFunctionCall","src":"5753:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5743:6:101","nodeType":"YulIdentifier","src":"5743:6:101"}]}]},{"nativeSrc":"5826:118:101","nodeType":"YulBlock","src":"5826:118:101","statements":[{"nativeSrc":"5841:16:101","nodeType":"YulVariableDeclaration","src":"5841:16:101","value":{"kind":"number","nativeSrc":"5855:2:101","nodeType":"YulLiteral","src":"5855:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5845:6:101","nodeType":"YulTypedName","src":"5845:6:101","type":""}]},{"nativeSrc":"5871:63:101","nodeType":"YulAssignment","src":"5871:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5906:9:101","nodeType":"YulIdentifier","src":"5906:9:101"},{"name":"offset","nativeSrc":"5917:6:101","nodeType":"YulIdentifier","src":"5917:6:101"}],"functionName":{"name":"add","nativeSrc":"5902:3:101","nodeType":"YulIdentifier","src":"5902:3:101"},"nativeSrc":"5902:22:101","nodeType":"YulFunctionCall","src":"5902:22:101"},{"name":"dataEnd","nativeSrc":"5926:7:101","nodeType":"YulIdentifier","src":"5926:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5881:20:101","nodeType":"YulIdentifier","src":"5881:20:101"},"nativeSrc":"5881:53:101","nodeType":"YulFunctionCall","src":"5881:53:101"},"variableNames":[{"name":"value1","nativeSrc":"5871:6:101","nodeType":"YulIdentifier","src":"5871:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"5477:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5522:9:101","nodeType":"YulTypedName","src":"5522:9:101","type":""},{"name":"dataEnd","nativeSrc":"5533:7:101","nodeType":"YulTypedName","src":"5533:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5545:6:101","nodeType":"YulTypedName","src":"5545:6:101","type":""},{"name":"value1","nativeSrc":"5553:6:101","nodeType":"YulTypedName","src":"5553:6:101","type":""}],"src":"5477:474:101"},{"body":{"nativeSrc":"6023:263:101","nodeType":"YulBlock","src":"6023:263:101","statements":[{"body":{"nativeSrc":"6069:83:101","nodeType":"YulBlock","src":"6069:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6071:77:101","nodeType":"YulIdentifier","src":"6071:77:101"},"nativeSrc":"6071:79:101","nodeType":"YulFunctionCall","src":"6071:79:101"},"nativeSrc":"6071:79:101","nodeType":"YulExpressionStatement","src":"6071:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6044:7:101","nodeType":"YulIdentifier","src":"6044:7:101"},{"name":"headStart","nativeSrc":"6053:9:101","nodeType":"YulIdentifier","src":"6053:9:101"}],"functionName":{"name":"sub","nativeSrc":"6040:3:101","nodeType":"YulIdentifier","src":"6040:3:101"},"nativeSrc":"6040:23:101","nodeType":"YulFunctionCall","src":"6040:23:101"},{"kind":"number","nativeSrc":"6065:2:101","nodeType":"YulLiteral","src":"6065:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6036:3:101","nodeType":"YulIdentifier","src":"6036:3:101"},"nativeSrc":"6036:32:101","nodeType":"YulFunctionCall","src":"6036:32:101"},"nativeSrc":"6033:119:101","nodeType":"YulIf","src":"6033:119:101"},{"nativeSrc":"6162:117:101","nodeType":"YulBlock","src":"6162:117:101","statements":[{"nativeSrc":"6177:15:101","nodeType":"YulVariableDeclaration","src":"6177:15:101","value":{"kind":"number","nativeSrc":"6191:1:101","nodeType":"YulLiteral","src":"6191:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6181:6:101","nodeType":"YulTypedName","src":"6181:6:101","type":""}]},{"nativeSrc":"6206:63:101","nodeType":"YulAssignment","src":"6206:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6241:9:101","nodeType":"YulIdentifier","src":"6241:9:101"},{"name":"offset","nativeSrc":"6252:6:101","nodeType":"YulIdentifier","src":"6252:6:101"}],"functionName":{"name":"add","nativeSrc":"6237:3:101","nodeType":"YulIdentifier","src":"6237:3:101"},"nativeSrc":"6237:22:101","nodeType":"YulFunctionCall","src":"6237:22:101"},{"name":"dataEnd","nativeSrc":"6261:7:101","nodeType":"YulIdentifier","src":"6261:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6216:20:101","nodeType":"YulIdentifier","src":"6216:20:101"},"nativeSrc":"6216:53:101","nodeType":"YulFunctionCall","src":"6216:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6206:6:101","nodeType":"YulIdentifier","src":"6206:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5957:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5993:9:101","nodeType":"YulTypedName","src":"5993:9:101","type":""},{"name":"dataEnd","nativeSrc":"6004:7:101","nodeType":"YulTypedName","src":"6004:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6016:6:101","nodeType":"YulTypedName","src":"6016:6:101","type":""}],"src":"5957:329:101"},{"body":{"nativeSrc":"6357:53:101","nodeType":"YulBlock","src":"6357:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6374:3:101","nodeType":"YulIdentifier","src":"6374:3:101"},{"arguments":[{"name":"value","nativeSrc":"6397:5:101","nodeType":"YulIdentifier","src":"6397:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6379:17:101","nodeType":"YulIdentifier","src":"6379:17:101"},"nativeSrc":"6379:24:101","nodeType":"YulFunctionCall","src":"6379:24:101"}],"functionName":{"name":"mstore","nativeSrc":"6367:6:101","nodeType":"YulIdentifier","src":"6367:6:101"},"nativeSrc":"6367:37:101","nodeType":"YulFunctionCall","src":"6367:37:101"},"nativeSrc":"6367:37:101","nodeType":"YulExpressionStatement","src":"6367:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6292:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6345:5:101","nodeType":"YulTypedName","src":"6345:5:101","type":""},{"name":"pos","nativeSrc":"6352:3:101","nodeType":"YulTypedName","src":"6352:3:101","type":""}],"src":"6292:118:101"},{"body":{"nativeSrc":"6481:53:101","nodeType":"YulBlock","src":"6481:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6498:3:101","nodeType":"YulIdentifier","src":"6498:3:101"},{"arguments":[{"name":"value","nativeSrc":"6521:5:101","nodeType":"YulIdentifier","src":"6521:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6503:17:101","nodeType":"YulIdentifier","src":"6503:17:101"},"nativeSrc":"6503:24:101","nodeType":"YulFunctionCall","src":"6503:24:101"}],"functionName":{"name":"mstore","nativeSrc":"6491:6:101","nodeType":"YulIdentifier","src":"6491:6:101"},"nativeSrc":"6491:37:101","nodeType":"YulFunctionCall","src":"6491:37:101"},"nativeSrc":"6491:37:101","nodeType":"YulExpressionStatement","src":"6491:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6416:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6469:5:101","nodeType":"YulTypedName","src":"6469:5:101","type":""},{"name":"pos","nativeSrc":"6476:3:101","nodeType":"YulTypedName","src":"6476:3:101","type":""}],"src":"6416:118:101"},{"body":{"nativeSrc":"6694:288:101","nodeType":"YulBlock","src":"6694:288:101","statements":[{"nativeSrc":"6704:26:101","nodeType":"YulAssignment","src":"6704:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6716:9:101","nodeType":"YulIdentifier","src":"6716:9:101"},{"kind":"number","nativeSrc":"6727:2:101","nodeType":"YulLiteral","src":"6727:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6712:3:101","nodeType":"YulIdentifier","src":"6712:3:101"},"nativeSrc":"6712:18:101","nodeType":"YulFunctionCall","src":"6712:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6704:4:101","nodeType":"YulIdentifier","src":"6704:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6784:6:101","nodeType":"YulIdentifier","src":"6784:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6797:9:101","nodeType":"YulIdentifier","src":"6797:9:101"},{"kind":"number","nativeSrc":"6808:1:101","nodeType":"YulLiteral","src":"6808:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6793:3:101","nodeType":"YulIdentifier","src":"6793:3:101"},"nativeSrc":"6793:17:101","nodeType":"YulFunctionCall","src":"6793:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6740:43:101","nodeType":"YulIdentifier","src":"6740:43:101"},"nativeSrc":"6740:71:101","nodeType":"YulFunctionCall","src":"6740:71:101"},"nativeSrc":"6740:71:101","nodeType":"YulExpressionStatement","src":"6740:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"6865:6:101","nodeType":"YulIdentifier","src":"6865:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6878:9:101","nodeType":"YulIdentifier","src":"6878:9:101"},{"kind":"number","nativeSrc":"6889:2:101","nodeType":"YulLiteral","src":"6889:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6874:3:101","nodeType":"YulIdentifier","src":"6874:3:101"},"nativeSrc":"6874:18:101","nodeType":"YulFunctionCall","src":"6874:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6821:43:101","nodeType":"YulIdentifier","src":"6821:43:101"},"nativeSrc":"6821:72:101","nodeType":"YulFunctionCall","src":"6821:72:101"},"nativeSrc":"6821:72:101","nodeType":"YulExpressionStatement","src":"6821:72:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"6947:6:101","nodeType":"YulIdentifier","src":"6947:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6960:9:101","nodeType":"YulIdentifier","src":"6960:9:101"},{"kind":"number","nativeSrc":"6971:2:101","nodeType":"YulLiteral","src":"6971:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"},"nativeSrc":"6956:18:101","nodeType":"YulFunctionCall","src":"6956:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6903:43:101","nodeType":"YulIdentifier","src":"6903:43:101"},"nativeSrc":"6903:72:101","nodeType":"YulFunctionCall","src":"6903:72:101"},"nativeSrc":"6903:72:101","nodeType":"YulExpressionStatement","src":"6903:72:101"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"6540:442:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6650:9:101","nodeType":"YulTypedName","src":"6650:9:101","type":""},{"name":"value2","nativeSrc":"6662:6:101","nodeType":"YulTypedName","src":"6662:6:101","type":""},{"name":"value1","nativeSrc":"6670:6:101","nodeType":"YulTypedName","src":"6670:6:101","type":""},{"name":"value0","nativeSrc":"6678:6:101","nodeType":"YulTypedName","src":"6678:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6689:4:101","nodeType":"YulTypedName","src":"6689:4:101","type":""}],"src":"6540:442:101"},{"body":{"nativeSrc":"7083:292:101","nodeType":"YulBlock","src":"7083:292:101","statements":[{"body":{"nativeSrc":"7129:83:101","nodeType":"YulBlock","src":"7129:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7131:77:101","nodeType":"YulIdentifier","src":"7131:77:101"},"nativeSrc":"7131:79:101","nodeType":"YulFunctionCall","src":"7131:79:101"},"nativeSrc":"7131:79:101","nodeType":"YulExpressionStatement","src":"7131:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7104:7:101","nodeType":"YulIdentifier","src":"7104:7:101"},{"name":"headStart","nativeSrc":"7113:9:101","nodeType":"YulIdentifier","src":"7113:9:101"}],"functionName":{"name":"sub","nativeSrc":"7100:3:101","nodeType":"YulIdentifier","src":"7100:3:101"},"nativeSrc":"7100:23:101","nodeType":"YulFunctionCall","src":"7100:23:101"},{"kind":"number","nativeSrc":"7125:2:101","nodeType":"YulLiteral","src":"7125:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7096:3:101","nodeType":"YulIdentifier","src":"7096:3:101"},"nativeSrc":"7096:32:101","nodeType":"YulFunctionCall","src":"7096:32:101"},"nativeSrc":"7093:119:101","nodeType":"YulIf","src":"7093:119:101"},{"nativeSrc":"7222:146:101","nodeType":"YulBlock","src":"7222:146:101","statements":[{"nativeSrc":"7237:15:101","nodeType":"YulVariableDeclaration","src":"7237:15:101","value":{"kind":"number","nativeSrc":"7251:1:101","nodeType":"YulLiteral","src":"7251:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7241:6:101","nodeType":"YulTypedName","src":"7241:6:101","type":""}]},{"nativeSrc":"7266:92:101","nodeType":"YulAssignment","src":"7266:92:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7330:9:101","nodeType":"YulIdentifier","src":"7330:9:101"},{"name":"offset","nativeSrc":"7341:6:101","nodeType":"YulIdentifier","src":"7341:6:101"}],"functionName":{"name":"add","nativeSrc":"7326:3:101","nodeType":"YulIdentifier","src":"7326:3:101"},"nativeSrc":"7326:22:101","nodeType":"YulFunctionCall","src":"7326:22:101"},{"name":"dataEnd","nativeSrc":"7350:7:101","nodeType":"YulIdentifier","src":"7350:7:101"}],"functionName":{"name":"abi_decode_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"7276:49:101","nodeType":"YulIdentifier","src":"7276:49:101"},"nativeSrc":"7276:82:101","nodeType":"YulFunctionCall","src":"7276:82:101"},"variableNames":[{"name":"value0","nativeSrc":"7266:6:101","nodeType":"YulIdentifier","src":"7266:6:101"}]}]}]},"name":"abi_decode_tuple_t_struct$_TokenConfig_$4703_memory_ptr","nativeSrc":"6988:387:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7053:9:101","nodeType":"YulTypedName","src":"7053:9:101","type":""},{"name":"dataEnd","nativeSrc":"7064:7:101","nodeType":"YulTypedName","src":"7064:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7076:6:101","nodeType":"YulTypedName","src":"7076:6:101","type":""}],"src":"6988:387:101"},{"body":{"nativeSrc":"7479:124:101","nodeType":"YulBlock","src":"7479:124:101","statements":[{"nativeSrc":"7489:26:101","nodeType":"YulAssignment","src":"7489:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7501:9:101","nodeType":"YulIdentifier","src":"7501:9:101"},{"kind":"number","nativeSrc":"7512:2:101","nodeType":"YulLiteral","src":"7512:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7497:3:101","nodeType":"YulIdentifier","src":"7497:3:101"},"nativeSrc":"7497:18:101","nodeType":"YulFunctionCall","src":"7497:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7489:4:101","nodeType":"YulIdentifier","src":"7489:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7569:6:101","nodeType":"YulIdentifier","src":"7569:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"7582:9:101","nodeType":"YulIdentifier","src":"7582:9:101"},{"kind":"number","nativeSrc":"7593:1:101","nodeType":"YulLiteral","src":"7593:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7578:3:101","nodeType":"YulIdentifier","src":"7578:3:101"},"nativeSrc":"7578:17:101","nodeType":"YulFunctionCall","src":"7578:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7525:43:101","nodeType":"YulIdentifier","src":"7525:43:101"},"nativeSrc":"7525:71:101","nodeType":"YulFunctionCall","src":"7525:71:101"},"nativeSrc":"7525:71:101","nodeType":"YulExpressionStatement","src":"7525:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7381:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7451:9:101","nodeType":"YulTypedName","src":"7451:9:101","type":""},{"name":"value0","nativeSrc":"7463:6:101","nodeType":"YulTypedName","src":"7463:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7474:4:101","nodeType":"YulTypedName","src":"7474:4:101","type":""}],"src":"7381:222:101"},{"body":{"nativeSrc":"7641:28:101","nodeType":"YulBlock","src":"7641:28:101","statements":[{"nativeSrc":"7651:12:101","nodeType":"YulAssignment","src":"7651:12:101","value":{"name":"value","nativeSrc":"7658:5:101","nodeType":"YulIdentifier","src":"7658:5:101"},"variableNames":[{"name":"ret","nativeSrc":"7651:3:101","nodeType":"YulIdentifier","src":"7651:3:101"}]}]},"name":"identity","nativeSrc":"7609:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7627:5:101","nodeType":"YulTypedName","src":"7627:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"7637:3:101","nodeType":"YulTypedName","src":"7637:3:101","type":""}],"src":"7609:60:101"},{"body":{"nativeSrc":"7735:82:101","nodeType":"YulBlock","src":"7735:82:101","statements":[{"nativeSrc":"7745:66:101","nodeType":"YulAssignment","src":"7745:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7803:5:101","nodeType":"YulIdentifier","src":"7803:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"7785:17:101","nodeType":"YulIdentifier","src":"7785:17:101"},"nativeSrc":"7785:24:101","nodeType":"YulFunctionCall","src":"7785:24:101"}],"functionName":{"name":"identity","nativeSrc":"7776:8:101","nodeType":"YulIdentifier","src":"7776:8:101"},"nativeSrc":"7776:34:101","nodeType":"YulFunctionCall","src":"7776:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"7758:17:101","nodeType":"YulIdentifier","src":"7758:17:101"},"nativeSrc":"7758:53:101","nodeType":"YulFunctionCall","src":"7758:53:101"},"variableNames":[{"name":"converted","nativeSrc":"7745:9:101","nodeType":"YulIdentifier","src":"7745:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"7675:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7715:5:101","nodeType":"YulTypedName","src":"7715:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7725:9:101","nodeType":"YulTypedName","src":"7725:9:101","type":""}],"src":"7675:142:101"},{"body":{"nativeSrc":"7883:66:101","nodeType":"YulBlock","src":"7883:66:101","statements":[{"nativeSrc":"7893:50:101","nodeType":"YulAssignment","src":"7893:50:101","value":{"arguments":[{"name":"value","nativeSrc":"7937:5:101","nodeType":"YulIdentifier","src":"7937:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"7906:30:101","nodeType":"YulIdentifier","src":"7906:30:101"},"nativeSrc":"7906:37:101","nodeType":"YulFunctionCall","src":"7906:37:101"},"variableNames":[{"name":"converted","nativeSrc":"7893:9:101","nodeType":"YulIdentifier","src":"7893:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"7823:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7863:5:101","nodeType":"YulTypedName","src":"7863:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7873:9:101","nodeType":"YulTypedName","src":"7873:9:101","type":""}],"src":"7823:126:101"},{"body":{"nativeSrc":"8044:66:101","nodeType":"YulBlock","src":"8044:66:101","statements":[{"nativeSrc":"8054:50:101","nodeType":"YulAssignment","src":"8054:50:101","value":{"arguments":[{"name":"value","nativeSrc":"8098:5:101","nodeType":"YulIdentifier","src":"8098:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"8067:30:101","nodeType":"YulIdentifier","src":"8067:30:101"},"nativeSrc":"8067:37:101","nodeType":"YulFunctionCall","src":"8067:37:101"},"variableNames":[{"name":"converted","nativeSrc":"8054:9:101","nodeType":"YulIdentifier","src":"8054:9:101"}]}]},"name":"convert_t_contract$_AggregatorV3Interface_$102_to_t_address","nativeSrc":"7955:155:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8024:5:101","nodeType":"YulTypedName","src":"8024:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8034:9:101","nodeType":"YulTypedName","src":"8034:9:101","type":""}],"src":"7955:155:101"},{"body":{"nativeSrc":"8210:95:101","nodeType":"YulBlock","src":"8210:95:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8227:3:101","nodeType":"YulIdentifier","src":"8227:3:101"},{"arguments":[{"name":"value","nativeSrc":"8292:5:101","nodeType":"YulIdentifier","src":"8292:5:101"}],"functionName":{"name":"convert_t_contract$_AggregatorV3Interface_$102_to_t_address","nativeSrc":"8232:59:101","nodeType":"YulIdentifier","src":"8232:59:101"},"nativeSrc":"8232:66:101","nodeType":"YulFunctionCall","src":"8232:66:101"}],"functionName":{"name":"mstore","nativeSrc":"8220:6:101","nodeType":"YulIdentifier","src":"8220:6:101"},"nativeSrc":"8220:79:101","nodeType":"YulFunctionCall","src":"8220:79:101"},"nativeSrc":"8220:79:101","nodeType":"YulExpressionStatement","src":"8220:79:101"}]},"name":"abi_encode_t_contract$_AggregatorV3Interface_$102_to_t_address_fromStack","nativeSrc":"8116:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8198:5:101","nodeType":"YulTypedName","src":"8198:5:101","type":""},{"name":"pos","nativeSrc":"8205:3:101","nodeType":"YulTypedName","src":"8205:3:101","type":""}],"src":"8116:189:101"},{"body":{"nativeSrc":"8438:153:101","nodeType":"YulBlock","src":"8438:153:101","statements":[{"nativeSrc":"8448:26:101","nodeType":"YulAssignment","src":"8448:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8460:9:101","nodeType":"YulIdentifier","src":"8460:9:101"},{"kind":"number","nativeSrc":"8471:2:101","nodeType":"YulLiteral","src":"8471:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8456:3:101","nodeType":"YulIdentifier","src":"8456:3:101"},"nativeSrc":"8456:18:101","nodeType":"YulFunctionCall","src":"8456:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8448:4:101","nodeType":"YulIdentifier","src":"8448:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8557:6:101","nodeType":"YulIdentifier","src":"8557:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8570:9:101","nodeType":"YulIdentifier","src":"8570:9:101"},{"kind":"number","nativeSrc":"8581:1:101","nodeType":"YulLiteral","src":"8581:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8566:3:101","nodeType":"YulIdentifier","src":"8566:3:101"},"nativeSrc":"8566:17:101","nodeType":"YulFunctionCall","src":"8566:17:101"}],"functionName":{"name":"abi_encode_t_contract$_AggregatorV3Interface_$102_to_t_address_fromStack","nativeSrc":"8484:72:101","nodeType":"YulIdentifier","src":"8484:72:101"},"nativeSrc":"8484:100:101","nodeType":"YulFunctionCall","src":"8484:100:101"},"nativeSrc":"8484:100:101","nodeType":"YulExpressionStatement","src":"8484:100:101"}]},"name":"abi_encode_tuple_t_contract$_AggregatorV3Interface_$102__to_t_address__fromStack_reversed","nativeSrc":"8311:280:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8410:9:101","nodeType":"YulTypedName","src":"8410:9:101","type":""},{"name":"value0","nativeSrc":"8422:6:101","nodeType":"YulTypedName","src":"8422:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8433:4:101","nodeType":"YulTypedName","src":"8433:4:101","type":""}],"src":"8311:280:101"},{"body":{"nativeSrc":"8695:124:101","nodeType":"YulBlock","src":"8695:124:101","statements":[{"nativeSrc":"8705:26:101","nodeType":"YulAssignment","src":"8705:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8717:9:101","nodeType":"YulIdentifier","src":"8717:9:101"},{"kind":"number","nativeSrc":"8728:2:101","nodeType":"YulLiteral","src":"8728:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8713:3:101","nodeType":"YulIdentifier","src":"8713:3:101"},"nativeSrc":"8713:18:101","nodeType":"YulFunctionCall","src":"8713:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8705:4:101","nodeType":"YulIdentifier","src":"8705:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8785:6:101","nodeType":"YulIdentifier","src":"8785:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"8798:9:101","nodeType":"YulIdentifier","src":"8798:9:101"},{"kind":"number","nativeSrc":"8809:1:101","nodeType":"YulLiteral","src":"8809:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8794:3:101","nodeType":"YulIdentifier","src":"8794:3:101"},"nativeSrc":"8794:17:101","nodeType":"YulFunctionCall","src":"8794:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8741:43:101","nodeType":"YulIdentifier","src":"8741:43:101"},"nativeSrc":"8741:71:101","nodeType":"YulFunctionCall","src":"8741:71:101"},"nativeSrc":"8741:71:101","nodeType":"YulExpressionStatement","src":"8741:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8597:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8667:9:101","nodeType":"YulTypedName","src":"8667:9:101","type":""},{"name":"value0","nativeSrc":"8679:6:101","nodeType":"YulTypedName","src":"8679:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8690:4:101","nodeType":"YulTypedName","src":"8690:4:101","type":""}],"src":"8597:222:101"},{"body":{"nativeSrc":"8917:66:101","nodeType":"YulBlock","src":"8917:66:101","statements":[{"nativeSrc":"8927:50:101","nodeType":"YulAssignment","src":"8927:50:101","value":{"arguments":[{"name":"value","nativeSrc":"8971:5:101","nodeType":"YulIdentifier","src":"8971:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"8940:30:101","nodeType":"YulIdentifier","src":"8940:30:101"},"nativeSrc":"8940:37:101","nodeType":"YulFunctionCall","src":"8940:37:101"},"variableNames":[{"name":"converted","nativeSrc":"8927:9:101","nodeType":"YulIdentifier","src":"8927:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"8825:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8897:5:101","nodeType":"YulTypedName","src":"8897:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8907:9:101","nodeType":"YulTypedName","src":"8907:9:101","type":""}],"src":"8825:158:101"},{"body":{"nativeSrc":"9086:98:101","nodeType":"YulBlock","src":"9086:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9103:3:101","nodeType":"YulIdentifier","src":"9103:3:101"},{"arguments":[{"name":"value","nativeSrc":"9171:5:101","nodeType":"YulIdentifier","src":"9171:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"9108:62:101","nodeType":"YulIdentifier","src":"9108:62:101"},"nativeSrc":"9108:69:101","nodeType":"YulFunctionCall","src":"9108:69:101"}],"functionName":{"name":"mstore","nativeSrc":"9096:6:101","nodeType":"YulIdentifier","src":"9096:6:101"},"nativeSrc":"9096:82:101","nodeType":"YulFunctionCall","src":"9096:82:101"},"nativeSrc":"9096:82:101","nodeType":"YulExpressionStatement","src":"9096:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"8989:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9074:5:101","nodeType":"YulTypedName","src":"9074:5:101","type":""},{"name":"pos","nativeSrc":"9081:3:101","nodeType":"YulTypedName","src":"9081:3:101","type":""}],"src":"8989:195:101"},{"body":{"nativeSrc":"9320:156:101","nodeType":"YulBlock","src":"9320:156:101","statements":[{"nativeSrc":"9330:26:101","nodeType":"YulAssignment","src":"9330:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9342:9:101","nodeType":"YulIdentifier","src":"9342:9:101"},{"kind":"number","nativeSrc":"9353:2:101","nodeType":"YulLiteral","src":"9353:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9338:3:101","nodeType":"YulIdentifier","src":"9338:3:101"},"nativeSrc":"9338:18:101","nodeType":"YulFunctionCall","src":"9338:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9330:4:101","nodeType":"YulIdentifier","src":"9330:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9442:6:101","nodeType":"YulIdentifier","src":"9442:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"9455:9:101","nodeType":"YulIdentifier","src":"9455:9:101"},{"kind":"number","nativeSrc":"9466:1:101","nodeType":"YulLiteral","src":"9466:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9451:3:101","nodeType":"YulIdentifier","src":"9451:3:101"},"nativeSrc":"9451:17:101","nodeType":"YulFunctionCall","src":"9451:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"9366:75:101","nodeType":"YulIdentifier","src":"9366:75:101"},"nativeSrc":"9366:103:101","nodeType":"YulFunctionCall","src":"9366:103:101"},"nativeSrc":"9366:103:101","nodeType":"YulExpressionStatement","src":"9366:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"9190:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9292:9:101","nodeType":"YulTypedName","src":"9292:9:101","type":""},{"name":"value0","nativeSrc":"9304:6:101","nodeType":"YulTypedName","src":"9304:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9315:4:101","nodeType":"YulTypedName","src":"9315:4:101","type":""}],"src":"9190:286:101"},{"body":{"nativeSrc":"9578:73:101","nodeType":"YulBlock","src":"9578:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9595:3:101","nodeType":"YulIdentifier","src":"9595:3:101"},{"name":"length","nativeSrc":"9600:6:101","nodeType":"YulIdentifier","src":"9600:6:101"}],"functionName":{"name":"mstore","nativeSrc":"9588:6:101","nodeType":"YulIdentifier","src":"9588:6:101"},"nativeSrc":"9588:19:101","nodeType":"YulFunctionCall","src":"9588:19:101"},"nativeSrc":"9588:19:101","nodeType":"YulExpressionStatement","src":"9588:19:101"},{"nativeSrc":"9616:29:101","nodeType":"YulAssignment","src":"9616:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"9635:3:101","nodeType":"YulIdentifier","src":"9635:3:101"},{"kind":"number","nativeSrc":"9640:4:101","nodeType":"YulLiteral","src":"9640:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9631:3:101","nodeType":"YulIdentifier","src":"9631:3:101"},"nativeSrc":"9631:14:101","nodeType":"YulFunctionCall","src":"9631:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"9616:11:101","nodeType":"YulIdentifier","src":"9616:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9482:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9550:3:101","nodeType":"YulTypedName","src":"9550:3:101","type":""},{"name":"length","nativeSrc":"9555:6:101","nodeType":"YulTypedName","src":"9555:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"9566:11:101","nodeType":"YulTypedName","src":"9566:11:101","type":""}],"src":"9482:169:101"},{"body":{"nativeSrc":"9763:61:101","nodeType":"YulBlock","src":"9763:61:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9785:6:101","nodeType":"YulIdentifier","src":"9785:6:101"},{"kind":"number","nativeSrc":"9793:1:101","nodeType":"YulLiteral","src":"9793:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9781:3:101","nodeType":"YulIdentifier","src":"9781:3:101"},"nativeSrc":"9781:14:101","nodeType":"YulFunctionCall","src":"9781:14:101"},{"hexValue":"6c656e6774682063616e27742062652030","kind":"string","nativeSrc":"9797:19:101","nodeType":"YulLiteral","src":"9797:19:101","type":"","value":"length can't be 0"}],"functionName":{"name":"mstore","nativeSrc":"9774:6:101","nodeType":"YulIdentifier","src":"9774:6:101"},"nativeSrc":"9774:43:101","nodeType":"YulFunctionCall","src":"9774:43:101"},"nativeSrc":"9774:43:101","nodeType":"YulExpressionStatement","src":"9774:43:101"}]},"name":"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","nativeSrc":"9657:167:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9755:6:101","nodeType":"YulTypedName","src":"9755:6:101","type":""}],"src":"9657:167:101"},{"body":{"nativeSrc":"9976:220:101","nodeType":"YulBlock","src":"9976:220:101","statements":[{"nativeSrc":"9986:74:101","nodeType":"YulAssignment","src":"9986:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10052:3:101","nodeType":"YulIdentifier","src":"10052:3:101"},{"kind":"number","nativeSrc":"10057:2:101","nodeType":"YulLiteral","src":"10057:2:101","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9993:58:101","nodeType":"YulIdentifier","src":"9993:58:101"},"nativeSrc":"9993:67:101","nodeType":"YulFunctionCall","src":"9993:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9986:3:101","nodeType":"YulIdentifier","src":"9986:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10158:3:101","nodeType":"YulIdentifier","src":"10158:3:101"}],"functionName":{"name":"store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed","nativeSrc":"10069:88:101","nodeType":"YulIdentifier","src":"10069:88:101"},"nativeSrc":"10069:93:101","nodeType":"YulFunctionCall","src":"10069:93:101"},"nativeSrc":"10069:93:101","nodeType":"YulExpressionStatement","src":"10069:93:101"},{"nativeSrc":"10171:19:101","nodeType":"YulAssignment","src":"10171:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10182:3:101","nodeType":"YulIdentifier","src":"10182:3:101"},{"kind":"number","nativeSrc":"10187:2:101","nodeType":"YulLiteral","src":"10187:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10178:3:101","nodeType":"YulIdentifier","src":"10178:3:101"},"nativeSrc":"10178:12:101","nodeType":"YulFunctionCall","src":"10178:12:101"},"variableNames":[{"name":"end","nativeSrc":"10171:3:101","nodeType":"YulIdentifier","src":"10171:3:101"}]}]},"name":"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack","nativeSrc":"9830:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9964:3:101","nodeType":"YulTypedName","src":"9964:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9972:3:101","nodeType":"YulTypedName","src":"9972:3:101","type":""}],"src":"9830:366:101"},{"body":{"nativeSrc":"10373:248:101","nodeType":"YulBlock","src":"10373:248:101","statements":[{"nativeSrc":"10383:26:101","nodeType":"YulAssignment","src":"10383:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10395:9:101","nodeType":"YulIdentifier","src":"10395:9:101"},{"kind":"number","nativeSrc":"10406:2:101","nodeType":"YulLiteral","src":"10406:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10391:3:101","nodeType":"YulIdentifier","src":"10391:3:101"},"nativeSrc":"10391:18:101","nodeType":"YulFunctionCall","src":"10391:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10383:4:101","nodeType":"YulIdentifier","src":"10383:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10430:9:101","nodeType":"YulIdentifier","src":"10430:9:101"},{"kind":"number","nativeSrc":"10441:1:101","nodeType":"YulLiteral","src":"10441:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10426:3:101","nodeType":"YulIdentifier","src":"10426:3:101"},"nativeSrc":"10426:17:101","nodeType":"YulFunctionCall","src":"10426:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10449:4:101","nodeType":"YulIdentifier","src":"10449:4:101"},{"name":"headStart","nativeSrc":"10455:9:101","nodeType":"YulIdentifier","src":"10455:9:101"}],"functionName":{"name":"sub","nativeSrc":"10445:3:101","nodeType":"YulIdentifier","src":"10445:3:101"},"nativeSrc":"10445:20:101","nodeType":"YulFunctionCall","src":"10445:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10419:6:101","nodeType":"YulIdentifier","src":"10419:6:101"},"nativeSrc":"10419:47:101","nodeType":"YulFunctionCall","src":"10419:47:101"},"nativeSrc":"10419:47:101","nodeType":"YulExpressionStatement","src":"10419:47:101"},{"nativeSrc":"10475:139:101","nodeType":"YulAssignment","src":"10475:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10609:4:101","nodeType":"YulIdentifier","src":"10609:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack","nativeSrc":"10483:124:101","nodeType":"YulIdentifier","src":"10483:124:101"},"nativeSrc":"10483:131:101","nodeType":"YulFunctionCall","src":"10483:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10475:4:101","nodeType":"YulIdentifier","src":"10475:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10202:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10353:9:101","nodeType":"YulTypedName","src":"10353:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10368:4:101","nodeType":"YulTypedName","src":"10368:4:101","type":""}],"src":"10202:419:101"},{"body":{"nativeSrc":"10655:152:101","nodeType":"YulBlock","src":"10655:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10672:1:101","nodeType":"YulLiteral","src":"10672:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"10675:77:101","nodeType":"YulLiteral","src":"10675:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10665:6:101","nodeType":"YulIdentifier","src":"10665:6:101"},"nativeSrc":"10665:88:101","nodeType":"YulFunctionCall","src":"10665:88:101"},"nativeSrc":"10665:88:101","nodeType":"YulExpressionStatement","src":"10665:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10769:1:101","nodeType":"YulLiteral","src":"10769:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"10772:4:101","nodeType":"YulLiteral","src":"10772:4:101","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"10762:6:101","nodeType":"YulIdentifier","src":"10762:6:101"},"nativeSrc":"10762:15:101","nodeType":"YulFunctionCall","src":"10762:15:101"},"nativeSrc":"10762:15:101","nodeType":"YulExpressionStatement","src":"10762:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10793:1:101","nodeType":"YulLiteral","src":"10793:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"10796:4:101","nodeType":"YulLiteral","src":"10796:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10786:6:101","nodeType":"YulIdentifier","src":"10786:6:101"},"nativeSrc":"10786:15:101","nodeType":"YulFunctionCall","src":"10786:15:101"},"nativeSrc":"10786:15:101","nodeType":"YulExpressionStatement","src":"10786:15:101"}]},"name":"panic_error_0x32","nativeSrc":"10627:180:101","nodeType":"YulFunctionDefinition","src":"10627:180:101"},{"body":{"nativeSrc":"10919:65:101","nodeType":"YulBlock","src":"10919:65:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10941:6:101","nodeType":"YulIdentifier","src":"10941:6:101"},{"kind":"number","nativeSrc":"10949:1:101","nodeType":"YulLiteral","src":"10949:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10937:3:101","nodeType":"YulIdentifier","src":"10937:3:101"},"nativeSrc":"10937:14:101","nodeType":"YulFunctionCall","src":"10937:14:101"},{"hexValue":"63616e2774206265207a65726f2061646472657373","kind":"string","nativeSrc":"10953:23:101","nodeType":"YulLiteral","src":"10953:23:101","type":"","value":"can't be zero address"}],"functionName":{"name":"mstore","nativeSrc":"10930:6:101","nodeType":"YulIdentifier","src":"10930:6:101"},"nativeSrc":"10930:47:101","nodeType":"YulFunctionCall","src":"10930:47:101"},"nativeSrc":"10930:47:101","nodeType":"YulExpressionStatement","src":"10930:47:101"}]},"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"10813:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10911:6:101","nodeType":"YulTypedName","src":"10911:6:101","type":""}],"src":"10813:171:101"},{"body":{"nativeSrc":"11136:220:101","nodeType":"YulBlock","src":"11136:220:101","statements":[{"nativeSrc":"11146:74:101","nodeType":"YulAssignment","src":"11146:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11212:3:101","nodeType":"YulIdentifier","src":"11212:3:101"},{"kind":"number","nativeSrc":"11217:2:101","nodeType":"YulLiteral","src":"11217:2:101","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11153:58:101","nodeType":"YulIdentifier","src":"11153:58:101"},"nativeSrc":"11153:67:101","nodeType":"YulFunctionCall","src":"11153:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11146:3:101","nodeType":"YulIdentifier","src":"11146:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11318:3:101","nodeType":"YulIdentifier","src":"11318:3:101"}],"functionName":{"name":"store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296","nativeSrc":"11229:88:101","nodeType":"YulIdentifier","src":"11229:88:101"},"nativeSrc":"11229:93:101","nodeType":"YulFunctionCall","src":"11229:93:101"},"nativeSrc":"11229:93:101","nodeType":"YulExpressionStatement","src":"11229:93:101"},{"nativeSrc":"11331:19:101","nodeType":"YulAssignment","src":"11331:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11342:3:101","nodeType":"YulIdentifier","src":"11342:3:101"},{"kind":"number","nativeSrc":"11347:2:101","nodeType":"YulLiteral","src":"11347:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11338:3:101","nodeType":"YulIdentifier","src":"11338:3:101"},"nativeSrc":"11338:12:101","nodeType":"YulFunctionCall","src":"11338:12:101"},"variableNames":[{"name":"end","nativeSrc":"11331:3:101","nodeType":"YulIdentifier","src":"11331:3:101"}]}]},"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"10990:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11124:3:101","nodeType":"YulTypedName","src":"11124:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11132:3:101","nodeType":"YulTypedName","src":"11132:3:101","type":""}],"src":"10990:366:101"},{"body":{"nativeSrc":"11533:248:101","nodeType":"YulBlock","src":"11533:248:101","statements":[{"nativeSrc":"11543:26:101","nodeType":"YulAssignment","src":"11543:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11555:9:101","nodeType":"YulIdentifier","src":"11555:9:101"},{"kind":"number","nativeSrc":"11566:2:101","nodeType":"YulLiteral","src":"11566:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11551:3:101","nodeType":"YulIdentifier","src":"11551:3:101"},"nativeSrc":"11551:18:101","nodeType":"YulFunctionCall","src":"11551:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11543:4:101","nodeType":"YulIdentifier","src":"11543:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11590:9:101","nodeType":"YulIdentifier","src":"11590:9:101"},{"kind":"number","nativeSrc":"11601:1:101","nodeType":"YulLiteral","src":"11601:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11586:3:101","nodeType":"YulIdentifier","src":"11586:3:101"},"nativeSrc":"11586:17:101","nodeType":"YulFunctionCall","src":"11586:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11609:4:101","nodeType":"YulIdentifier","src":"11609:4:101"},{"name":"headStart","nativeSrc":"11615:9:101","nodeType":"YulIdentifier","src":"11615:9:101"}],"functionName":{"name":"sub","nativeSrc":"11605:3:101","nodeType":"YulIdentifier","src":"11605:3:101"},"nativeSrc":"11605:20:101","nodeType":"YulFunctionCall","src":"11605:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11579:6:101","nodeType":"YulIdentifier","src":"11579:6:101"},"nativeSrc":"11579:47:101","nodeType":"YulFunctionCall","src":"11579:47:101"},"nativeSrc":"11579:47:101","nodeType":"YulExpressionStatement","src":"11579:47:101"},{"nativeSrc":"11635:139:101","nodeType":"YulAssignment","src":"11635:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11769:4:101","nodeType":"YulIdentifier","src":"11769:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack","nativeSrc":"11643:124:101","nodeType":"YulIdentifier","src":"11643:124:101"},"nativeSrc":"11643:131:101","nodeType":"YulFunctionCall","src":"11643:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11635:4:101","nodeType":"YulIdentifier","src":"11635:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11362:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11513:9:101","nodeType":"YulTypedName","src":"11513:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11528:4:101","nodeType":"YulTypedName","src":"11528:4:101","type":""}],"src":"11362:419:101"},{"body":{"nativeSrc":"11913:206:101","nodeType":"YulBlock","src":"11913:206:101","statements":[{"nativeSrc":"11923:26:101","nodeType":"YulAssignment","src":"11923:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11935:9:101","nodeType":"YulIdentifier","src":"11935:9:101"},{"kind":"number","nativeSrc":"11946:2:101","nodeType":"YulLiteral","src":"11946:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11931:3:101","nodeType":"YulIdentifier","src":"11931:3:101"},"nativeSrc":"11931:18:101","nodeType":"YulFunctionCall","src":"11931:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11923:4:101","nodeType":"YulIdentifier","src":"11923:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12003:6:101","nodeType":"YulIdentifier","src":"12003:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12016:9:101","nodeType":"YulIdentifier","src":"12016:9:101"},{"kind":"number","nativeSrc":"12027:1:101","nodeType":"YulLiteral","src":"12027:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12012:3:101","nodeType":"YulIdentifier","src":"12012:3:101"},"nativeSrc":"12012:17:101","nodeType":"YulFunctionCall","src":"12012:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"11959:43:101","nodeType":"YulIdentifier","src":"11959:43:101"},"nativeSrc":"11959:71:101","nodeType":"YulFunctionCall","src":"11959:71:101"},"nativeSrc":"11959:71:101","nodeType":"YulExpressionStatement","src":"11959:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12084:6:101","nodeType":"YulIdentifier","src":"12084:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12097:9:101","nodeType":"YulIdentifier","src":"12097:9:101"},{"kind":"number","nativeSrc":"12108:2:101","nodeType":"YulLiteral","src":"12108:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12093:3:101","nodeType":"YulIdentifier","src":"12093:3:101"},"nativeSrc":"12093:18:101","nodeType":"YulFunctionCall","src":"12093:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12040:43:101","nodeType":"YulIdentifier","src":"12040:43:101"},"nativeSrc":"12040:72:101","nodeType":"YulFunctionCall","src":"12040:72:101"},"nativeSrc":"12040:72:101","nodeType":"YulExpressionStatement","src":"12040:72:101"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"11787:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11877:9:101","nodeType":"YulTypedName","src":"11877:9:101","type":""},{"name":"value1","nativeSrc":"11889:6:101","nodeType":"YulTypedName","src":"11889:6:101","type":""},{"name":"value0","nativeSrc":"11897:6:101","nodeType":"YulTypedName","src":"11897:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11908:4:101","nodeType":"YulTypedName","src":"11908:4:101","type":""}],"src":"11787:332:101"},{"body":{"nativeSrc":"12231:70:101","nodeType":"YulBlock","src":"12231:70:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12253:6:101","nodeType":"YulIdentifier","src":"12253:6:101"},{"kind":"number","nativeSrc":"12261:1:101","nodeType":"YulLiteral","src":"12261:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12249:3:101","nodeType":"YulIdentifier","src":"12249:3:101"},"nativeSrc":"12249:14:101","nodeType":"YulFunctionCall","src":"12249:14:101"},{"hexValue":"7374616c6520706572696f642063616e2774206265207a65726f","kind":"string","nativeSrc":"12265:28:101","nodeType":"YulLiteral","src":"12265:28:101","type":"","value":"stale period can't be zero"}],"functionName":{"name":"mstore","nativeSrc":"12242:6:101","nodeType":"YulIdentifier","src":"12242:6:101"},"nativeSrc":"12242:52:101","nodeType":"YulFunctionCall","src":"12242:52:101"},"nativeSrc":"12242:52:101","nodeType":"YulExpressionStatement","src":"12242:52:101"}]},"name":"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","nativeSrc":"12125:176:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12223:6:101","nodeType":"YulTypedName","src":"12223:6:101","type":""}],"src":"12125:176:101"},{"body":{"nativeSrc":"12453:220:101","nodeType":"YulBlock","src":"12453:220:101","statements":[{"nativeSrc":"12463:74:101","nodeType":"YulAssignment","src":"12463:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12529:3:101","nodeType":"YulIdentifier","src":"12529:3:101"},{"kind":"number","nativeSrc":"12534:2:101","nodeType":"YulLiteral","src":"12534:2:101","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12470:58:101","nodeType":"YulIdentifier","src":"12470:58:101"},"nativeSrc":"12470:67:101","nodeType":"YulFunctionCall","src":"12470:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12463:3:101","nodeType":"YulIdentifier","src":"12463:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12635:3:101","nodeType":"YulIdentifier","src":"12635:3:101"}],"functionName":{"name":"store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134","nativeSrc":"12546:88:101","nodeType":"YulIdentifier","src":"12546:88:101"},"nativeSrc":"12546:93:101","nodeType":"YulFunctionCall","src":"12546:93:101"},"nativeSrc":"12546:93:101","nodeType":"YulExpressionStatement","src":"12546:93:101"},{"nativeSrc":"12648:19:101","nodeType":"YulAssignment","src":"12648:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12659:3:101","nodeType":"YulIdentifier","src":"12659:3:101"},{"kind":"number","nativeSrc":"12664:2:101","nodeType":"YulLiteral","src":"12664:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12655:3:101","nodeType":"YulIdentifier","src":"12655:3:101"},"nativeSrc":"12655:12:101","nodeType":"YulFunctionCall","src":"12655:12:101"},"variableNames":[{"name":"end","nativeSrc":"12648:3:101","nodeType":"YulIdentifier","src":"12648:3:101"}]}]},"name":"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack","nativeSrc":"12307:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12441:3:101","nodeType":"YulTypedName","src":"12441:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12449:3:101","nodeType":"YulTypedName","src":"12449:3:101","type":""}],"src":"12307:366:101"},{"body":{"nativeSrc":"12850:248:101","nodeType":"YulBlock","src":"12850:248:101","statements":[{"nativeSrc":"12860:26:101","nodeType":"YulAssignment","src":"12860:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12872:9:101","nodeType":"YulIdentifier","src":"12872:9:101"},{"kind":"number","nativeSrc":"12883:2:101","nodeType":"YulLiteral","src":"12883:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12868:3:101","nodeType":"YulIdentifier","src":"12868:3:101"},"nativeSrc":"12868:18:101","nodeType":"YulFunctionCall","src":"12868:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12860:4:101","nodeType":"YulIdentifier","src":"12860:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12907:9:101","nodeType":"YulIdentifier","src":"12907:9:101"},{"kind":"number","nativeSrc":"12918:1:101","nodeType":"YulLiteral","src":"12918:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12903:3:101","nodeType":"YulIdentifier","src":"12903:3:101"},"nativeSrc":"12903:17:101","nodeType":"YulFunctionCall","src":"12903:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12926:4:101","nodeType":"YulIdentifier","src":"12926:4:101"},{"name":"headStart","nativeSrc":"12932:9:101","nodeType":"YulIdentifier","src":"12932:9:101"}],"functionName":{"name":"sub","nativeSrc":"12922:3:101","nodeType":"YulIdentifier","src":"12922:3:101"},"nativeSrc":"12922:20:101","nodeType":"YulFunctionCall","src":"12922:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12896:6:101","nodeType":"YulIdentifier","src":"12896:6:101"},"nativeSrc":"12896:47:101","nodeType":"YulFunctionCall","src":"12896:47:101"},"nativeSrc":"12896:47:101","nodeType":"YulExpressionStatement","src":"12896:47:101"},{"nativeSrc":"12952:139:101","nodeType":"YulAssignment","src":"12952:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13086:4:101","nodeType":"YulIdentifier","src":"13086:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack","nativeSrc":"12960:124:101","nodeType":"YulIdentifier","src":"12960:124:101"},"nativeSrc":"12960:131:101","nodeType":"YulFunctionCall","src":"12960:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12952:4:101","nodeType":"YulIdentifier","src":"12952:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12679:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12830:9:101","nodeType":"YulTypedName","src":"12830:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12845:4:101","nodeType":"YulTypedName","src":"12845:4:101","type":""}],"src":"12679:419:101"},{"body":{"nativeSrc":"13230:206:101","nodeType":"YulBlock","src":"13230:206:101","statements":[{"nativeSrc":"13240:26:101","nodeType":"YulAssignment","src":"13240:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13252:9:101","nodeType":"YulIdentifier","src":"13252:9:101"},{"kind":"number","nativeSrc":"13263:2:101","nodeType":"YulLiteral","src":"13263:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13248:3:101","nodeType":"YulIdentifier","src":"13248:3:101"},"nativeSrc":"13248:18:101","nodeType":"YulFunctionCall","src":"13248:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13240:4:101","nodeType":"YulIdentifier","src":"13240:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13320:6:101","nodeType":"YulIdentifier","src":"13320:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13333:9:101","nodeType":"YulIdentifier","src":"13333:9:101"},{"kind":"number","nativeSrc":"13344:1:101","nodeType":"YulLiteral","src":"13344:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13329:3:101","nodeType":"YulIdentifier","src":"13329:3:101"},"nativeSrc":"13329:17:101","nodeType":"YulFunctionCall","src":"13329:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13276:43:101","nodeType":"YulIdentifier","src":"13276:43:101"},"nativeSrc":"13276:71:101","nodeType":"YulFunctionCall","src":"13276:71:101"},"nativeSrc":"13276:71:101","nodeType":"YulExpressionStatement","src":"13276:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13401:6:101","nodeType":"YulIdentifier","src":"13401:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13414:9:101","nodeType":"YulIdentifier","src":"13414:9:101"},{"kind":"number","nativeSrc":"13425:2:101","nodeType":"YulLiteral","src":"13425:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13410:3:101","nodeType":"YulIdentifier","src":"13410:3:101"},"nativeSrc":"13410:18:101","nodeType":"YulFunctionCall","src":"13410:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13357:43:101","nodeType":"YulIdentifier","src":"13357:43:101"},"nativeSrc":"13357:72:101","nodeType":"YulFunctionCall","src":"13357:72:101"},"nativeSrc":"13357:72:101","nodeType":"YulExpressionStatement","src":"13357:72:101"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"13104:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13194:9:101","nodeType":"YulTypedName","src":"13194:9:101","type":""},{"name":"value1","nativeSrc":"13206:6:101","nodeType":"YulTypedName","src":"13206:6:101","type":""},{"name":"value0","nativeSrc":"13214:6:101","nodeType":"YulTypedName","src":"13214:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13225:4:101","nodeType":"YulTypedName","src":"13225:4:101","type":""}],"src":"13104:332:101"},{"body":{"nativeSrc":"13548:68:101","nodeType":"YulBlock","src":"13548:68:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13570:6:101","nodeType":"YulIdentifier","src":"13570:6:101"},{"kind":"number","nativeSrc":"13578:1:101","nodeType":"YulLiteral","src":"13578:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13566:3:101","nodeType":"YulIdentifier","src":"13566:3:101"},"nativeSrc":"13566:14:101","nodeType":"YulFunctionCall","src":"13566:14:101"},{"hexValue":"4c322073657175656e63657220756e617661696c61626c65","kind":"string","nativeSrc":"13582:26:101","nodeType":"YulLiteral","src":"13582:26:101","type":"","value":"L2 sequencer unavailable"}],"functionName":{"name":"mstore","nativeSrc":"13559:6:101","nodeType":"YulIdentifier","src":"13559:6:101"},"nativeSrc":"13559:50:101","nodeType":"YulFunctionCall","src":"13559:50:101"},"nativeSrc":"13559:50:101","nodeType":"YulExpressionStatement","src":"13559:50:101"}]},"name":"store_literal_in_memory_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b","nativeSrc":"13442:174:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13540:6:101","nodeType":"YulTypedName","src":"13540:6:101","type":""}],"src":"13442:174:101"},{"body":{"nativeSrc":"13768:220:101","nodeType":"YulBlock","src":"13768:220:101","statements":[{"nativeSrc":"13778:74:101","nodeType":"YulAssignment","src":"13778:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13844:3:101","nodeType":"YulIdentifier","src":"13844:3:101"},{"kind":"number","nativeSrc":"13849:2:101","nodeType":"YulLiteral","src":"13849:2:101","type":"","value":"24"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13785:58:101","nodeType":"YulIdentifier","src":"13785:58:101"},"nativeSrc":"13785:67:101","nodeType":"YulFunctionCall","src":"13785:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13778:3:101","nodeType":"YulIdentifier","src":"13778:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13950:3:101","nodeType":"YulIdentifier","src":"13950:3:101"}],"functionName":{"name":"store_literal_in_memory_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b","nativeSrc":"13861:88:101","nodeType":"YulIdentifier","src":"13861:88:101"},"nativeSrc":"13861:93:101","nodeType":"YulFunctionCall","src":"13861:93:101"},"nativeSrc":"13861:93:101","nodeType":"YulExpressionStatement","src":"13861:93:101"},{"nativeSrc":"13963:19:101","nodeType":"YulAssignment","src":"13963:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13974:3:101","nodeType":"YulIdentifier","src":"13974:3:101"},{"kind":"number","nativeSrc":"13979:2:101","nodeType":"YulLiteral","src":"13979:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13970:3:101","nodeType":"YulIdentifier","src":"13970:3:101"},"nativeSrc":"13970:12:101","nodeType":"YulFunctionCall","src":"13970:12:101"},"variableNames":[{"name":"end","nativeSrc":"13963:3:101","nodeType":"YulIdentifier","src":"13963:3:101"}]}]},"name":"abi_encode_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b_to_t_string_memory_ptr_fromStack","nativeSrc":"13622:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13756:3:101","nodeType":"YulTypedName","src":"13756:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13764:3:101","nodeType":"YulTypedName","src":"13764:3:101","type":""}],"src":"13622:366:101"},{"body":{"nativeSrc":"14165:248:101","nodeType":"YulBlock","src":"14165:248:101","statements":[{"nativeSrc":"14175:26:101","nodeType":"YulAssignment","src":"14175:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14187:9:101","nodeType":"YulIdentifier","src":"14187:9:101"},{"kind":"number","nativeSrc":"14198:2:101","nodeType":"YulLiteral","src":"14198:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14183:3:101","nodeType":"YulIdentifier","src":"14183:3:101"},"nativeSrc":"14183:18:101","nodeType":"YulFunctionCall","src":"14183:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14175:4:101","nodeType":"YulIdentifier","src":"14175:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14222:9:101","nodeType":"YulIdentifier","src":"14222:9:101"},{"kind":"number","nativeSrc":"14233:1:101","nodeType":"YulLiteral","src":"14233:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14218:3:101","nodeType":"YulIdentifier","src":"14218:3:101"},"nativeSrc":"14218:17:101","nodeType":"YulFunctionCall","src":"14218:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14241:4:101","nodeType":"YulIdentifier","src":"14241:4:101"},{"name":"headStart","nativeSrc":"14247:9:101","nodeType":"YulIdentifier","src":"14247:9:101"}],"functionName":{"name":"sub","nativeSrc":"14237:3:101","nodeType":"YulIdentifier","src":"14237:3:101"},"nativeSrc":"14237:20:101","nodeType":"YulFunctionCall","src":"14237:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14211:6:101","nodeType":"YulIdentifier","src":"14211:6:101"},"nativeSrc":"14211:47:101","nodeType":"YulFunctionCall","src":"14211:47:101"},"nativeSrc":"14211:47:101","nodeType":"YulExpressionStatement","src":"14211:47:101"},{"nativeSrc":"14267:139:101","nodeType":"YulAssignment","src":"14267:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14401:4:101","nodeType":"YulIdentifier","src":"14401:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b_to_t_string_memory_ptr_fromStack","nativeSrc":"14275:124:101","nodeType":"YulIdentifier","src":"14275:124:101"},"nativeSrc":"14275:131:101","nodeType":"YulFunctionCall","src":"14275:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14267:4:101","nodeType":"YulIdentifier","src":"14267:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13994:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14145:9:101","nodeType":"YulTypedName","src":"14145:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14160:4:101","nodeType":"YulTypedName","src":"14160:4:101","type":""}],"src":"13994:419:101"},{"body":{"nativeSrc":"14525:122:101","nodeType":"YulBlock","src":"14525:122:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14547:6:101","nodeType":"YulIdentifier","src":"14547:6:101"},{"kind":"number","nativeSrc":"14555:1:101","nodeType":"YulLiteral","src":"14555:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14543:3:101","nodeType":"YulIdentifier","src":"14543:3:101"},"nativeSrc":"14543:14:101","nodeType":"YulFunctionCall","src":"14543:14:101"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"14559:34:101","nodeType":"YulLiteral","src":"14559:34:101","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"14536:6:101","nodeType":"YulIdentifier","src":"14536:6:101"},"nativeSrc":"14536:58:101","nodeType":"YulFunctionCall","src":"14536:58:101"},"nativeSrc":"14536:58:101","nodeType":"YulExpressionStatement","src":"14536:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14615:6:101","nodeType":"YulIdentifier","src":"14615:6:101"},{"kind":"number","nativeSrc":"14623:2:101","nodeType":"YulLiteral","src":"14623:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14611:3:101","nodeType":"YulIdentifier","src":"14611:3:101"},"nativeSrc":"14611:15:101","nodeType":"YulFunctionCall","src":"14611:15:101"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"14628:11:101","nodeType":"YulLiteral","src":"14628:11:101","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"14604:6:101","nodeType":"YulIdentifier","src":"14604:6:101"},"nativeSrc":"14604:36:101","nodeType":"YulFunctionCall","src":"14604:36:101"},"nativeSrc":"14604:36:101","nodeType":"YulExpressionStatement","src":"14604:36:101"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"14419:228:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14517:6:101","nodeType":"YulTypedName","src":"14517:6:101","type":""}],"src":"14419:228:101"},{"body":{"nativeSrc":"14799:220:101","nodeType":"YulBlock","src":"14799:220:101","statements":[{"nativeSrc":"14809:74:101","nodeType":"YulAssignment","src":"14809:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14875:3:101","nodeType":"YulIdentifier","src":"14875:3:101"},{"kind":"number","nativeSrc":"14880:2:101","nodeType":"YulLiteral","src":"14880:2:101","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14816:58:101","nodeType":"YulIdentifier","src":"14816:58:101"},"nativeSrc":"14816:67:101","nodeType":"YulFunctionCall","src":"14816:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14809:3:101","nodeType":"YulIdentifier","src":"14809:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14981:3:101","nodeType":"YulIdentifier","src":"14981:3:101"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"14892:88:101","nodeType":"YulIdentifier","src":"14892:88:101"},"nativeSrc":"14892:93:101","nodeType":"YulFunctionCall","src":"14892:93:101"},"nativeSrc":"14892:93:101","nodeType":"YulExpressionStatement","src":"14892:93:101"},{"nativeSrc":"14994:19:101","nodeType":"YulAssignment","src":"14994:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15005:3:101","nodeType":"YulIdentifier","src":"15005:3:101"},{"kind":"number","nativeSrc":"15010:2:101","nodeType":"YulLiteral","src":"15010:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15001:3:101","nodeType":"YulIdentifier","src":"15001:3:101"},"nativeSrc":"15001:12:101","nodeType":"YulFunctionCall","src":"15001:12:101"},"variableNames":[{"name":"end","nativeSrc":"14994:3:101","nodeType":"YulIdentifier","src":"14994:3:101"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"14653:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14787:3:101","nodeType":"YulTypedName","src":"14787:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14795:3:101","nodeType":"YulTypedName","src":"14795:3:101","type":""}],"src":"14653:366:101"},{"body":{"nativeSrc":"15196:248:101","nodeType":"YulBlock","src":"15196:248:101","statements":[{"nativeSrc":"15206:26:101","nodeType":"YulAssignment","src":"15206:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15218:9:101","nodeType":"YulIdentifier","src":"15218:9:101"},{"kind":"number","nativeSrc":"15229:2:101","nodeType":"YulLiteral","src":"15229:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15214:3:101","nodeType":"YulIdentifier","src":"15214:3:101"},"nativeSrc":"15214:18:101","nodeType":"YulFunctionCall","src":"15214:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15206:4:101","nodeType":"YulIdentifier","src":"15206:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15253:9:101","nodeType":"YulIdentifier","src":"15253:9:101"},{"kind":"number","nativeSrc":"15264:1:101","nodeType":"YulLiteral","src":"15264:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15249:3:101","nodeType":"YulIdentifier","src":"15249:3:101"},"nativeSrc":"15249:17:101","nodeType":"YulFunctionCall","src":"15249:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15272:4:101","nodeType":"YulIdentifier","src":"15272:4:101"},{"name":"headStart","nativeSrc":"15278:9:101","nodeType":"YulIdentifier","src":"15278:9:101"}],"functionName":{"name":"sub","nativeSrc":"15268:3:101","nodeType":"YulIdentifier","src":"15268:3:101"},"nativeSrc":"15268:20:101","nodeType":"YulFunctionCall","src":"15268:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15242:6:101","nodeType":"YulIdentifier","src":"15242:6:101"},"nativeSrc":"15242:47:101","nodeType":"YulFunctionCall","src":"15242:47:101"},"nativeSrc":"15242:47:101","nodeType":"YulExpressionStatement","src":"15242:47:101"},{"nativeSrc":"15298:139:101","nodeType":"YulAssignment","src":"15298:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15432:4:101","nodeType":"YulIdentifier","src":"15432:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"15306:124:101","nodeType":"YulIdentifier","src":"15306:124:101"},"nativeSrc":"15306:131:101","nodeType":"YulFunctionCall","src":"15306:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15298:4:101","nodeType":"YulIdentifier","src":"15298:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15025:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15176:9:101","nodeType":"YulTypedName","src":"15176:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15191:4:101","nodeType":"YulTypedName","src":"15191:4:101","type":""}],"src":"15025:419:101"},{"body":{"nativeSrc":"15556:127:101","nodeType":"YulBlock","src":"15556:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15578:6:101","nodeType":"YulIdentifier","src":"15578:6:101"},{"kind":"number","nativeSrc":"15586:1:101","nodeType":"YulLiteral","src":"15586:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15574:3:101","nodeType":"YulIdentifier","src":"15574:3:101"},"nativeSrc":"15574:14:101","nodeType":"YulFunctionCall","src":"15574:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"15590:34:101","nodeType":"YulLiteral","src":"15590:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"15567:6:101","nodeType":"YulIdentifier","src":"15567:6:101"},"nativeSrc":"15567:58:101","nodeType":"YulFunctionCall","src":"15567:58:101"},"nativeSrc":"15567:58:101","nodeType":"YulExpressionStatement","src":"15567:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15646:6:101","nodeType":"YulIdentifier","src":"15646:6:101"},{"kind":"number","nativeSrc":"15654:2:101","nodeType":"YulLiteral","src":"15654:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15642:3:101","nodeType":"YulIdentifier","src":"15642:3:101"},"nativeSrc":"15642:15:101","nodeType":"YulFunctionCall","src":"15642:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"15659:16:101","nodeType":"YulLiteral","src":"15659:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"15635:6:101","nodeType":"YulIdentifier","src":"15635:6:101"},"nativeSrc":"15635:41:101","nodeType":"YulFunctionCall","src":"15635:41:101"},"nativeSrc":"15635:41:101","nodeType":"YulExpressionStatement","src":"15635:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"15450:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15548:6:101","nodeType":"YulTypedName","src":"15548:6:101","type":""}],"src":"15450:233:101"},{"body":{"nativeSrc":"15835:220:101","nodeType":"YulBlock","src":"15835:220:101","statements":[{"nativeSrc":"15845:74:101","nodeType":"YulAssignment","src":"15845:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15911:3:101","nodeType":"YulIdentifier","src":"15911:3:101"},{"kind":"number","nativeSrc":"15916:2:101","nodeType":"YulLiteral","src":"15916:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15852:58:101","nodeType":"YulIdentifier","src":"15852:58:101"},"nativeSrc":"15852:67:101","nodeType":"YulFunctionCall","src":"15852:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15845:3:101","nodeType":"YulIdentifier","src":"15845:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16017:3:101","nodeType":"YulIdentifier","src":"16017:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"15928:88:101","nodeType":"YulIdentifier","src":"15928:88:101"},"nativeSrc":"15928:93:101","nodeType":"YulFunctionCall","src":"15928:93:101"},"nativeSrc":"15928:93:101","nodeType":"YulExpressionStatement","src":"15928:93:101"},{"nativeSrc":"16030:19:101","nodeType":"YulAssignment","src":"16030:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"16041:3:101","nodeType":"YulIdentifier","src":"16041:3:101"},{"kind":"number","nativeSrc":"16046:2:101","nodeType":"YulLiteral","src":"16046:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16037:3:101","nodeType":"YulIdentifier","src":"16037:3:101"},"nativeSrc":"16037:12:101","nodeType":"YulFunctionCall","src":"16037:12:101"},"variableNames":[{"name":"end","nativeSrc":"16030:3:101","nodeType":"YulIdentifier","src":"16030:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"15689:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15823:3:101","nodeType":"YulTypedName","src":"15823:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15831:3:101","nodeType":"YulTypedName","src":"15831:3:101","type":""}],"src":"15689:366:101"},{"body":{"nativeSrc":"16232:248:101","nodeType":"YulBlock","src":"16232:248:101","statements":[{"nativeSrc":"16242:26:101","nodeType":"YulAssignment","src":"16242:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16254:9:101","nodeType":"YulIdentifier","src":"16254:9:101"},{"kind":"number","nativeSrc":"16265:2:101","nodeType":"YulLiteral","src":"16265:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16250:3:101","nodeType":"YulIdentifier","src":"16250:3:101"},"nativeSrc":"16250:18:101","nodeType":"YulFunctionCall","src":"16250:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16242:4:101","nodeType":"YulIdentifier","src":"16242:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16289:9:101","nodeType":"YulIdentifier","src":"16289:9:101"},{"kind":"number","nativeSrc":"16300:1:101","nodeType":"YulLiteral","src":"16300:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16285:3:101","nodeType":"YulIdentifier","src":"16285:3:101"},"nativeSrc":"16285:17:101","nodeType":"YulFunctionCall","src":"16285:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16308:4:101","nodeType":"YulIdentifier","src":"16308:4:101"},{"name":"headStart","nativeSrc":"16314:9:101","nodeType":"YulIdentifier","src":"16314:9:101"}],"functionName":{"name":"sub","nativeSrc":"16304:3:101","nodeType":"YulIdentifier","src":"16304:3:101"},"nativeSrc":"16304:20:101","nodeType":"YulFunctionCall","src":"16304:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16278:6:101","nodeType":"YulIdentifier","src":"16278:6:101"},"nativeSrc":"16278:47:101","nodeType":"YulFunctionCall","src":"16278:47:101"},"nativeSrc":"16278:47:101","nodeType":"YulExpressionStatement","src":"16278:47:101"},{"nativeSrc":"16334:139:101","nodeType":"YulAssignment","src":"16334:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16468:4:101","nodeType":"YulIdentifier","src":"16468:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"16342:124:101","nodeType":"YulIdentifier","src":"16342:124:101"},"nativeSrc":"16342:131:101","nodeType":"YulFunctionCall","src":"16342:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16334:4:101","nodeType":"YulIdentifier","src":"16334:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16061:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16212:9:101","nodeType":"YulTypedName","src":"16212:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16227:4:101","nodeType":"YulTypedName","src":"16227:4:101","type":""}],"src":"16061:419:101"},{"body":{"nativeSrc":"16539:32:101","nodeType":"YulBlock","src":"16539:32:101","statements":[{"nativeSrc":"16549:16:101","nodeType":"YulAssignment","src":"16549:16:101","value":{"name":"value","nativeSrc":"16560:5:101","nodeType":"YulIdentifier","src":"16560:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"16549:7:101","nodeType":"YulIdentifier","src":"16549:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"16486:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16521:5:101","nodeType":"YulTypedName","src":"16521:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"16531:7:101","nodeType":"YulTypedName","src":"16531:7:101","type":""}],"src":"16486:85:101"},{"body":{"nativeSrc":"16620:43:101","nodeType":"YulBlock","src":"16620:43:101","statements":[{"nativeSrc":"16630:27:101","nodeType":"YulAssignment","src":"16630:27:101","value":{"arguments":[{"name":"value","nativeSrc":"16645:5:101","nodeType":"YulIdentifier","src":"16645:5:101"},{"kind":"number","nativeSrc":"16652:4:101","nodeType":"YulLiteral","src":"16652:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"16641:3:101","nodeType":"YulIdentifier","src":"16641:3:101"},"nativeSrc":"16641:16:101","nodeType":"YulFunctionCall","src":"16641:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"16630:7:101","nodeType":"YulIdentifier","src":"16630:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"16577:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16602:5:101","nodeType":"YulTypedName","src":"16602:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"16612:7:101","nodeType":"YulTypedName","src":"16612:7:101","type":""}],"src":"16577:86:101"},{"body":{"nativeSrc":"16735:88:101","nodeType":"YulBlock","src":"16735:88:101","statements":[{"nativeSrc":"16745:72:101","nodeType":"YulAssignment","src":"16745:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16809:5:101","nodeType":"YulIdentifier","src":"16809:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"16783:25:101","nodeType":"YulIdentifier","src":"16783:25:101"},"nativeSrc":"16783:32:101","nodeType":"YulFunctionCall","src":"16783:32:101"}],"functionName":{"name":"identity","nativeSrc":"16774:8:101","nodeType":"YulIdentifier","src":"16774:8:101"},"nativeSrc":"16774:42:101","nodeType":"YulFunctionCall","src":"16774:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"16758:15:101","nodeType":"YulIdentifier","src":"16758:15:101"},"nativeSrc":"16758:59:101","nodeType":"YulFunctionCall","src":"16758:59:101"},"variableNames":[{"name":"converted","nativeSrc":"16745:9:101","nodeType":"YulIdentifier","src":"16745:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"16669:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16715:5:101","nodeType":"YulTypedName","src":"16715:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"16725:9:101","nodeType":"YulTypedName","src":"16725:9:101","type":""}],"src":"16669:154:101"},{"body":{"nativeSrc":"16900:72:101","nodeType":"YulBlock","src":"16900:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16917:3:101","nodeType":"YulIdentifier","src":"16917:3:101"},{"arguments":[{"name":"value","nativeSrc":"16959:5:101","nodeType":"YulIdentifier","src":"16959:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"16922:36:101","nodeType":"YulIdentifier","src":"16922:36:101"},"nativeSrc":"16922:43:101","nodeType":"YulFunctionCall","src":"16922:43:101"}],"functionName":{"name":"mstore","nativeSrc":"16910:6:101","nodeType":"YulIdentifier","src":"16910:6:101"},"nativeSrc":"16910:56:101","nodeType":"YulFunctionCall","src":"16910:56:101"},"nativeSrc":"16910:56:101","nodeType":"YulExpressionStatement","src":"16910:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"16829:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16888:5:101","nodeType":"YulTypedName","src":"16888:5:101","type":""},{"name":"pos","nativeSrc":"16895:3:101","nodeType":"YulTypedName","src":"16895:3:101","type":""}],"src":"16829:143:101"},{"body":{"nativeSrc":"17082:130:101","nodeType":"YulBlock","src":"17082:130:101","statements":[{"nativeSrc":"17092:26:101","nodeType":"YulAssignment","src":"17092:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17104:9:101","nodeType":"YulIdentifier","src":"17104:9:101"},{"kind":"number","nativeSrc":"17115:2:101","nodeType":"YulLiteral","src":"17115:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17100:3:101","nodeType":"YulIdentifier","src":"17100:3:101"},"nativeSrc":"17100:18:101","nodeType":"YulFunctionCall","src":"17100:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17092:4:101","nodeType":"YulIdentifier","src":"17092:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17178:6:101","nodeType":"YulIdentifier","src":"17178:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"17191:9:101","nodeType":"YulIdentifier","src":"17191:9:101"},{"kind":"number","nativeSrc":"17202:1:101","nodeType":"YulLiteral","src":"17202:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17187:3:101","nodeType":"YulIdentifier","src":"17187:3:101"},"nativeSrc":"17187:17:101","nodeType":"YulFunctionCall","src":"17187:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"17128:49:101","nodeType":"YulIdentifier","src":"17128:49:101"},"nativeSrc":"17128:77:101","nodeType":"YulFunctionCall","src":"17128:77:101"},"nativeSrc":"17128:77:101","nodeType":"YulExpressionStatement","src":"17128:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"16978:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17054:9:101","nodeType":"YulTypedName","src":"17054:9:101","type":""},{"name":"value0","nativeSrc":"17066:6:101","nodeType":"YulTypedName","src":"17066:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17077:4:101","nodeType":"YulTypedName","src":"17077:4:101","type":""}],"src":"16978:234:101"},{"body":{"nativeSrc":"17277:40:101","nodeType":"YulBlock","src":"17277:40:101","statements":[{"nativeSrc":"17288:22:101","nodeType":"YulAssignment","src":"17288:22:101","value":{"arguments":[{"name":"value","nativeSrc":"17304:5:101","nodeType":"YulIdentifier","src":"17304:5:101"}],"functionName":{"name":"mload","nativeSrc":"17298:5:101","nodeType":"YulIdentifier","src":"17298:5:101"},"nativeSrc":"17298:12:101","nodeType":"YulFunctionCall","src":"17298:12:101"},"variableNames":[{"name":"length","nativeSrc":"17288:6:101","nodeType":"YulIdentifier","src":"17288:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"17218:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17260:5:101","nodeType":"YulTypedName","src":"17260:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"17270:6:101","nodeType":"YulTypedName","src":"17270:6:101","type":""}],"src":"17218:99:101"},{"body":{"nativeSrc":"17385:77:101","nodeType":"YulBlock","src":"17385:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"17402:3:101","nodeType":"YulIdentifier","src":"17402:3:101"},{"name":"src","nativeSrc":"17407:3:101","nodeType":"YulIdentifier","src":"17407:3:101"},{"name":"length","nativeSrc":"17412:6:101","nodeType":"YulIdentifier","src":"17412:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"17396:5:101","nodeType":"YulIdentifier","src":"17396:5:101"},"nativeSrc":"17396:23:101","nodeType":"YulFunctionCall","src":"17396:23:101"},"nativeSrc":"17396:23:101","nodeType":"YulExpressionStatement","src":"17396:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17439:3:101","nodeType":"YulIdentifier","src":"17439:3:101"},{"name":"length","nativeSrc":"17444:6:101","nodeType":"YulIdentifier","src":"17444:6:101"}],"functionName":{"name":"add","nativeSrc":"17435:3:101","nodeType":"YulIdentifier","src":"17435:3:101"},"nativeSrc":"17435:16:101","nodeType":"YulFunctionCall","src":"17435:16:101"},{"kind":"number","nativeSrc":"17453:1:101","nodeType":"YulLiteral","src":"17453:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17428:6:101","nodeType":"YulIdentifier","src":"17428:6:101"},"nativeSrc":"17428:27:101","nodeType":"YulFunctionCall","src":"17428:27:101"},"nativeSrc":"17428:27:101","nodeType":"YulExpressionStatement","src":"17428:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17323:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17367:3:101","nodeType":"YulTypedName","src":"17367:3:101","type":""},{"name":"dst","nativeSrc":"17372:3:101","nodeType":"YulTypedName","src":"17372:3:101","type":""},{"name":"length","nativeSrc":"17377:6:101","nodeType":"YulTypedName","src":"17377:6:101","type":""}],"src":"17323:139:101"},{"body":{"nativeSrc":"17560:285:101","nodeType":"YulBlock","src":"17560:285:101","statements":[{"nativeSrc":"17570:53:101","nodeType":"YulVariableDeclaration","src":"17570:53:101","value":{"arguments":[{"name":"value","nativeSrc":"17617:5:101","nodeType":"YulIdentifier","src":"17617:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"17584:32:101","nodeType":"YulIdentifier","src":"17584:32:101"},"nativeSrc":"17584:39:101","nodeType":"YulFunctionCall","src":"17584:39:101"},"variables":[{"name":"length","nativeSrc":"17574:6:101","nodeType":"YulTypedName","src":"17574:6:101","type":""}]},{"nativeSrc":"17632:78:101","nodeType":"YulAssignment","src":"17632:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"17698:3:101","nodeType":"YulIdentifier","src":"17698:3:101"},{"name":"length","nativeSrc":"17703:6:101","nodeType":"YulIdentifier","src":"17703:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"17639:58:101","nodeType":"YulIdentifier","src":"17639:58:101"},"nativeSrc":"17639:71:101","nodeType":"YulFunctionCall","src":"17639:71:101"},"variableNames":[{"name":"pos","nativeSrc":"17632:3:101","nodeType":"YulIdentifier","src":"17632:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17758:5:101","nodeType":"YulIdentifier","src":"17758:5:101"},{"kind":"number","nativeSrc":"17765:4:101","nodeType":"YulLiteral","src":"17765:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17754:3:101","nodeType":"YulIdentifier","src":"17754:3:101"},"nativeSrc":"17754:16:101","nodeType":"YulFunctionCall","src":"17754:16:101"},{"name":"pos","nativeSrc":"17772:3:101","nodeType":"YulIdentifier","src":"17772:3:101"},{"name":"length","nativeSrc":"17777:6:101","nodeType":"YulIdentifier","src":"17777:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17719:34:101","nodeType":"YulIdentifier","src":"17719:34:101"},"nativeSrc":"17719:65:101","nodeType":"YulFunctionCall","src":"17719:65:101"},"nativeSrc":"17719:65:101","nodeType":"YulExpressionStatement","src":"17719:65:101"},{"nativeSrc":"17793:46:101","nodeType":"YulAssignment","src":"17793:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"17804:3:101","nodeType":"YulIdentifier","src":"17804:3:101"},{"arguments":[{"name":"length","nativeSrc":"17831:6:101","nodeType":"YulIdentifier","src":"17831:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17809:21:101","nodeType":"YulIdentifier","src":"17809:21:101"},"nativeSrc":"17809:29:101","nodeType":"YulFunctionCall","src":"17809:29:101"}],"functionName":{"name":"add","nativeSrc":"17800:3:101","nodeType":"YulIdentifier","src":"17800:3:101"},"nativeSrc":"17800:39:101","nodeType":"YulFunctionCall","src":"17800:39:101"},"variableNames":[{"name":"end","nativeSrc":"17793:3:101","nodeType":"YulIdentifier","src":"17793:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"17468:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17541:5:101","nodeType":"YulTypedName","src":"17541:5:101","type":""},{"name":"pos","nativeSrc":"17548:3:101","nodeType":"YulTypedName","src":"17548:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17556:3:101","nodeType":"YulTypedName","src":"17556:3:101","type":""}],"src":"17468:377:101"},{"body":{"nativeSrc":"17997:277:101","nodeType":"YulBlock","src":"17997:277:101","statements":[{"nativeSrc":"18007:26:101","nodeType":"YulAssignment","src":"18007:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18019:9:101","nodeType":"YulIdentifier","src":"18019:9:101"},{"kind":"number","nativeSrc":"18030:2:101","nodeType":"YulLiteral","src":"18030:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18015:3:101","nodeType":"YulIdentifier","src":"18015:3:101"},"nativeSrc":"18015:18:101","nodeType":"YulFunctionCall","src":"18015:18:101"},"variableNames":[{"name":"tail","nativeSrc":"18007:4:101","nodeType":"YulIdentifier","src":"18007:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18087:6:101","nodeType":"YulIdentifier","src":"18087:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"18100:9:101","nodeType":"YulIdentifier","src":"18100:9:101"},{"kind":"number","nativeSrc":"18111:1:101","nodeType":"YulLiteral","src":"18111:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18096:3:101","nodeType":"YulIdentifier","src":"18096:3:101"},"nativeSrc":"18096:17:101","nodeType":"YulFunctionCall","src":"18096:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18043:43:101","nodeType":"YulIdentifier","src":"18043:43:101"},"nativeSrc":"18043:71:101","nodeType":"YulFunctionCall","src":"18043:71:101"},"nativeSrc":"18043:71:101","nodeType":"YulExpressionStatement","src":"18043:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18135:9:101","nodeType":"YulIdentifier","src":"18135:9:101"},{"kind":"number","nativeSrc":"18146:2:101","nodeType":"YulLiteral","src":"18146:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18131:3:101","nodeType":"YulIdentifier","src":"18131:3:101"},"nativeSrc":"18131:18:101","nodeType":"YulFunctionCall","src":"18131:18:101"},{"arguments":[{"name":"tail","nativeSrc":"18155:4:101","nodeType":"YulIdentifier","src":"18155:4:101"},{"name":"headStart","nativeSrc":"18161:9:101","nodeType":"YulIdentifier","src":"18161:9:101"}],"functionName":{"name":"sub","nativeSrc":"18151:3:101","nodeType":"YulIdentifier","src":"18151:3:101"},"nativeSrc":"18151:20:101","nodeType":"YulFunctionCall","src":"18151:20:101"}],"functionName":{"name":"mstore","nativeSrc":"18124:6:101","nodeType":"YulIdentifier","src":"18124:6:101"},"nativeSrc":"18124:48:101","nodeType":"YulFunctionCall","src":"18124:48:101"},"nativeSrc":"18124:48:101","nodeType":"YulExpressionStatement","src":"18124:48:101"},{"nativeSrc":"18181:86:101","nodeType":"YulAssignment","src":"18181:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"18253:6:101","nodeType":"YulIdentifier","src":"18253:6:101"},{"name":"tail","nativeSrc":"18262:4:101","nodeType":"YulIdentifier","src":"18262:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"18189:63:101","nodeType":"YulIdentifier","src":"18189:63:101"},"nativeSrc":"18189:78:101","nodeType":"YulFunctionCall","src":"18189:78:101"},"variableNames":[{"name":"tail","nativeSrc":"18181:4:101","nodeType":"YulIdentifier","src":"18181:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17851:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17961:9:101","nodeType":"YulTypedName","src":"17961:9:101","type":""},{"name":"value1","nativeSrc":"17973:6:101","nodeType":"YulTypedName","src":"17973:6:101","type":""},{"name":"value0","nativeSrc":"17981:6:101","nodeType":"YulTypedName","src":"17981:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17992:4:101","nodeType":"YulTypedName","src":"17992:4:101","type":""}],"src":"17851:423:101"},{"body":{"nativeSrc":"18322:48:101","nodeType":"YulBlock","src":"18322:48:101","statements":[{"nativeSrc":"18332:32:101","nodeType":"YulAssignment","src":"18332:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18357:5:101","nodeType":"YulIdentifier","src":"18357:5:101"}],"functionName":{"name":"iszero","nativeSrc":"18350:6:101","nodeType":"YulIdentifier","src":"18350:6:101"},"nativeSrc":"18350:13:101","nodeType":"YulFunctionCall","src":"18350:13:101"}],"functionName":{"name":"iszero","nativeSrc":"18343:6:101","nodeType":"YulIdentifier","src":"18343:6:101"},"nativeSrc":"18343:21:101","nodeType":"YulFunctionCall","src":"18343:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"18332:7:101","nodeType":"YulIdentifier","src":"18332:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"18280:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18304:5:101","nodeType":"YulTypedName","src":"18304:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"18314:7:101","nodeType":"YulTypedName","src":"18314:7:101","type":""}],"src":"18280:90:101"},{"body":{"nativeSrc":"18416:76:101","nodeType":"YulBlock","src":"18416:76:101","statements":[{"body":{"nativeSrc":"18470:16:101","nodeType":"YulBlock","src":"18470:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18479:1:101","nodeType":"YulLiteral","src":"18479:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"18482:1:101","nodeType":"YulLiteral","src":"18482:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18472:6:101","nodeType":"YulIdentifier","src":"18472:6:101"},"nativeSrc":"18472:12:101","nodeType":"YulFunctionCall","src":"18472:12:101"},"nativeSrc":"18472:12:101","nodeType":"YulExpressionStatement","src":"18472:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18439:5:101","nodeType":"YulIdentifier","src":"18439:5:101"},{"arguments":[{"name":"value","nativeSrc":"18461:5:101","nodeType":"YulIdentifier","src":"18461:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"18446:14:101","nodeType":"YulIdentifier","src":"18446:14:101"},"nativeSrc":"18446:21:101","nodeType":"YulFunctionCall","src":"18446:21:101"}],"functionName":{"name":"eq","nativeSrc":"18436:2:101","nodeType":"YulIdentifier","src":"18436:2:101"},"nativeSrc":"18436:32:101","nodeType":"YulFunctionCall","src":"18436:32:101"}],"functionName":{"name":"iszero","nativeSrc":"18429:6:101","nodeType":"YulIdentifier","src":"18429:6:101"},"nativeSrc":"18429:40:101","nodeType":"YulFunctionCall","src":"18429:40:101"},"nativeSrc":"18426:60:101","nodeType":"YulIf","src":"18426:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"18376:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18409:5:101","nodeType":"YulTypedName","src":"18409:5:101","type":""}],"src":"18376:116:101"},{"body":{"nativeSrc":"18558:77:101","nodeType":"YulBlock","src":"18558:77:101","statements":[{"nativeSrc":"18568:22:101","nodeType":"YulAssignment","src":"18568:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"18583:6:101","nodeType":"YulIdentifier","src":"18583:6:101"}],"functionName":{"name":"mload","nativeSrc":"18577:5:101","nodeType":"YulIdentifier","src":"18577:5:101"},"nativeSrc":"18577:13:101","nodeType":"YulFunctionCall","src":"18577:13:101"},"variableNames":[{"name":"value","nativeSrc":"18568:5:101","nodeType":"YulIdentifier","src":"18568:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18623:5:101","nodeType":"YulIdentifier","src":"18623:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"18599:23:101","nodeType":"YulIdentifier","src":"18599:23:101"},"nativeSrc":"18599:30:101","nodeType":"YulFunctionCall","src":"18599:30:101"},"nativeSrc":"18599:30:101","nodeType":"YulExpressionStatement","src":"18599:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18498:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18536:6:101","nodeType":"YulTypedName","src":"18536:6:101","type":""},{"name":"end","nativeSrc":"18544:3:101","nodeType":"YulTypedName","src":"18544:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18552:5:101","nodeType":"YulTypedName","src":"18552:5:101","type":""}],"src":"18498:137:101"},{"body":{"nativeSrc":"18715:271:101","nodeType":"YulBlock","src":"18715:271:101","statements":[{"body":{"nativeSrc":"18761:83:101","nodeType":"YulBlock","src":"18761:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18763:77:101","nodeType":"YulIdentifier","src":"18763:77:101"},"nativeSrc":"18763:79:101","nodeType":"YulFunctionCall","src":"18763:79:101"},"nativeSrc":"18763:79:101","nodeType":"YulExpressionStatement","src":"18763:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18736:7:101","nodeType":"YulIdentifier","src":"18736:7:101"},{"name":"headStart","nativeSrc":"18745:9:101","nodeType":"YulIdentifier","src":"18745:9:101"}],"functionName":{"name":"sub","nativeSrc":"18732:3:101","nodeType":"YulIdentifier","src":"18732:3:101"},"nativeSrc":"18732:23:101","nodeType":"YulFunctionCall","src":"18732:23:101"},{"kind":"number","nativeSrc":"18757:2:101","nodeType":"YulLiteral","src":"18757:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18728:3:101","nodeType":"YulIdentifier","src":"18728:3:101"},"nativeSrc":"18728:32:101","nodeType":"YulFunctionCall","src":"18728:32:101"},"nativeSrc":"18725:119:101","nodeType":"YulIf","src":"18725:119:101"},{"nativeSrc":"18854:125:101","nodeType":"YulBlock","src":"18854:125:101","statements":[{"nativeSrc":"18869:15:101","nodeType":"YulVariableDeclaration","src":"18869:15:101","value":{"kind":"number","nativeSrc":"18883:1:101","nodeType":"YulLiteral","src":"18883:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18873:6:101","nodeType":"YulTypedName","src":"18873:6:101","type":""}]},{"nativeSrc":"18898:71:101","nodeType":"YulAssignment","src":"18898:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18941:9:101","nodeType":"YulIdentifier","src":"18941:9:101"},{"name":"offset","nativeSrc":"18952:6:101","nodeType":"YulIdentifier","src":"18952:6:101"}],"functionName":{"name":"add","nativeSrc":"18937:3:101","nodeType":"YulIdentifier","src":"18937:3:101"},"nativeSrc":"18937:22:101","nodeType":"YulFunctionCall","src":"18937:22:101"},{"name":"dataEnd","nativeSrc":"18961:7:101","nodeType":"YulIdentifier","src":"18961:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18908:28:101","nodeType":"YulIdentifier","src":"18908:28:101"},"nativeSrc":"18908:61:101","nodeType":"YulFunctionCall","src":"18908:61:101"},"variableNames":[{"name":"value0","nativeSrc":"18898:6:101","nodeType":"YulIdentifier","src":"18898:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"18641:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18685:9:101","nodeType":"YulTypedName","src":"18685:9:101","type":""},{"name":"dataEnd","nativeSrc":"18696:7:101","nodeType":"YulTypedName","src":"18696:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18708:6:101","nodeType":"YulTypedName","src":"18708:6:101","type":""}],"src":"18641:345:101"},{"body":{"nativeSrc":"19166:359:101","nodeType":"YulBlock","src":"19166:359:101","statements":[{"nativeSrc":"19176:26:101","nodeType":"YulAssignment","src":"19176:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"19188:9:101","nodeType":"YulIdentifier","src":"19188:9:101"},{"kind":"number","nativeSrc":"19199:2:101","nodeType":"YulLiteral","src":"19199:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19184:3:101","nodeType":"YulIdentifier","src":"19184:3:101"},"nativeSrc":"19184:18:101","nodeType":"YulFunctionCall","src":"19184:18:101"},"variableNames":[{"name":"tail","nativeSrc":"19176:4:101","nodeType":"YulIdentifier","src":"19176:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19256:6:101","nodeType":"YulIdentifier","src":"19256:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"19269:9:101","nodeType":"YulIdentifier","src":"19269:9:101"},{"kind":"number","nativeSrc":"19280:1:101","nodeType":"YulLiteral","src":"19280:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19265:3:101","nodeType":"YulIdentifier","src":"19265:3:101"},"nativeSrc":"19265:17:101","nodeType":"YulFunctionCall","src":"19265:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"19212:43:101","nodeType":"YulIdentifier","src":"19212:43:101"},"nativeSrc":"19212:71:101","nodeType":"YulFunctionCall","src":"19212:71:101"},"nativeSrc":"19212:71:101","nodeType":"YulExpressionStatement","src":"19212:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19337:6:101","nodeType":"YulIdentifier","src":"19337:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"19350:9:101","nodeType":"YulIdentifier","src":"19350:9:101"},{"kind":"number","nativeSrc":"19361:2:101","nodeType":"YulLiteral","src":"19361:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19346:3:101","nodeType":"YulIdentifier","src":"19346:3:101"},"nativeSrc":"19346:18:101","nodeType":"YulFunctionCall","src":"19346:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"19293:43:101","nodeType":"YulIdentifier","src":"19293:43:101"},"nativeSrc":"19293:72:101","nodeType":"YulFunctionCall","src":"19293:72:101"},"nativeSrc":"19293:72:101","nodeType":"YulExpressionStatement","src":"19293:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19386:9:101","nodeType":"YulIdentifier","src":"19386:9:101"},{"kind":"number","nativeSrc":"19397:2:101","nodeType":"YulLiteral","src":"19397:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19382:3:101","nodeType":"YulIdentifier","src":"19382:3:101"},"nativeSrc":"19382:18:101","nodeType":"YulFunctionCall","src":"19382:18:101"},{"arguments":[{"name":"tail","nativeSrc":"19406:4:101","nodeType":"YulIdentifier","src":"19406:4:101"},{"name":"headStart","nativeSrc":"19412:9:101","nodeType":"YulIdentifier","src":"19412:9:101"}],"functionName":{"name":"sub","nativeSrc":"19402:3:101","nodeType":"YulIdentifier","src":"19402:3:101"},"nativeSrc":"19402:20:101","nodeType":"YulFunctionCall","src":"19402:20:101"}],"functionName":{"name":"mstore","nativeSrc":"19375:6:101","nodeType":"YulIdentifier","src":"19375:6:101"},"nativeSrc":"19375:48:101","nodeType":"YulFunctionCall","src":"19375:48:101"},"nativeSrc":"19375:48:101","nodeType":"YulExpressionStatement","src":"19375:48:101"},{"nativeSrc":"19432:86:101","nodeType":"YulAssignment","src":"19432:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"19504:6:101","nodeType":"YulIdentifier","src":"19504:6:101"},{"name":"tail","nativeSrc":"19513:4:101","nodeType":"YulIdentifier","src":"19513:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"19440:63:101","nodeType":"YulIdentifier","src":"19440:63:101"},"nativeSrc":"19440:78:101","nodeType":"YulFunctionCall","src":"19440:78:101"},"variableNames":[{"name":"tail","nativeSrc":"19432:4:101","nodeType":"YulIdentifier","src":"19432:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18992:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19122:9:101","nodeType":"YulTypedName","src":"19122:9:101","type":""},{"name":"value2","nativeSrc":"19134:6:101","nodeType":"YulTypedName","src":"19134:6:101","type":""},{"name":"value1","nativeSrc":"19142:6:101","nodeType":"YulTypedName","src":"19142:6:101","type":""},{"name":"value0","nativeSrc":"19150:6:101","nodeType":"YulTypedName","src":"19150:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19161:4:101","nodeType":"YulTypedName","src":"19161:4:101","type":""}],"src":"18992:533:101"},{"body":{"nativeSrc":"19637:76:101","nodeType":"YulBlock","src":"19637:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19659:6:101","nodeType":"YulIdentifier","src":"19659:6:101"},{"kind":"number","nativeSrc":"19667:1:101","nodeType":"YulLiteral","src":"19667:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19655:3:101","nodeType":"YulIdentifier","src":"19655:3:101"},"nativeSrc":"19655:14:101","nodeType":"YulFunctionCall","src":"19655:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"19671:34:101","nodeType":"YulLiteral","src":"19671:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"19648:6:101","nodeType":"YulIdentifier","src":"19648:6:101"},"nativeSrc":"19648:58:101","nodeType":"YulFunctionCall","src":"19648:58:101"},"nativeSrc":"19648:58:101","nodeType":"YulExpressionStatement","src":"19648:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"19531:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19629:6:101","nodeType":"YulTypedName","src":"19629:6:101","type":""}],"src":"19531:182:101"},{"body":{"nativeSrc":"19865:220:101","nodeType":"YulBlock","src":"19865:220:101","statements":[{"nativeSrc":"19875:74:101","nodeType":"YulAssignment","src":"19875:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"19941:3:101","nodeType":"YulIdentifier","src":"19941:3:101"},{"kind":"number","nativeSrc":"19946:2:101","nodeType":"YulLiteral","src":"19946:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19882:58:101","nodeType":"YulIdentifier","src":"19882:58:101"},"nativeSrc":"19882:67:101","nodeType":"YulFunctionCall","src":"19882:67:101"},"variableNames":[{"name":"pos","nativeSrc":"19875:3:101","nodeType":"YulIdentifier","src":"19875:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20047:3:101","nodeType":"YulIdentifier","src":"20047:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"19958:88:101","nodeType":"YulIdentifier","src":"19958:88:101"},"nativeSrc":"19958:93:101","nodeType":"YulFunctionCall","src":"19958:93:101"},"nativeSrc":"19958:93:101","nodeType":"YulExpressionStatement","src":"19958:93:101"},{"nativeSrc":"20060:19:101","nodeType":"YulAssignment","src":"20060:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"20071:3:101","nodeType":"YulIdentifier","src":"20071:3:101"},{"kind":"number","nativeSrc":"20076:2:101","nodeType":"YulLiteral","src":"20076:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20067:3:101","nodeType":"YulIdentifier","src":"20067:3:101"},"nativeSrc":"20067:12:101","nodeType":"YulFunctionCall","src":"20067:12:101"},"variableNames":[{"name":"end","nativeSrc":"20060:3:101","nodeType":"YulIdentifier","src":"20060:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"19719:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19853:3:101","nodeType":"YulTypedName","src":"19853:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19861:3:101","nodeType":"YulTypedName","src":"19861:3:101","type":""}],"src":"19719:366:101"},{"body":{"nativeSrc":"20262:248:101","nodeType":"YulBlock","src":"20262:248:101","statements":[{"nativeSrc":"20272:26:101","nodeType":"YulAssignment","src":"20272:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20284:9:101","nodeType":"YulIdentifier","src":"20284:9:101"},{"kind":"number","nativeSrc":"20295:2:101","nodeType":"YulLiteral","src":"20295:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20280:3:101","nodeType":"YulIdentifier","src":"20280:3:101"},"nativeSrc":"20280:18:101","nodeType":"YulFunctionCall","src":"20280:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20272:4:101","nodeType":"YulIdentifier","src":"20272:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20319:9:101","nodeType":"YulIdentifier","src":"20319:9:101"},{"kind":"number","nativeSrc":"20330:1:101","nodeType":"YulLiteral","src":"20330:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20315:3:101","nodeType":"YulIdentifier","src":"20315:3:101"},"nativeSrc":"20315:17:101","nodeType":"YulFunctionCall","src":"20315:17:101"},{"arguments":[{"name":"tail","nativeSrc":"20338:4:101","nodeType":"YulIdentifier","src":"20338:4:101"},{"name":"headStart","nativeSrc":"20344:9:101","nodeType":"YulIdentifier","src":"20344:9:101"}],"functionName":{"name":"sub","nativeSrc":"20334:3:101","nodeType":"YulIdentifier","src":"20334:3:101"},"nativeSrc":"20334:20:101","nodeType":"YulFunctionCall","src":"20334:20:101"}],"functionName":{"name":"mstore","nativeSrc":"20308:6:101","nodeType":"YulIdentifier","src":"20308:6:101"},"nativeSrc":"20308:47:101","nodeType":"YulFunctionCall","src":"20308:47:101"},"nativeSrc":"20308:47:101","nodeType":"YulExpressionStatement","src":"20308:47:101"},{"nativeSrc":"20364:139:101","nodeType":"YulAssignment","src":"20364:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"20498:4:101","nodeType":"YulIdentifier","src":"20498:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"20372:124:101","nodeType":"YulIdentifier","src":"20372:124:101"},"nativeSrc":"20372:131:101","nodeType":"YulFunctionCall","src":"20372:131:101"},"variableNames":[{"name":"tail","nativeSrc":"20364:4:101","nodeType":"YulIdentifier","src":"20364:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20091:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20242:9:101","nodeType":"YulTypedName","src":"20242:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20257:4:101","nodeType":"YulTypedName","src":"20257:4:101","type":""}],"src":"20091:419:101"},{"body":{"nativeSrc":"20622:118:101","nodeType":"YulBlock","src":"20622:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"20644:6:101","nodeType":"YulIdentifier","src":"20644:6:101"},{"kind":"number","nativeSrc":"20652:1:101","nodeType":"YulLiteral","src":"20652:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20640:3:101","nodeType":"YulIdentifier","src":"20640:3:101"},"nativeSrc":"20640:14:101","nodeType":"YulFunctionCall","src":"20640:14:101"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"20656:34:101","nodeType":"YulLiteral","src":"20656:34:101","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"20633:6:101","nodeType":"YulIdentifier","src":"20633:6:101"},"nativeSrc":"20633:58:101","nodeType":"YulFunctionCall","src":"20633:58:101"},"nativeSrc":"20633:58:101","nodeType":"YulExpressionStatement","src":"20633:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"20712:6:101","nodeType":"YulIdentifier","src":"20712:6:101"},{"kind":"number","nativeSrc":"20720:2:101","nodeType":"YulLiteral","src":"20720:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20708:3:101","nodeType":"YulIdentifier","src":"20708:3:101"},"nativeSrc":"20708:15:101","nodeType":"YulFunctionCall","src":"20708:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"20725:7:101","nodeType":"YulLiteral","src":"20725:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"20701:6:101","nodeType":"YulIdentifier","src":"20701:6:101"},"nativeSrc":"20701:32:101","nodeType":"YulFunctionCall","src":"20701:32:101"},"nativeSrc":"20701:32:101","nodeType":"YulExpressionStatement","src":"20701:32:101"}]},"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"20516:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"20614:6:101","nodeType":"YulTypedName","src":"20614:6:101","type":""}],"src":"20516:224:101"},{"body":{"nativeSrc":"20892:220:101","nodeType":"YulBlock","src":"20892:220:101","statements":[{"nativeSrc":"20902:74:101","nodeType":"YulAssignment","src":"20902:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"20968:3:101","nodeType":"YulIdentifier","src":"20968:3:101"},{"kind":"number","nativeSrc":"20973:2:101","nodeType":"YulLiteral","src":"20973:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"20909:58:101","nodeType":"YulIdentifier","src":"20909:58:101"},"nativeSrc":"20909:67:101","nodeType":"YulFunctionCall","src":"20909:67:101"},"variableNames":[{"name":"pos","nativeSrc":"20902:3:101","nodeType":"YulIdentifier","src":"20902:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"21074:3:101","nodeType":"YulIdentifier","src":"21074:3:101"}],"functionName":{"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"20985:88:101","nodeType":"YulIdentifier","src":"20985:88:101"},"nativeSrc":"20985:93:101","nodeType":"YulFunctionCall","src":"20985:93:101"},"nativeSrc":"20985:93:101","nodeType":"YulExpressionStatement","src":"20985:93:101"},{"nativeSrc":"21087:19:101","nodeType":"YulAssignment","src":"21087:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"21098:3:101","nodeType":"YulIdentifier","src":"21098:3:101"},{"kind":"number","nativeSrc":"21103:2:101","nodeType":"YulLiteral","src":"21103:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21094:3:101","nodeType":"YulIdentifier","src":"21094:3:101"},"nativeSrc":"21094:12:101","nodeType":"YulFunctionCall","src":"21094:12:101"},"variableNames":[{"name":"end","nativeSrc":"21087:3:101","nodeType":"YulIdentifier","src":"21087:3:101"}]}]},"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"20746:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20880:3:101","nodeType":"YulTypedName","src":"20880:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20888:3:101","nodeType":"YulTypedName","src":"20888:3:101","type":""}],"src":"20746:366:101"},{"body":{"nativeSrc":"21289:248:101","nodeType":"YulBlock","src":"21289:248:101","statements":[{"nativeSrc":"21299:26:101","nodeType":"YulAssignment","src":"21299:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"21311:9:101","nodeType":"YulIdentifier","src":"21311:9:101"},{"kind":"number","nativeSrc":"21322:2:101","nodeType":"YulLiteral","src":"21322:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21307:3:101","nodeType":"YulIdentifier","src":"21307:3:101"},"nativeSrc":"21307:18:101","nodeType":"YulFunctionCall","src":"21307:18:101"},"variableNames":[{"name":"tail","nativeSrc":"21299:4:101","nodeType":"YulIdentifier","src":"21299:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21346:9:101","nodeType":"YulIdentifier","src":"21346:9:101"},{"kind":"number","nativeSrc":"21357:1:101","nodeType":"YulLiteral","src":"21357:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21342:3:101","nodeType":"YulIdentifier","src":"21342:3:101"},"nativeSrc":"21342:17:101","nodeType":"YulFunctionCall","src":"21342:17:101"},{"arguments":[{"name":"tail","nativeSrc":"21365:4:101","nodeType":"YulIdentifier","src":"21365:4:101"},{"name":"headStart","nativeSrc":"21371:9:101","nodeType":"YulIdentifier","src":"21371:9:101"}],"functionName":{"name":"sub","nativeSrc":"21361:3:101","nodeType":"YulIdentifier","src":"21361:3:101"},"nativeSrc":"21361:20:101","nodeType":"YulFunctionCall","src":"21361:20:101"}],"functionName":{"name":"mstore","nativeSrc":"21335:6:101","nodeType":"YulIdentifier","src":"21335:6:101"},"nativeSrc":"21335:47:101","nodeType":"YulFunctionCall","src":"21335:47:101"},"nativeSrc":"21335:47:101","nodeType":"YulExpressionStatement","src":"21335:47:101"},{"nativeSrc":"21391:139:101","nodeType":"YulAssignment","src":"21391:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"21525:4:101","nodeType":"YulIdentifier","src":"21525:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"21399:124:101","nodeType":"YulIdentifier","src":"21399:124:101"},"nativeSrc":"21399:131:101","nodeType":"YulFunctionCall","src":"21399:131:101"},"variableNames":[{"name":"tail","nativeSrc":"21391:4:101","nodeType":"YulIdentifier","src":"21391:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21118:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21269:9:101","nodeType":"YulTypedName","src":"21269:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21284:4:101","nodeType":"YulTypedName","src":"21284:4:101","type":""}],"src":"21118:419:101"},{"body":{"nativeSrc":"21669:206:101","nodeType":"YulBlock","src":"21669:206:101","statements":[{"nativeSrc":"21679:26:101","nodeType":"YulAssignment","src":"21679:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"21691:9:101","nodeType":"YulIdentifier","src":"21691:9:101"},{"kind":"number","nativeSrc":"21702:2:101","nodeType":"YulLiteral","src":"21702:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21687:3:101","nodeType":"YulIdentifier","src":"21687:3:101"},"nativeSrc":"21687:18:101","nodeType":"YulFunctionCall","src":"21687:18:101"},"variableNames":[{"name":"tail","nativeSrc":"21679:4:101","nodeType":"YulIdentifier","src":"21679:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21759:6:101","nodeType":"YulIdentifier","src":"21759:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"21772:9:101","nodeType":"YulIdentifier","src":"21772:9:101"},{"kind":"number","nativeSrc":"21783:1:101","nodeType":"YulLiteral","src":"21783:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21768:3:101","nodeType":"YulIdentifier","src":"21768:3:101"},"nativeSrc":"21768:17:101","nodeType":"YulFunctionCall","src":"21768:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21715:43:101","nodeType":"YulIdentifier","src":"21715:43:101"},"nativeSrc":"21715:71:101","nodeType":"YulFunctionCall","src":"21715:71:101"},"nativeSrc":"21715:71:101","nodeType":"YulExpressionStatement","src":"21715:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21840:6:101","nodeType":"YulIdentifier","src":"21840:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"21853:9:101","nodeType":"YulIdentifier","src":"21853:9:101"},{"kind":"number","nativeSrc":"21864:2:101","nodeType":"YulLiteral","src":"21864:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21849:3:101","nodeType":"YulIdentifier","src":"21849:3:101"},"nativeSrc":"21849:18:101","nodeType":"YulFunctionCall","src":"21849:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21796:43:101","nodeType":"YulIdentifier","src":"21796:43:101"},"nativeSrc":"21796:72:101","nodeType":"YulFunctionCall","src":"21796:72:101"},"nativeSrc":"21796:72:101","nodeType":"YulExpressionStatement","src":"21796:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"21543:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21633:9:101","nodeType":"YulTypedName","src":"21633:9:101","type":""},{"name":"value1","nativeSrc":"21645:6:101","nodeType":"YulTypedName","src":"21645:6:101","type":""},{"name":"value0","nativeSrc":"21653:6:101","nodeType":"YulTypedName","src":"21653:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21664:4:101","nodeType":"YulTypedName","src":"21664:4:101","type":""}],"src":"21543:332:101"},{"body":{"nativeSrc":"21925:61:101","nodeType":"YulBlock","src":"21925:61:101","statements":[{"nativeSrc":"21935:45:101","nodeType":"YulAssignment","src":"21935:45:101","value":{"arguments":[{"name":"value","nativeSrc":"21950:5:101","nodeType":"YulIdentifier","src":"21950:5:101"},{"kind":"number","nativeSrc":"21957:22:101","nodeType":"YulLiteral","src":"21957:22:101","type":"","value":"0xffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"21946:3:101","nodeType":"YulIdentifier","src":"21946:3:101"},"nativeSrc":"21946:34:101","nodeType":"YulFunctionCall","src":"21946:34:101"},"variableNames":[{"name":"cleaned","nativeSrc":"21935:7:101","nodeType":"YulIdentifier","src":"21935:7:101"}]}]},"name":"cleanup_t_uint80","nativeSrc":"21881:105:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21907:5:101","nodeType":"YulTypedName","src":"21907:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"21917:7:101","nodeType":"YulTypedName","src":"21917:7:101","type":""}],"src":"21881:105:101"},{"body":{"nativeSrc":"22034:78:101","nodeType":"YulBlock","src":"22034:78:101","statements":[{"body":{"nativeSrc":"22090:16:101","nodeType":"YulBlock","src":"22090:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22099:1:101","nodeType":"YulLiteral","src":"22099:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22102:1:101","nodeType":"YulLiteral","src":"22102:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22092:6:101","nodeType":"YulIdentifier","src":"22092:6:101"},"nativeSrc":"22092:12:101","nodeType":"YulFunctionCall","src":"22092:12:101"},"nativeSrc":"22092:12:101","nodeType":"YulExpressionStatement","src":"22092:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22057:5:101","nodeType":"YulIdentifier","src":"22057:5:101"},{"arguments":[{"name":"value","nativeSrc":"22081:5:101","nodeType":"YulIdentifier","src":"22081:5:101"}],"functionName":{"name":"cleanup_t_uint80","nativeSrc":"22064:16:101","nodeType":"YulIdentifier","src":"22064:16:101"},"nativeSrc":"22064:23:101","nodeType":"YulFunctionCall","src":"22064:23:101"}],"functionName":{"name":"eq","nativeSrc":"22054:2:101","nodeType":"YulIdentifier","src":"22054:2:101"},"nativeSrc":"22054:34:101","nodeType":"YulFunctionCall","src":"22054:34:101"}],"functionName":{"name":"iszero","nativeSrc":"22047:6:101","nodeType":"YulIdentifier","src":"22047:6:101"},"nativeSrc":"22047:42:101","nodeType":"YulFunctionCall","src":"22047:42:101"},"nativeSrc":"22044:62:101","nodeType":"YulIf","src":"22044:62:101"}]},"name":"validator_revert_t_uint80","nativeSrc":"21992:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22027:5:101","nodeType":"YulTypedName","src":"22027:5:101","type":""}],"src":"21992:120:101"},{"body":{"nativeSrc":"22180:79:101","nodeType":"YulBlock","src":"22180:79:101","statements":[{"nativeSrc":"22190:22:101","nodeType":"YulAssignment","src":"22190:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"22205:6:101","nodeType":"YulIdentifier","src":"22205:6:101"}],"functionName":{"name":"mload","nativeSrc":"22199:5:101","nodeType":"YulIdentifier","src":"22199:5:101"},"nativeSrc":"22199:13:101","nodeType":"YulFunctionCall","src":"22199:13:101"},"variableNames":[{"name":"value","nativeSrc":"22190:5:101","nodeType":"YulIdentifier","src":"22190:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22247:5:101","nodeType":"YulIdentifier","src":"22247:5:101"}],"functionName":{"name":"validator_revert_t_uint80","nativeSrc":"22221:25:101","nodeType":"YulIdentifier","src":"22221:25:101"},"nativeSrc":"22221:32:101","nodeType":"YulFunctionCall","src":"22221:32:101"},"nativeSrc":"22221:32:101","nodeType":"YulExpressionStatement","src":"22221:32:101"}]},"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"22118:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22158:6:101","nodeType":"YulTypedName","src":"22158:6:101","type":""},{"name":"end","nativeSrc":"22166:3:101","nodeType":"YulTypedName","src":"22166:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22174:5:101","nodeType":"YulTypedName","src":"22174:5:101","type":""}],"src":"22118:141:101"},{"body":{"nativeSrc":"22309:32:101","nodeType":"YulBlock","src":"22309:32:101","statements":[{"nativeSrc":"22319:16:101","nodeType":"YulAssignment","src":"22319:16:101","value":{"name":"value","nativeSrc":"22330:5:101","nodeType":"YulIdentifier","src":"22330:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"22319:7:101","nodeType":"YulIdentifier","src":"22319:7:101"}]}]},"name":"cleanup_t_int256","nativeSrc":"22265:76:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22291:5:101","nodeType":"YulTypedName","src":"22291:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"22301:7:101","nodeType":"YulTypedName","src":"22301:7:101","type":""}],"src":"22265:76:101"},{"body":{"nativeSrc":"22389:78:101","nodeType":"YulBlock","src":"22389:78:101","statements":[{"body":{"nativeSrc":"22445:16:101","nodeType":"YulBlock","src":"22445:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22454:1:101","nodeType":"YulLiteral","src":"22454:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"22457:1:101","nodeType":"YulLiteral","src":"22457:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22447:6:101","nodeType":"YulIdentifier","src":"22447:6:101"},"nativeSrc":"22447:12:101","nodeType":"YulFunctionCall","src":"22447:12:101"},"nativeSrc":"22447:12:101","nodeType":"YulExpressionStatement","src":"22447:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22412:5:101","nodeType":"YulIdentifier","src":"22412:5:101"},{"arguments":[{"name":"value","nativeSrc":"22436:5:101","nodeType":"YulIdentifier","src":"22436:5:101"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"22419:16:101","nodeType":"YulIdentifier","src":"22419:16:101"},"nativeSrc":"22419:23:101","nodeType":"YulFunctionCall","src":"22419:23:101"}],"functionName":{"name":"eq","nativeSrc":"22409:2:101","nodeType":"YulIdentifier","src":"22409:2:101"},"nativeSrc":"22409:34:101","nodeType":"YulFunctionCall","src":"22409:34:101"}],"functionName":{"name":"iszero","nativeSrc":"22402:6:101","nodeType":"YulIdentifier","src":"22402:6:101"},"nativeSrc":"22402:42:101","nodeType":"YulFunctionCall","src":"22402:42:101"},"nativeSrc":"22399:62:101","nodeType":"YulIf","src":"22399:62:101"}]},"name":"validator_revert_t_int256","nativeSrc":"22347:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22382:5:101","nodeType":"YulTypedName","src":"22382:5:101","type":""}],"src":"22347:120:101"},{"body":{"nativeSrc":"22535:79:101","nodeType":"YulBlock","src":"22535:79:101","statements":[{"nativeSrc":"22545:22:101","nodeType":"YulAssignment","src":"22545:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"22560:6:101","nodeType":"YulIdentifier","src":"22560:6:101"}],"functionName":{"name":"mload","nativeSrc":"22554:5:101","nodeType":"YulIdentifier","src":"22554:5:101"},"nativeSrc":"22554:13:101","nodeType":"YulFunctionCall","src":"22554:13:101"},"variableNames":[{"name":"value","nativeSrc":"22545:5:101","nodeType":"YulIdentifier","src":"22545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22602:5:101","nodeType":"YulIdentifier","src":"22602:5:101"}],"functionName":{"name":"validator_revert_t_int256","nativeSrc":"22576:25:101","nodeType":"YulIdentifier","src":"22576:25:101"},"nativeSrc":"22576:32:101","nodeType":"YulFunctionCall","src":"22576:32:101"},"nativeSrc":"22576:32:101","nodeType":"YulExpressionStatement","src":"22576:32:101"}]},"name":"abi_decode_t_int256_fromMemory","nativeSrc":"22473:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22513:6:101","nodeType":"YulTypedName","src":"22513:6:101","type":""},{"name":"end","nativeSrc":"22521:3:101","nodeType":"YulTypedName","src":"22521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22529:5:101","nodeType":"YulTypedName","src":"22529:5:101","type":""}],"src":"22473:141:101"},{"body":{"nativeSrc":"22683:80:101","nodeType":"YulBlock","src":"22683:80:101","statements":[{"nativeSrc":"22693:22:101","nodeType":"YulAssignment","src":"22693:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"22708:6:101","nodeType":"YulIdentifier","src":"22708:6:101"}],"functionName":{"name":"mload","nativeSrc":"22702:5:101","nodeType":"YulIdentifier","src":"22702:5:101"},"nativeSrc":"22702:13:101","nodeType":"YulFunctionCall","src":"22702:13:101"},"variableNames":[{"name":"value","nativeSrc":"22693:5:101","nodeType":"YulIdentifier","src":"22693:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22751:5:101","nodeType":"YulIdentifier","src":"22751:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"22724:26:101","nodeType":"YulIdentifier","src":"22724:26:101"},"nativeSrc":"22724:33:101","nodeType":"YulFunctionCall","src":"22724:33:101"},"nativeSrc":"22724:33:101","nodeType":"YulExpressionStatement","src":"22724:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"22620:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22661:6:101","nodeType":"YulTypedName","src":"22661:6:101","type":""},{"name":"end","nativeSrc":"22669:3:101","nodeType":"YulTypedName","src":"22669:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22677:5:101","nodeType":"YulTypedName","src":"22677:5:101","type":""}],"src":"22620:143:101"},{"body":{"nativeSrc":"22911:829:101","nodeType":"YulBlock","src":"22911:829:101","statements":[{"body":{"nativeSrc":"22958:83:101","nodeType":"YulBlock","src":"22958:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"22960:77:101","nodeType":"YulIdentifier","src":"22960:77:101"},"nativeSrc":"22960:79:101","nodeType":"YulFunctionCall","src":"22960:79:101"},"nativeSrc":"22960:79:101","nodeType":"YulExpressionStatement","src":"22960:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22932:7:101","nodeType":"YulIdentifier","src":"22932:7:101"},{"name":"headStart","nativeSrc":"22941:9:101","nodeType":"YulIdentifier","src":"22941:9:101"}],"functionName":{"name":"sub","nativeSrc":"22928:3:101","nodeType":"YulIdentifier","src":"22928:3:101"},"nativeSrc":"22928:23:101","nodeType":"YulFunctionCall","src":"22928:23:101"},{"kind":"number","nativeSrc":"22953:3:101","nodeType":"YulLiteral","src":"22953:3:101","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"22924:3:101","nodeType":"YulIdentifier","src":"22924:3:101"},"nativeSrc":"22924:33:101","nodeType":"YulFunctionCall","src":"22924:33:101"},"nativeSrc":"22921:120:101","nodeType":"YulIf","src":"22921:120:101"},{"nativeSrc":"23051:127:101","nodeType":"YulBlock","src":"23051:127:101","statements":[{"nativeSrc":"23066:15:101","nodeType":"YulVariableDeclaration","src":"23066:15:101","value":{"kind":"number","nativeSrc":"23080:1:101","nodeType":"YulLiteral","src":"23080:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23070:6:101","nodeType":"YulTypedName","src":"23070:6:101","type":""}]},{"nativeSrc":"23095:73:101","nodeType":"YulAssignment","src":"23095:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23140:9:101","nodeType":"YulIdentifier","src":"23140:9:101"},{"name":"offset","nativeSrc":"23151:6:101","nodeType":"YulIdentifier","src":"23151:6:101"}],"functionName":{"name":"add","nativeSrc":"23136:3:101","nodeType":"YulIdentifier","src":"23136:3:101"},"nativeSrc":"23136:22:101","nodeType":"YulFunctionCall","src":"23136:22:101"},{"name":"dataEnd","nativeSrc":"23160:7:101","nodeType":"YulIdentifier","src":"23160:7:101"}],"functionName":{"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"23105:30:101","nodeType":"YulIdentifier","src":"23105:30:101"},"nativeSrc":"23105:63:101","nodeType":"YulFunctionCall","src":"23105:63:101"},"variableNames":[{"name":"value0","nativeSrc":"23095:6:101","nodeType":"YulIdentifier","src":"23095:6:101"}]}]},{"nativeSrc":"23188:128:101","nodeType":"YulBlock","src":"23188:128:101","statements":[{"nativeSrc":"23203:16:101","nodeType":"YulVariableDeclaration","src":"23203:16:101","value":{"kind":"number","nativeSrc":"23217:2:101","nodeType":"YulLiteral","src":"23217:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"23207:6:101","nodeType":"YulTypedName","src":"23207:6:101","type":""}]},{"nativeSrc":"23233:73:101","nodeType":"YulAssignment","src":"23233:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23278:9:101","nodeType":"YulIdentifier","src":"23278:9:101"},{"name":"offset","nativeSrc":"23289:6:101","nodeType":"YulIdentifier","src":"23289:6:101"}],"functionName":{"name":"add","nativeSrc":"23274:3:101","nodeType":"YulIdentifier","src":"23274:3:101"},"nativeSrc":"23274:22:101","nodeType":"YulFunctionCall","src":"23274:22:101"},{"name":"dataEnd","nativeSrc":"23298:7:101","nodeType":"YulIdentifier","src":"23298:7:101"}],"functionName":{"name":"abi_decode_t_int256_fromMemory","nativeSrc":"23243:30:101","nodeType":"YulIdentifier","src":"23243:30:101"},"nativeSrc":"23243:63:101","nodeType":"YulFunctionCall","src":"23243:63:101"},"variableNames":[{"name":"value1","nativeSrc":"23233:6:101","nodeType":"YulIdentifier","src":"23233:6:101"}]}]},{"nativeSrc":"23326:129:101","nodeType":"YulBlock","src":"23326:129:101","statements":[{"nativeSrc":"23341:16:101","nodeType":"YulVariableDeclaration","src":"23341:16:101","value":{"kind":"number","nativeSrc":"23355:2:101","nodeType":"YulLiteral","src":"23355:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"23345:6:101","nodeType":"YulTypedName","src":"23345:6:101","type":""}]},{"nativeSrc":"23371:74:101","nodeType":"YulAssignment","src":"23371:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23417:9:101","nodeType":"YulIdentifier","src":"23417:9:101"},{"name":"offset","nativeSrc":"23428:6:101","nodeType":"YulIdentifier","src":"23428:6:101"}],"functionName":{"name":"add","nativeSrc":"23413:3:101","nodeType":"YulIdentifier","src":"23413:3:101"},"nativeSrc":"23413:22:101","nodeType":"YulFunctionCall","src":"23413:22:101"},{"name":"dataEnd","nativeSrc":"23437:7:101","nodeType":"YulIdentifier","src":"23437:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23381:31:101","nodeType":"YulIdentifier","src":"23381:31:101"},"nativeSrc":"23381:64:101","nodeType":"YulFunctionCall","src":"23381:64:101"},"variableNames":[{"name":"value2","nativeSrc":"23371:6:101","nodeType":"YulIdentifier","src":"23371:6:101"}]}]},{"nativeSrc":"23465:129:101","nodeType":"YulBlock","src":"23465:129:101","statements":[{"nativeSrc":"23480:16:101","nodeType":"YulVariableDeclaration","src":"23480:16:101","value":{"kind":"number","nativeSrc":"23494:2:101","nodeType":"YulLiteral","src":"23494:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"23484:6:101","nodeType":"YulTypedName","src":"23484:6:101","type":""}]},{"nativeSrc":"23510:74:101","nodeType":"YulAssignment","src":"23510:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23556:9:101","nodeType":"YulIdentifier","src":"23556:9:101"},{"name":"offset","nativeSrc":"23567:6:101","nodeType":"YulIdentifier","src":"23567:6:101"}],"functionName":{"name":"add","nativeSrc":"23552:3:101","nodeType":"YulIdentifier","src":"23552:3:101"},"nativeSrc":"23552:22:101","nodeType":"YulFunctionCall","src":"23552:22:101"},{"name":"dataEnd","nativeSrc":"23576:7:101","nodeType":"YulIdentifier","src":"23576:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23520:31:101","nodeType":"YulIdentifier","src":"23520:31:101"},"nativeSrc":"23520:64:101","nodeType":"YulFunctionCall","src":"23520:64:101"},"variableNames":[{"name":"value3","nativeSrc":"23510:6:101","nodeType":"YulIdentifier","src":"23510:6:101"}]}]},{"nativeSrc":"23604:129:101","nodeType":"YulBlock","src":"23604:129:101","statements":[{"nativeSrc":"23619:17:101","nodeType":"YulVariableDeclaration","src":"23619:17:101","value":{"kind":"number","nativeSrc":"23633:3:101","nodeType":"YulLiteral","src":"23633:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"23623:6:101","nodeType":"YulTypedName","src":"23623:6:101","type":""}]},{"nativeSrc":"23650:73:101","nodeType":"YulAssignment","src":"23650:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23695:9:101","nodeType":"YulIdentifier","src":"23695:9:101"},{"name":"offset","nativeSrc":"23706:6:101","nodeType":"YulIdentifier","src":"23706:6:101"}],"functionName":{"name":"add","nativeSrc":"23691:3:101","nodeType":"YulIdentifier","src":"23691:3:101"},"nativeSrc":"23691:22:101","nodeType":"YulFunctionCall","src":"23691:22:101"},{"name":"dataEnd","nativeSrc":"23715:7:101","nodeType":"YulIdentifier","src":"23715:7:101"}],"functionName":{"name":"abi_decode_t_uint80_fromMemory","nativeSrc":"23660:30:101","nodeType":"YulIdentifier","src":"23660:30:101"},"nativeSrc":"23660:63:101","nodeType":"YulFunctionCall","src":"23660:63:101"},"variableNames":[{"name":"value4","nativeSrc":"23650:6:101","nodeType":"YulIdentifier","src":"23650:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory","nativeSrc":"22769:971:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22849:9:101","nodeType":"YulTypedName","src":"22849:9:101","type":""},{"name":"dataEnd","nativeSrc":"22860:7:101","nodeType":"YulTypedName","src":"22860:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22872:6:101","nodeType":"YulTypedName","src":"22872:6:101","type":""},{"name":"value1","nativeSrc":"22880:6:101","nodeType":"YulTypedName","src":"22880:6:101","type":""},{"name":"value2","nativeSrc":"22888:6:101","nodeType":"YulTypedName","src":"22888:6:101","type":""},{"name":"value3","nativeSrc":"22896:6:101","nodeType":"YulTypedName","src":"22896:6:101","type":""},{"name":"value4","nativeSrc":"22904:6:101","nodeType":"YulTypedName","src":"22904:6:101","type":""}],"src":"22769:971:101"},{"body":{"nativeSrc":"23774:152:101","nodeType":"YulBlock","src":"23774:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23791:1:101","nodeType":"YulLiteral","src":"23791:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"23794:77:101","nodeType":"YulLiteral","src":"23794:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"23784:6:101","nodeType":"YulIdentifier","src":"23784:6:101"},"nativeSrc":"23784:88:101","nodeType":"YulFunctionCall","src":"23784:88:101"},"nativeSrc":"23784:88:101","nodeType":"YulExpressionStatement","src":"23784:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23888:1:101","nodeType":"YulLiteral","src":"23888:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"23891:4:101","nodeType":"YulLiteral","src":"23891:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"23881:6:101","nodeType":"YulIdentifier","src":"23881:6:101"},"nativeSrc":"23881:15:101","nodeType":"YulFunctionCall","src":"23881:15:101"},"nativeSrc":"23881:15:101","nodeType":"YulExpressionStatement","src":"23881:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23912:1:101","nodeType":"YulLiteral","src":"23912:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"23915:4:101","nodeType":"YulLiteral","src":"23915:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"23905:6:101","nodeType":"YulIdentifier","src":"23905:6:101"},"nativeSrc":"23905:15:101","nodeType":"YulFunctionCall","src":"23905:15:101"},"nativeSrc":"23905:15:101","nodeType":"YulExpressionStatement","src":"23905:15:101"}]},"name":"panic_error_0x11","nativeSrc":"23746:180:101","nodeType":"YulFunctionDefinition","src":"23746:180:101"},{"body":{"nativeSrc":"23977:149:101","nodeType":"YulBlock","src":"23977:149:101","statements":[{"nativeSrc":"23987:25:101","nodeType":"YulAssignment","src":"23987:25:101","value":{"arguments":[{"name":"x","nativeSrc":"24010:1:101","nodeType":"YulIdentifier","src":"24010:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"23992:17:101","nodeType":"YulIdentifier","src":"23992:17:101"},"nativeSrc":"23992:20:101","nodeType":"YulFunctionCall","src":"23992:20:101"},"variableNames":[{"name":"x","nativeSrc":"23987:1:101","nodeType":"YulIdentifier","src":"23987:1:101"}]},{"nativeSrc":"24021:25:101","nodeType":"YulAssignment","src":"24021:25:101","value":{"arguments":[{"name":"y","nativeSrc":"24044:1:101","nodeType":"YulIdentifier","src":"24044:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"24026:17:101","nodeType":"YulIdentifier","src":"24026:17:101"},"nativeSrc":"24026:20:101","nodeType":"YulFunctionCall","src":"24026:20:101"},"variableNames":[{"name":"y","nativeSrc":"24021:1:101","nodeType":"YulIdentifier","src":"24021:1:101"}]},{"nativeSrc":"24055:17:101","nodeType":"YulAssignment","src":"24055:17:101","value":{"arguments":[{"name":"x","nativeSrc":"24067:1:101","nodeType":"YulIdentifier","src":"24067:1:101"},{"name":"y","nativeSrc":"24070:1:101","nodeType":"YulIdentifier","src":"24070:1:101"}],"functionName":{"name":"sub","nativeSrc":"24063:3:101","nodeType":"YulIdentifier","src":"24063:3:101"},"nativeSrc":"24063:9:101","nodeType":"YulFunctionCall","src":"24063:9:101"},"variableNames":[{"name":"diff","nativeSrc":"24055:4:101","nodeType":"YulIdentifier","src":"24055:4:101"}]},{"body":{"nativeSrc":"24097:22:101","nodeType":"YulBlock","src":"24097:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"24099:16:101","nodeType":"YulIdentifier","src":"24099:16:101"},"nativeSrc":"24099:18:101","nodeType":"YulFunctionCall","src":"24099:18:101"},"nativeSrc":"24099:18:101","nodeType":"YulExpressionStatement","src":"24099:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"24088:4:101","nodeType":"YulIdentifier","src":"24088:4:101"},{"name":"x","nativeSrc":"24094:1:101","nodeType":"YulIdentifier","src":"24094:1:101"}],"functionName":{"name":"gt","nativeSrc":"24085:2:101","nodeType":"YulIdentifier","src":"24085:2:101"},"nativeSrc":"24085:11:101","nodeType":"YulFunctionCall","src":"24085:11:101"},"nativeSrc":"24082:37:101","nodeType":"YulIf","src":"24082:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"23932:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"23963:1:101","nodeType":"YulTypedName","src":"23963:1:101","type":""},{"name":"y","nativeSrc":"23966:1:101","nodeType":"YulTypedName","src":"23966:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"23972:4:101","nodeType":"YulTypedName","src":"23972:4:101","type":""}],"src":"23932:194:101"},{"body":{"nativeSrc":"24173:77:101","nodeType":"YulBlock","src":"24173:77:101","statements":[{"body":{"nativeSrc":"24228:16:101","nodeType":"YulBlock","src":"24228:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24237:1:101","nodeType":"YulLiteral","src":"24237:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"24240:1:101","nodeType":"YulLiteral","src":"24240:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24230:6:101","nodeType":"YulIdentifier","src":"24230:6:101"},"nativeSrc":"24230:12:101","nodeType":"YulFunctionCall","src":"24230:12:101"},"nativeSrc":"24230:12:101","nodeType":"YulExpressionStatement","src":"24230:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24196:5:101","nodeType":"YulIdentifier","src":"24196:5:101"},{"arguments":[{"name":"value","nativeSrc":"24219:5:101","nodeType":"YulIdentifier","src":"24219:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"24203:15:101","nodeType":"YulIdentifier","src":"24203:15:101"},"nativeSrc":"24203:22:101","nodeType":"YulFunctionCall","src":"24203:22:101"}],"functionName":{"name":"eq","nativeSrc":"24193:2:101","nodeType":"YulIdentifier","src":"24193:2:101"},"nativeSrc":"24193:33:101","nodeType":"YulFunctionCall","src":"24193:33:101"}],"functionName":{"name":"iszero","nativeSrc":"24186:6:101","nodeType":"YulIdentifier","src":"24186:6:101"},"nativeSrc":"24186:41:101","nodeType":"YulFunctionCall","src":"24186:41:101"},"nativeSrc":"24183:61:101","nodeType":"YulIf","src":"24183:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"24132:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24166:5:101","nodeType":"YulTypedName","src":"24166:5:101","type":""}],"src":"24132:118:101"},{"body":{"nativeSrc":"24317:78:101","nodeType":"YulBlock","src":"24317:78:101","statements":[{"nativeSrc":"24327:22:101","nodeType":"YulAssignment","src":"24327:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"24342:6:101","nodeType":"YulIdentifier","src":"24342:6:101"}],"functionName":{"name":"mload","nativeSrc":"24336:5:101","nodeType":"YulIdentifier","src":"24336:5:101"},"nativeSrc":"24336:13:101","nodeType":"YulFunctionCall","src":"24336:13:101"},"variableNames":[{"name":"value","nativeSrc":"24327:5:101","nodeType":"YulIdentifier","src":"24327:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24383:5:101","nodeType":"YulIdentifier","src":"24383:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"24358:24:101","nodeType":"YulIdentifier","src":"24358:24:101"},"nativeSrc":"24358:31:101","nodeType":"YulFunctionCall","src":"24358:31:101"},"nativeSrc":"24358:31:101","nodeType":"YulExpressionStatement","src":"24358:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"24256:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24295:6:101","nodeType":"YulTypedName","src":"24295:6:101","type":""},{"name":"end","nativeSrc":"24303:3:101","nodeType":"YulTypedName","src":"24303:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24311:5:101","nodeType":"YulTypedName","src":"24311:5:101","type":""}],"src":"24256:139:101"},{"body":{"nativeSrc":"24476:272:101","nodeType":"YulBlock","src":"24476:272:101","statements":[{"body":{"nativeSrc":"24522:83:101","nodeType":"YulBlock","src":"24522:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"24524:77:101","nodeType":"YulIdentifier","src":"24524:77:101"},"nativeSrc":"24524:79:101","nodeType":"YulFunctionCall","src":"24524:79:101"},"nativeSrc":"24524:79:101","nodeType":"YulExpressionStatement","src":"24524:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"24497:7:101","nodeType":"YulIdentifier","src":"24497:7:101"},{"name":"headStart","nativeSrc":"24506:9:101","nodeType":"YulIdentifier","src":"24506:9:101"}],"functionName":{"name":"sub","nativeSrc":"24493:3:101","nodeType":"YulIdentifier","src":"24493:3:101"},"nativeSrc":"24493:23:101","nodeType":"YulFunctionCall","src":"24493:23:101"},{"kind":"number","nativeSrc":"24518:2:101","nodeType":"YulLiteral","src":"24518:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"24489:3:101","nodeType":"YulIdentifier","src":"24489:3:101"},"nativeSrc":"24489:32:101","nodeType":"YulFunctionCall","src":"24489:32:101"},"nativeSrc":"24486:119:101","nodeType":"YulIf","src":"24486:119:101"},{"nativeSrc":"24615:126:101","nodeType":"YulBlock","src":"24615:126:101","statements":[{"nativeSrc":"24630:15:101","nodeType":"YulVariableDeclaration","src":"24630:15:101","value":{"kind":"number","nativeSrc":"24644:1:101","nodeType":"YulLiteral","src":"24644:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"24634:6:101","nodeType":"YulTypedName","src":"24634:6:101","type":""}]},{"nativeSrc":"24659:72:101","nodeType":"YulAssignment","src":"24659:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24703:9:101","nodeType":"YulIdentifier","src":"24703:9:101"},{"name":"offset","nativeSrc":"24714:6:101","nodeType":"YulIdentifier","src":"24714:6:101"}],"functionName":{"name":"add","nativeSrc":"24699:3:101","nodeType":"YulIdentifier","src":"24699:3:101"},"nativeSrc":"24699:22:101","nodeType":"YulFunctionCall","src":"24699:22:101"},{"name":"dataEnd","nativeSrc":"24723:7:101","nodeType":"YulIdentifier","src":"24723:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"24669:29:101","nodeType":"YulIdentifier","src":"24669:29:101"},"nativeSrc":"24669:62:101","nodeType":"YulFunctionCall","src":"24669:62:101"},"variableNames":[{"name":"value0","nativeSrc":"24659:6:101","nodeType":"YulIdentifier","src":"24659:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"24401:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24446:9:101","nodeType":"YulTypedName","src":"24446:9:101","type":""},{"name":"dataEnd","nativeSrc":"24457:7:101","nodeType":"YulTypedName","src":"24457:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"24469:6:101","nodeType":"YulTypedName","src":"24469:6:101","type":""}],"src":"24401:347:101"},{"body":{"nativeSrc":"24860:124:101","nodeType":"YulBlock","src":"24860:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"24882:6:101","nodeType":"YulIdentifier","src":"24882:6:101"},{"kind":"number","nativeSrc":"24890:1:101","nodeType":"YulLiteral","src":"24890:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24878:3:101","nodeType":"YulIdentifier","src":"24878:3:101"},"nativeSrc":"24878:14:101","nodeType":"YulFunctionCall","src":"24878:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"24894:34:101","nodeType":"YulLiteral","src":"24894:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"24871:6:101","nodeType":"YulIdentifier","src":"24871:6:101"},"nativeSrc":"24871:58:101","nodeType":"YulFunctionCall","src":"24871:58:101"},"nativeSrc":"24871:58:101","nodeType":"YulExpressionStatement","src":"24871:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"24950:6:101","nodeType":"YulIdentifier","src":"24950:6:101"},{"kind":"number","nativeSrc":"24958:2:101","nodeType":"YulLiteral","src":"24958:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24946:3:101","nodeType":"YulIdentifier","src":"24946:3:101"},"nativeSrc":"24946:15:101","nodeType":"YulFunctionCall","src":"24946:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"24963:13:101","nodeType":"YulLiteral","src":"24963:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"24939:6:101","nodeType":"YulIdentifier","src":"24939:6:101"},"nativeSrc":"24939:38:101","nodeType":"YulFunctionCall","src":"24939:38:101"},"nativeSrc":"24939:38:101","nodeType":"YulExpressionStatement","src":"24939:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"24754:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"24852:6:101","nodeType":"YulTypedName","src":"24852:6:101","type":""}],"src":"24754:230:101"},{"body":{"nativeSrc":"25136:220:101","nodeType":"YulBlock","src":"25136:220:101","statements":[{"nativeSrc":"25146:74:101","nodeType":"YulAssignment","src":"25146:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"25212:3:101","nodeType":"YulIdentifier","src":"25212:3:101"},{"kind":"number","nativeSrc":"25217:2:101","nodeType":"YulLiteral","src":"25217:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"25153:58:101","nodeType":"YulIdentifier","src":"25153:58:101"},"nativeSrc":"25153:67:101","nodeType":"YulFunctionCall","src":"25153:67:101"},"variableNames":[{"name":"pos","nativeSrc":"25146:3:101","nodeType":"YulIdentifier","src":"25146:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"25318:3:101","nodeType":"YulIdentifier","src":"25318:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"25229:88:101","nodeType":"YulIdentifier","src":"25229:88:101"},"nativeSrc":"25229:93:101","nodeType":"YulFunctionCall","src":"25229:93:101"},"nativeSrc":"25229:93:101","nodeType":"YulExpressionStatement","src":"25229:93:101"},{"nativeSrc":"25331:19:101","nodeType":"YulAssignment","src":"25331:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"25342:3:101","nodeType":"YulIdentifier","src":"25342:3:101"},{"kind":"number","nativeSrc":"25347:2:101","nodeType":"YulLiteral","src":"25347:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25338:3:101","nodeType":"YulIdentifier","src":"25338:3:101"},"nativeSrc":"25338:12:101","nodeType":"YulFunctionCall","src":"25338:12:101"},"variableNames":[{"name":"end","nativeSrc":"25331:3:101","nodeType":"YulIdentifier","src":"25331:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"24990:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25124:3:101","nodeType":"YulTypedName","src":"25124:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25132:3:101","nodeType":"YulTypedName","src":"25132:3:101","type":""}],"src":"24990:366:101"},{"body":{"nativeSrc":"25533:248:101","nodeType":"YulBlock","src":"25533:248:101","statements":[{"nativeSrc":"25543:26:101","nodeType":"YulAssignment","src":"25543:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"25555:9:101","nodeType":"YulIdentifier","src":"25555:9:101"},{"kind":"number","nativeSrc":"25566:2:101","nodeType":"YulLiteral","src":"25566:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25551:3:101","nodeType":"YulIdentifier","src":"25551:3:101"},"nativeSrc":"25551:18:101","nodeType":"YulFunctionCall","src":"25551:18:101"},"variableNames":[{"name":"tail","nativeSrc":"25543:4:101","nodeType":"YulIdentifier","src":"25543:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25590:9:101","nodeType":"YulIdentifier","src":"25590:9:101"},{"kind":"number","nativeSrc":"25601:1:101","nodeType":"YulLiteral","src":"25601:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25586:3:101","nodeType":"YulIdentifier","src":"25586:3:101"},"nativeSrc":"25586:17:101","nodeType":"YulFunctionCall","src":"25586:17:101"},{"arguments":[{"name":"tail","nativeSrc":"25609:4:101","nodeType":"YulIdentifier","src":"25609:4:101"},{"name":"headStart","nativeSrc":"25615:9:101","nodeType":"YulIdentifier","src":"25615:9:101"}],"functionName":{"name":"sub","nativeSrc":"25605:3:101","nodeType":"YulIdentifier","src":"25605:3:101"},"nativeSrc":"25605:20:101","nodeType":"YulFunctionCall","src":"25605:20:101"}],"functionName":{"name":"mstore","nativeSrc":"25579:6:101","nodeType":"YulIdentifier","src":"25579:6:101"},"nativeSrc":"25579:47:101","nodeType":"YulFunctionCall","src":"25579:47:101"},"nativeSrc":"25579:47:101","nodeType":"YulExpressionStatement","src":"25579:47:101"},{"nativeSrc":"25635:139:101","nodeType":"YulAssignment","src":"25635:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"25769:4:101","nodeType":"YulIdentifier","src":"25769:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"25643:124:101","nodeType":"YulIdentifier","src":"25643:124:101"},"nativeSrc":"25643:131:101","nodeType":"YulFunctionCall","src":"25643:131:101"},"variableNames":[{"name":"tail","nativeSrc":"25635:4:101","nodeType":"YulIdentifier","src":"25635:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25362:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25513:9:101","nodeType":"YulTypedName","src":"25513:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25528:4:101","nodeType":"YulTypedName","src":"25528:4:101","type":""}],"src":"25362:419:101"},{"body":{"nativeSrc":"25838:51:101","nodeType":"YulBlock","src":"25838:51:101","statements":[{"nativeSrc":"25848:34:101","nodeType":"YulAssignment","src":"25848:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"25873:1:101","nodeType":"YulLiteral","src":"25873:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"25876:5:101","nodeType":"YulIdentifier","src":"25876:5:101"}],"functionName":{"name":"shr","nativeSrc":"25869:3:101","nodeType":"YulIdentifier","src":"25869:3:101"},"nativeSrc":"25869:13:101","nodeType":"YulFunctionCall","src":"25869:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"25848:8:101","nodeType":"YulIdentifier","src":"25848:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"25787:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25819:5:101","nodeType":"YulTypedName","src":"25819:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"25829:8:101","nodeType":"YulTypedName","src":"25829:8:101","type":""}],"src":"25787:102:101"},{"body":{"nativeSrc":"25968:775:101","nodeType":"YulBlock","src":"25968:775:101","statements":[{"nativeSrc":"25978:15:101","nodeType":"YulAssignment","src":"25978:15:101","value":{"name":"_power","nativeSrc":"25987:6:101","nodeType":"YulIdentifier","src":"25987:6:101"},"variableNames":[{"name":"power","nativeSrc":"25978:5:101","nodeType":"YulIdentifier","src":"25978:5:101"}]},{"nativeSrc":"26002:14:101","nodeType":"YulAssignment","src":"26002:14:101","value":{"name":"_base","nativeSrc":"26011:5:101","nodeType":"YulIdentifier","src":"26011:5:101"},"variableNames":[{"name":"base","nativeSrc":"26002:4:101","nodeType":"YulIdentifier","src":"26002:4:101"}]},{"body":{"nativeSrc":"26060:677:101","nodeType":"YulBlock","src":"26060:677:101","statements":[{"body":{"nativeSrc":"26148:22:101","nodeType":"YulBlock","src":"26148:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"26150:16:101","nodeType":"YulIdentifier","src":"26150:16:101"},"nativeSrc":"26150:18:101","nodeType":"YulFunctionCall","src":"26150:18:101"},"nativeSrc":"26150:18:101","nodeType":"YulExpressionStatement","src":"26150:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"26126:4:101","nodeType":"YulIdentifier","src":"26126:4:101"},{"arguments":[{"name":"max","nativeSrc":"26136:3:101","nodeType":"YulIdentifier","src":"26136:3:101"},{"name":"base","nativeSrc":"26141:4:101","nodeType":"YulIdentifier","src":"26141:4:101"}],"functionName":{"name":"div","nativeSrc":"26132:3:101","nodeType":"YulIdentifier","src":"26132:3:101"},"nativeSrc":"26132:14:101","nodeType":"YulFunctionCall","src":"26132:14:101"}],"functionName":{"name":"gt","nativeSrc":"26123:2:101","nodeType":"YulIdentifier","src":"26123:2:101"},"nativeSrc":"26123:24:101","nodeType":"YulFunctionCall","src":"26123:24:101"},"nativeSrc":"26120:50:101","nodeType":"YulIf","src":"26120:50:101"},{"body":{"nativeSrc":"26215:419:101","nodeType":"YulBlock","src":"26215:419:101","statements":[{"nativeSrc":"26595:25:101","nodeType":"YulAssignment","src":"26595:25:101","value":{"arguments":[{"name":"power","nativeSrc":"26608:5:101","nodeType":"YulIdentifier","src":"26608:5:101"},{"name":"base","nativeSrc":"26615:4:101","nodeType":"YulIdentifier","src":"26615:4:101"}],"functionName":{"name":"mul","nativeSrc":"26604:3:101","nodeType":"YulIdentifier","src":"26604:3:101"},"nativeSrc":"26604:16:101","nodeType":"YulFunctionCall","src":"26604:16:101"},"variableNames":[{"name":"power","nativeSrc":"26595:5:101","nodeType":"YulIdentifier","src":"26595:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"26190:8:101","nodeType":"YulIdentifier","src":"26190:8:101"},{"kind":"number","nativeSrc":"26200:1:101","nodeType":"YulLiteral","src":"26200:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"26186:3:101","nodeType":"YulIdentifier","src":"26186:3:101"},"nativeSrc":"26186:16:101","nodeType":"YulFunctionCall","src":"26186:16:101"},"nativeSrc":"26183:451:101","nodeType":"YulIf","src":"26183:451:101"},{"nativeSrc":"26647:23:101","nodeType":"YulAssignment","src":"26647:23:101","value":{"arguments":[{"name":"base","nativeSrc":"26659:4:101","nodeType":"YulIdentifier","src":"26659:4:101"},{"name":"base","nativeSrc":"26665:4:101","nodeType":"YulIdentifier","src":"26665:4:101"}],"functionName":{"name":"mul","nativeSrc":"26655:3:101","nodeType":"YulIdentifier","src":"26655:3:101"},"nativeSrc":"26655:15:101","nodeType":"YulFunctionCall","src":"26655:15:101"},"variableNames":[{"name":"base","nativeSrc":"26647:4:101","nodeType":"YulIdentifier","src":"26647:4:101"}]},{"nativeSrc":"26683:44:101","nodeType":"YulAssignment","src":"26683:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"26718:8:101","nodeType":"YulIdentifier","src":"26718:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"26695:22:101","nodeType":"YulIdentifier","src":"26695:22:101"},"nativeSrc":"26695:32:101","nodeType":"YulFunctionCall","src":"26695:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"26683:8:101","nodeType":"YulIdentifier","src":"26683:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"26036:8:101","nodeType":"YulIdentifier","src":"26036:8:101"},{"kind":"number","nativeSrc":"26046:1:101","nodeType":"YulLiteral","src":"26046:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"26033:2:101","nodeType":"YulIdentifier","src":"26033:2:101"},"nativeSrc":"26033:15:101","nodeType":"YulFunctionCall","src":"26033:15:101"},"nativeSrc":"26025:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"26049:2:101","nodeType":"YulBlock","src":"26049:2:101","statements":[]},"pre":{"nativeSrc":"26029:3:101","nodeType":"YulBlock","src":"26029:3:101","statements":[]},"src":"26025:712:101"}]},"name":"checked_exp_helper","nativeSrc":"25895:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"25923:6:101","nodeType":"YulTypedName","src":"25923:6:101","type":""},{"name":"_base","nativeSrc":"25931:5:101","nodeType":"YulTypedName","src":"25931:5:101","type":""},{"name":"exponent","nativeSrc":"25938:8:101","nodeType":"YulTypedName","src":"25938:8:101","type":""},{"name":"max","nativeSrc":"25948:3:101","nodeType":"YulTypedName","src":"25948:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"25956:5:101","nodeType":"YulTypedName","src":"25956:5:101","type":""},{"name":"base","nativeSrc":"25963:4:101","nodeType":"YulTypedName","src":"25963:4:101","type":""}],"src":"25895:848:101"},{"body":{"nativeSrc":"26809:1013:101","nodeType":"YulBlock","src":"26809:1013:101","statements":[{"body":{"nativeSrc":"27004:20:101","nodeType":"YulBlock","src":"27004:20:101","statements":[{"nativeSrc":"27006:10:101","nodeType":"YulAssignment","src":"27006:10:101","value":{"kind":"number","nativeSrc":"27015:1:101","nodeType":"YulLiteral","src":"27015:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"27006:5:101","nodeType":"YulIdentifier","src":"27006:5:101"}]},{"nativeSrc":"27017:5:101","nodeType":"YulLeave","src":"27017:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"26994:8:101","nodeType":"YulIdentifier","src":"26994:8:101"}],"functionName":{"name":"iszero","nativeSrc":"26987:6:101","nodeType":"YulIdentifier","src":"26987:6:101"},"nativeSrc":"26987:16:101","nodeType":"YulFunctionCall","src":"26987:16:101"},"nativeSrc":"26984:40:101","nodeType":"YulIf","src":"26984:40:101"},{"body":{"nativeSrc":"27049:20:101","nodeType":"YulBlock","src":"27049:20:101","statements":[{"nativeSrc":"27051:10:101","nodeType":"YulAssignment","src":"27051:10:101","value":{"kind":"number","nativeSrc":"27060:1:101","nodeType":"YulLiteral","src":"27060:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"27051:5:101","nodeType":"YulIdentifier","src":"27051:5:101"}]},{"nativeSrc":"27062:5:101","nodeType":"YulLeave","src":"27062:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"27043:4:101","nodeType":"YulIdentifier","src":"27043:4:101"}],"functionName":{"name":"iszero","nativeSrc":"27036:6:101","nodeType":"YulIdentifier","src":"27036:6:101"},"nativeSrc":"27036:12:101","nodeType":"YulFunctionCall","src":"27036:12:101"},"nativeSrc":"27033:36:101","nodeType":"YulIf","src":"27033:36:101"},{"cases":[{"body":{"nativeSrc":"27179:20:101","nodeType":"YulBlock","src":"27179:20:101","statements":[{"nativeSrc":"27181:10:101","nodeType":"YulAssignment","src":"27181:10:101","value":{"kind":"number","nativeSrc":"27190:1:101","nodeType":"YulLiteral","src":"27190:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"27181:5:101","nodeType":"YulIdentifier","src":"27181:5:101"}]},{"nativeSrc":"27192:5:101","nodeType":"YulLeave","src":"27192:5:101"}]},"nativeSrc":"27172:27:101","nodeType":"YulCase","src":"27172:27:101","value":{"kind":"number","nativeSrc":"27177:1:101","nodeType":"YulLiteral","src":"27177:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"27223:176:101","nodeType":"YulBlock","src":"27223:176:101","statements":[{"body":{"nativeSrc":"27258:22:101","nodeType":"YulBlock","src":"27258:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27260:16:101","nodeType":"YulIdentifier","src":"27260:16:101"},"nativeSrc":"27260:18:101","nodeType":"YulFunctionCall","src":"27260:18:101"},"nativeSrc":"27260:18:101","nodeType":"YulExpressionStatement","src":"27260:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"27243:8:101","nodeType":"YulIdentifier","src":"27243:8:101"},{"kind":"number","nativeSrc":"27253:3:101","nodeType":"YulLiteral","src":"27253:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"27240:2:101","nodeType":"YulIdentifier","src":"27240:2:101"},"nativeSrc":"27240:17:101","nodeType":"YulFunctionCall","src":"27240:17:101"},"nativeSrc":"27237:43:101","nodeType":"YulIf","src":"27237:43:101"},{"nativeSrc":"27293:25:101","nodeType":"YulAssignment","src":"27293:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"27306:1:101","nodeType":"YulLiteral","src":"27306:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"27309:8:101","nodeType":"YulIdentifier","src":"27309:8:101"}],"functionName":{"name":"exp","nativeSrc":"27302:3:101","nodeType":"YulIdentifier","src":"27302:3:101"},"nativeSrc":"27302:16:101","nodeType":"YulFunctionCall","src":"27302:16:101"},"variableNames":[{"name":"power","nativeSrc":"27293:5:101","nodeType":"YulIdentifier","src":"27293:5:101"}]},{"body":{"nativeSrc":"27349:22:101","nodeType":"YulBlock","src":"27349:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27351:16:101","nodeType":"YulIdentifier","src":"27351:16:101"},"nativeSrc":"27351:18:101","nodeType":"YulFunctionCall","src":"27351:18:101"},"nativeSrc":"27351:18:101","nodeType":"YulExpressionStatement","src":"27351:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"27337:5:101","nodeType":"YulIdentifier","src":"27337:5:101"},{"name":"max","nativeSrc":"27344:3:101","nodeType":"YulIdentifier","src":"27344:3:101"}],"functionName":{"name":"gt","nativeSrc":"27334:2:101","nodeType":"YulIdentifier","src":"27334:2:101"},"nativeSrc":"27334:14:101","nodeType":"YulFunctionCall","src":"27334:14:101"},"nativeSrc":"27331:40:101","nodeType":"YulIf","src":"27331:40:101"},{"nativeSrc":"27384:5:101","nodeType":"YulLeave","src":"27384:5:101"}]},"nativeSrc":"27208:191:101","nodeType":"YulCase","src":"27208:191:101","value":{"kind":"number","nativeSrc":"27213:1:101","nodeType":"YulLiteral","src":"27213:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"27129:4:101","nodeType":"YulIdentifier","src":"27129:4:101"},"nativeSrc":"27122:277:101","nodeType":"YulSwitch","src":"27122:277:101"},{"body":{"nativeSrc":"27531:123:101","nodeType":"YulBlock","src":"27531:123:101","statements":[{"nativeSrc":"27545:28:101","nodeType":"YulAssignment","src":"27545:28:101","value":{"arguments":[{"name":"base","nativeSrc":"27558:4:101","nodeType":"YulIdentifier","src":"27558:4:101"},{"name":"exponent","nativeSrc":"27564:8:101","nodeType":"YulIdentifier","src":"27564:8:101"}],"functionName":{"name":"exp","nativeSrc":"27554:3:101","nodeType":"YulIdentifier","src":"27554:3:101"},"nativeSrc":"27554:19:101","nodeType":"YulFunctionCall","src":"27554:19:101"},"variableNames":[{"name":"power","nativeSrc":"27545:5:101","nodeType":"YulIdentifier","src":"27545:5:101"}]},{"body":{"nativeSrc":"27604:22:101","nodeType":"YulBlock","src":"27604:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27606:16:101","nodeType":"YulIdentifier","src":"27606:16:101"},"nativeSrc":"27606:18:101","nodeType":"YulFunctionCall","src":"27606:18:101"},"nativeSrc":"27606:18:101","nodeType":"YulExpressionStatement","src":"27606:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"27592:5:101","nodeType":"YulIdentifier","src":"27592:5:101"},{"name":"max","nativeSrc":"27599:3:101","nodeType":"YulIdentifier","src":"27599:3:101"}],"functionName":{"name":"gt","nativeSrc":"27589:2:101","nodeType":"YulIdentifier","src":"27589:2:101"},"nativeSrc":"27589:14:101","nodeType":"YulFunctionCall","src":"27589:14:101"},"nativeSrc":"27586:40:101","nodeType":"YulIf","src":"27586:40:101"},{"nativeSrc":"27639:5:101","nodeType":"YulLeave","src":"27639:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"27434:4:101","nodeType":"YulIdentifier","src":"27434:4:101"},{"kind":"number","nativeSrc":"27440:2:101","nodeType":"YulLiteral","src":"27440:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"27431:2:101","nodeType":"YulIdentifier","src":"27431:2:101"},"nativeSrc":"27431:12:101","nodeType":"YulFunctionCall","src":"27431:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"27448:8:101","nodeType":"YulIdentifier","src":"27448:8:101"},{"kind":"number","nativeSrc":"27458:2:101","nodeType":"YulLiteral","src":"27458:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"27445:2:101","nodeType":"YulIdentifier","src":"27445:2:101"},"nativeSrc":"27445:16:101","nodeType":"YulFunctionCall","src":"27445:16:101"}],"functionName":{"name":"and","nativeSrc":"27427:3:101","nodeType":"YulIdentifier","src":"27427:3:101"},"nativeSrc":"27427:35:101","nodeType":"YulFunctionCall","src":"27427:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"27483:4:101","nodeType":"YulIdentifier","src":"27483:4:101"},{"kind":"number","nativeSrc":"27489:3:101","nodeType":"YulLiteral","src":"27489:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"27480:2:101","nodeType":"YulIdentifier","src":"27480:2:101"},"nativeSrc":"27480:13:101","nodeType":"YulFunctionCall","src":"27480:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"27498:8:101","nodeType":"YulIdentifier","src":"27498:8:101"},{"kind":"number","nativeSrc":"27508:2:101","nodeType":"YulLiteral","src":"27508:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"27495:2:101","nodeType":"YulIdentifier","src":"27495:2:101"},"nativeSrc":"27495:16:101","nodeType":"YulFunctionCall","src":"27495:16:101"}],"functionName":{"name":"and","nativeSrc":"27476:3:101","nodeType":"YulIdentifier","src":"27476:3:101"},"nativeSrc":"27476:36:101","nodeType":"YulFunctionCall","src":"27476:36:101"}],"functionName":{"name":"or","nativeSrc":"27411:2:101","nodeType":"YulIdentifier","src":"27411:2:101"},"nativeSrc":"27411:111:101","nodeType":"YulFunctionCall","src":"27411:111:101"},"nativeSrc":"27408:246:101","nodeType":"YulIf","src":"27408:246:101"},{"nativeSrc":"27664:57:101","nodeType":"YulAssignment","src":"27664:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"27698:1:101","nodeType":"YulLiteral","src":"27698:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"27701:4:101","nodeType":"YulIdentifier","src":"27701:4:101"},{"name":"exponent","nativeSrc":"27707:8:101","nodeType":"YulIdentifier","src":"27707:8:101"},{"name":"max","nativeSrc":"27717:3:101","nodeType":"YulIdentifier","src":"27717:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"27679:18:101","nodeType":"YulIdentifier","src":"27679:18:101"},"nativeSrc":"27679:42:101","nodeType":"YulFunctionCall","src":"27679:42:101"},"variableNames":[{"name":"power","nativeSrc":"27664:5:101","nodeType":"YulIdentifier","src":"27664:5:101"},{"name":"base","nativeSrc":"27671:4:101","nodeType":"YulIdentifier","src":"27671:4:101"}]},{"body":{"nativeSrc":"27760:22:101","nodeType":"YulBlock","src":"27760:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27762:16:101","nodeType":"YulIdentifier","src":"27762:16:101"},"nativeSrc":"27762:18:101","nodeType":"YulFunctionCall","src":"27762:18:101"},"nativeSrc":"27762:18:101","nodeType":"YulExpressionStatement","src":"27762:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"27737:5:101","nodeType":"YulIdentifier","src":"27737:5:101"},{"arguments":[{"name":"max","nativeSrc":"27748:3:101","nodeType":"YulIdentifier","src":"27748:3:101"},{"name":"base","nativeSrc":"27753:4:101","nodeType":"YulIdentifier","src":"27753:4:101"}],"functionName":{"name":"div","nativeSrc":"27744:3:101","nodeType":"YulIdentifier","src":"27744:3:101"},"nativeSrc":"27744:14:101","nodeType":"YulFunctionCall","src":"27744:14:101"}],"functionName":{"name":"gt","nativeSrc":"27734:2:101","nodeType":"YulIdentifier","src":"27734:2:101"},"nativeSrc":"27734:25:101","nodeType":"YulFunctionCall","src":"27734:25:101"},"nativeSrc":"27731:51:101","nodeType":"YulIf","src":"27731:51:101"},{"nativeSrc":"27791:25:101","nodeType":"YulAssignment","src":"27791:25:101","value":{"arguments":[{"name":"power","nativeSrc":"27804:5:101","nodeType":"YulIdentifier","src":"27804:5:101"},{"name":"base","nativeSrc":"27811:4:101","nodeType":"YulIdentifier","src":"27811:4:101"}],"functionName":{"name":"mul","nativeSrc":"27800:3:101","nodeType":"YulIdentifier","src":"27800:3:101"},"nativeSrc":"27800:16:101","nodeType":"YulFunctionCall","src":"27800:16:101"},"variableNames":[{"name":"power","nativeSrc":"27791:5:101","nodeType":"YulIdentifier","src":"27791:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"26749:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"26779:4:101","nodeType":"YulTypedName","src":"26779:4:101","type":""},{"name":"exponent","nativeSrc":"26785:8:101","nodeType":"YulTypedName","src":"26785:8:101","type":""},{"name":"max","nativeSrc":"26795:3:101","nodeType":"YulTypedName","src":"26795:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"26803:5:101","nodeType":"YulTypedName","src":"26803:5:101","type":""}],"src":"26749:1073:101"},{"body":{"nativeSrc":"27894:219:101","nodeType":"YulBlock","src":"27894:219:101","statements":[{"nativeSrc":"27904:31:101","nodeType":"YulAssignment","src":"27904:31:101","value":{"arguments":[{"name":"base","nativeSrc":"27930:4:101","nodeType":"YulIdentifier","src":"27930:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27912:17:101","nodeType":"YulIdentifier","src":"27912:17:101"},"nativeSrc":"27912:23:101","nodeType":"YulFunctionCall","src":"27912:23:101"},"variableNames":[{"name":"base","nativeSrc":"27904:4:101","nodeType":"YulIdentifier","src":"27904:4:101"}]},{"nativeSrc":"27944:39:101","nodeType":"YulAssignment","src":"27944:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"27974:8:101","nodeType":"YulIdentifier","src":"27974:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27956:17:101","nodeType":"YulIdentifier","src":"27956:17:101"},"nativeSrc":"27956:27:101","nodeType":"YulFunctionCall","src":"27956:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"27944:8:101","nodeType":"YulIdentifier","src":"27944:8:101"}]},{"nativeSrc":"27993:113:101","nodeType":"YulAssignment","src":"27993:113:101","value":{"arguments":[{"name":"base","nativeSrc":"28023:4:101","nodeType":"YulIdentifier","src":"28023:4:101"},{"name":"exponent","nativeSrc":"28029:8:101","nodeType":"YulIdentifier","src":"28029:8:101"},{"kind":"number","nativeSrc":"28039:66:101","nodeType":"YulLiteral","src":"28039:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"28002:20:101","nodeType":"YulIdentifier","src":"28002:20:101"},"nativeSrc":"28002:104:101","nodeType":"YulFunctionCall","src":"28002:104:101"},"variableNames":[{"name":"power","nativeSrc":"27993:5:101","nodeType":"YulIdentifier","src":"27993:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"27828:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"27869:4:101","nodeType":"YulTypedName","src":"27869:4:101","type":""},{"name":"exponent","nativeSrc":"27875:8:101","nodeType":"YulTypedName","src":"27875:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"27888:5:101","nodeType":"YulTypedName","src":"27888:5:101","type":""}],"src":"27828:285:101"},{"body":{"nativeSrc":"28167:362:101","nodeType":"YulBlock","src":"28167:362:101","statements":[{"nativeSrc":"28177:25:101","nodeType":"YulAssignment","src":"28177:25:101","value":{"arguments":[{"name":"x","nativeSrc":"28200:1:101","nodeType":"YulIdentifier","src":"28200:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28182:17:101","nodeType":"YulIdentifier","src":"28182:17:101"},"nativeSrc":"28182:20:101","nodeType":"YulFunctionCall","src":"28182:20:101"},"variableNames":[{"name":"x","nativeSrc":"28177:1:101","nodeType":"YulIdentifier","src":"28177:1:101"}]},{"nativeSrc":"28211:25:101","nodeType":"YulAssignment","src":"28211:25:101","value":{"arguments":[{"name":"y","nativeSrc":"28234:1:101","nodeType":"YulIdentifier","src":"28234:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28216:17:101","nodeType":"YulIdentifier","src":"28216:17:101"},"nativeSrc":"28216:20:101","nodeType":"YulFunctionCall","src":"28216:20:101"},"variableNames":[{"name":"y","nativeSrc":"28211:1:101","nodeType":"YulIdentifier","src":"28211:1:101"}]},{"nativeSrc":"28245:28:101","nodeType":"YulVariableDeclaration","src":"28245:28:101","value":{"arguments":[{"name":"x","nativeSrc":"28268:1:101","nodeType":"YulIdentifier","src":"28268:1:101"},{"name":"y","nativeSrc":"28271:1:101","nodeType":"YulIdentifier","src":"28271:1:101"}],"functionName":{"name":"mul","nativeSrc":"28264:3:101","nodeType":"YulIdentifier","src":"28264:3:101"},"nativeSrc":"28264:9:101","nodeType":"YulFunctionCall","src":"28264:9:101"},"variables":[{"name":"product_raw","nativeSrc":"28249:11:101","nodeType":"YulTypedName","src":"28249:11:101","type":""}]},{"nativeSrc":"28282:41:101","nodeType":"YulAssignment","src":"28282:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"28311:11:101","nodeType":"YulIdentifier","src":"28311:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28293:17:101","nodeType":"YulIdentifier","src":"28293:17:101"},"nativeSrc":"28293:30:101","nodeType":"YulFunctionCall","src":"28293:30:101"},"variableNames":[{"name":"product","nativeSrc":"28282:7:101","nodeType":"YulIdentifier","src":"28282:7:101"}]},{"body":{"nativeSrc":"28500:22:101","nodeType":"YulBlock","src":"28500:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28502:16:101","nodeType":"YulIdentifier","src":"28502:16:101"},"nativeSrc":"28502:18:101","nodeType":"YulFunctionCall","src":"28502:18:101"},"nativeSrc":"28502:18:101","nodeType":"YulExpressionStatement","src":"28502:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28433:1:101","nodeType":"YulIdentifier","src":"28433:1:101"}],"functionName":{"name":"iszero","nativeSrc":"28426:6:101","nodeType":"YulIdentifier","src":"28426:6:101"},"nativeSrc":"28426:9:101","nodeType":"YulFunctionCall","src":"28426:9:101"},{"arguments":[{"name":"y","nativeSrc":"28456:1:101","nodeType":"YulIdentifier","src":"28456:1:101"},{"arguments":[{"name":"product","nativeSrc":"28463:7:101","nodeType":"YulIdentifier","src":"28463:7:101"},{"name":"x","nativeSrc":"28472:1:101","nodeType":"YulIdentifier","src":"28472:1:101"}],"functionName":{"name":"div","nativeSrc":"28459:3:101","nodeType":"YulIdentifier","src":"28459:3:101"},"nativeSrc":"28459:15:101","nodeType":"YulFunctionCall","src":"28459:15:101"}],"functionName":{"name":"eq","nativeSrc":"28453:2:101","nodeType":"YulIdentifier","src":"28453:2:101"},"nativeSrc":"28453:22:101","nodeType":"YulFunctionCall","src":"28453:22:101"}],"functionName":{"name":"or","nativeSrc":"28406:2:101","nodeType":"YulIdentifier","src":"28406:2:101"},"nativeSrc":"28406:83:101","nodeType":"YulFunctionCall","src":"28406:83:101"}],"functionName":{"name":"iszero","nativeSrc":"28386:6:101","nodeType":"YulIdentifier","src":"28386:6:101"},"nativeSrc":"28386:113:101","nodeType":"YulFunctionCall","src":"28386:113:101"},"nativeSrc":"28383:139:101","nodeType":"YulIf","src":"28383:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"28119:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28150:1:101","nodeType":"YulTypedName","src":"28150:1:101","type":""},{"name":"y","nativeSrc":"28153:1:101","nodeType":"YulTypedName","src":"28153:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"28159:7:101","nodeType":"YulTypedName","src":"28159:7:101","type":""}],"src":"28119:410:101"},{"body":{"nativeSrc":"28578:148:101","nodeType":"YulBlock","src":"28578:148:101","statements":[{"nativeSrc":"28588:23:101","nodeType":"YulAssignment","src":"28588:23:101","value":{"arguments":[{"name":"x","nativeSrc":"28609:1:101","nodeType":"YulIdentifier","src":"28609:1:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"28593:15:101","nodeType":"YulIdentifier","src":"28593:15:101"},"nativeSrc":"28593:18:101","nodeType":"YulFunctionCall","src":"28593:18:101"},"variableNames":[{"name":"x","nativeSrc":"28588:1:101","nodeType":"YulIdentifier","src":"28588:1:101"}]},{"nativeSrc":"28620:23:101","nodeType":"YulAssignment","src":"28620:23:101","value":{"arguments":[{"name":"y","nativeSrc":"28641:1:101","nodeType":"YulIdentifier","src":"28641:1:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"28625:15:101","nodeType":"YulIdentifier","src":"28625:15:101"},"nativeSrc":"28625:18:101","nodeType":"YulFunctionCall","src":"28625:18:101"},"variableNames":[{"name":"y","nativeSrc":"28620:1:101","nodeType":"YulIdentifier","src":"28620:1:101"}]},{"nativeSrc":"28652:17:101","nodeType":"YulAssignment","src":"28652:17:101","value":{"arguments":[{"name":"x","nativeSrc":"28664:1:101","nodeType":"YulIdentifier","src":"28664:1:101"},{"name":"y","nativeSrc":"28667:1:101","nodeType":"YulIdentifier","src":"28667:1:101"}],"functionName":{"name":"sub","nativeSrc":"28660:3:101","nodeType":"YulIdentifier","src":"28660:3:101"},"nativeSrc":"28660:9:101","nodeType":"YulFunctionCall","src":"28660:9:101"},"variableNames":[{"name":"diff","nativeSrc":"28652:4:101","nodeType":"YulIdentifier","src":"28652:4:101"}]},{"body":{"nativeSrc":"28697:22:101","nodeType":"YulBlock","src":"28697:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28699:16:101","nodeType":"YulIdentifier","src":"28699:16:101"},"nativeSrc":"28699:18:101","nodeType":"YulFunctionCall","src":"28699:18:101"},"nativeSrc":"28699:18:101","nodeType":"YulExpressionStatement","src":"28699:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"28685:4:101","nodeType":"YulIdentifier","src":"28685:4:101"},{"kind":"number","nativeSrc":"28691:4:101","nodeType":"YulLiteral","src":"28691:4:101","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"28682:2:101","nodeType":"YulIdentifier","src":"28682:2:101"},"nativeSrc":"28682:14:101","nodeType":"YulFunctionCall","src":"28682:14:101"},"nativeSrc":"28679:40:101","nodeType":"YulIf","src":"28679:40:101"}]},"name":"checked_sub_t_uint8","nativeSrc":"28535:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28564:1:101","nodeType":"YulTypedName","src":"28564:1:101","type":""},{"name":"y","nativeSrc":"28567:1:101","nodeType":"YulTypedName","src":"28567:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"28573:4:101","nodeType":"YulTypedName","src":"28573:4:101","type":""}],"src":"28535:191:101"},{"body":{"nativeSrc":"28838:76:101","nodeType":"YulBlock","src":"28838:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"28860:6:101","nodeType":"YulIdentifier","src":"28860:6:101"},{"kind":"number","nativeSrc":"28868:1:101","nodeType":"YulLiteral","src":"28868:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28856:3:101","nodeType":"YulIdentifier","src":"28856:3:101"},"nativeSrc":"28856:14:101","nodeType":"YulFunctionCall","src":"28856:14:101"},{"hexValue":"636861696e6c696e6b207072696365206d75737420626520706f736974697665","kind":"string","nativeSrc":"28872:34:101","nodeType":"YulLiteral","src":"28872:34:101","type":"","value":"chainlink price must be positive"}],"functionName":{"name":"mstore","nativeSrc":"28849:6:101","nodeType":"YulIdentifier","src":"28849:6:101"},"nativeSrc":"28849:58:101","nodeType":"YulFunctionCall","src":"28849:58:101"},"nativeSrc":"28849:58:101","nodeType":"YulExpressionStatement","src":"28849:58:101"}]},"name":"store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444","nativeSrc":"28732:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"28830:6:101","nodeType":"YulTypedName","src":"28830:6:101","type":""}],"src":"28732:182:101"},{"body":{"nativeSrc":"29066:220:101","nodeType":"YulBlock","src":"29066:220:101","statements":[{"nativeSrc":"29076:74:101","nodeType":"YulAssignment","src":"29076:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"29142:3:101","nodeType":"YulIdentifier","src":"29142:3:101"},{"kind":"number","nativeSrc":"29147:2:101","nodeType":"YulLiteral","src":"29147:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29083:58:101","nodeType":"YulIdentifier","src":"29083:58:101"},"nativeSrc":"29083:67:101","nodeType":"YulFunctionCall","src":"29083:67:101"},"variableNames":[{"name":"pos","nativeSrc":"29076:3:101","nodeType":"YulIdentifier","src":"29076:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"29248:3:101","nodeType":"YulIdentifier","src":"29248:3:101"}],"functionName":{"name":"store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444","nativeSrc":"29159:88:101","nodeType":"YulIdentifier","src":"29159:88:101"},"nativeSrc":"29159:93:101","nodeType":"YulFunctionCall","src":"29159:93:101"},"nativeSrc":"29159:93:101","nodeType":"YulExpressionStatement","src":"29159:93:101"},{"nativeSrc":"29261:19:101","nodeType":"YulAssignment","src":"29261:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"29272:3:101","nodeType":"YulIdentifier","src":"29272:3:101"},{"kind":"number","nativeSrc":"29277:2:101","nodeType":"YulLiteral","src":"29277:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29268:3:101","nodeType":"YulIdentifier","src":"29268:3:101"},"nativeSrc":"29268:12:101","nodeType":"YulFunctionCall","src":"29268:12:101"},"variableNames":[{"name":"end","nativeSrc":"29261:3:101","nodeType":"YulIdentifier","src":"29261:3:101"}]}]},"name":"abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack","nativeSrc":"28920:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29054:3:101","nodeType":"YulTypedName","src":"29054:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29062:3:101","nodeType":"YulTypedName","src":"29062:3:101","type":""}],"src":"28920:366:101"},{"body":{"nativeSrc":"29463:248:101","nodeType":"YulBlock","src":"29463:248:101","statements":[{"nativeSrc":"29473:26:101","nodeType":"YulAssignment","src":"29473:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"29485:9:101","nodeType":"YulIdentifier","src":"29485:9:101"},{"kind":"number","nativeSrc":"29496:2:101","nodeType":"YulLiteral","src":"29496:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29481:3:101","nodeType":"YulIdentifier","src":"29481:3:101"},"nativeSrc":"29481:18:101","nodeType":"YulFunctionCall","src":"29481:18:101"},"variableNames":[{"name":"tail","nativeSrc":"29473:4:101","nodeType":"YulIdentifier","src":"29473:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29520:9:101","nodeType":"YulIdentifier","src":"29520:9:101"},{"kind":"number","nativeSrc":"29531:1:101","nodeType":"YulLiteral","src":"29531:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29516:3:101","nodeType":"YulIdentifier","src":"29516:3:101"},"nativeSrc":"29516:17:101","nodeType":"YulFunctionCall","src":"29516:17:101"},{"arguments":[{"name":"tail","nativeSrc":"29539:4:101","nodeType":"YulIdentifier","src":"29539:4:101"},{"name":"headStart","nativeSrc":"29545:9:101","nodeType":"YulIdentifier","src":"29545:9:101"}],"functionName":{"name":"sub","nativeSrc":"29535:3:101","nodeType":"YulIdentifier","src":"29535:3:101"},"nativeSrc":"29535:20:101","nodeType":"YulFunctionCall","src":"29535:20:101"}],"functionName":{"name":"mstore","nativeSrc":"29509:6:101","nodeType":"YulIdentifier","src":"29509:6:101"},"nativeSrc":"29509:47:101","nodeType":"YulFunctionCall","src":"29509:47:101"},"nativeSrc":"29509:47:101","nodeType":"YulExpressionStatement","src":"29509:47:101"},{"nativeSrc":"29565:139:101","nodeType":"YulAssignment","src":"29565:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"29699:4:101","nodeType":"YulIdentifier","src":"29699:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack","nativeSrc":"29573:124:101","nodeType":"YulIdentifier","src":"29573:124:101"},"nativeSrc":"29573:131:101","nodeType":"YulFunctionCall","src":"29573:131:101"},"variableNames":[{"name":"tail","nativeSrc":"29565:4:101","nodeType":"YulIdentifier","src":"29565:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29292:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29443:9:101","nodeType":"YulTypedName","src":"29443:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29458:4:101","nodeType":"YulTypedName","src":"29458:4:101","type":""}],"src":"29292:419:101"},{"body":{"nativeSrc":"29823:72:101","nodeType":"YulBlock","src":"29823:72:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"29845:6:101","nodeType":"YulIdentifier","src":"29845:6:101"},{"kind":"number","nativeSrc":"29853:1:101","nodeType":"YulLiteral","src":"29853:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29841:3:101","nodeType":"YulIdentifier","src":"29841:3:101"},"nativeSrc":"29841:14:101","nodeType":"YulFunctionCall","src":"29841:14:101"},{"hexValue":"757064617465644174206578636565647320626c6f636b2074696d65","kind":"string","nativeSrc":"29857:30:101","nodeType":"YulLiteral","src":"29857:30:101","type":"","value":"updatedAt exceeds block time"}],"functionName":{"name":"mstore","nativeSrc":"29834:6:101","nodeType":"YulIdentifier","src":"29834:6:101"},"nativeSrc":"29834:54:101","nodeType":"YulFunctionCall","src":"29834:54:101"},"nativeSrc":"29834:54:101","nodeType":"YulExpressionStatement","src":"29834:54:101"}]},"name":"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","nativeSrc":"29717:178:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"29815:6:101","nodeType":"YulTypedName","src":"29815:6:101","type":""}],"src":"29717:178:101"},{"body":{"nativeSrc":"30047:220:101","nodeType":"YulBlock","src":"30047:220:101","statements":[{"nativeSrc":"30057:74:101","nodeType":"YulAssignment","src":"30057:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"30123:3:101","nodeType":"YulIdentifier","src":"30123:3:101"},{"kind":"number","nativeSrc":"30128:2:101","nodeType":"YulLiteral","src":"30128:2:101","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"30064:58:101","nodeType":"YulIdentifier","src":"30064:58:101"},"nativeSrc":"30064:67:101","nodeType":"YulFunctionCall","src":"30064:67:101"},"variableNames":[{"name":"pos","nativeSrc":"30057:3:101","nodeType":"YulIdentifier","src":"30057:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"30229:3:101","nodeType":"YulIdentifier","src":"30229:3:101"}],"functionName":{"name":"store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e","nativeSrc":"30140:88:101","nodeType":"YulIdentifier","src":"30140:88:101"},"nativeSrc":"30140:93:101","nodeType":"YulFunctionCall","src":"30140:93:101"},"nativeSrc":"30140:93:101","nodeType":"YulExpressionStatement","src":"30140:93:101"},{"nativeSrc":"30242:19:101","nodeType":"YulAssignment","src":"30242:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"30253:3:101","nodeType":"YulIdentifier","src":"30253:3:101"},{"kind":"number","nativeSrc":"30258:2:101","nodeType":"YulLiteral","src":"30258:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30249:3:101","nodeType":"YulIdentifier","src":"30249:3:101"},"nativeSrc":"30249:12:101","nodeType":"YulFunctionCall","src":"30249:12:101"},"variableNames":[{"name":"end","nativeSrc":"30242:3:101","nodeType":"YulIdentifier","src":"30242:3:101"}]}]},"name":"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack","nativeSrc":"29901:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30035:3:101","nodeType":"YulTypedName","src":"30035:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30043:3:101","nodeType":"YulTypedName","src":"30043:3:101","type":""}],"src":"29901:366:101"},{"body":{"nativeSrc":"30444:248:101","nodeType":"YulBlock","src":"30444:248:101","statements":[{"nativeSrc":"30454:26:101","nodeType":"YulAssignment","src":"30454:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"30466:9:101","nodeType":"YulIdentifier","src":"30466:9:101"},{"kind":"number","nativeSrc":"30477:2:101","nodeType":"YulLiteral","src":"30477:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30462:3:101","nodeType":"YulIdentifier","src":"30462:3:101"},"nativeSrc":"30462:18:101","nodeType":"YulFunctionCall","src":"30462:18:101"},"variableNames":[{"name":"tail","nativeSrc":"30454:4:101","nodeType":"YulIdentifier","src":"30454:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30501:9:101","nodeType":"YulIdentifier","src":"30501:9:101"},{"kind":"number","nativeSrc":"30512:1:101","nodeType":"YulLiteral","src":"30512:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30497:3:101","nodeType":"YulIdentifier","src":"30497:3:101"},"nativeSrc":"30497:17:101","nodeType":"YulFunctionCall","src":"30497:17:101"},{"arguments":[{"name":"tail","nativeSrc":"30520:4:101","nodeType":"YulIdentifier","src":"30520:4:101"},{"name":"headStart","nativeSrc":"30526:9:101","nodeType":"YulIdentifier","src":"30526:9:101"}],"functionName":{"name":"sub","nativeSrc":"30516:3:101","nodeType":"YulIdentifier","src":"30516:3:101"},"nativeSrc":"30516:20:101","nodeType":"YulFunctionCall","src":"30516:20:101"}],"functionName":{"name":"mstore","nativeSrc":"30490:6:101","nodeType":"YulIdentifier","src":"30490:6:101"},"nativeSrc":"30490:47:101","nodeType":"YulFunctionCall","src":"30490:47:101"},"nativeSrc":"30490:47:101","nodeType":"YulExpressionStatement","src":"30490:47:101"},{"nativeSrc":"30546:139:101","nodeType":"YulAssignment","src":"30546:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"30680:4:101","nodeType":"YulIdentifier","src":"30680:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack","nativeSrc":"30554:124:101","nodeType":"YulIdentifier","src":"30554:124:101"},"nativeSrc":"30554:131:101","nodeType":"YulFunctionCall","src":"30554:131:101"},"variableNames":[{"name":"tail","nativeSrc":"30546:4:101","nodeType":"YulIdentifier","src":"30546:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30273:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30424:9:101","nodeType":"YulTypedName","src":"30424:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30439:4:101","nodeType":"YulTypedName","src":"30439:4:101","type":""}],"src":"30273:419:101"},{"body":{"nativeSrc":"30804:67:101","nodeType":"YulBlock","src":"30804:67:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"30826:6:101","nodeType":"YulIdentifier","src":"30826:6:101"},{"kind":"number","nativeSrc":"30834:1:101","nodeType":"YulLiteral","src":"30834:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30822:3:101","nodeType":"YulIdentifier","src":"30822:3:101"},"nativeSrc":"30822:14:101","nodeType":"YulFunctionCall","src":"30822:14:101"},{"hexValue":"636861696e6c696e6b2070726963652065787069726564","kind":"string","nativeSrc":"30838:25:101","nodeType":"YulLiteral","src":"30838:25:101","type":"","value":"chainlink price expired"}],"functionName":{"name":"mstore","nativeSrc":"30815:6:101","nodeType":"YulIdentifier","src":"30815:6:101"},"nativeSrc":"30815:49:101","nodeType":"YulFunctionCall","src":"30815:49:101"},"nativeSrc":"30815:49:101","nodeType":"YulExpressionStatement","src":"30815:49:101"}]},"name":"store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb","nativeSrc":"30698:173:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"30796:6:101","nodeType":"YulTypedName","src":"30796:6:101","type":""}],"src":"30698:173:101"},{"body":{"nativeSrc":"31023:220:101","nodeType":"YulBlock","src":"31023:220:101","statements":[{"nativeSrc":"31033:74:101","nodeType":"YulAssignment","src":"31033:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"31099:3:101","nodeType":"YulIdentifier","src":"31099:3:101"},{"kind":"number","nativeSrc":"31104:2:101","nodeType":"YulLiteral","src":"31104:2:101","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"31040:58:101","nodeType":"YulIdentifier","src":"31040:58:101"},"nativeSrc":"31040:67:101","nodeType":"YulFunctionCall","src":"31040:67:101"},"variableNames":[{"name":"pos","nativeSrc":"31033:3:101","nodeType":"YulIdentifier","src":"31033:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"31205:3:101","nodeType":"YulIdentifier","src":"31205:3:101"}],"functionName":{"name":"store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb","nativeSrc":"31116:88:101","nodeType":"YulIdentifier","src":"31116:88:101"},"nativeSrc":"31116:93:101","nodeType":"YulFunctionCall","src":"31116:93:101"},"nativeSrc":"31116:93:101","nodeType":"YulExpressionStatement","src":"31116:93:101"},{"nativeSrc":"31218:19:101","nodeType":"YulAssignment","src":"31218:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"31229:3:101","nodeType":"YulIdentifier","src":"31229:3:101"},{"kind":"number","nativeSrc":"31234:2:101","nodeType":"YulLiteral","src":"31234:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31225:3:101","nodeType":"YulIdentifier","src":"31225:3:101"},"nativeSrc":"31225:12:101","nodeType":"YulFunctionCall","src":"31225:12:101"},"variableNames":[{"name":"end","nativeSrc":"31218:3:101","nodeType":"YulIdentifier","src":"31218:3:101"}]}]},"name":"abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack","nativeSrc":"30877:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31011:3:101","nodeType":"YulTypedName","src":"31011:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31019:3:101","nodeType":"YulTypedName","src":"31019:3:101","type":""}],"src":"30877:366:101"},{"body":{"nativeSrc":"31420:248:101","nodeType":"YulBlock","src":"31420:248:101","statements":[{"nativeSrc":"31430:26:101","nodeType":"YulAssignment","src":"31430:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"31442:9:101","nodeType":"YulIdentifier","src":"31442:9:101"},{"kind":"number","nativeSrc":"31453:2:101","nodeType":"YulLiteral","src":"31453:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31438:3:101","nodeType":"YulIdentifier","src":"31438:3:101"},"nativeSrc":"31438:18:101","nodeType":"YulFunctionCall","src":"31438:18:101"},"variableNames":[{"name":"tail","nativeSrc":"31430:4:101","nodeType":"YulIdentifier","src":"31430:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31477:9:101","nodeType":"YulIdentifier","src":"31477:9:101"},{"kind":"number","nativeSrc":"31488:1:101","nodeType":"YulLiteral","src":"31488:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31473:3:101","nodeType":"YulIdentifier","src":"31473:3:101"},"nativeSrc":"31473:17:101","nodeType":"YulFunctionCall","src":"31473:17:101"},{"arguments":[{"name":"tail","nativeSrc":"31496:4:101","nodeType":"YulIdentifier","src":"31496:4:101"},{"name":"headStart","nativeSrc":"31502:9:101","nodeType":"YulIdentifier","src":"31502:9:101"}],"functionName":{"name":"sub","nativeSrc":"31492:3:101","nodeType":"YulIdentifier","src":"31492:3:101"},"nativeSrc":"31492:20:101","nodeType":"YulFunctionCall","src":"31492:20:101"}],"functionName":{"name":"mstore","nativeSrc":"31466:6:101","nodeType":"YulIdentifier","src":"31466:6:101"},"nativeSrc":"31466:47:101","nodeType":"YulFunctionCall","src":"31466:47:101"},"nativeSrc":"31466:47:101","nodeType":"YulExpressionStatement","src":"31466:47:101"},{"nativeSrc":"31522:139:101","nodeType":"YulAssignment","src":"31522:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"31656:4:101","nodeType":"YulIdentifier","src":"31656:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack","nativeSrc":"31530:124:101","nodeType":"YulIdentifier","src":"31530:124:101"},"nativeSrc":"31530:131:101","nodeType":"YulFunctionCall","src":"31530:131:101"},"variableNames":[{"name":"tail","nativeSrc":"31522:4:101","nodeType":"YulIdentifier","src":"31522:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31249:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31400:9:101","nodeType":"YulTypedName","src":"31400:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31415:4:101","nodeType":"YulTypedName","src":"31415:4:101","type":""}],"src":"31249:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    // struct ChainlinkOracle.TokenConfig\n    function abi_decode_t_struct$_TokenConfig_$4703_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // asset\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // feed\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // maxStalePeriod\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct ChainlinkOracle.TokenConfig[]\n    function abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(length))\n        let dst := array\n\n        mstore(array, length)\n        dst := add(array, 0x20)\n\n        let srcEnd := add(offset, mul(length, 0x60))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x60) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_struct$_TokenConfig_$4703_memory_ptr(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // struct ChainlinkOracle.TokenConfig[]\n    function abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_array$_t_struct$_TokenConfig_$4703_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_decode_tuple_t_struct$_TokenConfig_$4703_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_TokenConfig_$4703_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_AggregatorV3Interface_$102_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_AggregatorV3Interface_$102_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_AggregatorV3Interface_$102_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_AggregatorV3Interface_$102__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_AggregatorV3Interface_$102_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed(memPtr) {\n\n        mstore(add(memPtr, 0), \"length can't be 0\")\n\n    }\n\n    function abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n        store_literal_in_memory_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2bcde6d36e25ff80edf1e7b323425b7fef87f9e0a4cccb1475b35b230048c1ed_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(memPtr) {\n\n        mstore(add(memPtr, 0), \"can't be zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4793c2d6e615a200d995dd9ad0db45f00df0789bc148a42df7526d2509d0f296_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134(memPtr) {\n\n        mstore(add(memPtr, 0), \"stale period can't be zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cac79e17bea0e9553ff8067e0a192973f4cb0a54c912cae04cb23b5415268134_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b(memPtr) {\n\n        mstore(add(memPtr, 0), \"L2 sequencer unavailable\")\n\n    }\n\n    function abi_encode_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n        store_literal_in_memory_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7c14f51511b1ee04a4e6d8b2d65581316cad77df9fa9a3edbbef03645d922f0b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid acess control manager ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_uint80(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint80(value) {\n        if iszero(eq(value, cleanup_t_uint80(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint80_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint80(value)\n    }\n\n    function cleanup_t_int256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_int256(value) {\n        if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_int256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_int256(value)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint80t_int256t_uint256t_uint256t_uint80_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint80_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_int256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint80_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function checked_sub_t_uint8(x, y) -> diff {\n        x := cleanup_t_uint8(x)\n        y := cleanup_t_uint8(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xff) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444(memPtr) {\n\n        mstore(add(memPtr, 0), \"chainlink price must be positive\")\n\n    }\n\n    function abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2f70a6b88148e8cf0f43daa3652b8e9be173382f12829f57921d4fb38cdd6444_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e(memPtr) {\n\n        mstore(add(memPtr, 0), \"updatedAt exceeds block time\")\n\n    }\n\n    function abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_76ddd7b80d9c82eb38af9166e15d7ff6eb106bb126c2a0aefbdc4e2a1ecf1d3e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb(memPtr) {\n\n        mstore(add(memPtr, 0), \"chainlink price expired\")\n\n    }\n\n    function abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n        store_literal_in_memory_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_6374ec0737c6662214c5eac22f724c9fe989f2e563ffd13276f420a64bd6efeb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5825":[{"length":32,"start":464},{"length":32,"start":2097}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610106575f3560e01c806379ba50971161009e578063c4d66de81161006e578063c4d66de814610255578063cfed246b14610268578063e30c397814610287578063ed2f860314610298578063f2fde38b146102a1575f80fd5b806379ba5097146102075780638da5cb5b1461020f578063a9534f8a14610229578063b4a0bdf314610244575f80fd5b8063392787d2116100d9578063392787d21461019857806341976e09146101ab5780635c1bba38146101cb578063715018a6146101ff575f80fd5b80630431710e1461010a57806309a8acb01461011f5780630e32cb86146101325780631b69dc5f14610145575b5f80fd5b61011d610118366004610e93565b6102b4565b005b61011d61012d366004610ecb565b610318565b61011d610140366004610f05565b6103de565b610180610153366004610f05565b60ca6020525f90815260409020805460018201546002909201546001600160a01b03918216929091169083565b60405161018f93929190610f38565b60405180910390f35b61011d6101a6366004610f60565b6103f2565b6101be6101b9366004610f05565b61053a565b60405161018f9190610f7e565b6101f27f000000000000000000000000000000000000000000000000000000000000000081565b60405161018f9190610fa9565b61011d61056e565b61011d610581565b6033546001600160a01b03165b60405161018f9190610fb7565b61021c73bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6097546001600160a01b03166101f2565b61011d610263366004610f05565b6105b6565b6101be610276366004610f05565b60c96020525f908152604090205481565b6065546001600160a01b031661021c565b6101be610e1081565b61011d6102af366004610f05565b610681565b80515f036102dd5760405162461bcd60e51b81526004016102d490610fef565b60405180910390fd5b80515f5b818110156103135761030b8382815181106102fe576102fe610fff565b60200260200101516103f2565b6001016102e1565b505050565b816001600160a01b03811661033f5760405162461bcd60e51b81526004016102d49061103e565b61037d6040518060400160405280601f81526020017f736574446972656374507269636528616464726573732c75696e7432353629008152506106f2565b6001600160a01b0383165f81815260c960205260409081902080549085905590519091907fa0844d44570b5ec5ac55e9e7d1e7fc8149b4f33b4b61f3c8fc08bacce058faee906103d0908490879061104e565b60405180910390a250505050565b6103e6610789565b6103ef816107b3565b50565b80516001600160a01b03811661041a5760405162461bcd60e51b81526004016102d49061103e565b60208201516001600160a01b0381166104455760405162461bcd60e51b81526004016102d49061103e565b6104836040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e6669672900000000008152506106f2565b82604001515f036104a65760405162461bcd60e51b81526004016102d49061109c565b82516001600160a01b039081165f90815260ca6020908152604091829020865181549085166001600160a01b0319918216811783559288015160018301805496821696909216959095179055828701516002909101819055915190927f3cc8d9cb9370a23a8b9ffa75efa24cecb65c4693980e58260841adc474983c5f9261052d926110ac565b60405180910390a2505050565b5f61054361082c565b61055f5760405162461bcd60e51b81526004016102d4906110ed565b610568826108e8565b92915050565b610576610789565b61057f5f610993565b565b60655433906001600160a01b031681146105ad5760405162461bcd60e51b81526004016102d490611145565b6103ef81610993565b5f54610100900460ff16158080156105d457505f54600160ff909116105b806105ed5750303b1580156105ed57505f5460ff166001145b6106095760405162461bcd60e51b81526004016102d49061119f565b5f805460ff19166001179055801561062a575f805461ff0019166101001790555b610633826109ac565b801561067d575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610674906001906111c2565b60405180910390a15b5050565b610689610789565b606580546001600160a01b0383166001600160a01b031990911681179091556106ba6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6097546040516318c5e8ab60e01b81525f916001600160a01b0316906318c5e8ab90610724903390869060040161120c565b602060405180830381865afa15801561073f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610763919061123f565b90508061067d57333083604051634a3fa29360e01b81526004016102d49392919061125d565b6033546001600160a01b0316331461057f5760405162461bcd60e51b81526004016102d4906112bb565b6001600160a01b0381166107d95760405162461bcd60e51b81526004016102d49061130c565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610674908390859061131c565b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561088b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108af919061135f565b50509250925050610e1081426108c591906113e6565b1115806108d25750816001145b156108df575f9250505090565b60019250505090565b5f8073bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba196001600160a01b0384160161091757506012610982565b5f839050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610957573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097b919061140d565b60ff169150505b61098c83826109e3565b9392505050565b606580546001600160a01b03191690556103ef81610a41565b5f54610100900460ff166109d25760405162461bcd60e51b81526004016102d490611472565b6109da610a92565b6103ef81610ac0565b6001600160a01b0382165f90815260c960205260408120548015610a0957809150610a15565b610a1284610ae6565b91505b5f610a218460126113e6565b9050610a2e81600a61158e565b610a38908461159b565b95945050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16610ab85760405162461bcd60e51b81526004016102d490611472565b61057f610cc1565b5f54610100900460ff166103e65760405162461bcd60e51b81526004016102d490611472565b6001600160a01b038082165f90815260ca602052604081205490911680610b1f5760405162461bcd60e51b81526004016102d49061103e565b6001600160a01b038084165f90815260ca6020908152604080832081516060810183528154861681526001820154909516858401819052600290910154858301819052825163313ce56760e01b81529251919490939092859263313ce567926004808401939192918290030181865afa158015610b9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc2919061140d565b610bcd9060126115ba565b60ff1690505f80846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610c10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c34919061135f565b509350509250505f8213610c5a5760405162461bcd60e51b81526004016102d490611608565b80421015610c7a5760405162461bcd60e51b81526004016102d49061164b565b4281900384811115610c9e5760405162461bcd60e51b81526004016102d49061168e565b610ca984600a61158e565b610cb3908461159b565b9a9950505050505050505050565b5f54610100900460ff16610ce75760405162461bcd60e51b81526004016102d490611472565b61057f33610993565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610d2a57610d2a610cf0565b6040525050565b5f610d3b60405190565b9050610d478282610d04565b919050565b5f67ffffffffffffffff821115610d6557610d65610cf0565b5060209081020190565b5f6001600160a01b038216610568565b610d8881610d6f565b81146103ef575f80fd5b803561056881610d7f565b80610d88565b803561056881610d9d565b5f60608284031215610dc157610dc15f80fd5b610dcb6060610d31565b90505f610dd88484610d92565b8252506020610de984848301610d92565b6020830152506040610dfd84828501610da3565b60408301525092915050565b5f610e1b610e1684610d4c565b610d31565b83815290506020810160608402830185811115610e3957610e395f80fd5b835b81811015610e5f5780610e4e8882610dae565b845250602090920191606001610e3b565b5050509392505050565b5f82601f830112610e7b57610e7b5f80fd5b8135610e8b848260208601610e09565b949350505050565b5f60208284031215610ea657610ea65f80fd5b813567ffffffffffffffff811115610ebf57610ebf5f80fd5b610e8b84828501610e69565b5f8060408385031215610edf57610edf5f80fd5b5f610eea8585610d92565b9250506020610efb85828601610da3565b9150509250929050565b5f60208284031215610f1857610f185f80fd5b5f610e8b8484610d92565b610f2c81610d6f565b82525050565b80610f2c565b60608101610f468286610f23565b610f536020830185610f23565b610e8b6040830184610f32565b5f60608284031215610f7357610f735f80fd5b5f610e8b8484610dae565b602081016105688284610f32565b5f61056882610d6f565b5f61056882610f8c565b610f2c81610f96565b602081016105688284610fa0565b602081016105688284610f23565b601181525f602082017006c656e6774682063616e2774206265203607c1b815291505b5060200190565b6020808252810161056881610fc5565b634e487b7160e01b5f52603260045260245ffd5b601581525f602082017463616e2774206265207a65726f206164647265737360581b81529150610fe8565b6020808252810161056881611013565b6040810161105c8285610f32565b61098c6020830184610f32565b601a81525f602082017f7374616c6520706572696f642063616e2774206265207a65726f00000000000081529150610fe8565b6020808252810161056881611069565b6040810161105c8285610f23565b601881525f602082017f4c322073657175656e63657220756e617661696c61626c65000000000000000081529150610fe8565b60208082528101610568816110ba565b602981525f602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b60208082528101610568816110fd565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b6020820152915061113e565b6020808252810161056881611155565b5f60ff8216610568565b610f2c816111af565b6020810161056882846111b9565b8281835e505f910152565b5f6111e4825190565b8084526020840193506111fb8185602086016111d0565b601f01601f19169290920192915050565b6040810161121a8285610f23565b8181036020830152610e8b81846111db565b801515610d88565b80516105688161122c565b5f60208284031215611252576112525f80fd5b5f610e8b8484611234565b6060810161126b8286610f23565b6112786020830185610f23565b8181036040830152610a3881846111db565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610fe8565b602080825281016105688161128a565b602581525f602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061113e565b60208082528101610568816112cb565b6040810161132a8285610f23565b61098c6020830184610f23565b69ffffffffffffffffffff8116610d88565b805161056881611337565b805161056881610d9d565b5f805f805f60a08688031215611376576113765f80fd5b5f6113818888611349565b955050602061139288828901611354565b94505060406113a388828901611354565b93505060606113b488828901611354565b92505060806113c588828901611349565b9150509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610568576105686113d2565b60ff8116610d88565b8051610568816113f9565b5f60208284031215611420576114205f80fd5b5f610e8b8484611402565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061113e565b602080825281016105688161142b565b80825b60018511156114c1578086048111156114a0576114a06113d2565b60018516156114ae57908102905b80026114ba8560011c90565b9450611485565b94509492505050565b5f826114d85750600161098c565b816114e457505f61098c565b81600181146114fa576002811461150457611531565b600191505061098c565b60ff841115611515576115156113d2565b8360020a91508482111561152b5761152b6113d2565b5061098c565b5060208310610133831016604e8410600b8410161715611564575081810a8381111561155f5761155f6113d2565b61098c565b6115718484846001611482565b92509050818404811115611587576115876113d2565b0292915050565b5f61098c5f1984846114ca565b8181028082158382048514176115b3576115b36113d2565b5092915050565b60ff918216919081169082820390811115610568576105686113d2565b60208082527f636861696e6c696e6b207072696365206d75737420626520706f73697469766591019081525f610fe8565b60208082528101610568816115d7565b601c81525f602082017f757064617465644174206578636565647320626c6f636b2074696d650000000081529150610fe8565b6020808252810161056881611618565b601781525f602082017f636861696e6c696e6b207072696365206578706972656400000000000000000081529150610fe8565b602080825281016105688161165b56fea2646970667358221220e39bd41ebe25c13a22bacd86e087a69771fd8673e3645e265210555b7293cc5464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x287 JUMPI DUP1 PUSH4 0xED2F8603 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2A1 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x20F JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x244 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x392787D2 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x392787D2 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0x5C1BBA38 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1FF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x431710E EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x9A8ACB0 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x1B69DC5F EQ PUSH2 0x145 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D PUSH2 0x118 CALLDATASIZE PUSH1 0x4 PUSH2 0xE93 JUMP JUMPDEST PUSH2 0x2B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0xECB JUMP JUMPDEST PUSH2 0x318 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x140 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x3DE JUMP JUMPDEST PUSH2 0x180 PUSH2 0x153 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF38 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11D PUSH2 0x1A6 CALLDATASIZE PUSH1 0x4 PUSH2 0xF60 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x53A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xF7E JUMP JUMPDEST PUSH2 0x1F2 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xFA9 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x56E JUMP JUMPDEST PUSH2 0x11D PUSH2 0x581 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x21C PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x263 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x5B6 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x276 CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x21C JUMP JUMPDEST PUSH2 0x1BE PUSH2 0xE10 DUP2 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x2AF CALLDATASIZE PUSH1 0x4 PUSH2 0xF05 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST DUP1 MLOAD PUSH0 SUB PUSH2 0x2DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0xFEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x313 JUMPI PUSH2 0x30B DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2FE JUMPI PUSH2 0x2FE PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2E1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x33F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH2 0x37D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574446972656374507269636528616464726573732C75696E743235362900 DUP2 MSTORE POP PUSH2 0x6F2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 DUP6 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xA0844D44570B5EC5AC55E9E7D1E7FC8149B4F33B4B61F3C8FC08BACCE058FAEE SWAP1 PUSH2 0x3D0 SWAP1 DUP5 SWAP1 DUP8 SWAP1 PUSH2 0x104E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x3E6 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x7B3 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x41A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x445 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH2 0x483 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574546F6B656E436F6E66696728546F6B656E436F6E666967290000000000 DUP2 MSTORE POP PUSH2 0x6F2 JUMP JUMPDEST DUP3 PUSH1 0x40 ADD MLOAD PUSH0 SUB PUSH2 0x4A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x109C JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP7 MLOAD DUP2 SLOAD SWAP1 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE SWAP3 DUP9 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP7 DUP3 AND SWAP7 SWAP1 SWAP3 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SSTORE DUP3 DUP8 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP2 SWAP1 SSTORE SWAP2 MLOAD SWAP1 SWAP3 PUSH32 0x3CC8D9CB9370A23A8B9FFA75EFA24CECB65C4693980E58260841ADC474983C5F SWAP3 PUSH2 0x52D SWAP3 PUSH2 0x10AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x543 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x55F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH2 0x568 DUP3 PUSH2 0x8E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x576 PUSH2 0x789 JUMP JUMPDEST PUSH2 0x57F PUSH0 PUSH2 0x993 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x5AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1145 JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x993 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x5D4 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x5ED JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5ED JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x609 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x62A JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x633 DUP3 PUSH2 0x9AC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x67D JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x674 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x11C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x689 PUSH2 0x789 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x6BA PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x724 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x120C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x763 SWAP2 SWAP1 PUSH2 0x123F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x67D JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x125D JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x12BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7D9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x130C JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0x674 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x131C JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8AF SWAP2 SWAP1 PUSH2 0x135F JUMP JUMPDEST POP POP SWAP3 POP SWAP3 POP POP PUSH2 0xE10 DUP2 TIMESTAMP PUSH2 0x8C5 SWAP2 SWAP1 PUSH2 0x13E6 JUMP JUMPDEST GT ISZERO DUP1 PUSH2 0x8D2 JUMPI POP DUP2 PUSH1 0x1 EQ JUMPDEST ISZERO PUSH2 0x8DF JUMPI PUSH0 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ADD PUSH2 0x917 JUMPI POP PUSH1 0x12 PUSH2 0x982 JUMP JUMPDEST PUSH0 DUP4 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x957 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x97B SWAP2 SWAP1 PUSH2 0x140D JUMP JUMPDEST PUSH1 0xFF AND SWAP2 POP POP JUMPDEST PUSH2 0x98C DUP4 DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x3EF DUP2 PUSH2 0xA41 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x9D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x9DA PUSH2 0xA92 JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0xAC0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0xA09 JUMPI DUP1 SWAP2 POP PUSH2 0xA15 JUMP JUMPDEST PUSH2 0xA12 DUP5 PUSH2 0xAE6 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH0 PUSH2 0xA21 DUP5 PUSH1 0x12 PUSH2 0x13E6 JUMP JUMPDEST SWAP1 POP PUSH2 0xA2E DUP2 PUSH1 0xA PUSH2 0x158E JUMP JUMPDEST PUSH2 0xA38 SWAP1 DUP5 PUSH2 0x159B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xAB8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x57F PUSH2 0xCC1 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND DUP1 PUSH2 0xB1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x103E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP7 AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP1 SWAP6 AND DUP6 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0x2 SWAP1 SWAP2 ADD SLOAD DUP6 DUP4 ADD DUP2 SWAP1 MSTORE DUP3 MLOAD PUSH4 0x313CE567 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP1 SWAP4 SWAP1 SWAP3 DUP6 SWAP3 PUSH4 0x313CE567 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xBC2 SWAP2 SWAP1 PUSH2 0x140D JUMP JUMPDEST PUSH2 0xBCD SWAP1 PUSH1 0x12 PUSH2 0x15BA JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC10 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0xC34 SWAP2 SWAP1 PUSH2 0x135F JUMP JUMPDEST POP SWAP4 POP POP SWAP3 POP POP PUSH0 DUP3 SGT PUSH2 0xC5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1608 JUMP JUMPDEST DUP1 TIMESTAMP LT ISZERO PUSH2 0xC7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x164B JUMP JUMPDEST TIMESTAMP DUP2 SWAP1 SUB DUP5 DUP2 GT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x168E JUMP JUMPDEST PUSH2 0xCA9 DUP5 PUSH1 0xA PUSH2 0x158E JUMP JUMPDEST PUSH2 0xCB3 SWAP1 DUP5 PUSH2 0x159B JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D4 SWAP1 PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x57F CALLER PUSH2 0x993 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD2A PUSH2 0xCF0 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xD3B PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xD47 DUP3 DUP3 PUSH2 0xD04 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xD65 JUMPI PUSH2 0xD65 PUSH2 0xCF0 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x568 JUMP JUMPDEST PUSH2 0xD88 DUP2 PUSH2 0xD6F JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x568 DUP2 PUSH2 0xD7F JUMP JUMPDEST DUP1 PUSH2 0xD88 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x568 DUP2 PUSH2 0xD9D JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH2 0xDC1 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xDCB PUSH1 0x60 PUSH2 0xD31 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDD8 DUP5 DUP5 PUSH2 0xD92 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0xDE9 DUP5 DUP5 DUP4 ADD PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xDFD DUP5 DUP3 DUP6 ADD PUSH2 0xDA3 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xE1B PUSH2 0xE16 DUP5 PUSH2 0xD4C JUMP JUMPDEST PUSH2 0xD31 JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x60 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xE39 JUMPI PUSH2 0xE39 PUSH0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xE5F JUMPI DUP1 PUSH2 0xE4E DUP9 DUP3 PUSH2 0xDAE JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 ADD PUSH2 0xE3B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE7B JUMPI PUSH2 0xE7B PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE8B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE09 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEA6 JUMPI PUSH2 0xEA6 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEBF JUMPI PUSH2 0xEBF PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xE8B DUP5 DUP3 DUP6 ADD PUSH2 0xE69 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEDF JUMPI PUSH2 0xEDF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xEEA DUP6 DUP6 PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEFB DUP6 DUP3 DUP7 ADD PUSH2 0xDA3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF18 JUMPI PUSH2 0xF18 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0xD92 JUMP JUMPDEST PUSH2 0xF2C DUP2 PUSH2 0xD6F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST DUP1 PUSH2 0xF2C JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xF46 DUP3 DUP7 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0xF53 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0xE8B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF32 JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF73 JUMPI PUSH2 0xF73 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0xDAE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0xF32 JUMP JUMPDEST PUSH0 PUSH2 0x568 DUP3 PUSH2 0xD6F JUMP JUMPDEST PUSH0 PUSH2 0x568 DUP3 PUSH2 0xF8C JUMP JUMPDEST PUSH2 0xF2C DUP2 PUSH2 0xF96 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0xFA0 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH17 0x6C656E6774682063616E2774206265203 PUSH1 0x7C SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0xFC5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH21 0x63616E2774206265207A65726F2061646472657373 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1013 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x105C DUP3 DUP6 PUSH2 0xF32 JUMP JUMPDEST PUSH2 0x98C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x7374616C6520706572696F642063616E2774206265207A65726F000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1069 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x105C DUP3 DUP6 PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C322073657175656E63657220756E617661696C61626C650000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x10BA JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x10FD JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x113E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1155 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x568 JUMP JUMPDEST PUSH2 0xF2C DUP2 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x568 DUP3 DUP5 PUSH2 0x11B9 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x11E4 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x11FB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x11D0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x121A DUP3 DUP6 PUSH2 0xF23 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xE8B DUP2 DUP5 PUSH2 0x11DB JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xD88 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0x122C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1252 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0x1234 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x126B DUP3 DUP7 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0x1278 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF23 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0xA38 DUP2 DUP5 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x128A JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x113E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x132A DUP3 DUP6 PUSH2 0xF23 JUMP JUMPDEST PUSH2 0x98C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF23 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xD88 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0x1337 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0xD9D JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1376 JUMPI PUSH2 0x1376 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1381 DUP9 DUP9 PUSH2 0x1349 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1392 DUP9 DUP3 DUP10 ADD PUSH2 0x1354 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x13A3 DUP9 DUP3 DUP10 ADD PUSH2 0x1354 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x13B4 DUP9 DUP3 DUP10 ADD PUSH2 0x1354 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x13C5 DUP9 DUP3 DUP10 ADD PUSH2 0x1349 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x13D2 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xD88 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x568 DUP2 PUSH2 0x13F9 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1420 JUMPI PUSH2 0x1420 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xE8B DUP5 DUP5 PUSH2 0x1402 JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x113E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x14C1 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x14A0 JUMPI PUSH2 0x14A0 PUSH2 0x13D2 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x14AE JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x14BA DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x1485 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x14D8 JUMPI POP PUSH1 0x1 PUSH2 0x98C JUMP JUMPDEST DUP2 PUSH2 0x14E4 JUMPI POP PUSH0 PUSH2 0x98C JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x14FA JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1504 JUMPI PUSH2 0x1531 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x98C JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x1515 JUMPI PUSH2 0x1515 PUSH2 0x13D2 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x152B JUMPI PUSH2 0x152B PUSH2 0x13D2 JUMP JUMPDEST POP PUSH2 0x98C JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x1564 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x155F JUMPI PUSH2 0x155F PUSH2 0x13D2 JUMP JUMPDEST PUSH2 0x98C JUMP JUMPDEST PUSH2 0x1571 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1482 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x1587 JUMPI PUSH2 0x1587 PUSH2 0x13D2 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x98C PUSH0 NOT DUP5 DUP5 PUSH2 0x14CA JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x15B3 JUMPI PUSH2 0x15B3 PUSH2 0x13D2 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 SUB SWAP1 DUP2 GT ISZERO PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x13D2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x636861696E6C696E6B207072696365206D75737420626520706F736974697665 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x15D7 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x757064617465644174206578636565647320626C6F636B2074696D6500000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x1618 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x636861696E6C696E6B2070726963652065787069726564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xFE8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x568 DUP2 PUSH2 0x165B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 SWAP12 0xD4 0x1E 0xBE 0x25 0xC1 GASPRICE 0x22 0xBA 0xCD DUP7 0xE0 DUP8 0xA6 SWAP8 PUSH18 0xFD8673E3645E265210555B7293CC5464736F PUSH13 0x63430008190033000000000000 ","sourceMap":"349:1345:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3281:309:51;;;;;;:::i;:::-;;:::i;:::-;;2727:306;;;;;;:::i;:::-;;:::i;2102:147:15:-;;;;;;:::i;:::-;;:::i;1504:51:51:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1504:51:51;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4159:446;;;;;;:::i;:::-;;:::i;1018:184:58:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;508:48::-;;;;;;;;;;;;:::i;2085:101:4:-;;;:::i;2031:212:3:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;;;;;;:::i;1213:86:51:-;;1257:42;1213:86;;2345:125:15;2442:21;;-1:-1:-1;;;;;2442:21:15;2345:125;;2314:135:51;;;;;;:::i;:::-;;:::i;1417:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1144:99:3;1223:13;;-1:-1:-1;;;;;1223:13:3;1144:99;;605:48:58;;649:4;605:48;;1436:178:3;;;;;;:::i;:::-;;:::i;3281:309:51:-;3365:13;:20;3389:1;3365:25;3361:58;;3392:27;;-1:-1:-1;;;3392:27:51;;;;;;;:::i;:::-;;;;;;;;3361:58;3455:20;;3429:23;3485:99;3505:15;3501:1;:19;3485:99;;;3541:32;3556:13;3570:1;3556:16;;;;;;;;:::i;:::-;;;;;;;3541:14;:32::i;:::-;3522:3;;3485:99;;;;3351:239;3281:309;:::o;2727:306::-;2805:5;-1:-1:-1;;;;;1911:21:51;;1907:58;;1934:31;;-1:-1:-1;;;1934:31:51;;;;;;;:::i;1907:58::-;2822:54:::1;;;;;;;;;;;;;;;;;::::0;:19:::1;:54::i;:::-;-1:-1:-1::0;;;;;2919:13:51;::::1;2887:29;2919:13:::0;;;:6:::1;:13;::::0;;;;;;;;2942:21;;;;2978:48;;2919:13;;;2978:48:::1;::::0;::::1;::::0;2919:13;;2958:5;;2978:48:::1;:::i;:::-;;;;;;;;2812:221;2727:306:::0;;;:::o;2102:147:15:-;1355:13:4;:11;:13::i;:::-;2195:47:15::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;4159:446:51:-;4251:17;;-1:-1:-1;;;;;1911:21:51;;1907:58;;1934:31;;-1:-1:-1;;;1934:31:51;;;;;;;:::i;1907:58::-;4285:16:::1;::::0;::::1;::::0;-1:-1:-1;;;;;1911:21:51;::::1;1907:58;;1934:31;;-1:-1:-1::0;;;1934:31:51::1;;;;;;;:::i;1907:58::-;4313:50:::2;;;;;;;;;;;;;;;;;::::0;:19:::2;:50::i;:::-;4378:11;:26;;;4408:1;4378:31:::0;4374:73:::2;;4411:36;;-1:-1:-1::0;;;4411:36:51::2;;;;;;;:::i;4374:73::-;4470:17:::0;;-1:-1:-1;;;;;4457:31:51;;::::2;;::::0;;;:12:::2;:31;::::0;;;;;;;;:45;;;;;;::::2;-1:-1:-1::0;;;;;;4457:45:51;;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;;;::::2;::::0;;;;::::2;::::0;::::2;::::0;;::::2;::::0;;;4517:81;;4457:45;;4517:81:::2;::::0;::::2;::::0;::::2;:::i;:::-;;;;;;;;1975:1:::1;4159:446:::0;;:::o;1018:184:58:-;1081:4;1102:19;:17;:19::i;:::-;1097:60;;1123:34;;-1:-1:-1;;;1123:34:58;;;;;;;:::i;1097:60::-;1174:21;1189:5;1174:14;:21::i;:::-;1167:28;1018:184;-1:-1:-1;;1018:184:58:o;2085:101:4:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2031:212:3:-;1223:13;;965:10:8;;-1:-1:-1;;;;;1223:13:3;2130:24;;2122:78;;;;-1:-1:-1;;;2122:78:3;;;;;;;:::i;:::-;2210:26;2229:6;2210:18;:26::i;2314:135:51:-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;2396:46:51::1;2420:21;2396:23;:46::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3647:99;3269:483;2314:135:51;:::o;1436:178:3:-;1355:13:4;:11;:13::i;:::-;1525::3::1;:24:::0;;-1:-1:-1;;;;;1525:24:3;::::1;-1:-1:-1::0;;;;;;1525:24:3;;::::1;::::0;::::1;::::0;;;1589:7:::1;1534:6:4::0;;-1:-1:-1;;;;;1534:6:4;;1462:85;1589:7:3::1;-1:-1:-1::0;;;;;1564:43:3::1;;;;;;;;;;;1436:178:::0;:::o;3203:282:15:-;3304:21;;:60;;-1:-1:-1;;;3304:60:15;;3281:20;;-1:-1:-1;;;;;3304:21:15;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;-1:-1:-1;;;3418:50:15;;;;;;;;;;:::i;1620:130:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2641:425:15:-;-1:-1:-1;;;;;2733:44:15;;2725:94;;;;-1:-1:-1;;;2725:94:15;;;;;;;:::i;:::-;2871:21;;;-1:-1:-1;;;;;2903:70:15;;;-1:-1:-1;;;;;;2903:70:15;;;;;;2988:71;;2871:21;;;2988:71;;;;2871:21;;2951;;2988:71;:::i;1208:484:58:-;1260:4;1506:13;1521:17;1546:9;-1:-1:-1;;;;;1546:25:58;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1503:70;;;;;;;649:4;1605:9;1587:15;:27;;;;:::i;:::-;:48;;:63;;;;1639:6;1649:1;1639:11;1587:63;1583:81;;;1659:5;1652:12;;;;1208:484;:::o;1583:81::-;1681:4;1674:11;;;;1208:484;:::o;4816:352:51:-;4878:7;;-1:-1:-1;;;;;;;4928:26:51;;;4924:186;;-1:-1:-1;4981:2:51;4924:186;;;5014:20;5052:5;5014:44;;5083:5;-1:-1:-1;;;;;5083:14:51;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5072:27;;;;5000:110;4924:186;5127:34;5145:5;5152:8;5127:17;:34::i;:::-;5120:41;4816:352;-1:-1:-1;;;4816:352:51:o;1798:153:3:-;1887:13;1880:20;;-1:-1:-1;;;;;;1880:20:3;;;1910:34;1935:8;1910:24;:34::i;1419:194:15:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1519:21:15::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;5411:378:51:-:0;-1:-1:-1;;;;;5540:13:51;;5494;5540;;;:6;:13;;;;;;5567:15;;5563:128;;5606:10;5598:18;;5563:128;;;5655:25;5674:5;5655:18;:25::i;:::-;5647:33;;5563:128;5701:20;5724:13;5729:8;5724:2;:13;:::i;:::-;5701:36;-1:-1:-1;5763:18:51;5701:36;5763:2;:18;:::i;:::-;5754:28;;:5;:28;:::i;:::-;5747:35;5411:378;-1:-1:-1;;;;;5411:378:51:o;2687:187:4:-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;889:100:3:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;956:26:3::1;:24;:26::i;1619:164:15:-:0;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;6549:985:51:-;-1:-1:-1;;;;;6634:19:51;;;6670:7;6634:19;;;:12;:19;;;;;:25;6670:7;;6634:25;;1907:58;;1934:31;;-1:-1:-1;;;1934:31:51;;;;;;;:::i;1907:58::-;-1:-1:-1;;;;;6722:19:51;;::::1;6689:30;6722:19:::0;;;:12:::1;:19;::::0;;;;;;;6689:52;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;7043:15;;-1:-1:-1;;;7043:15:51;;;;6689:52;;;;:30;;:52;;7043:13:::1;::::0;:15:::1;::::0;;::::1;::::0;6722:19;;7043:15;;;;;;6689:52;7043:15:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7038:20;::::0;:2:::1;:20;:::i;:::-;7015:43;;;;7072:13;7089:17:::0;7112:4:::1;-1:-1:-1::0;;;;;7112:20:51::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7069:65;;;;;;;7158:1;7148:6;:11;7144:59;;7161:42;;-1:-1:-1::0;;;7161:42:51::1;;;;;;;:::i;7144:59::-;7235:9;7217:15;:27;7213:71;;;7246:38;;-1:-1:-1::0;;;7246:38:51::1;;;;;;;:::i;7213:71::-;7358:15;:27:::0;;::::1;7410:26:::0;;::::1;7406:65;;;7438:33;;-1:-1:-1::0;;;7438:33:51::1;;;;;;;:::i;7406:65::-;7508:18;7514:12:::0;7508:2:::1;:18;:::i;:::-;7489:38;::::0;7497:6;7489:38:::1;:::i;:::-;7482:45:::0;6549:985;-1:-1:-1;;;;;;;;;;6549:985:51:o;1125:111:4:-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;565:180:101:-:0;-1:-1:-1;;;610:1:101;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;-1:-1:-1;;549:2:101;529:14;;525:28;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;1011:2;1004:22;-1:-1:-1;;751:281:101:o;1038:129::-;1072:6;1099:20;73:2;67:9;;7:75;1099:20;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:340::-;1279:4;1369:18;1361:6;1358:30;1355:56;;;1391:18;;:::i;:::-;-1:-1:-1;1441:4:101;1429:17;;;1491:15;;1173:340::o;2020:96::-;2057:7;-1:-1:-1;;;;;1954:54:101;;2086:24;1888:126;2122:122;2195:24;2213:5;2195:24;:::i;:::-;2188:5;2185:35;2175:63;;2234:1;2231;2224:12;2250:139;2321:20;;2350:33;2321:20;2350:33;:::i;2478:122::-;2569:5;2551:24;2395:77;2606:139;2677:20;;2706:33;2677:20;2706:33;:::i;2793:750::-;2871:5;2915:4;2903:9;2898:3;2894:19;2890:30;2887:117;;;2923:79;349:1345:58;;;2923:79:101;3022:21;3038:4;3022:21;:::i;:::-;3013:30;-1:-1:-1;3103:1:101;3143:49;3188:3;3168:9;3143:49;:::i;:::-;3118:75;;-1:-1:-1;3263:2:101;3304:49;3349:3;3325:22;;;3304:49;:::i;:::-;3297:4;3290:5;3286:16;3279:75;3214:151;3434:2;3475:49;3520:3;3511:6;3500:9;3496:22;3475:49;:::i;:::-;3468:4;3461:5;3457:16;3450:75;3375:161;2793:750;;;;:::o;3593:797::-;3718:5;3743:110;3759:93;3845:6;3759:93;:::i;:::-;3743:110;:::i;:::-;3888:21;;;3734:119;-1:-1:-1;3936:4:101;3925:16;;3989:4;3977:17;;3965:30;;4007:15;;;4004:122;;;4037:79;349:1345:58;;;4037:79:101;4152:6;4135:249;4169:6;4164:3;4161:15;4135:249;;;4244:3;4273:66;4335:3;4323:10;4273:66;:::i;:::-;4261:79;;-1:-1:-1;4369:4:101;4360:14;;;;4195:4;4186:14;4135:249;;;4139:21;3724:666;;3593:797;;;;;:::o;4440:428::-;4540:5;4589:3;4582:4;4574:6;4570:17;4566:27;4556:122;;4597:79;349:1345:58;;;4597:79:101;4714:6;4701:20;4739:123;4858:3;4850:6;4843:4;4835:6;4831:17;4739:123;:::i;:::-;4730:132;4440:428;-1:-1:-1;;;;4440:428:101:o;4874:597::-;4987:6;5036:2;5024:9;5015:7;5011:23;5007:32;5004:119;;;5042:79;349:1345:58;;;5042:79:101;5162:31;;5220:18;5209:30;;5206:117;;;5242:79;349:1345:58;;;5242:79:101;5347:107;5446:7;5437:6;5426:9;5422:22;5347:107;:::i;5477:474::-;5545:6;5553;5602:2;5590:9;5581:7;5577:23;5573:32;5570:119;;;5608:79;349:1345:58;;;5608:79:101;5728:1;5753:53;5798:7;5778:9;5753:53;:::i;:::-;5743:63;;5699:117;5855:2;5881:53;5926:7;5917:6;5906:9;5902:22;5881:53;:::i;:::-;5871:63;;5826:118;5477:474;;;;;:::o;5957:329::-;6016:6;6065:2;6053:9;6044:7;6040:23;6036:32;6033:119;;;6071:79;349:1345:58;;;6071:79:101;6191:1;6216:53;6261:7;6241:9;6216:53;:::i;6292:118::-;6379:24;6397:5;6379:24;:::i;:::-;6374:3;6367:37;6292:118;;:::o;6416:::-;6521:5;6503:24;2395:77;6540:442;6727:2;6712:18;;6740:71;6716:9;6784:6;6740:71;:::i;:::-;6821:72;6889:2;6878:9;6874:18;6865:6;6821:72;:::i;:::-;6903;6971:2;6960:9;6956:18;6947:6;6903:72;:::i;6988:387::-;7076:6;7125:2;7113:9;7104:7;7100:23;7096:32;7093:119;;;7131:79;349:1345:58;;;7131:79:101;7251:1;7276:82;7350:7;7330:9;7276:82;:::i;7381:222::-;7512:2;7497:18;;7525:71;7501:9;7569:6;7525:71;:::i;7823:126::-;7873:9;7906:37;7937:5;7906:37;:::i;7955:155::-;8034:9;8067:37;8098:5;8067:37;:::i;8116:189::-;8232:66;8292:5;8232:66;:::i;8311:280::-;8471:2;8456:18;;8484:100;8460:9;8557:6;8484:100;:::i;8597:222::-;8728:2;8713:18;;8741:71;8717:9;8785:6;8741:71;:::i;9830:366::-;10057:2;9588:19;;9972:3;9640:4;9631:14;;-1:-1:-1;;;9774:43:101;;9986:74;-1:-1:-1;10069:93:101;-1:-1:-1;10187:2:101;10178:12;;9830:366::o;10202:419::-;10406:2;10419:47;;;10391:18;;10483:131;10391:18;10483:131;:::i;10627:180::-;-1:-1:-1;;;10672:1:101;10665:88;10772:4;10769:1;10762:15;10796:4;10793:1;10786:15;10990:366;11217:2;9588:19;;11132:3;9640:4;9631:14;;-1:-1:-1;;;10930:47:101;;11146:74;-1:-1:-1;11229:93:101;10813:171;11362:419;11566:2;11579:47;;;11551:18;;11643:131;11551:18;11643:131;:::i;11787:332::-;11946:2;11931:18;;11959:71;11935:9;12003:6;11959:71;:::i;:::-;12040:72;12108:2;12097:9;12093:18;12084:6;12040:72;:::i;12307:366::-;12534:2;9588:19;;12449:3;9640:4;9631:14;;12265:28;12242:52;;12463:74;-1:-1:-1;12546:93:101;12125:176;12679:419;12883:2;12896:47;;;12868:18;;12960:131;12868:18;12960:131;:::i;13104:332::-;13263:2;13248:18;;13276:71;13252:9;13320:6;13276:71;:::i;13622:366::-;13849:2;9588:19;;13764:3;9640:4;9631:14;;13582:26;13559:50;;13778:74;-1:-1:-1;13861:93:101;13442:174;13994:419;14198:2;14211:47;;;14183:18;;14275:131;14183:18;14275:131;:::i;14653:366::-;14880:2;9588:19;;14795:3;9640:4;9631:14;;14559:34;14536:58;;-1:-1:-1;;;14623:2:101;14611:15;;14604:36;14809:74;-1:-1:-1;14892:93:101;-1:-1:-1;15010:2:101;15001:12;;14653:366::o;15025:419::-;15229:2;15242:47;;;15214:18;;15306:131;15214:18;15306:131;:::i;15689:366::-;15916:2;9588:19;;15831:3;9640:4;9631:14;;15590:34;15567:58;;-1:-1:-1;;;15654:2:101;15642:15;;15635:41;15845:74;-1:-1:-1;15928:93:101;15450:233;16061:419;16265:2;16278:47;;;16250:18;;16342:131;16250:18;16342:131;:::i;16669:154::-;16725:9;16652:4;16641:16;;16758:59;16577:86;16829:143;16922:43;16959:5;16922:43;:::i;16978:234::-;17115:2;17100:18;;17128:77;17104:9;17178:6;17128:77;:::i;17323:139::-;17412:6;17407:3;17402;17396:23;-1:-1:-1;17453:1:101;17435:16;;17428:27;17323:139::o;17468:377::-;17556:3;17584:39;17617:5;17298:12;;17218:99;17584:39;9588:19;;;9640:4;9631:14;;17632:78;;17719:65;17777:6;17772:3;17765:4;17758:5;17754:16;17719:65;:::i;:::-;549:2;529:14;-1:-1:-1;;525:28:101;17800:39;;;;;;-1:-1:-1;;17468:377:101:o;17851:423::-;18030:2;18015:18;;18043:71;18019:9;18087:6;18043:71;:::i;:::-;18161:9;18155:4;18151:20;18146:2;18135:9;18131:18;18124:48;18189:78;18262:4;18253:6;18189:78;:::i;18376:116::-;18350:13;;18343:21;18446;18280:90;18498:137;18577:13;;18599:30;18577:13;18599:30;:::i;18641:345::-;18708:6;18757:2;18745:9;18736:7;18732:23;18728:32;18725:119;;;18763:79;349:1345:58;;;18763:79:101;18883:1;18908:61;18961:7;18941:9;18908:61;:::i;18992:533::-;19199:2;19184:18;;19212:71;19188:9;19256:6;19212:71;:::i;:::-;19293:72;19361:2;19350:9;19346:18;19337:6;19293:72;:::i;:::-;19412:9;19406:4;19402:20;19397:2;19386:9;19382:18;19375:48;19440:78;19513:4;19504:6;19440:78;:::i;19719:366::-;19946:2;9588:19;;;19671:34;9631:14;;19648:58;;;19861:3;19958:93;19531:182;20091:419;20295:2;20308:47;;;20280:18;;20372:131;20280:18;20372:131;:::i;20746:366::-;20973:2;9588:19;;20888:3;9640:4;9631:14;;20656:34;20633:58;;-1:-1:-1;;;20720:2:101;20708:15;;20701:32;20902:74;-1:-1:-1;20985:93:101;20516:224;21118:419;21322:2;21335:47;;;21307:18;;21399:131;21307:18;21399:131;:::i;21543:332::-;21702:2;21687:18;;21715:71;21691:9;21759:6;21715:71;:::i;:::-;21796:72;21864:2;21853:9;21849:18;21840:6;21796:72;:::i;21992:120::-;21957:22;21946:34;;22064:23;21881:105;22118:141;22199:13;;22221:32;22199:13;22221:32;:::i;22473:141::-;22554:13;;22576:32;22554:13;22576:32;:::i;22769:971::-;22872:6;22880;22888;22896;22904;22953:3;22941:9;22932:7;22928:23;22924:33;22921:120;;;22960:79;349:1345:58;;;22960:79:101;23080:1;23105:63;23160:7;23140:9;23105:63;:::i;:::-;23095:73;;23051:127;23217:2;23243:63;23298:7;23289:6;23278:9;23274:22;23243:63;:::i;:::-;23233:73;;23188:128;23355:2;23381:64;23437:7;23428:6;23417:9;23413:22;23381:64;:::i;:::-;23371:74;;23326:129;23494:2;23520:64;23576:7;23567:6;23556:9;23552:22;23520:64;:::i;:::-;23510:74;;23465:129;23633:3;23660:63;23715:7;23706:6;23695:9;23691:22;23660:63;:::i;:::-;23650:73;;23604:129;22769:971;;;;;;;;:::o;23746:180::-;-1:-1:-1;;;23791:1:101;23784:88;23891:4;23888:1;23881:15;23915:4;23912:1;23905:15;23932:194;24063:9;;;24085:11;;;24082:37;;;24099:18;;:::i;24132:118::-;16652:4;16641:16;;24203:22;16577:86;24256:139;24336:13;;24358:31;24336:13;24358:31;:::i;24401:347::-;24469:6;24518:2;24506:9;24497:7;24493:23;24489:32;24486:119;;;24524:79;349:1345:58;;;24524:79:101;24644:1;24669:62;24723:7;24703:9;24669:62;:::i;24990:366::-;25217:2;9588:19;;25132:3;9640:4;9631:14;;24894:34;24871:58;;-1:-1:-1;;;24958:2:101;24946:15;;24939:38;25146:74;-1:-1:-1;25229:93:101;24754:230;25362:419;25566:2;25579:47;;;25551:18;;25643:131;25551:18;25643:131;:::i;25895:848::-;25987:6;26011:5;26025:712;26046:1;26036:8;26033:15;26025:712;;;26141:4;26136:3;26132:14;26126:4;26123:24;26120:50;;;26150:18;;:::i;:::-;26200:1;26190:8;26186:16;26183:451;;;26604:16;;;;26183:451;26655:15;;26695:32;26718:8;25873:1;25869:13;;25787:102;26695:32;26683:44;;26025:712;;;25895:848;;;;;;;:::o;26749:1073::-;26803:5;26994:8;26984:40;;-1:-1:-1;27015:1:101;27017:5;;26984:40;27043:4;27033:36;;-1:-1:-1;27060:1:101;27062:5;;27033:36;27129:4;27177:1;27172:27;;;;27213:1;27208:191;;;;27122:277;;27172:27;27190:1;27181:10;;27192:5;;;27208:191;27253:3;27243:8;27240:17;27237:43;;;27260:18;;:::i;:::-;27309:8;27306:1;27302:16;27293:25;;27344:3;27337:5;27334:14;27331:40;;;27351:18;;:::i;:::-;27384:5;;;27122:277;;27508:2;27498:8;27495:16;27489:3;27483:4;27480:13;27476:36;27458:2;27448:8;27445:16;27440:2;27434:4;27431:12;27427:35;27411:111;27408:246;;;-1:-1:-1;27554:19:101;;;27589:14;;;27586:40;;;27606:18;;:::i;:::-;27639:5;;27408:246;27679:42;27717:3;27707:8;27701:4;27698:1;27679:42;:::i;:::-;27664:57;;;;27753:4;27748:3;27744:14;27737:5;27734:25;27731:51;;;27762:18;;:::i;:::-;27800:16;;26749:1073;-1:-1:-1;;26749:1073:101:o;27828:285::-;27888:5;28002:104;-1:-1:-1;;28029:8:101;28023:4;28002:104;:::i;28119:410::-;28264:9;;;;28426;;28459:15;;;28453:22;;28406:83;28383:139;;28502:18;;:::i;:::-;28167:362;28119:410;;;;:::o;28535:191::-;16652:4;16641:16;;;;;;;;28660:9;;;;28682:14;;28679:40;;;28699:18;;:::i;28920:366::-;29147:2;9588:19;;;28872:34;9631:14;;28849:58;;;29062:3;29159:93;28732:182;29292:419;29496:2;29509:47;;;29481:18;;29573:131;29481:18;29573:131;:::i;29901:366::-;30128:2;9588:19;;30043:3;9640:4;9631:14;;29857:30;29834:54;;30057:74;-1:-1:-1;30140:93:101;29717:178;30273:419;30477:2;30490:47;;;30462:18;;30554:131;30462:18;30554:131;:::i;30877:366::-;31104:2;9588:19;;31019:3;9640:4;9631:14;;30838:25;30815:49;;31033:74;-1:-1:-1;31116:93:101;30698:173;31249:419;31453:2;31466:47;;;31438:18;;31530:131;31438:18;31530:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"1168800","executionCost":"infinite","totalCost":"infinite"},"external":{"GRACE_PERIOD_TIME()":"359","NATIVE_TOKEN_ADDR()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"infinite","getPrice(address)":"infinite","initialize(address)":"infinite","owner()":"infinite","pendingOwner()":"infinite","prices(address)":"infinite","renounceOwnership()":"infinite","sequencer()":"infinite","setAccessControlManager(address)":"infinite","setDirectPrice(address,uint256)":"infinite","setTokenConfig((address,address,uint256))":"infinite","setTokenConfigs((address,address,uint256)[])":"infinite","tokenConfigs(address)":"infinite","transferOwnership(address)":"infinite"},"internal":{"isSequencerActive()":"infinite"}},"methodIdentifiers":{"GRACE_PERIOD_TIME()":"ed2f8603","NATIVE_TOKEN_ADDR()":"a9534f8a","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","getPrice(address)":"41976e09","initialize(address)":"c4d66de8","owner()":"8da5cb5b","pendingOwner()":"e30c3978","prices(address)":"cfed246b","renounceOwnership()":"715018a6","sequencer()":"5c1bba38","setAccessControlManager(address)":"0e32cb86","setDirectPrice(address,uint256)":"09a8acb0","setTokenConfig((address,address,uint256))":"392787d2","setTokenConfigs((address,address,uint256)[])":"0431710e","tokenConfigs(address)":"1b69dc5f","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"_sequencer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousPriceMantissa\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPriceMantissa\",\"type\":\"uint256\"}],\"name\":\"PricePosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"name\":\"TokenConfigAdded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"prices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencer\",\"outputs\":[{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"setDirectPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainlinkOracle.TokenConfig\",\"name\":\"tokenConfig\",\"type\":\"tuple\"}],\"name\":\"setTokenConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainlinkOracle.TokenConfig[]\",\"name\":\"tokenConfigs_\",\"type\":\"tuple[]\"}],\"name\":\"setTokenConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenConfigs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxStalePeriod\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"_sequencer\":\"L2 sequencer\"}},\"getPrice(address)\":{\"params\":{\"asset\":\"Address of the asset\"},\"returns\":{\"_0\":\"Price in USD from Chainlink or a manually set price for the asset\"}},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"Address of the access control manager contract\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setDirectPrice(address,uint256)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits PricePosted event on successfully setup of asset price\",\"params\":{\"asset\":\"Asset address\",\"price\":\"Asset price in 18 decimals\"}},\"setTokenConfig((address,address,uint256))\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"NotNullAddress error is thrown if asset address is nullNotNullAddress error is thrown if token feed address is nullRange error is thrown if maxStale period of token is not greater than zero\",\"custom:event\":\"Emits TokenConfigAdded event on successfully setting of the token config\",\"params\":{\"tokenConfig\":\"Token config struct\"}},\"setTokenConfigs((address,address,uint256)[])\":{\"custom:access\":\"Only Governance\",\"custom:error\":\"Zero length error thrown, if length of the array in parameter is 0\",\"params\":{\"tokenConfigs_\":\"config array\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"sequencer\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"Sequencer Chain Link Oracle\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"PricePosted(address,uint256,uint256)\":{\"notice\":\"Emit when a price is manually set\"},\"TokenConfigAdded(address,address,uint256)\":{\"notice\":\"Emit when a token config is added\"}},\"kind\":\"user\",\"methods\":{\"GRACE_PERIOD_TIME()\":{\"notice\":\"L2 Sequencer grace period\"},\"NATIVE_TOKEN_ADDR()\":{\"notice\":\"Set this as asset address for native token on each chain. This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain.\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"constructor\":{\"notice\":\"Contract constructor\"},\"getPrice(address)\":{\"notice\":\"Gets the price of a asset from the chainlink oracle\"},\"initialize(address)\":{\"notice\":\"Initializes the owner of the contract\"},\"prices(address)\":{\"notice\":\"Manually set an override price, useful under extenuating conditions such as price feed failure\"},\"sequencer()\":{\"notice\":\"L2 Sequencer feed\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setDirectPrice(address,uint256)\":{\"notice\":\"Manually set the price of a given asset\"},\"setTokenConfig((address,address,uint256))\":{\"notice\":\"Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive\"},\"setTokenConfigs((address,address,uint256)[])\":{\"notice\":\"Add multiple token configs at the same time\"},\"tokenConfigs(address)\":{\"notice\":\"Token config by assets\"}},\"notice\":\"Oracle to fetch price using chainlink oracles on L2s with sequencer\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/SequencerChainlinkOracle.sol\":\"SequencerChainlinkOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorV3Interface {\\n  function decimals() external view returns (uint8);\\n\\n  function description() external view returns (string memory);\\n\\n  function version() external view returns (uint256);\\n\\n  function getRoundData(uint80 _roundId)\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n\\n  function latestRoundData()\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n}\\n\",\"keccak256\":\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport {Initializable} from \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x9140dabc466abab21b48b72dbda26736b1183a310d0e677d3719d201df026510\",\"license\":\"MIT\"},\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/VBep20Interface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\n\\ninterface VBep20Interface is IERC20Metadata {\\n    /**\\n     * @notice Underlying asset for this VToken\\n     */\\n    function underlying() external view returns (address);\\n}\\n\",\"keccak256\":\"0x6e71c3df86501df5c0e4bace1333c0c91f9f9cced252a54fb99eeda219b789d5\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/ChainlinkOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../interfaces/VBep20Interface.sol\\\";\\nimport \\\"../interfaces/OracleInterface.sol\\\";\\nimport \\\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\\\";\\nimport \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\\\";\\n\\n/**\\n * @title ChainlinkOracle\\n * @author Venus\\n * @notice This oracle fetches prices of assets from the Chainlink oracle.\\n */\\ncontract ChainlinkOracle is AccessControlledV8, OracleInterface {\\n    struct TokenConfig {\\n        /// @notice Underlying token address, which can't be a null address\\n        /// @notice Used to check if a token is supported\\n        /// @notice 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB address for native tokens\\n        ///         (e.g BNB for BNB chain, ETH for Ethereum network)\\n        address asset;\\n        /// @notice Chainlink feed address\\n        address feed;\\n        /// @notice Price expiration period of this asset\\n        uint256 maxStalePeriod;\\n    }\\n\\n    /// @notice Set this as asset address for native token on each chain.\\n    /// This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain.\\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Manually set an override price, useful under extenuating conditions such as price feed failure\\n    mapping(address => uint256) public prices;\\n\\n    /// @notice Token config by assets\\n    mapping(address => TokenConfig) public tokenConfigs;\\n\\n    /// @notice Emit when a price is manually set\\n    event PricePosted(address indexed asset, uint256 previousPriceMantissa, uint256 newPriceMantissa);\\n\\n    /// @notice Emit when a token config is added\\n    event TokenConfigAdded(address indexed asset, address feed, uint256 maxStalePeriod);\\n\\n    modifier notNullAddress(address someone) {\\n        if (someone == address(0)) revert(\\\"can't be zero address\\\");\\n        _;\\n    }\\n\\n    /// @notice Constructor for the implementation contract.\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor() {\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the owner of the contract\\n     * @param accessControlManager_ Address of the access control manager contract\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Manually set the price of a given asset\\n     * @param asset Asset address\\n     * @param price Asset price in 18 decimals\\n     * @custom:access Only Governance\\n     * @custom:event Emits PricePosted event on successfully setup of asset price\\n     */\\n    function setDirectPrice(address asset, uint256 price) external notNullAddress(asset) {\\n        _checkAccessAllowed(\\\"setDirectPrice(address,uint256)\\\");\\n\\n        uint256 previousPriceMantissa = prices[asset];\\n        prices[asset] = price;\\n        emit PricePosted(asset, previousPriceMantissa, price);\\n    }\\n\\n    /**\\n     * @notice Add multiple token configs at the same time\\n     * @param tokenConfigs_ config array\\n     * @custom:access Only Governance\\n     * @custom:error Zero length error thrown, if length of the array in parameter is 0\\n     */\\n    function setTokenConfigs(TokenConfig[] memory tokenConfigs_) external {\\n        if (tokenConfigs_.length == 0) revert(\\\"length can't be 0\\\");\\n        uint256 numTokenConfigs = tokenConfigs_.length;\\n        for (uint256 i; i < numTokenConfigs; ++i) {\\n            setTokenConfig(tokenConfigs_[i]);\\n        }\\n    }\\n\\n    /**\\n     * @notice Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive\\n     * @param tokenConfig Token config struct\\n     * @custom:access Only Governance\\n     * @custom:error NotNullAddress error is thrown if asset address is null\\n     * @custom:error NotNullAddress error is thrown if token feed address is null\\n     * @custom:error Range error is thrown if maxStale period of token is not greater than zero\\n     * @custom:event Emits TokenConfigAdded event on successfully setting of the token config\\n     */\\n    function setTokenConfig(\\n        TokenConfig memory tokenConfig\\n    ) public notNullAddress(tokenConfig.asset) notNullAddress(tokenConfig.feed) {\\n        _checkAccessAllowed(\\\"setTokenConfig(TokenConfig)\\\");\\n\\n        if (tokenConfig.maxStalePeriod == 0) revert(\\\"stale period can't be zero\\\");\\n        tokenConfigs[tokenConfig.asset] = tokenConfig;\\n        emit TokenConfigAdded(tokenConfig.asset, tokenConfig.feed, tokenConfig.maxStalePeriod);\\n    }\\n\\n    /**\\n     * @notice Gets the price of a asset from the chainlink oracle\\n     * @param asset Address of the asset\\n     * @return Price in USD from Chainlink or a manually set price for the asset\\n     */\\n    function getPrice(address asset) public view virtual returns (uint256) {\\n        uint256 decimals;\\n\\n        if (asset == NATIVE_TOKEN_ADDR) {\\n            decimals = 18;\\n        } else {\\n            IERC20Metadata token = IERC20Metadata(asset);\\n            decimals = token.decimals();\\n        }\\n\\n        return _getPriceInternal(asset, decimals);\\n    }\\n\\n    /**\\n     * @notice Gets the Chainlink price for a given asset\\n     * @param asset address of the asset\\n     * @param decimals decimals of the asset\\n     * @return price Asset price in USD or a manually set price of the asset\\n     */\\n    function _getPriceInternal(address asset, uint256 decimals) internal view returns (uint256 price) {\\n        uint256 tokenPrice = prices[asset];\\n        if (tokenPrice != 0) {\\n            price = tokenPrice;\\n        } else {\\n            price = _getChainlinkPrice(asset);\\n        }\\n\\n        uint256 decimalDelta = 18 - decimals;\\n        return price * (10 ** decimalDelta);\\n    }\\n\\n    /**\\n     * @notice Get the Chainlink price for an asset, revert if token config doesn't exist\\n     * @dev The precision of the price feed is used to ensure the returned price has 18 decimals of precision\\n     * @param asset Address of the asset\\n     * @return price Price in USD, with 18 decimals of precision\\n     * @custom:error NotNullAddress error is thrown if the asset address is null\\n     * @custom:error Price error is thrown if the Chainlink price of asset is not greater than zero\\n     * @custom:error Timing error is thrown if current timestamp is less than the last updatedAt timestamp\\n     * @custom:error Timing error is thrown if time difference between current time and last updated time\\n     * is greater than maxStalePeriod\\n     */\\n    function _getChainlinkPrice(\\n        address asset\\n    ) private view notNullAddress(tokenConfigs[asset].asset) returns (uint256) {\\n        TokenConfig memory tokenConfig = tokenConfigs[asset];\\n        AggregatorV3Interface feed = AggregatorV3Interface(tokenConfig.feed);\\n\\n        // note: maxStalePeriod cannot be 0\\n        uint256 maxStalePeriod = tokenConfig.maxStalePeriod;\\n\\n        // Chainlink USD-denominated feeds store answers at 8 decimals, mostly\\n        uint256 decimalDelta = 18 - feed.decimals();\\n\\n        (, int256 answer, , uint256 updatedAt, ) = feed.latestRoundData();\\n        if (answer <= 0) revert(\\\"chainlink price must be positive\\\");\\n        if (block.timestamp < updatedAt) revert(\\\"updatedAt exceeds block time\\\");\\n\\n        uint256 deltaTime;\\n        unchecked {\\n            deltaTime = block.timestamp - updatedAt;\\n        }\\n\\n        if (deltaTime > maxStalePeriod) revert(\\\"chainlink price expired\\\");\\n\\n        return uint256(answer) * (10 ** decimalDelta);\\n    }\\n}\\n\",\"keccak256\":\"0x057852418e032dbb6210719170444bf73a4d12be50970570e28623719ea961a4\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/SequencerChainlinkOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\nimport { ChainlinkOracle } from \\\"./ChainlinkOracle.sol\\\";\\nimport { AggregatorV3Interface } from \\\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\\\";\\n\\n/**\\n    @title Sequencer Chain Link Oracle\\n    @notice Oracle to fetch price using chainlink oracles on L2s with sequencer\\n*/\\ncontract SequencerChainlinkOracle is ChainlinkOracle {\\n    /// @notice L2 Sequencer feed\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    AggregatorV3Interface public immutable sequencer;\\n\\n    /// @notice L2 Sequencer grace period\\n    uint256 public constant GRACE_PERIOD_TIME = 3600;\\n\\n    /**\\n        @notice Contract constructor\\n        @param _sequencer L2 sequencer\\n        @custom:oz-upgrades-unsafe-allow constructor\\n    */\\n    constructor(AggregatorV3Interface _sequencer) ChainlinkOracle() {\\n        require(address(_sequencer) != address(0), \\\"zero address\\\");\\n\\n        sequencer = _sequencer;\\n    }\\n\\n    /// @inheritdoc ChainlinkOracle\\n    function getPrice(address asset) public view override returns (uint) {\\n        if (!isSequencerActive()) revert(\\\"L2 sequencer unavailable\\\");\\n        return super.getPrice(asset);\\n    }\\n\\n    function isSequencerActive() internal view returns (bool) {\\n        // answer from oracle is a variable with a value of either 1 or 0\\n        //  0: The sequencer is up\\n        //  1: The sequencer is down\\n        // startedAt: This timestamp indicates when the sequencer changed status\\n        (, int256 answer, uint256 startedAt, , ) = sequencer.latestRoundData();\\n        if (block.timestamp - startedAt <= GRACE_PERIOD_TIME || answer == 1) return false;\\n        return true;\\n    }\\n}\\n\",\"keccak256\":\"0x252aaf3af4a9aba9779d475545ef9a1ecc41ff1202192536cc7128944bb37dc8\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":114,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":208,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1940,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)2125"},{"astId":1945,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":4712,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"prices","offset":0,"slot":"201","type":"t_mapping(t_address,t_uint256)"},{"astId":4718,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"tokenConfigs","offset":0,"slot":"202","type":"t_mapping(t_address,t_struct(TokenConfig)4703_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)2125":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_address,t_struct(TokenConfig)4703_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct ChainlinkOracle.TokenConfig)","numberOfBytes":"32","value":"t_struct(TokenConfig)4703_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(TokenConfig)4703_storage":{"encoding":"inplace","label":"struct ChainlinkOracle.TokenConfig","members":[{"astId":4696,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"asset","offset":0,"slot":"0","type":"t_address"},{"astId":4699,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"feed","offset":0,"slot":"1","type":"t_address"},{"astId":4702,"contract":"contracts/oracles/SequencerChainlinkOracle.sol:SequencerChainlinkOracle","label":"maxStalePeriod","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"PricePosted(address,uint256,uint256)":{"notice":"Emit when a price is manually set"},"TokenConfigAdded(address,address,uint256)":{"notice":"Emit when a token config is added"}},"kind":"user","methods":{"GRACE_PERIOD_TIME()":{"notice":"L2 Sequencer grace period"},"NATIVE_TOKEN_ADDR()":{"notice":"Set this as asset address for native token on each chain. This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain."},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"constructor":{"notice":"Contract constructor"},"getPrice(address)":{"notice":"Gets the price of a asset from the chainlink oracle"},"initialize(address)":{"notice":"Initializes the owner of the contract"},"prices(address)":{"notice":"Manually set an override price, useful under extenuating conditions such as price feed failure"},"sequencer()":{"notice":"L2 Sequencer feed"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setDirectPrice(address,uint256)":{"notice":"Manually set the price of a given asset"},"setTokenConfig((address,address,uint256))":{"notice":"Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive"},"setTokenConfigs((address,address,uint256)[])":{"notice":"Add multiple token configs at the same time"},"tokenConfigs(address)":{"notice":"Token config by assets"}},"notice":"Oracle to fetch price using chainlink oracles on L2s with sequencer","version":1}}},"contracts/oracles/SlisBNBOracle.sol":{"SlisBNBOracle":{"abi":[{"inputs":[{"internalType":"address","name":"stakeManager","type":"address"},{"internalType":"address","name":"slisBNB","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKE_MANAGER","outputs":[{"internalType":"contract ISynclubStakeManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount The amount of BNB for slisBNB"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"SlisBNBOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5974":{"entryPoint":null,"id":5974,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":331,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":410,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":427,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":438,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":650,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":373,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":630,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":391,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":421,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516110f53803806110f583398101604081905261002f916101b6565b8773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb8888888888888861005a6301e133808761028a565b5f81905515801561006a57505f85115b8061007e57505f805411801561007e575084155b1561009c576040516353b7e64560e11b815260040160405180910390fd5b8315806100a7575082155b80156100b257505f85115b156100d05760405163b8a5589b60e01b815260040160405180910390fd5b6100d98961014b565b6100e28861014b565b6100eb8761014b565b6100f48261014b565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261012e8961014b565b5050506001600160a01b03909516610100525061029d9350505050565b6001600160a01b038116610172576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61019081610175565b8114610172575f80fd5b805161018181610187565b80610190565b8051610181816101a5565b5f805f805f805f805f6101208a8c0312156101d2576101d25f80fd5b5f6101dd8c8c61019a565b99505060206101ee8c828d0161019a565b98505060406101ff8c828d0161019a565b97505060606102108c828d016101ab565b96505060806102218c828d016101ab565b95505060a06102328c828d016101ab565b94505060c06102438c828d016101ab565b93505060e06102548c828d0161019a565b9250506101006102668c828d016101ab565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261029857610298610276565b500490565b60805160a05160c05160e05161010051610de36103125f395f818161023d01526106e301525f8181610194015261092201525f81816102800152818161059a01526107b501525f8181610144015281816105c701526107e401525f8181610216015281816102d801526108630152610de35ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c806369240426116100a9578063a4edcd4c1161006e578063a4edcd4c1461027b578063a9534f8a146102a2578063abb85613146102bd578063ac5a693e146102c5578063bdf13af2146102cd575f80fd5b8063692404261461020957806369818a35146102115780637353847a146102385780637fc4e4a01461025f5780639c43eb5414610272575f80fd5b806345be2dc7116100ef57806345be2dc71461018f5780635213f9c8146101c3578063596efe6f146101d8578063643d813d146101e1578063671528d4146101f4575f80fd5b806307d0413c1461012057806329db1be61461013f5780634169d2451461017357806341976e091461017c575b5f80fd5b61012960015481565b60405161013691906109d3565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a00565b61012960045481565b61012961018a366004610a2f565b6102d5565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a72565b6101d66101d1366004610a91565b610386565b005b61012960025481565b6101d66101ef366004610aaf565b6103f7565b6101fc6104cb565b6040516101369190610af1565b6101d6610506565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6101d661026d366004610aaf565b610652565b61012960035481565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b61016673bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101296106ca565b6101295f5481565b610129610764565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461032857604051630f58058360e11b815260040160405180910390fd5b5f6103316106ca565b90506001545f0361034c57610345816107b1565b9392505050565b5f610355610764565b90505f818311801561036657508115155b6103705782610372565b815b905061037d816107b1565b95945050505050565b6103c46040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610909565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104356040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610909565b5f546104456301e1338084610b27565b5f81905515801561045557505f82115b8061046957505f8054118015610469575081155b15610487576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104bc91906109d3565b60405180910390a45060015550565b5f6001545f036104da57505f90565b5f6104e3610764565b9050805f036104f3575f91505090565b5f6104fc6106ca565b9190911192915050565b6001546003546105169042610b3a565b10806105225750600154155b1561052957565b5f6105326106ca565b90505f61053d610764565b905060045481831161054f5782610551565b815b61055b9190610b4d565b6002819055426003555f0361058357604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105ef907f000000000000000000000000000000000000000000000000000000000000000090600401610a00565b5f604051808303815f87803b158015610606575f80fd5b505af1158015610618573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106906040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610909565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b60405163ce6298e160e01b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce6298e19061072090670de0b6b3a7640000906004016109d3565b602060405180830381865afa15801561073b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f9190610b6b565b905090565b5f80600354426107749190610b3a565b90505f670de0b6b3a7640000825f546002546107909190610b89565b61079a9190610b89565b6107a49190610b27565b6002546103459190610b4d565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081f9190610a00565b602060405180830381865afa15801561083a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085e9190610b6b565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190610bbc565b60ff1690506108f581600a610ce6565b6108ff8487610b89565b61037d9190610b27565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109599033908690600401610d2f565b602060405180830381865afa158015610974573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109989190610d62565b9050806109c757333083604051634a3fa29360e01b81526004016109be93929190610d80565b60405180910390fd5b5050565b805b82525050565b602081016109e182846109cb565b92915050565b5f6001600160a01b0382166109e1565b6109cd816109e7565b602081016109e182846109f7565b610a17816109e7565b8114610a21575f80fd5b50565b80356109e181610a0e565b5f60208284031215610a4257610a425f80fd5b5f610a4d8484610a24565b949350505050565b5f6109e1826109e7565b5f6109e182610a55565b6109cd81610a5f565b602081016109e18284610a69565b80610a17565b80356109e181610a80565b5f60208284031215610aa457610aa45f80fd5b5f610a4d8484610a86565b5f8060408385031215610ac357610ac35f80fd5b5f610ace8585610a86565b9250506020610adf85828601610a86565b9150509250929050565b8015156109cd565b602081016109e18284610ae9565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b3557610b35610aff565b500490565b818103818111156109e1576109e1610b13565b808201808211156109e1576109e1610b13565b80516109e181610a80565b5f60208284031215610b7e57610b7e5f80fd5b5f610a4d8484610b60565b818102808215838204851417610ba157610ba1610b13565b5092915050565b60ff8116610a17565b80516109e181610ba8565b5f60208284031215610bcf57610bcf5f80fd5b5f610a4d8484610bb1565b80825b6001851115610c1957808604811115610bf857610bf8610b13565b6001851615610c0657908102905b8002610c128560011c90565b9450610bdd565b94509492505050565b5f82610c3057506001610345565b81610c3c57505f610345565b8160018114610c525760028114610c5c57610c89565b6001915050610345565b60ff841115610c6d57610c6d610b13565b8360020a915084821115610c8357610c83610b13565b50610345565b5060208310610133831016604e8410600b8410161715610cbc575081810a83811115610cb757610cb7610b13565b610345565b610cc98484846001610bda565b92509050818404811115610cdf57610cdf610b13565b0292915050565b5f6103455f198484610c22565b8281835e505f910152565b5f610d07825190565b808452602084019350610d1e818560208601610cf3565b601f01601f19169290920192915050565b60408101610d3d82856109f7565b8181036020830152610a4d8184610cfe565b801515610a17565b80516109e181610d4f565b5f60208284031215610d7557610d755f80fd5b5f610a4d8484610d57565b60608101610d8e82866109f7565b610d9b60208301856109f7565b818103604083015261037d8184610cfe56fea26469706673582212209537a08ba247c7d7c18f722ae238bdf37ac23a853537e1a563f2d1432cd5758f64736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10F5 CODESIZE SUB DUP1 PUSH2 0x10F5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1B6 JUMP JUMPDEST DUP8 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x5A PUSH4 0x1E13380 DUP8 PUSH2 0x28A JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x6A JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x7E JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x7E JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0xA7 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xB2 JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9 DUP10 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xE2 DUP9 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xEB DUP8 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xF4 DUP3 PUSH2 0x14B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x12E DUP10 PUSH2 0x14B JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH2 0x100 MSTORE POP PUSH2 0x29D SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x172 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x190 DUP2 PUSH2 0x175 JUMP JUMPDEST DUP2 EQ PUSH2 0x172 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x181 DUP2 PUSH2 0x187 JUMP JUMPDEST DUP1 PUSH2 0x190 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x181 DUP2 PUSH2 0x1A5 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1D2 JUMPI PUSH2 0x1D2 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1DD DUP13 DUP13 PUSH2 0x19A JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1EE DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1FF DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x210 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x221 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x232 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x243 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x254 DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x266 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x298 JUMPI PUSH2 0x298 PUSH2 0x276 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xDE3 PUSH2 0x312 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x23D ADD MSTORE PUSH2 0x6E3 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x194 ADD MSTORE PUSH2 0x922 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x280 ADD MSTORE DUP2 DUP2 PUSH2 0x59A ADD MSTORE PUSH2 0x7B5 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x144 ADD MSTORE DUP2 DUP2 PUSH2 0x5C7 ADD MSTORE PUSH2 0x7E4 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x216 ADD MSTORE DUP2 DUP2 PUSH2 0x2D8 ADD MSTORE PUSH2 0x863 ADD MSTORE PUSH2 0xDE3 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x7353847A EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x17C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA72 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0xA91 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xAF1 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x166 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x764 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x328 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x34C JUMPI PUSH2 0x345 DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x355 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x366 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x370 JUMPI DUP3 PUSH2 0x372 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x37D DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3C4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x435 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x445 PUSH4 0x1E13380 DUP5 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x469 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x469 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x487 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4DA JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4E3 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4F3 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4FC PUSH2 0x6CA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x516 SWAP1 TIMESTAMP PUSH2 0xB3A JUMP JUMPDEST LT DUP1 PUSH2 0x522 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x529 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x532 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x53D PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x54F JUMPI DUP3 PUSH2 0x551 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x55B SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5EF SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA00 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x618 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x690 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCE6298E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCE6298E1 SWAP1 PUSH2 0x720 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x75F SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x790 SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x79A SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81F SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x83A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x85E SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8C1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8E5 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8F5 DUP2 PUSH1 0xA PUSH2 0xCE6 JUMP JUMPDEST PUSH2 0x8FF DUP5 DUP8 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x959 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x998 SWAP2 SWAP1 PUSH2 0xD62 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9C7 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9BE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9E1 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xA17 DUP2 PUSH2 0x9E7 JUMP JUMPDEST DUP2 EQ PUSH2 0xA21 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA0E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA42 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA24 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0x9E7 JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0xA55 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xA69 JUMP JUMPDEST DUP1 PUSH2 0xA17 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAA4 JUMPI PUSH2 0xAA4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA86 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xACE DUP6 DUP6 PUSH2 0xA86 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xADF DUP6 DUP3 DUP7 ADD PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xAE9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAFF JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7E JUMPI PUSH2 0xB7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xB60 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBA1 JUMPI PUSH2 0xBA1 PUSH2 0xB13 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xBA8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBCF JUMPI PUSH2 0xBCF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xBB1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC19 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBF8 JUMPI PUSH2 0xBF8 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xC06 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC12 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBDD JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC30 JUMPI POP PUSH1 0x1 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH2 0xC3C JUMPI POP PUSH0 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC52 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC5C JUMPI PUSH2 0xC89 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x345 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC6D JUMPI PUSH2 0xC6D PUSH2 0xB13 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC83 JUMPI PUSH2 0xC83 PUSH2 0xB13 JUMP JUMPDEST POP PUSH2 0x345 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCBC JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCB7 JUMPI PUSH2 0xCB7 PUSH2 0xB13 JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0xCC9 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBDA JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCDF JUMPI PUSH2 0xCDF PUSH2 0xB13 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x345 PUSH0 NOT DUP5 DUP5 PUSH2 0xC22 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD07 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD3D DUP3 DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA4D DUP2 DUP5 PUSH2 0xCFE JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xD4F JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD8E DUP3 DUP7 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xD9B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x37D DUP2 DUP5 PUSH2 0xCFE JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP6 CALLDATACOPY LOG0 DUP12 LOG2 SELFBALANCE 0xC7 0xD7 0xC1 DUP16 PUSH19 0x2AE238BDF37AC23A853537E1A563F2D1432CD5 PUSH22 0x8F64736F6C6343000819003300000000000000000000 ","sourceMap":"515:1405:59:-:0;;;881:772;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1257:7;673:42;1309:15;1338:16;1368:17;1399:30;1443:24;1481:20;1515:12;3527:36:67;408:10:17;1338:16:59;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1552:34:59::1;1573:12:::0;1552:20:::1;:34::i;:::-;-1:-1:-1::0;;;;;;;;1596:50:59;;::::1;;::::0;-1:-1:-1;515:1405:59;;-1:-1:-1;;;;515:1405:59;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;515:1405:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@NATIVE_TOKEN_ADDR_5926":{"entryPoint":null,"id":5926,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@STAKE_MANAGER_5930":{"entryPoint":null,"id":5930,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1969,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2313,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1892,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":725,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_5987":{"entryPoint":1738,"id":5987,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1227,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":1015,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":902,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1618,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1286,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2596,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3415,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2694,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2912,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2993,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2607,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3426,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2923,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2735,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":3004,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2551,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2793,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2665,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ISynclubStakeManager_$3630_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3326,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2507,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3456,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3375,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2801,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ISynclubStakeManager_$3630__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2515,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2893,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2855,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3034,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3302,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3106,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2953,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2874,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2535,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2655,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ISynclubStakeManager_$3630_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2645,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3315,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2835,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2815,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2574,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3407,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2688,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2984,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13210:101","nodeType":"YulBlock","src":"0:13210:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4570:66:101","nodeType":"YulBlock","src":"4570:66:101","statements":[{"nativeSrc":"4580:50:101","nodeType":"YulAssignment","src":"4580:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4624:5:101","nodeType":"YulIdentifier","src":"4624:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4593:30:101","nodeType":"YulIdentifier","src":"4593:30:101"},"nativeSrc":"4593:37:101","nodeType":"YulFunctionCall","src":"4593:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4580:9:101","nodeType":"YulIdentifier","src":"4580:9:101"}]}]},"name":"convert_t_contract$_ISynclubStakeManager_$3630_to_t_address","nativeSrc":"4481:155:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4550:5:101","nodeType":"YulTypedName","src":"4550:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4560:9:101","nodeType":"YulTypedName","src":"4560:9:101","type":""}],"src":"4481:155:101"},{"body":{"nativeSrc":"4736:95:101","nodeType":"YulBlock","src":"4736:95:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4753:3:101","nodeType":"YulIdentifier","src":"4753:3:101"},{"arguments":[{"name":"value","nativeSrc":"4818:5:101","nodeType":"YulIdentifier","src":"4818:5:101"}],"functionName":{"name":"convert_t_contract$_ISynclubStakeManager_$3630_to_t_address","nativeSrc":"4758:59:101","nodeType":"YulIdentifier","src":"4758:59:101"},"nativeSrc":"4758:66:101","nodeType":"YulFunctionCall","src":"4758:66:101"}],"functionName":{"name":"mstore","nativeSrc":"4746:6:101","nodeType":"YulIdentifier","src":"4746:6:101"},"nativeSrc":"4746:79:101","nodeType":"YulFunctionCall","src":"4746:79:101"},"nativeSrc":"4746:79:101","nodeType":"YulExpressionStatement","src":"4746:79:101"}]},"name":"abi_encode_t_contract$_ISynclubStakeManager_$3630_to_t_address_fromStack","nativeSrc":"4642:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4724:5:101","nodeType":"YulTypedName","src":"4724:5:101","type":""},{"name":"pos","nativeSrc":"4731:3:101","nodeType":"YulTypedName","src":"4731:3:101","type":""}],"src":"4642:189:101"},{"body":{"nativeSrc":"4964:153:101","nodeType":"YulBlock","src":"4964:153:101","statements":[{"nativeSrc":"4974:26:101","nodeType":"YulAssignment","src":"4974:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4986:9:101","nodeType":"YulIdentifier","src":"4986:9:101"},{"kind":"number","nativeSrc":"4997:2:101","nodeType":"YulLiteral","src":"4997:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4982:3:101","nodeType":"YulIdentifier","src":"4982:3:101"},"nativeSrc":"4982:18:101","nodeType":"YulFunctionCall","src":"4982:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4974:4:101","nodeType":"YulIdentifier","src":"4974:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5083:6:101","nodeType":"YulIdentifier","src":"5083:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5096:9:101","nodeType":"YulIdentifier","src":"5096:9:101"},{"kind":"number","nativeSrc":"5107:1:101","nodeType":"YulLiteral","src":"5107:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5092:3:101","nodeType":"YulIdentifier","src":"5092:3:101"},"nativeSrc":"5092:17:101","nodeType":"YulFunctionCall","src":"5092:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ISynclubStakeManager_$3630_to_t_address_fromStack","nativeSrc":"5010:72:101","nodeType":"YulIdentifier","src":"5010:72:101"},"nativeSrc":"5010:100:101","nodeType":"YulFunctionCall","src":"5010:100:101"},"nativeSrc":"5010:100:101","nodeType":"YulExpressionStatement","src":"5010:100:101"}]},"name":"abi_encode_tuple_t_contract$_ISynclubStakeManager_$3630__to_t_address__fromStack_reversed","nativeSrc":"4837:280:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4936:9:101","nodeType":"YulTypedName","src":"4936:9:101","type":""},{"name":"value0","nativeSrc":"4948:6:101","nodeType":"YulTypedName","src":"4948:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4959:4:101","nodeType":"YulTypedName","src":"4959:4:101","type":""}],"src":"4837:280:101"},{"body":{"nativeSrc":"5216:66:101","nodeType":"YulBlock","src":"5216:66:101","statements":[{"nativeSrc":"5226:50:101","nodeType":"YulAssignment","src":"5226:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5270:5:101","nodeType":"YulIdentifier","src":"5270:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5239:30:101","nodeType":"YulIdentifier","src":"5239:30:101"},"nativeSrc":"5239:37:101","nodeType":"YulFunctionCall","src":"5239:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5226:9:101","nodeType":"YulIdentifier","src":"5226:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5123:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5196:5:101","nodeType":"YulTypedName","src":"5196:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5206:9:101","nodeType":"YulTypedName","src":"5206:9:101","type":""}],"src":"5123:159:101"},{"body":{"nativeSrc":"5386:99:101","nodeType":"YulBlock","src":"5386:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5403:3:101","nodeType":"YulIdentifier","src":"5403:3:101"},{"arguments":[{"name":"value","nativeSrc":"5472:5:101","nodeType":"YulIdentifier","src":"5472:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5408:63:101","nodeType":"YulIdentifier","src":"5408:63:101"},"nativeSrc":"5408:70:101","nodeType":"YulFunctionCall","src":"5408:70:101"}],"functionName":{"name":"mstore","nativeSrc":"5396:6:101","nodeType":"YulIdentifier","src":"5396:6:101"},"nativeSrc":"5396:83:101","nodeType":"YulFunctionCall","src":"5396:83:101"},"nativeSrc":"5396:83:101","nodeType":"YulExpressionStatement","src":"5396:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5288:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5374:5:101","nodeType":"YulTypedName","src":"5374:5:101","type":""},{"name":"pos","nativeSrc":"5381:3:101","nodeType":"YulTypedName","src":"5381:3:101","type":""}],"src":"5288:197:101"},{"body":{"nativeSrc":"5622:157:101","nodeType":"YulBlock","src":"5622:157:101","statements":[{"nativeSrc":"5632:26:101","nodeType":"YulAssignment","src":"5632:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5644:9:101","nodeType":"YulIdentifier","src":"5644:9:101"},{"kind":"number","nativeSrc":"5655:2:101","nodeType":"YulLiteral","src":"5655:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5640:3:101","nodeType":"YulIdentifier","src":"5640:3:101"},"nativeSrc":"5640:18:101","nodeType":"YulFunctionCall","src":"5640:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5632:4:101","nodeType":"YulIdentifier","src":"5632:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5745:6:101","nodeType":"YulIdentifier","src":"5745:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5758:9:101","nodeType":"YulIdentifier","src":"5758:9:101"},{"kind":"number","nativeSrc":"5769:1:101","nodeType":"YulLiteral","src":"5769:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5754:3:101","nodeType":"YulIdentifier","src":"5754:3:101"},"nativeSrc":"5754:17:101","nodeType":"YulFunctionCall","src":"5754:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5668:76:101","nodeType":"YulIdentifier","src":"5668:76:101"},"nativeSrc":"5668:104:101","nodeType":"YulFunctionCall","src":"5668:104:101"},"nativeSrc":"5668:104:101","nodeType":"YulExpressionStatement","src":"5668:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"5491:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5594:9:101","nodeType":"YulTypedName","src":"5594:9:101","type":""},{"name":"value0","nativeSrc":"5606:6:101","nodeType":"YulTypedName","src":"5606:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5617:4:101","nodeType":"YulTypedName","src":"5617:4:101","type":""}],"src":"5491:288:101"},{"body":{"nativeSrc":"5813:152:101","nodeType":"YulBlock","src":"5813:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5830:1:101","nodeType":"YulLiteral","src":"5830:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5833:77:101","nodeType":"YulLiteral","src":"5833:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5823:6:101","nodeType":"YulIdentifier","src":"5823:6:101"},"nativeSrc":"5823:88:101","nodeType":"YulFunctionCall","src":"5823:88:101"},"nativeSrc":"5823:88:101","nodeType":"YulExpressionStatement","src":"5823:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5927:1:101","nodeType":"YulLiteral","src":"5927:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5930:4:101","nodeType":"YulLiteral","src":"5930:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5920:6:101","nodeType":"YulIdentifier","src":"5920:6:101"},"nativeSrc":"5920:15:101","nodeType":"YulFunctionCall","src":"5920:15:101"},"nativeSrc":"5920:15:101","nodeType":"YulExpressionStatement","src":"5920:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5951:1:101","nodeType":"YulLiteral","src":"5951:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5954:4:101","nodeType":"YulLiteral","src":"5954:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5944:6:101","nodeType":"YulIdentifier","src":"5944:6:101"},"nativeSrc":"5944:15:101","nodeType":"YulFunctionCall","src":"5944:15:101"},"nativeSrc":"5944:15:101","nodeType":"YulExpressionStatement","src":"5944:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5785:180:101","nodeType":"YulFunctionDefinition","src":"5785:180:101"},{"body":{"nativeSrc":"5999:152:101","nodeType":"YulBlock","src":"5999:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6016:1:101","nodeType":"YulLiteral","src":"6016:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6019:77:101","nodeType":"YulLiteral","src":"6019:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6009:6:101","nodeType":"YulIdentifier","src":"6009:6:101"},"nativeSrc":"6009:88:101","nodeType":"YulFunctionCall","src":"6009:88:101"},"nativeSrc":"6009:88:101","nodeType":"YulExpressionStatement","src":"6009:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6113:1:101","nodeType":"YulLiteral","src":"6113:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6116:4:101","nodeType":"YulLiteral","src":"6116:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6106:6:101","nodeType":"YulIdentifier","src":"6106:6:101"},"nativeSrc":"6106:15:101","nodeType":"YulFunctionCall","src":"6106:15:101"},"nativeSrc":"6106:15:101","nodeType":"YulExpressionStatement","src":"6106:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6137:1:101","nodeType":"YulLiteral","src":"6137:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6140:4:101","nodeType":"YulLiteral","src":"6140:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6130:6:101","nodeType":"YulIdentifier","src":"6130:6:101"},"nativeSrc":"6130:15:101","nodeType":"YulFunctionCall","src":"6130:15:101"},"nativeSrc":"6130:15:101","nodeType":"YulExpressionStatement","src":"6130:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5971:180:101","nodeType":"YulFunctionDefinition","src":"5971:180:101"},{"body":{"nativeSrc":"6199:143:101","nodeType":"YulBlock","src":"6199:143:101","statements":[{"nativeSrc":"6209:25:101","nodeType":"YulAssignment","src":"6209:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6232:1:101","nodeType":"YulIdentifier","src":"6232:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6214:17:101","nodeType":"YulIdentifier","src":"6214:17:101"},"nativeSrc":"6214:20:101","nodeType":"YulFunctionCall","src":"6214:20:101"},"variableNames":[{"name":"x","nativeSrc":"6209:1:101","nodeType":"YulIdentifier","src":"6209:1:101"}]},{"nativeSrc":"6243:25:101","nodeType":"YulAssignment","src":"6243:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6266:1:101","nodeType":"YulIdentifier","src":"6266:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6248:17:101","nodeType":"YulIdentifier","src":"6248:17:101"},"nativeSrc":"6248:20:101","nodeType":"YulFunctionCall","src":"6248:20:101"},"variableNames":[{"name":"y","nativeSrc":"6243:1:101","nodeType":"YulIdentifier","src":"6243:1:101"}]},{"body":{"nativeSrc":"6290:22:101","nodeType":"YulBlock","src":"6290:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6292:16:101","nodeType":"YulIdentifier","src":"6292:16:101"},"nativeSrc":"6292:18:101","nodeType":"YulFunctionCall","src":"6292:18:101"},"nativeSrc":"6292:18:101","nodeType":"YulExpressionStatement","src":"6292:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6287:1:101","nodeType":"YulIdentifier","src":"6287:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6280:6:101","nodeType":"YulIdentifier","src":"6280:6:101"},"nativeSrc":"6280:9:101","nodeType":"YulFunctionCall","src":"6280:9:101"},"nativeSrc":"6277:35:101","nodeType":"YulIf","src":"6277:35:101"},{"nativeSrc":"6322:14:101","nodeType":"YulAssignment","src":"6322:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6331:1:101","nodeType":"YulIdentifier","src":"6331:1:101"},{"name":"y","nativeSrc":"6334:1:101","nodeType":"YulIdentifier","src":"6334:1:101"}],"functionName":{"name":"div","nativeSrc":"6327:3:101","nodeType":"YulIdentifier","src":"6327:3:101"},"nativeSrc":"6327:9:101","nodeType":"YulFunctionCall","src":"6327:9:101"},"variableNames":[{"name":"r","nativeSrc":"6322:1:101","nodeType":"YulIdentifier","src":"6322:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6157:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6188:1:101","nodeType":"YulTypedName","src":"6188:1:101","type":""},{"name":"y","nativeSrc":"6191:1:101","nodeType":"YulTypedName","src":"6191:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6197:1:101","nodeType":"YulTypedName","src":"6197:1:101","type":""}],"src":"6157:185:101"},{"body":{"nativeSrc":"6393:149:101","nodeType":"YulBlock","src":"6393:149:101","statements":[{"nativeSrc":"6403:25:101","nodeType":"YulAssignment","src":"6403:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6426:1:101","nodeType":"YulIdentifier","src":"6426:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6408:17:101","nodeType":"YulIdentifier","src":"6408:17:101"},"nativeSrc":"6408:20:101","nodeType":"YulFunctionCall","src":"6408:20:101"},"variableNames":[{"name":"x","nativeSrc":"6403:1:101","nodeType":"YulIdentifier","src":"6403:1:101"}]},{"nativeSrc":"6437:25:101","nodeType":"YulAssignment","src":"6437:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6460:1:101","nodeType":"YulIdentifier","src":"6460:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6442:17:101","nodeType":"YulIdentifier","src":"6442:17:101"},"nativeSrc":"6442:20:101","nodeType":"YulFunctionCall","src":"6442:20:101"},"variableNames":[{"name":"y","nativeSrc":"6437:1:101","nodeType":"YulIdentifier","src":"6437:1:101"}]},{"nativeSrc":"6471:17:101","nodeType":"YulAssignment","src":"6471:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6483:1:101","nodeType":"YulIdentifier","src":"6483:1:101"},{"name":"y","nativeSrc":"6486:1:101","nodeType":"YulIdentifier","src":"6486:1:101"}],"functionName":{"name":"sub","nativeSrc":"6479:3:101","nodeType":"YulIdentifier","src":"6479:3:101"},"nativeSrc":"6479:9:101","nodeType":"YulFunctionCall","src":"6479:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6471:4:101","nodeType":"YulIdentifier","src":"6471:4:101"}]},{"body":{"nativeSrc":"6513:22:101","nodeType":"YulBlock","src":"6513:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6515:16:101","nodeType":"YulIdentifier","src":"6515:16:101"},"nativeSrc":"6515:18:101","nodeType":"YulFunctionCall","src":"6515:18:101"},"nativeSrc":"6515:18:101","nodeType":"YulExpressionStatement","src":"6515:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6504:4:101","nodeType":"YulIdentifier","src":"6504:4:101"},{"name":"x","nativeSrc":"6510:1:101","nodeType":"YulIdentifier","src":"6510:1:101"}],"functionName":{"name":"gt","nativeSrc":"6501:2:101","nodeType":"YulIdentifier","src":"6501:2:101"},"nativeSrc":"6501:11:101","nodeType":"YulFunctionCall","src":"6501:11:101"},"nativeSrc":"6498:37:101","nodeType":"YulIf","src":"6498:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6348:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6379:1:101","nodeType":"YulTypedName","src":"6379:1:101","type":""},{"name":"y","nativeSrc":"6382:1:101","nodeType":"YulTypedName","src":"6382:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6388:4:101","nodeType":"YulTypedName","src":"6388:4:101","type":""}],"src":"6348:194:101"},{"body":{"nativeSrc":"6592:147:101","nodeType":"YulBlock","src":"6592:147:101","statements":[{"nativeSrc":"6602:25:101","nodeType":"YulAssignment","src":"6602:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6625:1:101","nodeType":"YulIdentifier","src":"6625:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6607:17:101","nodeType":"YulIdentifier","src":"6607:17:101"},"nativeSrc":"6607:20:101","nodeType":"YulFunctionCall","src":"6607:20:101"},"variableNames":[{"name":"x","nativeSrc":"6602:1:101","nodeType":"YulIdentifier","src":"6602:1:101"}]},{"nativeSrc":"6636:25:101","nodeType":"YulAssignment","src":"6636:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6659:1:101","nodeType":"YulIdentifier","src":"6659:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6641:17:101","nodeType":"YulIdentifier","src":"6641:17:101"},"nativeSrc":"6641:20:101","nodeType":"YulFunctionCall","src":"6641:20:101"},"variableNames":[{"name":"y","nativeSrc":"6636:1:101","nodeType":"YulIdentifier","src":"6636:1:101"}]},{"nativeSrc":"6670:16:101","nodeType":"YulAssignment","src":"6670:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6681:1:101","nodeType":"YulIdentifier","src":"6681:1:101"},{"name":"y","nativeSrc":"6684:1:101","nodeType":"YulIdentifier","src":"6684:1:101"}],"functionName":{"name":"add","nativeSrc":"6677:3:101","nodeType":"YulIdentifier","src":"6677:3:101"},"nativeSrc":"6677:9:101","nodeType":"YulFunctionCall","src":"6677:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6670:3:101","nodeType":"YulIdentifier","src":"6670:3:101"}]},{"body":{"nativeSrc":"6710:22:101","nodeType":"YulBlock","src":"6710:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6712:16:101","nodeType":"YulIdentifier","src":"6712:16:101"},"nativeSrc":"6712:18:101","nodeType":"YulFunctionCall","src":"6712:18:101"},"nativeSrc":"6712:18:101","nodeType":"YulExpressionStatement","src":"6712:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6702:1:101","nodeType":"YulIdentifier","src":"6702:1:101"},{"name":"sum","nativeSrc":"6705:3:101","nodeType":"YulIdentifier","src":"6705:3:101"}],"functionName":{"name":"gt","nativeSrc":"6699:2:101","nodeType":"YulIdentifier","src":"6699:2:101"},"nativeSrc":"6699:10:101","nodeType":"YulFunctionCall","src":"6699:10:101"},"nativeSrc":"6696:36:101","nodeType":"YulIf","src":"6696:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6548:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6579:1:101","nodeType":"YulTypedName","src":"6579:1:101","type":""},{"name":"y","nativeSrc":"6582:1:101","nodeType":"YulTypedName","src":"6582:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6588:3:101","nodeType":"YulTypedName","src":"6588:3:101","type":""}],"src":"6548:191:101"},{"body":{"nativeSrc":"6808:80:101","nodeType":"YulBlock","src":"6808:80:101","statements":[{"nativeSrc":"6818:22:101","nodeType":"YulAssignment","src":"6818:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6833:6:101","nodeType":"YulIdentifier","src":"6833:6:101"}],"functionName":{"name":"mload","nativeSrc":"6827:5:101","nodeType":"YulIdentifier","src":"6827:5:101"},"nativeSrc":"6827:13:101","nodeType":"YulFunctionCall","src":"6827:13:101"},"variableNames":[{"name":"value","nativeSrc":"6818:5:101","nodeType":"YulIdentifier","src":"6818:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6876:5:101","nodeType":"YulIdentifier","src":"6876:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6849:26:101","nodeType":"YulIdentifier","src":"6849:26:101"},"nativeSrc":"6849:33:101","nodeType":"YulFunctionCall","src":"6849:33:101"},"nativeSrc":"6849:33:101","nodeType":"YulExpressionStatement","src":"6849:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6745:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6786:6:101","nodeType":"YulTypedName","src":"6786:6:101","type":""},{"name":"end","nativeSrc":"6794:3:101","nodeType":"YulTypedName","src":"6794:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6802:5:101","nodeType":"YulTypedName","src":"6802:5:101","type":""}],"src":"6745:143:101"},{"body":{"nativeSrc":"6971:274:101","nodeType":"YulBlock","src":"6971:274:101","statements":[{"body":{"nativeSrc":"7017:83:101","nodeType":"YulBlock","src":"7017:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7019:77:101","nodeType":"YulIdentifier","src":"7019:77:101"},"nativeSrc":"7019:79:101","nodeType":"YulFunctionCall","src":"7019:79:101"},"nativeSrc":"7019:79:101","nodeType":"YulExpressionStatement","src":"7019:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6992:7:101","nodeType":"YulIdentifier","src":"6992:7:101"},{"name":"headStart","nativeSrc":"7001:9:101","nodeType":"YulIdentifier","src":"7001:9:101"}],"functionName":{"name":"sub","nativeSrc":"6988:3:101","nodeType":"YulIdentifier","src":"6988:3:101"},"nativeSrc":"6988:23:101","nodeType":"YulFunctionCall","src":"6988:23:101"},{"kind":"number","nativeSrc":"7013:2:101","nodeType":"YulLiteral","src":"7013:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6984:3:101","nodeType":"YulIdentifier","src":"6984:3:101"},"nativeSrc":"6984:32:101","nodeType":"YulFunctionCall","src":"6984:32:101"},"nativeSrc":"6981:119:101","nodeType":"YulIf","src":"6981:119:101"},{"nativeSrc":"7110:128:101","nodeType":"YulBlock","src":"7110:128:101","statements":[{"nativeSrc":"7125:15:101","nodeType":"YulVariableDeclaration","src":"7125:15:101","value":{"kind":"number","nativeSrc":"7139:1:101","nodeType":"YulLiteral","src":"7139:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7129:6:101","nodeType":"YulTypedName","src":"7129:6:101","type":""}]},{"nativeSrc":"7154:74:101","nodeType":"YulAssignment","src":"7154:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7200:9:101","nodeType":"YulIdentifier","src":"7200:9:101"},{"name":"offset","nativeSrc":"7211:6:101","nodeType":"YulIdentifier","src":"7211:6:101"}],"functionName":{"name":"add","nativeSrc":"7196:3:101","nodeType":"YulIdentifier","src":"7196:3:101"},"nativeSrc":"7196:22:101","nodeType":"YulFunctionCall","src":"7196:22:101"},{"name":"dataEnd","nativeSrc":"7220:7:101","nodeType":"YulIdentifier","src":"7220:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7164:31:101","nodeType":"YulIdentifier","src":"7164:31:101"},"nativeSrc":"7164:64:101","nodeType":"YulFunctionCall","src":"7164:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7154:6:101","nodeType":"YulIdentifier","src":"7154:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6894:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6941:9:101","nodeType":"YulTypedName","src":"6941:9:101","type":""},{"name":"dataEnd","nativeSrc":"6952:7:101","nodeType":"YulTypedName","src":"6952:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6964:6:101","nodeType":"YulTypedName","src":"6964:6:101","type":""}],"src":"6894:351:101"},{"body":{"nativeSrc":"7299:362:101","nodeType":"YulBlock","src":"7299:362:101","statements":[{"nativeSrc":"7309:25:101","nodeType":"YulAssignment","src":"7309:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7332:1:101","nodeType":"YulIdentifier","src":"7332:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7314:17:101","nodeType":"YulIdentifier","src":"7314:17:101"},"nativeSrc":"7314:20:101","nodeType":"YulFunctionCall","src":"7314:20:101"},"variableNames":[{"name":"x","nativeSrc":"7309:1:101","nodeType":"YulIdentifier","src":"7309:1:101"}]},{"nativeSrc":"7343:25:101","nodeType":"YulAssignment","src":"7343:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7366:1:101","nodeType":"YulIdentifier","src":"7366:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7348:17:101","nodeType":"YulIdentifier","src":"7348:17:101"},"nativeSrc":"7348:20:101","nodeType":"YulFunctionCall","src":"7348:20:101"},"variableNames":[{"name":"y","nativeSrc":"7343:1:101","nodeType":"YulIdentifier","src":"7343:1:101"}]},{"nativeSrc":"7377:28:101","nodeType":"YulVariableDeclaration","src":"7377:28:101","value":{"arguments":[{"name":"x","nativeSrc":"7400:1:101","nodeType":"YulIdentifier","src":"7400:1:101"},{"name":"y","nativeSrc":"7403:1:101","nodeType":"YulIdentifier","src":"7403:1:101"}],"functionName":{"name":"mul","nativeSrc":"7396:3:101","nodeType":"YulIdentifier","src":"7396:3:101"},"nativeSrc":"7396:9:101","nodeType":"YulFunctionCall","src":"7396:9:101"},"variables":[{"name":"product_raw","nativeSrc":"7381:11:101","nodeType":"YulTypedName","src":"7381:11:101","type":""}]},{"nativeSrc":"7414:41:101","nodeType":"YulAssignment","src":"7414:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"7443:11:101","nodeType":"YulIdentifier","src":"7443:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7425:17:101","nodeType":"YulIdentifier","src":"7425:17:101"},"nativeSrc":"7425:30:101","nodeType":"YulFunctionCall","src":"7425:30:101"},"variableNames":[{"name":"product","nativeSrc":"7414:7:101","nodeType":"YulIdentifier","src":"7414:7:101"}]},{"body":{"nativeSrc":"7632:22:101","nodeType":"YulBlock","src":"7632:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7634:16:101","nodeType":"YulIdentifier","src":"7634:16:101"},"nativeSrc":"7634:18:101","nodeType":"YulFunctionCall","src":"7634:18:101"},"nativeSrc":"7634:18:101","nodeType":"YulExpressionStatement","src":"7634:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7565:1:101","nodeType":"YulIdentifier","src":"7565:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7558:6:101","nodeType":"YulIdentifier","src":"7558:6:101"},"nativeSrc":"7558:9:101","nodeType":"YulFunctionCall","src":"7558:9:101"},{"arguments":[{"name":"y","nativeSrc":"7588:1:101","nodeType":"YulIdentifier","src":"7588:1:101"},{"arguments":[{"name":"product","nativeSrc":"7595:7:101","nodeType":"YulIdentifier","src":"7595:7:101"},{"name":"x","nativeSrc":"7604:1:101","nodeType":"YulIdentifier","src":"7604:1:101"}],"functionName":{"name":"div","nativeSrc":"7591:3:101","nodeType":"YulIdentifier","src":"7591:3:101"},"nativeSrc":"7591:15:101","nodeType":"YulFunctionCall","src":"7591:15:101"}],"functionName":{"name":"eq","nativeSrc":"7585:2:101","nodeType":"YulIdentifier","src":"7585:2:101"},"nativeSrc":"7585:22:101","nodeType":"YulFunctionCall","src":"7585:22:101"}],"functionName":{"name":"or","nativeSrc":"7538:2:101","nodeType":"YulIdentifier","src":"7538:2:101"},"nativeSrc":"7538:83:101","nodeType":"YulFunctionCall","src":"7538:83:101"}],"functionName":{"name":"iszero","nativeSrc":"7518:6:101","nodeType":"YulIdentifier","src":"7518:6:101"},"nativeSrc":"7518:113:101","nodeType":"YulFunctionCall","src":"7518:113:101"},"nativeSrc":"7515:139:101","nodeType":"YulIf","src":"7515:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"7251:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7282:1:101","nodeType":"YulTypedName","src":"7282:1:101","type":""},{"name":"y","nativeSrc":"7285:1:101","nodeType":"YulTypedName","src":"7285:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7291:7:101","nodeType":"YulTypedName","src":"7291:7:101","type":""}],"src":"7251:410:101"},{"body":{"nativeSrc":"7710:43:101","nodeType":"YulBlock","src":"7710:43:101","statements":[{"nativeSrc":"7720:27:101","nodeType":"YulAssignment","src":"7720:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7735:5:101","nodeType":"YulIdentifier","src":"7735:5:101"},{"kind":"number","nativeSrc":"7742:4:101","nodeType":"YulLiteral","src":"7742:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7731:3:101","nodeType":"YulIdentifier","src":"7731:3:101"},"nativeSrc":"7731:16:101","nodeType":"YulFunctionCall","src":"7731:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7720:7:101","nodeType":"YulIdentifier","src":"7720:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7667:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7692:5:101","nodeType":"YulTypedName","src":"7692:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7702:7:101","nodeType":"YulTypedName","src":"7702:7:101","type":""}],"src":"7667:86:101"},{"body":{"nativeSrc":"7800:77:101","nodeType":"YulBlock","src":"7800:77:101","statements":[{"body":{"nativeSrc":"7855:16:101","nodeType":"YulBlock","src":"7855:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7864:1:101","nodeType":"YulLiteral","src":"7864:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7867:1:101","nodeType":"YulLiteral","src":"7867:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7857:6:101","nodeType":"YulIdentifier","src":"7857:6:101"},"nativeSrc":"7857:12:101","nodeType":"YulFunctionCall","src":"7857:12:101"},"nativeSrc":"7857:12:101","nodeType":"YulExpressionStatement","src":"7857:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7823:5:101","nodeType":"YulIdentifier","src":"7823:5:101"},{"arguments":[{"name":"value","nativeSrc":"7846:5:101","nodeType":"YulIdentifier","src":"7846:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7830:15:101","nodeType":"YulIdentifier","src":"7830:15:101"},"nativeSrc":"7830:22:101","nodeType":"YulFunctionCall","src":"7830:22:101"}],"functionName":{"name":"eq","nativeSrc":"7820:2:101","nodeType":"YulIdentifier","src":"7820:2:101"},"nativeSrc":"7820:33:101","nodeType":"YulFunctionCall","src":"7820:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7813:6:101","nodeType":"YulIdentifier","src":"7813:6:101"},"nativeSrc":"7813:41:101","nodeType":"YulFunctionCall","src":"7813:41:101"},"nativeSrc":"7810:61:101","nodeType":"YulIf","src":"7810:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7759:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7793:5:101","nodeType":"YulTypedName","src":"7793:5:101","type":""}],"src":"7759:118:101"},{"body":{"nativeSrc":"7944:78:101","nodeType":"YulBlock","src":"7944:78:101","statements":[{"nativeSrc":"7954:22:101","nodeType":"YulAssignment","src":"7954:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7969:6:101","nodeType":"YulIdentifier","src":"7969:6:101"}],"functionName":{"name":"mload","nativeSrc":"7963:5:101","nodeType":"YulIdentifier","src":"7963:5:101"},"nativeSrc":"7963:13:101","nodeType":"YulFunctionCall","src":"7963:13:101"},"variableNames":[{"name":"value","nativeSrc":"7954:5:101","nodeType":"YulIdentifier","src":"7954:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8010:5:101","nodeType":"YulIdentifier","src":"8010:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7985:24:101","nodeType":"YulIdentifier","src":"7985:24:101"},"nativeSrc":"7985:31:101","nodeType":"YulFunctionCall","src":"7985:31:101"},"nativeSrc":"7985:31:101","nodeType":"YulExpressionStatement","src":"7985:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7883:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7922:6:101","nodeType":"YulTypedName","src":"7922:6:101","type":""},{"name":"end","nativeSrc":"7930:3:101","nodeType":"YulTypedName","src":"7930:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7938:5:101","nodeType":"YulTypedName","src":"7938:5:101","type":""}],"src":"7883:139:101"},{"body":{"nativeSrc":"8103:272:101","nodeType":"YulBlock","src":"8103:272:101","statements":[{"body":{"nativeSrc":"8149:83:101","nodeType":"YulBlock","src":"8149:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8151:77:101","nodeType":"YulIdentifier","src":"8151:77:101"},"nativeSrc":"8151:79:101","nodeType":"YulFunctionCall","src":"8151:79:101"},"nativeSrc":"8151:79:101","nodeType":"YulExpressionStatement","src":"8151:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8124:7:101","nodeType":"YulIdentifier","src":"8124:7:101"},{"name":"headStart","nativeSrc":"8133:9:101","nodeType":"YulIdentifier","src":"8133:9:101"}],"functionName":{"name":"sub","nativeSrc":"8120:3:101","nodeType":"YulIdentifier","src":"8120:3:101"},"nativeSrc":"8120:23:101","nodeType":"YulFunctionCall","src":"8120:23:101"},{"kind":"number","nativeSrc":"8145:2:101","nodeType":"YulLiteral","src":"8145:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8116:3:101","nodeType":"YulIdentifier","src":"8116:3:101"},"nativeSrc":"8116:32:101","nodeType":"YulFunctionCall","src":"8116:32:101"},"nativeSrc":"8113:119:101","nodeType":"YulIf","src":"8113:119:101"},{"nativeSrc":"8242:126:101","nodeType":"YulBlock","src":"8242:126:101","statements":[{"nativeSrc":"8257:15:101","nodeType":"YulVariableDeclaration","src":"8257:15:101","value":{"kind":"number","nativeSrc":"8271:1:101","nodeType":"YulLiteral","src":"8271:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8261:6:101","nodeType":"YulTypedName","src":"8261:6:101","type":""}]},{"nativeSrc":"8286:72:101","nodeType":"YulAssignment","src":"8286:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8330:9:101","nodeType":"YulIdentifier","src":"8330:9:101"},{"name":"offset","nativeSrc":"8341:6:101","nodeType":"YulIdentifier","src":"8341:6:101"}],"functionName":{"name":"add","nativeSrc":"8326:3:101","nodeType":"YulIdentifier","src":"8326:3:101"},"nativeSrc":"8326:22:101","nodeType":"YulFunctionCall","src":"8326:22:101"},{"name":"dataEnd","nativeSrc":"8350:7:101","nodeType":"YulIdentifier","src":"8350:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"8296:29:101","nodeType":"YulIdentifier","src":"8296:29:101"},"nativeSrc":"8296:62:101","nodeType":"YulFunctionCall","src":"8296:62:101"},"variableNames":[{"name":"value0","nativeSrc":"8286:6:101","nodeType":"YulIdentifier","src":"8286:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"8028:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8073:9:101","nodeType":"YulTypedName","src":"8073:9:101","type":""},{"name":"dataEnd","nativeSrc":"8084:7:101","nodeType":"YulTypedName","src":"8084:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8096:6:101","nodeType":"YulTypedName","src":"8096:6:101","type":""}],"src":"8028:347:101"},{"body":{"nativeSrc":"8432:51:101","nodeType":"YulBlock","src":"8432:51:101","statements":[{"nativeSrc":"8442:34:101","nodeType":"YulAssignment","src":"8442:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8467:1:101","nodeType":"YulLiteral","src":"8467:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8470:5:101","nodeType":"YulIdentifier","src":"8470:5:101"}],"functionName":{"name":"shr","nativeSrc":"8463:3:101","nodeType":"YulIdentifier","src":"8463:3:101"},"nativeSrc":"8463:13:101","nodeType":"YulFunctionCall","src":"8463:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8442:8:101","nodeType":"YulIdentifier","src":"8442:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"8381:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8413:5:101","nodeType":"YulTypedName","src":"8413:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8423:8:101","nodeType":"YulTypedName","src":"8423:8:101","type":""}],"src":"8381:102:101"},{"body":{"nativeSrc":"8562:775:101","nodeType":"YulBlock","src":"8562:775:101","statements":[{"nativeSrc":"8572:15:101","nodeType":"YulAssignment","src":"8572:15:101","value":{"name":"_power","nativeSrc":"8581:6:101","nodeType":"YulIdentifier","src":"8581:6:101"},"variableNames":[{"name":"power","nativeSrc":"8572:5:101","nodeType":"YulIdentifier","src":"8572:5:101"}]},{"nativeSrc":"8596:14:101","nodeType":"YulAssignment","src":"8596:14:101","value":{"name":"_base","nativeSrc":"8605:5:101","nodeType":"YulIdentifier","src":"8605:5:101"},"variableNames":[{"name":"base","nativeSrc":"8596:4:101","nodeType":"YulIdentifier","src":"8596:4:101"}]},{"body":{"nativeSrc":"8654:677:101","nodeType":"YulBlock","src":"8654:677:101","statements":[{"body":{"nativeSrc":"8742:22:101","nodeType":"YulBlock","src":"8742:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8744:16:101","nodeType":"YulIdentifier","src":"8744:16:101"},"nativeSrc":"8744:18:101","nodeType":"YulFunctionCall","src":"8744:18:101"},"nativeSrc":"8744:18:101","nodeType":"YulExpressionStatement","src":"8744:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8720:4:101","nodeType":"YulIdentifier","src":"8720:4:101"},{"arguments":[{"name":"max","nativeSrc":"8730:3:101","nodeType":"YulIdentifier","src":"8730:3:101"},{"name":"base","nativeSrc":"8735:4:101","nodeType":"YulIdentifier","src":"8735:4:101"}],"functionName":{"name":"div","nativeSrc":"8726:3:101","nodeType":"YulIdentifier","src":"8726:3:101"},"nativeSrc":"8726:14:101","nodeType":"YulFunctionCall","src":"8726:14:101"}],"functionName":{"name":"gt","nativeSrc":"8717:2:101","nodeType":"YulIdentifier","src":"8717:2:101"},"nativeSrc":"8717:24:101","nodeType":"YulFunctionCall","src":"8717:24:101"},"nativeSrc":"8714:50:101","nodeType":"YulIf","src":"8714:50:101"},{"body":{"nativeSrc":"8809:419:101","nodeType":"YulBlock","src":"8809:419:101","statements":[{"nativeSrc":"9189:25:101","nodeType":"YulAssignment","src":"9189:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9202:5:101","nodeType":"YulIdentifier","src":"9202:5:101"},{"name":"base","nativeSrc":"9209:4:101","nodeType":"YulIdentifier","src":"9209:4:101"}],"functionName":{"name":"mul","nativeSrc":"9198:3:101","nodeType":"YulIdentifier","src":"9198:3:101"},"nativeSrc":"9198:16:101","nodeType":"YulFunctionCall","src":"9198:16:101"},"variableNames":[{"name":"power","nativeSrc":"9189:5:101","nodeType":"YulIdentifier","src":"9189:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8784:8:101","nodeType":"YulIdentifier","src":"8784:8:101"},{"kind":"number","nativeSrc":"8794:1:101","nodeType":"YulLiteral","src":"8794:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8780:3:101","nodeType":"YulIdentifier","src":"8780:3:101"},"nativeSrc":"8780:16:101","nodeType":"YulFunctionCall","src":"8780:16:101"},"nativeSrc":"8777:451:101","nodeType":"YulIf","src":"8777:451:101"},{"nativeSrc":"9241:23:101","nodeType":"YulAssignment","src":"9241:23:101","value":{"arguments":[{"name":"base","nativeSrc":"9253:4:101","nodeType":"YulIdentifier","src":"9253:4:101"},{"name":"base","nativeSrc":"9259:4:101","nodeType":"YulIdentifier","src":"9259:4:101"}],"functionName":{"name":"mul","nativeSrc":"9249:3:101","nodeType":"YulIdentifier","src":"9249:3:101"},"nativeSrc":"9249:15:101","nodeType":"YulFunctionCall","src":"9249:15:101"},"variableNames":[{"name":"base","nativeSrc":"9241:4:101","nodeType":"YulIdentifier","src":"9241:4:101"}]},{"nativeSrc":"9277:44:101","nodeType":"YulAssignment","src":"9277:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9312:8:101","nodeType":"YulIdentifier","src":"9312:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"9289:22:101","nodeType":"YulIdentifier","src":"9289:22:101"},"nativeSrc":"9289:32:101","nodeType":"YulFunctionCall","src":"9289:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"9277:8:101","nodeType":"YulIdentifier","src":"9277:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8630:8:101","nodeType":"YulIdentifier","src":"8630:8:101"},{"kind":"number","nativeSrc":"8640:1:101","nodeType":"YulLiteral","src":"8640:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8627:2:101","nodeType":"YulIdentifier","src":"8627:2:101"},"nativeSrc":"8627:15:101","nodeType":"YulFunctionCall","src":"8627:15:101"},"nativeSrc":"8619:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8643:2:101","nodeType":"YulBlock","src":"8643:2:101","statements":[]},"pre":{"nativeSrc":"8623:3:101","nodeType":"YulBlock","src":"8623:3:101","statements":[]},"src":"8619:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8489:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8517:6:101","nodeType":"YulTypedName","src":"8517:6:101","type":""},{"name":"_base","nativeSrc":"8525:5:101","nodeType":"YulTypedName","src":"8525:5:101","type":""},{"name":"exponent","nativeSrc":"8532:8:101","nodeType":"YulTypedName","src":"8532:8:101","type":""},{"name":"max","nativeSrc":"8542:3:101","nodeType":"YulTypedName","src":"8542:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8550:5:101","nodeType":"YulTypedName","src":"8550:5:101","type":""},{"name":"base","nativeSrc":"8557:4:101","nodeType":"YulTypedName","src":"8557:4:101","type":""}],"src":"8489:848:101"},{"body":{"nativeSrc":"9403:1013:101","nodeType":"YulBlock","src":"9403:1013:101","statements":[{"body":{"nativeSrc":"9598:20:101","nodeType":"YulBlock","src":"9598:20:101","statements":[{"nativeSrc":"9600:10:101","nodeType":"YulAssignment","src":"9600:10:101","value":{"kind":"number","nativeSrc":"9609:1:101","nodeType":"YulLiteral","src":"9609:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9600:5:101","nodeType":"YulIdentifier","src":"9600:5:101"}]},{"nativeSrc":"9611:5:101","nodeType":"YulLeave","src":"9611:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9588:8:101","nodeType":"YulIdentifier","src":"9588:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9581:6:101","nodeType":"YulIdentifier","src":"9581:6:101"},"nativeSrc":"9581:16:101","nodeType":"YulFunctionCall","src":"9581:16:101"},"nativeSrc":"9578:40:101","nodeType":"YulIf","src":"9578:40:101"},{"body":{"nativeSrc":"9643:20:101","nodeType":"YulBlock","src":"9643:20:101","statements":[{"nativeSrc":"9645:10:101","nodeType":"YulAssignment","src":"9645:10:101","value":{"kind":"number","nativeSrc":"9654:1:101","nodeType":"YulLiteral","src":"9654:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9645:5:101","nodeType":"YulIdentifier","src":"9645:5:101"}]},{"nativeSrc":"9656:5:101","nodeType":"YulLeave","src":"9656:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9637:4:101","nodeType":"YulIdentifier","src":"9637:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9630:6:101","nodeType":"YulIdentifier","src":"9630:6:101"},"nativeSrc":"9630:12:101","nodeType":"YulFunctionCall","src":"9630:12:101"},"nativeSrc":"9627:36:101","nodeType":"YulIf","src":"9627:36:101"},{"cases":[{"body":{"nativeSrc":"9773:20:101","nodeType":"YulBlock","src":"9773:20:101","statements":[{"nativeSrc":"9775:10:101","nodeType":"YulAssignment","src":"9775:10:101","value":{"kind":"number","nativeSrc":"9784:1:101","nodeType":"YulLiteral","src":"9784:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9775:5:101","nodeType":"YulIdentifier","src":"9775:5:101"}]},{"nativeSrc":"9786:5:101","nodeType":"YulLeave","src":"9786:5:101"}]},"nativeSrc":"9766:27:101","nodeType":"YulCase","src":"9766:27:101","value":{"kind":"number","nativeSrc":"9771:1:101","nodeType":"YulLiteral","src":"9771:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9817:176:101","nodeType":"YulBlock","src":"9817:176:101","statements":[{"body":{"nativeSrc":"9852:22:101","nodeType":"YulBlock","src":"9852:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9854:16:101","nodeType":"YulIdentifier","src":"9854:16:101"},"nativeSrc":"9854:18:101","nodeType":"YulFunctionCall","src":"9854:18:101"},"nativeSrc":"9854:18:101","nodeType":"YulExpressionStatement","src":"9854:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9837:8:101","nodeType":"YulIdentifier","src":"9837:8:101"},{"kind":"number","nativeSrc":"9847:3:101","nodeType":"YulLiteral","src":"9847:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9834:2:101","nodeType":"YulIdentifier","src":"9834:2:101"},"nativeSrc":"9834:17:101","nodeType":"YulFunctionCall","src":"9834:17:101"},"nativeSrc":"9831:43:101","nodeType":"YulIf","src":"9831:43:101"},{"nativeSrc":"9887:25:101","nodeType":"YulAssignment","src":"9887:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9900:1:101","nodeType":"YulLiteral","src":"9900:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9903:8:101","nodeType":"YulIdentifier","src":"9903:8:101"}],"functionName":{"name":"exp","nativeSrc":"9896:3:101","nodeType":"YulIdentifier","src":"9896:3:101"},"nativeSrc":"9896:16:101","nodeType":"YulFunctionCall","src":"9896:16:101"},"variableNames":[{"name":"power","nativeSrc":"9887:5:101","nodeType":"YulIdentifier","src":"9887:5:101"}]},{"body":{"nativeSrc":"9943:22:101","nodeType":"YulBlock","src":"9943:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9945:16:101","nodeType":"YulIdentifier","src":"9945:16:101"},"nativeSrc":"9945:18:101","nodeType":"YulFunctionCall","src":"9945:18:101"},"nativeSrc":"9945:18:101","nodeType":"YulExpressionStatement","src":"9945:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9931:5:101","nodeType":"YulIdentifier","src":"9931:5:101"},{"name":"max","nativeSrc":"9938:3:101","nodeType":"YulIdentifier","src":"9938:3:101"}],"functionName":{"name":"gt","nativeSrc":"9928:2:101","nodeType":"YulIdentifier","src":"9928:2:101"},"nativeSrc":"9928:14:101","nodeType":"YulFunctionCall","src":"9928:14:101"},"nativeSrc":"9925:40:101","nodeType":"YulIf","src":"9925:40:101"},{"nativeSrc":"9978:5:101","nodeType":"YulLeave","src":"9978:5:101"}]},"nativeSrc":"9802:191:101","nodeType":"YulCase","src":"9802:191:101","value":{"kind":"number","nativeSrc":"9807:1:101","nodeType":"YulLiteral","src":"9807:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9723:4:101","nodeType":"YulIdentifier","src":"9723:4:101"},"nativeSrc":"9716:277:101","nodeType":"YulSwitch","src":"9716:277:101"},{"body":{"nativeSrc":"10125:123:101","nodeType":"YulBlock","src":"10125:123:101","statements":[{"nativeSrc":"10139:28:101","nodeType":"YulAssignment","src":"10139:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10152:4:101","nodeType":"YulIdentifier","src":"10152:4:101"},{"name":"exponent","nativeSrc":"10158:8:101","nodeType":"YulIdentifier","src":"10158:8:101"}],"functionName":{"name":"exp","nativeSrc":"10148:3:101","nodeType":"YulIdentifier","src":"10148:3:101"},"nativeSrc":"10148:19:101","nodeType":"YulFunctionCall","src":"10148:19:101"},"variableNames":[{"name":"power","nativeSrc":"10139:5:101","nodeType":"YulIdentifier","src":"10139:5:101"}]},{"body":{"nativeSrc":"10198:22:101","nodeType":"YulBlock","src":"10198:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10200:16:101","nodeType":"YulIdentifier","src":"10200:16:101"},"nativeSrc":"10200:18:101","nodeType":"YulFunctionCall","src":"10200:18:101"},"nativeSrc":"10200:18:101","nodeType":"YulExpressionStatement","src":"10200:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10186:5:101","nodeType":"YulIdentifier","src":"10186:5:101"},{"name":"max","nativeSrc":"10193:3:101","nodeType":"YulIdentifier","src":"10193:3:101"}],"functionName":{"name":"gt","nativeSrc":"10183:2:101","nodeType":"YulIdentifier","src":"10183:2:101"},"nativeSrc":"10183:14:101","nodeType":"YulFunctionCall","src":"10183:14:101"},"nativeSrc":"10180:40:101","nodeType":"YulIf","src":"10180:40:101"},{"nativeSrc":"10233:5:101","nodeType":"YulLeave","src":"10233:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10028:4:101","nodeType":"YulIdentifier","src":"10028:4:101"},{"kind":"number","nativeSrc":"10034:2:101","nodeType":"YulLiteral","src":"10034:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"10025:2:101","nodeType":"YulIdentifier","src":"10025:2:101"},"nativeSrc":"10025:12:101","nodeType":"YulFunctionCall","src":"10025:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"10042:8:101","nodeType":"YulIdentifier","src":"10042:8:101"},{"kind":"number","nativeSrc":"10052:2:101","nodeType":"YulLiteral","src":"10052:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"10039:2:101","nodeType":"YulIdentifier","src":"10039:2:101"},"nativeSrc":"10039:16:101","nodeType":"YulFunctionCall","src":"10039:16:101"}],"functionName":{"name":"and","nativeSrc":"10021:3:101","nodeType":"YulIdentifier","src":"10021:3:101"},"nativeSrc":"10021:35:101","nodeType":"YulFunctionCall","src":"10021:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10077:4:101","nodeType":"YulIdentifier","src":"10077:4:101"},{"kind":"number","nativeSrc":"10083:3:101","nodeType":"YulLiteral","src":"10083:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"10074:2:101","nodeType":"YulIdentifier","src":"10074:2:101"},"nativeSrc":"10074:13:101","nodeType":"YulFunctionCall","src":"10074:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"10092:8:101","nodeType":"YulIdentifier","src":"10092:8:101"},{"kind":"number","nativeSrc":"10102:2:101","nodeType":"YulLiteral","src":"10102:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10089:2:101","nodeType":"YulIdentifier","src":"10089:2:101"},"nativeSrc":"10089:16:101","nodeType":"YulFunctionCall","src":"10089:16:101"}],"functionName":{"name":"and","nativeSrc":"10070:3:101","nodeType":"YulIdentifier","src":"10070:3:101"},"nativeSrc":"10070:36:101","nodeType":"YulFunctionCall","src":"10070:36:101"}],"functionName":{"name":"or","nativeSrc":"10005:2:101","nodeType":"YulIdentifier","src":"10005:2:101"},"nativeSrc":"10005:111:101","nodeType":"YulFunctionCall","src":"10005:111:101"},"nativeSrc":"10002:246:101","nodeType":"YulIf","src":"10002:246:101"},{"nativeSrc":"10258:57:101","nodeType":"YulAssignment","src":"10258:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"10292:1:101","nodeType":"YulLiteral","src":"10292:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"10295:4:101","nodeType":"YulIdentifier","src":"10295:4:101"},{"name":"exponent","nativeSrc":"10301:8:101","nodeType":"YulIdentifier","src":"10301:8:101"},{"name":"max","nativeSrc":"10311:3:101","nodeType":"YulIdentifier","src":"10311:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"10273:18:101","nodeType":"YulIdentifier","src":"10273:18:101"},"nativeSrc":"10273:42:101","nodeType":"YulFunctionCall","src":"10273:42:101"},"variableNames":[{"name":"power","nativeSrc":"10258:5:101","nodeType":"YulIdentifier","src":"10258:5:101"},{"name":"base","nativeSrc":"10265:4:101","nodeType":"YulIdentifier","src":"10265:4:101"}]},{"body":{"nativeSrc":"10354:22:101","nodeType":"YulBlock","src":"10354:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10356:16:101","nodeType":"YulIdentifier","src":"10356:16:101"},"nativeSrc":"10356:18:101","nodeType":"YulFunctionCall","src":"10356:18:101"},"nativeSrc":"10356:18:101","nodeType":"YulExpressionStatement","src":"10356:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10331:5:101","nodeType":"YulIdentifier","src":"10331:5:101"},{"arguments":[{"name":"max","nativeSrc":"10342:3:101","nodeType":"YulIdentifier","src":"10342:3:101"},{"name":"base","nativeSrc":"10347:4:101","nodeType":"YulIdentifier","src":"10347:4:101"}],"functionName":{"name":"div","nativeSrc":"10338:3:101","nodeType":"YulIdentifier","src":"10338:3:101"},"nativeSrc":"10338:14:101","nodeType":"YulFunctionCall","src":"10338:14:101"}],"functionName":{"name":"gt","nativeSrc":"10328:2:101","nodeType":"YulIdentifier","src":"10328:2:101"},"nativeSrc":"10328:25:101","nodeType":"YulFunctionCall","src":"10328:25:101"},"nativeSrc":"10325:51:101","nodeType":"YulIf","src":"10325:51:101"},{"nativeSrc":"10385:25:101","nodeType":"YulAssignment","src":"10385:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10398:5:101","nodeType":"YulIdentifier","src":"10398:5:101"},{"name":"base","nativeSrc":"10405:4:101","nodeType":"YulIdentifier","src":"10405:4:101"}],"functionName":{"name":"mul","nativeSrc":"10394:3:101","nodeType":"YulIdentifier","src":"10394:3:101"},"nativeSrc":"10394:16:101","nodeType":"YulFunctionCall","src":"10394:16:101"},"variableNames":[{"name":"power","nativeSrc":"10385:5:101","nodeType":"YulIdentifier","src":"10385:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"9343:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9373:4:101","nodeType":"YulTypedName","src":"9373:4:101","type":""},{"name":"exponent","nativeSrc":"9379:8:101","nodeType":"YulTypedName","src":"9379:8:101","type":""},{"name":"max","nativeSrc":"9389:3:101","nodeType":"YulTypedName","src":"9389:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9397:5:101","nodeType":"YulTypedName","src":"9397:5:101","type":""}],"src":"9343:1073:101"},{"body":{"nativeSrc":"10488:219:101","nodeType":"YulBlock","src":"10488:219:101","statements":[{"nativeSrc":"10498:31:101","nodeType":"YulAssignment","src":"10498:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10524:4:101","nodeType":"YulIdentifier","src":"10524:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10506:17:101","nodeType":"YulIdentifier","src":"10506:17:101"},"nativeSrc":"10506:23:101","nodeType":"YulFunctionCall","src":"10506:23:101"},"variableNames":[{"name":"base","nativeSrc":"10498:4:101","nodeType":"YulIdentifier","src":"10498:4:101"}]},{"nativeSrc":"10538:39:101","nodeType":"YulAssignment","src":"10538:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10568:8:101","nodeType":"YulIdentifier","src":"10568:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10550:17:101","nodeType":"YulIdentifier","src":"10550:17:101"},"nativeSrc":"10550:27:101","nodeType":"YulFunctionCall","src":"10550:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10538:8:101","nodeType":"YulIdentifier","src":"10538:8:101"}]},{"nativeSrc":"10587:113:101","nodeType":"YulAssignment","src":"10587:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10617:4:101","nodeType":"YulIdentifier","src":"10617:4:101"},{"name":"exponent","nativeSrc":"10623:8:101","nodeType":"YulIdentifier","src":"10623:8:101"},{"kind":"number","nativeSrc":"10633:66:101","nodeType":"YulLiteral","src":"10633:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10596:20:101","nodeType":"YulIdentifier","src":"10596:20:101"},"nativeSrc":"10596:104:101","nodeType":"YulFunctionCall","src":"10596:104:101"},"variableNames":[{"name":"power","nativeSrc":"10587:5:101","nodeType":"YulIdentifier","src":"10587:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"10422:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10463:4:101","nodeType":"YulTypedName","src":"10463:4:101","type":""},{"name":"exponent","nativeSrc":"10469:8:101","nodeType":"YulTypedName","src":"10469:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10482:5:101","nodeType":"YulTypedName","src":"10482:5:101","type":""}],"src":"10422:285:101"},{"body":{"nativeSrc":"10772:40:101","nodeType":"YulBlock","src":"10772:40:101","statements":[{"nativeSrc":"10783:22:101","nodeType":"YulAssignment","src":"10783:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10799:5:101","nodeType":"YulIdentifier","src":"10799:5:101"}],"functionName":{"name":"mload","nativeSrc":"10793:5:101","nodeType":"YulIdentifier","src":"10793:5:101"},"nativeSrc":"10793:12:101","nodeType":"YulFunctionCall","src":"10793:12:101"},"variableNames":[{"name":"length","nativeSrc":"10783:6:101","nodeType":"YulIdentifier","src":"10783:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10713:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10755:5:101","nodeType":"YulTypedName","src":"10755:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10765:6:101","nodeType":"YulTypedName","src":"10765:6:101","type":""}],"src":"10713:99:101"},{"body":{"nativeSrc":"10914:73:101","nodeType":"YulBlock","src":"10914:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10931:3:101","nodeType":"YulIdentifier","src":"10931:3:101"},{"name":"length","nativeSrc":"10936:6:101","nodeType":"YulIdentifier","src":"10936:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10924:6:101","nodeType":"YulIdentifier","src":"10924:6:101"},"nativeSrc":"10924:19:101","nodeType":"YulFunctionCall","src":"10924:19:101"},"nativeSrc":"10924:19:101","nodeType":"YulExpressionStatement","src":"10924:19:101"},{"nativeSrc":"10952:29:101","nodeType":"YulAssignment","src":"10952:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10971:3:101","nodeType":"YulIdentifier","src":"10971:3:101"},{"kind":"number","nativeSrc":"10976:4:101","nodeType":"YulLiteral","src":"10976:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10967:3:101","nodeType":"YulIdentifier","src":"10967:3:101"},"nativeSrc":"10967:14:101","nodeType":"YulFunctionCall","src":"10967:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10952:11:101","nodeType":"YulIdentifier","src":"10952:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10818:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10886:3:101","nodeType":"YulTypedName","src":"10886:3:101","type":""},{"name":"length","nativeSrc":"10891:6:101","nodeType":"YulTypedName","src":"10891:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10902:11:101","nodeType":"YulTypedName","src":"10902:11:101","type":""}],"src":"10818:169:101"},{"body":{"nativeSrc":"11055:77:101","nodeType":"YulBlock","src":"11055:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11072:3:101","nodeType":"YulIdentifier","src":"11072:3:101"},{"name":"src","nativeSrc":"11077:3:101","nodeType":"YulIdentifier","src":"11077:3:101"},{"name":"length","nativeSrc":"11082:6:101","nodeType":"YulIdentifier","src":"11082:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"11066:5:101","nodeType":"YulIdentifier","src":"11066:5:101"},"nativeSrc":"11066:23:101","nodeType":"YulFunctionCall","src":"11066:23:101"},"nativeSrc":"11066:23:101","nodeType":"YulExpressionStatement","src":"11066:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11109:3:101","nodeType":"YulIdentifier","src":"11109:3:101"},{"name":"length","nativeSrc":"11114:6:101","nodeType":"YulIdentifier","src":"11114:6:101"}],"functionName":{"name":"add","nativeSrc":"11105:3:101","nodeType":"YulIdentifier","src":"11105:3:101"},"nativeSrc":"11105:16:101","nodeType":"YulFunctionCall","src":"11105:16:101"},{"kind":"number","nativeSrc":"11123:1:101","nodeType":"YulLiteral","src":"11123:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11098:6:101","nodeType":"YulIdentifier","src":"11098:6:101"},"nativeSrc":"11098:27:101","nodeType":"YulFunctionCall","src":"11098:27:101"},"nativeSrc":"11098:27:101","nodeType":"YulExpressionStatement","src":"11098:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10993:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11037:3:101","nodeType":"YulTypedName","src":"11037:3:101","type":""},{"name":"dst","nativeSrc":"11042:3:101","nodeType":"YulTypedName","src":"11042:3:101","type":""},{"name":"length","nativeSrc":"11047:6:101","nodeType":"YulTypedName","src":"11047:6:101","type":""}],"src":"10993:139:101"},{"body":{"nativeSrc":"11186:54:101","nodeType":"YulBlock","src":"11186:54:101","statements":[{"nativeSrc":"11196:38:101","nodeType":"YulAssignment","src":"11196:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11214:5:101","nodeType":"YulIdentifier","src":"11214:5:101"},{"kind":"number","nativeSrc":"11221:2:101","nodeType":"YulLiteral","src":"11221:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11210:3:101","nodeType":"YulIdentifier","src":"11210:3:101"},"nativeSrc":"11210:14:101","nodeType":"YulFunctionCall","src":"11210:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11230:2:101","nodeType":"YulLiteral","src":"11230:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11226:3:101","nodeType":"YulIdentifier","src":"11226:3:101"},"nativeSrc":"11226:7:101","nodeType":"YulFunctionCall","src":"11226:7:101"}],"functionName":{"name":"and","nativeSrc":"11206:3:101","nodeType":"YulIdentifier","src":"11206:3:101"},"nativeSrc":"11206:28:101","nodeType":"YulFunctionCall","src":"11206:28:101"},"variableNames":[{"name":"result","nativeSrc":"11196:6:101","nodeType":"YulIdentifier","src":"11196:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11138:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11169:5:101","nodeType":"YulTypedName","src":"11169:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11179:6:101","nodeType":"YulTypedName","src":"11179:6:101","type":""}],"src":"11138:102:101"},{"body":{"nativeSrc":"11338:285:101","nodeType":"YulBlock","src":"11338:285:101","statements":[{"nativeSrc":"11348:53:101","nodeType":"YulVariableDeclaration","src":"11348:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11395:5:101","nodeType":"YulIdentifier","src":"11395:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11362:32:101","nodeType":"YulIdentifier","src":"11362:32:101"},"nativeSrc":"11362:39:101","nodeType":"YulFunctionCall","src":"11362:39:101"},"variables":[{"name":"length","nativeSrc":"11352:6:101","nodeType":"YulTypedName","src":"11352:6:101","type":""}]},{"nativeSrc":"11410:78:101","nodeType":"YulAssignment","src":"11410:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11476:3:101","nodeType":"YulIdentifier","src":"11476:3:101"},{"name":"length","nativeSrc":"11481:6:101","nodeType":"YulIdentifier","src":"11481:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11417:58:101","nodeType":"YulIdentifier","src":"11417:58:101"},"nativeSrc":"11417:71:101","nodeType":"YulFunctionCall","src":"11417:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11410:3:101","nodeType":"YulIdentifier","src":"11410:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11536:5:101","nodeType":"YulIdentifier","src":"11536:5:101"},{"kind":"number","nativeSrc":"11543:4:101","nodeType":"YulLiteral","src":"11543:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11532:3:101","nodeType":"YulIdentifier","src":"11532:3:101"},"nativeSrc":"11532:16:101","nodeType":"YulFunctionCall","src":"11532:16:101"},{"name":"pos","nativeSrc":"11550:3:101","nodeType":"YulIdentifier","src":"11550:3:101"},{"name":"length","nativeSrc":"11555:6:101","nodeType":"YulIdentifier","src":"11555:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11497:34:101","nodeType":"YulIdentifier","src":"11497:34:101"},"nativeSrc":"11497:65:101","nodeType":"YulFunctionCall","src":"11497:65:101"},"nativeSrc":"11497:65:101","nodeType":"YulExpressionStatement","src":"11497:65:101"},{"nativeSrc":"11571:46:101","nodeType":"YulAssignment","src":"11571:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11582:3:101","nodeType":"YulIdentifier","src":"11582:3:101"},{"arguments":[{"name":"length","nativeSrc":"11609:6:101","nodeType":"YulIdentifier","src":"11609:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11587:21:101","nodeType":"YulIdentifier","src":"11587:21:101"},"nativeSrc":"11587:29:101","nodeType":"YulFunctionCall","src":"11587:29:101"}],"functionName":{"name":"add","nativeSrc":"11578:3:101","nodeType":"YulIdentifier","src":"11578:3:101"},"nativeSrc":"11578:39:101","nodeType":"YulFunctionCall","src":"11578:39:101"},"variableNames":[{"name":"end","nativeSrc":"11571:3:101","nodeType":"YulIdentifier","src":"11571:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11246:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11319:5:101","nodeType":"YulTypedName","src":"11319:5:101","type":""},{"name":"pos","nativeSrc":"11326:3:101","nodeType":"YulTypedName","src":"11326:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11334:3:101","nodeType":"YulTypedName","src":"11334:3:101","type":""}],"src":"11246:377:101"},{"body":{"nativeSrc":"11775:277:101","nodeType":"YulBlock","src":"11775:277:101","statements":[{"nativeSrc":"11785:26:101","nodeType":"YulAssignment","src":"11785:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11797:9:101","nodeType":"YulIdentifier","src":"11797:9:101"},{"kind":"number","nativeSrc":"11808:2:101","nodeType":"YulLiteral","src":"11808:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11793:3:101","nodeType":"YulIdentifier","src":"11793:3:101"},"nativeSrc":"11793:18:101","nodeType":"YulFunctionCall","src":"11793:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11785:4:101","nodeType":"YulIdentifier","src":"11785:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11865:6:101","nodeType":"YulIdentifier","src":"11865:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11878:9:101","nodeType":"YulIdentifier","src":"11878:9:101"},{"kind":"number","nativeSrc":"11889:1:101","nodeType":"YulLiteral","src":"11889:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11874:3:101","nodeType":"YulIdentifier","src":"11874:3:101"},"nativeSrc":"11874:17:101","nodeType":"YulFunctionCall","src":"11874:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11821:43:101","nodeType":"YulIdentifier","src":"11821:43:101"},"nativeSrc":"11821:71:101","nodeType":"YulFunctionCall","src":"11821:71:101"},"nativeSrc":"11821:71:101","nodeType":"YulExpressionStatement","src":"11821:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11913:9:101","nodeType":"YulIdentifier","src":"11913:9:101"},{"kind":"number","nativeSrc":"11924:2:101","nodeType":"YulLiteral","src":"11924:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11909:3:101","nodeType":"YulIdentifier","src":"11909:3:101"},"nativeSrc":"11909:18:101","nodeType":"YulFunctionCall","src":"11909:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11933:4:101","nodeType":"YulIdentifier","src":"11933:4:101"},{"name":"headStart","nativeSrc":"11939:9:101","nodeType":"YulIdentifier","src":"11939:9:101"}],"functionName":{"name":"sub","nativeSrc":"11929:3:101","nodeType":"YulIdentifier","src":"11929:3:101"},"nativeSrc":"11929:20:101","nodeType":"YulFunctionCall","src":"11929:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11902:6:101","nodeType":"YulIdentifier","src":"11902:6:101"},"nativeSrc":"11902:48:101","nodeType":"YulFunctionCall","src":"11902:48:101"},"nativeSrc":"11902:48:101","nodeType":"YulExpressionStatement","src":"11902:48:101"},{"nativeSrc":"11959:86:101","nodeType":"YulAssignment","src":"11959:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"12031:6:101","nodeType":"YulIdentifier","src":"12031:6:101"},{"name":"tail","nativeSrc":"12040:4:101","nodeType":"YulIdentifier","src":"12040:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11967:63:101","nodeType":"YulIdentifier","src":"11967:63:101"},"nativeSrc":"11967:78:101","nodeType":"YulFunctionCall","src":"11967:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11959:4:101","nodeType":"YulIdentifier","src":"11959:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11629:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11739:9:101","nodeType":"YulTypedName","src":"11739:9:101","type":""},{"name":"value1","nativeSrc":"11751:6:101","nodeType":"YulTypedName","src":"11751:6:101","type":""},{"name":"value0","nativeSrc":"11759:6:101","nodeType":"YulTypedName","src":"11759:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11770:4:101","nodeType":"YulTypedName","src":"11770:4:101","type":""}],"src":"11629:423:101"},{"body":{"nativeSrc":"12098:76:101","nodeType":"YulBlock","src":"12098:76:101","statements":[{"body":{"nativeSrc":"12152:16:101","nodeType":"YulBlock","src":"12152:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12161:1:101","nodeType":"YulLiteral","src":"12161:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12164:1:101","nodeType":"YulLiteral","src":"12164:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12154:6:101","nodeType":"YulIdentifier","src":"12154:6:101"},"nativeSrc":"12154:12:101","nodeType":"YulFunctionCall","src":"12154:12:101"},"nativeSrc":"12154:12:101","nodeType":"YulExpressionStatement","src":"12154:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12121:5:101","nodeType":"YulIdentifier","src":"12121:5:101"},{"arguments":[{"name":"value","nativeSrc":"12143:5:101","nodeType":"YulIdentifier","src":"12143:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12128:14:101","nodeType":"YulIdentifier","src":"12128:14:101"},"nativeSrc":"12128:21:101","nodeType":"YulFunctionCall","src":"12128:21:101"}],"functionName":{"name":"eq","nativeSrc":"12118:2:101","nodeType":"YulIdentifier","src":"12118:2:101"},"nativeSrc":"12118:32:101","nodeType":"YulFunctionCall","src":"12118:32:101"}],"functionName":{"name":"iszero","nativeSrc":"12111:6:101","nodeType":"YulIdentifier","src":"12111:6:101"},"nativeSrc":"12111:40:101","nodeType":"YulFunctionCall","src":"12111:40:101"},"nativeSrc":"12108:60:101","nodeType":"YulIf","src":"12108:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"12058:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12091:5:101","nodeType":"YulTypedName","src":"12091:5:101","type":""}],"src":"12058:116:101"},{"body":{"nativeSrc":"12240:77:101","nodeType":"YulBlock","src":"12240:77:101","statements":[{"nativeSrc":"12250:22:101","nodeType":"YulAssignment","src":"12250:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12265:6:101","nodeType":"YulIdentifier","src":"12265:6:101"}],"functionName":{"name":"mload","nativeSrc":"12259:5:101","nodeType":"YulIdentifier","src":"12259:5:101"},"nativeSrc":"12259:13:101","nodeType":"YulFunctionCall","src":"12259:13:101"},"variableNames":[{"name":"value","nativeSrc":"12250:5:101","nodeType":"YulIdentifier","src":"12250:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12305:5:101","nodeType":"YulIdentifier","src":"12305:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12281:23:101","nodeType":"YulIdentifier","src":"12281:23:101"},"nativeSrc":"12281:30:101","nodeType":"YulFunctionCall","src":"12281:30:101"},"nativeSrc":"12281:30:101","nodeType":"YulExpressionStatement","src":"12281:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12180:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12218:6:101","nodeType":"YulTypedName","src":"12218:6:101","type":""},{"name":"end","nativeSrc":"12226:3:101","nodeType":"YulTypedName","src":"12226:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12234:5:101","nodeType":"YulTypedName","src":"12234:5:101","type":""}],"src":"12180:137:101"},{"body":{"nativeSrc":"12397:271:101","nodeType":"YulBlock","src":"12397:271:101","statements":[{"body":{"nativeSrc":"12443:83:101","nodeType":"YulBlock","src":"12443:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12445:77:101","nodeType":"YulIdentifier","src":"12445:77:101"},"nativeSrc":"12445:79:101","nodeType":"YulFunctionCall","src":"12445:79:101"},"nativeSrc":"12445:79:101","nodeType":"YulExpressionStatement","src":"12445:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12418:7:101","nodeType":"YulIdentifier","src":"12418:7:101"},{"name":"headStart","nativeSrc":"12427:9:101","nodeType":"YulIdentifier","src":"12427:9:101"}],"functionName":{"name":"sub","nativeSrc":"12414:3:101","nodeType":"YulIdentifier","src":"12414:3:101"},"nativeSrc":"12414:23:101","nodeType":"YulFunctionCall","src":"12414:23:101"},{"kind":"number","nativeSrc":"12439:2:101","nodeType":"YulLiteral","src":"12439:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12410:3:101","nodeType":"YulIdentifier","src":"12410:3:101"},"nativeSrc":"12410:32:101","nodeType":"YulFunctionCall","src":"12410:32:101"},"nativeSrc":"12407:119:101","nodeType":"YulIf","src":"12407:119:101"},{"nativeSrc":"12536:125:101","nodeType":"YulBlock","src":"12536:125:101","statements":[{"nativeSrc":"12551:15:101","nodeType":"YulVariableDeclaration","src":"12551:15:101","value":{"kind":"number","nativeSrc":"12565:1:101","nodeType":"YulLiteral","src":"12565:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12555:6:101","nodeType":"YulTypedName","src":"12555:6:101","type":""}]},{"nativeSrc":"12580:71:101","nodeType":"YulAssignment","src":"12580:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12623:9:101","nodeType":"YulIdentifier","src":"12623:9:101"},{"name":"offset","nativeSrc":"12634:6:101","nodeType":"YulIdentifier","src":"12634:6:101"}],"functionName":{"name":"add","nativeSrc":"12619:3:101","nodeType":"YulIdentifier","src":"12619:3:101"},"nativeSrc":"12619:22:101","nodeType":"YulFunctionCall","src":"12619:22:101"},{"name":"dataEnd","nativeSrc":"12643:7:101","nodeType":"YulIdentifier","src":"12643:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12590:28:101","nodeType":"YulIdentifier","src":"12590:28:101"},"nativeSrc":"12590:61:101","nodeType":"YulFunctionCall","src":"12590:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12580:6:101","nodeType":"YulIdentifier","src":"12580:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12323:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12367:9:101","nodeType":"YulTypedName","src":"12367:9:101","type":""},{"name":"dataEnd","nativeSrc":"12378:7:101","nodeType":"YulTypedName","src":"12378:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12390:6:101","nodeType":"YulTypedName","src":"12390:6:101","type":""}],"src":"12323:345:101"},{"body":{"nativeSrc":"12848:359:101","nodeType":"YulBlock","src":"12848:359:101","statements":[{"nativeSrc":"12858:26:101","nodeType":"YulAssignment","src":"12858:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12870:9:101","nodeType":"YulIdentifier","src":"12870:9:101"},{"kind":"number","nativeSrc":"12881:2:101","nodeType":"YulLiteral","src":"12881:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12866:3:101","nodeType":"YulIdentifier","src":"12866:3:101"},"nativeSrc":"12866:18:101","nodeType":"YulFunctionCall","src":"12866:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12858:4:101","nodeType":"YulIdentifier","src":"12858:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12938:6:101","nodeType":"YulIdentifier","src":"12938:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12951:9:101","nodeType":"YulIdentifier","src":"12951:9:101"},{"kind":"number","nativeSrc":"12962:1:101","nodeType":"YulLiteral","src":"12962:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12947:3:101","nodeType":"YulIdentifier","src":"12947:3:101"},"nativeSrc":"12947:17:101","nodeType":"YulFunctionCall","src":"12947:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12894:43:101","nodeType":"YulIdentifier","src":"12894:43:101"},"nativeSrc":"12894:71:101","nodeType":"YulFunctionCall","src":"12894:71:101"},"nativeSrc":"12894:71:101","nodeType":"YulExpressionStatement","src":"12894:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13019:6:101","nodeType":"YulIdentifier","src":"13019:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13032:9:101","nodeType":"YulIdentifier","src":"13032:9:101"},{"kind":"number","nativeSrc":"13043:2:101","nodeType":"YulLiteral","src":"13043:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13028:3:101","nodeType":"YulIdentifier","src":"13028:3:101"},"nativeSrc":"13028:18:101","nodeType":"YulFunctionCall","src":"13028:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12975:43:101","nodeType":"YulIdentifier","src":"12975:43:101"},"nativeSrc":"12975:72:101","nodeType":"YulFunctionCall","src":"12975:72:101"},"nativeSrc":"12975:72:101","nodeType":"YulExpressionStatement","src":"12975:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13068:9:101","nodeType":"YulIdentifier","src":"13068:9:101"},{"kind":"number","nativeSrc":"13079:2:101","nodeType":"YulLiteral","src":"13079:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13064:3:101","nodeType":"YulIdentifier","src":"13064:3:101"},"nativeSrc":"13064:18:101","nodeType":"YulFunctionCall","src":"13064:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13088:4:101","nodeType":"YulIdentifier","src":"13088:4:101"},{"name":"headStart","nativeSrc":"13094:9:101","nodeType":"YulIdentifier","src":"13094:9:101"}],"functionName":{"name":"sub","nativeSrc":"13084:3:101","nodeType":"YulIdentifier","src":"13084:3:101"},"nativeSrc":"13084:20:101","nodeType":"YulFunctionCall","src":"13084:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13057:6:101","nodeType":"YulIdentifier","src":"13057:6:101"},"nativeSrc":"13057:48:101","nodeType":"YulFunctionCall","src":"13057:48:101"},"nativeSrc":"13057:48:101","nodeType":"YulExpressionStatement","src":"13057:48:101"},{"nativeSrc":"13114:86:101","nodeType":"YulAssignment","src":"13114:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13186:6:101","nodeType":"YulIdentifier","src":"13186:6:101"},{"name":"tail","nativeSrc":"13195:4:101","nodeType":"YulIdentifier","src":"13195:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13122:63:101","nodeType":"YulIdentifier","src":"13122:63:101"},"nativeSrc":"13122:78:101","nodeType":"YulFunctionCall","src":"13122:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13114:4:101","nodeType":"YulIdentifier","src":"13114:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12674:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12804:9:101","nodeType":"YulTypedName","src":"12804:9:101","type":""},{"name":"value2","nativeSrc":"12816:6:101","nodeType":"YulTypedName","src":"12816:6:101","type":""},{"name":"value1","nativeSrc":"12824:6:101","nodeType":"YulTypedName","src":"12824:6:101","type":""},{"name":"value0","nativeSrc":"12832:6:101","nodeType":"YulTypedName","src":"12832:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12843:4:101","nodeType":"YulTypedName","src":"12843:4:101","type":""}],"src":"12674:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ISynclubStakeManager_$3630_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ISynclubStakeManager_$3630_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ISynclubStakeManager_$3630_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ISynclubStakeManager_$3630__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ISynclubStakeManager_$3630_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5930":[{"length":32,"start":573},{"length":32,"start":1763}],"6589":[{"length":32,"start":534},{"length":32,"start":728},{"length":32,"start":2147}],"6592":[{"length":32,"start":324},{"length":32,"start":1479},{"length":32,"start":2020}],"6596":[{"length":32,"start":640},{"length":32,"start":1434},{"length":32,"start":1973}],"6600":[{"length":32,"start":404},{"length":32,"start":2338}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061011c575f3560e01c806369240426116100a9578063a4edcd4c1161006e578063a4edcd4c1461027b578063a9534f8a146102a2578063abb85613146102bd578063ac5a693e146102c5578063bdf13af2146102cd575f80fd5b8063692404261461020957806369818a35146102115780637353847a146102385780637fc4e4a01461025f5780639c43eb5414610272575f80fd5b806345be2dc7116100ef57806345be2dc71461018f5780635213f9c8146101c3578063596efe6f146101d8578063643d813d146101e1578063671528d4146101f4575f80fd5b806307d0413c1461012057806329db1be61461013f5780634169d2451461017357806341976e091461017c575b5f80fd5b61012960015481565b60405161013691906109d3565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a00565b61012960045481565b61012961018a366004610a2f565b6102d5565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a72565b6101d66101d1366004610a91565b610386565b005b61012960025481565b6101d66101ef366004610aaf565b6103f7565b6101fc6104cb565b6040516101369190610af1565b6101d6610506565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b6101d661026d366004610aaf565b610652565b61012960035481565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b61016673bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101296106ca565b6101295f5481565b610129610764565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461032857604051630f58058360e11b815260040160405180910390fd5b5f6103316106ca565b90506001545f0361034c57610345816107b1565b9392505050565b5f610355610764565b90505f818311801561036657508115155b6103705782610372565b815b905061037d816107b1565b95945050505050565b6103c46040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610909565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104356040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610909565b5f546104456301e1338084610b27565b5f81905515801561045557505f82115b8061046957505f8054118015610469575081155b15610487576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104bc91906109d3565b60405180910390a45060015550565b5f6001545f036104da57505f90565b5f6104e3610764565b9050805f036104f3575f91505090565b5f6104fc6106ca565b9190911192915050565b6001546003546105169042610b3a565b10806105225750600154155b1561052957565b5f6105326106ca565b90505f61053d610764565b905060045481831161054f5782610551565b815b61055b9190610b4d565b6002819055426003555f0361058357604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105ef907f000000000000000000000000000000000000000000000000000000000000000090600401610a00565b5f604051808303815f87803b158015610606575f80fd5b505af1158015610618573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106906040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610909565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b60405163ce6298e160e01b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce6298e19061072090670de0b6b3a7640000906004016109d3565b602060405180830381865afa15801561073b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f9190610b6b565b905090565b5f80600354426107749190610b3a565b90505f670de0b6b3a7640000825f546002546107909190610b89565b61079a9190610b89565b6107a49190610b27565b6002546103459190610b4d565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081f9190610a00565b602060405180830381865afa15801561083a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085e9190610b6b565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190610bbc565b60ff1690506108f581600a610ce6565b6108ff8487610b89565b61037d9190610b27565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109599033908690600401610d2f565b602060405180830381865afa158015610974573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109989190610d62565b9050806109c757333083604051634a3fa29360e01b81526004016109be93929190610d80565b60405180910390fd5b5050565b805b82525050565b602081016109e182846109cb565b92915050565b5f6001600160a01b0382166109e1565b6109cd816109e7565b602081016109e182846109f7565b610a17816109e7565b8114610a21575f80fd5b50565b80356109e181610a0e565b5f60208284031215610a4257610a425f80fd5b5f610a4d8484610a24565b949350505050565b5f6109e1826109e7565b5f6109e182610a55565b6109cd81610a5f565b602081016109e18284610a69565b80610a17565b80356109e181610a80565b5f60208284031215610aa457610aa45f80fd5b5f610a4d8484610a86565b5f8060408385031215610ac357610ac35f80fd5b5f610ace8585610a86565b9250506020610adf85828601610a86565b9150509250929050565b8015156109cd565b602081016109e18284610ae9565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b3557610b35610aff565b500490565b818103818111156109e1576109e1610b13565b808201808211156109e1576109e1610b13565b80516109e181610a80565b5f60208284031215610b7e57610b7e5f80fd5b5f610a4d8484610b60565b818102808215838204851417610ba157610ba1610b13565b5092915050565b60ff8116610a17565b80516109e181610ba8565b5f60208284031215610bcf57610bcf5f80fd5b5f610a4d8484610bb1565b80825b6001851115610c1957808604811115610bf857610bf8610b13565b6001851615610c0657908102905b8002610c128560011c90565b9450610bdd565b94509492505050565b5f82610c3057506001610345565b81610c3c57505f610345565b8160018114610c525760028114610c5c57610c89565b6001915050610345565b60ff841115610c6d57610c6d610b13565b8360020a915084821115610c8357610c83610b13565b50610345565b5060208310610133831016604e8410600b8410161715610cbc575081810a83811115610cb757610cb7610b13565b610345565b610cc98484846001610bda565b92509050818404811115610cdf57610cdf610b13565b0292915050565b5f6103455f198484610c22565b8281835e505f910152565b5f610d07825190565b808452602084019350610d1e818560208601610cf3565b601f01601f19169290920192915050565b60408101610d3d82856109f7565b8181036020830152610a4d8184610cfe565b801515610a17565b80516109e181610d4f565b5f60208284031215610d7557610d755f80fd5b5f610a4d8484610d57565b60608101610d8e82866109f7565b610d9b60208301856109f7565b818103604083015261037d8184610cfe56fea26469706673582212209537a08ba247c7d7c18f722ae238bdf37ac23a853537e1a563f2d1432cd5758f64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x7353847A EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x17C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA72 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0xA91 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xAF1 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x166 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x764 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x328 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x34C JUMPI PUSH2 0x345 DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x355 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x366 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x370 JUMPI DUP3 PUSH2 0x372 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x37D DUP2 PUSH2 0x7B1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3C4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x435 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x445 PUSH4 0x1E13380 DUP5 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x469 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x469 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x487 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4DA JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4E3 PUSH2 0x764 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4F3 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4FC PUSH2 0x6CA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x516 SWAP1 TIMESTAMP PUSH2 0xB3A JUMP JUMPDEST LT DUP1 PUSH2 0x522 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x529 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x532 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x53D PUSH2 0x764 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x54F JUMPI DUP3 PUSH2 0x551 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x55B SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5EF SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA00 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x618 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x690 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x909 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCE6298E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCE6298E1 SWAP1 PUSH2 0x720 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x75F SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x790 SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x79A SWAP2 SWAP1 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xB4D JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81F SWAP2 SWAP1 PUSH2 0xA00 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x83A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x85E SWAP2 SWAP1 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8C1 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8E5 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8F5 DUP2 PUSH1 0xA PUSH2 0xCE6 JUMP JUMPDEST PUSH2 0x8FF DUP5 DUP8 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x959 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD2F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x998 SWAP2 SWAP1 PUSH2 0xD62 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9C7 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9BE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9E1 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xA17 DUP2 PUSH2 0x9E7 JUMP JUMPDEST DUP2 EQ PUSH2 0xA21 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA0E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA42 JUMPI PUSH2 0xA42 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA24 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0x9E7 JUMP JUMPDEST PUSH0 PUSH2 0x9E1 DUP3 PUSH2 0xA55 JUMP JUMPDEST PUSH2 0x9CD DUP2 PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xA69 JUMP JUMPDEST DUP1 PUSH2 0xA17 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAA4 JUMPI PUSH2 0xAA4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xA86 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xACE DUP6 DUP6 PUSH2 0xA86 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xADF DUP6 DUP3 DUP7 ADD PUSH2 0xA86 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9E1 DUP3 DUP5 PUSH2 0xAE9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAFF JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9E1 JUMPI PUSH2 0x9E1 PUSH2 0xB13 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xA80 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7E JUMPI PUSH2 0xB7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xB60 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBA1 JUMPI PUSH2 0xBA1 PUSH2 0xB13 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xBA8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBCF JUMPI PUSH2 0xBCF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xBB1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xC19 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBF8 JUMPI PUSH2 0xBF8 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xC06 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xC12 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBDD JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC30 JUMPI POP PUSH1 0x1 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH2 0xC3C JUMPI POP PUSH0 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC52 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC5C JUMPI PUSH2 0xC89 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x345 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC6D JUMPI PUSH2 0xC6D PUSH2 0xB13 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC83 JUMPI PUSH2 0xC83 PUSH2 0xB13 JUMP JUMPDEST POP PUSH2 0x345 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xCBC JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xCB7 JUMPI PUSH2 0xCB7 PUSH2 0xB13 JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0xCC9 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBDA JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCDF JUMPI PUSH2 0xCDF PUSH2 0xB13 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x345 PUSH0 NOT DUP5 DUP5 PUSH2 0xC22 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xD07 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xD1E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD3D DUP3 DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA4D DUP2 DUP5 PUSH2 0xCFE JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA17 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9E1 DUP2 PUSH2 0xD4F JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA4D DUP5 DUP5 PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD8E DUP3 DUP7 PUSH2 0x9F7 JUMP JUMPDEST PUSH2 0xD9B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9F7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x37D DUP2 DUP5 PUSH2 0xCFE JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP6 CALLDATACOPY LOG0 DUP12 LOG2 SELFBALANCE 0xC7 0xD7 0xC1 DUP16 PUSH19 0x2AE238BDF37AC23A853537E1A563F2D1432CD5 PUSH22 0x8F64736F6C6343000819003300000000000000000000 ","sourceMap":"515:1405:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;762:51:59;;;;;4843:344:67;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;629:86:59;;673:42;629:86;;1782:136;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1782:136:59:-;1869:42;;-1:-1:-1;;;1869:42:59;;1843:7;;-1:-1:-1;;;;;1869:13:59;:31;;;;:42;;186:4:17;;1869:42:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1862:49;;1782:136;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;515:1405:59;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;515:1405:59;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;515:1405:59;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5785:180::-;-1:-1:-1;;;5830:1:101;5823:88;5930:4;5927:1;5920:15;5954:4;5951:1;5944:15;5971:180;-1:-1:-1;;;6016:1:101;6009:88;6116:4;6113:1;6106:15;6140:4;6137:1;6130:15;6157:185;6197:1;6287;6277:35;;6292:18;;:::i;:::-;-1:-1:-1;6327:9:101;;6157:185::o;6348:194::-;6479:9;;;6501:11;;;6498:37;;;6515:18;;:::i;6548:191::-;6677:9;;;6699:10;;;6696:36;;;6712:18;;:::i;6745:143::-;6827:13;;6849:33;6827:13;6849:33;:::i;6894:351::-;6964:6;7013:2;7001:9;6992:7;6988:23;6984:32;6981:119;;;7019:79;515:1405:59;;;7019:79:101;7139:1;7164:64;7220:7;7200:9;7164:64;:::i;7251:410::-;7396:9;;;;7558;;7591:15;;;7585:22;;7538:83;7515:139;;7634:18;;:::i;:::-;7299:362;7251:410;;;;:::o;7759:118::-;7742:4;7731:16;;7830:22;7667:86;7883:139;7963:13;;7985:31;7963:13;7985:31;:::i;8028:347::-;8096:6;8145:2;8133:9;8124:7;8120:23;8116:32;8113:119;;;8151:79;515:1405:59;;;8151:79:101;8271:1;8296:62;8350:7;8330:9;8296:62;:::i;8489:848::-;8581:6;8605:5;8619:712;8640:1;8630:8;8627:15;8619:712;;;8735:4;8730:3;8726:14;8720:4;8717:24;8714:50;;;8744:18;;:::i;:::-;8794:1;8784:8;8780:16;8777:451;;;9198:16;;;;8777:451;9249:15;;9289:32;9312:8;8467:1;8463:13;;8381:102;9289:32;9277:44;;8619:712;;;8489:848;;;;;;;:::o;9343:1073::-;9397:5;9588:8;9578:40;;-1:-1:-1;9609:1:101;9611:5;;9578:40;9637:4;9627:36;;-1:-1:-1;9654:1:101;9656:5;;9627:36;9723:4;9771:1;9766:27;;;;9807:1;9802:191;;;;9716:277;;9766:27;9784:1;9775:10;;9786:5;;;9802:191;9847:3;9837:8;9834:17;9831:43;;;9854:18;;:::i;:::-;9903:8;9900:1;9896:16;9887:25;;9938:3;9931:5;9928:14;9925:40;;;9945:18;;:::i;:::-;9978:5;;;9716:277;;10102:2;10092:8;10089:16;10083:3;10077:4;10074:13;10070:36;10052:2;10042:8;10039:16;10034:2;10028:4;10025:12;10021:35;10005:111;10002:246;;;-1:-1:-1;10148:19:101;;;10183:14;;;10180:40;;;10200:18;;:::i;:::-;10233:5;;10002:246;10273:42;10311:3;10301:8;10295:4;10292:1;10273:42;:::i;:::-;10258:57;;;;10347:4;10342:3;10338:14;10331:5;10328:25;10325:51;;;10356:18;;:::i;:::-;10394:16;;9343:1073;-1:-1:-1;;9343:1073:101:o;10422:285::-;10482:5;10596:104;-1:-1:-1;;10623:8:101;10617:4;10596:104;:::i;10993:139::-;11082:6;11077:3;11072;11066:23;-1:-1:-1;11123:1:101;11105:16;;11098:27;10993:139::o;11246:377::-;11334:3;11362:39;11395:5;10793:12;;10713:99;11362:39;10924:19;;;10976:4;10967:14;;11410:78;;11497:65;11555:6;11550:3;11543:4;11536:5;11532:16;11497:65;:::i;:::-;11230:2;11210:14;-1:-1:-1;;11206:28:101;11578:39;;;;;;-1:-1:-1;;11246:377:101:o;11629:423::-;11808:2;11793:18;;11821:71;11797:9;11865:6;11821:71;:::i;:::-;11939:9;11933:4;11929:20;11924:2;11913:9;11909:18;11902:48;11967:78;12040:4;12031:6;11967:78;:::i;12058:116::-;4124:13;;4117:21;12128;4054:90;12180:137;12259:13;;12281:30;12259:13;12281:30;:::i;12323:345::-;12390:6;12439:2;12427:9;12418:7;12414:23;12410:32;12407:119;;;12445:79;515:1405:59;;;12445:79:101;12565:1;12590:61;12643:7;12623:9;12590:61;:::i;12674:533::-;12881:2;12866:18;;12894:71;12870:9;12938:6;12894:71;:::i;:::-;12975:72;13043:2;13032:9;13028:18;13019:6;12975:72;:::i;:::-;13094:9;13088:4;13084:20;13079:2;13068:9;13064:18;13057:48;13122:78;13195:4;13186:6;13122:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"711000","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","NATIVE_TOKEN_ADDR()":"infinite","RESILIENT_ORACLE()":"infinite","STAKE_MANAGER()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2471","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","NATIVE_TOKEN_ADDR()":"a9534f8a","RESILIENT_ORACLE()":"a4edcd4c","STAKE_MANAGER()":"7353847a","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slisBNB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_MANAGER\",\"outputs\":[{\"internalType\":\"contract ISynclubStakeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount The amount of BNB for slisBNB\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"SlisBNBOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"NATIVE_TOKEN_ADDR()\":{\"notice\":\"This is used as token address of BNB on BSC\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"STAKE_MANAGER()\":{\"notice\":\"Address of StakeManager\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of BNB for 1 slisBNB\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of slisBNB asset\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/SlisBNBOracle.sol\":\"SlisBNBOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ISynclubStakeManager.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISynclubStakeManager {\\n    function convertSnBnbToBnb(uint256 _amount) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x81da7034490b7e92a26c58e9f22ff08c0c13f9aa9debffc95237684989ce2e3e\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/SlisBNBOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { ISynclubStakeManager } from \\\"../interfaces/ISynclubStakeManager.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\n\\n/**\\n * @title SlisBNBOracle\\n * @author Venus\\n * @notice This oracle fetches the price of slisBNB asset\\n */\\ncontract SlisBNBOracle is CorrelatedTokenOracle {\\n    /// @notice This is used as token address of BNB on BSC\\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Address of StakeManager\\n    ISynclubStakeManager public immutable STAKE_MANAGER;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address stakeManager,\\n        address slisBNB,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            slisBNB,\\n            NATIVE_TOKEN_ADDR,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(stakeManager);\\n        STAKE_MANAGER = ISynclubStakeManager(stakeManager);\\n    }\\n\\n    /**\\n     * @notice Fetches the amount of BNB for 1 slisBNB\\n     * @return amount The amount of BNB for slisBNB\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return STAKE_MANAGER.convertSnBnbToBnb(EXP_SCALE);\\n    }\\n}\\n\",\"keccak256\":\"0xc7d862d53cfc7807710ebf906542d2dc799100671b439fb4f058917a3b7f0c1d\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/SlisBNBOracle.sol:SlisBNBOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/SlisBNBOracle.sol:SlisBNBOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/SlisBNBOracle.sol:SlisBNBOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/SlisBNBOracle.sol:SlisBNBOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/SlisBNBOracle.sol:SlisBNBOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"NATIVE_TOKEN_ADDR()":{"notice":"This is used as token address of BNB on BSC"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"STAKE_MANAGER()":{"notice":"Address of StakeManager"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of BNB for 1 slisBNB"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of slisBNB asset","version":1}}},"contracts/oracles/StkBNBOracle.sol":{"StkBNBOracle":{"abi":[{"inputs":[{"internalType":"address","name":"stakePool","type":"address"},{"internalType":"address","name":"stkBNB","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[],"name":"PoolTokenSupplyIsZero","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKE_POOL","outputs":[{"internalType":"contract IPStakePool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"custom:error":"PoolTokenSupplyIsZero error is thrown if the pool token supply is zero","returns":{"_0":"price The amount of BNB for stkBNB"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"StkBNBOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_6056":{"entryPoint":null,"id":6056,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":331,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":410,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":427,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":438,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":650,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":373,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":630,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":391,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":421,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516111ed3803806111ed83398101604081905261002f916101b6565b8773bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb8888888888888861005a6301e133808761028a565b5f81905515801561006a57505f85115b8061007e57505f805411801561007e575084155b1561009c576040516353b7e64560e11b815260040160405180910390fd5b8315806100a7575082155b80156100b257505f85115b156100d05760405163b8a5589b60e01b815260040160405180910390fd5b6100d98961014b565b6100e28861014b565b6100eb8761014b565b6100f48261014b565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261012e8961014b565b5050506001600160a01b03909516610100525061029d9350505050565b6001600160a01b038116610172576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61019081610175565b8114610172575f80fd5b805161018181610187565b80610190565b8051610181816101a5565b5f805f805f805f805f6101208a8c0312156101d2576101d25f80fd5b5f6101dd8c8c61019a565b99505060206101ee8c828d0161019a565b98505060406101ff8c828d0161019a565b97505060606102108c828d016101ab565b96505060806102218c828d016101ab565b95505060a06102328c828d016101ab565b94505060c06102438c828d016101ab565b93505060e06102548c828d0161019a565b9250506101006102668c828d016101ab565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261029857610298610276565b500490565b60805160a05160c05160e05161010051610edb6103125f395f818161017801526106ce01525f81816101c8015261095901525f81816102800152818161059a01526107ec01525f8181610144015281816105c7015261081b01525f818161023d015281816102d8015261089a0152610edb5ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c8063671528d4116100a9578063a4edcd4c1161006e578063a4edcd4c1461027b578063a9534f8a146102a2578063abb85613146102bd578063ac5a693e146102c5578063bdf13af2146102cd575f80fd5b8063671528d41461021b578063692404261461023057806369818a35146102385780637fc4e4a01461025f5780639c43eb5414610272575f80fd5b806341976e09116100ef57806341976e09146101b057806345be2dc7146101c35780635213f9c8146101ea578063596efe6f146101ff578063643d813d14610208575f80fd5b806307d0413c1461012057806329db1be61461013f5780633a26dc4f146101735780634169d245146101a7575b5f80fd5b61012960015481565b6040516101369190610a0a565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a37565b61019a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a62565b61012960045481565b6101296101be366004610a91565b6102d5565b61019a7f000000000000000000000000000000000000000000000000000000000000000081565b6101fd6101f8366004610ac8565b610386565b005b61012960025481565b6101fd610216366004610ae6565b6103f7565b6102236104cb565b6040516101369190610b28565b6101fd610506565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101fd61026d366004610ae6565b610652565b61012960035481565b61019a7f000000000000000000000000000000000000000000000000000000000000000081565b61016673bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101296106ca565b6101295f5481565b61012961079b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461032857604051630f58058360e11b815260040160405180910390fd5b5f6103316106ca565b90506001545f0361034c57610345816107e8565b9392505050565b5f61035561079b565b90505f818311801561036657508115155b6103705782610372565b815b905061037d816107e8565b95945050505050565b6103c46040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610940565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104356040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610940565b5f546104456301e1338084610b5e565b5f81905515801561045557505f82115b8061046957505f8054118015610469575081155b15610487576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104bc9190610a0a565b60405180910390a45060015550565b5f6001545f036104da57505f90565b5f6104e361079b565b9050805f036104f3575f91505090565b5f6104fc6106ca565b9190911192915050565b6001546003546105169042610b71565b10806105225750600154155b1561052957565b5f6105326106ca565b90505f61053d61079b565b905060045481831161054f5782610551565b815b61055b9190610b84565b6002819055426003555f0361058357604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105ef907f000000000000000000000000000000000000000000000000000000000000000090600401610a37565b5f604051808303815f87803b158015610606575f80fd5b505af1158015610618573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106906040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610940565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ba0b9a96040518163ffffffff1660e01b81526004016040805180830381865afa158015610727573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074b9190610c45565b905080602001515f036107715760405163386c978360e21b815260040160405180910390fd5b6020810151815161078b90670de0b6b3a764000090610c63565b6107959190610b5e565b91505090565b5f80600354426107ab9190610b71565b90505f670de0b6b3a7640000825f546002546107c79190610c63565b6107d19190610c63565b6107db9190610b5e565b6002546103459190610b84565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016108569190610a37565b602060405180830381865afa158015610871573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108959190610c82565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091c9190610cb4565b60ff16905061092c81600a610dde565b6109368487610c63565b61037d9190610b5e565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109909033908690600401610e27565b602060405180830381865afa1580156109ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cf9190610e5a565b9050806109fe57333083604051634a3fa29360e01b81526004016109f593929190610e78565b60405180910390fd5b5050565b805b82525050565b60208101610a188284610a02565b92915050565b5f6001600160a01b038216610a18565b610a0481610a1e565b60208101610a188284610a2e565b5f610a1882610a1e565b5f610a1882610a45565b610a0481610a4f565b60208101610a188284610a59565b610a7981610a1e565b8114610a83575f80fd5b50565b8035610a1881610a70565b5f60208284031215610aa457610aa45f80fd5b5f610aaf8484610a86565b949350505050565b80610a79565b8035610a1881610ab7565b5f60208284031215610adb57610adb5f80fd5b5f610aaf8484610abd565b5f8060408385031215610afa57610afa5f80fd5b5f610b058585610abd565b9250506020610b1685828601610abd565b9150509250929050565b801515610a04565b60208101610a188284610b20565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b6c57610b6c610b36565b500490565b81810381811115610a1857610a18610b4a565b80820180821115610a1857610a18610b4a565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610bd157610bd1610b97565b6040525050565b5f610be260405190565b9050610bee8282610bab565b919050565b8051610a1881610ab7565b5f60408284031215610c1157610c115f80fd5b610c1b6040610bd8565b90505f610c288484610bf3565b8252506020610c3984848301610bf3565b60208301525092915050565b5f60408284031215610c5857610c585f80fd5b5f610aaf8484610bfe565b818102808215838204851417610c7b57610c7b610b4a565b5092915050565b5f60208284031215610c9557610c955f80fd5b5f610aaf8484610bf3565b60ff8116610a79565b8051610a1881610ca0565b5f60208284031215610cc757610cc75f80fd5b5f610aaf8484610ca9565b80825b6001851115610d1157808604811115610cf057610cf0610b4a565b6001851615610cfe57908102905b8002610d0a8560011c90565b9450610cd5565b94509492505050565b5f82610d2857506001610345565b81610d3457505f610345565b8160018114610d4a5760028114610d5457610d81565b6001915050610345565b60ff841115610d6557610d65610b4a565b8360020a915084821115610d7b57610d7b610b4a565b50610345565b5060208310610133831016604e8410600b8410161715610db4575081810a83811115610daf57610daf610b4a565b610345565b610dc18484846001610cd2565b92509050818404811115610dd757610dd7610b4a565b0292915050565b5f6103455f198484610d1a565b8281835e505f910152565b5f610dff825190565b808452602084019350610e16818560208601610deb565b601f01601f19169290920192915050565b60408101610e358285610a2e565b8181036020830152610aaf8184610df6565b801515610a79565b8051610a1881610e47565b5f60208284031215610e6d57610e6d5f80fd5b5f610aaf8484610e4f565b60608101610e868286610a2e565b610e936020830185610a2e565b818103604083015261037d8184610df656fea2646970667358221220e61f3c3a4be851eb2dda7266d7c9ab7da72c08ae150bff35b79a7042d1ed0a8864736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x11ED CODESIZE SUB DUP1 PUSH2 0x11ED DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1B6 JUMP JUMPDEST DUP8 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x5A PUSH4 0x1E13380 DUP8 PUSH2 0x28A JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x6A JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x7E JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x7E JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0xA7 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xB2 JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD9 DUP10 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xE2 DUP9 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xEB DUP8 PUSH2 0x14B JUMP JUMPDEST PUSH2 0xF4 DUP3 PUSH2 0x14B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x12E DUP10 PUSH2 0x14B JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH2 0x100 MSTORE POP PUSH2 0x29D SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x172 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x190 DUP2 PUSH2 0x175 JUMP JUMPDEST DUP2 EQ PUSH2 0x172 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x181 DUP2 PUSH2 0x187 JUMP JUMPDEST DUP1 PUSH2 0x190 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x181 DUP2 PUSH2 0x1A5 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1D2 JUMPI PUSH2 0x1D2 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1DD DUP13 DUP13 PUSH2 0x19A JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1EE DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1FF DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x210 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x221 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x232 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x243 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x254 DUP13 DUP3 DUP14 ADD PUSH2 0x19A JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x266 DUP13 DUP3 DUP14 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x298 JUMPI PUSH2 0x298 PUSH2 0x276 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xEDB PUSH2 0x312 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x178 ADD MSTORE PUSH2 0x6CE ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x1C8 ADD MSTORE PUSH2 0x959 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x280 ADD MSTORE DUP2 DUP2 PUSH2 0x59A ADD MSTORE PUSH2 0x7EC ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x144 ADD MSTORE DUP2 DUP2 PUSH2 0x5C7 ADD MSTORE PUSH2 0x81B ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x23D ADD MSTORE DUP2 DUP2 PUSH2 0x2D8 ADD MSTORE PUSH2 0x89A ADD MSTORE PUSH2 0xEDB PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41976E09 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x208 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x3A26DC4F EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x1A7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x19A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA62 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x1BE CALLDATASIZE PUSH1 0x4 PUSH2 0xA91 JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x19A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x216 CALLDATASIZE PUSH1 0x4 PUSH2 0xAE6 JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x223 PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xB28 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x506 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0xAE6 JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x19A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x166 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x79B JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x328 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x34C JUMPI PUSH2 0x345 DUP2 PUSH2 0x7E8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x355 PUSH2 0x79B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x366 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x370 JUMPI DUP3 PUSH2 0x372 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x37D DUP2 PUSH2 0x7E8 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3C4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x435 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x445 PUSH4 0x1E13380 DUP5 PUSH2 0xB5E JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x469 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x469 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x487 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4DA JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4E3 PUSH2 0x79B JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4F3 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4FC PUSH2 0x6CA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x516 SWAP1 TIMESTAMP PUSH2 0xB71 JUMP JUMPDEST LT DUP1 PUSH2 0x522 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x529 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x532 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x53D PUSH2 0x79B JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x54F JUMPI DUP3 PUSH2 0x551 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x55B SWAP2 SWAP1 PUSH2 0xB84 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5EF SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x618 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x690 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3BA0B9A9 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x727 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x74B SWAP2 SWAP1 PUSH2 0xC45 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD PUSH0 SUB PUSH2 0x771 JUMPI PUSH1 0x40 MLOAD PUSH4 0x386C9783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x78B SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x795 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x7AB SWAP2 SWAP1 PUSH2 0xB71 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x7D1 SWAP2 SWAP1 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xB84 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x856 SWAP2 SWAP1 PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x895 SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8F8 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x91C SWAP2 SWAP1 PUSH2 0xCB4 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x92C DUP2 PUSH1 0xA PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x936 DUP5 DUP8 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x990 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xE27 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9AB JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x9CF SWAP2 SWAP1 PUSH2 0xE5A JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9FE JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xA02 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA18 JUMP JUMPDEST PUSH2 0xA04 DUP2 PUSH2 0xA1E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xA2E JUMP JUMPDEST PUSH0 PUSH2 0xA18 DUP3 PUSH2 0xA1E JUMP JUMPDEST PUSH0 PUSH2 0xA18 DUP3 PUSH2 0xA45 JUMP JUMPDEST PUSH2 0xA04 DUP2 PUSH2 0xA4F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xA59 JUMP JUMPDEST PUSH2 0xA79 DUP2 PUSH2 0xA1E JUMP JUMPDEST DUP2 EQ PUSH2 0xA83 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xA18 DUP2 PUSH2 0xA70 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAA4 JUMPI PUSH2 0xAA4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xA79 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xA18 DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xADB JUMPI PUSH2 0xADB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xABD JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAFA JUMPI PUSH2 0xAFA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB05 DUP6 DUP6 PUSH2 0xABD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB16 DUP6 DUP3 DUP7 ADD PUSH2 0xABD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA04 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xB20 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB6C JUMPI PUSH2 0xB6C PUSH2 0xB36 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA18 PUSH2 0xB4A JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA18 PUSH2 0xB4A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBD1 JUMPI PUSH2 0xBD1 PUSH2 0xB97 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xBE2 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xBEE DUP3 DUP3 PUSH2 0xBAB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0xA18 DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC11 JUMPI PUSH2 0xC11 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC1B PUSH1 0x40 PUSH2 0xBD8 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xC28 DUP5 DUP5 PUSH2 0xBF3 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0xC39 DUP5 DUP5 DUP4 ADD PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC58 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xBFE JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xC7B JUMPI PUSH2 0xC7B PUSH2 0xB4A JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC95 JUMPI PUSH2 0xC95 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA79 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xA18 DUP2 PUSH2 0xCA0 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC7 JUMPI PUSH2 0xCC7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xCA9 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xD11 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCF0 PUSH2 0xB4A JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xCFE JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xD0A DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xCD5 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xD28 JUMPI POP PUSH1 0x1 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH2 0xD34 JUMPI POP PUSH0 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xD54 JUMPI PUSH2 0xD81 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x345 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xD65 JUMPI PUSH2 0xD65 PUSH2 0xB4A JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xD7B JUMPI PUSH2 0xD7B PUSH2 0xB4A JUMP JUMPDEST POP PUSH2 0x345 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xDB4 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAF PUSH2 0xB4A JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0xDC1 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xCD2 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xDD7 JUMPI PUSH2 0xDD7 PUSH2 0xB4A JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x345 PUSH0 NOT DUP5 DUP5 PUSH2 0xD1A JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xDFF DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xE16 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xDEB JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE35 DUP3 DUP6 PUSH2 0xA2E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAAF DUP2 DUP5 PUSH2 0xDF6 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA79 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xA18 DUP2 PUSH2 0xE47 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6D JUMPI PUSH2 0xE6D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xE4F JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xE86 DUP3 DUP7 PUSH2 0xA2E JUMP JUMPDEST PUSH2 0xE93 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xA2E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x37D DUP2 DUP5 PUSH2 0xDF6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0x1F EXTCODECOPY GASPRICE 0x4B 0xE8 MLOAD 0xEB 0x2D 0xDA PUSH19 0x66D7C9AB7DA72C08AE150BFF35B79A7042D1ED EXP DUP9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"495:1766:60:-:0;;;937:749;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1309:6;652:42;1360:15;1389:16;1419:17;1450:30;1494:24;1532:20;1566:12;3527:36:67;408:10:17;1389:16:60;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1603:31:60::1;1624:9:::0;1603:20:::1;:31::i;:::-;-1:-1:-1::0;;;;;;;;1644:35:60;;::::1;;::::0;-1:-1:-1;495:1766:60;;-1:-1:-1;;;;495:1766:60;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;495:1766:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@NATIVE_TOKEN_ADDR_6005":{"entryPoint":null,"id":6005,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@STAKE_POOL_6009":{"entryPoint":null,"id":6009,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":2024,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2368,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1947,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":725,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_6091":{"entryPoint":1738,"id":6091,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1227,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":1015,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":902,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1618,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1286,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2694,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Data_$3526_memory_ptr_fromMemory":{"entryPoint":3070,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2749,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":3059,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":3241,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Data_$3526_memory_ptr_fromMemory":{"entryPoint":3141,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2760,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3202,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2790,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":3252,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2606,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2848,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IPStakePool_$3534_to_t_address_fromStack":{"entryPoint":2649,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3574,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2562,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2615,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3704,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3623,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2856,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPStakePool_$3534__to_t_address__fromStack_reversed":{"entryPoint":2658,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2570,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3032,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2948,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2910,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":3282,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3550,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3354,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3171,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2929,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2590,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IPStakePool_$3534_to_t_address":{"entryPoint":2639,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2629,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3563,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":2987,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2890,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2870,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2967,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2672,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3655,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2743,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":3232,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:15076:101","nodeType":"YulBlock","src":"0:15076:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1060:28:101","nodeType":"YulBlock","src":"1060:28:101","statements":[{"nativeSrc":"1070:12:101","nodeType":"YulAssignment","src":"1070:12:101","value":{"name":"value","nativeSrc":"1077:5:101","nodeType":"YulIdentifier","src":"1077:5:101"},"variableNames":[{"name":"ret","nativeSrc":"1070:3:101","nodeType":"YulIdentifier","src":"1070:3:101"}]}]},"name":"identity","nativeSrc":"1028:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1046:5:101","nodeType":"YulTypedName","src":"1046:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1056:3:101","nodeType":"YulTypedName","src":"1056:3:101","type":""}],"src":"1028:60:101"},{"body":{"nativeSrc":"1154:82:101","nodeType":"YulBlock","src":"1154:82:101","statements":[{"nativeSrc":"1164:66:101","nodeType":"YulAssignment","src":"1164:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1222:5:101","nodeType":"YulIdentifier","src":"1222:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1204:17:101","nodeType":"YulIdentifier","src":"1204:17:101"},"nativeSrc":"1204:24:101","nodeType":"YulFunctionCall","src":"1204:24:101"}],"functionName":{"name":"identity","nativeSrc":"1195:8:101","nodeType":"YulIdentifier","src":"1195:8:101"},"nativeSrc":"1195:34:101","nodeType":"YulFunctionCall","src":"1195:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1177:17:101","nodeType":"YulIdentifier","src":"1177:17:101"},"nativeSrc":"1177:53:101","nodeType":"YulFunctionCall","src":"1177:53:101"},"variableNames":[{"name":"converted","nativeSrc":"1164:9:101","nodeType":"YulIdentifier","src":"1164:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1094:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1134:5:101","nodeType":"YulTypedName","src":"1134:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1144:9:101","nodeType":"YulTypedName","src":"1144:9:101","type":""}],"src":"1094:142:101"},{"body":{"nativeSrc":"1302:66:101","nodeType":"YulBlock","src":"1302:66:101","statements":[{"nativeSrc":"1312:50:101","nodeType":"YulAssignment","src":"1312:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1356:5:101","nodeType":"YulIdentifier","src":"1356:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1325:30:101","nodeType":"YulIdentifier","src":"1325:30:101"},"nativeSrc":"1325:37:101","nodeType":"YulFunctionCall","src":"1325:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1312:9:101","nodeType":"YulIdentifier","src":"1312:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"1242:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1282:5:101","nodeType":"YulTypedName","src":"1282:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1292:9:101","nodeType":"YulTypedName","src":"1292:9:101","type":""}],"src":"1242:126:101"},{"body":{"nativeSrc":"1454:66:101","nodeType":"YulBlock","src":"1454:66:101","statements":[{"nativeSrc":"1464:50:101","nodeType":"YulAssignment","src":"1464:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1508:5:101","nodeType":"YulIdentifier","src":"1508:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1477:30:101","nodeType":"YulIdentifier","src":"1477:30:101"},"nativeSrc":"1477:37:101","nodeType":"YulFunctionCall","src":"1477:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1464:9:101","nodeType":"YulIdentifier","src":"1464:9:101"}]}]},"name":"convert_t_contract$_IPStakePool_$3534_to_t_address","nativeSrc":"1374:146:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1434:5:101","nodeType":"YulTypedName","src":"1434:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1444:9:101","nodeType":"YulTypedName","src":"1444:9:101","type":""}],"src":"1374:146:101"},{"body":{"nativeSrc":"1611:86:101","nodeType":"YulBlock","src":"1611:86:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1628:3:101","nodeType":"YulIdentifier","src":"1628:3:101"},{"arguments":[{"name":"value","nativeSrc":"1684:5:101","nodeType":"YulIdentifier","src":"1684:5:101"}],"functionName":{"name":"convert_t_contract$_IPStakePool_$3534_to_t_address","nativeSrc":"1633:50:101","nodeType":"YulIdentifier","src":"1633:50:101"},"nativeSrc":"1633:57:101","nodeType":"YulFunctionCall","src":"1633:57:101"}],"functionName":{"name":"mstore","nativeSrc":"1621:6:101","nodeType":"YulIdentifier","src":"1621:6:101"},"nativeSrc":"1621:70:101","nodeType":"YulFunctionCall","src":"1621:70:101"},"nativeSrc":"1621:70:101","nodeType":"YulExpressionStatement","src":"1621:70:101"}]},"name":"abi_encode_t_contract$_IPStakePool_$3534_to_t_address_fromStack","nativeSrc":"1526:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1599:5:101","nodeType":"YulTypedName","src":"1599:5:101","type":""},{"name":"pos","nativeSrc":"1606:3:101","nodeType":"YulTypedName","src":"1606:3:101","type":""}],"src":"1526:171:101"},{"body":{"nativeSrc":"1821:144:101","nodeType":"YulBlock","src":"1821:144:101","statements":[{"nativeSrc":"1831:26:101","nodeType":"YulAssignment","src":"1831:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1843:9:101","nodeType":"YulIdentifier","src":"1843:9:101"},{"kind":"number","nativeSrc":"1854:2:101","nodeType":"YulLiteral","src":"1854:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1839:3:101","nodeType":"YulIdentifier","src":"1839:3:101"},"nativeSrc":"1839:18:101","nodeType":"YulFunctionCall","src":"1839:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1831:4:101","nodeType":"YulIdentifier","src":"1831:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1931:6:101","nodeType":"YulIdentifier","src":"1931:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1944:9:101","nodeType":"YulIdentifier","src":"1944:9:101"},{"kind":"number","nativeSrc":"1955:1:101","nodeType":"YulLiteral","src":"1955:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1940:3:101","nodeType":"YulIdentifier","src":"1940:3:101"},"nativeSrc":"1940:17:101","nodeType":"YulFunctionCall","src":"1940:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IPStakePool_$3534_to_t_address_fromStack","nativeSrc":"1867:63:101","nodeType":"YulIdentifier","src":"1867:63:101"},"nativeSrc":"1867:91:101","nodeType":"YulFunctionCall","src":"1867:91:101"},"nativeSrc":"1867:91:101","nodeType":"YulExpressionStatement","src":"1867:91:101"}]},"name":"abi_encode_tuple_t_contract$_IPStakePool_$3534__to_t_address__fromStack_reversed","nativeSrc":"1703:262:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1793:9:101","nodeType":"YulTypedName","src":"1793:9:101","type":""},{"name":"value0","nativeSrc":"1805:6:101","nodeType":"YulTypedName","src":"1805:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1816:4:101","nodeType":"YulTypedName","src":"1816:4:101","type":""}],"src":"1703:262:101"},{"body":{"nativeSrc":"2011:35:101","nodeType":"YulBlock","src":"2011:35:101","statements":[{"nativeSrc":"2021:19:101","nodeType":"YulAssignment","src":"2021:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"2037:2:101","nodeType":"YulLiteral","src":"2037:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2031:5:101","nodeType":"YulIdentifier","src":"2031:5:101"},"nativeSrc":"2031:9:101","nodeType":"YulFunctionCall","src":"2031:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"2021:6:101","nodeType":"YulIdentifier","src":"2021:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1971:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"2004:6:101","nodeType":"YulTypedName","src":"2004:6:101","type":""}],"src":"1971:75:101"},{"body":{"nativeSrc":"2141:28:101","nodeType":"YulBlock","src":"2141:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2158:1:101","nodeType":"YulLiteral","src":"2158:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2161:1:101","nodeType":"YulLiteral","src":"2161:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2151:6:101","nodeType":"YulIdentifier","src":"2151:6:101"},"nativeSrc":"2151:12:101","nodeType":"YulFunctionCall","src":"2151:12:101"},"nativeSrc":"2151:12:101","nodeType":"YulExpressionStatement","src":"2151:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2052:117:101","nodeType":"YulFunctionDefinition","src":"2052:117:101"},{"body":{"nativeSrc":"2264:28:101","nodeType":"YulBlock","src":"2264:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2281:1:101","nodeType":"YulLiteral","src":"2281:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2284:1:101","nodeType":"YulLiteral","src":"2284:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2274:6:101","nodeType":"YulIdentifier","src":"2274:6:101"},"nativeSrc":"2274:12:101","nodeType":"YulFunctionCall","src":"2274:12:101"},"nativeSrc":"2274:12:101","nodeType":"YulExpressionStatement","src":"2274:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2175:117:101","nodeType":"YulFunctionDefinition","src":"2175:117:101"},{"body":{"nativeSrc":"2341:79:101","nodeType":"YulBlock","src":"2341:79:101","statements":[{"body":{"nativeSrc":"2398:16:101","nodeType":"YulBlock","src":"2398:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2407:1:101","nodeType":"YulLiteral","src":"2407:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2410:1:101","nodeType":"YulLiteral","src":"2410:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2400:6:101","nodeType":"YulIdentifier","src":"2400:6:101"},"nativeSrc":"2400:12:101","nodeType":"YulFunctionCall","src":"2400:12:101"},"nativeSrc":"2400:12:101","nodeType":"YulExpressionStatement","src":"2400:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2364:5:101","nodeType":"YulIdentifier","src":"2364:5:101"},{"arguments":[{"name":"value","nativeSrc":"2389:5:101","nodeType":"YulIdentifier","src":"2389:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2371:17:101","nodeType":"YulIdentifier","src":"2371:17:101"},"nativeSrc":"2371:24:101","nodeType":"YulFunctionCall","src":"2371:24:101"}],"functionName":{"name":"eq","nativeSrc":"2361:2:101","nodeType":"YulIdentifier","src":"2361:2:101"},"nativeSrc":"2361:35:101","nodeType":"YulFunctionCall","src":"2361:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2354:6:101","nodeType":"YulIdentifier","src":"2354:6:101"},"nativeSrc":"2354:43:101","nodeType":"YulFunctionCall","src":"2354:43:101"},"nativeSrc":"2351:63:101","nodeType":"YulIf","src":"2351:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2298:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2334:5:101","nodeType":"YulTypedName","src":"2334:5:101","type":""}],"src":"2298:122:101"},{"body":{"nativeSrc":"2478:87:101","nodeType":"YulBlock","src":"2478:87:101","statements":[{"nativeSrc":"2488:29:101","nodeType":"YulAssignment","src":"2488:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2510:6:101","nodeType":"YulIdentifier","src":"2510:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2497:12:101","nodeType":"YulIdentifier","src":"2497:12:101"},"nativeSrc":"2497:20:101","nodeType":"YulFunctionCall","src":"2497:20:101"},"variableNames":[{"name":"value","nativeSrc":"2488:5:101","nodeType":"YulIdentifier","src":"2488:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2553:5:101","nodeType":"YulIdentifier","src":"2553:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2526:26:101","nodeType":"YulIdentifier","src":"2526:26:101"},"nativeSrc":"2526:33:101","nodeType":"YulFunctionCall","src":"2526:33:101"},"nativeSrc":"2526:33:101","nodeType":"YulExpressionStatement","src":"2526:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2426:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2456:6:101","nodeType":"YulTypedName","src":"2456:6:101","type":""},{"name":"end","nativeSrc":"2464:3:101","nodeType":"YulTypedName","src":"2464:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2472:5:101","nodeType":"YulTypedName","src":"2472:5:101","type":""}],"src":"2426:139:101"},{"body":{"nativeSrc":"2637:263:101","nodeType":"YulBlock","src":"2637:263:101","statements":[{"body":{"nativeSrc":"2683:83:101","nodeType":"YulBlock","src":"2683:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2685:77:101","nodeType":"YulIdentifier","src":"2685:77:101"},"nativeSrc":"2685:79:101","nodeType":"YulFunctionCall","src":"2685:79:101"},"nativeSrc":"2685:79:101","nodeType":"YulExpressionStatement","src":"2685:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2658:7:101","nodeType":"YulIdentifier","src":"2658:7:101"},{"name":"headStart","nativeSrc":"2667:9:101","nodeType":"YulIdentifier","src":"2667:9:101"}],"functionName":{"name":"sub","nativeSrc":"2654:3:101","nodeType":"YulIdentifier","src":"2654:3:101"},"nativeSrc":"2654:23:101","nodeType":"YulFunctionCall","src":"2654:23:101"},{"kind":"number","nativeSrc":"2679:2:101","nodeType":"YulLiteral","src":"2679:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2650:3:101","nodeType":"YulIdentifier","src":"2650:3:101"},"nativeSrc":"2650:32:101","nodeType":"YulFunctionCall","src":"2650:32:101"},"nativeSrc":"2647:119:101","nodeType":"YulIf","src":"2647:119:101"},{"nativeSrc":"2776:117:101","nodeType":"YulBlock","src":"2776:117:101","statements":[{"nativeSrc":"2791:15:101","nodeType":"YulVariableDeclaration","src":"2791:15:101","value":{"kind":"number","nativeSrc":"2805:1:101","nodeType":"YulLiteral","src":"2805:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2795:6:101","nodeType":"YulTypedName","src":"2795:6:101","type":""}]},{"nativeSrc":"2820:63:101","nodeType":"YulAssignment","src":"2820:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2855:9:101","nodeType":"YulIdentifier","src":"2855:9:101"},{"name":"offset","nativeSrc":"2866:6:101","nodeType":"YulIdentifier","src":"2866:6:101"}],"functionName":{"name":"add","nativeSrc":"2851:3:101","nodeType":"YulIdentifier","src":"2851:3:101"},"nativeSrc":"2851:22:101","nodeType":"YulFunctionCall","src":"2851:22:101"},{"name":"dataEnd","nativeSrc":"2875:7:101","nodeType":"YulIdentifier","src":"2875:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2830:20:101","nodeType":"YulIdentifier","src":"2830:20:101"},"nativeSrc":"2830:53:101","nodeType":"YulFunctionCall","src":"2830:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2820:6:101","nodeType":"YulIdentifier","src":"2820:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2571:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2607:9:101","nodeType":"YulTypedName","src":"2607:9:101","type":""},{"name":"dataEnd","nativeSrc":"2618:7:101","nodeType":"YulTypedName","src":"2618:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2630:6:101","nodeType":"YulTypedName","src":"2630:6:101","type":""}],"src":"2571:329:101"},{"body":{"nativeSrc":"2998:66:101","nodeType":"YulBlock","src":"2998:66:101","statements":[{"nativeSrc":"3008:50:101","nodeType":"YulAssignment","src":"3008:50:101","value":{"arguments":[{"name":"value","nativeSrc":"3052:5:101","nodeType":"YulIdentifier","src":"3052:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3021:30:101","nodeType":"YulIdentifier","src":"3021:30:101"},"nativeSrc":"3021:37:101","nodeType":"YulFunctionCall","src":"3021:37:101"},"variableNames":[{"name":"converted","nativeSrc":"3008:9:101","nodeType":"YulIdentifier","src":"3008:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2906:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2978:5:101","nodeType":"YulTypedName","src":"2978:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2988:9:101","nodeType":"YulTypedName","src":"2988:9:101","type":""}],"src":"2906:158:101"},{"body":{"nativeSrc":"3167:98:101","nodeType":"YulBlock","src":"3167:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3184:3:101","nodeType":"YulIdentifier","src":"3184:3:101"},{"arguments":[{"name":"value","nativeSrc":"3252:5:101","nodeType":"YulIdentifier","src":"3252:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"3189:62:101","nodeType":"YulIdentifier","src":"3189:62:101"},"nativeSrc":"3189:69:101","nodeType":"YulFunctionCall","src":"3189:69:101"}],"functionName":{"name":"mstore","nativeSrc":"3177:6:101","nodeType":"YulIdentifier","src":"3177:6:101"},"nativeSrc":"3177:82:101","nodeType":"YulFunctionCall","src":"3177:82:101"},"nativeSrc":"3177:82:101","nodeType":"YulExpressionStatement","src":"3177:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"3070:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3155:5:101","nodeType":"YulTypedName","src":"3155:5:101","type":""},{"name":"pos","nativeSrc":"3162:3:101","nodeType":"YulTypedName","src":"3162:3:101","type":""}],"src":"3070:195:101"},{"body":{"nativeSrc":"3401:156:101","nodeType":"YulBlock","src":"3401:156:101","statements":[{"nativeSrc":"3411:26:101","nodeType":"YulAssignment","src":"3411:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3423:9:101","nodeType":"YulIdentifier","src":"3423:9:101"},{"kind":"number","nativeSrc":"3434:2:101","nodeType":"YulLiteral","src":"3434:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3419:3:101","nodeType":"YulIdentifier","src":"3419:3:101"},"nativeSrc":"3419:18:101","nodeType":"YulFunctionCall","src":"3419:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3411:4:101","nodeType":"YulIdentifier","src":"3411:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3523:6:101","nodeType":"YulIdentifier","src":"3523:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3536:9:101","nodeType":"YulIdentifier","src":"3536:9:101"},{"kind":"number","nativeSrc":"3547:1:101","nodeType":"YulLiteral","src":"3547:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3532:3:101","nodeType":"YulIdentifier","src":"3532:3:101"},"nativeSrc":"3532:17:101","nodeType":"YulFunctionCall","src":"3532:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"3447:75:101","nodeType":"YulIdentifier","src":"3447:75:101"},"nativeSrc":"3447:103:101","nodeType":"YulFunctionCall","src":"3447:103:101"},"nativeSrc":"3447:103:101","nodeType":"YulExpressionStatement","src":"3447:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"3271:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3373:9:101","nodeType":"YulTypedName","src":"3373:9:101","type":""},{"name":"value0","nativeSrc":"3385:6:101","nodeType":"YulTypedName","src":"3385:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3396:4:101","nodeType":"YulTypedName","src":"3396:4:101","type":""}],"src":"3271:286:101"},{"body":{"nativeSrc":"3606:79:101","nodeType":"YulBlock","src":"3606:79:101","statements":[{"body":{"nativeSrc":"3663:16:101","nodeType":"YulBlock","src":"3663:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3672:1:101","nodeType":"YulLiteral","src":"3672:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3675:1:101","nodeType":"YulLiteral","src":"3675:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3665:6:101","nodeType":"YulIdentifier","src":"3665:6:101"},"nativeSrc":"3665:12:101","nodeType":"YulFunctionCall","src":"3665:12:101"},"nativeSrc":"3665:12:101","nodeType":"YulExpressionStatement","src":"3665:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3629:5:101","nodeType":"YulIdentifier","src":"3629:5:101"},{"arguments":[{"name":"value","nativeSrc":"3654:5:101","nodeType":"YulIdentifier","src":"3654:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3636:17:101","nodeType":"YulIdentifier","src":"3636:17:101"},"nativeSrc":"3636:24:101","nodeType":"YulFunctionCall","src":"3636:24:101"}],"functionName":{"name":"eq","nativeSrc":"3626:2:101","nodeType":"YulIdentifier","src":"3626:2:101"},"nativeSrc":"3626:35:101","nodeType":"YulFunctionCall","src":"3626:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3619:6:101","nodeType":"YulIdentifier","src":"3619:6:101"},"nativeSrc":"3619:43:101","nodeType":"YulFunctionCall","src":"3619:43:101"},"nativeSrc":"3616:63:101","nodeType":"YulIf","src":"3616:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"3563:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3599:5:101","nodeType":"YulTypedName","src":"3599:5:101","type":""}],"src":"3563:122:101"},{"body":{"nativeSrc":"3743:87:101","nodeType":"YulBlock","src":"3743:87:101","statements":[{"nativeSrc":"3753:29:101","nodeType":"YulAssignment","src":"3753:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3775:6:101","nodeType":"YulIdentifier","src":"3775:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3762:12:101","nodeType":"YulIdentifier","src":"3762:12:101"},"nativeSrc":"3762:20:101","nodeType":"YulFunctionCall","src":"3762:20:101"},"variableNames":[{"name":"value","nativeSrc":"3753:5:101","nodeType":"YulIdentifier","src":"3753:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3818:5:101","nodeType":"YulIdentifier","src":"3818:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3791:26:101","nodeType":"YulIdentifier","src":"3791:26:101"},"nativeSrc":"3791:33:101","nodeType":"YulFunctionCall","src":"3791:33:101"},"nativeSrc":"3791:33:101","nodeType":"YulExpressionStatement","src":"3791:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3691:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3721:6:101","nodeType":"YulTypedName","src":"3721:6:101","type":""},{"name":"end","nativeSrc":"3729:3:101","nodeType":"YulTypedName","src":"3729:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3737:5:101","nodeType":"YulTypedName","src":"3737:5:101","type":""}],"src":"3691:139:101"},{"body":{"nativeSrc":"3902:263:101","nodeType":"YulBlock","src":"3902:263:101","statements":[{"body":{"nativeSrc":"3948:83:101","nodeType":"YulBlock","src":"3948:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3950:77:101","nodeType":"YulIdentifier","src":"3950:77:101"},"nativeSrc":"3950:79:101","nodeType":"YulFunctionCall","src":"3950:79:101"},"nativeSrc":"3950:79:101","nodeType":"YulExpressionStatement","src":"3950:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3923:7:101","nodeType":"YulIdentifier","src":"3923:7:101"},{"name":"headStart","nativeSrc":"3932:9:101","nodeType":"YulIdentifier","src":"3932:9:101"}],"functionName":{"name":"sub","nativeSrc":"3919:3:101","nodeType":"YulIdentifier","src":"3919:3:101"},"nativeSrc":"3919:23:101","nodeType":"YulFunctionCall","src":"3919:23:101"},{"kind":"number","nativeSrc":"3944:2:101","nodeType":"YulLiteral","src":"3944:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3915:3:101","nodeType":"YulIdentifier","src":"3915:3:101"},"nativeSrc":"3915:32:101","nodeType":"YulFunctionCall","src":"3915:32:101"},"nativeSrc":"3912:119:101","nodeType":"YulIf","src":"3912:119:101"},{"nativeSrc":"4041:117:101","nodeType":"YulBlock","src":"4041:117:101","statements":[{"nativeSrc":"4056:15:101","nodeType":"YulVariableDeclaration","src":"4056:15:101","value":{"kind":"number","nativeSrc":"4070:1:101","nodeType":"YulLiteral","src":"4070:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4060:6:101","nodeType":"YulTypedName","src":"4060:6:101","type":""}]},{"nativeSrc":"4085:63:101","nodeType":"YulAssignment","src":"4085:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4120:9:101","nodeType":"YulIdentifier","src":"4120:9:101"},{"name":"offset","nativeSrc":"4131:6:101","nodeType":"YulIdentifier","src":"4131:6:101"}],"functionName":{"name":"add","nativeSrc":"4116:3:101","nodeType":"YulIdentifier","src":"4116:3:101"},"nativeSrc":"4116:22:101","nodeType":"YulFunctionCall","src":"4116:22:101"},{"name":"dataEnd","nativeSrc":"4140:7:101","nodeType":"YulIdentifier","src":"4140:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4095:20:101","nodeType":"YulIdentifier","src":"4095:20:101"},"nativeSrc":"4095:53:101","nodeType":"YulFunctionCall","src":"4095:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4085:6:101","nodeType":"YulIdentifier","src":"4085:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3836:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3872:9:101","nodeType":"YulTypedName","src":"3872:9:101","type":""},{"name":"dataEnd","nativeSrc":"3883:7:101","nodeType":"YulTypedName","src":"3883:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3895:6:101","nodeType":"YulTypedName","src":"3895:6:101","type":""}],"src":"3836:329:101"},{"body":{"nativeSrc":"4254:391:101","nodeType":"YulBlock","src":"4254:391:101","statements":[{"body":{"nativeSrc":"4300:83:101","nodeType":"YulBlock","src":"4300:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4302:77:101","nodeType":"YulIdentifier","src":"4302:77:101"},"nativeSrc":"4302:79:101","nodeType":"YulFunctionCall","src":"4302:79:101"},"nativeSrc":"4302:79:101","nodeType":"YulExpressionStatement","src":"4302:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4275:7:101","nodeType":"YulIdentifier","src":"4275:7:101"},{"name":"headStart","nativeSrc":"4284:9:101","nodeType":"YulIdentifier","src":"4284:9:101"}],"functionName":{"name":"sub","nativeSrc":"4271:3:101","nodeType":"YulIdentifier","src":"4271:3:101"},"nativeSrc":"4271:23:101","nodeType":"YulFunctionCall","src":"4271:23:101"},{"kind":"number","nativeSrc":"4296:2:101","nodeType":"YulLiteral","src":"4296:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4267:3:101","nodeType":"YulIdentifier","src":"4267:3:101"},"nativeSrc":"4267:32:101","nodeType":"YulFunctionCall","src":"4267:32:101"},"nativeSrc":"4264:119:101","nodeType":"YulIf","src":"4264:119:101"},{"nativeSrc":"4393:117:101","nodeType":"YulBlock","src":"4393:117:101","statements":[{"nativeSrc":"4408:15:101","nodeType":"YulVariableDeclaration","src":"4408:15:101","value":{"kind":"number","nativeSrc":"4422:1:101","nodeType":"YulLiteral","src":"4422:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4412:6:101","nodeType":"YulTypedName","src":"4412:6:101","type":""}]},{"nativeSrc":"4437:63:101","nodeType":"YulAssignment","src":"4437:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4472:9:101","nodeType":"YulIdentifier","src":"4472:9:101"},{"name":"offset","nativeSrc":"4483:6:101","nodeType":"YulIdentifier","src":"4483:6:101"}],"functionName":{"name":"add","nativeSrc":"4468:3:101","nodeType":"YulIdentifier","src":"4468:3:101"},"nativeSrc":"4468:22:101","nodeType":"YulFunctionCall","src":"4468:22:101"},{"name":"dataEnd","nativeSrc":"4492:7:101","nodeType":"YulIdentifier","src":"4492:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4447:20:101","nodeType":"YulIdentifier","src":"4447:20:101"},"nativeSrc":"4447:53:101","nodeType":"YulFunctionCall","src":"4447:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4437:6:101","nodeType":"YulIdentifier","src":"4437:6:101"}]}]},{"nativeSrc":"4520:118:101","nodeType":"YulBlock","src":"4520:118:101","statements":[{"nativeSrc":"4535:16:101","nodeType":"YulVariableDeclaration","src":"4535:16:101","value":{"kind":"number","nativeSrc":"4549:2:101","nodeType":"YulLiteral","src":"4549:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4539:6:101","nodeType":"YulTypedName","src":"4539:6:101","type":""}]},{"nativeSrc":"4565:63:101","nodeType":"YulAssignment","src":"4565:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4600:9:101","nodeType":"YulIdentifier","src":"4600:9:101"},{"name":"offset","nativeSrc":"4611:6:101","nodeType":"YulIdentifier","src":"4611:6:101"}],"functionName":{"name":"add","nativeSrc":"4596:3:101","nodeType":"YulIdentifier","src":"4596:3:101"},"nativeSrc":"4596:22:101","nodeType":"YulFunctionCall","src":"4596:22:101"},{"name":"dataEnd","nativeSrc":"4620:7:101","nodeType":"YulIdentifier","src":"4620:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4575:20:101","nodeType":"YulIdentifier","src":"4575:20:101"},"nativeSrc":"4575:53:101","nodeType":"YulFunctionCall","src":"4575:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4565:6:101","nodeType":"YulIdentifier","src":"4565:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"4171:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4216:9:101","nodeType":"YulTypedName","src":"4216:9:101","type":""},{"name":"dataEnd","nativeSrc":"4227:7:101","nodeType":"YulTypedName","src":"4227:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4239:6:101","nodeType":"YulTypedName","src":"4239:6:101","type":""},{"name":"value1","nativeSrc":"4247:6:101","nodeType":"YulTypedName","src":"4247:6:101","type":""}],"src":"4171:474:101"},{"body":{"nativeSrc":"4693:48:101","nodeType":"YulBlock","src":"4693:48:101","statements":[{"nativeSrc":"4703:32:101","nodeType":"YulAssignment","src":"4703:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4728:5:101","nodeType":"YulIdentifier","src":"4728:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4721:6:101","nodeType":"YulIdentifier","src":"4721:6:101"},"nativeSrc":"4721:13:101","nodeType":"YulFunctionCall","src":"4721:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4714:6:101","nodeType":"YulIdentifier","src":"4714:6:101"},"nativeSrc":"4714:21:101","nodeType":"YulFunctionCall","src":"4714:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4703:7:101","nodeType":"YulIdentifier","src":"4703:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4651:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4675:5:101","nodeType":"YulTypedName","src":"4675:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4685:7:101","nodeType":"YulTypedName","src":"4685:7:101","type":""}],"src":"4651:90:101"},{"body":{"nativeSrc":"4806:50:101","nodeType":"YulBlock","src":"4806:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4823:3:101","nodeType":"YulIdentifier","src":"4823:3:101"},{"arguments":[{"name":"value","nativeSrc":"4843:5:101","nodeType":"YulIdentifier","src":"4843:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4828:14:101","nodeType":"YulIdentifier","src":"4828:14:101"},"nativeSrc":"4828:21:101","nodeType":"YulFunctionCall","src":"4828:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4816:6:101","nodeType":"YulIdentifier","src":"4816:6:101"},"nativeSrc":"4816:34:101","nodeType":"YulFunctionCall","src":"4816:34:101"},"nativeSrc":"4816:34:101","nodeType":"YulExpressionStatement","src":"4816:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4747:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4794:5:101","nodeType":"YulTypedName","src":"4794:5:101","type":""},{"name":"pos","nativeSrc":"4801:3:101","nodeType":"YulTypedName","src":"4801:3:101","type":""}],"src":"4747:109:101"},{"body":{"nativeSrc":"4954:118:101","nodeType":"YulBlock","src":"4954:118:101","statements":[{"nativeSrc":"4964:26:101","nodeType":"YulAssignment","src":"4964:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4976:9:101","nodeType":"YulIdentifier","src":"4976:9:101"},{"kind":"number","nativeSrc":"4987:2:101","nodeType":"YulLiteral","src":"4987:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4972:3:101","nodeType":"YulIdentifier","src":"4972:3:101"},"nativeSrc":"4972:18:101","nodeType":"YulFunctionCall","src":"4972:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4964:4:101","nodeType":"YulIdentifier","src":"4964:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5038:6:101","nodeType":"YulIdentifier","src":"5038:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5051:9:101","nodeType":"YulIdentifier","src":"5051:9:101"},{"kind":"number","nativeSrc":"5062:1:101","nodeType":"YulLiteral","src":"5062:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5047:3:101","nodeType":"YulIdentifier","src":"5047:3:101"},"nativeSrc":"5047:17:101","nodeType":"YulFunctionCall","src":"5047:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5000:37:101","nodeType":"YulIdentifier","src":"5000:37:101"},"nativeSrc":"5000:65:101","nodeType":"YulFunctionCall","src":"5000:65:101"},"nativeSrc":"5000:65:101","nodeType":"YulExpressionStatement","src":"5000:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4862:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4926:9:101","nodeType":"YulTypedName","src":"4926:9:101","type":""},{"name":"value0","nativeSrc":"4938:6:101","nodeType":"YulTypedName","src":"4938:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4949:4:101","nodeType":"YulTypedName","src":"4949:4:101","type":""}],"src":"4862:210:101"},{"body":{"nativeSrc":"5171:66:101","nodeType":"YulBlock","src":"5171:66:101","statements":[{"nativeSrc":"5181:50:101","nodeType":"YulAssignment","src":"5181:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5225:5:101","nodeType":"YulIdentifier","src":"5225:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5194:30:101","nodeType":"YulIdentifier","src":"5194:30:101"},"nativeSrc":"5194:37:101","nodeType":"YulFunctionCall","src":"5194:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5181:9:101","nodeType":"YulIdentifier","src":"5181:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5078:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5151:5:101","nodeType":"YulTypedName","src":"5151:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5161:9:101","nodeType":"YulTypedName","src":"5161:9:101","type":""}],"src":"5078:159:101"},{"body":{"nativeSrc":"5341:99:101","nodeType":"YulBlock","src":"5341:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5358:3:101","nodeType":"YulIdentifier","src":"5358:3:101"},{"arguments":[{"name":"value","nativeSrc":"5427:5:101","nodeType":"YulIdentifier","src":"5427:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5363:63:101","nodeType":"YulIdentifier","src":"5363:63:101"},"nativeSrc":"5363:70:101","nodeType":"YulFunctionCall","src":"5363:70:101"}],"functionName":{"name":"mstore","nativeSrc":"5351:6:101","nodeType":"YulIdentifier","src":"5351:6:101"},"nativeSrc":"5351:83:101","nodeType":"YulFunctionCall","src":"5351:83:101"},"nativeSrc":"5351:83:101","nodeType":"YulExpressionStatement","src":"5351:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5243:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5329:5:101","nodeType":"YulTypedName","src":"5329:5:101","type":""},{"name":"pos","nativeSrc":"5336:3:101","nodeType":"YulTypedName","src":"5336:3:101","type":""}],"src":"5243:197:101"},{"body":{"nativeSrc":"5577:157:101","nodeType":"YulBlock","src":"5577:157:101","statements":[{"nativeSrc":"5587:26:101","nodeType":"YulAssignment","src":"5587:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5599:9:101","nodeType":"YulIdentifier","src":"5599:9:101"},{"kind":"number","nativeSrc":"5610:2:101","nodeType":"YulLiteral","src":"5610:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5595:3:101","nodeType":"YulIdentifier","src":"5595:3:101"},"nativeSrc":"5595:18:101","nodeType":"YulFunctionCall","src":"5595:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5587:4:101","nodeType":"YulIdentifier","src":"5587:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5700:6:101","nodeType":"YulIdentifier","src":"5700:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5713:9:101","nodeType":"YulIdentifier","src":"5713:9:101"},{"kind":"number","nativeSrc":"5724:1:101","nodeType":"YulLiteral","src":"5724:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5709:3:101","nodeType":"YulIdentifier","src":"5709:3:101"},"nativeSrc":"5709:17:101","nodeType":"YulFunctionCall","src":"5709:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5623:76:101","nodeType":"YulIdentifier","src":"5623:76:101"},"nativeSrc":"5623:104:101","nodeType":"YulFunctionCall","src":"5623:104:101"},"nativeSrc":"5623:104:101","nodeType":"YulExpressionStatement","src":"5623:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"5446:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5549:9:101","nodeType":"YulTypedName","src":"5549:9:101","type":""},{"name":"value0","nativeSrc":"5561:6:101","nodeType":"YulTypedName","src":"5561:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5572:4:101","nodeType":"YulTypedName","src":"5572:4:101","type":""}],"src":"5446:288:101"},{"body":{"nativeSrc":"5768:152:101","nodeType":"YulBlock","src":"5768:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5785:1:101","nodeType":"YulLiteral","src":"5785:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5788:77:101","nodeType":"YulLiteral","src":"5788:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5778:6:101","nodeType":"YulIdentifier","src":"5778:6:101"},"nativeSrc":"5778:88:101","nodeType":"YulFunctionCall","src":"5778:88:101"},"nativeSrc":"5778:88:101","nodeType":"YulExpressionStatement","src":"5778:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5882:1:101","nodeType":"YulLiteral","src":"5882:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5885:4:101","nodeType":"YulLiteral","src":"5885:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5875:6:101","nodeType":"YulIdentifier","src":"5875:6:101"},"nativeSrc":"5875:15:101","nodeType":"YulFunctionCall","src":"5875:15:101"},"nativeSrc":"5875:15:101","nodeType":"YulExpressionStatement","src":"5875:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5906:1:101","nodeType":"YulLiteral","src":"5906:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5909:4:101","nodeType":"YulLiteral","src":"5909:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5899:6:101","nodeType":"YulIdentifier","src":"5899:6:101"},"nativeSrc":"5899:15:101","nodeType":"YulFunctionCall","src":"5899:15:101"},"nativeSrc":"5899:15:101","nodeType":"YulExpressionStatement","src":"5899:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5740:180:101","nodeType":"YulFunctionDefinition","src":"5740:180:101"},{"body":{"nativeSrc":"5954:152:101","nodeType":"YulBlock","src":"5954:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5971:1:101","nodeType":"YulLiteral","src":"5971:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5974:77:101","nodeType":"YulLiteral","src":"5974:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5964:6:101","nodeType":"YulIdentifier","src":"5964:6:101"},"nativeSrc":"5964:88:101","nodeType":"YulFunctionCall","src":"5964:88:101"},"nativeSrc":"5964:88:101","nodeType":"YulExpressionStatement","src":"5964:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6068:1:101","nodeType":"YulLiteral","src":"6068:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6071:4:101","nodeType":"YulLiteral","src":"6071:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6061:6:101","nodeType":"YulIdentifier","src":"6061:6:101"},"nativeSrc":"6061:15:101","nodeType":"YulFunctionCall","src":"6061:15:101"},"nativeSrc":"6061:15:101","nodeType":"YulExpressionStatement","src":"6061:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6092:1:101","nodeType":"YulLiteral","src":"6092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6095:4:101","nodeType":"YulLiteral","src":"6095:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6085:6:101","nodeType":"YulIdentifier","src":"6085:6:101"},"nativeSrc":"6085:15:101","nodeType":"YulFunctionCall","src":"6085:15:101"},"nativeSrc":"6085:15:101","nodeType":"YulExpressionStatement","src":"6085:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5926:180:101","nodeType":"YulFunctionDefinition","src":"5926:180:101"},{"body":{"nativeSrc":"6154:143:101","nodeType":"YulBlock","src":"6154:143:101","statements":[{"nativeSrc":"6164:25:101","nodeType":"YulAssignment","src":"6164:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6187:1:101","nodeType":"YulIdentifier","src":"6187:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6169:17:101","nodeType":"YulIdentifier","src":"6169:17:101"},"nativeSrc":"6169:20:101","nodeType":"YulFunctionCall","src":"6169:20:101"},"variableNames":[{"name":"x","nativeSrc":"6164:1:101","nodeType":"YulIdentifier","src":"6164:1:101"}]},{"nativeSrc":"6198:25:101","nodeType":"YulAssignment","src":"6198:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6221:1:101","nodeType":"YulIdentifier","src":"6221:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6203:17:101","nodeType":"YulIdentifier","src":"6203:17:101"},"nativeSrc":"6203:20:101","nodeType":"YulFunctionCall","src":"6203:20:101"},"variableNames":[{"name":"y","nativeSrc":"6198:1:101","nodeType":"YulIdentifier","src":"6198:1:101"}]},{"body":{"nativeSrc":"6245:22:101","nodeType":"YulBlock","src":"6245:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6247:16:101","nodeType":"YulIdentifier","src":"6247:16:101"},"nativeSrc":"6247:18:101","nodeType":"YulFunctionCall","src":"6247:18:101"},"nativeSrc":"6247:18:101","nodeType":"YulExpressionStatement","src":"6247:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6242:1:101","nodeType":"YulIdentifier","src":"6242:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6235:6:101","nodeType":"YulIdentifier","src":"6235:6:101"},"nativeSrc":"6235:9:101","nodeType":"YulFunctionCall","src":"6235:9:101"},"nativeSrc":"6232:35:101","nodeType":"YulIf","src":"6232:35:101"},{"nativeSrc":"6277:14:101","nodeType":"YulAssignment","src":"6277:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6286:1:101","nodeType":"YulIdentifier","src":"6286:1:101"},{"name":"y","nativeSrc":"6289:1:101","nodeType":"YulIdentifier","src":"6289:1:101"}],"functionName":{"name":"div","nativeSrc":"6282:3:101","nodeType":"YulIdentifier","src":"6282:3:101"},"nativeSrc":"6282:9:101","nodeType":"YulFunctionCall","src":"6282:9:101"},"variableNames":[{"name":"r","nativeSrc":"6277:1:101","nodeType":"YulIdentifier","src":"6277:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6112:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6143:1:101","nodeType":"YulTypedName","src":"6143:1:101","type":""},{"name":"y","nativeSrc":"6146:1:101","nodeType":"YulTypedName","src":"6146:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6152:1:101","nodeType":"YulTypedName","src":"6152:1:101","type":""}],"src":"6112:185:101"},{"body":{"nativeSrc":"6348:149:101","nodeType":"YulBlock","src":"6348:149:101","statements":[{"nativeSrc":"6358:25:101","nodeType":"YulAssignment","src":"6358:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6381:1:101","nodeType":"YulIdentifier","src":"6381:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6363:17:101","nodeType":"YulIdentifier","src":"6363:17:101"},"nativeSrc":"6363:20:101","nodeType":"YulFunctionCall","src":"6363:20:101"},"variableNames":[{"name":"x","nativeSrc":"6358:1:101","nodeType":"YulIdentifier","src":"6358:1:101"}]},{"nativeSrc":"6392:25:101","nodeType":"YulAssignment","src":"6392:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6415:1:101","nodeType":"YulIdentifier","src":"6415:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6397:17:101","nodeType":"YulIdentifier","src":"6397:17:101"},"nativeSrc":"6397:20:101","nodeType":"YulFunctionCall","src":"6397:20:101"},"variableNames":[{"name":"y","nativeSrc":"6392:1:101","nodeType":"YulIdentifier","src":"6392:1:101"}]},{"nativeSrc":"6426:17:101","nodeType":"YulAssignment","src":"6426:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6438:1:101","nodeType":"YulIdentifier","src":"6438:1:101"},{"name":"y","nativeSrc":"6441:1:101","nodeType":"YulIdentifier","src":"6441:1:101"}],"functionName":{"name":"sub","nativeSrc":"6434:3:101","nodeType":"YulIdentifier","src":"6434:3:101"},"nativeSrc":"6434:9:101","nodeType":"YulFunctionCall","src":"6434:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6426:4:101","nodeType":"YulIdentifier","src":"6426:4:101"}]},{"body":{"nativeSrc":"6468:22:101","nodeType":"YulBlock","src":"6468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6470:16:101","nodeType":"YulIdentifier","src":"6470:16:101"},"nativeSrc":"6470:18:101","nodeType":"YulFunctionCall","src":"6470:18:101"},"nativeSrc":"6470:18:101","nodeType":"YulExpressionStatement","src":"6470:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6459:4:101","nodeType":"YulIdentifier","src":"6459:4:101"},{"name":"x","nativeSrc":"6465:1:101","nodeType":"YulIdentifier","src":"6465:1:101"}],"functionName":{"name":"gt","nativeSrc":"6456:2:101","nodeType":"YulIdentifier","src":"6456:2:101"},"nativeSrc":"6456:11:101","nodeType":"YulFunctionCall","src":"6456:11:101"},"nativeSrc":"6453:37:101","nodeType":"YulIf","src":"6453:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6303:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6334:1:101","nodeType":"YulTypedName","src":"6334:1:101","type":""},{"name":"y","nativeSrc":"6337:1:101","nodeType":"YulTypedName","src":"6337:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6343:4:101","nodeType":"YulTypedName","src":"6343:4:101","type":""}],"src":"6303:194:101"},{"body":{"nativeSrc":"6547:147:101","nodeType":"YulBlock","src":"6547:147:101","statements":[{"nativeSrc":"6557:25:101","nodeType":"YulAssignment","src":"6557:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6580:1:101","nodeType":"YulIdentifier","src":"6580:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6562:17:101","nodeType":"YulIdentifier","src":"6562:17:101"},"nativeSrc":"6562:20:101","nodeType":"YulFunctionCall","src":"6562:20:101"},"variableNames":[{"name":"x","nativeSrc":"6557:1:101","nodeType":"YulIdentifier","src":"6557:1:101"}]},{"nativeSrc":"6591:25:101","nodeType":"YulAssignment","src":"6591:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6614:1:101","nodeType":"YulIdentifier","src":"6614:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6596:17:101","nodeType":"YulIdentifier","src":"6596:17:101"},"nativeSrc":"6596:20:101","nodeType":"YulFunctionCall","src":"6596:20:101"},"variableNames":[{"name":"y","nativeSrc":"6591:1:101","nodeType":"YulIdentifier","src":"6591:1:101"}]},{"nativeSrc":"6625:16:101","nodeType":"YulAssignment","src":"6625:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6636:1:101","nodeType":"YulIdentifier","src":"6636:1:101"},{"name":"y","nativeSrc":"6639:1:101","nodeType":"YulIdentifier","src":"6639:1:101"}],"functionName":{"name":"add","nativeSrc":"6632:3:101","nodeType":"YulIdentifier","src":"6632:3:101"},"nativeSrc":"6632:9:101","nodeType":"YulFunctionCall","src":"6632:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6625:3:101","nodeType":"YulIdentifier","src":"6625:3:101"}]},{"body":{"nativeSrc":"6665:22:101","nodeType":"YulBlock","src":"6665:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6667:16:101","nodeType":"YulIdentifier","src":"6667:16:101"},"nativeSrc":"6667:18:101","nodeType":"YulFunctionCall","src":"6667:18:101"},"nativeSrc":"6667:18:101","nodeType":"YulExpressionStatement","src":"6667:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6657:1:101","nodeType":"YulIdentifier","src":"6657:1:101"},{"name":"sum","nativeSrc":"6660:3:101","nodeType":"YulIdentifier","src":"6660:3:101"}],"functionName":{"name":"gt","nativeSrc":"6654:2:101","nodeType":"YulIdentifier","src":"6654:2:101"},"nativeSrc":"6654:10:101","nodeType":"YulFunctionCall","src":"6654:10:101"},"nativeSrc":"6651:36:101","nodeType":"YulIf","src":"6651:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6503:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6534:1:101","nodeType":"YulTypedName","src":"6534:1:101","type":""},{"name":"y","nativeSrc":"6537:1:101","nodeType":"YulTypedName","src":"6537:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6543:3:101","nodeType":"YulTypedName","src":"6543:3:101","type":""}],"src":"6503:191:101"},{"body":{"nativeSrc":"6789:28:101","nodeType":"YulBlock","src":"6789:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6806:1:101","nodeType":"YulLiteral","src":"6806:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6809:1:101","nodeType":"YulLiteral","src":"6809:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6799:6:101","nodeType":"YulIdentifier","src":"6799:6:101"},"nativeSrc":"6799:12:101","nodeType":"YulFunctionCall","src":"6799:12:101"},"nativeSrc":"6799:12:101","nodeType":"YulExpressionStatement","src":"6799:12:101"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"6700:117:101","nodeType":"YulFunctionDefinition","src":"6700:117:101"},{"body":{"nativeSrc":"6871:54:101","nodeType":"YulBlock","src":"6871:54:101","statements":[{"nativeSrc":"6881:38:101","nodeType":"YulAssignment","src":"6881:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6899:5:101","nodeType":"YulIdentifier","src":"6899:5:101"},{"kind":"number","nativeSrc":"6906:2:101","nodeType":"YulLiteral","src":"6906:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6895:3:101","nodeType":"YulIdentifier","src":"6895:3:101"},"nativeSrc":"6895:14:101","nodeType":"YulFunctionCall","src":"6895:14:101"},{"arguments":[{"kind":"number","nativeSrc":"6915:2:101","nodeType":"YulLiteral","src":"6915:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"6911:3:101","nodeType":"YulIdentifier","src":"6911:3:101"},"nativeSrc":"6911:7:101","nodeType":"YulFunctionCall","src":"6911:7:101"}],"functionName":{"name":"and","nativeSrc":"6891:3:101","nodeType":"YulIdentifier","src":"6891:3:101"},"nativeSrc":"6891:28:101","nodeType":"YulFunctionCall","src":"6891:28:101"},"variableNames":[{"name":"result","nativeSrc":"6881:6:101","nodeType":"YulIdentifier","src":"6881:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"6823:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6854:5:101","nodeType":"YulTypedName","src":"6854:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"6864:6:101","nodeType":"YulTypedName","src":"6864:6:101","type":""}],"src":"6823:102:101"},{"body":{"nativeSrc":"6959:152:101","nodeType":"YulBlock","src":"6959:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6976:1:101","nodeType":"YulLiteral","src":"6976:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6979:77:101","nodeType":"YulLiteral","src":"6979:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6969:6:101","nodeType":"YulIdentifier","src":"6969:6:101"},"nativeSrc":"6969:88:101","nodeType":"YulFunctionCall","src":"6969:88:101"},"nativeSrc":"6969:88:101","nodeType":"YulExpressionStatement","src":"6969:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7073:1:101","nodeType":"YulLiteral","src":"7073:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"7076:4:101","nodeType":"YulLiteral","src":"7076:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7066:6:101","nodeType":"YulIdentifier","src":"7066:6:101"},"nativeSrc":"7066:15:101","nodeType":"YulFunctionCall","src":"7066:15:101"},"nativeSrc":"7066:15:101","nodeType":"YulExpressionStatement","src":"7066:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7097:1:101","nodeType":"YulLiteral","src":"7097:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7100:4:101","nodeType":"YulLiteral","src":"7100:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7090:6:101","nodeType":"YulIdentifier","src":"7090:6:101"},"nativeSrc":"7090:15:101","nodeType":"YulFunctionCall","src":"7090:15:101"},"nativeSrc":"7090:15:101","nodeType":"YulExpressionStatement","src":"7090:15:101"}]},"name":"panic_error_0x41","nativeSrc":"6931:180:101","nodeType":"YulFunctionDefinition","src":"6931:180:101"},{"body":{"nativeSrc":"7160:238:101","nodeType":"YulBlock","src":"7160:238:101","statements":[{"nativeSrc":"7170:58:101","nodeType":"YulVariableDeclaration","src":"7170:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"7192:6:101","nodeType":"YulIdentifier","src":"7192:6:101"},{"arguments":[{"name":"size","nativeSrc":"7222:4:101","nodeType":"YulIdentifier","src":"7222:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7200:21:101","nodeType":"YulIdentifier","src":"7200:21:101"},"nativeSrc":"7200:27:101","nodeType":"YulFunctionCall","src":"7200:27:101"}],"functionName":{"name":"add","nativeSrc":"7188:3:101","nodeType":"YulIdentifier","src":"7188:3:101"},"nativeSrc":"7188:40:101","nodeType":"YulFunctionCall","src":"7188:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"7174:10:101","nodeType":"YulTypedName","src":"7174:10:101","type":""}]},{"body":{"nativeSrc":"7339:22:101","nodeType":"YulBlock","src":"7339:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7341:16:101","nodeType":"YulIdentifier","src":"7341:16:101"},"nativeSrc":"7341:18:101","nodeType":"YulFunctionCall","src":"7341:18:101"},"nativeSrc":"7341:18:101","nodeType":"YulExpressionStatement","src":"7341:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"7282:10:101","nodeType":"YulIdentifier","src":"7282:10:101"},{"kind":"number","nativeSrc":"7294:18:101","nodeType":"YulLiteral","src":"7294:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7279:2:101","nodeType":"YulIdentifier","src":"7279:2:101"},"nativeSrc":"7279:34:101","nodeType":"YulFunctionCall","src":"7279:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"7318:10:101","nodeType":"YulIdentifier","src":"7318:10:101"},{"name":"memPtr","nativeSrc":"7330:6:101","nodeType":"YulIdentifier","src":"7330:6:101"}],"functionName":{"name":"lt","nativeSrc":"7315:2:101","nodeType":"YulIdentifier","src":"7315:2:101"},"nativeSrc":"7315:22:101","nodeType":"YulFunctionCall","src":"7315:22:101"}],"functionName":{"name":"or","nativeSrc":"7276:2:101","nodeType":"YulIdentifier","src":"7276:2:101"},"nativeSrc":"7276:62:101","nodeType":"YulFunctionCall","src":"7276:62:101"},"nativeSrc":"7273:88:101","nodeType":"YulIf","src":"7273:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7377:2:101","nodeType":"YulLiteral","src":"7377:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"7381:10:101","nodeType":"YulIdentifier","src":"7381:10:101"}],"functionName":{"name":"mstore","nativeSrc":"7370:6:101","nodeType":"YulIdentifier","src":"7370:6:101"},"nativeSrc":"7370:22:101","nodeType":"YulFunctionCall","src":"7370:22:101"},"nativeSrc":"7370:22:101","nodeType":"YulExpressionStatement","src":"7370:22:101"}]},"name":"finalize_allocation","nativeSrc":"7117:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7146:6:101","nodeType":"YulTypedName","src":"7146:6:101","type":""},{"name":"size","nativeSrc":"7154:4:101","nodeType":"YulTypedName","src":"7154:4:101","type":""}],"src":"7117:281:101"},{"body":{"nativeSrc":"7445:88:101","nodeType":"YulBlock","src":"7445:88:101","statements":[{"nativeSrc":"7455:30:101","nodeType":"YulAssignment","src":"7455:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"7465:18:101","nodeType":"YulIdentifier","src":"7465:18:101"},"nativeSrc":"7465:20:101","nodeType":"YulFunctionCall","src":"7465:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"7455:6:101","nodeType":"YulIdentifier","src":"7455:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"7514:6:101","nodeType":"YulIdentifier","src":"7514:6:101"},{"name":"size","nativeSrc":"7522:4:101","nodeType":"YulIdentifier","src":"7522:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"7494:19:101","nodeType":"YulIdentifier","src":"7494:19:101"},"nativeSrc":"7494:33:101","nodeType":"YulFunctionCall","src":"7494:33:101"},"nativeSrc":"7494:33:101","nodeType":"YulExpressionStatement","src":"7494:33:101"}]},"name":"allocate_memory","nativeSrc":"7404:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"7429:4:101","nodeType":"YulTypedName","src":"7429:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"7438:6:101","nodeType":"YulTypedName","src":"7438:6:101","type":""}],"src":"7404:129:101"},{"body":{"nativeSrc":"7628:28:101","nodeType":"YulBlock","src":"7628:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7645:1:101","nodeType":"YulLiteral","src":"7645:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7648:1:101","nodeType":"YulLiteral","src":"7648:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7638:6:101","nodeType":"YulIdentifier","src":"7638:6:101"},"nativeSrc":"7638:12:101","nodeType":"YulFunctionCall","src":"7638:12:101"},"nativeSrc":"7638:12:101","nodeType":"YulExpressionStatement","src":"7638:12:101"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"7539:117:101","nodeType":"YulFunctionDefinition","src":"7539:117:101"},{"body":{"nativeSrc":"7725:80:101","nodeType":"YulBlock","src":"7725:80:101","statements":[{"nativeSrc":"7735:22:101","nodeType":"YulAssignment","src":"7735:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7750:6:101","nodeType":"YulIdentifier","src":"7750:6:101"}],"functionName":{"name":"mload","nativeSrc":"7744:5:101","nodeType":"YulIdentifier","src":"7744:5:101"},"nativeSrc":"7744:13:101","nodeType":"YulFunctionCall","src":"7744:13:101"},"variableNames":[{"name":"value","nativeSrc":"7735:5:101","nodeType":"YulIdentifier","src":"7735:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7793:5:101","nodeType":"YulIdentifier","src":"7793:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7766:26:101","nodeType":"YulIdentifier","src":"7766:26:101"},"nativeSrc":"7766:33:101","nodeType":"YulFunctionCall","src":"7766:33:101"},"nativeSrc":"7766:33:101","nodeType":"YulExpressionStatement","src":"7766:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7662:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7703:6:101","nodeType":"YulTypedName","src":"7703:6:101","type":""},{"name":"end","nativeSrc":"7711:3:101","nodeType":"YulTypedName","src":"7711:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7719:5:101","nodeType":"YulTypedName","src":"7719:5:101","type":""}],"src":"7662:143:101"},{"body":{"nativeSrc":"7930:531:101","nodeType":"YulBlock","src":"7930:531:101","statements":[{"body":{"nativeSrc":"7974:83:101","nodeType":"YulBlock","src":"7974:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7976:77:101","nodeType":"YulIdentifier","src":"7976:77:101"},"nativeSrc":"7976:79:101","nodeType":"YulFunctionCall","src":"7976:79:101"},"nativeSrc":"7976:79:101","nodeType":"YulExpressionStatement","src":"7976:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"7951:3:101","nodeType":"YulIdentifier","src":"7951:3:101"},{"name":"headStart","nativeSrc":"7956:9:101","nodeType":"YulIdentifier","src":"7956:9:101"}],"functionName":{"name":"sub","nativeSrc":"7947:3:101","nodeType":"YulIdentifier","src":"7947:3:101"},"nativeSrc":"7947:19:101","nodeType":"YulFunctionCall","src":"7947:19:101"},{"kind":"number","nativeSrc":"7968:4:101","nodeType":"YulLiteral","src":"7968:4:101","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"7943:3:101","nodeType":"YulIdentifier","src":"7943:3:101"},"nativeSrc":"7943:30:101","nodeType":"YulFunctionCall","src":"7943:30:101"},"nativeSrc":"7940:117:101","nodeType":"YulIf","src":"7940:117:101"},{"nativeSrc":"8066:30:101","nodeType":"YulAssignment","src":"8066:30:101","value":{"arguments":[{"kind":"number","nativeSrc":"8091:4:101","nodeType":"YulLiteral","src":"8091:4:101","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"8075:15:101","nodeType":"YulIdentifier","src":"8075:15:101"},"nativeSrc":"8075:21:101","nodeType":"YulFunctionCall","src":"8075:21:101"},"variableNames":[{"name":"value","nativeSrc":"8066:5:101","nodeType":"YulIdentifier","src":"8066:5:101"}]},{"nativeSrc":"8106:165:101","nodeType":"YulBlock","src":"8106:165:101","statements":[{"nativeSrc":"8145:15:101","nodeType":"YulVariableDeclaration","src":"8145:15:101","value":{"kind":"number","nativeSrc":"8159:1:101","nodeType":"YulLiteral","src":"8159:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8149:6:101","nodeType":"YulTypedName","src":"8149:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8185:5:101","nodeType":"YulIdentifier","src":"8185:5:101"},{"kind":"number","nativeSrc":"8192:4:101","nodeType":"YulLiteral","src":"8192:4:101","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"8181:3:101","nodeType":"YulIdentifier","src":"8181:3:101"},"nativeSrc":"8181:16:101","nodeType":"YulFunctionCall","src":"8181:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8235:9:101","nodeType":"YulIdentifier","src":"8235:9:101"},{"name":"offset","nativeSrc":"8246:6:101","nodeType":"YulIdentifier","src":"8246:6:101"}],"functionName":{"name":"add","nativeSrc":"8231:3:101","nodeType":"YulIdentifier","src":"8231:3:101"},"nativeSrc":"8231:22:101","nodeType":"YulFunctionCall","src":"8231:22:101"},{"name":"end","nativeSrc":"8255:3:101","nodeType":"YulIdentifier","src":"8255:3:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"8199:31:101","nodeType":"YulIdentifier","src":"8199:31:101"},"nativeSrc":"8199:60:101","nodeType":"YulFunctionCall","src":"8199:60:101"}],"functionName":{"name":"mstore","nativeSrc":"8174:6:101","nodeType":"YulIdentifier","src":"8174:6:101"},"nativeSrc":"8174:86:101","nodeType":"YulFunctionCall","src":"8174:86:101"},"nativeSrc":"8174:86:101","nodeType":"YulExpressionStatement","src":"8174:86:101"}]},{"nativeSrc":"8281:173:101","nodeType":"YulBlock","src":"8281:173:101","statements":[{"nativeSrc":"8327:16:101","nodeType":"YulVariableDeclaration","src":"8327:16:101","value":{"kind":"number","nativeSrc":"8341:2:101","nodeType":"YulLiteral","src":"8341:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8331:6:101","nodeType":"YulTypedName","src":"8331:6:101","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8368:5:101","nodeType":"YulIdentifier","src":"8368:5:101"},{"kind":"number","nativeSrc":"8375:4:101","nodeType":"YulLiteral","src":"8375:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8364:3:101","nodeType":"YulIdentifier","src":"8364:3:101"},"nativeSrc":"8364:16:101","nodeType":"YulFunctionCall","src":"8364:16:101"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8418:9:101","nodeType":"YulIdentifier","src":"8418:9:101"},{"name":"offset","nativeSrc":"8429:6:101","nodeType":"YulIdentifier","src":"8429:6:101"}],"functionName":{"name":"add","nativeSrc":"8414:3:101","nodeType":"YulIdentifier","src":"8414:3:101"},"nativeSrc":"8414:22:101","nodeType":"YulFunctionCall","src":"8414:22:101"},{"name":"end","nativeSrc":"8438:3:101","nodeType":"YulIdentifier","src":"8438:3:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"8382:31:101","nodeType":"YulIdentifier","src":"8382:31:101"},"nativeSrc":"8382:60:101","nodeType":"YulFunctionCall","src":"8382:60:101"}],"functionName":{"name":"mstore","nativeSrc":"8357:6:101","nodeType":"YulIdentifier","src":"8357:6:101"},"nativeSrc":"8357:86:101","nodeType":"YulFunctionCall","src":"8357:86:101"},"nativeSrc":"8357:86:101","nodeType":"YulExpressionStatement","src":"8357:86:101"}]}]},"name":"abi_decode_t_struct$_Data_$3526_memory_ptr_fromMemory","nativeSrc":"7842:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7905:9:101","nodeType":"YulTypedName","src":"7905:9:101","type":""},{"name":"end","nativeSrc":"7916:3:101","nodeType":"YulTypedName","src":"7916:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7924:5:101","nodeType":"YulTypedName","src":"7924:5:101","type":""}],"src":"7842:619:101"},{"body":{"nativeSrc":"8566:296:101","nodeType":"YulBlock","src":"8566:296:101","statements":[{"body":{"nativeSrc":"8612:83:101","nodeType":"YulBlock","src":"8612:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8614:77:101","nodeType":"YulIdentifier","src":"8614:77:101"},"nativeSrc":"8614:79:101","nodeType":"YulFunctionCall","src":"8614:79:101"},"nativeSrc":"8614:79:101","nodeType":"YulExpressionStatement","src":"8614:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8587:7:101","nodeType":"YulIdentifier","src":"8587:7:101"},{"name":"headStart","nativeSrc":"8596:9:101","nodeType":"YulIdentifier","src":"8596:9:101"}],"functionName":{"name":"sub","nativeSrc":"8583:3:101","nodeType":"YulIdentifier","src":"8583:3:101"},"nativeSrc":"8583:23:101","nodeType":"YulFunctionCall","src":"8583:23:101"},{"kind":"number","nativeSrc":"8608:2:101","nodeType":"YulLiteral","src":"8608:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8579:3:101","nodeType":"YulIdentifier","src":"8579:3:101"},"nativeSrc":"8579:32:101","nodeType":"YulFunctionCall","src":"8579:32:101"},"nativeSrc":"8576:119:101","nodeType":"YulIf","src":"8576:119:101"},{"nativeSrc":"8705:150:101","nodeType":"YulBlock","src":"8705:150:101","statements":[{"nativeSrc":"8720:15:101","nodeType":"YulVariableDeclaration","src":"8720:15:101","value":{"kind":"number","nativeSrc":"8734:1:101","nodeType":"YulLiteral","src":"8734:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8724:6:101","nodeType":"YulTypedName","src":"8724:6:101","type":""}]},{"nativeSrc":"8749:96:101","nodeType":"YulAssignment","src":"8749:96:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8817:9:101","nodeType":"YulIdentifier","src":"8817:9:101"},{"name":"offset","nativeSrc":"8828:6:101","nodeType":"YulIdentifier","src":"8828:6:101"}],"functionName":{"name":"add","nativeSrc":"8813:3:101","nodeType":"YulIdentifier","src":"8813:3:101"},"nativeSrc":"8813:22:101","nodeType":"YulFunctionCall","src":"8813:22:101"},{"name":"dataEnd","nativeSrc":"8837:7:101","nodeType":"YulIdentifier","src":"8837:7:101"}],"functionName":{"name":"abi_decode_t_struct$_Data_$3526_memory_ptr_fromMemory","nativeSrc":"8759:53:101","nodeType":"YulIdentifier","src":"8759:53:101"},"nativeSrc":"8759:86:101","nodeType":"YulFunctionCall","src":"8759:86:101"},"variableNames":[{"name":"value0","nativeSrc":"8749:6:101","nodeType":"YulIdentifier","src":"8749:6:101"}]}]}]},"name":"abi_decode_tuple_t_struct$_Data_$3526_memory_ptr_fromMemory","nativeSrc":"8467:395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8536:9:101","nodeType":"YulTypedName","src":"8536:9:101","type":""},{"name":"dataEnd","nativeSrc":"8547:7:101","nodeType":"YulTypedName","src":"8547:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8559:6:101","nodeType":"YulTypedName","src":"8559:6:101","type":""}],"src":"8467:395:101"},{"body":{"nativeSrc":"8916:362:101","nodeType":"YulBlock","src":"8916:362:101","statements":[{"nativeSrc":"8926:25:101","nodeType":"YulAssignment","src":"8926:25:101","value":{"arguments":[{"name":"x","nativeSrc":"8949:1:101","nodeType":"YulIdentifier","src":"8949:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8931:17:101","nodeType":"YulIdentifier","src":"8931:17:101"},"nativeSrc":"8931:20:101","nodeType":"YulFunctionCall","src":"8931:20:101"},"variableNames":[{"name":"x","nativeSrc":"8926:1:101","nodeType":"YulIdentifier","src":"8926:1:101"}]},{"nativeSrc":"8960:25:101","nodeType":"YulAssignment","src":"8960:25:101","value":{"arguments":[{"name":"y","nativeSrc":"8983:1:101","nodeType":"YulIdentifier","src":"8983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8965:17:101","nodeType":"YulIdentifier","src":"8965:17:101"},"nativeSrc":"8965:20:101","nodeType":"YulFunctionCall","src":"8965:20:101"},"variableNames":[{"name":"y","nativeSrc":"8960:1:101","nodeType":"YulIdentifier","src":"8960:1:101"}]},{"nativeSrc":"8994:28:101","nodeType":"YulVariableDeclaration","src":"8994:28:101","value":{"arguments":[{"name":"x","nativeSrc":"9017:1:101","nodeType":"YulIdentifier","src":"9017:1:101"},{"name":"y","nativeSrc":"9020:1:101","nodeType":"YulIdentifier","src":"9020:1:101"}],"functionName":{"name":"mul","nativeSrc":"9013:3:101","nodeType":"YulIdentifier","src":"9013:3:101"},"nativeSrc":"9013:9:101","nodeType":"YulFunctionCall","src":"9013:9:101"},"variables":[{"name":"product_raw","nativeSrc":"8998:11:101","nodeType":"YulTypedName","src":"8998:11:101","type":""}]},{"nativeSrc":"9031:41:101","nodeType":"YulAssignment","src":"9031:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"9060:11:101","nodeType":"YulIdentifier","src":"9060:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9042:17:101","nodeType":"YulIdentifier","src":"9042:17:101"},"nativeSrc":"9042:30:101","nodeType":"YulFunctionCall","src":"9042:30:101"},"variableNames":[{"name":"product","nativeSrc":"9031:7:101","nodeType":"YulIdentifier","src":"9031:7:101"}]},{"body":{"nativeSrc":"9249:22:101","nodeType":"YulBlock","src":"9249:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9251:16:101","nodeType":"YulIdentifier","src":"9251:16:101"},"nativeSrc":"9251:18:101","nodeType":"YulFunctionCall","src":"9251:18:101"},"nativeSrc":"9251:18:101","nodeType":"YulExpressionStatement","src":"9251:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"9182:1:101","nodeType":"YulIdentifier","src":"9182:1:101"}],"functionName":{"name":"iszero","nativeSrc":"9175:6:101","nodeType":"YulIdentifier","src":"9175:6:101"},"nativeSrc":"9175:9:101","nodeType":"YulFunctionCall","src":"9175:9:101"},{"arguments":[{"name":"y","nativeSrc":"9205:1:101","nodeType":"YulIdentifier","src":"9205:1:101"},{"arguments":[{"name":"product","nativeSrc":"9212:7:101","nodeType":"YulIdentifier","src":"9212:7:101"},{"name":"x","nativeSrc":"9221:1:101","nodeType":"YulIdentifier","src":"9221:1:101"}],"functionName":{"name":"div","nativeSrc":"9208:3:101","nodeType":"YulIdentifier","src":"9208:3:101"},"nativeSrc":"9208:15:101","nodeType":"YulFunctionCall","src":"9208:15:101"}],"functionName":{"name":"eq","nativeSrc":"9202:2:101","nodeType":"YulIdentifier","src":"9202:2:101"},"nativeSrc":"9202:22:101","nodeType":"YulFunctionCall","src":"9202:22:101"}],"functionName":{"name":"or","nativeSrc":"9155:2:101","nodeType":"YulIdentifier","src":"9155:2:101"},"nativeSrc":"9155:83:101","nodeType":"YulFunctionCall","src":"9155:83:101"}],"functionName":{"name":"iszero","nativeSrc":"9135:6:101","nodeType":"YulIdentifier","src":"9135:6:101"},"nativeSrc":"9135:113:101","nodeType":"YulFunctionCall","src":"9135:113:101"},"nativeSrc":"9132:139:101","nodeType":"YulIf","src":"9132:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"8868:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8899:1:101","nodeType":"YulTypedName","src":"8899:1:101","type":""},{"name":"y","nativeSrc":"8902:1:101","nodeType":"YulTypedName","src":"8902:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"8908:7:101","nodeType":"YulTypedName","src":"8908:7:101","type":""}],"src":"8868:410:101"},{"body":{"nativeSrc":"9361:274:101","nodeType":"YulBlock","src":"9361:274:101","statements":[{"body":{"nativeSrc":"9407:83:101","nodeType":"YulBlock","src":"9407:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9409:77:101","nodeType":"YulIdentifier","src":"9409:77:101"},"nativeSrc":"9409:79:101","nodeType":"YulFunctionCall","src":"9409:79:101"},"nativeSrc":"9409:79:101","nodeType":"YulExpressionStatement","src":"9409:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9382:7:101","nodeType":"YulIdentifier","src":"9382:7:101"},{"name":"headStart","nativeSrc":"9391:9:101","nodeType":"YulIdentifier","src":"9391:9:101"}],"functionName":{"name":"sub","nativeSrc":"9378:3:101","nodeType":"YulIdentifier","src":"9378:3:101"},"nativeSrc":"9378:23:101","nodeType":"YulFunctionCall","src":"9378:23:101"},{"kind":"number","nativeSrc":"9403:2:101","nodeType":"YulLiteral","src":"9403:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9374:3:101","nodeType":"YulIdentifier","src":"9374:3:101"},"nativeSrc":"9374:32:101","nodeType":"YulFunctionCall","src":"9374:32:101"},"nativeSrc":"9371:119:101","nodeType":"YulIf","src":"9371:119:101"},{"nativeSrc":"9500:128:101","nodeType":"YulBlock","src":"9500:128:101","statements":[{"nativeSrc":"9515:15:101","nodeType":"YulVariableDeclaration","src":"9515:15:101","value":{"kind":"number","nativeSrc":"9529:1:101","nodeType":"YulLiteral","src":"9529:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9519:6:101","nodeType":"YulTypedName","src":"9519:6:101","type":""}]},{"nativeSrc":"9544:74:101","nodeType":"YulAssignment","src":"9544:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9590:9:101","nodeType":"YulIdentifier","src":"9590:9:101"},{"name":"offset","nativeSrc":"9601:6:101","nodeType":"YulIdentifier","src":"9601:6:101"}],"functionName":{"name":"add","nativeSrc":"9586:3:101","nodeType":"YulIdentifier","src":"9586:3:101"},"nativeSrc":"9586:22:101","nodeType":"YulFunctionCall","src":"9586:22:101"},{"name":"dataEnd","nativeSrc":"9610:7:101","nodeType":"YulIdentifier","src":"9610:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"9554:31:101","nodeType":"YulIdentifier","src":"9554:31:101"},"nativeSrc":"9554:64:101","nodeType":"YulFunctionCall","src":"9554:64:101"},"variableNames":[{"name":"value0","nativeSrc":"9544:6:101","nodeType":"YulIdentifier","src":"9544:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"9284:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9331:9:101","nodeType":"YulTypedName","src":"9331:9:101","type":""},{"name":"dataEnd","nativeSrc":"9342:7:101","nodeType":"YulTypedName","src":"9342:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9354:6:101","nodeType":"YulTypedName","src":"9354:6:101","type":""}],"src":"9284:351:101"},{"body":{"nativeSrc":"9684:43:101","nodeType":"YulBlock","src":"9684:43:101","statements":[{"nativeSrc":"9694:27:101","nodeType":"YulAssignment","src":"9694:27:101","value":{"arguments":[{"name":"value","nativeSrc":"9709:5:101","nodeType":"YulIdentifier","src":"9709:5:101"},{"kind":"number","nativeSrc":"9716:4:101","nodeType":"YulLiteral","src":"9716:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"9705:3:101","nodeType":"YulIdentifier","src":"9705:3:101"},"nativeSrc":"9705:16:101","nodeType":"YulFunctionCall","src":"9705:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"9694:7:101","nodeType":"YulIdentifier","src":"9694:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"9641:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9666:5:101","nodeType":"YulTypedName","src":"9666:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"9676:7:101","nodeType":"YulTypedName","src":"9676:7:101","type":""}],"src":"9641:86:101"},{"body":{"nativeSrc":"9774:77:101","nodeType":"YulBlock","src":"9774:77:101","statements":[{"body":{"nativeSrc":"9829:16:101","nodeType":"YulBlock","src":"9829:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9838:1:101","nodeType":"YulLiteral","src":"9838:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9841:1:101","nodeType":"YulLiteral","src":"9841:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9831:6:101","nodeType":"YulIdentifier","src":"9831:6:101"},"nativeSrc":"9831:12:101","nodeType":"YulFunctionCall","src":"9831:12:101"},"nativeSrc":"9831:12:101","nodeType":"YulExpressionStatement","src":"9831:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9797:5:101","nodeType":"YulIdentifier","src":"9797:5:101"},{"arguments":[{"name":"value","nativeSrc":"9820:5:101","nodeType":"YulIdentifier","src":"9820:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"9804:15:101","nodeType":"YulIdentifier","src":"9804:15:101"},"nativeSrc":"9804:22:101","nodeType":"YulFunctionCall","src":"9804:22:101"}],"functionName":{"name":"eq","nativeSrc":"9794:2:101","nodeType":"YulIdentifier","src":"9794:2:101"},"nativeSrc":"9794:33:101","nodeType":"YulFunctionCall","src":"9794:33:101"}],"functionName":{"name":"iszero","nativeSrc":"9787:6:101","nodeType":"YulIdentifier","src":"9787:6:101"},"nativeSrc":"9787:41:101","nodeType":"YulFunctionCall","src":"9787:41:101"},"nativeSrc":"9784:61:101","nodeType":"YulIf","src":"9784:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"9733:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9767:5:101","nodeType":"YulTypedName","src":"9767:5:101","type":""}],"src":"9733:118:101"},{"body":{"nativeSrc":"9918:78:101","nodeType":"YulBlock","src":"9918:78:101","statements":[{"nativeSrc":"9928:22:101","nodeType":"YulAssignment","src":"9928:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"9943:6:101","nodeType":"YulIdentifier","src":"9943:6:101"}],"functionName":{"name":"mload","nativeSrc":"9937:5:101","nodeType":"YulIdentifier","src":"9937:5:101"},"nativeSrc":"9937:13:101","nodeType":"YulFunctionCall","src":"9937:13:101"},"variableNames":[{"name":"value","nativeSrc":"9928:5:101","nodeType":"YulIdentifier","src":"9928:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9984:5:101","nodeType":"YulIdentifier","src":"9984:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"9959:24:101","nodeType":"YulIdentifier","src":"9959:24:101"},"nativeSrc":"9959:31:101","nodeType":"YulFunctionCall","src":"9959:31:101"},"nativeSrc":"9959:31:101","nodeType":"YulExpressionStatement","src":"9959:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"9857:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9896:6:101","nodeType":"YulTypedName","src":"9896:6:101","type":""},{"name":"end","nativeSrc":"9904:3:101","nodeType":"YulTypedName","src":"9904:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9912:5:101","nodeType":"YulTypedName","src":"9912:5:101","type":""}],"src":"9857:139:101"},{"body":{"nativeSrc":"10077:272:101","nodeType":"YulBlock","src":"10077:272:101","statements":[{"body":{"nativeSrc":"10123:83:101","nodeType":"YulBlock","src":"10123:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10125:77:101","nodeType":"YulIdentifier","src":"10125:77:101"},"nativeSrc":"10125:79:101","nodeType":"YulFunctionCall","src":"10125:79:101"},"nativeSrc":"10125:79:101","nodeType":"YulExpressionStatement","src":"10125:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10098:7:101","nodeType":"YulIdentifier","src":"10098:7:101"},{"name":"headStart","nativeSrc":"10107:9:101","nodeType":"YulIdentifier","src":"10107:9:101"}],"functionName":{"name":"sub","nativeSrc":"10094:3:101","nodeType":"YulIdentifier","src":"10094:3:101"},"nativeSrc":"10094:23:101","nodeType":"YulFunctionCall","src":"10094:23:101"},{"kind":"number","nativeSrc":"10119:2:101","nodeType":"YulLiteral","src":"10119:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10090:3:101","nodeType":"YulIdentifier","src":"10090:3:101"},"nativeSrc":"10090:32:101","nodeType":"YulFunctionCall","src":"10090:32:101"},"nativeSrc":"10087:119:101","nodeType":"YulIf","src":"10087:119:101"},{"nativeSrc":"10216:126:101","nodeType":"YulBlock","src":"10216:126:101","statements":[{"nativeSrc":"10231:15:101","nodeType":"YulVariableDeclaration","src":"10231:15:101","value":{"kind":"number","nativeSrc":"10245:1:101","nodeType":"YulLiteral","src":"10245:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10235:6:101","nodeType":"YulTypedName","src":"10235:6:101","type":""}]},{"nativeSrc":"10260:72:101","nodeType":"YulAssignment","src":"10260:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10304:9:101","nodeType":"YulIdentifier","src":"10304:9:101"},{"name":"offset","nativeSrc":"10315:6:101","nodeType":"YulIdentifier","src":"10315:6:101"}],"functionName":{"name":"add","nativeSrc":"10300:3:101","nodeType":"YulIdentifier","src":"10300:3:101"},"nativeSrc":"10300:22:101","nodeType":"YulFunctionCall","src":"10300:22:101"},{"name":"dataEnd","nativeSrc":"10324:7:101","nodeType":"YulIdentifier","src":"10324:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"10270:29:101","nodeType":"YulIdentifier","src":"10270:29:101"},"nativeSrc":"10270:62:101","nodeType":"YulFunctionCall","src":"10270:62:101"},"variableNames":[{"name":"value0","nativeSrc":"10260:6:101","nodeType":"YulIdentifier","src":"10260:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"10002:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10047:9:101","nodeType":"YulTypedName","src":"10047:9:101","type":""},{"name":"dataEnd","nativeSrc":"10058:7:101","nodeType":"YulTypedName","src":"10058:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10070:6:101","nodeType":"YulTypedName","src":"10070:6:101","type":""}],"src":"10002:347:101"},{"body":{"nativeSrc":"10406:51:101","nodeType":"YulBlock","src":"10406:51:101","statements":[{"nativeSrc":"10416:34:101","nodeType":"YulAssignment","src":"10416:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"10441:1:101","nodeType":"YulLiteral","src":"10441:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"10444:5:101","nodeType":"YulIdentifier","src":"10444:5:101"}],"functionName":{"name":"shr","nativeSrc":"10437:3:101","nodeType":"YulIdentifier","src":"10437:3:101"},"nativeSrc":"10437:13:101","nodeType":"YulFunctionCall","src":"10437:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"10416:8:101","nodeType":"YulIdentifier","src":"10416:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"10355:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10387:5:101","nodeType":"YulTypedName","src":"10387:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"10397:8:101","nodeType":"YulTypedName","src":"10397:8:101","type":""}],"src":"10355:102:101"},{"body":{"nativeSrc":"10536:775:101","nodeType":"YulBlock","src":"10536:775:101","statements":[{"nativeSrc":"10546:15:101","nodeType":"YulAssignment","src":"10546:15:101","value":{"name":"_power","nativeSrc":"10555:6:101","nodeType":"YulIdentifier","src":"10555:6:101"},"variableNames":[{"name":"power","nativeSrc":"10546:5:101","nodeType":"YulIdentifier","src":"10546:5:101"}]},{"nativeSrc":"10570:14:101","nodeType":"YulAssignment","src":"10570:14:101","value":{"name":"_base","nativeSrc":"10579:5:101","nodeType":"YulIdentifier","src":"10579:5:101"},"variableNames":[{"name":"base","nativeSrc":"10570:4:101","nodeType":"YulIdentifier","src":"10570:4:101"}]},{"body":{"nativeSrc":"10628:677:101","nodeType":"YulBlock","src":"10628:677:101","statements":[{"body":{"nativeSrc":"10716:22:101","nodeType":"YulBlock","src":"10716:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10718:16:101","nodeType":"YulIdentifier","src":"10718:16:101"},"nativeSrc":"10718:18:101","nodeType":"YulFunctionCall","src":"10718:18:101"},"nativeSrc":"10718:18:101","nodeType":"YulExpressionStatement","src":"10718:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"10694:4:101","nodeType":"YulIdentifier","src":"10694:4:101"},{"arguments":[{"name":"max","nativeSrc":"10704:3:101","nodeType":"YulIdentifier","src":"10704:3:101"},{"name":"base","nativeSrc":"10709:4:101","nodeType":"YulIdentifier","src":"10709:4:101"}],"functionName":{"name":"div","nativeSrc":"10700:3:101","nodeType":"YulIdentifier","src":"10700:3:101"},"nativeSrc":"10700:14:101","nodeType":"YulFunctionCall","src":"10700:14:101"}],"functionName":{"name":"gt","nativeSrc":"10691:2:101","nodeType":"YulIdentifier","src":"10691:2:101"},"nativeSrc":"10691:24:101","nodeType":"YulFunctionCall","src":"10691:24:101"},"nativeSrc":"10688:50:101","nodeType":"YulIf","src":"10688:50:101"},{"body":{"nativeSrc":"10783:419:101","nodeType":"YulBlock","src":"10783:419:101","statements":[{"nativeSrc":"11163:25:101","nodeType":"YulAssignment","src":"11163:25:101","value":{"arguments":[{"name":"power","nativeSrc":"11176:5:101","nodeType":"YulIdentifier","src":"11176:5:101"},{"name":"base","nativeSrc":"11183:4:101","nodeType":"YulIdentifier","src":"11183:4:101"}],"functionName":{"name":"mul","nativeSrc":"11172:3:101","nodeType":"YulIdentifier","src":"11172:3:101"},"nativeSrc":"11172:16:101","nodeType":"YulFunctionCall","src":"11172:16:101"},"variableNames":[{"name":"power","nativeSrc":"11163:5:101","nodeType":"YulIdentifier","src":"11163:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"10758:8:101","nodeType":"YulIdentifier","src":"10758:8:101"},{"kind":"number","nativeSrc":"10768:1:101","nodeType":"YulLiteral","src":"10768:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"10754:3:101","nodeType":"YulIdentifier","src":"10754:3:101"},"nativeSrc":"10754:16:101","nodeType":"YulFunctionCall","src":"10754:16:101"},"nativeSrc":"10751:451:101","nodeType":"YulIf","src":"10751:451:101"},{"nativeSrc":"11215:23:101","nodeType":"YulAssignment","src":"11215:23:101","value":{"arguments":[{"name":"base","nativeSrc":"11227:4:101","nodeType":"YulIdentifier","src":"11227:4:101"},{"name":"base","nativeSrc":"11233:4:101","nodeType":"YulIdentifier","src":"11233:4:101"}],"functionName":{"name":"mul","nativeSrc":"11223:3:101","nodeType":"YulIdentifier","src":"11223:3:101"},"nativeSrc":"11223:15:101","nodeType":"YulFunctionCall","src":"11223:15:101"},"variableNames":[{"name":"base","nativeSrc":"11215:4:101","nodeType":"YulIdentifier","src":"11215:4:101"}]},{"nativeSrc":"11251:44:101","nodeType":"YulAssignment","src":"11251:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"11286:8:101","nodeType":"YulIdentifier","src":"11286:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"11263:22:101","nodeType":"YulIdentifier","src":"11263:22:101"},"nativeSrc":"11263:32:101","nodeType":"YulFunctionCall","src":"11263:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"11251:8:101","nodeType":"YulIdentifier","src":"11251:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"10604:8:101","nodeType":"YulIdentifier","src":"10604:8:101"},{"kind":"number","nativeSrc":"10614:1:101","nodeType":"YulLiteral","src":"10614:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"10601:2:101","nodeType":"YulIdentifier","src":"10601:2:101"},"nativeSrc":"10601:15:101","nodeType":"YulFunctionCall","src":"10601:15:101"},"nativeSrc":"10593:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"10617:2:101","nodeType":"YulBlock","src":"10617:2:101","statements":[]},"pre":{"nativeSrc":"10597:3:101","nodeType":"YulBlock","src":"10597:3:101","statements":[]},"src":"10593:712:101"}]},"name":"checked_exp_helper","nativeSrc":"10463:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"10491:6:101","nodeType":"YulTypedName","src":"10491:6:101","type":""},{"name":"_base","nativeSrc":"10499:5:101","nodeType":"YulTypedName","src":"10499:5:101","type":""},{"name":"exponent","nativeSrc":"10506:8:101","nodeType":"YulTypedName","src":"10506:8:101","type":""},{"name":"max","nativeSrc":"10516:3:101","nodeType":"YulTypedName","src":"10516:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10524:5:101","nodeType":"YulTypedName","src":"10524:5:101","type":""},{"name":"base","nativeSrc":"10531:4:101","nodeType":"YulTypedName","src":"10531:4:101","type":""}],"src":"10463:848:101"},{"body":{"nativeSrc":"11377:1013:101","nodeType":"YulBlock","src":"11377:1013:101","statements":[{"body":{"nativeSrc":"11572:20:101","nodeType":"YulBlock","src":"11572:20:101","statements":[{"nativeSrc":"11574:10:101","nodeType":"YulAssignment","src":"11574:10:101","value":{"kind":"number","nativeSrc":"11583:1:101","nodeType":"YulLiteral","src":"11583:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"11574:5:101","nodeType":"YulIdentifier","src":"11574:5:101"}]},{"nativeSrc":"11585:5:101","nodeType":"YulLeave","src":"11585:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"11562:8:101","nodeType":"YulIdentifier","src":"11562:8:101"}],"functionName":{"name":"iszero","nativeSrc":"11555:6:101","nodeType":"YulIdentifier","src":"11555:6:101"},"nativeSrc":"11555:16:101","nodeType":"YulFunctionCall","src":"11555:16:101"},"nativeSrc":"11552:40:101","nodeType":"YulIf","src":"11552:40:101"},{"body":{"nativeSrc":"11617:20:101","nodeType":"YulBlock","src":"11617:20:101","statements":[{"nativeSrc":"11619:10:101","nodeType":"YulAssignment","src":"11619:10:101","value":{"kind":"number","nativeSrc":"11628:1:101","nodeType":"YulLiteral","src":"11628:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"11619:5:101","nodeType":"YulIdentifier","src":"11619:5:101"}]},{"nativeSrc":"11630:5:101","nodeType":"YulLeave","src":"11630:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"11611:4:101","nodeType":"YulIdentifier","src":"11611:4:101"}],"functionName":{"name":"iszero","nativeSrc":"11604:6:101","nodeType":"YulIdentifier","src":"11604:6:101"},"nativeSrc":"11604:12:101","nodeType":"YulFunctionCall","src":"11604:12:101"},"nativeSrc":"11601:36:101","nodeType":"YulIf","src":"11601:36:101"},{"cases":[{"body":{"nativeSrc":"11747:20:101","nodeType":"YulBlock","src":"11747:20:101","statements":[{"nativeSrc":"11749:10:101","nodeType":"YulAssignment","src":"11749:10:101","value":{"kind":"number","nativeSrc":"11758:1:101","nodeType":"YulLiteral","src":"11758:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"11749:5:101","nodeType":"YulIdentifier","src":"11749:5:101"}]},{"nativeSrc":"11760:5:101","nodeType":"YulLeave","src":"11760:5:101"}]},"nativeSrc":"11740:27:101","nodeType":"YulCase","src":"11740:27:101","value":{"kind":"number","nativeSrc":"11745:1:101","nodeType":"YulLiteral","src":"11745:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"11791:176:101","nodeType":"YulBlock","src":"11791:176:101","statements":[{"body":{"nativeSrc":"11826:22:101","nodeType":"YulBlock","src":"11826:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11828:16:101","nodeType":"YulIdentifier","src":"11828:16:101"},"nativeSrc":"11828:18:101","nodeType":"YulFunctionCall","src":"11828:18:101"},"nativeSrc":"11828:18:101","nodeType":"YulExpressionStatement","src":"11828:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"11811:8:101","nodeType":"YulIdentifier","src":"11811:8:101"},{"kind":"number","nativeSrc":"11821:3:101","nodeType":"YulLiteral","src":"11821:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"11808:2:101","nodeType":"YulIdentifier","src":"11808:2:101"},"nativeSrc":"11808:17:101","nodeType":"YulFunctionCall","src":"11808:17:101"},"nativeSrc":"11805:43:101","nodeType":"YulIf","src":"11805:43:101"},{"nativeSrc":"11861:25:101","nodeType":"YulAssignment","src":"11861:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"11874:1:101","nodeType":"YulLiteral","src":"11874:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"11877:8:101","nodeType":"YulIdentifier","src":"11877:8:101"}],"functionName":{"name":"exp","nativeSrc":"11870:3:101","nodeType":"YulIdentifier","src":"11870:3:101"},"nativeSrc":"11870:16:101","nodeType":"YulFunctionCall","src":"11870:16:101"},"variableNames":[{"name":"power","nativeSrc":"11861:5:101","nodeType":"YulIdentifier","src":"11861:5:101"}]},{"body":{"nativeSrc":"11917:22:101","nodeType":"YulBlock","src":"11917:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11919:16:101","nodeType":"YulIdentifier","src":"11919:16:101"},"nativeSrc":"11919:18:101","nodeType":"YulFunctionCall","src":"11919:18:101"},"nativeSrc":"11919:18:101","nodeType":"YulExpressionStatement","src":"11919:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"11905:5:101","nodeType":"YulIdentifier","src":"11905:5:101"},{"name":"max","nativeSrc":"11912:3:101","nodeType":"YulIdentifier","src":"11912:3:101"}],"functionName":{"name":"gt","nativeSrc":"11902:2:101","nodeType":"YulIdentifier","src":"11902:2:101"},"nativeSrc":"11902:14:101","nodeType":"YulFunctionCall","src":"11902:14:101"},"nativeSrc":"11899:40:101","nodeType":"YulIf","src":"11899:40:101"},{"nativeSrc":"11952:5:101","nodeType":"YulLeave","src":"11952:5:101"}]},"nativeSrc":"11776:191:101","nodeType":"YulCase","src":"11776:191:101","value":{"kind":"number","nativeSrc":"11781:1:101","nodeType":"YulLiteral","src":"11781:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"11697:4:101","nodeType":"YulIdentifier","src":"11697:4:101"},"nativeSrc":"11690:277:101","nodeType":"YulSwitch","src":"11690:277:101"},{"body":{"nativeSrc":"12099:123:101","nodeType":"YulBlock","src":"12099:123:101","statements":[{"nativeSrc":"12113:28:101","nodeType":"YulAssignment","src":"12113:28:101","value":{"arguments":[{"name":"base","nativeSrc":"12126:4:101","nodeType":"YulIdentifier","src":"12126:4:101"},{"name":"exponent","nativeSrc":"12132:8:101","nodeType":"YulIdentifier","src":"12132:8:101"}],"functionName":{"name":"exp","nativeSrc":"12122:3:101","nodeType":"YulIdentifier","src":"12122:3:101"},"nativeSrc":"12122:19:101","nodeType":"YulFunctionCall","src":"12122:19:101"},"variableNames":[{"name":"power","nativeSrc":"12113:5:101","nodeType":"YulIdentifier","src":"12113:5:101"}]},{"body":{"nativeSrc":"12172:22:101","nodeType":"YulBlock","src":"12172:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12174:16:101","nodeType":"YulIdentifier","src":"12174:16:101"},"nativeSrc":"12174:18:101","nodeType":"YulFunctionCall","src":"12174:18:101"},"nativeSrc":"12174:18:101","nodeType":"YulExpressionStatement","src":"12174:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"12160:5:101","nodeType":"YulIdentifier","src":"12160:5:101"},{"name":"max","nativeSrc":"12167:3:101","nodeType":"YulIdentifier","src":"12167:3:101"}],"functionName":{"name":"gt","nativeSrc":"12157:2:101","nodeType":"YulIdentifier","src":"12157:2:101"},"nativeSrc":"12157:14:101","nodeType":"YulFunctionCall","src":"12157:14:101"},"nativeSrc":"12154:40:101","nodeType":"YulIf","src":"12154:40:101"},{"nativeSrc":"12207:5:101","nodeType":"YulLeave","src":"12207:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"12002:4:101","nodeType":"YulIdentifier","src":"12002:4:101"},{"kind":"number","nativeSrc":"12008:2:101","nodeType":"YulLiteral","src":"12008:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"11999:2:101","nodeType":"YulIdentifier","src":"11999:2:101"},"nativeSrc":"11999:12:101","nodeType":"YulFunctionCall","src":"11999:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"12016:8:101","nodeType":"YulIdentifier","src":"12016:8:101"},{"kind":"number","nativeSrc":"12026:2:101","nodeType":"YulLiteral","src":"12026:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"12013:2:101","nodeType":"YulIdentifier","src":"12013:2:101"},"nativeSrc":"12013:16:101","nodeType":"YulFunctionCall","src":"12013:16:101"}],"functionName":{"name":"and","nativeSrc":"11995:3:101","nodeType":"YulIdentifier","src":"11995:3:101"},"nativeSrc":"11995:35:101","nodeType":"YulFunctionCall","src":"11995:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"12051:4:101","nodeType":"YulIdentifier","src":"12051:4:101"},{"kind":"number","nativeSrc":"12057:3:101","nodeType":"YulLiteral","src":"12057:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"12048:2:101","nodeType":"YulIdentifier","src":"12048:2:101"},"nativeSrc":"12048:13:101","nodeType":"YulFunctionCall","src":"12048:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"12066:8:101","nodeType":"YulIdentifier","src":"12066:8:101"},{"kind":"number","nativeSrc":"12076:2:101","nodeType":"YulLiteral","src":"12076:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"12063:2:101","nodeType":"YulIdentifier","src":"12063:2:101"},"nativeSrc":"12063:16:101","nodeType":"YulFunctionCall","src":"12063:16:101"}],"functionName":{"name":"and","nativeSrc":"12044:3:101","nodeType":"YulIdentifier","src":"12044:3:101"},"nativeSrc":"12044:36:101","nodeType":"YulFunctionCall","src":"12044:36:101"}],"functionName":{"name":"or","nativeSrc":"11979:2:101","nodeType":"YulIdentifier","src":"11979:2:101"},"nativeSrc":"11979:111:101","nodeType":"YulFunctionCall","src":"11979:111:101"},"nativeSrc":"11976:246:101","nodeType":"YulIf","src":"11976:246:101"},{"nativeSrc":"12232:57:101","nodeType":"YulAssignment","src":"12232:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"12266:1:101","nodeType":"YulLiteral","src":"12266:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"12269:4:101","nodeType":"YulIdentifier","src":"12269:4:101"},{"name":"exponent","nativeSrc":"12275:8:101","nodeType":"YulIdentifier","src":"12275:8:101"},{"name":"max","nativeSrc":"12285:3:101","nodeType":"YulIdentifier","src":"12285:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"12247:18:101","nodeType":"YulIdentifier","src":"12247:18:101"},"nativeSrc":"12247:42:101","nodeType":"YulFunctionCall","src":"12247:42:101"},"variableNames":[{"name":"power","nativeSrc":"12232:5:101","nodeType":"YulIdentifier","src":"12232:5:101"},{"name":"base","nativeSrc":"12239:4:101","nodeType":"YulIdentifier","src":"12239:4:101"}]},{"body":{"nativeSrc":"12328:22:101","nodeType":"YulBlock","src":"12328:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12330:16:101","nodeType":"YulIdentifier","src":"12330:16:101"},"nativeSrc":"12330:18:101","nodeType":"YulFunctionCall","src":"12330:18:101"},"nativeSrc":"12330:18:101","nodeType":"YulExpressionStatement","src":"12330:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"12305:5:101","nodeType":"YulIdentifier","src":"12305:5:101"},{"arguments":[{"name":"max","nativeSrc":"12316:3:101","nodeType":"YulIdentifier","src":"12316:3:101"},{"name":"base","nativeSrc":"12321:4:101","nodeType":"YulIdentifier","src":"12321:4:101"}],"functionName":{"name":"div","nativeSrc":"12312:3:101","nodeType":"YulIdentifier","src":"12312:3:101"},"nativeSrc":"12312:14:101","nodeType":"YulFunctionCall","src":"12312:14:101"}],"functionName":{"name":"gt","nativeSrc":"12302:2:101","nodeType":"YulIdentifier","src":"12302:2:101"},"nativeSrc":"12302:25:101","nodeType":"YulFunctionCall","src":"12302:25:101"},"nativeSrc":"12299:51:101","nodeType":"YulIf","src":"12299:51:101"},{"nativeSrc":"12359:25:101","nodeType":"YulAssignment","src":"12359:25:101","value":{"arguments":[{"name":"power","nativeSrc":"12372:5:101","nodeType":"YulIdentifier","src":"12372:5:101"},{"name":"base","nativeSrc":"12379:4:101","nodeType":"YulIdentifier","src":"12379:4:101"}],"functionName":{"name":"mul","nativeSrc":"12368:3:101","nodeType":"YulIdentifier","src":"12368:3:101"},"nativeSrc":"12368:16:101","nodeType":"YulFunctionCall","src":"12368:16:101"},"variableNames":[{"name":"power","nativeSrc":"12359:5:101","nodeType":"YulIdentifier","src":"12359:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"11317:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"11347:4:101","nodeType":"YulTypedName","src":"11347:4:101","type":""},{"name":"exponent","nativeSrc":"11353:8:101","nodeType":"YulTypedName","src":"11353:8:101","type":""},{"name":"max","nativeSrc":"11363:3:101","nodeType":"YulTypedName","src":"11363:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"11371:5:101","nodeType":"YulTypedName","src":"11371:5:101","type":""}],"src":"11317:1073:101"},{"body":{"nativeSrc":"12462:219:101","nodeType":"YulBlock","src":"12462:219:101","statements":[{"nativeSrc":"12472:31:101","nodeType":"YulAssignment","src":"12472:31:101","value":{"arguments":[{"name":"base","nativeSrc":"12498:4:101","nodeType":"YulIdentifier","src":"12498:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12480:17:101","nodeType":"YulIdentifier","src":"12480:17:101"},"nativeSrc":"12480:23:101","nodeType":"YulFunctionCall","src":"12480:23:101"},"variableNames":[{"name":"base","nativeSrc":"12472:4:101","nodeType":"YulIdentifier","src":"12472:4:101"}]},{"nativeSrc":"12512:39:101","nodeType":"YulAssignment","src":"12512:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"12542:8:101","nodeType":"YulIdentifier","src":"12542:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12524:17:101","nodeType":"YulIdentifier","src":"12524:17:101"},"nativeSrc":"12524:27:101","nodeType":"YulFunctionCall","src":"12524:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"12512:8:101","nodeType":"YulIdentifier","src":"12512:8:101"}]},{"nativeSrc":"12561:113:101","nodeType":"YulAssignment","src":"12561:113:101","value":{"arguments":[{"name":"base","nativeSrc":"12591:4:101","nodeType":"YulIdentifier","src":"12591:4:101"},{"name":"exponent","nativeSrc":"12597:8:101","nodeType":"YulIdentifier","src":"12597:8:101"},{"kind":"number","nativeSrc":"12607:66:101","nodeType":"YulLiteral","src":"12607:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"12570:20:101","nodeType":"YulIdentifier","src":"12570:20:101"},"nativeSrc":"12570:104:101","nodeType":"YulFunctionCall","src":"12570:104:101"},"variableNames":[{"name":"power","nativeSrc":"12561:5:101","nodeType":"YulIdentifier","src":"12561:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"12396:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"12437:4:101","nodeType":"YulTypedName","src":"12437:4:101","type":""},{"name":"exponent","nativeSrc":"12443:8:101","nodeType":"YulTypedName","src":"12443:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"12456:5:101","nodeType":"YulTypedName","src":"12456:5:101","type":""}],"src":"12396:285:101"},{"body":{"nativeSrc":"12746:40:101","nodeType":"YulBlock","src":"12746:40:101","statements":[{"nativeSrc":"12757:22:101","nodeType":"YulAssignment","src":"12757:22:101","value":{"arguments":[{"name":"value","nativeSrc":"12773:5:101","nodeType":"YulIdentifier","src":"12773:5:101"}],"functionName":{"name":"mload","nativeSrc":"12767:5:101","nodeType":"YulIdentifier","src":"12767:5:101"},"nativeSrc":"12767:12:101","nodeType":"YulFunctionCall","src":"12767:12:101"},"variableNames":[{"name":"length","nativeSrc":"12757:6:101","nodeType":"YulIdentifier","src":"12757:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"12687:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12729:5:101","nodeType":"YulTypedName","src":"12729:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"12739:6:101","nodeType":"YulTypedName","src":"12739:6:101","type":""}],"src":"12687:99:101"},{"body":{"nativeSrc":"12888:73:101","nodeType":"YulBlock","src":"12888:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12905:3:101","nodeType":"YulIdentifier","src":"12905:3:101"},{"name":"length","nativeSrc":"12910:6:101","nodeType":"YulIdentifier","src":"12910:6:101"}],"functionName":{"name":"mstore","nativeSrc":"12898:6:101","nodeType":"YulIdentifier","src":"12898:6:101"},"nativeSrc":"12898:19:101","nodeType":"YulFunctionCall","src":"12898:19:101"},"nativeSrc":"12898:19:101","nodeType":"YulExpressionStatement","src":"12898:19:101"},{"nativeSrc":"12926:29:101","nodeType":"YulAssignment","src":"12926:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"12945:3:101","nodeType":"YulIdentifier","src":"12945:3:101"},{"kind":"number","nativeSrc":"12950:4:101","nodeType":"YulLiteral","src":"12950:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12941:3:101","nodeType":"YulIdentifier","src":"12941:3:101"},"nativeSrc":"12941:14:101","nodeType":"YulFunctionCall","src":"12941:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"12926:11:101","nodeType":"YulIdentifier","src":"12926:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12792:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12860:3:101","nodeType":"YulTypedName","src":"12860:3:101","type":""},{"name":"length","nativeSrc":"12865:6:101","nodeType":"YulTypedName","src":"12865:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12876:11:101","nodeType":"YulTypedName","src":"12876:11:101","type":""}],"src":"12792:169:101"},{"body":{"nativeSrc":"13029:77:101","nodeType":"YulBlock","src":"13029:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13046:3:101","nodeType":"YulIdentifier","src":"13046:3:101"},{"name":"src","nativeSrc":"13051:3:101","nodeType":"YulIdentifier","src":"13051:3:101"},{"name":"length","nativeSrc":"13056:6:101","nodeType":"YulIdentifier","src":"13056:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"13040:5:101","nodeType":"YulIdentifier","src":"13040:5:101"},"nativeSrc":"13040:23:101","nodeType":"YulFunctionCall","src":"13040:23:101"},"nativeSrc":"13040:23:101","nodeType":"YulExpressionStatement","src":"13040:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13083:3:101","nodeType":"YulIdentifier","src":"13083:3:101"},{"name":"length","nativeSrc":"13088:6:101","nodeType":"YulIdentifier","src":"13088:6:101"}],"functionName":{"name":"add","nativeSrc":"13079:3:101","nodeType":"YulIdentifier","src":"13079:3:101"},"nativeSrc":"13079:16:101","nodeType":"YulFunctionCall","src":"13079:16:101"},{"kind":"number","nativeSrc":"13097:1:101","nodeType":"YulLiteral","src":"13097:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13072:6:101","nodeType":"YulIdentifier","src":"13072:6:101"},"nativeSrc":"13072:27:101","nodeType":"YulFunctionCall","src":"13072:27:101"},"nativeSrc":"13072:27:101","nodeType":"YulExpressionStatement","src":"13072:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12967:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13011:3:101","nodeType":"YulTypedName","src":"13011:3:101","type":""},{"name":"dst","nativeSrc":"13016:3:101","nodeType":"YulTypedName","src":"13016:3:101","type":""},{"name":"length","nativeSrc":"13021:6:101","nodeType":"YulTypedName","src":"13021:6:101","type":""}],"src":"12967:139:101"},{"body":{"nativeSrc":"13204:285:101","nodeType":"YulBlock","src":"13204:285:101","statements":[{"nativeSrc":"13214:53:101","nodeType":"YulVariableDeclaration","src":"13214:53:101","value":{"arguments":[{"name":"value","nativeSrc":"13261:5:101","nodeType":"YulIdentifier","src":"13261:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"13228:32:101","nodeType":"YulIdentifier","src":"13228:32:101"},"nativeSrc":"13228:39:101","nodeType":"YulFunctionCall","src":"13228:39:101"},"variables":[{"name":"length","nativeSrc":"13218:6:101","nodeType":"YulTypedName","src":"13218:6:101","type":""}]},{"nativeSrc":"13276:78:101","nodeType":"YulAssignment","src":"13276:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"13342:3:101","nodeType":"YulIdentifier","src":"13342:3:101"},{"name":"length","nativeSrc":"13347:6:101","nodeType":"YulIdentifier","src":"13347:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13283:58:101","nodeType":"YulIdentifier","src":"13283:58:101"},"nativeSrc":"13283:71:101","nodeType":"YulFunctionCall","src":"13283:71:101"},"variableNames":[{"name":"pos","nativeSrc":"13276:3:101","nodeType":"YulIdentifier","src":"13276:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13402:5:101","nodeType":"YulIdentifier","src":"13402:5:101"},{"kind":"number","nativeSrc":"13409:4:101","nodeType":"YulLiteral","src":"13409:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13398:3:101","nodeType":"YulIdentifier","src":"13398:3:101"},"nativeSrc":"13398:16:101","nodeType":"YulFunctionCall","src":"13398:16:101"},{"name":"pos","nativeSrc":"13416:3:101","nodeType":"YulIdentifier","src":"13416:3:101"},{"name":"length","nativeSrc":"13421:6:101","nodeType":"YulIdentifier","src":"13421:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13363:34:101","nodeType":"YulIdentifier","src":"13363:34:101"},"nativeSrc":"13363:65:101","nodeType":"YulFunctionCall","src":"13363:65:101"},"nativeSrc":"13363:65:101","nodeType":"YulExpressionStatement","src":"13363:65:101"},{"nativeSrc":"13437:46:101","nodeType":"YulAssignment","src":"13437:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"13448:3:101","nodeType":"YulIdentifier","src":"13448:3:101"},{"arguments":[{"name":"length","nativeSrc":"13475:6:101","nodeType":"YulIdentifier","src":"13475:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13453:21:101","nodeType":"YulIdentifier","src":"13453:21:101"},"nativeSrc":"13453:29:101","nodeType":"YulFunctionCall","src":"13453:29:101"}],"functionName":{"name":"add","nativeSrc":"13444:3:101","nodeType":"YulIdentifier","src":"13444:3:101"},"nativeSrc":"13444:39:101","nodeType":"YulFunctionCall","src":"13444:39:101"},"variableNames":[{"name":"end","nativeSrc":"13437:3:101","nodeType":"YulIdentifier","src":"13437:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13112:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13185:5:101","nodeType":"YulTypedName","src":"13185:5:101","type":""},{"name":"pos","nativeSrc":"13192:3:101","nodeType":"YulTypedName","src":"13192:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13200:3:101","nodeType":"YulTypedName","src":"13200:3:101","type":""}],"src":"13112:377:101"},{"body":{"nativeSrc":"13641:277:101","nodeType":"YulBlock","src":"13641:277:101","statements":[{"nativeSrc":"13651:26:101","nodeType":"YulAssignment","src":"13651:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13663:9:101","nodeType":"YulIdentifier","src":"13663:9:101"},{"kind":"number","nativeSrc":"13674:2:101","nodeType":"YulLiteral","src":"13674:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13659:3:101","nodeType":"YulIdentifier","src":"13659:3:101"},"nativeSrc":"13659:18:101","nodeType":"YulFunctionCall","src":"13659:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13651:4:101","nodeType":"YulIdentifier","src":"13651:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13731:6:101","nodeType":"YulIdentifier","src":"13731:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13744:9:101","nodeType":"YulIdentifier","src":"13744:9:101"},{"kind":"number","nativeSrc":"13755:1:101","nodeType":"YulLiteral","src":"13755:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13740:3:101","nodeType":"YulIdentifier","src":"13740:3:101"},"nativeSrc":"13740:17:101","nodeType":"YulFunctionCall","src":"13740:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13687:43:101","nodeType":"YulIdentifier","src":"13687:43:101"},"nativeSrc":"13687:71:101","nodeType":"YulFunctionCall","src":"13687:71:101"},"nativeSrc":"13687:71:101","nodeType":"YulExpressionStatement","src":"13687:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13779:9:101","nodeType":"YulIdentifier","src":"13779:9:101"},{"kind":"number","nativeSrc":"13790:2:101","nodeType":"YulLiteral","src":"13790:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13775:3:101","nodeType":"YulIdentifier","src":"13775:3:101"},"nativeSrc":"13775:18:101","nodeType":"YulFunctionCall","src":"13775:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13799:4:101","nodeType":"YulIdentifier","src":"13799:4:101"},{"name":"headStart","nativeSrc":"13805:9:101","nodeType":"YulIdentifier","src":"13805:9:101"}],"functionName":{"name":"sub","nativeSrc":"13795:3:101","nodeType":"YulIdentifier","src":"13795:3:101"},"nativeSrc":"13795:20:101","nodeType":"YulFunctionCall","src":"13795:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13768:6:101","nodeType":"YulIdentifier","src":"13768:6:101"},"nativeSrc":"13768:48:101","nodeType":"YulFunctionCall","src":"13768:48:101"},"nativeSrc":"13768:48:101","nodeType":"YulExpressionStatement","src":"13768:48:101"},{"nativeSrc":"13825:86:101","nodeType":"YulAssignment","src":"13825:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"13897:6:101","nodeType":"YulIdentifier","src":"13897:6:101"},{"name":"tail","nativeSrc":"13906:4:101","nodeType":"YulIdentifier","src":"13906:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13833:63:101","nodeType":"YulIdentifier","src":"13833:63:101"},"nativeSrc":"13833:78:101","nodeType":"YulFunctionCall","src":"13833:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13825:4:101","nodeType":"YulIdentifier","src":"13825:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13495:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13605:9:101","nodeType":"YulTypedName","src":"13605:9:101","type":""},{"name":"value1","nativeSrc":"13617:6:101","nodeType":"YulTypedName","src":"13617:6:101","type":""},{"name":"value0","nativeSrc":"13625:6:101","nodeType":"YulTypedName","src":"13625:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13636:4:101","nodeType":"YulTypedName","src":"13636:4:101","type":""}],"src":"13495:423:101"},{"body":{"nativeSrc":"13964:76:101","nodeType":"YulBlock","src":"13964:76:101","statements":[{"body":{"nativeSrc":"14018:16:101","nodeType":"YulBlock","src":"14018:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14027:1:101","nodeType":"YulLiteral","src":"14027:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"14030:1:101","nodeType":"YulLiteral","src":"14030:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14020:6:101","nodeType":"YulIdentifier","src":"14020:6:101"},"nativeSrc":"14020:12:101","nodeType":"YulFunctionCall","src":"14020:12:101"},"nativeSrc":"14020:12:101","nodeType":"YulExpressionStatement","src":"14020:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13987:5:101","nodeType":"YulIdentifier","src":"13987:5:101"},{"arguments":[{"name":"value","nativeSrc":"14009:5:101","nodeType":"YulIdentifier","src":"14009:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"13994:14:101","nodeType":"YulIdentifier","src":"13994:14:101"},"nativeSrc":"13994:21:101","nodeType":"YulFunctionCall","src":"13994:21:101"}],"functionName":{"name":"eq","nativeSrc":"13984:2:101","nodeType":"YulIdentifier","src":"13984:2:101"},"nativeSrc":"13984:32:101","nodeType":"YulFunctionCall","src":"13984:32:101"}],"functionName":{"name":"iszero","nativeSrc":"13977:6:101","nodeType":"YulIdentifier","src":"13977:6:101"},"nativeSrc":"13977:40:101","nodeType":"YulFunctionCall","src":"13977:40:101"},"nativeSrc":"13974:60:101","nodeType":"YulIf","src":"13974:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"13924:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13957:5:101","nodeType":"YulTypedName","src":"13957:5:101","type":""}],"src":"13924:116:101"},{"body":{"nativeSrc":"14106:77:101","nodeType":"YulBlock","src":"14106:77:101","statements":[{"nativeSrc":"14116:22:101","nodeType":"YulAssignment","src":"14116:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"14131:6:101","nodeType":"YulIdentifier","src":"14131:6:101"}],"functionName":{"name":"mload","nativeSrc":"14125:5:101","nodeType":"YulIdentifier","src":"14125:5:101"},"nativeSrc":"14125:13:101","nodeType":"YulFunctionCall","src":"14125:13:101"},"variableNames":[{"name":"value","nativeSrc":"14116:5:101","nodeType":"YulIdentifier","src":"14116:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14171:5:101","nodeType":"YulIdentifier","src":"14171:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"14147:23:101","nodeType":"YulIdentifier","src":"14147:23:101"},"nativeSrc":"14147:30:101","nodeType":"YulFunctionCall","src":"14147:30:101"},"nativeSrc":"14147:30:101","nodeType":"YulExpressionStatement","src":"14147:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14046:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14084:6:101","nodeType":"YulTypedName","src":"14084:6:101","type":""},{"name":"end","nativeSrc":"14092:3:101","nodeType":"YulTypedName","src":"14092:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14100:5:101","nodeType":"YulTypedName","src":"14100:5:101","type":""}],"src":"14046:137:101"},{"body":{"nativeSrc":"14263:271:101","nodeType":"YulBlock","src":"14263:271:101","statements":[{"body":{"nativeSrc":"14309:83:101","nodeType":"YulBlock","src":"14309:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14311:77:101","nodeType":"YulIdentifier","src":"14311:77:101"},"nativeSrc":"14311:79:101","nodeType":"YulFunctionCall","src":"14311:79:101"},"nativeSrc":"14311:79:101","nodeType":"YulExpressionStatement","src":"14311:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14284:7:101","nodeType":"YulIdentifier","src":"14284:7:101"},{"name":"headStart","nativeSrc":"14293:9:101","nodeType":"YulIdentifier","src":"14293:9:101"}],"functionName":{"name":"sub","nativeSrc":"14280:3:101","nodeType":"YulIdentifier","src":"14280:3:101"},"nativeSrc":"14280:23:101","nodeType":"YulFunctionCall","src":"14280:23:101"},{"kind":"number","nativeSrc":"14305:2:101","nodeType":"YulLiteral","src":"14305:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14276:3:101","nodeType":"YulIdentifier","src":"14276:3:101"},"nativeSrc":"14276:32:101","nodeType":"YulFunctionCall","src":"14276:32:101"},"nativeSrc":"14273:119:101","nodeType":"YulIf","src":"14273:119:101"},{"nativeSrc":"14402:125:101","nodeType":"YulBlock","src":"14402:125:101","statements":[{"nativeSrc":"14417:15:101","nodeType":"YulVariableDeclaration","src":"14417:15:101","value":{"kind":"number","nativeSrc":"14431:1:101","nodeType":"YulLiteral","src":"14431:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14421:6:101","nodeType":"YulTypedName","src":"14421:6:101","type":""}]},{"nativeSrc":"14446:71:101","nodeType":"YulAssignment","src":"14446:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14489:9:101","nodeType":"YulIdentifier","src":"14489:9:101"},{"name":"offset","nativeSrc":"14500:6:101","nodeType":"YulIdentifier","src":"14500:6:101"}],"functionName":{"name":"add","nativeSrc":"14485:3:101","nodeType":"YulIdentifier","src":"14485:3:101"},"nativeSrc":"14485:22:101","nodeType":"YulFunctionCall","src":"14485:22:101"},{"name":"dataEnd","nativeSrc":"14509:7:101","nodeType":"YulIdentifier","src":"14509:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14456:28:101","nodeType":"YulIdentifier","src":"14456:28:101"},"nativeSrc":"14456:61:101","nodeType":"YulFunctionCall","src":"14456:61:101"},"variableNames":[{"name":"value0","nativeSrc":"14446:6:101","nodeType":"YulIdentifier","src":"14446:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"14189:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14233:9:101","nodeType":"YulTypedName","src":"14233:9:101","type":""},{"name":"dataEnd","nativeSrc":"14244:7:101","nodeType":"YulTypedName","src":"14244:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14256:6:101","nodeType":"YulTypedName","src":"14256:6:101","type":""}],"src":"14189:345:101"},{"body":{"nativeSrc":"14714:359:101","nodeType":"YulBlock","src":"14714:359:101","statements":[{"nativeSrc":"14724:26:101","nodeType":"YulAssignment","src":"14724:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14736:9:101","nodeType":"YulIdentifier","src":"14736:9:101"},{"kind":"number","nativeSrc":"14747:2:101","nodeType":"YulLiteral","src":"14747:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14732:3:101","nodeType":"YulIdentifier","src":"14732:3:101"},"nativeSrc":"14732:18:101","nodeType":"YulFunctionCall","src":"14732:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14724:4:101","nodeType":"YulIdentifier","src":"14724:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14804:6:101","nodeType":"YulIdentifier","src":"14804:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14817:9:101","nodeType":"YulIdentifier","src":"14817:9:101"},{"kind":"number","nativeSrc":"14828:1:101","nodeType":"YulLiteral","src":"14828:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14813:3:101","nodeType":"YulIdentifier","src":"14813:3:101"},"nativeSrc":"14813:17:101","nodeType":"YulFunctionCall","src":"14813:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14760:43:101","nodeType":"YulIdentifier","src":"14760:43:101"},"nativeSrc":"14760:71:101","nodeType":"YulFunctionCall","src":"14760:71:101"},"nativeSrc":"14760:71:101","nodeType":"YulExpressionStatement","src":"14760:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14885:6:101","nodeType":"YulIdentifier","src":"14885:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"14898:9:101","nodeType":"YulIdentifier","src":"14898:9:101"},{"kind":"number","nativeSrc":"14909:2:101","nodeType":"YulLiteral","src":"14909:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14894:3:101","nodeType":"YulIdentifier","src":"14894:3:101"},"nativeSrc":"14894:18:101","nodeType":"YulFunctionCall","src":"14894:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14841:43:101","nodeType":"YulIdentifier","src":"14841:43:101"},"nativeSrc":"14841:72:101","nodeType":"YulFunctionCall","src":"14841:72:101"},"nativeSrc":"14841:72:101","nodeType":"YulExpressionStatement","src":"14841:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14934:9:101","nodeType":"YulIdentifier","src":"14934:9:101"},{"kind":"number","nativeSrc":"14945:2:101","nodeType":"YulLiteral","src":"14945:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14930:3:101","nodeType":"YulIdentifier","src":"14930:3:101"},"nativeSrc":"14930:18:101","nodeType":"YulFunctionCall","src":"14930:18:101"},{"arguments":[{"name":"tail","nativeSrc":"14954:4:101","nodeType":"YulIdentifier","src":"14954:4:101"},{"name":"headStart","nativeSrc":"14960:9:101","nodeType":"YulIdentifier","src":"14960:9:101"}],"functionName":{"name":"sub","nativeSrc":"14950:3:101","nodeType":"YulIdentifier","src":"14950:3:101"},"nativeSrc":"14950:20:101","nodeType":"YulFunctionCall","src":"14950:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14923:6:101","nodeType":"YulIdentifier","src":"14923:6:101"},"nativeSrc":"14923:48:101","nodeType":"YulFunctionCall","src":"14923:48:101"},"nativeSrc":"14923:48:101","nodeType":"YulExpressionStatement","src":"14923:48:101"},{"nativeSrc":"14980:86:101","nodeType":"YulAssignment","src":"14980:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"15052:6:101","nodeType":"YulIdentifier","src":"15052:6:101"},{"name":"tail","nativeSrc":"15061:4:101","nodeType":"YulIdentifier","src":"15061:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"14988:63:101","nodeType":"YulIdentifier","src":"14988:63:101"},"nativeSrc":"14988:78:101","nodeType":"YulFunctionCall","src":"14988:78:101"},"variableNames":[{"name":"tail","nativeSrc":"14980:4:101","nodeType":"YulIdentifier","src":"14980:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14540:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14670:9:101","nodeType":"YulTypedName","src":"14670:9:101","type":""},{"name":"value2","nativeSrc":"14682:6:101","nodeType":"YulTypedName","src":"14682:6:101","type":""},{"name":"value1","nativeSrc":"14690:6:101","nodeType":"YulTypedName","src":"14690:6:101","type":""},{"name":"value0","nativeSrc":"14698:6:101","nodeType":"YulTypedName","src":"14698:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14709:4:101","nodeType":"YulTypedName","src":"14709:4:101","type":""}],"src":"14540:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IPStakePool_$3534_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IPStakePool_$3534_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IPStakePool_$3534_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IPStakePool_$3534__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IPStakePool_$3534_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    // struct IPStakePool.Data\n    function abi_decode_t_struct$_Data_$3526_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // totalWei\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // poolTokenSupply\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_Data_$3526_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_Data_$3526_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6009":[{"length":32,"start":376},{"length":32,"start":1742}],"6589":[{"length":32,"start":573},{"length":32,"start":728},{"length":32,"start":2202}],"6592":[{"length":32,"start":324},{"length":32,"start":1479},{"length":32,"start":2075}],"6596":[{"length":32,"start":640},{"length":32,"start":1434},{"length":32,"start":2028}],"6600":[{"length":32,"start":456},{"length":32,"start":2393}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061011c575f3560e01c8063671528d4116100a9578063a4edcd4c1161006e578063a4edcd4c1461027b578063a9534f8a146102a2578063abb85613146102bd578063ac5a693e146102c5578063bdf13af2146102cd575f80fd5b8063671528d41461021b578063692404261461023057806369818a35146102385780637fc4e4a01461025f5780639c43eb5414610272575f80fd5b806341976e09116100ef57806341976e09146101b057806345be2dc7146101c35780635213f9c8146101ea578063596efe6f146101ff578063643d813d14610208575f80fd5b806307d0413c1461012057806329db1be61461013f5780633a26dc4f146101735780634169d245146101a7575b5f80fd5b61012960015481565b6040516101369190610a0a565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a37565b61019a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610a62565b61012960045481565b6101296101be366004610a91565b6102d5565b61019a7f000000000000000000000000000000000000000000000000000000000000000081565b6101fd6101f8366004610ac8565b610386565b005b61012960025481565b6101fd610216366004610ae6565b6103f7565b6102236104cb565b6040516101369190610b28565b6101fd610506565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101fd61026d366004610ae6565b610652565b61012960035481565b61019a7f000000000000000000000000000000000000000000000000000000000000000081565b61016673bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101296106ca565b6101295f5481565b61012961079b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461032857604051630f58058360e11b815260040160405180910390fd5b5f6103316106ca565b90506001545f0361034c57610345816107e8565b9392505050565b5f61035561079b565b90505f818311801561036657508115155b6103705782610372565b815b905061037d816107e8565b95945050505050565b6103c46040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610940565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104356040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610940565b5f546104456301e1338084610b5e565b5f81905515801561045557505f82115b8061046957505f8054118015610469575081155b15610487576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104bc9190610a0a565b60405180910390a45060015550565b5f6001545f036104da57505f90565b5f6104e361079b565b9050805f036104f3575f91505090565b5f6104fc6106ca565b9190911192915050565b6001546003546105169042610b71565b10806105225750600154155b1561052957565b5f6105326106ca565b90505f61053d61079b565b905060045481831161054f5782610551565b815b61055b9190610b84565b6002819055426003555f0361058357604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105ef907f000000000000000000000000000000000000000000000000000000000000000090600401610a37565b5f604051808303815f87803b158015610606575f80fd5b505af1158015610618573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106906040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610940565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ba0b9a96040518163ffffffff1660e01b81526004016040805180830381865afa158015610727573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074b9190610c45565b905080602001515f036107715760405163386c978360e21b815260040160405180910390fd5b6020810151815161078b90670de0b6b3a764000090610c63565b6107959190610b5e565b91505090565b5f80600354426107ab9190610b71565b90505f670de0b6b3a7640000825f546002546107c79190610c63565b6107d19190610c63565b6107db9190610b5e565b6002546103459190610b84565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016108569190610a37565b602060405180830381865afa158015610871573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108959190610c82565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091c9190610cb4565b60ff16905061092c81600a610dde565b6109368487610c63565b61037d9190610b5e565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109909033908690600401610e27565b602060405180830381865afa1580156109ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cf9190610e5a565b9050806109fe57333083604051634a3fa29360e01b81526004016109f593929190610e78565b60405180910390fd5b5050565b805b82525050565b60208101610a188284610a02565b92915050565b5f6001600160a01b038216610a18565b610a0481610a1e565b60208101610a188284610a2e565b5f610a1882610a1e565b5f610a1882610a45565b610a0481610a4f565b60208101610a188284610a59565b610a7981610a1e565b8114610a83575f80fd5b50565b8035610a1881610a70565b5f60208284031215610aa457610aa45f80fd5b5f610aaf8484610a86565b949350505050565b80610a79565b8035610a1881610ab7565b5f60208284031215610adb57610adb5f80fd5b5f610aaf8484610abd565b5f8060408385031215610afa57610afa5f80fd5b5f610b058585610abd565b9250506020610b1685828601610abd565b9150509250929050565b801515610a04565b60208101610a188284610b20565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b6c57610b6c610b36565b500490565b81810381811115610a1857610a18610b4a565b80820180821115610a1857610a18610b4a565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610bd157610bd1610b97565b6040525050565b5f610be260405190565b9050610bee8282610bab565b919050565b8051610a1881610ab7565b5f60408284031215610c1157610c115f80fd5b610c1b6040610bd8565b90505f610c288484610bf3565b8252506020610c3984848301610bf3565b60208301525092915050565b5f60408284031215610c5857610c585f80fd5b5f610aaf8484610bfe565b818102808215838204851417610c7b57610c7b610b4a565b5092915050565b5f60208284031215610c9557610c955f80fd5b5f610aaf8484610bf3565b60ff8116610a79565b8051610a1881610ca0565b5f60208284031215610cc757610cc75f80fd5b5f610aaf8484610ca9565b80825b6001851115610d1157808604811115610cf057610cf0610b4a565b6001851615610cfe57908102905b8002610d0a8560011c90565b9450610cd5565b94509492505050565b5f82610d2857506001610345565b81610d3457505f610345565b8160018114610d4a5760028114610d5457610d81565b6001915050610345565b60ff841115610d6557610d65610b4a565b8360020a915084821115610d7b57610d7b610b4a565b50610345565b5060208310610133831016604e8410600b8410161715610db4575081810a83811115610daf57610daf610b4a565b610345565b610dc18484846001610cd2565b92509050818404811115610dd757610dd7610b4a565b0292915050565b5f6103455f198484610d1a565b8281835e505f910152565b5f610dff825190565b808452602084019350610e16818560208601610deb565b601f01601f19169290920192915050565b60408101610e358285610a2e565b8181036020830152610aaf8184610df6565b801515610a79565b8051610a1881610e47565b5f60208284031215610e6d57610e6d5f80fd5b5f610aaf8484610e4f565b60608101610e868286610a2e565b610e936020830185610a2e565b818103604083015261037d8184610df656fea2646970667358221220e61f3c3a4be851eb2dda7266d7c9ab7da72c08ae150bff35b79a7042d1ed0a8864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0xA9534F8A EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x272 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41976E09 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x208 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x3A26DC4F EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x1A7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA37 JUMP JUMPDEST PUSH2 0x19A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA62 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x1BE CALLDATASIZE PUSH1 0x4 PUSH2 0xA91 JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x19A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x216 CALLDATASIZE PUSH1 0x4 PUSH2 0xAE6 JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x223 PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xB28 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x506 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0xAE6 JUMP JUMPDEST PUSH2 0x652 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x19A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x166 PUSH20 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x79B JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x328 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x34C JUMPI PUSH2 0x345 DUP2 PUSH2 0x7E8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x355 PUSH2 0x79B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x366 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x370 JUMPI DUP3 PUSH2 0x372 JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x37D DUP2 PUSH2 0x7E8 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3C4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x435 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x445 PUSH4 0x1E13380 DUP5 PUSH2 0xB5E JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x455 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x469 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x469 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x487 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4DA JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4E3 PUSH2 0x79B JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4F3 JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4FC PUSH2 0x6CA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x516 SWAP1 TIMESTAMP PUSH2 0xB71 JUMP JUMPDEST LT DUP1 PUSH2 0x522 JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x529 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x532 PUSH2 0x6CA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x53D PUSH2 0x79B JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x54F JUMPI DUP3 PUSH2 0x551 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x55B SWAP2 SWAP1 PUSH2 0xB84 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5EF SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0xA37 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x618 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x690 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x940 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3BA0B9A9 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x727 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x74B SWAP2 SWAP1 PUSH2 0xC45 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD PUSH0 SUB PUSH2 0x771 JUMPI PUSH1 0x40 MLOAD PUSH4 0x386C9783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD PUSH2 0x78B SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x795 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x7AB SWAP2 SWAP1 PUSH2 0xB71 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x7D1 SWAP2 SWAP1 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x345 SWAP2 SWAP1 PUSH2 0xB84 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x856 SWAP2 SWAP1 PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x895 SWAP2 SWAP1 PUSH2 0xC82 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x8F8 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x91C SWAP2 SWAP1 PUSH2 0xCB4 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x92C DUP2 PUSH1 0xA PUSH2 0xDDE JUMP JUMPDEST PUSH2 0x936 DUP5 DUP8 PUSH2 0xC63 JUMP JUMPDEST PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x990 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xE27 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9AB JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x9CF SWAP2 SWAP1 PUSH2 0xE5A JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9FE JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xA02 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA18 JUMP JUMPDEST PUSH2 0xA04 DUP2 PUSH2 0xA1E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xA2E JUMP JUMPDEST PUSH0 PUSH2 0xA18 DUP3 PUSH2 0xA1E JUMP JUMPDEST PUSH0 PUSH2 0xA18 DUP3 PUSH2 0xA45 JUMP JUMPDEST PUSH2 0xA04 DUP2 PUSH2 0xA4F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xA59 JUMP JUMPDEST PUSH2 0xA79 DUP2 PUSH2 0xA1E JUMP JUMPDEST DUP2 EQ PUSH2 0xA83 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xA18 DUP2 PUSH2 0xA70 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAA4 JUMPI PUSH2 0xAA4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xA86 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xA79 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xA18 DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xADB JUMPI PUSH2 0xADB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xABD JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAFA JUMPI PUSH2 0xAFA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xB05 DUP6 DUP6 PUSH2 0xABD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB16 DUP6 DUP3 DUP7 ADD PUSH2 0xABD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA04 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xA18 DUP3 DUP5 PUSH2 0xB20 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB6C JUMPI PUSH2 0xB6C PUSH2 0xB36 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA18 PUSH2 0xB4A JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xA18 JUMPI PUSH2 0xA18 PUSH2 0xB4A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xBD1 JUMPI PUSH2 0xBD1 PUSH2 0xB97 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xBE2 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xBEE DUP3 DUP3 PUSH2 0xBAB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0xA18 DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC11 JUMPI PUSH2 0xC11 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC1B PUSH1 0x40 PUSH2 0xBD8 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xC28 DUP5 DUP5 PUSH2 0xBF3 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0xC39 DUP5 DUP5 DUP4 ADD PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC58 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xBFE JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xC7B JUMPI PUSH2 0xC7B PUSH2 0xB4A JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC95 JUMPI PUSH2 0xC95 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA79 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xA18 DUP2 PUSH2 0xCA0 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC7 JUMPI PUSH2 0xCC7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xCA9 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xD11 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCF0 PUSH2 0xB4A JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xCFE JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xD0A DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xCD5 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xD28 JUMPI POP PUSH1 0x1 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH2 0xD34 JUMPI POP PUSH0 PUSH2 0x345 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xD4A JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xD54 JUMPI PUSH2 0xD81 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x345 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xD65 JUMPI PUSH2 0xD65 PUSH2 0xB4A JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xD7B JUMPI PUSH2 0xD7B PUSH2 0xB4A JUMP JUMPDEST POP PUSH2 0x345 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xDB4 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAF PUSH2 0xB4A JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0xDC1 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xCD2 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xDD7 JUMPI PUSH2 0xDD7 PUSH2 0xB4A JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x345 PUSH0 NOT DUP5 DUP5 PUSH2 0xD1A JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xDFF DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xE16 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xDEB JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xE35 DUP3 DUP6 PUSH2 0xA2E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xAAF DUP2 DUP5 PUSH2 0xDF6 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA79 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xA18 DUP2 PUSH2 0xE47 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE6D JUMPI PUSH2 0xE6D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAAF DUP5 DUP5 PUSH2 0xE4F JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xE86 DUP3 DUP7 PUSH2 0xA2E JUMP JUMPDEST PUSH2 0xE93 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xA2E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x37D DUP2 DUP5 PUSH2 0xDF6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0x1F EXTCODECOPY GASPRICE 0x4B 0xE8 MLOAD 0xEB 0x2D 0xDA PUSH19 0x66D7C9AB7DA72C08AE150BFF35B79A7042D1ED EXP DUP9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"495:1766:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;738:39:60:-;;;;;;;;;;;;:::i;1728:26:67:-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;6379:216;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;608:86:60;;652:42;608:86;;1904:355;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1904:355:60:-;1965:7;1984:40;2027:10;-1:-1:-1;;;;;2027:23:60;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1984:68;;2067:16;:32;;;2103:1;2067:37;2063:98;;2127:23;;-1:-1:-1;;;2127:23:60;;;;;;;;;;;2063:98;2220:32;;;;2179:25;;:37;;186:4:17;;2179:37:60;:::i;:::-;2178:74;;;;:::i;:::-;2171:81;;;1904:355;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1242:126::-;1292:9;1325:37;1356:5;1325:37;:::i;1374:146::-;1444:9;1477:37;1508:5;1477:37;:::i;1526:171::-;1633:57;1684:5;1633:57;:::i;1703:262::-;1854:2;1839:18;;1867:91;1843:9;1931:6;1867:91;:::i;2298:122::-;2371:24;2389:5;2371:24;:::i;:::-;2364:5;2361:35;2351:63;;2410:1;2407;2400:12;2351:63;2298:122;:::o;2426:139::-;2497:20;;2526:33;2497:20;2526:33;:::i;2571:329::-;2630:6;2679:2;2667:9;2658:7;2654:23;2650:32;2647:119;;;2685:79;495:1766:60;;;2685:79:101;2805:1;2830:53;2875:7;2855:9;2830:53;:::i;:::-;2820:63;2571:329;-1:-1:-1;;;;2571:329:101:o;3563:122::-;3654:5;3636:24;7:77;3691:139;3762:20;;3791:33;3762:20;3791:33;:::i;3836:329::-;3895:6;3944:2;3932:9;3923:7;3919:23;3915:32;3912:119;;;3950:79;495:1766:60;;;3950:79:101;4070:1;4095:53;4140:7;4120:9;4095:53;:::i;4171:474::-;4239:6;4247;4296:2;4284:9;4275:7;4271:23;4267:32;4264:119;;;4302:79;495:1766:60;;;4302:79:101;4422:1;4447:53;4492:7;4472:9;4447:53;:::i;:::-;4437:63;;4393:117;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4171:474;;;;;:::o;4747:109::-;4721:13;;4714:21;4828;4651:90;4862:210;4987:2;4972:18;;5000:65;4976:9;5038:6;5000:65;:::i;5740:180::-;-1:-1:-1;;;5785:1:101;5778:88;5885:4;5882:1;5875:15;5909:4;5906:1;5899:15;5926:180;-1:-1:-1;;;5971:1:101;5964:88;6071:4;6068:1;6061:15;6095:4;6092:1;6085:15;6112:185;6152:1;6242;6232:35;;6247:18;;:::i;:::-;-1:-1:-1;6282:9:101;;6112:185::o;6303:194::-;6434:9;;;6456:11;;;6453:37;;;6470:18;;:::i;6503:191::-;6632:9;;;6654:10;;;6651:36;;;6667:18;;:::i;6931:180::-;-1:-1:-1;;;6976:1:101;6969:88;7076:4;7073:1;7066:15;7100:4;7097:1;7090:15;7117:281;-1:-1:-1;;6915:2:101;6895:14;;6891:28;7192:6;7188:40;7330:6;7318:10;7315:22;7294:18;7282:10;7279:34;7276:62;7273:88;;;7341:18;;:::i;:::-;7377:2;7370:22;-1:-1:-1;;7117:281:101:o;7404:129::-;7438:6;7465:20;2037:2;2031:9;;1971:75;7465:20;7455:30;;7494:33;7522:4;7514:6;7494:33;:::i;:::-;7404:129;;;:::o;7662:143::-;7744:13;;7766:33;7744:13;7766:33;:::i;7842:619::-;7924:5;7968:4;7956:9;7951:3;7947:19;7943:30;7940:117;;;7976:79;495:1766:60;;;7976:79:101;8075:21;8091:4;8075:21;:::i;:::-;8066:30;-1:-1:-1;8159:1:101;8199:60;8255:3;8235:9;8199:60;:::i;:::-;8174:86;;-1:-1:-1;8341:2:101;8382:60;8438:3;8414:22;;;8382:60;:::i;:::-;8375:4;8368:5;8364:16;8357:86;8281:173;7842:619;;;;:::o;8467:395::-;8559:6;8608:2;8596:9;8587:7;8583:23;8579:32;8576:119;;;8614:79;495:1766:60;;;8614:79:101;8734:1;8759:86;8837:7;8817:9;8759:86;:::i;8868:410::-;9013:9;;;;9175;;9208:15;;;9202:22;;9155:83;9132:139;;9251:18;;:::i;:::-;8916:362;8868:410;;;;:::o;9284:351::-;9354:6;9403:2;9391:9;9382:7;9378:23;9374:32;9371:119;;;9409:79;495:1766:60;;;9409:79:101;9529:1;9554:64;9610:7;9590:9;9554:64;:::i;9733:118::-;9716:4;9705:16;;9804:22;9641:86;9857:139;9937:13;;9959:31;9937:13;9959:31;:::i;10002:347::-;10070:6;10119:2;10107:9;10098:7;10094:23;10090:32;10087:119;;;10125:79;495:1766:60;;;10125:79:101;10245:1;10270:62;10324:7;10304:9;10270:62;:::i;10463:848::-;10555:6;10579:5;10593:712;10614:1;10604:8;10601:15;10593:712;;;10709:4;10704:3;10700:14;10694:4;10691:24;10688:50;;;10718:18;;:::i;:::-;10768:1;10758:8;10754:16;10751:451;;;11172:16;;;;10751:451;11223:15;;11263:32;11286:8;10441:1;10437:13;;10355:102;11263:32;11251:44;;10593:712;;;10463:848;;;;;;;:::o;11317:1073::-;11371:5;11562:8;11552:40;;-1:-1:-1;11583:1:101;11585:5;;11552:40;11611:4;11601:36;;-1:-1:-1;11628:1:101;11630:5;;11601:36;11697:4;11745:1;11740:27;;;;11781:1;11776:191;;;;11690:277;;11740:27;11758:1;11749:10;;11760:5;;;11776:191;11821:3;11811:8;11808:17;11805:43;;;11828:18;;:::i;:::-;11877:8;11874:1;11870:16;11861:25;;11912:3;11905:5;11902:14;11899:40;;;11919:18;;:::i;:::-;11952:5;;;11690:277;;12076:2;12066:8;12063:16;12057:3;12051:4;12048:13;12044:36;12026:2;12016:8;12013:16;12008:2;12002:4;11999:12;11995:35;11979:111;11976:246;;;-1:-1:-1;12122:19:101;;;12157:14;;;12154:40;;;12174:18;;:::i;:::-;12207:5;;11976:246;12247:42;12285:3;12275:8;12269:4;12266:1;12247:42;:::i;:::-;12232:57;;;;12321:4;12316:3;12312:14;12305:5;12302:25;12299:51;;;12330:18;;:::i;:::-;12368:16;;11317:1073;-1:-1:-1;;11317:1073:101:o;12396:285::-;12456:5;12570:104;-1:-1:-1;;12597:8:101;12591:4;12570:104;:::i;12967:139::-;13056:6;13051:3;13046;13040:23;-1:-1:-1;13097:1:101;13079:16;;13072:27;12967:139::o;13112:377::-;13200:3;13228:39;13261:5;12767:12;;12687:99;13228:39;12898:19;;;12950:4;12941:14;;13276:78;;13363:65;13421:6;13416:3;13409:4;13402:5;13398:16;13363:65;:::i;:::-;6915:2;6895:14;-1:-1:-1;;6891:28:101;13444:39;;;;;;-1:-1:-1;;13112:377:101:o;13495:423::-;13674:2;13659:18;;13687:71;13663:9;13731:6;13687:71;:::i;:::-;13805:9;13799:4;13795:20;13790:2;13779:9;13775:18;13768:48;13833:78;13906:4;13897:6;13833:78;:::i;13924:116::-;4721:13;;4714:21;13994;4651:90;14046:137;14125:13;;14147:30;14125:13;14147:30;:::i;14189:345::-;14256:6;14305:2;14293:9;14284:7;14280:23;14276:32;14273:119;;;14311:79;495:1766:60;;;14311:79:101;14431:1;14456:61;14509:7;14489:9;14456:61;:::i;14540:533::-;14747:2;14732:18;;14760:71;14736:9;14804:6;14760:71;:::i;:::-;14841:72;14909:2;14898:9;14894:18;14885:6;14841:72;:::i;:::-;14960:9;14954:4;14950:20;14945:2;14934:9;14930:18;14923:48;14988:78;15061:4;15052:6;14988:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"760600","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","NATIVE_TOKEN_ADDR()":"infinite","RESILIENT_ORACLE()":"infinite","STAKE_POOL()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2450","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2449","snapshotTimestamp()":"2471","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","NATIVE_TOKEN_ADDR()":"a9534f8a","RESILIENT_ORACLE()":"a4edcd4c","STAKE_POOL()":"3a26dc4f","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakePool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stkBNB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolTokenSupplyIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ADDR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_POOL\",\"outputs\":[{\"internalType\":\"contract IPStakePool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"custom:error\":\"PoolTokenSupplyIsZero error is thrown if the pool token supply is zero\",\"returns\":{\"_0\":\"price The amount of BNB for stkBNB\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"StkBNBOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"PoolTokenSupplyIsZero()\":[{\"notice\":\"Thrown if the pool token supply is zero\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"NATIVE_TOKEN_ADDR()\":{\"notice\":\"This is used as token address of BNB on BSC\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"STAKE_POOL()\":{\"notice\":\"Address of StakePool\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of BNB for 1 stkBNB\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of stkBNB asset\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/StkBNBOracle.sol\":\"StkBNBOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IPStakePool.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IPStakePool {\\n    struct Data {\\n        uint256 totalWei;\\n        uint256 poolTokenSupply;\\n    }\\n\\n    /**\\n     * @dev The current exchange rate for converting stkBNB to BNB.\\n     */\\n    function exchangeRate() external view returns (Data memory);\\n}\\n\",\"keccak256\":\"0xe1f74f35e9873a0e4dd128bd51a78ef548083d8b66771ebee45a27a093cf830d\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/StkBNBOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IPStakePool } from \\\"../interfaces/IPStakePool.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\n\\n/**\\n * @title StkBNBOracle\\n * @author Venus\\n * @notice This oracle fetches the price of stkBNB asset\\n */\\ncontract StkBNBOracle is CorrelatedTokenOracle {\\n    /// @notice This is used as token address of BNB on BSC\\n    address public constant NATIVE_TOKEN_ADDR = 0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB;\\n\\n    /// @notice Address of StakePool\\n    IPStakePool public immutable STAKE_POOL;\\n\\n    /// @notice Thrown if the pool token supply is zero\\n    error PoolTokenSupplyIsZero();\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address stakePool,\\n        address stkBNB,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            stkBNB,\\n            NATIVE_TOKEN_ADDR,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(stakePool);\\n        STAKE_POOL = IPStakePool(stakePool);\\n    }\\n\\n    /**\\n     * @notice Fetches the amount of BNB for 1 stkBNB\\n     * @return price The amount of BNB for stkBNB\\n     * @custom:error PoolTokenSupplyIsZero error is thrown if the pool token supply is zero\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        IPStakePool.Data memory exchangeRateData = STAKE_POOL.exchangeRate();\\n\\n        if (exchangeRateData.poolTokenSupply == 0) {\\n            revert PoolTokenSupplyIsZero();\\n        }\\n\\n        return (exchangeRateData.totalWei * EXP_SCALE) / exchangeRateData.poolTokenSupply;\\n    }\\n}\\n\",\"keccak256\":\"0x31a2a742fcaff04b1e3f92d7885011d260a22d4ec4cbc55a9c51bdc848e8d149\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/StkBNBOracle.sol:StkBNBOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/StkBNBOracle.sol:StkBNBOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/StkBNBOracle.sol:StkBNBOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/StkBNBOracle.sol:StkBNBOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/StkBNBOracle.sol:StkBNBOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"PoolTokenSupplyIsZero()":[{"notice":"Thrown if the pool token supply is zero"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"NATIVE_TOKEN_ADDR()":{"notice":"This is used as token address of BNB on BSC"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"STAKE_POOL()":{"notice":"Address of StakePool"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of BNB for 1 stkBNB"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of stkBNB asset","version":1}}},"contracts/oracles/WBETHOracle.sol":{"WBETHOracle":{"abi":[{"inputs":[{"internalType":"address","name":"wbeth","type":"address"},{"internalType":"address","name":"eth","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount The amount of ETH for wBETH"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"WBETHOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_6135":{"entryPoint":null,"id":6135,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":288,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":367,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":395,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":607,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":330,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":587,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":348,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":378,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610100604052348015610010575f80fd5b5060405161105438038061105483398101604081905261002f9161018b565b8888888888888888886100466301e133808761025f565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610120565b6100ce88610120565b6100d787610120565b6100e082610120565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05250610272975050505050505050565b6001600160a01b038116610147576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101658161014a565b8114610147575f80fd5b80516101568161015c565b80610165565b80516101568161017a565b5f805f805f805f805f6101208a8c0312156101a7576101a75f80fd5b5f6101b28c8c61016f565b99505060206101c38c828d0161016f565b98505060406101d48c828d0161016f565b97505060606101e58c828d01610180565b96505060806101f68c828d01610180565b95505060a06102078c828d01610180565b94505060c06102188c828d01610180565b93505060e06102298c828d0161016f565b92505061010061023b8c828d01610180565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261026d5761026d61024b565b500490565b60805160a05160c05160e051610d776102dd5f395f818161017e01526108b601525f818161024301528181610542015261074901525f818161012e0152818161056f015261077801525f8181610200015281816102800152818161067501526107f70152610d775ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b6040516101209190610967565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610994565b61011360045481565b6101136101743660046109c3565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a06565b6101c06101bb366004610a25565b61032e565b005b61011360025481565b6101c06101d9366004610a43565b61039f565b6101e6610473565b6040516101209190610a85565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610a43565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b6101136106f8565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed81610745565b9392505050565b5f6102fd6106f8565b90505f818311801561030e57508115155b610318578261031a565b815b905061032581610745565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e743235362900000000000000000081525061089d565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e7432353629000081525061089d565b5f546103ed6301e1338084610abb565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104649190610967565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b6106f8565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610ace565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e56106f8565b90506004548183116104f757826104f9565b815b6105039190610ae1565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f000000000000000000000000000000000000000000000000000000000000000090600401610994565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e74323536290000000081525061089d565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190610aff565b905090565b5f80600354426107089190610ace565b90505f670de0b6b3a7640000825f546002546107249190610b1d565b61072e9190610b1d565b6107389190610abb565b6002546102ed9190610ae1565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107b39190610994565b602060405180830381865afa1580156107ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f29190610aff565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610b50565b60ff16905061088981600a610c7a565b6108938487610b1d565b6103259190610abb565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906108ed9033908690600401610cc3565b602060405180830381865afa158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c9190610cf6565b90508061095b57333083604051634a3fa29360e01b815260040161095293929190610d14565b60405180910390fd5b5050565b805b82525050565b60208101610975828461095f565b92915050565b5f6001600160a01b038216610975565b6109618161097b565b60208101610975828461098b565b6109ab8161097b565b81146109b5575f80fd5b50565b8035610975816109a2565b5f602082840312156109d6576109d65f80fd5b5f6109e184846109b8565b949350505050565b5f6109758261097b565b5f610975826109e9565b610961816109f3565b6020810161097582846109fd565b806109ab565b803561097581610a14565b5f60208284031215610a3857610a385f80fd5b5f6109e18484610a1a565b5f8060408385031215610a5757610a575f80fd5b5f610a628585610a1a565b9250506020610a7385828601610a1a565b9150509250929050565b801515610961565b602081016109758284610a7d565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610ac957610ac9610a93565b500490565b8181038181111561097557610975610aa7565b8082018082111561097557610975610aa7565b805161097581610a14565b5f60208284031215610b1257610b125f80fd5b5f6109e18484610af4565b818102808215838204851417610b3557610b35610aa7565b5092915050565b60ff81166109ab565b805161097581610b3c565b5f60208284031215610b6357610b635f80fd5b5f6109e18484610b45565b80825b6001851115610bad57808604811115610b8c57610b8c610aa7565b6001851615610b9a57908102905b8002610ba68560011c90565b9450610b71565b94509492505050565b5f82610bc4575060016102ed565b81610bd057505f6102ed565b8160018114610be65760028114610bf057610c1d565b60019150506102ed565b60ff841115610c0157610c01610aa7565b8360020a915084821115610c1757610c17610aa7565b506102ed565b5060208310610133831016604e8410600b8410161715610c50575081810a83811115610c4b57610c4b610aa7565b6102ed565b610c5d8484846001610b6e565b92509050818404811115610c7357610c73610aa7565b0292915050565b5f6102ed5f198484610bb6565b8281835e505f910152565b5f610c9b825190565b808452602084019350610cb2818560208601610c87565b601f01601f19169290920192915050565b60408101610cd1828561098b565b81810360208301526109e18184610c92565b8015156109ab565b805161097581610ce3565b5f60208284031215610d0957610d095f80fd5b5f6109e18484610ceb565b60608101610d22828661098b565b610d2f602083018561098b565b81810360408301526103258184610c9256fea2646970667358221220999f601374c9e5dc9e36a1238e1e216a4a15edd908ff3ba0c3edf4fea9a789d364736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1054 CODESIZE SUB DUP1 PUSH2 0x1054 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x18B JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x25F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE POP PUSH2 0x272 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x147 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165 DUP2 PUSH2 0x14A JUMP JUMPDEST DUP2 EQ PUSH2 0x147 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x15C JUMP JUMPDEST DUP1 PUSH2 0x165 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x17A JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1A7 JUMPI PUSH2 0x1A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1B2 DUP13 DUP13 PUSH2 0x16F JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1C3 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1D4 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x1E5 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x1F6 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x207 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x218 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x229 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x23B DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x26D JUMPI PUSH2 0x26D PUSH2 0x24B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0xD77 PUSH2 0x2DD PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x17E ADD MSTORE PUSH2 0x8B6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x243 ADD MSTORE DUP2 DUP2 PUSH2 0x542 ADD MSTORE PUSH2 0x749 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x12E ADD MSTORE DUP2 DUP2 PUSH2 0x56F ADD MSTORE PUSH2 0x778 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x200 ADD MSTORE DUP2 DUP2 PUSH2 0x280 ADD MSTORE DUP2 DUP2 PUSH2 0x675 ADD MSTORE PUSH2 0x7F7 ADD MSTORE PUSH2 0xD77 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA06 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA25 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x6F8 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xABB JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xACE JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x994 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3BA0B9A9 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 0x6CF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F3 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x708 SWAP2 SWAP1 PUSH2 0xACE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x724 SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x738 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7F2 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x855 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x879 SWAP2 SWAP1 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x889 DUP2 PUSH1 0xA PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x893 DUP5 DUP8 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x8ED SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x908 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x92C SWAP2 SWAP1 PUSH2 0xCF6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x95B JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x95F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x975 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x98B JUMP JUMPDEST PUSH2 0x9AB DUP2 PUSH2 0x97B JUMP JUMPDEST DUP2 EQ PUSH2 0x9B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0x9B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x97B JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x9FD JUMP JUMPDEST DUP1 PUSH2 0x9AB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA38 JUMPI PUSH2 0xA38 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xA1A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA57 JUMPI PUSH2 0xA57 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA62 DUP6 DUP6 PUSH2 0xA1A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA73 DUP6 DUP3 DUP7 ADD PUSH2 0xA1A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x961 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0xA7D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAC9 JUMPI PUSH2 0xAC9 PUSH2 0xA93 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB12 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xAF4 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAA7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xB3C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB63 JUMPI PUSH2 0xB63 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xB45 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBAD JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xB8C JUMPI PUSH2 0xB8C PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xB9A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBA6 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB71 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBC4 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xBD0 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xBE6 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xBF0 JUMPI PUSH2 0xC1D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xC01 PUSH2 0xAA7 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC17 JUMPI PUSH2 0xC17 PUSH2 0xAA7 JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC50 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC4B JUMPI PUSH2 0xC4B PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xC5D DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB6E JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC73 PUSH2 0xAA7 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xBB6 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xC9B DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCB2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC87 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xCD1 DUP3 DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9E1 DUP2 DUP5 PUSH2 0xC92 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD09 JUMPI PUSH2 0xD09 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xCEB JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD22 DUP3 DUP7 PUSH2 0x98B JUMP JUMPDEST PUSH2 0xD2F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xC92 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP10 SWAP16 PUSH1 0x13 PUSH21 0xC9E5DC9E36A1238E1E216A4A15EDD908FF3BA0C3ED DELEGATECALL INVALID 0xA9 0xA7 DUP10 0xD3 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"297:1009:61:-:0;;;410:636;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;775:5;794:3;811:15;840:16;870:17;901:30;945:24;983:20;1017:12;3527:36:67;408:10:17;840:16:61;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;-1:-1:-1;297:1009:61;;-1:-1:-1;;;;;;;;297:1009:61;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;297:1009:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1861,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2205,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1784,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":637,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_6149":{"entryPoint":1650,"id":6149,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1139,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":927,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":814,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1530,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1198,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2488,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2586,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2499,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3318,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2597,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2815,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2627,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2443,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2685,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2557,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2399,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3348,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3267,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2693,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2566,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2407,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2785,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2747,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2926,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3194,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2998,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2845,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2766,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2427,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2547,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2537,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3207,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2727,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2707,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2466,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3299,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2580,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2876,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12568:101","nodeType":"YulBlock","src":"0:12568:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5171:152:101","nodeType":"YulBlock","src":"5171:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5188:1:101","nodeType":"YulLiteral","src":"5188:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5191:77:101","nodeType":"YulLiteral","src":"5191:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5181:6:101","nodeType":"YulIdentifier","src":"5181:6:101"},"nativeSrc":"5181:88:101","nodeType":"YulFunctionCall","src":"5181:88:101"},"nativeSrc":"5181:88:101","nodeType":"YulExpressionStatement","src":"5181:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5285:1:101","nodeType":"YulLiteral","src":"5285:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5288:4:101","nodeType":"YulLiteral","src":"5288:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:101","nodeType":"YulIdentifier","src":"5278:6:101"},"nativeSrc":"5278:15:101","nodeType":"YulFunctionCall","src":"5278:15:101"},"nativeSrc":"5278:15:101","nodeType":"YulExpressionStatement","src":"5278:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5309:1:101","nodeType":"YulLiteral","src":"5309:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5312:4:101","nodeType":"YulLiteral","src":"5312:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5302:6:101","nodeType":"YulIdentifier","src":"5302:6:101"},"nativeSrc":"5302:15:101","nodeType":"YulFunctionCall","src":"5302:15:101"},"nativeSrc":"5302:15:101","nodeType":"YulExpressionStatement","src":"5302:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5143:180:101","nodeType":"YulFunctionDefinition","src":"5143:180:101"},{"body":{"nativeSrc":"5357:152:101","nodeType":"YulBlock","src":"5357:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5374:1:101","nodeType":"YulLiteral","src":"5374:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5377:77:101","nodeType":"YulLiteral","src":"5377:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:101","nodeType":"YulIdentifier","src":"5367:6:101"},"nativeSrc":"5367:88:101","nodeType":"YulFunctionCall","src":"5367:88:101"},"nativeSrc":"5367:88:101","nodeType":"YulExpressionStatement","src":"5367:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5471:1:101","nodeType":"YulLiteral","src":"5471:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5474:4:101","nodeType":"YulLiteral","src":"5474:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5464:6:101","nodeType":"YulIdentifier","src":"5464:6:101"},"nativeSrc":"5464:15:101","nodeType":"YulFunctionCall","src":"5464:15:101"},"nativeSrc":"5464:15:101","nodeType":"YulExpressionStatement","src":"5464:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5495:1:101","nodeType":"YulLiteral","src":"5495:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5498:4:101","nodeType":"YulLiteral","src":"5498:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5488:6:101","nodeType":"YulIdentifier","src":"5488:6:101"},"nativeSrc":"5488:15:101","nodeType":"YulFunctionCall","src":"5488:15:101"},"nativeSrc":"5488:15:101","nodeType":"YulExpressionStatement","src":"5488:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5329:180:101","nodeType":"YulFunctionDefinition","src":"5329:180:101"},{"body":{"nativeSrc":"5557:143:101","nodeType":"YulBlock","src":"5557:143:101","statements":[{"nativeSrc":"5567:25:101","nodeType":"YulAssignment","src":"5567:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5590:1:101","nodeType":"YulIdentifier","src":"5590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5572:17:101","nodeType":"YulIdentifier","src":"5572:17:101"},"nativeSrc":"5572:20:101","nodeType":"YulFunctionCall","src":"5572:20:101"},"variableNames":[{"name":"x","nativeSrc":"5567:1:101","nodeType":"YulIdentifier","src":"5567:1:101"}]},{"nativeSrc":"5601:25:101","nodeType":"YulAssignment","src":"5601:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5624:1:101","nodeType":"YulIdentifier","src":"5624:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5606:17:101","nodeType":"YulIdentifier","src":"5606:17:101"},"nativeSrc":"5606:20:101","nodeType":"YulFunctionCall","src":"5606:20:101"},"variableNames":[{"name":"y","nativeSrc":"5601:1:101","nodeType":"YulIdentifier","src":"5601:1:101"}]},{"body":{"nativeSrc":"5648:22:101","nodeType":"YulBlock","src":"5648:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"5650:16:101","nodeType":"YulIdentifier","src":"5650:16:101"},"nativeSrc":"5650:18:101","nodeType":"YulFunctionCall","src":"5650:18:101"},"nativeSrc":"5650:18:101","nodeType":"YulExpressionStatement","src":"5650:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"5645:1:101","nodeType":"YulIdentifier","src":"5645:1:101"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:101","nodeType":"YulIdentifier","src":"5638:6:101"},"nativeSrc":"5638:9:101","nodeType":"YulFunctionCall","src":"5638:9:101"},"nativeSrc":"5635:35:101","nodeType":"YulIf","src":"5635:35:101"},{"nativeSrc":"5680:14:101","nodeType":"YulAssignment","src":"5680:14:101","value":{"arguments":[{"name":"x","nativeSrc":"5689:1:101","nodeType":"YulIdentifier","src":"5689:1:101"},{"name":"y","nativeSrc":"5692:1:101","nodeType":"YulIdentifier","src":"5692:1:101"}],"functionName":{"name":"div","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"},"nativeSrc":"5685:9:101","nodeType":"YulFunctionCall","src":"5685:9:101"},"variableNames":[{"name":"r","nativeSrc":"5680:1:101","nodeType":"YulIdentifier","src":"5680:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"5515:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5546:1:101","nodeType":"YulTypedName","src":"5546:1:101","type":""},{"name":"y","nativeSrc":"5549:1:101","nodeType":"YulTypedName","src":"5549:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"5555:1:101","nodeType":"YulTypedName","src":"5555:1:101","type":""}],"src":"5515:185:101"},{"body":{"nativeSrc":"5751:149:101","nodeType":"YulBlock","src":"5751:149:101","statements":[{"nativeSrc":"5761:25:101","nodeType":"YulAssignment","src":"5761:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5784:1:101","nodeType":"YulIdentifier","src":"5784:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5766:17:101","nodeType":"YulIdentifier","src":"5766:17:101"},"nativeSrc":"5766:20:101","nodeType":"YulFunctionCall","src":"5766:20:101"},"variableNames":[{"name":"x","nativeSrc":"5761:1:101","nodeType":"YulIdentifier","src":"5761:1:101"}]},{"nativeSrc":"5795:25:101","nodeType":"YulAssignment","src":"5795:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5818:1:101","nodeType":"YulIdentifier","src":"5818:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5800:17:101","nodeType":"YulIdentifier","src":"5800:17:101"},"nativeSrc":"5800:20:101","nodeType":"YulFunctionCall","src":"5800:20:101"},"variableNames":[{"name":"y","nativeSrc":"5795:1:101","nodeType":"YulIdentifier","src":"5795:1:101"}]},{"nativeSrc":"5829:17:101","nodeType":"YulAssignment","src":"5829:17:101","value":{"arguments":[{"name":"x","nativeSrc":"5841:1:101","nodeType":"YulIdentifier","src":"5841:1:101"},{"name":"y","nativeSrc":"5844:1:101","nodeType":"YulIdentifier","src":"5844:1:101"}],"functionName":{"name":"sub","nativeSrc":"5837:3:101","nodeType":"YulIdentifier","src":"5837:3:101"},"nativeSrc":"5837:9:101","nodeType":"YulFunctionCall","src":"5837:9:101"},"variableNames":[{"name":"diff","nativeSrc":"5829:4:101","nodeType":"YulIdentifier","src":"5829:4:101"}]},{"body":{"nativeSrc":"5871:22:101","nodeType":"YulBlock","src":"5871:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5873:16:101","nodeType":"YulIdentifier","src":"5873:16:101"},"nativeSrc":"5873:18:101","nodeType":"YulFunctionCall","src":"5873:18:101"},"nativeSrc":"5873:18:101","nodeType":"YulExpressionStatement","src":"5873:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"5862:4:101","nodeType":"YulIdentifier","src":"5862:4:101"},{"name":"x","nativeSrc":"5868:1:101","nodeType":"YulIdentifier","src":"5868:1:101"}],"functionName":{"name":"gt","nativeSrc":"5859:2:101","nodeType":"YulIdentifier","src":"5859:2:101"},"nativeSrc":"5859:11:101","nodeType":"YulFunctionCall","src":"5859:11:101"},"nativeSrc":"5856:37:101","nodeType":"YulIf","src":"5856:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"5706:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5737:1:101","nodeType":"YulTypedName","src":"5737:1:101","type":""},{"name":"y","nativeSrc":"5740:1:101","nodeType":"YulTypedName","src":"5740:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5746:4:101","nodeType":"YulTypedName","src":"5746:4:101","type":""}],"src":"5706:194:101"},{"body":{"nativeSrc":"5950:147:101","nodeType":"YulBlock","src":"5950:147:101","statements":[{"nativeSrc":"5960:25:101","nodeType":"YulAssignment","src":"5960:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5983:1:101","nodeType":"YulIdentifier","src":"5983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5965:17:101","nodeType":"YulIdentifier","src":"5965:17:101"},"nativeSrc":"5965:20:101","nodeType":"YulFunctionCall","src":"5965:20:101"},"variableNames":[{"name":"x","nativeSrc":"5960:1:101","nodeType":"YulIdentifier","src":"5960:1:101"}]},{"nativeSrc":"5994:25:101","nodeType":"YulAssignment","src":"5994:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6017:1:101","nodeType":"YulIdentifier","src":"6017:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5999:17:101","nodeType":"YulIdentifier","src":"5999:17:101"},"nativeSrc":"5999:20:101","nodeType":"YulFunctionCall","src":"5999:20:101"},"variableNames":[{"name":"y","nativeSrc":"5994:1:101","nodeType":"YulIdentifier","src":"5994:1:101"}]},{"nativeSrc":"6028:16:101","nodeType":"YulAssignment","src":"6028:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6039:1:101","nodeType":"YulIdentifier","src":"6039:1:101"},{"name":"y","nativeSrc":"6042:1:101","nodeType":"YulIdentifier","src":"6042:1:101"}],"functionName":{"name":"add","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},"nativeSrc":"6035:9:101","nodeType":"YulFunctionCall","src":"6035:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"}]},{"body":{"nativeSrc":"6068:22:101","nodeType":"YulBlock","src":"6068:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6070:16:101","nodeType":"YulIdentifier","src":"6070:16:101"},"nativeSrc":"6070:18:101","nodeType":"YulFunctionCall","src":"6070:18:101"},"nativeSrc":"6070:18:101","nodeType":"YulExpressionStatement","src":"6070:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6060:1:101","nodeType":"YulIdentifier","src":"6060:1:101"},{"name":"sum","nativeSrc":"6063:3:101","nodeType":"YulIdentifier","src":"6063:3:101"}],"functionName":{"name":"gt","nativeSrc":"6057:2:101","nodeType":"YulIdentifier","src":"6057:2:101"},"nativeSrc":"6057:10:101","nodeType":"YulFunctionCall","src":"6057:10:101"},"nativeSrc":"6054:36:101","nodeType":"YulIf","src":"6054:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"5906:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5937:1:101","nodeType":"YulTypedName","src":"5937:1:101","type":""},{"name":"y","nativeSrc":"5940:1:101","nodeType":"YulTypedName","src":"5940:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5946:3:101","nodeType":"YulTypedName","src":"5946:3:101","type":""}],"src":"5906:191:101"},{"body":{"nativeSrc":"6166:80:101","nodeType":"YulBlock","src":"6166:80:101","statements":[{"nativeSrc":"6176:22:101","nodeType":"YulAssignment","src":"6176:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6191:6:101","nodeType":"YulIdentifier","src":"6191:6:101"}],"functionName":{"name":"mload","nativeSrc":"6185:5:101","nodeType":"YulIdentifier","src":"6185:5:101"},"nativeSrc":"6185:13:101","nodeType":"YulFunctionCall","src":"6185:13:101"},"variableNames":[{"name":"value","nativeSrc":"6176:5:101","nodeType":"YulIdentifier","src":"6176:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6234:5:101","nodeType":"YulIdentifier","src":"6234:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6207:26:101","nodeType":"YulIdentifier","src":"6207:26:101"},"nativeSrc":"6207:33:101","nodeType":"YulFunctionCall","src":"6207:33:101"},"nativeSrc":"6207:33:101","nodeType":"YulExpressionStatement","src":"6207:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6103:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6144:6:101","nodeType":"YulTypedName","src":"6144:6:101","type":""},{"name":"end","nativeSrc":"6152:3:101","nodeType":"YulTypedName","src":"6152:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6160:5:101","nodeType":"YulTypedName","src":"6160:5:101","type":""}],"src":"6103:143:101"},{"body":{"nativeSrc":"6329:274:101","nodeType":"YulBlock","src":"6329:274:101","statements":[{"body":{"nativeSrc":"6375:83:101","nodeType":"YulBlock","src":"6375:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6377:77:101","nodeType":"YulIdentifier","src":"6377:77:101"},"nativeSrc":"6377:79:101","nodeType":"YulFunctionCall","src":"6377:79:101"},"nativeSrc":"6377:79:101","nodeType":"YulExpressionStatement","src":"6377:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6350:7:101","nodeType":"YulIdentifier","src":"6350:7:101"},{"name":"headStart","nativeSrc":"6359:9:101","nodeType":"YulIdentifier","src":"6359:9:101"}],"functionName":{"name":"sub","nativeSrc":"6346:3:101","nodeType":"YulIdentifier","src":"6346:3:101"},"nativeSrc":"6346:23:101","nodeType":"YulFunctionCall","src":"6346:23:101"},{"kind":"number","nativeSrc":"6371:2:101","nodeType":"YulLiteral","src":"6371:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6342:3:101","nodeType":"YulIdentifier","src":"6342:3:101"},"nativeSrc":"6342:32:101","nodeType":"YulFunctionCall","src":"6342:32:101"},"nativeSrc":"6339:119:101","nodeType":"YulIf","src":"6339:119:101"},{"nativeSrc":"6468:128:101","nodeType":"YulBlock","src":"6468:128:101","statements":[{"nativeSrc":"6483:15:101","nodeType":"YulVariableDeclaration","src":"6483:15:101","value":{"kind":"number","nativeSrc":"6497:1:101","nodeType":"YulLiteral","src":"6497:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6487:6:101","nodeType":"YulTypedName","src":"6487:6:101","type":""}]},{"nativeSrc":"6512:74:101","nodeType":"YulAssignment","src":"6512:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6558:9:101","nodeType":"YulIdentifier","src":"6558:9:101"},{"name":"offset","nativeSrc":"6569:6:101","nodeType":"YulIdentifier","src":"6569:6:101"}],"functionName":{"name":"add","nativeSrc":"6554:3:101","nodeType":"YulIdentifier","src":"6554:3:101"},"nativeSrc":"6554:22:101","nodeType":"YulFunctionCall","src":"6554:22:101"},{"name":"dataEnd","nativeSrc":"6578:7:101","nodeType":"YulIdentifier","src":"6578:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6522:31:101","nodeType":"YulIdentifier","src":"6522:31:101"},"nativeSrc":"6522:64:101","nodeType":"YulFunctionCall","src":"6522:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6512:6:101","nodeType":"YulIdentifier","src":"6512:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6252:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6299:9:101","nodeType":"YulTypedName","src":"6299:9:101","type":""},{"name":"dataEnd","nativeSrc":"6310:7:101","nodeType":"YulTypedName","src":"6310:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6322:6:101","nodeType":"YulTypedName","src":"6322:6:101","type":""}],"src":"6252:351:101"},{"body":{"nativeSrc":"6657:362:101","nodeType":"YulBlock","src":"6657:362:101","statements":[{"nativeSrc":"6667:25:101","nodeType":"YulAssignment","src":"6667:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6690:1:101","nodeType":"YulIdentifier","src":"6690:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6672:17:101","nodeType":"YulIdentifier","src":"6672:17:101"},"nativeSrc":"6672:20:101","nodeType":"YulFunctionCall","src":"6672:20:101"},"variableNames":[{"name":"x","nativeSrc":"6667:1:101","nodeType":"YulIdentifier","src":"6667:1:101"}]},{"nativeSrc":"6701:25:101","nodeType":"YulAssignment","src":"6701:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6724:1:101","nodeType":"YulIdentifier","src":"6724:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6706:17:101","nodeType":"YulIdentifier","src":"6706:17:101"},"nativeSrc":"6706:20:101","nodeType":"YulFunctionCall","src":"6706:20:101"},"variableNames":[{"name":"y","nativeSrc":"6701:1:101","nodeType":"YulIdentifier","src":"6701:1:101"}]},{"nativeSrc":"6735:28:101","nodeType":"YulVariableDeclaration","src":"6735:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6758:1:101","nodeType":"YulIdentifier","src":"6758:1:101"},{"name":"y","nativeSrc":"6761:1:101","nodeType":"YulIdentifier","src":"6761:1:101"}],"functionName":{"name":"mul","nativeSrc":"6754:3:101","nodeType":"YulIdentifier","src":"6754:3:101"},"nativeSrc":"6754:9:101","nodeType":"YulFunctionCall","src":"6754:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6739:11:101","nodeType":"YulTypedName","src":"6739:11:101","type":""}]},{"nativeSrc":"6772:41:101","nodeType":"YulAssignment","src":"6772:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6801:11:101","nodeType":"YulIdentifier","src":"6801:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6783:17:101","nodeType":"YulIdentifier","src":"6783:17:101"},"nativeSrc":"6783:30:101","nodeType":"YulFunctionCall","src":"6783:30:101"},"variableNames":[{"name":"product","nativeSrc":"6772:7:101","nodeType":"YulIdentifier","src":"6772:7:101"}]},{"body":{"nativeSrc":"6990:22:101","nodeType":"YulBlock","src":"6990:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6992:16:101","nodeType":"YulIdentifier","src":"6992:16:101"},"nativeSrc":"6992:18:101","nodeType":"YulFunctionCall","src":"6992:18:101"},"nativeSrc":"6992:18:101","nodeType":"YulExpressionStatement","src":"6992:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6923:1:101","nodeType":"YulIdentifier","src":"6923:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6916:6:101","nodeType":"YulIdentifier","src":"6916:6:101"},"nativeSrc":"6916:9:101","nodeType":"YulFunctionCall","src":"6916:9:101"},{"arguments":[{"name":"y","nativeSrc":"6946:1:101","nodeType":"YulIdentifier","src":"6946:1:101"},{"arguments":[{"name":"product","nativeSrc":"6953:7:101","nodeType":"YulIdentifier","src":"6953:7:101"},{"name":"x","nativeSrc":"6962:1:101","nodeType":"YulIdentifier","src":"6962:1:101"}],"functionName":{"name":"div","nativeSrc":"6949:3:101","nodeType":"YulIdentifier","src":"6949:3:101"},"nativeSrc":"6949:15:101","nodeType":"YulFunctionCall","src":"6949:15:101"}],"functionName":{"name":"eq","nativeSrc":"6943:2:101","nodeType":"YulIdentifier","src":"6943:2:101"},"nativeSrc":"6943:22:101","nodeType":"YulFunctionCall","src":"6943:22:101"}],"functionName":{"name":"or","nativeSrc":"6896:2:101","nodeType":"YulIdentifier","src":"6896:2:101"},"nativeSrc":"6896:83:101","nodeType":"YulFunctionCall","src":"6896:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6876:6:101","nodeType":"YulIdentifier","src":"6876:6:101"},"nativeSrc":"6876:113:101","nodeType":"YulFunctionCall","src":"6876:113:101"},"nativeSrc":"6873:139:101","nodeType":"YulIf","src":"6873:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"6609:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6640:1:101","nodeType":"YulTypedName","src":"6640:1:101","type":""},{"name":"y","nativeSrc":"6643:1:101","nodeType":"YulTypedName","src":"6643:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6649:7:101","nodeType":"YulTypedName","src":"6649:7:101","type":""}],"src":"6609:410:101"},{"body":{"nativeSrc":"7068:43:101","nodeType":"YulBlock","src":"7068:43:101","statements":[{"nativeSrc":"7078:27:101","nodeType":"YulAssignment","src":"7078:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7093:5:101","nodeType":"YulIdentifier","src":"7093:5:101"},{"kind":"number","nativeSrc":"7100:4:101","nodeType":"YulLiteral","src":"7100:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7089:3:101","nodeType":"YulIdentifier","src":"7089:3:101"},"nativeSrc":"7089:16:101","nodeType":"YulFunctionCall","src":"7089:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7078:7:101","nodeType":"YulIdentifier","src":"7078:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7025:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7050:5:101","nodeType":"YulTypedName","src":"7050:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7060:7:101","nodeType":"YulTypedName","src":"7060:7:101","type":""}],"src":"7025:86:101"},{"body":{"nativeSrc":"7158:77:101","nodeType":"YulBlock","src":"7158:77:101","statements":[{"body":{"nativeSrc":"7213:16:101","nodeType":"YulBlock","src":"7213:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7222:1:101","nodeType":"YulLiteral","src":"7222:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7225:1:101","nodeType":"YulLiteral","src":"7225:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7215:6:101","nodeType":"YulIdentifier","src":"7215:6:101"},"nativeSrc":"7215:12:101","nodeType":"YulFunctionCall","src":"7215:12:101"},"nativeSrc":"7215:12:101","nodeType":"YulExpressionStatement","src":"7215:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7181:5:101","nodeType":"YulIdentifier","src":"7181:5:101"},{"arguments":[{"name":"value","nativeSrc":"7204:5:101","nodeType":"YulIdentifier","src":"7204:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7188:15:101","nodeType":"YulIdentifier","src":"7188:15:101"},"nativeSrc":"7188:22:101","nodeType":"YulFunctionCall","src":"7188:22:101"}],"functionName":{"name":"eq","nativeSrc":"7178:2:101","nodeType":"YulIdentifier","src":"7178:2:101"},"nativeSrc":"7178:33:101","nodeType":"YulFunctionCall","src":"7178:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7171:6:101","nodeType":"YulIdentifier","src":"7171:6:101"},"nativeSrc":"7171:41:101","nodeType":"YulFunctionCall","src":"7171:41:101"},"nativeSrc":"7168:61:101","nodeType":"YulIf","src":"7168:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7117:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7151:5:101","nodeType":"YulTypedName","src":"7151:5:101","type":""}],"src":"7117:118:101"},{"body":{"nativeSrc":"7302:78:101","nodeType":"YulBlock","src":"7302:78:101","statements":[{"nativeSrc":"7312:22:101","nodeType":"YulAssignment","src":"7312:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7327:6:101","nodeType":"YulIdentifier","src":"7327:6:101"}],"functionName":{"name":"mload","nativeSrc":"7321:5:101","nodeType":"YulIdentifier","src":"7321:5:101"},"nativeSrc":"7321:13:101","nodeType":"YulFunctionCall","src":"7321:13:101"},"variableNames":[{"name":"value","nativeSrc":"7312:5:101","nodeType":"YulIdentifier","src":"7312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7368:5:101","nodeType":"YulIdentifier","src":"7368:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7343:24:101","nodeType":"YulIdentifier","src":"7343:24:101"},"nativeSrc":"7343:31:101","nodeType":"YulFunctionCall","src":"7343:31:101"},"nativeSrc":"7343:31:101","nodeType":"YulExpressionStatement","src":"7343:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7241:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7280:6:101","nodeType":"YulTypedName","src":"7280:6:101","type":""},{"name":"end","nativeSrc":"7288:3:101","nodeType":"YulTypedName","src":"7288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7296:5:101","nodeType":"YulTypedName","src":"7296:5:101","type":""}],"src":"7241:139:101"},{"body":{"nativeSrc":"7461:272:101","nodeType":"YulBlock","src":"7461:272:101","statements":[{"body":{"nativeSrc":"7507:83:101","nodeType":"YulBlock","src":"7507:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7509:77:101","nodeType":"YulIdentifier","src":"7509:77:101"},"nativeSrc":"7509:79:101","nodeType":"YulFunctionCall","src":"7509:79:101"},"nativeSrc":"7509:79:101","nodeType":"YulExpressionStatement","src":"7509:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7482:7:101","nodeType":"YulIdentifier","src":"7482:7:101"},{"name":"headStart","nativeSrc":"7491:9:101","nodeType":"YulIdentifier","src":"7491:9:101"}],"functionName":{"name":"sub","nativeSrc":"7478:3:101","nodeType":"YulIdentifier","src":"7478:3:101"},"nativeSrc":"7478:23:101","nodeType":"YulFunctionCall","src":"7478:23:101"},{"kind":"number","nativeSrc":"7503:2:101","nodeType":"YulLiteral","src":"7503:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7474:3:101","nodeType":"YulIdentifier","src":"7474:3:101"},"nativeSrc":"7474:32:101","nodeType":"YulFunctionCall","src":"7474:32:101"},"nativeSrc":"7471:119:101","nodeType":"YulIf","src":"7471:119:101"},{"nativeSrc":"7600:126:101","nodeType":"YulBlock","src":"7600:126:101","statements":[{"nativeSrc":"7615:15:101","nodeType":"YulVariableDeclaration","src":"7615:15:101","value":{"kind":"number","nativeSrc":"7629:1:101","nodeType":"YulLiteral","src":"7629:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7619:6:101","nodeType":"YulTypedName","src":"7619:6:101","type":""}]},{"nativeSrc":"7644:72:101","nodeType":"YulAssignment","src":"7644:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:101","nodeType":"YulIdentifier","src":"7688:9:101"},{"name":"offset","nativeSrc":"7699:6:101","nodeType":"YulIdentifier","src":"7699:6:101"}],"functionName":{"name":"add","nativeSrc":"7684:3:101","nodeType":"YulIdentifier","src":"7684:3:101"},"nativeSrc":"7684:22:101","nodeType":"YulFunctionCall","src":"7684:22:101"},{"name":"dataEnd","nativeSrc":"7708:7:101","nodeType":"YulIdentifier","src":"7708:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7654:29:101","nodeType":"YulIdentifier","src":"7654:29:101"},"nativeSrc":"7654:62:101","nodeType":"YulFunctionCall","src":"7654:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7644:6:101","nodeType":"YulIdentifier","src":"7644:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7386:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7431:9:101","nodeType":"YulTypedName","src":"7431:9:101","type":""},{"name":"dataEnd","nativeSrc":"7442:7:101","nodeType":"YulTypedName","src":"7442:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7454:6:101","nodeType":"YulTypedName","src":"7454:6:101","type":""}],"src":"7386:347:101"},{"body":{"nativeSrc":"7790:51:101","nodeType":"YulBlock","src":"7790:51:101","statements":[{"nativeSrc":"7800:34:101","nodeType":"YulAssignment","src":"7800:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7825:1:101","nodeType":"YulLiteral","src":"7825:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7828:5:101","nodeType":"YulIdentifier","src":"7828:5:101"}],"functionName":{"name":"shr","nativeSrc":"7821:3:101","nodeType":"YulIdentifier","src":"7821:3:101"},"nativeSrc":"7821:13:101","nodeType":"YulFunctionCall","src":"7821:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7800:8:101","nodeType":"YulIdentifier","src":"7800:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7739:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7771:5:101","nodeType":"YulTypedName","src":"7771:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7781:8:101","nodeType":"YulTypedName","src":"7781:8:101","type":""}],"src":"7739:102:101"},{"body":{"nativeSrc":"7920:775:101","nodeType":"YulBlock","src":"7920:775:101","statements":[{"nativeSrc":"7930:15:101","nodeType":"YulAssignment","src":"7930:15:101","value":{"name":"_power","nativeSrc":"7939:6:101","nodeType":"YulIdentifier","src":"7939:6:101"},"variableNames":[{"name":"power","nativeSrc":"7930:5:101","nodeType":"YulIdentifier","src":"7930:5:101"}]},{"nativeSrc":"7954:14:101","nodeType":"YulAssignment","src":"7954:14:101","value":{"name":"_base","nativeSrc":"7963:5:101","nodeType":"YulIdentifier","src":"7963:5:101"},"variableNames":[{"name":"base","nativeSrc":"7954:4:101","nodeType":"YulIdentifier","src":"7954:4:101"}]},{"body":{"nativeSrc":"8012:677:101","nodeType":"YulBlock","src":"8012:677:101","statements":[{"body":{"nativeSrc":"8100:22:101","nodeType":"YulBlock","src":"8100:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8102:16:101","nodeType":"YulIdentifier","src":"8102:16:101"},"nativeSrc":"8102:18:101","nodeType":"YulFunctionCall","src":"8102:18:101"},"nativeSrc":"8102:18:101","nodeType":"YulExpressionStatement","src":"8102:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8078:4:101","nodeType":"YulIdentifier","src":"8078:4:101"},{"arguments":[{"name":"max","nativeSrc":"8088:3:101","nodeType":"YulIdentifier","src":"8088:3:101"},{"name":"base","nativeSrc":"8093:4:101","nodeType":"YulIdentifier","src":"8093:4:101"}],"functionName":{"name":"div","nativeSrc":"8084:3:101","nodeType":"YulIdentifier","src":"8084:3:101"},"nativeSrc":"8084:14:101","nodeType":"YulFunctionCall","src":"8084:14:101"}],"functionName":{"name":"gt","nativeSrc":"8075:2:101","nodeType":"YulIdentifier","src":"8075:2:101"},"nativeSrc":"8075:24:101","nodeType":"YulFunctionCall","src":"8075:24:101"},"nativeSrc":"8072:50:101","nodeType":"YulIf","src":"8072:50:101"},{"body":{"nativeSrc":"8167:419:101","nodeType":"YulBlock","src":"8167:419:101","statements":[{"nativeSrc":"8547:25:101","nodeType":"YulAssignment","src":"8547:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},{"name":"base","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"mul","nativeSrc":"8556:3:101","nodeType":"YulIdentifier","src":"8556:3:101"},"nativeSrc":"8556:16:101","nodeType":"YulFunctionCall","src":"8556:16:101"},"variableNames":[{"name":"power","nativeSrc":"8547:5:101","nodeType":"YulIdentifier","src":"8547:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8142:8:101","nodeType":"YulIdentifier","src":"8142:8:101"},{"kind":"number","nativeSrc":"8152:1:101","nodeType":"YulLiteral","src":"8152:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8138:3:101","nodeType":"YulIdentifier","src":"8138:3:101"},"nativeSrc":"8138:16:101","nodeType":"YulFunctionCall","src":"8138:16:101"},"nativeSrc":"8135:451:101","nodeType":"YulIf","src":"8135:451:101"},{"nativeSrc":"8599:23:101","nodeType":"YulAssignment","src":"8599:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8611:4:101","nodeType":"YulIdentifier","src":"8611:4:101"},{"name":"base","nativeSrc":"8617:4:101","nodeType":"YulIdentifier","src":"8617:4:101"}],"functionName":{"name":"mul","nativeSrc":"8607:3:101","nodeType":"YulIdentifier","src":"8607:3:101"},"nativeSrc":"8607:15:101","nodeType":"YulFunctionCall","src":"8607:15:101"},"variableNames":[{"name":"base","nativeSrc":"8599:4:101","nodeType":"YulIdentifier","src":"8599:4:101"}]},{"nativeSrc":"8635:44:101","nodeType":"YulAssignment","src":"8635:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8670:8:101","nodeType":"YulIdentifier","src":"8670:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8647:22:101","nodeType":"YulIdentifier","src":"8647:22:101"},"nativeSrc":"8647:32:101","nodeType":"YulFunctionCall","src":"8647:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8635:8:101","nodeType":"YulIdentifier","src":"8635:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7988:8:101","nodeType":"YulIdentifier","src":"7988:8:101"},{"kind":"number","nativeSrc":"7998:1:101","nodeType":"YulLiteral","src":"7998:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7985:2:101","nodeType":"YulIdentifier","src":"7985:2:101"},"nativeSrc":"7985:15:101","nodeType":"YulFunctionCall","src":"7985:15:101"},"nativeSrc":"7977:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8001:2:101","nodeType":"YulBlock","src":"8001:2:101","statements":[]},"pre":{"nativeSrc":"7981:3:101","nodeType":"YulBlock","src":"7981:3:101","statements":[]},"src":"7977:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7847:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7875:6:101","nodeType":"YulTypedName","src":"7875:6:101","type":""},{"name":"_base","nativeSrc":"7883:5:101","nodeType":"YulTypedName","src":"7883:5:101","type":""},{"name":"exponent","nativeSrc":"7890:8:101","nodeType":"YulTypedName","src":"7890:8:101","type":""},{"name":"max","nativeSrc":"7900:3:101","nodeType":"YulTypedName","src":"7900:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7908:5:101","nodeType":"YulTypedName","src":"7908:5:101","type":""},{"name":"base","nativeSrc":"7915:4:101","nodeType":"YulTypedName","src":"7915:4:101","type":""}],"src":"7847:848:101"},{"body":{"nativeSrc":"8761:1013:101","nodeType":"YulBlock","src":"8761:1013:101","statements":[{"body":{"nativeSrc":"8956:20:101","nodeType":"YulBlock","src":"8956:20:101","statements":[{"nativeSrc":"8958:10:101","nodeType":"YulAssignment","src":"8958:10:101","value":{"kind":"number","nativeSrc":"8967:1:101","nodeType":"YulLiteral","src":"8967:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8958:5:101","nodeType":"YulIdentifier","src":"8958:5:101"}]},{"nativeSrc":"8969:5:101","nodeType":"YulLeave","src":"8969:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8946:8:101","nodeType":"YulIdentifier","src":"8946:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8939:6:101","nodeType":"YulIdentifier","src":"8939:6:101"},"nativeSrc":"8939:16:101","nodeType":"YulFunctionCall","src":"8939:16:101"},"nativeSrc":"8936:40:101","nodeType":"YulIf","src":"8936:40:101"},{"body":{"nativeSrc":"9001:20:101","nodeType":"YulBlock","src":"9001:20:101","statements":[{"nativeSrc":"9003:10:101","nodeType":"YulAssignment","src":"9003:10:101","value":{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9003:5:101","nodeType":"YulIdentifier","src":"9003:5:101"}]},{"nativeSrc":"9014:5:101","nodeType":"YulLeave","src":"9014:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8995:4:101","nodeType":"YulIdentifier","src":"8995:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8988:6:101","nodeType":"YulIdentifier","src":"8988:6:101"},"nativeSrc":"8988:12:101","nodeType":"YulFunctionCall","src":"8988:12:101"},"nativeSrc":"8985:36:101","nodeType":"YulIf","src":"8985:36:101"},{"cases":[{"body":{"nativeSrc":"9131:20:101","nodeType":"YulBlock","src":"9131:20:101","statements":[{"nativeSrc":"9133:10:101","nodeType":"YulAssignment","src":"9133:10:101","value":{"kind":"number","nativeSrc":"9142:1:101","nodeType":"YulLiteral","src":"9142:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9133:5:101","nodeType":"YulIdentifier","src":"9133:5:101"}]},{"nativeSrc":"9144:5:101","nodeType":"YulLeave","src":"9144:5:101"}]},"nativeSrc":"9124:27:101","nodeType":"YulCase","src":"9124:27:101","value":{"kind":"number","nativeSrc":"9129:1:101","nodeType":"YulLiteral","src":"9129:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9175:176:101","nodeType":"YulBlock","src":"9175:176:101","statements":[{"body":{"nativeSrc":"9210:22:101","nodeType":"YulBlock","src":"9210:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9212:16:101","nodeType":"YulIdentifier","src":"9212:16:101"},"nativeSrc":"9212:18:101","nodeType":"YulFunctionCall","src":"9212:18:101"},"nativeSrc":"9212:18:101","nodeType":"YulExpressionStatement","src":"9212:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9195:8:101","nodeType":"YulIdentifier","src":"9195:8:101"},{"kind":"number","nativeSrc":"9205:3:101","nodeType":"YulLiteral","src":"9205:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9192:2:101","nodeType":"YulIdentifier","src":"9192:2:101"},"nativeSrc":"9192:17:101","nodeType":"YulFunctionCall","src":"9192:17:101"},"nativeSrc":"9189:43:101","nodeType":"YulIf","src":"9189:43:101"},{"nativeSrc":"9245:25:101","nodeType":"YulAssignment","src":"9245:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9258:1:101","nodeType":"YulLiteral","src":"9258:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9261:8:101","nodeType":"YulIdentifier","src":"9261:8:101"}],"functionName":{"name":"exp","nativeSrc":"9254:3:101","nodeType":"YulIdentifier","src":"9254:3:101"},"nativeSrc":"9254:16:101","nodeType":"YulFunctionCall","src":"9254:16:101"},"variableNames":[{"name":"power","nativeSrc":"9245:5:101","nodeType":"YulIdentifier","src":"9245:5:101"}]},{"body":{"nativeSrc":"9301:22:101","nodeType":"YulBlock","src":"9301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9303:16:101","nodeType":"YulIdentifier","src":"9303:16:101"},"nativeSrc":"9303:18:101","nodeType":"YulFunctionCall","src":"9303:18:101"},"nativeSrc":"9303:18:101","nodeType":"YulExpressionStatement","src":"9303:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9289:5:101","nodeType":"YulIdentifier","src":"9289:5:101"},{"name":"max","nativeSrc":"9296:3:101","nodeType":"YulIdentifier","src":"9296:3:101"}],"functionName":{"name":"gt","nativeSrc":"9286:2:101","nodeType":"YulIdentifier","src":"9286:2:101"},"nativeSrc":"9286:14:101","nodeType":"YulFunctionCall","src":"9286:14:101"},"nativeSrc":"9283:40:101","nodeType":"YulIf","src":"9283:40:101"},{"nativeSrc":"9336:5:101","nodeType":"YulLeave","src":"9336:5:101"}]},"nativeSrc":"9160:191:101","nodeType":"YulCase","src":"9160:191:101","value":{"kind":"number","nativeSrc":"9165:1:101","nodeType":"YulLiteral","src":"9165:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9081:4:101","nodeType":"YulIdentifier","src":"9081:4:101"},"nativeSrc":"9074:277:101","nodeType":"YulSwitch","src":"9074:277:101"},{"body":{"nativeSrc":"9483:123:101","nodeType":"YulBlock","src":"9483:123:101","statements":[{"nativeSrc":"9497:28:101","nodeType":"YulAssignment","src":"9497:28:101","value":{"arguments":[{"name":"base","nativeSrc":"9510:4:101","nodeType":"YulIdentifier","src":"9510:4:101"},{"name":"exponent","nativeSrc":"9516:8:101","nodeType":"YulIdentifier","src":"9516:8:101"}],"functionName":{"name":"exp","nativeSrc":"9506:3:101","nodeType":"YulIdentifier","src":"9506:3:101"},"nativeSrc":"9506:19:101","nodeType":"YulFunctionCall","src":"9506:19:101"},"variableNames":[{"name":"power","nativeSrc":"9497:5:101","nodeType":"YulIdentifier","src":"9497:5:101"}]},{"body":{"nativeSrc":"9556:22:101","nodeType":"YulBlock","src":"9556:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9558:16:101","nodeType":"YulIdentifier","src":"9558:16:101"},"nativeSrc":"9558:18:101","nodeType":"YulFunctionCall","src":"9558:18:101"},"nativeSrc":"9558:18:101","nodeType":"YulExpressionStatement","src":"9558:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9544:5:101","nodeType":"YulIdentifier","src":"9544:5:101"},{"name":"max","nativeSrc":"9551:3:101","nodeType":"YulIdentifier","src":"9551:3:101"}],"functionName":{"name":"gt","nativeSrc":"9541:2:101","nodeType":"YulIdentifier","src":"9541:2:101"},"nativeSrc":"9541:14:101","nodeType":"YulFunctionCall","src":"9541:14:101"},"nativeSrc":"9538:40:101","nodeType":"YulIf","src":"9538:40:101"},{"nativeSrc":"9591:5:101","nodeType":"YulLeave","src":"9591:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9386:4:101","nodeType":"YulIdentifier","src":"9386:4:101"},{"kind":"number","nativeSrc":"9392:2:101","nodeType":"YulLiteral","src":"9392:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9383:2:101","nodeType":"YulIdentifier","src":"9383:2:101"},"nativeSrc":"9383:12:101","nodeType":"YulFunctionCall","src":"9383:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9400:8:101","nodeType":"YulIdentifier","src":"9400:8:101"},{"kind":"number","nativeSrc":"9410:2:101","nodeType":"YulLiteral","src":"9410:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9397:2:101","nodeType":"YulIdentifier","src":"9397:2:101"},"nativeSrc":"9397:16:101","nodeType":"YulFunctionCall","src":"9397:16:101"}],"functionName":{"name":"and","nativeSrc":"9379:3:101","nodeType":"YulIdentifier","src":"9379:3:101"},"nativeSrc":"9379:35:101","nodeType":"YulFunctionCall","src":"9379:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9435:4:101","nodeType":"YulIdentifier","src":"9435:4:101"},{"kind":"number","nativeSrc":"9441:3:101","nodeType":"YulLiteral","src":"9441:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9432:2:101","nodeType":"YulIdentifier","src":"9432:2:101"},"nativeSrc":"9432:13:101","nodeType":"YulFunctionCall","src":"9432:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9450:8:101","nodeType":"YulIdentifier","src":"9450:8:101"},{"kind":"number","nativeSrc":"9460:2:101","nodeType":"YulLiteral","src":"9460:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9447:2:101","nodeType":"YulIdentifier","src":"9447:2:101"},"nativeSrc":"9447:16:101","nodeType":"YulFunctionCall","src":"9447:16:101"}],"functionName":{"name":"and","nativeSrc":"9428:3:101","nodeType":"YulIdentifier","src":"9428:3:101"},"nativeSrc":"9428:36:101","nodeType":"YulFunctionCall","src":"9428:36:101"}],"functionName":{"name":"or","nativeSrc":"9363:2:101","nodeType":"YulIdentifier","src":"9363:2:101"},"nativeSrc":"9363:111:101","nodeType":"YulFunctionCall","src":"9363:111:101"},"nativeSrc":"9360:246:101","nodeType":"YulIf","src":"9360:246:101"},{"nativeSrc":"9616:57:101","nodeType":"YulAssignment","src":"9616:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9650:1:101","nodeType":"YulLiteral","src":"9650:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9653:4:101","nodeType":"YulIdentifier","src":"9653:4:101"},{"name":"exponent","nativeSrc":"9659:8:101","nodeType":"YulIdentifier","src":"9659:8:101"},{"name":"max","nativeSrc":"9669:3:101","nodeType":"YulIdentifier","src":"9669:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9631:18:101","nodeType":"YulIdentifier","src":"9631:18:101"},"nativeSrc":"9631:42:101","nodeType":"YulFunctionCall","src":"9631:42:101"},"variableNames":[{"name":"power","nativeSrc":"9616:5:101","nodeType":"YulIdentifier","src":"9616:5:101"},{"name":"base","nativeSrc":"9623:4:101","nodeType":"YulIdentifier","src":"9623:4:101"}]},{"body":{"nativeSrc":"9712:22:101","nodeType":"YulBlock","src":"9712:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9714:16:101","nodeType":"YulIdentifier","src":"9714:16:101"},"nativeSrc":"9714:18:101","nodeType":"YulFunctionCall","src":"9714:18:101"},"nativeSrc":"9714:18:101","nodeType":"YulExpressionStatement","src":"9714:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9689:5:101","nodeType":"YulIdentifier","src":"9689:5:101"},{"arguments":[{"name":"max","nativeSrc":"9700:3:101","nodeType":"YulIdentifier","src":"9700:3:101"},{"name":"base","nativeSrc":"9705:4:101","nodeType":"YulIdentifier","src":"9705:4:101"}],"functionName":{"name":"div","nativeSrc":"9696:3:101","nodeType":"YulIdentifier","src":"9696:3:101"},"nativeSrc":"9696:14:101","nodeType":"YulFunctionCall","src":"9696:14:101"}],"functionName":{"name":"gt","nativeSrc":"9686:2:101","nodeType":"YulIdentifier","src":"9686:2:101"},"nativeSrc":"9686:25:101","nodeType":"YulFunctionCall","src":"9686:25:101"},"nativeSrc":"9683:51:101","nodeType":"YulIf","src":"9683:51:101"},{"nativeSrc":"9743:25:101","nodeType":"YulAssignment","src":"9743:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9756:5:101","nodeType":"YulIdentifier","src":"9756:5:101"},{"name":"base","nativeSrc":"9763:4:101","nodeType":"YulIdentifier","src":"9763:4:101"}],"functionName":{"name":"mul","nativeSrc":"9752:3:101","nodeType":"YulIdentifier","src":"9752:3:101"},"nativeSrc":"9752:16:101","nodeType":"YulFunctionCall","src":"9752:16:101"},"variableNames":[{"name":"power","nativeSrc":"9743:5:101","nodeType":"YulIdentifier","src":"9743:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8701:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8731:4:101","nodeType":"YulTypedName","src":"8731:4:101","type":""},{"name":"exponent","nativeSrc":"8737:8:101","nodeType":"YulTypedName","src":"8737:8:101","type":""},{"name":"max","nativeSrc":"8747:3:101","nodeType":"YulTypedName","src":"8747:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8755:5:101","nodeType":"YulTypedName","src":"8755:5:101","type":""}],"src":"8701:1073:101"},{"body":{"nativeSrc":"9846:219:101","nodeType":"YulBlock","src":"9846:219:101","statements":[{"nativeSrc":"9856:31:101","nodeType":"YulAssignment","src":"9856:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9882:4:101","nodeType":"YulIdentifier","src":"9882:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9864:17:101","nodeType":"YulIdentifier","src":"9864:17:101"},"nativeSrc":"9864:23:101","nodeType":"YulFunctionCall","src":"9864:23:101"},"variableNames":[{"name":"base","nativeSrc":"9856:4:101","nodeType":"YulIdentifier","src":"9856:4:101"}]},{"nativeSrc":"9896:39:101","nodeType":"YulAssignment","src":"9896:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9926:8:101","nodeType":"YulIdentifier","src":"9926:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9908:17:101","nodeType":"YulIdentifier","src":"9908:17:101"},"nativeSrc":"9908:27:101","nodeType":"YulFunctionCall","src":"9908:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9896:8:101","nodeType":"YulIdentifier","src":"9896:8:101"}]},{"nativeSrc":"9945:113:101","nodeType":"YulAssignment","src":"9945:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9975:4:101","nodeType":"YulIdentifier","src":"9975:4:101"},{"name":"exponent","nativeSrc":"9981:8:101","nodeType":"YulIdentifier","src":"9981:8:101"},{"kind":"number","nativeSrc":"9991:66:101","nodeType":"YulLiteral","src":"9991:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9954:20:101","nodeType":"YulIdentifier","src":"9954:20:101"},"nativeSrc":"9954:104:101","nodeType":"YulFunctionCall","src":"9954:104:101"},"variableNames":[{"name":"power","nativeSrc":"9945:5:101","nodeType":"YulIdentifier","src":"9945:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9780:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9821:4:101","nodeType":"YulTypedName","src":"9821:4:101","type":""},{"name":"exponent","nativeSrc":"9827:8:101","nodeType":"YulTypedName","src":"9827:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9840:5:101","nodeType":"YulTypedName","src":"9840:5:101","type":""}],"src":"9780:285:101"},{"body":{"nativeSrc":"10130:40:101","nodeType":"YulBlock","src":"10130:40:101","statements":[{"nativeSrc":"10141:22:101","nodeType":"YulAssignment","src":"10141:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10157:5:101","nodeType":"YulIdentifier","src":"10157:5:101"}],"functionName":{"name":"mload","nativeSrc":"10151:5:101","nodeType":"YulIdentifier","src":"10151:5:101"},"nativeSrc":"10151:12:101","nodeType":"YulFunctionCall","src":"10151:12:101"},"variableNames":[{"name":"length","nativeSrc":"10141:6:101","nodeType":"YulIdentifier","src":"10141:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10071:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10113:5:101","nodeType":"YulTypedName","src":"10113:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10123:6:101","nodeType":"YulTypedName","src":"10123:6:101","type":""}],"src":"10071:99:101"},{"body":{"nativeSrc":"10272:73:101","nodeType":"YulBlock","src":"10272:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10289:3:101","nodeType":"YulIdentifier","src":"10289:3:101"},{"name":"length","nativeSrc":"10294:6:101","nodeType":"YulIdentifier","src":"10294:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10282:6:101","nodeType":"YulIdentifier","src":"10282:6:101"},"nativeSrc":"10282:19:101","nodeType":"YulFunctionCall","src":"10282:19:101"},"nativeSrc":"10282:19:101","nodeType":"YulExpressionStatement","src":"10282:19:101"},{"nativeSrc":"10310:29:101","nodeType":"YulAssignment","src":"10310:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10329:3:101","nodeType":"YulIdentifier","src":"10329:3:101"},{"kind":"number","nativeSrc":"10334:4:101","nodeType":"YulLiteral","src":"10334:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10325:3:101","nodeType":"YulIdentifier","src":"10325:3:101"},"nativeSrc":"10325:14:101","nodeType":"YulFunctionCall","src":"10325:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10310:11:101","nodeType":"YulIdentifier","src":"10310:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10176:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10244:3:101","nodeType":"YulTypedName","src":"10244:3:101","type":""},{"name":"length","nativeSrc":"10249:6:101","nodeType":"YulTypedName","src":"10249:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10260:11:101","nodeType":"YulTypedName","src":"10260:11:101","type":""}],"src":"10176:169:101"},{"body":{"nativeSrc":"10413:77:101","nodeType":"YulBlock","src":"10413:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10430:3:101","nodeType":"YulIdentifier","src":"10430:3:101"},{"name":"src","nativeSrc":"10435:3:101","nodeType":"YulIdentifier","src":"10435:3:101"},{"name":"length","nativeSrc":"10440:6:101","nodeType":"YulIdentifier","src":"10440:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10424:5:101","nodeType":"YulIdentifier","src":"10424:5:101"},"nativeSrc":"10424:23:101","nodeType":"YulFunctionCall","src":"10424:23:101"},"nativeSrc":"10424:23:101","nodeType":"YulExpressionStatement","src":"10424:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10467:3:101","nodeType":"YulIdentifier","src":"10467:3:101"},{"name":"length","nativeSrc":"10472:6:101","nodeType":"YulIdentifier","src":"10472:6:101"}],"functionName":{"name":"add","nativeSrc":"10463:3:101","nodeType":"YulIdentifier","src":"10463:3:101"},"nativeSrc":"10463:16:101","nodeType":"YulFunctionCall","src":"10463:16:101"},{"kind":"number","nativeSrc":"10481:1:101","nodeType":"YulLiteral","src":"10481:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10456:6:101","nodeType":"YulIdentifier","src":"10456:6:101"},"nativeSrc":"10456:27:101","nodeType":"YulFunctionCall","src":"10456:27:101"},"nativeSrc":"10456:27:101","nodeType":"YulExpressionStatement","src":"10456:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10351:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10395:3:101","nodeType":"YulTypedName","src":"10395:3:101","type":""},{"name":"dst","nativeSrc":"10400:3:101","nodeType":"YulTypedName","src":"10400:3:101","type":""},{"name":"length","nativeSrc":"10405:6:101","nodeType":"YulTypedName","src":"10405:6:101","type":""}],"src":"10351:139:101"},{"body":{"nativeSrc":"10544:54:101","nodeType":"YulBlock","src":"10544:54:101","statements":[{"nativeSrc":"10554:38:101","nodeType":"YulAssignment","src":"10554:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10572:5:101","nodeType":"YulIdentifier","src":"10572:5:101"},{"kind":"number","nativeSrc":"10579:2:101","nodeType":"YulLiteral","src":"10579:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10568:3:101","nodeType":"YulIdentifier","src":"10568:3:101"},"nativeSrc":"10568:14:101","nodeType":"YulFunctionCall","src":"10568:14:101"},{"arguments":[{"kind":"number","nativeSrc":"10588:2:101","nodeType":"YulLiteral","src":"10588:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10584:3:101","nodeType":"YulIdentifier","src":"10584:3:101"},"nativeSrc":"10584:7:101","nodeType":"YulFunctionCall","src":"10584:7:101"}],"functionName":{"name":"and","nativeSrc":"10564:3:101","nodeType":"YulIdentifier","src":"10564:3:101"},"nativeSrc":"10564:28:101","nodeType":"YulFunctionCall","src":"10564:28:101"},"variableNames":[{"name":"result","nativeSrc":"10554:6:101","nodeType":"YulIdentifier","src":"10554:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"10496:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10527:5:101","nodeType":"YulTypedName","src":"10527:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10537:6:101","nodeType":"YulTypedName","src":"10537:6:101","type":""}],"src":"10496:102:101"},{"body":{"nativeSrc":"10696:285:101","nodeType":"YulBlock","src":"10696:285:101","statements":[{"nativeSrc":"10706:53:101","nodeType":"YulVariableDeclaration","src":"10706:53:101","value":{"arguments":[{"name":"value","nativeSrc":"10753:5:101","nodeType":"YulIdentifier","src":"10753:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"10720:32:101","nodeType":"YulIdentifier","src":"10720:32:101"},"nativeSrc":"10720:39:101","nodeType":"YulFunctionCall","src":"10720:39:101"},"variables":[{"name":"length","nativeSrc":"10710:6:101","nodeType":"YulTypedName","src":"10710:6:101","type":""}]},{"nativeSrc":"10768:78:101","nodeType":"YulAssignment","src":"10768:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"10834:3:101","nodeType":"YulIdentifier","src":"10834:3:101"},{"name":"length","nativeSrc":"10839:6:101","nodeType":"YulIdentifier","src":"10839:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10775:58:101","nodeType":"YulIdentifier","src":"10775:58:101"},"nativeSrc":"10775:71:101","nodeType":"YulFunctionCall","src":"10775:71:101"},"variableNames":[{"name":"pos","nativeSrc":"10768:3:101","nodeType":"YulIdentifier","src":"10768:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10894:5:101","nodeType":"YulIdentifier","src":"10894:5:101"},{"kind":"number","nativeSrc":"10901:4:101","nodeType":"YulLiteral","src":"10901:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10890:3:101","nodeType":"YulIdentifier","src":"10890:3:101"},"nativeSrc":"10890:16:101","nodeType":"YulFunctionCall","src":"10890:16:101"},{"name":"pos","nativeSrc":"10908:3:101","nodeType":"YulIdentifier","src":"10908:3:101"},{"name":"length","nativeSrc":"10913:6:101","nodeType":"YulIdentifier","src":"10913:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10855:34:101","nodeType":"YulIdentifier","src":"10855:34:101"},"nativeSrc":"10855:65:101","nodeType":"YulFunctionCall","src":"10855:65:101"},"nativeSrc":"10855:65:101","nodeType":"YulExpressionStatement","src":"10855:65:101"},{"nativeSrc":"10929:46:101","nodeType":"YulAssignment","src":"10929:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"10940:3:101","nodeType":"YulIdentifier","src":"10940:3:101"},{"arguments":[{"name":"length","nativeSrc":"10967:6:101","nodeType":"YulIdentifier","src":"10967:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10945:21:101","nodeType":"YulIdentifier","src":"10945:21:101"},"nativeSrc":"10945:29:101","nodeType":"YulFunctionCall","src":"10945:29:101"}],"functionName":{"name":"add","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},"nativeSrc":"10936:39:101","nodeType":"YulFunctionCall","src":"10936:39:101"},"variableNames":[{"name":"end","nativeSrc":"10929:3:101","nodeType":"YulIdentifier","src":"10929:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10604:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10677:5:101","nodeType":"YulTypedName","src":"10677:5:101","type":""},{"name":"pos","nativeSrc":"10684:3:101","nodeType":"YulTypedName","src":"10684:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10692:3:101","nodeType":"YulTypedName","src":"10692:3:101","type":""}],"src":"10604:377:101"},{"body":{"nativeSrc":"11133:277:101","nodeType":"YulBlock","src":"11133:277:101","statements":[{"nativeSrc":"11143:26:101","nodeType":"YulAssignment","src":"11143:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11155:9:101","nodeType":"YulIdentifier","src":"11155:9:101"},{"kind":"number","nativeSrc":"11166:2:101","nodeType":"YulLiteral","src":"11166:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11151:3:101","nodeType":"YulIdentifier","src":"11151:3:101"},"nativeSrc":"11151:18:101","nodeType":"YulFunctionCall","src":"11151:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11223:6:101","nodeType":"YulIdentifier","src":"11223:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11236:9:101","nodeType":"YulIdentifier","src":"11236:9:101"},{"kind":"number","nativeSrc":"11247:1:101","nodeType":"YulLiteral","src":"11247:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11232:3:101","nodeType":"YulIdentifier","src":"11232:3:101"},"nativeSrc":"11232:17:101","nodeType":"YulFunctionCall","src":"11232:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11179:43:101","nodeType":"YulIdentifier","src":"11179:43:101"},"nativeSrc":"11179:71:101","nodeType":"YulFunctionCall","src":"11179:71:101"},"nativeSrc":"11179:71:101","nodeType":"YulExpressionStatement","src":"11179:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11271:9:101","nodeType":"YulIdentifier","src":"11271:9:101"},{"kind":"number","nativeSrc":"11282:2:101","nodeType":"YulLiteral","src":"11282:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11267:3:101","nodeType":"YulIdentifier","src":"11267:3:101"},"nativeSrc":"11267:18:101","nodeType":"YulFunctionCall","src":"11267:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11291:4:101","nodeType":"YulIdentifier","src":"11291:4:101"},{"name":"headStart","nativeSrc":"11297:9:101","nodeType":"YulIdentifier","src":"11297:9:101"}],"functionName":{"name":"sub","nativeSrc":"11287:3:101","nodeType":"YulIdentifier","src":"11287:3:101"},"nativeSrc":"11287:20:101","nodeType":"YulFunctionCall","src":"11287:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11260:6:101","nodeType":"YulIdentifier","src":"11260:6:101"},"nativeSrc":"11260:48:101","nodeType":"YulFunctionCall","src":"11260:48:101"},"nativeSrc":"11260:48:101","nodeType":"YulExpressionStatement","src":"11260:48:101"},{"nativeSrc":"11317:86:101","nodeType":"YulAssignment","src":"11317:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11389:6:101","nodeType":"YulIdentifier","src":"11389:6:101"},{"name":"tail","nativeSrc":"11398:4:101","nodeType":"YulIdentifier","src":"11398:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11325:63:101","nodeType":"YulIdentifier","src":"11325:63:101"},"nativeSrc":"11325:78:101","nodeType":"YulFunctionCall","src":"11325:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11317:4:101","nodeType":"YulIdentifier","src":"11317:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10987:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11097:9:101","nodeType":"YulTypedName","src":"11097:9:101","type":""},{"name":"value1","nativeSrc":"11109:6:101","nodeType":"YulTypedName","src":"11109:6:101","type":""},{"name":"value0","nativeSrc":"11117:6:101","nodeType":"YulTypedName","src":"11117:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11128:4:101","nodeType":"YulTypedName","src":"11128:4:101","type":""}],"src":"10987:423:101"},{"body":{"nativeSrc":"11456:76:101","nodeType":"YulBlock","src":"11456:76:101","statements":[{"body":{"nativeSrc":"11510:16:101","nodeType":"YulBlock","src":"11510:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11519:1:101","nodeType":"YulLiteral","src":"11519:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"11522:1:101","nodeType":"YulLiteral","src":"11522:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11512:6:101","nodeType":"YulIdentifier","src":"11512:6:101"},"nativeSrc":"11512:12:101","nodeType":"YulFunctionCall","src":"11512:12:101"},"nativeSrc":"11512:12:101","nodeType":"YulExpressionStatement","src":"11512:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11479:5:101","nodeType":"YulIdentifier","src":"11479:5:101"},{"arguments":[{"name":"value","nativeSrc":"11501:5:101","nodeType":"YulIdentifier","src":"11501:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"11486:14:101","nodeType":"YulIdentifier","src":"11486:14:101"},"nativeSrc":"11486:21:101","nodeType":"YulFunctionCall","src":"11486:21:101"}],"functionName":{"name":"eq","nativeSrc":"11476:2:101","nodeType":"YulIdentifier","src":"11476:2:101"},"nativeSrc":"11476:32:101","nodeType":"YulFunctionCall","src":"11476:32:101"}],"functionName":{"name":"iszero","nativeSrc":"11469:6:101","nodeType":"YulIdentifier","src":"11469:6:101"},"nativeSrc":"11469:40:101","nodeType":"YulFunctionCall","src":"11469:40:101"},"nativeSrc":"11466:60:101","nodeType":"YulIf","src":"11466:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11416:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11449:5:101","nodeType":"YulTypedName","src":"11449:5:101","type":""}],"src":"11416:116:101"},{"body":{"nativeSrc":"11598:77:101","nodeType":"YulBlock","src":"11598:77:101","statements":[{"nativeSrc":"11608:22:101","nodeType":"YulAssignment","src":"11608:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"11623:6:101","nodeType":"YulIdentifier","src":"11623:6:101"}],"functionName":{"name":"mload","nativeSrc":"11617:5:101","nodeType":"YulIdentifier","src":"11617:5:101"},"nativeSrc":"11617:13:101","nodeType":"YulFunctionCall","src":"11617:13:101"},"variableNames":[{"name":"value","nativeSrc":"11608:5:101","nodeType":"YulIdentifier","src":"11608:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11663:5:101","nodeType":"YulIdentifier","src":"11663:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"11639:23:101","nodeType":"YulIdentifier","src":"11639:23:101"},"nativeSrc":"11639:30:101","nodeType":"YulFunctionCall","src":"11639:30:101"},"nativeSrc":"11639:30:101","nodeType":"YulExpressionStatement","src":"11639:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11538:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11576:6:101","nodeType":"YulTypedName","src":"11576:6:101","type":""},{"name":"end","nativeSrc":"11584:3:101","nodeType":"YulTypedName","src":"11584:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11592:5:101","nodeType":"YulTypedName","src":"11592:5:101","type":""}],"src":"11538:137:101"},{"body":{"nativeSrc":"11755:271:101","nodeType":"YulBlock","src":"11755:271:101","statements":[{"body":{"nativeSrc":"11801:83:101","nodeType":"YulBlock","src":"11801:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11803:77:101","nodeType":"YulIdentifier","src":"11803:77:101"},"nativeSrc":"11803:79:101","nodeType":"YulFunctionCall","src":"11803:79:101"},"nativeSrc":"11803:79:101","nodeType":"YulExpressionStatement","src":"11803:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11776:7:101","nodeType":"YulIdentifier","src":"11776:7:101"},{"name":"headStart","nativeSrc":"11785:9:101","nodeType":"YulIdentifier","src":"11785:9:101"}],"functionName":{"name":"sub","nativeSrc":"11772:3:101","nodeType":"YulIdentifier","src":"11772:3:101"},"nativeSrc":"11772:23:101","nodeType":"YulFunctionCall","src":"11772:23:101"},{"kind":"number","nativeSrc":"11797:2:101","nodeType":"YulLiteral","src":"11797:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:32:101","nodeType":"YulFunctionCall","src":"11768:32:101"},"nativeSrc":"11765:119:101","nodeType":"YulIf","src":"11765:119:101"},{"nativeSrc":"11894:125:101","nodeType":"YulBlock","src":"11894:125:101","statements":[{"nativeSrc":"11909:15:101","nodeType":"YulVariableDeclaration","src":"11909:15:101","value":{"kind":"number","nativeSrc":"11923:1:101","nodeType":"YulLiteral","src":"11923:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11913:6:101","nodeType":"YulTypedName","src":"11913:6:101","type":""}]},{"nativeSrc":"11938:71:101","nodeType":"YulAssignment","src":"11938:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11981:9:101","nodeType":"YulIdentifier","src":"11981:9:101"},{"name":"offset","nativeSrc":"11992:6:101","nodeType":"YulIdentifier","src":"11992:6:101"}],"functionName":{"name":"add","nativeSrc":"11977:3:101","nodeType":"YulIdentifier","src":"11977:3:101"},"nativeSrc":"11977:22:101","nodeType":"YulFunctionCall","src":"11977:22:101"},{"name":"dataEnd","nativeSrc":"12001:7:101","nodeType":"YulIdentifier","src":"12001:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11948:28:101","nodeType":"YulIdentifier","src":"11948:28:101"},"nativeSrc":"11948:61:101","nodeType":"YulFunctionCall","src":"11948:61:101"},"variableNames":[{"name":"value0","nativeSrc":"11938:6:101","nodeType":"YulIdentifier","src":"11938:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"11681:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11725:9:101","nodeType":"YulTypedName","src":"11725:9:101","type":""},{"name":"dataEnd","nativeSrc":"11736:7:101","nodeType":"YulTypedName","src":"11736:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11748:6:101","nodeType":"YulTypedName","src":"11748:6:101","type":""}],"src":"11681:345:101"},{"body":{"nativeSrc":"12206:359:101","nodeType":"YulBlock","src":"12206:359:101","statements":[{"nativeSrc":"12216:26:101","nodeType":"YulAssignment","src":"12216:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12228:9:101","nodeType":"YulIdentifier","src":"12228:9:101"},{"kind":"number","nativeSrc":"12239:2:101","nodeType":"YulLiteral","src":"12239:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12224:3:101","nodeType":"YulIdentifier","src":"12224:3:101"},"nativeSrc":"12224:18:101","nodeType":"YulFunctionCall","src":"12224:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12216:4:101","nodeType":"YulIdentifier","src":"12216:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12296:6:101","nodeType":"YulIdentifier","src":"12296:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12309:9:101","nodeType":"YulIdentifier","src":"12309:9:101"},{"kind":"number","nativeSrc":"12320:1:101","nodeType":"YulLiteral","src":"12320:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12305:3:101","nodeType":"YulIdentifier","src":"12305:3:101"},"nativeSrc":"12305:17:101","nodeType":"YulFunctionCall","src":"12305:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12252:43:101","nodeType":"YulIdentifier","src":"12252:43:101"},"nativeSrc":"12252:71:101","nodeType":"YulFunctionCall","src":"12252:71:101"},"nativeSrc":"12252:71:101","nodeType":"YulExpressionStatement","src":"12252:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12377:6:101","nodeType":"YulIdentifier","src":"12377:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12390:9:101","nodeType":"YulIdentifier","src":"12390:9:101"},{"kind":"number","nativeSrc":"12401:2:101","nodeType":"YulLiteral","src":"12401:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12386:3:101","nodeType":"YulIdentifier","src":"12386:3:101"},"nativeSrc":"12386:18:101","nodeType":"YulFunctionCall","src":"12386:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12333:43:101","nodeType":"YulIdentifier","src":"12333:43:101"},"nativeSrc":"12333:72:101","nodeType":"YulFunctionCall","src":"12333:72:101"},"nativeSrc":"12333:72:101","nodeType":"YulExpressionStatement","src":"12333:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12426:9:101","nodeType":"YulIdentifier","src":"12426:9:101"},{"kind":"number","nativeSrc":"12437:2:101","nodeType":"YulLiteral","src":"12437:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:18:101","nodeType":"YulFunctionCall","src":"12422:18:101"},{"arguments":[{"name":"tail","nativeSrc":"12446:4:101","nodeType":"YulIdentifier","src":"12446:4:101"},{"name":"headStart","nativeSrc":"12452:9:101","nodeType":"YulIdentifier","src":"12452:9:101"}],"functionName":{"name":"sub","nativeSrc":"12442:3:101","nodeType":"YulIdentifier","src":"12442:3:101"},"nativeSrc":"12442:20:101","nodeType":"YulFunctionCall","src":"12442:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:48:101","nodeType":"YulFunctionCall","src":"12415:48:101"},"nativeSrc":"12415:48:101","nodeType":"YulExpressionStatement","src":"12415:48:101"},{"nativeSrc":"12472:86:101","nodeType":"YulAssignment","src":"12472:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"12544:6:101","nodeType":"YulIdentifier","src":"12544:6:101"},{"name":"tail","nativeSrc":"12553:4:101","nodeType":"YulIdentifier","src":"12553:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"12480:63:101","nodeType":"YulIdentifier","src":"12480:63:101"},"nativeSrc":"12480:78:101","nodeType":"YulFunctionCall","src":"12480:78:101"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:101","nodeType":"YulIdentifier","src":"12472:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12032:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12162:9:101","nodeType":"YulTypedName","src":"12162:9:101","type":""},{"name":"value2","nativeSrc":"12174:6:101","nodeType":"YulTypedName","src":"12174:6:101","type":""},{"name":"value1","nativeSrc":"12182:6:101","nodeType":"YulTypedName","src":"12182:6:101","type":""},{"name":"value0","nativeSrc":"12190:6:101","nodeType":"YulTypedName","src":"12190:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12201:4:101","nodeType":"YulTypedName","src":"12201:4:101","type":""}],"src":"12032:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6589":[{"length":32,"start":512},{"length":32,"start":640},{"length":32,"start":1653},{"length":32,"start":2039}],"6592":[{"length":32,"start":302},{"length":32,"start":1391},{"length":32,"start":1912}],"6596":[{"length":32,"start":579},{"length":32,"start":1346},{"length":32,"start":1865}],"6600":[{"length":32,"start":382},{"length":32,"start":2230}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b6040516101209190610967565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610994565b61011360045481565b6101136101743660046109c3565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a06565b6101c06101bb366004610a25565b61032e565b005b61011360025481565b6101c06101d9366004610a43565b61039f565b6101e6610473565b6040516101209190610a85565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610a43565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b6101136106f8565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed81610745565b9392505050565b5f6102fd6106f8565b90505f818311801561030e57508115155b610318578261031a565b815b905061032581610745565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e743235362900000000000000000081525061089d565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e7432353629000081525061089d565b5f546103ed6301e1338084610abb565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104649190610967565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b6106f8565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610ace565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e56106f8565b90506004548183116104f757826104f9565b815b6105039190610ae1565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f000000000000000000000000000000000000000000000000000000000000000090600401610994565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e74323536290000000081525061089d565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190610aff565b905090565b5f80600354426107089190610ace565b90505f670de0b6b3a7640000825f546002546107249190610b1d565b61072e9190610b1d565b6107389190610abb565b6002546102ed9190610ae1565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107b39190610994565b602060405180830381865afa1580156107ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f29190610aff565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610b50565b60ff16905061088981600a610c7a565b6108938487610b1d565b6103259190610abb565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906108ed9033908690600401610cc3565b602060405180830381865afa158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c9190610cf6565b90508061095b57333083604051634a3fa29360e01b815260040161095293929190610d14565b60405180910390fd5b5050565b805b82525050565b60208101610975828461095f565b92915050565b5f6001600160a01b038216610975565b6109618161097b565b60208101610975828461098b565b6109ab8161097b565b81146109b5575f80fd5b50565b8035610975816109a2565b5f602082840312156109d6576109d65f80fd5b5f6109e184846109b8565b949350505050565b5f6109758261097b565b5f610975826109e9565b610961816109f3565b6020810161097582846109fd565b806109ab565b803561097581610a14565b5f60208284031215610a3857610a385f80fd5b5f6109e18484610a1a565b5f8060408385031215610a5757610a575f80fd5b5f610a628585610a1a565b9250506020610a7385828601610a1a565b9150509250929050565b801515610961565b602081016109758284610a7d565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610ac957610ac9610a93565b500490565b8181038181111561097557610975610aa7565b8082018082111561097557610975610aa7565b805161097581610a14565b5f60208284031215610b1257610b125f80fd5b5f6109e18484610af4565b818102808215838204851417610b3557610b35610aa7565b5092915050565b60ff81166109ab565b805161097581610b3c565b5f60208284031215610b6357610b635f80fd5b5f6109e18484610b45565b80825b6001851115610bad57808604811115610b8c57610b8c610aa7565b6001851615610b9a57908102905b8002610ba68560011c90565b9450610b71565b94509492505050565b5f82610bc4575060016102ed565b81610bd057505f6102ed565b8160018114610be65760028114610bf057610c1d565b60019150506102ed565b60ff841115610c0157610c01610aa7565b8360020a915084821115610c1757610c17610aa7565b506102ed565b5060208310610133831016604e8410600b8410161715610c50575081810a83811115610c4b57610c4b610aa7565b6102ed565b610c5d8484846001610b6e565b92509050818404811115610c7357610c73610aa7565b0292915050565b5f6102ed5f198484610bb6565b8281835e505f910152565b5f610c9b825190565b808452602084019350610cb2818560208601610c87565b601f01601f19169290920192915050565b60408101610cd1828561098b565b81810360208301526109e18184610c92565b8015156109ab565b805161097581610ce3565b5f60208284031215610d0957610d095f80fd5b5f6109e18484610ceb565b60608101610d22828661098b565b610d2f602083018561098b565b81810360408301526103258184610c9256fea2646970667358221220999f601374c9e5dc9e36a1238e1e216a4a15edd908ff3ba0c3edf4fea9a789d364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA06 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA25 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x6F8 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xABB JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xACE JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x994 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3BA0B9A9 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 0x6CF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F3 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x708 SWAP2 SWAP1 PUSH2 0xACE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x724 SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x738 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7F2 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x855 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x879 SWAP2 SWAP1 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x889 DUP2 PUSH1 0xA PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x893 DUP5 DUP8 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x8ED SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x908 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x92C SWAP2 SWAP1 PUSH2 0xCF6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x95B JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x95F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x975 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x98B JUMP JUMPDEST PUSH2 0x9AB DUP2 PUSH2 0x97B JUMP JUMPDEST DUP2 EQ PUSH2 0x9B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0x9B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x97B JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x9FD JUMP JUMPDEST DUP1 PUSH2 0x9AB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA38 JUMPI PUSH2 0xA38 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xA1A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA57 JUMPI PUSH2 0xA57 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA62 DUP6 DUP6 PUSH2 0xA1A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA73 DUP6 DUP3 DUP7 ADD PUSH2 0xA1A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x961 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0xA7D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAC9 JUMPI PUSH2 0xAC9 PUSH2 0xA93 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB12 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xAF4 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAA7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xB3C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB63 JUMPI PUSH2 0xB63 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xB45 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBAD JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xB8C JUMPI PUSH2 0xB8C PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xB9A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBA6 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB71 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBC4 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xBD0 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xBE6 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xBF0 JUMPI PUSH2 0xC1D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xC01 PUSH2 0xAA7 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC17 JUMPI PUSH2 0xC17 PUSH2 0xAA7 JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC50 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC4B JUMPI PUSH2 0xC4B PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xC5D DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB6E JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC73 PUSH2 0xAA7 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xBB6 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xC9B DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCB2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC87 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xCD1 DUP3 DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9E1 DUP2 DUP5 PUSH2 0xC92 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD09 JUMPI PUSH2 0xD09 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xCEB JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD22 DUP3 DUP7 PUSH2 0x98B JUMP JUMPDEST PUSH2 0xD2F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xC92 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP10 SWAP16 PUSH1 0x13 PUSH21 0xC9E5DC9E36A1238E1E216A4A15EDD908FF3BA0C3ED DELEGATECALL INVALID 0xA9 0xA7 DUP10 0xD3 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"297:1009:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;1171:133:61;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1171:133:61:-;1232:7;1265:16;-1:-1:-1;;;;;1258:37:61;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1251:46;;1171:133;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;297:1009:61;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;297:1009:61;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;297:1009:61;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5143:180::-;-1:-1:-1;;;5188:1:101;5181:88;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5329:180;-1:-1:-1;;;5374:1:101;5367:88;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5515:185;5555:1;5645;5635:35;;5650:18;;:::i;:::-;-1:-1:-1;5685:9:101;;5515:185::o;5706:194::-;5837:9;;;5859:11;;;5856:37;;;5873:18;;:::i;5906:191::-;6035:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6103:143::-;6185:13;;6207:33;6185:13;6207:33;:::i;6252:351::-;6322:6;6371:2;6359:9;6350:7;6346:23;6342:32;6339:119;;;6377:79;297:1009:61;;;6377:79:101;6497:1;6522:64;6578:7;6558:9;6522:64;:::i;6609:410::-;6754:9;;;;6916;;6949:15;;;6943:22;;6896:83;6873:139;;6992:18;;:::i;:::-;6657:362;6609:410;;;;:::o;7117:118::-;7100:4;7089:16;;7188:22;7025:86;7241:139;7321:13;;7343:31;7321:13;7343:31;:::i;7386:347::-;7454:6;7503:2;7491:9;7482:7;7478:23;7474:32;7471:119;;;7509:79;297:1009:61;;;7509:79:101;7629:1;7654:62;7708:7;7688:9;7654:62;:::i;7847:848::-;7939:6;7963:5;7977:712;7998:1;7988:8;7985:15;7977:712;;;8093:4;8088:3;8084:14;8078:4;8075:24;8072:50;;;8102:18;;:::i;:::-;8152:1;8142:8;8138:16;8135:451;;;8556:16;;;;8135:451;8607:15;;8647:32;8670:8;7825:1;7821:13;;7739:102;8647:32;8635:44;;7977:712;;;7847:848;;;;;;;:::o;8701:1073::-;8755:5;8946:8;8936:40;;-1:-1:-1;8967:1:101;8969:5;;8936:40;8995:4;8985:36;;-1:-1:-1;9012:1:101;9014:5;;8985:36;9081:4;9129:1;9124:27;;;;9165:1;9160:191;;;;9074:277;;9124:27;9142:1;9133:10;;9144:5;;;9160:191;9205:3;9195:8;9192:17;9189:43;;;9212:18;;:::i;:::-;9261:8;9258:1;9254:16;9245:25;;9296:3;9289:5;9286:14;9283:40;;;9303:18;;:::i;:::-;9336:5;;;9074:277;;9460:2;9450:8;9447:16;9441:3;9435:4;9432:13;9428:36;9410:2;9400:8;9397:16;9392:2;9386:4;9383:12;9379:35;9363:111;9360:246;;;-1:-1:-1;9506:19:101;;;9541:14;;;9538:40;;;9558:18;;:::i;:::-;9591:5;;9360:246;9631:42;9669:3;9659:8;9653:4;9650:1;9631:42;:::i;:::-;9616:57;;;;9705:4;9700:3;9696:14;9689:5;9686:25;9683:51;;;9714:18;;:::i;:::-;9752:16;;8701:1073;-1:-1:-1;;8701:1073:101:o;9780:285::-;9840:5;9954:104;-1:-1:-1;;9981:8:101;9975:4;9954:104;:::i;10351:139::-;10440:6;10435:3;10430;10424:23;-1:-1:-1;10481:1:101;10463:16;;10456:27;10351:139::o;10604:377::-;10692:3;10720:39;10753:5;10151:12;;10071:99;10720:39;10282:19;;;10334:4;10325:14;;10768:78;;10855:65;10913:6;10908:3;10901:4;10894:5;10890:16;10855:65;:::i;:::-;10588:2;10568:14;-1:-1:-1;;10564:28:101;10936:39;;;;;;-1:-1:-1;;10604:377:101:o;10987:423::-;11166:2;11151:18;;11179:71;11155:9;11223:6;11179:71;:::i;:::-;11297:9;11291:4;11287:20;11282:2;11271:9;11267:18;11260:48;11325:78;11398:4;11389:6;11325:78;:::i;11416:116::-;4124:13;;4117:21;11486;4054:90;11538:137;11617:13;;11639:30;11617:13;11639:30;:::i;11681:345::-;11748:6;11797:2;11785:9;11776:7;11772:23;11768:32;11765:119;;;11803:79;297:1009:61;;;11803:79:101;11923:1;11948:61;12001:7;11981:9;11948:61;:::i;12032:533::-;12239:2;12224:18;;12252:71;12228:9;12296:6;12252:71;:::i;:::-;12333:72;12401:2;12390:9;12386:18;12377:6;12333:72;:::i;:::-;12452:9;12446:4;12442:20;12437:2;12426:9;12422:18;12415:48;12480:78;12553:4;12544:6;12480:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"689400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wbeth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount The amount of ETH for wBETH\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"WBETHOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Fetches the amount of ETH for 1 wBETH\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of wBETH asset\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/WBETHOracle.sol\":\"WBETHOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IWBETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IWBETH {\\n    function exchangeRate() external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xaff923809f41bf7bc321d5285ddf2c03856a3cf0050c005154e31e811161d7db\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/WBETHOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IWBETH } from \\\"../interfaces/IWBETH.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\n\\n/**\\n * @title WBETHOracle\\n * @author Venus\\n * @notice This oracle fetches the price of wBETH asset\\n */\\ncontract WBETHOracle is CorrelatedTokenOracle {\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address wbeth,\\n        address eth,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            wbeth,\\n            eth,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {}\\n\\n    /**\\n     * @notice Fetches the amount of ETH for 1 wBETH\\n     * @return amount The amount of ETH for wBETH\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return IWBETH(CORRELATED_TOKEN).exchangeRate();\\n    }\\n}\\n\",\"keccak256\":\"0x7370b9e95c87723e0f9606a479251f3e8ef514aaf4b6750f3b1217c32d24b494\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/WBETHOracle.sol:WBETHOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/WBETHOracle.sol:WBETHOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/WBETHOracle.sol:WBETHOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/WBETHOracle.sol:WBETHOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/WBETHOracle.sol:WBETHOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Fetches the amount of ETH for 1 wBETH"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of wBETH asset","version":1}}},"contracts/oracles/WeETHAccountantOracle.sol":{"WeETHAccountantOracle":{"abi":[{"inputs":[{"internalType":"address","name":"accountant","type":"address"},{"internalType":"address","name":"weethLRT","type":"address"},{"internalType":"address","name":"weth","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ACCOUNTANT","outputs":[{"internalType":"contract IAccountant","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount Amount of WETH"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"WeETHAccountantOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_6211":{"entryPoint":null,"id":6211,"parameterSlots":10,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":312,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":419,"id":null,"parameterSlots":2,"returnSlots":10},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":652,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":354,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":632,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":372,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3533:101","nodeType":"YulBlock","src":"0:3533:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1435:1532:101","nodeType":"YulBlock","src":"1435:1532:101","statements":[{"body":{"nativeSrc":"1482:83:101","nodeType":"YulBlock","src":"1482:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1484:77:101","nodeType":"YulIdentifier","src":"1484:77:101"},"nativeSrc":"1484:79:101","nodeType":"YulFunctionCall","src":"1484:79:101"},"nativeSrc":"1484:79:101","nodeType":"YulExpressionStatement","src":"1484:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1456:7:101","nodeType":"YulIdentifier","src":"1456:7:101"},{"name":"headStart","nativeSrc":"1465:9:101","nodeType":"YulIdentifier","src":"1465:9:101"}],"functionName":{"name":"sub","nativeSrc":"1452:3:101","nodeType":"YulIdentifier","src":"1452:3:101"},"nativeSrc":"1452:23:101","nodeType":"YulFunctionCall","src":"1452:23:101"},{"kind":"number","nativeSrc":"1477:3:101","nodeType":"YulLiteral","src":"1477:3:101","type":"","value":"320"}],"functionName":{"name":"slt","nativeSrc":"1448:3:101","nodeType":"YulIdentifier","src":"1448:3:101"},"nativeSrc":"1448:33:101","nodeType":"YulFunctionCall","src":"1448:33:101"},"nativeSrc":"1445:120:101","nodeType":"YulIf","src":"1445:120:101"},{"nativeSrc":"1575:128:101","nodeType":"YulBlock","src":"1575:128:101","statements":[{"nativeSrc":"1590:15:101","nodeType":"YulVariableDeclaration","src":"1590:15:101","value":{"kind":"number","nativeSrc":"1604:1:101","nodeType":"YulLiteral","src":"1604:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1594:6:101","nodeType":"YulTypedName","src":"1594:6:101","type":""}]},{"nativeSrc":"1619:74:101","nodeType":"YulAssignment","src":"1619:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1665:9:101","nodeType":"YulIdentifier","src":"1665:9:101"},{"name":"offset","nativeSrc":"1676:6:101","nodeType":"YulIdentifier","src":"1676:6:101"}],"functionName":{"name":"add","nativeSrc":"1661:3:101","nodeType":"YulIdentifier","src":"1661:3:101"},"nativeSrc":"1661:22:101","nodeType":"YulFunctionCall","src":"1661:22:101"},{"name":"dataEnd","nativeSrc":"1685:7:101","nodeType":"YulIdentifier","src":"1685:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1629:31:101","nodeType":"YulIdentifier","src":"1629:31:101"},"nativeSrc":"1629:64:101","nodeType":"YulFunctionCall","src":"1629:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1619:6:101","nodeType":"YulIdentifier","src":"1619:6:101"}]}]},{"nativeSrc":"1713:129:101","nodeType":"YulBlock","src":"1713:129:101","statements":[{"nativeSrc":"1728:16:101","nodeType":"YulVariableDeclaration","src":"1728:16:101","value":{"kind":"number","nativeSrc":"1742:2:101","nodeType":"YulLiteral","src":"1742:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1732:6:101","nodeType":"YulTypedName","src":"1732:6:101","type":""}]},{"nativeSrc":"1758:74:101","nodeType":"YulAssignment","src":"1758:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1804:9:101","nodeType":"YulIdentifier","src":"1804:9:101"},{"name":"offset","nativeSrc":"1815:6:101","nodeType":"YulIdentifier","src":"1815:6:101"}],"functionName":{"name":"add","nativeSrc":"1800:3:101","nodeType":"YulIdentifier","src":"1800:3:101"},"nativeSrc":"1800:22:101","nodeType":"YulFunctionCall","src":"1800:22:101"},{"name":"dataEnd","nativeSrc":"1824:7:101","nodeType":"YulIdentifier","src":"1824:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1768:31:101","nodeType":"YulIdentifier","src":"1768:31:101"},"nativeSrc":"1768:64:101","nodeType":"YulFunctionCall","src":"1768:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1758:6:101","nodeType":"YulIdentifier","src":"1758:6:101"}]}]},{"nativeSrc":"1852:129:101","nodeType":"YulBlock","src":"1852:129:101","statements":[{"nativeSrc":"1867:16:101","nodeType":"YulVariableDeclaration","src":"1867:16:101","value":{"kind":"number","nativeSrc":"1881:2:101","nodeType":"YulLiteral","src":"1881:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1871:6:101","nodeType":"YulTypedName","src":"1871:6:101","type":""}]},{"nativeSrc":"1897:74:101","nodeType":"YulAssignment","src":"1897:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1943:9:101","nodeType":"YulIdentifier","src":"1943:9:101"},{"name":"offset","nativeSrc":"1954:6:101","nodeType":"YulIdentifier","src":"1954:6:101"}],"functionName":{"name":"add","nativeSrc":"1939:3:101","nodeType":"YulIdentifier","src":"1939:3:101"},"nativeSrc":"1939:22:101","nodeType":"YulFunctionCall","src":"1939:22:101"},{"name":"dataEnd","nativeSrc":"1963:7:101","nodeType":"YulIdentifier","src":"1963:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1907:31:101","nodeType":"YulIdentifier","src":"1907:31:101"},"nativeSrc":"1907:64:101","nodeType":"YulFunctionCall","src":"1907:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1897:6:101","nodeType":"YulIdentifier","src":"1897:6:101"}]}]},{"nativeSrc":"1991:129:101","nodeType":"YulBlock","src":"1991:129:101","statements":[{"nativeSrc":"2006:16:101","nodeType":"YulVariableDeclaration","src":"2006:16:101","value":{"kind":"number","nativeSrc":"2020:2:101","nodeType":"YulLiteral","src":"2020:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"2010:6:101","nodeType":"YulTypedName","src":"2010:6:101","type":""}]},{"nativeSrc":"2036:74:101","nodeType":"YulAssignment","src":"2036:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2082:9:101","nodeType":"YulIdentifier","src":"2082:9:101"},{"name":"offset","nativeSrc":"2093:6:101","nodeType":"YulIdentifier","src":"2093:6:101"}],"functionName":{"name":"add","nativeSrc":"2078:3:101","nodeType":"YulIdentifier","src":"2078:3:101"},"nativeSrc":"2078:22:101","nodeType":"YulFunctionCall","src":"2078:22:101"},{"name":"dataEnd","nativeSrc":"2102:7:101","nodeType":"YulIdentifier","src":"2102:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2046:31:101","nodeType":"YulIdentifier","src":"2046:31:101"},"nativeSrc":"2046:64:101","nodeType":"YulFunctionCall","src":"2046:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2036:6:101","nodeType":"YulIdentifier","src":"2036:6:101"}]}]},{"nativeSrc":"2130:130:101","nodeType":"YulBlock","src":"2130:130:101","statements":[{"nativeSrc":"2145:17:101","nodeType":"YulVariableDeclaration","src":"2145:17:101","value":{"kind":"number","nativeSrc":"2159:3:101","nodeType":"YulLiteral","src":"2159:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2149:6:101","nodeType":"YulTypedName","src":"2149:6:101","type":""}]},{"nativeSrc":"2176:74:101","nodeType":"YulAssignment","src":"2176:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2222:9:101","nodeType":"YulIdentifier","src":"2222:9:101"},{"name":"offset","nativeSrc":"2233:6:101","nodeType":"YulIdentifier","src":"2233:6:101"}],"functionName":{"name":"add","nativeSrc":"2218:3:101","nodeType":"YulIdentifier","src":"2218:3:101"},"nativeSrc":"2218:22:101","nodeType":"YulFunctionCall","src":"2218:22:101"},{"name":"dataEnd","nativeSrc":"2242:7:101","nodeType":"YulIdentifier","src":"2242:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2186:31:101","nodeType":"YulIdentifier","src":"2186:31:101"},"nativeSrc":"2186:64:101","nodeType":"YulFunctionCall","src":"2186:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}]}]},{"nativeSrc":"2270:130:101","nodeType":"YulBlock","src":"2270:130:101","statements":[{"nativeSrc":"2285:17:101","nodeType":"YulVariableDeclaration","src":"2285:17:101","value":{"kind":"number","nativeSrc":"2299:3:101","nodeType":"YulLiteral","src":"2299:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2289:6:101","nodeType":"YulTypedName","src":"2289:6:101","type":""}]},{"nativeSrc":"2316:74:101","nodeType":"YulAssignment","src":"2316:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2362:9:101","nodeType":"YulIdentifier","src":"2362:9:101"},{"name":"offset","nativeSrc":"2373:6:101","nodeType":"YulIdentifier","src":"2373:6:101"}],"functionName":{"name":"add","nativeSrc":"2358:3:101","nodeType":"YulIdentifier","src":"2358:3:101"},"nativeSrc":"2358:22:101","nodeType":"YulFunctionCall","src":"2358:22:101"},{"name":"dataEnd","nativeSrc":"2382:7:101","nodeType":"YulIdentifier","src":"2382:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2326:31:101","nodeType":"YulIdentifier","src":"2326:31:101"},"nativeSrc":"2326:64:101","nodeType":"YulFunctionCall","src":"2326:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2316:6:101","nodeType":"YulIdentifier","src":"2316:6:101"}]}]},{"nativeSrc":"2410:130:101","nodeType":"YulBlock","src":"2410:130:101","statements":[{"nativeSrc":"2425:17:101","nodeType":"YulVariableDeclaration","src":"2425:17:101","value":{"kind":"number","nativeSrc":"2439:3:101","nodeType":"YulLiteral","src":"2439:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2429:6:101","nodeType":"YulTypedName","src":"2429:6:101","type":""}]},{"nativeSrc":"2456:74:101","nodeType":"YulAssignment","src":"2456:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2502:9:101","nodeType":"YulIdentifier","src":"2502:9:101"},{"name":"offset","nativeSrc":"2513:6:101","nodeType":"YulIdentifier","src":"2513:6:101"}],"functionName":{"name":"add","nativeSrc":"2498:3:101","nodeType":"YulIdentifier","src":"2498:3:101"},"nativeSrc":"2498:22:101","nodeType":"YulFunctionCall","src":"2498:22:101"},{"name":"dataEnd","nativeSrc":"2522:7:101","nodeType":"YulIdentifier","src":"2522:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2466:31:101","nodeType":"YulIdentifier","src":"2466:31:101"},"nativeSrc":"2466:64:101","nodeType":"YulFunctionCall","src":"2466:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2456:6:101","nodeType":"YulIdentifier","src":"2456:6:101"}]}]},{"nativeSrc":"2550:130:101","nodeType":"YulBlock","src":"2550:130:101","statements":[{"nativeSrc":"2565:17:101","nodeType":"YulVariableDeclaration","src":"2565:17:101","value":{"kind":"number","nativeSrc":"2579:3:101","nodeType":"YulLiteral","src":"2579:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2569:6:101","nodeType":"YulTypedName","src":"2569:6:101","type":""}]},{"nativeSrc":"2596:74:101","nodeType":"YulAssignment","src":"2596:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2642:9:101","nodeType":"YulIdentifier","src":"2642:9:101"},{"name":"offset","nativeSrc":"2653:6:101","nodeType":"YulIdentifier","src":"2653:6:101"}],"functionName":{"name":"add","nativeSrc":"2638:3:101","nodeType":"YulIdentifier","src":"2638:3:101"},"nativeSrc":"2638:22:101","nodeType":"YulFunctionCall","src":"2638:22:101"},{"name":"dataEnd","nativeSrc":"2662:7:101","nodeType":"YulIdentifier","src":"2662:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2606:31:101","nodeType":"YulIdentifier","src":"2606:31:101"},"nativeSrc":"2606:64:101","nodeType":"YulFunctionCall","src":"2606:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2596:6:101","nodeType":"YulIdentifier","src":"2596:6:101"}]}]},{"nativeSrc":"2690:130:101","nodeType":"YulBlock","src":"2690:130:101","statements":[{"nativeSrc":"2705:17:101","nodeType":"YulVariableDeclaration","src":"2705:17:101","value":{"kind":"number","nativeSrc":"2719:3:101","nodeType":"YulLiteral","src":"2719:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2709:6:101","nodeType":"YulTypedName","src":"2709:6:101","type":""}]},{"nativeSrc":"2736:74:101","nodeType":"YulAssignment","src":"2736:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2782:9:101","nodeType":"YulIdentifier","src":"2782:9:101"},{"name":"offset","nativeSrc":"2793:6:101","nodeType":"YulIdentifier","src":"2793:6:101"}],"functionName":{"name":"add","nativeSrc":"2778:3:101","nodeType":"YulIdentifier","src":"2778:3:101"},"nativeSrc":"2778:22:101","nodeType":"YulFunctionCall","src":"2778:22:101"},{"name":"dataEnd","nativeSrc":"2802:7:101","nodeType":"YulIdentifier","src":"2802:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2746:31:101","nodeType":"YulIdentifier","src":"2746:31:101"},"nativeSrc":"2746:64:101","nodeType":"YulFunctionCall","src":"2746:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2736:6:101","nodeType":"YulIdentifier","src":"2736:6:101"}]}]},{"nativeSrc":"2830:130:101","nodeType":"YulBlock","src":"2830:130:101","statements":[{"nativeSrc":"2845:17:101","nodeType":"YulVariableDeclaration","src":"2845:17:101","value":{"kind":"number","nativeSrc":"2859:3:101","nodeType":"YulLiteral","src":"2859:3:101","type":"","value":"288"},"variables":[{"name":"offset","nativeSrc":"2849:6:101","nodeType":"YulTypedName","src":"2849:6:101","type":""}]},{"nativeSrc":"2876:74:101","nodeType":"YulAssignment","src":"2876:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2922:9:101","nodeType":"YulIdentifier","src":"2922:9:101"},{"name":"offset","nativeSrc":"2933:6:101","nodeType":"YulIdentifier","src":"2933:6:101"}],"functionName":{"name":"add","nativeSrc":"2918:3:101","nodeType":"YulIdentifier","src":"2918:3:101"},"nativeSrc":"2918:22:101","nodeType":"YulFunctionCall","src":"2918:22:101"},{"name":"dataEnd","nativeSrc":"2942:7:101","nodeType":"YulIdentifier","src":"2942:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2886:31:101","nodeType":"YulIdentifier","src":"2886:31:101"},"nativeSrc":"2886:64:101","nodeType":"YulFunctionCall","src":"2886:64:101"},"variableNames":[{"name":"value9","nativeSrc":"2876:6:101","nodeType":"YulIdentifier","src":"2876:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1762:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1333:9:101","nodeType":"YulTypedName","src":"1333:9:101","type":""},{"name":"dataEnd","nativeSrc":"1344:7:101","nodeType":"YulTypedName","src":"1344:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1356:6:101","nodeType":"YulTypedName","src":"1356:6:101","type":""},{"name":"value1","nativeSrc":"1364:6:101","nodeType":"YulTypedName","src":"1364:6:101","type":""},{"name":"value2","nativeSrc":"1372:6:101","nodeType":"YulTypedName","src":"1372:6:101","type":""},{"name":"value3","nativeSrc":"1380:6:101","nodeType":"YulTypedName","src":"1380:6:101","type":""},{"name":"value4","nativeSrc":"1388:6:101","nodeType":"YulTypedName","src":"1388:6:101","type":""},{"name":"value5","nativeSrc":"1396:6:101","nodeType":"YulTypedName","src":"1396:6:101","type":""},{"name":"value6","nativeSrc":"1404:6:101","nodeType":"YulTypedName","src":"1404:6:101","type":""},{"name":"value7","nativeSrc":"1412:6:101","nodeType":"YulTypedName","src":"1412:6:101","type":""},{"name":"value8","nativeSrc":"1420:6:101","nodeType":"YulTypedName","src":"1420:6:101","type":""},{"name":"value9","nativeSrc":"1428:6:101","nodeType":"YulTypedName","src":"1428:6:101","type":""}],"src":"1205:1762:101"},{"body":{"nativeSrc":"3001:152:101","nodeType":"YulBlock","src":"3001:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3018:1:101","nodeType":"YulLiteral","src":"3018:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3021:77:101","nodeType":"YulLiteral","src":"3021:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3011:6:101","nodeType":"YulIdentifier","src":"3011:6:101"},"nativeSrc":"3011:88:101","nodeType":"YulFunctionCall","src":"3011:88:101"},"nativeSrc":"3011:88:101","nodeType":"YulExpressionStatement","src":"3011:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3115:1:101","nodeType":"YulLiteral","src":"3115:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3118:4:101","nodeType":"YulLiteral","src":"3118:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3108:6:101","nodeType":"YulIdentifier","src":"3108:6:101"},"nativeSrc":"3108:15:101","nodeType":"YulFunctionCall","src":"3108:15:101"},"nativeSrc":"3108:15:101","nodeType":"YulExpressionStatement","src":"3108:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3139:1:101","nodeType":"YulLiteral","src":"3139:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3142:4:101","nodeType":"YulLiteral","src":"3142:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3132:6:101","nodeType":"YulIdentifier","src":"3132:6:101"},"nativeSrc":"3132:15:101","nodeType":"YulFunctionCall","src":"3132:15:101"},"nativeSrc":"3132:15:101","nodeType":"YulExpressionStatement","src":"3132:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2973:180:101","nodeType":"YulFunctionDefinition","src":"2973:180:101"},{"body":{"nativeSrc":"3187:152:101","nodeType":"YulBlock","src":"3187:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3204:1:101","nodeType":"YulLiteral","src":"3204:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3207:77:101","nodeType":"YulLiteral","src":"3207:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3197:6:101","nodeType":"YulIdentifier","src":"3197:6:101"},"nativeSrc":"3197:88:101","nodeType":"YulFunctionCall","src":"3197:88:101"},"nativeSrc":"3197:88:101","nodeType":"YulExpressionStatement","src":"3197:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3301:1:101","nodeType":"YulLiteral","src":"3301:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3294:6:101","nodeType":"YulIdentifier","src":"3294:6:101"},"nativeSrc":"3294:15:101","nodeType":"YulFunctionCall","src":"3294:15:101"},"nativeSrc":"3294:15:101","nodeType":"YulExpressionStatement","src":"3294:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3325:1:101","nodeType":"YulLiteral","src":"3325:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3328:4:101","nodeType":"YulLiteral","src":"3328:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3318:6:101","nodeType":"YulIdentifier","src":"3318:6:101"},"nativeSrc":"3318:15:101","nodeType":"YulFunctionCall","src":"3318:15:101"},"nativeSrc":"3318:15:101","nodeType":"YulExpressionStatement","src":"3318:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3159:180:101","nodeType":"YulFunctionDefinition","src":"3159:180:101"},{"body":{"nativeSrc":"3387:143:101","nodeType":"YulBlock","src":"3387:143:101","statements":[{"nativeSrc":"3397:25:101","nodeType":"YulAssignment","src":"3397:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3420:1:101","nodeType":"YulIdentifier","src":"3420:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3402:17:101","nodeType":"YulIdentifier","src":"3402:17:101"},"nativeSrc":"3402:20:101","nodeType":"YulFunctionCall","src":"3402:20:101"},"variableNames":[{"name":"x","nativeSrc":"3397:1:101","nodeType":"YulIdentifier","src":"3397:1:101"}]},{"nativeSrc":"3431:25:101","nodeType":"YulAssignment","src":"3431:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3454:1:101","nodeType":"YulIdentifier","src":"3454:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3436:17:101","nodeType":"YulIdentifier","src":"3436:17:101"},"nativeSrc":"3436:20:101","nodeType":"YulFunctionCall","src":"3436:20:101"},"variableNames":[{"name":"y","nativeSrc":"3431:1:101","nodeType":"YulIdentifier","src":"3431:1:101"}]},{"body":{"nativeSrc":"3478:22:101","nodeType":"YulBlock","src":"3478:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3480:16:101","nodeType":"YulIdentifier","src":"3480:16:101"},"nativeSrc":"3480:18:101","nodeType":"YulFunctionCall","src":"3480:18:101"},"nativeSrc":"3480:18:101","nodeType":"YulExpressionStatement","src":"3480:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3475:1:101","nodeType":"YulIdentifier","src":"3475:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3468:6:101","nodeType":"YulIdentifier","src":"3468:6:101"},"nativeSrc":"3468:9:101","nodeType":"YulFunctionCall","src":"3468:9:101"},"nativeSrc":"3465:35:101","nodeType":"YulIf","src":"3465:35:101"},{"nativeSrc":"3510:14:101","nodeType":"YulAssignment","src":"3510:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3519:1:101","nodeType":"YulIdentifier","src":"3519:1:101"},{"name":"y","nativeSrc":"3522:1:101","nodeType":"YulIdentifier","src":"3522:1:101"}],"functionName":{"name":"div","nativeSrc":"3515:3:101","nodeType":"YulIdentifier","src":"3515:3:101"},"nativeSrc":"3515:9:101","nodeType":"YulFunctionCall","src":"3515:9:101"},"variableNames":[{"name":"r","nativeSrc":"3510:1:101","nodeType":"YulIdentifier","src":"3510:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3345:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3376:1:101","nodeType":"YulTypedName","src":"3376:1:101","type":""},{"name":"y","nativeSrc":"3379:1:101","nodeType":"YulTypedName","src":"3379:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3385:1:101","nodeType":"YulTypedName","src":"3385:1:101","type":""}],"src":"3345:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n        if slt(sub(dataEnd, headStart), 320) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 288\n\n            value9 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516110bd3803806110bd83398101604081905261002f916101a3565b8888888888888888886100466301e133808761028c565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610138565b6100ce88610138565b6100d787610138565b6100e082610138565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261011a8a610138565b5050506001600160a01b03909616610100525061029f945050505050565b6001600160a01b03811661015f576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61017d81610162565b811461015f575f80fd5b805161016e81610174565b8061017d565b805161016e81610192565b5f805f805f805f805f806101408b8d0312156101c0576101c05f80fd5b5f6101cb8d8d610187565b9a505060206101dc8d828e01610187565b99505060406101ed8d828e01610187565b98505060606101fe8d828e01610187565b975050608061020f8d828e01610198565b96505060a06102208d828e01610198565b95505060c06102318d828e01610198565b94505060e06102428d828e01610198565b9350506101006102548d828e01610187565b9250506101206102668d828e01610198565b9150509295989b9194979a5092959850565b634e487b7160e01b5f52601260045260245ffd5b5f8261029a5761029a610278565b500490565b60805160a05160c05160e05161010051610da96103145f395f818161024501526106a701525f818161018901526108e801525f818161027501528181610574015261077b01525f8181610139015281816105a101526107aa01525f818161020b015281816102b201526108290152610da95ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780638b9d294014610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610999565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109c6565b61011e60045481565b61011e61017f3660046109f5565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a38565b6101cb6101c6366004610a57565b610360565b005b61011e60025481565b6101cb6101e4366004610a75565b6103d1565b6101f16104a5565b60405161012b9190610ab7565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a75565b61062c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61072a565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f81610777565b9392505050565b5f61032f61072a565b90505f818311801561034057508115155b61034a578261034c565b815b905061035781610777565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108cf565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108cf565b5f5461041f6301e1338084610aed565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610999565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61072a565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b00565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761072a565b9050600454818311610529578261052b565b815b6105359190610b13565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109c6565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108cf565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663282a87006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107259190610b31565b905090565b5f806003544261073a9190610b00565b90505f670de0b6b3a7640000825f546002546107569190610b4f565b6107609190610b4f565b61076a9190610aed565b60025461031f9190610b13565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107e591906109c6565b602060405180830381865afa158015610800573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108249190610b31565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610887573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ab9190610b82565b60ff1690506108bb81600a610cac565b6108c58487610b4f565b6103579190610aed565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061091f9033908690600401610cf5565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e9190610d28565b90508061098d57333083604051634a3fa29360e01b815260040161098493929190610d46565b60405180910390fd5b5050565b805b82525050565b602081016109a78284610991565b92915050565b5f6001600160a01b0382166109a7565b610993816109ad565b602081016109a782846109bd565b6109dd816109ad565b81146109e7575f80fd5b50565b80356109a7816109d4565b5f60208284031215610a0857610a085f80fd5b5f610a1384846109ea565b949350505050565b5f6109a7826109ad565b5f6109a782610a1b565b61099381610a25565b602081016109a78284610a2f565b806109dd565b80356109a781610a46565b5f60208284031215610a6a57610a6a5f80fd5b5f610a138484610a4c565b5f8060408385031215610a8957610a895f80fd5b5f610a948585610a4c565b9250506020610aa585828601610a4c565b9150509250929050565b801515610993565b602081016109a78284610aaf565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610afb57610afb610ac5565b500490565b818103818111156109a7576109a7610ad9565b808201808211156109a7576109a7610ad9565b80516109a781610a46565b5f60208284031215610b4457610b445f80fd5b5f610a138484610b26565b818102808215838204851417610b6757610b67610ad9565b5092915050565b60ff81166109dd565b80516109a781610b6e565b5f60208284031215610b9557610b955f80fd5b5f610a138484610b77565b80825b6001851115610bdf57808604811115610bbe57610bbe610ad9565b6001851615610bcc57908102905b8002610bd88560011c90565b9450610ba3565b94509492505050565b5f82610bf65750600161031f565b81610c0257505f61031f565b8160018114610c185760028114610c2257610c4f565b600191505061031f565b60ff841115610c3357610c33610ad9565b8360020a915084821115610c4957610c49610ad9565b5061031f565b5060208310610133831016604e8410600b8410161715610c82575081810a83811115610c7d57610c7d610ad9565b61031f565b610c8f8484846001610ba0565b92509050818404811115610ca557610ca5610ad9565b0292915050565b5f61031f5f198484610be8565b8281835e505f910152565b5f610ccd825190565b808452602084019350610ce4818560208601610cb9565b601f01601f19169290920192915050565b60408101610d0382856109bd565b8181036020830152610a138184610cc4565b8015156109dd565b80516109a781610d15565b5f60208284031215610d3b57610d3b5f80fd5b5f610a138484610d1d565b60608101610d5482866109bd565b610d6160208301856109bd565b81810360408301526103578184610cc456fea264697066735822122067ba5d5be4032274271349b635df0305c4b9410f3b6f84906fbe92b2ec83ae8664736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10BD CODESIZE SUB DUP1 PUSH2 0x10BD DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1A3 JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x28C JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x138 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x11A DUP11 PUSH2 0x138 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH2 0x100 MSTORE POP PUSH2 0x29F SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17D DUP2 PUSH2 0x162 JUMP JUMPDEST DUP2 EQ PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x174 JUMP JUMPDEST DUP1 PUSH2 0x17D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x192 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x1C0 JUMPI PUSH2 0x1C0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CB DUP14 DUP14 PUSH2 0x187 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x1DC DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x1ED DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x1FE DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x20F DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x220 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x231 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 PUSH2 0x242 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 PUSH2 0x254 DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 PUSH2 0x266 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x29A JUMPI PUSH2 0x29A PUSH2 0x278 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xDA9 PUSH2 0x314 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x245 ADD MSTORE PUSH2 0x6A7 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x189 ADD MSTORE PUSH2 0x8E8 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x275 ADD MSTORE DUP2 DUP2 PUSH2 0x574 ADD MSTORE PUSH2 0x77B ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x5A1 ADD MSTORE PUSH2 0x7AA ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x20B ADD MSTORE DUP2 DUP2 PUSH2 0x2B2 ADD MSTORE PUSH2 0x829 ADD MSTORE PUSH2 0xDA9 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x8B9D2940 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x72A JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xAED JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x72A JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB00 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x282A8700 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 0x701 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x725 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x73A SWAP2 SWAP1 PUSH2 0xB00 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x756 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x760 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x800 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x824 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x887 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8AB SWAP2 SWAP1 PUSH2 0xB82 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8BB DUP2 PUSH1 0xA PUSH2 0xCAC JUMP JUMPDEST PUSH2 0x8C5 DUP5 DUP8 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x91F SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x95E SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x98D JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x984 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9A7 JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0x9DD DUP2 PUSH2 0x9AD JUMP JUMPDEST DUP2 EQ PUSH2 0x9E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0x9D4 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA08 JUMPI PUSH2 0xA08 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0x9EA JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0x9AD JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0xA1B JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0xA25 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xA2F JUMP JUMPDEST DUP1 PUSH2 0x9DD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA6A JUMPI PUSH2 0xA6A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xA4C JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA89 JUMPI PUSH2 0xA89 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA94 DUP6 DUP6 PUSH2 0xA4C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA5 DUP6 DUP3 DUP7 ADD PUSH2 0xA4C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x993 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xAAF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAFB JUMPI PUSH2 0xAFB PUSH2 0xAC5 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB44 JUMPI PUSH2 0xB44 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB26 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB67 JUMPI PUSH2 0xB67 PUSH2 0xAD9 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xB6E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB77 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBDF JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBBE JUMPI PUSH2 0xBBE PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBCC JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBD8 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBA3 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBF6 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC02 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC18 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC22 JUMPI PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC33 JUMPI PUSH2 0xC33 PUSH2 0xAD9 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC49 PUSH2 0xAD9 JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC82 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC7D JUMPI PUSH2 0xC7D PUSH2 0xAD9 JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xC8F DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBA0 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCA5 JUMPI PUSH2 0xCA5 PUSH2 0xAD9 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBE8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCCD DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD03 DUP3 DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA13 DUP2 DUP5 PUSH2 0xCC4 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xD15 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xD1D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD54 DUP3 DUP7 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0xD61 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCC4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0xBA5D5BE403227427 SGT BLOBHASH 0xB6 CALLDATALOAD 0xDF SUB SDIV 0xC4 0xB9 COINBASE 0xF EXTCODESIZE PUSH16 0x84906FBE92B2EC83AE8664736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"479:1196:62:-:0;;;686:765;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1083:8;1105:4;1123:15;1152:16;1182:17;1213:30;1257:24;1295:20;1329:12;3527:36:67;408:10:17;1152:16:62;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1366:32:62::1;1387:10:::0;1366:20:::1;:32::i;:::-;-1:-1:-1::0;;;;;;;;1408:36:62;;::::1;;::::0;-1:-1:-1;479:1196:62;;-1:-1:-1;;;;;479:1196:62;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1762::-;1356:6;1364;1372;1380;1388;1396;1404;1412;1420;1428;1477:3;1465:9;1456:7;1452:23;1448:33;1445:120;;;1484:79;197:1;194;187:12;1484:79;1604:1;1629:64;1685:7;1665:9;1629:64;:::i;:::-;1619:74;;1575:128;1742:2;1768:64;1824:7;1815:6;1804:9;1800:22;1768:64;:::i;:::-;1758:74;;1713:129;1881:2;1907:64;1963:7;1954:6;1943:9;1939:22;1907:64;:::i;:::-;1897:74;;1852:129;2020:2;2046:64;2102:7;2093:6;2082:9;2078:22;2046:64;:::i;:::-;2036:74;;1991:129;2159:3;2186:64;2242:7;2233:6;2222:9;2218:22;2186:64;:::i;:::-;2176:74;;2130:130;2299:3;2326:64;2382:7;2373:6;2362:9;2358:22;2326:64;:::i;:::-;2316:74;;2270:130;2439:3;2466:64;2522:7;2513:6;2502:9;2498:22;2466:64;:::i;:::-;2456:74;;2410:130;2579:3;2606:64;2662:7;2653:6;2642:9;2638:22;2606:64;:::i;:::-;2596:74;;2550:130;2719:3;2746:64;2802:7;2793:6;2782:9;2778:22;2746:64;:::i;:::-;2736:74;;2690:130;2859:3;2886:64;2942:7;2933:6;2922:9;2918:22;2886:64;:::i;:::-;2876:74;;2830:130;1205:1762;;;;;;;;;;;;;:::o;2973:180::-;-1:-1:-1;;;3018:1:101;3011:88;3118:4;3115:1;3108:15;3142:4;3139:1;3132:15;3345:185;3385:1;3475;3465:35;;3480:18;;:::i;:::-;-1:-1:-1;3515:9:101;;3345:185::o;:::-;479:1196:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@ACCOUNTANT_6165":{"entryPoint":null,"id":6165,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1911,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2255,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1834,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":687,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_6223":{"entryPoint":1700,"id":6223,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1189,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":977,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":864,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1580,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1248,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2538,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3357,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2854,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2935,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2549,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3368,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2647,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2865,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2677,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2946,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2493,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2735,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2607,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3268,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2449,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2502,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3398,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3317,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2743,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2616,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccountant_$3450__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2457,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2835,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2797,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2976,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3244,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3048,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2895,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2816,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2477,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2597,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccountant_$3450_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2587,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3257,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2777,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2757,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2516,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3349,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2630,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2926,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13165:101","nodeType":"YulBlock","src":"0:13165:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4561:66:101","nodeType":"YulBlock","src":"4561:66:101","statements":[{"nativeSrc":"4571:50:101","nodeType":"YulAssignment","src":"4571:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4615:5:101","nodeType":"YulIdentifier","src":"4615:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4584:30:101","nodeType":"YulIdentifier","src":"4584:30:101"},"nativeSrc":"4584:37:101","nodeType":"YulFunctionCall","src":"4584:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4571:9:101","nodeType":"YulIdentifier","src":"4571:9:101"}]}]},"name":"convert_t_contract$_IAccountant_$3450_to_t_address","nativeSrc":"4481:146:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4541:5:101","nodeType":"YulTypedName","src":"4541:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4551:9:101","nodeType":"YulTypedName","src":"4551:9:101","type":""}],"src":"4481:146:101"},{"body":{"nativeSrc":"4718:86:101","nodeType":"YulBlock","src":"4718:86:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4735:3:101","nodeType":"YulIdentifier","src":"4735:3:101"},{"arguments":[{"name":"value","nativeSrc":"4791:5:101","nodeType":"YulIdentifier","src":"4791:5:101"}],"functionName":{"name":"convert_t_contract$_IAccountant_$3450_to_t_address","nativeSrc":"4740:50:101","nodeType":"YulIdentifier","src":"4740:50:101"},"nativeSrc":"4740:57:101","nodeType":"YulFunctionCall","src":"4740:57:101"}],"functionName":{"name":"mstore","nativeSrc":"4728:6:101","nodeType":"YulIdentifier","src":"4728:6:101"},"nativeSrc":"4728:70:101","nodeType":"YulFunctionCall","src":"4728:70:101"},"nativeSrc":"4728:70:101","nodeType":"YulExpressionStatement","src":"4728:70:101"}]},"name":"abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack","nativeSrc":"4633:171:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4706:5:101","nodeType":"YulTypedName","src":"4706:5:101","type":""},{"name":"pos","nativeSrc":"4713:3:101","nodeType":"YulTypedName","src":"4713:3:101","type":""}],"src":"4633:171:101"},{"body":{"nativeSrc":"4928:144:101","nodeType":"YulBlock","src":"4928:144:101","statements":[{"nativeSrc":"4938:26:101","nodeType":"YulAssignment","src":"4938:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4950:9:101","nodeType":"YulIdentifier","src":"4950:9:101"},{"kind":"number","nativeSrc":"4961:2:101","nodeType":"YulLiteral","src":"4961:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4946:3:101","nodeType":"YulIdentifier","src":"4946:3:101"},"nativeSrc":"4946:18:101","nodeType":"YulFunctionCall","src":"4946:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4938:4:101","nodeType":"YulIdentifier","src":"4938:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5038:6:101","nodeType":"YulIdentifier","src":"5038:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5051:9:101","nodeType":"YulIdentifier","src":"5051:9:101"},{"kind":"number","nativeSrc":"5062:1:101","nodeType":"YulLiteral","src":"5062:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5047:3:101","nodeType":"YulIdentifier","src":"5047:3:101"},"nativeSrc":"5047:17:101","nodeType":"YulFunctionCall","src":"5047:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack","nativeSrc":"4974:63:101","nodeType":"YulIdentifier","src":"4974:63:101"},"nativeSrc":"4974:91:101","nodeType":"YulFunctionCall","src":"4974:91:101"},"nativeSrc":"4974:91:101","nodeType":"YulExpressionStatement","src":"4974:91:101"}]},"name":"abi_encode_tuple_t_contract$_IAccountant_$3450__to_t_address__fromStack_reversed","nativeSrc":"4810:262:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4900:9:101","nodeType":"YulTypedName","src":"4900:9:101","type":""},{"name":"value0","nativeSrc":"4912:6:101","nodeType":"YulTypedName","src":"4912:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4923:4:101","nodeType":"YulTypedName","src":"4923:4:101","type":""}],"src":"4810:262:101"},{"body":{"nativeSrc":"5171:66:101","nodeType":"YulBlock","src":"5171:66:101","statements":[{"nativeSrc":"5181:50:101","nodeType":"YulAssignment","src":"5181:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5225:5:101","nodeType":"YulIdentifier","src":"5225:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5194:30:101","nodeType":"YulIdentifier","src":"5194:30:101"},"nativeSrc":"5194:37:101","nodeType":"YulFunctionCall","src":"5194:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5181:9:101","nodeType":"YulIdentifier","src":"5181:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5078:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5151:5:101","nodeType":"YulTypedName","src":"5151:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5161:9:101","nodeType":"YulTypedName","src":"5161:9:101","type":""}],"src":"5078:159:101"},{"body":{"nativeSrc":"5341:99:101","nodeType":"YulBlock","src":"5341:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5358:3:101","nodeType":"YulIdentifier","src":"5358:3:101"},{"arguments":[{"name":"value","nativeSrc":"5427:5:101","nodeType":"YulIdentifier","src":"5427:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5363:63:101","nodeType":"YulIdentifier","src":"5363:63:101"},"nativeSrc":"5363:70:101","nodeType":"YulFunctionCall","src":"5363:70:101"}],"functionName":{"name":"mstore","nativeSrc":"5351:6:101","nodeType":"YulIdentifier","src":"5351:6:101"},"nativeSrc":"5351:83:101","nodeType":"YulFunctionCall","src":"5351:83:101"},"nativeSrc":"5351:83:101","nodeType":"YulExpressionStatement","src":"5351:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5243:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5329:5:101","nodeType":"YulTypedName","src":"5329:5:101","type":""},{"name":"pos","nativeSrc":"5336:3:101","nodeType":"YulTypedName","src":"5336:3:101","type":""}],"src":"5243:197:101"},{"body":{"nativeSrc":"5577:157:101","nodeType":"YulBlock","src":"5577:157:101","statements":[{"nativeSrc":"5587:26:101","nodeType":"YulAssignment","src":"5587:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5599:9:101","nodeType":"YulIdentifier","src":"5599:9:101"},{"kind":"number","nativeSrc":"5610:2:101","nodeType":"YulLiteral","src":"5610:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5595:3:101","nodeType":"YulIdentifier","src":"5595:3:101"},"nativeSrc":"5595:18:101","nodeType":"YulFunctionCall","src":"5595:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5587:4:101","nodeType":"YulIdentifier","src":"5587:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5700:6:101","nodeType":"YulIdentifier","src":"5700:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5713:9:101","nodeType":"YulIdentifier","src":"5713:9:101"},{"kind":"number","nativeSrc":"5724:1:101","nodeType":"YulLiteral","src":"5724:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5709:3:101","nodeType":"YulIdentifier","src":"5709:3:101"},"nativeSrc":"5709:17:101","nodeType":"YulFunctionCall","src":"5709:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5623:76:101","nodeType":"YulIdentifier","src":"5623:76:101"},"nativeSrc":"5623:104:101","nodeType":"YulFunctionCall","src":"5623:104:101"},"nativeSrc":"5623:104:101","nodeType":"YulExpressionStatement","src":"5623:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"5446:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5549:9:101","nodeType":"YulTypedName","src":"5549:9:101","type":""},{"name":"value0","nativeSrc":"5561:6:101","nodeType":"YulTypedName","src":"5561:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5572:4:101","nodeType":"YulTypedName","src":"5572:4:101","type":""}],"src":"5446:288:101"},{"body":{"nativeSrc":"5768:152:101","nodeType":"YulBlock","src":"5768:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5785:1:101","nodeType":"YulLiteral","src":"5785:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5788:77:101","nodeType":"YulLiteral","src":"5788:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5778:6:101","nodeType":"YulIdentifier","src":"5778:6:101"},"nativeSrc":"5778:88:101","nodeType":"YulFunctionCall","src":"5778:88:101"},"nativeSrc":"5778:88:101","nodeType":"YulExpressionStatement","src":"5778:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5882:1:101","nodeType":"YulLiteral","src":"5882:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5885:4:101","nodeType":"YulLiteral","src":"5885:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5875:6:101","nodeType":"YulIdentifier","src":"5875:6:101"},"nativeSrc":"5875:15:101","nodeType":"YulFunctionCall","src":"5875:15:101"},"nativeSrc":"5875:15:101","nodeType":"YulExpressionStatement","src":"5875:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5906:1:101","nodeType":"YulLiteral","src":"5906:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5909:4:101","nodeType":"YulLiteral","src":"5909:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5899:6:101","nodeType":"YulIdentifier","src":"5899:6:101"},"nativeSrc":"5899:15:101","nodeType":"YulFunctionCall","src":"5899:15:101"},"nativeSrc":"5899:15:101","nodeType":"YulExpressionStatement","src":"5899:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5740:180:101","nodeType":"YulFunctionDefinition","src":"5740:180:101"},{"body":{"nativeSrc":"5954:152:101","nodeType":"YulBlock","src":"5954:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5971:1:101","nodeType":"YulLiteral","src":"5971:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5974:77:101","nodeType":"YulLiteral","src":"5974:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5964:6:101","nodeType":"YulIdentifier","src":"5964:6:101"},"nativeSrc":"5964:88:101","nodeType":"YulFunctionCall","src":"5964:88:101"},"nativeSrc":"5964:88:101","nodeType":"YulExpressionStatement","src":"5964:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6068:1:101","nodeType":"YulLiteral","src":"6068:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6071:4:101","nodeType":"YulLiteral","src":"6071:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6061:6:101","nodeType":"YulIdentifier","src":"6061:6:101"},"nativeSrc":"6061:15:101","nodeType":"YulFunctionCall","src":"6061:15:101"},"nativeSrc":"6061:15:101","nodeType":"YulExpressionStatement","src":"6061:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6092:1:101","nodeType":"YulLiteral","src":"6092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6095:4:101","nodeType":"YulLiteral","src":"6095:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6085:6:101","nodeType":"YulIdentifier","src":"6085:6:101"},"nativeSrc":"6085:15:101","nodeType":"YulFunctionCall","src":"6085:15:101"},"nativeSrc":"6085:15:101","nodeType":"YulExpressionStatement","src":"6085:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5926:180:101","nodeType":"YulFunctionDefinition","src":"5926:180:101"},{"body":{"nativeSrc":"6154:143:101","nodeType":"YulBlock","src":"6154:143:101","statements":[{"nativeSrc":"6164:25:101","nodeType":"YulAssignment","src":"6164:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6187:1:101","nodeType":"YulIdentifier","src":"6187:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6169:17:101","nodeType":"YulIdentifier","src":"6169:17:101"},"nativeSrc":"6169:20:101","nodeType":"YulFunctionCall","src":"6169:20:101"},"variableNames":[{"name":"x","nativeSrc":"6164:1:101","nodeType":"YulIdentifier","src":"6164:1:101"}]},{"nativeSrc":"6198:25:101","nodeType":"YulAssignment","src":"6198:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6221:1:101","nodeType":"YulIdentifier","src":"6221:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6203:17:101","nodeType":"YulIdentifier","src":"6203:17:101"},"nativeSrc":"6203:20:101","nodeType":"YulFunctionCall","src":"6203:20:101"},"variableNames":[{"name":"y","nativeSrc":"6198:1:101","nodeType":"YulIdentifier","src":"6198:1:101"}]},{"body":{"nativeSrc":"6245:22:101","nodeType":"YulBlock","src":"6245:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6247:16:101","nodeType":"YulIdentifier","src":"6247:16:101"},"nativeSrc":"6247:18:101","nodeType":"YulFunctionCall","src":"6247:18:101"},"nativeSrc":"6247:18:101","nodeType":"YulExpressionStatement","src":"6247:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6242:1:101","nodeType":"YulIdentifier","src":"6242:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6235:6:101","nodeType":"YulIdentifier","src":"6235:6:101"},"nativeSrc":"6235:9:101","nodeType":"YulFunctionCall","src":"6235:9:101"},"nativeSrc":"6232:35:101","nodeType":"YulIf","src":"6232:35:101"},{"nativeSrc":"6277:14:101","nodeType":"YulAssignment","src":"6277:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6286:1:101","nodeType":"YulIdentifier","src":"6286:1:101"},{"name":"y","nativeSrc":"6289:1:101","nodeType":"YulIdentifier","src":"6289:1:101"}],"functionName":{"name":"div","nativeSrc":"6282:3:101","nodeType":"YulIdentifier","src":"6282:3:101"},"nativeSrc":"6282:9:101","nodeType":"YulFunctionCall","src":"6282:9:101"},"variableNames":[{"name":"r","nativeSrc":"6277:1:101","nodeType":"YulIdentifier","src":"6277:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6112:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6143:1:101","nodeType":"YulTypedName","src":"6143:1:101","type":""},{"name":"y","nativeSrc":"6146:1:101","nodeType":"YulTypedName","src":"6146:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6152:1:101","nodeType":"YulTypedName","src":"6152:1:101","type":""}],"src":"6112:185:101"},{"body":{"nativeSrc":"6348:149:101","nodeType":"YulBlock","src":"6348:149:101","statements":[{"nativeSrc":"6358:25:101","nodeType":"YulAssignment","src":"6358:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6381:1:101","nodeType":"YulIdentifier","src":"6381:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6363:17:101","nodeType":"YulIdentifier","src":"6363:17:101"},"nativeSrc":"6363:20:101","nodeType":"YulFunctionCall","src":"6363:20:101"},"variableNames":[{"name":"x","nativeSrc":"6358:1:101","nodeType":"YulIdentifier","src":"6358:1:101"}]},{"nativeSrc":"6392:25:101","nodeType":"YulAssignment","src":"6392:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6415:1:101","nodeType":"YulIdentifier","src":"6415:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6397:17:101","nodeType":"YulIdentifier","src":"6397:17:101"},"nativeSrc":"6397:20:101","nodeType":"YulFunctionCall","src":"6397:20:101"},"variableNames":[{"name":"y","nativeSrc":"6392:1:101","nodeType":"YulIdentifier","src":"6392:1:101"}]},{"nativeSrc":"6426:17:101","nodeType":"YulAssignment","src":"6426:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6438:1:101","nodeType":"YulIdentifier","src":"6438:1:101"},{"name":"y","nativeSrc":"6441:1:101","nodeType":"YulIdentifier","src":"6441:1:101"}],"functionName":{"name":"sub","nativeSrc":"6434:3:101","nodeType":"YulIdentifier","src":"6434:3:101"},"nativeSrc":"6434:9:101","nodeType":"YulFunctionCall","src":"6434:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6426:4:101","nodeType":"YulIdentifier","src":"6426:4:101"}]},{"body":{"nativeSrc":"6468:22:101","nodeType":"YulBlock","src":"6468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6470:16:101","nodeType":"YulIdentifier","src":"6470:16:101"},"nativeSrc":"6470:18:101","nodeType":"YulFunctionCall","src":"6470:18:101"},"nativeSrc":"6470:18:101","nodeType":"YulExpressionStatement","src":"6470:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6459:4:101","nodeType":"YulIdentifier","src":"6459:4:101"},{"name":"x","nativeSrc":"6465:1:101","nodeType":"YulIdentifier","src":"6465:1:101"}],"functionName":{"name":"gt","nativeSrc":"6456:2:101","nodeType":"YulIdentifier","src":"6456:2:101"},"nativeSrc":"6456:11:101","nodeType":"YulFunctionCall","src":"6456:11:101"},"nativeSrc":"6453:37:101","nodeType":"YulIf","src":"6453:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6303:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6334:1:101","nodeType":"YulTypedName","src":"6334:1:101","type":""},{"name":"y","nativeSrc":"6337:1:101","nodeType":"YulTypedName","src":"6337:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6343:4:101","nodeType":"YulTypedName","src":"6343:4:101","type":""}],"src":"6303:194:101"},{"body":{"nativeSrc":"6547:147:101","nodeType":"YulBlock","src":"6547:147:101","statements":[{"nativeSrc":"6557:25:101","nodeType":"YulAssignment","src":"6557:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6580:1:101","nodeType":"YulIdentifier","src":"6580:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6562:17:101","nodeType":"YulIdentifier","src":"6562:17:101"},"nativeSrc":"6562:20:101","nodeType":"YulFunctionCall","src":"6562:20:101"},"variableNames":[{"name":"x","nativeSrc":"6557:1:101","nodeType":"YulIdentifier","src":"6557:1:101"}]},{"nativeSrc":"6591:25:101","nodeType":"YulAssignment","src":"6591:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6614:1:101","nodeType":"YulIdentifier","src":"6614:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6596:17:101","nodeType":"YulIdentifier","src":"6596:17:101"},"nativeSrc":"6596:20:101","nodeType":"YulFunctionCall","src":"6596:20:101"},"variableNames":[{"name":"y","nativeSrc":"6591:1:101","nodeType":"YulIdentifier","src":"6591:1:101"}]},{"nativeSrc":"6625:16:101","nodeType":"YulAssignment","src":"6625:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6636:1:101","nodeType":"YulIdentifier","src":"6636:1:101"},{"name":"y","nativeSrc":"6639:1:101","nodeType":"YulIdentifier","src":"6639:1:101"}],"functionName":{"name":"add","nativeSrc":"6632:3:101","nodeType":"YulIdentifier","src":"6632:3:101"},"nativeSrc":"6632:9:101","nodeType":"YulFunctionCall","src":"6632:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6625:3:101","nodeType":"YulIdentifier","src":"6625:3:101"}]},{"body":{"nativeSrc":"6665:22:101","nodeType":"YulBlock","src":"6665:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6667:16:101","nodeType":"YulIdentifier","src":"6667:16:101"},"nativeSrc":"6667:18:101","nodeType":"YulFunctionCall","src":"6667:18:101"},"nativeSrc":"6667:18:101","nodeType":"YulExpressionStatement","src":"6667:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6657:1:101","nodeType":"YulIdentifier","src":"6657:1:101"},{"name":"sum","nativeSrc":"6660:3:101","nodeType":"YulIdentifier","src":"6660:3:101"}],"functionName":{"name":"gt","nativeSrc":"6654:2:101","nodeType":"YulIdentifier","src":"6654:2:101"},"nativeSrc":"6654:10:101","nodeType":"YulFunctionCall","src":"6654:10:101"},"nativeSrc":"6651:36:101","nodeType":"YulIf","src":"6651:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6503:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6534:1:101","nodeType":"YulTypedName","src":"6534:1:101","type":""},{"name":"y","nativeSrc":"6537:1:101","nodeType":"YulTypedName","src":"6537:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6543:3:101","nodeType":"YulTypedName","src":"6543:3:101","type":""}],"src":"6503:191:101"},{"body":{"nativeSrc":"6763:80:101","nodeType":"YulBlock","src":"6763:80:101","statements":[{"nativeSrc":"6773:22:101","nodeType":"YulAssignment","src":"6773:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6788:6:101","nodeType":"YulIdentifier","src":"6788:6:101"}],"functionName":{"name":"mload","nativeSrc":"6782:5:101","nodeType":"YulIdentifier","src":"6782:5:101"},"nativeSrc":"6782:13:101","nodeType":"YulFunctionCall","src":"6782:13:101"},"variableNames":[{"name":"value","nativeSrc":"6773:5:101","nodeType":"YulIdentifier","src":"6773:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6831:5:101","nodeType":"YulIdentifier","src":"6831:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6804:26:101","nodeType":"YulIdentifier","src":"6804:26:101"},"nativeSrc":"6804:33:101","nodeType":"YulFunctionCall","src":"6804:33:101"},"nativeSrc":"6804:33:101","nodeType":"YulExpressionStatement","src":"6804:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6700:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6741:6:101","nodeType":"YulTypedName","src":"6741:6:101","type":""},{"name":"end","nativeSrc":"6749:3:101","nodeType":"YulTypedName","src":"6749:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6757:5:101","nodeType":"YulTypedName","src":"6757:5:101","type":""}],"src":"6700:143:101"},{"body":{"nativeSrc":"6926:274:101","nodeType":"YulBlock","src":"6926:274:101","statements":[{"body":{"nativeSrc":"6972:83:101","nodeType":"YulBlock","src":"6972:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6974:77:101","nodeType":"YulIdentifier","src":"6974:77:101"},"nativeSrc":"6974:79:101","nodeType":"YulFunctionCall","src":"6974:79:101"},"nativeSrc":"6974:79:101","nodeType":"YulExpressionStatement","src":"6974:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6947:7:101","nodeType":"YulIdentifier","src":"6947:7:101"},{"name":"headStart","nativeSrc":"6956:9:101","nodeType":"YulIdentifier","src":"6956:9:101"}],"functionName":{"name":"sub","nativeSrc":"6943:3:101","nodeType":"YulIdentifier","src":"6943:3:101"},"nativeSrc":"6943:23:101","nodeType":"YulFunctionCall","src":"6943:23:101"},{"kind":"number","nativeSrc":"6968:2:101","nodeType":"YulLiteral","src":"6968:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6939:3:101","nodeType":"YulIdentifier","src":"6939:3:101"},"nativeSrc":"6939:32:101","nodeType":"YulFunctionCall","src":"6939:32:101"},"nativeSrc":"6936:119:101","nodeType":"YulIf","src":"6936:119:101"},{"nativeSrc":"7065:128:101","nodeType":"YulBlock","src":"7065:128:101","statements":[{"nativeSrc":"7080:15:101","nodeType":"YulVariableDeclaration","src":"7080:15:101","value":{"kind":"number","nativeSrc":"7094:1:101","nodeType":"YulLiteral","src":"7094:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7084:6:101","nodeType":"YulTypedName","src":"7084:6:101","type":""}]},{"nativeSrc":"7109:74:101","nodeType":"YulAssignment","src":"7109:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7155:9:101","nodeType":"YulIdentifier","src":"7155:9:101"},{"name":"offset","nativeSrc":"7166:6:101","nodeType":"YulIdentifier","src":"7166:6:101"}],"functionName":{"name":"add","nativeSrc":"7151:3:101","nodeType":"YulIdentifier","src":"7151:3:101"},"nativeSrc":"7151:22:101","nodeType":"YulFunctionCall","src":"7151:22:101"},{"name":"dataEnd","nativeSrc":"7175:7:101","nodeType":"YulIdentifier","src":"7175:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7119:31:101","nodeType":"YulIdentifier","src":"7119:31:101"},"nativeSrc":"7119:64:101","nodeType":"YulFunctionCall","src":"7119:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7109:6:101","nodeType":"YulIdentifier","src":"7109:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6849:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6896:9:101","nodeType":"YulTypedName","src":"6896:9:101","type":""},{"name":"dataEnd","nativeSrc":"6907:7:101","nodeType":"YulTypedName","src":"6907:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6919:6:101","nodeType":"YulTypedName","src":"6919:6:101","type":""}],"src":"6849:351:101"},{"body":{"nativeSrc":"7254:362:101","nodeType":"YulBlock","src":"7254:362:101","statements":[{"nativeSrc":"7264:25:101","nodeType":"YulAssignment","src":"7264:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7287:1:101","nodeType":"YulIdentifier","src":"7287:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7269:17:101","nodeType":"YulIdentifier","src":"7269:17:101"},"nativeSrc":"7269:20:101","nodeType":"YulFunctionCall","src":"7269:20:101"},"variableNames":[{"name":"x","nativeSrc":"7264:1:101","nodeType":"YulIdentifier","src":"7264:1:101"}]},{"nativeSrc":"7298:25:101","nodeType":"YulAssignment","src":"7298:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7321:1:101","nodeType":"YulIdentifier","src":"7321:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7303:17:101","nodeType":"YulIdentifier","src":"7303:17:101"},"nativeSrc":"7303:20:101","nodeType":"YulFunctionCall","src":"7303:20:101"},"variableNames":[{"name":"y","nativeSrc":"7298:1:101","nodeType":"YulIdentifier","src":"7298:1:101"}]},{"nativeSrc":"7332:28:101","nodeType":"YulVariableDeclaration","src":"7332:28:101","value":{"arguments":[{"name":"x","nativeSrc":"7355:1:101","nodeType":"YulIdentifier","src":"7355:1:101"},{"name":"y","nativeSrc":"7358:1:101","nodeType":"YulIdentifier","src":"7358:1:101"}],"functionName":{"name":"mul","nativeSrc":"7351:3:101","nodeType":"YulIdentifier","src":"7351:3:101"},"nativeSrc":"7351:9:101","nodeType":"YulFunctionCall","src":"7351:9:101"},"variables":[{"name":"product_raw","nativeSrc":"7336:11:101","nodeType":"YulTypedName","src":"7336:11:101","type":""}]},{"nativeSrc":"7369:41:101","nodeType":"YulAssignment","src":"7369:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"7398:11:101","nodeType":"YulIdentifier","src":"7398:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7380:17:101","nodeType":"YulIdentifier","src":"7380:17:101"},"nativeSrc":"7380:30:101","nodeType":"YulFunctionCall","src":"7380:30:101"},"variableNames":[{"name":"product","nativeSrc":"7369:7:101","nodeType":"YulIdentifier","src":"7369:7:101"}]},{"body":{"nativeSrc":"7587:22:101","nodeType":"YulBlock","src":"7587:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7589:16:101","nodeType":"YulIdentifier","src":"7589:16:101"},"nativeSrc":"7589:18:101","nodeType":"YulFunctionCall","src":"7589:18:101"},"nativeSrc":"7589:18:101","nodeType":"YulExpressionStatement","src":"7589:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7520:1:101","nodeType":"YulIdentifier","src":"7520:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7513:6:101","nodeType":"YulIdentifier","src":"7513:6:101"},"nativeSrc":"7513:9:101","nodeType":"YulFunctionCall","src":"7513:9:101"},{"arguments":[{"name":"y","nativeSrc":"7543:1:101","nodeType":"YulIdentifier","src":"7543:1:101"},{"arguments":[{"name":"product","nativeSrc":"7550:7:101","nodeType":"YulIdentifier","src":"7550:7:101"},{"name":"x","nativeSrc":"7559:1:101","nodeType":"YulIdentifier","src":"7559:1:101"}],"functionName":{"name":"div","nativeSrc":"7546:3:101","nodeType":"YulIdentifier","src":"7546:3:101"},"nativeSrc":"7546:15:101","nodeType":"YulFunctionCall","src":"7546:15:101"}],"functionName":{"name":"eq","nativeSrc":"7540:2:101","nodeType":"YulIdentifier","src":"7540:2:101"},"nativeSrc":"7540:22:101","nodeType":"YulFunctionCall","src":"7540:22:101"}],"functionName":{"name":"or","nativeSrc":"7493:2:101","nodeType":"YulIdentifier","src":"7493:2:101"},"nativeSrc":"7493:83:101","nodeType":"YulFunctionCall","src":"7493:83:101"}],"functionName":{"name":"iszero","nativeSrc":"7473:6:101","nodeType":"YulIdentifier","src":"7473:6:101"},"nativeSrc":"7473:113:101","nodeType":"YulFunctionCall","src":"7473:113:101"},"nativeSrc":"7470:139:101","nodeType":"YulIf","src":"7470:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"7206:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7237:1:101","nodeType":"YulTypedName","src":"7237:1:101","type":""},{"name":"y","nativeSrc":"7240:1:101","nodeType":"YulTypedName","src":"7240:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7246:7:101","nodeType":"YulTypedName","src":"7246:7:101","type":""}],"src":"7206:410:101"},{"body":{"nativeSrc":"7665:43:101","nodeType":"YulBlock","src":"7665:43:101","statements":[{"nativeSrc":"7675:27:101","nodeType":"YulAssignment","src":"7675:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7690:5:101","nodeType":"YulIdentifier","src":"7690:5:101"},{"kind":"number","nativeSrc":"7697:4:101","nodeType":"YulLiteral","src":"7697:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7686:3:101","nodeType":"YulIdentifier","src":"7686:3:101"},"nativeSrc":"7686:16:101","nodeType":"YulFunctionCall","src":"7686:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7675:7:101","nodeType":"YulIdentifier","src":"7675:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7622:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7647:5:101","nodeType":"YulTypedName","src":"7647:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7657:7:101","nodeType":"YulTypedName","src":"7657:7:101","type":""}],"src":"7622:86:101"},{"body":{"nativeSrc":"7755:77:101","nodeType":"YulBlock","src":"7755:77:101","statements":[{"body":{"nativeSrc":"7810:16:101","nodeType":"YulBlock","src":"7810:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7819:1:101","nodeType":"YulLiteral","src":"7819:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7822:1:101","nodeType":"YulLiteral","src":"7822:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7812:6:101","nodeType":"YulIdentifier","src":"7812:6:101"},"nativeSrc":"7812:12:101","nodeType":"YulFunctionCall","src":"7812:12:101"},"nativeSrc":"7812:12:101","nodeType":"YulExpressionStatement","src":"7812:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7778:5:101","nodeType":"YulIdentifier","src":"7778:5:101"},{"arguments":[{"name":"value","nativeSrc":"7801:5:101","nodeType":"YulIdentifier","src":"7801:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7785:15:101","nodeType":"YulIdentifier","src":"7785:15:101"},"nativeSrc":"7785:22:101","nodeType":"YulFunctionCall","src":"7785:22:101"}],"functionName":{"name":"eq","nativeSrc":"7775:2:101","nodeType":"YulIdentifier","src":"7775:2:101"},"nativeSrc":"7775:33:101","nodeType":"YulFunctionCall","src":"7775:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7768:6:101","nodeType":"YulIdentifier","src":"7768:6:101"},"nativeSrc":"7768:41:101","nodeType":"YulFunctionCall","src":"7768:41:101"},"nativeSrc":"7765:61:101","nodeType":"YulIf","src":"7765:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7714:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7748:5:101","nodeType":"YulTypedName","src":"7748:5:101","type":""}],"src":"7714:118:101"},{"body":{"nativeSrc":"7899:78:101","nodeType":"YulBlock","src":"7899:78:101","statements":[{"nativeSrc":"7909:22:101","nodeType":"YulAssignment","src":"7909:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7924:6:101","nodeType":"YulIdentifier","src":"7924:6:101"}],"functionName":{"name":"mload","nativeSrc":"7918:5:101","nodeType":"YulIdentifier","src":"7918:5:101"},"nativeSrc":"7918:13:101","nodeType":"YulFunctionCall","src":"7918:13:101"},"variableNames":[{"name":"value","nativeSrc":"7909:5:101","nodeType":"YulIdentifier","src":"7909:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7965:5:101","nodeType":"YulIdentifier","src":"7965:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7940:24:101","nodeType":"YulIdentifier","src":"7940:24:101"},"nativeSrc":"7940:31:101","nodeType":"YulFunctionCall","src":"7940:31:101"},"nativeSrc":"7940:31:101","nodeType":"YulExpressionStatement","src":"7940:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7838:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7877:6:101","nodeType":"YulTypedName","src":"7877:6:101","type":""},{"name":"end","nativeSrc":"7885:3:101","nodeType":"YulTypedName","src":"7885:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7893:5:101","nodeType":"YulTypedName","src":"7893:5:101","type":""}],"src":"7838:139:101"},{"body":{"nativeSrc":"8058:272:101","nodeType":"YulBlock","src":"8058:272:101","statements":[{"body":{"nativeSrc":"8104:83:101","nodeType":"YulBlock","src":"8104:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8106:77:101","nodeType":"YulIdentifier","src":"8106:77:101"},"nativeSrc":"8106:79:101","nodeType":"YulFunctionCall","src":"8106:79:101"},"nativeSrc":"8106:79:101","nodeType":"YulExpressionStatement","src":"8106:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8079:7:101","nodeType":"YulIdentifier","src":"8079:7:101"},{"name":"headStart","nativeSrc":"8088:9:101","nodeType":"YulIdentifier","src":"8088:9:101"}],"functionName":{"name":"sub","nativeSrc":"8075:3:101","nodeType":"YulIdentifier","src":"8075:3:101"},"nativeSrc":"8075:23:101","nodeType":"YulFunctionCall","src":"8075:23:101"},{"kind":"number","nativeSrc":"8100:2:101","nodeType":"YulLiteral","src":"8100:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8071:3:101","nodeType":"YulIdentifier","src":"8071:3:101"},"nativeSrc":"8071:32:101","nodeType":"YulFunctionCall","src":"8071:32:101"},"nativeSrc":"8068:119:101","nodeType":"YulIf","src":"8068:119:101"},{"nativeSrc":"8197:126:101","nodeType":"YulBlock","src":"8197:126:101","statements":[{"nativeSrc":"8212:15:101","nodeType":"YulVariableDeclaration","src":"8212:15:101","value":{"kind":"number","nativeSrc":"8226:1:101","nodeType":"YulLiteral","src":"8226:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8216:6:101","nodeType":"YulTypedName","src":"8216:6:101","type":""}]},{"nativeSrc":"8241:72:101","nodeType":"YulAssignment","src":"8241:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8285:9:101","nodeType":"YulIdentifier","src":"8285:9:101"},{"name":"offset","nativeSrc":"8296:6:101","nodeType":"YulIdentifier","src":"8296:6:101"}],"functionName":{"name":"add","nativeSrc":"8281:3:101","nodeType":"YulIdentifier","src":"8281:3:101"},"nativeSrc":"8281:22:101","nodeType":"YulFunctionCall","src":"8281:22:101"},{"name":"dataEnd","nativeSrc":"8305:7:101","nodeType":"YulIdentifier","src":"8305:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"8251:29:101","nodeType":"YulIdentifier","src":"8251:29:101"},"nativeSrc":"8251:62:101","nodeType":"YulFunctionCall","src":"8251:62:101"},"variableNames":[{"name":"value0","nativeSrc":"8241:6:101","nodeType":"YulIdentifier","src":"8241:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7983:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8028:9:101","nodeType":"YulTypedName","src":"8028:9:101","type":""},{"name":"dataEnd","nativeSrc":"8039:7:101","nodeType":"YulTypedName","src":"8039:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8051:6:101","nodeType":"YulTypedName","src":"8051:6:101","type":""}],"src":"7983:347:101"},{"body":{"nativeSrc":"8387:51:101","nodeType":"YulBlock","src":"8387:51:101","statements":[{"nativeSrc":"8397:34:101","nodeType":"YulAssignment","src":"8397:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8422:1:101","nodeType":"YulLiteral","src":"8422:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8425:5:101","nodeType":"YulIdentifier","src":"8425:5:101"}],"functionName":{"name":"shr","nativeSrc":"8418:3:101","nodeType":"YulIdentifier","src":"8418:3:101"},"nativeSrc":"8418:13:101","nodeType":"YulFunctionCall","src":"8418:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8397:8:101","nodeType":"YulIdentifier","src":"8397:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"8336:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8368:5:101","nodeType":"YulTypedName","src":"8368:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8378:8:101","nodeType":"YulTypedName","src":"8378:8:101","type":""}],"src":"8336:102:101"},{"body":{"nativeSrc":"8517:775:101","nodeType":"YulBlock","src":"8517:775:101","statements":[{"nativeSrc":"8527:15:101","nodeType":"YulAssignment","src":"8527:15:101","value":{"name":"_power","nativeSrc":"8536:6:101","nodeType":"YulIdentifier","src":"8536:6:101"},"variableNames":[{"name":"power","nativeSrc":"8527:5:101","nodeType":"YulIdentifier","src":"8527:5:101"}]},{"nativeSrc":"8551:14:101","nodeType":"YulAssignment","src":"8551:14:101","value":{"name":"_base","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},"variableNames":[{"name":"base","nativeSrc":"8551:4:101","nodeType":"YulIdentifier","src":"8551:4:101"}]},{"body":{"nativeSrc":"8609:677:101","nodeType":"YulBlock","src":"8609:677:101","statements":[{"body":{"nativeSrc":"8697:22:101","nodeType":"YulBlock","src":"8697:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8699:16:101","nodeType":"YulIdentifier","src":"8699:16:101"},"nativeSrc":"8699:18:101","nodeType":"YulFunctionCall","src":"8699:18:101"},"nativeSrc":"8699:18:101","nodeType":"YulExpressionStatement","src":"8699:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8675:4:101","nodeType":"YulIdentifier","src":"8675:4:101"},{"arguments":[{"name":"max","nativeSrc":"8685:3:101","nodeType":"YulIdentifier","src":"8685:3:101"},{"name":"base","nativeSrc":"8690:4:101","nodeType":"YulIdentifier","src":"8690:4:101"}],"functionName":{"name":"div","nativeSrc":"8681:3:101","nodeType":"YulIdentifier","src":"8681:3:101"},"nativeSrc":"8681:14:101","nodeType":"YulFunctionCall","src":"8681:14:101"}],"functionName":{"name":"gt","nativeSrc":"8672:2:101","nodeType":"YulIdentifier","src":"8672:2:101"},"nativeSrc":"8672:24:101","nodeType":"YulFunctionCall","src":"8672:24:101"},"nativeSrc":"8669:50:101","nodeType":"YulIf","src":"8669:50:101"},{"body":{"nativeSrc":"8764:419:101","nodeType":"YulBlock","src":"8764:419:101","statements":[{"nativeSrc":"9144:25:101","nodeType":"YulAssignment","src":"9144:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9157:5:101","nodeType":"YulIdentifier","src":"9157:5:101"},{"name":"base","nativeSrc":"9164:4:101","nodeType":"YulIdentifier","src":"9164:4:101"}],"functionName":{"name":"mul","nativeSrc":"9153:3:101","nodeType":"YulIdentifier","src":"9153:3:101"},"nativeSrc":"9153:16:101","nodeType":"YulFunctionCall","src":"9153:16:101"},"variableNames":[{"name":"power","nativeSrc":"9144:5:101","nodeType":"YulIdentifier","src":"9144:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8739:8:101","nodeType":"YulIdentifier","src":"8739:8:101"},{"kind":"number","nativeSrc":"8749:1:101","nodeType":"YulLiteral","src":"8749:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8735:3:101","nodeType":"YulIdentifier","src":"8735:3:101"},"nativeSrc":"8735:16:101","nodeType":"YulFunctionCall","src":"8735:16:101"},"nativeSrc":"8732:451:101","nodeType":"YulIf","src":"8732:451:101"},{"nativeSrc":"9196:23:101","nodeType":"YulAssignment","src":"9196:23:101","value":{"arguments":[{"name":"base","nativeSrc":"9208:4:101","nodeType":"YulIdentifier","src":"9208:4:101"},{"name":"base","nativeSrc":"9214:4:101","nodeType":"YulIdentifier","src":"9214:4:101"}],"functionName":{"name":"mul","nativeSrc":"9204:3:101","nodeType":"YulIdentifier","src":"9204:3:101"},"nativeSrc":"9204:15:101","nodeType":"YulFunctionCall","src":"9204:15:101"},"variableNames":[{"name":"base","nativeSrc":"9196:4:101","nodeType":"YulIdentifier","src":"9196:4:101"}]},{"nativeSrc":"9232:44:101","nodeType":"YulAssignment","src":"9232:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9267:8:101","nodeType":"YulIdentifier","src":"9267:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"9244:22:101","nodeType":"YulIdentifier","src":"9244:22:101"},"nativeSrc":"9244:32:101","nodeType":"YulFunctionCall","src":"9244:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"9232:8:101","nodeType":"YulIdentifier","src":"9232:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8585:8:101","nodeType":"YulIdentifier","src":"8585:8:101"},{"kind":"number","nativeSrc":"8595:1:101","nodeType":"YulLiteral","src":"8595:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8582:2:101","nodeType":"YulIdentifier","src":"8582:2:101"},"nativeSrc":"8582:15:101","nodeType":"YulFunctionCall","src":"8582:15:101"},"nativeSrc":"8574:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8598:2:101","nodeType":"YulBlock","src":"8598:2:101","statements":[]},"pre":{"nativeSrc":"8578:3:101","nodeType":"YulBlock","src":"8578:3:101","statements":[]},"src":"8574:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8444:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8472:6:101","nodeType":"YulTypedName","src":"8472:6:101","type":""},{"name":"_base","nativeSrc":"8480:5:101","nodeType":"YulTypedName","src":"8480:5:101","type":""},{"name":"exponent","nativeSrc":"8487:8:101","nodeType":"YulTypedName","src":"8487:8:101","type":""},{"name":"max","nativeSrc":"8497:3:101","nodeType":"YulTypedName","src":"8497:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8505:5:101","nodeType":"YulTypedName","src":"8505:5:101","type":""},{"name":"base","nativeSrc":"8512:4:101","nodeType":"YulTypedName","src":"8512:4:101","type":""}],"src":"8444:848:101"},{"body":{"nativeSrc":"9358:1013:101","nodeType":"YulBlock","src":"9358:1013:101","statements":[{"body":{"nativeSrc":"9553:20:101","nodeType":"YulBlock","src":"9553:20:101","statements":[{"nativeSrc":"9555:10:101","nodeType":"YulAssignment","src":"9555:10:101","value":{"kind":"number","nativeSrc":"9564:1:101","nodeType":"YulLiteral","src":"9564:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9555:5:101","nodeType":"YulIdentifier","src":"9555:5:101"}]},{"nativeSrc":"9566:5:101","nodeType":"YulLeave","src":"9566:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9543:8:101","nodeType":"YulIdentifier","src":"9543:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9536:6:101","nodeType":"YulIdentifier","src":"9536:6:101"},"nativeSrc":"9536:16:101","nodeType":"YulFunctionCall","src":"9536:16:101"},"nativeSrc":"9533:40:101","nodeType":"YulIf","src":"9533:40:101"},{"body":{"nativeSrc":"9598:20:101","nodeType":"YulBlock","src":"9598:20:101","statements":[{"nativeSrc":"9600:10:101","nodeType":"YulAssignment","src":"9600:10:101","value":{"kind":"number","nativeSrc":"9609:1:101","nodeType":"YulLiteral","src":"9609:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9600:5:101","nodeType":"YulIdentifier","src":"9600:5:101"}]},{"nativeSrc":"9611:5:101","nodeType":"YulLeave","src":"9611:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9592:4:101","nodeType":"YulIdentifier","src":"9592:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9585:6:101","nodeType":"YulIdentifier","src":"9585:6:101"},"nativeSrc":"9585:12:101","nodeType":"YulFunctionCall","src":"9585:12:101"},"nativeSrc":"9582:36:101","nodeType":"YulIf","src":"9582:36:101"},{"cases":[{"body":{"nativeSrc":"9728:20:101","nodeType":"YulBlock","src":"9728:20:101","statements":[{"nativeSrc":"9730:10:101","nodeType":"YulAssignment","src":"9730:10:101","value":{"kind":"number","nativeSrc":"9739:1:101","nodeType":"YulLiteral","src":"9739:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9730:5:101","nodeType":"YulIdentifier","src":"9730:5:101"}]},{"nativeSrc":"9741:5:101","nodeType":"YulLeave","src":"9741:5:101"}]},"nativeSrc":"9721:27:101","nodeType":"YulCase","src":"9721:27:101","value":{"kind":"number","nativeSrc":"9726:1:101","nodeType":"YulLiteral","src":"9726:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9772:176:101","nodeType":"YulBlock","src":"9772:176:101","statements":[{"body":{"nativeSrc":"9807:22:101","nodeType":"YulBlock","src":"9807:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9809:16:101","nodeType":"YulIdentifier","src":"9809:16:101"},"nativeSrc":"9809:18:101","nodeType":"YulFunctionCall","src":"9809:18:101"},"nativeSrc":"9809:18:101","nodeType":"YulExpressionStatement","src":"9809:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9792:8:101","nodeType":"YulIdentifier","src":"9792:8:101"},{"kind":"number","nativeSrc":"9802:3:101","nodeType":"YulLiteral","src":"9802:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9789:2:101","nodeType":"YulIdentifier","src":"9789:2:101"},"nativeSrc":"9789:17:101","nodeType":"YulFunctionCall","src":"9789:17:101"},"nativeSrc":"9786:43:101","nodeType":"YulIf","src":"9786:43:101"},{"nativeSrc":"9842:25:101","nodeType":"YulAssignment","src":"9842:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9855:1:101","nodeType":"YulLiteral","src":"9855:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9858:8:101","nodeType":"YulIdentifier","src":"9858:8:101"}],"functionName":{"name":"exp","nativeSrc":"9851:3:101","nodeType":"YulIdentifier","src":"9851:3:101"},"nativeSrc":"9851:16:101","nodeType":"YulFunctionCall","src":"9851:16:101"},"variableNames":[{"name":"power","nativeSrc":"9842:5:101","nodeType":"YulIdentifier","src":"9842:5:101"}]},{"body":{"nativeSrc":"9898:22:101","nodeType":"YulBlock","src":"9898:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9900:16:101","nodeType":"YulIdentifier","src":"9900:16:101"},"nativeSrc":"9900:18:101","nodeType":"YulFunctionCall","src":"9900:18:101"},"nativeSrc":"9900:18:101","nodeType":"YulExpressionStatement","src":"9900:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9886:5:101","nodeType":"YulIdentifier","src":"9886:5:101"},{"name":"max","nativeSrc":"9893:3:101","nodeType":"YulIdentifier","src":"9893:3:101"}],"functionName":{"name":"gt","nativeSrc":"9883:2:101","nodeType":"YulIdentifier","src":"9883:2:101"},"nativeSrc":"9883:14:101","nodeType":"YulFunctionCall","src":"9883:14:101"},"nativeSrc":"9880:40:101","nodeType":"YulIf","src":"9880:40:101"},{"nativeSrc":"9933:5:101","nodeType":"YulLeave","src":"9933:5:101"}]},"nativeSrc":"9757:191:101","nodeType":"YulCase","src":"9757:191:101","value":{"kind":"number","nativeSrc":"9762:1:101","nodeType":"YulLiteral","src":"9762:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9678:4:101","nodeType":"YulIdentifier","src":"9678:4:101"},"nativeSrc":"9671:277:101","nodeType":"YulSwitch","src":"9671:277:101"},{"body":{"nativeSrc":"10080:123:101","nodeType":"YulBlock","src":"10080:123:101","statements":[{"nativeSrc":"10094:28:101","nodeType":"YulAssignment","src":"10094:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10107:4:101","nodeType":"YulIdentifier","src":"10107:4:101"},{"name":"exponent","nativeSrc":"10113:8:101","nodeType":"YulIdentifier","src":"10113:8:101"}],"functionName":{"name":"exp","nativeSrc":"10103:3:101","nodeType":"YulIdentifier","src":"10103:3:101"},"nativeSrc":"10103:19:101","nodeType":"YulFunctionCall","src":"10103:19:101"},"variableNames":[{"name":"power","nativeSrc":"10094:5:101","nodeType":"YulIdentifier","src":"10094:5:101"}]},{"body":{"nativeSrc":"10153:22:101","nodeType":"YulBlock","src":"10153:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10155:16:101","nodeType":"YulIdentifier","src":"10155:16:101"},"nativeSrc":"10155:18:101","nodeType":"YulFunctionCall","src":"10155:18:101"},"nativeSrc":"10155:18:101","nodeType":"YulExpressionStatement","src":"10155:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10141:5:101","nodeType":"YulIdentifier","src":"10141:5:101"},{"name":"max","nativeSrc":"10148:3:101","nodeType":"YulIdentifier","src":"10148:3:101"}],"functionName":{"name":"gt","nativeSrc":"10138:2:101","nodeType":"YulIdentifier","src":"10138:2:101"},"nativeSrc":"10138:14:101","nodeType":"YulFunctionCall","src":"10138:14:101"},"nativeSrc":"10135:40:101","nodeType":"YulIf","src":"10135:40:101"},{"nativeSrc":"10188:5:101","nodeType":"YulLeave","src":"10188:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9983:4:101","nodeType":"YulIdentifier","src":"9983:4:101"},{"kind":"number","nativeSrc":"9989:2:101","nodeType":"YulLiteral","src":"9989:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9980:2:101","nodeType":"YulIdentifier","src":"9980:2:101"},"nativeSrc":"9980:12:101","nodeType":"YulFunctionCall","src":"9980:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9997:8:101","nodeType":"YulIdentifier","src":"9997:8:101"},{"kind":"number","nativeSrc":"10007:2:101","nodeType":"YulLiteral","src":"10007:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9994:2:101","nodeType":"YulIdentifier","src":"9994:2:101"},"nativeSrc":"9994:16:101","nodeType":"YulFunctionCall","src":"9994:16:101"}],"functionName":{"name":"and","nativeSrc":"9976:3:101","nodeType":"YulIdentifier","src":"9976:3:101"},"nativeSrc":"9976:35:101","nodeType":"YulFunctionCall","src":"9976:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10032:4:101","nodeType":"YulIdentifier","src":"10032:4:101"},{"kind":"number","nativeSrc":"10038:3:101","nodeType":"YulLiteral","src":"10038:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"10029:2:101","nodeType":"YulIdentifier","src":"10029:2:101"},"nativeSrc":"10029:13:101","nodeType":"YulFunctionCall","src":"10029:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"10047:8:101","nodeType":"YulIdentifier","src":"10047:8:101"},{"kind":"number","nativeSrc":"10057:2:101","nodeType":"YulLiteral","src":"10057:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10044:2:101","nodeType":"YulIdentifier","src":"10044:2:101"},"nativeSrc":"10044:16:101","nodeType":"YulFunctionCall","src":"10044:16:101"}],"functionName":{"name":"and","nativeSrc":"10025:3:101","nodeType":"YulIdentifier","src":"10025:3:101"},"nativeSrc":"10025:36:101","nodeType":"YulFunctionCall","src":"10025:36:101"}],"functionName":{"name":"or","nativeSrc":"9960:2:101","nodeType":"YulIdentifier","src":"9960:2:101"},"nativeSrc":"9960:111:101","nodeType":"YulFunctionCall","src":"9960:111:101"},"nativeSrc":"9957:246:101","nodeType":"YulIf","src":"9957:246:101"},{"nativeSrc":"10213:57:101","nodeType":"YulAssignment","src":"10213:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"10247:1:101","nodeType":"YulLiteral","src":"10247:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"10250:4:101","nodeType":"YulIdentifier","src":"10250:4:101"},{"name":"exponent","nativeSrc":"10256:8:101","nodeType":"YulIdentifier","src":"10256:8:101"},{"name":"max","nativeSrc":"10266:3:101","nodeType":"YulIdentifier","src":"10266:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"10228:18:101","nodeType":"YulIdentifier","src":"10228:18:101"},"nativeSrc":"10228:42:101","nodeType":"YulFunctionCall","src":"10228:42:101"},"variableNames":[{"name":"power","nativeSrc":"10213:5:101","nodeType":"YulIdentifier","src":"10213:5:101"},{"name":"base","nativeSrc":"10220:4:101","nodeType":"YulIdentifier","src":"10220:4:101"}]},{"body":{"nativeSrc":"10309:22:101","nodeType":"YulBlock","src":"10309:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10311:16:101","nodeType":"YulIdentifier","src":"10311:16:101"},"nativeSrc":"10311:18:101","nodeType":"YulFunctionCall","src":"10311:18:101"},"nativeSrc":"10311:18:101","nodeType":"YulExpressionStatement","src":"10311:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10286:5:101","nodeType":"YulIdentifier","src":"10286:5:101"},{"arguments":[{"name":"max","nativeSrc":"10297:3:101","nodeType":"YulIdentifier","src":"10297:3:101"},{"name":"base","nativeSrc":"10302:4:101","nodeType":"YulIdentifier","src":"10302:4:101"}],"functionName":{"name":"div","nativeSrc":"10293:3:101","nodeType":"YulIdentifier","src":"10293:3:101"},"nativeSrc":"10293:14:101","nodeType":"YulFunctionCall","src":"10293:14:101"}],"functionName":{"name":"gt","nativeSrc":"10283:2:101","nodeType":"YulIdentifier","src":"10283:2:101"},"nativeSrc":"10283:25:101","nodeType":"YulFunctionCall","src":"10283:25:101"},"nativeSrc":"10280:51:101","nodeType":"YulIf","src":"10280:51:101"},{"nativeSrc":"10340:25:101","nodeType":"YulAssignment","src":"10340:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10353:5:101","nodeType":"YulIdentifier","src":"10353:5:101"},{"name":"base","nativeSrc":"10360:4:101","nodeType":"YulIdentifier","src":"10360:4:101"}],"functionName":{"name":"mul","nativeSrc":"10349:3:101","nodeType":"YulIdentifier","src":"10349:3:101"},"nativeSrc":"10349:16:101","nodeType":"YulFunctionCall","src":"10349:16:101"},"variableNames":[{"name":"power","nativeSrc":"10340:5:101","nodeType":"YulIdentifier","src":"10340:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"9298:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9328:4:101","nodeType":"YulTypedName","src":"9328:4:101","type":""},{"name":"exponent","nativeSrc":"9334:8:101","nodeType":"YulTypedName","src":"9334:8:101","type":""},{"name":"max","nativeSrc":"9344:3:101","nodeType":"YulTypedName","src":"9344:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9352:5:101","nodeType":"YulTypedName","src":"9352:5:101","type":""}],"src":"9298:1073:101"},{"body":{"nativeSrc":"10443:219:101","nodeType":"YulBlock","src":"10443:219:101","statements":[{"nativeSrc":"10453:31:101","nodeType":"YulAssignment","src":"10453:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10479:4:101","nodeType":"YulIdentifier","src":"10479:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10461:17:101","nodeType":"YulIdentifier","src":"10461:17:101"},"nativeSrc":"10461:23:101","nodeType":"YulFunctionCall","src":"10461:23:101"},"variableNames":[{"name":"base","nativeSrc":"10453:4:101","nodeType":"YulIdentifier","src":"10453:4:101"}]},{"nativeSrc":"10493:39:101","nodeType":"YulAssignment","src":"10493:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10523:8:101","nodeType":"YulIdentifier","src":"10523:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10505:17:101","nodeType":"YulIdentifier","src":"10505:17:101"},"nativeSrc":"10505:27:101","nodeType":"YulFunctionCall","src":"10505:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10493:8:101","nodeType":"YulIdentifier","src":"10493:8:101"}]},{"nativeSrc":"10542:113:101","nodeType":"YulAssignment","src":"10542:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10572:4:101","nodeType":"YulIdentifier","src":"10572:4:101"},{"name":"exponent","nativeSrc":"10578:8:101","nodeType":"YulIdentifier","src":"10578:8:101"},{"kind":"number","nativeSrc":"10588:66:101","nodeType":"YulLiteral","src":"10588:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10551:20:101","nodeType":"YulIdentifier","src":"10551:20:101"},"nativeSrc":"10551:104:101","nodeType":"YulFunctionCall","src":"10551:104:101"},"variableNames":[{"name":"power","nativeSrc":"10542:5:101","nodeType":"YulIdentifier","src":"10542:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"10377:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10418:4:101","nodeType":"YulTypedName","src":"10418:4:101","type":""},{"name":"exponent","nativeSrc":"10424:8:101","nodeType":"YulTypedName","src":"10424:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10437:5:101","nodeType":"YulTypedName","src":"10437:5:101","type":""}],"src":"10377:285:101"},{"body":{"nativeSrc":"10727:40:101","nodeType":"YulBlock","src":"10727:40:101","statements":[{"nativeSrc":"10738:22:101","nodeType":"YulAssignment","src":"10738:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10754:5:101","nodeType":"YulIdentifier","src":"10754:5:101"}],"functionName":{"name":"mload","nativeSrc":"10748:5:101","nodeType":"YulIdentifier","src":"10748:5:101"},"nativeSrc":"10748:12:101","nodeType":"YulFunctionCall","src":"10748:12:101"},"variableNames":[{"name":"length","nativeSrc":"10738:6:101","nodeType":"YulIdentifier","src":"10738:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10668:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10710:5:101","nodeType":"YulTypedName","src":"10710:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10720:6:101","nodeType":"YulTypedName","src":"10720:6:101","type":""}],"src":"10668:99:101"},{"body":{"nativeSrc":"10869:73:101","nodeType":"YulBlock","src":"10869:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10886:3:101","nodeType":"YulIdentifier","src":"10886:3:101"},{"name":"length","nativeSrc":"10891:6:101","nodeType":"YulIdentifier","src":"10891:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10879:6:101","nodeType":"YulIdentifier","src":"10879:6:101"},"nativeSrc":"10879:19:101","nodeType":"YulFunctionCall","src":"10879:19:101"},"nativeSrc":"10879:19:101","nodeType":"YulExpressionStatement","src":"10879:19:101"},{"nativeSrc":"10907:29:101","nodeType":"YulAssignment","src":"10907:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10926:3:101","nodeType":"YulIdentifier","src":"10926:3:101"},{"kind":"number","nativeSrc":"10931:4:101","nodeType":"YulLiteral","src":"10931:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10922:3:101","nodeType":"YulIdentifier","src":"10922:3:101"},"nativeSrc":"10922:14:101","nodeType":"YulFunctionCall","src":"10922:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10907:11:101","nodeType":"YulIdentifier","src":"10907:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10773:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10841:3:101","nodeType":"YulTypedName","src":"10841:3:101","type":""},{"name":"length","nativeSrc":"10846:6:101","nodeType":"YulTypedName","src":"10846:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10857:11:101","nodeType":"YulTypedName","src":"10857:11:101","type":""}],"src":"10773:169:101"},{"body":{"nativeSrc":"11010:77:101","nodeType":"YulBlock","src":"11010:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11027:3:101","nodeType":"YulIdentifier","src":"11027:3:101"},{"name":"src","nativeSrc":"11032:3:101","nodeType":"YulIdentifier","src":"11032:3:101"},{"name":"length","nativeSrc":"11037:6:101","nodeType":"YulIdentifier","src":"11037:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"11021:5:101","nodeType":"YulIdentifier","src":"11021:5:101"},"nativeSrc":"11021:23:101","nodeType":"YulFunctionCall","src":"11021:23:101"},"nativeSrc":"11021:23:101","nodeType":"YulExpressionStatement","src":"11021:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11064:3:101","nodeType":"YulIdentifier","src":"11064:3:101"},{"name":"length","nativeSrc":"11069:6:101","nodeType":"YulIdentifier","src":"11069:6:101"}],"functionName":{"name":"add","nativeSrc":"11060:3:101","nodeType":"YulIdentifier","src":"11060:3:101"},"nativeSrc":"11060:16:101","nodeType":"YulFunctionCall","src":"11060:16:101"},{"kind":"number","nativeSrc":"11078:1:101","nodeType":"YulLiteral","src":"11078:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11053:6:101","nodeType":"YulIdentifier","src":"11053:6:101"},"nativeSrc":"11053:27:101","nodeType":"YulFunctionCall","src":"11053:27:101"},"nativeSrc":"11053:27:101","nodeType":"YulExpressionStatement","src":"11053:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10948:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10992:3:101","nodeType":"YulTypedName","src":"10992:3:101","type":""},{"name":"dst","nativeSrc":"10997:3:101","nodeType":"YulTypedName","src":"10997:3:101","type":""},{"name":"length","nativeSrc":"11002:6:101","nodeType":"YulTypedName","src":"11002:6:101","type":""}],"src":"10948:139:101"},{"body":{"nativeSrc":"11141:54:101","nodeType":"YulBlock","src":"11141:54:101","statements":[{"nativeSrc":"11151:38:101","nodeType":"YulAssignment","src":"11151:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11169:5:101","nodeType":"YulIdentifier","src":"11169:5:101"},{"kind":"number","nativeSrc":"11176:2:101","nodeType":"YulLiteral","src":"11176:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11165:3:101","nodeType":"YulIdentifier","src":"11165:3:101"},"nativeSrc":"11165:14:101","nodeType":"YulFunctionCall","src":"11165:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11185:2:101","nodeType":"YulLiteral","src":"11185:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11181:3:101","nodeType":"YulIdentifier","src":"11181:3:101"},"nativeSrc":"11181:7:101","nodeType":"YulFunctionCall","src":"11181:7:101"}],"functionName":{"name":"and","nativeSrc":"11161:3:101","nodeType":"YulIdentifier","src":"11161:3:101"},"nativeSrc":"11161:28:101","nodeType":"YulFunctionCall","src":"11161:28:101"},"variableNames":[{"name":"result","nativeSrc":"11151:6:101","nodeType":"YulIdentifier","src":"11151:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11093:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11124:5:101","nodeType":"YulTypedName","src":"11124:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11134:6:101","nodeType":"YulTypedName","src":"11134:6:101","type":""}],"src":"11093:102:101"},{"body":{"nativeSrc":"11293:285:101","nodeType":"YulBlock","src":"11293:285:101","statements":[{"nativeSrc":"11303:53:101","nodeType":"YulVariableDeclaration","src":"11303:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11350:5:101","nodeType":"YulIdentifier","src":"11350:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11317:32:101","nodeType":"YulIdentifier","src":"11317:32:101"},"nativeSrc":"11317:39:101","nodeType":"YulFunctionCall","src":"11317:39:101"},"variables":[{"name":"length","nativeSrc":"11307:6:101","nodeType":"YulTypedName","src":"11307:6:101","type":""}]},{"nativeSrc":"11365:78:101","nodeType":"YulAssignment","src":"11365:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11431:3:101","nodeType":"YulIdentifier","src":"11431:3:101"},{"name":"length","nativeSrc":"11436:6:101","nodeType":"YulIdentifier","src":"11436:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11372:58:101","nodeType":"YulIdentifier","src":"11372:58:101"},"nativeSrc":"11372:71:101","nodeType":"YulFunctionCall","src":"11372:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11365:3:101","nodeType":"YulIdentifier","src":"11365:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11491:5:101","nodeType":"YulIdentifier","src":"11491:5:101"},{"kind":"number","nativeSrc":"11498:4:101","nodeType":"YulLiteral","src":"11498:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11487:3:101","nodeType":"YulIdentifier","src":"11487:3:101"},"nativeSrc":"11487:16:101","nodeType":"YulFunctionCall","src":"11487:16:101"},{"name":"pos","nativeSrc":"11505:3:101","nodeType":"YulIdentifier","src":"11505:3:101"},{"name":"length","nativeSrc":"11510:6:101","nodeType":"YulIdentifier","src":"11510:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11452:34:101","nodeType":"YulIdentifier","src":"11452:34:101"},"nativeSrc":"11452:65:101","nodeType":"YulFunctionCall","src":"11452:65:101"},"nativeSrc":"11452:65:101","nodeType":"YulExpressionStatement","src":"11452:65:101"},{"nativeSrc":"11526:46:101","nodeType":"YulAssignment","src":"11526:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11537:3:101","nodeType":"YulIdentifier","src":"11537:3:101"},{"arguments":[{"name":"length","nativeSrc":"11564:6:101","nodeType":"YulIdentifier","src":"11564:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11542:21:101","nodeType":"YulIdentifier","src":"11542:21:101"},"nativeSrc":"11542:29:101","nodeType":"YulFunctionCall","src":"11542:29:101"}],"functionName":{"name":"add","nativeSrc":"11533:3:101","nodeType":"YulIdentifier","src":"11533:3:101"},"nativeSrc":"11533:39:101","nodeType":"YulFunctionCall","src":"11533:39:101"},"variableNames":[{"name":"end","nativeSrc":"11526:3:101","nodeType":"YulIdentifier","src":"11526:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11201:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11274:5:101","nodeType":"YulTypedName","src":"11274:5:101","type":""},{"name":"pos","nativeSrc":"11281:3:101","nodeType":"YulTypedName","src":"11281:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11289:3:101","nodeType":"YulTypedName","src":"11289:3:101","type":""}],"src":"11201:377:101"},{"body":{"nativeSrc":"11730:277:101","nodeType":"YulBlock","src":"11730:277:101","statements":[{"nativeSrc":"11740:26:101","nodeType":"YulAssignment","src":"11740:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11752:9:101","nodeType":"YulIdentifier","src":"11752:9:101"},{"kind":"number","nativeSrc":"11763:2:101","nodeType":"YulLiteral","src":"11763:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11748:3:101","nodeType":"YulIdentifier","src":"11748:3:101"},"nativeSrc":"11748:18:101","nodeType":"YulFunctionCall","src":"11748:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11740:4:101","nodeType":"YulIdentifier","src":"11740:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11820:6:101","nodeType":"YulIdentifier","src":"11820:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11833:9:101","nodeType":"YulIdentifier","src":"11833:9:101"},{"kind":"number","nativeSrc":"11844:1:101","nodeType":"YulLiteral","src":"11844:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11829:3:101","nodeType":"YulIdentifier","src":"11829:3:101"},"nativeSrc":"11829:17:101","nodeType":"YulFunctionCall","src":"11829:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11776:43:101","nodeType":"YulIdentifier","src":"11776:43:101"},"nativeSrc":"11776:71:101","nodeType":"YulFunctionCall","src":"11776:71:101"},"nativeSrc":"11776:71:101","nodeType":"YulExpressionStatement","src":"11776:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11868:9:101","nodeType":"YulIdentifier","src":"11868:9:101"},{"kind":"number","nativeSrc":"11879:2:101","nodeType":"YulLiteral","src":"11879:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11864:3:101","nodeType":"YulIdentifier","src":"11864:3:101"},"nativeSrc":"11864:18:101","nodeType":"YulFunctionCall","src":"11864:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11888:4:101","nodeType":"YulIdentifier","src":"11888:4:101"},{"name":"headStart","nativeSrc":"11894:9:101","nodeType":"YulIdentifier","src":"11894:9:101"}],"functionName":{"name":"sub","nativeSrc":"11884:3:101","nodeType":"YulIdentifier","src":"11884:3:101"},"nativeSrc":"11884:20:101","nodeType":"YulFunctionCall","src":"11884:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11857:6:101","nodeType":"YulIdentifier","src":"11857:6:101"},"nativeSrc":"11857:48:101","nodeType":"YulFunctionCall","src":"11857:48:101"},"nativeSrc":"11857:48:101","nodeType":"YulExpressionStatement","src":"11857:48:101"},{"nativeSrc":"11914:86:101","nodeType":"YulAssignment","src":"11914:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11986:6:101","nodeType":"YulIdentifier","src":"11986:6:101"},{"name":"tail","nativeSrc":"11995:4:101","nodeType":"YulIdentifier","src":"11995:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11922:63:101","nodeType":"YulIdentifier","src":"11922:63:101"},"nativeSrc":"11922:78:101","nodeType":"YulFunctionCall","src":"11922:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11914:4:101","nodeType":"YulIdentifier","src":"11914:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11584:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11694:9:101","nodeType":"YulTypedName","src":"11694:9:101","type":""},{"name":"value1","nativeSrc":"11706:6:101","nodeType":"YulTypedName","src":"11706:6:101","type":""},{"name":"value0","nativeSrc":"11714:6:101","nodeType":"YulTypedName","src":"11714:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11725:4:101","nodeType":"YulTypedName","src":"11725:4:101","type":""}],"src":"11584:423:101"},{"body":{"nativeSrc":"12053:76:101","nodeType":"YulBlock","src":"12053:76:101","statements":[{"body":{"nativeSrc":"12107:16:101","nodeType":"YulBlock","src":"12107:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12116:1:101","nodeType":"YulLiteral","src":"12116:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12119:1:101","nodeType":"YulLiteral","src":"12119:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12109:6:101","nodeType":"YulIdentifier","src":"12109:6:101"},"nativeSrc":"12109:12:101","nodeType":"YulFunctionCall","src":"12109:12:101"},"nativeSrc":"12109:12:101","nodeType":"YulExpressionStatement","src":"12109:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12076:5:101","nodeType":"YulIdentifier","src":"12076:5:101"},{"arguments":[{"name":"value","nativeSrc":"12098:5:101","nodeType":"YulIdentifier","src":"12098:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12083:14:101","nodeType":"YulIdentifier","src":"12083:14:101"},"nativeSrc":"12083:21:101","nodeType":"YulFunctionCall","src":"12083:21:101"}],"functionName":{"name":"eq","nativeSrc":"12073:2:101","nodeType":"YulIdentifier","src":"12073:2:101"},"nativeSrc":"12073:32:101","nodeType":"YulFunctionCall","src":"12073:32:101"}],"functionName":{"name":"iszero","nativeSrc":"12066:6:101","nodeType":"YulIdentifier","src":"12066:6:101"},"nativeSrc":"12066:40:101","nodeType":"YulFunctionCall","src":"12066:40:101"},"nativeSrc":"12063:60:101","nodeType":"YulIf","src":"12063:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"12013:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12046:5:101","nodeType":"YulTypedName","src":"12046:5:101","type":""}],"src":"12013:116:101"},{"body":{"nativeSrc":"12195:77:101","nodeType":"YulBlock","src":"12195:77:101","statements":[{"nativeSrc":"12205:22:101","nodeType":"YulAssignment","src":"12205:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12220:6:101","nodeType":"YulIdentifier","src":"12220:6:101"}],"functionName":{"name":"mload","nativeSrc":"12214:5:101","nodeType":"YulIdentifier","src":"12214:5:101"},"nativeSrc":"12214:13:101","nodeType":"YulFunctionCall","src":"12214:13:101"},"variableNames":[{"name":"value","nativeSrc":"12205:5:101","nodeType":"YulIdentifier","src":"12205:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12260:5:101","nodeType":"YulIdentifier","src":"12260:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12236:23:101","nodeType":"YulIdentifier","src":"12236:23:101"},"nativeSrc":"12236:30:101","nodeType":"YulFunctionCall","src":"12236:30:101"},"nativeSrc":"12236:30:101","nodeType":"YulExpressionStatement","src":"12236:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12135:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12173:6:101","nodeType":"YulTypedName","src":"12173:6:101","type":""},{"name":"end","nativeSrc":"12181:3:101","nodeType":"YulTypedName","src":"12181:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12189:5:101","nodeType":"YulTypedName","src":"12189:5:101","type":""}],"src":"12135:137:101"},{"body":{"nativeSrc":"12352:271:101","nodeType":"YulBlock","src":"12352:271:101","statements":[{"body":{"nativeSrc":"12398:83:101","nodeType":"YulBlock","src":"12398:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12400:77:101","nodeType":"YulIdentifier","src":"12400:77:101"},"nativeSrc":"12400:79:101","nodeType":"YulFunctionCall","src":"12400:79:101"},"nativeSrc":"12400:79:101","nodeType":"YulExpressionStatement","src":"12400:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12373:7:101","nodeType":"YulIdentifier","src":"12373:7:101"},{"name":"headStart","nativeSrc":"12382:9:101","nodeType":"YulIdentifier","src":"12382:9:101"}],"functionName":{"name":"sub","nativeSrc":"12369:3:101","nodeType":"YulIdentifier","src":"12369:3:101"},"nativeSrc":"12369:23:101","nodeType":"YulFunctionCall","src":"12369:23:101"},{"kind":"number","nativeSrc":"12394:2:101","nodeType":"YulLiteral","src":"12394:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12365:3:101","nodeType":"YulIdentifier","src":"12365:3:101"},"nativeSrc":"12365:32:101","nodeType":"YulFunctionCall","src":"12365:32:101"},"nativeSrc":"12362:119:101","nodeType":"YulIf","src":"12362:119:101"},{"nativeSrc":"12491:125:101","nodeType":"YulBlock","src":"12491:125:101","statements":[{"nativeSrc":"12506:15:101","nodeType":"YulVariableDeclaration","src":"12506:15:101","value":{"kind":"number","nativeSrc":"12520:1:101","nodeType":"YulLiteral","src":"12520:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12510:6:101","nodeType":"YulTypedName","src":"12510:6:101","type":""}]},{"nativeSrc":"12535:71:101","nodeType":"YulAssignment","src":"12535:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12578:9:101","nodeType":"YulIdentifier","src":"12578:9:101"},{"name":"offset","nativeSrc":"12589:6:101","nodeType":"YulIdentifier","src":"12589:6:101"}],"functionName":{"name":"add","nativeSrc":"12574:3:101","nodeType":"YulIdentifier","src":"12574:3:101"},"nativeSrc":"12574:22:101","nodeType":"YulFunctionCall","src":"12574:22:101"},{"name":"dataEnd","nativeSrc":"12598:7:101","nodeType":"YulIdentifier","src":"12598:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12545:28:101","nodeType":"YulIdentifier","src":"12545:28:101"},"nativeSrc":"12545:61:101","nodeType":"YulFunctionCall","src":"12545:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12535:6:101","nodeType":"YulIdentifier","src":"12535:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12278:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12322:9:101","nodeType":"YulTypedName","src":"12322:9:101","type":""},{"name":"dataEnd","nativeSrc":"12333:7:101","nodeType":"YulTypedName","src":"12333:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12345:6:101","nodeType":"YulTypedName","src":"12345:6:101","type":""}],"src":"12278:345:101"},{"body":{"nativeSrc":"12803:359:101","nodeType":"YulBlock","src":"12803:359:101","statements":[{"nativeSrc":"12813:26:101","nodeType":"YulAssignment","src":"12813:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12825:9:101","nodeType":"YulIdentifier","src":"12825:9:101"},{"kind":"number","nativeSrc":"12836:2:101","nodeType":"YulLiteral","src":"12836:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12821:3:101","nodeType":"YulIdentifier","src":"12821:3:101"},"nativeSrc":"12821:18:101","nodeType":"YulFunctionCall","src":"12821:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12813:4:101","nodeType":"YulIdentifier","src":"12813:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12893:6:101","nodeType":"YulIdentifier","src":"12893:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12906:9:101","nodeType":"YulIdentifier","src":"12906:9:101"},{"kind":"number","nativeSrc":"12917:1:101","nodeType":"YulLiteral","src":"12917:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12902:3:101","nodeType":"YulIdentifier","src":"12902:3:101"},"nativeSrc":"12902:17:101","nodeType":"YulFunctionCall","src":"12902:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12849:43:101","nodeType":"YulIdentifier","src":"12849:43:101"},"nativeSrc":"12849:71:101","nodeType":"YulFunctionCall","src":"12849:71:101"},"nativeSrc":"12849:71:101","nodeType":"YulExpressionStatement","src":"12849:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12974:6:101","nodeType":"YulIdentifier","src":"12974:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12987:9:101","nodeType":"YulIdentifier","src":"12987:9:101"},{"kind":"number","nativeSrc":"12998:2:101","nodeType":"YulLiteral","src":"12998:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12983:3:101","nodeType":"YulIdentifier","src":"12983:3:101"},"nativeSrc":"12983:18:101","nodeType":"YulFunctionCall","src":"12983:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12930:43:101","nodeType":"YulIdentifier","src":"12930:43:101"},"nativeSrc":"12930:72:101","nodeType":"YulFunctionCall","src":"12930:72:101"},"nativeSrc":"12930:72:101","nodeType":"YulExpressionStatement","src":"12930:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13023:9:101","nodeType":"YulIdentifier","src":"13023:9:101"},{"kind":"number","nativeSrc":"13034:2:101","nodeType":"YulLiteral","src":"13034:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13019:3:101","nodeType":"YulIdentifier","src":"13019:3:101"},"nativeSrc":"13019:18:101","nodeType":"YulFunctionCall","src":"13019:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13043:4:101","nodeType":"YulIdentifier","src":"13043:4:101"},{"name":"headStart","nativeSrc":"13049:9:101","nodeType":"YulIdentifier","src":"13049:9:101"}],"functionName":{"name":"sub","nativeSrc":"13039:3:101","nodeType":"YulIdentifier","src":"13039:3:101"},"nativeSrc":"13039:20:101","nodeType":"YulFunctionCall","src":"13039:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13012:6:101","nodeType":"YulIdentifier","src":"13012:6:101"},"nativeSrc":"13012:48:101","nodeType":"YulFunctionCall","src":"13012:48:101"},"nativeSrc":"13012:48:101","nodeType":"YulExpressionStatement","src":"13012:48:101"},{"nativeSrc":"13069:86:101","nodeType":"YulAssignment","src":"13069:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13141:6:101","nodeType":"YulIdentifier","src":"13141:6:101"},{"name":"tail","nativeSrc":"13150:4:101","nodeType":"YulIdentifier","src":"13150:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13077:63:101","nodeType":"YulIdentifier","src":"13077:63:101"},"nativeSrc":"13077:78:101","nodeType":"YulFunctionCall","src":"13077:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13069:4:101","nodeType":"YulIdentifier","src":"13069:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12629:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12759:9:101","nodeType":"YulTypedName","src":"12759:9:101","type":""},{"name":"value2","nativeSrc":"12771:6:101","nodeType":"YulTypedName","src":"12771:6:101","type":""},{"name":"value1","nativeSrc":"12779:6:101","nodeType":"YulTypedName","src":"12779:6:101","type":""},{"name":"value0","nativeSrc":"12787:6:101","nodeType":"YulTypedName","src":"12787:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12798:4:101","nodeType":"YulTypedName","src":"12798:4:101","type":""}],"src":"12629:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IAccountant_$3450_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccountant_$3450_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccountant_$3450__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccountant_$3450_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6165":[{"length":32,"start":581},{"length":32,"start":1703}],"6589":[{"length":32,"start":523},{"length":32,"start":690},{"length":32,"start":2089}],"6592":[{"length":32,"start":313},{"length":32,"start":1441},{"length":32,"start":1962}],"6596":[{"length":32,"start":629},{"length":32,"start":1396},{"length":32,"start":1915}],"6600":[{"length":32,"start":393},{"length":32,"start":2280}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780638b9d294014610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610999565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109c6565b61011e60045481565b61011e61017f3660046109f5565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a38565b6101cb6101c6366004610a57565b610360565b005b61011e60025481565b6101cb6101e4366004610a75565b6103d1565b6101f16104a5565b60405161012b9190610ab7565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a75565b61062c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61072a565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f81610777565b9392505050565b5f61032f61072a565b90505f818311801561034057508115155b61034a578261034c565b815b905061035781610777565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108cf565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108cf565b5f5461041f6301e1338084610aed565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610999565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61072a565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b00565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761072a565b9050600454818311610529578261052b565b815b6105359190610b13565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109c6565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108cf565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663282a87006040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107259190610b31565b905090565b5f806003544261073a9190610b00565b90505f670de0b6b3a7640000825f546002546107569190610b4f565b6107609190610b4f565b61076a9190610aed565b60025461031f9190610b13565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107e591906109c6565b602060405180830381865afa158015610800573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108249190610b31565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610887573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ab9190610b82565b60ff1690506108bb81600a610cac565b6108c58487610b4f565b6103579190610aed565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061091f9033908690600401610cf5565b602060405180830381865afa15801561093a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e9190610d28565b90508061098d57333083604051634a3fa29360e01b815260040161098493929190610d46565b60405180910390fd5b5050565b805b82525050565b602081016109a78284610991565b92915050565b5f6001600160a01b0382166109a7565b610993816109ad565b602081016109a782846109bd565b6109dd816109ad565b81146109e7575f80fd5b50565b80356109a7816109d4565b5f60208284031215610a0857610a085f80fd5b5f610a1384846109ea565b949350505050565b5f6109a7826109ad565b5f6109a782610a1b565b61099381610a25565b602081016109a78284610a2f565b806109dd565b80356109a781610a46565b5f60208284031215610a6a57610a6a5f80fd5b5f610a138484610a4c565b5f8060408385031215610a8957610a895f80fd5b5f610a948585610a4c565b9250506020610aa585828601610a4c565b9150509250929050565b801515610993565b602081016109a78284610aaf565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610afb57610afb610ac5565b500490565b818103818111156109a7576109a7610ad9565b808201808211156109a7576109a7610ad9565b80516109a781610a46565b5f60208284031215610b4457610b445f80fd5b5f610a138484610b26565b818102808215838204851417610b6757610b67610ad9565b5092915050565b60ff81166109dd565b80516109a781610b6e565b5f60208284031215610b9557610b955f80fd5b5f610a138484610b77565b80825b6001851115610bdf57808604811115610bbe57610bbe610ad9565b6001851615610bcc57908102905b8002610bd88560011c90565b9450610ba3565b94509492505050565b5f82610bf65750600161031f565b81610c0257505f61031f565b8160018114610c185760028114610c2257610c4f565b600191505061031f565b60ff841115610c3357610c33610ad9565b8360020a915084821115610c4957610c49610ad9565b5061031f565b5060208310610133831016604e8410600b8410161715610c82575081810a83811115610c7d57610c7d610ad9565b61031f565b610c8f8484846001610ba0565b92509050818404811115610ca557610ca5610ad9565b0292915050565b5f61031f5f198484610be8565b8281835e505f910152565b5f610ccd825190565b808452602084019350610ce4818560208601610cb9565b601f01601f19169290920192915050565b60408101610d0382856109bd565b8181036020830152610a138184610cc4565b8015156109dd565b80516109a781610d15565b5f60208284031215610d3b57610d3b5f80fd5b5f610a138484610d1d565b60608101610d5482866109bd565b610d6160208301856109bd565b81810360408301526103578184610cc456fea264697066735822122067ba5d5be4032274271349b635df0305c4b9410f3b6f84906fbe92b2ec83ae8664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x8B9D2940 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x72A JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x777 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xAED JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x999 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x72A JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB00 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x72A JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x282A8700 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 0x701 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x725 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x73A SWAP2 SWAP1 PUSH2 0xB00 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x756 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x760 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB13 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x9C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x800 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x824 SWAP2 SWAP1 PUSH2 0xB31 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x887 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8AB SWAP2 SWAP1 PUSH2 0xB82 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8BB DUP2 PUSH1 0xA PUSH2 0xCAC JUMP JUMPDEST PUSH2 0x8C5 DUP5 DUP8 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x91F SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x93A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x95E SWAP2 SWAP1 PUSH2 0xD28 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x98D JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x984 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x991 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9A7 JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0x9DD DUP2 PUSH2 0x9AD JUMP JUMPDEST DUP2 EQ PUSH2 0x9E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0x9D4 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA08 JUMPI PUSH2 0xA08 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0x9EA JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0x9AD JUMP JUMPDEST PUSH0 PUSH2 0x9A7 DUP3 PUSH2 0xA1B JUMP JUMPDEST PUSH2 0x993 DUP2 PUSH2 0xA25 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xA2F JUMP JUMPDEST DUP1 PUSH2 0x9DD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA6A JUMPI PUSH2 0xA6A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xA4C JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA89 JUMPI PUSH2 0xA89 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA94 DUP6 DUP6 PUSH2 0xA4C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA5 DUP6 DUP3 DUP7 ADD PUSH2 0xA4C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x993 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9A7 DUP3 DUP5 PUSH2 0xAAF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAFB JUMPI PUSH2 0xAFB PUSH2 0xAC5 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9A7 JUMPI PUSH2 0x9A7 PUSH2 0xAD9 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xA46 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB44 JUMPI PUSH2 0xB44 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB26 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB67 JUMPI PUSH2 0xB67 PUSH2 0xAD9 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xB6E JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xB77 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBDF JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBBE JUMPI PUSH2 0xBBE PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBCC JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBD8 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBA3 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBF6 JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC02 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC18 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC22 JUMPI PUSH2 0xC4F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC33 JUMPI PUSH2 0xC33 PUSH2 0xAD9 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC49 PUSH2 0xAD9 JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC82 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC7D JUMPI PUSH2 0xC7D PUSH2 0xAD9 JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xC8F DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBA0 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCA5 JUMPI PUSH2 0xCA5 PUSH2 0xAD9 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBE8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCCD DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD03 DUP3 DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA13 DUP2 DUP5 PUSH2 0xCC4 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9DD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A7 DUP2 PUSH2 0xD15 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD3B JUMPI PUSH2 0xD3B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA13 DUP5 DUP5 PUSH2 0xD1D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD54 DUP3 DUP7 PUSH2 0x9BD JUMP JUMPDEST PUSH2 0xD61 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9BD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCC4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0xBA5D5BE403227427 SGT BLOBHASH 0xB6 CALLDATALOAD 0xDF SUB SDIV 0xC4 0xB9 COINBASE 0xF EXTCODESIZE PUSH16 0x84906FBE92B2EC83AE8664736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"479:1196:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;579:39:62:-;;;;;1635:32:67;;;;;;1099:58;;;;;1555:118:62;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1555:118:62:-;1616:7;1642:10;-1:-1:-1;;;;;1642:22:62;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1635:31;;1555:118;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;479:1196:62;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;479:1196:62;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;479:1196:62;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5740:180::-;-1:-1:-1;;;5785:1:101;5778:88;5885:4;5882:1;5875:15;5909:4;5906:1;5899:15;5926:180;-1:-1:-1;;;5971:1:101;5964:88;6071:4;6068:1;6061:15;6095:4;6092:1;6085:15;6112:185;6152:1;6242;6232:35;;6247:18;;:::i;:::-;-1:-1:-1;6282:9:101;;6112:185::o;6303:194::-;6434:9;;;6456:11;;;6453:37;;;6470:18;;:::i;6503:191::-;6632:9;;;6654:10;;;6651:36;;;6667:18;;:::i;6700:143::-;6782:13;;6804:33;6782:13;6804:33;:::i;6849:351::-;6919:6;6968:2;6956:9;6947:7;6943:23;6939:32;6936:119;;;6974:79;479:1196:62;;;6974:79:101;7094:1;7119:64;7175:7;7155:9;7119:64;:::i;7206:410::-;7351:9;;;;7513;;7546:15;;;7540:22;;7493:83;7470:139;;7589:18;;:::i;:::-;7254:362;7206:410;;;;:::o;7714:118::-;7697:4;7686:16;;7785:22;7622:86;7838:139;7918:13;;7940:31;7918:13;7940:31;:::i;7983:347::-;8051:6;8100:2;8088:9;8079:7;8075:23;8071:32;8068:119;;;8106:79;479:1196:62;;;8106:79:101;8226:1;8251:62;8305:7;8285:9;8251:62;:::i;8444:848::-;8536:6;8560:5;8574:712;8595:1;8585:8;8582:15;8574:712;;;8690:4;8685:3;8681:14;8675:4;8672:24;8669:50;;;8699:18;;:::i;:::-;8749:1;8739:8;8735:16;8732:451;;;9153:16;;;;8732:451;9204:15;;9244:32;9267:8;8422:1;8418:13;;8336:102;9244:32;9232:44;;8574:712;;;8444:848;;;;;;;:::o;9298:1073::-;9352:5;9543:8;9533:40;;-1:-1:-1;9564:1:101;9566:5;;9533:40;9592:4;9582:36;;-1:-1:-1;9609:1:101;9611:5;;9582:36;9678:4;9726:1;9721:27;;;;9762:1;9757:191;;;;9671:277;;9721:27;9739:1;9730:10;;9741:5;;;9757:191;9802:3;9792:8;9789:17;9786:43;;;9809:18;;:::i;:::-;9858:8;9855:1;9851:16;9842:25;;9893:3;9886:5;9883:14;9880:40;;;9900:18;;:::i;:::-;9933:5;;;9671:277;;10057:2;10047:8;10044:16;10038:3;10032:4;10029:13;10025:36;10007:2;9997:8;9994:16;9989:2;9983:4;9980:12;9976:35;9960:111;9957:246;;;-1:-1:-1;10103:19:101;;;10138:14;;;10135:40;;;10155:18;;:::i;:::-;10188:5;;9957:246;10228:42;10266:3;10256:8;10250:4;10247:1;10228:42;:::i;:::-;10213:57;;;;10302:4;10297:3;10293:14;10286:5;10283:25;10280:51;;;10311:18;;:::i;:::-;10349:16;;9298:1073;-1:-1:-1;;9298:1073:101:o;10377:285::-;10437:5;10551:104;-1:-1:-1;;10578:8:101;10572:4;10551:104;:::i;10948:139::-;11037:6;11032:3;11027;11021:23;-1:-1:-1;11078:1:101;11060:16;;11053:27;10948:139::o;11201:377::-;11289:3;11317:39;11350:5;10748:12;;10668:99;11317:39;10879:19;;;10931:4;10922:14;;11365:78;;11452:65;11510:6;11505:3;11498:4;11491:5;11487:16;11452:65;:::i;:::-;11185:2;11165:14;-1:-1:-1;;11161:28:101;11533:39;;;;;;-1:-1:-1;;11201:377:101:o;11584:423::-;11763:2;11748:18;;11776:71;11752:9;11820:6;11776:71;:::i;:::-;11894:9;11888:4;11884:20;11879:2;11868:9;11864:18;11857:48;11922:78;11995:4;11986:6;11922:78;:::i;12013:116::-;4124:13;;4117:21;12083;4054:90;12135:137;12214:13;;12236:30;12214:13;12236:30;:::i;12278:345::-;12345:6;12394:2;12382:9;12373:7;12369:23;12365:32;12362:119;;;12400:79;479:1196:62;;;12400:79:101;12520:1;12545:61;12598:7;12578:9;12545:61;:::i;12629:533::-;12836:2;12821:18;;12849:71;12825:9;12893:6;12849:71;:::i;:::-;12930:72;12998:2;12987:9;12983:18;12974:6;12930:72;:::i;:::-;13049:9;13043:4;13039:20;13034:2;13023:9;13019:18;13012:48;13077:78;13150:4;13141:6;13077:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"699400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","ACCOUNTANT()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","ACCOUNTANT()":"8b9d2940","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accountant\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weethLRT\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACCOUNTANT\",\"outputs\":[{\"internalType\":\"contract IAccountant\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount Amount of WETH\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"WeETHAccountantOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"ACCOUNTANT()\":{\"notice\":\"Address of Accountant\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Gets the WETH for 1 weETH LRT\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of Ether.fi tokens based on an `Accountant` contract (i.e. weETHs and weETHk)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/WeETHAccountantOracle.sol\":\"WeETHAccountantOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IAccountant.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAccountant {\\n    function getRateSafe() external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x04672ffcad2a2f951d7afc7288a5875dc6e67d12445666c959ac64966102b06b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/WeETHAccountantOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { IAccountant } from \\\"../interfaces/IAccountant.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title WeETHAccountantOracle\\n * @author Venus\\n * @notice This oracle fetches the price of Ether.fi tokens based on an `Accountant` contract (i.e. weETHs and weETHk)\\n */\\ncontract WeETHAccountantOracle is CorrelatedTokenOracle {\\n    /// @notice Address of Accountant\\n    IAccountant public immutable ACCOUNTANT;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address accountant,\\n        address weethLRT,\\n        address weth,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            weethLRT,\\n            weth,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(accountant);\\n        ACCOUNTANT = IAccountant(accountant);\\n    }\\n\\n    /**\\n     * @notice Gets the WETH for 1 weETH LRT\\n     * @return amount Amount of WETH\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return ACCOUNTANT.getRateSafe();\\n    }\\n}\\n\",\"keccak256\":\"0x2294bc2982a57a72bcbb464aa73bb7ef063dc8dc729fddbeb13efc07fbd3d9c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/WeETHAccountantOracle.sol:WeETHAccountantOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/WeETHAccountantOracle.sol:WeETHAccountantOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/WeETHAccountantOracle.sol:WeETHAccountantOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/WeETHAccountantOracle.sol:WeETHAccountantOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/WeETHAccountantOracle.sol:WeETHAccountantOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"ACCOUNTANT()":{"notice":"Address of Accountant"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Gets the WETH for 1 weETH LRT"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of Ether.fi tokens based on an `Accountant` contract (i.e. weETHs and weETHk)","version":1}}},"contracts/oracles/WeETHOracle.sol":{"WeETHOracle":{"abi":[{"inputs":[{"internalType":"address","name":"liquidityPool","type":"address"},{"internalType":"address","name":"weETH","type":"address"},{"internalType":"address","name":"eETH","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY_POOL","outputs":[{"internalType":"contract IEtherFiLiquidityPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount Amount of eETH"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"WeETHOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_6287":{"entryPoint":null,"id":6287,"parameterSlots":10,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":312,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":419,"id":null,"parameterSlots":2,"returnSlots":10},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":652,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":354,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":632,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":372,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3533:101","nodeType":"YulBlock","src":"0:3533:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1435:1532:101","nodeType":"YulBlock","src":"1435:1532:101","statements":[{"body":{"nativeSrc":"1482:83:101","nodeType":"YulBlock","src":"1482:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1484:77:101","nodeType":"YulIdentifier","src":"1484:77:101"},"nativeSrc":"1484:79:101","nodeType":"YulFunctionCall","src":"1484:79:101"},"nativeSrc":"1484:79:101","nodeType":"YulExpressionStatement","src":"1484:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1456:7:101","nodeType":"YulIdentifier","src":"1456:7:101"},{"name":"headStart","nativeSrc":"1465:9:101","nodeType":"YulIdentifier","src":"1465:9:101"}],"functionName":{"name":"sub","nativeSrc":"1452:3:101","nodeType":"YulIdentifier","src":"1452:3:101"},"nativeSrc":"1452:23:101","nodeType":"YulFunctionCall","src":"1452:23:101"},{"kind":"number","nativeSrc":"1477:3:101","nodeType":"YulLiteral","src":"1477:3:101","type":"","value":"320"}],"functionName":{"name":"slt","nativeSrc":"1448:3:101","nodeType":"YulIdentifier","src":"1448:3:101"},"nativeSrc":"1448:33:101","nodeType":"YulFunctionCall","src":"1448:33:101"},"nativeSrc":"1445:120:101","nodeType":"YulIf","src":"1445:120:101"},{"nativeSrc":"1575:128:101","nodeType":"YulBlock","src":"1575:128:101","statements":[{"nativeSrc":"1590:15:101","nodeType":"YulVariableDeclaration","src":"1590:15:101","value":{"kind":"number","nativeSrc":"1604:1:101","nodeType":"YulLiteral","src":"1604:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1594:6:101","nodeType":"YulTypedName","src":"1594:6:101","type":""}]},{"nativeSrc":"1619:74:101","nodeType":"YulAssignment","src":"1619:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1665:9:101","nodeType":"YulIdentifier","src":"1665:9:101"},{"name":"offset","nativeSrc":"1676:6:101","nodeType":"YulIdentifier","src":"1676:6:101"}],"functionName":{"name":"add","nativeSrc":"1661:3:101","nodeType":"YulIdentifier","src":"1661:3:101"},"nativeSrc":"1661:22:101","nodeType":"YulFunctionCall","src":"1661:22:101"},{"name":"dataEnd","nativeSrc":"1685:7:101","nodeType":"YulIdentifier","src":"1685:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1629:31:101","nodeType":"YulIdentifier","src":"1629:31:101"},"nativeSrc":"1629:64:101","nodeType":"YulFunctionCall","src":"1629:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1619:6:101","nodeType":"YulIdentifier","src":"1619:6:101"}]}]},{"nativeSrc":"1713:129:101","nodeType":"YulBlock","src":"1713:129:101","statements":[{"nativeSrc":"1728:16:101","nodeType":"YulVariableDeclaration","src":"1728:16:101","value":{"kind":"number","nativeSrc":"1742:2:101","nodeType":"YulLiteral","src":"1742:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1732:6:101","nodeType":"YulTypedName","src":"1732:6:101","type":""}]},{"nativeSrc":"1758:74:101","nodeType":"YulAssignment","src":"1758:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1804:9:101","nodeType":"YulIdentifier","src":"1804:9:101"},{"name":"offset","nativeSrc":"1815:6:101","nodeType":"YulIdentifier","src":"1815:6:101"}],"functionName":{"name":"add","nativeSrc":"1800:3:101","nodeType":"YulIdentifier","src":"1800:3:101"},"nativeSrc":"1800:22:101","nodeType":"YulFunctionCall","src":"1800:22:101"},{"name":"dataEnd","nativeSrc":"1824:7:101","nodeType":"YulIdentifier","src":"1824:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1768:31:101","nodeType":"YulIdentifier","src":"1768:31:101"},"nativeSrc":"1768:64:101","nodeType":"YulFunctionCall","src":"1768:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1758:6:101","nodeType":"YulIdentifier","src":"1758:6:101"}]}]},{"nativeSrc":"1852:129:101","nodeType":"YulBlock","src":"1852:129:101","statements":[{"nativeSrc":"1867:16:101","nodeType":"YulVariableDeclaration","src":"1867:16:101","value":{"kind":"number","nativeSrc":"1881:2:101","nodeType":"YulLiteral","src":"1881:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1871:6:101","nodeType":"YulTypedName","src":"1871:6:101","type":""}]},{"nativeSrc":"1897:74:101","nodeType":"YulAssignment","src":"1897:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1943:9:101","nodeType":"YulIdentifier","src":"1943:9:101"},{"name":"offset","nativeSrc":"1954:6:101","nodeType":"YulIdentifier","src":"1954:6:101"}],"functionName":{"name":"add","nativeSrc":"1939:3:101","nodeType":"YulIdentifier","src":"1939:3:101"},"nativeSrc":"1939:22:101","nodeType":"YulFunctionCall","src":"1939:22:101"},{"name":"dataEnd","nativeSrc":"1963:7:101","nodeType":"YulIdentifier","src":"1963:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1907:31:101","nodeType":"YulIdentifier","src":"1907:31:101"},"nativeSrc":"1907:64:101","nodeType":"YulFunctionCall","src":"1907:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1897:6:101","nodeType":"YulIdentifier","src":"1897:6:101"}]}]},{"nativeSrc":"1991:129:101","nodeType":"YulBlock","src":"1991:129:101","statements":[{"nativeSrc":"2006:16:101","nodeType":"YulVariableDeclaration","src":"2006:16:101","value":{"kind":"number","nativeSrc":"2020:2:101","nodeType":"YulLiteral","src":"2020:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"2010:6:101","nodeType":"YulTypedName","src":"2010:6:101","type":""}]},{"nativeSrc":"2036:74:101","nodeType":"YulAssignment","src":"2036:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2082:9:101","nodeType":"YulIdentifier","src":"2082:9:101"},{"name":"offset","nativeSrc":"2093:6:101","nodeType":"YulIdentifier","src":"2093:6:101"}],"functionName":{"name":"add","nativeSrc":"2078:3:101","nodeType":"YulIdentifier","src":"2078:3:101"},"nativeSrc":"2078:22:101","nodeType":"YulFunctionCall","src":"2078:22:101"},{"name":"dataEnd","nativeSrc":"2102:7:101","nodeType":"YulIdentifier","src":"2102:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2046:31:101","nodeType":"YulIdentifier","src":"2046:31:101"},"nativeSrc":"2046:64:101","nodeType":"YulFunctionCall","src":"2046:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2036:6:101","nodeType":"YulIdentifier","src":"2036:6:101"}]}]},{"nativeSrc":"2130:130:101","nodeType":"YulBlock","src":"2130:130:101","statements":[{"nativeSrc":"2145:17:101","nodeType":"YulVariableDeclaration","src":"2145:17:101","value":{"kind":"number","nativeSrc":"2159:3:101","nodeType":"YulLiteral","src":"2159:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2149:6:101","nodeType":"YulTypedName","src":"2149:6:101","type":""}]},{"nativeSrc":"2176:74:101","nodeType":"YulAssignment","src":"2176:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2222:9:101","nodeType":"YulIdentifier","src":"2222:9:101"},{"name":"offset","nativeSrc":"2233:6:101","nodeType":"YulIdentifier","src":"2233:6:101"}],"functionName":{"name":"add","nativeSrc":"2218:3:101","nodeType":"YulIdentifier","src":"2218:3:101"},"nativeSrc":"2218:22:101","nodeType":"YulFunctionCall","src":"2218:22:101"},{"name":"dataEnd","nativeSrc":"2242:7:101","nodeType":"YulIdentifier","src":"2242:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2186:31:101","nodeType":"YulIdentifier","src":"2186:31:101"},"nativeSrc":"2186:64:101","nodeType":"YulFunctionCall","src":"2186:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}]}]},{"nativeSrc":"2270:130:101","nodeType":"YulBlock","src":"2270:130:101","statements":[{"nativeSrc":"2285:17:101","nodeType":"YulVariableDeclaration","src":"2285:17:101","value":{"kind":"number","nativeSrc":"2299:3:101","nodeType":"YulLiteral","src":"2299:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2289:6:101","nodeType":"YulTypedName","src":"2289:6:101","type":""}]},{"nativeSrc":"2316:74:101","nodeType":"YulAssignment","src":"2316:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2362:9:101","nodeType":"YulIdentifier","src":"2362:9:101"},{"name":"offset","nativeSrc":"2373:6:101","nodeType":"YulIdentifier","src":"2373:6:101"}],"functionName":{"name":"add","nativeSrc":"2358:3:101","nodeType":"YulIdentifier","src":"2358:3:101"},"nativeSrc":"2358:22:101","nodeType":"YulFunctionCall","src":"2358:22:101"},{"name":"dataEnd","nativeSrc":"2382:7:101","nodeType":"YulIdentifier","src":"2382:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2326:31:101","nodeType":"YulIdentifier","src":"2326:31:101"},"nativeSrc":"2326:64:101","nodeType":"YulFunctionCall","src":"2326:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2316:6:101","nodeType":"YulIdentifier","src":"2316:6:101"}]}]},{"nativeSrc":"2410:130:101","nodeType":"YulBlock","src":"2410:130:101","statements":[{"nativeSrc":"2425:17:101","nodeType":"YulVariableDeclaration","src":"2425:17:101","value":{"kind":"number","nativeSrc":"2439:3:101","nodeType":"YulLiteral","src":"2439:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2429:6:101","nodeType":"YulTypedName","src":"2429:6:101","type":""}]},{"nativeSrc":"2456:74:101","nodeType":"YulAssignment","src":"2456:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2502:9:101","nodeType":"YulIdentifier","src":"2502:9:101"},{"name":"offset","nativeSrc":"2513:6:101","nodeType":"YulIdentifier","src":"2513:6:101"}],"functionName":{"name":"add","nativeSrc":"2498:3:101","nodeType":"YulIdentifier","src":"2498:3:101"},"nativeSrc":"2498:22:101","nodeType":"YulFunctionCall","src":"2498:22:101"},{"name":"dataEnd","nativeSrc":"2522:7:101","nodeType":"YulIdentifier","src":"2522:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2466:31:101","nodeType":"YulIdentifier","src":"2466:31:101"},"nativeSrc":"2466:64:101","nodeType":"YulFunctionCall","src":"2466:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2456:6:101","nodeType":"YulIdentifier","src":"2456:6:101"}]}]},{"nativeSrc":"2550:130:101","nodeType":"YulBlock","src":"2550:130:101","statements":[{"nativeSrc":"2565:17:101","nodeType":"YulVariableDeclaration","src":"2565:17:101","value":{"kind":"number","nativeSrc":"2579:3:101","nodeType":"YulLiteral","src":"2579:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2569:6:101","nodeType":"YulTypedName","src":"2569:6:101","type":""}]},{"nativeSrc":"2596:74:101","nodeType":"YulAssignment","src":"2596:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2642:9:101","nodeType":"YulIdentifier","src":"2642:9:101"},{"name":"offset","nativeSrc":"2653:6:101","nodeType":"YulIdentifier","src":"2653:6:101"}],"functionName":{"name":"add","nativeSrc":"2638:3:101","nodeType":"YulIdentifier","src":"2638:3:101"},"nativeSrc":"2638:22:101","nodeType":"YulFunctionCall","src":"2638:22:101"},{"name":"dataEnd","nativeSrc":"2662:7:101","nodeType":"YulIdentifier","src":"2662:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2606:31:101","nodeType":"YulIdentifier","src":"2606:31:101"},"nativeSrc":"2606:64:101","nodeType":"YulFunctionCall","src":"2606:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2596:6:101","nodeType":"YulIdentifier","src":"2596:6:101"}]}]},{"nativeSrc":"2690:130:101","nodeType":"YulBlock","src":"2690:130:101","statements":[{"nativeSrc":"2705:17:101","nodeType":"YulVariableDeclaration","src":"2705:17:101","value":{"kind":"number","nativeSrc":"2719:3:101","nodeType":"YulLiteral","src":"2719:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2709:6:101","nodeType":"YulTypedName","src":"2709:6:101","type":""}]},{"nativeSrc":"2736:74:101","nodeType":"YulAssignment","src":"2736:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2782:9:101","nodeType":"YulIdentifier","src":"2782:9:101"},{"name":"offset","nativeSrc":"2793:6:101","nodeType":"YulIdentifier","src":"2793:6:101"}],"functionName":{"name":"add","nativeSrc":"2778:3:101","nodeType":"YulIdentifier","src":"2778:3:101"},"nativeSrc":"2778:22:101","nodeType":"YulFunctionCall","src":"2778:22:101"},{"name":"dataEnd","nativeSrc":"2802:7:101","nodeType":"YulIdentifier","src":"2802:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2746:31:101","nodeType":"YulIdentifier","src":"2746:31:101"},"nativeSrc":"2746:64:101","nodeType":"YulFunctionCall","src":"2746:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2736:6:101","nodeType":"YulIdentifier","src":"2736:6:101"}]}]},{"nativeSrc":"2830:130:101","nodeType":"YulBlock","src":"2830:130:101","statements":[{"nativeSrc":"2845:17:101","nodeType":"YulVariableDeclaration","src":"2845:17:101","value":{"kind":"number","nativeSrc":"2859:3:101","nodeType":"YulLiteral","src":"2859:3:101","type":"","value":"288"},"variables":[{"name":"offset","nativeSrc":"2849:6:101","nodeType":"YulTypedName","src":"2849:6:101","type":""}]},{"nativeSrc":"2876:74:101","nodeType":"YulAssignment","src":"2876:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2922:9:101","nodeType":"YulIdentifier","src":"2922:9:101"},{"name":"offset","nativeSrc":"2933:6:101","nodeType":"YulIdentifier","src":"2933:6:101"}],"functionName":{"name":"add","nativeSrc":"2918:3:101","nodeType":"YulIdentifier","src":"2918:3:101"},"nativeSrc":"2918:22:101","nodeType":"YulFunctionCall","src":"2918:22:101"},{"name":"dataEnd","nativeSrc":"2942:7:101","nodeType":"YulIdentifier","src":"2942:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2886:31:101","nodeType":"YulIdentifier","src":"2886:31:101"},"nativeSrc":"2886:64:101","nodeType":"YulFunctionCall","src":"2886:64:101"},"variableNames":[{"name":"value9","nativeSrc":"2876:6:101","nodeType":"YulIdentifier","src":"2876:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1762:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1333:9:101","nodeType":"YulTypedName","src":"1333:9:101","type":""},{"name":"dataEnd","nativeSrc":"1344:7:101","nodeType":"YulTypedName","src":"1344:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1356:6:101","nodeType":"YulTypedName","src":"1356:6:101","type":""},{"name":"value1","nativeSrc":"1364:6:101","nodeType":"YulTypedName","src":"1364:6:101","type":""},{"name":"value2","nativeSrc":"1372:6:101","nodeType":"YulTypedName","src":"1372:6:101","type":""},{"name":"value3","nativeSrc":"1380:6:101","nodeType":"YulTypedName","src":"1380:6:101","type":""},{"name":"value4","nativeSrc":"1388:6:101","nodeType":"YulTypedName","src":"1388:6:101","type":""},{"name":"value5","nativeSrc":"1396:6:101","nodeType":"YulTypedName","src":"1396:6:101","type":""},{"name":"value6","nativeSrc":"1404:6:101","nodeType":"YulTypedName","src":"1404:6:101","type":""},{"name":"value7","nativeSrc":"1412:6:101","nodeType":"YulTypedName","src":"1412:6:101","type":""},{"name":"value8","nativeSrc":"1420:6:101","nodeType":"YulTypedName","src":"1420:6:101","type":""},{"name":"value9","nativeSrc":"1428:6:101","nodeType":"YulTypedName","src":"1428:6:101","type":""}],"src":"1205:1762:101"},{"body":{"nativeSrc":"3001:152:101","nodeType":"YulBlock","src":"3001:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3018:1:101","nodeType":"YulLiteral","src":"3018:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3021:77:101","nodeType":"YulLiteral","src":"3021:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3011:6:101","nodeType":"YulIdentifier","src":"3011:6:101"},"nativeSrc":"3011:88:101","nodeType":"YulFunctionCall","src":"3011:88:101"},"nativeSrc":"3011:88:101","nodeType":"YulExpressionStatement","src":"3011:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3115:1:101","nodeType":"YulLiteral","src":"3115:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3118:4:101","nodeType":"YulLiteral","src":"3118:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3108:6:101","nodeType":"YulIdentifier","src":"3108:6:101"},"nativeSrc":"3108:15:101","nodeType":"YulFunctionCall","src":"3108:15:101"},"nativeSrc":"3108:15:101","nodeType":"YulExpressionStatement","src":"3108:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3139:1:101","nodeType":"YulLiteral","src":"3139:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3142:4:101","nodeType":"YulLiteral","src":"3142:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3132:6:101","nodeType":"YulIdentifier","src":"3132:6:101"},"nativeSrc":"3132:15:101","nodeType":"YulFunctionCall","src":"3132:15:101"},"nativeSrc":"3132:15:101","nodeType":"YulExpressionStatement","src":"3132:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2973:180:101","nodeType":"YulFunctionDefinition","src":"2973:180:101"},{"body":{"nativeSrc":"3187:152:101","nodeType":"YulBlock","src":"3187:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3204:1:101","nodeType":"YulLiteral","src":"3204:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3207:77:101","nodeType":"YulLiteral","src":"3207:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3197:6:101","nodeType":"YulIdentifier","src":"3197:6:101"},"nativeSrc":"3197:88:101","nodeType":"YulFunctionCall","src":"3197:88:101"},"nativeSrc":"3197:88:101","nodeType":"YulExpressionStatement","src":"3197:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3301:1:101","nodeType":"YulLiteral","src":"3301:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3294:6:101","nodeType":"YulIdentifier","src":"3294:6:101"},"nativeSrc":"3294:15:101","nodeType":"YulFunctionCall","src":"3294:15:101"},"nativeSrc":"3294:15:101","nodeType":"YulExpressionStatement","src":"3294:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3325:1:101","nodeType":"YulLiteral","src":"3325:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3328:4:101","nodeType":"YulLiteral","src":"3328:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3318:6:101","nodeType":"YulIdentifier","src":"3318:6:101"},"nativeSrc":"3318:15:101","nodeType":"YulFunctionCall","src":"3318:15:101"},"nativeSrc":"3318:15:101","nodeType":"YulExpressionStatement","src":"3318:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3159:180:101","nodeType":"YulFunctionDefinition","src":"3159:180:101"},{"body":{"nativeSrc":"3387:143:101","nodeType":"YulBlock","src":"3387:143:101","statements":[{"nativeSrc":"3397:25:101","nodeType":"YulAssignment","src":"3397:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3420:1:101","nodeType":"YulIdentifier","src":"3420:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3402:17:101","nodeType":"YulIdentifier","src":"3402:17:101"},"nativeSrc":"3402:20:101","nodeType":"YulFunctionCall","src":"3402:20:101"},"variableNames":[{"name":"x","nativeSrc":"3397:1:101","nodeType":"YulIdentifier","src":"3397:1:101"}]},{"nativeSrc":"3431:25:101","nodeType":"YulAssignment","src":"3431:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3454:1:101","nodeType":"YulIdentifier","src":"3454:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3436:17:101","nodeType":"YulIdentifier","src":"3436:17:101"},"nativeSrc":"3436:20:101","nodeType":"YulFunctionCall","src":"3436:20:101"},"variableNames":[{"name":"y","nativeSrc":"3431:1:101","nodeType":"YulIdentifier","src":"3431:1:101"}]},{"body":{"nativeSrc":"3478:22:101","nodeType":"YulBlock","src":"3478:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3480:16:101","nodeType":"YulIdentifier","src":"3480:16:101"},"nativeSrc":"3480:18:101","nodeType":"YulFunctionCall","src":"3480:18:101"},"nativeSrc":"3480:18:101","nodeType":"YulExpressionStatement","src":"3480:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3475:1:101","nodeType":"YulIdentifier","src":"3475:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3468:6:101","nodeType":"YulIdentifier","src":"3468:6:101"},"nativeSrc":"3468:9:101","nodeType":"YulFunctionCall","src":"3468:9:101"},"nativeSrc":"3465:35:101","nodeType":"YulIf","src":"3465:35:101"},{"nativeSrc":"3510:14:101","nodeType":"YulAssignment","src":"3510:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3519:1:101","nodeType":"YulIdentifier","src":"3519:1:101"},{"name":"y","nativeSrc":"3522:1:101","nodeType":"YulIdentifier","src":"3522:1:101"}],"functionName":{"name":"div","nativeSrc":"3515:3:101","nodeType":"YulIdentifier","src":"3515:3:101"},"nativeSrc":"3515:9:101","nodeType":"YulFunctionCall","src":"3515:9:101"},"variableNames":[{"name":"r","nativeSrc":"3510:1:101","nodeType":"YulIdentifier","src":"3510:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3345:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3376:1:101","nodeType":"YulTypedName","src":"3376:1:101","type":""},{"name":"y","nativeSrc":"3379:1:101","nodeType":"YulTypedName","src":"3379:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3385:1:101","nodeType":"YulTypedName","src":"3385:1:101","type":""}],"src":"3345:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n        if slt(sub(dataEnd, headStart), 320) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 288\n\n            value9 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516110d13803806110d183398101604081905261002f916101a3565b8888888888888888886100466301e133808761028c565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610138565b6100ce88610138565b6100d787610138565b6100e082610138565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261011a8a610138565b5050506001600160a01b03909616610100525061029f945050505050565b6001600160a01b03811661015f576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61017d81610162565b811461015f575f80fd5b805161016e81610174565b8061017d565b805161016e81610192565b5f805f805f805f805f806101408b8d0312156101c0576101c05f80fd5b5f6101cb8d8d610187565b9a505060206101dc8d828e01610187565b99505060406101ed8d828e01610187565b98505060606101fe8d828e01610187565b975050608061020f8d828e01610198565b96505060a06102208d828e01610198565b95505060c06102318d828e01610198565b94505060e06102428d828e01610198565b9350506101006102548d828e01610187565b9250506101206102668d828e01610198565b9150509295989b9194979a5092959850565b634e487b7160e01b5f52601260045260245ffd5b5f8261029a5761029a610278565b500490565b60805160a05160c05160e05161010051610dbd6103145f395f818161016d01526106bd01525f81816101bd01526108fc01525f818161027501528181610574015261078f01525f8181610139015281816105a101526107be01525f8181610232015281816102b2015261083d0152610dbd5ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b8063671528d414610210578063692404261461022557806369818a351461022d5780637fc4e4a014610254575f80fd5b806341976e09116100e457806341976e09146101a557806345be2dc7146101b85780635213f9c8146101df578063596efe6f146101f4578063643d813d146101fd575f80fd5b806307d0413c1461011557806329db1be6146101345780632cca9dfd146101685780634169d2451461019c575b5f80fd5b61011e60015481565b60405161012b91906109ad565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109da565b61018f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a05565b61011e60045481565b61011e6101b3366004610a34565b6102af565b61018f7f000000000000000000000000000000000000000000000000000000000000000081565b6101f26101ed366004610a6b565b610360565b005b61011e60025481565b6101f261020b366004610a89565b6103d1565b6102186104a5565b60405161012b9190610acb565b6101f26104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101f2610262366004610a89565b61062c565b61011e60035481565b61018f7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61073e565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f8161078b565b9392505050565b5f61032f61073e565b90505f818311801561034057508115155b61034a578261034c565b815b90506103578161078b565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108e3565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108e3565b5f5461041f6301e1338084610b01565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109ad565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61073e565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b14565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761073e565b9050600454818311610529578261052b565b815b6105359190610b27565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109da565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108e3565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051630ac37bbf60e31b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063561bddf8906106fa90670de0b6b3a7640000906004016109ad565b602060405180830381865afa158015610715573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107399190610b45565b905090565b5f806003544261074e9190610b14565b90505f670de0b6b3a7640000825f5460025461076a9190610b63565b6107749190610b63565b61077e9190610b01565b60025461031f9190610b27565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107f991906109da565b602060405180830381865afa158015610814573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108389190610b45565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf9190610b96565b60ff1690506108cf81600a610cc0565b6108d98487610b63565b6103579190610b01565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109339033908690600401610d09565b602060405180830381865afa15801561094e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109729190610d3c565b9050806109a157333083604051634a3fa29360e01b815260040161099893929190610d5a565b60405180910390fd5b5050565b805b82525050565b602081016109bb82846109a5565b92915050565b5f6001600160a01b0382166109bb565b6109a7816109c1565b602081016109bb82846109d1565b5f6109bb826109c1565b5f6109bb826109e8565b6109a7816109f2565b602081016109bb82846109fc565b610a1c816109c1565b8114610a26575f80fd5b50565b80356109bb81610a13565b5f60208284031215610a4757610a475f80fd5b5f610a528484610a29565b949350505050565b80610a1c565b80356109bb81610a5a565b5f60208284031215610a7e57610a7e5f80fd5b5f610a528484610a60565b5f8060408385031215610a9d57610a9d5f80fd5b5f610aa88585610a60565b9250506020610ab985828601610a60565b9150509250929050565b8015156109a7565b602081016109bb8284610ac3565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b0f57610b0f610ad9565b500490565b818103818111156109bb576109bb610aed565b808201808211156109bb576109bb610aed565b80516109bb81610a5a565b5f60208284031215610b5857610b585f80fd5b5f610a528484610b3a565b818102808215838204851417610b7b57610b7b610aed565b5092915050565b60ff8116610a1c565b80516109bb81610b82565b5f60208284031215610ba957610ba95f80fd5b5f610a528484610b8b565b80825b6001851115610bf357808604811115610bd257610bd2610aed565b6001851615610be057908102905b8002610bec8560011c90565b9450610bb7565b94509492505050565b5f82610c0a5750600161031f565b81610c1657505f61031f565b8160018114610c2c5760028114610c3657610c63565b600191505061031f565b60ff841115610c4757610c47610aed565b8360020a915084821115610c5d57610c5d610aed565b5061031f565b5060208310610133831016604e8410600b8410161715610c96575081810a83811115610c9157610c91610aed565b61031f565b610ca38484846001610bb4565b92509050818404811115610cb957610cb9610aed565b0292915050565b5f61031f5f198484610bfc565b8281835e505f910152565b5f610ce1825190565b808452602084019350610cf8818560208601610ccd565b601f01601f19169290920192915050565b60408101610d1782856109d1565b8181036020830152610a528184610cd8565b801515610a1c565b80516109bb81610d29565b5f60208284031215610d4f57610d4f5f80fd5b5f610a528484610d31565b60608101610d6882866109d1565b610d7560208301856109d1565b81810360408301526103578184610cd856fea264697066735822122082cf606c89768dc01a1b3094e1d705c0303102f4bc9d54d6b3bf04d13f980d2e64736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10D1 CODESIZE SUB DUP1 PUSH2 0x10D1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1A3 JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x28C JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x138 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x11A DUP11 PUSH2 0x138 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH2 0x100 MSTORE POP PUSH2 0x29F SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17D DUP2 PUSH2 0x162 JUMP JUMPDEST DUP2 EQ PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x174 JUMP JUMPDEST DUP1 PUSH2 0x17D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x192 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x1C0 JUMPI PUSH2 0x1C0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CB DUP14 DUP14 PUSH2 0x187 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x1DC DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x1ED DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x1FE DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x20F DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x220 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x231 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 PUSH2 0x242 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 PUSH2 0x254 DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 PUSH2 0x266 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x29A JUMPI PUSH2 0x29A PUSH2 0x278 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xDBD PUSH2 0x314 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x16D ADD MSTORE PUSH2 0x6BD ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x1BD ADD MSTORE PUSH2 0x8FC ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x275 ADD MSTORE DUP2 DUP2 PUSH2 0x574 ADD MSTORE PUSH2 0x78F ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x5A1 ADD MSTORE PUSH2 0x7BE ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x232 ADD MSTORE DUP2 DUP2 PUSH2 0x2B2 ADD MSTORE PUSH2 0x83D ADD MSTORE PUSH2 0xDBD PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x254 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41976E09 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x2CCA9DFD EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x19C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x18F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA05 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xA34 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x18F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x1ED CALLDATASIZE PUSH1 0x4 PUSH2 0xA6B JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x218 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x262 CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x18F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x73E JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xB01 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x73E JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB14 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9DA JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xAC37BBF PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x561BDDF8 SWAP1 PUSH2 0x6FA SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x715 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x739 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x74E SWAP2 SWAP1 PUSH2 0xB14 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x77E SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x814 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x838 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x89B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8BF SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8CF DUP2 PUSH1 0xA PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x8D9 DUP5 DUP8 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x933 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD09 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x972 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9A1 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x998 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9BB JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9D1 JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0x9C1 JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0x9E8 JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9FC JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0x9C1 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0xA13 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA47 JUMPI PUSH2 0xA47 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xA29 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xA1C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA7E JUMPI PUSH2 0xA7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xA60 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA9D JUMPI PUSH2 0xA9D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAA8 DUP6 DUP6 PUSH2 0xA60 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAB9 DUP6 DUP3 DUP7 ADD PUSH2 0xA60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0xAC3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB0F JUMPI PUSH2 0xB0F PUSH2 0xAD9 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB58 JUMPI PUSH2 0xB58 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xB3A JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB7B JUMPI PUSH2 0xB7B PUSH2 0xAED JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA1C JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xB82 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBA9 JUMPI PUSH2 0xBA9 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xB8B JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBF3 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBD2 JUMPI PUSH2 0xBD2 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBE0 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBEC DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBB7 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC0A JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC16 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC2C JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC36 JUMPI PUSH2 0xC63 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC47 JUMPI PUSH2 0xC47 PUSH2 0xAED JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC5D PUSH2 0xAED JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC96 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC91 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xCA3 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBB4 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCB9 JUMPI PUSH2 0xCB9 PUSH2 0xAED JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBFC JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCE1 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCCD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD17 DUP3 DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA52 DUP2 DUP5 PUSH2 0xCD8 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA1C JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xD29 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4F JUMPI PUSH2 0xD4F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD68 DUP3 DUP7 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0xD75 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCD8 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 0xCF PUSH1 0x6C DUP10 PUSH23 0x8DC01A1B3094E1D705C0303102F4BC9D54D6B3BF04D13F SWAP9 0xD 0x2E PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"507:1233:63:-:0;;;722:782;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1119:5;1138:4;1156:15;1185:16;1215:17;1246:30;1290:24;1328:20;1362:12;3527:36:67;408:10:17;1185:16:63;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1399:35:63::1;1420:13:::0;1399:20:::1;:35::i;:::-;-1:-1:-1::0;;;;;;;;1444:53:63;;::::1;;::::0;-1:-1:-1;507:1233:63;;-1:-1:-1;;;;;507:1233:63;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1762::-;1356:6;1364;1372;1380;1388;1396;1404;1412;1420;1428;1477:3;1465:9;1456:7;1452:23;1448:33;1445:120;;;1484:79;197:1;194;187:12;1484:79;1604:1;1629:64;1685:7;1665:9;1629:64;:::i;:::-;1619:74;;1575:128;1742:2;1768:64;1824:7;1815:6;1804:9;1800:22;1768:64;:::i;:::-;1758:74;;1713:129;1881:2;1907:64;1963:7;1954:6;1943:9;1939:22;1907:64;:::i;:::-;1897:74;;1852:129;2020:2;2046:64;2102:7;2093:6;2082:9;2078:22;2046:64;:::i;:::-;2036:74;;1991:129;2159:3;2186:64;2242:7;2233:6;2222:9;2218:22;2186:64;:::i;:::-;2176:74;;2130:130;2299:3;2326:64;2382:7;2373:6;2362:9;2358:22;2326:64;:::i;:::-;2316:74;;2270:130;2439:3;2466:64;2522:7;2513:6;2502:9;2498:22;2466:64;:::i;:::-;2456:74;;2410:130;2579:3;2606:64;2662:7;2653:6;2642:9;2638:22;2606:64;:::i;:::-;2596:74;;2550:130;2719:3;2746:64;2802:7;2793:6;2782:9;2778:22;2746:64;:::i;:::-;2736:74;;2690:130;2859:3;2886:64;2942:7;2933:6;2922:9;2918:22;2886:64;:::i;:::-;2876:74;;2830:130;1205:1762;;;;;;;;;;;;;:::o;2973:180::-;-1:-1:-1;;;3018:1:101;3011:88;3118:4;3115:1;3108:15;3142:4;3139:1;3132:15;3345:185;3385:1;3475;3465:35;;3480:18;;:::i;:::-;-1:-1:-1;3515:9:101;;3345:185::o;:::-;507:1233:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@LIQUIDITY_POOL_6241":{"entryPoint":null,"id":6241,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1931,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2275,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1854,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":687,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_6300":{"entryPoint":1700,"id":6300,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1189,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":977,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":864,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1580,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1248,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2601,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3377,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2656,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2874,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2955,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3388,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2697,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2513,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2755,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address_fromStack":{"entryPoint":2556,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3288,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2469,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2522,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3418,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3337,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2763,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IEtherFiLiquidityPool_$3519__to_t_address__fromStack_reversed":{"entryPoint":2565,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2477,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2855,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2817,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2996,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3264,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3068,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2915,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2836,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2497,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address":{"entryPoint":2546,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2536,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3277,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2797,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2777,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2579,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3369,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2650,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2946,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13215:101","nodeType":"YulBlock","src":"0:13215:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1060:28:101","nodeType":"YulBlock","src":"1060:28:101","statements":[{"nativeSrc":"1070:12:101","nodeType":"YulAssignment","src":"1070:12:101","value":{"name":"value","nativeSrc":"1077:5:101","nodeType":"YulIdentifier","src":"1077:5:101"},"variableNames":[{"name":"ret","nativeSrc":"1070:3:101","nodeType":"YulIdentifier","src":"1070:3:101"}]}]},"name":"identity","nativeSrc":"1028:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1046:5:101","nodeType":"YulTypedName","src":"1046:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1056:3:101","nodeType":"YulTypedName","src":"1056:3:101","type":""}],"src":"1028:60:101"},{"body":{"nativeSrc":"1154:82:101","nodeType":"YulBlock","src":"1154:82:101","statements":[{"nativeSrc":"1164:66:101","nodeType":"YulAssignment","src":"1164:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1222:5:101","nodeType":"YulIdentifier","src":"1222:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1204:17:101","nodeType":"YulIdentifier","src":"1204:17:101"},"nativeSrc":"1204:24:101","nodeType":"YulFunctionCall","src":"1204:24:101"}],"functionName":{"name":"identity","nativeSrc":"1195:8:101","nodeType":"YulIdentifier","src":"1195:8:101"},"nativeSrc":"1195:34:101","nodeType":"YulFunctionCall","src":"1195:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1177:17:101","nodeType":"YulIdentifier","src":"1177:17:101"},"nativeSrc":"1177:53:101","nodeType":"YulFunctionCall","src":"1177:53:101"},"variableNames":[{"name":"converted","nativeSrc":"1164:9:101","nodeType":"YulIdentifier","src":"1164:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1094:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1134:5:101","nodeType":"YulTypedName","src":"1134:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1144:9:101","nodeType":"YulTypedName","src":"1144:9:101","type":""}],"src":"1094:142:101"},{"body":{"nativeSrc":"1302:66:101","nodeType":"YulBlock","src":"1302:66:101","statements":[{"nativeSrc":"1312:50:101","nodeType":"YulAssignment","src":"1312:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1356:5:101","nodeType":"YulIdentifier","src":"1356:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1325:30:101","nodeType":"YulIdentifier","src":"1325:30:101"},"nativeSrc":"1325:37:101","nodeType":"YulFunctionCall","src":"1325:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1312:9:101","nodeType":"YulIdentifier","src":"1312:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"1242:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1282:5:101","nodeType":"YulTypedName","src":"1282:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1292:9:101","nodeType":"YulTypedName","src":"1292:9:101","type":""}],"src":"1242:126:101"},{"body":{"nativeSrc":"1464:66:101","nodeType":"YulBlock","src":"1464:66:101","statements":[{"nativeSrc":"1474:50:101","nodeType":"YulAssignment","src":"1474:50:101","value":{"arguments":[{"name":"value","nativeSrc":"1518:5:101","nodeType":"YulIdentifier","src":"1518:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1487:30:101","nodeType":"YulIdentifier","src":"1487:30:101"},"nativeSrc":"1487:37:101","nodeType":"YulFunctionCall","src":"1487:37:101"},"variableNames":[{"name":"converted","nativeSrc":"1474:9:101","nodeType":"YulIdentifier","src":"1474:9:101"}]}]},"name":"convert_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address","nativeSrc":"1374:156:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1444:5:101","nodeType":"YulTypedName","src":"1444:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1454:9:101","nodeType":"YulTypedName","src":"1454:9:101","type":""}],"src":"1374:156:101"},{"body":{"nativeSrc":"1631:96:101","nodeType":"YulBlock","src":"1631:96:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1648:3:101","nodeType":"YulIdentifier","src":"1648:3:101"},{"arguments":[{"name":"value","nativeSrc":"1714:5:101","nodeType":"YulIdentifier","src":"1714:5:101"}],"functionName":{"name":"convert_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address","nativeSrc":"1653:60:101","nodeType":"YulIdentifier","src":"1653:60:101"},"nativeSrc":"1653:67:101","nodeType":"YulFunctionCall","src":"1653:67:101"}],"functionName":{"name":"mstore","nativeSrc":"1641:6:101","nodeType":"YulIdentifier","src":"1641:6:101"},"nativeSrc":"1641:80:101","nodeType":"YulFunctionCall","src":"1641:80:101"},"nativeSrc":"1641:80:101","nodeType":"YulExpressionStatement","src":"1641:80:101"}]},"name":"abi_encode_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address_fromStack","nativeSrc":"1536:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1619:5:101","nodeType":"YulTypedName","src":"1619:5:101","type":""},{"name":"pos","nativeSrc":"1626:3:101","nodeType":"YulTypedName","src":"1626:3:101","type":""}],"src":"1536:191:101"},{"body":{"nativeSrc":"1861:154:101","nodeType":"YulBlock","src":"1861:154:101","statements":[{"nativeSrc":"1871:26:101","nodeType":"YulAssignment","src":"1871:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1883:9:101","nodeType":"YulIdentifier","src":"1883:9:101"},{"kind":"number","nativeSrc":"1894:2:101","nodeType":"YulLiteral","src":"1894:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1879:3:101","nodeType":"YulIdentifier","src":"1879:3:101"},"nativeSrc":"1879:18:101","nodeType":"YulFunctionCall","src":"1879:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1871:4:101","nodeType":"YulIdentifier","src":"1871:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1981:6:101","nodeType":"YulIdentifier","src":"1981:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1994:9:101","nodeType":"YulIdentifier","src":"1994:9:101"},{"kind":"number","nativeSrc":"2005:1:101","nodeType":"YulLiteral","src":"2005:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1990:3:101","nodeType":"YulIdentifier","src":"1990:3:101"},"nativeSrc":"1990:17:101","nodeType":"YulFunctionCall","src":"1990:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address_fromStack","nativeSrc":"1907:73:101","nodeType":"YulIdentifier","src":"1907:73:101"},"nativeSrc":"1907:101:101","nodeType":"YulFunctionCall","src":"1907:101:101"},"nativeSrc":"1907:101:101","nodeType":"YulExpressionStatement","src":"1907:101:101"}]},"name":"abi_encode_tuple_t_contract$_IEtherFiLiquidityPool_$3519__to_t_address__fromStack_reversed","nativeSrc":"1733:282:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1833:9:101","nodeType":"YulTypedName","src":"1833:9:101","type":""},{"name":"value0","nativeSrc":"1845:6:101","nodeType":"YulTypedName","src":"1845:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1856:4:101","nodeType":"YulTypedName","src":"1856:4:101","type":""}],"src":"1733:282:101"},{"body":{"nativeSrc":"2061:35:101","nodeType":"YulBlock","src":"2061:35:101","statements":[{"nativeSrc":"2071:19:101","nodeType":"YulAssignment","src":"2071:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"2087:2:101","nodeType":"YulLiteral","src":"2087:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2081:5:101","nodeType":"YulIdentifier","src":"2081:5:101"},"nativeSrc":"2081:9:101","nodeType":"YulFunctionCall","src":"2081:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"2071:6:101","nodeType":"YulIdentifier","src":"2071:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"2021:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"2054:6:101","nodeType":"YulTypedName","src":"2054:6:101","type":""}],"src":"2021:75:101"},{"body":{"nativeSrc":"2191:28:101","nodeType":"YulBlock","src":"2191:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2208:1:101","nodeType":"YulLiteral","src":"2208:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2211:1:101","nodeType":"YulLiteral","src":"2211:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2201:6:101","nodeType":"YulIdentifier","src":"2201:6:101"},"nativeSrc":"2201:12:101","nodeType":"YulFunctionCall","src":"2201:12:101"},"nativeSrc":"2201:12:101","nodeType":"YulExpressionStatement","src":"2201:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2102:117:101","nodeType":"YulFunctionDefinition","src":"2102:117:101"},{"body":{"nativeSrc":"2314:28:101","nodeType":"YulBlock","src":"2314:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2331:1:101","nodeType":"YulLiteral","src":"2331:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2334:1:101","nodeType":"YulLiteral","src":"2334:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2324:6:101","nodeType":"YulIdentifier","src":"2324:6:101"},"nativeSrc":"2324:12:101","nodeType":"YulFunctionCall","src":"2324:12:101"},"nativeSrc":"2324:12:101","nodeType":"YulExpressionStatement","src":"2324:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2225:117:101","nodeType":"YulFunctionDefinition","src":"2225:117:101"},{"body":{"nativeSrc":"2391:79:101","nodeType":"YulBlock","src":"2391:79:101","statements":[{"body":{"nativeSrc":"2448:16:101","nodeType":"YulBlock","src":"2448:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2457:1:101","nodeType":"YulLiteral","src":"2457:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2460:1:101","nodeType":"YulLiteral","src":"2460:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2450:6:101","nodeType":"YulIdentifier","src":"2450:6:101"},"nativeSrc":"2450:12:101","nodeType":"YulFunctionCall","src":"2450:12:101"},"nativeSrc":"2450:12:101","nodeType":"YulExpressionStatement","src":"2450:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2414:5:101","nodeType":"YulIdentifier","src":"2414:5:101"},{"arguments":[{"name":"value","nativeSrc":"2439:5:101","nodeType":"YulIdentifier","src":"2439:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2421:17:101","nodeType":"YulIdentifier","src":"2421:17:101"},"nativeSrc":"2421:24:101","nodeType":"YulFunctionCall","src":"2421:24:101"}],"functionName":{"name":"eq","nativeSrc":"2411:2:101","nodeType":"YulIdentifier","src":"2411:2:101"},"nativeSrc":"2411:35:101","nodeType":"YulFunctionCall","src":"2411:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2404:6:101","nodeType":"YulIdentifier","src":"2404:6:101"},"nativeSrc":"2404:43:101","nodeType":"YulFunctionCall","src":"2404:43:101"},"nativeSrc":"2401:63:101","nodeType":"YulIf","src":"2401:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2348:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2384:5:101","nodeType":"YulTypedName","src":"2384:5:101","type":""}],"src":"2348:122:101"},{"body":{"nativeSrc":"2528:87:101","nodeType":"YulBlock","src":"2528:87:101","statements":[{"nativeSrc":"2538:29:101","nodeType":"YulAssignment","src":"2538:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2560:6:101","nodeType":"YulIdentifier","src":"2560:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2547:12:101","nodeType":"YulIdentifier","src":"2547:12:101"},"nativeSrc":"2547:20:101","nodeType":"YulFunctionCall","src":"2547:20:101"},"variableNames":[{"name":"value","nativeSrc":"2538:5:101","nodeType":"YulIdentifier","src":"2538:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2603:5:101","nodeType":"YulIdentifier","src":"2603:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2576:26:101","nodeType":"YulIdentifier","src":"2576:26:101"},"nativeSrc":"2576:33:101","nodeType":"YulFunctionCall","src":"2576:33:101"},"nativeSrc":"2576:33:101","nodeType":"YulExpressionStatement","src":"2576:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2476:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2506:6:101","nodeType":"YulTypedName","src":"2506:6:101","type":""},{"name":"end","nativeSrc":"2514:3:101","nodeType":"YulTypedName","src":"2514:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2522:5:101","nodeType":"YulTypedName","src":"2522:5:101","type":""}],"src":"2476:139:101"},{"body":{"nativeSrc":"2687:263:101","nodeType":"YulBlock","src":"2687:263:101","statements":[{"body":{"nativeSrc":"2733:83:101","nodeType":"YulBlock","src":"2733:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2735:77:101","nodeType":"YulIdentifier","src":"2735:77:101"},"nativeSrc":"2735:79:101","nodeType":"YulFunctionCall","src":"2735:79:101"},"nativeSrc":"2735:79:101","nodeType":"YulExpressionStatement","src":"2735:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2708:7:101","nodeType":"YulIdentifier","src":"2708:7:101"},{"name":"headStart","nativeSrc":"2717:9:101","nodeType":"YulIdentifier","src":"2717:9:101"}],"functionName":{"name":"sub","nativeSrc":"2704:3:101","nodeType":"YulIdentifier","src":"2704:3:101"},"nativeSrc":"2704:23:101","nodeType":"YulFunctionCall","src":"2704:23:101"},{"kind":"number","nativeSrc":"2729:2:101","nodeType":"YulLiteral","src":"2729:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2700:3:101","nodeType":"YulIdentifier","src":"2700:3:101"},"nativeSrc":"2700:32:101","nodeType":"YulFunctionCall","src":"2700:32:101"},"nativeSrc":"2697:119:101","nodeType":"YulIf","src":"2697:119:101"},{"nativeSrc":"2826:117:101","nodeType":"YulBlock","src":"2826:117:101","statements":[{"nativeSrc":"2841:15:101","nodeType":"YulVariableDeclaration","src":"2841:15:101","value":{"kind":"number","nativeSrc":"2855:1:101","nodeType":"YulLiteral","src":"2855:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2845:6:101","nodeType":"YulTypedName","src":"2845:6:101","type":""}]},{"nativeSrc":"2870:63:101","nodeType":"YulAssignment","src":"2870:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2905:9:101","nodeType":"YulIdentifier","src":"2905:9:101"},{"name":"offset","nativeSrc":"2916:6:101","nodeType":"YulIdentifier","src":"2916:6:101"}],"functionName":{"name":"add","nativeSrc":"2901:3:101","nodeType":"YulIdentifier","src":"2901:3:101"},"nativeSrc":"2901:22:101","nodeType":"YulFunctionCall","src":"2901:22:101"},{"name":"dataEnd","nativeSrc":"2925:7:101","nodeType":"YulIdentifier","src":"2925:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2880:20:101","nodeType":"YulIdentifier","src":"2880:20:101"},"nativeSrc":"2880:53:101","nodeType":"YulFunctionCall","src":"2880:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2870:6:101","nodeType":"YulIdentifier","src":"2870:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2621:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2657:9:101","nodeType":"YulTypedName","src":"2657:9:101","type":""},{"name":"dataEnd","nativeSrc":"2668:7:101","nodeType":"YulTypedName","src":"2668:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2680:6:101","nodeType":"YulTypedName","src":"2680:6:101","type":""}],"src":"2621:329:101"},{"body":{"nativeSrc":"3048:66:101","nodeType":"YulBlock","src":"3048:66:101","statements":[{"nativeSrc":"3058:50:101","nodeType":"YulAssignment","src":"3058:50:101","value":{"arguments":[{"name":"value","nativeSrc":"3102:5:101","nodeType":"YulIdentifier","src":"3102:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3071:30:101","nodeType":"YulIdentifier","src":"3071:30:101"},"nativeSrc":"3071:37:101","nodeType":"YulFunctionCall","src":"3071:37:101"},"variableNames":[{"name":"converted","nativeSrc":"3058:9:101","nodeType":"YulIdentifier","src":"3058:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2956:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3028:5:101","nodeType":"YulTypedName","src":"3028:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3038:9:101","nodeType":"YulTypedName","src":"3038:9:101","type":""}],"src":"2956:158:101"},{"body":{"nativeSrc":"3217:98:101","nodeType":"YulBlock","src":"3217:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3234:3:101","nodeType":"YulIdentifier","src":"3234:3:101"},{"arguments":[{"name":"value","nativeSrc":"3302:5:101","nodeType":"YulIdentifier","src":"3302:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"3239:62:101","nodeType":"YulIdentifier","src":"3239:62:101"},"nativeSrc":"3239:69:101","nodeType":"YulFunctionCall","src":"3239:69:101"}],"functionName":{"name":"mstore","nativeSrc":"3227:6:101","nodeType":"YulIdentifier","src":"3227:6:101"},"nativeSrc":"3227:82:101","nodeType":"YulFunctionCall","src":"3227:82:101"},"nativeSrc":"3227:82:101","nodeType":"YulExpressionStatement","src":"3227:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"3120:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3205:5:101","nodeType":"YulTypedName","src":"3205:5:101","type":""},{"name":"pos","nativeSrc":"3212:3:101","nodeType":"YulTypedName","src":"3212:3:101","type":""}],"src":"3120:195:101"},{"body":{"nativeSrc":"3451:156:101","nodeType":"YulBlock","src":"3451:156:101","statements":[{"nativeSrc":"3461:26:101","nodeType":"YulAssignment","src":"3461:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3473:9:101","nodeType":"YulIdentifier","src":"3473:9:101"},{"kind":"number","nativeSrc":"3484:2:101","nodeType":"YulLiteral","src":"3484:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3469:3:101","nodeType":"YulIdentifier","src":"3469:3:101"},"nativeSrc":"3469:18:101","nodeType":"YulFunctionCall","src":"3469:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3461:4:101","nodeType":"YulIdentifier","src":"3461:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3573:6:101","nodeType":"YulIdentifier","src":"3573:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3586:9:101","nodeType":"YulIdentifier","src":"3586:9:101"},{"kind":"number","nativeSrc":"3597:1:101","nodeType":"YulLiteral","src":"3597:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3582:3:101","nodeType":"YulIdentifier","src":"3582:3:101"},"nativeSrc":"3582:17:101","nodeType":"YulFunctionCall","src":"3582:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"3497:75:101","nodeType":"YulIdentifier","src":"3497:75:101"},"nativeSrc":"3497:103:101","nodeType":"YulFunctionCall","src":"3497:103:101"},"nativeSrc":"3497:103:101","nodeType":"YulExpressionStatement","src":"3497:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"3321:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3423:9:101","nodeType":"YulTypedName","src":"3423:9:101","type":""},{"name":"value0","nativeSrc":"3435:6:101","nodeType":"YulTypedName","src":"3435:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3446:4:101","nodeType":"YulTypedName","src":"3446:4:101","type":""}],"src":"3321:286:101"},{"body":{"nativeSrc":"3656:79:101","nodeType":"YulBlock","src":"3656:79:101","statements":[{"body":{"nativeSrc":"3713:16:101","nodeType":"YulBlock","src":"3713:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3722:1:101","nodeType":"YulLiteral","src":"3722:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3725:1:101","nodeType":"YulLiteral","src":"3725:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3715:6:101","nodeType":"YulIdentifier","src":"3715:6:101"},"nativeSrc":"3715:12:101","nodeType":"YulFunctionCall","src":"3715:12:101"},"nativeSrc":"3715:12:101","nodeType":"YulExpressionStatement","src":"3715:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3679:5:101","nodeType":"YulIdentifier","src":"3679:5:101"},{"arguments":[{"name":"value","nativeSrc":"3704:5:101","nodeType":"YulIdentifier","src":"3704:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3686:17:101","nodeType":"YulIdentifier","src":"3686:17:101"},"nativeSrc":"3686:24:101","nodeType":"YulFunctionCall","src":"3686:24:101"}],"functionName":{"name":"eq","nativeSrc":"3676:2:101","nodeType":"YulIdentifier","src":"3676:2:101"},"nativeSrc":"3676:35:101","nodeType":"YulFunctionCall","src":"3676:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3669:6:101","nodeType":"YulIdentifier","src":"3669:6:101"},"nativeSrc":"3669:43:101","nodeType":"YulFunctionCall","src":"3669:43:101"},"nativeSrc":"3666:63:101","nodeType":"YulIf","src":"3666:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"3613:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3649:5:101","nodeType":"YulTypedName","src":"3649:5:101","type":""}],"src":"3613:122:101"},{"body":{"nativeSrc":"3793:87:101","nodeType":"YulBlock","src":"3793:87:101","statements":[{"nativeSrc":"3803:29:101","nodeType":"YulAssignment","src":"3803:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3825:6:101","nodeType":"YulIdentifier","src":"3825:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3812:12:101","nodeType":"YulIdentifier","src":"3812:12:101"},"nativeSrc":"3812:20:101","nodeType":"YulFunctionCall","src":"3812:20:101"},"variableNames":[{"name":"value","nativeSrc":"3803:5:101","nodeType":"YulIdentifier","src":"3803:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3868:5:101","nodeType":"YulIdentifier","src":"3868:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3841:26:101","nodeType":"YulIdentifier","src":"3841:26:101"},"nativeSrc":"3841:33:101","nodeType":"YulFunctionCall","src":"3841:33:101"},"nativeSrc":"3841:33:101","nodeType":"YulExpressionStatement","src":"3841:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3741:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3771:6:101","nodeType":"YulTypedName","src":"3771:6:101","type":""},{"name":"end","nativeSrc":"3779:3:101","nodeType":"YulTypedName","src":"3779:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3787:5:101","nodeType":"YulTypedName","src":"3787:5:101","type":""}],"src":"3741:139:101"},{"body":{"nativeSrc":"3952:263:101","nodeType":"YulBlock","src":"3952:263:101","statements":[{"body":{"nativeSrc":"3998:83:101","nodeType":"YulBlock","src":"3998:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4000:77:101","nodeType":"YulIdentifier","src":"4000:77:101"},"nativeSrc":"4000:79:101","nodeType":"YulFunctionCall","src":"4000:79:101"},"nativeSrc":"4000:79:101","nodeType":"YulExpressionStatement","src":"4000:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3973:7:101","nodeType":"YulIdentifier","src":"3973:7:101"},{"name":"headStart","nativeSrc":"3982:9:101","nodeType":"YulIdentifier","src":"3982:9:101"}],"functionName":{"name":"sub","nativeSrc":"3969:3:101","nodeType":"YulIdentifier","src":"3969:3:101"},"nativeSrc":"3969:23:101","nodeType":"YulFunctionCall","src":"3969:23:101"},{"kind":"number","nativeSrc":"3994:2:101","nodeType":"YulLiteral","src":"3994:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3965:3:101","nodeType":"YulIdentifier","src":"3965:3:101"},"nativeSrc":"3965:32:101","nodeType":"YulFunctionCall","src":"3965:32:101"},"nativeSrc":"3962:119:101","nodeType":"YulIf","src":"3962:119:101"},{"nativeSrc":"4091:117:101","nodeType":"YulBlock","src":"4091:117:101","statements":[{"nativeSrc":"4106:15:101","nodeType":"YulVariableDeclaration","src":"4106:15:101","value":{"kind":"number","nativeSrc":"4120:1:101","nodeType":"YulLiteral","src":"4120:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4110:6:101","nodeType":"YulTypedName","src":"4110:6:101","type":""}]},{"nativeSrc":"4135:63:101","nodeType":"YulAssignment","src":"4135:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4170:9:101","nodeType":"YulIdentifier","src":"4170:9:101"},{"name":"offset","nativeSrc":"4181:6:101","nodeType":"YulIdentifier","src":"4181:6:101"}],"functionName":{"name":"add","nativeSrc":"4166:3:101","nodeType":"YulIdentifier","src":"4166:3:101"},"nativeSrc":"4166:22:101","nodeType":"YulFunctionCall","src":"4166:22:101"},{"name":"dataEnd","nativeSrc":"4190:7:101","nodeType":"YulIdentifier","src":"4190:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4145:20:101","nodeType":"YulIdentifier","src":"4145:20:101"},"nativeSrc":"4145:53:101","nodeType":"YulFunctionCall","src":"4145:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4135:6:101","nodeType":"YulIdentifier","src":"4135:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3886:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3922:9:101","nodeType":"YulTypedName","src":"3922:9:101","type":""},{"name":"dataEnd","nativeSrc":"3933:7:101","nodeType":"YulTypedName","src":"3933:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3945:6:101","nodeType":"YulTypedName","src":"3945:6:101","type":""}],"src":"3886:329:101"},{"body":{"nativeSrc":"4304:391:101","nodeType":"YulBlock","src":"4304:391:101","statements":[{"body":{"nativeSrc":"4350:83:101","nodeType":"YulBlock","src":"4350:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4352:77:101","nodeType":"YulIdentifier","src":"4352:77:101"},"nativeSrc":"4352:79:101","nodeType":"YulFunctionCall","src":"4352:79:101"},"nativeSrc":"4352:79:101","nodeType":"YulExpressionStatement","src":"4352:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4325:7:101","nodeType":"YulIdentifier","src":"4325:7:101"},{"name":"headStart","nativeSrc":"4334:9:101","nodeType":"YulIdentifier","src":"4334:9:101"}],"functionName":{"name":"sub","nativeSrc":"4321:3:101","nodeType":"YulIdentifier","src":"4321:3:101"},"nativeSrc":"4321:23:101","nodeType":"YulFunctionCall","src":"4321:23:101"},{"kind":"number","nativeSrc":"4346:2:101","nodeType":"YulLiteral","src":"4346:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4317:3:101","nodeType":"YulIdentifier","src":"4317:3:101"},"nativeSrc":"4317:32:101","nodeType":"YulFunctionCall","src":"4317:32:101"},"nativeSrc":"4314:119:101","nodeType":"YulIf","src":"4314:119:101"},{"nativeSrc":"4443:117:101","nodeType":"YulBlock","src":"4443:117:101","statements":[{"nativeSrc":"4458:15:101","nodeType":"YulVariableDeclaration","src":"4458:15:101","value":{"kind":"number","nativeSrc":"4472:1:101","nodeType":"YulLiteral","src":"4472:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4462:6:101","nodeType":"YulTypedName","src":"4462:6:101","type":""}]},{"nativeSrc":"4487:63:101","nodeType":"YulAssignment","src":"4487:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4522:9:101","nodeType":"YulIdentifier","src":"4522:9:101"},{"name":"offset","nativeSrc":"4533:6:101","nodeType":"YulIdentifier","src":"4533:6:101"}],"functionName":{"name":"add","nativeSrc":"4518:3:101","nodeType":"YulIdentifier","src":"4518:3:101"},"nativeSrc":"4518:22:101","nodeType":"YulFunctionCall","src":"4518:22:101"},{"name":"dataEnd","nativeSrc":"4542:7:101","nodeType":"YulIdentifier","src":"4542:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4497:20:101","nodeType":"YulIdentifier","src":"4497:20:101"},"nativeSrc":"4497:53:101","nodeType":"YulFunctionCall","src":"4497:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4487:6:101","nodeType":"YulIdentifier","src":"4487:6:101"}]}]},{"nativeSrc":"4570:118:101","nodeType":"YulBlock","src":"4570:118:101","statements":[{"nativeSrc":"4585:16:101","nodeType":"YulVariableDeclaration","src":"4585:16:101","value":{"kind":"number","nativeSrc":"4599:2:101","nodeType":"YulLiteral","src":"4599:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4589:6:101","nodeType":"YulTypedName","src":"4589:6:101","type":""}]},{"nativeSrc":"4615:63:101","nodeType":"YulAssignment","src":"4615:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4650:9:101","nodeType":"YulIdentifier","src":"4650:9:101"},{"name":"offset","nativeSrc":"4661:6:101","nodeType":"YulIdentifier","src":"4661:6:101"}],"functionName":{"name":"add","nativeSrc":"4646:3:101","nodeType":"YulIdentifier","src":"4646:3:101"},"nativeSrc":"4646:22:101","nodeType":"YulFunctionCall","src":"4646:22:101"},{"name":"dataEnd","nativeSrc":"4670:7:101","nodeType":"YulIdentifier","src":"4670:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4625:20:101","nodeType":"YulIdentifier","src":"4625:20:101"},"nativeSrc":"4625:53:101","nodeType":"YulFunctionCall","src":"4625:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4615:6:101","nodeType":"YulIdentifier","src":"4615:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"4221:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4266:9:101","nodeType":"YulTypedName","src":"4266:9:101","type":""},{"name":"dataEnd","nativeSrc":"4277:7:101","nodeType":"YulTypedName","src":"4277:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4289:6:101","nodeType":"YulTypedName","src":"4289:6:101","type":""},{"name":"value1","nativeSrc":"4297:6:101","nodeType":"YulTypedName","src":"4297:6:101","type":""}],"src":"4221:474:101"},{"body":{"nativeSrc":"4743:48:101","nodeType":"YulBlock","src":"4743:48:101","statements":[{"nativeSrc":"4753:32:101","nodeType":"YulAssignment","src":"4753:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4778:5:101","nodeType":"YulIdentifier","src":"4778:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4771:6:101","nodeType":"YulIdentifier","src":"4771:6:101"},"nativeSrc":"4771:13:101","nodeType":"YulFunctionCall","src":"4771:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4764:6:101","nodeType":"YulIdentifier","src":"4764:6:101"},"nativeSrc":"4764:21:101","nodeType":"YulFunctionCall","src":"4764:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4753:7:101","nodeType":"YulIdentifier","src":"4753:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4701:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4725:5:101","nodeType":"YulTypedName","src":"4725:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4735:7:101","nodeType":"YulTypedName","src":"4735:7:101","type":""}],"src":"4701:90:101"},{"body":{"nativeSrc":"4856:50:101","nodeType":"YulBlock","src":"4856:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4873:3:101","nodeType":"YulIdentifier","src":"4873:3:101"},{"arguments":[{"name":"value","nativeSrc":"4893:5:101","nodeType":"YulIdentifier","src":"4893:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4878:14:101","nodeType":"YulIdentifier","src":"4878:14:101"},"nativeSrc":"4878:21:101","nodeType":"YulFunctionCall","src":"4878:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4866:6:101","nodeType":"YulIdentifier","src":"4866:6:101"},"nativeSrc":"4866:34:101","nodeType":"YulFunctionCall","src":"4866:34:101"},"nativeSrc":"4866:34:101","nodeType":"YulExpressionStatement","src":"4866:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4797:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4844:5:101","nodeType":"YulTypedName","src":"4844:5:101","type":""},{"name":"pos","nativeSrc":"4851:3:101","nodeType":"YulTypedName","src":"4851:3:101","type":""}],"src":"4797:109:101"},{"body":{"nativeSrc":"5004:118:101","nodeType":"YulBlock","src":"5004:118:101","statements":[{"nativeSrc":"5014:26:101","nodeType":"YulAssignment","src":"5014:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5026:9:101","nodeType":"YulIdentifier","src":"5026:9:101"},{"kind":"number","nativeSrc":"5037:2:101","nodeType":"YulLiteral","src":"5037:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5022:3:101","nodeType":"YulIdentifier","src":"5022:3:101"},"nativeSrc":"5022:18:101","nodeType":"YulFunctionCall","src":"5022:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5014:4:101","nodeType":"YulIdentifier","src":"5014:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5088:6:101","nodeType":"YulIdentifier","src":"5088:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5101:9:101","nodeType":"YulIdentifier","src":"5101:9:101"},{"kind":"number","nativeSrc":"5112:1:101","nodeType":"YulLiteral","src":"5112:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5097:3:101","nodeType":"YulIdentifier","src":"5097:3:101"},"nativeSrc":"5097:17:101","nodeType":"YulFunctionCall","src":"5097:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5050:37:101","nodeType":"YulIdentifier","src":"5050:37:101"},"nativeSrc":"5050:65:101","nodeType":"YulFunctionCall","src":"5050:65:101"},"nativeSrc":"5050:65:101","nodeType":"YulExpressionStatement","src":"5050:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4912:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4976:9:101","nodeType":"YulTypedName","src":"4976:9:101","type":""},{"name":"value0","nativeSrc":"4988:6:101","nodeType":"YulTypedName","src":"4988:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4999:4:101","nodeType":"YulTypedName","src":"4999:4:101","type":""}],"src":"4912:210:101"},{"body":{"nativeSrc":"5221:66:101","nodeType":"YulBlock","src":"5221:66:101","statements":[{"nativeSrc":"5231:50:101","nodeType":"YulAssignment","src":"5231:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5275:5:101","nodeType":"YulIdentifier","src":"5275:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5244:30:101","nodeType":"YulIdentifier","src":"5244:30:101"},"nativeSrc":"5244:37:101","nodeType":"YulFunctionCall","src":"5244:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5231:9:101","nodeType":"YulIdentifier","src":"5231:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5128:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5201:5:101","nodeType":"YulTypedName","src":"5201:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5211:9:101","nodeType":"YulTypedName","src":"5211:9:101","type":""}],"src":"5128:159:101"},{"body":{"nativeSrc":"5391:99:101","nodeType":"YulBlock","src":"5391:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5408:3:101","nodeType":"YulIdentifier","src":"5408:3:101"},{"arguments":[{"name":"value","nativeSrc":"5477:5:101","nodeType":"YulIdentifier","src":"5477:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"5413:63:101","nodeType":"YulIdentifier","src":"5413:63:101"},"nativeSrc":"5413:70:101","nodeType":"YulFunctionCall","src":"5413:70:101"}],"functionName":{"name":"mstore","nativeSrc":"5401:6:101","nodeType":"YulIdentifier","src":"5401:6:101"},"nativeSrc":"5401:83:101","nodeType":"YulFunctionCall","src":"5401:83:101"},"nativeSrc":"5401:83:101","nodeType":"YulExpressionStatement","src":"5401:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5293:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5379:5:101","nodeType":"YulTypedName","src":"5379:5:101","type":""},{"name":"pos","nativeSrc":"5386:3:101","nodeType":"YulTypedName","src":"5386:3:101","type":""}],"src":"5293:197:101"},{"body":{"nativeSrc":"5627:157:101","nodeType":"YulBlock","src":"5627:157:101","statements":[{"nativeSrc":"5637:26:101","nodeType":"YulAssignment","src":"5637:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5649:9:101","nodeType":"YulIdentifier","src":"5649:9:101"},{"kind":"number","nativeSrc":"5660:2:101","nodeType":"YulLiteral","src":"5660:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5645:3:101","nodeType":"YulIdentifier","src":"5645:3:101"},"nativeSrc":"5645:18:101","nodeType":"YulFunctionCall","src":"5645:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5637:4:101","nodeType":"YulIdentifier","src":"5637:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5750:6:101","nodeType":"YulIdentifier","src":"5750:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5763:9:101","nodeType":"YulIdentifier","src":"5763:9:101"},{"kind":"number","nativeSrc":"5774:1:101","nodeType":"YulLiteral","src":"5774:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5759:3:101","nodeType":"YulIdentifier","src":"5759:3:101"},"nativeSrc":"5759:17:101","nodeType":"YulFunctionCall","src":"5759:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5673:76:101","nodeType":"YulIdentifier","src":"5673:76:101"},"nativeSrc":"5673:104:101","nodeType":"YulFunctionCall","src":"5673:104:101"},"nativeSrc":"5673:104:101","nodeType":"YulExpressionStatement","src":"5673:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"5496:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5599:9:101","nodeType":"YulTypedName","src":"5599:9:101","type":""},{"name":"value0","nativeSrc":"5611:6:101","nodeType":"YulTypedName","src":"5611:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5622:4:101","nodeType":"YulTypedName","src":"5622:4:101","type":""}],"src":"5496:288:101"},{"body":{"nativeSrc":"5818:152:101","nodeType":"YulBlock","src":"5818:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5835:1:101","nodeType":"YulLiteral","src":"5835:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5838:77:101","nodeType":"YulLiteral","src":"5838:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5828:6:101","nodeType":"YulIdentifier","src":"5828:6:101"},"nativeSrc":"5828:88:101","nodeType":"YulFunctionCall","src":"5828:88:101"},"nativeSrc":"5828:88:101","nodeType":"YulExpressionStatement","src":"5828:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5932:1:101","nodeType":"YulLiteral","src":"5932:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5935:4:101","nodeType":"YulLiteral","src":"5935:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5925:6:101","nodeType":"YulIdentifier","src":"5925:6:101"},"nativeSrc":"5925:15:101","nodeType":"YulFunctionCall","src":"5925:15:101"},"nativeSrc":"5925:15:101","nodeType":"YulExpressionStatement","src":"5925:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5956:1:101","nodeType":"YulLiteral","src":"5956:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5959:4:101","nodeType":"YulLiteral","src":"5959:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5949:6:101","nodeType":"YulIdentifier","src":"5949:6:101"},"nativeSrc":"5949:15:101","nodeType":"YulFunctionCall","src":"5949:15:101"},"nativeSrc":"5949:15:101","nodeType":"YulExpressionStatement","src":"5949:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5790:180:101","nodeType":"YulFunctionDefinition","src":"5790:180:101"},{"body":{"nativeSrc":"6004:152:101","nodeType":"YulBlock","src":"6004:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6021:1:101","nodeType":"YulLiteral","src":"6021:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6024:77:101","nodeType":"YulLiteral","src":"6024:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6014:6:101","nodeType":"YulIdentifier","src":"6014:6:101"},"nativeSrc":"6014:88:101","nodeType":"YulFunctionCall","src":"6014:88:101"},"nativeSrc":"6014:88:101","nodeType":"YulExpressionStatement","src":"6014:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6118:1:101","nodeType":"YulLiteral","src":"6118:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6121:4:101","nodeType":"YulLiteral","src":"6121:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6111:6:101","nodeType":"YulIdentifier","src":"6111:6:101"},"nativeSrc":"6111:15:101","nodeType":"YulFunctionCall","src":"6111:15:101"},"nativeSrc":"6111:15:101","nodeType":"YulExpressionStatement","src":"6111:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6142:1:101","nodeType":"YulLiteral","src":"6142:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6145:4:101","nodeType":"YulLiteral","src":"6145:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6135:6:101","nodeType":"YulIdentifier","src":"6135:6:101"},"nativeSrc":"6135:15:101","nodeType":"YulFunctionCall","src":"6135:15:101"},"nativeSrc":"6135:15:101","nodeType":"YulExpressionStatement","src":"6135:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5976:180:101","nodeType":"YulFunctionDefinition","src":"5976:180:101"},{"body":{"nativeSrc":"6204:143:101","nodeType":"YulBlock","src":"6204:143:101","statements":[{"nativeSrc":"6214:25:101","nodeType":"YulAssignment","src":"6214:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6237:1:101","nodeType":"YulIdentifier","src":"6237:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6219:17:101","nodeType":"YulIdentifier","src":"6219:17:101"},"nativeSrc":"6219:20:101","nodeType":"YulFunctionCall","src":"6219:20:101"},"variableNames":[{"name":"x","nativeSrc":"6214:1:101","nodeType":"YulIdentifier","src":"6214:1:101"}]},{"nativeSrc":"6248:25:101","nodeType":"YulAssignment","src":"6248:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6271:1:101","nodeType":"YulIdentifier","src":"6271:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6253:17:101","nodeType":"YulIdentifier","src":"6253:17:101"},"nativeSrc":"6253:20:101","nodeType":"YulFunctionCall","src":"6253:20:101"},"variableNames":[{"name":"y","nativeSrc":"6248:1:101","nodeType":"YulIdentifier","src":"6248:1:101"}]},{"body":{"nativeSrc":"6295:22:101","nodeType":"YulBlock","src":"6295:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6297:16:101","nodeType":"YulIdentifier","src":"6297:16:101"},"nativeSrc":"6297:18:101","nodeType":"YulFunctionCall","src":"6297:18:101"},"nativeSrc":"6297:18:101","nodeType":"YulExpressionStatement","src":"6297:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6292:1:101","nodeType":"YulIdentifier","src":"6292:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6285:6:101","nodeType":"YulIdentifier","src":"6285:6:101"},"nativeSrc":"6285:9:101","nodeType":"YulFunctionCall","src":"6285:9:101"},"nativeSrc":"6282:35:101","nodeType":"YulIf","src":"6282:35:101"},{"nativeSrc":"6327:14:101","nodeType":"YulAssignment","src":"6327:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6336:1:101","nodeType":"YulIdentifier","src":"6336:1:101"},{"name":"y","nativeSrc":"6339:1:101","nodeType":"YulIdentifier","src":"6339:1:101"}],"functionName":{"name":"div","nativeSrc":"6332:3:101","nodeType":"YulIdentifier","src":"6332:3:101"},"nativeSrc":"6332:9:101","nodeType":"YulFunctionCall","src":"6332:9:101"},"variableNames":[{"name":"r","nativeSrc":"6327:1:101","nodeType":"YulIdentifier","src":"6327:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6162:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6193:1:101","nodeType":"YulTypedName","src":"6193:1:101","type":""},{"name":"y","nativeSrc":"6196:1:101","nodeType":"YulTypedName","src":"6196:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6202:1:101","nodeType":"YulTypedName","src":"6202:1:101","type":""}],"src":"6162:185:101"},{"body":{"nativeSrc":"6398:149:101","nodeType":"YulBlock","src":"6398:149:101","statements":[{"nativeSrc":"6408:25:101","nodeType":"YulAssignment","src":"6408:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6431:1:101","nodeType":"YulIdentifier","src":"6431:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6413:17:101","nodeType":"YulIdentifier","src":"6413:17:101"},"nativeSrc":"6413:20:101","nodeType":"YulFunctionCall","src":"6413:20:101"},"variableNames":[{"name":"x","nativeSrc":"6408:1:101","nodeType":"YulIdentifier","src":"6408:1:101"}]},{"nativeSrc":"6442:25:101","nodeType":"YulAssignment","src":"6442:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6465:1:101","nodeType":"YulIdentifier","src":"6465:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6447:17:101","nodeType":"YulIdentifier","src":"6447:17:101"},"nativeSrc":"6447:20:101","nodeType":"YulFunctionCall","src":"6447:20:101"},"variableNames":[{"name":"y","nativeSrc":"6442:1:101","nodeType":"YulIdentifier","src":"6442:1:101"}]},{"nativeSrc":"6476:17:101","nodeType":"YulAssignment","src":"6476:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6488:1:101","nodeType":"YulIdentifier","src":"6488:1:101"},{"name":"y","nativeSrc":"6491:1:101","nodeType":"YulIdentifier","src":"6491:1:101"}],"functionName":{"name":"sub","nativeSrc":"6484:3:101","nodeType":"YulIdentifier","src":"6484:3:101"},"nativeSrc":"6484:9:101","nodeType":"YulFunctionCall","src":"6484:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6476:4:101","nodeType":"YulIdentifier","src":"6476:4:101"}]},{"body":{"nativeSrc":"6518:22:101","nodeType":"YulBlock","src":"6518:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6520:16:101","nodeType":"YulIdentifier","src":"6520:16:101"},"nativeSrc":"6520:18:101","nodeType":"YulFunctionCall","src":"6520:18:101"},"nativeSrc":"6520:18:101","nodeType":"YulExpressionStatement","src":"6520:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6509:4:101","nodeType":"YulIdentifier","src":"6509:4:101"},{"name":"x","nativeSrc":"6515:1:101","nodeType":"YulIdentifier","src":"6515:1:101"}],"functionName":{"name":"gt","nativeSrc":"6506:2:101","nodeType":"YulIdentifier","src":"6506:2:101"},"nativeSrc":"6506:11:101","nodeType":"YulFunctionCall","src":"6506:11:101"},"nativeSrc":"6503:37:101","nodeType":"YulIf","src":"6503:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6353:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6384:1:101","nodeType":"YulTypedName","src":"6384:1:101","type":""},{"name":"y","nativeSrc":"6387:1:101","nodeType":"YulTypedName","src":"6387:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6393:4:101","nodeType":"YulTypedName","src":"6393:4:101","type":""}],"src":"6353:194:101"},{"body":{"nativeSrc":"6597:147:101","nodeType":"YulBlock","src":"6597:147:101","statements":[{"nativeSrc":"6607:25:101","nodeType":"YulAssignment","src":"6607:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6630:1:101","nodeType":"YulIdentifier","src":"6630:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6612:17:101","nodeType":"YulIdentifier","src":"6612:17:101"},"nativeSrc":"6612:20:101","nodeType":"YulFunctionCall","src":"6612:20:101"},"variableNames":[{"name":"x","nativeSrc":"6607:1:101","nodeType":"YulIdentifier","src":"6607:1:101"}]},{"nativeSrc":"6641:25:101","nodeType":"YulAssignment","src":"6641:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6664:1:101","nodeType":"YulIdentifier","src":"6664:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6646:17:101","nodeType":"YulIdentifier","src":"6646:17:101"},"nativeSrc":"6646:20:101","nodeType":"YulFunctionCall","src":"6646:20:101"},"variableNames":[{"name":"y","nativeSrc":"6641:1:101","nodeType":"YulIdentifier","src":"6641:1:101"}]},{"nativeSrc":"6675:16:101","nodeType":"YulAssignment","src":"6675:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6686:1:101","nodeType":"YulIdentifier","src":"6686:1:101"},{"name":"y","nativeSrc":"6689:1:101","nodeType":"YulIdentifier","src":"6689:1:101"}],"functionName":{"name":"add","nativeSrc":"6682:3:101","nodeType":"YulIdentifier","src":"6682:3:101"},"nativeSrc":"6682:9:101","nodeType":"YulFunctionCall","src":"6682:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6675:3:101","nodeType":"YulIdentifier","src":"6675:3:101"}]},{"body":{"nativeSrc":"6715:22:101","nodeType":"YulBlock","src":"6715:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6717:16:101","nodeType":"YulIdentifier","src":"6717:16:101"},"nativeSrc":"6717:18:101","nodeType":"YulFunctionCall","src":"6717:18:101"},"nativeSrc":"6717:18:101","nodeType":"YulExpressionStatement","src":"6717:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6707:1:101","nodeType":"YulIdentifier","src":"6707:1:101"},{"name":"sum","nativeSrc":"6710:3:101","nodeType":"YulIdentifier","src":"6710:3:101"}],"functionName":{"name":"gt","nativeSrc":"6704:2:101","nodeType":"YulIdentifier","src":"6704:2:101"},"nativeSrc":"6704:10:101","nodeType":"YulFunctionCall","src":"6704:10:101"},"nativeSrc":"6701:36:101","nodeType":"YulIf","src":"6701:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6553:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6584:1:101","nodeType":"YulTypedName","src":"6584:1:101","type":""},{"name":"y","nativeSrc":"6587:1:101","nodeType":"YulTypedName","src":"6587:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6593:3:101","nodeType":"YulTypedName","src":"6593:3:101","type":""}],"src":"6553:191:101"},{"body":{"nativeSrc":"6813:80:101","nodeType":"YulBlock","src":"6813:80:101","statements":[{"nativeSrc":"6823:22:101","nodeType":"YulAssignment","src":"6823:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6838:6:101","nodeType":"YulIdentifier","src":"6838:6:101"}],"functionName":{"name":"mload","nativeSrc":"6832:5:101","nodeType":"YulIdentifier","src":"6832:5:101"},"nativeSrc":"6832:13:101","nodeType":"YulFunctionCall","src":"6832:13:101"},"variableNames":[{"name":"value","nativeSrc":"6823:5:101","nodeType":"YulIdentifier","src":"6823:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6881:5:101","nodeType":"YulIdentifier","src":"6881:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6854:26:101","nodeType":"YulIdentifier","src":"6854:26:101"},"nativeSrc":"6854:33:101","nodeType":"YulFunctionCall","src":"6854:33:101"},"nativeSrc":"6854:33:101","nodeType":"YulExpressionStatement","src":"6854:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6750:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6791:6:101","nodeType":"YulTypedName","src":"6791:6:101","type":""},{"name":"end","nativeSrc":"6799:3:101","nodeType":"YulTypedName","src":"6799:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6807:5:101","nodeType":"YulTypedName","src":"6807:5:101","type":""}],"src":"6750:143:101"},{"body":{"nativeSrc":"6976:274:101","nodeType":"YulBlock","src":"6976:274:101","statements":[{"body":{"nativeSrc":"7022:83:101","nodeType":"YulBlock","src":"7022:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7024:77:101","nodeType":"YulIdentifier","src":"7024:77:101"},"nativeSrc":"7024:79:101","nodeType":"YulFunctionCall","src":"7024:79:101"},"nativeSrc":"7024:79:101","nodeType":"YulExpressionStatement","src":"7024:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6997:7:101","nodeType":"YulIdentifier","src":"6997:7:101"},{"name":"headStart","nativeSrc":"7006:9:101","nodeType":"YulIdentifier","src":"7006:9:101"}],"functionName":{"name":"sub","nativeSrc":"6993:3:101","nodeType":"YulIdentifier","src":"6993:3:101"},"nativeSrc":"6993:23:101","nodeType":"YulFunctionCall","src":"6993:23:101"},{"kind":"number","nativeSrc":"7018:2:101","nodeType":"YulLiteral","src":"7018:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6989:3:101","nodeType":"YulIdentifier","src":"6989:3:101"},"nativeSrc":"6989:32:101","nodeType":"YulFunctionCall","src":"6989:32:101"},"nativeSrc":"6986:119:101","nodeType":"YulIf","src":"6986:119:101"},{"nativeSrc":"7115:128:101","nodeType":"YulBlock","src":"7115:128:101","statements":[{"nativeSrc":"7130:15:101","nodeType":"YulVariableDeclaration","src":"7130:15:101","value":{"kind":"number","nativeSrc":"7144:1:101","nodeType":"YulLiteral","src":"7144:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7134:6:101","nodeType":"YulTypedName","src":"7134:6:101","type":""}]},{"nativeSrc":"7159:74:101","nodeType":"YulAssignment","src":"7159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7205:9:101","nodeType":"YulIdentifier","src":"7205:9:101"},{"name":"offset","nativeSrc":"7216:6:101","nodeType":"YulIdentifier","src":"7216:6:101"}],"functionName":{"name":"add","nativeSrc":"7201:3:101","nodeType":"YulIdentifier","src":"7201:3:101"},"nativeSrc":"7201:22:101","nodeType":"YulFunctionCall","src":"7201:22:101"},{"name":"dataEnd","nativeSrc":"7225:7:101","nodeType":"YulIdentifier","src":"7225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7169:31:101","nodeType":"YulIdentifier","src":"7169:31:101"},"nativeSrc":"7169:64:101","nodeType":"YulFunctionCall","src":"7169:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7159:6:101","nodeType":"YulIdentifier","src":"7159:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6899:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6946:9:101","nodeType":"YulTypedName","src":"6946:9:101","type":""},{"name":"dataEnd","nativeSrc":"6957:7:101","nodeType":"YulTypedName","src":"6957:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6969:6:101","nodeType":"YulTypedName","src":"6969:6:101","type":""}],"src":"6899:351:101"},{"body":{"nativeSrc":"7304:362:101","nodeType":"YulBlock","src":"7304:362:101","statements":[{"nativeSrc":"7314:25:101","nodeType":"YulAssignment","src":"7314:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7337:1:101","nodeType":"YulIdentifier","src":"7337:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7319:17:101","nodeType":"YulIdentifier","src":"7319:17:101"},"nativeSrc":"7319:20:101","nodeType":"YulFunctionCall","src":"7319:20:101"},"variableNames":[{"name":"x","nativeSrc":"7314:1:101","nodeType":"YulIdentifier","src":"7314:1:101"}]},{"nativeSrc":"7348:25:101","nodeType":"YulAssignment","src":"7348:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7371:1:101","nodeType":"YulIdentifier","src":"7371:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7353:17:101","nodeType":"YulIdentifier","src":"7353:17:101"},"nativeSrc":"7353:20:101","nodeType":"YulFunctionCall","src":"7353:20:101"},"variableNames":[{"name":"y","nativeSrc":"7348:1:101","nodeType":"YulIdentifier","src":"7348:1:101"}]},{"nativeSrc":"7382:28:101","nodeType":"YulVariableDeclaration","src":"7382:28:101","value":{"arguments":[{"name":"x","nativeSrc":"7405:1:101","nodeType":"YulIdentifier","src":"7405:1:101"},{"name":"y","nativeSrc":"7408:1:101","nodeType":"YulIdentifier","src":"7408:1:101"}],"functionName":{"name":"mul","nativeSrc":"7401:3:101","nodeType":"YulIdentifier","src":"7401:3:101"},"nativeSrc":"7401:9:101","nodeType":"YulFunctionCall","src":"7401:9:101"},"variables":[{"name":"product_raw","nativeSrc":"7386:11:101","nodeType":"YulTypedName","src":"7386:11:101","type":""}]},{"nativeSrc":"7419:41:101","nodeType":"YulAssignment","src":"7419:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"7448:11:101","nodeType":"YulIdentifier","src":"7448:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7430:17:101","nodeType":"YulIdentifier","src":"7430:17:101"},"nativeSrc":"7430:30:101","nodeType":"YulFunctionCall","src":"7430:30:101"},"variableNames":[{"name":"product","nativeSrc":"7419:7:101","nodeType":"YulIdentifier","src":"7419:7:101"}]},{"body":{"nativeSrc":"7637:22:101","nodeType":"YulBlock","src":"7637:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7639:16:101","nodeType":"YulIdentifier","src":"7639:16:101"},"nativeSrc":"7639:18:101","nodeType":"YulFunctionCall","src":"7639:18:101"},"nativeSrc":"7639:18:101","nodeType":"YulExpressionStatement","src":"7639:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7570:1:101","nodeType":"YulIdentifier","src":"7570:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7563:6:101","nodeType":"YulIdentifier","src":"7563:6:101"},"nativeSrc":"7563:9:101","nodeType":"YulFunctionCall","src":"7563:9:101"},{"arguments":[{"name":"y","nativeSrc":"7593:1:101","nodeType":"YulIdentifier","src":"7593:1:101"},{"arguments":[{"name":"product","nativeSrc":"7600:7:101","nodeType":"YulIdentifier","src":"7600:7:101"},{"name":"x","nativeSrc":"7609:1:101","nodeType":"YulIdentifier","src":"7609:1:101"}],"functionName":{"name":"div","nativeSrc":"7596:3:101","nodeType":"YulIdentifier","src":"7596:3:101"},"nativeSrc":"7596:15:101","nodeType":"YulFunctionCall","src":"7596:15:101"}],"functionName":{"name":"eq","nativeSrc":"7590:2:101","nodeType":"YulIdentifier","src":"7590:2:101"},"nativeSrc":"7590:22:101","nodeType":"YulFunctionCall","src":"7590:22:101"}],"functionName":{"name":"or","nativeSrc":"7543:2:101","nodeType":"YulIdentifier","src":"7543:2:101"},"nativeSrc":"7543:83:101","nodeType":"YulFunctionCall","src":"7543:83:101"}],"functionName":{"name":"iszero","nativeSrc":"7523:6:101","nodeType":"YulIdentifier","src":"7523:6:101"},"nativeSrc":"7523:113:101","nodeType":"YulFunctionCall","src":"7523:113:101"},"nativeSrc":"7520:139:101","nodeType":"YulIf","src":"7520:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"7256:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7287:1:101","nodeType":"YulTypedName","src":"7287:1:101","type":""},{"name":"y","nativeSrc":"7290:1:101","nodeType":"YulTypedName","src":"7290:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7296:7:101","nodeType":"YulTypedName","src":"7296:7:101","type":""}],"src":"7256:410:101"},{"body":{"nativeSrc":"7715:43:101","nodeType":"YulBlock","src":"7715:43:101","statements":[{"nativeSrc":"7725:27:101","nodeType":"YulAssignment","src":"7725:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7740:5:101","nodeType":"YulIdentifier","src":"7740:5:101"},{"kind":"number","nativeSrc":"7747:4:101","nodeType":"YulLiteral","src":"7747:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7736:3:101","nodeType":"YulIdentifier","src":"7736:3:101"},"nativeSrc":"7736:16:101","nodeType":"YulFunctionCall","src":"7736:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7725:7:101","nodeType":"YulIdentifier","src":"7725:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7672:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7697:5:101","nodeType":"YulTypedName","src":"7697:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7707:7:101","nodeType":"YulTypedName","src":"7707:7:101","type":""}],"src":"7672:86:101"},{"body":{"nativeSrc":"7805:77:101","nodeType":"YulBlock","src":"7805:77:101","statements":[{"body":{"nativeSrc":"7860:16:101","nodeType":"YulBlock","src":"7860:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7869:1:101","nodeType":"YulLiteral","src":"7869:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7872:1:101","nodeType":"YulLiteral","src":"7872:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7862:6:101","nodeType":"YulIdentifier","src":"7862:6:101"},"nativeSrc":"7862:12:101","nodeType":"YulFunctionCall","src":"7862:12:101"},"nativeSrc":"7862:12:101","nodeType":"YulExpressionStatement","src":"7862:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7828:5:101","nodeType":"YulIdentifier","src":"7828:5:101"},{"arguments":[{"name":"value","nativeSrc":"7851:5:101","nodeType":"YulIdentifier","src":"7851:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7835:15:101","nodeType":"YulIdentifier","src":"7835:15:101"},"nativeSrc":"7835:22:101","nodeType":"YulFunctionCall","src":"7835:22:101"}],"functionName":{"name":"eq","nativeSrc":"7825:2:101","nodeType":"YulIdentifier","src":"7825:2:101"},"nativeSrc":"7825:33:101","nodeType":"YulFunctionCall","src":"7825:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7818:6:101","nodeType":"YulIdentifier","src":"7818:6:101"},"nativeSrc":"7818:41:101","nodeType":"YulFunctionCall","src":"7818:41:101"},"nativeSrc":"7815:61:101","nodeType":"YulIf","src":"7815:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7764:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7798:5:101","nodeType":"YulTypedName","src":"7798:5:101","type":""}],"src":"7764:118:101"},{"body":{"nativeSrc":"7949:78:101","nodeType":"YulBlock","src":"7949:78:101","statements":[{"nativeSrc":"7959:22:101","nodeType":"YulAssignment","src":"7959:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7974:6:101","nodeType":"YulIdentifier","src":"7974:6:101"}],"functionName":{"name":"mload","nativeSrc":"7968:5:101","nodeType":"YulIdentifier","src":"7968:5:101"},"nativeSrc":"7968:13:101","nodeType":"YulFunctionCall","src":"7968:13:101"},"variableNames":[{"name":"value","nativeSrc":"7959:5:101","nodeType":"YulIdentifier","src":"7959:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8015:5:101","nodeType":"YulIdentifier","src":"8015:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7990:24:101","nodeType":"YulIdentifier","src":"7990:24:101"},"nativeSrc":"7990:31:101","nodeType":"YulFunctionCall","src":"7990:31:101"},"nativeSrc":"7990:31:101","nodeType":"YulExpressionStatement","src":"7990:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7888:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7927:6:101","nodeType":"YulTypedName","src":"7927:6:101","type":""},{"name":"end","nativeSrc":"7935:3:101","nodeType":"YulTypedName","src":"7935:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7943:5:101","nodeType":"YulTypedName","src":"7943:5:101","type":""}],"src":"7888:139:101"},{"body":{"nativeSrc":"8108:272:101","nodeType":"YulBlock","src":"8108:272:101","statements":[{"body":{"nativeSrc":"8154:83:101","nodeType":"YulBlock","src":"8154:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8156:77:101","nodeType":"YulIdentifier","src":"8156:77:101"},"nativeSrc":"8156:79:101","nodeType":"YulFunctionCall","src":"8156:79:101"},"nativeSrc":"8156:79:101","nodeType":"YulExpressionStatement","src":"8156:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8129:7:101","nodeType":"YulIdentifier","src":"8129:7:101"},{"name":"headStart","nativeSrc":"8138:9:101","nodeType":"YulIdentifier","src":"8138:9:101"}],"functionName":{"name":"sub","nativeSrc":"8125:3:101","nodeType":"YulIdentifier","src":"8125:3:101"},"nativeSrc":"8125:23:101","nodeType":"YulFunctionCall","src":"8125:23:101"},{"kind":"number","nativeSrc":"8150:2:101","nodeType":"YulLiteral","src":"8150:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8121:3:101","nodeType":"YulIdentifier","src":"8121:3:101"},"nativeSrc":"8121:32:101","nodeType":"YulFunctionCall","src":"8121:32:101"},"nativeSrc":"8118:119:101","nodeType":"YulIf","src":"8118:119:101"},{"nativeSrc":"8247:126:101","nodeType":"YulBlock","src":"8247:126:101","statements":[{"nativeSrc":"8262:15:101","nodeType":"YulVariableDeclaration","src":"8262:15:101","value":{"kind":"number","nativeSrc":"8276:1:101","nodeType":"YulLiteral","src":"8276:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8266:6:101","nodeType":"YulTypedName","src":"8266:6:101","type":""}]},{"nativeSrc":"8291:72:101","nodeType":"YulAssignment","src":"8291:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8335:9:101","nodeType":"YulIdentifier","src":"8335:9:101"},{"name":"offset","nativeSrc":"8346:6:101","nodeType":"YulIdentifier","src":"8346:6:101"}],"functionName":{"name":"add","nativeSrc":"8331:3:101","nodeType":"YulIdentifier","src":"8331:3:101"},"nativeSrc":"8331:22:101","nodeType":"YulFunctionCall","src":"8331:22:101"},{"name":"dataEnd","nativeSrc":"8355:7:101","nodeType":"YulIdentifier","src":"8355:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"8301:29:101","nodeType":"YulIdentifier","src":"8301:29:101"},"nativeSrc":"8301:62:101","nodeType":"YulFunctionCall","src":"8301:62:101"},"variableNames":[{"name":"value0","nativeSrc":"8291:6:101","nodeType":"YulIdentifier","src":"8291:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"8033:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8078:9:101","nodeType":"YulTypedName","src":"8078:9:101","type":""},{"name":"dataEnd","nativeSrc":"8089:7:101","nodeType":"YulTypedName","src":"8089:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8101:6:101","nodeType":"YulTypedName","src":"8101:6:101","type":""}],"src":"8033:347:101"},{"body":{"nativeSrc":"8437:51:101","nodeType":"YulBlock","src":"8437:51:101","statements":[{"nativeSrc":"8447:34:101","nodeType":"YulAssignment","src":"8447:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8472:1:101","nodeType":"YulLiteral","src":"8472:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8475:5:101","nodeType":"YulIdentifier","src":"8475:5:101"}],"functionName":{"name":"shr","nativeSrc":"8468:3:101","nodeType":"YulIdentifier","src":"8468:3:101"},"nativeSrc":"8468:13:101","nodeType":"YulFunctionCall","src":"8468:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8447:8:101","nodeType":"YulIdentifier","src":"8447:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"8386:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8418:5:101","nodeType":"YulTypedName","src":"8418:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8428:8:101","nodeType":"YulTypedName","src":"8428:8:101","type":""}],"src":"8386:102:101"},{"body":{"nativeSrc":"8567:775:101","nodeType":"YulBlock","src":"8567:775:101","statements":[{"nativeSrc":"8577:15:101","nodeType":"YulAssignment","src":"8577:15:101","value":{"name":"_power","nativeSrc":"8586:6:101","nodeType":"YulIdentifier","src":"8586:6:101"},"variableNames":[{"name":"power","nativeSrc":"8577:5:101","nodeType":"YulIdentifier","src":"8577:5:101"}]},{"nativeSrc":"8601:14:101","nodeType":"YulAssignment","src":"8601:14:101","value":{"name":"_base","nativeSrc":"8610:5:101","nodeType":"YulIdentifier","src":"8610:5:101"},"variableNames":[{"name":"base","nativeSrc":"8601:4:101","nodeType":"YulIdentifier","src":"8601:4:101"}]},{"body":{"nativeSrc":"8659:677:101","nodeType":"YulBlock","src":"8659:677:101","statements":[{"body":{"nativeSrc":"8747:22:101","nodeType":"YulBlock","src":"8747:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8749:16:101","nodeType":"YulIdentifier","src":"8749:16:101"},"nativeSrc":"8749:18:101","nodeType":"YulFunctionCall","src":"8749:18:101"},"nativeSrc":"8749:18:101","nodeType":"YulExpressionStatement","src":"8749:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8725:4:101","nodeType":"YulIdentifier","src":"8725:4:101"},{"arguments":[{"name":"max","nativeSrc":"8735:3:101","nodeType":"YulIdentifier","src":"8735:3:101"},{"name":"base","nativeSrc":"8740:4:101","nodeType":"YulIdentifier","src":"8740:4:101"}],"functionName":{"name":"div","nativeSrc":"8731:3:101","nodeType":"YulIdentifier","src":"8731:3:101"},"nativeSrc":"8731:14:101","nodeType":"YulFunctionCall","src":"8731:14:101"}],"functionName":{"name":"gt","nativeSrc":"8722:2:101","nodeType":"YulIdentifier","src":"8722:2:101"},"nativeSrc":"8722:24:101","nodeType":"YulFunctionCall","src":"8722:24:101"},"nativeSrc":"8719:50:101","nodeType":"YulIf","src":"8719:50:101"},{"body":{"nativeSrc":"8814:419:101","nodeType":"YulBlock","src":"8814:419:101","statements":[{"nativeSrc":"9194:25:101","nodeType":"YulAssignment","src":"9194:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9207:5:101","nodeType":"YulIdentifier","src":"9207:5:101"},{"name":"base","nativeSrc":"9214:4:101","nodeType":"YulIdentifier","src":"9214:4:101"}],"functionName":{"name":"mul","nativeSrc":"9203:3:101","nodeType":"YulIdentifier","src":"9203:3:101"},"nativeSrc":"9203:16:101","nodeType":"YulFunctionCall","src":"9203:16:101"},"variableNames":[{"name":"power","nativeSrc":"9194:5:101","nodeType":"YulIdentifier","src":"9194:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8789:8:101","nodeType":"YulIdentifier","src":"8789:8:101"},{"kind":"number","nativeSrc":"8799:1:101","nodeType":"YulLiteral","src":"8799:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8785:3:101","nodeType":"YulIdentifier","src":"8785:3:101"},"nativeSrc":"8785:16:101","nodeType":"YulFunctionCall","src":"8785:16:101"},"nativeSrc":"8782:451:101","nodeType":"YulIf","src":"8782:451:101"},{"nativeSrc":"9246:23:101","nodeType":"YulAssignment","src":"9246:23:101","value":{"arguments":[{"name":"base","nativeSrc":"9258:4:101","nodeType":"YulIdentifier","src":"9258:4:101"},{"name":"base","nativeSrc":"9264:4:101","nodeType":"YulIdentifier","src":"9264:4:101"}],"functionName":{"name":"mul","nativeSrc":"9254:3:101","nodeType":"YulIdentifier","src":"9254:3:101"},"nativeSrc":"9254:15:101","nodeType":"YulFunctionCall","src":"9254:15:101"},"variableNames":[{"name":"base","nativeSrc":"9246:4:101","nodeType":"YulIdentifier","src":"9246:4:101"}]},{"nativeSrc":"9282:44:101","nodeType":"YulAssignment","src":"9282:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9317:8:101","nodeType":"YulIdentifier","src":"9317:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"9294:22:101","nodeType":"YulIdentifier","src":"9294:22:101"},"nativeSrc":"9294:32:101","nodeType":"YulFunctionCall","src":"9294:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"9282:8:101","nodeType":"YulIdentifier","src":"9282:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8635:8:101","nodeType":"YulIdentifier","src":"8635:8:101"},{"kind":"number","nativeSrc":"8645:1:101","nodeType":"YulLiteral","src":"8645:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8632:2:101","nodeType":"YulIdentifier","src":"8632:2:101"},"nativeSrc":"8632:15:101","nodeType":"YulFunctionCall","src":"8632:15:101"},"nativeSrc":"8624:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8648:2:101","nodeType":"YulBlock","src":"8648:2:101","statements":[]},"pre":{"nativeSrc":"8628:3:101","nodeType":"YulBlock","src":"8628:3:101","statements":[]},"src":"8624:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8494:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8522:6:101","nodeType":"YulTypedName","src":"8522:6:101","type":""},{"name":"_base","nativeSrc":"8530:5:101","nodeType":"YulTypedName","src":"8530:5:101","type":""},{"name":"exponent","nativeSrc":"8537:8:101","nodeType":"YulTypedName","src":"8537:8:101","type":""},{"name":"max","nativeSrc":"8547:3:101","nodeType":"YulTypedName","src":"8547:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8555:5:101","nodeType":"YulTypedName","src":"8555:5:101","type":""},{"name":"base","nativeSrc":"8562:4:101","nodeType":"YulTypedName","src":"8562:4:101","type":""}],"src":"8494:848:101"},{"body":{"nativeSrc":"9408:1013:101","nodeType":"YulBlock","src":"9408:1013:101","statements":[{"body":{"nativeSrc":"9603:20:101","nodeType":"YulBlock","src":"9603:20:101","statements":[{"nativeSrc":"9605:10:101","nodeType":"YulAssignment","src":"9605:10:101","value":{"kind":"number","nativeSrc":"9614:1:101","nodeType":"YulLiteral","src":"9614:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9605:5:101","nodeType":"YulIdentifier","src":"9605:5:101"}]},{"nativeSrc":"9616:5:101","nodeType":"YulLeave","src":"9616:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9593:8:101","nodeType":"YulIdentifier","src":"9593:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9586:6:101","nodeType":"YulIdentifier","src":"9586:6:101"},"nativeSrc":"9586:16:101","nodeType":"YulFunctionCall","src":"9586:16:101"},"nativeSrc":"9583:40:101","nodeType":"YulIf","src":"9583:40:101"},{"body":{"nativeSrc":"9648:20:101","nodeType":"YulBlock","src":"9648:20:101","statements":[{"nativeSrc":"9650:10:101","nodeType":"YulAssignment","src":"9650:10:101","value":{"kind":"number","nativeSrc":"9659:1:101","nodeType":"YulLiteral","src":"9659:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9650:5:101","nodeType":"YulIdentifier","src":"9650:5:101"}]},{"nativeSrc":"9661:5:101","nodeType":"YulLeave","src":"9661:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9642:4:101","nodeType":"YulIdentifier","src":"9642:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9635:6:101","nodeType":"YulIdentifier","src":"9635:6:101"},"nativeSrc":"9635:12:101","nodeType":"YulFunctionCall","src":"9635:12:101"},"nativeSrc":"9632:36:101","nodeType":"YulIf","src":"9632:36:101"},{"cases":[{"body":{"nativeSrc":"9778:20:101","nodeType":"YulBlock","src":"9778:20:101","statements":[{"nativeSrc":"9780:10:101","nodeType":"YulAssignment","src":"9780:10:101","value":{"kind":"number","nativeSrc":"9789:1:101","nodeType":"YulLiteral","src":"9789:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9780:5:101","nodeType":"YulIdentifier","src":"9780:5:101"}]},{"nativeSrc":"9791:5:101","nodeType":"YulLeave","src":"9791:5:101"}]},"nativeSrc":"9771:27:101","nodeType":"YulCase","src":"9771:27:101","value":{"kind":"number","nativeSrc":"9776:1:101","nodeType":"YulLiteral","src":"9776:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9822:176:101","nodeType":"YulBlock","src":"9822:176:101","statements":[{"body":{"nativeSrc":"9857:22:101","nodeType":"YulBlock","src":"9857:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9859:16:101","nodeType":"YulIdentifier","src":"9859:16:101"},"nativeSrc":"9859:18:101","nodeType":"YulFunctionCall","src":"9859:18:101"},"nativeSrc":"9859:18:101","nodeType":"YulExpressionStatement","src":"9859:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9842:8:101","nodeType":"YulIdentifier","src":"9842:8:101"},{"kind":"number","nativeSrc":"9852:3:101","nodeType":"YulLiteral","src":"9852:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9839:2:101","nodeType":"YulIdentifier","src":"9839:2:101"},"nativeSrc":"9839:17:101","nodeType":"YulFunctionCall","src":"9839:17:101"},"nativeSrc":"9836:43:101","nodeType":"YulIf","src":"9836:43:101"},{"nativeSrc":"9892:25:101","nodeType":"YulAssignment","src":"9892:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9905:1:101","nodeType":"YulLiteral","src":"9905:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9908:8:101","nodeType":"YulIdentifier","src":"9908:8:101"}],"functionName":{"name":"exp","nativeSrc":"9901:3:101","nodeType":"YulIdentifier","src":"9901:3:101"},"nativeSrc":"9901:16:101","nodeType":"YulFunctionCall","src":"9901:16:101"},"variableNames":[{"name":"power","nativeSrc":"9892:5:101","nodeType":"YulIdentifier","src":"9892:5:101"}]},{"body":{"nativeSrc":"9948:22:101","nodeType":"YulBlock","src":"9948:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9950:16:101","nodeType":"YulIdentifier","src":"9950:16:101"},"nativeSrc":"9950:18:101","nodeType":"YulFunctionCall","src":"9950:18:101"},"nativeSrc":"9950:18:101","nodeType":"YulExpressionStatement","src":"9950:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9936:5:101","nodeType":"YulIdentifier","src":"9936:5:101"},{"name":"max","nativeSrc":"9943:3:101","nodeType":"YulIdentifier","src":"9943:3:101"}],"functionName":{"name":"gt","nativeSrc":"9933:2:101","nodeType":"YulIdentifier","src":"9933:2:101"},"nativeSrc":"9933:14:101","nodeType":"YulFunctionCall","src":"9933:14:101"},"nativeSrc":"9930:40:101","nodeType":"YulIf","src":"9930:40:101"},{"nativeSrc":"9983:5:101","nodeType":"YulLeave","src":"9983:5:101"}]},"nativeSrc":"9807:191:101","nodeType":"YulCase","src":"9807:191:101","value":{"kind":"number","nativeSrc":"9812:1:101","nodeType":"YulLiteral","src":"9812:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9728:4:101","nodeType":"YulIdentifier","src":"9728:4:101"},"nativeSrc":"9721:277:101","nodeType":"YulSwitch","src":"9721:277:101"},{"body":{"nativeSrc":"10130:123:101","nodeType":"YulBlock","src":"10130:123:101","statements":[{"nativeSrc":"10144:28:101","nodeType":"YulAssignment","src":"10144:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10157:4:101","nodeType":"YulIdentifier","src":"10157:4:101"},{"name":"exponent","nativeSrc":"10163:8:101","nodeType":"YulIdentifier","src":"10163:8:101"}],"functionName":{"name":"exp","nativeSrc":"10153:3:101","nodeType":"YulIdentifier","src":"10153:3:101"},"nativeSrc":"10153:19:101","nodeType":"YulFunctionCall","src":"10153:19:101"},"variableNames":[{"name":"power","nativeSrc":"10144:5:101","nodeType":"YulIdentifier","src":"10144:5:101"}]},{"body":{"nativeSrc":"10203:22:101","nodeType":"YulBlock","src":"10203:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10205:16:101","nodeType":"YulIdentifier","src":"10205:16:101"},"nativeSrc":"10205:18:101","nodeType":"YulFunctionCall","src":"10205:18:101"},"nativeSrc":"10205:18:101","nodeType":"YulExpressionStatement","src":"10205:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10191:5:101","nodeType":"YulIdentifier","src":"10191:5:101"},{"name":"max","nativeSrc":"10198:3:101","nodeType":"YulIdentifier","src":"10198:3:101"}],"functionName":{"name":"gt","nativeSrc":"10188:2:101","nodeType":"YulIdentifier","src":"10188:2:101"},"nativeSrc":"10188:14:101","nodeType":"YulFunctionCall","src":"10188:14:101"},"nativeSrc":"10185:40:101","nodeType":"YulIf","src":"10185:40:101"},{"nativeSrc":"10238:5:101","nodeType":"YulLeave","src":"10238:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10033:4:101","nodeType":"YulIdentifier","src":"10033:4:101"},{"kind":"number","nativeSrc":"10039:2:101","nodeType":"YulLiteral","src":"10039:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"10030:2:101","nodeType":"YulIdentifier","src":"10030:2:101"},"nativeSrc":"10030:12:101","nodeType":"YulFunctionCall","src":"10030:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"10047:8:101","nodeType":"YulIdentifier","src":"10047:8:101"},{"kind":"number","nativeSrc":"10057:2:101","nodeType":"YulLiteral","src":"10057:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"10044:2:101","nodeType":"YulIdentifier","src":"10044:2:101"},"nativeSrc":"10044:16:101","nodeType":"YulFunctionCall","src":"10044:16:101"}],"functionName":{"name":"and","nativeSrc":"10026:3:101","nodeType":"YulIdentifier","src":"10026:3:101"},"nativeSrc":"10026:35:101","nodeType":"YulFunctionCall","src":"10026:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10082:4:101","nodeType":"YulIdentifier","src":"10082:4:101"},{"kind":"number","nativeSrc":"10088:3:101","nodeType":"YulLiteral","src":"10088:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"10079:2:101","nodeType":"YulIdentifier","src":"10079:2:101"},"nativeSrc":"10079:13:101","nodeType":"YulFunctionCall","src":"10079:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"10097:8:101","nodeType":"YulIdentifier","src":"10097:8:101"},{"kind":"number","nativeSrc":"10107:2:101","nodeType":"YulLiteral","src":"10107:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10094:2:101","nodeType":"YulIdentifier","src":"10094:2:101"},"nativeSrc":"10094:16:101","nodeType":"YulFunctionCall","src":"10094:16:101"}],"functionName":{"name":"and","nativeSrc":"10075:3:101","nodeType":"YulIdentifier","src":"10075:3:101"},"nativeSrc":"10075:36:101","nodeType":"YulFunctionCall","src":"10075:36:101"}],"functionName":{"name":"or","nativeSrc":"10010:2:101","nodeType":"YulIdentifier","src":"10010:2:101"},"nativeSrc":"10010:111:101","nodeType":"YulFunctionCall","src":"10010:111:101"},"nativeSrc":"10007:246:101","nodeType":"YulIf","src":"10007:246:101"},{"nativeSrc":"10263:57:101","nodeType":"YulAssignment","src":"10263:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"10297:1:101","nodeType":"YulLiteral","src":"10297:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"10300:4:101","nodeType":"YulIdentifier","src":"10300:4:101"},{"name":"exponent","nativeSrc":"10306:8:101","nodeType":"YulIdentifier","src":"10306:8:101"},{"name":"max","nativeSrc":"10316:3:101","nodeType":"YulIdentifier","src":"10316:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"10278:18:101","nodeType":"YulIdentifier","src":"10278:18:101"},"nativeSrc":"10278:42:101","nodeType":"YulFunctionCall","src":"10278:42:101"},"variableNames":[{"name":"power","nativeSrc":"10263:5:101","nodeType":"YulIdentifier","src":"10263:5:101"},{"name":"base","nativeSrc":"10270:4:101","nodeType":"YulIdentifier","src":"10270:4:101"}]},{"body":{"nativeSrc":"10359:22:101","nodeType":"YulBlock","src":"10359:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10361:16:101","nodeType":"YulIdentifier","src":"10361:16:101"},"nativeSrc":"10361:18:101","nodeType":"YulFunctionCall","src":"10361:18:101"},"nativeSrc":"10361:18:101","nodeType":"YulExpressionStatement","src":"10361:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10336:5:101","nodeType":"YulIdentifier","src":"10336:5:101"},{"arguments":[{"name":"max","nativeSrc":"10347:3:101","nodeType":"YulIdentifier","src":"10347:3:101"},{"name":"base","nativeSrc":"10352:4:101","nodeType":"YulIdentifier","src":"10352:4:101"}],"functionName":{"name":"div","nativeSrc":"10343:3:101","nodeType":"YulIdentifier","src":"10343:3:101"},"nativeSrc":"10343:14:101","nodeType":"YulFunctionCall","src":"10343:14:101"}],"functionName":{"name":"gt","nativeSrc":"10333:2:101","nodeType":"YulIdentifier","src":"10333:2:101"},"nativeSrc":"10333:25:101","nodeType":"YulFunctionCall","src":"10333:25:101"},"nativeSrc":"10330:51:101","nodeType":"YulIf","src":"10330:51:101"},{"nativeSrc":"10390:25:101","nodeType":"YulAssignment","src":"10390:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10403:5:101","nodeType":"YulIdentifier","src":"10403:5:101"},{"name":"base","nativeSrc":"10410:4:101","nodeType":"YulIdentifier","src":"10410:4:101"}],"functionName":{"name":"mul","nativeSrc":"10399:3:101","nodeType":"YulIdentifier","src":"10399:3:101"},"nativeSrc":"10399:16:101","nodeType":"YulFunctionCall","src":"10399:16:101"},"variableNames":[{"name":"power","nativeSrc":"10390:5:101","nodeType":"YulIdentifier","src":"10390:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"9348:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9378:4:101","nodeType":"YulTypedName","src":"9378:4:101","type":""},{"name":"exponent","nativeSrc":"9384:8:101","nodeType":"YulTypedName","src":"9384:8:101","type":""},{"name":"max","nativeSrc":"9394:3:101","nodeType":"YulTypedName","src":"9394:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9402:5:101","nodeType":"YulTypedName","src":"9402:5:101","type":""}],"src":"9348:1073:101"},{"body":{"nativeSrc":"10493:219:101","nodeType":"YulBlock","src":"10493:219:101","statements":[{"nativeSrc":"10503:31:101","nodeType":"YulAssignment","src":"10503:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10529:4:101","nodeType":"YulIdentifier","src":"10529:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10511:17:101","nodeType":"YulIdentifier","src":"10511:17:101"},"nativeSrc":"10511:23:101","nodeType":"YulFunctionCall","src":"10511:23:101"},"variableNames":[{"name":"base","nativeSrc":"10503:4:101","nodeType":"YulIdentifier","src":"10503:4:101"}]},{"nativeSrc":"10543:39:101","nodeType":"YulAssignment","src":"10543:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10573:8:101","nodeType":"YulIdentifier","src":"10573:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10555:17:101","nodeType":"YulIdentifier","src":"10555:17:101"},"nativeSrc":"10555:27:101","nodeType":"YulFunctionCall","src":"10555:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10543:8:101","nodeType":"YulIdentifier","src":"10543:8:101"}]},{"nativeSrc":"10592:113:101","nodeType":"YulAssignment","src":"10592:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10622:4:101","nodeType":"YulIdentifier","src":"10622:4:101"},{"name":"exponent","nativeSrc":"10628:8:101","nodeType":"YulIdentifier","src":"10628:8:101"},{"kind":"number","nativeSrc":"10638:66:101","nodeType":"YulLiteral","src":"10638:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10601:20:101","nodeType":"YulIdentifier","src":"10601:20:101"},"nativeSrc":"10601:104:101","nodeType":"YulFunctionCall","src":"10601:104:101"},"variableNames":[{"name":"power","nativeSrc":"10592:5:101","nodeType":"YulIdentifier","src":"10592:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"10427:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10468:4:101","nodeType":"YulTypedName","src":"10468:4:101","type":""},{"name":"exponent","nativeSrc":"10474:8:101","nodeType":"YulTypedName","src":"10474:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10487:5:101","nodeType":"YulTypedName","src":"10487:5:101","type":""}],"src":"10427:285:101"},{"body":{"nativeSrc":"10777:40:101","nodeType":"YulBlock","src":"10777:40:101","statements":[{"nativeSrc":"10788:22:101","nodeType":"YulAssignment","src":"10788:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10804:5:101","nodeType":"YulIdentifier","src":"10804:5:101"}],"functionName":{"name":"mload","nativeSrc":"10798:5:101","nodeType":"YulIdentifier","src":"10798:5:101"},"nativeSrc":"10798:12:101","nodeType":"YulFunctionCall","src":"10798:12:101"},"variableNames":[{"name":"length","nativeSrc":"10788:6:101","nodeType":"YulIdentifier","src":"10788:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10718:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10760:5:101","nodeType":"YulTypedName","src":"10760:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10770:6:101","nodeType":"YulTypedName","src":"10770:6:101","type":""}],"src":"10718:99:101"},{"body":{"nativeSrc":"10919:73:101","nodeType":"YulBlock","src":"10919:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},{"name":"length","nativeSrc":"10941:6:101","nodeType":"YulIdentifier","src":"10941:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10929:6:101","nodeType":"YulIdentifier","src":"10929:6:101"},"nativeSrc":"10929:19:101","nodeType":"YulFunctionCall","src":"10929:19:101"},"nativeSrc":"10929:19:101","nodeType":"YulExpressionStatement","src":"10929:19:101"},{"nativeSrc":"10957:29:101","nodeType":"YulAssignment","src":"10957:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10976:3:101","nodeType":"YulIdentifier","src":"10976:3:101"},{"kind":"number","nativeSrc":"10981:4:101","nodeType":"YulLiteral","src":"10981:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10972:3:101","nodeType":"YulIdentifier","src":"10972:3:101"},"nativeSrc":"10972:14:101","nodeType":"YulFunctionCall","src":"10972:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10957:11:101","nodeType":"YulIdentifier","src":"10957:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10823:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10891:3:101","nodeType":"YulTypedName","src":"10891:3:101","type":""},{"name":"length","nativeSrc":"10896:6:101","nodeType":"YulTypedName","src":"10896:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10907:11:101","nodeType":"YulTypedName","src":"10907:11:101","type":""}],"src":"10823:169:101"},{"body":{"nativeSrc":"11060:77:101","nodeType":"YulBlock","src":"11060:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11077:3:101","nodeType":"YulIdentifier","src":"11077:3:101"},{"name":"src","nativeSrc":"11082:3:101","nodeType":"YulIdentifier","src":"11082:3:101"},{"name":"length","nativeSrc":"11087:6:101","nodeType":"YulIdentifier","src":"11087:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"11071:5:101","nodeType":"YulIdentifier","src":"11071:5:101"},"nativeSrc":"11071:23:101","nodeType":"YulFunctionCall","src":"11071:23:101"},"nativeSrc":"11071:23:101","nodeType":"YulExpressionStatement","src":"11071:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11114:3:101","nodeType":"YulIdentifier","src":"11114:3:101"},{"name":"length","nativeSrc":"11119:6:101","nodeType":"YulIdentifier","src":"11119:6:101"}],"functionName":{"name":"add","nativeSrc":"11110:3:101","nodeType":"YulIdentifier","src":"11110:3:101"},"nativeSrc":"11110:16:101","nodeType":"YulFunctionCall","src":"11110:16:101"},{"kind":"number","nativeSrc":"11128:1:101","nodeType":"YulLiteral","src":"11128:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11103:6:101","nodeType":"YulIdentifier","src":"11103:6:101"},"nativeSrc":"11103:27:101","nodeType":"YulFunctionCall","src":"11103:27:101"},"nativeSrc":"11103:27:101","nodeType":"YulExpressionStatement","src":"11103:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10998:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11042:3:101","nodeType":"YulTypedName","src":"11042:3:101","type":""},{"name":"dst","nativeSrc":"11047:3:101","nodeType":"YulTypedName","src":"11047:3:101","type":""},{"name":"length","nativeSrc":"11052:6:101","nodeType":"YulTypedName","src":"11052:6:101","type":""}],"src":"10998:139:101"},{"body":{"nativeSrc":"11191:54:101","nodeType":"YulBlock","src":"11191:54:101","statements":[{"nativeSrc":"11201:38:101","nodeType":"YulAssignment","src":"11201:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11219:5:101","nodeType":"YulIdentifier","src":"11219:5:101"},{"kind":"number","nativeSrc":"11226:2:101","nodeType":"YulLiteral","src":"11226:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11215:3:101","nodeType":"YulIdentifier","src":"11215:3:101"},"nativeSrc":"11215:14:101","nodeType":"YulFunctionCall","src":"11215:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11235:2:101","nodeType":"YulLiteral","src":"11235:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11231:3:101","nodeType":"YulIdentifier","src":"11231:3:101"},"nativeSrc":"11231:7:101","nodeType":"YulFunctionCall","src":"11231:7:101"}],"functionName":{"name":"and","nativeSrc":"11211:3:101","nodeType":"YulIdentifier","src":"11211:3:101"},"nativeSrc":"11211:28:101","nodeType":"YulFunctionCall","src":"11211:28:101"},"variableNames":[{"name":"result","nativeSrc":"11201:6:101","nodeType":"YulIdentifier","src":"11201:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11143:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11174:5:101","nodeType":"YulTypedName","src":"11174:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11184:6:101","nodeType":"YulTypedName","src":"11184:6:101","type":""}],"src":"11143:102:101"},{"body":{"nativeSrc":"11343:285:101","nodeType":"YulBlock","src":"11343:285:101","statements":[{"nativeSrc":"11353:53:101","nodeType":"YulVariableDeclaration","src":"11353:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11400:5:101","nodeType":"YulIdentifier","src":"11400:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11367:32:101","nodeType":"YulIdentifier","src":"11367:32:101"},"nativeSrc":"11367:39:101","nodeType":"YulFunctionCall","src":"11367:39:101"},"variables":[{"name":"length","nativeSrc":"11357:6:101","nodeType":"YulTypedName","src":"11357:6:101","type":""}]},{"nativeSrc":"11415:78:101","nodeType":"YulAssignment","src":"11415:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11481:3:101","nodeType":"YulIdentifier","src":"11481:3:101"},{"name":"length","nativeSrc":"11486:6:101","nodeType":"YulIdentifier","src":"11486:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11422:58:101","nodeType":"YulIdentifier","src":"11422:58:101"},"nativeSrc":"11422:71:101","nodeType":"YulFunctionCall","src":"11422:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11415:3:101","nodeType":"YulIdentifier","src":"11415:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11541:5:101","nodeType":"YulIdentifier","src":"11541:5:101"},{"kind":"number","nativeSrc":"11548:4:101","nodeType":"YulLiteral","src":"11548:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11537:3:101","nodeType":"YulIdentifier","src":"11537:3:101"},"nativeSrc":"11537:16:101","nodeType":"YulFunctionCall","src":"11537:16:101"},{"name":"pos","nativeSrc":"11555:3:101","nodeType":"YulIdentifier","src":"11555:3:101"},{"name":"length","nativeSrc":"11560:6:101","nodeType":"YulIdentifier","src":"11560:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11502:34:101","nodeType":"YulIdentifier","src":"11502:34:101"},"nativeSrc":"11502:65:101","nodeType":"YulFunctionCall","src":"11502:65:101"},"nativeSrc":"11502:65:101","nodeType":"YulExpressionStatement","src":"11502:65:101"},{"nativeSrc":"11576:46:101","nodeType":"YulAssignment","src":"11576:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11587:3:101","nodeType":"YulIdentifier","src":"11587:3:101"},{"arguments":[{"name":"length","nativeSrc":"11614:6:101","nodeType":"YulIdentifier","src":"11614:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11592:21:101","nodeType":"YulIdentifier","src":"11592:21:101"},"nativeSrc":"11592:29:101","nodeType":"YulFunctionCall","src":"11592:29:101"}],"functionName":{"name":"add","nativeSrc":"11583:3:101","nodeType":"YulIdentifier","src":"11583:3:101"},"nativeSrc":"11583:39:101","nodeType":"YulFunctionCall","src":"11583:39:101"},"variableNames":[{"name":"end","nativeSrc":"11576:3:101","nodeType":"YulIdentifier","src":"11576:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11251:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11324:5:101","nodeType":"YulTypedName","src":"11324:5:101","type":""},{"name":"pos","nativeSrc":"11331:3:101","nodeType":"YulTypedName","src":"11331:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11339:3:101","nodeType":"YulTypedName","src":"11339:3:101","type":""}],"src":"11251:377:101"},{"body":{"nativeSrc":"11780:277:101","nodeType":"YulBlock","src":"11780:277:101","statements":[{"nativeSrc":"11790:26:101","nodeType":"YulAssignment","src":"11790:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11802:9:101","nodeType":"YulIdentifier","src":"11802:9:101"},{"kind":"number","nativeSrc":"11813:2:101","nodeType":"YulLiteral","src":"11813:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11798:3:101","nodeType":"YulIdentifier","src":"11798:3:101"},"nativeSrc":"11798:18:101","nodeType":"YulFunctionCall","src":"11798:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11790:4:101","nodeType":"YulIdentifier","src":"11790:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11870:6:101","nodeType":"YulIdentifier","src":"11870:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11883:9:101","nodeType":"YulIdentifier","src":"11883:9:101"},{"kind":"number","nativeSrc":"11894:1:101","nodeType":"YulLiteral","src":"11894:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11879:3:101","nodeType":"YulIdentifier","src":"11879:3:101"},"nativeSrc":"11879:17:101","nodeType":"YulFunctionCall","src":"11879:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11826:43:101","nodeType":"YulIdentifier","src":"11826:43:101"},"nativeSrc":"11826:71:101","nodeType":"YulFunctionCall","src":"11826:71:101"},"nativeSrc":"11826:71:101","nodeType":"YulExpressionStatement","src":"11826:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11918:9:101","nodeType":"YulIdentifier","src":"11918:9:101"},{"kind":"number","nativeSrc":"11929:2:101","nodeType":"YulLiteral","src":"11929:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11914:3:101","nodeType":"YulIdentifier","src":"11914:3:101"},"nativeSrc":"11914:18:101","nodeType":"YulFunctionCall","src":"11914:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11938:4:101","nodeType":"YulIdentifier","src":"11938:4:101"},{"name":"headStart","nativeSrc":"11944:9:101","nodeType":"YulIdentifier","src":"11944:9:101"}],"functionName":{"name":"sub","nativeSrc":"11934:3:101","nodeType":"YulIdentifier","src":"11934:3:101"},"nativeSrc":"11934:20:101","nodeType":"YulFunctionCall","src":"11934:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11907:6:101","nodeType":"YulIdentifier","src":"11907:6:101"},"nativeSrc":"11907:48:101","nodeType":"YulFunctionCall","src":"11907:48:101"},"nativeSrc":"11907:48:101","nodeType":"YulExpressionStatement","src":"11907:48:101"},{"nativeSrc":"11964:86:101","nodeType":"YulAssignment","src":"11964:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"12036:6:101","nodeType":"YulIdentifier","src":"12036:6:101"},{"name":"tail","nativeSrc":"12045:4:101","nodeType":"YulIdentifier","src":"12045:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11972:63:101","nodeType":"YulIdentifier","src":"11972:63:101"},"nativeSrc":"11972:78:101","nodeType":"YulFunctionCall","src":"11972:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11964:4:101","nodeType":"YulIdentifier","src":"11964:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11634:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11744:9:101","nodeType":"YulTypedName","src":"11744:9:101","type":""},{"name":"value1","nativeSrc":"11756:6:101","nodeType":"YulTypedName","src":"11756:6:101","type":""},{"name":"value0","nativeSrc":"11764:6:101","nodeType":"YulTypedName","src":"11764:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11775:4:101","nodeType":"YulTypedName","src":"11775:4:101","type":""}],"src":"11634:423:101"},{"body":{"nativeSrc":"12103:76:101","nodeType":"YulBlock","src":"12103:76:101","statements":[{"body":{"nativeSrc":"12157:16:101","nodeType":"YulBlock","src":"12157:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12166:1:101","nodeType":"YulLiteral","src":"12166:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12169:1:101","nodeType":"YulLiteral","src":"12169:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12159:6:101","nodeType":"YulIdentifier","src":"12159:6:101"},"nativeSrc":"12159:12:101","nodeType":"YulFunctionCall","src":"12159:12:101"},"nativeSrc":"12159:12:101","nodeType":"YulExpressionStatement","src":"12159:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12126:5:101","nodeType":"YulIdentifier","src":"12126:5:101"},{"arguments":[{"name":"value","nativeSrc":"12148:5:101","nodeType":"YulIdentifier","src":"12148:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12133:14:101","nodeType":"YulIdentifier","src":"12133:14:101"},"nativeSrc":"12133:21:101","nodeType":"YulFunctionCall","src":"12133:21:101"}],"functionName":{"name":"eq","nativeSrc":"12123:2:101","nodeType":"YulIdentifier","src":"12123:2:101"},"nativeSrc":"12123:32:101","nodeType":"YulFunctionCall","src":"12123:32:101"}],"functionName":{"name":"iszero","nativeSrc":"12116:6:101","nodeType":"YulIdentifier","src":"12116:6:101"},"nativeSrc":"12116:40:101","nodeType":"YulFunctionCall","src":"12116:40:101"},"nativeSrc":"12113:60:101","nodeType":"YulIf","src":"12113:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"12063:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12096:5:101","nodeType":"YulTypedName","src":"12096:5:101","type":""}],"src":"12063:116:101"},{"body":{"nativeSrc":"12245:77:101","nodeType":"YulBlock","src":"12245:77:101","statements":[{"nativeSrc":"12255:22:101","nodeType":"YulAssignment","src":"12255:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12270:6:101","nodeType":"YulIdentifier","src":"12270:6:101"}],"functionName":{"name":"mload","nativeSrc":"12264:5:101","nodeType":"YulIdentifier","src":"12264:5:101"},"nativeSrc":"12264:13:101","nodeType":"YulFunctionCall","src":"12264:13:101"},"variableNames":[{"name":"value","nativeSrc":"12255:5:101","nodeType":"YulIdentifier","src":"12255:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12310:5:101","nodeType":"YulIdentifier","src":"12310:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12286:23:101","nodeType":"YulIdentifier","src":"12286:23:101"},"nativeSrc":"12286:30:101","nodeType":"YulFunctionCall","src":"12286:30:101"},"nativeSrc":"12286:30:101","nodeType":"YulExpressionStatement","src":"12286:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12185:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12223:6:101","nodeType":"YulTypedName","src":"12223:6:101","type":""},{"name":"end","nativeSrc":"12231:3:101","nodeType":"YulTypedName","src":"12231:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12239:5:101","nodeType":"YulTypedName","src":"12239:5:101","type":""}],"src":"12185:137:101"},{"body":{"nativeSrc":"12402:271:101","nodeType":"YulBlock","src":"12402:271:101","statements":[{"body":{"nativeSrc":"12448:83:101","nodeType":"YulBlock","src":"12448:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12450:77:101","nodeType":"YulIdentifier","src":"12450:77:101"},"nativeSrc":"12450:79:101","nodeType":"YulFunctionCall","src":"12450:79:101"},"nativeSrc":"12450:79:101","nodeType":"YulExpressionStatement","src":"12450:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12423:7:101","nodeType":"YulIdentifier","src":"12423:7:101"},{"name":"headStart","nativeSrc":"12432:9:101","nodeType":"YulIdentifier","src":"12432:9:101"}],"functionName":{"name":"sub","nativeSrc":"12419:3:101","nodeType":"YulIdentifier","src":"12419:3:101"},"nativeSrc":"12419:23:101","nodeType":"YulFunctionCall","src":"12419:23:101"},{"kind":"number","nativeSrc":"12444:2:101","nodeType":"YulLiteral","src":"12444:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12415:3:101","nodeType":"YulIdentifier","src":"12415:3:101"},"nativeSrc":"12415:32:101","nodeType":"YulFunctionCall","src":"12415:32:101"},"nativeSrc":"12412:119:101","nodeType":"YulIf","src":"12412:119:101"},{"nativeSrc":"12541:125:101","nodeType":"YulBlock","src":"12541:125:101","statements":[{"nativeSrc":"12556:15:101","nodeType":"YulVariableDeclaration","src":"12556:15:101","value":{"kind":"number","nativeSrc":"12570:1:101","nodeType":"YulLiteral","src":"12570:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12560:6:101","nodeType":"YulTypedName","src":"12560:6:101","type":""}]},{"nativeSrc":"12585:71:101","nodeType":"YulAssignment","src":"12585:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12628:9:101","nodeType":"YulIdentifier","src":"12628:9:101"},{"name":"offset","nativeSrc":"12639:6:101","nodeType":"YulIdentifier","src":"12639:6:101"}],"functionName":{"name":"add","nativeSrc":"12624:3:101","nodeType":"YulIdentifier","src":"12624:3:101"},"nativeSrc":"12624:22:101","nodeType":"YulFunctionCall","src":"12624:22:101"},{"name":"dataEnd","nativeSrc":"12648:7:101","nodeType":"YulIdentifier","src":"12648:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12595:28:101","nodeType":"YulIdentifier","src":"12595:28:101"},"nativeSrc":"12595:61:101","nodeType":"YulFunctionCall","src":"12595:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12585:6:101","nodeType":"YulIdentifier","src":"12585:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12328:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12372:9:101","nodeType":"YulTypedName","src":"12372:9:101","type":""},{"name":"dataEnd","nativeSrc":"12383:7:101","nodeType":"YulTypedName","src":"12383:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12395:6:101","nodeType":"YulTypedName","src":"12395:6:101","type":""}],"src":"12328:345:101"},{"body":{"nativeSrc":"12853:359:101","nodeType":"YulBlock","src":"12853:359:101","statements":[{"nativeSrc":"12863:26:101","nodeType":"YulAssignment","src":"12863:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12875:9:101","nodeType":"YulIdentifier","src":"12875:9:101"},{"kind":"number","nativeSrc":"12886:2:101","nodeType":"YulLiteral","src":"12886:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12871:3:101","nodeType":"YulIdentifier","src":"12871:3:101"},"nativeSrc":"12871:18:101","nodeType":"YulFunctionCall","src":"12871:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12863:4:101","nodeType":"YulIdentifier","src":"12863:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12943:6:101","nodeType":"YulIdentifier","src":"12943:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12956:9:101","nodeType":"YulIdentifier","src":"12956:9:101"},{"kind":"number","nativeSrc":"12967:1:101","nodeType":"YulLiteral","src":"12967:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12952:3:101","nodeType":"YulIdentifier","src":"12952:3:101"},"nativeSrc":"12952:17:101","nodeType":"YulFunctionCall","src":"12952:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12899:43:101","nodeType":"YulIdentifier","src":"12899:43:101"},"nativeSrc":"12899:71:101","nodeType":"YulFunctionCall","src":"12899:71:101"},"nativeSrc":"12899:71:101","nodeType":"YulExpressionStatement","src":"12899:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13024:6:101","nodeType":"YulIdentifier","src":"13024:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13037:9:101","nodeType":"YulIdentifier","src":"13037:9:101"},{"kind":"number","nativeSrc":"13048:2:101","nodeType":"YulLiteral","src":"13048:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13033:3:101","nodeType":"YulIdentifier","src":"13033:3:101"},"nativeSrc":"13033:18:101","nodeType":"YulFunctionCall","src":"13033:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12980:43:101","nodeType":"YulIdentifier","src":"12980:43:101"},"nativeSrc":"12980:72:101","nodeType":"YulFunctionCall","src":"12980:72:101"},"nativeSrc":"12980:72:101","nodeType":"YulExpressionStatement","src":"12980:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13073:9:101","nodeType":"YulIdentifier","src":"13073:9:101"},{"kind":"number","nativeSrc":"13084:2:101","nodeType":"YulLiteral","src":"13084:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13069:3:101","nodeType":"YulIdentifier","src":"13069:3:101"},"nativeSrc":"13069:18:101","nodeType":"YulFunctionCall","src":"13069:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13093:4:101","nodeType":"YulIdentifier","src":"13093:4:101"},{"name":"headStart","nativeSrc":"13099:9:101","nodeType":"YulIdentifier","src":"13099:9:101"}],"functionName":{"name":"sub","nativeSrc":"13089:3:101","nodeType":"YulIdentifier","src":"13089:3:101"},"nativeSrc":"13089:20:101","nodeType":"YulFunctionCall","src":"13089:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13062:6:101","nodeType":"YulIdentifier","src":"13062:6:101"},"nativeSrc":"13062:48:101","nodeType":"YulFunctionCall","src":"13062:48:101"},"nativeSrc":"13062:48:101","nodeType":"YulExpressionStatement","src":"13062:48:101"},{"nativeSrc":"13119:86:101","nodeType":"YulAssignment","src":"13119:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13191:6:101","nodeType":"YulIdentifier","src":"13191:6:101"},{"name":"tail","nativeSrc":"13200:4:101","nodeType":"YulIdentifier","src":"13200:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13127:63:101","nodeType":"YulIdentifier","src":"13127:63:101"},"nativeSrc":"13127:78:101","nodeType":"YulFunctionCall","src":"13127:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13119:4:101","nodeType":"YulIdentifier","src":"13119:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12679:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12809:9:101","nodeType":"YulTypedName","src":"12809:9:101","type":""},{"name":"value2","nativeSrc":"12821:6:101","nodeType":"YulTypedName","src":"12821:6:101","type":""},{"name":"value1","nativeSrc":"12829:6:101","nodeType":"YulTypedName","src":"12829:6:101","type":""},{"name":"value0","nativeSrc":"12837:6:101","nodeType":"YulTypedName","src":"12837:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12848:4:101","nodeType":"YulTypedName","src":"12848:4:101","type":""}],"src":"12679:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IEtherFiLiquidityPool_$3519__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IEtherFiLiquidityPool_$3519_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6241":[{"length":32,"start":365},{"length":32,"start":1725}],"6589":[{"length":32,"start":562},{"length":32,"start":690},{"length":32,"start":2109}],"6592":[{"length":32,"start":313},{"length":32,"start":1441},{"length":32,"start":1982}],"6596":[{"length":32,"start":629},{"length":32,"start":1396},{"length":32,"start":1935}],"6600":[{"length":32,"start":445},{"length":32,"start":2300}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610267578063a4edcd4c14610270578063abb8561314610297578063ac5a693e1461029f578063bdf13af2146102a7575f80fd5b8063671528d414610210578063692404261461022557806369818a351461022d5780637fc4e4a014610254575f80fd5b806341976e09116100e457806341976e09146101a557806345be2dc7146101b85780635213f9c8146101df578063596efe6f146101f4578063643d813d146101fd575f80fd5b806307d0413c1461011557806329db1be6146101345780632cca9dfd146101685780634169d2451461019c575b5f80fd5b61011e60015481565b60405161012b91906109ad565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109da565b61018f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a05565b61011e60045481565b61011e6101b3366004610a34565b6102af565b61018f7f000000000000000000000000000000000000000000000000000000000000000081565b6101f26101ed366004610a6b565b610360565b005b61011e60025481565b6101f261020b366004610a89565b6103d1565b6102186104a5565b60405161012b9190610acb565b6101f26104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101f2610262366004610a89565b61062c565b61011e60035481565b61018f7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61073e565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f8161078b565b9392505050565b5f61032f61073e565b90505f818311801561034057508115155b61034a578261034c565b815b90506103578161078b565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108e3565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108e3565b5f5461041f6301e1338084610b01565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109ad565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61073e565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b14565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761073e565b9050600454818311610529578261052b565b815b6105359190610b27565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109da565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108e3565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051630ac37bbf60e31b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063561bddf8906106fa90670de0b6b3a7640000906004016109ad565b602060405180830381865afa158015610715573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107399190610b45565b905090565b5f806003544261074e9190610b14565b90505f670de0b6b3a7640000825f5460025461076a9190610b63565b6107749190610b63565b61077e9190610b01565b60025461031f9190610b27565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107f991906109da565b602060405180830381865afa158015610814573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108389190610b45565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf9190610b96565b60ff1690506108cf81600a610cc0565b6108d98487610b63565b6103579190610b01565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109339033908690600401610d09565b602060405180830381865afa15801561094e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109729190610d3c565b9050806109a157333083604051634a3fa29360e01b815260040161099893929190610d5a565b60405180910390fd5b5050565b805b82525050565b602081016109bb82846109a5565b92915050565b5f6001600160a01b0382166109bb565b6109a7816109c1565b602081016109bb82846109d1565b5f6109bb826109c1565b5f6109bb826109e8565b6109a7816109f2565b602081016109bb82846109fc565b610a1c816109c1565b8114610a26575f80fd5b50565b80356109bb81610a13565b5f60208284031215610a4757610a475f80fd5b5f610a528484610a29565b949350505050565b80610a1c565b80356109bb81610a5a565b5f60208284031215610a7e57610a7e5f80fd5b5f610a528484610a60565b5f8060408385031215610a9d57610a9d5f80fd5b5f610aa88585610a60565b9250506020610ab985828601610a60565b9150509250929050565b8015156109a7565b602081016109bb8284610ac3565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b0f57610b0f610ad9565b500490565b818103818111156109bb576109bb610aed565b808201808211156109bb576109bb610aed565b80516109bb81610a5a565b5f60208284031215610b5857610b585f80fd5b5f610a528484610b3a565b818102808215838204851417610b7b57610b7b610aed565b5092915050565b60ff8116610a1c565b80516109bb81610b82565b5f60208284031215610ba957610ba95f80fd5b5f610a528484610b8b565b80825b6001851115610bf357808604811115610bd257610bd2610aed565b6001851615610be057908102905b8002610bec8560011c90565b9450610bb7565b94509492505050565b5f82610c0a5750600161031f565b81610c1657505f61031f565b8160018114610c2c5760028114610c3657610c63565b600191505061031f565b60ff841115610c4757610c47610aed565b8360020a915084821115610c5d57610c5d610aed565b5061031f565b5060208310610133831016604e8410600b8410161715610c96575081810a83811115610c9157610c91610aed565b61031f565b610ca38484846001610bb4565b92509050818404811115610cb957610cb9610aed565b0292915050565b5f61031f5f198484610bfc565b8281835e505f910152565b5f610ce1825190565b808452602084019350610cf8818560208601610ccd565b601f01601f19169290920192915050565b60408101610d1782856109d1565b8181036020830152610a528184610cd8565b801515610a1c565b80516109bb81610d29565b5f60208284031215610d4f57610d4f5f80fd5b5f610a528484610d31565b60608101610d6882866109d1565b610d7560208301856109d1565b81810360408301526103578184610cd856fea264697066735822122082cf606c89768dc01a1b3094e1d705c0303102f4bc9d54d6b3bf04d13f980d2e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x254 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x41976E09 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x2CCA9DFD EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x19C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x18F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA05 JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xA34 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x18F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x1ED CALLDATASIZE PUSH1 0x4 PUSH2 0xA6B JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x218 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1F2 PUSH2 0x262 CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x18F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x73E JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xB01 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x73E JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB14 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9DA JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xAC37BBF PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x561BDDF8 SWAP1 PUSH2 0x6FA SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x715 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x739 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x74E SWAP2 SWAP1 PUSH2 0xB14 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x77E SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x814 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x838 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x89B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8BF SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8CF DUP2 PUSH1 0xA PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x8D9 DUP5 DUP8 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x933 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD09 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x972 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9A1 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x998 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9BB JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9D1 JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0x9C1 JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0x9E8 JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x9F2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9FC JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0x9C1 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0xA13 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA47 JUMPI PUSH2 0xA47 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xA29 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xA1C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA7E JUMPI PUSH2 0xA7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xA60 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA9D JUMPI PUSH2 0xA9D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAA8 DUP6 DUP6 PUSH2 0xA60 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAB9 DUP6 DUP3 DUP7 ADD PUSH2 0xA60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0xAC3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB0F JUMPI PUSH2 0xB0F PUSH2 0xAD9 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB58 JUMPI PUSH2 0xB58 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xB3A JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB7B JUMPI PUSH2 0xB7B PUSH2 0xAED JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0xA1C JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xB82 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBA9 JUMPI PUSH2 0xBA9 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xB8B JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBF3 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBD2 JUMPI PUSH2 0xBD2 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBE0 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBEC DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBB7 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC0A JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC16 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC2C JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC36 JUMPI PUSH2 0xC63 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC47 JUMPI PUSH2 0xC47 PUSH2 0xAED JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC5D PUSH2 0xAED JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC96 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC91 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xCA3 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBB4 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCB9 JUMPI PUSH2 0xCB9 PUSH2 0xAED JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBFC JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCE1 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCCD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD17 DUP3 DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA52 DUP2 DUP5 PUSH2 0xCD8 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xA1C JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xD29 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4F JUMPI PUSH2 0xD4F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA52 DUP5 DUP5 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD68 DUP3 DUP7 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0xD75 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCD8 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 0xCF PUSH1 0x6C DUP10 PUSH23 0x8DC01A1B3094E1D705C0303102F4BC9D54D6B3BF04D13F SWAP9 0xD 0x2E PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"507:1233:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;601:53:63:-;;;;;;;;;;;;:::i;1728:26:67:-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;6379:216;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;1604:134:63;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1604:134:63:-;1691:40;;-1:-1:-1;;;1691:40:63;;1665:7;;-1:-1:-1;;;;;1691:14:63;:29;;;;:40;;186:4:17;;1691:40:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1684:47;;1604:134;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1242:126::-;1292:9;1325:37;1356:5;1325:37;:::i;1374:156::-;1454:9;1487:37;1518:5;1487:37;:::i;1536:191::-;1653:67;1714:5;1653:67;:::i;1733:282::-;1894:2;1879:18;;1907:101;1883:9;1981:6;1907:101;:::i;2348:122::-;2421:24;2439:5;2421:24;:::i;:::-;2414:5;2411:35;2401:63;;2460:1;2457;2450:12;2401:63;2348:122;:::o;2476:139::-;2547:20;;2576:33;2547:20;2576:33;:::i;2621:329::-;2680:6;2729:2;2717:9;2708:7;2704:23;2700:32;2697:119;;;2735:79;507:1233:63;;;2735:79:101;2855:1;2880:53;2925:7;2905:9;2880:53;:::i;:::-;2870:63;2621:329;-1:-1:-1;;;;2621:329:101:o;3613:122::-;3704:5;3686:24;7:77;3741:139;3812:20;;3841:33;3812:20;3841:33;:::i;3886:329::-;3945:6;3994:2;3982:9;3973:7;3969:23;3965:32;3962:119;;;4000:79;507:1233:63;;;4000:79:101;4120:1;4145:53;4190:7;4170:9;4145:53;:::i;4221:474::-;4289:6;4297;4346:2;4334:9;4325:7;4321:23;4317:32;4314:119;;;4352:79;507:1233:63;;;4352:79:101;4472:1;4497:53;4542:7;4522:9;4497:53;:::i;:::-;4487:63;;4443:117;4599:2;4625:53;4670:7;4661:6;4650:9;4646:22;4625:53;:::i;:::-;4615:63;;4570:118;4221:474;;;;;:::o;4797:109::-;4771:13;;4764:21;4878;4701:90;4912:210;5037:2;5022:18;;5050:65;5026:9;5088:6;5050:65;:::i;5790:180::-;-1:-1:-1;;;5835:1:101;5828:88;5935:4;5932:1;5925:15;5959:4;5956:1;5949:15;5976:180;-1:-1:-1;;;6021:1:101;6014:88;6121:4;6118:1;6111:15;6145:4;6142:1;6135:15;6162:185;6202:1;6292;6282:35;;6297:18;;:::i;:::-;-1:-1:-1;6332:9:101;;6162:185::o;6353:194::-;6484:9;;;6506:11;;;6503:37;;;6520:18;;:::i;6553:191::-;6682:9;;;6704:10;;;6701:36;;;6717:18;;:::i;6750:143::-;6832:13;;6854:33;6832:13;6854:33;:::i;6899:351::-;6969:6;7018:2;7006:9;6997:7;6993:23;6989:32;6986:119;;;7024:79;507:1233:63;;;7024:79:101;7144:1;7169:64;7225:7;7205:9;7169:64;:::i;7256:410::-;7401:9;;;;7563;;7596:15;;;7590:22;;7543:83;7520:139;;7639:18;;:::i;:::-;7304:362;7256:410;;;;:::o;7764:118::-;7747:4;7736:16;;7835:22;7672:86;7888:139;7968:13;;7990:31;7968:13;7990:31;:::i;8033:347::-;8101:6;8150:2;8138:9;8129:7;8125:23;8121:32;8118:119;;;8156:79;507:1233:63;;;8156:79:101;8276:1;8301:62;8355:7;8335:9;8301:62;:::i;8494:848::-;8586:6;8610:5;8624:712;8645:1;8635:8;8632:15;8624:712;;;8740:4;8735:3;8731:14;8725:4;8722:24;8719:50;;;8749:18;;:::i;:::-;8799:1;8789:8;8785:16;8782:451;;;9203:16;;;;8782:451;9254:15;;9294:32;9317:8;8472:1;8468:13;;8386:102;9294:32;9282:44;;8624:712;;;8494:848;;;;;;;:::o;9348:1073::-;9402:5;9593:8;9583:40;;-1:-1:-1;9614:1:101;9616:5;;9583:40;9642:4;9632:36;;-1:-1:-1;9659:1:101;9661:5;;9632:36;9728:4;9776:1;9771:27;;;;9812:1;9807:191;;;;9721:277;;9771:27;9789:1;9780:10;;9791:5;;;9807:191;9852:3;9842:8;9839:17;9836:43;;;9859:18;;:::i;:::-;9908:8;9905:1;9901:16;9892:25;;9943:3;9936:5;9933:14;9930:40;;;9950:18;;:::i;:::-;9983:5;;;9721:277;;10107:2;10097:8;10094:16;10088:3;10082:4;10079:13;10075:36;10057:2;10047:8;10044:16;10039:2;10033:4;10030:12;10026:35;10010:111;10007:246;;;-1:-1:-1;10153:19:101;;;10188:14;;;10185:40;;;10205:18;;:::i;:::-;10238:5;;10007:246;10278:42;10316:3;10306:8;10300:4;10297:1;10278:42;:::i;:::-;10263:57;;;;10352:4;10347:3;10343:14;10336:5;10333:25;10330:51;;;10361:18;;:::i;:::-;10399:16;;9348:1073;-1:-1:-1;;9348:1073:101:o;10427:285::-;10487:5;10601:104;-1:-1:-1;;10628:8:101;10622:4;10601:104;:::i;10998:139::-;11087:6;11082:3;11077;11071:23;-1:-1:-1;11128:1:101;11110:16;;11103:27;10998:139::o;11251:377::-;11339:3;11367:39;11400:5;10798:12;;10718:99;11367:39;10929:19;;;10981:4;10972:14;;11415:78;;11502:65;11560:6;11555:3;11548:4;11541:5;11537:16;11502:65;:::i;:::-;11235:2;11215:14;-1:-1:-1;;11211:28:101;11583:39;;;;;;-1:-1:-1;;11251:377:101:o;11634:423::-;11813:2;11798:18;;11826:71;11802:9;11870:6;11826:71;:::i;:::-;11944:9;11938:4;11934:20;11929:2;11918:9;11914:18;11907:48;11972:78;12045:4;12036:6;11972:78;:::i;12063:116::-;4771:13;;4764:21;12133;4701:90;12185:137;12264:13;;12286:30;12264:13;12286:30;:::i;12328:345::-;12395:6;12444:2;12432:9;12423:7;12419:23;12415:32;12412:119;;;12450:79;507:1233:63;;;12450:79:101;12570:1;12595:61;12648:7;12628:9;12595:61;:::i;12679:533::-;12886:2;12871:18;;12899:71;12875:9;12943:6;12899:71;:::i;:::-;12980:72;13048:2;13037:9;13033:18;13024:6;12980:72;:::i;:::-;13099:9;13093:4;13089:20;13084:2;13073:9;13069:18;13062:48;13127:78;13200:4;13191:6;13127:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"703400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","LIQUIDITY_POOL()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2450","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2449","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","LIQUIDITY_POOL()":"2cca9dfd","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"liquidityPool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weETH\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"eETH\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIQUIDITY_POOL\",\"outputs\":[{\"internalType\":\"contract IEtherFiLiquidityPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount Amount of eETH\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"WeETHOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"LIQUIDITY_POOL()\":{\"notice\":\"Address of Liqiudity pool\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Gets the eETH for 1 weETH\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of weETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/WeETHOracle.sol\":\"WeETHOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IEtherFiLiquidityPool.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IEtherFiLiquidityPool {\\n    function amountForShare(uint256 _share) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xce3955be63e9f3787e90573c72c119238d2e63712c1a828b874145b1f91761d6\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/WeETHOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { IEtherFiLiquidityPool } from \\\"../interfaces/IEtherFiLiquidityPool.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title WeETHOracle\\n * @author Venus\\n * @notice This oracle fetches the price of weETH\\n */\\ncontract WeETHOracle is CorrelatedTokenOracle {\\n    /// @notice Address of Liqiudity pool\\n    IEtherFiLiquidityPool public immutable LIQUIDITY_POOL;\\n\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address liquidityPool,\\n        address weETH,\\n        address eETH,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            weETH,\\n            eETH,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(liquidityPool);\\n        LIQUIDITY_POOL = IEtherFiLiquidityPool(liquidityPool);\\n    }\\n\\n    /**\\n     * @notice Gets the eETH for 1 weETH\\n     * @return amount Amount of eETH\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return LIQUIDITY_POOL.amountForShare(EXP_SCALE);\\n    }\\n}\\n\",\"keccak256\":\"0xc583612fabdf801e09f4121c1cb8352fe3cc3fdf1c843aea2dcff8d2a3095587\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/WeETHOracle.sol:WeETHOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/WeETHOracle.sol:WeETHOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/WeETHOracle.sol:WeETHOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/WeETHOracle.sol:WeETHOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/WeETHOracle.sol:WeETHOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"LIQUIDITY_POOL()":{"notice":"Address of Liqiudity pool"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Gets the eETH for 1 weETH"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of weETH","version":1}}},"contracts/oracles/WstETHOracle.sol":{"WstETHOracle":{"abi":[{"inputs":[{"internalType":"address","name":"wstETHAddress","type":"address"},{"internalType":"address","name":"wETHAddress","type":"address"},{"internalType":"address","name":"stETHAddress","type":"address"},{"internalType":"address","name":"resilientOracleAddress","type":"address"},{"internalType":"bool","name":"assumeEquivalence","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"inputs":[],"name":"ASSUME_STETH_ETH_EQUIVALENCE","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract OracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STETH","outputs":[{"internalType":"contract IStETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WSTETH_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getPrice(address)":{"details":"Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH      or the price of stETH/USD (secondary market price) is obtained from the oracle","params":{"asset":"Address of wstETH"},"returns":{"_0":"wstETH Price in USD scaled by 1e18"}}},"stateVariables":{"ASSUME_STETH_ETH_EQUIVALENCE":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"},"RESILIENT_ORACLE":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"},"STETH":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"},"WETH_ADDRESS":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"},"WSTETH_ADDRESS":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"WstETHOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_6386":{"entryPoint":null,"id":6386,"parameterSlots":5,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":126,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":205,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":224,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_bool_fromMemory":{"entryPoint":235,"id":null,"parameterSlots":2,"returnSlots":5},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":168,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":186,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":216,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2180:101","nodeType":"YulBlock","src":"0:2180:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"887:48:101","nodeType":"YulBlock","src":"887:48:101","statements":[{"nativeSrc":"897:32:101","nodeType":"YulAssignment","src":"897:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"922:5:101","nodeType":"YulIdentifier","src":"922:5:101"}],"functionName":{"name":"iszero","nativeSrc":"915:6:101","nodeType":"YulIdentifier","src":"915:6:101"},"nativeSrc":"915:13:101","nodeType":"YulFunctionCall","src":"915:13:101"}],"functionName":{"name":"iszero","nativeSrc":"908:6:101","nodeType":"YulIdentifier","src":"908:6:101"},"nativeSrc":"908:21:101","nodeType":"YulFunctionCall","src":"908:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"897:7:101","nodeType":"YulIdentifier","src":"897:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"845:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"869:5:101","nodeType":"YulTypedName","src":"869:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"879:7:101","nodeType":"YulTypedName","src":"879:7:101","type":""}],"src":"845:90:101"},{"body":{"nativeSrc":"981:76:101","nodeType":"YulBlock","src":"981:76:101","statements":[{"body":{"nativeSrc":"1035:16:101","nodeType":"YulBlock","src":"1035:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1044:1:101","nodeType":"YulLiteral","src":"1044:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1047:1:101","nodeType":"YulLiteral","src":"1047:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1037:6:101","nodeType":"YulIdentifier","src":"1037:6:101"},"nativeSrc":"1037:12:101","nodeType":"YulFunctionCall","src":"1037:12:101"},"nativeSrc":"1037:12:101","nodeType":"YulExpressionStatement","src":"1037:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1004:5:101","nodeType":"YulIdentifier","src":"1004:5:101"},{"arguments":[{"name":"value","nativeSrc":"1026:5:101","nodeType":"YulIdentifier","src":"1026:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1011:14:101","nodeType":"YulIdentifier","src":"1011:14:101"},"nativeSrc":"1011:21:101","nodeType":"YulFunctionCall","src":"1011:21:101"}],"functionName":{"name":"eq","nativeSrc":"1001:2:101","nodeType":"YulIdentifier","src":"1001:2:101"},"nativeSrc":"1001:32:101","nodeType":"YulFunctionCall","src":"1001:32:101"}],"functionName":{"name":"iszero","nativeSrc":"994:6:101","nodeType":"YulIdentifier","src":"994:6:101"},"nativeSrc":"994:40:101","nodeType":"YulFunctionCall","src":"994:40:101"},"nativeSrc":"991:60:101","nodeType":"YulIf","src":"991:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"941:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"974:5:101","nodeType":"YulTypedName","src":"974:5:101","type":""}],"src":"941:116:101"},{"body":{"nativeSrc":"1123:77:101","nodeType":"YulBlock","src":"1123:77:101","statements":[{"nativeSrc":"1133:22:101","nodeType":"YulAssignment","src":"1133:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1148:6:101","nodeType":"YulIdentifier","src":"1148:6:101"}],"functionName":{"name":"mload","nativeSrc":"1142:5:101","nodeType":"YulIdentifier","src":"1142:5:101"},"nativeSrc":"1142:13:101","nodeType":"YulFunctionCall","src":"1142:13:101"},"variableNames":[{"name":"value","nativeSrc":"1133:5:101","nodeType":"YulIdentifier","src":"1133:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1188:5:101","nodeType":"YulIdentifier","src":"1188:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"1164:23:101","nodeType":"YulIdentifier","src":"1164:23:101"},"nativeSrc":"1164:30:101","nodeType":"YulFunctionCall","src":"1164:30:101"},"nativeSrc":"1164:30:101","nodeType":"YulExpressionStatement","src":"1164:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"1063:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1101:6:101","nodeType":"YulTypedName","src":"1101:6:101","type":""},{"name":"end","nativeSrc":"1109:3:101","nodeType":"YulTypedName","src":"1109:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1117:5:101","nodeType":"YulTypedName","src":"1117:5:101","type":""}],"src":"1063:137:101"},{"body":{"nativeSrc":"1348:829:101","nodeType":"YulBlock","src":"1348:829:101","statements":[{"body":{"nativeSrc":"1395:83:101","nodeType":"YulBlock","src":"1395:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1397:77:101","nodeType":"YulIdentifier","src":"1397:77:101"},"nativeSrc":"1397:79:101","nodeType":"YulFunctionCall","src":"1397:79:101"},"nativeSrc":"1397:79:101","nodeType":"YulExpressionStatement","src":"1397:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1369:7:101","nodeType":"YulIdentifier","src":"1369:7:101"},{"name":"headStart","nativeSrc":"1378:9:101","nodeType":"YulIdentifier","src":"1378:9:101"}],"functionName":{"name":"sub","nativeSrc":"1365:3:101","nodeType":"YulIdentifier","src":"1365:3:101"},"nativeSrc":"1365:23:101","nodeType":"YulFunctionCall","src":"1365:23:101"},{"kind":"number","nativeSrc":"1390:3:101","nodeType":"YulLiteral","src":"1390:3:101","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"1361:3:101","nodeType":"YulIdentifier","src":"1361:3:101"},"nativeSrc":"1361:33:101","nodeType":"YulFunctionCall","src":"1361:33:101"},"nativeSrc":"1358:120:101","nodeType":"YulIf","src":"1358:120:101"},{"nativeSrc":"1488:128:101","nodeType":"YulBlock","src":"1488:128:101","statements":[{"nativeSrc":"1503:15:101","nodeType":"YulVariableDeclaration","src":"1503:15:101","value":{"kind":"number","nativeSrc":"1517:1:101","nodeType":"YulLiteral","src":"1517:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1507:6:101","nodeType":"YulTypedName","src":"1507:6:101","type":""}]},{"nativeSrc":"1532:74:101","nodeType":"YulAssignment","src":"1532:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1578:9:101","nodeType":"YulIdentifier","src":"1578:9:101"},{"name":"offset","nativeSrc":"1589:6:101","nodeType":"YulIdentifier","src":"1589:6:101"}],"functionName":{"name":"add","nativeSrc":"1574:3:101","nodeType":"YulIdentifier","src":"1574:3:101"},"nativeSrc":"1574:22:101","nodeType":"YulFunctionCall","src":"1574:22:101"},{"name":"dataEnd","nativeSrc":"1598:7:101","nodeType":"YulIdentifier","src":"1598:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1542:31:101","nodeType":"YulIdentifier","src":"1542:31:101"},"nativeSrc":"1542:64:101","nodeType":"YulFunctionCall","src":"1542:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1532:6:101","nodeType":"YulIdentifier","src":"1532:6:101"}]}]},{"nativeSrc":"1626:129:101","nodeType":"YulBlock","src":"1626:129:101","statements":[{"nativeSrc":"1641:16:101","nodeType":"YulVariableDeclaration","src":"1641:16:101","value":{"kind":"number","nativeSrc":"1655:2:101","nodeType":"YulLiteral","src":"1655:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1645:6:101","nodeType":"YulTypedName","src":"1645:6:101","type":""}]},{"nativeSrc":"1671:74:101","nodeType":"YulAssignment","src":"1671:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1717:9:101","nodeType":"YulIdentifier","src":"1717:9:101"},{"name":"offset","nativeSrc":"1728:6:101","nodeType":"YulIdentifier","src":"1728:6:101"}],"functionName":{"name":"add","nativeSrc":"1713:3:101","nodeType":"YulIdentifier","src":"1713:3:101"},"nativeSrc":"1713:22:101","nodeType":"YulFunctionCall","src":"1713:22:101"},{"name":"dataEnd","nativeSrc":"1737:7:101","nodeType":"YulIdentifier","src":"1737:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1681:31:101","nodeType":"YulIdentifier","src":"1681:31:101"},"nativeSrc":"1681:64:101","nodeType":"YulFunctionCall","src":"1681:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1671:6:101","nodeType":"YulIdentifier","src":"1671:6:101"}]}]},{"nativeSrc":"1765:129:101","nodeType":"YulBlock","src":"1765:129:101","statements":[{"nativeSrc":"1780:16:101","nodeType":"YulVariableDeclaration","src":"1780:16:101","value":{"kind":"number","nativeSrc":"1794:2:101","nodeType":"YulLiteral","src":"1794:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1784:6:101","nodeType":"YulTypedName","src":"1784:6:101","type":""}]},{"nativeSrc":"1810:74:101","nodeType":"YulAssignment","src":"1810:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1856:9:101","nodeType":"YulIdentifier","src":"1856:9:101"},{"name":"offset","nativeSrc":"1867:6:101","nodeType":"YulIdentifier","src":"1867:6:101"}],"functionName":{"name":"add","nativeSrc":"1852:3:101","nodeType":"YulIdentifier","src":"1852:3:101"},"nativeSrc":"1852:22:101","nodeType":"YulFunctionCall","src":"1852:22:101"},{"name":"dataEnd","nativeSrc":"1876:7:101","nodeType":"YulIdentifier","src":"1876:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1820:31:101","nodeType":"YulIdentifier","src":"1820:31:101"},"nativeSrc":"1820:64:101","nodeType":"YulFunctionCall","src":"1820:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1810:6:101","nodeType":"YulIdentifier","src":"1810:6:101"}]}]},{"nativeSrc":"1904:129:101","nodeType":"YulBlock","src":"1904:129:101","statements":[{"nativeSrc":"1919:16:101","nodeType":"YulVariableDeclaration","src":"1919:16:101","value":{"kind":"number","nativeSrc":"1933:2:101","nodeType":"YulLiteral","src":"1933:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulTypedName","src":"1923:6:101","type":""}]},{"nativeSrc":"1949:74:101","nodeType":"YulAssignment","src":"1949:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1995:9:101","nodeType":"YulIdentifier","src":"1995:9:101"},{"name":"offset","nativeSrc":"2006:6:101","nodeType":"YulIdentifier","src":"2006:6:101"}],"functionName":{"name":"add","nativeSrc":"1991:3:101","nodeType":"YulIdentifier","src":"1991:3:101"},"nativeSrc":"1991:22:101","nodeType":"YulFunctionCall","src":"1991:22:101"},{"name":"dataEnd","nativeSrc":"2015:7:101","nodeType":"YulIdentifier","src":"2015:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1959:31:101","nodeType":"YulIdentifier","src":"1959:31:101"},"nativeSrc":"1959:64:101","nodeType":"YulFunctionCall","src":"1959:64:101"},"variableNames":[{"name":"value3","nativeSrc":"1949:6:101","nodeType":"YulIdentifier","src":"1949:6:101"}]}]},{"nativeSrc":"2043:127:101","nodeType":"YulBlock","src":"2043:127:101","statements":[{"nativeSrc":"2058:17:101","nodeType":"YulVariableDeclaration","src":"2058:17:101","value":{"kind":"number","nativeSrc":"2072:3:101","nodeType":"YulLiteral","src":"2072:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2062:6:101","nodeType":"YulTypedName","src":"2062:6:101","type":""}]},{"nativeSrc":"2089:71:101","nodeType":"YulAssignment","src":"2089:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2132:9:101","nodeType":"YulIdentifier","src":"2132:9:101"},{"name":"offset","nativeSrc":"2143:6:101","nodeType":"YulIdentifier","src":"2143:6:101"}],"functionName":{"name":"add","nativeSrc":"2128:3:101","nodeType":"YulIdentifier","src":"2128:3:101"},"nativeSrc":"2128:22:101","nodeType":"YulFunctionCall","src":"2128:22:101"},{"name":"dataEnd","nativeSrc":"2152:7:101","nodeType":"YulIdentifier","src":"2152:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"2099:28:101","nodeType":"YulIdentifier","src":"2099:28:101"},"nativeSrc":"2099:61:101","nodeType":"YulFunctionCall","src":"2099:61:101"},"variableNames":[{"name":"value4","nativeSrc":"2089:6:101","nodeType":"YulIdentifier","src":"2089:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_bool_fromMemory","nativeSrc":"1206:971:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1286:9:101","nodeType":"YulTypedName","src":"1286:9:101","type":""},{"name":"dataEnd","nativeSrc":"1297:7:101","nodeType":"YulTypedName","src":"1297:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1309:6:101","nodeType":"YulTypedName","src":"1309:6:101","type":""},{"name":"value1","nativeSrc":"1317:6:101","nodeType":"YulTypedName","src":"1317:6:101","type":""},{"name":"value2","nativeSrc":"1325:6:101","nodeType":"YulTypedName","src":"1325:6:101","type":""},{"name":"value3","nativeSrc":"1333:6:101","nodeType":"YulTypedName","src":"1333:6:101","type":""},{"name":"value4","nativeSrc":"1341:6:101","nodeType":"YulTypedName","src":"1341:6:101","type":""}],"src":"1206:971:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_addresst_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b5060405161074238038061074283398101604081905261002f916100eb565b6100388561007e565b6100418461007e565b61004a8361007e565b6100538261007e565b6001600160a01b0394851660c05292841660e05290831660a05290911661010052151560805261015e565b6001600160a01b0381166100a5576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6100c3816100a8565b81146100a5575f80fd5b80516100b4816100ba565b8015156100c3565b80516100b4816100d8565b5f805f805f60a08688031215610102576101025f80fd5b5f61010d88886100cd565b955050602061011e888289016100cd565b945050604061012f888289016100cd565b9350506060610140888289016100cd565b9250506080610151888289016100e0565b9150509295509295909350565b60805160a05160c05160e051610100516105806101c25f395f818160ed015261026c01525f8181606901526102e601525f818160a6015261017a01525f8181610121015281816101eb01526102c001525f8181610148015261029b01526105805ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063040141e51461006457806336e6372f146100a157806341976e09146100c8578063a4edcd4c146100e8578063e00bfe501461011c578063ed0142b714610143575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161009891906103a9565b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100db6100d63660046103d8565b610177565b60405161009891906103fc565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100989190610449565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b61016a7f000000000000000000000000000000000000000000000000000000000000000081565b604051610098919061045f565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146101d25760405162461bcd60e51b81526004016101c99061046d565b60405180910390fd5b604051630f451f7160e31b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a28fb889061022890670de0b6b3a7640000906004016104b3565b602060405180830381865afa158015610243573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026791906104d2565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006102e4577f0000000000000000000000000000000000000000000000000000000000000000610306565b7f00000000000000000000000000000000000000000000000000000000000000005b6040518263ffffffff1660e01b815260040161032291906103a9565b602060405180830381865afa15801561033d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036191906104d2565b9050670de0b6b3a76400006103768284610504565b6103809190610537565b949350505050565b5f6001600160a01b0382165b92915050565b6103a381610388565b82525050565b60208101610394828461039a565b6103c081610388565b81146103ca575f80fd5b50565b8035610394816103b7565b5f602082840312156103eb576103eb5f80fd5b5f61038084846103cd565b806103a3565b6020810161039482846103f6565b5f6103946001600160a01b038316610420565b90565b6001600160a01b031690565b5f6103948261040a565b5f6103948261042c565b6103a381610436565b602081016103948284610440565b8015156103a3565b602081016103948284610457565b6020808252810161039481601481527377726f6e6720777374455448206164647265737360601b602082015260400190565b5f61039461041d8381565b6103a38161049f565b6020810161039482846104aa565b806103c0565b8051610394816104c1565b5f602082840312156104e5576104e55f80fd5b5f61038084846104c7565b634e487b7160e01b5f52601160045260245ffd5b81810280821583820485141761051c5761051c6104f0565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261054557610545610523565b50049056fea2646970667358221220e2f77c5495d50763705010b44fd126efcaff5a5e324cefe858483948b905895264736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x742 CODESIZE SUB DUP1 PUSH2 0x742 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xEB JUMP JUMPDEST PUSH2 0x38 DUP6 PUSH2 0x7E JUMP JUMPDEST PUSH2 0x41 DUP5 PUSH2 0x7E JUMP JUMPDEST PUSH2 0x4A DUP4 PUSH2 0x7E JUMP JUMPDEST PUSH2 0x53 DUP3 PUSH2 0x7E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0xC0 MSTORE SWAP3 DUP5 AND PUSH1 0xE0 MSTORE SWAP1 DUP4 AND PUSH1 0xA0 MSTORE SWAP1 SWAP2 AND PUSH2 0x100 MSTORE ISZERO ISZERO PUSH1 0x80 MSTORE PUSH2 0x15E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC3 DUP2 PUSH2 0xA8 JUMP JUMPDEST DUP2 EQ PUSH2 0xA5 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xB4 DUP2 PUSH2 0xBA JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xC3 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB4 DUP2 PUSH2 0xD8 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x102 JUMPI PUSH2 0x102 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x10D DUP9 DUP9 PUSH2 0xCD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x11E DUP9 DUP3 DUP10 ADD PUSH2 0xCD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x12F DUP9 DUP3 DUP10 ADD PUSH2 0xCD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x140 DUP9 DUP3 DUP10 ADD PUSH2 0xCD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x151 DUP9 DUP3 DUP10 ADD PUSH2 0xE0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x580 PUSH2 0x1C2 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH1 0xED ADD MSTORE PUSH2 0x26C ADD MSTORE PUSH0 DUP2 DUP2 PUSH1 0x69 ADD MSTORE PUSH2 0x2E6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH1 0xA6 ADD MSTORE PUSH2 0x17A ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x121 ADD MSTORE DUP2 DUP2 PUSH2 0x1EB ADD MSTORE PUSH2 0x2C0 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x148 ADD MSTORE PUSH2 0x29B ADD MSTORE PUSH2 0x580 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x60 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40141E5 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x36E6372F EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xE00BFE50 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0xED0142B7 EQ PUSH2 0x143 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x8B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH2 0x10F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x449 JUMP JUMPDEST PUSH2 0x10F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x16A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x45F JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C9 SWAP1 PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF451F71 PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A28FB88 SWAP1 PUSH2 0x228 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x4B3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x243 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x267 SWAP2 SWAP1 PUSH2 0x4D2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH2 0x2E4 JUMPI PUSH32 0x0 PUSH2 0x306 JUMP JUMPDEST PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x322 SWAP2 SWAP1 PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x361 SWAP2 SWAP1 PUSH2 0x4D2 JUMP JUMPDEST SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x376 DUP3 DUP5 PUSH2 0x504 JUMP JUMPDEST PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x537 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x388 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x39A JUMP JUMPDEST PUSH2 0x3C0 DUP2 PUSH2 0x388 JUMP JUMPDEST DUP2 EQ PUSH2 0x3CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x394 DUP2 PUSH2 0x3B7 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EB JUMPI PUSH2 0x3EB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x380 DUP5 DUP5 PUSH2 0x3CD JUMP JUMPDEST DUP1 PUSH2 0x3A3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x3F6 JUMP JUMPDEST PUSH0 PUSH2 0x394 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x420 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x394 DUP3 PUSH2 0x40A JUMP JUMPDEST PUSH0 PUSH2 0x394 DUP3 PUSH2 0x42C JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x436 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x440 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3A3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x394 DUP2 PUSH1 0x14 DUP2 MSTORE PUSH20 0x77726F6E67207773744554482061646472657373 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x394 PUSH2 0x41D DUP4 DUP2 JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x49F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x4AA JUMP JUMPDEST DUP1 PUSH2 0x3C0 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x4C1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E5 JUMPI PUSH2 0x4E5 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x380 DUP5 DUP5 PUSH2 0x4C7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x51C JUMPI PUSH2 0x51C PUSH2 0x4F0 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x545 JUMPI PUSH2 0x545 PUSH2 0x523 JUMP JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 0xF7 PUSH29 0x5495D50763705010B44FD126EFCAFF5A5E324CEFE858483948B9058952 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"614:2493:64:-:0;;;1559:613;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1749:35;1770:13;1749:20;:35::i;:::-;1794:33;1815:11;1794:20;:33::i;:::-;1837:34;1858:12;1837:20;:34::i;:::-;1881:44;1902:22;1881:20;:44::i;:::-;-1:-1:-1;;;;;1935:30:64;;;;;1975:26;;;;;2011:28;;;;;2049:58;;;;;2117:48;;;;614:2493;;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;941:116::-;915:13;;908:21;1011;845:90;1063:137;1142:13;;1164:30;1142:13;1164:30;:::i;1206:971::-;1309:6;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;197:1;194;187:12;1397:79;1517:1;1542:64;1598:7;1578:9;1542:64;:::i;:::-;1532:74;;1488:128;1655:2;1681:64;1737:7;1728:6;1717:9;1713:22;1681:64;:::i;:::-;1671:74;;1626:129;1794:2;1820:64;1876:7;1867:6;1856:9;1852:22;1820:64;:::i;:::-;1810:74;;1765:129;1933:2;1959:64;2015:7;2006:6;1995:9;1991:22;1959:64;:::i;:::-;1949:74;;1904:129;2072:3;2099:61;2152:7;2143:6;2132:9;2128:22;2099:61;:::i;:::-;2089:71;;2043:127;1206:971;;;;;;;;:::o;:::-;614:2493:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ASSUME_STETH_ETH_EQUIVALENCE_6317":{"entryPoint":null,"id":6317,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6331":{"entryPoint":null,"id":6331,"parameterSlots":0,"returnSlots":0},"@STETH_6321":{"entryPoint":null,"id":6321,"parameterSlots":0,"returnSlots":0},"@WETH_ADDRESS_6327":{"entryPoint":null,"id":6327,"parameterSlots":0,"returnSlots":0},"@WSTETH_ADDRESS_6324":{"entryPoint":null,"id":6324,"parameterSlots":0,"returnSlots":0},"@getPrice_6430":{"entryPoint":375,"id":6430,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":973,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":1223,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":984,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":1234,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":922,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1111,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack":{"entryPoint":1088,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack":{"entryPoint":1194,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1014,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":937,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IStETH_$3610__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed":{"entryPoint":1097,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1000000000000000000_by_1__to_t_uint256__fromStack_reversed":{"entryPoint":1203,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1133,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1020,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":1335,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":1284,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":904,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1000000000000000000_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IStETH_$3610_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_OracleInterface_$3666_to_t_address":{"entryPoint":1078,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1000000000000000000_by_1_to_t_uint256":{"entryPoint":1183,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":1068,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":1034,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":1264,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":1315,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":951,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1217,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7461:101","nodeType":"YulBlock","src":"0:7461:101","statements":[{"body":{"nativeSrc":"52:81:101","nodeType":"YulBlock","src":"52:81:101","statements":[{"nativeSrc":"62:65:101","nodeType":"YulAssignment","src":"62:65:101","value":{"arguments":[{"name":"value","nativeSrc":"77:5:101","nodeType":"YulIdentifier","src":"77:5:101"},{"kind":"number","nativeSrc":"84:42:101","nodeType":"YulLiteral","src":"84:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"73:3:101","nodeType":"YulIdentifier","src":"73:3:101"},"nativeSrc":"73:54:101","nodeType":"YulFunctionCall","src":"73:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"7:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:126:101"},{"body":{"nativeSrc":"184:51:101","nodeType":"YulBlock","src":"184:51:101","statements":[{"nativeSrc":"194:35:101","nodeType":"YulAssignment","src":"194:35:101","value":{"arguments":[{"name":"value","nativeSrc":"223:5:101","nodeType":"YulIdentifier","src":"223:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"205:17:101","nodeType":"YulIdentifier","src":"205:17:101"},"nativeSrc":"205:24:101","nodeType":"YulFunctionCall","src":"205:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"194:7:101","nodeType":"YulIdentifier","src":"194:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"139:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"166:5:101","nodeType":"YulTypedName","src":"166:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"176:7:101","nodeType":"YulTypedName","src":"176:7:101","type":""}],"src":"139:96:101"},{"body":{"nativeSrc":"306:53:101","nodeType":"YulBlock","src":"306:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"323:3:101","nodeType":"YulIdentifier","src":"323:3:101"},{"arguments":[{"name":"value","nativeSrc":"346:5:101","nodeType":"YulIdentifier","src":"346:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"328:17:101","nodeType":"YulIdentifier","src":"328:17:101"},"nativeSrc":"328:24:101","nodeType":"YulFunctionCall","src":"328:24:101"}],"functionName":{"name":"mstore","nativeSrc":"316:6:101","nodeType":"YulIdentifier","src":"316:6:101"},"nativeSrc":"316:37:101","nodeType":"YulFunctionCall","src":"316:37:101"},"nativeSrc":"316:37:101","nodeType":"YulExpressionStatement","src":"316:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"241:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"294:5:101","nodeType":"YulTypedName","src":"294:5:101","type":""},{"name":"pos","nativeSrc":"301:3:101","nodeType":"YulTypedName","src":"301:3:101","type":""}],"src":"241:118:101"},{"body":{"nativeSrc":"463:124:101","nodeType":"YulBlock","src":"463:124:101","statements":[{"nativeSrc":"473:26:101","nodeType":"YulAssignment","src":"473:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"485:9:101","nodeType":"YulIdentifier","src":"485:9:101"},{"kind":"number","nativeSrc":"496:2:101","nodeType":"YulLiteral","src":"496:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"481:3:101","nodeType":"YulIdentifier","src":"481:3:101"},"nativeSrc":"481:18:101","nodeType":"YulFunctionCall","src":"481:18:101"},"variableNames":[{"name":"tail","nativeSrc":"473:4:101","nodeType":"YulIdentifier","src":"473:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"553:6:101","nodeType":"YulIdentifier","src":"553:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"566:9:101","nodeType":"YulIdentifier","src":"566:9:101"},{"kind":"number","nativeSrc":"577:1:101","nodeType":"YulLiteral","src":"577:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"562:3:101","nodeType":"YulIdentifier","src":"562:3:101"},"nativeSrc":"562:17:101","nodeType":"YulFunctionCall","src":"562:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"509:43:101","nodeType":"YulIdentifier","src":"509:43:101"},"nativeSrc":"509:71:101","nodeType":"YulFunctionCall","src":"509:71:101"},"nativeSrc":"509:71:101","nodeType":"YulExpressionStatement","src":"509:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"365:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"435:9:101","nodeType":"YulTypedName","src":"435:9:101","type":""},{"name":"value0","nativeSrc":"447:6:101","nodeType":"YulTypedName","src":"447:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"458:4:101","nodeType":"YulTypedName","src":"458:4:101","type":""}],"src":"365:222:101"},{"body":{"nativeSrc":"633:35:101","nodeType":"YulBlock","src":"633:35:101","statements":[{"nativeSrc":"643:19:101","nodeType":"YulAssignment","src":"643:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"659:2:101","nodeType":"YulLiteral","src":"659:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"653:5:101","nodeType":"YulIdentifier","src":"653:5:101"},"nativeSrc":"653:9:101","nodeType":"YulFunctionCall","src":"653:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"643:6:101","nodeType":"YulIdentifier","src":"643:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"593:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"626:6:101","nodeType":"YulTypedName","src":"626:6:101","type":""}],"src":"593:75:101"},{"body":{"nativeSrc":"763:28:101","nodeType":"YulBlock","src":"763:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"780:1:101","nodeType":"YulLiteral","src":"780:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"783:1:101","nodeType":"YulLiteral","src":"783:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"773:6:101","nodeType":"YulIdentifier","src":"773:6:101"},"nativeSrc":"773:12:101","nodeType":"YulFunctionCall","src":"773:12:101"},"nativeSrc":"773:12:101","nodeType":"YulExpressionStatement","src":"773:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"674:117:101","nodeType":"YulFunctionDefinition","src":"674:117:101"},{"body":{"nativeSrc":"886:28:101","nodeType":"YulBlock","src":"886:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"903:1:101","nodeType":"YulLiteral","src":"903:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"906:1:101","nodeType":"YulLiteral","src":"906:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"896:6:101","nodeType":"YulIdentifier","src":"896:6:101"},"nativeSrc":"896:12:101","nodeType":"YulFunctionCall","src":"896:12:101"},"nativeSrc":"896:12:101","nodeType":"YulExpressionStatement","src":"896:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"797:117:101","nodeType":"YulFunctionDefinition","src":"797:117:101"},{"body":{"nativeSrc":"963:79:101","nodeType":"YulBlock","src":"963:79:101","statements":[{"body":{"nativeSrc":"1020:16:101","nodeType":"YulBlock","src":"1020:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1029:1:101","nodeType":"YulLiteral","src":"1029:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1032:1:101","nodeType":"YulLiteral","src":"1032:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1022:6:101","nodeType":"YulIdentifier","src":"1022:6:101"},"nativeSrc":"1022:12:101","nodeType":"YulFunctionCall","src":"1022:12:101"},"nativeSrc":"1022:12:101","nodeType":"YulExpressionStatement","src":"1022:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"986:5:101","nodeType":"YulIdentifier","src":"986:5:101"},{"arguments":[{"name":"value","nativeSrc":"1011:5:101","nodeType":"YulIdentifier","src":"1011:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"993:17:101","nodeType":"YulIdentifier","src":"993:17:101"},"nativeSrc":"993:24:101","nodeType":"YulFunctionCall","src":"993:24:101"}],"functionName":{"name":"eq","nativeSrc":"983:2:101","nodeType":"YulIdentifier","src":"983:2:101"},"nativeSrc":"983:35:101","nodeType":"YulFunctionCall","src":"983:35:101"}],"functionName":{"name":"iszero","nativeSrc":"976:6:101","nodeType":"YulIdentifier","src":"976:6:101"},"nativeSrc":"976:43:101","nodeType":"YulFunctionCall","src":"976:43:101"},"nativeSrc":"973:63:101","nodeType":"YulIf","src":"973:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"920:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"956:5:101","nodeType":"YulTypedName","src":"956:5:101","type":""}],"src":"920:122:101"},{"body":{"nativeSrc":"1100:87:101","nodeType":"YulBlock","src":"1100:87:101","statements":[{"nativeSrc":"1110:29:101","nodeType":"YulAssignment","src":"1110:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1132:6:101","nodeType":"YulIdentifier","src":"1132:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1119:12:101","nodeType":"YulIdentifier","src":"1119:12:101"},"nativeSrc":"1119:20:101","nodeType":"YulFunctionCall","src":"1119:20:101"},"variableNames":[{"name":"value","nativeSrc":"1110:5:101","nodeType":"YulIdentifier","src":"1110:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1175:5:101","nodeType":"YulIdentifier","src":"1175:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1148:26:101","nodeType":"YulIdentifier","src":"1148:26:101"},"nativeSrc":"1148:33:101","nodeType":"YulFunctionCall","src":"1148:33:101"},"nativeSrc":"1148:33:101","nodeType":"YulExpressionStatement","src":"1148:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1048:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1078:6:101","nodeType":"YulTypedName","src":"1078:6:101","type":""},{"name":"end","nativeSrc":"1086:3:101","nodeType":"YulTypedName","src":"1086:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1094:5:101","nodeType":"YulTypedName","src":"1094:5:101","type":""}],"src":"1048:139:101"},{"body":{"nativeSrc":"1259:263:101","nodeType":"YulBlock","src":"1259:263:101","statements":[{"body":{"nativeSrc":"1305:83:101","nodeType":"YulBlock","src":"1305:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1307:77:101","nodeType":"YulIdentifier","src":"1307:77:101"},"nativeSrc":"1307:79:101","nodeType":"YulFunctionCall","src":"1307:79:101"},"nativeSrc":"1307:79:101","nodeType":"YulExpressionStatement","src":"1307:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1280:7:101","nodeType":"YulIdentifier","src":"1280:7:101"},{"name":"headStart","nativeSrc":"1289:9:101","nodeType":"YulIdentifier","src":"1289:9:101"}],"functionName":{"name":"sub","nativeSrc":"1276:3:101","nodeType":"YulIdentifier","src":"1276:3:101"},"nativeSrc":"1276:23:101","nodeType":"YulFunctionCall","src":"1276:23:101"},{"kind":"number","nativeSrc":"1301:2:101","nodeType":"YulLiteral","src":"1301:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1272:3:101","nodeType":"YulIdentifier","src":"1272:3:101"},"nativeSrc":"1272:32:101","nodeType":"YulFunctionCall","src":"1272:32:101"},"nativeSrc":"1269:119:101","nodeType":"YulIf","src":"1269:119:101"},{"nativeSrc":"1398:117:101","nodeType":"YulBlock","src":"1398:117:101","statements":[{"nativeSrc":"1413:15:101","nodeType":"YulVariableDeclaration","src":"1413:15:101","value":{"kind":"number","nativeSrc":"1427:1:101","nodeType":"YulLiteral","src":"1427:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1417:6:101","nodeType":"YulTypedName","src":"1417:6:101","type":""}]},{"nativeSrc":"1442:63:101","nodeType":"YulAssignment","src":"1442:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1477:9:101","nodeType":"YulIdentifier","src":"1477:9:101"},{"name":"offset","nativeSrc":"1488:6:101","nodeType":"YulIdentifier","src":"1488:6:101"}],"functionName":{"name":"add","nativeSrc":"1473:3:101","nodeType":"YulIdentifier","src":"1473:3:101"},"nativeSrc":"1473:22:101","nodeType":"YulFunctionCall","src":"1473:22:101"},{"name":"dataEnd","nativeSrc":"1497:7:101","nodeType":"YulIdentifier","src":"1497:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1452:20:101","nodeType":"YulIdentifier","src":"1452:20:101"},"nativeSrc":"1452:53:101","nodeType":"YulFunctionCall","src":"1452:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1442:6:101","nodeType":"YulIdentifier","src":"1442:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1193:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1229:9:101","nodeType":"YulTypedName","src":"1229:9:101","type":""},{"name":"dataEnd","nativeSrc":"1240:7:101","nodeType":"YulTypedName","src":"1240:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1252:6:101","nodeType":"YulTypedName","src":"1252:6:101","type":""}],"src":"1193:329:101"},{"body":{"nativeSrc":"1573:32:101","nodeType":"YulBlock","src":"1573:32:101","statements":[{"nativeSrc":"1583:16:101","nodeType":"YulAssignment","src":"1583:16:101","value":{"name":"value","nativeSrc":"1594:5:101","nodeType":"YulIdentifier","src":"1594:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1583:7:101","nodeType":"YulIdentifier","src":"1583:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1528:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1555:5:101","nodeType":"YulTypedName","src":"1555:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1565:7:101","nodeType":"YulTypedName","src":"1565:7:101","type":""}],"src":"1528:77:101"},{"body":{"nativeSrc":"1676:53:101","nodeType":"YulBlock","src":"1676:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1693:3:101","nodeType":"YulIdentifier","src":"1693:3:101"},{"arguments":[{"name":"value","nativeSrc":"1716:5:101","nodeType":"YulIdentifier","src":"1716:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1698:17:101","nodeType":"YulIdentifier","src":"1698:17:101"},"nativeSrc":"1698:24:101","nodeType":"YulFunctionCall","src":"1698:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1686:6:101","nodeType":"YulIdentifier","src":"1686:6:101"},"nativeSrc":"1686:37:101","nodeType":"YulFunctionCall","src":"1686:37:101"},"nativeSrc":"1686:37:101","nodeType":"YulExpressionStatement","src":"1686:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1611:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1664:5:101","nodeType":"YulTypedName","src":"1664:5:101","type":""},{"name":"pos","nativeSrc":"1671:3:101","nodeType":"YulTypedName","src":"1671:3:101","type":""}],"src":"1611:118:101"},{"body":{"nativeSrc":"1833:124:101","nodeType":"YulBlock","src":"1833:124:101","statements":[{"nativeSrc":"1843:26:101","nodeType":"YulAssignment","src":"1843:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1855:9:101","nodeType":"YulIdentifier","src":"1855:9:101"},{"kind":"number","nativeSrc":"1866:2:101","nodeType":"YulLiteral","src":"1866:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1851:3:101","nodeType":"YulIdentifier","src":"1851:3:101"},"nativeSrc":"1851:18:101","nodeType":"YulFunctionCall","src":"1851:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1843:4:101","nodeType":"YulIdentifier","src":"1843:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1936:9:101","nodeType":"YulIdentifier","src":"1936:9:101"},{"kind":"number","nativeSrc":"1947:1:101","nodeType":"YulLiteral","src":"1947:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1932:3:101","nodeType":"YulIdentifier","src":"1932:3:101"},"nativeSrc":"1932:17:101","nodeType":"YulFunctionCall","src":"1932:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1879:43:101","nodeType":"YulIdentifier","src":"1879:43:101"},"nativeSrc":"1879:71:101","nodeType":"YulFunctionCall","src":"1879:71:101"},"nativeSrc":"1879:71:101","nodeType":"YulExpressionStatement","src":"1879:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1735:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1805:9:101","nodeType":"YulTypedName","src":"1805:9:101","type":""},{"name":"value0","nativeSrc":"1817:6:101","nodeType":"YulTypedName","src":"1817:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1828:4:101","nodeType":"YulTypedName","src":"1828:4:101","type":""}],"src":"1735:222:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2393:66:101","nodeType":"YulBlock","src":"2393:66:101","statements":[{"nativeSrc":"2403:50:101","nodeType":"YulAssignment","src":"2403:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2447:5:101","nodeType":"YulIdentifier","src":"2447:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2416:30:101","nodeType":"YulIdentifier","src":"2416:30:101"},"nativeSrc":"2416:37:101","nodeType":"YulFunctionCall","src":"2416:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2403:9:101","nodeType":"YulIdentifier","src":"2403:9:101"}]}]},"name":"convert_t_contract$_OracleInterface_$3666_to_t_address","nativeSrc":"2309:150:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2373:5:101","nodeType":"YulTypedName","src":"2373:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2383:9:101","nodeType":"YulTypedName","src":"2383:9:101","type":""}],"src":"2309:150:101"},{"body":{"nativeSrc":"2554:90:101","nodeType":"YulBlock","src":"2554:90:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2571:3:101","nodeType":"YulIdentifier","src":"2571:3:101"},{"arguments":[{"name":"value","nativeSrc":"2631:5:101","nodeType":"YulIdentifier","src":"2631:5:101"}],"functionName":{"name":"convert_t_contract$_OracleInterface_$3666_to_t_address","nativeSrc":"2576:54:101","nodeType":"YulIdentifier","src":"2576:54:101"},"nativeSrc":"2576:61:101","nodeType":"YulFunctionCall","src":"2576:61:101"}],"functionName":{"name":"mstore","nativeSrc":"2564:6:101","nodeType":"YulIdentifier","src":"2564:6:101"},"nativeSrc":"2564:74:101","nodeType":"YulFunctionCall","src":"2564:74:101"},"nativeSrc":"2564:74:101","nodeType":"YulExpressionStatement","src":"2564:74:101"}]},"name":"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack","nativeSrc":"2465:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2542:5:101","nodeType":"YulTypedName","src":"2542:5:101","type":""},{"name":"pos","nativeSrc":"2549:3:101","nodeType":"YulTypedName","src":"2549:3:101","type":""}],"src":"2465:179:101"},{"body":{"nativeSrc":"2772:148:101","nodeType":"YulBlock","src":"2772:148:101","statements":[{"nativeSrc":"2782:26:101","nodeType":"YulAssignment","src":"2782:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2794:9:101","nodeType":"YulIdentifier","src":"2794:9:101"},{"kind":"number","nativeSrc":"2805:2:101","nodeType":"YulLiteral","src":"2805:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2790:3:101","nodeType":"YulIdentifier","src":"2790:3:101"},"nativeSrc":"2790:18:101","nodeType":"YulFunctionCall","src":"2790:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2782:4:101","nodeType":"YulIdentifier","src":"2782:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2886:6:101","nodeType":"YulIdentifier","src":"2886:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2899:9:101","nodeType":"YulIdentifier","src":"2899:9:101"},{"kind":"number","nativeSrc":"2910:1:101","nodeType":"YulLiteral","src":"2910:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2895:3:101","nodeType":"YulIdentifier","src":"2895:3:101"},"nativeSrc":"2895:17:101","nodeType":"YulFunctionCall","src":"2895:17:101"}],"functionName":{"name":"abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack","nativeSrc":"2818:67:101","nodeType":"YulIdentifier","src":"2818:67:101"},"nativeSrc":"2818:95:101","nodeType":"YulFunctionCall","src":"2818:95:101"},"nativeSrc":"2818:95:101","nodeType":"YulExpressionStatement","src":"2818:95:101"}]},"name":"abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed","nativeSrc":"2650:270:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2744:9:101","nodeType":"YulTypedName","src":"2744:9:101","type":""},{"name":"value0","nativeSrc":"2756:6:101","nodeType":"YulTypedName","src":"2756:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2767:4:101","nodeType":"YulTypedName","src":"2767:4:101","type":""}],"src":"2650:270:101"},{"body":{"nativeSrc":"3001:66:101","nodeType":"YulBlock","src":"3001:66:101","statements":[{"nativeSrc":"3011:50:101","nodeType":"YulAssignment","src":"3011:50:101","value":{"arguments":[{"name":"value","nativeSrc":"3055:5:101","nodeType":"YulIdentifier","src":"3055:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3024:30:101","nodeType":"YulIdentifier","src":"3024:30:101"},"nativeSrc":"3024:37:101","nodeType":"YulFunctionCall","src":"3024:37:101"},"variableNames":[{"name":"converted","nativeSrc":"3011:9:101","nodeType":"YulIdentifier","src":"3011:9:101"}]}]},"name":"convert_t_contract$_IStETH_$3610_to_t_address","nativeSrc":"2926:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2981:5:101","nodeType":"YulTypedName","src":"2981:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2991:9:101","nodeType":"YulTypedName","src":"2991:9:101","type":""}],"src":"2926:141:101"},{"body":{"nativeSrc":"3153:81:101","nodeType":"YulBlock","src":"3153:81:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3170:3:101","nodeType":"YulIdentifier","src":"3170:3:101"},{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"convert_t_contract$_IStETH_$3610_to_t_address","nativeSrc":"3175:45:101","nodeType":"YulIdentifier","src":"3175:45:101"},"nativeSrc":"3175:52:101","nodeType":"YulFunctionCall","src":"3175:52:101"}],"functionName":{"name":"mstore","nativeSrc":"3163:6:101","nodeType":"YulIdentifier","src":"3163:6:101"},"nativeSrc":"3163:65:101","nodeType":"YulFunctionCall","src":"3163:65:101"},"nativeSrc":"3163:65:101","nodeType":"YulExpressionStatement","src":"3163:65:101"}]},"name":"abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack","nativeSrc":"3073:161:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3141:5:101","nodeType":"YulTypedName","src":"3141:5:101","type":""},{"name":"pos","nativeSrc":"3148:3:101","nodeType":"YulTypedName","src":"3148:3:101","type":""}],"src":"3073:161:101"},{"body":{"nativeSrc":"3353:139:101","nodeType":"YulBlock","src":"3353:139:101","statements":[{"nativeSrc":"3363:26:101","nodeType":"YulAssignment","src":"3363:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3375:9:101","nodeType":"YulIdentifier","src":"3375:9:101"},{"kind":"number","nativeSrc":"3386:2:101","nodeType":"YulLiteral","src":"3386:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3371:3:101","nodeType":"YulIdentifier","src":"3371:3:101"},"nativeSrc":"3371:18:101","nodeType":"YulFunctionCall","src":"3371:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3363:4:101","nodeType":"YulIdentifier","src":"3363:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3458:6:101","nodeType":"YulIdentifier","src":"3458:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3471:9:101","nodeType":"YulIdentifier","src":"3471:9:101"},{"kind":"number","nativeSrc":"3482:1:101","nodeType":"YulLiteral","src":"3482:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3467:3:101","nodeType":"YulIdentifier","src":"3467:3:101"},"nativeSrc":"3467:17:101","nodeType":"YulFunctionCall","src":"3467:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack","nativeSrc":"3399:58:101","nodeType":"YulIdentifier","src":"3399:58:101"},"nativeSrc":"3399:86:101","nodeType":"YulFunctionCall","src":"3399:86:101"},"nativeSrc":"3399:86:101","nodeType":"YulExpressionStatement","src":"3399:86:101"}]},"name":"abi_encode_tuple_t_contract$_IStETH_$3610__to_t_address__fromStack_reversed","nativeSrc":"3240:252:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3325:9:101","nodeType":"YulTypedName","src":"3325:9:101","type":""},{"name":"value0","nativeSrc":"3337:6:101","nodeType":"YulTypedName","src":"3337:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3348:4:101","nodeType":"YulTypedName","src":"3348:4:101","type":""}],"src":"3240:252:101"},{"body":{"nativeSrc":"3540:48:101","nodeType":"YulBlock","src":"3540:48:101","statements":[{"nativeSrc":"3550:32:101","nodeType":"YulAssignment","src":"3550:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3575:5:101","nodeType":"YulIdentifier","src":"3575:5:101"}],"functionName":{"name":"iszero","nativeSrc":"3568:6:101","nodeType":"YulIdentifier","src":"3568:6:101"},"nativeSrc":"3568:13:101","nodeType":"YulFunctionCall","src":"3568:13:101"}],"functionName":{"name":"iszero","nativeSrc":"3561:6:101","nodeType":"YulIdentifier","src":"3561:6:101"},"nativeSrc":"3561:21:101","nodeType":"YulFunctionCall","src":"3561:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3550:7:101","nodeType":"YulIdentifier","src":"3550:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"3498:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3522:5:101","nodeType":"YulTypedName","src":"3522:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3532:7:101","nodeType":"YulTypedName","src":"3532:7:101","type":""}],"src":"3498:90:101"},{"body":{"nativeSrc":"3653:50:101","nodeType":"YulBlock","src":"3653:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},{"arguments":[{"name":"value","nativeSrc":"3690:5:101","nodeType":"YulIdentifier","src":"3690:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3675:14:101","nodeType":"YulIdentifier","src":"3675:14:101"},"nativeSrc":"3675:21:101","nodeType":"YulFunctionCall","src":"3675:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3663:6:101","nodeType":"YulIdentifier","src":"3663:6:101"},"nativeSrc":"3663:34:101","nodeType":"YulFunctionCall","src":"3663:34:101"},"nativeSrc":"3663:34:101","nodeType":"YulExpressionStatement","src":"3663:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3594:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3641:5:101","nodeType":"YulTypedName","src":"3641:5:101","type":""},{"name":"pos","nativeSrc":"3648:3:101","nodeType":"YulTypedName","src":"3648:3:101","type":""}],"src":"3594:109:101"},{"body":{"nativeSrc":"3801:118:101","nodeType":"YulBlock","src":"3801:118:101","statements":[{"nativeSrc":"3811:26:101","nodeType":"YulAssignment","src":"3811:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3823:9:101","nodeType":"YulIdentifier","src":"3823:9:101"},{"kind":"number","nativeSrc":"3834:2:101","nodeType":"YulLiteral","src":"3834:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3819:3:101","nodeType":"YulIdentifier","src":"3819:3:101"},"nativeSrc":"3819:18:101","nodeType":"YulFunctionCall","src":"3819:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3811:4:101","nodeType":"YulIdentifier","src":"3811:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3885:6:101","nodeType":"YulIdentifier","src":"3885:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3898:9:101","nodeType":"YulIdentifier","src":"3898:9:101"},{"kind":"number","nativeSrc":"3909:1:101","nodeType":"YulLiteral","src":"3909:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3894:3:101","nodeType":"YulIdentifier","src":"3894:3:101"},"nativeSrc":"3894:17:101","nodeType":"YulFunctionCall","src":"3894:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3847:37:101","nodeType":"YulIdentifier","src":"3847:37:101"},"nativeSrc":"3847:65:101","nodeType":"YulFunctionCall","src":"3847:65:101"},"nativeSrc":"3847:65:101","nodeType":"YulExpressionStatement","src":"3847:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3709:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3773:9:101","nodeType":"YulTypedName","src":"3773:9:101","type":""},{"name":"value0","nativeSrc":"3785:6:101","nodeType":"YulTypedName","src":"3785:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3796:4:101","nodeType":"YulTypedName","src":"3796:4:101","type":""}],"src":"3709:210:101"},{"body":{"nativeSrc":"4021:73:101","nodeType":"YulBlock","src":"4021:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4038:3:101","nodeType":"YulIdentifier","src":"4038:3:101"},{"name":"length","nativeSrc":"4043:6:101","nodeType":"YulIdentifier","src":"4043:6:101"}],"functionName":{"name":"mstore","nativeSrc":"4031:6:101","nodeType":"YulIdentifier","src":"4031:6:101"},"nativeSrc":"4031:19:101","nodeType":"YulFunctionCall","src":"4031:19:101"},"nativeSrc":"4031:19:101","nodeType":"YulExpressionStatement","src":"4031:19:101"},{"nativeSrc":"4059:29:101","nodeType":"YulAssignment","src":"4059:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"4078:3:101","nodeType":"YulIdentifier","src":"4078:3:101"},{"kind":"number","nativeSrc":"4083:4:101","nodeType":"YulLiteral","src":"4083:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4074:3:101","nodeType":"YulIdentifier","src":"4074:3:101"},"nativeSrc":"4074:14:101","nodeType":"YulFunctionCall","src":"4074:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"4059:11:101","nodeType":"YulIdentifier","src":"4059:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3925:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3993:3:101","nodeType":"YulTypedName","src":"3993:3:101","type":""},{"name":"length","nativeSrc":"3998:6:101","nodeType":"YulTypedName","src":"3998:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4009:11:101","nodeType":"YulTypedName","src":"4009:11:101","type":""}],"src":"3925:169:101"},{"body":{"nativeSrc":"4206:64:101","nodeType":"YulBlock","src":"4206:64:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4228:6:101","nodeType":"YulIdentifier","src":"4228:6:101"},{"kind":"number","nativeSrc":"4236:1:101","nodeType":"YulLiteral","src":"4236:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4224:3:101","nodeType":"YulIdentifier","src":"4224:3:101"},"nativeSrc":"4224:14:101","nodeType":"YulFunctionCall","src":"4224:14:101"},{"hexValue":"77726f6e67207773744554482061646472657373","kind":"string","nativeSrc":"4240:22:101","nodeType":"YulLiteral","src":"4240:22:101","type":"","value":"wrong wstETH address"}],"functionName":{"name":"mstore","nativeSrc":"4217:6:101","nodeType":"YulIdentifier","src":"4217:6:101"},"nativeSrc":"4217:46:101","nodeType":"YulFunctionCall","src":"4217:46:101"},"nativeSrc":"4217:46:101","nodeType":"YulExpressionStatement","src":"4217:46:101"}]},"name":"store_literal_in_memory_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f","nativeSrc":"4100:170:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4198:6:101","nodeType":"YulTypedName","src":"4198:6:101","type":""}],"src":"4100:170:101"},{"body":{"nativeSrc":"4422:220:101","nodeType":"YulBlock","src":"4422:220:101","statements":[{"nativeSrc":"4432:74:101","nodeType":"YulAssignment","src":"4432:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"4498:3:101","nodeType":"YulIdentifier","src":"4498:3:101"},{"kind":"number","nativeSrc":"4503:2:101","nodeType":"YulLiteral","src":"4503:2:101","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4439:58:101","nodeType":"YulIdentifier","src":"4439:58:101"},"nativeSrc":"4439:67:101","nodeType":"YulFunctionCall","src":"4439:67:101"},"variableNames":[{"name":"pos","nativeSrc":"4432:3:101","nodeType":"YulIdentifier","src":"4432:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4604:3:101","nodeType":"YulIdentifier","src":"4604:3:101"}],"functionName":{"name":"store_literal_in_memory_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f","nativeSrc":"4515:88:101","nodeType":"YulIdentifier","src":"4515:88:101"},"nativeSrc":"4515:93:101","nodeType":"YulFunctionCall","src":"4515:93:101"},"nativeSrc":"4515:93:101","nodeType":"YulExpressionStatement","src":"4515:93:101"},{"nativeSrc":"4617:19:101","nodeType":"YulAssignment","src":"4617:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"4628:3:101","nodeType":"YulIdentifier","src":"4628:3:101"},{"kind":"number","nativeSrc":"4633:2:101","nodeType":"YulLiteral","src":"4633:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4624:3:101","nodeType":"YulIdentifier","src":"4624:3:101"},"nativeSrc":"4624:12:101","nodeType":"YulFunctionCall","src":"4624:12:101"},"variableNames":[{"name":"end","nativeSrc":"4617:3:101","nodeType":"YulIdentifier","src":"4617:3:101"}]}]},"name":"abi_encode_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f_to_t_string_memory_ptr_fromStack","nativeSrc":"4276:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4410:3:101","nodeType":"YulTypedName","src":"4410:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4418:3:101","nodeType":"YulTypedName","src":"4418:3:101","type":""}],"src":"4276:366:101"},{"body":{"nativeSrc":"4819:248:101","nodeType":"YulBlock","src":"4819:248:101","statements":[{"nativeSrc":"4829:26:101","nodeType":"YulAssignment","src":"4829:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4841:9:101","nodeType":"YulIdentifier","src":"4841:9:101"},{"kind":"number","nativeSrc":"4852:2:101","nodeType":"YulLiteral","src":"4852:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4837:3:101","nodeType":"YulIdentifier","src":"4837:3:101"},"nativeSrc":"4837:18:101","nodeType":"YulFunctionCall","src":"4837:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4829:4:101","nodeType":"YulIdentifier","src":"4829:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4876:9:101","nodeType":"YulIdentifier","src":"4876:9:101"},{"kind":"number","nativeSrc":"4887:1:101","nodeType":"YulLiteral","src":"4887:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4872:3:101","nodeType":"YulIdentifier","src":"4872:3:101"},"nativeSrc":"4872:17:101","nodeType":"YulFunctionCall","src":"4872:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4895:4:101","nodeType":"YulIdentifier","src":"4895:4:101"},{"name":"headStart","nativeSrc":"4901:9:101","nodeType":"YulIdentifier","src":"4901:9:101"}],"functionName":{"name":"sub","nativeSrc":"4891:3:101","nodeType":"YulIdentifier","src":"4891:3:101"},"nativeSrc":"4891:20:101","nodeType":"YulFunctionCall","src":"4891:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4865:6:101","nodeType":"YulIdentifier","src":"4865:6:101"},"nativeSrc":"4865:47:101","nodeType":"YulFunctionCall","src":"4865:47:101"},"nativeSrc":"4865:47:101","nodeType":"YulExpressionStatement","src":"4865:47:101"},{"nativeSrc":"4921:139:101","nodeType":"YulAssignment","src":"4921:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5055:4:101","nodeType":"YulIdentifier","src":"5055:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f_to_t_string_memory_ptr_fromStack","nativeSrc":"4929:124:101","nodeType":"YulIdentifier","src":"4929:124:101"},"nativeSrc":"4929:131:101","nodeType":"YulFunctionCall","src":"4929:131:101"},"variableNames":[{"name":"tail","nativeSrc":"4921:4:101","nodeType":"YulIdentifier","src":"4921:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4648:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4799:9:101","nodeType":"YulTypedName","src":"4799:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4814:4:101","nodeType":"YulTypedName","src":"4814:4:101","type":""}],"src":"4648:419:101"},{"body":{"nativeSrc":"5144:32:101","nodeType":"YulBlock","src":"5144:32:101","statements":[{"nativeSrc":"5154:16:101","nodeType":"YulAssignment","src":"5154:16:101","value":{"name":"value","nativeSrc":"5165:5:101","nodeType":"YulIdentifier","src":"5165:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5154:7:101","nodeType":"YulIdentifier","src":"5154:7:101"}]}]},"name":"cleanup_t_rational_1000000000000000000_by_1","nativeSrc":"5073:103:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5126:5:101","nodeType":"YulTypedName","src":"5126:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5136:7:101","nodeType":"YulTypedName","src":"5136:7:101","type":""}],"src":"5073:103:101"},{"body":{"nativeSrc":"5268:108:101","nodeType":"YulBlock","src":"5268:108:101","statements":[{"nativeSrc":"5278:92:101","nodeType":"YulAssignment","src":"5278:92:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5362:5:101","nodeType":"YulIdentifier","src":"5362:5:101"}],"functionName":{"name":"cleanup_t_rational_1000000000000000000_by_1","nativeSrc":"5318:43:101","nodeType":"YulIdentifier","src":"5318:43:101"},"nativeSrc":"5318:50:101","nodeType":"YulFunctionCall","src":"5318:50:101"}],"functionName":{"name":"identity","nativeSrc":"5309:8:101","nodeType":"YulIdentifier","src":"5309:8:101"},"nativeSrc":"5309:60:101","nodeType":"YulFunctionCall","src":"5309:60:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5291:17:101","nodeType":"YulIdentifier","src":"5291:17:101"},"nativeSrc":"5291:79:101","nodeType":"YulFunctionCall","src":"5291:79:101"},"variableNames":[{"name":"converted","nativeSrc":"5278:9:101","nodeType":"YulIdentifier","src":"5278:9:101"}]}]},"name":"convert_t_rational_1000000000000000000_by_1_to_t_uint256","nativeSrc":"5182:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5248:5:101","nodeType":"YulTypedName","src":"5248:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5258:9:101","nodeType":"YulTypedName","src":"5258:9:101","type":""}],"src":"5182:194:101"},{"body":{"nativeSrc":"5473:92:101","nodeType":"YulBlock","src":"5473:92:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5490:3:101","nodeType":"YulIdentifier","src":"5490:3:101"},{"arguments":[{"name":"value","nativeSrc":"5552:5:101","nodeType":"YulIdentifier","src":"5552:5:101"}],"functionName":{"name":"convert_t_rational_1000000000000000000_by_1_to_t_uint256","nativeSrc":"5495:56:101","nodeType":"YulIdentifier","src":"5495:56:101"},"nativeSrc":"5495:63:101","nodeType":"YulFunctionCall","src":"5495:63:101"}],"functionName":{"name":"mstore","nativeSrc":"5483:6:101","nodeType":"YulIdentifier","src":"5483:6:101"},"nativeSrc":"5483:76:101","nodeType":"YulFunctionCall","src":"5483:76:101"},"nativeSrc":"5483:76:101","nodeType":"YulExpressionStatement","src":"5483:76:101"}]},"name":"abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack","nativeSrc":"5382:183:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5461:5:101","nodeType":"YulTypedName","src":"5461:5:101","type":""},{"name":"pos","nativeSrc":"5468:3:101","nodeType":"YulTypedName","src":"5468:3:101","type":""}],"src":"5382:183:101"},{"body":{"nativeSrc":"5695:150:101","nodeType":"YulBlock","src":"5695:150:101","statements":[{"nativeSrc":"5705:26:101","nodeType":"YulAssignment","src":"5705:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5717:9:101","nodeType":"YulIdentifier","src":"5717:9:101"},{"kind":"number","nativeSrc":"5728:2:101","nodeType":"YulLiteral","src":"5728:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5713:3:101","nodeType":"YulIdentifier","src":"5713:3:101"},"nativeSrc":"5713:18:101","nodeType":"YulFunctionCall","src":"5713:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5705:4:101","nodeType":"YulIdentifier","src":"5705:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5811:6:101","nodeType":"YulIdentifier","src":"5811:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5824:9:101","nodeType":"YulIdentifier","src":"5824:9:101"},{"kind":"number","nativeSrc":"5835:1:101","nodeType":"YulLiteral","src":"5835:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5820:3:101","nodeType":"YulIdentifier","src":"5820:3:101"},"nativeSrc":"5820:17:101","nodeType":"YulFunctionCall","src":"5820:17:101"}],"functionName":{"name":"abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack","nativeSrc":"5741:69:101","nodeType":"YulIdentifier","src":"5741:69:101"},"nativeSrc":"5741:97:101","nodeType":"YulFunctionCall","src":"5741:97:101"},"nativeSrc":"5741:97:101","nodeType":"YulExpressionStatement","src":"5741:97:101"}]},"name":"abi_encode_tuple_t_rational_1000000000000000000_by_1__to_t_uint256__fromStack_reversed","nativeSrc":"5571:274:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5667:9:101","nodeType":"YulTypedName","src":"5667:9:101","type":""},{"name":"value0","nativeSrc":"5679:6:101","nodeType":"YulTypedName","src":"5679:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5690:4:101","nodeType":"YulTypedName","src":"5690:4:101","type":""}],"src":"5571:274:101"},{"body":{"nativeSrc":"5894:79:101","nodeType":"YulBlock","src":"5894:79:101","statements":[{"body":{"nativeSrc":"5951:16:101","nodeType":"YulBlock","src":"5951:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5960:1:101","nodeType":"YulLiteral","src":"5960:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5963:1:101","nodeType":"YulLiteral","src":"5963:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5953:6:101","nodeType":"YulIdentifier","src":"5953:6:101"},"nativeSrc":"5953:12:101","nodeType":"YulFunctionCall","src":"5953:12:101"},"nativeSrc":"5953:12:101","nodeType":"YulExpressionStatement","src":"5953:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5917:5:101","nodeType":"YulIdentifier","src":"5917:5:101"},{"arguments":[{"name":"value","nativeSrc":"5942:5:101","nodeType":"YulIdentifier","src":"5942:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5924:17:101","nodeType":"YulIdentifier","src":"5924:17:101"},"nativeSrc":"5924:24:101","nodeType":"YulFunctionCall","src":"5924:24:101"}],"functionName":{"name":"eq","nativeSrc":"5914:2:101","nodeType":"YulIdentifier","src":"5914:2:101"},"nativeSrc":"5914:35:101","nodeType":"YulFunctionCall","src":"5914:35:101"}],"functionName":{"name":"iszero","nativeSrc":"5907:6:101","nodeType":"YulIdentifier","src":"5907:6:101"},"nativeSrc":"5907:43:101","nodeType":"YulFunctionCall","src":"5907:43:101"},"nativeSrc":"5904:63:101","nodeType":"YulIf","src":"5904:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"5851:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5887:5:101","nodeType":"YulTypedName","src":"5887:5:101","type":""}],"src":"5851:122:101"},{"body":{"nativeSrc":"6042:80:101","nodeType":"YulBlock","src":"6042:80:101","statements":[{"nativeSrc":"6052:22:101","nodeType":"YulAssignment","src":"6052:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6067:6:101","nodeType":"YulIdentifier","src":"6067:6:101"}],"functionName":{"name":"mload","nativeSrc":"6061:5:101","nodeType":"YulIdentifier","src":"6061:5:101"},"nativeSrc":"6061:13:101","nodeType":"YulFunctionCall","src":"6061:13:101"},"variableNames":[{"name":"value","nativeSrc":"6052:5:101","nodeType":"YulIdentifier","src":"6052:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6110:5:101","nodeType":"YulIdentifier","src":"6110:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6083:26:101","nodeType":"YulIdentifier","src":"6083:26:101"},"nativeSrc":"6083:33:101","nodeType":"YulFunctionCall","src":"6083:33:101"},"nativeSrc":"6083:33:101","nodeType":"YulExpressionStatement","src":"6083:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"5979:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6020:6:101","nodeType":"YulTypedName","src":"6020:6:101","type":""},{"name":"end","nativeSrc":"6028:3:101","nodeType":"YulTypedName","src":"6028:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6036:5:101","nodeType":"YulTypedName","src":"6036:5:101","type":""}],"src":"5979:143:101"},{"body":{"nativeSrc":"6205:274:101","nodeType":"YulBlock","src":"6205:274:101","statements":[{"body":{"nativeSrc":"6251:83:101","nodeType":"YulBlock","src":"6251:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6253:77:101","nodeType":"YulIdentifier","src":"6253:77:101"},"nativeSrc":"6253:79:101","nodeType":"YulFunctionCall","src":"6253:79:101"},"nativeSrc":"6253:79:101","nodeType":"YulExpressionStatement","src":"6253:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6226:7:101","nodeType":"YulIdentifier","src":"6226:7:101"},{"name":"headStart","nativeSrc":"6235:9:101","nodeType":"YulIdentifier","src":"6235:9:101"}],"functionName":{"name":"sub","nativeSrc":"6222:3:101","nodeType":"YulIdentifier","src":"6222:3:101"},"nativeSrc":"6222:23:101","nodeType":"YulFunctionCall","src":"6222:23:101"},{"kind":"number","nativeSrc":"6247:2:101","nodeType":"YulLiteral","src":"6247:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6218:3:101","nodeType":"YulIdentifier","src":"6218:3:101"},"nativeSrc":"6218:32:101","nodeType":"YulFunctionCall","src":"6218:32:101"},"nativeSrc":"6215:119:101","nodeType":"YulIf","src":"6215:119:101"},{"nativeSrc":"6344:128:101","nodeType":"YulBlock","src":"6344:128:101","statements":[{"nativeSrc":"6359:15:101","nodeType":"YulVariableDeclaration","src":"6359:15:101","value":{"kind":"number","nativeSrc":"6373:1:101","nodeType":"YulLiteral","src":"6373:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6363:6:101","nodeType":"YulTypedName","src":"6363:6:101","type":""}]},{"nativeSrc":"6388:74:101","nodeType":"YulAssignment","src":"6388:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6434:9:101","nodeType":"YulIdentifier","src":"6434:9:101"},{"name":"offset","nativeSrc":"6445:6:101","nodeType":"YulIdentifier","src":"6445:6:101"}],"functionName":{"name":"add","nativeSrc":"6430:3:101","nodeType":"YulIdentifier","src":"6430:3:101"},"nativeSrc":"6430:22:101","nodeType":"YulFunctionCall","src":"6430:22:101"},{"name":"dataEnd","nativeSrc":"6454:7:101","nodeType":"YulIdentifier","src":"6454:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6398:31:101","nodeType":"YulIdentifier","src":"6398:31:101"},"nativeSrc":"6398:64:101","nodeType":"YulFunctionCall","src":"6398:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6388:6:101","nodeType":"YulIdentifier","src":"6388:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6128:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6175:9:101","nodeType":"YulTypedName","src":"6175:9:101","type":""},{"name":"dataEnd","nativeSrc":"6186:7:101","nodeType":"YulTypedName","src":"6186:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6198:6:101","nodeType":"YulTypedName","src":"6198:6:101","type":""}],"src":"6128:351:101"},{"body":{"nativeSrc":"6513:152:101","nodeType":"YulBlock","src":"6513:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6530:1:101","nodeType":"YulLiteral","src":"6530:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6533:77:101","nodeType":"YulLiteral","src":"6533:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6523:6:101","nodeType":"YulIdentifier","src":"6523:6:101"},"nativeSrc":"6523:88:101","nodeType":"YulFunctionCall","src":"6523:88:101"},"nativeSrc":"6523:88:101","nodeType":"YulExpressionStatement","src":"6523:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6627:1:101","nodeType":"YulLiteral","src":"6627:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6630:4:101","nodeType":"YulLiteral","src":"6630:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6620:6:101","nodeType":"YulIdentifier","src":"6620:6:101"},"nativeSrc":"6620:15:101","nodeType":"YulFunctionCall","src":"6620:15:101"},"nativeSrc":"6620:15:101","nodeType":"YulExpressionStatement","src":"6620:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6651:1:101","nodeType":"YulLiteral","src":"6651:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6654:4:101","nodeType":"YulLiteral","src":"6654:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6644:6:101","nodeType":"YulIdentifier","src":"6644:6:101"},"nativeSrc":"6644:15:101","nodeType":"YulFunctionCall","src":"6644:15:101"},"nativeSrc":"6644:15:101","nodeType":"YulExpressionStatement","src":"6644:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6485:180:101","nodeType":"YulFunctionDefinition","src":"6485:180:101"},{"body":{"nativeSrc":"6719:362:101","nodeType":"YulBlock","src":"6719:362:101","statements":[{"nativeSrc":"6729:25:101","nodeType":"YulAssignment","src":"6729:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6752:1:101","nodeType":"YulIdentifier","src":"6752:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6734:17:101","nodeType":"YulIdentifier","src":"6734:17:101"},"nativeSrc":"6734:20:101","nodeType":"YulFunctionCall","src":"6734:20:101"},"variableNames":[{"name":"x","nativeSrc":"6729:1:101","nodeType":"YulIdentifier","src":"6729:1:101"}]},{"nativeSrc":"6763:25:101","nodeType":"YulAssignment","src":"6763:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6786:1:101","nodeType":"YulIdentifier","src":"6786:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6768:17:101","nodeType":"YulIdentifier","src":"6768:17:101"},"nativeSrc":"6768:20:101","nodeType":"YulFunctionCall","src":"6768:20:101"},"variableNames":[{"name":"y","nativeSrc":"6763:1:101","nodeType":"YulIdentifier","src":"6763:1:101"}]},{"nativeSrc":"6797:28:101","nodeType":"YulVariableDeclaration","src":"6797:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6820:1:101","nodeType":"YulIdentifier","src":"6820:1:101"},{"name":"y","nativeSrc":"6823:1:101","nodeType":"YulIdentifier","src":"6823:1:101"}],"functionName":{"name":"mul","nativeSrc":"6816:3:101","nodeType":"YulIdentifier","src":"6816:3:101"},"nativeSrc":"6816:9:101","nodeType":"YulFunctionCall","src":"6816:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6801:11:101","nodeType":"YulTypedName","src":"6801:11:101","type":""}]},{"nativeSrc":"6834:41:101","nodeType":"YulAssignment","src":"6834:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6863:11:101","nodeType":"YulIdentifier","src":"6863:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6845:17:101","nodeType":"YulIdentifier","src":"6845:17:101"},"nativeSrc":"6845:30:101","nodeType":"YulFunctionCall","src":"6845:30:101"},"variableNames":[{"name":"product","nativeSrc":"6834:7:101","nodeType":"YulIdentifier","src":"6834:7:101"}]},{"body":{"nativeSrc":"7052:22:101","nodeType":"YulBlock","src":"7052:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7054:16:101","nodeType":"YulIdentifier","src":"7054:16:101"},"nativeSrc":"7054:18:101","nodeType":"YulFunctionCall","src":"7054:18:101"},"nativeSrc":"7054:18:101","nodeType":"YulExpressionStatement","src":"7054:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6985:1:101","nodeType":"YulIdentifier","src":"6985:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6978:6:101","nodeType":"YulIdentifier","src":"6978:6:101"},"nativeSrc":"6978:9:101","nodeType":"YulFunctionCall","src":"6978:9:101"},{"arguments":[{"name":"y","nativeSrc":"7008:1:101","nodeType":"YulIdentifier","src":"7008:1:101"},{"arguments":[{"name":"product","nativeSrc":"7015:7:101","nodeType":"YulIdentifier","src":"7015:7:101"},{"name":"x","nativeSrc":"7024:1:101","nodeType":"YulIdentifier","src":"7024:1:101"}],"functionName":{"name":"div","nativeSrc":"7011:3:101","nodeType":"YulIdentifier","src":"7011:3:101"},"nativeSrc":"7011:15:101","nodeType":"YulFunctionCall","src":"7011:15:101"}],"functionName":{"name":"eq","nativeSrc":"7005:2:101","nodeType":"YulIdentifier","src":"7005:2:101"},"nativeSrc":"7005:22:101","nodeType":"YulFunctionCall","src":"7005:22:101"}],"functionName":{"name":"or","nativeSrc":"6958:2:101","nodeType":"YulIdentifier","src":"6958:2:101"},"nativeSrc":"6958:83:101","nodeType":"YulFunctionCall","src":"6958:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6938:6:101","nodeType":"YulIdentifier","src":"6938:6:101"},"nativeSrc":"6938:113:101","nodeType":"YulFunctionCall","src":"6938:113:101"},"nativeSrc":"6935:139:101","nodeType":"YulIf","src":"6935:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"6671:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6702:1:101","nodeType":"YulTypedName","src":"6702:1:101","type":""},{"name":"y","nativeSrc":"6705:1:101","nodeType":"YulTypedName","src":"6705:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6711:7:101","nodeType":"YulTypedName","src":"6711:7:101","type":""}],"src":"6671:410:101"},{"body":{"nativeSrc":"7115:152:101","nodeType":"YulBlock","src":"7115:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7132:1:101","nodeType":"YulLiteral","src":"7132:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7135:77:101","nodeType":"YulLiteral","src":"7135:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7125:6:101","nodeType":"YulIdentifier","src":"7125:6:101"},"nativeSrc":"7125:88:101","nodeType":"YulFunctionCall","src":"7125:88:101"},"nativeSrc":"7125:88:101","nodeType":"YulExpressionStatement","src":"7125:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7229:1:101","nodeType":"YulLiteral","src":"7229:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"7232:4:101","nodeType":"YulLiteral","src":"7232:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7222:6:101","nodeType":"YulIdentifier","src":"7222:6:101"},"nativeSrc":"7222:15:101","nodeType":"YulFunctionCall","src":"7222:15:101"},"nativeSrc":"7222:15:101","nodeType":"YulExpressionStatement","src":"7222:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7253:1:101","nodeType":"YulLiteral","src":"7253:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7256:4:101","nodeType":"YulLiteral","src":"7256:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7246:6:101","nodeType":"YulIdentifier","src":"7246:6:101"},"nativeSrc":"7246:15:101","nodeType":"YulFunctionCall","src":"7246:15:101"},"nativeSrc":"7246:15:101","nodeType":"YulExpressionStatement","src":"7246:15:101"}]},"name":"panic_error_0x12","nativeSrc":"7087:180:101","nodeType":"YulFunctionDefinition","src":"7087:180:101"},{"body":{"nativeSrc":"7315:143:101","nodeType":"YulBlock","src":"7315:143:101","statements":[{"nativeSrc":"7325:25:101","nodeType":"YulAssignment","src":"7325:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7348:1:101","nodeType":"YulIdentifier","src":"7348:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7330:17:101","nodeType":"YulIdentifier","src":"7330:17:101"},"nativeSrc":"7330:20:101","nodeType":"YulFunctionCall","src":"7330:20:101"},"variableNames":[{"name":"x","nativeSrc":"7325:1:101","nodeType":"YulIdentifier","src":"7325:1:101"}]},{"nativeSrc":"7359:25:101","nodeType":"YulAssignment","src":"7359:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7382:1:101","nodeType":"YulIdentifier","src":"7382:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7364:17:101","nodeType":"YulIdentifier","src":"7364:17:101"},"nativeSrc":"7364:20:101","nodeType":"YulFunctionCall","src":"7364:20:101"},"variableNames":[{"name":"y","nativeSrc":"7359:1:101","nodeType":"YulIdentifier","src":"7359:1:101"}]},{"body":{"nativeSrc":"7406:22:101","nodeType":"YulBlock","src":"7406:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"7408:16:101","nodeType":"YulIdentifier","src":"7408:16:101"},"nativeSrc":"7408:18:101","nodeType":"YulFunctionCall","src":"7408:18:101"},"nativeSrc":"7408:18:101","nodeType":"YulExpressionStatement","src":"7408:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"7403:1:101","nodeType":"YulIdentifier","src":"7403:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7396:6:101","nodeType":"YulIdentifier","src":"7396:6:101"},"nativeSrc":"7396:9:101","nodeType":"YulFunctionCall","src":"7396:9:101"},"nativeSrc":"7393:35:101","nodeType":"YulIf","src":"7393:35:101"},{"nativeSrc":"7438:14:101","nodeType":"YulAssignment","src":"7438:14:101","value":{"arguments":[{"name":"x","nativeSrc":"7447:1:101","nodeType":"YulIdentifier","src":"7447:1:101"},{"name":"y","nativeSrc":"7450:1:101","nodeType":"YulIdentifier","src":"7450:1:101"}],"functionName":{"name":"div","nativeSrc":"7443:3:101","nodeType":"YulIdentifier","src":"7443:3:101"},"nativeSrc":"7443:9:101","nodeType":"YulFunctionCall","src":"7443:9:101"},"variableNames":[{"name":"r","nativeSrc":"7438:1:101","nodeType":"YulIdentifier","src":"7438:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"7273:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7304:1:101","nodeType":"YulTypedName","src":"7304:1:101","type":""},{"name":"y","nativeSrc":"7307:1:101","nodeType":"YulTypedName","src":"7307:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"7313:1:101","nodeType":"YulTypedName","src":"7313:1:101","type":""}],"src":"7273:185:101"}]},"contents":"{\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_OracleInterface_$3666_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_OracleInterface_$3666_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_OracleInterface_$3666__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_OracleInterface_$3666_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IStETH_$3610_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IStETH_$3610_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IStETH_$3610__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f(memPtr) {\n\n        mstore(add(memPtr, 0), \"wrong wstETH address\")\n\n    }\n\n    function abi_encode_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7f4ee6f489f24e4a23fdff6c327f3c4a365051c092350012f3dd88138a1deb4f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1000000000000000000_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function convert_t_rational_1000000000000000000_by_1_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_rational_1000000000000000000_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1000000000000000000_by_1_to_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_rational_1000000000000000000_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6317":[{"length":32,"start":328},{"length":32,"start":667}],"6321":[{"length":32,"start":289},{"length":32,"start":491},{"length":32,"start":704}],"6324":[{"length":32,"start":166},{"length":32,"start":378}],"6327":[{"length":32,"start":105},{"length":32,"start":742}],"6331":[{"length":32,"start":237},{"length":32,"start":620}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063040141e51461006457806336e6372f146100a157806341976e09146100c8578063a4edcd4c146100e8578063e00bfe501461011c578063ed0142b714610143575b5f80fd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161009891906103a9565b60405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6100db6100d63660046103d8565b610177565b60405161009891906103fc565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100989190610449565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b61016a7f000000000000000000000000000000000000000000000000000000000000000081565b604051610098919061045f565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146101d25760405162461bcd60e51b81526004016101c99061046d565b60405180910390fd5b604051630f451f7160e31b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a28fb889061022890670de0b6b3a7640000906004016104b3565b602060405180830381865afa158015610243573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026791906104d2565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006102e4577f0000000000000000000000000000000000000000000000000000000000000000610306565b7f00000000000000000000000000000000000000000000000000000000000000005b6040518263ffffffff1660e01b815260040161032291906103a9565b602060405180830381865afa15801561033d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036191906104d2565b9050670de0b6b3a76400006103768284610504565b6103809190610537565b949350505050565b5f6001600160a01b0382165b92915050565b6103a381610388565b82525050565b60208101610394828461039a565b6103c081610388565b81146103ca575f80fd5b50565b8035610394816103b7565b5f602082840312156103eb576103eb5f80fd5b5f61038084846103cd565b806103a3565b6020810161039482846103f6565b5f6103946001600160a01b038316610420565b90565b6001600160a01b031690565b5f6103948261040a565b5f6103948261042c565b6103a381610436565b602081016103948284610440565b8015156103a3565b602081016103948284610457565b6020808252810161039481601481527377726f6e6720777374455448206164647265737360601b602082015260400190565b5f61039461041d8381565b6103a38161049f565b6020810161039482846104aa565b806103c0565b8051610394816104c1565b5f602082840312156104e5576104e55f80fd5b5f61038084846104c7565b634e487b7160e01b5f52601160045260245ffd5b81810280821583820485141761051c5761051c6104f0565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261054557610545610523565b50049056fea2646970667358221220e2f77c5495d50763705010b44fd126efcaff5a5e324cefe858483948b905895264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x60 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40141E5 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x36E6372F EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xE00BFE50 EQ PUSH2 0x11C JUMPI DUP1 PUSH4 0xED0142B7 EQ PUSH2 0x143 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x8B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8 JUMP JUMPDEST PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH2 0x10F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x449 JUMP JUMPDEST PUSH2 0x10F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x16A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x45F JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C9 SWAP1 PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF451F71 PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A28FB88 SWAP1 PUSH2 0x228 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x4B3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x243 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x267 SWAP2 SWAP1 PUSH2 0x4D2 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH2 0x2E4 JUMPI PUSH32 0x0 PUSH2 0x306 JUMP JUMPDEST PUSH32 0x0 JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x322 SWAP2 SWAP1 PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x361 SWAP2 SWAP1 PUSH2 0x4D2 JUMP JUMPDEST SWAP1 POP PUSH8 0xDE0B6B3A7640000 PUSH2 0x376 DUP3 DUP5 PUSH2 0x504 JUMP JUMPDEST PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x537 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x388 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x39A JUMP JUMPDEST PUSH2 0x3C0 DUP2 PUSH2 0x388 JUMP JUMPDEST DUP2 EQ PUSH2 0x3CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x394 DUP2 PUSH2 0x3B7 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EB JUMPI PUSH2 0x3EB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x380 DUP5 DUP5 PUSH2 0x3CD JUMP JUMPDEST DUP1 PUSH2 0x3A3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x3F6 JUMP JUMPDEST PUSH0 PUSH2 0x394 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x420 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x394 DUP3 PUSH2 0x40A JUMP JUMPDEST PUSH0 PUSH2 0x394 DUP3 PUSH2 0x42C JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x436 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x440 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3A3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x394 DUP2 PUSH1 0x14 DUP2 MSTORE PUSH20 0x77726F6E67207773744554482061646472657373 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x394 PUSH2 0x41D DUP4 DUP2 JUMP JUMPDEST PUSH2 0x3A3 DUP2 PUSH2 0x49F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x394 DUP3 DUP5 PUSH2 0x4AA JUMP JUMPDEST DUP1 PUSH2 0x3C0 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x394 DUP2 PUSH2 0x4C1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E5 JUMPI PUSH2 0x4E5 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x380 DUP5 DUP5 PUSH2 0x4C7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x51C JUMPI PUSH2 0x51C PUSH2 0x4F0 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x545 JUMPI PUSH2 0x545 PUSH2 0x523 JUMP JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 0xF7 PUSH29 0x5495D50763705010B44FD126EFCAFF5A5E324CEFE858483948B9058952 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"614:2493:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:37;;;;;;;;;;;;:::i;:::-;;;;;;;;1091:39;;;;;2526:579;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1389:49::-;;;;;;;;;;;;:::i;955:29::-;;;;;799:50;;;;;;;;;;;;:::i;2526:579::-;2580:7;2612:14;-1:-1:-1;;;;;2603:23:64;:5;-1:-1:-1;;;;;2603:23:64;;2599:59;;2628:30;;-1:-1:-1;;;2628:30:64;;;;;;;:::i;:::-;;;;;;;;2599:59;2747:35;;-1:-1:-1;;;2747:35:64;;2725:19;;-1:-1:-1;;;;;2747:5:64;:26;;;;:35;;2774:7;;2747:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2725:57;;2867:21;2891:16;-1:-1:-1;;;;;2891:25:64;;2917:28;:60;;2971:5;2917:60;;;2948:12;2917:60;2891:87;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2867:111;-1:-1:-1;186:4:17;3058:27:64;2867:111;3058:11;:27;:::i;:::-;3057:41;;;;:::i;:::-;3050:48;2526:579;-1:-1:-1;;;;2526:579:64:o;139:96:101:-;176:7;-1:-1:-1;;;;;73:54:101;;205:24;194:35;139:96;-1:-1:-1;;139:96:101:o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;496:2;481:18;;509:71;485:9;553:6;509:71;:::i;920:122::-;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1119:20;;1148:33;1119:20;1148:33;:::i;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;614:2493:64;;;1307:79:101;1427:1;1452:53;1497:7;1477:9;1452:53;:::i;1611:118::-;1716:5;1698:24;1528:77;1735:222;1866:2;1851:18;;1879:71;1855:9;1923:6;1879:71;:::i;2029:142::-;2079:9;2112:53;-1:-1:-1;;;;;73:54:101;;2130:34;1528:77;2139:24;1594:5;1528:77;2130:34;-1:-1:-1;;;;;73:54:101;;7:126;2177;2227:9;2260:37;2291:5;2260:37;:::i;2309:150::-;2383:9;2416:37;2447:5;2416:37;:::i;2465:179::-;2576:61;2631:5;2576:61;:::i;2650:270::-;2805:2;2790:18;;2818:95;2794:9;2886:6;2818:95;:::i;3594:109::-;3568:13;;3561:21;3675;3498:90;3709:210;3834:2;3819:18;;3847:65;3823:9;3885:6;3847:65;:::i;4648:419::-;4852:2;4865:47;;;4837:18;;4929:131;4837:18;4503:2;4031:19;;-1:-1:-1;;;4083:4:101;4074:14;;4217:46;4624:12;;;4276:366;5182:194;5258:9;5291:79;5309:60;5362:5;5309:60;1528:77;5382:183;5495:63;5552:5;5495:63;:::i;5571:274::-;5728:2;5713:18;;5741:97;5717:9;5811:6;5741:97;:::i;5851:122::-;5942:5;5924:24;1528:77;5979:143;6061:13;;6083:33;6061:13;6083:33;:::i;6128:351::-;6198:6;6247:2;6235:9;6226:7;6222:23;6218:32;6215:119;;;6253:79;614:2493:64;;;6253:79:101;6373:1;6398:64;6454:7;6434:9;6398:64;:::i;6485:180::-;-1:-1:-1;;;6530:1:101;6523:88;6630:4;6627:1;6620:15;6654:4;6651:1;6644:15;6671:410;6816:9;;;;6978;;7011:15;;;7005:22;;6958:83;6935:139;;7054:18;;:::i;:::-;6719:362;6671:410;;;;:::o;7087:180::-;-1:-1:-1;;;7132:1:101;7125:88;7232:4;7229:1;7222:15;7256:4;7253:1;7246:15;7273:185;7313:1;7403;7393:35;;7408:18;;:::i;:::-;-1:-1:-1;7443:9:101;;7273:185::o"},"gasEstimates":{"creation":{"codeDepositCost":"281600","executionCost":"infinite","totalCost":"infinite"},"external":{"ASSUME_STETH_ETH_EQUIVALENCE()":"infinite","RESILIENT_ORACLE()":"infinite","STETH()":"infinite","WETH_ADDRESS()":"infinite","WSTETH_ADDRESS()":"infinite","getPrice(address)":"infinite"}},"methodIdentifiers":{"ASSUME_STETH_ETH_EQUIVALENCE()":"ed0142b7","RESILIENT_ORACLE()":"a4edcd4c","STETH()":"e00bfe50","WETH_ADDRESS()":"040141e5","WSTETH_ADDRESS()":"36e6372f","getPrice(address)":"41976e09"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wstETHAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wETHAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stETHAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracleAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"assumeEquivalence\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ASSUME_STETH_ETH_EQUIVALENCE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract OracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STETH\",\"outputs\":[{\"internalType\":\"contract IStETH\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WSTETH_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getPrice(address)\":{\"details\":\"Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH      or the price of stETH/USD (secondary market price) is obtained from the oracle\",\"params\":{\"asset\":\"Address of wstETH\"},\"returns\":{\"_0\":\"wstETH Price in USD scaled by 1e18\"}}},\"stateVariables\":{\"ASSUME_STETH_ETH_EQUIVALENCE\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RESILIENT_ORACLE\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"STETH\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"WETH_ADDRESS\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"WSTETH_ADDRESS\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"WstETHOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"kind\":\"user\",\"methods\":{\"ASSUME_STETH_ETH_EQUIVALENCE()\":{\"notice\":\"A flag assuming 1:1 price equivalence between stETH/ETH\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"STETH()\":{\"notice\":\"Address of stETH\"},\"WETH_ADDRESS()\":{\"notice\":\"Address of WETH\"},\"WSTETH_ADDRESS()\":{\"notice\":\"Address of wstETH\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getPrice(address)\":{\"notice\":\"Gets the USD price of wstETH asset\"}},\"notice\":\"Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH         or the price of stETH/USD (secondary market price) is obtained from the oracle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/WstETHOracle.sol\":\"WstETHOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IStETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface IStETH {\\n    function getPooledEthByShares(uint256 _sharesAmount) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x9e7ee12d63a84081722469719e046d6791a087f33ab40804ff1ff40ab859d4d3\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/WstETHOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface } from \\\"../interfaces/OracleInterface.sol\\\";\\nimport { IStETH } from \\\"../interfaces/IStETH.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\n\\n/**\\n * @title WstETHOracle\\n * @author Venus\\n * @notice Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH\\n *         or the price of stETH/USD (secondary market price) is obtained from the oracle.\\n */\\ncontract WstETHOracle is OracleInterface {\\n    /// @notice A flag assuming 1:1 price equivalence between stETH/ETH\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    bool public immutable ASSUME_STETH_ETH_EQUIVALENCE;\\n\\n    /// @notice Address of stETH\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    IStETH public immutable STETH;\\n\\n    /// @notice Address of wstETH\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    address public immutable WSTETH_ADDRESS;\\n\\n    /// @notice Address of WETH\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    address public immutable WETH_ADDRESS;\\n\\n    /// @notice Address of Resilient Oracle\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    OracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Constructor for the implementation contract.\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor(\\n        address wstETHAddress,\\n        address wETHAddress,\\n        address stETHAddress,\\n        address resilientOracleAddress,\\n        bool assumeEquivalence\\n    ) {\\n        ensureNonzeroAddress(wstETHAddress);\\n        ensureNonzeroAddress(wETHAddress);\\n        ensureNonzeroAddress(stETHAddress);\\n        ensureNonzeroAddress(resilientOracleAddress);\\n        WSTETH_ADDRESS = wstETHAddress;\\n        WETH_ADDRESS = wETHAddress;\\n        STETH = IStETH(stETHAddress);\\n        RESILIENT_ORACLE = OracleInterface(resilientOracleAddress);\\n        ASSUME_STETH_ETH_EQUIVALENCE = assumeEquivalence;\\n    }\\n\\n    /**\\n     * @notice Gets the USD price of wstETH asset\\n     * @dev Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH\\n     *      or the price of stETH/USD (secondary market price) is obtained from the oracle\\n     * @param asset Address of wstETH\\n     * @return wstETH Price in USD scaled by 1e18\\n     */\\n    function getPrice(address asset) public view returns (uint256) {\\n        if (asset != WSTETH_ADDRESS) revert(\\\"wrong wstETH address\\\");\\n\\n        // get stETH amount for 1 wstETH scaled by 1e18\\n        uint256 stETHAmount = STETH.getPooledEthByShares(1 ether);\\n\\n        // price is scaled 1e18 (oracle returns 36 - asset decimal scale)\\n        uint256 stETHUSDPrice = RESILIENT_ORACLE.getPrice(ASSUME_STETH_ETH_EQUIVALENCE ? WETH_ADDRESS : address(STETH));\\n\\n        // stETHAmount (for 1 wstETH) * stETHUSDPrice / 1e18\\n        return (stETHAmount * stETHUSDPrice) / EXP_SCALE;\\n    }\\n}\\n\",\"keccak256\":\"0x3b6d494a7ec633d4b17afa53de270701bea1c4107f5955d449e0f4a619418638\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"kind":"user","methods":{"ASSUME_STETH_ETH_EQUIVALENCE()":{"notice":"A flag assuming 1:1 price equivalence between stETH/ETH"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"STETH()":{"notice":"Address of stETH"},"WETH_ADDRESS()":{"notice":"Address of WETH"},"WSTETH_ADDRESS()":{"notice":"Address of wstETH"},"constructor":{"notice":"Constructor for the implementation contract."},"getPrice(address)":{"notice":"Gets the USD price of wstETH asset"}},"notice":"Depending on the equivalence flag price is either based on assumption that 1 stETH = 1 ETH         or the price of stETH/USD (secondary market price) is obtained from the oracle.","version":1}}},"contracts/oracles/WstETHOracleV2.sol":{"WstETHOracleV2":{"abi":[{"inputs":[{"internalType":"address","name":"stETH","type":"address"},{"internalType":"address","name":"wstETH","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STETH","outputs":[{"internalType":"contract IStETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"constructor":{"details":"The underlyingToken must be correlated so that 1 underlyingToken is equal to 1 stETH, because getUnderlyingAmount() implicitly assumes that"},"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount Amount of underlyingToken"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"WstETHOracleV2","version":1},"evm":{"bytecode":{"functionDebugData":{"@_6494":{"entryPoint":null,"id":6494,"parameterSlots":10,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":312,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":419,"id":null,"parameterSlots":2,"returnSlots":10},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":652,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":354,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":632,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":372,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3533:101","nodeType":"YulBlock","src":"0:3533:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1435:1532:101","nodeType":"YulBlock","src":"1435:1532:101","statements":[{"body":{"nativeSrc":"1482:83:101","nodeType":"YulBlock","src":"1482:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1484:77:101","nodeType":"YulIdentifier","src":"1484:77:101"},"nativeSrc":"1484:79:101","nodeType":"YulFunctionCall","src":"1484:79:101"},"nativeSrc":"1484:79:101","nodeType":"YulExpressionStatement","src":"1484:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1456:7:101","nodeType":"YulIdentifier","src":"1456:7:101"},{"name":"headStart","nativeSrc":"1465:9:101","nodeType":"YulIdentifier","src":"1465:9:101"}],"functionName":{"name":"sub","nativeSrc":"1452:3:101","nodeType":"YulIdentifier","src":"1452:3:101"},"nativeSrc":"1452:23:101","nodeType":"YulFunctionCall","src":"1452:23:101"},{"kind":"number","nativeSrc":"1477:3:101","nodeType":"YulLiteral","src":"1477:3:101","type":"","value":"320"}],"functionName":{"name":"slt","nativeSrc":"1448:3:101","nodeType":"YulIdentifier","src":"1448:3:101"},"nativeSrc":"1448:33:101","nodeType":"YulFunctionCall","src":"1448:33:101"},"nativeSrc":"1445:120:101","nodeType":"YulIf","src":"1445:120:101"},{"nativeSrc":"1575:128:101","nodeType":"YulBlock","src":"1575:128:101","statements":[{"nativeSrc":"1590:15:101","nodeType":"YulVariableDeclaration","src":"1590:15:101","value":{"kind":"number","nativeSrc":"1604:1:101","nodeType":"YulLiteral","src":"1604:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1594:6:101","nodeType":"YulTypedName","src":"1594:6:101","type":""}]},{"nativeSrc":"1619:74:101","nodeType":"YulAssignment","src":"1619:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1665:9:101","nodeType":"YulIdentifier","src":"1665:9:101"},{"name":"offset","nativeSrc":"1676:6:101","nodeType":"YulIdentifier","src":"1676:6:101"}],"functionName":{"name":"add","nativeSrc":"1661:3:101","nodeType":"YulIdentifier","src":"1661:3:101"},"nativeSrc":"1661:22:101","nodeType":"YulFunctionCall","src":"1661:22:101"},{"name":"dataEnd","nativeSrc":"1685:7:101","nodeType":"YulIdentifier","src":"1685:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1629:31:101","nodeType":"YulIdentifier","src":"1629:31:101"},"nativeSrc":"1629:64:101","nodeType":"YulFunctionCall","src":"1629:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1619:6:101","nodeType":"YulIdentifier","src":"1619:6:101"}]}]},{"nativeSrc":"1713:129:101","nodeType":"YulBlock","src":"1713:129:101","statements":[{"nativeSrc":"1728:16:101","nodeType":"YulVariableDeclaration","src":"1728:16:101","value":{"kind":"number","nativeSrc":"1742:2:101","nodeType":"YulLiteral","src":"1742:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1732:6:101","nodeType":"YulTypedName","src":"1732:6:101","type":""}]},{"nativeSrc":"1758:74:101","nodeType":"YulAssignment","src":"1758:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1804:9:101","nodeType":"YulIdentifier","src":"1804:9:101"},{"name":"offset","nativeSrc":"1815:6:101","nodeType":"YulIdentifier","src":"1815:6:101"}],"functionName":{"name":"add","nativeSrc":"1800:3:101","nodeType":"YulIdentifier","src":"1800:3:101"},"nativeSrc":"1800:22:101","nodeType":"YulFunctionCall","src":"1800:22:101"},{"name":"dataEnd","nativeSrc":"1824:7:101","nodeType":"YulIdentifier","src":"1824:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1768:31:101","nodeType":"YulIdentifier","src":"1768:31:101"},"nativeSrc":"1768:64:101","nodeType":"YulFunctionCall","src":"1768:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1758:6:101","nodeType":"YulIdentifier","src":"1758:6:101"}]}]},{"nativeSrc":"1852:129:101","nodeType":"YulBlock","src":"1852:129:101","statements":[{"nativeSrc":"1867:16:101","nodeType":"YulVariableDeclaration","src":"1867:16:101","value":{"kind":"number","nativeSrc":"1881:2:101","nodeType":"YulLiteral","src":"1881:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1871:6:101","nodeType":"YulTypedName","src":"1871:6:101","type":""}]},{"nativeSrc":"1897:74:101","nodeType":"YulAssignment","src":"1897:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1943:9:101","nodeType":"YulIdentifier","src":"1943:9:101"},{"name":"offset","nativeSrc":"1954:6:101","nodeType":"YulIdentifier","src":"1954:6:101"}],"functionName":{"name":"add","nativeSrc":"1939:3:101","nodeType":"YulIdentifier","src":"1939:3:101"},"nativeSrc":"1939:22:101","nodeType":"YulFunctionCall","src":"1939:22:101"},{"name":"dataEnd","nativeSrc":"1963:7:101","nodeType":"YulIdentifier","src":"1963:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1907:31:101","nodeType":"YulIdentifier","src":"1907:31:101"},"nativeSrc":"1907:64:101","nodeType":"YulFunctionCall","src":"1907:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1897:6:101","nodeType":"YulIdentifier","src":"1897:6:101"}]}]},{"nativeSrc":"1991:129:101","nodeType":"YulBlock","src":"1991:129:101","statements":[{"nativeSrc":"2006:16:101","nodeType":"YulVariableDeclaration","src":"2006:16:101","value":{"kind":"number","nativeSrc":"2020:2:101","nodeType":"YulLiteral","src":"2020:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"2010:6:101","nodeType":"YulTypedName","src":"2010:6:101","type":""}]},{"nativeSrc":"2036:74:101","nodeType":"YulAssignment","src":"2036:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2082:9:101","nodeType":"YulIdentifier","src":"2082:9:101"},{"name":"offset","nativeSrc":"2093:6:101","nodeType":"YulIdentifier","src":"2093:6:101"}],"functionName":{"name":"add","nativeSrc":"2078:3:101","nodeType":"YulIdentifier","src":"2078:3:101"},"nativeSrc":"2078:22:101","nodeType":"YulFunctionCall","src":"2078:22:101"},{"name":"dataEnd","nativeSrc":"2102:7:101","nodeType":"YulIdentifier","src":"2102:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2046:31:101","nodeType":"YulIdentifier","src":"2046:31:101"},"nativeSrc":"2046:64:101","nodeType":"YulFunctionCall","src":"2046:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2036:6:101","nodeType":"YulIdentifier","src":"2036:6:101"}]}]},{"nativeSrc":"2130:130:101","nodeType":"YulBlock","src":"2130:130:101","statements":[{"nativeSrc":"2145:17:101","nodeType":"YulVariableDeclaration","src":"2145:17:101","value":{"kind":"number","nativeSrc":"2159:3:101","nodeType":"YulLiteral","src":"2159:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2149:6:101","nodeType":"YulTypedName","src":"2149:6:101","type":""}]},{"nativeSrc":"2176:74:101","nodeType":"YulAssignment","src":"2176:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2222:9:101","nodeType":"YulIdentifier","src":"2222:9:101"},{"name":"offset","nativeSrc":"2233:6:101","nodeType":"YulIdentifier","src":"2233:6:101"}],"functionName":{"name":"add","nativeSrc":"2218:3:101","nodeType":"YulIdentifier","src":"2218:3:101"},"nativeSrc":"2218:22:101","nodeType":"YulFunctionCall","src":"2218:22:101"},{"name":"dataEnd","nativeSrc":"2242:7:101","nodeType":"YulIdentifier","src":"2242:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2186:31:101","nodeType":"YulIdentifier","src":"2186:31:101"},"nativeSrc":"2186:64:101","nodeType":"YulFunctionCall","src":"2186:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}]}]},{"nativeSrc":"2270:130:101","nodeType":"YulBlock","src":"2270:130:101","statements":[{"nativeSrc":"2285:17:101","nodeType":"YulVariableDeclaration","src":"2285:17:101","value":{"kind":"number","nativeSrc":"2299:3:101","nodeType":"YulLiteral","src":"2299:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2289:6:101","nodeType":"YulTypedName","src":"2289:6:101","type":""}]},{"nativeSrc":"2316:74:101","nodeType":"YulAssignment","src":"2316:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2362:9:101","nodeType":"YulIdentifier","src":"2362:9:101"},{"name":"offset","nativeSrc":"2373:6:101","nodeType":"YulIdentifier","src":"2373:6:101"}],"functionName":{"name":"add","nativeSrc":"2358:3:101","nodeType":"YulIdentifier","src":"2358:3:101"},"nativeSrc":"2358:22:101","nodeType":"YulFunctionCall","src":"2358:22:101"},{"name":"dataEnd","nativeSrc":"2382:7:101","nodeType":"YulIdentifier","src":"2382:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2326:31:101","nodeType":"YulIdentifier","src":"2326:31:101"},"nativeSrc":"2326:64:101","nodeType":"YulFunctionCall","src":"2326:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2316:6:101","nodeType":"YulIdentifier","src":"2316:6:101"}]}]},{"nativeSrc":"2410:130:101","nodeType":"YulBlock","src":"2410:130:101","statements":[{"nativeSrc":"2425:17:101","nodeType":"YulVariableDeclaration","src":"2425:17:101","value":{"kind":"number","nativeSrc":"2439:3:101","nodeType":"YulLiteral","src":"2439:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2429:6:101","nodeType":"YulTypedName","src":"2429:6:101","type":""}]},{"nativeSrc":"2456:74:101","nodeType":"YulAssignment","src":"2456:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2502:9:101","nodeType":"YulIdentifier","src":"2502:9:101"},{"name":"offset","nativeSrc":"2513:6:101","nodeType":"YulIdentifier","src":"2513:6:101"}],"functionName":{"name":"add","nativeSrc":"2498:3:101","nodeType":"YulIdentifier","src":"2498:3:101"},"nativeSrc":"2498:22:101","nodeType":"YulFunctionCall","src":"2498:22:101"},{"name":"dataEnd","nativeSrc":"2522:7:101","nodeType":"YulIdentifier","src":"2522:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2466:31:101","nodeType":"YulIdentifier","src":"2466:31:101"},"nativeSrc":"2466:64:101","nodeType":"YulFunctionCall","src":"2466:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2456:6:101","nodeType":"YulIdentifier","src":"2456:6:101"}]}]},{"nativeSrc":"2550:130:101","nodeType":"YulBlock","src":"2550:130:101","statements":[{"nativeSrc":"2565:17:101","nodeType":"YulVariableDeclaration","src":"2565:17:101","value":{"kind":"number","nativeSrc":"2579:3:101","nodeType":"YulLiteral","src":"2579:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2569:6:101","nodeType":"YulTypedName","src":"2569:6:101","type":""}]},{"nativeSrc":"2596:74:101","nodeType":"YulAssignment","src":"2596:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2642:9:101","nodeType":"YulIdentifier","src":"2642:9:101"},{"name":"offset","nativeSrc":"2653:6:101","nodeType":"YulIdentifier","src":"2653:6:101"}],"functionName":{"name":"add","nativeSrc":"2638:3:101","nodeType":"YulIdentifier","src":"2638:3:101"},"nativeSrc":"2638:22:101","nodeType":"YulFunctionCall","src":"2638:22:101"},{"name":"dataEnd","nativeSrc":"2662:7:101","nodeType":"YulIdentifier","src":"2662:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2606:31:101","nodeType":"YulIdentifier","src":"2606:31:101"},"nativeSrc":"2606:64:101","nodeType":"YulFunctionCall","src":"2606:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2596:6:101","nodeType":"YulIdentifier","src":"2596:6:101"}]}]},{"nativeSrc":"2690:130:101","nodeType":"YulBlock","src":"2690:130:101","statements":[{"nativeSrc":"2705:17:101","nodeType":"YulVariableDeclaration","src":"2705:17:101","value":{"kind":"number","nativeSrc":"2719:3:101","nodeType":"YulLiteral","src":"2719:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2709:6:101","nodeType":"YulTypedName","src":"2709:6:101","type":""}]},{"nativeSrc":"2736:74:101","nodeType":"YulAssignment","src":"2736:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2782:9:101","nodeType":"YulIdentifier","src":"2782:9:101"},{"name":"offset","nativeSrc":"2793:6:101","nodeType":"YulIdentifier","src":"2793:6:101"}],"functionName":{"name":"add","nativeSrc":"2778:3:101","nodeType":"YulIdentifier","src":"2778:3:101"},"nativeSrc":"2778:22:101","nodeType":"YulFunctionCall","src":"2778:22:101"},{"name":"dataEnd","nativeSrc":"2802:7:101","nodeType":"YulIdentifier","src":"2802:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2746:31:101","nodeType":"YulIdentifier","src":"2746:31:101"},"nativeSrc":"2746:64:101","nodeType":"YulFunctionCall","src":"2746:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2736:6:101","nodeType":"YulIdentifier","src":"2736:6:101"}]}]},{"nativeSrc":"2830:130:101","nodeType":"YulBlock","src":"2830:130:101","statements":[{"nativeSrc":"2845:17:101","nodeType":"YulVariableDeclaration","src":"2845:17:101","value":{"kind":"number","nativeSrc":"2859:3:101","nodeType":"YulLiteral","src":"2859:3:101","type":"","value":"288"},"variables":[{"name":"offset","nativeSrc":"2849:6:101","nodeType":"YulTypedName","src":"2849:6:101","type":""}]},{"nativeSrc":"2876:74:101","nodeType":"YulAssignment","src":"2876:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2922:9:101","nodeType":"YulIdentifier","src":"2922:9:101"},{"name":"offset","nativeSrc":"2933:6:101","nodeType":"YulIdentifier","src":"2933:6:101"}],"functionName":{"name":"add","nativeSrc":"2918:3:101","nodeType":"YulIdentifier","src":"2918:3:101"},"nativeSrc":"2918:22:101","nodeType":"YulFunctionCall","src":"2918:22:101"},{"name":"dataEnd","nativeSrc":"2942:7:101","nodeType":"YulIdentifier","src":"2942:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2886:31:101","nodeType":"YulIdentifier","src":"2886:31:101"},"nativeSrc":"2886:64:101","nodeType":"YulFunctionCall","src":"2886:64:101"},"variableNames":[{"name":"value9","nativeSrc":"2876:6:101","nodeType":"YulIdentifier","src":"2876:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1762:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1333:9:101","nodeType":"YulTypedName","src":"1333:9:101","type":""},{"name":"dataEnd","nativeSrc":"1344:7:101","nodeType":"YulTypedName","src":"1344:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1356:6:101","nodeType":"YulTypedName","src":"1356:6:101","type":""},{"name":"value1","nativeSrc":"1364:6:101","nodeType":"YulTypedName","src":"1364:6:101","type":""},{"name":"value2","nativeSrc":"1372:6:101","nodeType":"YulTypedName","src":"1372:6:101","type":""},{"name":"value3","nativeSrc":"1380:6:101","nodeType":"YulTypedName","src":"1380:6:101","type":""},{"name":"value4","nativeSrc":"1388:6:101","nodeType":"YulTypedName","src":"1388:6:101","type":""},{"name":"value5","nativeSrc":"1396:6:101","nodeType":"YulTypedName","src":"1396:6:101","type":""},{"name":"value6","nativeSrc":"1404:6:101","nodeType":"YulTypedName","src":"1404:6:101","type":""},{"name":"value7","nativeSrc":"1412:6:101","nodeType":"YulTypedName","src":"1412:6:101","type":""},{"name":"value8","nativeSrc":"1420:6:101","nodeType":"YulTypedName","src":"1420:6:101","type":""},{"name":"value9","nativeSrc":"1428:6:101","nodeType":"YulTypedName","src":"1428:6:101","type":""}],"src":"1205:1762:101"},{"body":{"nativeSrc":"3001:152:101","nodeType":"YulBlock","src":"3001:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3018:1:101","nodeType":"YulLiteral","src":"3018:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3021:77:101","nodeType":"YulLiteral","src":"3021:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3011:6:101","nodeType":"YulIdentifier","src":"3011:6:101"},"nativeSrc":"3011:88:101","nodeType":"YulFunctionCall","src":"3011:88:101"},"nativeSrc":"3011:88:101","nodeType":"YulExpressionStatement","src":"3011:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3115:1:101","nodeType":"YulLiteral","src":"3115:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3118:4:101","nodeType":"YulLiteral","src":"3118:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3108:6:101","nodeType":"YulIdentifier","src":"3108:6:101"},"nativeSrc":"3108:15:101","nodeType":"YulFunctionCall","src":"3108:15:101"},"nativeSrc":"3108:15:101","nodeType":"YulExpressionStatement","src":"3108:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3139:1:101","nodeType":"YulLiteral","src":"3139:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3142:4:101","nodeType":"YulLiteral","src":"3142:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3132:6:101","nodeType":"YulIdentifier","src":"3132:6:101"},"nativeSrc":"3132:15:101","nodeType":"YulFunctionCall","src":"3132:15:101"},"nativeSrc":"3132:15:101","nodeType":"YulExpressionStatement","src":"3132:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2973:180:101","nodeType":"YulFunctionDefinition","src":"2973:180:101"},{"body":{"nativeSrc":"3187:152:101","nodeType":"YulBlock","src":"3187:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3204:1:101","nodeType":"YulLiteral","src":"3204:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3207:77:101","nodeType":"YulLiteral","src":"3207:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3197:6:101","nodeType":"YulIdentifier","src":"3197:6:101"},"nativeSrc":"3197:88:101","nodeType":"YulFunctionCall","src":"3197:88:101"},"nativeSrc":"3197:88:101","nodeType":"YulExpressionStatement","src":"3197:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3301:1:101","nodeType":"YulLiteral","src":"3301:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3294:6:101","nodeType":"YulIdentifier","src":"3294:6:101"},"nativeSrc":"3294:15:101","nodeType":"YulFunctionCall","src":"3294:15:101"},"nativeSrc":"3294:15:101","nodeType":"YulExpressionStatement","src":"3294:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3325:1:101","nodeType":"YulLiteral","src":"3325:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3328:4:101","nodeType":"YulLiteral","src":"3328:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3318:6:101","nodeType":"YulIdentifier","src":"3318:6:101"},"nativeSrc":"3318:15:101","nodeType":"YulFunctionCall","src":"3318:15:101"},"nativeSrc":"3318:15:101","nodeType":"YulExpressionStatement","src":"3318:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3159:180:101","nodeType":"YulFunctionDefinition","src":"3159:180:101"},{"body":{"nativeSrc":"3387:143:101","nodeType":"YulBlock","src":"3387:143:101","statements":[{"nativeSrc":"3397:25:101","nodeType":"YulAssignment","src":"3397:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3420:1:101","nodeType":"YulIdentifier","src":"3420:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3402:17:101","nodeType":"YulIdentifier","src":"3402:17:101"},"nativeSrc":"3402:20:101","nodeType":"YulFunctionCall","src":"3402:20:101"},"variableNames":[{"name":"x","nativeSrc":"3397:1:101","nodeType":"YulIdentifier","src":"3397:1:101"}]},{"nativeSrc":"3431:25:101","nodeType":"YulAssignment","src":"3431:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3454:1:101","nodeType":"YulIdentifier","src":"3454:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3436:17:101","nodeType":"YulIdentifier","src":"3436:17:101"},"nativeSrc":"3436:20:101","nodeType":"YulFunctionCall","src":"3436:20:101"},"variableNames":[{"name":"y","nativeSrc":"3431:1:101","nodeType":"YulIdentifier","src":"3431:1:101"}]},{"body":{"nativeSrc":"3478:22:101","nodeType":"YulBlock","src":"3478:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3480:16:101","nodeType":"YulIdentifier","src":"3480:16:101"},"nativeSrc":"3480:18:101","nodeType":"YulFunctionCall","src":"3480:18:101"},"nativeSrc":"3480:18:101","nodeType":"YulExpressionStatement","src":"3480:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3475:1:101","nodeType":"YulIdentifier","src":"3475:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3468:6:101","nodeType":"YulIdentifier","src":"3468:6:101"},"nativeSrc":"3468:9:101","nodeType":"YulFunctionCall","src":"3468:9:101"},"nativeSrc":"3465:35:101","nodeType":"YulIf","src":"3465:35:101"},{"nativeSrc":"3510:14:101","nodeType":"YulAssignment","src":"3510:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3519:1:101","nodeType":"YulIdentifier","src":"3519:1:101"},{"name":"y","nativeSrc":"3522:1:101","nodeType":"YulIdentifier","src":"3522:1:101"}],"functionName":{"name":"div","nativeSrc":"3515:3:101","nodeType":"YulIdentifier","src":"3515:3:101"},"nativeSrc":"3515:9:101","nodeType":"YulFunctionCall","src":"3515:9:101"},"variableNames":[{"name":"r","nativeSrc":"3510:1:101","nodeType":"YulIdentifier","src":"3510:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3345:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3376:1:101","nodeType":"YulTypedName","src":"3376:1:101","type":""},{"name":"y","nativeSrc":"3379:1:101","nodeType":"YulTypedName","src":"3379:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3385:1:101","nodeType":"YulTypedName","src":"3385:1:101","type":""}],"src":"3345:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n        if slt(sub(dataEnd, headStart), 320) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 288\n\n            value9 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610120604052348015610010575f80fd5b506040516110d13803806110d183398101604081905261002f916101a3565b8888888888888888886100466301e133808761028c565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610138565b6100ce88610138565b6100d787610138565b6100e082610138565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261011a8a610138565b5050506001600160a01b03909616610100525061029f945050505050565b6001600160a01b03811661015f576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61017d81610162565b811461015f575f80fd5b805161016e81610174565b8061017d565b805161016e81610192565b5f805f805f805f805f806101408b8d0312156101c0576101c05f80fd5b5f6101cb8d8d610187565b9a505060206101dc8d828e01610187565b99505060406101ed8d828e01610187565b98505060606101fe8d828e01610187565b975050608061020f8d828e01610198565b96505060a06102208d828e01610198565b95505060c06102318d828e01610198565b94505060e06102428d828e01610198565b9350506101006102548d828e01610187565b9250506101206102668d828e01610198565b9150509295989b9194979a5092959850565b634e487b7160e01b5f52601260045260245ffd5b5f8261029a5761029a610278565b500490565b60805160a05160c05160e05161010051610dbd6103145f395f818161028d01526106bd01525f818161018901526108fc01525f818161024e01528181610574015261078f01525f8181610139015281816105a101526107be01525f818161020b015281816102b2015261083d0152610dbd5ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063abb8561314610270578063ac5a693e14610278578063bdf13af214610280578063e00bfe5014610288575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109ad565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109da565b61011e60045481565b61011e61017f366004610a09565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a4c565b6101cb6101c6366004610a6b565b610360565b005b61011e60025481565b6101cb6101e4366004610a89565b6103d1565b6101f16104a5565b60405161012b9190610acb565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a89565b61062c565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61073e565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f8161078b565b9392505050565b5f61032f61073e565b90505f818311801561034057508115155b61034a578261034c565b815b90506103578161078b565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108e3565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108e3565b5f5461041f6301e1338084610b01565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109ad565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61073e565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b14565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761073e565b9050600454818311610529578261052b565b815b6105359190610b27565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109da565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108e3565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051630f451f7160e31b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a28fb88906106fa90670de0b6b3a7640000906004016109ad565b602060405180830381865afa158015610715573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107399190610b45565b905090565b5f806003544261074e9190610b14565b90505f670de0b6b3a7640000825f5460025461076a9190610b63565b6107749190610b63565b61077e9190610b01565b60025461031f9190610b27565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107f991906109da565b602060405180830381865afa158015610814573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108389190610b45565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf9190610b96565b60ff1690506108cf81600a610cc0565b6108d98487610b63565b6103579190610b01565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109339033908690600401610d09565b602060405180830381865afa15801561094e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109729190610d3c565b9050806109a157333083604051634a3fa29360e01b815260040161099893929190610d5a565b60405180910390fd5b5050565b805b82525050565b602081016109bb82846109a5565b92915050565b5f6001600160a01b0382166109bb565b6109a7816109c1565b602081016109bb82846109d1565b6109f1816109c1565b81146109fb575f80fd5b50565b80356109bb816109e8565b5f60208284031215610a1c57610a1c5f80fd5b5f610a2784846109fe565b949350505050565b5f6109bb826109c1565b5f6109bb82610a2f565b6109a781610a39565b602081016109bb8284610a43565b806109f1565b80356109bb81610a5a565b5f60208284031215610a7e57610a7e5f80fd5b5f610a278484610a60565b5f8060408385031215610a9d57610a9d5f80fd5b5f610aa88585610a60565b9250506020610ab985828601610a60565b9150509250929050565b8015156109a7565b602081016109bb8284610ac3565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b0f57610b0f610ad9565b500490565b818103818111156109bb576109bb610aed565b808201808211156109bb576109bb610aed565b80516109bb81610a5a565b5f60208284031215610b5857610b585f80fd5b5f610a278484610b3a565b818102808215838204851417610b7b57610b7b610aed565b5092915050565b60ff81166109f1565b80516109bb81610b82565b5f60208284031215610ba957610ba95f80fd5b5f610a278484610b8b565b80825b6001851115610bf357808604811115610bd257610bd2610aed565b6001851615610be057908102905b8002610bec8560011c90565b9450610bb7565b94509492505050565b5f82610c0a5750600161031f565b81610c1657505f61031f565b8160018114610c2c5760028114610c3657610c63565b600191505061031f565b60ff841115610c4757610c47610aed565b8360020a915084821115610c5d57610c5d610aed565b5061031f565b5060208310610133831016604e8410600b8410161715610c96575081810a83811115610c9157610c91610aed565b61031f565b610ca38484846001610bb4565b92509050818404811115610cb957610cb9610aed565b0292915050565b5f61031f5f198484610bfc565b8281835e505f910152565b5f610ce1825190565b808452602084019350610cf8818560208601610ccd565b601f01601f19169290920192915050565b60408101610d1782856109d1565b8181036020830152610a278184610cd8565b8015156109f1565b80516109bb81610d29565b5f60208284031215610d4f57610d4f5f80fd5b5f610a278484610d31565b60608101610d6882866109d1565b610d7560208301856109d1565b81810360408301526103578184610cd856fea2646970667358221220fffd92dad00f4cd30cf8e36992289c7f101512896aa48b2f4aeb0a05c1e6577664736f6c63430008190033","opcodes":"PUSH2 0x120 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10D1 CODESIZE SUB DUP1 PUSH2 0x10D1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1A3 JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x28C JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x138 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x138 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE PUSH2 0x11A DUP11 PUSH2 0x138 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH2 0x100 MSTORE POP PUSH2 0x29F SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17D DUP2 PUSH2 0x162 JUMP JUMPDEST DUP2 EQ PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x174 JUMP JUMPDEST DUP1 PUSH2 0x17D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x16E DUP2 PUSH2 0x192 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH2 0x140 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x1C0 JUMPI PUSH2 0x1C0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CB DUP14 DUP14 PUSH2 0x187 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 PUSH2 0x1DC DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x40 PUSH2 0x1ED DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x60 PUSH2 0x1FE DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x80 PUSH2 0x20F DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP7 POP POP PUSH1 0xA0 PUSH2 0x220 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xC0 PUSH2 0x231 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xE0 PUSH2 0x242 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x100 PUSH2 0x254 DUP14 DUP3 DUP15 ADD PUSH2 0x187 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 PUSH2 0x266 DUP14 DUP3 DUP15 ADD PUSH2 0x198 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x29A JUMPI PUSH2 0x29A PUSH2 0x278 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0xDBD PUSH2 0x314 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x28D ADD MSTORE PUSH2 0x6BD ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x189 ADD MSTORE PUSH2 0x8FC ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x24E ADD MSTORE DUP2 DUP2 PUSH2 0x574 ADD MSTORE PUSH2 0x78F ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x5A1 ADD MSTORE PUSH2 0x7BE ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x20B ADD MSTORE DUP2 DUP2 PUSH2 0x2B2 ADD MSTORE PUSH2 0x83D ADD MSTORE PUSH2 0xDBD PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xE00BFE50 EQ PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0xA09 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA6B JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x73E JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xB01 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x73E JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB14 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9DA JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF451F71 PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A28FB88 SWAP1 PUSH2 0x6FA SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x715 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x739 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x74E SWAP2 SWAP1 PUSH2 0xB14 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x77E SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x814 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x838 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x89B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8BF SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8CF DUP2 PUSH1 0xA PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x8D9 DUP5 DUP8 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x933 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD09 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x972 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9A1 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x998 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9BB JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0x9C1 JUMP JUMPDEST DUP2 EQ PUSH2 0x9FB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0x9E8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0x9FE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0x9C1 JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0xA43 JUMP JUMPDEST DUP1 PUSH2 0x9F1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA7E JUMPI PUSH2 0xA7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xA60 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA9D JUMPI PUSH2 0xA9D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAA8 DUP6 DUP6 PUSH2 0xA60 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAB9 DUP6 DUP3 DUP7 ADD PUSH2 0xA60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0xAC3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB0F JUMPI PUSH2 0xB0F PUSH2 0xAD9 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB58 JUMPI PUSH2 0xB58 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xB3A JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB7B JUMPI PUSH2 0xB7B PUSH2 0xAED JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9F1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xB82 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBA9 JUMPI PUSH2 0xBA9 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xB8B JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBF3 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBD2 JUMPI PUSH2 0xBD2 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBE0 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBEC DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBB7 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC0A JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC16 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC2C JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC36 JUMPI PUSH2 0xC63 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC47 JUMPI PUSH2 0xC47 PUSH2 0xAED JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC5D PUSH2 0xAED JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC96 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC91 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xCA3 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBB4 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCB9 JUMPI PUSH2 0xCB9 PUSH2 0xAED JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBFC JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCE1 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCCD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD17 DUP3 DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA27 DUP2 DUP5 PUSH2 0xCD8 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9F1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xD29 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4F JUMPI PUSH2 0xD4F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD68 DUP3 DUP7 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0xD75 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCD8 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT REVERT SWAP3 0xDA 0xD0 0xF 0x4C 0xD3 0xC 0xF8 0xE3 PUSH10 0x92289C7F101512896AA4 DUP12 0x2F BLOBBASEFEE 0xEB EXP SDIV 0xC1 0xE6 JUMPI PUSH23 0x64736F6C63430008190033000000000000000000000000 ","sourceMap":"481:1428:65:-:0;;;827:758;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1228:6;1248:15;1277;1306:16;1336:17;1367:30;1411:24;1449:20;1483:12;3527:36:67;408:10:17;1306:16:65;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;1520:27:65::1;1541:5:::0;1520:20:::1;:27::i;:::-;-1:-1:-1::0;;;;;;;;1557:21:65;;::::1;;::::0;-1:-1:-1;481:1428:65;;-1:-1:-1;;;;;481:1428:65;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1762::-;1356:6;1364;1372;1380;1388;1396;1404;1412;1420;1428;1477:3;1465:9;1456:7;1452:23;1448:33;1445:120;;;1484:79;197:1;194;187:12;1484:79;1604:1;1629:64;1685:7;1665:9;1629:64;:::i;:::-;1619:74;;1575:128;1742:2;1768:64;1824:7;1815:6;1804:9;1800:22;1768:64;:::i;:::-;1758:74;;1713:129;1881:2;1907:64;1963:7;1954:6;1943:9;1939:22;1907:64;:::i;:::-;1897:74;;1852:129;2020:2;2046:64;2102:7;2093:6;2082:9;2078:22;2046:64;:::i;:::-;2036:74;;1991:129;2159:3;2186:64;2242:7;2233:6;2222:9;2218:22;2186:64;:::i;:::-;2176:74;;2130:130;2299:3;2326:64;2382:7;2373:6;2362:9;2358:22;2326:64;:::i;:::-;2316:74;;2270:130;2439:3;2466:64;2522:7;2513:6;2502:9;2498:22;2466:64;:::i;:::-;2456:74;;2410:130;2579:3;2606:64;2662:7;2653:6;2642:9;2638:22;2606:64;:::i;:::-;2596:74;;2550:130;2719:3;2746:64;2802:7;2793:6;2782:9;2778:22;2746:64;:::i;:::-;2736:74;;2690:130;2859:3;2886:64;2942:7;2933:6;2922:9;2918:22;2886:64;:::i;:::-;2876:74;;2830:130;1205:1762;;;;;;;;;;;;;:::o;2973:180::-;-1:-1:-1;;;3018:1:101;3011:88;3118:4;3115:1;3108:15;3142:4;3139:1;3132:15;3345:185;3385:1;3475;3465:35;;3480:18;;:::i;:::-;-1:-1:-1;3515:9:101;;3345:185::o;:::-;481:1428:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@STETH_6448":{"entryPoint":null,"id":6448,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1931,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2275,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1854,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":687,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_6507":{"entryPoint":1700,"id":6507,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1189,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":977,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":864,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1580,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1248,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2558,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3377,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2656,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2874,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2955,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2569,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3388,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2697,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2513,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2755,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2627,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3288,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2469,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2522,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3418,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3337,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2763,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IStETH_$3610__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2477,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2855,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2817,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2996,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3264,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":3068,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2915,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2836,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2497,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2617,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IStETH_$3610_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2607,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3277,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2797,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2777,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2536,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3369,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2650,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2946,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13140:101","nodeType":"YulBlock","src":"0:13140:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5218:66:101","nodeType":"YulBlock","src":"5218:66:101","statements":[{"nativeSrc":"5228:50:101","nodeType":"YulAssignment","src":"5228:50:101","value":{"arguments":[{"name":"value","nativeSrc":"5272:5:101","nodeType":"YulIdentifier","src":"5272:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5241:30:101","nodeType":"YulIdentifier","src":"5241:30:101"},"nativeSrc":"5241:37:101","nodeType":"YulFunctionCall","src":"5241:37:101"},"variableNames":[{"name":"converted","nativeSrc":"5228:9:101","nodeType":"YulIdentifier","src":"5228:9:101"}]}]},"name":"convert_t_contract$_IStETH_$3610_to_t_address","nativeSrc":"5143:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5198:5:101","nodeType":"YulTypedName","src":"5198:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5208:9:101","nodeType":"YulTypedName","src":"5208:9:101","type":""}],"src":"5143:141:101"},{"body":{"nativeSrc":"5370:81:101","nodeType":"YulBlock","src":"5370:81:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5387:3:101","nodeType":"YulIdentifier","src":"5387:3:101"},{"arguments":[{"name":"value","nativeSrc":"5438:5:101","nodeType":"YulIdentifier","src":"5438:5:101"}],"functionName":{"name":"convert_t_contract$_IStETH_$3610_to_t_address","nativeSrc":"5392:45:101","nodeType":"YulIdentifier","src":"5392:45:101"},"nativeSrc":"5392:52:101","nodeType":"YulFunctionCall","src":"5392:52:101"}],"functionName":{"name":"mstore","nativeSrc":"5380:6:101","nodeType":"YulIdentifier","src":"5380:6:101"},"nativeSrc":"5380:65:101","nodeType":"YulFunctionCall","src":"5380:65:101"},"nativeSrc":"5380:65:101","nodeType":"YulExpressionStatement","src":"5380:65:101"}]},"name":"abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack","nativeSrc":"5290:161:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5358:5:101","nodeType":"YulTypedName","src":"5358:5:101","type":""},{"name":"pos","nativeSrc":"5365:3:101","nodeType":"YulTypedName","src":"5365:3:101","type":""}],"src":"5290:161:101"},{"body":{"nativeSrc":"5570:139:101","nodeType":"YulBlock","src":"5570:139:101","statements":[{"nativeSrc":"5580:26:101","nodeType":"YulAssignment","src":"5580:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5592:9:101","nodeType":"YulIdentifier","src":"5592:9:101"},{"kind":"number","nativeSrc":"5603:2:101","nodeType":"YulLiteral","src":"5603:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5588:3:101","nodeType":"YulIdentifier","src":"5588:3:101"},"nativeSrc":"5588:18:101","nodeType":"YulFunctionCall","src":"5588:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5580:4:101","nodeType":"YulIdentifier","src":"5580:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5675:6:101","nodeType":"YulIdentifier","src":"5675:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5688:9:101","nodeType":"YulIdentifier","src":"5688:9:101"},{"kind":"number","nativeSrc":"5699:1:101","nodeType":"YulLiteral","src":"5699:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5684:3:101","nodeType":"YulIdentifier","src":"5684:3:101"},"nativeSrc":"5684:17:101","nodeType":"YulFunctionCall","src":"5684:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack","nativeSrc":"5616:58:101","nodeType":"YulIdentifier","src":"5616:58:101"},"nativeSrc":"5616:86:101","nodeType":"YulFunctionCall","src":"5616:86:101"},"nativeSrc":"5616:86:101","nodeType":"YulExpressionStatement","src":"5616:86:101"}]},"name":"abi_encode_tuple_t_contract$_IStETH_$3610__to_t_address__fromStack_reversed","nativeSrc":"5457:252:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5542:9:101","nodeType":"YulTypedName","src":"5542:9:101","type":""},{"name":"value0","nativeSrc":"5554:6:101","nodeType":"YulTypedName","src":"5554:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5565:4:101","nodeType":"YulTypedName","src":"5565:4:101","type":""}],"src":"5457:252:101"},{"body":{"nativeSrc":"5743:152:101","nodeType":"YulBlock","src":"5743:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5760:1:101","nodeType":"YulLiteral","src":"5760:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5763:77:101","nodeType":"YulLiteral","src":"5763:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5753:6:101","nodeType":"YulIdentifier","src":"5753:6:101"},"nativeSrc":"5753:88:101","nodeType":"YulFunctionCall","src":"5753:88:101"},"nativeSrc":"5753:88:101","nodeType":"YulExpressionStatement","src":"5753:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5857:1:101","nodeType":"YulLiteral","src":"5857:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5860:4:101","nodeType":"YulLiteral","src":"5860:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5850:6:101","nodeType":"YulIdentifier","src":"5850:6:101"},"nativeSrc":"5850:15:101","nodeType":"YulFunctionCall","src":"5850:15:101"},"nativeSrc":"5850:15:101","nodeType":"YulExpressionStatement","src":"5850:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5881:1:101","nodeType":"YulLiteral","src":"5881:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5884:4:101","nodeType":"YulLiteral","src":"5884:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5874:6:101","nodeType":"YulIdentifier","src":"5874:6:101"},"nativeSrc":"5874:15:101","nodeType":"YulFunctionCall","src":"5874:15:101"},"nativeSrc":"5874:15:101","nodeType":"YulExpressionStatement","src":"5874:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5715:180:101","nodeType":"YulFunctionDefinition","src":"5715:180:101"},{"body":{"nativeSrc":"5929:152:101","nodeType":"YulBlock","src":"5929:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5946:1:101","nodeType":"YulLiteral","src":"5946:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5949:77:101","nodeType":"YulLiteral","src":"5949:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5939:6:101","nodeType":"YulIdentifier","src":"5939:6:101"},"nativeSrc":"5939:88:101","nodeType":"YulFunctionCall","src":"5939:88:101"},"nativeSrc":"5939:88:101","nodeType":"YulExpressionStatement","src":"5939:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6043:1:101","nodeType":"YulLiteral","src":"6043:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6046:4:101","nodeType":"YulLiteral","src":"6046:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6036:6:101","nodeType":"YulIdentifier","src":"6036:6:101"},"nativeSrc":"6036:15:101","nodeType":"YulFunctionCall","src":"6036:15:101"},"nativeSrc":"6036:15:101","nodeType":"YulExpressionStatement","src":"6036:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6067:1:101","nodeType":"YulLiteral","src":"6067:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6070:4:101","nodeType":"YulLiteral","src":"6070:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6060:6:101","nodeType":"YulIdentifier","src":"6060:6:101"},"nativeSrc":"6060:15:101","nodeType":"YulFunctionCall","src":"6060:15:101"},"nativeSrc":"6060:15:101","nodeType":"YulExpressionStatement","src":"6060:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5901:180:101","nodeType":"YulFunctionDefinition","src":"5901:180:101"},{"body":{"nativeSrc":"6129:143:101","nodeType":"YulBlock","src":"6129:143:101","statements":[{"nativeSrc":"6139:25:101","nodeType":"YulAssignment","src":"6139:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6162:1:101","nodeType":"YulIdentifier","src":"6162:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6144:17:101","nodeType":"YulIdentifier","src":"6144:17:101"},"nativeSrc":"6144:20:101","nodeType":"YulFunctionCall","src":"6144:20:101"},"variableNames":[{"name":"x","nativeSrc":"6139:1:101","nodeType":"YulIdentifier","src":"6139:1:101"}]},{"nativeSrc":"6173:25:101","nodeType":"YulAssignment","src":"6173:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6196:1:101","nodeType":"YulIdentifier","src":"6196:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6178:17:101","nodeType":"YulIdentifier","src":"6178:17:101"},"nativeSrc":"6178:20:101","nodeType":"YulFunctionCall","src":"6178:20:101"},"variableNames":[{"name":"y","nativeSrc":"6173:1:101","nodeType":"YulIdentifier","src":"6173:1:101"}]},{"body":{"nativeSrc":"6220:22:101","nodeType":"YulBlock","src":"6220:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6222:16:101","nodeType":"YulIdentifier","src":"6222:16:101"},"nativeSrc":"6222:18:101","nodeType":"YulFunctionCall","src":"6222:18:101"},"nativeSrc":"6222:18:101","nodeType":"YulExpressionStatement","src":"6222:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6217:1:101","nodeType":"YulIdentifier","src":"6217:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6210:6:101","nodeType":"YulIdentifier","src":"6210:6:101"},"nativeSrc":"6210:9:101","nodeType":"YulFunctionCall","src":"6210:9:101"},"nativeSrc":"6207:35:101","nodeType":"YulIf","src":"6207:35:101"},{"nativeSrc":"6252:14:101","nodeType":"YulAssignment","src":"6252:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6261:1:101","nodeType":"YulIdentifier","src":"6261:1:101"},{"name":"y","nativeSrc":"6264:1:101","nodeType":"YulIdentifier","src":"6264:1:101"}],"functionName":{"name":"div","nativeSrc":"6257:3:101","nodeType":"YulIdentifier","src":"6257:3:101"},"nativeSrc":"6257:9:101","nodeType":"YulFunctionCall","src":"6257:9:101"},"variableNames":[{"name":"r","nativeSrc":"6252:1:101","nodeType":"YulIdentifier","src":"6252:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"6087:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6118:1:101","nodeType":"YulTypedName","src":"6118:1:101","type":""},{"name":"y","nativeSrc":"6121:1:101","nodeType":"YulTypedName","src":"6121:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6127:1:101","nodeType":"YulTypedName","src":"6127:1:101","type":""}],"src":"6087:185:101"},{"body":{"nativeSrc":"6323:149:101","nodeType":"YulBlock","src":"6323:149:101","statements":[{"nativeSrc":"6333:25:101","nodeType":"YulAssignment","src":"6333:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6356:1:101","nodeType":"YulIdentifier","src":"6356:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6338:17:101","nodeType":"YulIdentifier","src":"6338:17:101"},"nativeSrc":"6338:20:101","nodeType":"YulFunctionCall","src":"6338:20:101"},"variableNames":[{"name":"x","nativeSrc":"6333:1:101","nodeType":"YulIdentifier","src":"6333:1:101"}]},{"nativeSrc":"6367:25:101","nodeType":"YulAssignment","src":"6367:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6390:1:101","nodeType":"YulIdentifier","src":"6390:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6372:17:101","nodeType":"YulIdentifier","src":"6372:17:101"},"nativeSrc":"6372:20:101","nodeType":"YulFunctionCall","src":"6372:20:101"},"variableNames":[{"name":"y","nativeSrc":"6367:1:101","nodeType":"YulIdentifier","src":"6367:1:101"}]},{"nativeSrc":"6401:17:101","nodeType":"YulAssignment","src":"6401:17:101","value":{"arguments":[{"name":"x","nativeSrc":"6413:1:101","nodeType":"YulIdentifier","src":"6413:1:101"},{"name":"y","nativeSrc":"6416:1:101","nodeType":"YulIdentifier","src":"6416:1:101"}],"functionName":{"name":"sub","nativeSrc":"6409:3:101","nodeType":"YulIdentifier","src":"6409:3:101"},"nativeSrc":"6409:9:101","nodeType":"YulFunctionCall","src":"6409:9:101"},"variableNames":[{"name":"diff","nativeSrc":"6401:4:101","nodeType":"YulIdentifier","src":"6401:4:101"}]},{"body":{"nativeSrc":"6443:22:101","nodeType":"YulBlock","src":"6443:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6445:16:101","nodeType":"YulIdentifier","src":"6445:16:101"},"nativeSrc":"6445:18:101","nodeType":"YulFunctionCall","src":"6445:18:101"},"nativeSrc":"6445:18:101","nodeType":"YulExpressionStatement","src":"6445:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6434:4:101","nodeType":"YulIdentifier","src":"6434:4:101"},{"name":"x","nativeSrc":"6440:1:101","nodeType":"YulIdentifier","src":"6440:1:101"}],"functionName":{"name":"gt","nativeSrc":"6431:2:101","nodeType":"YulIdentifier","src":"6431:2:101"},"nativeSrc":"6431:11:101","nodeType":"YulFunctionCall","src":"6431:11:101"},"nativeSrc":"6428:37:101","nodeType":"YulIf","src":"6428:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"6278:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6309:1:101","nodeType":"YulTypedName","src":"6309:1:101","type":""},{"name":"y","nativeSrc":"6312:1:101","nodeType":"YulTypedName","src":"6312:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6318:4:101","nodeType":"YulTypedName","src":"6318:4:101","type":""}],"src":"6278:194:101"},{"body":{"nativeSrc":"6522:147:101","nodeType":"YulBlock","src":"6522:147:101","statements":[{"nativeSrc":"6532:25:101","nodeType":"YulAssignment","src":"6532:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6555:1:101","nodeType":"YulIdentifier","src":"6555:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6537:17:101","nodeType":"YulIdentifier","src":"6537:17:101"},"nativeSrc":"6537:20:101","nodeType":"YulFunctionCall","src":"6537:20:101"},"variableNames":[{"name":"x","nativeSrc":"6532:1:101","nodeType":"YulIdentifier","src":"6532:1:101"}]},{"nativeSrc":"6566:25:101","nodeType":"YulAssignment","src":"6566:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6589:1:101","nodeType":"YulIdentifier","src":"6589:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6571:17:101","nodeType":"YulIdentifier","src":"6571:17:101"},"nativeSrc":"6571:20:101","nodeType":"YulFunctionCall","src":"6571:20:101"},"variableNames":[{"name":"y","nativeSrc":"6566:1:101","nodeType":"YulIdentifier","src":"6566:1:101"}]},{"nativeSrc":"6600:16:101","nodeType":"YulAssignment","src":"6600:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6611:1:101","nodeType":"YulIdentifier","src":"6611:1:101"},{"name":"y","nativeSrc":"6614:1:101","nodeType":"YulIdentifier","src":"6614:1:101"}],"functionName":{"name":"add","nativeSrc":"6607:3:101","nodeType":"YulIdentifier","src":"6607:3:101"},"nativeSrc":"6607:9:101","nodeType":"YulFunctionCall","src":"6607:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6600:3:101","nodeType":"YulIdentifier","src":"6600:3:101"}]},{"body":{"nativeSrc":"6640:22:101","nodeType":"YulBlock","src":"6640:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6642:16:101","nodeType":"YulIdentifier","src":"6642:16:101"},"nativeSrc":"6642:18:101","nodeType":"YulFunctionCall","src":"6642:18:101"},"nativeSrc":"6642:18:101","nodeType":"YulExpressionStatement","src":"6642:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6632:1:101","nodeType":"YulIdentifier","src":"6632:1:101"},{"name":"sum","nativeSrc":"6635:3:101","nodeType":"YulIdentifier","src":"6635:3:101"}],"functionName":{"name":"gt","nativeSrc":"6629:2:101","nodeType":"YulIdentifier","src":"6629:2:101"},"nativeSrc":"6629:10:101","nodeType":"YulFunctionCall","src":"6629:10:101"},"nativeSrc":"6626:36:101","nodeType":"YulIf","src":"6626:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6478:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6509:1:101","nodeType":"YulTypedName","src":"6509:1:101","type":""},{"name":"y","nativeSrc":"6512:1:101","nodeType":"YulTypedName","src":"6512:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6518:3:101","nodeType":"YulTypedName","src":"6518:3:101","type":""}],"src":"6478:191:101"},{"body":{"nativeSrc":"6738:80:101","nodeType":"YulBlock","src":"6738:80:101","statements":[{"nativeSrc":"6748:22:101","nodeType":"YulAssignment","src":"6748:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6763:6:101","nodeType":"YulIdentifier","src":"6763:6:101"}],"functionName":{"name":"mload","nativeSrc":"6757:5:101","nodeType":"YulIdentifier","src":"6757:5:101"},"nativeSrc":"6757:13:101","nodeType":"YulFunctionCall","src":"6757:13:101"},"variableNames":[{"name":"value","nativeSrc":"6748:5:101","nodeType":"YulIdentifier","src":"6748:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6806:5:101","nodeType":"YulIdentifier","src":"6806:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6779:26:101","nodeType":"YulIdentifier","src":"6779:26:101"},"nativeSrc":"6779:33:101","nodeType":"YulFunctionCall","src":"6779:33:101"},"nativeSrc":"6779:33:101","nodeType":"YulExpressionStatement","src":"6779:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6675:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6716:6:101","nodeType":"YulTypedName","src":"6716:6:101","type":""},{"name":"end","nativeSrc":"6724:3:101","nodeType":"YulTypedName","src":"6724:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6732:5:101","nodeType":"YulTypedName","src":"6732:5:101","type":""}],"src":"6675:143:101"},{"body":{"nativeSrc":"6901:274:101","nodeType":"YulBlock","src":"6901:274:101","statements":[{"body":{"nativeSrc":"6947:83:101","nodeType":"YulBlock","src":"6947:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6949:77:101","nodeType":"YulIdentifier","src":"6949:77:101"},"nativeSrc":"6949:79:101","nodeType":"YulFunctionCall","src":"6949:79:101"},"nativeSrc":"6949:79:101","nodeType":"YulExpressionStatement","src":"6949:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6922:7:101","nodeType":"YulIdentifier","src":"6922:7:101"},{"name":"headStart","nativeSrc":"6931:9:101","nodeType":"YulIdentifier","src":"6931:9:101"}],"functionName":{"name":"sub","nativeSrc":"6918:3:101","nodeType":"YulIdentifier","src":"6918:3:101"},"nativeSrc":"6918:23:101","nodeType":"YulFunctionCall","src":"6918:23:101"},{"kind":"number","nativeSrc":"6943:2:101","nodeType":"YulLiteral","src":"6943:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6914:3:101","nodeType":"YulIdentifier","src":"6914:3:101"},"nativeSrc":"6914:32:101","nodeType":"YulFunctionCall","src":"6914:32:101"},"nativeSrc":"6911:119:101","nodeType":"YulIf","src":"6911:119:101"},{"nativeSrc":"7040:128:101","nodeType":"YulBlock","src":"7040:128:101","statements":[{"nativeSrc":"7055:15:101","nodeType":"YulVariableDeclaration","src":"7055:15:101","value":{"kind":"number","nativeSrc":"7069:1:101","nodeType":"YulLiteral","src":"7069:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7059:6:101","nodeType":"YulTypedName","src":"7059:6:101","type":""}]},{"nativeSrc":"7084:74:101","nodeType":"YulAssignment","src":"7084:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7130:9:101","nodeType":"YulIdentifier","src":"7130:9:101"},{"name":"offset","nativeSrc":"7141:6:101","nodeType":"YulIdentifier","src":"7141:6:101"}],"functionName":{"name":"add","nativeSrc":"7126:3:101","nodeType":"YulIdentifier","src":"7126:3:101"},"nativeSrc":"7126:22:101","nodeType":"YulFunctionCall","src":"7126:22:101"},{"name":"dataEnd","nativeSrc":"7150:7:101","nodeType":"YulIdentifier","src":"7150:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"7094:31:101","nodeType":"YulIdentifier","src":"7094:31:101"},"nativeSrc":"7094:64:101","nodeType":"YulFunctionCall","src":"7094:64:101"},"variableNames":[{"name":"value0","nativeSrc":"7084:6:101","nodeType":"YulIdentifier","src":"7084:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6824:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6871:9:101","nodeType":"YulTypedName","src":"6871:9:101","type":""},{"name":"dataEnd","nativeSrc":"6882:7:101","nodeType":"YulTypedName","src":"6882:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6894:6:101","nodeType":"YulTypedName","src":"6894:6:101","type":""}],"src":"6824:351:101"},{"body":{"nativeSrc":"7229:362:101","nodeType":"YulBlock","src":"7229:362:101","statements":[{"nativeSrc":"7239:25:101","nodeType":"YulAssignment","src":"7239:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7262:1:101","nodeType":"YulIdentifier","src":"7262:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7244:17:101","nodeType":"YulIdentifier","src":"7244:17:101"},"nativeSrc":"7244:20:101","nodeType":"YulFunctionCall","src":"7244:20:101"},"variableNames":[{"name":"x","nativeSrc":"7239:1:101","nodeType":"YulIdentifier","src":"7239:1:101"}]},{"nativeSrc":"7273:25:101","nodeType":"YulAssignment","src":"7273:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7296:1:101","nodeType":"YulIdentifier","src":"7296:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7278:17:101","nodeType":"YulIdentifier","src":"7278:17:101"},"nativeSrc":"7278:20:101","nodeType":"YulFunctionCall","src":"7278:20:101"},"variableNames":[{"name":"y","nativeSrc":"7273:1:101","nodeType":"YulIdentifier","src":"7273:1:101"}]},{"nativeSrc":"7307:28:101","nodeType":"YulVariableDeclaration","src":"7307:28:101","value":{"arguments":[{"name":"x","nativeSrc":"7330:1:101","nodeType":"YulIdentifier","src":"7330:1:101"},{"name":"y","nativeSrc":"7333:1:101","nodeType":"YulIdentifier","src":"7333:1:101"}],"functionName":{"name":"mul","nativeSrc":"7326:3:101","nodeType":"YulIdentifier","src":"7326:3:101"},"nativeSrc":"7326:9:101","nodeType":"YulFunctionCall","src":"7326:9:101"},"variables":[{"name":"product_raw","nativeSrc":"7311:11:101","nodeType":"YulTypedName","src":"7311:11:101","type":""}]},{"nativeSrc":"7344:41:101","nodeType":"YulAssignment","src":"7344:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"7373:11:101","nodeType":"YulIdentifier","src":"7373:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7355:17:101","nodeType":"YulIdentifier","src":"7355:17:101"},"nativeSrc":"7355:30:101","nodeType":"YulFunctionCall","src":"7355:30:101"},"variableNames":[{"name":"product","nativeSrc":"7344:7:101","nodeType":"YulIdentifier","src":"7344:7:101"}]},{"body":{"nativeSrc":"7562:22:101","nodeType":"YulBlock","src":"7562:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7564:16:101","nodeType":"YulIdentifier","src":"7564:16:101"},"nativeSrc":"7564:18:101","nodeType":"YulFunctionCall","src":"7564:18:101"},"nativeSrc":"7564:18:101","nodeType":"YulExpressionStatement","src":"7564:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7495:1:101","nodeType":"YulIdentifier","src":"7495:1:101"}],"functionName":{"name":"iszero","nativeSrc":"7488:6:101","nodeType":"YulIdentifier","src":"7488:6:101"},"nativeSrc":"7488:9:101","nodeType":"YulFunctionCall","src":"7488:9:101"},{"arguments":[{"name":"y","nativeSrc":"7518:1:101","nodeType":"YulIdentifier","src":"7518:1:101"},{"arguments":[{"name":"product","nativeSrc":"7525:7:101","nodeType":"YulIdentifier","src":"7525:7:101"},{"name":"x","nativeSrc":"7534:1:101","nodeType":"YulIdentifier","src":"7534:1:101"}],"functionName":{"name":"div","nativeSrc":"7521:3:101","nodeType":"YulIdentifier","src":"7521:3:101"},"nativeSrc":"7521:15:101","nodeType":"YulFunctionCall","src":"7521:15:101"}],"functionName":{"name":"eq","nativeSrc":"7515:2:101","nodeType":"YulIdentifier","src":"7515:2:101"},"nativeSrc":"7515:22:101","nodeType":"YulFunctionCall","src":"7515:22:101"}],"functionName":{"name":"or","nativeSrc":"7468:2:101","nodeType":"YulIdentifier","src":"7468:2:101"},"nativeSrc":"7468:83:101","nodeType":"YulFunctionCall","src":"7468:83:101"}],"functionName":{"name":"iszero","nativeSrc":"7448:6:101","nodeType":"YulIdentifier","src":"7448:6:101"},"nativeSrc":"7448:113:101","nodeType":"YulFunctionCall","src":"7448:113:101"},"nativeSrc":"7445:139:101","nodeType":"YulIf","src":"7445:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"7181:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7212:1:101","nodeType":"YulTypedName","src":"7212:1:101","type":""},{"name":"y","nativeSrc":"7215:1:101","nodeType":"YulTypedName","src":"7215:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7221:7:101","nodeType":"YulTypedName","src":"7221:7:101","type":""}],"src":"7181:410:101"},{"body":{"nativeSrc":"7640:43:101","nodeType":"YulBlock","src":"7640:43:101","statements":[{"nativeSrc":"7650:27:101","nodeType":"YulAssignment","src":"7650:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7665:5:101","nodeType":"YulIdentifier","src":"7665:5:101"},{"kind":"number","nativeSrc":"7672:4:101","nodeType":"YulLiteral","src":"7672:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7661:3:101","nodeType":"YulIdentifier","src":"7661:3:101"},"nativeSrc":"7661:16:101","nodeType":"YulFunctionCall","src":"7661:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7650:7:101","nodeType":"YulIdentifier","src":"7650:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7597:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7622:5:101","nodeType":"YulTypedName","src":"7622:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7632:7:101","nodeType":"YulTypedName","src":"7632:7:101","type":""}],"src":"7597:86:101"},{"body":{"nativeSrc":"7730:77:101","nodeType":"YulBlock","src":"7730:77:101","statements":[{"body":{"nativeSrc":"7785:16:101","nodeType":"YulBlock","src":"7785:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7794:1:101","nodeType":"YulLiteral","src":"7794:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7797:1:101","nodeType":"YulLiteral","src":"7797:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7787:6:101","nodeType":"YulIdentifier","src":"7787:6:101"},"nativeSrc":"7787:12:101","nodeType":"YulFunctionCall","src":"7787:12:101"},"nativeSrc":"7787:12:101","nodeType":"YulExpressionStatement","src":"7787:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7753:5:101","nodeType":"YulIdentifier","src":"7753:5:101"},{"arguments":[{"name":"value","nativeSrc":"7776:5:101","nodeType":"YulIdentifier","src":"7776:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7760:15:101","nodeType":"YulIdentifier","src":"7760:15:101"},"nativeSrc":"7760:22:101","nodeType":"YulFunctionCall","src":"7760:22:101"}],"functionName":{"name":"eq","nativeSrc":"7750:2:101","nodeType":"YulIdentifier","src":"7750:2:101"},"nativeSrc":"7750:33:101","nodeType":"YulFunctionCall","src":"7750:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7743:6:101","nodeType":"YulIdentifier","src":"7743:6:101"},"nativeSrc":"7743:41:101","nodeType":"YulFunctionCall","src":"7743:41:101"},"nativeSrc":"7740:61:101","nodeType":"YulIf","src":"7740:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7689:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7723:5:101","nodeType":"YulTypedName","src":"7723:5:101","type":""}],"src":"7689:118:101"},{"body":{"nativeSrc":"7874:78:101","nodeType":"YulBlock","src":"7874:78:101","statements":[{"nativeSrc":"7884:22:101","nodeType":"YulAssignment","src":"7884:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7899:6:101","nodeType":"YulIdentifier","src":"7899:6:101"}],"functionName":{"name":"mload","nativeSrc":"7893:5:101","nodeType":"YulIdentifier","src":"7893:5:101"},"nativeSrc":"7893:13:101","nodeType":"YulFunctionCall","src":"7893:13:101"},"variableNames":[{"name":"value","nativeSrc":"7884:5:101","nodeType":"YulIdentifier","src":"7884:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7940:5:101","nodeType":"YulIdentifier","src":"7940:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7915:24:101","nodeType":"YulIdentifier","src":"7915:24:101"},"nativeSrc":"7915:31:101","nodeType":"YulFunctionCall","src":"7915:31:101"},"nativeSrc":"7915:31:101","nodeType":"YulExpressionStatement","src":"7915:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7813:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7852:6:101","nodeType":"YulTypedName","src":"7852:6:101","type":""},{"name":"end","nativeSrc":"7860:3:101","nodeType":"YulTypedName","src":"7860:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7868:5:101","nodeType":"YulTypedName","src":"7868:5:101","type":""}],"src":"7813:139:101"},{"body":{"nativeSrc":"8033:272:101","nodeType":"YulBlock","src":"8033:272:101","statements":[{"body":{"nativeSrc":"8079:83:101","nodeType":"YulBlock","src":"8079:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8081:77:101","nodeType":"YulIdentifier","src":"8081:77:101"},"nativeSrc":"8081:79:101","nodeType":"YulFunctionCall","src":"8081:79:101"},"nativeSrc":"8081:79:101","nodeType":"YulExpressionStatement","src":"8081:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8054:7:101","nodeType":"YulIdentifier","src":"8054:7:101"},{"name":"headStart","nativeSrc":"8063:9:101","nodeType":"YulIdentifier","src":"8063:9:101"}],"functionName":{"name":"sub","nativeSrc":"8050:3:101","nodeType":"YulIdentifier","src":"8050:3:101"},"nativeSrc":"8050:23:101","nodeType":"YulFunctionCall","src":"8050:23:101"},{"kind":"number","nativeSrc":"8075:2:101","nodeType":"YulLiteral","src":"8075:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8046:3:101","nodeType":"YulIdentifier","src":"8046:3:101"},"nativeSrc":"8046:32:101","nodeType":"YulFunctionCall","src":"8046:32:101"},"nativeSrc":"8043:119:101","nodeType":"YulIf","src":"8043:119:101"},{"nativeSrc":"8172:126:101","nodeType":"YulBlock","src":"8172:126:101","statements":[{"nativeSrc":"8187:15:101","nodeType":"YulVariableDeclaration","src":"8187:15:101","value":{"kind":"number","nativeSrc":"8201:1:101","nodeType":"YulLiteral","src":"8201:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8191:6:101","nodeType":"YulTypedName","src":"8191:6:101","type":""}]},{"nativeSrc":"8216:72:101","nodeType":"YulAssignment","src":"8216:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8260:9:101","nodeType":"YulIdentifier","src":"8260:9:101"},{"name":"offset","nativeSrc":"8271:6:101","nodeType":"YulIdentifier","src":"8271:6:101"}],"functionName":{"name":"add","nativeSrc":"8256:3:101","nodeType":"YulIdentifier","src":"8256:3:101"},"nativeSrc":"8256:22:101","nodeType":"YulFunctionCall","src":"8256:22:101"},{"name":"dataEnd","nativeSrc":"8280:7:101","nodeType":"YulIdentifier","src":"8280:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"8226:29:101","nodeType":"YulIdentifier","src":"8226:29:101"},"nativeSrc":"8226:62:101","nodeType":"YulFunctionCall","src":"8226:62:101"},"variableNames":[{"name":"value0","nativeSrc":"8216:6:101","nodeType":"YulIdentifier","src":"8216:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7958:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8003:9:101","nodeType":"YulTypedName","src":"8003:9:101","type":""},{"name":"dataEnd","nativeSrc":"8014:7:101","nodeType":"YulTypedName","src":"8014:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8026:6:101","nodeType":"YulTypedName","src":"8026:6:101","type":""}],"src":"7958:347:101"},{"body":{"nativeSrc":"8362:51:101","nodeType":"YulBlock","src":"8362:51:101","statements":[{"nativeSrc":"8372:34:101","nodeType":"YulAssignment","src":"8372:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"8397:1:101","nodeType":"YulLiteral","src":"8397:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"8400:5:101","nodeType":"YulIdentifier","src":"8400:5:101"}],"functionName":{"name":"shr","nativeSrc":"8393:3:101","nodeType":"YulIdentifier","src":"8393:3:101"},"nativeSrc":"8393:13:101","nodeType":"YulFunctionCall","src":"8393:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"8372:8:101","nodeType":"YulIdentifier","src":"8372:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"8311:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8343:5:101","nodeType":"YulTypedName","src":"8343:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8353:8:101","nodeType":"YulTypedName","src":"8353:8:101","type":""}],"src":"8311:102:101"},{"body":{"nativeSrc":"8492:775:101","nodeType":"YulBlock","src":"8492:775:101","statements":[{"nativeSrc":"8502:15:101","nodeType":"YulAssignment","src":"8502:15:101","value":{"name":"_power","nativeSrc":"8511:6:101","nodeType":"YulIdentifier","src":"8511:6:101"},"variableNames":[{"name":"power","nativeSrc":"8502:5:101","nodeType":"YulIdentifier","src":"8502:5:101"}]},{"nativeSrc":"8526:14:101","nodeType":"YulAssignment","src":"8526:14:101","value":{"name":"_base","nativeSrc":"8535:5:101","nodeType":"YulIdentifier","src":"8535:5:101"},"variableNames":[{"name":"base","nativeSrc":"8526:4:101","nodeType":"YulIdentifier","src":"8526:4:101"}]},{"body":{"nativeSrc":"8584:677:101","nodeType":"YulBlock","src":"8584:677:101","statements":[{"body":{"nativeSrc":"8672:22:101","nodeType":"YulBlock","src":"8672:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8674:16:101","nodeType":"YulIdentifier","src":"8674:16:101"},"nativeSrc":"8674:18:101","nodeType":"YulFunctionCall","src":"8674:18:101"},"nativeSrc":"8674:18:101","nodeType":"YulExpressionStatement","src":"8674:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8650:4:101","nodeType":"YulIdentifier","src":"8650:4:101"},{"arguments":[{"name":"max","nativeSrc":"8660:3:101","nodeType":"YulIdentifier","src":"8660:3:101"},{"name":"base","nativeSrc":"8665:4:101","nodeType":"YulIdentifier","src":"8665:4:101"}],"functionName":{"name":"div","nativeSrc":"8656:3:101","nodeType":"YulIdentifier","src":"8656:3:101"},"nativeSrc":"8656:14:101","nodeType":"YulFunctionCall","src":"8656:14:101"}],"functionName":{"name":"gt","nativeSrc":"8647:2:101","nodeType":"YulIdentifier","src":"8647:2:101"},"nativeSrc":"8647:24:101","nodeType":"YulFunctionCall","src":"8647:24:101"},"nativeSrc":"8644:50:101","nodeType":"YulIf","src":"8644:50:101"},{"body":{"nativeSrc":"8739:419:101","nodeType":"YulBlock","src":"8739:419:101","statements":[{"nativeSrc":"9119:25:101","nodeType":"YulAssignment","src":"9119:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9132:5:101","nodeType":"YulIdentifier","src":"9132:5:101"},{"name":"base","nativeSrc":"9139:4:101","nodeType":"YulIdentifier","src":"9139:4:101"}],"functionName":{"name":"mul","nativeSrc":"9128:3:101","nodeType":"YulIdentifier","src":"9128:3:101"},"nativeSrc":"9128:16:101","nodeType":"YulFunctionCall","src":"9128:16:101"},"variableNames":[{"name":"power","nativeSrc":"9119:5:101","nodeType":"YulIdentifier","src":"9119:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8714:8:101","nodeType":"YulIdentifier","src":"8714:8:101"},{"kind":"number","nativeSrc":"8724:1:101","nodeType":"YulLiteral","src":"8724:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8710:3:101","nodeType":"YulIdentifier","src":"8710:3:101"},"nativeSrc":"8710:16:101","nodeType":"YulFunctionCall","src":"8710:16:101"},"nativeSrc":"8707:451:101","nodeType":"YulIf","src":"8707:451:101"},{"nativeSrc":"9171:23:101","nodeType":"YulAssignment","src":"9171:23:101","value":{"arguments":[{"name":"base","nativeSrc":"9183:4:101","nodeType":"YulIdentifier","src":"9183:4:101"},{"name":"base","nativeSrc":"9189:4:101","nodeType":"YulIdentifier","src":"9189:4:101"}],"functionName":{"name":"mul","nativeSrc":"9179:3:101","nodeType":"YulIdentifier","src":"9179:3:101"},"nativeSrc":"9179:15:101","nodeType":"YulFunctionCall","src":"9179:15:101"},"variableNames":[{"name":"base","nativeSrc":"9171:4:101","nodeType":"YulIdentifier","src":"9171:4:101"}]},{"nativeSrc":"9207:44:101","nodeType":"YulAssignment","src":"9207:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9242:8:101","nodeType":"YulIdentifier","src":"9242:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"9219:22:101","nodeType":"YulIdentifier","src":"9219:22:101"},"nativeSrc":"9219:32:101","nodeType":"YulFunctionCall","src":"9219:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"9207:8:101","nodeType":"YulIdentifier","src":"9207:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8560:8:101","nodeType":"YulIdentifier","src":"8560:8:101"},{"kind":"number","nativeSrc":"8570:1:101","nodeType":"YulLiteral","src":"8570:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"8557:2:101","nodeType":"YulIdentifier","src":"8557:2:101"},"nativeSrc":"8557:15:101","nodeType":"YulFunctionCall","src":"8557:15:101"},"nativeSrc":"8549:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8573:2:101","nodeType":"YulBlock","src":"8573:2:101","statements":[]},"pre":{"nativeSrc":"8553:3:101","nodeType":"YulBlock","src":"8553:3:101","statements":[]},"src":"8549:712:101"}]},"name":"checked_exp_helper","nativeSrc":"8419:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"8447:6:101","nodeType":"YulTypedName","src":"8447:6:101","type":""},{"name":"_base","nativeSrc":"8455:5:101","nodeType":"YulTypedName","src":"8455:5:101","type":""},{"name":"exponent","nativeSrc":"8462:8:101","nodeType":"YulTypedName","src":"8462:8:101","type":""},{"name":"max","nativeSrc":"8472:3:101","nodeType":"YulTypedName","src":"8472:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8480:5:101","nodeType":"YulTypedName","src":"8480:5:101","type":""},{"name":"base","nativeSrc":"8487:4:101","nodeType":"YulTypedName","src":"8487:4:101","type":""}],"src":"8419:848:101"},{"body":{"nativeSrc":"9333:1013:101","nodeType":"YulBlock","src":"9333:1013:101","statements":[{"body":{"nativeSrc":"9528:20:101","nodeType":"YulBlock","src":"9528:20:101","statements":[{"nativeSrc":"9530:10:101","nodeType":"YulAssignment","src":"9530:10:101","value":{"kind":"number","nativeSrc":"9539:1:101","nodeType":"YulLiteral","src":"9539:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9530:5:101","nodeType":"YulIdentifier","src":"9530:5:101"}]},{"nativeSrc":"9541:5:101","nodeType":"YulLeave","src":"9541:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9518:8:101","nodeType":"YulIdentifier","src":"9518:8:101"}],"functionName":{"name":"iszero","nativeSrc":"9511:6:101","nodeType":"YulIdentifier","src":"9511:6:101"},"nativeSrc":"9511:16:101","nodeType":"YulFunctionCall","src":"9511:16:101"},"nativeSrc":"9508:40:101","nodeType":"YulIf","src":"9508:40:101"},{"body":{"nativeSrc":"9573:20:101","nodeType":"YulBlock","src":"9573:20:101","statements":[{"nativeSrc":"9575:10:101","nodeType":"YulAssignment","src":"9575:10:101","value":{"kind":"number","nativeSrc":"9584:1:101","nodeType":"YulLiteral","src":"9584:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9575:5:101","nodeType":"YulIdentifier","src":"9575:5:101"}]},{"nativeSrc":"9586:5:101","nodeType":"YulLeave","src":"9586:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9567:4:101","nodeType":"YulIdentifier","src":"9567:4:101"}],"functionName":{"name":"iszero","nativeSrc":"9560:6:101","nodeType":"YulIdentifier","src":"9560:6:101"},"nativeSrc":"9560:12:101","nodeType":"YulFunctionCall","src":"9560:12:101"},"nativeSrc":"9557:36:101","nodeType":"YulIf","src":"9557:36:101"},{"cases":[{"body":{"nativeSrc":"9703:20:101","nodeType":"YulBlock","src":"9703:20:101","statements":[{"nativeSrc":"9705:10:101","nodeType":"YulAssignment","src":"9705:10:101","value":{"kind":"number","nativeSrc":"9714:1:101","nodeType":"YulLiteral","src":"9714:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9705:5:101","nodeType":"YulIdentifier","src":"9705:5:101"}]},{"nativeSrc":"9716:5:101","nodeType":"YulLeave","src":"9716:5:101"}]},"nativeSrc":"9696:27:101","nodeType":"YulCase","src":"9696:27:101","value":{"kind":"number","nativeSrc":"9701:1:101","nodeType":"YulLiteral","src":"9701:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9747:176:101","nodeType":"YulBlock","src":"9747:176:101","statements":[{"body":{"nativeSrc":"9782:22:101","nodeType":"YulBlock","src":"9782:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9784:16:101","nodeType":"YulIdentifier","src":"9784:16:101"},"nativeSrc":"9784:18:101","nodeType":"YulFunctionCall","src":"9784:18:101"},"nativeSrc":"9784:18:101","nodeType":"YulExpressionStatement","src":"9784:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9767:8:101","nodeType":"YulIdentifier","src":"9767:8:101"},{"kind":"number","nativeSrc":"9777:3:101","nodeType":"YulLiteral","src":"9777:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9764:2:101","nodeType":"YulIdentifier","src":"9764:2:101"},"nativeSrc":"9764:17:101","nodeType":"YulFunctionCall","src":"9764:17:101"},"nativeSrc":"9761:43:101","nodeType":"YulIf","src":"9761:43:101"},{"nativeSrc":"9817:25:101","nodeType":"YulAssignment","src":"9817:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9830:1:101","nodeType":"YulLiteral","src":"9830:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9833:8:101","nodeType":"YulIdentifier","src":"9833:8:101"}],"functionName":{"name":"exp","nativeSrc":"9826:3:101","nodeType":"YulIdentifier","src":"9826:3:101"},"nativeSrc":"9826:16:101","nodeType":"YulFunctionCall","src":"9826:16:101"},"variableNames":[{"name":"power","nativeSrc":"9817:5:101","nodeType":"YulIdentifier","src":"9817:5:101"}]},{"body":{"nativeSrc":"9873:22:101","nodeType":"YulBlock","src":"9873:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9875:16:101","nodeType":"YulIdentifier","src":"9875:16:101"},"nativeSrc":"9875:18:101","nodeType":"YulFunctionCall","src":"9875:18:101"},"nativeSrc":"9875:18:101","nodeType":"YulExpressionStatement","src":"9875:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9861:5:101","nodeType":"YulIdentifier","src":"9861:5:101"},{"name":"max","nativeSrc":"9868:3:101","nodeType":"YulIdentifier","src":"9868:3:101"}],"functionName":{"name":"gt","nativeSrc":"9858:2:101","nodeType":"YulIdentifier","src":"9858:2:101"},"nativeSrc":"9858:14:101","nodeType":"YulFunctionCall","src":"9858:14:101"},"nativeSrc":"9855:40:101","nodeType":"YulIf","src":"9855:40:101"},{"nativeSrc":"9908:5:101","nodeType":"YulLeave","src":"9908:5:101"}]},"nativeSrc":"9732:191:101","nodeType":"YulCase","src":"9732:191:101","value":{"kind":"number","nativeSrc":"9737:1:101","nodeType":"YulLiteral","src":"9737:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9653:4:101","nodeType":"YulIdentifier","src":"9653:4:101"},"nativeSrc":"9646:277:101","nodeType":"YulSwitch","src":"9646:277:101"},{"body":{"nativeSrc":"10055:123:101","nodeType":"YulBlock","src":"10055:123:101","statements":[{"nativeSrc":"10069:28:101","nodeType":"YulAssignment","src":"10069:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10082:4:101","nodeType":"YulIdentifier","src":"10082:4:101"},{"name":"exponent","nativeSrc":"10088:8:101","nodeType":"YulIdentifier","src":"10088:8:101"}],"functionName":{"name":"exp","nativeSrc":"10078:3:101","nodeType":"YulIdentifier","src":"10078:3:101"},"nativeSrc":"10078:19:101","nodeType":"YulFunctionCall","src":"10078:19:101"},"variableNames":[{"name":"power","nativeSrc":"10069:5:101","nodeType":"YulIdentifier","src":"10069:5:101"}]},{"body":{"nativeSrc":"10128:22:101","nodeType":"YulBlock","src":"10128:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10130:16:101","nodeType":"YulIdentifier","src":"10130:16:101"},"nativeSrc":"10130:18:101","nodeType":"YulFunctionCall","src":"10130:18:101"},"nativeSrc":"10130:18:101","nodeType":"YulExpressionStatement","src":"10130:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10116:5:101","nodeType":"YulIdentifier","src":"10116:5:101"},{"name":"max","nativeSrc":"10123:3:101","nodeType":"YulIdentifier","src":"10123:3:101"}],"functionName":{"name":"gt","nativeSrc":"10113:2:101","nodeType":"YulIdentifier","src":"10113:2:101"},"nativeSrc":"10113:14:101","nodeType":"YulFunctionCall","src":"10113:14:101"},"nativeSrc":"10110:40:101","nodeType":"YulIf","src":"10110:40:101"},{"nativeSrc":"10163:5:101","nodeType":"YulLeave","src":"10163:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9958:4:101","nodeType":"YulIdentifier","src":"9958:4:101"},{"kind":"number","nativeSrc":"9964:2:101","nodeType":"YulLiteral","src":"9964:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9955:2:101","nodeType":"YulIdentifier","src":"9955:2:101"},"nativeSrc":"9955:12:101","nodeType":"YulFunctionCall","src":"9955:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9972:8:101","nodeType":"YulIdentifier","src":"9972:8:101"},{"kind":"number","nativeSrc":"9982:2:101","nodeType":"YulLiteral","src":"9982:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9969:2:101","nodeType":"YulIdentifier","src":"9969:2:101"},"nativeSrc":"9969:16:101","nodeType":"YulFunctionCall","src":"9969:16:101"}],"functionName":{"name":"and","nativeSrc":"9951:3:101","nodeType":"YulIdentifier","src":"9951:3:101"},"nativeSrc":"9951:35:101","nodeType":"YulFunctionCall","src":"9951:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10007:4:101","nodeType":"YulIdentifier","src":"10007:4:101"},{"kind":"number","nativeSrc":"10013:3:101","nodeType":"YulLiteral","src":"10013:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"10004:2:101","nodeType":"YulIdentifier","src":"10004:2:101"},"nativeSrc":"10004:13:101","nodeType":"YulFunctionCall","src":"10004:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"10022:8:101","nodeType":"YulIdentifier","src":"10022:8:101"},{"kind":"number","nativeSrc":"10032:2:101","nodeType":"YulLiteral","src":"10032:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10019:2:101","nodeType":"YulIdentifier","src":"10019:2:101"},"nativeSrc":"10019:16:101","nodeType":"YulFunctionCall","src":"10019:16:101"}],"functionName":{"name":"and","nativeSrc":"10000:3:101","nodeType":"YulIdentifier","src":"10000:3:101"},"nativeSrc":"10000:36:101","nodeType":"YulFunctionCall","src":"10000:36:101"}],"functionName":{"name":"or","nativeSrc":"9935:2:101","nodeType":"YulIdentifier","src":"9935:2:101"},"nativeSrc":"9935:111:101","nodeType":"YulFunctionCall","src":"9935:111:101"},"nativeSrc":"9932:246:101","nodeType":"YulIf","src":"9932:246:101"},{"nativeSrc":"10188:57:101","nodeType":"YulAssignment","src":"10188:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"10222:1:101","nodeType":"YulLiteral","src":"10222:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"10225:4:101","nodeType":"YulIdentifier","src":"10225:4:101"},{"name":"exponent","nativeSrc":"10231:8:101","nodeType":"YulIdentifier","src":"10231:8:101"},{"name":"max","nativeSrc":"10241:3:101","nodeType":"YulIdentifier","src":"10241:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"10203:18:101","nodeType":"YulIdentifier","src":"10203:18:101"},"nativeSrc":"10203:42:101","nodeType":"YulFunctionCall","src":"10203:42:101"},"variableNames":[{"name":"power","nativeSrc":"10188:5:101","nodeType":"YulIdentifier","src":"10188:5:101"},{"name":"base","nativeSrc":"10195:4:101","nodeType":"YulIdentifier","src":"10195:4:101"}]},{"body":{"nativeSrc":"10284:22:101","nodeType":"YulBlock","src":"10284:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10286:16:101","nodeType":"YulIdentifier","src":"10286:16:101"},"nativeSrc":"10286:18:101","nodeType":"YulFunctionCall","src":"10286:18:101"},"nativeSrc":"10286:18:101","nodeType":"YulExpressionStatement","src":"10286:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10261:5:101","nodeType":"YulIdentifier","src":"10261:5:101"},{"arguments":[{"name":"max","nativeSrc":"10272:3:101","nodeType":"YulIdentifier","src":"10272:3:101"},{"name":"base","nativeSrc":"10277:4:101","nodeType":"YulIdentifier","src":"10277:4:101"}],"functionName":{"name":"div","nativeSrc":"10268:3:101","nodeType":"YulIdentifier","src":"10268:3:101"},"nativeSrc":"10268:14:101","nodeType":"YulFunctionCall","src":"10268:14:101"}],"functionName":{"name":"gt","nativeSrc":"10258:2:101","nodeType":"YulIdentifier","src":"10258:2:101"},"nativeSrc":"10258:25:101","nodeType":"YulFunctionCall","src":"10258:25:101"},"nativeSrc":"10255:51:101","nodeType":"YulIf","src":"10255:51:101"},{"nativeSrc":"10315:25:101","nodeType":"YulAssignment","src":"10315:25:101","value":{"arguments":[{"name":"power","nativeSrc":"10328:5:101","nodeType":"YulIdentifier","src":"10328:5:101"},{"name":"base","nativeSrc":"10335:4:101","nodeType":"YulIdentifier","src":"10335:4:101"}],"functionName":{"name":"mul","nativeSrc":"10324:3:101","nodeType":"YulIdentifier","src":"10324:3:101"},"nativeSrc":"10324:16:101","nodeType":"YulFunctionCall","src":"10324:16:101"},"variableNames":[{"name":"power","nativeSrc":"10315:5:101","nodeType":"YulIdentifier","src":"10315:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"9273:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9303:4:101","nodeType":"YulTypedName","src":"9303:4:101","type":""},{"name":"exponent","nativeSrc":"9309:8:101","nodeType":"YulTypedName","src":"9309:8:101","type":""},{"name":"max","nativeSrc":"9319:3:101","nodeType":"YulTypedName","src":"9319:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9327:5:101","nodeType":"YulTypedName","src":"9327:5:101","type":""}],"src":"9273:1073:101"},{"body":{"nativeSrc":"10418:219:101","nodeType":"YulBlock","src":"10418:219:101","statements":[{"nativeSrc":"10428:31:101","nodeType":"YulAssignment","src":"10428:31:101","value":{"arguments":[{"name":"base","nativeSrc":"10454:4:101","nodeType":"YulIdentifier","src":"10454:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10436:17:101","nodeType":"YulIdentifier","src":"10436:17:101"},"nativeSrc":"10436:23:101","nodeType":"YulFunctionCall","src":"10436:23:101"},"variableNames":[{"name":"base","nativeSrc":"10428:4:101","nodeType":"YulIdentifier","src":"10428:4:101"}]},{"nativeSrc":"10468:39:101","nodeType":"YulAssignment","src":"10468:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10498:8:101","nodeType":"YulIdentifier","src":"10498:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10480:17:101","nodeType":"YulIdentifier","src":"10480:17:101"},"nativeSrc":"10480:27:101","nodeType":"YulFunctionCall","src":"10480:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"10468:8:101","nodeType":"YulIdentifier","src":"10468:8:101"}]},{"nativeSrc":"10517:113:101","nodeType":"YulAssignment","src":"10517:113:101","value":{"arguments":[{"name":"base","nativeSrc":"10547:4:101","nodeType":"YulIdentifier","src":"10547:4:101"},{"name":"exponent","nativeSrc":"10553:8:101","nodeType":"YulIdentifier","src":"10553:8:101"},{"kind":"number","nativeSrc":"10563:66:101","nodeType":"YulLiteral","src":"10563:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"10526:20:101","nodeType":"YulIdentifier","src":"10526:20:101"},"nativeSrc":"10526:104:101","nodeType":"YulFunctionCall","src":"10526:104:101"},"variableNames":[{"name":"power","nativeSrc":"10517:5:101","nodeType":"YulIdentifier","src":"10517:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"10352:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10393:4:101","nodeType":"YulTypedName","src":"10393:4:101","type":""},{"name":"exponent","nativeSrc":"10399:8:101","nodeType":"YulTypedName","src":"10399:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10412:5:101","nodeType":"YulTypedName","src":"10412:5:101","type":""}],"src":"10352:285:101"},{"body":{"nativeSrc":"10702:40:101","nodeType":"YulBlock","src":"10702:40:101","statements":[{"nativeSrc":"10713:22:101","nodeType":"YulAssignment","src":"10713:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10729:5:101","nodeType":"YulIdentifier","src":"10729:5:101"}],"functionName":{"name":"mload","nativeSrc":"10723:5:101","nodeType":"YulIdentifier","src":"10723:5:101"},"nativeSrc":"10723:12:101","nodeType":"YulFunctionCall","src":"10723:12:101"},"variableNames":[{"name":"length","nativeSrc":"10713:6:101","nodeType":"YulIdentifier","src":"10713:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10643:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10685:5:101","nodeType":"YulTypedName","src":"10685:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10695:6:101","nodeType":"YulTypedName","src":"10695:6:101","type":""}],"src":"10643:99:101"},{"body":{"nativeSrc":"10844:73:101","nodeType":"YulBlock","src":"10844:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10861:3:101","nodeType":"YulIdentifier","src":"10861:3:101"},{"name":"length","nativeSrc":"10866:6:101","nodeType":"YulIdentifier","src":"10866:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10854:6:101","nodeType":"YulIdentifier","src":"10854:6:101"},"nativeSrc":"10854:19:101","nodeType":"YulFunctionCall","src":"10854:19:101"},"nativeSrc":"10854:19:101","nodeType":"YulExpressionStatement","src":"10854:19:101"},{"nativeSrc":"10882:29:101","nodeType":"YulAssignment","src":"10882:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10901:3:101","nodeType":"YulIdentifier","src":"10901:3:101"},{"kind":"number","nativeSrc":"10906:4:101","nodeType":"YulLiteral","src":"10906:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10897:3:101","nodeType":"YulIdentifier","src":"10897:3:101"},"nativeSrc":"10897:14:101","nodeType":"YulFunctionCall","src":"10897:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10882:11:101","nodeType":"YulIdentifier","src":"10882:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10748:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10816:3:101","nodeType":"YulTypedName","src":"10816:3:101","type":""},{"name":"length","nativeSrc":"10821:6:101","nodeType":"YulTypedName","src":"10821:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10832:11:101","nodeType":"YulTypedName","src":"10832:11:101","type":""}],"src":"10748:169:101"},{"body":{"nativeSrc":"10985:77:101","nodeType":"YulBlock","src":"10985:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11002:3:101","nodeType":"YulIdentifier","src":"11002:3:101"},{"name":"src","nativeSrc":"11007:3:101","nodeType":"YulIdentifier","src":"11007:3:101"},{"name":"length","nativeSrc":"11012:6:101","nodeType":"YulIdentifier","src":"11012:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10996:5:101","nodeType":"YulIdentifier","src":"10996:5:101"},"nativeSrc":"10996:23:101","nodeType":"YulFunctionCall","src":"10996:23:101"},"nativeSrc":"10996:23:101","nodeType":"YulExpressionStatement","src":"10996:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11039:3:101","nodeType":"YulIdentifier","src":"11039:3:101"},{"name":"length","nativeSrc":"11044:6:101","nodeType":"YulIdentifier","src":"11044:6:101"}],"functionName":{"name":"add","nativeSrc":"11035:3:101","nodeType":"YulIdentifier","src":"11035:3:101"},"nativeSrc":"11035:16:101","nodeType":"YulFunctionCall","src":"11035:16:101"},{"kind":"number","nativeSrc":"11053:1:101","nodeType":"YulLiteral","src":"11053:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11028:6:101","nodeType":"YulIdentifier","src":"11028:6:101"},"nativeSrc":"11028:27:101","nodeType":"YulFunctionCall","src":"11028:27:101"},"nativeSrc":"11028:27:101","nodeType":"YulExpressionStatement","src":"11028:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10923:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10967:3:101","nodeType":"YulTypedName","src":"10967:3:101","type":""},{"name":"dst","nativeSrc":"10972:3:101","nodeType":"YulTypedName","src":"10972:3:101","type":""},{"name":"length","nativeSrc":"10977:6:101","nodeType":"YulTypedName","src":"10977:6:101","type":""}],"src":"10923:139:101"},{"body":{"nativeSrc":"11116:54:101","nodeType":"YulBlock","src":"11116:54:101","statements":[{"nativeSrc":"11126:38:101","nodeType":"YulAssignment","src":"11126:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11144:5:101","nodeType":"YulIdentifier","src":"11144:5:101"},{"kind":"number","nativeSrc":"11151:2:101","nodeType":"YulLiteral","src":"11151:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11140:3:101","nodeType":"YulIdentifier","src":"11140:3:101"},"nativeSrc":"11140:14:101","nodeType":"YulFunctionCall","src":"11140:14:101"},{"arguments":[{"kind":"number","nativeSrc":"11160:2:101","nodeType":"YulLiteral","src":"11160:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11156:3:101","nodeType":"YulIdentifier","src":"11156:3:101"},"nativeSrc":"11156:7:101","nodeType":"YulFunctionCall","src":"11156:7:101"}],"functionName":{"name":"and","nativeSrc":"11136:3:101","nodeType":"YulIdentifier","src":"11136:3:101"},"nativeSrc":"11136:28:101","nodeType":"YulFunctionCall","src":"11136:28:101"},"variableNames":[{"name":"result","nativeSrc":"11126:6:101","nodeType":"YulIdentifier","src":"11126:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11068:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11099:5:101","nodeType":"YulTypedName","src":"11099:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"11109:6:101","nodeType":"YulTypedName","src":"11109:6:101","type":""}],"src":"11068:102:101"},{"body":{"nativeSrc":"11268:285:101","nodeType":"YulBlock","src":"11268:285:101","statements":[{"nativeSrc":"11278:53:101","nodeType":"YulVariableDeclaration","src":"11278:53:101","value":{"arguments":[{"name":"value","nativeSrc":"11325:5:101","nodeType":"YulIdentifier","src":"11325:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11292:32:101","nodeType":"YulIdentifier","src":"11292:32:101"},"nativeSrc":"11292:39:101","nodeType":"YulFunctionCall","src":"11292:39:101"},"variables":[{"name":"length","nativeSrc":"11282:6:101","nodeType":"YulTypedName","src":"11282:6:101","type":""}]},{"nativeSrc":"11340:78:101","nodeType":"YulAssignment","src":"11340:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"11406:3:101","nodeType":"YulIdentifier","src":"11406:3:101"},{"name":"length","nativeSrc":"11411:6:101","nodeType":"YulIdentifier","src":"11411:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11347:58:101","nodeType":"YulIdentifier","src":"11347:58:101"},"nativeSrc":"11347:71:101","nodeType":"YulFunctionCall","src":"11347:71:101"},"variableNames":[{"name":"pos","nativeSrc":"11340:3:101","nodeType":"YulIdentifier","src":"11340:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11466:5:101","nodeType":"YulIdentifier","src":"11466:5:101"},{"kind":"number","nativeSrc":"11473:4:101","nodeType":"YulLiteral","src":"11473:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11462:3:101","nodeType":"YulIdentifier","src":"11462:3:101"},"nativeSrc":"11462:16:101","nodeType":"YulFunctionCall","src":"11462:16:101"},{"name":"pos","nativeSrc":"11480:3:101","nodeType":"YulIdentifier","src":"11480:3:101"},{"name":"length","nativeSrc":"11485:6:101","nodeType":"YulIdentifier","src":"11485:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11427:34:101","nodeType":"YulIdentifier","src":"11427:34:101"},"nativeSrc":"11427:65:101","nodeType":"YulFunctionCall","src":"11427:65:101"},"nativeSrc":"11427:65:101","nodeType":"YulExpressionStatement","src":"11427:65:101"},{"nativeSrc":"11501:46:101","nodeType":"YulAssignment","src":"11501:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"11512:3:101","nodeType":"YulIdentifier","src":"11512:3:101"},{"arguments":[{"name":"length","nativeSrc":"11539:6:101","nodeType":"YulIdentifier","src":"11539:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11517:21:101","nodeType":"YulIdentifier","src":"11517:21:101"},"nativeSrc":"11517:29:101","nodeType":"YulFunctionCall","src":"11517:29:101"}],"functionName":{"name":"add","nativeSrc":"11508:3:101","nodeType":"YulIdentifier","src":"11508:3:101"},"nativeSrc":"11508:39:101","nodeType":"YulFunctionCall","src":"11508:39:101"},"variableNames":[{"name":"end","nativeSrc":"11501:3:101","nodeType":"YulIdentifier","src":"11501:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11176:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11249:5:101","nodeType":"YulTypedName","src":"11249:5:101","type":""},{"name":"pos","nativeSrc":"11256:3:101","nodeType":"YulTypedName","src":"11256:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11264:3:101","nodeType":"YulTypedName","src":"11264:3:101","type":""}],"src":"11176:377:101"},{"body":{"nativeSrc":"11705:277:101","nodeType":"YulBlock","src":"11705:277:101","statements":[{"nativeSrc":"11715:26:101","nodeType":"YulAssignment","src":"11715:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11727:9:101","nodeType":"YulIdentifier","src":"11727:9:101"},{"kind":"number","nativeSrc":"11738:2:101","nodeType":"YulLiteral","src":"11738:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11723:3:101","nodeType":"YulIdentifier","src":"11723:3:101"},"nativeSrc":"11723:18:101","nodeType":"YulFunctionCall","src":"11723:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11715:4:101","nodeType":"YulIdentifier","src":"11715:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11795:6:101","nodeType":"YulIdentifier","src":"11795:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11808:9:101","nodeType":"YulIdentifier","src":"11808:9:101"},{"kind":"number","nativeSrc":"11819:1:101","nodeType":"YulLiteral","src":"11819:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11804:3:101","nodeType":"YulIdentifier","src":"11804:3:101"},"nativeSrc":"11804:17:101","nodeType":"YulFunctionCall","src":"11804:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11751:43:101","nodeType":"YulIdentifier","src":"11751:43:101"},"nativeSrc":"11751:71:101","nodeType":"YulFunctionCall","src":"11751:71:101"},"nativeSrc":"11751:71:101","nodeType":"YulExpressionStatement","src":"11751:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11843:9:101","nodeType":"YulIdentifier","src":"11843:9:101"},{"kind":"number","nativeSrc":"11854:2:101","nodeType":"YulLiteral","src":"11854:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11839:3:101","nodeType":"YulIdentifier","src":"11839:3:101"},"nativeSrc":"11839:18:101","nodeType":"YulFunctionCall","src":"11839:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11863:4:101","nodeType":"YulIdentifier","src":"11863:4:101"},{"name":"headStart","nativeSrc":"11869:9:101","nodeType":"YulIdentifier","src":"11869:9:101"}],"functionName":{"name":"sub","nativeSrc":"11859:3:101","nodeType":"YulIdentifier","src":"11859:3:101"},"nativeSrc":"11859:20:101","nodeType":"YulFunctionCall","src":"11859:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11832:6:101","nodeType":"YulIdentifier","src":"11832:6:101"},"nativeSrc":"11832:48:101","nodeType":"YulFunctionCall","src":"11832:48:101"},"nativeSrc":"11832:48:101","nodeType":"YulExpressionStatement","src":"11832:48:101"},{"nativeSrc":"11889:86:101","nodeType":"YulAssignment","src":"11889:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11961:6:101","nodeType":"YulIdentifier","src":"11961:6:101"},{"name":"tail","nativeSrc":"11970:4:101","nodeType":"YulIdentifier","src":"11970:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11897:63:101","nodeType":"YulIdentifier","src":"11897:63:101"},"nativeSrc":"11897:78:101","nodeType":"YulFunctionCall","src":"11897:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11889:4:101","nodeType":"YulIdentifier","src":"11889:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11559:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11669:9:101","nodeType":"YulTypedName","src":"11669:9:101","type":""},{"name":"value1","nativeSrc":"11681:6:101","nodeType":"YulTypedName","src":"11681:6:101","type":""},{"name":"value0","nativeSrc":"11689:6:101","nodeType":"YulTypedName","src":"11689:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11700:4:101","nodeType":"YulTypedName","src":"11700:4:101","type":""}],"src":"11559:423:101"},{"body":{"nativeSrc":"12028:76:101","nodeType":"YulBlock","src":"12028:76:101","statements":[{"body":{"nativeSrc":"12082:16:101","nodeType":"YulBlock","src":"12082:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12091:1:101","nodeType":"YulLiteral","src":"12091:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"12094:1:101","nodeType":"YulLiteral","src":"12094:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12084:6:101","nodeType":"YulIdentifier","src":"12084:6:101"},"nativeSrc":"12084:12:101","nodeType":"YulFunctionCall","src":"12084:12:101"},"nativeSrc":"12084:12:101","nodeType":"YulExpressionStatement","src":"12084:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12051:5:101","nodeType":"YulIdentifier","src":"12051:5:101"},{"arguments":[{"name":"value","nativeSrc":"12073:5:101","nodeType":"YulIdentifier","src":"12073:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12058:14:101","nodeType":"YulIdentifier","src":"12058:14:101"},"nativeSrc":"12058:21:101","nodeType":"YulFunctionCall","src":"12058:21:101"}],"functionName":{"name":"eq","nativeSrc":"12048:2:101","nodeType":"YulIdentifier","src":"12048:2:101"},"nativeSrc":"12048:32:101","nodeType":"YulFunctionCall","src":"12048:32:101"}],"functionName":{"name":"iszero","nativeSrc":"12041:6:101","nodeType":"YulIdentifier","src":"12041:6:101"},"nativeSrc":"12041:40:101","nodeType":"YulFunctionCall","src":"12041:40:101"},"nativeSrc":"12038:60:101","nodeType":"YulIf","src":"12038:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11988:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12021:5:101","nodeType":"YulTypedName","src":"12021:5:101","type":""}],"src":"11988:116:101"},{"body":{"nativeSrc":"12170:77:101","nodeType":"YulBlock","src":"12170:77:101","statements":[{"nativeSrc":"12180:22:101","nodeType":"YulAssignment","src":"12180:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"12195:6:101","nodeType":"YulIdentifier","src":"12195:6:101"}],"functionName":{"name":"mload","nativeSrc":"12189:5:101","nodeType":"YulIdentifier","src":"12189:5:101"},"nativeSrc":"12189:13:101","nodeType":"YulFunctionCall","src":"12189:13:101"},"variableNames":[{"name":"value","nativeSrc":"12180:5:101","nodeType":"YulIdentifier","src":"12180:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12235:5:101","nodeType":"YulIdentifier","src":"12235:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12211:23:101","nodeType":"YulIdentifier","src":"12211:23:101"},"nativeSrc":"12211:30:101","nodeType":"YulFunctionCall","src":"12211:30:101"},"nativeSrc":"12211:30:101","nodeType":"YulExpressionStatement","src":"12211:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12110:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12148:6:101","nodeType":"YulTypedName","src":"12148:6:101","type":""},{"name":"end","nativeSrc":"12156:3:101","nodeType":"YulTypedName","src":"12156:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12164:5:101","nodeType":"YulTypedName","src":"12164:5:101","type":""}],"src":"12110:137:101"},{"body":{"nativeSrc":"12327:271:101","nodeType":"YulBlock","src":"12327:271:101","statements":[{"body":{"nativeSrc":"12373:83:101","nodeType":"YulBlock","src":"12373:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12375:77:101","nodeType":"YulIdentifier","src":"12375:77:101"},"nativeSrc":"12375:79:101","nodeType":"YulFunctionCall","src":"12375:79:101"},"nativeSrc":"12375:79:101","nodeType":"YulExpressionStatement","src":"12375:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12348:7:101","nodeType":"YulIdentifier","src":"12348:7:101"},{"name":"headStart","nativeSrc":"12357:9:101","nodeType":"YulIdentifier","src":"12357:9:101"}],"functionName":{"name":"sub","nativeSrc":"12344:3:101","nodeType":"YulIdentifier","src":"12344:3:101"},"nativeSrc":"12344:23:101","nodeType":"YulFunctionCall","src":"12344:23:101"},{"kind":"number","nativeSrc":"12369:2:101","nodeType":"YulLiteral","src":"12369:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12340:3:101","nodeType":"YulIdentifier","src":"12340:3:101"},"nativeSrc":"12340:32:101","nodeType":"YulFunctionCall","src":"12340:32:101"},"nativeSrc":"12337:119:101","nodeType":"YulIf","src":"12337:119:101"},{"nativeSrc":"12466:125:101","nodeType":"YulBlock","src":"12466:125:101","statements":[{"nativeSrc":"12481:15:101","nodeType":"YulVariableDeclaration","src":"12481:15:101","value":{"kind":"number","nativeSrc":"12495:1:101","nodeType":"YulLiteral","src":"12495:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12485:6:101","nodeType":"YulTypedName","src":"12485:6:101","type":""}]},{"nativeSrc":"12510:71:101","nodeType":"YulAssignment","src":"12510:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12553:9:101","nodeType":"YulIdentifier","src":"12553:9:101"},{"name":"offset","nativeSrc":"12564:6:101","nodeType":"YulIdentifier","src":"12564:6:101"}],"functionName":{"name":"add","nativeSrc":"12549:3:101","nodeType":"YulIdentifier","src":"12549:3:101"},"nativeSrc":"12549:22:101","nodeType":"YulFunctionCall","src":"12549:22:101"},{"name":"dataEnd","nativeSrc":"12573:7:101","nodeType":"YulIdentifier","src":"12573:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"12520:28:101","nodeType":"YulIdentifier","src":"12520:28:101"},"nativeSrc":"12520:61:101","nodeType":"YulFunctionCall","src":"12520:61:101"},"variableNames":[{"name":"value0","nativeSrc":"12510:6:101","nodeType":"YulIdentifier","src":"12510:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"12253:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12297:9:101","nodeType":"YulTypedName","src":"12297:9:101","type":""},{"name":"dataEnd","nativeSrc":"12308:7:101","nodeType":"YulTypedName","src":"12308:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12320:6:101","nodeType":"YulTypedName","src":"12320:6:101","type":""}],"src":"12253:345:101"},{"body":{"nativeSrc":"12778:359:101","nodeType":"YulBlock","src":"12778:359:101","statements":[{"nativeSrc":"12788:26:101","nodeType":"YulAssignment","src":"12788:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12800:9:101","nodeType":"YulIdentifier","src":"12800:9:101"},{"kind":"number","nativeSrc":"12811:2:101","nodeType":"YulLiteral","src":"12811:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12796:3:101","nodeType":"YulIdentifier","src":"12796:3:101"},"nativeSrc":"12796:18:101","nodeType":"YulFunctionCall","src":"12796:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12788:4:101","nodeType":"YulIdentifier","src":"12788:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12868:6:101","nodeType":"YulIdentifier","src":"12868:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12881:9:101","nodeType":"YulIdentifier","src":"12881:9:101"},{"kind":"number","nativeSrc":"12892:1:101","nodeType":"YulLiteral","src":"12892:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12877:3:101","nodeType":"YulIdentifier","src":"12877:3:101"},"nativeSrc":"12877:17:101","nodeType":"YulFunctionCall","src":"12877:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12824:43:101","nodeType":"YulIdentifier","src":"12824:43:101"},"nativeSrc":"12824:71:101","nodeType":"YulFunctionCall","src":"12824:71:101"},"nativeSrc":"12824:71:101","nodeType":"YulExpressionStatement","src":"12824:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12949:6:101","nodeType":"YulIdentifier","src":"12949:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12962:9:101","nodeType":"YulIdentifier","src":"12962:9:101"},{"kind":"number","nativeSrc":"12973:2:101","nodeType":"YulLiteral","src":"12973:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12958:3:101","nodeType":"YulIdentifier","src":"12958:3:101"},"nativeSrc":"12958:18:101","nodeType":"YulFunctionCall","src":"12958:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12905:43:101","nodeType":"YulIdentifier","src":"12905:43:101"},"nativeSrc":"12905:72:101","nodeType":"YulFunctionCall","src":"12905:72:101"},"nativeSrc":"12905:72:101","nodeType":"YulExpressionStatement","src":"12905:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12998:9:101","nodeType":"YulIdentifier","src":"12998:9:101"},{"kind":"number","nativeSrc":"13009:2:101","nodeType":"YulLiteral","src":"13009:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12994:3:101","nodeType":"YulIdentifier","src":"12994:3:101"},"nativeSrc":"12994:18:101","nodeType":"YulFunctionCall","src":"12994:18:101"},{"arguments":[{"name":"tail","nativeSrc":"13018:4:101","nodeType":"YulIdentifier","src":"13018:4:101"},{"name":"headStart","nativeSrc":"13024:9:101","nodeType":"YulIdentifier","src":"13024:9:101"}],"functionName":{"name":"sub","nativeSrc":"13014:3:101","nodeType":"YulIdentifier","src":"13014:3:101"},"nativeSrc":"13014:20:101","nodeType":"YulFunctionCall","src":"13014:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12987:6:101","nodeType":"YulIdentifier","src":"12987:6:101"},"nativeSrc":"12987:48:101","nodeType":"YulFunctionCall","src":"12987:48:101"},"nativeSrc":"12987:48:101","nodeType":"YulExpressionStatement","src":"12987:48:101"},{"nativeSrc":"13044:86:101","nodeType":"YulAssignment","src":"13044:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"13116:6:101","nodeType":"YulIdentifier","src":"13116:6:101"},{"name":"tail","nativeSrc":"13125:4:101","nodeType":"YulIdentifier","src":"13125:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13052:63:101","nodeType":"YulIdentifier","src":"13052:63:101"},"nativeSrc":"13052:78:101","nodeType":"YulFunctionCall","src":"13052:78:101"},"variableNames":[{"name":"tail","nativeSrc":"13044:4:101","nodeType":"YulIdentifier","src":"13044:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12604:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12734:9:101","nodeType":"YulTypedName","src":"12734:9:101","type":""},{"name":"value2","nativeSrc":"12746:6:101","nodeType":"YulTypedName","src":"12746:6:101","type":""},{"name":"value1","nativeSrc":"12754:6:101","nodeType":"YulTypedName","src":"12754:6:101","type":""},{"name":"value0","nativeSrc":"12762:6:101","nodeType":"YulTypedName","src":"12762:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12773:4:101","nodeType":"YulTypedName","src":"12773:4:101","type":""}],"src":"12604:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IStETH_$3610_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IStETH_$3610_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IStETH_$3610__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IStETH_$3610_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6448":[{"length":32,"start":653},{"length":32,"start":1725}],"6589":[{"length":32,"start":523},{"length":32,"start":690},{"length":32,"start":2109}],"6592":[{"length":32,"start":313},{"length":32,"start":1441},{"length":32,"start":1982}],"6596":[{"length":32,"start":590},{"length":32,"start":1396},{"length":32,"start":1935}],"6600":[{"length":32,"start":393},{"length":32,"start":2300}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063abb8561314610270578063ac5a693e14610278578063bdf13af214610280578063e00bfe5014610288575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b91906109ad565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b91906109da565b61011e60045481565b61011e61017f366004610a09565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610a4c565b6101cb6101c6366004610a6b565b610360565b005b61011e60025481565b6101cb6101e4366004610a89565b6103d1565b6101f16104a5565b60405161012b9190610acb565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610a89565b61062c565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61073e565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f8161078b565b9392505050565b5f61032f61073e565b90505f818311801561034057508115155b61034a578261034c565b815b90506103578161078b565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e74323536290000000000000000008152506108e3565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e743235362900008152506108e3565b5f5461041f6301e1338084610b01565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de6088560405161049691906109ad565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61073e565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610b14565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761073e565b9050600454818311610529578261052b565b815b6105359190610b27565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f0000000000000000000000000000000000000000000000000000000000000000906004016109da565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e7432353629000000008152506108e3565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b604051630f451f7160e31b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637a28fb88906106fa90670de0b6b3a7640000906004016109ad565b602060405180830381865afa158015610715573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107399190610b45565b905090565b5f806003544261074e9190610b14565b90505f670de0b6b3a7640000825f5460025461076a9190610b63565b6107749190610b63565b61077e9190610b01565b60025461031f9190610b27565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107f991906109da565b602060405180830381865afa158015610814573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108389190610b45565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf9190610b96565b60ff1690506108cf81600a610cc0565b6108d98487610b63565b6103579190610b01565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906109339033908690600401610d09565b602060405180830381865afa15801561094e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109729190610d3c565b9050806109a157333083604051634a3fa29360e01b815260040161099893929190610d5a565b60405180910390fd5b5050565b805b82525050565b602081016109bb82846109a5565b92915050565b5f6001600160a01b0382166109bb565b6109a7816109c1565b602081016109bb82846109d1565b6109f1816109c1565b81146109fb575f80fd5b50565b80356109bb816109e8565b5f60208284031215610a1c57610a1c5f80fd5b5f610a2784846109fe565b949350505050565b5f6109bb826109c1565b5f6109bb82610a2f565b6109a781610a39565b602081016109bb8284610a43565b806109f1565b80356109bb81610a5a565b5f60208284031215610a7e57610a7e5f80fd5b5f610a278484610a60565b5f8060408385031215610a9d57610a9d5f80fd5b5f610aa88585610a60565b9250506020610ab985828601610a60565b9150509250929050565b8015156109a7565b602081016109bb8284610ac3565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610b0f57610b0f610ad9565b500490565b818103818111156109bb576109bb610aed565b808201808211156109bb576109bb610aed565b80516109bb81610a5a565b5f60208284031215610b5857610b585f80fd5b5f610a278484610b3a565b818102808215838204851417610b7b57610b7b610aed565b5092915050565b60ff81166109f1565b80516109bb81610b82565b5f60208284031215610ba957610ba95f80fd5b5f610a278484610b8b565b80825b6001851115610bf357808604811115610bd257610bd2610aed565b6001851615610be057908102905b8002610bec8560011c90565b9450610bb7565b94509492505050565b5f82610c0a5750600161031f565b81610c1657505f61031f565b8160018114610c2c5760028114610c3657610c63565b600191505061031f565b60ff841115610c4757610c47610aed565b8360020a915084821115610c5d57610c5d610aed565b5061031f565b5060208310610133831016604e8410600b8410161715610c96575081810a83811115610c9157610c91610aed565b61031f565b610ca38484846001610bb4565b92509050818404811115610cb957610cb9610aed565b0292915050565b5f61031f5f198484610bfc565b8281835e505f910152565b5f610ce1825190565b808452602084019350610cf8818560208601610ccd565b601f01601f19169290920192915050565b60408101610d1782856109d1565b8181036020830152610a278184610cd8565b8015156109f1565b80516109bb81610d29565b5f60208284031215610d4f57610d4f5f80fd5b5f610a278484610d31565b60608101610d6882866109d1565b610d7560208301856109d1565b81810360408301526103578184610cd856fea2646970667358221220fffd92dad00f4cd30cf8e36992289c7f101512896aa48b2f4aeb0a05c1e6577664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xE00BFE50 EQ PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1E9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11E PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x11E PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0xA09 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA4C JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xA6B JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1F1 PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xACB JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x4E0 JUMP JUMPDEST PUSH2 0x15B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0x62C JUMP JUMPDEST PUSH2 0x11E PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x11E PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x73E JUMP JUMPDEST PUSH2 0x1AB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30B PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x326 JUMPI PUSH2 0x31F DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32F PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x340 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34A JUMPI DUP3 PUSH2 0x34C JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x357 DUP2 PUSH2 0x78B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x40F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x41F PUSH4 0x1E13380 DUP5 PUSH2 0xB01 JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x42F JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x443 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x443 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x461 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B4 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BD PUSH2 0x73E JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CD JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D6 PUSH2 0x6A4 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F0 SWAP1 TIMESTAMP PUSH2 0xB14 JUMP JUMPDEST LT DUP1 PUSH2 0x4FC JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x503 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50C PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x517 PUSH2 0x73E JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x529 JUMPI DUP3 PUSH2 0x52B JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x535 SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x55D JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5C9 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x9DA JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x8E3 JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF451F71 PUSH1 0xE3 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7A28FB88 SWAP1 PUSH2 0x6FA SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x715 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x739 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x74E SWAP2 SWAP1 PUSH2 0xB14 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x76A SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x774 SWAP2 SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x77E SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xB27 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F9 SWAP2 SWAP1 PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x814 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x838 SWAP2 SWAP1 PUSH2 0xB45 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x89B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8BF SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x8CF DUP2 PUSH1 0xA PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x8D9 DUP5 DUP8 PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x357 SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x933 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xD09 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x972 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9A1 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x998 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x9BB JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0x9C1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0x9F1 DUP2 PUSH2 0x9C1 JUMP JUMPDEST DUP2 EQ PUSH2 0x9FB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0x9E8 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0x9FE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0x9C1 JUMP JUMPDEST PUSH0 PUSH2 0x9BB DUP3 PUSH2 0xA2F JUMP JUMPDEST PUSH2 0x9A7 DUP2 PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0xA43 JUMP JUMPDEST DUP1 PUSH2 0x9F1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA7E JUMPI PUSH2 0xA7E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xA60 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA9D JUMPI PUSH2 0xA9D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xAA8 DUP6 DUP6 PUSH2 0xA60 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAB9 DUP6 DUP3 DUP7 ADD PUSH2 0xA60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x9BB DUP3 DUP5 PUSH2 0xAC3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB0F JUMPI PUSH2 0xB0F PUSH2 0xAD9 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x9BB JUMPI PUSH2 0x9BB PUSH2 0xAED JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xA5A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB58 JUMPI PUSH2 0xB58 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xB3A JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB7B JUMPI PUSH2 0xB7B PUSH2 0xAED JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9F1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xB82 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBA9 JUMPI PUSH2 0xBA9 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xB8B JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBF3 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xBD2 JUMPI PUSH2 0xBD2 PUSH2 0xAED JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xBE0 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBEC DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xBB7 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xC0A JUMPI POP PUSH1 0x1 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH2 0xC16 JUMPI POP PUSH0 PUSH2 0x31F JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xC2C JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xC36 JUMPI PUSH2 0xC63 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x31F JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC47 JUMPI PUSH2 0xC47 PUSH2 0xAED JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC5D PUSH2 0xAED JUMP JUMPDEST POP PUSH2 0x31F JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC96 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC91 JUMPI PUSH2 0xC91 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x31F JUMP JUMPDEST PUSH2 0xCA3 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xBB4 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xCB9 JUMPI PUSH2 0xCB9 PUSH2 0xAED JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x31F PUSH0 NOT DUP5 DUP5 PUSH2 0xBFC JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xCE1 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCF8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xCCD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xD17 DUP3 DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xA27 DUP2 DUP5 PUSH2 0xCD8 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9F1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9BB DUP2 PUSH2 0xD29 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4F JUMPI PUSH2 0xD4F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA27 DUP5 DUP5 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD68 DUP3 DUP7 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0xD75 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x9D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x357 DUP2 DUP5 PUSH2 0xCD8 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT REVERT SWAP3 0xDA 0xD0 0xF 0x4C 0xD3 0xC 0xF8 0xE3 PUSH10 0x92289C7F101512896AA4 DUP12 0x2F BLOBBASEFEE 0xEB EXP SDIV 0xC1 0xE6 JUMPI PUSH23 0x64736F6C63430008190033000000000000000000000000 ","sourceMap":"481:1428:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;1776:131:65;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;569:29:65:-;;;;;8441:597:67;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1776:131:65:-;1863:37;;-1:-1:-1;;;1863:37:65;;1837:7;;-1:-1:-1;;;;;1863:5:65;:26;;;;:37;;186:4:17;;1863:37:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1856:44;;1776:131;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;481:1428:65;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;481:1428:65;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;481:1428:65;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5715:180::-;-1:-1:-1;;;5760:1:101;5753:88;5860:4;5857:1;5850:15;5884:4;5881:1;5874:15;5901:180;-1:-1:-1;;;5946:1:101;5939:88;6046:4;6043:1;6036:15;6070:4;6067:1;6060:15;6087:185;6127:1;6217;6207:35;;6222:18;;:::i;:::-;-1:-1:-1;6257:9:101;;6087:185::o;6278:194::-;6409:9;;;6431:11;;;6428:37;;;6445:18;;:::i;6478:191::-;6607:9;;;6629:10;;;6626:36;;;6642:18;;:::i;6675:143::-;6757:13;;6779:33;6757:13;6779:33;:::i;6824:351::-;6894:6;6943:2;6931:9;6922:7;6918:23;6914:32;6911:119;;;6949:79;481:1428:65;;;6949:79:101;7069:1;7094:64;7150:7;7130:9;7094:64;:::i;7181:410::-;7326:9;;;;7488;;7521:15;;;7515:22;;7468:83;7445:139;;7564:18;;:::i;:::-;7229:362;7181:410;;;;:::o;7689:118::-;7672:4;7661:16;;7760:22;7597:86;7813:139;7893:13;;7915:31;7893:13;7915:31;:::i;7958:347::-;8026:6;8075:2;8063:9;8054:7;8050:23;8046:32;8043:119;;;8081:79;481:1428:65;;;8081:79:101;8201:1;8226:62;8280:7;8260:9;8226:62;:::i;8419:848::-;8511:6;8535:5;8549:712;8570:1;8560:8;8557:15;8549:712;;;8665:4;8660:3;8656:14;8650:4;8647:24;8644:50;;;8674:18;;:::i;:::-;8724:1;8714:8;8710:16;8707:451;;;9128:16;;;;8707:451;9179:15;;9219:32;9242:8;8397:1;8393:13;;8311:102;9219:32;9207:44;;8549:712;;;8419:848;;;;;;;:::o;9273:1073::-;9327:5;9518:8;9508:40;;-1:-1:-1;9539:1:101;9541:5;;9508:40;9567:4;9557:36;;-1:-1:-1;9584:1:101;9586:5;;9557:36;9653:4;9701:1;9696:27;;;;9737:1;9732:191;;;;9646:277;;9696:27;9714:1;9705:10;;9716:5;;;9732:191;9777:3;9767:8;9764:17;9761:43;;;9784:18;;:::i;:::-;9833:8;9830:1;9826:16;9817:25;;9868:3;9861:5;9858:14;9855:40;;;9875:18;;:::i;:::-;9908:5;;;9646:277;;10032:2;10022:8;10019:16;10013:3;10007:4;10004:13;10000:36;9982:2;9972:8;9969:16;9964:2;9958:4;9955:12;9951:35;9935:111;9932:246;;;-1:-1:-1;10078:19:101;;;10113:14;;;10110:40;;;10130:18;;:::i;:::-;10163:5;;9932:246;10203:42;10241:3;10231:8;10225:4;10222:1;10203:42;:::i;:::-;10188:57;;;;10277:4;10272:3;10268:14;10261:5;10258:25;10255:51;;;10286:18;;:::i;:::-;10324:16;;9273:1073;-1:-1:-1;;9273:1073:101:o;10352:285::-;10412:5;10526:104;-1:-1:-1;;10553:8:101;10547:4;10526:104;:::i;10923:139::-;11012:6;11007:3;11002;10996:23;-1:-1:-1;11053:1:101;11035:16;;11028:27;10923:139::o;11176:377::-;11264:3;11292:39;11325:5;10723:12;;10643:99;11292:39;10854:19;;;10906:4;10897:14;;11340:78;;11427:65;11485:6;11480:3;11473:4;11466:5;11462:16;11427:65;:::i;:::-;11160:2;11140:14;-1:-1:-1;;11136:28:101;11508:39;;;;;;-1:-1:-1;;11176:377:101:o;11559:423::-;11738:2;11723:18;;11751:71;11727:9;11795:6;11751:71;:::i;:::-;11869:9;11863:4;11859:20;11854:2;11843:9;11839:18;11832:48;11897:78;11970:4;11961:6;11897:78;:::i;11988:116::-;4124:13;;4117:21;12058;4054:90;12110:137;12189:13;;12211:30;12189:13;12211:30;:::i;12253:345::-;12320:6;12369:2;12357:9;12348:7;12344:23;12340:32;12337:119;;;12375:79;481:1428:65;;;12375:79:101;12495:1;12520:61;12573:7;12553:9;12520:61;:::i;12604:533::-;12811:2;12796:18;;12824:71;12800:9;12868:6;12824:71;:::i;:::-;12905:72;12973:2;12962:9;12958:18;12949:6;12905:72;:::i;:::-;13024:9;13018:4;13014:20;13009:2;12998:9;12994:18;12987:48;13052:78;13125:4;13116:6;13052:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"703400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","STETH()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2425","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2449","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","STETH()":"e00bfe50","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stETH\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wstETH\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STETH\",\"outputs\":[{\"internalType\":\"contract IStETH\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"The underlyingToken must be correlated so that 1 underlyingToken is equal to 1 stETH, because getUnderlyingAmount() implicitly assumes that\"},\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount Amount of underlyingToken\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"WstETHOracleV2\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"STETH()\":{\"notice\":\"Address of stETH\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Gets the amount of underlyingToken for 1 wstETH, assuming that 1 underlyingToken is equivalent to 1 stETH\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of wstETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/WstETHOracleV2.sol\":\"WstETHOracleV2\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IStETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface IStETH {\\n    function getPooledEthByShares(uint256 _sharesAmount) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x9e7ee12d63a84081722469719e046d6791a087f33ab40804ff1ff40ab859d4d3\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/WstETHOracleV2.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IStETH } from \\\"../interfaces/IStETH.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\nimport { EXP_SCALE } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title WstETHOracleV2\\n * @author Venus\\n * @notice This oracle fetches the price of wstETH\\n */\\ncontract WstETHOracleV2 is CorrelatedTokenOracle {\\n    /// @notice Address of stETH\\n    IStETH public immutable STETH;\\n\\n    /// @notice Constructor for the implementation contract.\\n    /// @dev The underlyingToken must be correlated so that 1 underlyingToken is equal to 1 stETH, because\\n    /// getUnderlyingAmount() implicitly assumes that\\n    constructor(\\n        address stETH,\\n        address wstETH,\\n        address underlyingToken,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            wstETH,\\n            underlyingToken,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {\\n        ensureNonzeroAddress(stETH);\\n        STETH = IStETH(stETH);\\n    }\\n\\n    /**\\n     * @notice Gets the amount of underlyingToken for 1 wstETH, assuming that 1 underlyingToken is equivalent to 1 stETH\\n     * @return amount Amount of underlyingToken\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return STETH.getPooledEthByShares(EXP_SCALE);\\n    }\\n}\\n\",\"keccak256\":\"0xafa20a802d782e7dbc09351314e7ced484e3685b10a4b7d4e2bf10e57b534806\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/WstETHOracleV2.sol:WstETHOracleV2","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/WstETHOracleV2.sol:WstETHOracleV2","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/WstETHOracleV2.sol:WstETHOracleV2","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/WstETHOracleV2.sol:WstETHOracleV2","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/WstETHOracleV2.sol:WstETHOracleV2","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"STETH()":{"notice":"Address of stETH"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Gets the amount of underlyingToken for 1 wstETH, assuming that 1 underlyingToken is equivalent to 1 stETH"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of wstETH","version":1}}},"contracts/oracles/ZkETHOracle.sol":{"ZkETHOracle":{"abi":[{"inputs":[{"internalType":"address","name":"zkETH","type":"address"},{"internalType":"address","name":"rzkETH","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"amount Amount of rzkETH"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"ZkETHOracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_6551":{"entryPoint":null,"id":6551,"parameterSlots":9,"returnSlots":0},"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":288,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":367,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":395,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":607,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":330,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":587,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":348,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":378,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610100604052348015610010575f80fd5b5060405161105438038061105483398101604081905261002f9161018b565b8888888888888888886100466301e133808761025f565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610120565b6100ce88610120565b6100d787610120565b6100e082610120565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05250610272975050505050505050565b6001600160a01b038116610147576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101658161014a565b8114610147575f80fd5b80516101568161015c565b80610165565b80516101568161017a565b5f805f805f805f805f6101208a8c0312156101a7576101a75f80fd5b5f6101b28c8c61016f565b99505060206101c38c828d0161016f565b98505060406101d48c828d0161016f565b97505060606101e58c828d01610180565b96505060806101f68c828d01610180565b95505060a06102078c828d01610180565b94505060c06102188c828d01610180565b93505060e06102298c828d0161016f565b92505061010061023b8c828d01610180565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261026d5761026d61024b565b500490565b60805160a05160c05160e051610d776102dd5f395f818161017e01526108b601525f818161024301528181610542015261074901525f818161012e0152818161056f015261077801525f8181610200015281816102800152818161067501526107f70152610d775ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b6040516101209190610967565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610994565b61011360045481565b6101136101743660046109c3565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a06565b6101c06101bb366004610a25565b61032e565b005b61011360025481565b6101c06101d9366004610a43565b61039f565b6101e6610473565b6040516101209190610a85565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610a43565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b6101136106f8565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed81610745565b9392505050565b5f6102fd6106f8565b90505f818311801561030e57508115155b610318578261031a565b815b905061032581610745565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e743235362900000000000000000081525061089d565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e7432353629000081525061089d565b5f546103ed6301e1338084610abb565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104649190610967565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b6106f8565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610ace565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e56106f8565b90506004548183116104f757826104f9565b815b6105039190610ae1565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f000000000000000000000000000000000000000000000000000000000000000090600401610994565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e74323536290000000081525061089d565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166339648e006040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190610aff565b905090565b5f80600354426107089190610ace565b90505f670de0b6b3a7640000825f546002546107249190610b1d565b61072e9190610b1d565b6107389190610abb565b6002546102ed9190610ae1565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107b39190610994565b602060405180830381865afa1580156107ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f29190610aff565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610b50565b60ff16905061088981600a610c7a565b6108938487610b1d565b6103259190610abb565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906108ed9033908690600401610cc3565b602060405180830381865afa158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c9190610cf6565b90508061095b57333083604051634a3fa29360e01b815260040161095293929190610d14565b60405180910390fd5b5050565b805b82525050565b60208101610975828461095f565b92915050565b5f6001600160a01b038216610975565b6109618161097b565b60208101610975828461098b565b6109ab8161097b565b81146109b5575f80fd5b50565b8035610975816109a2565b5f602082840312156109d6576109d65f80fd5b5f6109e184846109b8565b949350505050565b5f6109758261097b565b5f610975826109e9565b610961816109f3565b6020810161097582846109fd565b806109ab565b803561097581610a14565b5f60208284031215610a3857610a385f80fd5b5f6109e18484610a1a565b5f8060408385031215610a5757610a575f80fd5b5f610a628585610a1a565b9250506020610a7385828601610a1a565b9150509250929050565b801515610961565b602081016109758284610a7d565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610ac957610ac9610a93565b500490565b8181038181111561097557610975610aa7565b8082018082111561097557610975610aa7565b805161097581610a14565b5f60208284031215610b1257610b125f80fd5b5f6109e18484610af4565b818102808215838204851417610b3557610b35610aa7565b5092915050565b60ff81166109ab565b805161097581610b3c565b5f60208284031215610b6357610b635f80fd5b5f6109e18484610b45565b80825b6001851115610bad57808604811115610b8c57610b8c610aa7565b6001851615610b9a57908102905b8002610ba68560011c90565b9450610b71565b94509492505050565b5f82610bc4575060016102ed565b81610bd057505f6102ed565b8160018114610be65760028114610bf057610c1d565b60019150506102ed565b60ff841115610c0157610c01610aa7565b8360020a915084821115610c1757610c17610aa7565b506102ed565b5060208310610133831016604e8410600b8410161715610c50575081810a83811115610c4b57610c4b610aa7565b6102ed565b610c5d8484846001610b6e565b92509050818404811115610c7357610c73610aa7565b0292915050565b5f6102ed5f198484610bb6565b8281835e505f910152565b5f610c9b825190565b808452602084019350610cb2818560208601610c87565b601f01601f19169290920192915050565b60408101610cd1828561098b565b81810360208301526109e18184610c92565b8015156109ab565b805161097581610ce3565b5f60208284031215610d0957610d095f80fd5b5f6109e18484610ceb565b60608101610d22828661098b565b610d2f602083018561098b565b81810360408301526103258184610c9256fea2646970667358221220409445ddc568cca38279aac1e976960bcdaaab6a07957e8f2e6bda319080d68a64736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1054 CODESIZE SUB DUP1 PUSH2 0x1054 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x18B JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x25F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE POP PUSH2 0x272 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x147 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165 DUP2 PUSH2 0x14A JUMP JUMPDEST DUP2 EQ PUSH2 0x147 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x15C JUMP JUMPDEST DUP1 PUSH2 0x165 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x17A JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1A7 JUMPI PUSH2 0x1A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1B2 DUP13 DUP13 PUSH2 0x16F JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1C3 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1D4 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x1E5 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x1F6 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x207 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x218 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x229 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x23B DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x26D JUMPI PUSH2 0x26D PUSH2 0x24B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0xD77 PUSH2 0x2DD PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x17E ADD MSTORE PUSH2 0x8B6 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x243 ADD MSTORE DUP2 DUP2 PUSH2 0x542 ADD MSTORE PUSH2 0x749 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x12E ADD MSTORE DUP2 DUP2 PUSH2 0x56F ADD MSTORE PUSH2 0x778 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x200 ADD MSTORE DUP2 DUP2 PUSH2 0x280 ADD MSTORE DUP2 DUP2 PUSH2 0x675 ADD MSTORE PUSH2 0x7F7 ADD MSTORE PUSH2 0xD77 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA06 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA25 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x6F8 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xABB JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xACE JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x994 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x39648E00 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 0x6CF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F3 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x708 SWAP2 SWAP1 PUSH2 0xACE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x724 SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x738 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7F2 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x855 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x879 SWAP2 SWAP1 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x889 DUP2 PUSH1 0xA PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x893 DUP5 DUP8 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x8ED SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x908 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x92C SWAP2 SWAP1 PUSH2 0xCF6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x95B JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x95F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x975 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x98B JUMP JUMPDEST PUSH2 0x9AB DUP2 PUSH2 0x97B JUMP JUMPDEST DUP2 EQ PUSH2 0x9B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0x9B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x97B JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x9FD JUMP JUMPDEST DUP1 PUSH2 0x9AB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA38 JUMPI PUSH2 0xA38 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xA1A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA57 JUMPI PUSH2 0xA57 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA62 DUP6 DUP6 PUSH2 0xA1A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA73 DUP6 DUP3 DUP7 ADD PUSH2 0xA1A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x961 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0xA7D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAC9 JUMPI PUSH2 0xAC9 PUSH2 0xA93 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB12 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xAF4 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAA7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xB3C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB63 JUMPI PUSH2 0xB63 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xB45 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBAD JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xB8C JUMPI PUSH2 0xB8C PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xB9A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBA6 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB71 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBC4 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xBD0 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xBE6 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xBF0 JUMPI PUSH2 0xC1D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xC01 PUSH2 0xAA7 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC17 JUMPI PUSH2 0xC17 PUSH2 0xAA7 JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC50 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC4B JUMPI PUSH2 0xC4B PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xC5D DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB6E JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC73 PUSH2 0xAA7 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xBB6 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xC9B DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCB2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC87 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xCD1 DUP3 DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9E1 DUP2 DUP5 PUSH2 0xC92 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD09 JUMPI PUSH2 0xD09 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xCEB JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD22 DUP3 DUP7 PUSH2 0x98B JUMP JUMPDEST PUSH2 0xD2F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xC92 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOCKHASH SWAP5 GASLIMIT 0xDD 0xC5 PUSH9 0xCCA38279AAC1E97696 SIGNEXTEND 0xCD 0xAA 0xAB PUSH11 0x7957E8F2E6BDA319080D6 DUP11 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"291:1003:66:-:0;;;404:642;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;772:5;791:6;811:15;840:16;870:17;901:30;945:24;983:20;1017:12;3527:36:67;408:10:17;840:16:66;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;-1:-1:-1;291:1003:66;;-1:-1:-1;;;;;;;;291:1003:66;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;291:1003:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1861,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2205,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1784,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":637,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_6565":{"entryPoint":1650,"id":6565,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1139,"id":6915,"parameterSlots":0,"returnSlots":1},"@setGrowthRate_6860":{"entryPoint":927,"id":6860,"parameterSlots":2,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":814,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1530,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1198,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2488,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2586,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2499,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3318,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2597,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2815,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2627,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2443,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2685,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2557,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2399,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3348,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3267,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2693,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2566,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2407,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2785,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2747,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2926,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3194,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2998,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2845,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2766,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2427,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2547,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2537,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3207,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2727,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2707,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2466,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3299,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2580,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2876,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12568:101","nodeType":"YulBlock","src":"0:12568:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5171:152:101","nodeType":"YulBlock","src":"5171:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5188:1:101","nodeType":"YulLiteral","src":"5188:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5191:77:101","nodeType":"YulLiteral","src":"5191:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5181:6:101","nodeType":"YulIdentifier","src":"5181:6:101"},"nativeSrc":"5181:88:101","nodeType":"YulFunctionCall","src":"5181:88:101"},"nativeSrc":"5181:88:101","nodeType":"YulExpressionStatement","src":"5181:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5285:1:101","nodeType":"YulLiteral","src":"5285:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5288:4:101","nodeType":"YulLiteral","src":"5288:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:101","nodeType":"YulIdentifier","src":"5278:6:101"},"nativeSrc":"5278:15:101","nodeType":"YulFunctionCall","src":"5278:15:101"},"nativeSrc":"5278:15:101","nodeType":"YulExpressionStatement","src":"5278:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5309:1:101","nodeType":"YulLiteral","src":"5309:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5312:4:101","nodeType":"YulLiteral","src":"5312:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5302:6:101","nodeType":"YulIdentifier","src":"5302:6:101"},"nativeSrc":"5302:15:101","nodeType":"YulFunctionCall","src":"5302:15:101"},"nativeSrc":"5302:15:101","nodeType":"YulExpressionStatement","src":"5302:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5143:180:101","nodeType":"YulFunctionDefinition","src":"5143:180:101"},{"body":{"nativeSrc":"5357:152:101","nodeType":"YulBlock","src":"5357:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5374:1:101","nodeType":"YulLiteral","src":"5374:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5377:77:101","nodeType":"YulLiteral","src":"5377:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:101","nodeType":"YulIdentifier","src":"5367:6:101"},"nativeSrc":"5367:88:101","nodeType":"YulFunctionCall","src":"5367:88:101"},"nativeSrc":"5367:88:101","nodeType":"YulExpressionStatement","src":"5367:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5471:1:101","nodeType":"YulLiteral","src":"5471:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5474:4:101","nodeType":"YulLiteral","src":"5474:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5464:6:101","nodeType":"YulIdentifier","src":"5464:6:101"},"nativeSrc":"5464:15:101","nodeType":"YulFunctionCall","src":"5464:15:101"},"nativeSrc":"5464:15:101","nodeType":"YulExpressionStatement","src":"5464:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5495:1:101","nodeType":"YulLiteral","src":"5495:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5498:4:101","nodeType":"YulLiteral","src":"5498:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5488:6:101","nodeType":"YulIdentifier","src":"5488:6:101"},"nativeSrc":"5488:15:101","nodeType":"YulFunctionCall","src":"5488:15:101"},"nativeSrc":"5488:15:101","nodeType":"YulExpressionStatement","src":"5488:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5329:180:101","nodeType":"YulFunctionDefinition","src":"5329:180:101"},{"body":{"nativeSrc":"5557:143:101","nodeType":"YulBlock","src":"5557:143:101","statements":[{"nativeSrc":"5567:25:101","nodeType":"YulAssignment","src":"5567:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5590:1:101","nodeType":"YulIdentifier","src":"5590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5572:17:101","nodeType":"YulIdentifier","src":"5572:17:101"},"nativeSrc":"5572:20:101","nodeType":"YulFunctionCall","src":"5572:20:101"},"variableNames":[{"name":"x","nativeSrc":"5567:1:101","nodeType":"YulIdentifier","src":"5567:1:101"}]},{"nativeSrc":"5601:25:101","nodeType":"YulAssignment","src":"5601:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5624:1:101","nodeType":"YulIdentifier","src":"5624:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5606:17:101","nodeType":"YulIdentifier","src":"5606:17:101"},"nativeSrc":"5606:20:101","nodeType":"YulFunctionCall","src":"5606:20:101"},"variableNames":[{"name":"y","nativeSrc":"5601:1:101","nodeType":"YulIdentifier","src":"5601:1:101"}]},{"body":{"nativeSrc":"5648:22:101","nodeType":"YulBlock","src":"5648:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"5650:16:101","nodeType":"YulIdentifier","src":"5650:16:101"},"nativeSrc":"5650:18:101","nodeType":"YulFunctionCall","src":"5650:18:101"},"nativeSrc":"5650:18:101","nodeType":"YulExpressionStatement","src":"5650:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"5645:1:101","nodeType":"YulIdentifier","src":"5645:1:101"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:101","nodeType":"YulIdentifier","src":"5638:6:101"},"nativeSrc":"5638:9:101","nodeType":"YulFunctionCall","src":"5638:9:101"},"nativeSrc":"5635:35:101","nodeType":"YulIf","src":"5635:35:101"},{"nativeSrc":"5680:14:101","nodeType":"YulAssignment","src":"5680:14:101","value":{"arguments":[{"name":"x","nativeSrc":"5689:1:101","nodeType":"YulIdentifier","src":"5689:1:101"},{"name":"y","nativeSrc":"5692:1:101","nodeType":"YulIdentifier","src":"5692:1:101"}],"functionName":{"name":"div","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"},"nativeSrc":"5685:9:101","nodeType":"YulFunctionCall","src":"5685:9:101"},"variableNames":[{"name":"r","nativeSrc":"5680:1:101","nodeType":"YulIdentifier","src":"5680:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"5515:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5546:1:101","nodeType":"YulTypedName","src":"5546:1:101","type":""},{"name":"y","nativeSrc":"5549:1:101","nodeType":"YulTypedName","src":"5549:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"5555:1:101","nodeType":"YulTypedName","src":"5555:1:101","type":""}],"src":"5515:185:101"},{"body":{"nativeSrc":"5751:149:101","nodeType":"YulBlock","src":"5751:149:101","statements":[{"nativeSrc":"5761:25:101","nodeType":"YulAssignment","src":"5761:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5784:1:101","nodeType":"YulIdentifier","src":"5784:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5766:17:101","nodeType":"YulIdentifier","src":"5766:17:101"},"nativeSrc":"5766:20:101","nodeType":"YulFunctionCall","src":"5766:20:101"},"variableNames":[{"name":"x","nativeSrc":"5761:1:101","nodeType":"YulIdentifier","src":"5761:1:101"}]},{"nativeSrc":"5795:25:101","nodeType":"YulAssignment","src":"5795:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5818:1:101","nodeType":"YulIdentifier","src":"5818:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5800:17:101","nodeType":"YulIdentifier","src":"5800:17:101"},"nativeSrc":"5800:20:101","nodeType":"YulFunctionCall","src":"5800:20:101"},"variableNames":[{"name":"y","nativeSrc":"5795:1:101","nodeType":"YulIdentifier","src":"5795:1:101"}]},{"nativeSrc":"5829:17:101","nodeType":"YulAssignment","src":"5829:17:101","value":{"arguments":[{"name":"x","nativeSrc":"5841:1:101","nodeType":"YulIdentifier","src":"5841:1:101"},{"name":"y","nativeSrc":"5844:1:101","nodeType":"YulIdentifier","src":"5844:1:101"}],"functionName":{"name":"sub","nativeSrc":"5837:3:101","nodeType":"YulIdentifier","src":"5837:3:101"},"nativeSrc":"5837:9:101","nodeType":"YulFunctionCall","src":"5837:9:101"},"variableNames":[{"name":"diff","nativeSrc":"5829:4:101","nodeType":"YulIdentifier","src":"5829:4:101"}]},{"body":{"nativeSrc":"5871:22:101","nodeType":"YulBlock","src":"5871:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5873:16:101","nodeType":"YulIdentifier","src":"5873:16:101"},"nativeSrc":"5873:18:101","nodeType":"YulFunctionCall","src":"5873:18:101"},"nativeSrc":"5873:18:101","nodeType":"YulExpressionStatement","src":"5873:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"5862:4:101","nodeType":"YulIdentifier","src":"5862:4:101"},{"name":"x","nativeSrc":"5868:1:101","nodeType":"YulIdentifier","src":"5868:1:101"}],"functionName":{"name":"gt","nativeSrc":"5859:2:101","nodeType":"YulIdentifier","src":"5859:2:101"},"nativeSrc":"5859:11:101","nodeType":"YulFunctionCall","src":"5859:11:101"},"nativeSrc":"5856:37:101","nodeType":"YulIf","src":"5856:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"5706:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5737:1:101","nodeType":"YulTypedName","src":"5737:1:101","type":""},{"name":"y","nativeSrc":"5740:1:101","nodeType":"YulTypedName","src":"5740:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5746:4:101","nodeType":"YulTypedName","src":"5746:4:101","type":""}],"src":"5706:194:101"},{"body":{"nativeSrc":"5950:147:101","nodeType":"YulBlock","src":"5950:147:101","statements":[{"nativeSrc":"5960:25:101","nodeType":"YulAssignment","src":"5960:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5983:1:101","nodeType":"YulIdentifier","src":"5983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5965:17:101","nodeType":"YulIdentifier","src":"5965:17:101"},"nativeSrc":"5965:20:101","nodeType":"YulFunctionCall","src":"5965:20:101"},"variableNames":[{"name":"x","nativeSrc":"5960:1:101","nodeType":"YulIdentifier","src":"5960:1:101"}]},{"nativeSrc":"5994:25:101","nodeType":"YulAssignment","src":"5994:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6017:1:101","nodeType":"YulIdentifier","src":"6017:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5999:17:101","nodeType":"YulIdentifier","src":"5999:17:101"},"nativeSrc":"5999:20:101","nodeType":"YulFunctionCall","src":"5999:20:101"},"variableNames":[{"name":"y","nativeSrc":"5994:1:101","nodeType":"YulIdentifier","src":"5994:1:101"}]},{"nativeSrc":"6028:16:101","nodeType":"YulAssignment","src":"6028:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6039:1:101","nodeType":"YulIdentifier","src":"6039:1:101"},{"name":"y","nativeSrc":"6042:1:101","nodeType":"YulIdentifier","src":"6042:1:101"}],"functionName":{"name":"add","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},"nativeSrc":"6035:9:101","nodeType":"YulFunctionCall","src":"6035:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"}]},{"body":{"nativeSrc":"6068:22:101","nodeType":"YulBlock","src":"6068:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6070:16:101","nodeType":"YulIdentifier","src":"6070:16:101"},"nativeSrc":"6070:18:101","nodeType":"YulFunctionCall","src":"6070:18:101"},"nativeSrc":"6070:18:101","nodeType":"YulExpressionStatement","src":"6070:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6060:1:101","nodeType":"YulIdentifier","src":"6060:1:101"},{"name":"sum","nativeSrc":"6063:3:101","nodeType":"YulIdentifier","src":"6063:3:101"}],"functionName":{"name":"gt","nativeSrc":"6057:2:101","nodeType":"YulIdentifier","src":"6057:2:101"},"nativeSrc":"6057:10:101","nodeType":"YulFunctionCall","src":"6057:10:101"},"nativeSrc":"6054:36:101","nodeType":"YulIf","src":"6054:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"5906:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5937:1:101","nodeType":"YulTypedName","src":"5937:1:101","type":""},{"name":"y","nativeSrc":"5940:1:101","nodeType":"YulTypedName","src":"5940:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5946:3:101","nodeType":"YulTypedName","src":"5946:3:101","type":""}],"src":"5906:191:101"},{"body":{"nativeSrc":"6166:80:101","nodeType":"YulBlock","src":"6166:80:101","statements":[{"nativeSrc":"6176:22:101","nodeType":"YulAssignment","src":"6176:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6191:6:101","nodeType":"YulIdentifier","src":"6191:6:101"}],"functionName":{"name":"mload","nativeSrc":"6185:5:101","nodeType":"YulIdentifier","src":"6185:5:101"},"nativeSrc":"6185:13:101","nodeType":"YulFunctionCall","src":"6185:13:101"},"variableNames":[{"name":"value","nativeSrc":"6176:5:101","nodeType":"YulIdentifier","src":"6176:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6234:5:101","nodeType":"YulIdentifier","src":"6234:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6207:26:101","nodeType":"YulIdentifier","src":"6207:26:101"},"nativeSrc":"6207:33:101","nodeType":"YulFunctionCall","src":"6207:33:101"},"nativeSrc":"6207:33:101","nodeType":"YulExpressionStatement","src":"6207:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6103:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6144:6:101","nodeType":"YulTypedName","src":"6144:6:101","type":""},{"name":"end","nativeSrc":"6152:3:101","nodeType":"YulTypedName","src":"6152:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6160:5:101","nodeType":"YulTypedName","src":"6160:5:101","type":""}],"src":"6103:143:101"},{"body":{"nativeSrc":"6329:274:101","nodeType":"YulBlock","src":"6329:274:101","statements":[{"body":{"nativeSrc":"6375:83:101","nodeType":"YulBlock","src":"6375:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6377:77:101","nodeType":"YulIdentifier","src":"6377:77:101"},"nativeSrc":"6377:79:101","nodeType":"YulFunctionCall","src":"6377:79:101"},"nativeSrc":"6377:79:101","nodeType":"YulExpressionStatement","src":"6377:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6350:7:101","nodeType":"YulIdentifier","src":"6350:7:101"},{"name":"headStart","nativeSrc":"6359:9:101","nodeType":"YulIdentifier","src":"6359:9:101"}],"functionName":{"name":"sub","nativeSrc":"6346:3:101","nodeType":"YulIdentifier","src":"6346:3:101"},"nativeSrc":"6346:23:101","nodeType":"YulFunctionCall","src":"6346:23:101"},{"kind":"number","nativeSrc":"6371:2:101","nodeType":"YulLiteral","src":"6371:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6342:3:101","nodeType":"YulIdentifier","src":"6342:3:101"},"nativeSrc":"6342:32:101","nodeType":"YulFunctionCall","src":"6342:32:101"},"nativeSrc":"6339:119:101","nodeType":"YulIf","src":"6339:119:101"},{"nativeSrc":"6468:128:101","nodeType":"YulBlock","src":"6468:128:101","statements":[{"nativeSrc":"6483:15:101","nodeType":"YulVariableDeclaration","src":"6483:15:101","value":{"kind":"number","nativeSrc":"6497:1:101","nodeType":"YulLiteral","src":"6497:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6487:6:101","nodeType":"YulTypedName","src":"6487:6:101","type":""}]},{"nativeSrc":"6512:74:101","nodeType":"YulAssignment","src":"6512:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6558:9:101","nodeType":"YulIdentifier","src":"6558:9:101"},{"name":"offset","nativeSrc":"6569:6:101","nodeType":"YulIdentifier","src":"6569:6:101"}],"functionName":{"name":"add","nativeSrc":"6554:3:101","nodeType":"YulIdentifier","src":"6554:3:101"},"nativeSrc":"6554:22:101","nodeType":"YulFunctionCall","src":"6554:22:101"},{"name":"dataEnd","nativeSrc":"6578:7:101","nodeType":"YulIdentifier","src":"6578:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6522:31:101","nodeType":"YulIdentifier","src":"6522:31:101"},"nativeSrc":"6522:64:101","nodeType":"YulFunctionCall","src":"6522:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6512:6:101","nodeType":"YulIdentifier","src":"6512:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6252:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6299:9:101","nodeType":"YulTypedName","src":"6299:9:101","type":""},{"name":"dataEnd","nativeSrc":"6310:7:101","nodeType":"YulTypedName","src":"6310:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6322:6:101","nodeType":"YulTypedName","src":"6322:6:101","type":""}],"src":"6252:351:101"},{"body":{"nativeSrc":"6657:362:101","nodeType":"YulBlock","src":"6657:362:101","statements":[{"nativeSrc":"6667:25:101","nodeType":"YulAssignment","src":"6667:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6690:1:101","nodeType":"YulIdentifier","src":"6690:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6672:17:101","nodeType":"YulIdentifier","src":"6672:17:101"},"nativeSrc":"6672:20:101","nodeType":"YulFunctionCall","src":"6672:20:101"},"variableNames":[{"name":"x","nativeSrc":"6667:1:101","nodeType":"YulIdentifier","src":"6667:1:101"}]},{"nativeSrc":"6701:25:101","nodeType":"YulAssignment","src":"6701:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6724:1:101","nodeType":"YulIdentifier","src":"6724:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6706:17:101","nodeType":"YulIdentifier","src":"6706:17:101"},"nativeSrc":"6706:20:101","nodeType":"YulFunctionCall","src":"6706:20:101"},"variableNames":[{"name":"y","nativeSrc":"6701:1:101","nodeType":"YulIdentifier","src":"6701:1:101"}]},{"nativeSrc":"6735:28:101","nodeType":"YulVariableDeclaration","src":"6735:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6758:1:101","nodeType":"YulIdentifier","src":"6758:1:101"},{"name":"y","nativeSrc":"6761:1:101","nodeType":"YulIdentifier","src":"6761:1:101"}],"functionName":{"name":"mul","nativeSrc":"6754:3:101","nodeType":"YulIdentifier","src":"6754:3:101"},"nativeSrc":"6754:9:101","nodeType":"YulFunctionCall","src":"6754:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6739:11:101","nodeType":"YulTypedName","src":"6739:11:101","type":""}]},{"nativeSrc":"6772:41:101","nodeType":"YulAssignment","src":"6772:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6801:11:101","nodeType":"YulIdentifier","src":"6801:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6783:17:101","nodeType":"YulIdentifier","src":"6783:17:101"},"nativeSrc":"6783:30:101","nodeType":"YulFunctionCall","src":"6783:30:101"},"variableNames":[{"name":"product","nativeSrc":"6772:7:101","nodeType":"YulIdentifier","src":"6772:7:101"}]},{"body":{"nativeSrc":"6990:22:101","nodeType":"YulBlock","src":"6990:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6992:16:101","nodeType":"YulIdentifier","src":"6992:16:101"},"nativeSrc":"6992:18:101","nodeType":"YulFunctionCall","src":"6992:18:101"},"nativeSrc":"6992:18:101","nodeType":"YulExpressionStatement","src":"6992:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6923:1:101","nodeType":"YulIdentifier","src":"6923:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6916:6:101","nodeType":"YulIdentifier","src":"6916:6:101"},"nativeSrc":"6916:9:101","nodeType":"YulFunctionCall","src":"6916:9:101"},{"arguments":[{"name":"y","nativeSrc":"6946:1:101","nodeType":"YulIdentifier","src":"6946:1:101"},{"arguments":[{"name":"product","nativeSrc":"6953:7:101","nodeType":"YulIdentifier","src":"6953:7:101"},{"name":"x","nativeSrc":"6962:1:101","nodeType":"YulIdentifier","src":"6962:1:101"}],"functionName":{"name":"div","nativeSrc":"6949:3:101","nodeType":"YulIdentifier","src":"6949:3:101"},"nativeSrc":"6949:15:101","nodeType":"YulFunctionCall","src":"6949:15:101"}],"functionName":{"name":"eq","nativeSrc":"6943:2:101","nodeType":"YulIdentifier","src":"6943:2:101"},"nativeSrc":"6943:22:101","nodeType":"YulFunctionCall","src":"6943:22:101"}],"functionName":{"name":"or","nativeSrc":"6896:2:101","nodeType":"YulIdentifier","src":"6896:2:101"},"nativeSrc":"6896:83:101","nodeType":"YulFunctionCall","src":"6896:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6876:6:101","nodeType":"YulIdentifier","src":"6876:6:101"},"nativeSrc":"6876:113:101","nodeType":"YulFunctionCall","src":"6876:113:101"},"nativeSrc":"6873:139:101","nodeType":"YulIf","src":"6873:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"6609:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6640:1:101","nodeType":"YulTypedName","src":"6640:1:101","type":""},{"name":"y","nativeSrc":"6643:1:101","nodeType":"YulTypedName","src":"6643:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6649:7:101","nodeType":"YulTypedName","src":"6649:7:101","type":""}],"src":"6609:410:101"},{"body":{"nativeSrc":"7068:43:101","nodeType":"YulBlock","src":"7068:43:101","statements":[{"nativeSrc":"7078:27:101","nodeType":"YulAssignment","src":"7078:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7093:5:101","nodeType":"YulIdentifier","src":"7093:5:101"},{"kind":"number","nativeSrc":"7100:4:101","nodeType":"YulLiteral","src":"7100:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7089:3:101","nodeType":"YulIdentifier","src":"7089:3:101"},"nativeSrc":"7089:16:101","nodeType":"YulFunctionCall","src":"7089:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7078:7:101","nodeType":"YulIdentifier","src":"7078:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7025:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7050:5:101","nodeType":"YulTypedName","src":"7050:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7060:7:101","nodeType":"YulTypedName","src":"7060:7:101","type":""}],"src":"7025:86:101"},{"body":{"nativeSrc":"7158:77:101","nodeType":"YulBlock","src":"7158:77:101","statements":[{"body":{"nativeSrc":"7213:16:101","nodeType":"YulBlock","src":"7213:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7222:1:101","nodeType":"YulLiteral","src":"7222:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7225:1:101","nodeType":"YulLiteral","src":"7225:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7215:6:101","nodeType":"YulIdentifier","src":"7215:6:101"},"nativeSrc":"7215:12:101","nodeType":"YulFunctionCall","src":"7215:12:101"},"nativeSrc":"7215:12:101","nodeType":"YulExpressionStatement","src":"7215:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7181:5:101","nodeType":"YulIdentifier","src":"7181:5:101"},{"arguments":[{"name":"value","nativeSrc":"7204:5:101","nodeType":"YulIdentifier","src":"7204:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7188:15:101","nodeType":"YulIdentifier","src":"7188:15:101"},"nativeSrc":"7188:22:101","nodeType":"YulFunctionCall","src":"7188:22:101"}],"functionName":{"name":"eq","nativeSrc":"7178:2:101","nodeType":"YulIdentifier","src":"7178:2:101"},"nativeSrc":"7178:33:101","nodeType":"YulFunctionCall","src":"7178:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7171:6:101","nodeType":"YulIdentifier","src":"7171:6:101"},"nativeSrc":"7171:41:101","nodeType":"YulFunctionCall","src":"7171:41:101"},"nativeSrc":"7168:61:101","nodeType":"YulIf","src":"7168:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7117:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7151:5:101","nodeType":"YulTypedName","src":"7151:5:101","type":""}],"src":"7117:118:101"},{"body":{"nativeSrc":"7302:78:101","nodeType":"YulBlock","src":"7302:78:101","statements":[{"nativeSrc":"7312:22:101","nodeType":"YulAssignment","src":"7312:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7327:6:101","nodeType":"YulIdentifier","src":"7327:6:101"}],"functionName":{"name":"mload","nativeSrc":"7321:5:101","nodeType":"YulIdentifier","src":"7321:5:101"},"nativeSrc":"7321:13:101","nodeType":"YulFunctionCall","src":"7321:13:101"},"variableNames":[{"name":"value","nativeSrc":"7312:5:101","nodeType":"YulIdentifier","src":"7312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7368:5:101","nodeType":"YulIdentifier","src":"7368:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7343:24:101","nodeType":"YulIdentifier","src":"7343:24:101"},"nativeSrc":"7343:31:101","nodeType":"YulFunctionCall","src":"7343:31:101"},"nativeSrc":"7343:31:101","nodeType":"YulExpressionStatement","src":"7343:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7241:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7280:6:101","nodeType":"YulTypedName","src":"7280:6:101","type":""},{"name":"end","nativeSrc":"7288:3:101","nodeType":"YulTypedName","src":"7288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7296:5:101","nodeType":"YulTypedName","src":"7296:5:101","type":""}],"src":"7241:139:101"},{"body":{"nativeSrc":"7461:272:101","nodeType":"YulBlock","src":"7461:272:101","statements":[{"body":{"nativeSrc":"7507:83:101","nodeType":"YulBlock","src":"7507:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7509:77:101","nodeType":"YulIdentifier","src":"7509:77:101"},"nativeSrc":"7509:79:101","nodeType":"YulFunctionCall","src":"7509:79:101"},"nativeSrc":"7509:79:101","nodeType":"YulExpressionStatement","src":"7509:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7482:7:101","nodeType":"YulIdentifier","src":"7482:7:101"},{"name":"headStart","nativeSrc":"7491:9:101","nodeType":"YulIdentifier","src":"7491:9:101"}],"functionName":{"name":"sub","nativeSrc":"7478:3:101","nodeType":"YulIdentifier","src":"7478:3:101"},"nativeSrc":"7478:23:101","nodeType":"YulFunctionCall","src":"7478:23:101"},{"kind":"number","nativeSrc":"7503:2:101","nodeType":"YulLiteral","src":"7503:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7474:3:101","nodeType":"YulIdentifier","src":"7474:3:101"},"nativeSrc":"7474:32:101","nodeType":"YulFunctionCall","src":"7474:32:101"},"nativeSrc":"7471:119:101","nodeType":"YulIf","src":"7471:119:101"},{"nativeSrc":"7600:126:101","nodeType":"YulBlock","src":"7600:126:101","statements":[{"nativeSrc":"7615:15:101","nodeType":"YulVariableDeclaration","src":"7615:15:101","value":{"kind":"number","nativeSrc":"7629:1:101","nodeType":"YulLiteral","src":"7629:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7619:6:101","nodeType":"YulTypedName","src":"7619:6:101","type":""}]},{"nativeSrc":"7644:72:101","nodeType":"YulAssignment","src":"7644:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:101","nodeType":"YulIdentifier","src":"7688:9:101"},{"name":"offset","nativeSrc":"7699:6:101","nodeType":"YulIdentifier","src":"7699:6:101"}],"functionName":{"name":"add","nativeSrc":"7684:3:101","nodeType":"YulIdentifier","src":"7684:3:101"},"nativeSrc":"7684:22:101","nodeType":"YulFunctionCall","src":"7684:22:101"},{"name":"dataEnd","nativeSrc":"7708:7:101","nodeType":"YulIdentifier","src":"7708:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7654:29:101","nodeType":"YulIdentifier","src":"7654:29:101"},"nativeSrc":"7654:62:101","nodeType":"YulFunctionCall","src":"7654:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7644:6:101","nodeType":"YulIdentifier","src":"7644:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7386:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7431:9:101","nodeType":"YulTypedName","src":"7431:9:101","type":""},{"name":"dataEnd","nativeSrc":"7442:7:101","nodeType":"YulTypedName","src":"7442:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7454:6:101","nodeType":"YulTypedName","src":"7454:6:101","type":""}],"src":"7386:347:101"},{"body":{"nativeSrc":"7790:51:101","nodeType":"YulBlock","src":"7790:51:101","statements":[{"nativeSrc":"7800:34:101","nodeType":"YulAssignment","src":"7800:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7825:1:101","nodeType":"YulLiteral","src":"7825:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7828:5:101","nodeType":"YulIdentifier","src":"7828:5:101"}],"functionName":{"name":"shr","nativeSrc":"7821:3:101","nodeType":"YulIdentifier","src":"7821:3:101"},"nativeSrc":"7821:13:101","nodeType":"YulFunctionCall","src":"7821:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7800:8:101","nodeType":"YulIdentifier","src":"7800:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7739:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7771:5:101","nodeType":"YulTypedName","src":"7771:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7781:8:101","nodeType":"YulTypedName","src":"7781:8:101","type":""}],"src":"7739:102:101"},{"body":{"nativeSrc":"7920:775:101","nodeType":"YulBlock","src":"7920:775:101","statements":[{"nativeSrc":"7930:15:101","nodeType":"YulAssignment","src":"7930:15:101","value":{"name":"_power","nativeSrc":"7939:6:101","nodeType":"YulIdentifier","src":"7939:6:101"},"variableNames":[{"name":"power","nativeSrc":"7930:5:101","nodeType":"YulIdentifier","src":"7930:5:101"}]},{"nativeSrc":"7954:14:101","nodeType":"YulAssignment","src":"7954:14:101","value":{"name":"_base","nativeSrc":"7963:5:101","nodeType":"YulIdentifier","src":"7963:5:101"},"variableNames":[{"name":"base","nativeSrc":"7954:4:101","nodeType":"YulIdentifier","src":"7954:4:101"}]},{"body":{"nativeSrc":"8012:677:101","nodeType":"YulBlock","src":"8012:677:101","statements":[{"body":{"nativeSrc":"8100:22:101","nodeType":"YulBlock","src":"8100:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8102:16:101","nodeType":"YulIdentifier","src":"8102:16:101"},"nativeSrc":"8102:18:101","nodeType":"YulFunctionCall","src":"8102:18:101"},"nativeSrc":"8102:18:101","nodeType":"YulExpressionStatement","src":"8102:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8078:4:101","nodeType":"YulIdentifier","src":"8078:4:101"},{"arguments":[{"name":"max","nativeSrc":"8088:3:101","nodeType":"YulIdentifier","src":"8088:3:101"},{"name":"base","nativeSrc":"8093:4:101","nodeType":"YulIdentifier","src":"8093:4:101"}],"functionName":{"name":"div","nativeSrc":"8084:3:101","nodeType":"YulIdentifier","src":"8084:3:101"},"nativeSrc":"8084:14:101","nodeType":"YulFunctionCall","src":"8084:14:101"}],"functionName":{"name":"gt","nativeSrc":"8075:2:101","nodeType":"YulIdentifier","src":"8075:2:101"},"nativeSrc":"8075:24:101","nodeType":"YulFunctionCall","src":"8075:24:101"},"nativeSrc":"8072:50:101","nodeType":"YulIf","src":"8072:50:101"},{"body":{"nativeSrc":"8167:419:101","nodeType":"YulBlock","src":"8167:419:101","statements":[{"nativeSrc":"8547:25:101","nodeType":"YulAssignment","src":"8547:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},{"name":"base","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"mul","nativeSrc":"8556:3:101","nodeType":"YulIdentifier","src":"8556:3:101"},"nativeSrc":"8556:16:101","nodeType":"YulFunctionCall","src":"8556:16:101"},"variableNames":[{"name":"power","nativeSrc":"8547:5:101","nodeType":"YulIdentifier","src":"8547:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8142:8:101","nodeType":"YulIdentifier","src":"8142:8:101"},{"kind":"number","nativeSrc":"8152:1:101","nodeType":"YulLiteral","src":"8152:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8138:3:101","nodeType":"YulIdentifier","src":"8138:3:101"},"nativeSrc":"8138:16:101","nodeType":"YulFunctionCall","src":"8138:16:101"},"nativeSrc":"8135:451:101","nodeType":"YulIf","src":"8135:451:101"},{"nativeSrc":"8599:23:101","nodeType":"YulAssignment","src":"8599:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8611:4:101","nodeType":"YulIdentifier","src":"8611:4:101"},{"name":"base","nativeSrc":"8617:4:101","nodeType":"YulIdentifier","src":"8617:4:101"}],"functionName":{"name":"mul","nativeSrc":"8607:3:101","nodeType":"YulIdentifier","src":"8607:3:101"},"nativeSrc":"8607:15:101","nodeType":"YulFunctionCall","src":"8607:15:101"},"variableNames":[{"name":"base","nativeSrc":"8599:4:101","nodeType":"YulIdentifier","src":"8599:4:101"}]},{"nativeSrc":"8635:44:101","nodeType":"YulAssignment","src":"8635:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8670:8:101","nodeType":"YulIdentifier","src":"8670:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8647:22:101","nodeType":"YulIdentifier","src":"8647:22:101"},"nativeSrc":"8647:32:101","nodeType":"YulFunctionCall","src":"8647:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8635:8:101","nodeType":"YulIdentifier","src":"8635:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7988:8:101","nodeType":"YulIdentifier","src":"7988:8:101"},{"kind":"number","nativeSrc":"7998:1:101","nodeType":"YulLiteral","src":"7998:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7985:2:101","nodeType":"YulIdentifier","src":"7985:2:101"},"nativeSrc":"7985:15:101","nodeType":"YulFunctionCall","src":"7985:15:101"},"nativeSrc":"7977:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8001:2:101","nodeType":"YulBlock","src":"8001:2:101","statements":[]},"pre":{"nativeSrc":"7981:3:101","nodeType":"YulBlock","src":"7981:3:101","statements":[]},"src":"7977:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7847:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7875:6:101","nodeType":"YulTypedName","src":"7875:6:101","type":""},{"name":"_base","nativeSrc":"7883:5:101","nodeType":"YulTypedName","src":"7883:5:101","type":""},{"name":"exponent","nativeSrc":"7890:8:101","nodeType":"YulTypedName","src":"7890:8:101","type":""},{"name":"max","nativeSrc":"7900:3:101","nodeType":"YulTypedName","src":"7900:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7908:5:101","nodeType":"YulTypedName","src":"7908:5:101","type":""},{"name":"base","nativeSrc":"7915:4:101","nodeType":"YulTypedName","src":"7915:4:101","type":""}],"src":"7847:848:101"},{"body":{"nativeSrc":"8761:1013:101","nodeType":"YulBlock","src":"8761:1013:101","statements":[{"body":{"nativeSrc":"8956:20:101","nodeType":"YulBlock","src":"8956:20:101","statements":[{"nativeSrc":"8958:10:101","nodeType":"YulAssignment","src":"8958:10:101","value":{"kind":"number","nativeSrc":"8967:1:101","nodeType":"YulLiteral","src":"8967:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8958:5:101","nodeType":"YulIdentifier","src":"8958:5:101"}]},{"nativeSrc":"8969:5:101","nodeType":"YulLeave","src":"8969:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8946:8:101","nodeType":"YulIdentifier","src":"8946:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8939:6:101","nodeType":"YulIdentifier","src":"8939:6:101"},"nativeSrc":"8939:16:101","nodeType":"YulFunctionCall","src":"8939:16:101"},"nativeSrc":"8936:40:101","nodeType":"YulIf","src":"8936:40:101"},{"body":{"nativeSrc":"9001:20:101","nodeType":"YulBlock","src":"9001:20:101","statements":[{"nativeSrc":"9003:10:101","nodeType":"YulAssignment","src":"9003:10:101","value":{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9003:5:101","nodeType":"YulIdentifier","src":"9003:5:101"}]},{"nativeSrc":"9014:5:101","nodeType":"YulLeave","src":"9014:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8995:4:101","nodeType":"YulIdentifier","src":"8995:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8988:6:101","nodeType":"YulIdentifier","src":"8988:6:101"},"nativeSrc":"8988:12:101","nodeType":"YulFunctionCall","src":"8988:12:101"},"nativeSrc":"8985:36:101","nodeType":"YulIf","src":"8985:36:101"},{"cases":[{"body":{"nativeSrc":"9131:20:101","nodeType":"YulBlock","src":"9131:20:101","statements":[{"nativeSrc":"9133:10:101","nodeType":"YulAssignment","src":"9133:10:101","value":{"kind":"number","nativeSrc":"9142:1:101","nodeType":"YulLiteral","src":"9142:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9133:5:101","nodeType":"YulIdentifier","src":"9133:5:101"}]},{"nativeSrc":"9144:5:101","nodeType":"YulLeave","src":"9144:5:101"}]},"nativeSrc":"9124:27:101","nodeType":"YulCase","src":"9124:27:101","value":{"kind":"number","nativeSrc":"9129:1:101","nodeType":"YulLiteral","src":"9129:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9175:176:101","nodeType":"YulBlock","src":"9175:176:101","statements":[{"body":{"nativeSrc":"9210:22:101","nodeType":"YulBlock","src":"9210:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9212:16:101","nodeType":"YulIdentifier","src":"9212:16:101"},"nativeSrc":"9212:18:101","nodeType":"YulFunctionCall","src":"9212:18:101"},"nativeSrc":"9212:18:101","nodeType":"YulExpressionStatement","src":"9212:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9195:8:101","nodeType":"YulIdentifier","src":"9195:8:101"},{"kind":"number","nativeSrc":"9205:3:101","nodeType":"YulLiteral","src":"9205:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9192:2:101","nodeType":"YulIdentifier","src":"9192:2:101"},"nativeSrc":"9192:17:101","nodeType":"YulFunctionCall","src":"9192:17:101"},"nativeSrc":"9189:43:101","nodeType":"YulIf","src":"9189:43:101"},{"nativeSrc":"9245:25:101","nodeType":"YulAssignment","src":"9245:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9258:1:101","nodeType":"YulLiteral","src":"9258:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9261:8:101","nodeType":"YulIdentifier","src":"9261:8:101"}],"functionName":{"name":"exp","nativeSrc":"9254:3:101","nodeType":"YulIdentifier","src":"9254:3:101"},"nativeSrc":"9254:16:101","nodeType":"YulFunctionCall","src":"9254:16:101"},"variableNames":[{"name":"power","nativeSrc":"9245:5:101","nodeType":"YulIdentifier","src":"9245:5:101"}]},{"body":{"nativeSrc":"9301:22:101","nodeType":"YulBlock","src":"9301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9303:16:101","nodeType":"YulIdentifier","src":"9303:16:101"},"nativeSrc":"9303:18:101","nodeType":"YulFunctionCall","src":"9303:18:101"},"nativeSrc":"9303:18:101","nodeType":"YulExpressionStatement","src":"9303:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9289:5:101","nodeType":"YulIdentifier","src":"9289:5:101"},{"name":"max","nativeSrc":"9296:3:101","nodeType":"YulIdentifier","src":"9296:3:101"}],"functionName":{"name":"gt","nativeSrc":"9286:2:101","nodeType":"YulIdentifier","src":"9286:2:101"},"nativeSrc":"9286:14:101","nodeType":"YulFunctionCall","src":"9286:14:101"},"nativeSrc":"9283:40:101","nodeType":"YulIf","src":"9283:40:101"},{"nativeSrc":"9336:5:101","nodeType":"YulLeave","src":"9336:5:101"}]},"nativeSrc":"9160:191:101","nodeType":"YulCase","src":"9160:191:101","value":{"kind":"number","nativeSrc":"9165:1:101","nodeType":"YulLiteral","src":"9165:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9081:4:101","nodeType":"YulIdentifier","src":"9081:4:101"},"nativeSrc":"9074:277:101","nodeType":"YulSwitch","src":"9074:277:101"},{"body":{"nativeSrc":"9483:123:101","nodeType":"YulBlock","src":"9483:123:101","statements":[{"nativeSrc":"9497:28:101","nodeType":"YulAssignment","src":"9497:28:101","value":{"arguments":[{"name":"base","nativeSrc":"9510:4:101","nodeType":"YulIdentifier","src":"9510:4:101"},{"name":"exponent","nativeSrc":"9516:8:101","nodeType":"YulIdentifier","src":"9516:8:101"}],"functionName":{"name":"exp","nativeSrc":"9506:3:101","nodeType":"YulIdentifier","src":"9506:3:101"},"nativeSrc":"9506:19:101","nodeType":"YulFunctionCall","src":"9506:19:101"},"variableNames":[{"name":"power","nativeSrc":"9497:5:101","nodeType":"YulIdentifier","src":"9497:5:101"}]},{"body":{"nativeSrc":"9556:22:101","nodeType":"YulBlock","src":"9556:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9558:16:101","nodeType":"YulIdentifier","src":"9558:16:101"},"nativeSrc":"9558:18:101","nodeType":"YulFunctionCall","src":"9558:18:101"},"nativeSrc":"9558:18:101","nodeType":"YulExpressionStatement","src":"9558:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9544:5:101","nodeType":"YulIdentifier","src":"9544:5:101"},{"name":"max","nativeSrc":"9551:3:101","nodeType":"YulIdentifier","src":"9551:3:101"}],"functionName":{"name":"gt","nativeSrc":"9541:2:101","nodeType":"YulIdentifier","src":"9541:2:101"},"nativeSrc":"9541:14:101","nodeType":"YulFunctionCall","src":"9541:14:101"},"nativeSrc":"9538:40:101","nodeType":"YulIf","src":"9538:40:101"},{"nativeSrc":"9591:5:101","nodeType":"YulLeave","src":"9591:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9386:4:101","nodeType":"YulIdentifier","src":"9386:4:101"},{"kind":"number","nativeSrc":"9392:2:101","nodeType":"YulLiteral","src":"9392:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9383:2:101","nodeType":"YulIdentifier","src":"9383:2:101"},"nativeSrc":"9383:12:101","nodeType":"YulFunctionCall","src":"9383:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9400:8:101","nodeType":"YulIdentifier","src":"9400:8:101"},{"kind":"number","nativeSrc":"9410:2:101","nodeType":"YulLiteral","src":"9410:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9397:2:101","nodeType":"YulIdentifier","src":"9397:2:101"},"nativeSrc":"9397:16:101","nodeType":"YulFunctionCall","src":"9397:16:101"}],"functionName":{"name":"and","nativeSrc":"9379:3:101","nodeType":"YulIdentifier","src":"9379:3:101"},"nativeSrc":"9379:35:101","nodeType":"YulFunctionCall","src":"9379:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9435:4:101","nodeType":"YulIdentifier","src":"9435:4:101"},{"kind":"number","nativeSrc":"9441:3:101","nodeType":"YulLiteral","src":"9441:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9432:2:101","nodeType":"YulIdentifier","src":"9432:2:101"},"nativeSrc":"9432:13:101","nodeType":"YulFunctionCall","src":"9432:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9450:8:101","nodeType":"YulIdentifier","src":"9450:8:101"},{"kind":"number","nativeSrc":"9460:2:101","nodeType":"YulLiteral","src":"9460:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9447:2:101","nodeType":"YulIdentifier","src":"9447:2:101"},"nativeSrc":"9447:16:101","nodeType":"YulFunctionCall","src":"9447:16:101"}],"functionName":{"name":"and","nativeSrc":"9428:3:101","nodeType":"YulIdentifier","src":"9428:3:101"},"nativeSrc":"9428:36:101","nodeType":"YulFunctionCall","src":"9428:36:101"}],"functionName":{"name":"or","nativeSrc":"9363:2:101","nodeType":"YulIdentifier","src":"9363:2:101"},"nativeSrc":"9363:111:101","nodeType":"YulFunctionCall","src":"9363:111:101"},"nativeSrc":"9360:246:101","nodeType":"YulIf","src":"9360:246:101"},{"nativeSrc":"9616:57:101","nodeType":"YulAssignment","src":"9616:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9650:1:101","nodeType":"YulLiteral","src":"9650:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9653:4:101","nodeType":"YulIdentifier","src":"9653:4:101"},{"name":"exponent","nativeSrc":"9659:8:101","nodeType":"YulIdentifier","src":"9659:8:101"},{"name":"max","nativeSrc":"9669:3:101","nodeType":"YulIdentifier","src":"9669:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9631:18:101","nodeType":"YulIdentifier","src":"9631:18:101"},"nativeSrc":"9631:42:101","nodeType":"YulFunctionCall","src":"9631:42:101"},"variableNames":[{"name":"power","nativeSrc":"9616:5:101","nodeType":"YulIdentifier","src":"9616:5:101"},{"name":"base","nativeSrc":"9623:4:101","nodeType":"YulIdentifier","src":"9623:4:101"}]},{"body":{"nativeSrc":"9712:22:101","nodeType":"YulBlock","src":"9712:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9714:16:101","nodeType":"YulIdentifier","src":"9714:16:101"},"nativeSrc":"9714:18:101","nodeType":"YulFunctionCall","src":"9714:18:101"},"nativeSrc":"9714:18:101","nodeType":"YulExpressionStatement","src":"9714:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9689:5:101","nodeType":"YulIdentifier","src":"9689:5:101"},{"arguments":[{"name":"max","nativeSrc":"9700:3:101","nodeType":"YulIdentifier","src":"9700:3:101"},{"name":"base","nativeSrc":"9705:4:101","nodeType":"YulIdentifier","src":"9705:4:101"}],"functionName":{"name":"div","nativeSrc":"9696:3:101","nodeType":"YulIdentifier","src":"9696:3:101"},"nativeSrc":"9696:14:101","nodeType":"YulFunctionCall","src":"9696:14:101"}],"functionName":{"name":"gt","nativeSrc":"9686:2:101","nodeType":"YulIdentifier","src":"9686:2:101"},"nativeSrc":"9686:25:101","nodeType":"YulFunctionCall","src":"9686:25:101"},"nativeSrc":"9683:51:101","nodeType":"YulIf","src":"9683:51:101"},{"nativeSrc":"9743:25:101","nodeType":"YulAssignment","src":"9743:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9756:5:101","nodeType":"YulIdentifier","src":"9756:5:101"},{"name":"base","nativeSrc":"9763:4:101","nodeType":"YulIdentifier","src":"9763:4:101"}],"functionName":{"name":"mul","nativeSrc":"9752:3:101","nodeType":"YulIdentifier","src":"9752:3:101"},"nativeSrc":"9752:16:101","nodeType":"YulFunctionCall","src":"9752:16:101"},"variableNames":[{"name":"power","nativeSrc":"9743:5:101","nodeType":"YulIdentifier","src":"9743:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8701:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8731:4:101","nodeType":"YulTypedName","src":"8731:4:101","type":""},{"name":"exponent","nativeSrc":"8737:8:101","nodeType":"YulTypedName","src":"8737:8:101","type":""},{"name":"max","nativeSrc":"8747:3:101","nodeType":"YulTypedName","src":"8747:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8755:5:101","nodeType":"YulTypedName","src":"8755:5:101","type":""}],"src":"8701:1073:101"},{"body":{"nativeSrc":"9846:219:101","nodeType":"YulBlock","src":"9846:219:101","statements":[{"nativeSrc":"9856:31:101","nodeType":"YulAssignment","src":"9856:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9882:4:101","nodeType":"YulIdentifier","src":"9882:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9864:17:101","nodeType":"YulIdentifier","src":"9864:17:101"},"nativeSrc":"9864:23:101","nodeType":"YulFunctionCall","src":"9864:23:101"},"variableNames":[{"name":"base","nativeSrc":"9856:4:101","nodeType":"YulIdentifier","src":"9856:4:101"}]},{"nativeSrc":"9896:39:101","nodeType":"YulAssignment","src":"9896:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9926:8:101","nodeType":"YulIdentifier","src":"9926:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9908:17:101","nodeType":"YulIdentifier","src":"9908:17:101"},"nativeSrc":"9908:27:101","nodeType":"YulFunctionCall","src":"9908:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9896:8:101","nodeType":"YulIdentifier","src":"9896:8:101"}]},{"nativeSrc":"9945:113:101","nodeType":"YulAssignment","src":"9945:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9975:4:101","nodeType":"YulIdentifier","src":"9975:4:101"},{"name":"exponent","nativeSrc":"9981:8:101","nodeType":"YulIdentifier","src":"9981:8:101"},{"kind":"number","nativeSrc":"9991:66:101","nodeType":"YulLiteral","src":"9991:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9954:20:101","nodeType":"YulIdentifier","src":"9954:20:101"},"nativeSrc":"9954:104:101","nodeType":"YulFunctionCall","src":"9954:104:101"},"variableNames":[{"name":"power","nativeSrc":"9945:5:101","nodeType":"YulIdentifier","src":"9945:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9780:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9821:4:101","nodeType":"YulTypedName","src":"9821:4:101","type":""},{"name":"exponent","nativeSrc":"9827:8:101","nodeType":"YulTypedName","src":"9827:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9840:5:101","nodeType":"YulTypedName","src":"9840:5:101","type":""}],"src":"9780:285:101"},{"body":{"nativeSrc":"10130:40:101","nodeType":"YulBlock","src":"10130:40:101","statements":[{"nativeSrc":"10141:22:101","nodeType":"YulAssignment","src":"10141:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10157:5:101","nodeType":"YulIdentifier","src":"10157:5:101"}],"functionName":{"name":"mload","nativeSrc":"10151:5:101","nodeType":"YulIdentifier","src":"10151:5:101"},"nativeSrc":"10151:12:101","nodeType":"YulFunctionCall","src":"10151:12:101"},"variableNames":[{"name":"length","nativeSrc":"10141:6:101","nodeType":"YulIdentifier","src":"10141:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10071:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10113:5:101","nodeType":"YulTypedName","src":"10113:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10123:6:101","nodeType":"YulTypedName","src":"10123:6:101","type":""}],"src":"10071:99:101"},{"body":{"nativeSrc":"10272:73:101","nodeType":"YulBlock","src":"10272:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10289:3:101","nodeType":"YulIdentifier","src":"10289:3:101"},{"name":"length","nativeSrc":"10294:6:101","nodeType":"YulIdentifier","src":"10294:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10282:6:101","nodeType":"YulIdentifier","src":"10282:6:101"},"nativeSrc":"10282:19:101","nodeType":"YulFunctionCall","src":"10282:19:101"},"nativeSrc":"10282:19:101","nodeType":"YulExpressionStatement","src":"10282:19:101"},{"nativeSrc":"10310:29:101","nodeType":"YulAssignment","src":"10310:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10329:3:101","nodeType":"YulIdentifier","src":"10329:3:101"},{"kind":"number","nativeSrc":"10334:4:101","nodeType":"YulLiteral","src":"10334:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10325:3:101","nodeType":"YulIdentifier","src":"10325:3:101"},"nativeSrc":"10325:14:101","nodeType":"YulFunctionCall","src":"10325:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10310:11:101","nodeType":"YulIdentifier","src":"10310:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10176:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10244:3:101","nodeType":"YulTypedName","src":"10244:3:101","type":""},{"name":"length","nativeSrc":"10249:6:101","nodeType":"YulTypedName","src":"10249:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10260:11:101","nodeType":"YulTypedName","src":"10260:11:101","type":""}],"src":"10176:169:101"},{"body":{"nativeSrc":"10413:77:101","nodeType":"YulBlock","src":"10413:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10430:3:101","nodeType":"YulIdentifier","src":"10430:3:101"},{"name":"src","nativeSrc":"10435:3:101","nodeType":"YulIdentifier","src":"10435:3:101"},{"name":"length","nativeSrc":"10440:6:101","nodeType":"YulIdentifier","src":"10440:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10424:5:101","nodeType":"YulIdentifier","src":"10424:5:101"},"nativeSrc":"10424:23:101","nodeType":"YulFunctionCall","src":"10424:23:101"},"nativeSrc":"10424:23:101","nodeType":"YulExpressionStatement","src":"10424:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10467:3:101","nodeType":"YulIdentifier","src":"10467:3:101"},{"name":"length","nativeSrc":"10472:6:101","nodeType":"YulIdentifier","src":"10472:6:101"}],"functionName":{"name":"add","nativeSrc":"10463:3:101","nodeType":"YulIdentifier","src":"10463:3:101"},"nativeSrc":"10463:16:101","nodeType":"YulFunctionCall","src":"10463:16:101"},{"kind":"number","nativeSrc":"10481:1:101","nodeType":"YulLiteral","src":"10481:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10456:6:101","nodeType":"YulIdentifier","src":"10456:6:101"},"nativeSrc":"10456:27:101","nodeType":"YulFunctionCall","src":"10456:27:101"},"nativeSrc":"10456:27:101","nodeType":"YulExpressionStatement","src":"10456:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10351:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10395:3:101","nodeType":"YulTypedName","src":"10395:3:101","type":""},{"name":"dst","nativeSrc":"10400:3:101","nodeType":"YulTypedName","src":"10400:3:101","type":""},{"name":"length","nativeSrc":"10405:6:101","nodeType":"YulTypedName","src":"10405:6:101","type":""}],"src":"10351:139:101"},{"body":{"nativeSrc":"10544:54:101","nodeType":"YulBlock","src":"10544:54:101","statements":[{"nativeSrc":"10554:38:101","nodeType":"YulAssignment","src":"10554:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10572:5:101","nodeType":"YulIdentifier","src":"10572:5:101"},{"kind":"number","nativeSrc":"10579:2:101","nodeType":"YulLiteral","src":"10579:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10568:3:101","nodeType":"YulIdentifier","src":"10568:3:101"},"nativeSrc":"10568:14:101","nodeType":"YulFunctionCall","src":"10568:14:101"},{"arguments":[{"kind":"number","nativeSrc":"10588:2:101","nodeType":"YulLiteral","src":"10588:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10584:3:101","nodeType":"YulIdentifier","src":"10584:3:101"},"nativeSrc":"10584:7:101","nodeType":"YulFunctionCall","src":"10584:7:101"}],"functionName":{"name":"and","nativeSrc":"10564:3:101","nodeType":"YulIdentifier","src":"10564:3:101"},"nativeSrc":"10564:28:101","nodeType":"YulFunctionCall","src":"10564:28:101"},"variableNames":[{"name":"result","nativeSrc":"10554:6:101","nodeType":"YulIdentifier","src":"10554:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"10496:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10527:5:101","nodeType":"YulTypedName","src":"10527:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10537:6:101","nodeType":"YulTypedName","src":"10537:6:101","type":""}],"src":"10496:102:101"},{"body":{"nativeSrc":"10696:285:101","nodeType":"YulBlock","src":"10696:285:101","statements":[{"nativeSrc":"10706:53:101","nodeType":"YulVariableDeclaration","src":"10706:53:101","value":{"arguments":[{"name":"value","nativeSrc":"10753:5:101","nodeType":"YulIdentifier","src":"10753:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"10720:32:101","nodeType":"YulIdentifier","src":"10720:32:101"},"nativeSrc":"10720:39:101","nodeType":"YulFunctionCall","src":"10720:39:101"},"variables":[{"name":"length","nativeSrc":"10710:6:101","nodeType":"YulTypedName","src":"10710:6:101","type":""}]},{"nativeSrc":"10768:78:101","nodeType":"YulAssignment","src":"10768:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"10834:3:101","nodeType":"YulIdentifier","src":"10834:3:101"},{"name":"length","nativeSrc":"10839:6:101","nodeType":"YulIdentifier","src":"10839:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10775:58:101","nodeType":"YulIdentifier","src":"10775:58:101"},"nativeSrc":"10775:71:101","nodeType":"YulFunctionCall","src":"10775:71:101"},"variableNames":[{"name":"pos","nativeSrc":"10768:3:101","nodeType":"YulIdentifier","src":"10768:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10894:5:101","nodeType":"YulIdentifier","src":"10894:5:101"},{"kind":"number","nativeSrc":"10901:4:101","nodeType":"YulLiteral","src":"10901:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10890:3:101","nodeType":"YulIdentifier","src":"10890:3:101"},"nativeSrc":"10890:16:101","nodeType":"YulFunctionCall","src":"10890:16:101"},{"name":"pos","nativeSrc":"10908:3:101","nodeType":"YulIdentifier","src":"10908:3:101"},{"name":"length","nativeSrc":"10913:6:101","nodeType":"YulIdentifier","src":"10913:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10855:34:101","nodeType":"YulIdentifier","src":"10855:34:101"},"nativeSrc":"10855:65:101","nodeType":"YulFunctionCall","src":"10855:65:101"},"nativeSrc":"10855:65:101","nodeType":"YulExpressionStatement","src":"10855:65:101"},{"nativeSrc":"10929:46:101","nodeType":"YulAssignment","src":"10929:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"10940:3:101","nodeType":"YulIdentifier","src":"10940:3:101"},{"arguments":[{"name":"length","nativeSrc":"10967:6:101","nodeType":"YulIdentifier","src":"10967:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10945:21:101","nodeType":"YulIdentifier","src":"10945:21:101"},"nativeSrc":"10945:29:101","nodeType":"YulFunctionCall","src":"10945:29:101"}],"functionName":{"name":"add","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},"nativeSrc":"10936:39:101","nodeType":"YulFunctionCall","src":"10936:39:101"},"variableNames":[{"name":"end","nativeSrc":"10929:3:101","nodeType":"YulIdentifier","src":"10929:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10604:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10677:5:101","nodeType":"YulTypedName","src":"10677:5:101","type":""},{"name":"pos","nativeSrc":"10684:3:101","nodeType":"YulTypedName","src":"10684:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10692:3:101","nodeType":"YulTypedName","src":"10692:3:101","type":""}],"src":"10604:377:101"},{"body":{"nativeSrc":"11133:277:101","nodeType":"YulBlock","src":"11133:277:101","statements":[{"nativeSrc":"11143:26:101","nodeType":"YulAssignment","src":"11143:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11155:9:101","nodeType":"YulIdentifier","src":"11155:9:101"},{"kind":"number","nativeSrc":"11166:2:101","nodeType":"YulLiteral","src":"11166:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11151:3:101","nodeType":"YulIdentifier","src":"11151:3:101"},"nativeSrc":"11151:18:101","nodeType":"YulFunctionCall","src":"11151:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11223:6:101","nodeType":"YulIdentifier","src":"11223:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11236:9:101","nodeType":"YulIdentifier","src":"11236:9:101"},{"kind":"number","nativeSrc":"11247:1:101","nodeType":"YulLiteral","src":"11247:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11232:3:101","nodeType":"YulIdentifier","src":"11232:3:101"},"nativeSrc":"11232:17:101","nodeType":"YulFunctionCall","src":"11232:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11179:43:101","nodeType":"YulIdentifier","src":"11179:43:101"},"nativeSrc":"11179:71:101","nodeType":"YulFunctionCall","src":"11179:71:101"},"nativeSrc":"11179:71:101","nodeType":"YulExpressionStatement","src":"11179:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11271:9:101","nodeType":"YulIdentifier","src":"11271:9:101"},{"kind":"number","nativeSrc":"11282:2:101","nodeType":"YulLiteral","src":"11282:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11267:3:101","nodeType":"YulIdentifier","src":"11267:3:101"},"nativeSrc":"11267:18:101","nodeType":"YulFunctionCall","src":"11267:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11291:4:101","nodeType":"YulIdentifier","src":"11291:4:101"},{"name":"headStart","nativeSrc":"11297:9:101","nodeType":"YulIdentifier","src":"11297:9:101"}],"functionName":{"name":"sub","nativeSrc":"11287:3:101","nodeType":"YulIdentifier","src":"11287:3:101"},"nativeSrc":"11287:20:101","nodeType":"YulFunctionCall","src":"11287:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11260:6:101","nodeType":"YulIdentifier","src":"11260:6:101"},"nativeSrc":"11260:48:101","nodeType":"YulFunctionCall","src":"11260:48:101"},"nativeSrc":"11260:48:101","nodeType":"YulExpressionStatement","src":"11260:48:101"},{"nativeSrc":"11317:86:101","nodeType":"YulAssignment","src":"11317:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11389:6:101","nodeType":"YulIdentifier","src":"11389:6:101"},{"name":"tail","nativeSrc":"11398:4:101","nodeType":"YulIdentifier","src":"11398:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11325:63:101","nodeType":"YulIdentifier","src":"11325:63:101"},"nativeSrc":"11325:78:101","nodeType":"YulFunctionCall","src":"11325:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11317:4:101","nodeType":"YulIdentifier","src":"11317:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10987:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11097:9:101","nodeType":"YulTypedName","src":"11097:9:101","type":""},{"name":"value1","nativeSrc":"11109:6:101","nodeType":"YulTypedName","src":"11109:6:101","type":""},{"name":"value0","nativeSrc":"11117:6:101","nodeType":"YulTypedName","src":"11117:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11128:4:101","nodeType":"YulTypedName","src":"11128:4:101","type":""}],"src":"10987:423:101"},{"body":{"nativeSrc":"11456:76:101","nodeType":"YulBlock","src":"11456:76:101","statements":[{"body":{"nativeSrc":"11510:16:101","nodeType":"YulBlock","src":"11510:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11519:1:101","nodeType":"YulLiteral","src":"11519:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"11522:1:101","nodeType":"YulLiteral","src":"11522:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11512:6:101","nodeType":"YulIdentifier","src":"11512:6:101"},"nativeSrc":"11512:12:101","nodeType":"YulFunctionCall","src":"11512:12:101"},"nativeSrc":"11512:12:101","nodeType":"YulExpressionStatement","src":"11512:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11479:5:101","nodeType":"YulIdentifier","src":"11479:5:101"},{"arguments":[{"name":"value","nativeSrc":"11501:5:101","nodeType":"YulIdentifier","src":"11501:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"11486:14:101","nodeType":"YulIdentifier","src":"11486:14:101"},"nativeSrc":"11486:21:101","nodeType":"YulFunctionCall","src":"11486:21:101"}],"functionName":{"name":"eq","nativeSrc":"11476:2:101","nodeType":"YulIdentifier","src":"11476:2:101"},"nativeSrc":"11476:32:101","nodeType":"YulFunctionCall","src":"11476:32:101"}],"functionName":{"name":"iszero","nativeSrc":"11469:6:101","nodeType":"YulIdentifier","src":"11469:6:101"},"nativeSrc":"11469:40:101","nodeType":"YulFunctionCall","src":"11469:40:101"},"nativeSrc":"11466:60:101","nodeType":"YulIf","src":"11466:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11416:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11449:5:101","nodeType":"YulTypedName","src":"11449:5:101","type":""}],"src":"11416:116:101"},{"body":{"nativeSrc":"11598:77:101","nodeType":"YulBlock","src":"11598:77:101","statements":[{"nativeSrc":"11608:22:101","nodeType":"YulAssignment","src":"11608:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"11623:6:101","nodeType":"YulIdentifier","src":"11623:6:101"}],"functionName":{"name":"mload","nativeSrc":"11617:5:101","nodeType":"YulIdentifier","src":"11617:5:101"},"nativeSrc":"11617:13:101","nodeType":"YulFunctionCall","src":"11617:13:101"},"variableNames":[{"name":"value","nativeSrc":"11608:5:101","nodeType":"YulIdentifier","src":"11608:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11663:5:101","nodeType":"YulIdentifier","src":"11663:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"11639:23:101","nodeType":"YulIdentifier","src":"11639:23:101"},"nativeSrc":"11639:30:101","nodeType":"YulFunctionCall","src":"11639:30:101"},"nativeSrc":"11639:30:101","nodeType":"YulExpressionStatement","src":"11639:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11538:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11576:6:101","nodeType":"YulTypedName","src":"11576:6:101","type":""},{"name":"end","nativeSrc":"11584:3:101","nodeType":"YulTypedName","src":"11584:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11592:5:101","nodeType":"YulTypedName","src":"11592:5:101","type":""}],"src":"11538:137:101"},{"body":{"nativeSrc":"11755:271:101","nodeType":"YulBlock","src":"11755:271:101","statements":[{"body":{"nativeSrc":"11801:83:101","nodeType":"YulBlock","src":"11801:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11803:77:101","nodeType":"YulIdentifier","src":"11803:77:101"},"nativeSrc":"11803:79:101","nodeType":"YulFunctionCall","src":"11803:79:101"},"nativeSrc":"11803:79:101","nodeType":"YulExpressionStatement","src":"11803:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11776:7:101","nodeType":"YulIdentifier","src":"11776:7:101"},{"name":"headStart","nativeSrc":"11785:9:101","nodeType":"YulIdentifier","src":"11785:9:101"}],"functionName":{"name":"sub","nativeSrc":"11772:3:101","nodeType":"YulIdentifier","src":"11772:3:101"},"nativeSrc":"11772:23:101","nodeType":"YulFunctionCall","src":"11772:23:101"},{"kind":"number","nativeSrc":"11797:2:101","nodeType":"YulLiteral","src":"11797:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:32:101","nodeType":"YulFunctionCall","src":"11768:32:101"},"nativeSrc":"11765:119:101","nodeType":"YulIf","src":"11765:119:101"},{"nativeSrc":"11894:125:101","nodeType":"YulBlock","src":"11894:125:101","statements":[{"nativeSrc":"11909:15:101","nodeType":"YulVariableDeclaration","src":"11909:15:101","value":{"kind":"number","nativeSrc":"11923:1:101","nodeType":"YulLiteral","src":"11923:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11913:6:101","nodeType":"YulTypedName","src":"11913:6:101","type":""}]},{"nativeSrc":"11938:71:101","nodeType":"YulAssignment","src":"11938:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11981:9:101","nodeType":"YulIdentifier","src":"11981:9:101"},{"name":"offset","nativeSrc":"11992:6:101","nodeType":"YulIdentifier","src":"11992:6:101"}],"functionName":{"name":"add","nativeSrc":"11977:3:101","nodeType":"YulIdentifier","src":"11977:3:101"},"nativeSrc":"11977:22:101","nodeType":"YulFunctionCall","src":"11977:22:101"},{"name":"dataEnd","nativeSrc":"12001:7:101","nodeType":"YulIdentifier","src":"12001:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11948:28:101","nodeType":"YulIdentifier","src":"11948:28:101"},"nativeSrc":"11948:61:101","nodeType":"YulFunctionCall","src":"11948:61:101"},"variableNames":[{"name":"value0","nativeSrc":"11938:6:101","nodeType":"YulIdentifier","src":"11938:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"11681:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11725:9:101","nodeType":"YulTypedName","src":"11725:9:101","type":""},{"name":"dataEnd","nativeSrc":"11736:7:101","nodeType":"YulTypedName","src":"11736:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11748:6:101","nodeType":"YulTypedName","src":"11748:6:101","type":""}],"src":"11681:345:101"},{"body":{"nativeSrc":"12206:359:101","nodeType":"YulBlock","src":"12206:359:101","statements":[{"nativeSrc":"12216:26:101","nodeType":"YulAssignment","src":"12216:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12228:9:101","nodeType":"YulIdentifier","src":"12228:9:101"},{"kind":"number","nativeSrc":"12239:2:101","nodeType":"YulLiteral","src":"12239:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12224:3:101","nodeType":"YulIdentifier","src":"12224:3:101"},"nativeSrc":"12224:18:101","nodeType":"YulFunctionCall","src":"12224:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12216:4:101","nodeType":"YulIdentifier","src":"12216:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12296:6:101","nodeType":"YulIdentifier","src":"12296:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12309:9:101","nodeType":"YulIdentifier","src":"12309:9:101"},{"kind":"number","nativeSrc":"12320:1:101","nodeType":"YulLiteral","src":"12320:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12305:3:101","nodeType":"YulIdentifier","src":"12305:3:101"},"nativeSrc":"12305:17:101","nodeType":"YulFunctionCall","src":"12305:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12252:43:101","nodeType":"YulIdentifier","src":"12252:43:101"},"nativeSrc":"12252:71:101","nodeType":"YulFunctionCall","src":"12252:71:101"},"nativeSrc":"12252:71:101","nodeType":"YulExpressionStatement","src":"12252:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12377:6:101","nodeType":"YulIdentifier","src":"12377:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12390:9:101","nodeType":"YulIdentifier","src":"12390:9:101"},{"kind":"number","nativeSrc":"12401:2:101","nodeType":"YulLiteral","src":"12401:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12386:3:101","nodeType":"YulIdentifier","src":"12386:3:101"},"nativeSrc":"12386:18:101","nodeType":"YulFunctionCall","src":"12386:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12333:43:101","nodeType":"YulIdentifier","src":"12333:43:101"},"nativeSrc":"12333:72:101","nodeType":"YulFunctionCall","src":"12333:72:101"},"nativeSrc":"12333:72:101","nodeType":"YulExpressionStatement","src":"12333:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12426:9:101","nodeType":"YulIdentifier","src":"12426:9:101"},{"kind":"number","nativeSrc":"12437:2:101","nodeType":"YulLiteral","src":"12437:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:18:101","nodeType":"YulFunctionCall","src":"12422:18:101"},{"arguments":[{"name":"tail","nativeSrc":"12446:4:101","nodeType":"YulIdentifier","src":"12446:4:101"},{"name":"headStart","nativeSrc":"12452:9:101","nodeType":"YulIdentifier","src":"12452:9:101"}],"functionName":{"name":"sub","nativeSrc":"12442:3:101","nodeType":"YulIdentifier","src":"12442:3:101"},"nativeSrc":"12442:20:101","nodeType":"YulFunctionCall","src":"12442:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:48:101","nodeType":"YulFunctionCall","src":"12415:48:101"},"nativeSrc":"12415:48:101","nodeType":"YulExpressionStatement","src":"12415:48:101"},{"nativeSrc":"12472:86:101","nodeType":"YulAssignment","src":"12472:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"12544:6:101","nodeType":"YulIdentifier","src":"12544:6:101"},{"name":"tail","nativeSrc":"12553:4:101","nodeType":"YulIdentifier","src":"12553:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"12480:63:101","nodeType":"YulIdentifier","src":"12480:63:101"},"nativeSrc":"12480:78:101","nodeType":"YulFunctionCall","src":"12480:78:101"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:101","nodeType":"YulIdentifier","src":"12472:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12032:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12162:9:101","nodeType":"YulTypedName","src":"12162:9:101","type":""},{"name":"value2","nativeSrc":"12174:6:101","nodeType":"YulTypedName","src":"12174:6:101","type":""},{"name":"value1","nativeSrc":"12182:6:101","nodeType":"YulTypedName","src":"12182:6:101","type":""},{"name":"value0","nativeSrc":"12190:6:101","nodeType":"YulTypedName","src":"12190:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12201:4:101","nodeType":"YulTypedName","src":"12201:4:101","type":""}],"src":"12032:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6589":[{"length":32,"start":512},{"length":32,"start":640},{"length":32,"start":1653},{"length":32,"start":2039}],"6592":[{"length":32,"start":302},{"length":32,"start":1391},{"length":32,"start":1912}],"6596":[{"length":32,"start":579},{"length":32,"start":1346},{"length":32,"start":1865}],"6600":[{"length":32,"start":382},{"length":32,"start":2230}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063671528d41161009e5780639c43eb541161006e5780639c43eb5414610235578063a4edcd4c1461023e578063abb8561314610265578063ac5a693e1461026d578063bdf13af214610275575f80fd5b8063671528d4146101de57806369240426146101f357806369818a35146101fb5780637fc4e4a014610222575f80fd5b806345be2dc7116100d957806345be2dc7146101795780635213f9c8146101ad578063596efe6f146101c2578063643d813d146101cb575f80fd5b806307d0413c1461010a57806329db1be6146101295780634169d2451461015d57806341976e0914610166575b5f80fd5b61011360015481565b6040516101209190610967565b60405180910390f35b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610994565b61011360045481565b6101136101743660046109c3565b61027d565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101209190610a06565b6101c06101bb366004610a25565b61032e565b005b61011360025481565b6101c06101d9366004610a43565b61039f565b6101e6610473565b6040516101209190610a85565b6101c06104ae565b6101507f000000000000000000000000000000000000000000000000000000000000000081565b6101c0610230366004610a43565b6105fa565b61011360035481565b6101a07f000000000000000000000000000000000000000000000000000000000000000081565b610113610672565b6101135f5481565b6101136106f8565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146102d057604051630f58058360e11b815260040160405180910390fd5b5f6102d9610672565b90506001545f036102f4576102ed81610745565b9392505050565b5f6102fd6106f8565b90505f818311801561030e57508115155b610318578261031a565b815b905061032581610745565b95945050505050565b61036c6040518060400160405280601781526020017f736574536e617073686f744761702875696e743235362900000000000000000081525061089d565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6103dd6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e7432353629000081525061089d565b5f546103ed6301e1338084610abb565b5f8190551580156103fd57505f82115b8061041157505f8054118015610411575081155b1561042f576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104649190610967565b60405180910390a45060015550565b5f6001545f0361048257505f90565b5f61048b6106f8565b9050805f0361049b575f91505090565b5f6104a4610672565b9190911192915050565b6001546003546104be9042610ace565b10806104ca5750600154155b156104d157565b5f6104da610672565b90505f6104e56106f8565b90506004548183116104f757826104f9565b815b6105039190610ae1565b6002819055426003555f0361052b57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad6990610597907f000000000000000000000000000000000000000000000000000000000000000090600401610994565b5f604051808303815f87803b1580156105ae575f80fd5b505af11580156105c0573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b6106386040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e74323536290000000081525061089d565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166339648e006040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190610aff565b905090565b5f80600354426107089190610ace565b90505f670de0b6b3a7640000825f546002546107249190610b1d565b61072e9190610b1d565b6107389190610abb565b6002546102ed9190610ae1565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107b39190610994565b602060405180830381865afa1580156107ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f29190610aff565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610b50565b60ff16905061088981600a610c7a565b6108938487610b1d565b6103259190610abb565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab906108ed9033908690600401610cc3565b602060405180830381865afa158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c9190610cf6565b90508061095b57333083604051634a3fa29360e01b815260040161095293929190610d14565b60405180910390fd5b5050565b805b82525050565b60208101610975828461095f565b92915050565b5f6001600160a01b038216610975565b6109618161097b565b60208101610975828461098b565b6109ab8161097b565b81146109b5575f80fd5b50565b8035610975816109a2565b5f602082840312156109d6576109d65f80fd5b5f6109e184846109b8565b949350505050565b5f6109758261097b565b5f610975826109e9565b610961816109f3565b6020810161097582846109fd565b806109ab565b803561097581610a14565b5f60208284031215610a3857610a385f80fd5b5f6109e18484610a1a565b5f8060408385031215610a5757610a575f80fd5b5f610a628585610a1a565b9250506020610a7385828601610a1a565b9150509250929050565b801515610961565b602081016109758284610a7d565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610ac957610ac9610a93565b500490565b8181038181111561097557610975610aa7565b8082018082111561097557610975610aa7565b805161097581610a14565b5f60208284031215610b1257610b125f80fd5b5f6109e18484610af4565b818102808215838204851417610b3557610b35610aa7565b5092915050565b60ff81166109ab565b805161097581610b3c565b5f60208284031215610b6357610b635f80fd5b5f6109e18484610b45565b80825b6001851115610bad57808604811115610b8c57610b8c610aa7565b6001851615610b9a57908102905b8002610ba68560011c90565b9450610b71565b94509492505050565b5f82610bc4575060016102ed565b81610bd057505f6102ed565b8160018114610be65760028114610bf057610c1d565b60019150506102ed565b60ff841115610c0157610c01610aa7565b8360020a915084821115610c1757610c17610aa7565b506102ed565b5060208310610133831016604e8410600b8410161715610c50575081810a83811115610c4b57610c4b610aa7565b6102ed565b610c5d8484846001610b6e565b92509050818404811115610c7357610c73610aa7565b0292915050565b5f6102ed5f198484610bb6565b8281835e505f910152565b5f610c9b825190565b808452602084019350610cb2818560208601610c87565b601f01601f19169290920192915050565b60408101610cd1828561098b565b81810360208301526109e18184610c92565b8015156109ab565b805161097581610ce3565b5f60208284031215610d0957610d095f80fd5b5f6109e18484610ceb565b60608101610d22828661098b565b610d2f602083018561098b565b81810360408301526103258184610c9256fea2646970667358221220409445ddc568cca38279aac1e976960bcdaaab6a07957e8f2e6bda319080d68a64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x671528D4 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x9C43EB54 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x265 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x275 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x69240426 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x222 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x166 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x113 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C3 JUMP JUMPDEST PUSH2 0x27D JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA06 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0xA25 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x113 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x473 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 SWAP2 SWAP1 PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x4AE JUMP JUMPDEST PUSH2 0x150 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0xA43 JUMP JUMPDEST PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x113 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x672 JUMP JUMPDEST PUSH2 0x113 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x6F8 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x2D9 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x2F4 JUMPI PUSH2 0x2ED DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FD PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x30E JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x318 JUMPI DUP3 PUSH2 0x31A JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x325 DUP2 PUSH2 0x745 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x36C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x3DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x3ED PUSH4 0x1E13380 DUP5 PUSH2 0xABB JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x3FD JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x411 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x411 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x42F JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x464 SWAP2 SWAP1 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x482 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48B PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x49B JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4A4 PUSH2 0x672 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4BE SWAP1 TIMESTAMP PUSH2 0xACE JUMP JUMPDEST LT DUP1 PUSH2 0x4CA JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x4D1 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x4DA PUSH2 0x672 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x4E5 PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 PUSH2 0x4F9 JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x503 SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x52B JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x597 SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x994 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5C0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x638 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x89D JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x39648E00 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 0x6CF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x6F3 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x708 SWAP2 SWAP1 PUSH2 0xACE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x724 SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x738 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0xAE1 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0x994 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7CE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7F2 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x855 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x879 SWAP2 SWAP1 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x889 DUP2 PUSH1 0xA PUSH2 0xC7A JUMP JUMPDEST PUSH2 0x893 DUP5 DUP8 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x325 SWAP2 SWAP1 PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x8ED SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xCC3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x908 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x92C SWAP2 SWAP1 PUSH2 0xCF6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x95B JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x95F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x975 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x97B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x98B JUMP JUMPDEST PUSH2 0x9AB DUP2 PUSH2 0x97B JUMP JUMPDEST DUP2 EQ PUSH2 0x9B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0x9B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x97B JUMP JUMPDEST PUSH0 PUSH2 0x975 DUP3 PUSH2 0x9E9 JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0x9FD JUMP JUMPDEST DUP1 PUSH2 0x9AB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA38 JUMPI PUSH2 0xA38 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xA1A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA57 JUMPI PUSH2 0xA57 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA62 DUP6 DUP6 PUSH2 0xA1A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA73 DUP6 DUP3 DUP7 ADD PUSH2 0xA1A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x961 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x975 DUP3 DUP5 PUSH2 0xA7D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xAC9 JUMPI PUSH2 0xAC9 PUSH2 0xA93 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x975 JUMPI PUSH2 0x975 PUSH2 0xAA7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xA14 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB12 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xAF4 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB35 JUMPI PUSH2 0xB35 PUSH2 0xAA7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xB3C JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB63 JUMPI PUSH2 0xB63 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xB45 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xBAD JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xB8C JUMPI PUSH2 0xB8C PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xB9A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xBA6 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB71 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xBC4 JUMPI POP PUSH1 0x1 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH2 0xBD0 JUMPI POP PUSH0 PUSH2 0x2ED JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xBE6 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xBF0 JUMPI PUSH2 0xC1D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x2ED JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xC01 JUMPI PUSH2 0xC01 PUSH2 0xAA7 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xC17 JUMPI PUSH2 0xC17 PUSH2 0xAA7 JUMP JUMPDEST POP PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xC50 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xC4B JUMPI PUSH2 0xC4B PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x2ED JUMP JUMPDEST PUSH2 0xC5D DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB6E JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC73 JUMPI PUSH2 0xC73 PUSH2 0xAA7 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2ED PUSH0 NOT DUP5 DUP5 PUSH2 0xBB6 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xC9B DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xCB2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC87 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xCD1 DUP3 DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9E1 DUP2 DUP5 PUSH2 0xC92 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x9AB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x975 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD09 JUMPI PUSH2 0xD09 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x9E1 DUP5 DUP5 PUSH2 0xCEB JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xD22 DUP3 DUP7 PUSH2 0x98B JUMP JUMPDEST PUSH2 0xD2F PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x98B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x325 DUP2 DUP5 PUSH2 0xC92 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOCKHASH SWAP5 GASLIMIT 0xDD 0xC5 PUSH9 0xCCA38279AAC1E97696 SIGNEXTEND 0xCD 0xAA 0xAB PUSH11 0x7957E8F2E6BDA319080D6 DUP11 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"291:1003:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;1635:32::-;;;;;;1099:58;;;;;1160:132:66;;;:::i;1364:34:67:-;;;;;;9185:327;;;:::i;8441:597::-;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;:19;:21::i;:::-;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;:19;:21::i;:::-;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;:19;:21::i;:::-;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;1160:132:66:-;1221:7;1254:16;-1:-1:-1;;;;;1247:36:66;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1240:45;;1160:132;:::o;9185:327:67:-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;291:1003:66;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;291:1003:66;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;291:1003:66;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5143:180::-;-1:-1:-1;;;5188:1:101;5181:88;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5329:180;-1:-1:-1;;;5374:1:101;5367:88;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5515:185;5555:1;5645;5635:35;;5650:18;;:::i;:::-;-1:-1:-1;5685:9:101;;5515:185::o;5706:194::-;5837:9;;;5859:11;;;5856:37;;;5873:18;;:::i;5906:191::-;6035:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6103:143::-;6185:13;;6207:33;6185:13;6207:33;:::i;6252:351::-;6322:6;6371:2;6359:9;6350:7;6346:23;6342:32;6339:119;;;6377:79;291:1003:66;;;6377:79:101;6497:1;6522:64;6578:7;6558:9;6522:64;:::i;6609:410::-;6754:9;;;;6916;;6949:15;;;6943:22;;6896:83;6873:139;;6992:18;;:::i;:::-;6657:362;6609:410;;;;:::o;7117:118::-;7100:4;7089:16;;7188:22;7025:86;7241:139;7321:13;;7343:31;7321:13;7343:31;:::i;7386:347::-;7454:6;7503:2;7491:9;7482:7;7478:23;7474:32;7471:119;;;7509:79;291:1003:66;;;7509:79:101;7629:1;7654:62;7708:7;7688:9;7654:62;:::i;7847:848::-;7939:6;7963:5;7977:712;7998:1;7988:8;7985:15;7977:712;;;8093:4;8088:3;8084:14;8078:4;8075:24;8072:50;;;8102:18;;:::i;:::-;8152:1;8142:8;8138:16;8135:451;;;8556:16;;;;8135:451;8607:15;;8647:32;8670:8;7825:1;7821:13;;7739:102;8647:32;8635:44;;7977:712;;;7847:848;;;;;;;:::o;8701:1073::-;8755:5;8946:8;8936:40;;-1:-1:-1;8967:1:101;8969:5;;8936:40;8995:4;8985:36;;-1:-1:-1;9012:1:101;9014:5;;8985:36;9081:4;9129:1;9124:27;;;;9165:1;9160:191;;;;9074:277;;9124:27;9142:1;9133:10;;9144:5;;;9160:191;9205:3;9195:8;9192:17;9189:43;;;9212:18;;:::i;:::-;9261:8;9258:1;9254:16;9245:25;;9296:3;9289:5;9286:14;9283:40;;;9303:18;;:::i;:::-;9336:5;;;9074:277;;9460:2;9450:8;9447:16;9441:3;9435:4;9432:13;9428:36;9410:2;9400:8;9397:16;9392:2;9386:4;9383:12;9379:35;9363:111;9360:246;;;-1:-1:-1;9506:19:101;;;9541:14;;;9538:40;;;9558:18;;:::i;:::-;9591:5;;9360:246;9631:42;9669:3;9659:8;9653:4;9650:1;9631:42;:::i;:::-;9616:57;;;;9705:4;9700:3;9696:14;9689:5;9686:25;9683:51;;;9714:18;;:::i;:::-;9752:16;;8701:1073;-1:-1:-1;;8701:1073:101:o;9780:285::-;9840:5;9954:104;-1:-1:-1;;9981:8:101;9975:4;9954:104;:::i;10351:139::-;10440:6;10435:3;10430;10424:23;-1:-1:-1;10481:1:101;10463:16;;10456:27;10351:139::o;10604:377::-;10692:3;10720:39;10753:5;10151:12;;10071:99;10720:39;10282:19;;;10334:4;10325:14;;10768:78;;10855:65;10913:6;10908:3;10901:4;10894:5;10890:16;10855:65;:::i;:::-;10588:2;10568:14;-1:-1:-1;;10564:28:101;10936:39;;;;;;-1:-1:-1;;10604:377:101:o;10987:423::-;11166:2;11151:18;;11179:71;11155:9;11223:6;11179:71;:::i;:::-;11297:9;11291:4;11287:20;11282:2;11271:9;11267:18;11260:48;11325:78;11398:4;11389:6;11325:78;:::i;11416:116::-;4124:13;;4117:21;11486;4054:90;11538:137;11617:13;;11639:30;11617:13;11639:30;:::i;11681:345::-;11748:6;11797:2;11785:9;11776:7;11772:23;11768:32;11765:119;;;11803:79;291:1003:66;;;11803:79:101;11923:1;11948:61;12001:7;11981:9;11948:61;:::i;12032:533::-;12239:2;12224:18;;12252:71;12228:9;12296:6;12252:71;:::i;:::-;12333:72;12401:2;12390:9;12386:18;12377:6;12333:72;:::i;:::-;12452:9;12446:4;12442:20;12437:2;12426:9;12422:18;12415:48;12480:78;12553:4;12544:6;12480:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"689400","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"infinite","growthRatePerSecond()":"2447","isCapped()":"infinite","setGrowthRate(uint256,uint256)":"infinite","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2382","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zkETH\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rzkETH\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"amount Amount of rzkETH\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"ZkETHOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Gets the amount of rzkETH for 1 zkETH\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of zkETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/ZkETHOracle.sol\":\"ZkETHOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IZkETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface IZkETH {\\n    function LSTPerToken() external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xdf8e9d184e0a855a710971f53e61604f4131b6250986982bfaf036689b9622a7\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/ZkETHOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IZkETH } from \\\"../interfaces/IZkETH.sol\\\";\\nimport { CorrelatedTokenOracle } from \\\"./common/CorrelatedTokenOracle.sol\\\";\\n\\n/**\\n * @title ZkETHOracle\\n * @author Venus\\n * @notice This oracle fetches the price of zkETH\\n */\\ncontract ZkETHOracle is CorrelatedTokenOracle {\\n    /// @notice Constructor for the implementation contract.\\n    constructor(\\n        address zkETH,\\n        address rzkETH,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 _snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            zkETH,\\n            rzkETH,\\n            resilientOracle,\\n            annualGrowthRate,\\n            _snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            _snapshotGap\\n        )\\n    {}\\n\\n    /**\\n     * @notice Gets the amount of rzkETH for 1 zkETH\\n     * @return amount Amount of rzkETH\\n     */\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return IZkETH(CORRELATED_TOKEN).LSTPerToken();\\n    }\\n}\\n\",\"keccak256\":\"0xf97c0627f01407f59814aab61d346c9b08057830b981d05c9e4bf6a9c0ab0151\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/ZkETHOracle.sol:ZkETHOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/ZkETHOracle.sol:ZkETHOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/ZkETHOracle.sol:ZkETHOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/ZkETHOracle.sol:ZkETHOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/ZkETHOracle.sol:ZkETHOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Gets the amount of rzkETH for 1 zkETH"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of zkETH","version":1}}},"contracts/oracles/common/CorrelatedTokenOracle.sol":{"CorrelatedTokenOracle":{"abi":[{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalidInvalidInitialSnapshot error is thrown if the initial snapshot values are invalid"},"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"underlyingAmount Amount of underlying token"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"title":"CorrelatedTokenOracle","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","setGrowthRate(uint256,uint256)":"643d813d","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalidInvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\"},\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"underlyingAmount Amount of underlying token\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"title\":\"CorrelatedTokenOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"constructor\":{\"notice\":\"Constructor for the implementation contract.\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Gets the underlying amount for correlated token\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"notice\":\"This oracle fetches the price of a token that is correlated to another token.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/common/CorrelatedTokenOracle.sol\":\"CorrelatedTokenOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/oracles/common/CorrelatedTokenOracle.sol:CorrelatedTokenOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/oracles/common/CorrelatedTokenOracle.sol:CorrelatedTokenOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/oracles/common/CorrelatedTokenOracle.sol:CorrelatedTokenOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/oracles/common/CorrelatedTokenOracle.sol:CorrelatedTokenOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/oracles/common/CorrelatedTokenOracle.sol:CorrelatedTokenOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"constructor":{"notice":"Constructor for the implementation contract."},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Gets the underlying amount for correlated token"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"notice":"This oracle fetches the price of a token that is correlated to another token.","version":1}}},"contracts/oracles/mocks/MockAccountant.sol":{"MockAccountant":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"getRateSafe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_7153":{"entryPoint":null,"id":7153,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":26,"id":1205,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50601633601a565b6069565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610316806100765f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063282a8700146100645780632c4e722e1461007e57806334fcf43714610087578063715018a61461009c5780638da5cb5b146100a4578063f2fde38b146100bc575b5f80fd5b6001545b60405161007591906101b2565b60405180910390f35b61006860015481565b61009a6100953660046101dd565b6100cf565b005b61009a6100dc565b5f546001600160a01b0316604051610075919061021c565b61009a6100ca36600461023e565b6100ef565b6100d7610132565b600155565b6100e4610132565b6100ed5f61015b565b565b6100f7610132565b6001600160a01b0381166101265760405162461bcd60e51b815260040161011d9061025c565b60405180910390fd5b61012f8161015b565b50565b5f546001600160a01b031633146100ed5760405162461bcd60e51b815260040161011d906102a6565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805b82525050565b602081016101c082846101aa565b92915050565b805b811461012f575f80fd5b80356101c0816101c6565b5f602082840312156101f0576101f05f80fd5b5f6101fb84846101d2565b949350505050565b5f6001600160a01b0382166101c0565b6101ac81610203565b602081016101c08284610213565b6101c881610203565b80356101c08161022a565b5f60208284031215610251576102515f80fd5b5f6101fb8484610233565b602080825281016101c081602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040830152606082016101c056fea26469706673582212208c2b42a778dc5206532a856a7f164554f62f34461175039d9a076c1c65b5ef3e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 CALLER PUSH1 0x1A JUMP JUMPDEST PUSH1 0x69 JUMP JUMPDEST PUSH0 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 PUSH2 0x316 DUP1 PUSH2 0x76 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x60 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x282A8700 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x2C4E722E EQ PUSH2 0x7E JUMPI DUP1 PUSH4 0x34FCF437 EQ PUSH2 0x87 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x9C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xBC JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x75 SWAP2 SWAP1 PUSH2 0x1B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x68 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x9A PUSH2 0x95 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DD JUMP JUMPDEST PUSH2 0xCF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9A PUSH2 0xDC JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x75 SWAP2 SWAP1 PUSH2 0x21C JUMP JUMPDEST PUSH2 0x9A PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x23E JUMP JUMPDEST PUSH2 0xEF JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x132 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH2 0xE4 PUSH2 0x132 JUMP JUMPDEST PUSH2 0xED PUSH0 PUSH2 0x15B JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x132 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x126 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11D SWAP1 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12F DUP2 PUSH2 0x15B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11D SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH0 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 DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0 DUP3 DUP5 PUSH2 0x1AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP2 EQ PUSH2 0x12F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0 DUP2 PUSH2 0x1C6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F0 JUMPI PUSH2 0x1F0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1FB DUP5 DUP5 PUSH2 0x1D2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1C0 JUMP JUMPDEST PUSH2 0x1AC DUP2 PUSH2 0x203 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0 DUP3 DUP5 PUSH2 0x213 JUMP JUMPDEST PUSH2 0x1C8 DUP2 PUSH2 0x203 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0 DUP2 PUSH2 0x22A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251 JUMPI PUSH2 0x251 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1FB DUP5 DUP5 PUSH2 0x233 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x1C0 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 0x2B TIMESTAMP 0xA7 PUSH25 0xDC5206532A856A7F164554F62F34461175039D9A076C1C65B5 0xEF RETURNDATACOPY PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"163:292:68:-:0;;;243:26;;;;;;;;;-1:-1:-1;936:32:10;734:10:14;936:18:10;:32::i;:::-;163:292:68;;2426:187:10;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;163:292:68:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_1148":{"entryPoint":306,"id":1148,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":347,"id":1205,"parameterSlots":1,"returnSlots":0},"@getRateSafe_7174":{"entryPoint":null,"id":7174,"parameterSlots":0,"returnSlots":1},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@rate_7147":{"entryPoint":null,"id":7147,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_1162":{"entryPoint":220,"id":1162,"parameterSlots":0,"returnSlots":0},"@setRate_7165":{"entryPoint":207,"id":7165,"parameterSlots":1,"returnSlots":0},"@transferOwnership_1185":{"entryPoint":239,"id":1185,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":466,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":574,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":477,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":531,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":426,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":540,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":604,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":678,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":434,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":515,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":554,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":454,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4756:101","nodeType":"YulBlock","src":"0:4756:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"482:35:101","nodeType":"YulBlock","src":"482:35:101","statements":[{"nativeSrc":"492:19:101","nodeType":"YulAssignment","src":"492:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"508:2:101","nodeType":"YulLiteral","src":"508:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"502:5:101","nodeType":"YulIdentifier","src":"502:5:101"},"nativeSrc":"502:9:101","nodeType":"YulFunctionCall","src":"502:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"492:6:101","nodeType":"YulIdentifier","src":"492:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"442:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"475:6:101","nodeType":"YulTypedName","src":"475:6:101","type":""}],"src":"442:75:101"},{"body":{"nativeSrc":"612:28:101","nodeType":"YulBlock","src":"612:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"629:1:101","nodeType":"YulLiteral","src":"629:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"632:1:101","nodeType":"YulLiteral","src":"632:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"622:6:101","nodeType":"YulIdentifier","src":"622:6:101"},"nativeSrc":"622:12:101","nodeType":"YulFunctionCall","src":"622:12:101"},"nativeSrc":"622:12:101","nodeType":"YulExpressionStatement","src":"622:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"523:117:101","nodeType":"YulFunctionDefinition","src":"523:117:101"},{"body":{"nativeSrc":"735:28:101","nodeType":"YulBlock","src":"735:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"752:1:101","nodeType":"YulLiteral","src":"752:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"755:1:101","nodeType":"YulLiteral","src":"755:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"745:6:101","nodeType":"YulIdentifier","src":"745:6:101"},"nativeSrc":"745:12:101","nodeType":"YulFunctionCall","src":"745:12:101"},"nativeSrc":"745:12:101","nodeType":"YulExpressionStatement","src":"745:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"646:117:101","nodeType":"YulFunctionDefinition","src":"646:117:101"},{"body":{"nativeSrc":"812:79:101","nodeType":"YulBlock","src":"812:79:101","statements":[{"body":{"nativeSrc":"869:16:101","nodeType":"YulBlock","src":"869:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"878:1:101","nodeType":"YulLiteral","src":"878:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"881:1:101","nodeType":"YulLiteral","src":"881:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"871:6:101","nodeType":"YulIdentifier","src":"871:6:101"},"nativeSrc":"871:12:101","nodeType":"YulFunctionCall","src":"871:12:101"},"nativeSrc":"871:12:101","nodeType":"YulExpressionStatement","src":"871:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"835:5:101","nodeType":"YulIdentifier","src":"835:5:101"},{"arguments":[{"name":"value","nativeSrc":"860:5:101","nodeType":"YulIdentifier","src":"860:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"842:17:101","nodeType":"YulIdentifier","src":"842:17:101"},"nativeSrc":"842:24:101","nodeType":"YulFunctionCall","src":"842:24:101"}],"functionName":{"name":"eq","nativeSrc":"832:2:101","nodeType":"YulIdentifier","src":"832:2:101"},"nativeSrc":"832:35:101","nodeType":"YulFunctionCall","src":"832:35:101"}],"functionName":{"name":"iszero","nativeSrc":"825:6:101","nodeType":"YulIdentifier","src":"825:6:101"},"nativeSrc":"825:43:101","nodeType":"YulFunctionCall","src":"825:43:101"},"nativeSrc":"822:63:101","nodeType":"YulIf","src":"822:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"769:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"805:5:101","nodeType":"YulTypedName","src":"805:5:101","type":""}],"src":"769:122:101"},{"body":{"nativeSrc":"949:87:101","nodeType":"YulBlock","src":"949:87:101","statements":[{"nativeSrc":"959:29:101","nodeType":"YulAssignment","src":"959:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"981:6:101","nodeType":"YulIdentifier","src":"981:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"968:12:101","nodeType":"YulIdentifier","src":"968:12:101"},"nativeSrc":"968:20:101","nodeType":"YulFunctionCall","src":"968:20:101"},"variableNames":[{"name":"value","nativeSrc":"959:5:101","nodeType":"YulIdentifier","src":"959:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1024:5:101","nodeType":"YulIdentifier","src":"1024:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"997:26:101","nodeType":"YulIdentifier","src":"997:26:101"},"nativeSrc":"997:33:101","nodeType":"YulFunctionCall","src":"997:33:101"},"nativeSrc":"997:33:101","nodeType":"YulExpressionStatement","src":"997:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"897:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"927:6:101","nodeType":"YulTypedName","src":"927:6:101","type":""},{"name":"end","nativeSrc":"935:3:101","nodeType":"YulTypedName","src":"935:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"943:5:101","nodeType":"YulTypedName","src":"943:5:101","type":""}],"src":"897:139:101"},{"body":{"nativeSrc":"1108:263:101","nodeType":"YulBlock","src":"1108:263:101","statements":[{"body":{"nativeSrc":"1154:83:101","nodeType":"YulBlock","src":"1154:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1156:77:101","nodeType":"YulIdentifier","src":"1156:77:101"},"nativeSrc":"1156:79:101","nodeType":"YulFunctionCall","src":"1156:79:101"},"nativeSrc":"1156:79:101","nodeType":"YulExpressionStatement","src":"1156:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1129:7:101","nodeType":"YulIdentifier","src":"1129:7:101"},{"name":"headStart","nativeSrc":"1138:9:101","nodeType":"YulIdentifier","src":"1138:9:101"}],"functionName":{"name":"sub","nativeSrc":"1125:3:101","nodeType":"YulIdentifier","src":"1125:3:101"},"nativeSrc":"1125:23:101","nodeType":"YulFunctionCall","src":"1125:23:101"},{"kind":"number","nativeSrc":"1150:2:101","nodeType":"YulLiteral","src":"1150:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1121:3:101","nodeType":"YulIdentifier","src":"1121:3:101"},"nativeSrc":"1121:32:101","nodeType":"YulFunctionCall","src":"1121:32:101"},"nativeSrc":"1118:119:101","nodeType":"YulIf","src":"1118:119:101"},{"nativeSrc":"1247:117:101","nodeType":"YulBlock","src":"1247:117:101","statements":[{"nativeSrc":"1262:15:101","nodeType":"YulVariableDeclaration","src":"1262:15:101","value":{"kind":"number","nativeSrc":"1276:1:101","nodeType":"YulLiteral","src":"1276:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1266:6:101","nodeType":"YulTypedName","src":"1266:6:101","type":""}]},{"nativeSrc":"1291:63:101","nodeType":"YulAssignment","src":"1291:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1326:9:101","nodeType":"YulIdentifier","src":"1326:9:101"},{"name":"offset","nativeSrc":"1337:6:101","nodeType":"YulIdentifier","src":"1337:6:101"}],"functionName":{"name":"add","nativeSrc":"1322:3:101","nodeType":"YulIdentifier","src":"1322:3:101"},"nativeSrc":"1322:22:101","nodeType":"YulFunctionCall","src":"1322:22:101"},{"name":"dataEnd","nativeSrc":"1346:7:101","nodeType":"YulIdentifier","src":"1346:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1301:20:101","nodeType":"YulIdentifier","src":"1301:20:101"},"nativeSrc":"1301:53:101","nodeType":"YulFunctionCall","src":"1301:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1291:6:101","nodeType":"YulIdentifier","src":"1291:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1042:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1078:9:101","nodeType":"YulTypedName","src":"1078:9:101","type":""},{"name":"dataEnd","nativeSrc":"1089:7:101","nodeType":"YulTypedName","src":"1089:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1101:6:101","nodeType":"YulTypedName","src":"1101:6:101","type":""}],"src":"1042:329:101"},{"body":{"nativeSrc":"1422:81:101","nodeType":"YulBlock","src":"1422:81:101","statements":[{"nativeSrc":"1432:65:101","nodeType":"YulAssignment","src":"1432:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1447:5:101","nodeType":"YulIdentifier","src":"1447:5:101"},{"kind":"number","nativeSrc":"1454:42:101","nodeType":"YulLiteral","src":"1454:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1443:3:101","nodeType":"YulIdentifier","src":"1443:3:101"},"nativeSrc":"1443:54:101","nodeType":"YulFunctionCall","src":"1443:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1432:7:101","nodeType":"YulIdentifier","src":"1432:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1377:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1404:5:101","nodeType":"YulTypedName","src":"1404:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1414:7:101","nodeType":"YulTypedName","src":"1414:7:101","type":""}],"src":"1377:126:101"},{"body":{"nativeSrc":"1554:51:101","nodeType":"YulBlock","src":"1554:51:101","statements":[{"nativeSrc":"1564:35:101","nodeType":"YulAssignment","src":"1564:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1593:5:101","nodeType":"YulIdentifier","src":"1593:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1575:17:101","nodeType":"YulIdentifier","src":"1575:17:101"},"nativeSrc":"1575:24:101","nodeType":"YulFunctionCall","src":"1575:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1564:7:101","nodeType":"YulIdentifier","src":"1564:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1509:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1536:5:101","nodeType":"YulTypedName","src":"1536:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1546:7:101","nodeType":"YulTypedName","src":"1546:7:101","type":""}],"src":"1509:96:101"},{"body":{"nativeSrc":"1676:53:101","nodeType":"YulBlock","src":"1676:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1693:3:101","nodeType":"YulIdentifier","src":"1693:3:101"},{"arguments":[{"name":"value","nativeSrc":"1716:5:101","nodeType":"YulIdentifier","src":"1716:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1698:17:101","nodeType":"YulIdentifier","src":"1698:17:101"},"nativeSrc":"1698:24:101","nodeType":"YulFunctionCall","src":"1698:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1686:6:101","nodeType":"YulIdentifier","src":"1686:6:101"},"nativeSrc":"1686:37:101","nodeType":"YulFunctionCall","src":"1686:37:101"},"nativeSrc":"1686:37:101","nodeType":"YulExpressionStatement","src":"1686:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1611:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1664:5:101","nodeType":"YulTypedName","src":"1664:5:101","type":""},{"name":"pos","nativeSrc":"1671:3:101","nodeType":"YulTypedName","src":"1671:3:101","type":""}],"src":"1611:118:101"},{"body":{"nativeSrc":"1833:124:101","nodeType":"YulBlock","src":"1833:124:101","statements":[{"nativeSrc":"1843:26:101","nodeType":"YulAssignment","src":"1843:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1855:9:101","nodeType":"YulIdentifier","src":"1855:9:101"},{"kind":"number","nativeSrc":"1866:2:101","nodeType":"YulLiteral","src":"1866:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1851:3:101","nodeType":"YulIdentifier","src":"1851:3:101"},"nativeSrc":"1851:18:101","nodeType":"YulFunctionCall","src":"1851:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1843:4:101","nodeType":"YulIdentifier","src":"1843:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1936:9:101","nodeType":"YulIdentifier","src":"1936:9:101"},{"kind":"number","nativeSrc":"1947:1:101","nodeType":"YulLiteral","src":"1947:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1932:3:101","nodeType":"YulIdentifier","src":"1932:3:101"},"nativeSrc":"1932:17:101","nodeType":"YulFunctionCall","src":"1932:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1879:43:101","nodeType":"YulIdentifier","src":"1879:43:101"},"nativeSrc":"1879:71:101","nodeType":"YulFunctionCall","src":"1879:71:101"},"nativeSrc":"1879:71:101","nodeType":"YulExpressionStatement","src":"1879:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1735:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1805:9:101","nodeType":"YulTypedName","src":"1805:9:101","type":""},{"name":"value0","nativeSrc":"1817:6:101","nodeType":"YulTypedName","src":"1817:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1828:4:101","nodeType":"YulTypedName","src":"1828:4:101","type":""}],"src":"1735:222:101"},{"body":{"nativeSrc":"2006:79:101","nodeType":"YulBlock","src":"2006:79:101","statements":[{"body":{"nativeSrc":"2063:16:101","nodeType":"YulBlock","src":"2063:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2072:1:101","nodeType":"YulLiteral","src":"2072:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2075:1:101","nodeType":"YulLiteral","src":"2075:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2065:6:101","nodeType":"YulIdentifier","src":"2065:6:101"},"nativeSrc":"2065:12:101","nodeType":"YulFunctionCall","src":"2065:12:101"},"nativeSrc":"2065:12:101","nodeType":"YulExpressionStatement","src":"2065:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2029:5:101","nodeType":"YulIdentifier","src":"2029:5:101"},{"arguments":[{"name":"value","nativeSrc":"2054:5:101","nodeType":"YulIdentifier","src":"2054:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2036:17:101","nodeType":"YulIdentifier","src":"2036:17:101"},"nativeSrc":"2036:24:101","nodeType":"YulFunctionCall","src":"2036:24:101"}],"functionName":{"name":"eq","nativeSrc":"2026:2:101","nodeType":"YulIdentifier","src":"2026:2:101"},"nativeSrc":"2026:35:101","nodeType":"YulFunctionCall","src":"2026:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"},"nativeSrc":"2019:43:101","nodeType":"YulFunctionCall","src":"2019:43:101"},"nativeSrc":"2016:63:101","nodeType":"YulIf","src":"2016:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1963:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1999:5:101","nodeType":"YulTypedName","src":"1999:5:101","type":""}],"src":"1963:122:101"},{"body":{"nativeSrc":"2143:87:101","nodeType":"YulBlock","src":"2143:87:101","statements":[{"nativeSrc":"2153:29:101","nodeType":"YulAssignment","src":"2153:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2175:6:101","nodeType":"YulIdentifier","src":"2175:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2162:12:101","nodeType":"YulIdentifier","src":"2162:12:101"},"nativeSrc":"2162:20:101","nodeType":"YulFunctionCall","src":"2162:20:101"},"variableNames":[{"name":"value","nativeSrc":"2153:5:101","nodeType":"YulIdentifier","src":"2153:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2218:5:101","nodeType":"YulIdentifier","src":"2218:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2191:26:101","nodeType":"YulIdentifier","src":"2191:26:101"},"nativeSrc":"2191:33:101","nodeType":"YulFunctionCall","src":"2191:33:101"},"nativeSrc":"2191:33:101","nodeType":"YulExpressionStatement","src":"2191:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2091:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2121:6:101","nodeType":"YulTypedName","src":"2121:6:101","type":""},{"name":"end","nativeSrc":"2129:3:101","nodeType":"YulTypedName","src":"2129:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2137:5:101","nodeType":"YulTypedName","src":"2137:5:101","type":""}],"src":"2091:139:101"},{"body":{"nativeSrc":"2302:263:101","nodeType":"YulBlock","src":"2302:263:101","statements":[{"body":{"nativeSrc":"2348:83:101","nodeType":"YulBlock","src":"2348:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2350:77:101","nodeType":"YulIdentifier","src":"2350:77:101"},"nativeSrc":"2350:79:101","nodeType":"YulFunctionCall","src":"2350:79:101"},"nativeSrc":"2350:79:101","nodeType":"YulExpressionStatement","src":"2350:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2323:7:101","nodeType":"YulIdentifier","src":"2323:7:101"},{"name":"headStart","nativeSrc":"2332:9:101","nodeType":"YulIdentifier","src":"2332:9:101"}],"functionName":{"name":"sub","nativeSrc":"2319:3:101","nodeType":"YulIdentifier","src":"2319:3:101"},"nativeSrc":"2319:23:101","nodeType":"YulFunctionCall","src":"2319:23:101"},{"kind":"number","nativeSrc":"2344:2:101","nodeType":"YulLiteral","src":"2344:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2315:3:101","nodeType":"YulIdentifier","src":"2315:3:101"},"nativeSrc":"2315:32:101","nodeType":"YulFunctionCall","src":"2315:32:101"},"nativeSrc":"2312:119:101","nodeType":"YulIf","src":"2312:119:101"},{"nativeSrc":"2441:117:101","nodeType":"YulBlock","src":"2441:117:101","statements":[{"nativeSrc":"2456:15:101","nodeType":"YulVariableDeclaration","src":"2456:15:101","value":{"kind":"number","nativeSrc":"2470:1:101","nodeType":"YulLiteral","src":"2470:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2460:6:101","nodeType":"YulTypedName","src":"2460:6:101","type":""}]},{"nativeSrc":"2485:63:101","nodeType":"YulAssignment","src":"2485:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2520:9:101","nodeType":"YulIdentifier","src":"2520:9:101"},{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"}],"functionName":{"name":"add","nativeSrc":"2516:3:101","nodeType":"YulIdentifier","src":"2516:3:101"},"nativeSrc":"2516:22:101","nodeType":"YulFunctionCall","src":"2516:22:101"},{"name":"dataEnd","nativeSrc":"2540:7:101","nodeType":"YulIdentifier","src":"2540:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2495:20:101","nodeType":"YulIdentifier","src":"2495:20:101"},"nativeSrc":"2495:53:101","nodeType":"YulFunctionCall","src":"2495:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2485:6:101","nodeType":"YulIdentifier","src":"2485:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2236:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2272:9:101","nodeType":"YulTypedName","src":"2272:9:101","type":""},{"name":"dataEnd","nativeSrc":"2283:7:101","nodeType":"YulTypedName","src":"2283:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2295:6:101","nodeType":"YulTypedName","src":"2295:6:101","type":""}],"src":"2236:329:101"},{"body":{"nativeSrc":"2667:73:101","nodeType":"YulBlock","src":"2667:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2684:3:101","nodeType":"YulIdentifier","src":"2684:3:101"},{"name":"length","nativeSrc":"2689:6:101","nodeType":"YulIdentifier","src":"2689:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2677:6:101","nodeType":"YulIdentifier","src":"2677:6:101"},"nativeSrc":"2677:19:101","nodeType":"YulFunctionCall","src":"2677:19:101"},"nativeSrc":"2677:19:101","nodeType":"YulExpressionStatement","src":"2677:19:101"},{"nativeSrc":"2705:29:101","nodeType":"YulAssignment","src":"2705:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"2724:3:101","nodeType":"YulIdentifier","src":"2724:3:101"},{"kind":"number","nativeSrc":"2729:4:101","nodeType":"YulLiteral","src":"2729:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2720:3:101","nodeType":"YulIdentifier","src":"2720:3:101"},"nativeSrc":"2720:14:101","nodeType":"YulFunctionCall","src":"2720:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"2705:11:101","nodeType":"YulIdentifier","src":"2705:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2571:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2639:3:101","nodeType":"YulTypedName","src":"2639:3:101","type":""},{"name":"length","nativeSrc":"2644:6:101","nodeType":"YulTypedName","src":"2644:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"2655:11:101","nodeType":"YulTypedName","src":"2655:11:101","type":""}],"src":"2571:169:101"},{"body":{"nativeSrc":"2852:119:101","nodeType":"YulBlock","src":"2852:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2874:6:101","nodeType":"YulIdentifier","src":"2874:6:101"},{"kind":"number","nativeSrc":"2882:1:101","nodeType":"YulLiteral","src":"2882:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2870:3:101","nodeType":"YulIdentifier","src":"2870:3:101"},"nativeSrc":"2870:14:101","nodeType":"YulFunctionCall","src":"2870:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"2886:34:101","nodeType":"YulLiteral","src":"2886:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"2863:6:101","nodeType":"YulIdentifier","src":"2863:6:101"},"nativeSrc":"2863:58:101","nodeType":"YulFunctionCall","src":"2863:58:101"},"nativeSrc":"2863:58:101","nodeType":"YulExpressionStatement","src":"2863:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2942:6:101","nodeType":"YulIdentifier","src":"2942:6:101"},{"kind":"number","nativeSrc":"2950:2:101","nodeType":"YulLiteral","src":"2950:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2938:3:101","nodeType":"YulIdentifier","src":"2938:3:101"},"nativeSrc":"2938:15:101","nodeType":"YulFunctionCall","src":"2938:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"2955:8:101","nodeType":"YulLiteral","src":"2955:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"2931:6:101","nodeType":"YulIdentifier","src":"2931:6:101"},"nativeSrc":"2931:33:101","nodeType":"YulFunctionCall","src":"2931:33:101"},"nativeSrc":"2931:33:101","nodeType":"YulExpressionStatement","src":"2931:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"2746:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2844:6:101","nodeType":"YulTypedName","src":"2844:6:101","type":""}],"src":"2746:225:101"},{"body":{"nativeSrc":"3123:220:101","nodeType":"YulBlock","src":"3123:220:101","statements":[{"nativeSrc":"3133:74:101","nodeType":"YulAssignment","src":"3133:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"3199:3:101","nodeType":"YulIdentifier","src":"3199:3:101"},{"kind":"number","nativeSrc":"3204:2:101","nodeType":"YulLiteral","src":"3204:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3140:58:101","nodeType":"YulIdentifier","src":"3140:58:101"},"nativeSrc":"3140:67:101","nodeType":"YulFunctionCall","src":"3140:67:101"},"variableNames":[{"name":"pos","nativeSrc":"3133:3:101","nodeType":"YulIdentifier","src":"3133:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3305:3:101","nodeType":"YulIdentifier","src":"3305:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"3216:88:101","nodeType":"YulIdentifier","src":"3216:88:101"},"nativeSrc":"3216:93:101","nodeType":"YulFunctionCall","src":"3216:93:101"},"nativeSrc":"3216:93:101","nodeType":"YulExpressionStatement","src":"3216:93:101"},{"nativeSrc":"3318:19:101","nodeType":"YulAssignment","src":"3318:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"3329:3:101","nodeType":"YulIdentifier","src":"3329:3:101"},{"kind":"number","nativeSrc":"3334:2:101","nodeType":"YulLiteral","src":"3334:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3325:3:101","nodeType":"YulIdentifier","src":"3325:3:101"},"nativeSrc":"3325:12:101","nodeType":"YulFunctionCall","src":"3325:12:101"},"variableNames":[{"name":"end","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"2977:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3111:3:101","nodeType":"YulTypedName","src":"3111:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3119:3:101","nodeType":"YulTypedName","src":"3119:3:101","type":""}],"src":"2977:366:101"},{"body":{"nativeSrc":"3520:248:101","nodeType":"YulBlock","src":"3520:248:101","statements":[{"nativeSrc":"3530:26:101","nodeType":"YulAssignment","src":"3530:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3542:9:101","nodeType":"YulIdentifier","src":"3542:9:101"},{"kind":"number","nativeSrc":"3553:2:101","nodeType":"YulLiteral","src":"3553:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3538:3:101","nodeType":"YulIdentifier","src":"3538:3:101"},"nativeSrc":"3538:18:101","nodeType":"YulFunctionCall","src":"3538:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3530:4:101","nodeType":"YulIdentifier","src":"3530:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3577:9:101","nodeType":"YulIdentifier","src":"3577:9:101"},{"kind":"number","nativeSrc":"3588:1:101","nodeType":"YulLiteral","src":"3588:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3573:3:101","nodeType":"YulIdentifier","src":"3573:3:101"},"nativeSrc":"3573:17:101","nodeType":"YulFunctionCall","src":"3573:17:101"},{"arguments":[{"name":"tail","nativeSrc":"3596:4:101","nodeType":"YulIdentifier","src":"3596:4:101"},{"name":"headStart","nativeSrc":"3602:9:101","nodeType":"YulIdentifier","src":"3602:9:101"}],"functionName":{"name":"sub","nativeSrc":"3592:3:101","nodeType":"YulIdentifier","src":"3592:3:101"},"nativeSrc":"3592:20:101","nodeType":"YulFunctionCall","src":"3592:20:101"}],"functionName":{"name":"mstore","nativeSrc":"3566:6:101","nodeType":"YulIdentifier","src":"3566:6:101"},"nativeSrc":"3566:47:101","nodeType":"YulFunctionCall","src":"3566:47:101"},"nativeSrc":"3566:47:101","nodeType":"YulExpressionStatement","src":"3566:47:101"},{"nativeSrc":"3622:139:101","nodeType":"YulAssignment","src":"3622:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"3756:4:101","nodeType":"YulIdentifier","src":"3756:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"3630:124:101","nodeType":"YulIdentifier","src":"3630:124:101"},"nativeSrc":"3630:131:101","nodeType":"YulFunctionCall","src":"3630:131:101"},"variableNames":[{"name":"tail","nativeSrc":"3622:4:101","nodeType":"YulIdentifier","src":"3622:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3349:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3500:9:101","nodeType":"YulTypedName","src":"3500:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3515:4:101","nodeType":"YulTypedName","src":"3515:4:101","type":""}],"src":"3349:419:101"},{"body":{"nativeSrc":"3880:76:101","nodeType":"YulBlock","src":"3880:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"},{"kind":"number","nativeSrc":"3910:1:101","nodeType":"YulLiteral","src":"3910:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3898:3:101","nodeType":"YulIdentifier","src":"3898:3:101"},"nativeSrc":"3898:14:101","nodeType":"YulFunctionCall","src":"3898:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"3914:34:101","nodeType":"YulLiteral","src":"3914:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"3891:6:101","nodeType":"YulIdentifier","src":"3891:6:101"},"nativeSrc":"3891:58:101","nodeType":"YulFunctionCall","src":"3891:58:101"},"nativeSrc":"3891:58:101","nodeType":"YulExpressionStatement","src":"3891:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"3774:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3872:6:101","nodeType":"YulTypedName","src":"3872:6:101","type":""}],"src":"3774:182:101"},{"body":{"nativeSrc":"4108:220:101","nodeType":"YulBlock","src":"4108:220:101","statements":[{"nativeSrc":"4118:74:101","nodeType":"YulAssignment","src":"4118:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"4184:3:101","nodeType":"YulIdentifier","src":"4184:3:101"},{"kind":"number","nativeSrc":"4189:2:101","nodeType":"YulLiteral","src":"4189:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4125:58:101","nodeType":"YulIdentifier","src":"4125:58:101"},"nativeSrc":"4125:67:101","nodeType":"YulFunctionCall","src":"4125:67:101"},"variableNames":[{"name":"pos","nativeSrc":"4118:3:101","nodeType":"YulIdentifier","src":"4118:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4290:3:101","nodeType":"YulIdentifier","src":"4290:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"4201:88:101","nodeType":"YulIdentifier","src":"4201:88:101"},"nativeSrc":"4201:93:101","nodeType":"YulFunctionCall","src":"4201:93:101"},"nativeSrc":"4201:93:101","nodeType":"YulExpressionStatement","src":"4201:93:101"},{"nativeSrc":"4303:19:101","nodeType":"YulAssignment","src":"4303:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"4314:3:101","nodeType":"YulIdentifier","src":"4314:3:101"},{"kind":"number","nativeSrc":"4319:2:101","nodeType":"YulLiteral","src":"4319:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4310:3:101","nodeType":"YulIdentifier","src":"4310:3:101"},"nativeSrc":"4310:12:101","nodeType":"YulFunctionCall","src":"4310:12:101"},"variableNames":[{"name":"end","nativeSrc":"4303:3:101","nodeType":"YulIdentifier","src":"4303:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"3962:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4096:3:101","nodeType":"YulTypedName","src":"4096:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4104:3:101","nodeType":"YulTypedName","src":"4104:3:101","type":""}],"src":"3962:366:101"},{"body":{"nativeSrc":"4505:248:101","nodeType":"YulBlock","src":"4505:248:101","statements":[{"nativeSrc":"4515:26:101","nodeType":"YulAssignment","src":"4515:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4527:9:101","nodeType":"YulIdentifier","src":"4527:9:101"},{"kind":"number","nativeSrc":"4538:2:101","nodeType":"YulLiteral","src":"4538:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4523:3:101","nodeType":"YulIdentifier","src":"4523:3:101"},"nativeSrc":"4523:18:101","nodeType":"YulFunctionCall","src":"4523:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4515:4:101","nodeType":"YulIdentifier","src":"4515:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4562:9:101","nodeType":"YulIdentifier","src":"4562:9:101"},{"kind":"number","nativeSrc":"4573:1:101","nodeType":"YulLiteral","src":"4573:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4558:3:101","nodeType":"YulIdentifier","src":"4558:3:101"},"nativeSrc":"4558:17:101","nodeType":"YulFunctionCall","src":"4558:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4581:4:101","nodeType":"YulIdentifier","src":"4581:4:101"},{"name":"headStart","nativeSrc":"4587:9:101","nodeType":"YulIdentifier","src":"4587:9:101"}],"functionName":{"name":"sub","nativeSrc":"4577:3:101","nodeType":"YulIdentifier","src":"4577:3:101"},"nativeSrc":"4577:20:101","nodeType":"YulFunctionCall","src":"4577:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4551:6:101","nodeType":"YulIdentifier","src":"4551:6:101"},"nativeSrc":"4551:47:101","nodeType":"YulFunctionCall","src":"4551:47:101"},"nativeSrc":"4551:47:101","nodeType":"YulExpressionStatement","src":"4551:47:101"},{"nativeSrc":"4607:139:101","nodeType":"YulAssignment","src":"4607:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"4741:4:101","nodeType":"YulIdentifier","src":"4741:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"4615:124:101","nodeType":"YulIdentifier","src":"4615:124:101"},"nativeSrc":"4615:131:101","nodeType":"YulFunctionCall","src":"4615:131:101"},"variableNames":[{"name":"tail","nativeSrc":"4607:4:101","nodeType":"YulIdentifier","src":"4607:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4334:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4485:9:101","nodeType":"YulTypedName","src":"4485:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4500:4:101","nodeType":"YulTypedName","src":"4500:4:101","type":""}],"src":"4334:419:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063282a8700146100645780632c4e722e1461007e57806334fcf43714610087578063715018a61461009c5780638da5cb5b146100a4578063f2fde38b146100bc575b5f80fd5b6001545b60405161007591906101b2565b60405180910390f35b61006860015481565b61009a6100953660046101dd565b6100cf565b005b61009a6100dc565b5f546001600160a01b0316604051610075919061021c565b61009a6100ca36600461023e565b6100ef565b6100d7610132565b600155565b6100e4610132565b6100ed5f61015b565b565b6100f7610132565b6001600160a01b0381166101265760405162461bcd60e51b815260040161011d9061025c565b60405180910390fd5b61012f8161015b565b50565b5f546001600160a01b031633146100ed5760405162461bcd60e51b815260040161011d906102a6565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805b82525050565b602081016101c082846101aa565b92915050565b805b811461012f575f80fd5b80356101c0816101c6565b5f602082840312156101f0576101f05f80fd5b5f6101fb84846101d2565b949350505050565b5f6001600160a01b0382166101c0565b6101ac81610203565b602081016101c08284610213565b6101c881610203565b80356101c08161022a565b5f60208284031215610251576102515f80fd5b5f6101fb8484610233565b602080825281016101c081602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040830152606082016101c056fea26469706673582212208c2b42a778dc5206532a856a7f164554f62f34461175039d9a076c1c65b5ef3e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x60 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x282A8700 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x2C4E722E EQ PUSH2 0x7E JUMPI DUP1 PUSH4 0x34FCF437 EQ PUSH2 0x87 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x9C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xBC JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x75 SWAP2 SWAP1 PUSH2 0x1B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x68 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x9A PUSH2 0x95 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DD JUMP JUMPDEST PUSH2 0xCF JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9A PUSH2 0xDC JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x75 SWAP2 SWAP1 PUSH2 0x21C JUMP JUMPDEST PUSH2 0x9A PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x23E JUMP JUMPDEST PUSH2 0xEF JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x132 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH2 0xE4 PUSH2 0x132 JUMP JUMPDEST PUSH2 0xED PUSH0 PUSH2 0x15B JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x132 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x126 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11D SWAP1 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12F DUP2 PUSH2 0x15B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11D SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH0 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 DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0 DUP3 DUP5 PUSH2 0x1AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP2 EQ PUSH2 0x12F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0 DUP2 PUSH2 0x1C6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F0 JUMPI PUSH2 0x1F0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1FB DUP5 DUP5 PUSH2 0x1D2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1C0 JUMP JUMPDEST PUSH2 0x1AC DUP2 PUSH2 0x203 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0 DUP3 DUP5 PUSH2 0x213 JUMP JUMPDEST PUSH2 0x1C8 DUP2 PUSH2 0x203 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0 DUP2 PUSH2 0x22A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251 JUMPI PUSH2 0x251 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1FB DUP5 DUP5 PUSH2 0x233 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x1C0 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 0x2B TIMESTAMP 0xA7 PUSH25 0xDC5206532A856A7F164554F62F34461175039D9A076C1C65B5 0xEF RETURNDATACOPY PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"163:292:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:92;442:4;;361:92;;;;;;;:::i;:::-;;;;;;;;217:19;;;;;;275:80;;;;;;:::i;:::-;;:::i;:::-;;1824:101:10;;;:::i;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;1201:85;;;;;;:::i;2074:198::-;;;;;;:::i;:::-;;:::i;275:80:68:-;1094:13:10;:11;:13::i;:::-;336:4:68::1;:12:::0;275:80::o;1824:101:10:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2074:198::-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;2426:187::-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;769:122::-;860:5;842:24;835:5;832:35;822:63;;881:1;878;871:12;897:139;968:20;;997:33;968:20;997:33;:::i;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;163:292:68;;;1156:79:101;1276:1;1301:53;1346:7;1326:9;1301:53;:::i;:::-;1291:63;1042:329;-1:-1:-1;;;;1042:329:101:o;1509:96::-;1546:7;-1:-1:-1;;;;;1443:54:101;;1575:24;1377:126;1611:118;1698:24;1716:5;1698:24;:::i;1735:222::-;1866:2;1851:18;;1879:71;1855:9;1923:6;1879:71;:::i;1963:122::-;2036:24;2054:5;2036:24;:::i;2091:139::-;2162:20;;2191:33;2162:20;2191:33;:::i;2236:329::-;2295:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:119;;;2350:79;163:292:68;;;2350:79:101;2470:1;2495:53;2540:7;2520:9;2495:53;:::i;3349:419::-;3553:2;3566:47;;;3538:18;;3630:131;3538:18;3204:2;2677:19;;2886:34;2729:4;2720:14;;2863:58;-1:-1:-1;;;2938:15:101;;;2931:33;3325:12;;;2977:366;4334:419;4538:2;4551:47;;;4523:18;;;2677:19;;;3914:34;2720:14;;;3891:58;4310:12;;;4615:131;3962:366"},"gasEstimates":{"creation":{"codeDepositCost":"158000","executionCost":"26040","totalCost":"184040"},"external":{"getRateSafe()":"2324","owner()":"infinite","rate()":"2360","renounceOwnership()":"infinite","setRate(uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"getRateSafe()":"282a8700","owner()":"8da5cb5b","rate()":"2c4e722e","renounceOwnership()":"715018a6","setRate(uint256)":"34fcf437","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getRateSafe\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rate\",\"type\":\"uint256\"}],\"name\":\"setRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/mocks/MockAccountant.sol\":\"MockAccountant\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/IAccountant.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAccountant {\\n    function getRateSafe() external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x04672ffcad2a2f951d7afc7288a5875dc6e67d12445666c959ac64966102b06b\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/mocks/MockAccountant.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../../interfaces/IAccountant.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockAccountant is IAccountant, Ownable {\\n    uint256 public rate;\\n\\n    constructor() Ownable() {}\\n\\n    function setRate(uint256 _rate) external onlyOwner {\\n        rate = _rate;\\n    }\\n\\n    function getRateSafe() external view override returns (uint256) {\\n        return rate;\\n    }\\n}\\n\",\"keccak256\":\"0x4469944d68e1ca6356bd8953876bbc3108a14d5a4cf21c0bffc973482eed73a0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1101,"contract":"contracts/oracles/mocks/MockAccountant.sol:MockAccountant","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":7147,"contract":"contracts/oracles/mocks/MockAccountant.sol:MockAccountant","label":"rate","offset":0,"slot":"1","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/oracles/mocks/MockBinanceFeedRegistry.sol":{"MockBinanceFeedRegistry":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"assetPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"base","type":"string"},{"internalType":"string","name":"quote","type":"string"}],"name":"decimalsByName","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"base","type":"string"},{"internalType":"string","name":"quote","type":"string"}],"name":"latestRoundDataByName","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"base","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setAssetPrice","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b5061046f8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80636e91995a1461004e578063b78107ca14610077578063bfda5e711461008c578063f9172888146100b0575b5f80fd5b61006161005c366004610252565b6100e7565b60405161006e91906102cb565b60405180910390f35b61008a6100853660046102e0565b6100f0565b005b61009f61009a366004610252565b610114565b60405161006e959493929190610342565b6100da6100be36600461038e565b80516020818301810180515f8252928201919093012091525481565b60405161006e91906103c6565b60085b92915050565b805f836040516101009190610400565b908152604051908190036020019020555050565b5f805f805f8080886040516101299190610400565b908152604051908190036020019020545f610145600a42610426565b929a91995097509095505f945092505050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561019257610192610158565b6040525050565b5f6101a360405190565b90506101af828261016c565b919050565b5f67ffffffffffffffff8211156101cd576101cd610158565b601f19601f83011660200192915050565b82818337505f910152565b5f6101fb6101f6846101b4565b610199565b905082815260208101848484011115610215576102155f80fd5b6102208482856101de565b509392505050565b5f82601f83011261023a5761023a5f80fd5b813561024a8482602086016101e9565b949350505050565b5f8060408385031215610266576102665f80fd5b823567ffffffffffffffff81111561027f5761027f5f80fd5b61028b85828601610228565b925050602083013567ffffffffffffffff8111156102aa576102aa5f80fd5b6102b685828601610228565b9150509250929050565b60ff81165b82525050565b602081016100ea82846102c0565b80356100ea565b5f80604083850312156102f4576102f45f80fd5b823567ffffffffffffffff81111561030d5761030d5f80fd5b61031985828601610228565b92505060206102b6858286016102d9565b69ffffffffffffffffffff81166102c5565b806102c5565b60a08101610350828861032a565b61035d602083018761033c565b61036a604083018661033c565b610377606083018561033c565b610384608083018461032a565b9695505050505050565b5f602082840312156103a1576103a15f80fd5b813567ffffffffffffffff8111156103ba576103ba5f80fd5b61024a84828501610228565b602081016100ea828461033c565b8281835e505f910152565b5f6103e8825190565b6103f68185602086016103d4565b9290920192915050565b5f61040b82846103df565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156100ea576100ea61041256fea26469706673582212203839a23e6c8d5a98576a3a1e4b897507076ca62857f6b44bf8126f67ff22577f64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x46F DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6E91995A EQ PUSH2 0x4E JUMPI DUP1 PUSH4 0xB78107CA EQ PUSH2 0x77 JUMPI DUP1 PUSH4 0xBFDA5E71 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0xF9172888 EQ PUSH2 0xB0 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x61 PUSH2 0x5C CALLDATASIZE PUSH1 0x4 PUSH2 0x252 JUMP JUMPDEST PUSH2 0xE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x2CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x85 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E0 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9F PUSH2 0x9A CALLDATASIZE PUSH1 0x4 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x342 JUMP JUMPDEST PUSH2 0xDA PUSH2 0xBE CALLDATASIZE PUSH1 0x4 PUSH2 0x38E JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH0 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x3C6 JUMP JUMPDEST PUSH1 0x8 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x100 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 DUP1 DUP9 PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH0 PUSH2 0x145 PUSH1 0xA TIMESTAMP PUSH2 0x426 JUMP JUMPDEST SWAP3 SWAP11 SWAP2 SWAP10 POP SWAP8 POP SWAP1 SWAP6 POP PUSH0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x192 JUMPI PUSH2 0x192 PUSH2 0x158 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A3 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1AF DUP3 DUP3 PUSH2 0x16C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1CD JUMPI PUSH2 0x1CD PUSH2 0x158 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x1FB PUSH2 0x1F6 DUP5 PUSH2 0x1B4 JUMP JUMPDEST PUSH2 0x199 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x215 JUMPI PUSH2 0x215 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x220 DUP5 DUP3 DUP6 PUSH2 0x1DE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x23A JUMPI PUSH2 0x23A PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x24A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1E9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x266 JUMPI PUSH2 0x266 PUSH0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27F JUMPI PUSH2 0x27F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x28B DUP6 DUP3 DUP7 ADD PUSH2 0x228 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AA JUMPI PUSH2 0x2AA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x2B6 DUP6 DUP3 DUP7 ADD PUSH2 0x228 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEA DUP3 DUP5 PUSH2 0x2C0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEA JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F4 JUMPI PUSH2 0x2F4 PUSH0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x30D JUMPI PUSH2 0x30D PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x319 DUP6 DUP3 DUP7 ADD PUSH2 0x228 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B6 DUP6 DUP3 DUP7 ADD PUSH2 0x2D9 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x2C5 JUMP JUMPDEST DUP1 PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x350 DUP3 DUP9 PUSH2 0x32A JUMP JUMPDEST PUSH2 0x35D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x33C JUMP JUMPDEST PUSH2 0x36A PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x33C JUMP JUMPDEST PUSH2 0x377 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x33C JUMP JUMPDEST PUSH2 0x384 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x32A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A1 JUMPI PUSH2 0x3A1 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BA JUMPI PUSH2 0x3BA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x24A DUP5 DUP3 DUP6 ADD PUSH2 0x228 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEA DUP3 DUP5 PUSH2 0x33C JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x3E8 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3F6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3D4 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B DUP3 DUP5 PUSH2 0x3DF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEA JUMPI PUSH2 0xEA PUSH2 0x412 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE CODECOPY LOG2 RETURNDATACOPY PUSH13 0x8D5A98576A3A1E4B897507076C 0xA6 0x28 JUMPI 0xF6 0xB4 0x4B 0xF8 SLT PUSH16 0x67FF22577F64736F6C63430008190033 ","sourceMap":"120:720:69:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@assetPrices_7184":{"entryPoint":null,"id":7184,"parameterSlots":0,"returnSlots":0},"@decimalsByName_7247":{"entryPoint":231,"id":7247,"parameterSlots":2,"returnSlots":1},"@latestRoundDataByName_7234":{"entryPoint":276,"id":7234,"parameterSlots":2,"returnSlots":5},"@setAssetPrice_7198":{"entryPoint":240,"id":7198,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":489,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":552,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":729,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":910,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr":{"entryPoint":594,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_uint256":{"entryPoint":736,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_int256_to_t_int256_fromStack":{"entryPoint":828,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":991,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint80_to_t_uint80_fromStack":{"entryPoint":810,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":704,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1024,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":966,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed":{"entryPoint":834,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":715,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":409,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":436,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1062,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint80":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":478,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":980,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":364,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":1042,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":344,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8265:101","nodeType":"YulBlock","src":"0:8265:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1674:84:101","nodeType":"YulBlock","src":"1674:84:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1698:3:101","nodeType":"YulIdentifier","src":"1698:3:101"},{"name":"src","nativeSrc":"1703:3:101","nodeType":"YulIdentifier","src":"1703:3:101"},{"name":"length","nativeSrc":"1708:6:101","nodeType":"YulIdentifier","src":"1708:6:101"}],"functionName":{"name":"calldatacopy","nativeSrc":"1685:12:101","nodeType":"YulIdentifier","src":"1685:12:101"},"nativeSrc":"1685:30:101","nodeType":"YulFunctionCall","src":"1685:30:101"},"nativeSrc":"1685:30:101","nodeType":"YulExpressionStatement","src":"1685:30:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1735:3:101","nodeType":"YulIdentifier","src":"1735:3:101"},{"name":"length","nativeSrc":"1740:6:101","nodeType":"YulIdentifier","src":"1740:6:101"}],"functionName":{"name":"add","nativeSrc":"1731:3:101","nodeType":"YulIdentifier","src":"1731:3:101"},"nativeSrc":"1731:16:101","nodeType":"YulFunctionCall","src":"1731:16:101"},{"kind":"number","nativeSrc":"1749:1:101","nodeType":"YulLiteral","src":"1749:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1724:6:101","nodeType":"YulIdentifier","src":"1724:6:101"},"nativeSrc":"1724:27:101","nodeType":"YulFunctionCall","src":"1724:27:101"},"nativeSrc":"1724:27:101","nodeType":"YulExpressionStatement","src":"1724:27:101"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"1610:148:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1656:3:101","nodeType":"YulTypedName","src":"1656:3:101","type":""},{"name":"dst","nativeSrc":"1661:3:101","nodeType":"YulTypedName","src":"1661:3:101","type":""},{"name":"length","nativeSrc":"1666:6:101","nodeType":"YulTypedName","src":"1666:6:101","type":""}],"src":"1610:148:101"},{"body":{"nativeSrc":"1848:341:101","nodeType":"YulBlock","src":"1848:341:101","statements":[{"nativeSrc":"1858:75:101","nodeType":"YulAssignment","src":"1858:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1925:6:101","nodeType":"YulIdentifier","src":"1925:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1883:41:101","nodeType":"YulIdentifier","src":"1883:41:101"},"nativeSrc":"1883:49:101","nodeType":"YulFunctionCall","src":"1883:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1867:15:101","nodeType":"YulIdentifier","src":"1867:15:101"},"nativeSrc":"1867:66:101","nodeType":"YulFunctionCall","src":"1867:66:101"},"variableNames":[{"name":"array","nativeSrc":"1858:5:101","nodeType":"YulIdentifier","src":"1858:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1949:5:101","nodeType":"YulIdentifier","src":"1949:5:101"},{"name":"length","nativeSrc":"1956:6:101","nodeType":"YulIdentifier","src":"1956:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1942:6:101","nodeType":"YulIdentifier","src":"1942:6:101"},"nativeSrc":"1942:21:101","nodeType":"YulFunctionCall","src":"1942:21:101"},"nativeSrc":"1942:21:101","nodeType":"YulExpressionStatement","src":"1942:21:101"},{"nativeSrc":"1972:27:101","nodeType":"YulVariableDeclaration","src":"1972:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1987:5:101","nodeType":"YulIdentifier","src":"1987:5:101"},{"kind":"number","nativeSrc":"1994:4:101","nodeType":"YulLiteral","src":"1994:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1983:3:101","nodeType":"YulIdentifier","src":"1983:3:101"},"nativeSrc":"1983:16:101","nodeType":"YulFunctionCall","src":"1983:16:101"},"variables":[{"name":"dst","nativeSrc":"1976:3:101","nodeType":"YulTypedName","src":"1976:3:101","type":""}]},{"body":{"nativeSrc":"2037:83:101","nodeType":"YulBlock","src":"2037:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2039:77:101","nodeType":"YulIdentifier","src":"2039:77:101"},"nativeSrc":"2039:79:101","nodeType":"YulFunctionCall","src":"2039:79:101"},"nativeSrc":"2039:79:101","nodeType":"YulExpressionStatement","src":"2039:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2018:3:101","nodeType":"YulIdentifier","src":"2018:3:101"},{"name":"length","nativeSrc":"2023:6:101","nodeType":"YulIdentifier","src":"2023:6:101"}],"functionName":{"name":"add","nativeSrc":"2014:3:101","nodeType":"YulIdentifier","src":"2014:3:101"},"nativeSrc":"2014:16:101","nodeType":"YulFunctionCall","src":"2014:16:101"},{"name":"end","nativeSrc":"2032:3:101","nodeType":"YulIdentifier","src":"2032:3:101"}],"functionName":{"name":"gt","nativeSrc":"2011:2:101","nodeType":"YulIdentifier","src":"2011:2:101"},"nativeSrc":"2011:25:101","nodeType":"YulFunctionCall","src":"2011:25:101"},"nativeSrc":"2008:112:101","nodeType":"YulIf","src":"2008:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2129:36:101","nodeType":"YulIdentifier","src":"2129:36:101"},"nativeSrc":"2129:54:101","nodeType":"YulFunctionCall","src":"2129:54:101"},"nativeSrc":"2129:54:101","nodeType":"YulExpressionStatement","src":"2129:54:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"1764:425:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1821:3:101","nodeType":"YulTypedName","src":"1821:3:101","type":""},{"name":"length","nativeSrc":"1826:6:101","nodeType":"YulTypedName","src":"1826:6:101","type":""},{"name":"end","nativeSrc":"1834:3:101","nodeType":"YulTypedName","src":"1834:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1842:5:101","nodeType":"YulTypedName","src":"1842:5:101","type":""}],"src":"1764:425:101"},{"body":{"nativeSrc":"2271:278:101","nodeType":"YulBlock","src":"2271:278:101","statements":[{"body":{"nativeSrc":"2320:83:101","nodeType":"YulBlock","src":"2320:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2322:77:101","nodeType":"YulIdentifier","src":"2322:77:101"},"nativeSrc":"2322:79:101","nodeType":"YulFunctionCall","src":"2322:79:101"},"nativeSrc":"2322:79:101","nodeType":"YulExpressionStatement","src":"2322:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"},{"kind":"number","nativeSrc":"2307:4:101","nodeType":"YulLiteral","src":"2307:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2295:3:101","nodeType":"YulIdentifier","src":"2295:3:101"},"nativeSrc":"2295:17:101","nodeType":"YulFunctionCall","src":"2295:17:101"},{"name":"end","nativeSrc":"2314:3:101","nodeType":"YulIdentifier","src":"2314:3:101"}],"functionName":{"name":"slt","nativeSrc":"2291:3:101","nodeType":"YulIdentifier","src":"2291:3:101"},"nativeSrc":"2291:27:101","nodeType":"YulFunctionCall","src":"2291:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2284:6:101","nodeType":"YulIdentifier","src":"2284:6:101"},"nativeSrc":"2284:35:101","nodeType":"YulFunctionCall","src":"2284:35:101"},"nativeSrc":"2281:122:101","nodeType":"YulIf","src":"2281:122:101"},{"nativeSrc":"2412:34:101","nodeType":"YulVariableDeclaration","src":"2412:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2426:12:101","nodeType":"YulIdentifier","src":"2426:12:101"},"nativeSrc":"2426:20:101","nodeType":"YulFunctionCall","src":"2426:20:101"},"variables":[{"name":"length","nativeSrc":"2416:6:101","nodeType":"YulTypedName","src":"2416:6:101","type":""}]},{"nativeSrc":"2455:88:101","nodeType":"YulAssignment","src":"2455:88:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2516:6:101","nodeType":"YulIdentifier","src":"2516:6:101"},{"kind":"number","nativeSrc":"2524:4:101","nodeType":"YulLiteral","src":"2524:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2512:3:101","nodeType":"YulIdentifier","src":"2512:3:101"},"nativeSrc":"2512:17:101","nodeType":"YulFunctionCall","src":"2512:17:101"},{"name":"length","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"name":"end","nativeSrc":"2539:3:101","nodeType":"YulIdentifier","src":"2539:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"2464:47:101","nodeType":"YulIdentifier","src":"2464:47:101"},"nativeSrc":"2464:79:101","nodeType":"YulFunctionCall","src":"2464:79:101"},"variableNames":[{"name":"array","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr","nativeSrc":"2209:340:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2249:6:101","nodeType":"YulTypedName","src":"2249:6:101","type":""},{"name":"end","nativeSrc":"2257:3:101","nodeType":"YulTypedName","src":"2257:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2265:5:101","nodeType":"YulTypedName","src":"2265:5:101","type":""}],"src":"2209:340:101"},{"body":{"nativeSrc":"2658:731:101","nodeType":"YulBlock","src":"2658:731:101","statements":[{"body":{"nativeSrc":"2704:83:101","nodeType":"YulBlock","src":"2704:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2706:77:101","nodeType":"YulIdentifier","src":"2706:77:101"},"nativeSrc":"2706:79:101","nodeType":"YulFunctionCall","src":"2706:79:101"},"nativeSrc":"2706:79:101","nodeType":"YulExpressionStatement","src":"2706:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2679:7:101","nodeType":"YulIdentifier","src":"2679:7:101"},{"name":"headStart","nativeSrc":"2688:9:101","nodeType":"YulIdentifier","src":"2688:9:101"}],"functionName":{"name":"sub","nativeSrc":"2675:3:101","nodeType":"YulIdentifier","src":"2675:3:101"},"nativeSrc":"2675:23:101","nodeType":"YulFunctionCall","src":"2675:23:101"},{"kind":"number","nativeSrc":"2700:2:101","nodeType":"YulLiteral","src":"2700:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2671:3:101","nodeType":"YulIdentifier","src":"2671:3:101"},"nativeSrc":"2671:32:101","nodeType":"YulFunctionCall","src":"2671:32:101"},"nativeSrc":"2668:119:101","nodeType":"YulIf","src":"2668:119:101"},{"nativeSrc":"2797:287:101","nodeType":"YulBlock","src":"2797:287:101","statements":[{"nativeSrc":"2812:45:101","nodeType":"YulVariableDeclaration","src":"2812:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2843:9:101","nodeType":"YulIdentifier","src":"2843:9:101"},{"kind":"number","nativeSrc":"2854:1:101","nodeType":"YulLiteral","src":"2854:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2839:3:101","nodeType":"YulIdentifier","src":"2839:3:101"},"nativeSrc":"2839:17:101","nodeType":"YulFunctionCall","src":"2839:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"2826:12:101","nodeType":"YulIdentifier","src":"2826:12:101"},"nativeSrc":"2826:31:101","nodeType":"YulFunctionCall","src":"2826:31:101"},"variables":[{"name":"offset","nativeSrc":"2816:6:101","nodeType":"YulTypedName","src":"2816:6:101","type":""}]},{"body":{"nativeSrc":"2904:83:101","nodeType":"YulBlock","src":"2904:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2906:77:101","nodeType":"YulIdentifier","src":"2906:77:101"},"nativeSrc":"2906:79:101","nodeType":"YulFunctionCall","src":"2906:79:101"},"nativeSrc":"2906:79:101","nodeType":"YulExpressionStatement","src":"2906:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2876:6:101","nodeType":"YulIdentifier","src":"2876:6:101"},{"kind":"number","nativeSrc":"2884:18:101","nodeType":"YulLiteral","src":"2884:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2873:2:101","nodeType":"YulIdentifier","src":"2873:2:101"},"nativeSrc":"2873:30:101","nodeType":"YulFunctionCall","src":"2873:30:101"},"nativeSrc":"2870:117:101","nodeType":"YulIf","src":"2870:117:101"},{"nativeSrc":"3001:73:101","nodeType":"YulAssignment","src":"3001:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3046:9:101","nodeType":"YulIdentifier","src":"3046:9:101"},{"name":"offset","nativeSrc":"3057:6:101","nodeType":"YulIdentifier","src":"3057:6:101"}],"functionName":{"name":"add","nativeSrc":"3042:3:101","nodeType":"YulIdentifier","src":"3042:3:101"},"nativeSrc":"3042:22:101","nodeType":"YulFunctionCall","src":"3042:22:101"},{"name":"dataEnd","nativeSrc":"3066:7:101","nodeType":"YulIdentifier","src":"3066:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"3011:30:101","nodeType":"YulIdentifier","src":"3011:30:101"},"nativeSrc":"3011:63:101","nodeType":"YulFunctionCall","src":"3011:63:101"},"variableNames":[{"name":"value0","nativeSrc":"3001:6:101","nodeType":"YulIdentifier","src":"3001:6:101"}]}]},{"nativeSrc":"3094:288:101","nodeType":"YulBlock","src":"3094:288:101","statements":[{"nativeSrc":"3109:46:101","nodeType":"YulVariableDeclaration","src":"3109:46:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3140:9:101","nodeType":"YulIdentifier","src":"3140:9:101"},{"kind":"number","nativeSrc":"3151:2:101","nodeType":"YulLiteral","src":"3151:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3136:3:101","nodeType":"YulIdentifier","src":"3136:3:101"},"nativeSrc":"3136:18:101","nodeType":"YulFunctionCall","src":"3136:18:101"}],"functionName":{"name":"calldataload","nativeSrc":"3123:12:101","nodeType":"YulIdentifier","src":"3123:12:101"},"nativeSrc":"3123:32:101","nodeType":"YulFunctionCall","src":"3123:32:101"},"variables":[{"name":"offset","nativeSrc":"3113:6:101","nodeType":"YulTypedName","src":"3113:6:101","type":""}]},{"body":{"nativeSrc":"3202:83:101","nodeType":"YulBlock","src":"3202:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3204:77:101","nodeType":"YulIdentifier","src":"3204:77:101"},"nativeSrc":"3204:79:101","nodeType":"YulFunctionCall","src":"3204:79:101"},"nativeSrc":"3204:79:101","nodeType":"YulExpressionStatement","src":"3204:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3174:6:101","nodeType":"YulIdentifier","src":"3174:6:101"},{"kind":"number","nativeSrc":"3182:18:101","nodeType":"YulLiteral","src":"3182:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3171:2:101","nodeType":"YulIdentifier","src":"3171:2:101"},"nativeSrc":"3171:30:101","nodeType":"YulFunctionCall","src":"3171:30:101"},"nativeSrc":"3168:117:101","nodeType":"YulIf","src":"3168:117:101"},{"nativeSrc":"3299:73:101","nodeType":"YulAssignment","src":"3299:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3344:9:101","nodeType":"YulIdentifier","src":"3344:9:101"},{"name":"offset","nativeSrc":"3355:6:101","nodeType":"YulIdentifier","src":"3355:6:101"}],"functionName":{"name":"add","nativeSrc":"3340:3:101","nodeType":"YulIdentifier","src":"3340:3:101"},"nativeSrc":"3340:22:101","nodeType":"YulFunctionCall","src":"3340:22:101"},{"name":"dataEnd","nativeSrc":"3364:7:101","nodeType":"YulIdentifier","src":"3364:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"3309:30:101","nodeType":"YulIdentifier","src":"3309:30:101"},"nativeSrc":"3309:63:101","nodeType":"YulFunctionCall","src":"3309:63:101"},"variableNames":[{"name":"value1","nativeSrc":"3299:6:101","nodeType":"YulIdentifier","src":"3299:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr","nativeSrc":"2555:834:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2620:9:101","nodeType":"YulTypedName","src":"2620:9:101","type":""},{"name":"dataEnd","nativeSrc":"2631:7:101","nodeType":"YulTypedName","src":"2631:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2643:6:101","nodeType":"YulTypedName","src":"2643:6:101","type":""},{"name":"value1","nativeSrc":"2651:6:101","nodeType":"YulTypedName","src":"2651:6:101","type":""}],"src":"2555:834:101"},{"body":{"nativeSrc":"3438:43:101","nodeType":"YulBlock","src":"3438:43:101","statements":[{"nativeSrc":"3448:27:101","nodeType":"YulAssignment","src":"3448:27:101","value":{"arguments":[{"name":"value","nativeSrc":"3463:5:101","nodeType":"YulIdentifier","src":"3463:5:101"},{"kind":"number","nativeSrc":"3470:4:101","nodeType":"YulLiteral","src":"3470:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"3459:3:101","nodeType":"YulIdentifier","src":"3459:3:101"},"nativeSrc":"3459:16:101","nodeType":"YulFunctionCall","src":"3459:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3448:7:101","nodeType":"YulIdentifier","src":"3448:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"3395:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3420:5:101","nodeType":"YulTypedName","src":"3420:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3430:7:101","nodeType":"YulTypedName","src":"3430:7:101","type":""}],"src":"3395:86:101"},{"body":{"nativeSrc":"3548:51:101","nodeType":"YulBlock","src":"3548:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3565:3:101","nodeType":"YulIdentifier","src":"3565:3:101"},{"arguments":[{"name":"value","nativeSrc":"3586:5:101","nodeType":"YulIdentifier","src":"3586:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"3570:15:101","nodeType":"YulIdentifier","src":"3570:15:101"},"nativeSrc":"3570:22:101","nodeType":"YulFunctionCall","src":"3570:22:101"}],"functionName":{"name":"mstore","nativeSrc":"3558:6:101","nodeType":"YulIdentifier","src":"3558:6:101"},"nativeSrc":"3558:35:101","nodeType":"YulFunctionCall","src":"3558:35:101"},"nativeSrc":"3558:35:101","nodeType":"YulExpressionStatement","src":"3558:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"3487:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3536:5:101","nodeType":"YulTypedName","src":"3536:5:101","type":""},{"name":"pos","nativeSrc":"3543:3:101","nodeType":"YulTypedName","src":"3543:3:101","type":""}],"src":"3487:112:101"},{"body":{"nativeSrc":"3699:120:101","nodeType":"YulBlock","src":"3699:120:101","statements":[{"nativeSrc":"3709:26:101","nodeType":"YulAssignment","src":"3709:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3721:9:101","nodeType":"YulIdentifier","src":"3721:9:101"},{"kind":"number","nativeSrc":"3732:2:101","nodeType":"YulLiteral","src":"3732:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3717:3:101","nodeType":"YulIdentifier","src":"3717:3:101"},"nativeSrc":"3717:18:101","nodeType":"YulFunctionCall","src":"3717:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3709:4:101","nodeType":"YulIdentifier","src":"3709:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3785:6:101","nodeType":"YulIdentifier","src":"3785:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3798:9:101","nodeType":"YulIdentifier","src":"3798:9:101"},{"kind":"number","nativeSrc":"3809:1:101","nodeType":"YulLiteral","src":"3809:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3794:3:101","nodeType":"YulIdentifier","src":"3794:3:101"},"nativeSrc":"3794:17:101","nodeType":"YulFunctionCall","src":"3794:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"3745:39:101","nodeType":"YulIdentifier","src":"3745:39:101"},"nativeSrc":"3745:67:101","nodeType":"YulFunctionCall","src":"3745:67:101"},"nativeSrc":"3745:67:101","nodeType":"YulExpressionStatement","src":"3745:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"3605:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3671:9:101","nodeType":"YulTypedName","src":"3671:9:101","type":""},{"name":"value0","nativeSrc":"3683:6:101","nodeType":"YulTypedName","src":"3683:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3694:4:101","nodeType":"YulTypedName","src":"3694:4:101","type":""}],"src":"3605:214:101"},{"body":{"nativeSrc":"3870:32:101","nodeType":"YulBlock","src":"3870:32:101","statements":[{"nativeSrc":"3880:16:101","nodeType":"YulAssignment","src":"3880:16:101","value":{"name":"value","nativeSrc":"3891:5:101","nodeType":"YulIdentifier","src":"3891:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3880:7:101","nodeType":"YulIdentifier","src":"3880:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3825:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3852:5:101","nodeType":"YulTypedName","src":"3852:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3862:7:101","nodeType":"YulTypedName","src":"3862:7:101","type":""}],"src":"3825:77:101"},{"body":{"nativeSrc":"3951:79:101","nodeType":"YulBlock","src":"3951:79:101","statements":[{"body":{"nativeSrc":"4008:16:101","nodeType":"YulBlock","src":"4008:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4017:1:101","nodeType":"YulLiteral","src":"4017:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4020:1:101","nodeType":"YulLiteral","src":"4020:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4010:6:101","nodeType":"YulIdentifier","src":"4010:6:101"},"nativeSrc":"4010:12:101","nodeType":"YulFunctionCall","src":"4010:12:101"},"nativeSrc":"4010:12:101","nodeType":"YulExpressionStatement","src":"4010:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3974:5:101","nodeType":"YulIdentifier","src":"3974:5:101"},{"arguments":[{"name":"value","nativeSrc":"3999:5:101","nodeType":"YulIdentifier","src":"3999:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3981:17:101","nodeType":"YulIdentifier","src":"3981:17:101"},"nativeSrc":"3981:24:101","nodeType":"YulFunctionCall","src":"3981:24:101"}],"functionName":{"name":"eq","nativeSrc":"3971:2:101","nodeType":"YulIdentifier","src":"3971:2:101"},"nativeSrc":"3971:35:101","nodeType":"YulFunctionCall","src":"3971:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3964:6:101","nodeType":"YulIdentifier","src":"3964:6:101"},"nativeSrc":"3964:43:101","nodeType":"YulFunctionCall","src":"3964:43:101"},"nativeSrc":"3961:63:101","nodeType":"YulIf","src":"3961:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"3908:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3944:5:101","nodeType":"YulTypedName","src":"3944:5:101","type":""}],"src":"3908:122:101"},{"body":{"nativeSrc":"4088:87:101","nodeType":"YulBlock","src":"4088:87:101","statements":[{"nativeSrc":"4098:29:101","nodeType":"YulAssignment","src":"4098:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"4120:6:101","nodeType":"YulIdentifier","src":"4120:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"4107:12:101","nodeType":"YulIdentifier","src":"4107:12:101"},"nativeSrc":"4107:20:101","nodeType":"YulFunctionCall","src":"4107:20:101"},"variableNames":[{"name":"value","nativeSrc":"4098:5:101","nodeType":"YulIdentifier","src":"4098:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4163:5:101","nodeType":"YulIdentifier","src":"4163:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"4136:26:101","nodeType":"YulIdentifier","src":"4136:26:101"},"nativeSrc":"4136:33:101","nodeType":"YulFunctionCall","src":"4136:33:101"},"nativeSrc":"4136:33:101","nodeType":"YulExpressionStatement","src":"4136:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"4036:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4066:6:101","nodeType":"YulTypedName","src":"4066:6:101","type":""},{"name":"end","nativeSrc":"4074:3:101","nodeType":"YulTypedName","src":"4074:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4082:5:101","nodeType":"YulTypedName","src":"4082:5:101","type":""}],"src":"4036:139:101"},{"body":{"nativeSrc":"4274:561:101","nodeType":"YulBlock","src":"4274:561:101","statements":[{"body":{"nativeSrc":"4320:83:101","nodeType":"YulBlock","src":"4320:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4322:77:101","nodeType":"YulIdentifier","src":"4322:77:101"},"nativeSrc":"4322:79:101","nodeType":"YulFunctionCall","src":"4322:79:101"},"nativeSrc":"4322:79:101","nodeType":"YulExpressionStatement","src":"4322:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4295:7:101","nodeType":"YulIdentifier","src":"4295:7:101"},{"name":"headStart","nativeSrc":"4304:9:101","nodeType":"YulIdentifier","src":"4304:9:101"}],"functionName":{"name":"sub","nativeSrc":"4291:3:101","nodeType":"YulIdentifier","src":"4291:3:101"},"nativeSrc":"4291:23:101","nodeType":"YulFunctionCall","src":"4291:23:101"},{"kind":"number","nativeSrc":"4316:2:101","nodeType":"YulLiteral","src":"4316:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4287:3:101","nodeType":"YulIdentifier","src":"4287:3:101"},"nativeSrc":"4287:32:101","nodeType":"YulFunctionCall","src":"4287:32:101"},"nativeSrc":"4284:119:101","nodeType":"YulIf","src":"4284:119:101"},{"nativeSrc":"4413:287:101","nodeType":"YulBlock","src":"4413:287:101","statements":[{"nativeSrc":"4428:45:101","nodeType":"YulVariableDeclaration","src":"4428:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4459:9:101","nodeType":"YulIdentifier","src":"4459:9:101"},{"kind":"number","nativeSrc":"4470:1:101","nodeType":"YulLiteral","src":"4470:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4455:3:101","nodeType":"YulIdentifier","src":"4455:3:101"},"nativeSrc":"4455:17:101","nodeType":"YulFunctionCall","src":"4455:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"4442:12:101","nodeType":"YulIdentifier","src":"4442:12:101"},"nativeSrc":"4442:31:101","nodeType":"YulFunctionCall","src":"4442:31:101"},"variables":[{"name":"offset","nativeSrc":"4432:6:101","nodeType":"YulTypedName","src":"4432:6:101","type":""}]},{"body":{"nativeSrc":"4520:83:101","nodeType":"YulBlock","src":"4520:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4522:77:101","nodeType":"YulIdentifier","src":"4522:77:101"},"nativeSrc":"4522:79:101","nodeType":"YulFunctionCall","src":"4522:79:101"},"nativeSrc":"4522:79:101","nodeType":"YulExpressionStatement","src":"4522:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4492:6:101","nodeType":"YulIdentifier","src":"4492:6:101"},{"kind":"number","nativeSrc":"4500:18:101","nodeType":"YulLiteral","src":"4500:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4489:2:101","nodeType":"YulIdentifier","src":"4489:2:101"},"nativeSrc":"4489:30:101","nodeType":"YulFunctionCall","src":"4489:30:101"},"nativeSrc":"4486:117:101","nodeType":"YulIf","src":"4486:117:101"},{"nativeSrc":"4617:73:101","nodeType":"YulAssignment","src":"4617:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4662:9:101","nodeType":"YulIdentifier","src":"4662:9:101"},{"name":"offset","nativeSrc":"4673:6:101","nodeType":"YulIdentifier","src":"4673:6:101"}],"functionName":{"name":"add","nativeSrc":"4658:3:101","nodeType":"YulIdentifier","src":"4658:3:101"},"nativeSrc":"4658:22:101","nodeType":"YulFunctionCall","src":"4658:22:101"},{"name":"dataEnd","nativeSrc":"4682:7:101","nodeType":"YulIdentifier","src":"4682:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4627:30:101","nodeType":"YulIdentifier","src":"4627:30:101"},"nativeSrc":"4627:63:101","nodeType":"YulFunctionCall","src":"4627:63:101"},"variableNames":[{"name":"value0","nativeSrc":"4617:6:101","nodeType":"YulIdentifier","src":"4617:6:101"}]}]},{"nativeSrc":"4710:118:101","nodeType":"YulBlock","src":"4710:118:101","statements":[{"nativeSrc":"4725:16:101","nodeType":"YulVariableDeclaration","src":"4725:16:101","value":{"kind":"number","nativeSrc":"4739:2:101","nodeType":"YulLiteral","src":"4739:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4729:6:101","nodeType":"YulTypedName","src":"4729:6:101","type":""}]},{"nativeSrc":"4755:63:101","nodeType":"YulAssignment","src":"4755:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4790:9:101","nodeType":"YulIdentifier","src":"4790:9:101"},{"name":"offset","nativeSrc":"4801:6:101","nodeType":"YulIdentifier","src":"4801:6:101"}],"functionName":{"name":"add","nativeSrc":"4786:3:101","nodeType":"YulIdentifier","src":"4786:3:101"},"nativeSrc":"4786:22:101","nodeType":"YulFunctionCall","src":"4786:22:101"},{"name":"dataEnd","nativeSrc":"4810:7:101","nodeType":"YulIdentifier","src":"4810:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4765:20:101","nodeType":"YulIdentifier","src":"4765:20:101"},"nativeSrc":"4765:53:101","nodeType":"YulFunctionCall","src":"4765:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4755:6:101","nodeType":"YulIdentifier","src":"4755:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint256","nativeSrc":"4181:654:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4236:9:101","nodeType":"YulTypedName","src":"4236:9:101","type":""},{"name":"dataEnd","nativeSrc":"4247:7:101","nodeType":"YulTypedName","src":"4247:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4259:6:101","nodeType":"YulTypedName","src":"4259:6:101","type":""},{"name":"value1","nativeSrc":"4267:6:101","nodeType":"YulTypedName","src":"4267:6:101","type":""}],"src":"4181:654:101"},{"body":{"nativeSrc":"4885:61:101","nodeType":"YulBlock","src":"4885:61:101","statements":[{"nativeSrc":"4895:45:101","nodeType":"YulAssignment","src":"4895:45:101","value":{"arguments":[{"name":"value","nativeSrc":"4910:5:101","nodeType":"YulIdentifier","src":"4910:5:101"},{"kind":"number","nativeSrc":"4917:22:101","nodeType":"YulLiteral","src":"4917:22:101","type":"","value":"0xffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4906:3:101","nodeType":"YulIdentifier","src":"4906:3:101"},"nativeSrc":"4906:34:101","nodeType":"YulFunctionCall","src":"4906:34:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4895:7:101","nodeType":"YulIdentifier","src":"4895:7:101"}]}]},"name":"cleanup_t_uint80","nativeSrc":"4841:105:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4867:5:101","nodeType":"YulTypedName","src":"4867:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4877:7:101","nodeType":"YulTypedName","src":"4877:7:101","type":""}],"src":"4841:105:101"},{"body":{"nativeSrc":"5015:52:101","nodeType":"YulBlock","src":"5015:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5032:3:101","nodeType":"YulIdentifier","src":"5032:3:101"},{"arguments":[{"name":"value","nativeSrc":"5054:5:101","nodeType":"YulIdentifier","src":"5054:5:101"}],"functionName":{"name":"cleanup_t_uint80","nativeSrc":"5037:16:101","nodeType":"YulIdentifier","src":"5037:16:101"},"nativeSrc":"5037:23:101","nodeType":"YulFunctionCall","src":"5037:23:101"}],"functionName":{"name":"mstore","nativeSrc":"5025:6:101","nodeType":"YulIdentifier","src":"5025:6:101"},"nativeSrc":"5025:36:101","nodeType":"YulFunctionCall","src":"5025:36:101"},"nativeSrc":"5025:36:101","nodeType":"YulExpressionStatement","src":"5025:36:101"}]},"name":"abi_encode_t_uint80_to_t_uint80_fromStack","nativeSrc":"4952:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5003:5:101","nodeType":"YulTypedName","src":"5003:5:101","type":""},{"name":"pos","nativeSrc":"5010:3:101","nodeType":"YulTypedName","src":"5010:3:101","type":""}],"src":"4952:115:101"},{"body":{"nativeSrc":"5117:32:101","nodeType":"YulBlock","src":"5117:32:101","statements":[{"nativeSrc":"5127:16:101","nodeType":"YulAssignment","src":"5127:16:101","value":{"name":"value","nativeSrc":"5138:5:101","nodeType":"YulIdentifier","src":"5138:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5127:7:101","nodeType":"YulIdentifier","src":"5127:7:101"}]}]},"name":"cleanup_t_int256","nativeSrc":"5073:76:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5099:5:101","nodeType":"YulTypedName","src":"5099:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5109:7:101","nodeType":"YulTypedName","src":"5109:7:101","type":""}],"src":"5073:76:101"},{"body":{"nativeSrc":"5218:52:101","nodeType":"YulBlock","src":"5218:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5235:3:101","nodeType":"YulIdentifier","src":"5235:3:101"},{"arguments":[{"name":"value","nativeSrc":"5257:5:101","nodeType":"YulIdentifier","src":"5257:5:101"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"5240:16:101","nodeType":"YulIdentifier","src":"5240:16:101"},"nativeSrc":"5240:23:101","nodeType":"YulFunctionCall","src":"5240:23:101"}],"functionName":{"name":"mstore","nativeSrc":"5228:6:101","nodeType":"YulIdentifier","src":"5228:6:101"},"nativeSrc":"5228:36:101","nodeType":"YulFunctionCall","src":"5228:36:101"},"nativeSrc":"5228:36:101","nodeType":"YulExpressionStatement","src":"5228:36:101"}]},"name":"abi_encode_t_int256_to_t_int256_fromStack","nativeSrc":"5155:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5206:5:101","nodeType":"YulTypedName","src":"5206:5:101","type":""},{"name":"pos","nativeSrc":"5213:3:101","nodeType":"YulTypedName","src":"5213:3:101","type":""}],"src":"5155:115:101"},{"body":{"nativeSrc":"5341:53:101","nodeType":"YulBlock","src":"5341:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5358:3:101","nodeType":"YulIdentifier","src":"5358:3:101"},{"arguments":[{"name":"value","nativeSrc":"5381:5:101","nodeType":"YulIdentifier","src":"5381:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5363:17:101","nodeType":"YulIdentifier","src":"5363:17:101"},"nativeSrc":"5363:24:101","nodeType":"YulFunctionCall","src":"5363:24:101"}],"functionName":{"name":"mstore","nativeSrc":"5351:6:101","nodeType":"YulIdentifier","src":"5351:6:101"},"nativeSrc":"5351:37:101","nodeType":"YulFunctionCall","src":"5351:37:101"},"nativeSrc":"5351:37:101","nodeType":"YulExpressionStatement","src":"5351:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5276:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5329:5:101","nodeType":"YulTypedName","src":"5329:5:101","type":""},{"name":"pos","nativeSrc":"5336:3:101","nodeType":"YulTypedName","src":"5336:3:101","type":""}],"src":"5276:118:101"},{"body":{"nativeSrc":"5604:448:101","nodeType":"YulBlock","src":"5604:448:101","statements":[{"nativeSrc":"5614:27:101","nodeType":"YulAssignment","src":"5614:27:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5626:9:101","nodeType":"YulIdentifier","src":"5626:9:101"},{"kind":"number","nativeSrc":"5637:3:101","nodeType":"YulLiteral","src":"5637:3:101","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5622:3:101","nodeType":"YulIdentifier","src":"5622:3:101"},"nativeSrc":"5622:19:101","nodeType":"YulFunctionCall","src":"5622:19:101"},"variableNames":[{"name":"tail","nativeSrc":"5614:4:101","nodeType":"YulIdentifier","src":"5614:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5693:6:101","nodeType":"YulIdentifier","src":"5693:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5706:9:101","nodeType":"YulIdentifier","src":"5706:9:101"},{"kind":"number","nativeSrc":"5717:1:101","nodeType":"YulLiteral","src":"5717:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5702:3:101","nodeType":"YulIdentifier","src":"5702:3:101"},"nativeSrc":"5702:17:101","nodeType":"YulFunctionCall","src":"5702:17:101"}],"functionName":{"name":"abi_encode_t_uint80_to_t_uint80_fromStack","nativeSrc":"5651:41:101","nodeType":"YulIdentifier","src":"5651:41:101"},"nativeSrc":"5651:69:101","nodeType":"YulFunctionCall","src":"5651:69:101"},"nativeSrc":"5651:69:101","nodeType":"YulExpressionStatement","src":"5651:69:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5772:6:101","nodeType":"YulIdentifier","src":"5772:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5785:9:101","nodeType":"YulIdentifier","src":"5785:9:101"},{"kind":"number","nativeSrc":"5796:2:101","nodeType":"YulLiteral","src":"5796:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5781:3:101","nodeType":"YulIdentifier","src":"5781:3:101"},"nativeSrc":"5781:18:101","nodeType":"YulFunctionCall","src":"5781:18:101"}],"functionName":{"name":"abi_encode_t_int256_to_t_int256_fromStack","nativeSrc":"5730:41:101","nodeType":"YulIdentifier","src":"5730:41:101"},"nativeSrc":"5730:70:101","nodeType":"YulFunctionCall","src":"5730:70:101"},"nativeSrc":"5730:70:101","nodeType":"YulExpressionStatement","src":"5730:70:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"5854:6:101","nodeType":"YulIdentifier","src":"5854:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5867:9:101","nodeType":"YulIdentifier","src":"5867:9:101"},{"kind":"number","nativeSrc":"5878:2:101","nodeType":"YulLiteral","src":"5878:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5863:3:101","nodeType":"YulIdentifier","src":"5863:3:101"},"nativeSrc":"5863:18:101","nodeType":"YulFunctionCall","src":"5863:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5810:43:101","nodeType":"YulIdentifier","src":"5810:43:101"},"nativeSrc":"5810:72:101","nodeType":"YulFunctionCall","src":"5810:72:101"},"nativeSrc":"5810:72:101","nodeType":"YulExpressionStatement","src":"5810:72:101"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"5936:6:101","nodeType":"YulIdentifier","src":"5936:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5949:9:101","nodeType":"YulIdentifier","src":"5949:9:101"},{"kind":"number","nativeSrc":"5960:2:101","nodeType":"YulLiteral","src":"5960:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5945:3:101","nodeType":"YulIdentifier","src":"5945:3:101"},"nativeSrc":"5945:18:101","nodeType":"YulFunctionCall","src":"5945:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5892:43:101","nodeType":"YulIdentifier","src":"5892:43:101"},"nativeSrc":"5892:72:101","nodeType":"YulFunctionCall","src":"5892:72:101"},"nativeSrc":"5892:72:101","nodeType":"YulExpressionStatement","src":"5892:72:101"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"6016:6:101","nodeType":"YulIdentifier","src":"6016:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6029:9:101","nodeType":"YulIdentifier","src":"6029:9:101"},{"kind":"number","nativeSrc":"6040:3:101","nodeType":"YulLiteral","src":"6040:3:101","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6025:3:101","nodeType":"YulIdentifier","src":"6025:3:101"},"nativeSrc":"6025:19:101","nodeType":"YulFunctionCall","src":"6025:19:101"}],"functionName":{"name":"abi_encode_t_uint80_to_t_uint80_fromStack","nativeSrc":"5974:41:101","nodeType":"YulIdentifier","src":"5974:41:101"},"nativeSrc":"5974:71:101","nodeType":"YulFunctionCall","src":"5974:71:101"},"nativeSrc":"5974:71:101","nodeType":"YulExpressionStatement","src":"5974:71:101"}]},"name":"abi_encode_tuple_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed","nativeSrc":"5400:652:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5544:9:101","nodeType":"YulTypedName","src":"5544:9:101","type":""},{"name":"value4","nativeSrc":"5556:6:101","nodeType":"YulTypedName","src":"5556:6:101","type":""},{"name":"value3","nativeSrc":"5564:6:101","nodeType":"YulTypedName","src":"5564:6:101","type":""},{"name":"value2","nativeSrc":"5572:6:101","nodeType":"YulTypedName","src":"5572:6:101","type":""},{"name":"value1","nativeSrc":"5580:6:101","nodeType":"YulTypedName","src":"5580:6:101","type":""},{"name":"value0","nativeSrc":"5588:6:101","nodeType":"YulTypedName","src":"5588:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5599:4:101","nodeType":"YulTypedName","src":"5599:4:101","type":""}],"src":"5400:652:101"},{"body":{"nativeSrc":"6134:433:101","nodeType":"YulBlock","src":"6134:433:101","statements":[{"body":{"nativeSrc":"6180:83:101","nodeType":"YulBlock","src":"6180:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6182:77:101","nodeType":"YulIdentifier","src":"6182:77:101"},"nativeSrc":"6182:79:101","nodeType":"YulFunctionCall","src":"6182:79:101"},"nativeSrc":"6182:79:101","nodeType":"YulExpressionStatement","src":"6182:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6155:7:101","nodeType":"YulIdentifier","src":"6155:7:101"},{"name":"headStart","nativeSrc":"6164:9:101","nodeType":"YulIdentifier","src":"6164:9:101"}],"functionName":{"name":"sub","nativeSrc":"6151:3:101","nodeType":"YulIdentifier","src":"6151:3:101"},"nativeSrc":"6151:23:101","nodeType":"YulFunctionCall","src":"6151:23:101"},{"kind":"number","nativeSrc":"6176:2:101","nodeType":"YulLiteral","src":"6176:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6147:3:101","nodeType":"YulIdentifier","src":"6147:3:101"},"nativeSrc":"6147:32:101","nodeType":"YulFunctionCall","src":"6147:32:101"},"nativeSrc":"6144:119:101","nodeType":"YulIf","src":"6144:119:101"},{"nativeSrc":"6273:287:101","nodeType":"YulBlock","src":"6273:287:101","statements":[{"nativeSrc":"6288:45:101","nodeType":"YulVariableDeclaration","src":"6288:45:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6319:9:101","nodeType":"YulIdentifier","src":"6319:9:101"},{"kind":"number","nativeSrc":"6330:1:101","nodeType":"YulLiteral","src":"6330:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6315:3:101","nodeType":"YulIdentifier","src":"6315:3:101"},"nativeSrc":"6315:17:101","nodeType":"YulFunctionCall","src":"6315:17:101"}],"functionName":{"name":"calldataload","nativeSrc":"6302:12:101","nodeType":"YulIdentifier","src":"6302:12:101"},"nativeSrc":"6302:31:101","nodeType":"YulFunctionCall","src":"6302:31:101"},"variables":[{"name":"offset","nativeSrc":"6292:6:101","nodeType":"YulTypedName","src":"6292:6:101","type":""}]},{"body":{"nativeSrc":"6380:83:101","nodeType":"YulBlock","src":"6380:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6382:77:101","nodeType":"YulIdentifier","src":"6382:77:101"},"nativeSrc":"6382:79:101","nodeType":"YulFunctionCall","src":"6382:79:101"},"nativeSrc":"6382:79:101","nodeType":"YulExpressionStatement","src":"6382:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6352:6:101","nodeType":"YulIdentifier","src":"6352:6:101"},{"kind":"number","nativeSrc":"6360:18:101","nodeType":"YulLiteral","src":"6360:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6349:2:101","nodeType":"YulIdentifier","src":"6349:2:101"},"nativeSrc":"6349:30:101","nodeType":"YulFunctionCall","src":"6349:30:101"},"nativeSrc":"6346:117:101","nodeType":"YulIf","src":"6346:117:101"},{"nativeSrc":"6477:73:101","nodeType":"YulAssignment","src":"6477:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6522:9:101","nodeType":"YulIdentifier","src":"6522:9:101"},{"name":"offset","nativeSrc":"6533:6:101","nodeType":"YulIdentifier","src":"6533:6:101"}],"functionName":{"name":"add","nativeSrc":"6518:3:101","nodeType":"YulIdentifier","src":"6518:3:101"},"nativeSrc":"6518:22:101","nodeType":"YulFunctionCall","src":"6518:22:101"},{"name":"dataEnd","nativeSrc":"6542:7:101","nodeType":"YulIdentifier","src":"6542:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"6487:30:101","nodeType":"YulIdentifier","src":"6487:30:101"},"nativeSrc":"6487:63:101","nodeType":"YulFunctionCall","src":"6487:63:101"},"variableNames":[{"name":"value0","nativeSrc":"6477:6:101","nodeType":"YulIdentifier","src":"6477:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"6058:509:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6104:9:101","nodeType":"YulTypedName","src":"6104:9:101","type":""},{"name":"dataEnd","nativeSrc":"6115:7:101","nodeType":"YulTypedName","src":"6115:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6127:6:101","nodeType":"YulTypedName","src":"6127:6:101","type":""}],"src":"6058:509:101"},{"body":{"nativeSrc":"6671:124:101","nodeType":"YulBlock","src":"6671:124:101","statements":[{"nativeSrc":"6681:26:101","nodeType":"YulAssignment","src":"6681:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6693:9:101","nodeType":"YulIdentifier","src":"6693:9:101"},{"kind":"number","nativeSrc":"6704:2:101","nodeType":"YulLiteral","src":"6704:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6689:3:101","nodeType":"YulIdentifier","src":"6689:3:101"},"nativeSrc":"6689:18:101","nodeType":"YulFunctionCall","src":"6689:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6681:4:101","nodeType":"YulIdentifier","src":"6681:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6761:6:101","nodeType":"YulIdentifier","src":"6761:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"6774:9:101","nodeType":"YulIdentifier","src":"6774:9:101"},{"kind":"number","nativeSrc":"6785:1:101","nodeType":"YulLiteral","src":"6785:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6770:3:101","nodeType":"YulIdentifier","src":"6770:3:101"},"nativeSrc":"6770:17:101","nodeType":"YulFunctionCall","src":"6770:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6717:43:101","nodeType":"YulIdentifier","src":"6717:43:101"},"nativeSrc":"6717:71:101","nodeType":"YulFunctionCall","src":"6717:71:101"},"nativeSrc":"6717:71:101","nodeType":"YulExpressionStatement","src":"6717:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6573:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6643:9:101","nodeType":"YulTypedName","src":"6643:9:101","type":""},{"name":"value0","nativeSrc":"6655:6:101","nodeType":"YulTypedName","src":"6655:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6666:4:101","nodeType":"YulTypedName","src":"6666:4:101","type":""}],"src":"6573:222:101"},{"body":{"nativeSrc":"6860:40:101","nodeType":"YulBlock","src":"6860:40:101","statements":[{"nativeSrc":"6871:22:101","nodeType":"YulAssignment","src":"6871:22:101","value":{"arguments":[{"name":"value","nativeSrc":"6887:5:101","nodeType":"YulIdentifier","src":"6887:5:101"}],"functionName":{"name":"mload","nativeSrc":"6881:5:101","nodeType":"YulIdentifier","src":"6881:5:101"},"nativeSrc":"6881:12:101","nodeType":"YulFunctionCall","src":"6881:12:101"},"variableNames":[{"name":"length","nativeSrc":"6871:6:101","nodeType":"YulIdentifier","src":"6871:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"6801:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6843:5:101","nodeType":"YulTypedName","src":"6843:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6853:6:101","nodeType":"YulTypedName","src":"6853:6:101","type":""}],"src":"6801:99:101"},{"body":{"nativeSrc":"7020:34:101","nodeType":"YulBlock","src":"7020:34:101","statements":[{"nativeSrc":"7030:18:101","nodeType":"YulAssignment","src":"7030:18:101","value":{"name":"pos","nativeSrc":"7045:3:101","nodeType":"YulIdentifier","src":"7045:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"7030:11:101","nodeType":"YulIdentifier","src":"7030:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6906:148:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6992:3:101","nodeType":"YulTypedName","src":"6992:3:101","type":""},{"name":"length","nativeSrc":"6997:6:101","nodeType":"YulTypedName","src":"6997:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7008:11:101","nodeType":"YulTypedName","src":"7008:11:101","type":""}],"src":"6906:148:101"},{"body":{"nativeSrc":"7122:77:101","nodeType":"YulBlock","src":"7122:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"7139:3:101","nodeType":"YulIdentifier","src":"7139:3:101"},{"name":"src","nativeSrc":"7144:3:101","nodeType":"YulIdentifier","src":"7144:3:101"},{"name":"length","nativeSrc":"7149:6:101","nodeType":"YulIdentifier","src":"7149:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"7133:5:101","nodeType":"YulIdentifier","src":"7133:5:101"},"nativeSrc":"7133:23:101","nodeType":"YulFunctionCall","src":"7133:23:101"},"nativeSrc":"7133:23:101","nodeType":"YulExpressionStatement","src":"7133:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"7176:3:101","nodeType":"YulIdentifier","src":"7176:3:101"},{"name":"length","nativeSrc":"7181:6:101","nodeType":"YulIdentifier","src":"7181:6:101"}],"functionName":{"name":"add","nativeSrc":"7172:3:101","nodeType":"YulIdentifier","src":"7172:3:101"},"nativeSrc":"7172:16:101","nodeType":"YulFunctionCall","src":"7172:16:101"},{"kind":"number","nativeSrc":"7190:1:101","nodeType":"YulLiteral","src":"7190:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7165:6:101","nodeType":"YulIdentifier","src":"7165:6:101"},"nativeSrc":"7165:27:101","nodeType":"YulFunctionCall","src":"7165:27:101"},"nativeSrc":"7165:27:101","nodeType":"YulExpressionStatement","src":"7165:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7060:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"7104:3:101","nodeType":"YulTypedName","src":"7104:3:101","type":""},{"name":"dst","nativeSrc":"7109:3:101","nodeType":"YulTypedName","src":"7109:3:101","type":""},{"name":"length","nativeSrc":"7114:6:101","nodeType":"YulTypedName","src":"7114:6:101","type":""}],"src":"7060:139:101"},{"body":{"nativeSrc":"7315:280:101","nodeType":"YulBlock","src":"7315:280:101","statements":[{"nativeSrc":"7325:53:101","nodeType":"YulVariableDeclaration","src":"7325:53:101","value":{"arguments":[{"name":"value","nativeSrc":"7372:5:101","nodeType":"YulIdentifier","src":"7372:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7339:32:101","nodeType":"YulIdentifier","src":"7339:32:101"},"nativeSrc":"7339:39:101","nodeType":"YulFunctionCall","src":"7339:39:101"},"variables":[{"name":"length","nativeSrc":"7329:6:101","nodeType":"YulTypedName","src":"7329:6:101","type":""}]},{"nativeSrc":"7387:96:101","nodeType":"YulAssignment","src":"7387:96:101","value":{"arguments":[{"name":"pos","nativeSrc":"7471:3:101","nodeType":"YulIdentifier","src":"7471:3:101"},{"name":"length","nativeSrc":"7476:6:101","nodeType":"YulIdentifier","src":"7476:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7394:76:101","nodeType":"YulIdentifier","src":"7394:76:101"},"nativeSrc":"7394:89:101","nodeType":"YulFunctionCall","src":"7394:89:101"},"variableNames":[{"name":"pos","nativeSrc":"7387:3:101","nodeType":"YulIdentifier","src":"7387:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7531:5:101","nodeType":"YulIdentifier","src":"7531:5:101"},{"kind":"number","nativeSrc":"7538:4:101","nodeType":"YulLiteral","src":"7538:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7527:3:101","nodeType":"YulIdentifier","src":"7527:3:101"},"nativeSrc":"7527:16:101","nodeType":"YulFunctionCall","src":"7527:16:101"},{"name":"pos","nativeSrc":"7545:3:101","nodeType":"YulIdentifier","src":"7545:3:101"},{"name":"length","nativeSrc":"7550:6:101","nodeType":"YulIdentifier","src":"7550:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7492:34:101","nodeType":"YulIdentifier","src":"7492:34:101"},"nativeSrc":"7492:65:101","nodeType":"YulFunctionCall","src":"7492:65:101"},"nativeSrc":"7492:65:101","nodeType":"YulExpressionStatement","src":"7492:65:101"},{"nativeSrc":"7566:23:101","nodeType":"YulAssignment","src":"7566:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"7577:3:101","nodeType":"YulIdentifier","src":"7577:3:101"},{"name":"length","nativeSrc":"7582:6:101","nodeType":"YulIdentifier","src":"7582:6:101"}],"functionName":{"name":"add","nativeSrc":"7573:3:101","nodeType":"YulIdentifier","src":"7573:3:101"},"nativeSrc":"7573:16:101","nodeType":"YulFunctionCall","src":"7573:16:101"},"variableNames":[{"name":"end","nativeSrc":"7566:3:101","nodeType":"YulIdentifier","src":"7566:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7205:390:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7296:5:101","nodeType":"YulTypedName","src":"7296:5:101","type":""},{"name":"pos","nativeSrc":"7303:3:101","nodeType":"YulTypedName","src":"7303:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7311:3:101","nodeType":"YulTypedName","src":"7311:3:101","type":""}],"src":"7205:390:101"},{"body":{"nativeSrc":"7737:139:101","nodeType":"YulBlock","src":"7737:139:101","statements":[{"nativeSrc":"7748:102:101","nodeType":"YulAssignment","src":"7748:102:101","value":{"arguments":[{"name":"value0","nativeSrc":"7837:6:101","nodeType":"YulIdentifier","src":"7837:6:101"},{"name":"pos","nativeSrc":"7846:3:101","nodeType":"YulIdentifier","src":"7846:3:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7755:81:101","nodeType":"YulIdentifier","src":"7755:81:101"},"nativeSrc":"7755:95:101","nodeType":"YulFunctionCall","src":"7755:95:101"},"variableNames":[{"name":"pos","nativeSrc":"7748:3:101","nodeType":"YulIdentifier","src":"7748:3:101"}]},{"nativeSrc":"7860:10:101","nodeType":"YulAssignment","src":"7860:10:101","value":{"name":"pos","nativeSrc":"7867:3:101","nodeType":"YulIdentifier","src":"7867:3:101"},"variableNames":[{"name":"end","nativeSrc":"7860:3:101","nodeType":"YulIdentifier","src":"7860:3:101"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7601:275:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7716:3:101","nodeType":"YulTypedName","src":"7716:3:101","type":""},{"name":"value0","nativeSrc":"7722:6:101","nodeType":"YulTypedName","src":"7722:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7733:3:101","nodeType":"YulTypedName","src":"7733:3:101","type":""}],"src":"7601:275:101"},{"body":{"nativeSrc":"7910:152:101","nodeType":"YulBlock","src":"7910:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7927:1:101","nodeType":"YulLiteral","src":"7927:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7930:77:101","nodeType":"YulLiteral","src":"7930:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7920:6:101","nodeType":"YulIdentifier","src":"7920:6:101"},"nativeSrc":"7920:88:101","nodeType":"YulFunctionCall","src":"7920:88:101"},"nativeSrc":"7920:88:101","nodeType":"YulExpressionStatement","src":"7920:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8024:1:101","nodeType":"YulLiteral","src":"8024:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"8027:4:101","nodeType":"YulLiteral","src":"8027:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8017:6:101","nodeType":"YulIdentifier","src":"8017:6:101"},"nativeSrc":"8017:15:101","nodeType":"YulFunctionCall","src":"8017:15:101"},"nativeSrc":"8017:15:101","nodeType":"YulExpressionStatement","src":"8017:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8048:1:101","nodeType":"YulLiteral","src":"8048:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"8051:4:101","nodeType":"YulLiteral","src":"8051:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8041:6:101","nodeType":"YulIdentifier","src":"8041:6:101"},"nativeSrc":"8041:15:101","nodeType":"YulFunctionCall","src":"8041:15:101"},"nativeSrc":"8041:15:101","nodeType":"YulExpressionStatement","src":"8041:15:101"}]},"name":"panic_error_0x11","nativeSrc":"7882:180:101","nodeType":"YulFunctionDefinition","src":"7882:180:101"},{"body":{"nativeSrc":"8113:149:101","nodeType":"YulBlock","src":"8113:149:101","statements":[{"nativeSrc":"8123:25:101","nodeType":"YulAssignment","src":"8123:25:101","value":{"arguments":[{"name":"x","nativeSrc":"8146:1:101","nodeType":"YulIdentifier","src":"8146:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8128:17:101","nodeType":"YulIdentifier","src":"8128:17:101"},"nativeSrc":"8128:20:101","nodeType":"YulFunctionCall","src":"8128:20:101"},"variableNames":[{"name":"x","nativeSrc":"8123:1:101","nodeType":"YulIdentifier","src":"8123:1:101"}]},{"nativeSrc":"8157:25:101","nodeType":"YulAssignment","src":"8157:25:101","value":{"arguments":[{"name":"y","nativeSrc":"8180:1:101","nodeType":"YulIdentifier","src":"8180:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8162:17:101","nodeType":"YulIdentifier","src":"8162:17:101"},"nativeSrc":"8162:20:101","nodeType":"YulFunctionCall","src":"8162:20:101"},"variableNames":[{"name":"y","nativeSrc":"8157:1:101","nodeType":"YulIdentifier","src":"8157:1:101"}]},{"nativeSrc":"8191:17:101","nodeType":"YulAssignment","src":"8191:17:101","value":{"arguments":[{"name":"x","nativeSrc":"8203:1:101","nodeType":"YulIdentifier","src":"8203:1:101"},{"name":"y","nativeSrc":"8206:1:101","nodeType":"YulIdentifier","src":"8206:1:101"}],"functionName":{"name":"sub","nativeSrc":"8199:3:101","nodeType":"YulIdentifier","src":"8199:3:101"},"nativeSrc":"8199:9:101","nodeType":"YulFunctionCall","src":"8199:9:101"},"variableNames":[{"name":"diff","nativeSrc":"8191:4:101","nodeType":"YulIdentifier","src":"8191:4:101"}]},{"body":{"nativeSrc":"8233:22:101","nodeType":"YulBlock","src":"8233:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8235:16:101","nodeType":"YulIdentifier","src":"8235:16:101"},"nativeSrc":"8235:18:101","nodeType":"YulFunctionCall","src":"8235:18:101"},"nativeSrc":"8235:18:101","nodeType":"YulExpressionStatement","src":"8235:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"8224:4:101","nodeType":"YulIdentifier","src":"8224:4:101"},{"name":"x","nativeSrc":"8230:1:101","nodeType":"YulIdentifier","src":"8230:1:101"}],"functionName":{"name":"gt","nativeSrc":"8221:2:101","nodeType":"YulIdentifier","src":"8221:2:101"},"nativeSrc":"8221:11:101","nodeType":"YulFunctionCall","src":"8221:11:101"},"nativeSrc":"8218:37:101","nodeType":"YulIf","src":"8218:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"8068:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8099:1:101","nodeType":"YulTypedName","src":"8099:1:101","type":""},{"name":"y","nativeSrc":"8102:1:101","nodeType":"YulTypedName","src":"8102:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"8108:4:101","nodeType":"YulTypedName","src":"8108:4:101","type":""}],"src":"8068:194:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint80(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffff)\n    }\n\n    function abi_encode_t_uint80_to_t_uint80_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint80(value))\n    }\n\n    function cleanup_t_int256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_int256(value))\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint80_to_t_uint80_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_int256_to_t_int256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint80_to_t_uint80_fromStack(value4,  add(headStart, 128))\n\n    }\n\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061004a575f3560e01c80636e91995a1461004e578063b78107ca14610077578063bfda5e711461008c578063f9172888146100b0575b5f80fd5b61006161005c366004610252565b6100e7565b60405161006e91906102cb565b60405180910390f35b61008a6100853660046102e0565b6100f0565b005b61009f61009a366004610252565b610114565b60405161006e959493929190610342565b6100da6100be36600461038e565b80516020818301810180515f8252928201919093012091525481565b60405161006e91906103c6565b60085b92915050565b805f836040516101009190610400565b908152604051908190036020019020555050565b5f805f805f8080886040516101299190610400565b908152604051908190036020019020545f610145600a42610426565b929a91995097509095505f945092505050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561019257610192610158565b6040525050565b5f6101a360405190565b90506101af828261016c565b919050565b5f67ffffffffffffffff8211156101cd576101cd610158565b601f19601f83011660200192915050565b82818337505f910152565b5f6101fb6101f6846101b4565b610199565b905082815260208101848484011115610215576102155f80fd5b6102208482856101de565b509392505050565b5f82601f83011261023a5761023a5f80fd5b813561024a8482602086016101e9565b949350505050565b5f8060408385031215610266576102665f80fd5b823567ffffffffffffffff81111561027f5761027f5f80fd5b61028b85828601610228565b925050602083013567ffffffffffffffff8111156102aa576102aa5f80fd5b6102b685828601610228565b9150509250929050565b60ff81165b82525050565b602081016100ea82846102c0565b80356100ea565b5f80604083850312156102f4576102f45f80fd5b823567ffffffffffffffff81111561030d5761030d5f80fd5b61031985828601610228565b92505060206102b6858286016102d9565b69ffffffffffffffffffff81166102c5565b806102c5565b60a08101610350828861032a565b61035d602083018761033c565b61036a604083018661033c565b610377606083018561033c565b610384608083018461032a565b9695505050505050565b5f602082840312156103a1576103a15f80fd5b813567ffffffffffffffff8111156103ba576103ba5f80fd5b61024a84828501610228565b602081016100ea828461033c565b8281835e505f910152565b5f6103e8825190565b6103f68185602086016103d4565b9290920192915050565b5f61040b82846103df565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156100ea576100ea61041256fea26469706673582212203839a23e6c8d5a98576a3a1e4b897507076ca62857f6b44bf8126f67ff22577f64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6E91995A EQ PUSH2 0x4E JUMPI DUP1 PUSH4 0xB78107CA EQ PUSH2 0x77 JUMPI DUP1 PUSH4 0xBFDA5E71 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0xF9172888 EQ PUSH2 0xB0 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x61 PUSH2 0x5C CALLDATASIZE PUSH1 0x4 PUSH2 0x252 JUMP JUMPDEST PUSH2 0xE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x2CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x85 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E0 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9F PUSH2 0x9A CALLDATASIZE PUSH1 0x4 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x342 JUMP JUMPDEST PUSH2 0xDA PUSH2 0xBE CALLDATASIZE PUSH1 0x4 PUSH2 0x38E JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP2 DUP4 ADD DUP2 ADD DUP1 MLOAD PUSH0 DUP3 MSTORE SWAP3 DUP3 ADD SWAP2 SWAP1 SWAP4 ADD KECCAK256 SWAP2 MSTORE SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x3C6 JUMP JUMPDEST PUSH1 0x8 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x100 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 DUP1 DUP9 PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH0 PUSH2 0x145 PUSH1 0xA TIMESTAMP PUSH2 0x426 JUMP JUMPDEST SWAP3 SWAP11 SWAP2 SWAP10 POP SWAP8 POP SWAP1 SWAP6 POP PUSH0 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x192 JUMPI PUSH2 0x192 PUSH2 0x158 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A3 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1AF DUP3 DUP3 PUSH2 0x16C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1CD JUMPI PUSH2 0x1CD PUSH2 0x158 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x1FB PUSH2 0x1F6 DUP5 PUSH2 0x1B4 JUMP JUMPDEST PUSH2 0x199 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x215 JUMPI PUSH2 0x215 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x220 DUP5 DUP3 DUP6 PUSH2 0x1DE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x23A JUMPI PUSH2 0x23A PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x24A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1E9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x266 JUMPI PUSH2 0x266 PUSH0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27F JUMPI PUSH2 0x27F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x28B DUP6 DUP3 DUP7 ADD PUSH2 0x228 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AA JUMPI PUSH2 0x2AA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x2B6 DUP6 DUP3 DUP7 ADD PUSH2 0x228 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEA DUP3 DUP5 PUSH2 0x2C0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEA JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F4 JUMPI PUSH2 0x2F4 PUSH0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x30D JUMPI PUSH2 0x30D PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x319 DUP6 DUP3 DUP7 ADD PUSH2 0x228 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B6 DUP6 DUP3 DUP7 ADD PUSH2 0x2D9 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x2C5 JUMP JUMPDEST DUP1 PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x350 DUP3 DUP9 PUSH2 0x32A JUMP JUMPDEST PUSH2 0x35D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x33C JUMP JUMPDEST PUSH2 0x36A PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x33C JUMP JUMPDEST PUSH2 0x377 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x33C JUMP JUMPDEST PUSH2 0x384 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x32A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A1 JUMPI PUSH2 0x3A1 PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BA JUMPI PUSH2 0x3BA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x24A DUP5 DUP3 DUP6 ADD PUSH2 0x228 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEA DUP3 DUP5 PUSH2 0x33C JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x3E8 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3F6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3D4 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B DUP3 DUP5 PUSH2 0x3DF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEA JUMPI PUSH2 0xEA PUSH2 0x412 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODESIZE CODECOPY LOG2 RETURNDATACOPY PUSH13 0x8D5A98576A3A1E4B897507076C 0xA6 0x28 JUMPI 0xF6 0xB4 0x4B 0xF8 SLT PUSH16 0x67FF22577F64736F6C63430008190033 ","sourceMap":"120:720:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;709:129;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;236:109;;;;;;:::i;:::-;;:::i;:::-;;351:352;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;184:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;709:129::-;830:1;709:129;;;;;:::o;236:109::-;333:5;313:11;325:4;313:17;;;;;;:::i;:::-;;;;;;;;;;;;;;:25;-1:-1:-1;;236:109:69:o;351:352::-;509:14;525:13;540:17;559;578:22;639:1;649:11;661:4;649:17;;;;;;:::i;:::-;;;;;;;;;;;;;;;669:1;672:20;690:2;672:15;:20;:::i;:::-;631:65;;;;-1:-1:-1;631:65:69;-1:-1:-1;631:65:69;;-1:-1:-1;694:1:69;;-1:-1:-1;351:352:69;-1:-1:-1;;;351:352:69:o;688:180:101:-;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:148::-;1708:6;1703:3;1698;1685:30;-1:-1:-1;1749:1:101;1731:16;;1724:27;1610:148::o;1764:425::-;1842:5;1867:66;1883:49;1925:6;1883:49;:::i;:::-;1867:66;:::i;:::-;1858:75;;1956:6;1949:5;1942:21;1994:4;1987:5;1983:16;2032:3;2023:6;2018:3;2014:16;2011:25;2008:112;;;2039:79;120:720:69;;;2039:79:101;2129:54;2176:6;2171:3;2166;2129:54;:::i;:::-;1848:341;1764:425;;;;;:::o;2209:340::-;2265:5;2314:3;2307:4;2299:6;2295:17;2291:27;2281:122;;2322:79;120:720:69;;;2322:79:101;2439:6;2426:20;2464:79;2539:3;2531:6;2524:4;2516:6;2512:17;2464:79;:::i;:::-;2455:88;2209:340;-1:-1:-1;;;;2209:340:101:o;2555:834::-;2643:6;2651;2700:2;2688:9;2679:7;2675:23;2671:32;2668:119;;;2706:79;120:720:69;;;2706:79:101;2826:31;;2884:18;2873:30;;2870:117;;;2906:79;120:720:69;;;2906:79:101;3011:63;3066:7;3057:6;3046:9;3042:22;3011:63;:::i;:::-;3001:73;;2797:287;3151:2;3140:9;3136:18;3123:32;3182:18;3174:6;3171:30;3168:117;;;3204:79;120:720:69;;;3204:79:101;3309:63;3364:7;3355:6;3344:9;3340:22;3309:63;:::i;:::-;3299:73;;3094:288;2555:834;;;;;:::o;3487:112::-;3470:4;3459:16;;3570:22;3565:3;3558:35;3487:112;;:::o;3605:214::-;3732:2;3717:18;;3745:67;3721:9;3785:6;3745:67;:::i;4036:139::-;4107:20;;4136:33;3908:122;4181:654;4259:6;4267;4316:2;4304:9;4295:7;4291:23;4287:32;4284:119;;;4322:79;120:720:69;;;4322:79:101;4442:31;;4500:18;4489:30;;4486:117;;;4522:79;120:720:69;;;4522:79:101;4627:63;4682:7;4673:6;4662:9;4658:22;4627:63;:::i;:::-;4617:73;;4413:287;4739:2;4765:53;4810:7;4801:6;4790:9;4786:22;4765:53;:::i;4952:115::-;4917:22;4906:34;;5037:23;4841:105;5155:115;5257:5;5240:23;3825:77;5400:652;5637:3;5622:19;;5651:69;5626:9;5693:6;5651:69;:::i;:::-;5730:70;5796:2;5785:9;5781:18;5772:6;5730:70;:::i;:::-;5810:72;5878:2;5867:9;5863:18;5854:6;5810:72;:::i;:::-;5892;5960:2;5949:9;5945:18;5936:6;5892:72;:::i;:::-;5974:71;6040:3;6029:9;6025:19;6016:6;5974:71;:::i;:::-;5400:652;;;;;;;;:::o;6058:509::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;120:720:69;;;6182:79:101;6302:31;;6360:18;6349:30;;6346:117;;;6382:79;120:720:69;;;6382:79:101;6487:63;6542:7;6533:6;6522:9;6518:22;6487:63;:::i;6573:222::-;6704:2;6689:18;;6717:71;6693:9;6761:6;6717:71;:::i;7060:139::-;7149:6;7144:3;7139;7133:23;-1:-1:-1;7190:1:101;7172:16;;7165:27;7060:139::o;7205:390::-;7311:3;7339:39;7372:5;6881:12;;6801:99;7339:39;7492:65;7550:6;7545:3;7538:4;7531:5;7527:16;7492:65;:::i;:::-;7573:16;;;;;7205:390;-1:-1:-1;;7205:390:101:o;7601:275::-;7733:3;7755:95;7846:3;7837:6;7755:95;:::i;:::-;7748:102;7601:275;-1:-1:-1;;;7601:275:101:o;7882:180::-;-1:-1:-1;;;7927:1:101;7920:88;8027:4;8024:1;8017:15;8051:4;8048:1;8041:15;8068:194;8199:9;;;8221:11;;;8218:37;;;8235:18;;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"227000","executionCost":"267","totalCost":"227267"},"external":{"assetPrices(string)":"infinite","decimalsByName(string,string)":"infinite","latestRoundDataByName(string,string)":"infinite","setAssetPrice(string,uint256)":"infinite"}},"methodIdentifiers":{"assetPrices(string)":"f9172888","decimalsByName(string,string)":"6e91995a","latestRoundDataByName(string,string)":"bfda5e71","setAssetPrice(string,uint256)":"b78107ca"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"assetPrices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"base\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"quote\",\"type\":\"string\"}],\"name\":\"decimalsByName\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"base\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"quote\",\"type\":\"string\"}],\"name\":\"latestRoundDataByName\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"base\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"setAssetPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/mocks/MockBinanceFeedRegistry.sol\":\"MockBinanceFeedRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/FeedRegistryInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface FeedRegistryInterface {\\n    function latestRoundDataByName(\\n        string memory base,\\n        string memory quote\\n    )\\n        external\\n        view\\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);\\n\\n    function decimalsByName(string memory base, string memory quote) external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xf57101e676f7d93b0714f5774a3111a80ce9df0bbaed6d5e78668293c11b04e8\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/mocks/MockBinanceFeedRegistry.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../../interfaces/FeedRegistryInterface.sol\\\";\\n\\ncontract MockBinanceFeedRegistry is FeedRegistryInterface {\\n    mapping(string => uint256) public assetPrices;\\n\\n    function setAssetPrice(string memory base, uint256 price) external {\\n        assetPrices[base] = price;\\n    }\\n\\n    function latestRoundDataByName(\\n        string memory base,\\n        string memory quote\\n    )\\n        external\\n        view\\n        override\\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)\\n    {\\n        quote;\\n        return (0, int256(assetPrices[base]), 0, block.timestamp - 10, 0);\\n    }\\n\\n    function decimalsByName(string memory base, string memory quote) external view override returns (uint8) {\\n        return 8;\\n    }\\n}\\n\",\"keccak256\":\"0x8062b9023d8acb1840fd75523b0687be2dde7e2481edc30e1bb5610fb4fe349b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":7184,"contract":"contracts/oracles/mocks/MockBinanceFeedRegistry.sol:MockBinanceFeedRegistry","label":"assetPrices","offset":0,"slot":"0","type":"t_mapping(t_string_memory_ptr,t_uint256)"}],"types":{"t_mapping(t_string_memory_ptr,t_uint256)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/oracles/mocks/MockBinanceOracle.sol":{"MockBinanceOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"","type":"address"}],"name":"assetPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_7266":{"entryPoint":null,"id":7266,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b506104de8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610079575f3560e01c8063715018a611610058578063715018a6146101055780638129fc1c1461010d5780638da5cb5b14610115578063f2fde38b1461012e575f80fd5b8062e4768b1461007d57806341976e09146100a85780635e9a523c146100e6575b5f80fd5b6100a661008b366004610311565b6001600160a01b039091165f90815260656020526040902055565b005b6100d06100b636600461034b565b6001600160a01b03165f9081526065602052604090205490565b6040516100dd9190610379565b60405180910390f35b6100d06100f436600461034b565b60656020525f908152604090205481565b6100a6610141565b6100a6610154565b6033546001600160a01b03166040516100dd9190610390565b6100a661013c36600461034b565b61021e565b610149610255565b6101525f61027f565b565b5f54610100900460ff161580801561017257505f54600160ff909116105b8061018b5750303b15801561018b57505f5460ff166001145b6101b05760405162461bcd60e51b81526004016101a7906103eb565b60405180910390fd5b5f805460ff1916600117905580156101d1575f805461ff0019166101001790555b801561021b575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906102129060019061040e565b60405180910390a15b50565b610226610255565b6001600160a01b03811661024c5760405162461bcd60e51b81526004016101a79061045e565b61021b8161027f565b6033546001600160a01b031633146101525760405162461bcd60e51b81526004016101a79061046e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160a01b0382165b92915050565b6102eb816102d0565b811461021b575f80fd5b80356102dc816102e2565b806102eb565b80356102dc81610300565b5f8060408385031215610325576103255f80fd5b5f61033085856102f5565b925050602061034185828601610306565b9150509250929050565b5f6020828403121561035e5761035e5f80fd5b5f61036984846102f5565b949350505050565b805b82525050565b602081016102dc8284610371565b610373816102d0565b602081016102dc8284610387565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291505b5060400190565b602080825281016102dc8161039e565b5f60ff82166102dc565b610373816103fb565b602081016102dc8284610405565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015291506103e4565b602080825281016102dc8161041c565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040830152606082016102dc56fea2646970667358221220fd981754b89ca37180d4c117043e158b072a8a20cc0511a6f977e9e0e2f164e864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DE DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x12E JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0xE4768B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x5E9A523C EQ PUSH2 0xE6 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA6 PUSH2 0x8B CALLDATASIZE PUSH1 0x4 PUSH2 0x311 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD0 PUSH2 0xB6 CALLDATASIZE PUSH1 0x4 PUSH2 0x34B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x379 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x34B JUMP JUMPDEST PUSH1 0x65 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x141 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x154 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x390 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x34B JUMP JUMPDEST PUSH2 0x21E JUMP JUMPDEST PUSH2 0x149 PUSH2 0x255 JUMP JUMPDEST PUSH2 0x152 PUSH0 PUSH2 0x27F JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x172 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x18B JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x3EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST DUP1 ISZERO PUSH2 0x21B JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x212 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x226 PUSH2 0x255 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x24C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x21B DUP2 PUSH2 0x27F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x152 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2EB DUP2 PUSH2 0x2D0 JUMP JUMPDEST DUP2 EQ PUSH2 0x21B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DC DUP2 PUSH2 0x2E2 JUMP JUMPDEST DUP1 PUSH2 0x2EB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DC DUP2 PUSH2 0x300 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x325 JUMPI PUSH2 0x325 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x330 DUP6 DUP6 PUSH2 0x2F5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x341 DUP6 DUP3 DUP7 ADD PUSH2 0x306 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E JUMPI PUSH2 0x35E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x369 DUP5 DUP5 PUSH2 0x2F5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2DC DUP3 DUP5 PUSH2 0x371 JUMP JUMPDEST PUSH2 0x373 DUP2 PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2DC DUP3 DUP5 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2DC DUP2 PUSH2 0x39E JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x2DC JUMP JUMPDEST PUSH2 0x373 DUP2 PUSH2 0x3FB JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2DC DUP3 DUP5 PUSH2 0x405 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3E4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2DC DUP2 PUSH2 0x41C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x2DC JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT SWAP9 OR SLOAD 0xB8 SWAP13 LOG3 PUSH18 0x80D4C117043E158B072A8A20CC0511A6F977 0xE9 0xE0 0xE2 CALL PUSH5 0xE864736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"243:409:70:-:0;;;368:16;;;;;;;;;;243:409;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_279":{"entryPoint":597,"id":279,"parameterSlots":0,"returnSlots":0},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_336":{"entryPoint":639,"id":336,"parameterSlots":1,"returnSlots":0},"@assetPrices_7262":{"entryPoint":null,"id":7262,"parameterSlots":0,"returnSlots":0},"@getPrice_7298":{"entryPoint":null,"id":7298,"parameterSlots":1,"returnSlots":1},"@initialize_7272":{"entryPoint":340,"id":7272,"parameterSlots":0,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_293":{"entryPoint":321,"id":293,"parameterSlots":0,"returnSlots":0},"@setPrice_7286":{"entryPoint":null,"id":7286,"parameterSlots":2,"returnSlots":0},"@transferOwnership_316":{"entryPoint":542,"id":316,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":757,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":774,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":843,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":785,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":903,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":1029,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":1052,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":926,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":881,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":912,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":1038,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1118,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1003,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1134,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":889,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":720,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":1019,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":738,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":768,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6735:101","nodeType":"YulBlock","src":"0:6735:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"886:32:101","nodeType":"YulBlock","src":"886:32:101","statements":[{"nativeSrc":"896:16:101","nodeType":"YulAssignment","src":"896:16:101","value":{"name":"value","nativeSrc":"907:5:101","nodeType":"YulIdentifier","src":"907:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:101","nodeType":"YulIdentifier","src":"896:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:101","nodeType":"YulTypedName","src":"868:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:101","nodeType":"YulTypedName","src":"878:7:101","type":""}],"src":"841:77:101"},{"body":{"nativeSrc":"967:79:101","nodeType":"YulBlock","src":"967:79:101","statements":[{"body":{"nativeSrc":"1024:16:101","nodeType":"YulBlock","src":"1024:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:101","nodeType":"YulLiteral","src":"1033:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:101","nodeType":"YulLiteral","src":"1036:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:101","nodeType":"YulIdentifier","src":"1026:6:101"},"nativeSrc":"1026:12:101","nodeType":"YulFunctionCall","src":"1026:12:101"},"nativeSrc":"1026:12:101","nodeType":"YulExpressionStatement","src":"1026:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:101","nodeType":"YulIdentifier","src":"990:5:101"},{"arguments":[{"name":"value","nativeSrc":"1015:5:101","nodeType":"YulIdentifier","src":"1015:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:101","nodeType":"YulIdentifier","src":"997:17:101"},"nativeSrc":"997:24:101","nodeType":"YulFunctionCall","src":"997:24:101"}],"functionName":{"name":"eq","nativeSrc":"987:2:101","nodeType":"YulIdentifier","src":"987:2:101"},"nativeSrc":"987:35:101","nodeType":"YulFunctionCall","src":"987:35:101"}],"functionName":{"name":"iszero","nativeSrc":"980:6:101","nodeType":"YulIdentifier","src":"980:6:101"},"nativeSrc":"980:43:101","nodeType":"YulFunctionCall","src":"980:43:101"},"nativeSrc":"977:63:101","nodeType":"YulIf","src":"977:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:101","nodeType":"YulTypedName","src":"960:5:101","type":""}],"src":"924:122:101"},{"body":{"nativeSrc":"1104:87:101","nodeType":"YulBlock","src":"1104:87:101","statements":[{"nativeSrc":"1114:29:101","nodeType":"YulAssignment","src":"1114:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:101","nodeType":"YulIdentifier","src":"1123:12:101"},"nativeSrc":"1123:20:101","nodeType":"YulFunctionCall","src":"1123:20:101"},"variableNames":[{"name":"value","nativeSrc":"1114:5:101","nodeType":"YulIdentifier","src":"1114:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:101","nodeType":"YulIdentifier","src":"1179:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:101","nodeType":"YulIdentifier","src":"1152:26:101"},"nativeSrc":"1152:33:101","nodeType":"YulFunctionCall","src":"1152:33:101"},"nativeSrc":"1152:33:101","nodeType":"YulExpressionStatement","src":"1152:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:101","nodeType":"YulTypedName","src":"1082:6:101","type":""},{"name":"end","nativeSrc":"1090:3:101","nodeType":"YulTypedName","src":"1090:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:101","nodeType":"YulTypedName","src":"1098:5:101","type":""}],"src":"1052:139:101"},{"body":{"nativeSrc":"1280:391:101","nodeType":"YulBlock","src":"1280:391:101","statements":[{"body":{"nativeSrc":"1326:83:101","nodeType":"YulBlock","src":"1326:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1328:77:101","nodeType":"YulIdentifier","src":"1328:77:101"},"nativeSrc":"1328:79:101","nodeType":"YulFunctionCall","src":"1328:79:101"},"nativeSrc":"1328:79:101","nodeType":"YulExpressionStatement","src":"1328:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1301:7:101","nodeType":"YulIdentifier","src":"1301:7:101"},{"name":"headStart","nativeSrc":"1310:9:101","nodeType":"YulIdentifier","src":"1310:9:101"}],"functionName":{"name":"sub","nativeSrc":"1297:3:101","nodeType":"YulIdentifier","src":"1297:3:101"},"nativeSrc":"1297:23:101","nodeType":"YulFunctionCall","src":"1297:23:101"},{"kind":"number","nativeSrc":"1322:2:101","nodeType":"YulLiteral","src":"1322:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1293:3:101","nodeType":"YulIdentifier","src":"1293:3:101"},"nativeSrc":"1293:32:101","nodeType":"YulFunctionCall","src":"1293:32:101"},"nativeSrc":"1290:119:101","nodeType":"YulIf","src":"1290:119:101"},{"nativeSrc":"1419:117:101","nodeType":"YulBlock","src":"1419:117:101","statements":[{"nativeSrc":"1434:15:101","nodeType":"YulVariableDeclaration","src":"1434:15:101","value":{"kind":"number","nativeSrc":"1448:1:101","nodeType":"YulLiteral","src":"1448:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1438:6:101","nodeType":"YulTypedName","src":"1438:6:101","type":""}]},{"nativeSrc":"1463:63:101","nodeType":"YulAssignment","src":"1463:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1498:9:101","nodeType":"YulIdentifier","src":"1498:9:101"},{"name":"offset","nativeSrc":"1509:6:101","nodeType":"YulIdentifier","src":"1509:6:101"}],"functionName":{"name":"add","nativeSrc":"1494:3:101","nodeType":"YulIdentifier","src":"1494:3:101"},"nativeSrc":"1494:22:101","nodeType":"YulFunctionCall","src":"1494:22:101"},{"name":"dataEnd","nativeSrc":"1518:7:101","nodeType":"YulIdentifier","src":"1518:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1473:20:101","nodeType":"YulIdentifier","src":"1473:20:101"},"nativeSrc":"1473:53:101","nodeType":"YulFunctionCall","src":"1473:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1463:6:101","nodeType":"YulIdentifier","src":"1463:6:101"}]}]},{"nativeSrc":"1546:118:101","nodeType":"YulBlock","src":"1546:118:101","statements":[{"nativeSrc":"1561:16:101","nodeType":"YulVariableDeclaration","src":"1561:16:101","value":{"kind":"number","nativeSrc":"1575:2:101","nodeType":"YulLiteral","src":"1575:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1565:6:101","nodeType":"YulTypedName","src":"1565:6:101","type":""}]},{"nativeSrc":"1591:63:101","nodeType":"YulAssignment","src":"1591:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:101","nodeType":"YulIdentifier","src":"1626:9:101"},{"name":"offset","nativeSrc":"1637:6:101","nodeType":"YulIdentifier","src":"1637:6:101"}],"functionName":{"name":"add","nativeSrc":"1622:3:101","nodeType":"YulIdentifier","src":"1622:3:101"},"nativeSrc":"1622:22:101","nodeType":"YulFunctionCall","src":"1622:22:101"},{"name":"dataEnd","nativeSrc":"1646:7:101","nodeType":"YulIdentifier","src":"1646:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1601:20:101","nodeType":"YulIdentifier","src":"1601:20:101"},"nativeSrc":"1601:53:101","nodeType":"YulFunctionCall","src":"1601:53:101"},"variableNames":[{"name":"value1","nativeSrc":"1591:6:101","nodeType":"YulIdentifier","src":"1591:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1197:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1242:9:101","nodeType":"YulTypedName","src":"1242:9:101","type":""},{"name":"dataEnd","nativeSrc":"1253:7:101","nodeType":"YulTypedName","src":"1253:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1265:6:101","nodeType":"YulTypedName","src":"1265:6:101","type":""},{"name":"value1","nativeSrc":"1273:6:101","nodeType":"YulTypedName","src":"1273:6:101","type":""}],"src":"1197:474:101"},{"body":{"nativeSrc":"1743:263:101","nodeType":"YulBlock","src":"1743:263:101","statements":[{"body":{"nativeSrc":"1789:83:101","nodeType":"YulBlock","src":"1789:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1791:77:101","nodeType":"YulIdentifier","src":"1791:77:101"},"nativeSrc":"1791:79:101","nodeType":"YulFunctionCall","src":"1791:79:101"},"nativeSrc":"1791:79:101","nodeType":"YulExpressionStatement","src":"1791:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1764:7:101","nodeType":"YulIdentifier","src":"1764:7:101"},{"name":"headStart","nativeSrc":"1773:9:101","nodeType":"YulIdentifier","src":"1773:9:101"}],"functionName":{"name":"sub","nativeSrc":"1760:3:101","nodeType":"YulIdentifier","src":"1760:3:101"},"nativeSrc":"1760:23:101","nodeType":"YulFunctionCall","src":"1760:23:101"},{"kind":"number","nativeSrc":"1785:2:101","nodeType":"YulLiteral","src":"1785:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1756:3:101","nodeType":"YulIdentifier","src":"1756:3:101"},"nativeSrc":"1756:32:101","nodeType":"YulFunctionCall","src":"1756:32:101"},"nativeSrc":"1753:119:101","nodeType":"YulIf","src":"1753:119:101"},{"nativeSrc":"1882:117:101","nodeType":"YulBlock","src":"1882:117:101","statements":[{"nativeSrc":"1897:15:101","nodeType":"YulVariableDeclaration","src":"1897:15:101","value":{"kind":"number","nativeSrc":"1911:1:101","nodeType":"YulLiteral","src":"1911:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1901:6:101","nodeType":"YulTypedName","src":"1901:6:101","type":""}]},{"nativeSrc":"1926:63:101","nodeType":"YulAssignment","src":"1926:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1961:9:101","nodeType":"YulIdentifier","src":"1961:9:101"},{"name":"offset","nativeSrc":"1972:6:101","nodeType":"YulIdentifier","src":"1972:6:101"}],"functionName":{"name":"add","nativeSrc":"1957:3:101","nodeType":"YulIdentifier","src":"1957:3:101"},"nativeSrc":"1957:22:101","nodeType":"YulFunctionCall","src":"1957:22:101"},{"name":"dataEnd","nativeSrc":"1981:7:101","nodeType":"YulIdentifier","src":"1981:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1936:20:101","nodeType":"YulIdentifier","src":"1936:20:101"},"nativeSrc":"1936:53:101","nodeType":"YulFunctionCall","src":"1936:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1926:6:101","nodeType":"YulIdentifier","src":"1926:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1677:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1713:9:101","nodeType":"YulTypedName","src":"1713:9:101","type":""},{"name":"dataEnd","nativeSrc":"1724:7:101","nodeType":"YulTypedName","src":"1724:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1736:6:101","nodeType":"YulTypedName","src":"1736:6:101","type":""}],"src":"1677:329:101"},{"body":{"nativeSrc":"2077:53:101","nodeType":"YulBlock","src":"2077:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2094:3:101","nodeType":"YulIdentifier","src":"2094:3:101"},{"arguments":[{"name":"value","nativeSrc":"2117:5:101","nodeType":"YulIdentifier","src":"2117:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2099:17:101","nodeType":"YulIdentifier","src":"2099:17:101"},"nativeSrc":"2099:24:101","nodeType":"YulFunctionCall","src":"2099:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2087:6:101","nodeType":"YulIdentifier","src":"2087:6:101"},"nativeSrc":"2087:37:101","nodeType":"YulFunctionCall","src":"2087:37:101"},"nativeSrc":"2087:37:101","nodeType":"YulExpressionStatement","src":"2087:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2012:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2065:5:101","nodeType":"YulTypedName","src":"2065:5:101","type":""},{"name":"pos","nativeSrc":"2072:3:101","nodeType":"YulTypedName","src":"2072:3:101","type":""}],"src":"2012:118:101"},{"body":{"nativeSrc":"2234:124:101","nodeType":"YulBlock","src":"2234:124:101","statements":[{"nativeSrc":"2244:26:101","nodeType":"YulAssignment","src":"2244:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2256:9:101","nodeType":"YulIdentifier","src":"2256:9:101"},{"kind":"number","nativeSrc":"2267:2:101","nodeType":"YulLiteral","src":"2267:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2252:3:101","nodeType":"YulIdentifier","src":"2252:3:101"},"nativeSrc":"2252:18:101","nodeType":"YulFunctionCall","src":"2252:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2244:4:101","nodeType":"YulIdentifier","src":"2244:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2324:6:101","nodeType":"YulIdentifier","src":"2324:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2337:9:101","nodeType":"YulIdentifier","src":"2337:9:101"},{"kind":"number","nativeSrc":"2348:1:101","nodeType":"YulLiteral","src":"2348:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2333:3:101","nodeType":"YulIdentifier","src":"2333:3:101"},"nativeSrc":"2333:17:101","nodeType":"YulFunctionCall","src":"2333:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2280:43:101","nodeType":"YulIdentifier","src":"2280:43:101"},"nativeSrc":"2280:71:101","nodeType":"YulFunctionCall","src":"2280:71:101"},"nativeSrc":"2280:71:101","nodeType":"YulExpressionStatement","src":"2280:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2136:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2206:9:101","nodeType":"YulTypedName","src":"2206:9:101","type":""},{"name":"value0","nativeSrc":"2218:6:101","nodeType":"YulTypedName","src":"2218:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2229:4:101","nodeType":"YulTypedName","src":"2229:4:101","type":""}],"src":"2136:222:101"},{"body":{"nativeSrc":"2429:53:101","nodeType":"YulBlock","src":"2429:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2446:3:101","nodeType":"YulIdentifier","src":"2446:3:101"},{"arguments":[{"name":"value","nativeSrc":"2469:5:101","nodeType":"YulIdentifier","src":"2469:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2451:17:101","nodeType":"YulIdentifier","src":"2451:17:101"},"nativeSrc":"2451:24:101","nodeType":"YulFunctionCall","src":"2451:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"},"nativeSrc":"2439:37:101","nodeType":"YulFunctionCall","src":"2439:37:101"},"nativeSrc":"2439:37:101","nodeType":"YulExpressionStatement","src":"2439:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2364:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2417:5:101","nodeType":"YulTypedName","src":"2417:5:101","type":""},{"name":"pos","nativeSrc":"2424:3:101","nodeType":"YulTypedName","src":"2424:3:101","type":""}],"src":"2364:118:101"},{"body":{"nativeSrc":"2586:124:101","nodeType":"YulBlock","src":"2586:124:101","statements":[{"nativeSrc":"2596:26:101","nodeType":"YulAssignment","src":"2596:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2608:9:101","nodeType":"YulIdentifier","src":"2608:9:101"},{"kind":"number","nativeSrc":"2619:2:101","nodeType":"YulLiteral","src":"2619:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2604:3:101","nodeType":"YulIdentifier","src":"2604:3:101"},"nativeSrc":"2604:18:101","nodeType":"YulFunctionCall","src":"2604:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2596:4:101","nodeType":"YulIdentifier","src":"2596:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2676:6:101","nodeType":"YulIdentifier","src":"2676:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2689:9:101","nodeType":"YulIdentifier","src":"2689:9:101"},{"kind":"number","nativeSrc":"2700:1:101","nodeType":"YulLiteral","src":"2700:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2685:3:101","nodeType":"YulIdentifier","src":"2685:3:101"},"nativeSrc":"2685:17:101","nodeType":"YulFunctionCall","src":"2685:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2632:43:101","nodeType":"YulIdentifier","src":"2632:43:101"},"nativeSrc":"2632:71:101","nodeType":"YulFunctionCall","src":"2632:71:101"},"nativeSrc":"2632:71:101","nodeType":"YulExpressionStatement","src":"2632:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2488:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2558:9:101","nodeType":"YulTypedName","src":"2558:9:101","type":""},{"name":"value0","nativeSrc":"2570:6:101","nodeType":"YulTypedName","src":"2570:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2581:4:101","nodeType":"YulTypedName","src":"2581:4:101","type":""}],"src":"2488:222:101"},{"body":{"nativeSrc":"2812:73:101","nodeType":"YulBlock","src":"2812:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2829:3:101","nodeType":"YulIdentifier","src":"2829:3:101"},{"name":"length","nativeSrc":"2834:6:101","nodeType":"YulIdentifier","src":"2834:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2822:6:101","nodeType":"YulIdentifier","src":"2822:6:101"},"nativeSrc":"2822:19:101","nodeType":"YulFunctionCall","src":"2822:19:101"},"nativeSrc":"2822:19:101","nodeType":"YulExpressionStatement","src":"2822:19:101"},{"nativeSrc":"2850:29:101","nodeType":"YulAssignment","src":"2850:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"2869:3:101","nodeType":"YulIdentifier","src":"2869:3:101"},{"kind":"number","nativeSrc":"2874:4:101","nodeType":"YulLiteral","src":"2874:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2865:3:101","nodeType":"YulIdentifier","src":"2865:3:101"},"nativeSrc":"2865:14:101","nodeType":"YulFunctionCall","src":"2865:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"2850:11:101","nodeType":"YulIdentifier","src":"2850:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2716:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2784:3:101","nodeType":"YulTypedName","src":"2784:3:101","type":""},{"name":"length","nativeSrc":"2789:6:101","nodeType":"YulTypedName","src":"2789:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"2800:11:101","nodeType":"YulTypedName","src":"2800:11:101","type":""}],"src":"2716:169:101"},{"body":{"nativeSrc":"2997:127:101","nodeType":"YulBlock","src":"2997:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3019:6:101","nodeType":"YulIdentifier","src":"3019:6:101"},{"kind":"number","nativeSrc":"3027:1:101","nodeType":"YulLiteral","src":"3027:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3015:3:101","nodeType":"YulIdentifier","src":"3015:3:101"},"nativeSrc":"3015:14:101","nodeType":"YulFunctionCall","src":"3015:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"3031:34:101","nodeType":"YulLiteral","src":"3031:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"3008:6:101","nodeType":"YulIdentifier","src":"3008:6:101"},"nativeSrc":"3008:58:101","nodeType":"YulFunctionCall","src":"3008:58:101"},"nativeSrc":"3008:58:101","nodeType":"YulExpressionStatement","src":"3008:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3087:6:101","nodeType":"YulIdentifier","src":"3087:6:101"},{"kind":"number","nativeSrc":"3095:2:101","nodeType":"YulLiteral","src":"3095:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3083:3:101","nodeType":"YulIdentifier","src":"3083:3:101"},"nativeSrc":"3083:15:101","nodeType":"YulFunctionCall","src":"3083:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"3100:16:101","nodeType":"YulLiteral","src":"3100:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"3076:6:101","nodeType":"YulIdentifier","src":"3076:6:101"},"nativeSrc":"3076:41:101","nodeType":"YulFunctionCall","src":"3076:41:101"},"nativeSrc":"3076:41:101","nodeType":"YulExpressionStatement","src":"3076:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"2891:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2989:6:101","nodeType":"YulTypedName","src":"2989:6:101","type":""}],"src":"2891:233:101"},{"body":{"nativeSrc":"3276:220:101","nodeType":"YulBlock","src":"3276:220:101","statements":[{"nativeSrc":"3286:74:101","nodeType":"YulAssignment","src":"3286:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"3352:3:101","nodeType":"YulIdentifier","src":"3352:3:101"},{"kind":"number","nativeSrc":"3357:2:101","nodeType":"YulLiteral","src":"3357:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3293:58:101","nodeType":"YulIdentifier","src":"3293:58:101"},"nativeSrc":"3293:67:101","nodeType":"YulFunctionCall","src":"3293:67:101"},"variableNames":[{"name":"pos","nativeSrc":"3286:3:101","nodeType":"YulIdentifier","src":"3286:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3458:3:101","nodeType":"YulIdentifier","src":"3458:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"3369:88:101","nodeType":"YulIdentifier","src":"3369:88:101"},"nativeSrc":"3369:93:101","nodeType":"YulFunctionCall","src":"3369:93:101"},"nativeSrc":"3369:93:101","nodeType":"YulExpressionStatement","src":"3369:93:101"},{"nativeSrc":"3471:19:101","nodeType":"YulAssignment","src":"3471:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"3482:3:101","nodeType":"YulIdentifier","src":"3482:3:101"},{"kind":"number","nativeSrc":"3487:2:101","nodeType":"YulLiteral","src":"3487:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3478:3:101","nodeType":"YulIdentifier","src":"3478:3:101"},"nativeSrc":"3478:12:101","nodeType":"YulFunctionCall","src":"3478:12:101"},"variableNames":[{"name":"end","nativeSrc":"3471:3:101","nodeType":"YulIdentifier","src":"3471:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"3130:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3264:3:101","nodeType":"YulTypedName","src":"3264:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3272:3:101","nodeType":"YulTypedName","src":"3272:3:101","type":""}],"src":"3130:366:101"},{"body":{"nativeSrc":"3673:248:101","nodeType":"YulBlock","src":"3673:248:101","statements":[{"nativeSrc":"3683:26:101","nodeType":"YulAssignment","src":"3683:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3695:9:101","nodeType":"YulIdentifier","src":"3695:9:101"},{"kind":"number","nativeSrc":"3706:2:101","nodeType":"YulLiteral","src":"3706:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3691:3:101","nodeType":"YulIdentifier","src":"3691:3:101"},"nativeSrc":"3691:18:101","nodeType":"YulFunctionCall","src":"3691:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3683:4:101","nodeType":"YulIdentifier","src":"3683:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3730:9:101","nodeType":"YulIdentifier","src":"3730:9:101"},{"kind":"number","nativeSrc":"3741:1:101","nodeType":"YulLiteral","src":"3741:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3726:3:101","nodeType":"YulIdentifier","src":"3726:3:101"},"nativeSrc":"3726:17:101","nodeType":"YulFunctionCall","src":"3726:17:101"},{"arguments":[{"name":"tail","nativeSrc":"3749:4:101","nodeType":"YulIdentifier","src":"3749:4:101"},{"name":"headStart","nativeSrc":"3755:9:101","nodeType":"YulIdentifier","src":"3755:9:101"}],"functionName":{"name":"sub","nativeSrc":"3745:3:101","nodeType":"YulIdentifier","src":"3745:3:101"},"nativeSrc":"3745:20:101","nodeType":"YulFunctionCall","src":"3745:20:101"}],"functionName":{"name":"mstore","nativeSrc":"3719:6:101","nodeType":"YulIdentifier","src":"3719:6:101"},"nativeSrc":"3719:47:101","nodeType":"YulFunctionCall","src":"3719:47:101"},"nativeSrc":"3719:47:101","nodeType":"YulExpressionStatement","src":"3719:47:101"},{"nativeSrc":"3775:139:101","nodeType":"YulAssignment","src":"3775:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"3909:4:101","nodeType":"YulIdentifier","src":"3909:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"3783:124:101","nodeType":"YulIdentifier","src":"3783:124:101"},"nativeSrc":"3783:131:101","nodeType":"YulFunctionCall","src":"3783:131:101"},"variableNames":[{"name":"tail","nativeSrc":"3775:4:101","nodeType":"YulIdentifier","src":"3775:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3502:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3653:9:101","nodeType":"YulTypedName","src":"3653:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3668:4:101","nodeType":"YulTypedName","src":"3668:4:101","type":""}],"src":"3502:419:101"},{"body":{"nativeSrc":"3980:32:101","nodeType":"YulBlock","src":"3980:32:101","statements":[{"nativeSrc":"3990:16:101","nodeType":"YulAssignment","src":"3990:16:101","value":{"name":"value","nativeSrc":"4001:5:101","nodeType":"YulIdentifier","src":"4001:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3990:7:101","nodeType":"YulIdentifier","src":"3990:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"3927:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3962:5:101","nodeType":"YulTypedName","src":"3962:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3972:7:101","nodeType":"YulTypedName","src":"3972:7:101","type":""}],"src":"3927:85:101"},{"body":{"nativeSrc":"4061:43:101","nodeType":"YulBlock","src":"4061:43:101","statements":[{"nativeSrc":"4071:27:101","nodeType":"YulAssignment","src":"4071:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4086:5:101","nodeType":"YulIdentifier","src":"4086:5:101"},{"kind":"number","nativeSrc":"4093:4:101","nodeType":"YulLiteral","src":"4093:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4082:3:101","nodeType":"YulIdentifier","src":"4082:3:101"},"nativeSrc":"4082:16:101","nodeType":"YulFunctionCall","src":"4082:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4071:7:101","nodeType":"YulIdentifier","src":"4071:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4018:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4043:5:101","nodeType":"YulTypedName","src":"4043:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4053:7:101","nodeType":"YulTypedName","src":"4053:7:101","type":""}],"src":"4018:86:101"},{"body":{"nativeSrc":"4142:28:101","nodeType":"YulBlock","src":"4142:28:101","statements":[{"nativeSrc":"4152:12:101","nodeType":"YulAssignment","src":"4152:12:101","value":{"name":"value","nativeSrc":"4159:5:101","nodeType":"YulIdentifier","src":"4159:5:101"},"variableNames":[{"name":"ret","nativeSrc":"4152:3:101","nodeType":"YulIdentifier","src":"4152:3:101"}]}]},"name":"identity","nativeSrc":"4110:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4128:5:101","nodeType":"YulTypedName","src":"4128:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4138:3:101","nodeType":"YulTypedName","src":"4138:3:101","type":""}],"src":"4110:60:101"},{"body":{"nativeSrc":"4242:88:101","nodeType":"YulBlock","src":"4242:88:101","statements":[{"nativeSrc":"4252:72:101","nodeType":"YulAssignment","src":"4252:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4316:5:101","nodeType":"YulIdentifier","src":"4316:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"4290:25:101","nodeType":"YulIdentifier","src":"4290:25:101"},"nativeSrc":"4290:32:101","nodeType":"YulFunctionCall","src":"4290:32:101"}],"functionName":{"name":"identity","nativeSrc":"4281:8:101","nodeType":"YulIdentifier","src":"4281:8:101"},"nativeSrc":"4281:42:101","nodeType":"YulFunctionCall","src":"4281:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4265:15:101","nodeType":"YulIdentifier","src":"4265:15:101"},"nativeSrc":"4265:59:101","nodeType":"YulFunctionCall","src":"4265:59:101"},"variableNames":[{"name":"converted","nativeSrc":"4252:9:101","nodeType":"YulIdentifier","src":"4252:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"4176:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4222:5:101","nodeType":"YulTypedName","src":"4222:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4232:9:101","nodeType":"YulTypedName","src":"4232:9:101","type":""}],"src":"4176:154:101"},{"body":{"nativeSrc":"4407:72:101","nodeType":"YulBlock","src":"4407:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4424:3:101","nodeType":"YulIdentifier","src":"4424:3:101"},{"arguments":[{"name":"value","nativeSrc":"4466:5:101","nodeType":"YulIdentifier","src":"4466:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"4429:36:101","nodeType":"YulIdentifier","src":"4429:36:101"},"nativeSrc":"4429:43:101","nodeType":"YulFunctionCall","src":"4429:43:101"}],"functionName":{"name":"mstore","nativeSrc":"4417:6:101","nodeType":"YulIdentifier","src":"4417:6:101"},"nativeSrc":"4417:56:101","nodeType":"YulFunctionCall","src":"4417:56:101"},"nativeSrc":"4417:56:101","nodeType":"YulExpressionStatement","src":"4417:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"4336:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4395:5:101","nodeType":"YulTypedName","src":"4395:5:101","type":""},{"name":"pos","nativeSrc":"4402:3:101","nodeType":"YulTypedName","src":"4402:3:101","type":""}],"src":"4336:143:101"},{"body":{"nativeSrc":"4589:130:101","nodeType":"YulBlock","src":"4589:130:101","statements":[{"nativeSrc":"4599:26:101","nodeType":"YulAssignment","src":"4599:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4611:9:101","nodeType":"YulIdentifier","src":"4611:9:101"},{"kind":"number","nativeSrc":"4622:2:101","nodeType":"YulLiteral","src":"4622:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4607:3:101","nodeType":"YulIdentifier","src":"4607:3:101"},"nativeSrc":"4607:18:101","nodeType":"YulFunctionCall","src":"4607:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4599:4:101","nodeType":"YulIdentifier","src":"4599:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4685:6:101","nodeType":"YulIdentifier","src":"4685:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4698:9:101","nodeType":"YulIdentifier","src":"4698:9:101"},{"kind":"number","nativeSrc":"4709:1:101","nodeType":"YulLiteral","src":"4709:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4694:3:101","nodeType":"YulIdentifier","src":"4694:3:101"},"nativeSrc":"4694:17:101","nodeType":"YulFunctionCall","src":"4694:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"4635:49:101","nodeType":"YulIdentifier","src":"4635:49:101"},"nativeSrc":"4635:77:101","nodeType":"YulFunctionCall","src":"4635:77:101"},"nativeSrc":"4635:77:101","nodeType":"YulExpressionStatement","src":"4635:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"4485:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4561:9:101","nodeType":"YulTypedName","src":"4561:9:101","type":""},{"name":"value0","nativeSrc":"4573:6:101","nodeType":"YulTypedName","src":"4573:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4584:4:101","nodeType":"YulTypedName","src":"4584:4:101","type":""}],"src":"4485:234:101"},{"body":{"nativeSrc":"4831:119:101","nodeType":"YulBlock","src":"4831:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4853:6:101","nodeType":"YulIdentifier","src":"4853:6:101"},{"kind":"number","nativeSrc":"4861:1:101","nodeType":"YulLiteral","src":"4861:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4849:3:101","nodeType":"YulIdentifier","src":"4849:3:101"},"nativeSrc":"4849:14:101","nodeType":"YulFunctionCall","src":"4849:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"4865:34:101","nodeType":"YulLiteral","src":"4865:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"4842:6:101","nodeType":"YulIdentifier","src":"4842:6:101"},"nativeSrc":"4842:58:101","nodeType":"YulFunctionCall","src":"4842:58:101"},"nativeSrc":"4842:58:101","nodeType":"YulExpressionStatement","src":"4842:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4921:6:101","nodeType":"YulIdentifier","src":"4921:6:101"},{"kind":"number","nativeSrc":"4929:2:101","nodeType":"YulLiteral","src":"4929:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4917:3:101","nodeType":"YulIdentifier","src":"4917:3:101"},"nativeSrc":"4917:15:101","nodeType":"YulFunctionCall","src":"4917:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"4934:8:101","nodeType":"YulLiteral","src":"4934:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"4910:6:101","nodeType":"YulIdentifier","src":"4910:6:101"},"nativeSrc":"4910:33:101","nodeType":"YulFunctionCall","src":"4910:33:101"},"nativeSrc":"4910:33:101","nodeType":"YulExpressionStatement","src":"4910:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"4725:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4823:6:101","nodeType":"YulTypedName","src":"4823:6:101","type":""}],"src":"4725:225:101"},{"body":{"nativeSrc":"5102:220:101","nodeType":"YulBlock","src":"5102:220:101","statements":[{"nativeSrc":"5112:74:101","nodeType":"YulAssignment","src":"5112:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5178:3:101","nodeType":"YulIdentifier","src":"5178:3:101"},{"kind":"number","nativeSrc":"5183:2:101","nodeType":"YulLiteral","src":"5183:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5119:58:101","nodeType":"YulIdentifier","src":"5119:58:101"},"nativeSrc":"5119:67:101","nodeType":"YulFunctionCall","src":"5119:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5284:3:101","nodeType":"YulIdentifier","src":"5284:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"5195:88:101","nodeType":"YulIdentifier","src":"5195:88:101"},"nativeSrc":"5195:93:101","nodeType":"YulFunctionCall","src":"5195:93:101"},"nativeSrc":"5195:93:101","nodeType":"YulExpressionStatement","src":"5195:93:101"},{"nativeSrc":"5297:19:101","nodeType":"YulAssignment","src":"5297:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5308:3:101","nodeType":"YulIdentifier","src":"5308:3:101"},{"kind":"number","nativeSrc":"5313:2:101","nodeType":"YulLiteral","src":"5313:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5304:3:101","nodeType":"YulIdentifier","src":"5304:3:101"},"nativeSrc":"5304:12:101","nodeType":"YulFunctionCall","src":"5304:12:101"},"variableNames":[{"name":"end","nativeSrc":"5297:3:101","nodeType":"YulIdentifier","src":"5297:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"4956:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5090:3:101","nodeType":"YulTypedName","src":"5090:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5098:3:101","nodeType":"YulTypedName","src":"5098:3:101","type":""}],"src":"4956:366:101"},{"body":{"nativeSrc":"5499:248:101","nodeType":"YulBlock","src":"5499:248:101","statements":[{"nativeSrc":"5509:26:101","nodeType":"YulAssignment","src":"5509:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5521:9:101","nodeType":"YulIdentifier","src":"5521:9:101"},{"kind":"number","nativeSrc":"5532:2:101","nodeType":"YulLiteral","src":"5532:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5517:3:101","nodeType":"YulIdentifier","src":"5517:3:101"},"nativeSrc":"5517:18:101","nodeType":"YulFunctionCall","src":"5517:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5509:4:101","nodeType":"YulIdentifier","src":"5509:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5556:9:101","nodeType":"YulIdentifier","src":"5556:9:101"},{"kind":"number","nativeSrc":"5567:1:101","nodeType":"YulLiteral","src":"5567:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5552:3:101","nodeType":"YulIdentifier","src":"5552:3:101"},"nativeSrc":"5552:17:101","nodeType":"YulFunctionCall","src":"5552:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5575:4:101","nodeType":"YulIdentifier","src":"5575:4:101"},{"name":"headStart","nativeSrc":"5581:9:101","nodeType":"YulIdentifier","src":"5581:9:101"}],"functionName":{"name":"sub","nativeSrc":"5571:3:101","nodeType":"YulIdentifier","src":"5571:3:101"},"nativeSrc":"5571:20:101","nodeType":"YulFunctionCall","src":"5571:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5545:6:101","nodeType":"YulIdentifier","src":"5545:6:101"},"nativeSrc":"5545:47:101","nodeType":"YulFunctionCall","src":"5545:47:101"},"nativeSrc":"5545:47:101","nodeType":"YulExpressionStatement","src":"5545:47:101"},{"nativeSrc":"5601:139:101","nodeType":"YulAssignment","src":"5601:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5735:4:101","nodeType":"YulIdentifier","src":"5735:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"5609:124:101","nodeType":"YulIdentifier","src":"5609:124:101"},"nativeSrc":"5609:131:101","nodeType":"YulFunctionCall","src":"5609:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5601:4:101","nodeType":"YulIdentifier","src":"5601:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5328:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5479:9:101","nodeType":"YulTypedName","src":"5479:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5494:4:101","nodeType":"YulTypedName","src":"5494:4:101","type":""}],"src":"5328:419:101"},{"body":{"nativeSrc":"5859:76:101","nodeType":"YulBlock","src":"5859:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5881:6:101","nodeType":"YulIdentifier","src":"5881:6:101"},{"kind":"number","nativeSrc":"5889:1:101","nodeType":"YulLiteral","src":"5889:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5877:3:101","nodeType":"YulIdentifier","src":"5877:3:101"},"nativeSrc":"5877:14:101","nodeType":"YulFunctionCall","src":"5877:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"5893:34:101","nodeType":"YulLiteral","src":"5893:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"5870:6:101","nodeType":"YulIdentifier","src":"5870:6:101"},"nativeSrc":"5870:58:101","nodeType":"YulFunctionCall","src":"5870:58:101"},"nativeSrc":"5870:58:101","nodeType":"YulExpressionStatement","src":"5870:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"5753:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5851:6:101","nodeType":"YulTypedName","src":"5851:6:101","type":""}],"src":"5753:182:101"},{"body":{"nativeSrc":"6087:220:101","nodeType":"YulBlock","src":"6087:220:101","statements":[{"nativeSrc":"6097:74:101","nodeType":"YulAssignment","src":"6097:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6163:3:101","nodeType":"YulIdentifier","src":"6163:3:101"},{"kind":"number","nativeSrc":"6168:2:101","nodeType":"YulLiteral","src":"6168:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6104:58:101","nodeType":"YulIdentifier","src":"6104:58:101"},"nativeSrc":"6104:67:101","nodeType":"YulFunctionCall","src":"6104:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6097:3:101","nodeType":"YulIdentifier","src":"6097:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6269:3:101","nodeType":"YulIdentifier","src":"6269:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"6180:88:101","nodeType":"YulIdentifier","src":"6180:88:101"},"nativeSrc":"6180:93:101","nodeType":"YulFunctionCall","src":"6180:93:101"},"nativeSrc":"6180:93:101","nodeType":"YulExpressionStatement","src":"6180:93:101"},{"nativeSrc":"6282:19:101","nodeType":"YulAssignment","src":"6282:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6293:3:101","nodeType":"YulIdentifier","src":"6293:3:101"},{"kind":"number","nativeSrc":"6298:2:101","nodeType":"YulLiteral","src":"6298:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6289:3:101","nodeType":"YulIdentifier","src":"6289:3:101"},"nativeSrc":"6289:12:101","nodeType":"YulFunctionCall","src":"6289:12:101"},"variableNames":[{"name":"end","nativeSrc":"6282:3:101","nodeType":"YulIdentifier","src":"6282:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"5941:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6075:3:101","nodeType":"YulTypedName","src":"6075:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6083:3:101","nodeType":"YulTypedName","src":"6083:3:101","type":""}],"src":"5941:366:101"},{"body":{"nativeSrc":"6484:248:101","nodeType":"YulBlock","src":"6484:248:101","statements":[{"nativeSrc":"6494:26:101","nodeType":"YulAssignment","src":"6494:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6506:9:101","nodeType":"YulIdentifier","src":"6506:9:101"},{"kind":"number","nativeSrc":"6517:2:101","nodeType":"YulLiteral","src":"6517:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6502:3:101","nodeType":"YulIdentifier","src":"6502:3:101"},"nativeSrc":"6502:18:101","nodeType":"YulFunctionCall","src":"6502:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6494:4:101","nodeType":"YulIdentifier","src":"6494:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6541:9:101","nodeType":"YulIdentifier","src":"6541:9:101"},{"kind":"number","nativeSrc":"6552:1:101","nodeType":"YulLiteral","src":"6552:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6537:3:101","nodeType":"YulIdentifier","src":"6537:3:101"},"nativeSrc":"6537:17:101","nodeType":"YulFunctionCall","src":"6537:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6560:4:101","nodeType":"YulIdentifier","src":"6560:4:101"},{"name":"headStart","nativeSrc":"6566:9:101","nodeType":"YulIdentifier","src":"6566:9:101"}],"functionName":{"name":"sub","nativeSrc":"6556:3:101","nodeType":"YulIdentifier","src":"6556:3:101"},"nativeSrc":"6556:20:101","nodeType":"YulFunctionCall","src":"6556:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6530:6:101","nodeType":"YulIdentifier","src":"6530:6:101"},"nativeSrc":"6530:47:101","nodeType":"YulFunctionCall","src":"6530:47:101"},"nativeSrc":"6530:47:101","nodeType":"YulExpressionStatement","src":"6530:47:101"},{"nativeSrc":"6586:139:101","nodeType":"YulAssignment","src":"6586:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6720:4:101","nodeType":"YulIdentifier","src":"6720:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"6594:124:101","nodeType":"YulIdentifier","src":"6594:124:101"},"nativeSrc":"6594:131:101","nodeType":"YulFunctionCall","src":"6594:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6586:4:101","nodeType":"YulIdentifier","src":"6586:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6313:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6464:9:101","nodeType":"YulTypedName","src":"6464:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6479:4:101","nodeType":"YulTypedName","src":"6479:4:101","type":""}],"src":"6313:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610079575f3560e01c8063715018a611610058578063715018a6146101055780638129fc1c1461010d5780638da5cb5b14610115578063f2fde38b1461012e575f80fd5b8062e4768b1461007d57806341976e09146100a85780635e9a523c146100e6575b5f80fd5b6100a661008b366004610311565b6001600160a01b039091165f90815260656020526040902055565b005b6100d06100b636600461034b565b6001600160a01b03165f9081526065602052604090205490565b6040516100dd9190610379565b60405180910390f35b6100d06100f436600461034b565b60656020525f908152604090205481565b6100a6610141565b6100a6610154565b6033546001600160a01b03166040516100dd9190610390565b6100a661013c36600461034b565b61021e565b610149610255565b6101525f61027f565b565b5f54610100900460ff161580801561017257505f54600160ff909116105b8061018b5750303b15801561018b57505f5460ff166001145b6101b05760405162461bcd60e51b81526004016101a7906103eb565b60405180910390fd5b5f805460ff1916600117905580156101d1575f805461ff0019166101001790555b801561021b575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906102129060019061040e565b60405180910390a15b50565b610226610255565b6001600160a01b03811661024c5760405162461bcd60e51b81526004016101a79061045e565b61021b8161027f565b6033546001600160a01b031633146101525760405162461bcd60e51b81526004016101a79061046e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160a01b0382165b92915050565b6102eb816102d0565b811461021b575f80fd5b80356102dc816102e2565b806102eb565b80356102dc81610300565b5f8060408385031215610325576103255f80fd5b5f61033085856102f5565b925050602061034185828601610306565b9150509250929050565b5f6020828403121561035e5761035e5f80fd5b5f61036984846102f5565b949350505050565b805b82525050565b602081016102dc8284610371565b610373816102d0565b602081016102dc8284610387565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291505b5060400190565b602080825281016102dc8161039e565b5f60ff82166102dc565b610373816103fb565b602081016102dc8284610405565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015291506103e4565b602080825281016102dc8161041c565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040830152606082016102dc56fea2646970667358221220fd981754b89ca37180d4c117043e158b072a8a20cc0511a6f977e9e0e2f164e864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x12E JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0xE4768B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x5E9A523C EQ PUSH2 0xE6 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA6 PUSH2 0x8B CALLDATASIZE PUSH1 0x4 PUSH2 0x311 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD0 PUSH2 0xB6 CALLDATASIZE PUSH1 0x4 PUSH2 0x34B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x379 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x34B JUMP JUMPDEST PUSH1 0x65 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x141 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x154 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x390 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x34B JUMP JUMPDEST PUSH2 0x21E JUMP JUMPDEST PUSH2 0x149 PUSH2 0x255 JUMP JUMPDEST PUSH2 0x152 PUSH0 PUSH2 0x27F JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x172 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x18B JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x3EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST DUP1 ISZERO PUSH2 0x21B JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x212 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x226 PUSH2 0x255 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x24C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x21B DUP2 PUSH2 0x27F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x152 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2EB DUP2 PUSH2 0x2D0 JUMP JUMPDEST DUP2 EQ PUSH2 0x21B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DC DUP2 PUSH2 0x2E2 JUMP JUMPDEST DUP1 PUSH2 0x2EB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DC DUP2 PUSH2 0x300 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x325 JUMPI PUSH2 0x325 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x330 DUP6 DUP6 PUSH2 0x2F5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x341 DUP6 DUP3 DUP7 ADD PUSH2 0x306 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E JUMPI PUSH2 0x35E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x369 DUP5 DUP5 PUSH2 0x2F5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2DC DUP3 DUP5 PUSH2 0x371 JUMP JUMPDEST PUSH2 0x373 DUP2 PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2DC DUP3 DUP5 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2DC DUP2 PUSH2 0x39E JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x2DC JUMP JUMPDEST PUSH2 0x373 DUP2 PUSH2 0x3FB JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2DC DUP3 DUP5 PUSH2 0x405 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3E4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2DC DUP2 PUSH2 0x41C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x2DC JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT SWAP9 OR SLOAD 0xB8 SWAP13 LOG3 PUSH18 0x80D4C117043E158B072A8A20CC0511A6F977 0xE9 0xE0 0xE2 CALL PUSH5 0xE864736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"243:409:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;439:100;;;;;;:::i;:::-;-1:-1:-1;;;;;506:18:70;;;;;;;:11;:18;;;;;:26;439:100;;;545:105;;;;;;:::i;:::-;-1:-1:-1;;;;;625:18:70;599:7;625:18;;;:11;:18;;;;;;;545:105;;;;;;;;:::i;:::-;;;;;;;;315:46;;;;;;:::i;:::-;;;;;;;;;;;;;;2085:101:4;;;:::i;390:43:70:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;;;;;:::i;2335:198::-;;;;;;:::i;:::-;;:::i;2085:101::-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;390:43:70:-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;3651:14;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3647:99;3269:483;390:43:70:o;2335:198:4:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:4;::::1;2415:73;;;;-1:-1:-1::0;;;2415:73:4::1;;;;;;;:::i;:::-;2498:28;2517:8;2498:18;:28::i;1620:130::-:0;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2687:187::-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;924:122::-;1015:5;997:24;841:77;1052:139;1123:20;;1152:33;1123:20;1152:33;:::i;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;243:409:70;;;1328:79:101;1448:1;1473:53;1518:7;1498:9;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:329::-;1736:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:119;;;1791:79;243:409:70;;;1791:79:101;1911:1;1936:53;1981:7;1961:9;1936:53;:::i;:::-;1926:63;1677:329;-1:-1:-1;;;;1677:329:101:o;2012:118::-;2117:5;2099:24;2094:3;2087:37;2012:118;;:::o;2136:222::-;2267:2;2252:18;;2280:71;2256:9;2324:6;2280:71;:::i;2364:118::-;2451:24;2469:5;2451:24;:::i;2488:222::-;2619:2;2604:18;;2632:71;2608:9;2676:6;2632:71;:::i;3130:366::-;3357:2;2822:19;;3272:3;2874:4;2865:14;;3031:34;3008:58;;-1:-1:-1;;;3095:2:101;3083:15;;3076:41;3286:74;-1:-1:-1;3369:93:101;-1:-1:-1;3487:2:101;3478:12;;3130:366::o;3502:419::-;3706:2;3719:47;;;3691:18;;3783:131;3691:18;3783:131;:::i;4176:154::-;4232:9;4093:4;4082:16;;4265:59;4018:86;4336:143;4429:43;4466:5;4429:43;:::i;4485:234::-;4622:2;4607:18;;4635:77;4611:9;4685:6;4635:77;:::i;4956:366::-;5183:2;2822:19;;5098:3;2874:4;2865:14;;4865:34;4842:58;;-1:-1:-1;;;4929:2:101;4917:15;;4910:33;5112:74;-1:-1:-1;5195:93:101;4725:225;5328:419;5532:2;5545:47;;;5517:18;;5609:131;5517:18;5609:131;:::i;6313:419::-;6517:2;6530:47;;;6502:18;;;2822:19;;;5893:34;2865:14;;;5870:58;6289:12;;;6594:131;5941:366"},"gasEstimates":{"creation":{"codeDepositCost":"249200","executionCost":"285","totalCost":"249485"},"external":{"assetPrices(address)":"infinite","getPrice(address)":"infinite","initialize()":"infinite","owner()":"infinite","renounceOwnership()":"infinite","setPrice(address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"assetPrices(address)":"5e9a523c","getPrice(address)":"41976e09","initialize()":"8129fc1c","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setPrice(address,uint256)":"00e4768b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"assetPrices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"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\":{\"contracts/oracles/mocks/MockBinanceOracle.sol\":\"MockBinanceOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/mocks/MockBinanceOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { OracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\n\\ncontract MockBinanceOracle is OwnableUpgradeable, OracleInterface {\\n    mapping(address => uint256) public assetPrices;\\n\\n    constructor() {}\\n\\n    function initialize() public initializer {}\\n\\n    function setPrice(address asset, uint256 price) external {\\n        assetPrices[asset] = price;\\n    }\\n\\n    function getPrice(address token) public view returns (uint256) {\\n        return assetPrices[token];\\n    }\\n}\\n\",\"keccak256\":\"0x4c5697b6e22ec57c6e3d0a7ca2d3839c616811cf07866d619aa0c1f5310a0292\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/oracles/mocks/MockBinanceOracle.sol:MockBinanceOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/oracles/mocks/MockBinanceOracle.sol:MockBinanceOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/oracles/mocks/MockBinanceOracle.sol:MockBinanceOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/oracles/mocks/MockBinanceOracle.sol:MockBinanceOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/oracles/mocks/MockBinanceOracle.sol:MockBinanceOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":7262,"contract":"contracts/oracles/mocks/MockBinanceOracle.sol:MockBinanceOracle","label":"assetPrices","offset":0,"slot":"101","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/oracles/mocks/MockChainlinkOracle.sol":{"MockChainlinkOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"","type":"address"}],"name":"assetPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_7317":{"entryPoint":null,"id":7317,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b506105958061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610079575f3560e01c8063715018a611610058578063715018a6146101055780638129fc1c1461010d5780638da5cb5b14610115578063f2fde38b1461012e575f80fd5b8062e4768b1461007d57806341976e09146100a85780635e9a523c146100e6575b5f80fd5b6100a661008b366004610371565b6001600160a01b039091165f90815260656020526040902055565b005b6100d06100b63660046103ab565b6001600160a01b03165f9081526065602052604090205490565b6040516100dd91906103d9565b60405180910390f35b6100d06100f43660046103ab565b60656020525f908152604090205481565b6100a6610141565b6100a6610154565b6033546001600160a01b03166040516100dd91906103f0565b6100a661013c3660046103ab565b610226565b61014961025d565b6101525f610287565b565b5f54610100900460ff161580801561017257505f54600160ff909116105b8061018b5750303b15801561018b57505f5460ff166001145b6101b05760405162461bcd60e51b81526004016101a79061044b565b60405180910390fd5b5f805460ff1916600117905580156101d1575f805461ff0019166101001790555b6101d96102d8565b8015610223575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061021a9060019061046e565b60405180910390a15b50565b61022e61025d565b6001600160a01b0381166102545760405162461bcd60e51b81526004016101a7906104be565b61022381610287565b6033546001600160a01b031633146101525760405162461bcd60e51b81526004016101a7906104ce565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166102fe5760405162461bcd60e51b81526004016101a79061054f565b6101525f54610100900460ff166103275760405162461bcd60e51b81526004016101a79061054f565b61015233610287565b5f6001600160a01b0382165b92915050565b61034b81610330565b8114610223575f80fd5b803561033c81610342565b8061034b565b803561033c81610360565b5f8060408385031215610385576103855f80fd5b5f6103908585610355565b92505060206103a185828601610366565b9150509250929050565b5f602082840312156103be576103be5f80fd5b5f6103c98484610355565b949350505050565b805b82525050565b6020810161033c82846103d1565b6103d381610330565b6020810161033c82846103e7565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291505b5060400190565b6020808252810161033c816103fe565b5f60ff821661033c565b6103d38161045b565b6020810161033c8284610465565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610444565b6020808252810161033c8161047c565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161033c565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610444565b6020808252810161033c8161050856fea26469706673582212207b7bb16430d698220ea361c90a1575978d6ce10df71250beccacfbf8f84c886b64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x595 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x12E JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0xE4768B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x5E9A523C EQ PUSH2 0xE6 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA6 PUSH2 0x8B CALLDATASIZE PUSH1 0x4 PUSH2 0x371 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD0 PUSH2 0xB6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x65 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x141 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x154 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x3F0 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x3AB JUMP JUMPDEST PUSH2 0x226 JUMP JUMPDEST PUSH2 0x149 PUSH2 0x25D JUMP JUMPDEST PUSH2 0x152 PUSH0 PUSH2 0x287 JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x172 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x18B JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x44B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1D9 PUSH2 0x2D8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x223 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x21A SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x22E PUSH2 0x25D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x254 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x4BE JUMP JUMPDEST PUSH2 0x223 DUP2 PUSH2 0x287 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x152 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x4CE JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x54F JUMP JUMPDEST PUSH2 0x152 PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x327 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x54F JUMP JUMPDEST PUSH2 0x152 CALLER PUSH2 0x287 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x34B DUP2 PUSH2 0x330 JUMP JUMPDEST DUP2 EQ PUSH2 0x223 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x33C DUP2 PUSH2 0x342 JUMP JUMPDEST DUP1 PUSH2 0x34B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x33C DUP2 PUSH2 0x360 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x385 JUMPI PUSH2 0x385 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x390 DUP6 DUP6 PUSH2 0x355 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3A1 DUP6 DUP3 DUP7 ADD PUSH2 0x366 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x3C9 DUP5 DUP5 PUSH2 0x355 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x33C DUP3 DUP5 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x3D3 DUP2 PUSH2 0x330 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x33C DUP3 DUP5 PUSH2 0x3E7 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x33C DUP2 PUSH2 0x3FE JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x33C JUMP JUMPDEST PUSH2 0x3D3 DUP2 PUSH2 0x45B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x33C DUP3 DUP5 PUSH2 0x465 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x444 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x33C DUP2 PUSH2 0x47C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x33C JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x444 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x33C DUP2 PUSH2 0x508 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x7BB16430D698220EA361C90A1575978D6CE10DF71250BECCACFBF8F8 0x4C DUP9 PUSH12 0x64736F6C6343000819003300 ","sourceMap":"243:524:71:-:0;;;409:16;;;;;;;;;;243:524;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__Ownable_init_237":{"entryPoint":728,"id":237,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_248":{"entryPoint":null,"id":248,"parameterSlots":0,"returnSlots":0},"@_checkOwner_279":{"entryPoint":605,"id":279,"parameterSlots":0,"returnSlots":0},"@_msgSender_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_336":{"entryPoint":647,"id":336,"parameterSlots":1,"returnSlots":0},"@assetPrices_7313":{"entryPoint":null,"id":7313,"parameterSlots":0,"returnSlots":0},"@getPrice_7352":{"entryPoint":null,"id":7352,"parameterSlots":1,"returnSlots":1},"@initialize_7326":{"entryPoint":340,"id":7326,"parameterSlots":0,"returnSlots":0},"@isContract_657":{"entryPoint":null,"id":657,"parameterSlots":1,"returnSlots":1},"@owner_265":{"entryPoint":null,"id":265,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_293":{"entryPoint":321,"id":293,"parameterSlots":0,"returnSlots":0},"@setPrice_7340":{"entryPoint":null,"id":7340,"parameterSlots":2,"returnSlots":0},"@transferOwnership_316":{"entryPoint":550,"id":316,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":853,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":870,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":939,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":881,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":999,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":1125,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":1148,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":1022,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":1288,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":977,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1008,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":1134,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1214,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1099,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1230,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1359,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":985,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":816,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":1115,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":834,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":864,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7768:101","nodeType":"YulBlock","src":"0:7768:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"886:32:101","nodeType":"YulBlock","src":"886:32:101","statements":[{"nativeSrc":"896:16:101","nodeType":"YulAssignment","src":"896:16:101","value":{"name":"value","nativeSrc":"907:5:101","nodeType":"YulIdentifier","src":"907:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:101","nodeType":"YulIdentifier","src":"896:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:101","nodeType":"YulTypedName","src":"868:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:101","nodeType":"YulTypedName","src":"878:7:101","type":""}],"src":"841:77:101"},{"body":{"nativeSrc":"967:79:101","nodeType":"YulBlock","src":"967:79:101","statements":[{"body":{"nativeSrc":"1024:16:101","nodeType":"YulBlock","src":"1024:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:101","nodeType":"YulLiteral","src":"1033:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:101","nodeType":"YulLiteral","src":"1036:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:101","nodeType":"YulIdentifier","src":"1026:6:101"},"nativeSrc":"1026:12:101","nodeType":"YulFunctionCall","src":"1026:12:101"},"nativeSrc":"1026:12:101","nodeType":"YulExpressionStatement","src":"1026:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:101","nodeType":"YulIdentifier","src":"990:5:101"},{"arguments":[{"name":"value","nativeSrc":"1015:5:101","nodeType":"YulIdentifier","src":"1015:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:101","nodeType":"YulIdentifier","src":"997:17:101"},"nativeSrc":"997:24:101","nodeType":"YulFunctionCall","src":"997:24:101"}],"functionName":{"name":"eq","nativeSrc":"987:2:101","nodeType":"YulIdentifier","src":"987:2:101"},"nativeSrc":"987:35:101","nodeType":"YulFunctionCall","src":"987:35:101"}],"functionName":{"name":"iszero","nativeSrc":"980:6:101","nodeType":"YulIdentifier","src":"980:6:101"},"nativeSrc":"980:43:101","nodeType":"YulFunctionCall","src":"980:43:101"},"nativeSrc":"977:63:101","nodeType":"YulIf","src":"977:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:101","nodeType":"YulTypedName","src":"960:5:101","type":""}],"src":"924:122:101"},{"body":{"nativeSrc":"1104:87:101","nodeType":"YulBlock","src":"1104:87:101","statements":[{"nativeSrc":"1114:29:101","nodeType":"YulAssignment","src":"1114:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:101","nodeType":"YulIdentifier","src":"1123:12:101"},"nativeSrc":"1123:20:101","nodeType":"YulFunctionCall","src":"1123:20:101"},"variableNames":[{"name":"value","nativeSrc":"1114:5:101","nodeType":"YulIdentifier","src":"1114:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:101","nodeType":"YulIdentifier","src":"1179:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:101","nodeType":"YulIdentifier","src":"1152:26:101"},"nativeSrc":"1152:33:101","nodeType":"YulFunctionCall","src":"1152:33:101"},"nativeSrc":"1152:33:101","nodeType":"YulExpressionStatement","src":"1152:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:101","nodeType":"YulTypedName","src":"1082:6:101","type":""},{"name":"end","nativeSrc":"1090:3:101","nodeType":"YulTypedName","src":"1090:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:101","nodeType":"YulTypedName","src":"1098:5:101","type":""}],"src":"1052:139:101"},{"body":{"nativeSrc":"1280:391:101","nodeType":"YulBlock","src":"1280:391:101","statements":[{"body":{"nativeSrc":"1326:83:101","nodeType":"YulBlock","src":"1326:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1328:77:101","nodeType":"YulIdentifier","src":"1328:77:101"},"nativeSrc":"1328:79:101","nodeType":"YulFunctionCall","src":"1328:79:101"},"nativeSrc":"1328:79:101","nodeType":"YulExpressionStatement","src":"1328:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1301:7:101","nodeType":"YulIdentifier","src":"1301:7:101"},{"name":"headStart","nativeSrc":"1310:9:101","nodeType":"YulIdentifier","src":"1310:9:101"}],"functionName":{"name":"sub","nativeSrc":"1297:3:101","nodeType":"YulIdentifier","src":"1297:3:101"},"nativeSrc":"1297:23:101","nodeType":"YulFunctionCall","src":"1297:23:101"},{"kind":"number","nativeSrc":"1322:2:101","nodeType":"YulLiteral","src":"1322:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1293:3:101","nodeType":"YulIdentifier","src":"1293:3:101"},"nativeSrc":"1293:32:101","nodeType":"YulFunctionCall","src":"1293:32:101"},"nativeSrc":"1290:119:101","nodeType":"YulIf","src":"1290:119:101"},{"nativeSrc":"1419:117:101","nodeType":"YulBlock","src":"1419:117:101","statements":[{"nativeSrc":"1434:15:101","nodeType":"YulVariableDeclaration","src":"1434:15:101","value":{"kind":"number","nativeSrc":"1448:1:101","nodeType":"YulLiteral","src":"1448:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1438:6:101","nodeType":"YulTypedName","src":"1438:6:101","type":""}]},{"nativeSrc":"1463:63:101","nodeType":"YulAssignment","src":"1463:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1498:9:101","nodeType":"YulIdentifier","src":"1498:9:101"},{"name":"offset","nativeSrc":"1509:6:101","nodeType":"YulIdentifier","src":"1509:6:101"}],"functionName":{"name":"add","nativeSrc":"1494:3:101","nodeType":"YulIdentifier","src":"1494:3:101"},"nativeSrc":"1494:22:101","nodeType":"YulFunctionCall","src":"1494:22:101"},{"name":"dataEnd","nativeSrc":"1518:7:101","nodeType":"YulIdentifier","src":"1518:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1473:20:101","nodeType":"YulIdentifier","src":"1473:20:101"},"nativeSrc":"1473:53:101","nodeType":"YulFunctionCall","src":"1473:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1463:6:101","nodeType":"YulIdentifier","src":"1463:6:101"}]}]},{"nativeSrc":"1546:118:101","nodeType":"YulBlock","src":"1546:118:101","statements":[{"nativeSrc":"1561:16:101","nodeType":"YulVariableDeclaration","src":"1561:16:101","value":{"kind":"number","nativeSrc":"1575:2:101","nodeType":"YulLiteral","src":"1575:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1565:6:101","nodeType":"YulTypedName","src":"1565:6:101","type":""}]},{"nativeSrc":"1591:63:101","nodeType":"YulAssignment","src":"1591:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:101","nodeType":"YulIdentifier","src":"1626:9:101"},{"name":"offset","nativeSrc":"1637:6:101","nodeType":"YulIdentifier","src":"1637:6:101"}],"functionName":{"name":"add","nativeSrc":"1622:3:101","nodeType":"YulIdentifier","src":"1622:3:101"},"nativeSrc":"1622:22:101","nodeType":"YulFunctionCall","src":"1622:22:101"},{"name":"dataEnd","nativeSrc":"1646:7:101","nodeType":"YulIdentifier","src":"1646:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1601:20:101","nodeType":"YulIdentifier","src":"1601:20:101"},"nativeSrc":"1601:53:101","nodeType":"YulFunctionCall","src":"1601:53:101"},"variableNames":[{"name":"value1","nativeSrc":"1591:6:101","nodeType":"YulIdentifier","src":"1591:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1197:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1242:9:101","nodeType":"YulTypedName","src":"1242:9:101","type":""},{"name":"dataEnd","nativeSrc":"1253:7:101","nodeType":"YulTypedName","src":"1253:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1265:6:101","nodeType":"YulTypedName","src":"1265:6:101","type":""},{"name":"value1","nativeSrc":"1273:6:101","nodeType":"YulTypedName","src":"1273:6:101","type":""}],"src":"1197:474:101"},{"body":{"nativeSrc":"1743:263:101","nodeType":"YulBlock","src":"1743:263:101","statements":[{"body":{"nativeSrc":"1789:83:101","nodeType":"YulBlock","src":"1789:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1791:77:101","nodeType":"YulIdentifier","src":"1791:77:101"},"nativeSrc":"1791:79:101","nodeType":"YulFunctionCall","src":"1791:79:101"},"nativeSrc":"1791:79:101","nodeType":"YulExpressionStatement","src":"1791:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1764:7:101","nodeType":"YulIdentifier","src":"1764:7:101"},{"name":"headStart","nativeSrc":"1773:9:101","nodeType":"YulIdentifier","src":"1773:9:101"}],"functionName":{"name":"sub","nativeSrc":"1760:3:101","nodeType":"YulIdentifier","src":"1760:3:101"},"nativeSrc":"1760:23:101","nodeType":"YulFunctionCall","src":"1760:23:101"},{"kind":"number","nativeSrc":"1785:2:101","nodeType":"YulLiteral","src":"1785:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1756:3:101","nodeType":"YulIdentifier","src":"1756:3:101"},"nativeSrc":"1756:32:101","nodeType":"YulFunctionCall","src":"1756:32:101"},"nativeSrc":"1753:119:101","nodeType":"YulIf","src":"1753:119:101"},{"nativeSrc":"1882:117:101","nodeType":"YulBlock","src":"1882:117:101","statements":[{"nativeSrc":"1897:15:101","nodeType":"YulVariableDeclaration","src":"1897:15:101","value":{"kind":"number","nativeSrc":"1911:1:101","nodeType":"YulLiteral","src":"1911:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1901:6:101","nodeType":"YulTypedName","src":"1901:6:101","type":""}]},{"nativeSrc":"1926:63:101","nodeType":"YulAssignment","src":"1926:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1961:9:101","nodeType":"YulIdentifier","src":"1961:9:101"},{"name":"offset","nativeSrc":"1972:6:101","nodeType":"YulIdentifier","src":"1972:6:101"}],"functionName":{"name":"add","nativeSrc":"1957:3:101","nodeType":"YulIdentifier","src":"1957:3:101"},"nativeSrc":"1957:22:101","nodeType":"YulFunctionCall","src":"1957:22:101"},{"name":"dataEnd","nativeSrc":"1981:7:101","nodeType":"YulIdentifier","src":"1981:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1936:20:101","nodeType":"YulIdentifier","src":"1936:20:101"},"nativeSrc":"1936:53:101","nodeType":"YulFunctionCall","src":"1936:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1926:6:101","nodeType":"YulIdentifier","src":"1926:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1677:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1713:9:101","nodeType":"YulTypedName","src":"1713:9:101","type":""},{"name":"dataEnd","nativeSrc":"1724:7:101","nodeType":"YulTypedName","src":"1724:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1736:6:101","nodeType":"YulTypedName","src":"1736:6:101","type":""}],"src":"1677:329:101"},{"body":{"nativeSrc":"2077:53:101","nodeType":"YulBlock","src":"2077:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2094:3:101","nodeType":"YulIdentifier","src":"2094:3:101"},{"arguments":[{"name":"value","nativeSrc":"2117:5:101","nodeType":"YulIdentifier","src":"2117:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2099:17:101","nodeType":"YulIdentifier","src":"2099:17:101"},"nativeSrc":"2099:24:101","nodeType":"YulFunctionCall","src":"2099:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2087:6:101","nodeType":"YulIdentifier","src":"2087:6:101"},"nativeSrc":"2087:37:101","nodeType":"YulFunctionCall","src":"2087:37:101"},"nativeSrc":"2087:37:101","nodeType":"YulExpressionStatement","src":"2087:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2012:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2065:5:101","nodeType":"YulTypedName","src":"2065:5:101","type":""},{"name":"pos","nativeSrc":"2072:3:101","nodeType":"YulTypedName","src":"2072:3:101","type":""}],"src":"2012:118:101"},{"body":{"nativeSrc":"2234:124:101","nodeType":"YulBlock","src":"2234:124:101","statements":[{"nativeSrc":"2244:26:101","nodeType":"YulAssignment","src":"2244:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2256:9:101","nodeType":"YulIdentifier","src":"2256:9:101"},{"kind":"number","nativeSrc":"2267:2:101","nodeType":"YulLiteral","src":"2267:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2252:3:101","nodeType":"YulIdentifier","src":"2252:3:101"},"nativeSrc":"2252:18:101","nodeType":"YulFunctionCall","src":"2252:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2244:4:101","nodeType":"YulIdentifier","src":"2244:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2324:6:101","nodeType":"YulIdentifier","src":"2324:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2337:9:101","nodeType":"YulIdentifier","src":"2337:9:101"},{"kind":"number","nativeSrc":"2348:1:101","nodeType":"YulLiteral","src":"2348:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2333:3:101","nodeType":"YulIdentifier","src":"2333:3:101"},"nativeSrc":"2333:17:101","nodeType":"YulFunctionCall","src":"2333:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2280:43:101","nodeType":"YulIdentifier","src":"2280:43:101"},"nativeSrc":"2280:71:101","nodeType":"YulFunctionCall","src":"2280:71:101"},"nativeSrc":"2280:71:101","nodeType":"YulExpressionStatement","src":"2280:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2136:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2206:9:101","nodeType":"YulTypedName","src":"2206:9:101","type":""},{"name":"value0","nativeSrc":"2218:6:101","nodeType":"YulTypedName","src":"2218:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2229:4:101","nodeType":"YulTypedName","src":"2229:4:101","type":""}],"src":"2136:222:101"},{"body":{"nativeSrc":"2429:53:101","nodeType":"YulBlock","src":"2429:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2446:3:101","nodeType":"YulIdentifier","src":"2446:3:101"},{"arguments":[{"name":"value","nativeSrc":"2469:5:101","nodeType":"YulIdentifier","src":"2469:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2451:17:101","nodeType":"YulIdentifier","src":"2451:17:101"},"nativeSrc":"2451:24:101","nodeType":"YulFunctionCall","src":"2451:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"},"nativeSrc":"2439:37:101","nodeType":"YulFunctionCall","src":"2439:37:101"},"nativeSrc":"2439:37:101","nodeType":"YulExpressionStatement","src":"2439:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2364:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2417:5:101","nodeType":"YulTypedName","src":"2417:5:101","type":""},{"name":"pos","nativeSrc":"2424:3:101","nodeType":"YulTypedName","src":"2424:3:101","type":""}],"src":"2364:118:101"},{"body":{"nativeSrc":"2586:124:101","nodeType":"YulBlock","src":"2586:124:101","statements":[{"nativeSrc":"2596:26:101","nodeType":"YulAssignment","src":"2596:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2608:9:101","nodeType":"YulIdentifier","src":"2608:9:101"},{"kind":"number","nativeSrc":"2619:2:101","nodeType":"YulLiteral","src":"2619:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2604:3:101","nodeType":"YulIdentifier","src":"2604:3:101"},"nativeSrc":"2604:18:101","nodeType":"YulFunctionCall","src":"2604:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2596:4:101","nodeType":"YulIdentifier","src":"2596:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2676:6:101","nodeType":"YulIdentifier","src":"2676:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2689:9:101","nodeType":"YulIdentifier","src":"2689:9:101"},{"kind":"number","nativeSrc":"2700:1:101","nodeType":"YulLiteral","src":"2700:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2685:3:101","nodeType":"YulIdentifier","src":"2685:3:101"},"nativeSrc":"2685:17:101","nodeType":"YulFunctionCall","src":"2685:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2632:43:101","nodeType":"YulIdentifier","src":"2632:43:101"},"nativeSrc":"2632:71:101","nodeType":"YulFunctionCall","src":"2632:71:101"},"nativeSrc":"2632:71:101","nodeType":"YulExpressionStatement","src":"2632:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2488:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2558:9:101","nodeType":"YulTypedName","src":"2558:9:101","type":""},{"name":"value0","nativeSrc":"2570:6:101","nodeType":"YulTypedName","src":"2570:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2581:4:101","nodeType":"YulTypedName","src":"2581:4:101","type":""}],"src":"2488:222:101"},{"body":{"nativeSrc":"2812:73:101","nodeType":"YulBlock","src":"2812:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2829:3:101","nodeType":"YulIdentifier","src":"2829:3:101"},{"name":"length","nativeSrc":"2834:6:101","nodeType":"YulIdentifier","src":"2834:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2822:6:101","nodeType":"YulIdentifier","src":"2822:6:101"},"nativeSrc":"2822:19:101","nodeType":"YulFunctionCall","src":"2822:19:101"},"nativeSrc":"2822:19:101","nodeType":"YulExpressionStatement","src":"2822:19:101"},{"nativeSrc":"2850:29:101","nodeType":"YulAssignment","src":"2850:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"2869:3:101","nodeType":"YulIdentifier","src":"2869:3:101"},{"kind":"number","nativeSrc":"2874:4:101","nodeType":"YulLiteral","src":"2874:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2865:3:101","nodeType":"YulIdentifier","src":"2865:3:101"},"nativeSrc":"2865:14:101","nodeType":"YulFunctionCall","src":"2865:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"2850:11:101","nodeType":"YulIdentifier","src":"2850:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2716:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2784:3:101","nodeType":"YulTypedName","src":"2784:3:101","type":""},{"name":"length","nativeSrc":"2789:6:101","nodeType":"YulTypedName","src":"2789:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"2800:11:101","nodeType":"YulTypedName","src":"2800:11:101","type":""}],"src":"2716:169:101"},{"body":{"nativeSrc":"2997:127:101","nodeType":"YulBlock","src":"2997:127:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3019:6:101","nodeType":"YulIdentifier","src":"3019:6:101"},{"kind":"number","nativeSrc":"3027:1:101","nodeType":"YulLiteral","src":"3027:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3015:3:101","nodeType":"YulIdentifier","src":"3015:3:101"},"nativeSrc":"3015:14:101","nodeType":"YulFunctionCall","src":"3015:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"3031:34:101","nodeType":"YulLiteral","src":"3031:34:101","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"3008:6:101","nodeType":"YulIdentifier","src":"3008:6:101"},"nativeSrc":"3008:58:101","nodeType":"YulFunctionCall","src":"3008:58:101"},"nativeSrc":"3008:58:101","nodeType":"YulExpressionStatement","src":"3008:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3087:6:101","nodeType":"YulIdentifier","src":"3087:6:101"},{"kind":"number","nativeSrc":"3095:2:101","nodeType":"YulLiteral","src":"3095:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3083:3:101","nodeType":"YulIdentifier","src":"3083:3:101"},"nativeSrc":"3083:15:101","nodeType":"YulFunctionCall","src":"3083:15:101"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"3100:16:101","nodeType":"YulLiteral","src":"3100:16:101","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"3076:6:101","nodeType":"YulIdentifier","src":"3076:6:101"},"nativeSrc":"3076:41:101","nodeType":"YulFunctionCall","src":"3076:41:101"},"nativeSrc":"3076:41:101","nodeType":"YulExpressionStatement","src":"3076:41:101"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"2891:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2989:6:101","nodeType":"YulTypedName","src":"2989:6:101","type":""}],"src":"2891:233:101"},{"body":{"nativeSrc":"3276:220:101","nodeType":"YulBlock","src":"3276:220:101","statements":[{"nativeSrc":"3286:74:101","nodeType":"YulAssignment","src":"3286:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"3352:3:101","nodeType":"YulIdentifier","src":"3352:3:101"},{"kind":"number","nativeSrc":"3357:2:101","nodeType":"YulLiteral","src":"3357:2:101","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3293:58:101","nodeType":"YulIdentifier","src":"3293:58:101"},"nativeSrc":"3293:67:101","nodeType":"YulFunctionCall","src":"3293:67:101"},"variableNames":[{"name":"pos","nativeSrc":"3286:3:101","nodeType":"YulIdentifier","src":"3286:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3458:3:101","nodeType":"YulIdentifier","src":"3458:3:101"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"3369:88:101","nodeType":"YulIdentifier","src":"3369:88:101"},"nativeSrc":"3369:93:101","nodeType":"YulFunctionCall","src":"3369:93:101"},"nativeSrc":"3369:93:101","nodeType":"YulExpressionStatement","src":"3369:93:101"},{"nativeSrc":"3471:19:101","nodeType":"YulAssignment","src":"3471:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"3482:3:101","nodeType":"YulIdentifier","src":"3482:3:101"},{"kind":"number","nativeSrc":"3487:2:101","nodeType":"YulLiteral","src":"3487:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3478:3:101","nodeType":"YulIdentifier","src":"3478:3:101"},"nativeSrc":"3478:12:101","nodeType":"YulFunctionCall","src":"3478:12:101"},"variableNames":[{"name":"end","nativeSrc":"3471:3:101","nodeType":"YulIdentifier","src":"3471:3:101"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"3130:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3264:3:101","nodeType":"YulTypedName","src":"3264:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3272:3:101","nodeType":"YulTypedName","src":"3272:3:101","type":""}],"src":"3130:366:101"},{"body":{"nativeSrc":"3673:248:101","nodeType":"YulBlock","src":"3673:248:101","statements":[{"nativeSrc":"3683:26:101","nodeType":"YulAssignment","src":"3683:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3695:9:101","nodeType":"YulIdentifier","src":"3695:9:101"},{"kind":"number","nativeSrc":"3706:2:101","nodeType":"YulLiteral","src":"3706:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3691:3:101","nodeType":"YulIdentifier","src":"3691:3:101"},"nativeSrc":"3691:18:101","nodeType":"YulFunctionCall","src":"3691:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3683:4:101","nodeType":"YulIdentifier","src":"3683:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3730:9:101","nodeType":"YulIdentifier","src":"3730:9:101"},{"kind":"number","nativeSrc":"3741:1:101","nodeType":"YulLiteral","src":"3741:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3726:3:101","nodeType":"YulIdentifier","src":"3726:3:101"},"nativeSrc":"3726:17:101","nodeType":"YulFunctionCall","src":"3726:17:101"},{"arguments":[{"name":"tail","nativeSrc":"3749:4:101","nodeType":"YulIdentifier","src":"3749:4:101"},{"name":"headStart","nativeSrc":"3755:9:101","nodeType":"YulIdentifier","src":"3755:9:101"}],"functionName":{"name":"sub","nativeSrc":"3745:3:101","nodeType":"YulIdentifier","src":"3745:3:101"},"nativeSrc":"3745:20:101","nodeType":"YulFunctionCall","src":"3745:20:101"}],"functionName":{"name":"mstore","nativeSrc":"3719:6:101","nodeType":"YulIdentifier","src":"3719:6:101"},"nativeSrc":"3719:47:101","nodeType":"YulFunctionCall","src":"3719:47:101"},"nativeSrc":"3719:47:101","nodeType":"YulExpressionStatement","src":"3719:47:101"},{"nativeSrc":"3775:139:101","nodeType":"YulAssignment","src":"3775:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"3909:4:101","nodeType":"YulIdentifier","src":"3909:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"3783:124:101","nodeType":"YulIdentifier","src":"3783:124:101"},"nativeSrc":"3783:131:101","nodeType":"YulFunctionCall","src":"3783:131:101"},"variableNames":[{"name":"tail","nativeSrc":"3775:4:101","nodeType":"YulIdentifier","src":"3775:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3502:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3653:9:101","nodeType":"YulTypedName","src":"3653:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3668:4:101","nodeType":"YulTypedName","src":"3668:4:101","type":""}],"src":"3502:419:101"},{"body":{"nativeSrc":"3980:32:101","nodeType":"YulBlock","src":"3980:32:101","statements":[{"nativeSrc":"3990:16:101","nodeType":"YulAssignment","src":"3990:16:101","value":{"name":"value","nativeSrc":"4001:5:101","nodeType":"YulIdentifier","src":"4001:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3990:7:101","nodeType":"YulIdentifier","src":"3990:7:101"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"3927:85:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3962:5:101","nodeType":"YulTypedName","src":"3962:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3972:7:101","nodeType":"YulTypedName","src":"3972:7:101","type":""}],"src":"3927:85:101"},{"body":{"nativeSrc":"4061:43:101","nodeType":"YulBlock","src":"4061:43:101","statements":[{"nativeSrc":"4071:27:101","nodeType":"YulAssignment","src":"4071:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4086:5:101","nodeType":"YulIdentifier","src":"4086:5:101"},{"kind":"number","nativeSrc":"4093:4:101","nodeType":"YulLiteral","src":"4093:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4082:3:101","nodeType":"YulIdentifier","src":"4082:3:101"},"nativeSrc":"4082:16:101","nodeType":"YulFunctionCall","src":"4082:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4071:7:101","nodeType":"YulIdentifier","src":"4071:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4018:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4043:5:101","nodeType":"YulTypedName","src":"4043:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4053:7:101","nodeType":"YulTypedName","src":"4053:7:101","type":""}],"src":"4018:86:101"},{"body":{"nativeSrc":"4142:28:101","nodeType":"YulBlock","src":"4142:28:101","statements":[{"nativeSrc":"4152:12:101","nodeType":"YulAssignment","src":"4152:12:101","value":{"name":"value","nativeSrc":"4159:5:101","nodeType":"YulIdentifier","src":"4159:5:101"},"variableNames":[{"name":"ret","nativeSrc":"4152:3:101","nodeType":"YulIdentifier","src":"4152:3:101"}]}]},"name":"identity","nativeSrc":"4110:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4128:5:101","nodeType":"YulTypedName","src":"4128:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4138:3:101","nodeType":"YulTypedName","src":"4138:3:101","type":""}],"src":"4110:60:101"},{"body":{"nativeSrc":"4242:88:101","nodeType":"YulBlock","src":"4242:88:101","statements":[{"nativeSrc":"4252:72:101","nodeType":"YulAssignment","src":"4252:72:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4316:5:101","nodeType":"YulIdentifier","src":"4316:5:101"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"4290:25:101","nodeType":"YulIdentifier","src":"4290:25:101"},"nativeSrc":"4290:32:101","nodeType":"YulFunctionCall","src":"4290:32:101"}],"functionName":{"name":"identity","nativeSrc":"4281:8:101","nodeType":"YulIdentifier","src":"4281:8:101"},"nativeSrc":"4281:42:101","nodeType":"YulFunctionCall","src":"4281:42:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4265:15:101","nodeType":"YulIdentifier","src":"4265:15:101"},"nativeSrc":"4265:59:101","nodeType":"YulFunctionCall","src":"4265:59:101"},"variableNames":[{"name":"converted","nativeSrc":"4252:9:101","nodeType":"YulIdentifier","src":"4252:9:101"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"4176:154:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4222:5:101","nodeType":"YulTypedName","src":"4222:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4232:9:101","nodeType":"YulTypedName","src":"4232:9:101","type":""}],"src":"4176:154:101"},{"body":{"nativeSrc":"4407:72:101","nodeType":"YulBlock","src":"4407:72:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4424:3:101","nodeType":"YulIdentifier","src":"4424:3:101"},{"arguments":[{"name":"value","nativeSrc":"4466:5:101","nodeType":"YulIdentifier","src":"4466:5:101"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"4429:36:101","nodeType":"YulIdentifier","src":"4429:36:101"},"nativeSrc":"4429:43:101","nodeType":"YulFunctionCall","src":"4429:43:101"}],"functionName":{"name":"mstore","nativeSrc":"4417:6:101","nodeType":"YulIdentifier","src":"4417:6:101"},"nativeSrc":"4417:56:101","nodeType":"YulFunctionCall","src":"4417:56:101"},"nativeSrc":"4417:56:101","nodeType":"YulExpressionStatement","src":"4417:56:101"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"4336:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4395:5:101","nodeType":"YulTypedName","src":"4395:5:101","type":""},{"name":"pos","nativeSrc":"4402:3:101","nodeType":"YulTypedName","src":"4402:3:101","type":""}],"src":"4336:143:101"},{"body":{"nativeSrc":"4589:130:101","nodeType":"YulBlock","src":"4589:130:101","statements":[{"nativeSrc":"4599:26:101","nodeType":"YulAssignment","src":"4599:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4611:9:101","nodeType":"YulIdentifier","src":"4611:9:101"},{"kind":"number","nativeSrc":"4622:2:101","nodeType":"YulLiteral","src":"4622:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4607:3:101","nodeType":"YulIdentifier","src":"4607:3:101"},"nativeSrc":"4607:18:101","nodeType":"YulFunctionCall","src":"4607:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4599:4:101","nodeType":"YulIdentifier","src":"4599:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4685:6:101","nodeType":"YulIdentifier","src":"4685:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4698:9:101","nodeType":"YulIdentifier","src":"4698:9:101"},{"kind":"number","nativeSrc":"4709:1:101","nodeType":"YulLiteral","src":"4709:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4694:3:101","nodeType":"YulIdentifier","src":"4694:3:101"},"nativeSrc":"4694:17:101","nodeType":"YulFunctionCall","src":"4694:17:101"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"4635:49:101","nodeType":"YulIdentifier","src":"4635:49:101"},"nativeSrc":"4635:77:101","nodeType":"YulFunctionCall","src":"4635:77:101"},"nativeSrc":"4635:77:101","nodeType":"YulExpressionStatement","src":"4635:77:101"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"4485:234:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4561:9:101","nodeType":"YulTypedName","src":"4561:9:101","type":""},{"name":"value0","nativeSrc":"4573:6:101","nodeType":"YulTypedName","src":"4573:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4584:4:101","nodeType":"YulTypedName","src":"4584:4:101","type":""}],"src":"4485:234:101"},{"body":{"nativeSrc":"4831:119:101","nodeType":"YulBlock","src":"4831:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4853:6:101","nodeType":"YulIdentifier","src":"4853:6:101"},{"kind":"number","nativeSrc":"4861:1:101","nodeType":"YulLiteral","src":"4861:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4849:3:101","nodeType":"YulIdentifier","src":"4849:3:101"},"nativeSrc":"4849:14:101","nodeType":"YulFunctionCall","src":"4849:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"4865:34:101","nodeType":"YulLiteral","src":"4865:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"4842:6:101","nodeType":"YulIdentifier","src":"4842:6:101"},"nativeSrc":"4842:58:101","nodeType":"YulFunctionCall","src":"4842:58:101"},"nativeSrc":"4842:58:101","nodeType":"YulExpressionStatement","src":"4842:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4921:6:101","nodeType":"YulIdentifier","src":"4921:6:101"},{"kind":"number","nativeSrc":"4929:2:101","nodeType":"YulLiteral","src":"4929:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4917:3:101","nodeType":"YulIdentifier","src":"4917:3:101"},"nativeSrc":"4917:15:101","nodeType":"YulFunctionCall","src":"4917:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"4934:8:101","nodeType":"YulLiteral","src":"4934:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"4910:6:101","nodeType":"YulIdentifier","src":"4910:6:101"},"nativeSrc":"4910:33:101","nodeType":"YulFunctionCall","src":"4910:33:101"},"nativeSrc":"4910:33:101","nodeType":"YulExpressionStatement","src":"4910:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"4725:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4823:6:101","nodeType":"YulTypedName","src":"4823:6:101","type":""}],"src":"4725:225:101"},{"body":{"nativeSrc":"5102:220:101","nodeType":"YulBlock","src":"5102:220:101","statements":[{"nativeSrc":"5112:74:101","nodeType":"YulAssignment","src":"5112:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5178:3:101","nodeType":"YulIdentifier","src":"5178:3:101"},{"kind":"number","nativeSrc":"5183:2:101","nodeType":"YulLiteral","src":"5183:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5119:58:101","nodeType":"YulIdentifier","src":"5119:58:101"},"nativeSrc":"5119:67:101","nodeType":"YulFunctionCall","src":"5119:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5284:3:101","nodeType":"YulIdentifier","src":"5284:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"5195:88:101","nodeType":"YulIdentifier","src":"5195:88:101"},"nativeSrc":"5195:93:101","nodeType":"YulFunctionCall","src":"5195:93:101"},"nativeSrc":"5195:93:101","nodeType":"YulExpressionStatement","src":"5195:93:101"},{"nativeSrc":"5297:19:101","nodeType":"YulAssignment","src":"5297:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5308:3:101","nodeType":"YulIdentifier","src":"5308:3:101"},{"kind":"number","nativeSrc":"5313:2:101","nodeType":"YulLiteral","src":"5313:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5304:3:101","nodeType":"YulIdentifier","src":"5304:3:101"},"nativeSrc":"5304:12:101","nodeType":"YulFunctionCall","src":"5304:12:101"},"variableNames":[{"name":"end","nativeSrc":"5297:3:101","nodeType":"YulIdentifier","src":"5297:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"4956:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5090:3:101","nodeType":"YulTypedName","src":"5090:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5098:3:101","nodeType":"YulTypedName","src":"5098:3:101","type":""}],"src":"4956:366:101"},{"body":{"nativeSrc":"5499:248:101","nodeType":"YulBlock","src":"5499:248:101","statements":[{"nativeSrc":"5509:26:101","nodeType":"YulAssignment","src":"5509:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5521:9:101","nodeType":"YulIdentifier","src":"5521:9:101"},{"kind":"number","nativeSrc":"5532:2:101","nodeType":"YulLiteral","src":"5532:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5517:3:101","nodeType":"YulIdentifier","src":"5517:3:101"},"nativeSrc":"5517:18:101","nodeType":"YulFunctionCall","src":"5517:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5509:4:101","nodeType":"YulIdentifier","src":"5509:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5556:9:101","nodeType":"YulIdentifier","src":"5556:9:101"},{"kind":"number","nativeSrc":"5567:1:101","nodeType":"YulLiteral","src":"5567:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5552:3:101","nodeType":"YulIdentifier","src":"5552:3:101"},"nativeSrc":"5552:17:101","nodeType":"YulFunctionCall","src":"5552:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5575:4:101","nodeType":"YulIdentifier","src":"5575:4:101"},{"name":"headStart","nativeSrc":"5581:9:101","nodeType":"YulIdentifier","src":"5581:9:101"}],"functionName":{"name":"sub","nativeSrc":"5571:3:101","nodeType":"YulIdentifier","src":"5571:3:101"},"nativeSrc":"5571:20:101","nodeType":"YulFunctionCall","src":"5571:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5545:6:101","nodeType":"YulIdentifier","src":"5545:6:101"},"nativeSrc":"5545:47:101","nodeType":"YulFunctionCall","src":"5545:47:101"},"nativeSrc":"5545:47:101","nodeType":"YulExpressionStatement","src":"5545:47:101"},{"nativeSrc":"5601:139:101","nodeType":"YulAssignment","src":"5601:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5735:4:101","nodeType":"YulIdentifier","src":"5735:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"5609:124:101","nodeType":"YulIdentifier","src":"5609:124:101"},"nativeSrc":"5609:131:101","nodeType":"YulFunctionCall","src":"5609:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5601:4:101","nodeType":"YulIdentifier","src":"5601:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5328:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5479:9:101","nodeType":"YulTypedName","src":"5479:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5494:4:101","nodeType":"YulTypedName","src":"5494:4:101","type":""}],"src":"5328:419:101"},{"body":{"nativeSrc":"5859:76:101","nodeType":"YulBlock","src":"5859:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5881:6:101","nodeType":"YulIdentifier","src":"5881:6:101"},{"kind":"number","nativeSrc":"5889:1:101","nodeType":"YulLiteral","src":"5889:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5877:3:101","nodeType":"YulIdentifier","src":"5877:3:101"},"nativeSrc":"5877:14:101","nodeType":"YulFunctionCall","src":"5877:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"5893:34:101","nodeType":"YulLiteral","src":"5893:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"5870:6:101","nodeType":"YulIdentifier","src":"5870:6:101"},"nativeSrc":"5870:58:101","nodeType":"YulFunctionCall","src":"5870:58:101"},"nativeSrc":"5870:58:101","nodeType":"YulExpressionStatement","src":"5870:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"5753:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5851:6:101","nodeType":"YulTypedName","src":"5851:6:101","type":""}],"src":"5753:182:101"},{"body":{"nativeSrc":"6087:220:101","nodeType":"YulBlock","src":"6087:220:101","statements":[{"nativeSrc":"6097:74:101","nodeType":"YulAssignment","src":"6097:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6163:3:101","nodeType":"YulIdentifier","src":"6163:3:101"},{"kind":"number","nativeSrc":"6168:2:101","nodeType":"YulLiteral","src":"6168:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6104:58:101","nodeType":"YulIdentifier","src":"6104:58:101"},"nativeSrc":"6104:67:101","nodeType":"YulFunctionCall","src":"6104:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6097:3:101","nodeType":"YulIdentifier","src":"6097:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6269:3:101","nodeType":"YulIdentifier","src":"6269:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"6180:88:101","nodeType":"YulIdentifier","src":"6180:88:101"},"nativeSrc":"6180:93:101","nodeType":"YulFunctionCall","src":"6180:93:101"},"nativeSrc":"6180:93:101","nodeType":"YulExpressionStatement","src":"6180:93:101"},{"nativeSrc":"6282:19:101","nodeType":"YulAssignment","src":"6282:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6293:3:101","nodeType":"YulIdentifier","src":"6293:3:101"},{"kind":"number","nativeSrc":"6298:2:101","nodeType":"YulLiteral","src":"6298:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6289:3:101","nodeType":"YulIdentifier","src":"6289:3:101"},"nativeSrc":"6289:12:101","nodeType":"YulFunctionCall","src":"6289:12:101"},"variableNames":[{"name":"end","nativeSrc":"6282:3:101","nodeType":"YulIdentifier","src":"6282:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"5941:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6075:3:101","nodeType":"YulTypedName","src":"6075:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6083:3:101","nodeType":"YulTypedName","src":"6083:3:101","type":""}],"src":"5941:366:101"},{"body":{"nativeSrc":"6484:248:101","nodeType":"YulBlock","src":"6484:248:101","statements":[{"nativeSrc":"6494:26:101","nodeType":"YulAssignment","src":"6494:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6506:9:101","nodeType":"YulIdentifier","src":"6506:9:101"},{"kind":"number","nativeSrc":"6517:2:101","nodeType":"YulLiteral","src":"6517:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6502:3:101","nodeType":"YulIdentifier","src":"6502:3:101"},"nativeSrc":"6502:18:101","nodeType":"YulFunctionCall","src":"6502:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6494:4:101","nodeType":"YulIdentifier","src":"6494:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6541:9:101","nodeType":"YulIdentifier","src":"6541:9:101"},{"kind":"number","nativeSrc":"6552:1:101","nodeType":"YulLiteral","src":"6552:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6537:3:101","nodeType":"YulIdentifier","src":"6537:3:101"},"nativeSrc":"6537:17:101","nodeType":"YulFunctionCall","src":"6537:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6560:4:101","nodeType":"YulIdentifier","src":"6560:4:101"},{"name":"headStart","nativeSrc":"6566:9:101","nodeType":"YulIdentifier","src":"6566:9:101"}],"functionName":{"name":"sub","nativeSrc":"6556:3:101","nodeType":"YulIdentifier","src":"6556:3:101"},"nativeSrc":"6556:20:101","nodeType":"YulFunctionCall","src":"6556:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6530:6:101","nodeType":"YulIdentifier","src":"6530:6:101"},"nativeSrc":"6530:47:101","nodeType":"YulFunctionCall","src":"6530:47:101"},"nativeSrc":"6530:47:101","nodeType":"YulExpressionStatement","src":"6530:47:101"},{"nativeSrc":"6586:139:101","nodeType":"YulAssignment","src":"6586:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6720:4:101","nodeType":"YulIdentifier","src":"6720:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"6594:124:101","nodeType":"YulIdentifier","src":"6594:124:101"},"nativeSrc":"6594:131:101","nodeType":"YulFunctionCall","src":"6594:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6586:4:101","nodeType":"YulIdentifier","src":"6586:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6313:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6464:9:101","nodeType":"YulTypedName","src":"6464:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6479:4:101","nodeType":"YulTypedName","src":"6479:4:101","type":""}],"src":"6313:419:101"},{"body":{"nativeSrc":"6844:124:101","nodeType":"YulBlock","src":"6844:124:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6866:6:101","nodeType":"YulIdentifier","src":"6866:6:101"},{"kind":"number","nativeSrc":"6874:1:101","nodeType":"YulLiteral","src":"6874:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6862:3:101","nodeType":"YulIdentifier","src":"6862:3:101"},"nativeSrc":"6862:14:101","nodeType":"YulFunctionCall","src":"6862:14:101"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"6878:34:101","nodeType":"YulLiteral","src":"6878:34:101","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"6855:6:101","nodeType":"YulIdentifier","src":"6855:6:101"},"nativeSrc":"6855:58:101","nodeType":"YulFunctionCall","src":"6855:58:101"},"nativeSrc":"6855:58:101","nodeType":"YulExpressionStatement","src":"6855:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6934:6:101","nodeType":"YulIdentifier","src":"6934:6:101"},{"kind":"number","nativeSrc":"6942:2:101","nodeType":"YulLiteral","src":"6942:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6930:3:101","nodeType":"YulIdentifier","src":"6930:3:101"},"nativeSrc":"6930:15:101","nodeType":"YulFunctionCall","src":"6930:15:101"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"6947:13:101","nodeType":"YulLiteral","src":"6947:13:101","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"6923:6:101","nodeType":"YulIdentifier","src":"6923:6:101"},"nativeSrc":"6923:38:101","nodeType":"YulFunctionCall","src":"6923:38:101"},"nativeSrc":"6923:38:101","nodeType":"YulExpressionStatement","src":"6923:38:101"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"6738:230:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6836:6:101","nodeType":"YulTypedName","src":"6836:6:101","type":""}],"src":"6738:230:101"},{"body":{"nativeSrc":"7120:220:101","nodeType":"YulBlock","src":"7120:220:101","statements":[{"nativeSrc":"7130:74:101","nodeType":"YulAssignment","src":"7130:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7196:3:101","nodeType":"YulIdentifier","src":"7196:3:101"},{"kind":"number","nativeSrc":"7201:2:101","nodeType":"YulLiteral","src":"7201:2:101","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7137:58:101","nodeType":"YulIdentifier","src":"7137:58:101"},"nativeSrc":"7137:67:101","nodeType":"YulFunctionCall","src":"7137:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7130:3:101","nodeType":"YulIdentifier","src":"7130:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7302:3:101","nodeType":"YulIdentifier","src":"7302:3:101"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"7213:88:101","nodeType":"YulIdentifier","src":"7213:88:101"},"nativeSrc":"7213:93:101","nodeType":"YulFunctionCall","src":"7213:93:101"},"nativeSrc":"7213:93:101","nodeType":"YulExpressionStatement","src":"7213:93:101"},{"nativeSrc":"7315:19:101","nodeType":"YulAssignment","src":"7315:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7326:3:101","nodeType":"YulIdentifier","src":"7326:3:101"},{"kind":"number","nativeSrc":"7331:2:101","nodeType":"YulLiteral","src":"7331:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7322:3:101","nodeType":"YulIdentifier","src":"7322:3:101"},"nativeSrc":"7322:12:101","nodeType":"YulFunctionCall","src":"7322:12:101"},"variableNames":[{"name":"end","nativeSrc":"7315:3:101","nodeType":"YulIdentifier","src":"7315:3:101"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"6974:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7108:3:101","nodeType":"YulTypedName","src":"7108:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7116:3:101","nodeType":"YulTypedName","src":"7116:3:101","type":""}],"src":"6974:366:101"},{"body":{"nativeSrc":"7517:248:101","nodeType":"YulBlock","src":"7517:248:101","statements":[{"nativeSrc":"7527:26:101","nodeType":"YulAssignment","src":"7527:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7539:9:101","nodeType":"YulIdentifier","src":"7539:9:101"},{"kind":"number","nativeSrc":"7550:2:101","nodeType":"YulLiteral","src":"7550:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7535:3:101","nodeType":"YulIdentifier","src":"7535:3:101"},"nativeSrc":"7535:18:101","nodeType":"YulFunctionCall","src":"7535:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7527:4:101","nodeType":"YulIdentifier","src":"7527:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7574:9:101","nodeType":"YulIdentifier","src":"7574:9:101"},{"kind":"number","nativeSrc":"7585:1:101","nodeType":"YulLiteral","src":"7585:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7570:3:101","nodeType":"YulIdentifier","src":"7570:3:101"},"nativeSrc":"7570:17:101","nodeType":"YulFunctionCall","src":"7570:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7593:4:101","nodeType":"YulIdentifier","src":"7593:4:101"},{"name":"headStart","nativeSrc":"7599:9:101","nodeType":"YulIdentifier","src":"7599:9:101"}],"functionName":{"name":"sub","nativeSrc":"7589:3:101","nodeType":"YulIdentifier","src":"7589:3:101"},"nativeSrc":"7589:20:101","nodeType":"YulFunctionCall","src":"7589:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7563:6:101","nodeType":"YulIdentifier","src":"7563:6:101"},"nativeSrc":"7563:47:101","nodeType":"YulFunctionCall","src":"7563:47:101"},"nativeSrc":"7563:47:101","nodeType":"YulExpressionStatement","src":"7563:47:101"},{"nativeSrc":"7619:139:101","nodeType":"YulAssignment","src":"7619:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"7753:4:101","nodeType":"YulIdentifier","src":"7753:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"7627:124:101","nodeType":"YulIdentifier","src":"7627:124:101"},"nativeSrc":"7627:131:101","nodeType":"YulFunctionCall","src":"7627:131:101"},"variableNames":[{"name":"tail","nativeSrc":"7619:4:101","nodeType":"YulIdentifier","src":"7619:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7346:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7497:9:101","nodeType":"YulTypedName","src":"7497:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7512:4:101","nodeType":"YulTypedName","src":"7512:4:101","type":""}],"src":"7346:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610079575f3560e01c8063715018a611610058578063715018a6146101055780638129fc1c1461010d5780638da5cb5b14610115578063f2fde38b1461012e575f80fd5b8062e4768b1461007d57806341976e09146100a85780635e9a523c146100e6575b5f80fd5b6100a661008b366004610371565b6001600160a01b039091165f90815260656020526040902055565b005b6100d06100b63660046103ab565b6001600160a01b03165f9081526065602052604090205490565b6040516100dd91906103d9565b60405180910390f35b6100d06100f43660046103ab565b60656020525f908152604090205481565b6100a6610141565b6100a6610154565b6033546001600160a01b03166040516100dd91906103f0565b6100a661013c3660046103ab565b610226565b61014961025d565b6101525f610287565b565b5f54610100900460ff161580801561017257505f54600160ff909116105b8061018b5750303b15801561018b57505f5460ff166001145b6101b05760405162461bcd60e51b81526004016101a79061044b565b60405180910390fd5b5f805460ff1916600117905580156101d1575f805461ff0019166101001790555b6101d96102d8565b8015610223575f805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061021a9060019061046e565b60405180910390a15b50565b61022e61025d565b6001600160a01b0381166102545760405162461bcd60e51b81526004016101a7906104be565b61022381610287565b6033546001600160a01b031633146101525760405162461bcd60e51b81526004016101a7906104ce565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166102fe5760405162461bcd60e51b81526004016101a79061054f565b6101525f54610100900460ff166103275760405162461bcd60e51b81526004016101a79061054f565b61015233610287565b5f6001600160a01b0382165b92915050565b61034b81610330565b8114610223575f80fd5b803561033c81610342565b8061034b565b803561033c81610360565b5f8060408385031215610385576103855f80fd5b5f6103908585610355565b92505060206103a185828601610366565b9150509250929050565b5f602082840312156103be576103be5f80fd5b5f6103c98484610355565b949350505050565b805b82525050565b6020810161033c82846103d1565b6103d381610330565b6020810161033c82846103e7565b602e81525f602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291505b5060400190565b6020808252810161033c816103fe565b5f60ff821661033c565b6103d38161045b565b6020810161033c8284610465565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610444565b6020808252810161033c8161047c565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161033c565b602b81525f602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150610444565b6020808252810161033c8161050856fea26469706673582212207b7bb16430d698220ea361c90a1575978d6ce10df71250beccacfbf8f84c886b64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x12E JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0xE4768B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x5E9A523C EQ PUSH2 0xE6 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA6 PUSH2 0x8B CALLDATASIZE PUSH1 0x4 PUSH2 0x371 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD0 PUSH2 0xB6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x65 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD0 PUSH2 0xF4 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x65 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x141 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x154 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x3F0 JUMP JUMPDEST PUSH2 0xA6 PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x3AB JUMP JUMPDEST PUSH2 0x226 JUMP JUMPDEST PUSH2 0x149 PUSH2 0x25D JUMP JUMPDEST PUSH2 0x152 PUSH0 PUSH2 0x287 JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x172 JUMPI POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x18B JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B JUMPI POP PUSH0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x44B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1D1 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1D9 PUSH2 0x2D8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x223 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0x21A SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x22E PUSH2 0x25D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x254 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x4BE JUMP JUMPDEST PUSH2 0x223 DUP2 PUSH2 0x287 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x152 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x4CE JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x54F JUMP JUMPDEST PUSH2 0x152 PUSH0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x327 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x54F JUMP JUMPDEST PUSH2 0x152 CALLER PUSH2 0x287 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x34B DUP2 PUSH2 0x330 JUMP JUMPDEST DUP2 EQ PUSH2 0x223 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x33C DUP2 PUSH2 0x342 JUMP JUMPDEST DUP1 PUSH2 0x34B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x33C DUP2 PUSH2 0x360 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x385 JUMPI PUSH2 0x385 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x390 DUP6 DUP6 PUSH2 0x355 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3A1 DUP6 DUP3 DUP7 ADD PUSH2 0x366 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BE JUMPI PUSH2 0x3BE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x3C9 DUP5 DUP5 PUSH2 0x355 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x33C DUP3 DUP5 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x3D3 DUP2 PUSH2 0x330 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x33C DUP3 DUP5 PUSH2 0x3E7 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x33C DUP2 PUSH2 0x3FE JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND PUSH2 0x33C JUMP JUMPDEST PUSH2 0x3D3 DUP2 PUSH2 0x45B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x33C DUP3 DUP5 PUSH2 0x465 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x444 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x33C DUP2 PUSH2 0x47C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x33C JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x444 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x33C DUP2 PUSH2 0x508 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x7BB16430D698220EA361C90A1575978D6CE10DF71250BECCACFBF8F8 0x4C DUP9 PUSH12 0x64736F6C6343000819003300 ","sourceMap":"243:524:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;511:100;;;;;;:::i;:::-;-1:-1:-1;;;;;578:18:71;;;;;;;:11;:18;;;;;:26;511:100;;;660:105;;;;;;:::i;:::-;-1:-1:-1;;;;;740:18:71;714:7;740:18;;;:11;:18;;;;;;;660:105;;;;;;;;:::i;:::-;;;;;;;;317:46;;;;;;:::i;:::-;;;;;;;;;;;;;;2085:101:4;;;:::i;431:74:71:-;;;:::i;1462:85:4:-;1534:6;;-1:-1:-1;;;;;1534:6:4;1462:85;;;;;;:::i;2335:198::-;;;;;;:::i;:::-;;:::i;2085:101::-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;431:74:71:-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1713:19:7;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:5;;;;;;;:::i;:::-;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:5;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:5;;;;;3562:65;482:16:71::1;:14;:16::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:5;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3647:99;3269:483;431:74:71:o;2335:198:4:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:4;::::1;2415:73;;;;-1:-1:-1::0;;;2415:73:4::1;;;;;;;:::i;:::-;2498:28;2517:8;2498:18;:28::i;1620:130::-:0;1534:6;;-1:-1:-1;;;;;1534:6:4;965:10:8;1683:23:4;1675:68;;;;-1:-1:-1;;;1675:68:4;;;;;;;:::i;2687:187::-;2779:6;;;-1:-1:-1;;;;;2795:17:4;;;-1:-1:-1;;;;;;2795:17:4;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1024:95::-;5374:13:5;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1086:26:4::1;5374:13:5::0;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:5;;;;;;;:::i;:::-;1197:32:4::1;965:10:8::0;1197:18:4::1;:32::i;466:96:101:-:0;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;924:122::-;1015:5;997:24;841:77;1052:139;1123:20;;1152:33;1123:20;1152:33;:::i;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;243:524:71;;;1328:79:101;1448:1;1473:53;1518:7;1498:9;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:329::-;1736:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:119;;;1791:79;243:524:71;;;1791:79:101;1911:1;1936:53;1981:7;1961:9;1936:53;:::i;:::-;1926:63;1677:329;-1:-1:-1;;;;1677:329:101:o;2012:118::-;2117:5;2099:24;2094:3;2087:37;2012:118;;:::o;2136:222::-;2267:2;2252:18;;2280:71;2256:9;2324:6;2280:71;:::i;2364:118::-;2451:24;2469:5;2451:24;:::i;2488:222::-;2619:2;2604:18;;2632:71;2608:9;2676:6;2632:71;:::i;3130:366::-;3357:2;2822:19;;3272:3;2874:4;2865:14;;3031:34;3008:58;;-1:-1:-1;;;3095:2:101;3083:15;;3076:41;3286:74;-1:-1:-1;3369:93:101;-1:-1:-1;3487:2:101;3478:12;;3130:366::o;3502:419::-;3706:2;3719:47;;;3691:18;;3783:131;3691:18;3783:131;:::i;4176:154::-;4232:9;4093:4;4082:16;;4265:59;4018:86;4336:143;4429:43;4466:5;4429:43;:::i;4485:234::-;4622:2;4607:18;;4635:77;4611:9;4685:6;4635:77;:::i;4956:366::-;5183:2;2822:19;;5098:3;2874:4;2865:14;;4865:34;4842:58;;-1:-1:-1;;;4929:2:101;4917:15;;4910:33;5112:74;-1:-1:-1;5195:93:101;4725:225;5328:419;5532:2;5545:47;;;5517:18;;5609:131;5517:18;5609:131;:::i;6313:419::-;6517:2;6530:47;;;6502:18;;;2822:19;;;5893:34;2865:14;;;5870:58;6289:12;;;6594:131;5941:366;6974;7201:2;2822:19;;7116:3;2874:4;2865:14;;6878:34;6855:58;;-1:-1:-1;;;6942:2:101;6930:15;;6923:38;7130:74;-1:-1:-1;7213:93:101;6738:230;7346:419;7550:2;7563:47;;;7535:18;;7627:131;7535:18;7627:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"285800","executionCost":"322","totalCost":"286122"},"external":{"assetPrices(address)":"infinite","getPrice(address)":"infinite","initialize()":"infinite","owner()":"infinite","renounceOwnership()":"infinite","setPrice(address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"assetPrices(address)":"5e9a523c","getPrice(address)":"41976e09","initialize()":"8129fc1c","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setPrice(address,uint256)":"00e4768b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"assetPrices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"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\":{\"contracts/oracles/mocks/MockChainlinkOracle.sol\":\"MockChainlinkOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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 {Initializable} from \\\"../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\",\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport {Initializable} from \\\"../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    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/mocks/MockChainlinkOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { OracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\n\\ncontract MockChainlinkOracle is OwnableUpgradeable, OracleInterface {\\n    mapping(address => uint256) public assetPrices;\\n\\n    //set price in 6 decimal precision\\n    constructor() {}\\n\\n    function initialize() public initializer {\\n        __Ownable_init();\\n    }\\n\\n    function setPrice(address asset, uint256 price) external {\\n        assetPrices[asset] = price;\\n    }\\n\\n    //https://compound.finance/docs/prices\\n    function getPrice(address token) public view returns (uint256) {\\n        return assetPrices[token];\\n    }\\n}\\n\",\"keccak256\":\"0xb36fb8a2966b0f7ae27c38bcc958370edbc9516ec93bfa0ffa3b16de0886879f\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":349,"contract":"contracts/oracles/mocks/MockChainlinkOracle.sol:MockChainlinkOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":352,"contract":"contracts/oracles/mocks/MockChainlinkOracle.sol:MockChainlinkOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1019,"contract":"contracts/oracles/mocks/MockChainlinkOracle.sol:MockChainlinkOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":221,"contract":"contracts/oracles/mocks/MockChainlinkOracle.sol:MockChainlinkOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":341,"contract":"contracts/oracles/mocks/MockChainlinkOracle.sol:MockChainlinkOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":7313,"contract":"contracts/oracles/mocks/MockChainlinkOracle.sol:MockChainlinkOracle","label":"assetPrices","offset":0,"slot":"101","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/oracles/mocks/MockPendlePtOracle.sol":{"MockPendlePtOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"getOracleState","outputs":[{"internalType":"bool","name":"increaseCardinalityRequired","type":"bool"},{"internalType":"uint16","name":"cardinalityRequired","type":"uint16"},{"internalType":"bool","name":"oldestObservationSatisfied","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint32","name":"duration","type":"uint32"}],"name":"getPtToAssetRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint32","name":"duration","type":"uint32"}],"name":"getPtToSyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"ptToAssetRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"ptToSyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setPtToAssetRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint32","name":"duration","type":"uint32"},{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setPtToSyRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_7379":{"entryPoint":null,"id":7379,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":26,"id":1205,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50601633601a565b6069565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610565806100765f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063a31426d111610063578063a31426d11461013c578063abca0eab1461014f578063b151c07f1461018c578063b861c67c146101b6578063f2fde38b146101c9575f80fd5b8063678482751461009f578063715018a6146100df578063873e9600146100e95780638da5cb5b14610111578063a109e12a14610129575b5f80fd5b6100c96100ad366004610387565b600160209081525f928352604080842090915290825290205481565b6040516100d691906103c9565b60405180910390f35b6100e76101dc565b005b6101026100f7366004610387565b5f8060019250925092565b6040516100d6939291906103e9565b5f546001600160a01b03166040516100d69190610422565b6100e7610137366004610441565b6101ef565b6100c961014a366004610387565b610223565b6100c961015d366004610387565b6001600160a01b0382165f90815260016020908152604080832063ffffffff8516845290915290205492915050565b6100c961019a366004610387565b600260209081525f928352604080842090915290825290205481565b6100e76101c4366004610441565b610253565b6100e76101d736600461048d565b610287565b6101e46102ca565b6101ed5f6102f3565b565b6101f76102ca565b6001600160a01b039092165f90815260026020908152604080832063ffffffff90941683529290522055565b6001600160a01b0382165f90815260026020908152604080832063ffffffff851684529091529020545b92915050565b61025b6102ca565b6001600160a01b039092165f90815260016020908152604080832063ffffffff90941683529290522055565b61028f6102ca565b6001600160a01b0381166102be5760405162461bcd60e51b81526004016102b5906104ab565b60405180910390fd5b6102c7816102f3565b50565b5f546001600160a01b031633146101ed5760405162461bcd60e51b81526004016102b5906104f5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b03821661024d565b61035b81610342565b81146102c7575f80fd5b803561024d81610352565b63ffffffff811661035b565b803561024d81610370565b5f806040838503121561039b5761039b5f80fd5b5f6103a68585610365565b92505060206103b78582860161037c565b9150509250929050565b805b82525050565b6020810161024d82846103c1565b8015156103c3565b61ffff81166103c3565b606081016103f782866103d7565b61040460208301856103df565b61041160408301846103d7565b949350505050565b6103c381610342565b6020810161024d8284610419565b8061035b565b803561024d81610430565b5f805f60608486031215610456576104565f80fd5b5f6104618686610365565b93505060206104728682870161037c565b925050604061048386828701610436565b9150509250925092565b5f602082840312156104a0576104a05f80fd5b5f6104118484610365565b6020808252810161024d81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161024d56fea264697066735822122031911bb1643f00397d9f9c24b77c641210aa157954146492de4be8d8a7ee04ec64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 CALLER PUSH1 0x1A JUMP JUMPDEST PUSH1 0x69 JUMP JUMPDEST PUSH0 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 PUSH2 0x565 DUP1 PUSH2 0x76 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA31426D1 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xA31426D1 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0xABCA0EAB EQ PUSH2 0x14F JUMPI DUP1 PUSH4 0xB151C07F EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0xB861C67C EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x67848275 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0x873E9600 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0xA109E12A EQ PUSH2 0x129 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC9 PUSH2 0xAD CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE7 PUSH2 0x1DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x102 PUSH2 0xF7 CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E9 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x137 CALLDATASIZE PUSH1 0x4 PUSH2 0x441 JUMP JUMPDEST PUSH2 0x1EF JUMP JUMPDEST PUSH2 0xC9 PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH2 0x223 JUMP JUMPDEST PUSH2 0xC9 PUSH2 0x15D CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9 PUSH2 0x19A CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x441 JUMP JUMPDEST PUSH2 0x253 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x48D JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST PUSH2 0x1E4 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x1ED PUSH0 PUSH2 0x2F3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1F7 PUSH2 0x2CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25B PUSH2 0x2CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x28F PUSH2 0x2CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP1 PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C7 DUP2 PUSH2 0x2F3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP1 PUSH2 0x4F5 JUMP JUMPDEST PUSH0 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 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x24D JUMP JUMPDEST PUSH2 0x35B DUP2 PUSH2 0x342 JUMP JUMPDEST DUP2 EQ PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24D DUP2 PUSH2 0x352 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x35B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24D DUP2 PUSH2 0x370 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39B JUMPI PUSH2 0x39B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x3A6 DUP6 DUP6 PUSH2 0x365 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3B7 DUP6 DUP3 DUP7 ADD PUSH2 0x37C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24D DUP3 DUP5 PUSH2 0x3C1 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x3F7 DUP3 DUP7 PUSH2 0x3D7 JUMP JUMPDEST PUSH2 0x404 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3DF JUMP JUMPDEST PUSH2 0x411 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3D7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3C3 DUP2 PUSH2 0x342 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24D DUP3 DUP5 PUSH2 0x419 JUMP JUMPDEST DUP1 PUSH2 0x35B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24D DUP2 PUSH2 0x430 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x456 JUMPI PUSH2 0x456 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x461 DUP7 DUP7 PUSH2 0x365 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x472 DUP7 DUP3 DUP8 ADD PUSH2 0x37C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x483 DUP7 DUP3 DUP8 ADD PUSH2 0x436 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A0 JUMPI PUSH2 0x4A0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x411 DUP5 DUP5 PUSH2 0x365 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x24D DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x24D JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SWAP2 SHL 0xB1 PUSH5 0x3F00397D9F SWAP13 0x24 0xB7 PUSH29 0x641210AA157954146492DE4BE8D8A7EE04EC64736F6C63430008190033 ","sourceMap":"167:1115:72:-:0;;;373:26;;;;;;;;;-1:-1:-1;936:32:10;734:10:14;936:18:10;:32::i;:::-;167:1115:72;;2426:187:10;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;167:1115:72:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_1148":{"entryPoint":714,"id":1148,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":755,"id":1205,"parameterSlots":1,"returnSlots":0},"@getOracleState_7470":{"entryPoint":null,"id":7470,"parameterSlots":2,"returnSlots":3},"@getPtToAssetRate_7435":{"entryPoint":null,"id":7435,"parameterSlots":2,"returnSlots":1},"@getPtToSyRate_7451":{"entryPoint":547,"id":7451,"parameterSlots":2,"returnSlots":1},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@ptToAssetRate_7367":{"entryPoint":null,"id":7367,"parameterSlots":0,"returnSlots":0},"@ptToSyRate_7373":{"entryPoint":null,"id":7373,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_1162":{"entryPoint":476,"id":1162,"parameterSlots":0,"returnSlots":0},"@setPtToAssetRate_7399":{"entryPoint":595,"id":7399,"parameterSlots":3,"returnSlots":0},"@setPtToSyRate_7419":{"entryPoint":495,"id":7419,"parameterSlots":3,"returnSlots":0},"@transferOwnership_1185":{"entryPoint":647,"id":1185,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":869,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1078,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint32":{"entryPoint":892,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1165,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint32":{"entryPoint":903,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint32t_uint256":{"entryPoint":1089,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1049,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":983,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint16_to_t_uint16_fromStack":{"entryPoint":991,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":961,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1058,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint16_t_bool__to_t_bool_t_uint16_t_bool__fromStack_reversed":{"entryPoint":1001,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1195,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1269,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":969,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":834,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":850,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1072,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint32":{"entryPoint":880,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6737:101","nodeType":"YulBlock","src":"0:6737:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"885:49:101","nodeType":"YulBlock","src":"885:49:101","statements":[{"nativeSrc":"895:33:101","nodeType":"YulAssignment","src":"895:33:101","value":{"arguments":[{"name":"value","nativeSrc":"910:5:101","nodeType":"YulIdentifier","src":"910:5:101"},{"kind":"number","nativeSrc":"917:10:101","nodeType":"YulLiteral","src":"917:10:101","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"906:3:101","nodeType":"YulIdentifier","src":"906:3:101"},"nativeSrc":"906:22:101","nodeType":"YulFunctionCall","src":"906:22:101"},"variableNames":[{"name":"cleaned","nativeSrc":"895:7:101","nodeType":"YulIdentifier","src":"895:7:101"}]}]},"name":"cleanup_t_uint32","nativeSrc":"841:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"867:5:101","nodeType":"YulTypedName","src":"867:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"877:7:101","nodeType":"YulTypedName","src":"877:7:101","type":""}],"src":"841:93:101"},{"body":{"nativeSrc":"982:78:101","nodeType":"YulBlock","src":"982:78:101","statements":[{"body":{"nativeSrc":"1038:16:101","nodeType":"YulBlock","src":"1038:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1047:1:101","nodeType":"YulLiteral","src":"1047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1050:1:101","nodeType":"YulLiteral","src":"1050:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1040:6:101","nodeType":"YulIdentifier","src":"1040:6:101"},"nativeSrc":"1040:12:101","nodeType":"YulFunctionCall","src":"1040:12:101"},"nativeSrc":"1040:12:101","nodeType":"YulExpressionStatement","src":"1040:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1005:5:101","nodeType":"YulIdentifier","src":"1005:5:101"},{"arguments":[{"name":"value","nativeSrc":"1029:5:101","nodeType":"YulIdentifier","src":"1029:5:101"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"1012:16:101","nodeType":"YulIdentifier","src":"1012:16:101"},"nativeSrc":"1012:23:101","nodeType":"YulFunctionCall","src":"1012:23:101"}],"functionName":{"name":"eq","nativeSrc":"1002:2:101","nodeType":"YulIdentifier","src":"1002:2:101"},"nativeSrc":"1002:34:101","nodeType":"YulFunctionCall","src":"1002:34:101"}],"functionName":{"name":"iszero","nativeSrc":"995:6:101","nodeType":"YulIdentifier","src":"995:6:101"},"nativeSrc":"995:42:101","nodeType":"YulFunctionCall","src":"995:42:101"},"nativeSrc":"992:62:101","nodeType":"YulIf","src":"992:62:101"}]},"name":"validator_revert_t_uint32","nativeSrc":"940:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"975:5:101","nodeType":"YulTypedName","src":"975:5:101","type":""}],"src":"940:120:101"},{"body":{"nativeSrc":"1117:86:101","nodeType":"YulBlock","src":"1117:86:101","statements":[{"nativeSrc":"1127:29:101","nodeType":"YulAssignment","src":"1127:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1149:6:101","nodeType":"YulIdentifier","src":"1149:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1136:12:101","nodeType":"YulIdentifier","src":"1136:12:101"},"nativeSrc":"1136:20:101","nodeType":"YulFunctionCall","src":"1136:20:101"},"variableNames":[{"name":"value","nativeSrc":"1127:5:101","nodeType":"YulIdentifier","src":"1127:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1191:5:101","nodeType":"YulIdentifier","src":"1191:5:101"}],"functionName":{"name":"validator_revert_t_uint32","nativeSrc":"1165:25:101","nodeType":"YulIdentifier","src":"1165:25:101"},"nativeSrc":"1165:32:101","nodeType":"YulFunctionCall","src":"1165:32:101"},"nativeSrc":"1165:32:101","nodeType":"YulExpressionStatement","src":"1165:32:101"}]},"name":"abi_decode_t_uint32","nativeSrc":"1066:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1095:6:101","nodeType":"YulTypedName","src":"1095:6:101","type":""},{"name":"end","nativeSrc":"1103:3:101","nodeType":"YulTypedName","src":"1103:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1111:5:101","nodeType":"YulTypedName","src":"1111:5:101","type":""}],"src":"1066:137:101"},{"body":{"nativeSrc":"1291:390:101","nodeType":"YulBlock","src":"1291:390:101","statements":[{"body":{"nativeSrc":"1337:83:101","nodeType":"YulBlock","src":"1337:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1339:77:101","nodeType":"YulIdentifier","src":"1339:77:101"},"nativeSrc":"1339:79:101","nodeType":"YulFunctionCall","src":"1339:79:101"},"nativeSrc":"1339:79:101","nodeType":"YulExpressionStatement","src":"1339:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1312:7:101","nodeType":"YulIdentifier","src":"1312:7:101"},{"name":"headStart","nativeSrc":"1321:9:101","nodeType":"YulIdentifier","src":"1321:9:101"}],"functionName":{"name":"sub","nativeSrc":"1308:3:101","nodeType":"YulIdentifier","src":"1308:3:101"},"nativeSrc":"1308:23:101","nodeType":"YulFunctionCall","src":"1308:23:101"},{"kind":"number","nativeSrc":"1333:2:101","nodeType":"YulLiteral","src":"1333:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1304:3:101","nodeType":"YulIdentifier","src":"1304:3:101"},"nativeSrc":"1304:32:101","nodeType":"YulFunctionCall","src":"1304:32:101"},"nativeSrc":"1301:119:101","nodeType":"YulIf","src":"1301:119:101"},{"nativeSrc":"1430:117:101","nodeType":"YulBlock","src":"1430:117:101","statements":[{"nativeSrc":"1445:15:101","nodeType":"YulVariableDeclaration","src":"1445:15:101","value":{"kind":"number","nativeSrc":"1459:1:101","nodeType":"YulLiteral","src":"1459:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1449:6:101","nodeType":"YulTypedName","src":"1449:6:101","type":""}]},{"nativeSrc":"1474:63:101","nodeType":"YulAssignment","src":"1474:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1509:9:101","nodeType":"YulIdentifier","src":"1509:9:101"},{"name":"offset","nativeSrc":"1520:6:101","nodeType":"YulIdentifier","src":"1520:6:101"}],"functionName":{"name":"add","nativeSrc":"1505:3:101","nodeType":"YulIdentifier","src":"1505:3:101"},"nativeSrc":"1505:22:101","nodeType":"YulFunctionCall","src":"1505:22:101"},{"name":"dataEnd","nativeSrc":"1529:7:101","nodeType":"YulIdentifier","src":"1529:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1484:20:101","nodeType":"YulIdentifier","src":"1484:20:101"},"nativeSrc":"1484:53:101","nodeType":"YulFunctionCall","src":"1484:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1474:6:101","nodeType":"YulIdentifier","src":"1474:6:101"}]}]},{"nativeSrc":"1557:117:101","nodeType":"YulBlock","src":"1557:117:101","statements":[{"nativeSrc":"1572:16:101","nodeType":"YulVariableDeclaration","src":"1572:16:101","value":{"kind":"number","nativeSrc":"1586:2:101","nodeType":"YulLiteral","src":"1586:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1576:6:101","nodeType":"YulTypedName","src":"1576:6:101","type":""}]},{"nativeSrc":"1602:62:101","nodeType":"YulAssignment","src":"1602:62:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1636:9:101","nodeType":"YulIdentifier","src":"1636:9:101"},{"name":"offset","nativeSrc":"1647:6:101","nodeType":"YulIdentifier","src":"1647:6:101"}],"functionName":{"name":"add","nativeSrc":"1632:3:101","nodeType":"YulIdentifier","src":"1632:3:101"},"nativeSrc":"1632:22:101","nodeType":"YulFunctionCall","src":"1632:22:101"},{"name":"dataEnd","nativeSrc":"1656:7:101","nodeType":"YulIdentifier","src":"1656:7:101"}],"functionName":{"name":"abi_decode_t_uint32","nativeSrc":"1612:19:101","nodeType":"YulIdentifier","src":"1612:19:101"},"nativeSrc":"1612:52:101","nodeType":"YulFunctionCall","src":"1612:52:101"},"variableNames":[{"name":"value1","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint32","nativeSrc":"1209:472:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1253:9:101","nodeType":"YulTypedName","src":"1253:9:101","type":""},{"name":"dataEnd","nativeSrc":"1264:7:101","nodeType":"YulTypedName","src":"1264:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1276:6:101","nodeType":"YulTypedName","src":"1276:6:101","type":""},{"name":"value1","nativeSrc":"1284:6:101","nodeType":"YulTypedName","src":"1284:6:101","type":""}],"src":"1209:472:101"},{"body":{"nativeSrc":"1732:32:101","nodeType":"YulBlock","src":"1732:32:101","statements":[{"nativeSrc":"1742:16:101","nodeType":"YulAssignment","src":"1742:16:101","value":{"name":"value","nativeSrc":"1753:5:101","nodeType":"YulIdentifier","src":"1753:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1742:7:101","nodeType":"YulIdentifier","src":"1742:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1687:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1714:5:101","nodeType":"YulTypedName","src":"1714:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1724:7:101","nodeType":"YulTypedName","src":"1724:7:101","type":""}],"src":"1687:77:101"},{"body":{"nativeSrc":"1835:53:101","nodeType":"YulBlock","src":"1835:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1852:3:101","nodeType":"YulIdentifier","src":"1852:3:101"},{"arguments":[{"name":"value","nativeSrc":"1875:5:101","nodeType":"YulIdentifier","src":"1875:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1857:17:101","nodeType":"YulIdentifier","src":"1857:17:101"},"nativeSrc":"1857:24:101","nodeType":"YulFunctionCall","src":"1857:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1845:6:101","nodeType":"YulIdentifier","src":"1845:6:101"},"nativeSrc":"1845:37:101","nodeType":"YulFunctionCall","src":"1845:37:101"},"nativeSrc":"1845:37:101","nodeType":"YulExpressionStatement","src":"1845:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1770:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1823:5:101","nodeType":"YulTypedName","src":"1823:5:101","type":""},{"name":"pos","nativeSrc":"1830:3:101","nodeType":"YulTypedName","src":"1830:3:101","type":""}],"src":"1770:118:101"},{"body":{"nativeSrc":"1992:124:101","nodeType":"YulBlock","src":"1992:124:101","statements":[{"nativeSrc":"2002:26:101","nodeType":"YulAssignment","src":"2002:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2014:9:101","nodeType":"YulIdentifier","src":"2014:9:101"},{"kind":"number","nativeSrc":"2025:2:101","nodeType":"YulLiteral","src":"2025:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2010:3:101","nodeType":"YulIdentifier","src":"2010:3:101"},"nativeSrc":"2010:18:101","nodeType":"YulFunctionCall","src":"2010:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2002:4:101","nodeType":"YulIdentifier","src":"2002:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2082:6:101","nodeType":"YulIdentifier","src":"2082:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2095:9:101","nodeType":"YulIdentifier","src":"2095:9:101"},{"kind":"number","nativeSrc":"2106:1:101","nodeType":"YulLiteral","src":"2106:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2091:3:101","nodeType":"YulIdentifier","src":"2091:3:101"},"nativeSrc":"2091:17:101","nodeType":"YulFunctionCall","src":"2091:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2038:43:101","nodeType":"YulIdentifier","src":"2038:43:101"},"nativeSrc":"2038:71:101","nodeType":"YulFunctionCall","src":"2038:71:101"},"nativeSrc":"2038:71:101","nodeType":"YulExpressionStatement","src":"2038:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1894:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1964:9:101","nodeType":"YulTypedName","src":"1964:9:101","type":""},{"name":"value0","nativeSrc":"1976:6:101","nodeType":"YulTypedName","src":"1976:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1987:4:101","nodeType":"YulTypedName","src":"1987:4:101","type":""}],"src":"1894:222:101"},{"body":{"nativeSrc":"2164:48:101","nodeType":"YulBlock","src":"2164:48:101","statements":[{"nativeSrc":"2174:32:101","nodeType":"YulAssignment","src":"2174:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2199:5:101","nodeType":"YulIdentifier","src":"2199:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2192:6:101","nodeType":"YulIdentifier","src":"2192:6:101"},"nativeSrc":"2192:13:101","nodeType":"YulFunctionCall","src":"2192:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2185:6:101","nodeType":"YulIdentifier","src":"2185:6:101"},"nativeSrc":"2185:21:101","nodeType":"YulFunctionCall","src":"2185:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2174:7:101","nodeType":"YulIdentifier","src":"2174:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2122:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2146:5:101","nodeType":"YulTypedName","src":"2146:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2156:7:101","nodeType":"YulTypedName","src":"2156:7:101","type":""}],"src":"2122:90:101"},{"body":{"nativeSrc":"2277:50:101","nodeType":"YulBlock","src":"2277:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2294:3:101","nodeType":"YulIdentifier","src":"2294:3:101"},{"arguments":[{"name":"value","nativeSrc":"2314:5:101","nodeType":"YulIdentifier","src":"2314:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2299:14:101","nodeType":"YulIdentifier","src":"2299:14:101"},"nativeSrc":"2299:21:101","nodeType":"YulFunctionCall","src":"2299:21:101"}],"functionName":{"name":"mstore","nativeSrc":"2287:6:101","nodeType":"YulIdentifier","src":"2287:6:101"},"nativeSrc":"2287:34:101","nodeType":"YulFunctionCall","src":"2287:34:101"},"nativeSrc":"2287:34:101","nodeType":"YulExpressionStatement","src":"2287:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2218:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2265:5:101","nodeType":"YulTypedName","src":"2265:5:101","type":""},{"name":"pos","nativeSrc":"2272:3:101","nodeType":"YulTypedName","src":"2272:3:101","type":""}],"src":"2218:109:101"},{"body":{"nativeSrc":"2377:45:101","nodeType":"YulBlock","src":"2377:45:101","statements":[{"nativeSrc":"2387:29:101","nodeType":"YulAssignment","src":"2387:29:101","value":{"arguments":[{"name":"value","nativeSrc":"2402:5:101","nodeType":"YulIdentifier","src":"2402:5:101"},{"kind":"number","nativeSrc":"2409:6:101","nodeType":"YulLiteral","src":"2409:6:101","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"2398:3:101","nodeType":"YulIdentifier","src":"2398:3:101"},"nativeSrc":"2398:18:101","nodeType":"YulFunctionCall","src":"2398:18:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2387:7:101","nodeType":"YulIdentifier","src":"2387:7:101"}]}]},"name":"cleanup_t_uint16","nativeSrc":"2333:89:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2359:5:101","nodeType":"YulTypedName","src":"2359:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2369:7:101","nodeType":"YulTypedName","src":"2369:7:101","type":""}],"src":"2333:89:101"},{"body":{"nativeSrc":"2491:52:101","nodeType":"YulBlock","src":"2491:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2508:3:101","nodeType":"YulIdentifier","src":"2508:3:101"},{"arguments":[{"name":"value","nativeSrc":"2530:5:101","nodeType":"YulIdentifier","src":"2530:5:101"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"2513:16:101","nodeType":"YulIdentifier","src":"2513:16:101"},"nativeSrc":"2513:23:101","nodeType":"YulFunctionCall","src":"2513:23:101"}],"functionName":{"name":"mstore","nativeSrc":"2501:6:101","nodeType":"YulIdentifier","src":"2501:6:101"},"nativeSrc":"2501:36:101","nodeType":"YulFunctionCall","src":"2501:36:101"},"nativeSrc":"2501:36:101","nodeType":"YulExpressionStatement","src":"2501:36:101"}]},"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"2428:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2479:5:101","nodeType":"YulTypedName","src":"2479:5:101","type":""},{"name":"pos","nativeSrc":"2486:3:101","nodeType":"YulTypedName","src":"2486:3:101","type":""}],"src":"2428:115:101"},{"body":{"nativeSrc":"2689:274:101","nodeType":"YulBlock","src":"2689:274:101","statements":[{"nativeSrc":"2699:26:101","nodeType":"YulAssignment","src":"2699:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2711:9:101","nodeType":"YulIdentifier","src":"2711:9:101"},{"kind":"number","nativeSrc":"2722:2:101","nodeType":"YulLiteral","src":"2722:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2707:3:101","nodeType":"YulIdentifier","src":"2707:3:101"},"nativeSrc":"2707:18:101","nodeType":"YulFunctionCall","src":"2707:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2699:4:101","nodeType":"YulIdentifier","src":"2699:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2773:6:101","nodeType":"YulIdentifier","src":"2773:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2786:9:101","nodeType":"YulIdentifier","src":"2786:9:101"},{"kind":"number","nativeSrc":"2797:1:101","nodeType":"YulLiteral","src":"2797:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2782:3:101","nodeType":"YulIdentifier","src":"2782:3:101"},"nativeSrc":"2782:17:101","nodeType":"YulFunctionCall","src":"2782:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2735:37:101","nodeType":"YulIdentifier","src":"2735:37:101"},"nativeSrc":"2735:65:101","nodeType":"YulFunctionCall","src":"2735:65:101"},"nativeSrc":"2735:65:101","nodeType":"YulExpressionStatement","src":"2735:65:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"2852:6:101","nodeType":"YulIdentifier","src":"2852:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2865:9:101","nodeType":"YulIdentifier","src":"2865:9:101"},{"kind":"number","nativeSrc":"2876:2:101","nodeType":"YulLiteral","src":"2876:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2861:3:101","nodeType":"YulIdentifier","src":"2861:3:101"},"nativeSrc":"2861:18:101","nodeType":"YulFunctionCall","src":"2861:18:101"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"2810:41:101","nodeType":"YulIdentifier","src":"2810:41:101"},"nativeSrc":"2810:70:101","nodeType":"YulFunctionCall","src":"2810:70:101"},"nativeSrc":"2810:70:101","nodeType":"YulExpressionStatement","src":"2810:70:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"2928:6:101","nodeType":"YulIdentifier","src":"2928:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2941:9:101","nodeType":"YulIdentifier","src":"2941:9:101"},{"kind":"number","nativeSrc":"2952:2:101","nodeType":"YulLiteral","src":"2952:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2937:3:101","nodeType":"YulIdentifier","src":"2937:3:101"},"nativeSrc":"2937:18:101","nodeType":"YulFunctionCall","src":"2937:18:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2890:37:101","nodeType":"YulIdentifier","src":"2890:37:101"},"nativeSrc":"2890:66:101","nodeType":"YulFunctionCall","src":"2890:66:101"},"nativeSrc":"2890:66:101","nodeType":"YulExpressionStatement","src":"2890:66:101"}]},"name":"abi_encode_tuple_t_bool_t_uint16_t_bool__to_t_bool_t_uint16_t_bool__fromStack_reversed","nativeSrc":"2549:414:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2645:9:101","nodeType":"YulTypedName","src":"2645:9:101","type":""},{"name":"value2","nativeSrc":"2657:6:101","nodeType":"YulTypedName","src":"2657:6:101","type":""},{"name":"value1","nativeSrc":"2665:6:101","nodeType":"YulTypedName","src":"2665:6:101","type":""},{"name":"value0","nativeSrc":"2673:6:101","nodeType":"YulTypedName","src":"2673:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2684:4:101","nodeType":"YulTypedName","src":"2684:4:101","type":""}],"src":"2549:414:101"},{"body":{"nativeSrc":"3034:53:101","nodeType":"YulBlock","src":"3034:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3051:3:101","nodeType":"YulIdentifier","src":"3051:3:101"},{"arguments":[{"name":"value","nativeSrc":"3074:5:101","nodeType":"YulIdentifier","src":"3074:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3056:17:101","nodeType":"YulIdentifier","src":"3056:17:101"},"nativeSrc":"3056:24:101","nodeType":"YulFunctionCall","src":"3056:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3044:6:101","nodeType":"YulIdentifier","src":"3044:6:101"},"nativeSrc":"3044:37:101","nodeType":"YulFunctionCall","src":"3044:37:101"},"nativeSrc":"3044:37:101","nodeType":"YulExpressionStatement","src":"3044:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2969:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3022:5:101","nodeType":"YulTypedName","src":"3022:5:101","type":""},{"name":"pos","nativeSrc":"3029:3:101","nodeType":"YulTypedName","src":"3029:3:101","type":""}],"src":"2969:118:101"},{"body":{"nativeSrc":"3191:124:101","nodeType":"YulBlock","src":"3191:124:101","statements":[{"nativeSrc":"3201:26:101","nodeType":"YulAssignment","src":"3201:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3213:9:101","nodeType":"YulIdentifier","src":"3213:9:101"},{"kind":"number","nativeSrc":"3224:2:101","nodeType":"YulLiteral","src":"3224:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3209:3:101","nodeType":"YulIdentifier","src":"3209:3:101"},"nativeSrc":"3209:18:101","nodeType":"YulFunctionCall","src":"3209:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3201:4:101","nodeType":"YulIdentifier","src":"3201:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3281:6:101","nodeType":"YulIdentifier","src":"3281:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3294:9:101","nodeType":"YulIdentifier","src":"3294:9:101"},{"kind":"number","nativeSrc":"3305:1:101","nodeType":"YulLiteral","src":"3305:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3290:3:101","nodeType":"YulIdentifier","src":"3290:3:101"},"nativeSrc":"3290:17:101","nodeType":"YulFunctionCall","src":"3290:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3237:43:101","nodeType":"YulIdentifier","src":"3237:43:101"},"nativeSrc":"3237:71:101","nodeType":"YulFunctionCall","src":"3237:71:101"},"nativeSrc":"3237:71:101","nodeType":"YulExpressionStatement","src":"3237:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3093:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3163:9:101","nodeType":"YulTypedName","src":"3163:9:101","type":""},{"name":"value0","nativeSrc":"3175:6:101","nodeType":"YulTypedName","src":"3175:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3186:4:101","nodeType":"YulTypedName","src":"3186:4:101","type":""}],"src":"3093:222:101"},{"body":{"nativeSrc":"3364:79:101","nodeType":"YulBlock","src":"3364:79:101","statements":[{"body":{"nativeSrc":"3421:16:101","nodeType":"YulBlock","src":"3421:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3430:1:101","nodeType":"YulLiteral","src":"3430:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3433:1:101","nodeType":"YulLiteral","src":"3433:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3423:6:101","nodeType":"YulIdentifier","src":"3423:6:101"},"nativeSrc":"3423:12:101","nodeType":"YulFunctionCall","src":"3423:12:101"},"nativeSrc":"3423:12:101","nodeType":"YulExpressionStatement","src":"3423:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3387:5:101","nodeType":"YulIdentifier","src":"3387:5:101"},{"arguments":[{"name":"value","nativeSrc":"3412:5:101","nodeType":"YulIdentifier","src":"3412:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3394:17:101","nodeType":"YulIdentifier","src":"3394:17:101"},"nativeSrc":"3394:24:101","nodeType":"YulFunctionCall","src":"3394:24:101"}],"functionName":{"name":"eq","nativeSrc":"3384:2:101","nodeType":"YulIdentifier","src":"3384:2:101"},"nativeSrc":"3384:35:101","nodeType":"YulFunctionCall","src":"3384:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3377:6:101","nodeType":"YulIdentifier","src":"3377:6:101"},"nativeSrc":"3377:43:101","nodeType":"YulFunctionCall","src":"3377:43:101"},"nativeSrc":"3374:63:101","nodeType":"YulIf","src":"3374:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"3321:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3357:5:101","nodeType":"YulTypedName","src":"3357:5:101","type":""}],"src":"3321:122:101"},{"body":{"nativeSrc":"3501:87:101","nodeType":"YulBlock","src":"3501:87:101","statements":[{"nativeSrc":"3511:29:101","nodeType":"YulAssignment","src":"3511:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3533:6:101","nodeType":"YulIdentifier","src":"3533:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3520:12:101","nodeType":"YulIdentifier","src":"3520:12:101"},"nativeSrc":"3520:20:101","nodeType":"YulFunctionCall","src":"3520:20:101"},"variableNames":[{"name":"value","nativeSrc":"3511:5:101","nodeType":"YulIdentifier","src":"3511:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3576:5:101","nodeType":"YulIdentifier","src":"3576:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3549:26:101","nodeType":"YulIdentifier","src":"3549:26:101"},"nativeSrc":"3549:33:101","nodeType":"YulFunctionCall","src":"3549:33:101"},"nativeSrc":"3549:33:101","nodeType":"YulExpressionStatement","src":"3549:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3449:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3479:6:101","nodeType":"YulTypedName","src":"3479:6:101","type":""},{"name":"end","nativeSrc":"3487:3:101","nodeType":"YulTypedName","src":"3487:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3495:5:101","nodeType":"YulTypedName","src":"3495:5:101","type":""}],"src":"3449:139:101"},{"body":{"nativeSrc":"3693:518:101","nodeType":"YulBlock","src":"3693:518:101","statements":[{"body":{"nativeSrc":"3739:83:101","nodeType":"YulBlock","src":"3739:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3741:77:101","nodeType":"YulIdentifier","src":"3741:77:101"},"nativeSrc":"3741:79:101","nodeType":"YulFunctionCall","src":"3741:79:101"},"nativeSrc":"3741:79:101","nodeType":"YulExpressionStatement","src":"3741:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3714:7:101","nodeType":"YulIdentifier","src":"3714:7:101"},{"name":"headStart","nativeSrc":"3723:9:101","nodeType":"YulIdentifier","src":"3723:9:101"}],"functionName":{"name":"sub","nativeSrc":"3710:3:101","nodeType":"YulIdentifier","src":"3710:3:101"},"nativeSrc":"3710:23:101","nodeType":"YulFunctionCall","src":"3710:23:101"},{"kind":"number","nativeSrc":"3735:2:101","nodeType":"YulLiteral","src":"3735:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3706:3:101","nodeType":"YulIdentifier","src":"3706:3:101"},"nativeSrc":"3706:32:101","nodeType":"YulFunctionCall","src":"3706:32:101"},"nativeSrc":"3703:119:101","nodeType":"YulIf","src":"3703:119:101"},{"nativeSrc":"3832:117:101","nodeType":"YulBlock","src":"3832:117:101","statements":[{"nativeSrc":"3847:15:101","nodeType":"YulVariableDeclaration","src":"3847:15:101","value":{"kind":"number","nativeSrc":"3861:1:101","nodeType":"YulLiteral","src":"3861:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3851:6:101","nodeType":"YulTypedName","src":"3851:6:101","type":""}]},{"nativeSrc":"3876:63:101","nodeType":"YulAssignment","src":"3876:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3911:9:101","nodeType":"YulIdentifier","src":"3911:9:101"},{"name":"offset","nativeSrc":"3922:6:101","nodeType":"YulIdentifier","src":"3922:6:101"}],"functionName":{"name":"add","nativeSrc":"3907:3:101","nodeType":"YulIdentifier","src":"3907:3:101"},"nativeSrc":"3907:22:101","nodeType":"YulFunctionCall","src":"3907:22:101"},{"name":"dataEnd","nativeSrc":"3931:7:101","nodeType":"YulIdentifier","src":"3931:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3886:20:101","nodeType":"YulIdentifier","src":"3886:20:101"},"nativeSrc":"3886:53:101","nodeType":"YulFunctionCall","src":"3886:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3876:6:101","nodeType":"YulIdentifier","src":"3876:6:101"}]}]},{"nativeSrc":"3959:117:101","nodeType":"YulBlock","src":"3959:117:101","statements":[{"nativeSrc":"3974:16:101","nodeType":"YulVariableDeclaration","src":"3974:16:101","value":{"kind":"number","nativeSrc":"3988:2:101","nodeType":"YulLiteral","src":"3988:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3978:6:101","nodeType":"YulTypedName","src":"3978:6:101","type":""}]},{"nativeSrc":"4004:62:101","nodeType":"YulAssignment","src":"4004:62:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4038:9:101","nodeType":"YulIdentifier","src":"4038:9:101"},{"name":"offset","nativeSrc":"4049:6:101","nodeType":"YulIdentifier","src":"4049:6:101"}],"functionName":{"name":"add","nativeSrc":"4034:3:101","nodeType":"YulIdentifier","src":"4034:3:101"},"nativeSrc":"4034:22:101","nodeType":"YulFunctionCall","src":"4034:22:101"},{"name":"dataEnd","nativeSrc":"4058:7:101","nodeType":"YulIdentifier","src":"4058:7:101"}],"functionName":{"name":"abi_decode_t_uint32","nativeSrc":"4014:19:101","nodeType":"YulIdentifier","src":"4014:19:101"},"nativeSrc":"4014:52:101","nodeType":"YulFunctionCall","src":"4014:52:101"},"variableNames":[{"name":"value1","nativeSrc":"4004:6:101","nodeType":"YulIdentifier","src":"4004:6:101"}]}]},{"nativeSrc":"4086:118:101","nodeType":"YulBlock","src":"4086:118:101","statements":[{"nativeSrc":"4101:16:101","nodeType":"YulVariableDeclaration","src":"4101:16:101","value":{"kind":"number","nativeSrc":"4115:2:101","nodeType":"YulLiteral","src":"4115:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4105:6:101","nodeType":"YulTypedName","src":"4105:6:101","type":""}]},{"nativeSrc":"4131:63:101","nodeType":"YulAssignment","src":"4131:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4166:9:101","nodeType":"YulIdentifier","src":"4166:9:101"},{"name":"offset","nativeSrc":"4177:6:101","nodeType":"YulIdentifier","src":"4177:6:101"}],"functionName":{"name":"add","nativeSrc":"4162:3:101","nodeType":"YulIdentifier","src":"4162:3:101"},"nativeSrc":"4162:22:101","nodeType":"YulFunctionCall","src":"4162:22:101"},{"name":"dataEnd","nativeSrc":"4186:7:101","nodeType":"YulIdentifier","src":"4186:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4141:20:101","nodeType":"YulIdentifier","src":"4141:20:101"},"nativeSrc":"4141:53:101","nodeType":"YulFunctionCall","src":"4141:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4131:6:101","nodeType":"YulIdentifier","src":"4131:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint32t_uint256","nativeSrc":"3594:617:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3647:9:101","nodeType":"YulTypedName","src":"3647:9:101","type":""},{"name":"dataEnd","nativeSrc":"3658:7:101","nodeType":"YulTypedName","src":"3658:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3670:6:101","nodeType":"YulTypedName","src":"3670:6:101","type":""},{"name":"value1","nativeSrc":"3678:6:101","nodeType":"YulTypedName","src":"3678:6:101","type":""},{"name":"value2","nativeSrc":"3686:6:101","nodeType":"YulTypedName","src":"3686:6:101","type":""}],"src":"3594:617:101"},{"body":{"nativeSrc":"4283:263:101","nodeType":"YulBlock","src":"4283:263:101","statements":[{"body":{"nativeSrc":"4329:83:101","nodeType":"YulBlock","src":"4329:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4331:77:101","nodeType":"YulIdentifier","src":"4331:77:101"},"nativeSrc":"4331:79:101","nodeType":"YulFunctionCall","src":"4331:79:101"},"nativeSrc":"4331:79:101","nodeType":"YulExpressionStatement","src":"4331:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4304:7:101","nodeType":"YulIdentifier","src":"4304:7:101"},{"name":"headStart","nativeSrc":"4313:9:101","nodeType":"YulIdentifier","src":"4313:9:101"}],"functionName":{"name":"sub","nativeSrc":"4300:3:101","nodeType":"YulIdentifier","src":"4300:3:101"},"nativeSrc":"4300:23:101","nodeType":"YulFunctionCall","src":"4300:23:101"},{"kind":"number","nativeSrc":"4325:2:101","nodeType":"YulLiteral","src":"4325:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4296:3:101","nodeType":"YulIdentifier","src":"4296:3:101"},"nativeSrc":"4296:32:101","nodeType":"YulFunctionCall","src":"4296:32:101"},"nativeSrc":"4293:119:101","nodeType":"YulIf","src":"4293:119:101"},{"nativeSrc":"4422:117:101","nodeType":"YulBlock","src":"4422:117:101","statements":[{"nativeSrc":"4437:15:101","nodeType":"YulVariableDeclaration","src":"4437:15:101","value":{"kind":"number","nativeSrc":"4451:1:101","nodeType":"YulLiteral","src":"4451:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4441:6:101","nodeType":"YulTypedName","src":"4441:6:101","type":""}]},{"nativeSrc":"4466:63:101","nodeType":"YulAssignment","src":"4466:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4501:9:101","nodeType":"YulIdentifier","src":"4501:9:101"},{"name":"offset","nativeSrc":"4512:6:101","nodeType":"YulIdentifier","src":"4512:6:101"}],"functionName":{"name":"add","nativeSrc":"4497:3:101","nodeType":"YulIdentifier","src":"4497:3:101"},"nativeSrc":"4497:22:101","nodeType":"YulFunctionCall","src":"4497:22:101"},{"name":"dataEnd","nativeSrc":"4521:7:101","nodeType":"YulIdentifier","src":"4521:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4476:20:101","nodeType":"YulIdentifier","src":"4476:20:101"},"nativeSrc":"4476:53:101","nodeType":"YulFunctionCall","src":"4476:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4466:6:101","nodeType":"YulIdentifier","src":"4466:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4217:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4253:9:101","nodeType":"YulTypedName","src":"4253:9:101","type":""},{"name":"dataEnd","nativeSrc":"4264:7:101","nodeType":"YulTypedName","src":"4264:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4276:6:101","nodeType":"YulTypedName","src":"4276:6:101","type":""}],"src":"4217:329:101"},{"body":{"nativeSrc":"4648:73:101","nodeType":"YulBlock","src":"4648:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4665:3:101","nodeType":"YulIdentifier","src":"4665:3:101"},{"name":"length","nativeSrc":"4670:6:101","nodeType":"YulIdentifier","src":"4670:6:101"}],"functionName":{"name":"mstore","nativeSrc":"4658:6:101","nodeType":"YulIdentifier","src":"4658:6:101"},"nativeSrc":"4658:19:101","nodeType":"YulFunctionCall","src":"4658:19:101"},"nativeSrc":"4658:19:101","nodeType":"YulExpressionStatement","src":"4658:19:101"},{"nativeSrc":"4686:29:101","nodeType":"YulAssignment","src":"4686:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"4705:3:101","nodeType":"YulIdentifier","src":"4705:3:101"},{"kind":"number","nativeSrc":"4710:4:101","nodeType":"YulLiteral","src":"4710:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4701:3:101","nodeType":"YulIdentifier","src":"4701:3:101"},"nativeSrc":"4701:14:101","nodeType":"YulFunctionCall","src":"4701:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"4686:11:101","nodeType":"YulIdentifier","src":"4686:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4552:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4620:3:101","nodeType":"YulTypedName","src":"4620:3:101","type":""},{"name":"length","nativeSrc":"4625:6:101","nodeType":"YulTypedName","src":"4625:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4636:11:101","nodeType":"YulTypedName","src":"4636:11:101","type":""}],"src":"4552:169:101"},{"body":{"nativeSrc":"4833:119:101","nodeType":"YulBlock","src":"4833:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4855:6:101","nodeType":"YulIdentifier","src":"4855:6:101"},{"kind":"number","nativeSrc":"4863:1:101","nodeType":"YulLiteral","src":"4863:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4851:3:101","nodeType":"YulIdentifier","src":"4851:3:101"},"nativeSrc":"4851:14:101","nodeType":"YulFunctionCall","src":"4851:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"4867:34:101","nodeType":"YulLiteral","src":"4867:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"4844:6:101","nodeType":"YulIdentifier","src":"4844:6:101"},"nativeSrc":"4844:58:101","nodeType":"YulFunctionCall","src":"4844:58:101"},"nativeSrc":"4844:58:101","nodeType":"YulExpressionStatement","src":"4844:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4923:6:101","nodeType":"YulIdentifier","src":"4923:6:101"},{"kind":"number","nativeSrc":"4931:2:101","nodeType":"YulLiteral","src":"4931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4919:3:101","nodeType":"YulIdentifier","src":"4919:3:101"},"nativeSrc":"4919:15:101","nodeType":"YulFunctionCall","src":"4919:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"4936:8:101","nodeType":"YulLiteral","src":"4936:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"4912:6:101","nodeType":"YulIdentifier","src":"4912:6:101"},"nativeSrc":"4912:33:101","nodeType":"YulFunctionCall","src":"4912:33:101"},"nativeSrc":"4912:33:101","nodeType":"YulExpressionStatement","src":"4912:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"4727:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4825:6:101","nodeType":"YulTypedName","src":"4825:6:101","type":""}],"src":"4727:225:101"},{"body":{"nativeSrc":"5104:220:101","nodeType":"YulBlock","src":"5104:220:101","statements":[{"nativeSrc":"5114:74:101","nodeType":"YulAssignment","src":"5114:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5180:3:101","nodeType":"YulIdentifier","src":"5180:3:101"},{"kind":"number","nativeSrc":"5185:2:101","nodeType":"YulLiteral","src":"5185:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5121:58:101","nodeType":"YulIdentifier","src":"5121:58:101"},"nativeSrc":"5121:67:101","nodeType":"YulFunctionCall","src":"5121:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5114:3:101","nodeType":"YulIdentifier","src":"5114:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5286:3:101","nodeType":"YulIdentifier","src":"5286:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"5197:88:101","nodeType":"YulIdentifier","src":"5197:88:101"},"nativeSrc":"5197:93:101","nodeType":"YulFunctionCall","src":"5197:93:101"},"nativeSrc":"5197:93:101","nodeType":"YulExpressionStatement","src":"5197:93:101"},{"nativeSrc":"5299:19:101","nodeType":"YulAssignment","src":"5299:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5310:3:101","nodeType":"YulIdentifier","src":"5310:3:101"},{"kind":"number","nativeSrc":"5315:2:101","nodeType":"YulLiteral","src":"5315:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5306:3:101","nodeType":"YulIdentifier","src":"5306:3:101"},"nativeSrc":"5306:12:101","nodeType":"YulFunctionCall","src":"5306:12:101"},"variableNames":[{"name":"end","nativeSrc":"5299:3:101","nodeType":"YulIdentifier","src":"5299:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"4958:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5092:3:101","nodeType":"YulTypedName","src":"5092:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5100:3:101","nodeType":"YulTypedName","src":"5100:3:101","type":""}],"src":"4958:366:101"},{"body":{"nativeSrc":"5501:248:101","nodeType":"YulBlock","src":"5501:248:101","statements":[{"nativeSrc":"5511:26:101","nodeType":"YulAssignment","src":"5511:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5523:9:101","nodeType":"YulIdentifier","src":"5523:9:101"},{"kind":"number","nativeSrc":"5534:2:101","nodeType":"YulLiteral","src":"5534:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5519:3:101","nodeType":"YulIdentifier","src":"5519:3:101"},"nativeSrc":"5519:18:101","nodeType":"YulFunctionCall","src":"5519:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5511:4:101","nodeType":"YulIdentifier","src":"5511:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5558:9:101","nodeType":"YulIdentifier","src":"5558:9:101"},{"kind":"number","nativeSrc":"5569:1:101","nodeType":"YulLiteral","src":"5569:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5554:3:101","nodeType":"YulIdentifier","src":"5554:3:101"},"nativeSrc":"5554:17:101","nodeType":"YulFunctionCall","src":"5554:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5577:4:101","nodeType":"YulIdentifier","src":"5577:4:101"},{"name":"headStart","nativeSrc":"5583:9:101","nodeType":"YulIdentifier","src":"5583:9:101"}],"functionName":{"name":"sub","nativeSrc":"5573:3:101","nodeType":"YulIdentifier","src":"5573:3:101"},"nativeSrc":"5573:20:101","nodeType":"YulFunctionCall","src":"5573:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5547:6:101","nodeType":"YulIdentifier","src":"5547:6:101"},"nativeSrc":"5547:47:101","nodeType":"YulFunctionCall","src":"5547:47:101"},"nativeSrc":"5547:47:101","nodeType":"YulExpressionStatement","src":"5547:47:101"},{"nativeSrc":"5603:139:101","nodeType":"YulAssignment","src":"5603:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5737:4:101","nodeType":"YulIdentifier","src":"5737:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"5611:124:101","nodeType":"YulIdentifier","src":"5611:124:101"},"nativeSrc":"5611:131:101","nodeType":"YulFunctionCall","src":"5611:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5603:4:101","nodeType":"YulIdentifier","src":"5603:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5330:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5481:9:101","nodeType":"YulTypedName","src":"5481:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5496:4:101","nodeType":"YulTypedName","src":"5496:4:101","type":""}],"src":"5330:419:101"},{"body":{"nativeSrc":"5861:76:101","nodeType":"YulBlock","src":"5861:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5883:6:101","nodeType":"YulIdentifier","src":"5883:6:101"},{"kind":"number","nativeSrc":"5891:1:101","nodeType":"YulLiteral","src":"5891:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5879:3:101","nodeType":"YulIdentifier","src":"5879:3:101"},"nativeSrc":"5879:14:101","nodeType":"YulFunctionCall","src":"5879:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"5895:34:101","nodeType":"YulLiteral","src":"5895:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"5872:6:101","nodeType":"YulIdentifier","src":"5872:6:101"},"nativeSrc":"5872:58:101","nodeType":"YulFunctionCall","src":"5872:58:101"},"nativeSrc":"5872:58:101","nodeType":"YulExpressionStatement","src":"5872:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"5755:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5853:6:101","nodeType":"YulTypedName","src":"5853:6:101","type":""}],"src":"5755:182:101"},{"body":{"nativeSrc":"6089:220:101","nodeType":"YulBlock","src":"6089:220:101","statements":[{"nativeSrc":"6099:74:101","nodeType":"YulAssignment","src":"6099:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6165:3:101","nodeType":"YulIdentifier","src":"6165:3:101"},{"kind":"number","nativeSrc":"6170:2:101","nodeType":"YulLiteral","src":"6170:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6106:58:101","nodeType":"YulIdentifier","src":"6106:58:101"},"nativeSrc":"6106:67:101","nodeType":"YulFunctionCall","src":"6106:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6099:3:101","nodeType":"YulIdentifier","src":"6099:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6271:3:101","nodeType":"YulIdentifier","src":"6271:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"6182:88:101","nodeType":"YulIdentifier","src":"6182:88:101"},"nativeSrc":"6182:93:101","nodeType":"YulFunctionCall","src":"6182:93:101"},"nativeSrc":"6182:93:101","nodeType":"YulExpressionStatement","src":"6182:93:101"},{"nativeSrc":"6284:19:101","nodeType":"YulAssignment","src":"6284:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6295:3:101","nodeType":"YulIdentifier","src":"6295:3:101"},{"kind":"number","nativeSrc":"6300:2:101","nodeType":"YulLiteral","src":"6300:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6291:3:101","nodeType":"YulIdentifier","src":"6291:3:101"},"nativeSrc":"6291:12:101","nodeType":"YulFunctionCall","src":"6291:12:101"},"variableNames":[{"name":"end","nativeSrc":"6284:3:101","nodeType":"YulIdentifier","src":"6284:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"5943:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6077:3:101","nodeType":"YulTypedName","src":"6077:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6085:3:101","nodeType":"YulTypedName","src":"6085:3:101","type":""}],"src":"5943:366:101"},{"body":{"nativeSrc":"6486:248:101","nodeType":"YulBlock","src":"6486:248:101","statements":[{"nativeSrc":"6496:26:101","nodeType":"YulAssignment","src":"6496:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6508:9:101","nodeType":"YulIdentifier","src":"6508:9:101"},{"kind":"number","nativeSrc":"6519:2:101","nodeType":"YulLiteral","src":"6519:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6504:3:101","nodeType":"YulIdentifier","src":"6504:3:101"},"nativeSrc":"6504:18:101","nodeType":"YulFunctionCall","src":"6504:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6496:4:101","nodeType":"YulIdentifier","src":"6496:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6543:9:101","nodeType":"YulIdentifier","src":"6543:9:101"},{"kind":"number","nativeSrc":"6554:1:101","nodeType":"YulLiteral","src":"6554:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6539:3:101","nodeType":"YulIdentifier","src":"6539:3:101"},"nativeSrc":"6539:17:101","nodeType":"YulFunctionCall","src":"6539:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6562:4:101","nodeType":"YulIdentifier","src":"6562:4:101"},{"name":"headStart","nativeSrc":"6568:9:101","nodeType":"YulIdentifier","src":"6568:9:101"}],"functionName":{"name":"sub","nativeSrc":"6558:3:101","nodeType":"YulIdentifier","src":"6558:3:101"},"nativeSrc":"6558:20:101","nodeType":"YulFunctionCall","src":"6558:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6532:6:101","nodeType":"YulIdentifier","src":"6532:6:101"},"nativeSrc":"6532:47:101","nodeType":"YulFunctionCall","src":"6532:47:101"},"nativeSrc":"6532:47:101","nodeType":"YulExpressionStatement","src":"6532:47:101"},{"nativeSrc":"6588:139:101","nodeType":"YulAssignment","src":"6588:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6722:4:101","nodeType":"YulIdentifier","src":"6722:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"6596:124:101","nodeType":"YulIdentifier","src":"6596:124:101"},"nativeSrc":"6596:131:101","nodeType":"YulFunctionCall","src":"6596:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6588:4:101","nodeType":"YulIdentifier","src":"6588:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6315:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6466:9:101","nodeType":"YulTypedName","src":"6466:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6481:4:101","nodeType":"YulTypedName","src":"6481:4:101","type":""}],"src":"6315:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function validator_revert_t_uint32(value) {\n        if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint32(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint32(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function abi_encode_tuple_t_bool_t_uint16_t_bool__to_t_bool_t_uint16_t_bool__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bool_to_t_bool_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint32t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063a31426d111610063578063a31426d11461013c578063abca0eab1461014f578063b151c07f1461018c578063b861c67c146101b6578063f2fde38b146101c9575f80fd5b8063678482751461009f578063715018a6146100df578063873e9600146100e95780638da5cb5b14610111578063a109e12a14610129575b5f80fd5b6100c96100ad366004610387565b600160209081525f928352604080842090915290825290205481565b6040516100d691906103c9565b60405180910390f35b6100e76101dc565b005b6101026100f7366004610387565b5f8060019250925092565b6040516100d6939291906103e9565b5f546001600160a01b03166040516100d69190610422565b6100e7610137366004610441565b6101ef565b6100c961014a366004610387565b610223565b6100c961015d366004610387565b6001600160a01b0382165f90815260016020908152604080832063ffffffff8516845290915290205492915050565b6100c961019a366004610387565b600260209081525f928352604080842090915290825290205481565b6100e76101c4366004610441565b610253565b6100e76101d736600461048d565b610287565b6101e46102ca565b6101ed5f6102f3565b565b6101f76102ca565b6001600160a01b039092165f90815260026020908152604080832063ffffffff90941683529290522055565b6001600160a01b0382165f90815260026020908152604080832063ffffffff851684529091529020545b92915050565b61025b6102ca565b6001600160a01b039092165f90815260016020908152604080832063ffffffff90941683529290522055565b61028f6102ca565b6001600160a01b0381166102be5760405162461bcd60e51b81526004016102b5906104ab565b60405180910390fd5b6102c7816102f3565b50565b5f546001600160a01b031633146101ed5760405162461bcd60e51b81526004016102b5906104f5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b03821661024d565b61035b81610342565b81146102c7575f80fd5b803561024d81610352565b63ffffffff811661035b565b803561024d81610370565b5f806040838503121561039b5761039b5f80fd5b5f6103a68585610365565b92505060206103b78582860161037c565b9150509250929050565b805b82525050565b6020810161024d82846103c1565b8015156103c3565b61ffff81166103c3565b606081016103f782866103d7565b61040460208301856103df565b61041160408301846103d7565b949350505050565b6103c381610342565b6020810161024d8284610419565b8061035b565b803561024d81610430565b5f805f60608486031215610456576104565f80fd5b5f6104618686610365565b93505060206104728682870161037c565b925050604061048386828701610436565b9150509250925092565b5f602082840312156104a0576104a05f80fd5b5f6104118484610365565b6020808252810161024d81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161024d56fea264697066735822122031911bb1643f00397d9f9c24b77c641210aa157954146492de4be8d8a7ee04ec64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA31426D1 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xA31426D1 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0xABCA0EAB EQ PUSH2 0x14F JUMPI DUP1 PUSH4 0xB151C07F EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0xB861C67C EQ PUSH2 0x1B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1C9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x67848275 EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0x873E9600 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0xA109E12A EQ PUSH2 0x129 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xC9 PUSH2 0xAD CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE7 PUSH2 0x1DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x102 PUSH2 0xF7 CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E9 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x137 CALLDATASIZE PUSH1 0x4 PUSH2 0x441 JUMP JUMPDEST PUSH2 0x1EF JUMP JUMPDEST PUSH2 0xC9 PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH2 0x223 JUMP JUMPDEST PUSH2 0xC9 PUSH2 0x15D CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9 PUSH2 0x19A CALLDATASIZE PUSH1 0x4 PUSH2 0x387 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x441 JUMP JUMPDEST PUSH2 0x253 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x48D JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST PUSH2 0x1E4 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x1ED PUSH0 PUSH2 0x2F3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1F7 PUSH2 0x2CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25B PUSH2 0x2CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x28F PUSH2 0x2CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP1 PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C7 DUP2 PUSH2 0x2F3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B5 SWAP1 PUSH2 0x4F5 JUMP JUMPDEST PUSH0 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 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x24D JUMP JUMPDEST PUSH2 0x35B DUP2 PUSH2 0x342 JUMP JUMPDEST DUP2 EQ PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24D DUP2 PUSH2 0x352 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x35B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24D DUP2 PUSH2 0x370 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39B JUMPI PUSH2 0x39B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x3A6 DUP6 DUP6 PUSH2 0x365 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3B7 DUP6 DUP3 DUP7 ADD PUSH2 0x37C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24D DUP3 DUP5 PUSH2 0x3C1 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x3F7 DUP3 DUP7 PUSH2 0x3D7 JUMP JUMPDEST PUSH2 0x404 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3DF JUMP JUMPDEST PUSH2 0x411 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3D7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3C3 DUP2 PUSH2 0x342 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24D DUP3 DUP5 PUSH2 0x419 JUMP JUMPDEST DUP1 PUSH2 0x35B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24D DUP2 PUSH2 0x430 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x456 JUMPI PUSH2 0x456 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x461 DUP7 DUP7 PUSH2 0x365 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x472 DUP7 DUP3 DUP8 ADD PUSH2 0x37C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x483 DUP7 DUP3 DUP8 ADD PUSH2 0x436 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A0 JUMPI PUSH2 0x4A0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x411 DUP5 DUP5 PUSH2 0x365 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x24D DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x24D JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SWAP2 SHL 0xB1 PUSH5 0x3F00397D9F SWAP13 0x24 0xB7 PUSH29 0x641210AA157954146492DE4BE8D8A7EE04EC64736F6C63430008190033 ","sourceMap":"167:1115:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;229:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1824:101:10;;;:::i;:::-;;1003:277:72;;;;;;:::i;:::-;1141:32;;1268:4;1003:277;;;;;;;;;;;;;;;:::i;1201:85:10:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;1201:85;;;;;;:::i;558:141:72:-;;;;;;:::i;:::-;;:::i;857:140::-;;;;;;:::i;:::-;;:::i;705:146::-;;;;;;:::i;:::-;-1:-1:-1;;;;;813:21:72;;787:7;813:21;;;:13;:21;;;;;;;;:31;;;;;;;;;;;705:146;;;;;302:64;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;405:147;;;;;;:::i;:::-;;:::i;2074:198:10:-;;;;;;:::i;:::-;;:::i;1824:101::-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;558:141:72:-;1094:13:10;:11;:13::i;:::-;-1:-1:-1;;;;;657:18:72;;::::1;;::::0;;;:10:::1;:18;::::0;;;;;;;:28:::1;::::0;;::::1;::::0;;;;;;:35;558:141::o;857:140::-;-1:-1:-1;;;;;962:18:72;;936:7;962:18;;;:10;:18;;;;;;;;:28;;;;;;;;;;;857:140;;;;;:::o;405:147::-;1094:13:10;:11;:13::i;:::-;-1:-1:-1;;;;;507:21:72;;::::1;;::::0;;;:13:::1;:21;::::0;;;;;;;:31:::1;::::0;;::::1;::::0;;;;;;:38;405:147::o;2074:198:10:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;2426:187::-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;940:120::-;917:10;906:22;;1012:23;841:93;1066:137;1136:20;;1165:32;1136:20;1165:32;:::i;1209:472::-;1276:6;1284;1333:2;1321:9;1312:7;1308:23;1304:32;1301:119;;;1339:79;167:1115:72;;;1339:79:101;1459:1;1484:53;1529:7;1509:9;1484:53;:::i;:::-;1474:63;;1430:117;1586:2;1612:52;1656:7;1647:6;1636:9;1632:22;1612:52;:::i;:::-;1602:62;;1557:117;1209:472;;;;;:::o;1770:118::-;1875:5;1857:24;1852:3;1845:37;1770:118;;:::o;1894:222::-;2025:2;2010:18;;2038:71;2014:9;2082:6;2038:71;:::i;2218:109::-;2192:13;;2185:21;2299;2122:90;2428:115;2409:6;2398:18;;2513:23;2333:89;2549:414;2722:2;2707:18;;2735:65;2711:9;2773:6;2735:65;:::i;:::-;2810:70;2876:2;2865:9;2861:18;2852:6;2810:70;:::i;:::-;2890:66;2952:2;2941:9;2937:18;2928:6;2890:66;:::i;:::-;2549:414;;;;;;:::o;2969:118::-;3056:24;3074:5;3056:24;:::i;3093:222::-;3224:2;3209:18;;3237:71;3213:9;3281:6;3237:71;:::i;3321:122::-;3412:5;3394:24;1687:77;3449:139;3520:20;;3549:33;3520:20;3549:33;:::i;3594:617::-;3670:6;3678;3686;3735:2;3723:9;3714:7;3710:23;3706:32;3703:119;;;3741:79;167:1115:72;;;3741:79:101;3861:1;3886:53;3931:7;3911:9;3886:53;:::i;:::-;3876:63;;3832:117;3988:2;4014:52;4058:7;4049:6;4038:9;4034:22;4014:52;:::i;:::-;4004:62;;3959:117;4115:2;4141:53;4186:7;4177:6;4166:9;4162:22;4141:53;:::i;:::-;4131:63;;4086:118;3594:617;;;;;:::o;4217:329::-;4276:6;4325:2;4313:9;4304:7;4300:23;4296:32;4293:119;;;4331:79;167:1115:72;;;4331:79:101;4451:1;4476:53;4521:7;4501:9;4476:53;:::i;5330:419::-;5534:2;5547:47;;;5519:18;;5611:131;5519:18;5185:2;4658:19;;4867:34;4710:4;4701:14;;4844:58;-1:-1:-1;;;4919:15:101;;;4912:33;5306:12;;;4958:366;6315:419;6519:2;6532:47;;;6504:18;;;4658:19;;;5895:34;4701:14;;;5872:58;6291:12;;;6596:131;5943:366"},"gasEstimates":{"creation":{"codeDepositCost":"276200","executionCost":"26156","totalCost":"302356"},"external":{"getOracleState(address,uint32)":"infinite","getPtToAssetRate(address,uint32)":"infinite","getPtToSyRate(address,uint32)":"infinite","owner()":"infinite","ptToAssetRate(address,uint32)":"infinite","ptToSyRate(address,uint32)":"infinite","renounceOwnership()":"infinite","setPtToAssetRate(address,uint32,uint256)":"infinite","setPtToSyRate(address,uint32,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"getOracleState(address,uint32)":"873e9600","getPtToAssetRate(address,uint32)":"abca0eab","getPtToSyRate(address,uint32)":"a31426d1","owner()":"8da5cb5b","ptToAssetRate(address,uint32)":"67848275","ptToSyRate(address,uint32)":"b151c07f","renounceOwnership()":"715018a6","setPtToAssetRate(address,uint32,uint256)":"b861c67c","setPtToSyRate(address,uint32,uint256)":"a109e12a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"getOracleState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"increaseCardinalityRequired\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"cardinalityRequired\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"oldestObservationSatisfied\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"name\":\"getPtToAssetRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"name\":\"getPtToSyRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"ptToAssetRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"ptToSyRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"name\":\"setPtToAssetRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"name\":\"setPtToSyRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/mocks/MockPendlePtOracle.sol\":\"MockPendlePtOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/IPendlePtOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IPendlePtOracle {\\n    function getPtToAssetRate(address market, uint32 duration) external view returns (uint256);\\n\\n    function getPtToSyRate(address market, uint32 duration) external view returns (uint256);\\n\\n    function getOracleState(\\n        address market,\\n        uint32 duration\\n    )\\n        external\\n        view\\n        returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied);\\n}\\n\",\"keccak256\":\"0x14d96d7f75397e4291288ef6367053bd970d95fc0c3e2a028b077f6342e0160a\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/mocks/MockPendlePtOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../../interfaces/IPendlePtOracle.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockPendlePtOracle is IPendlePtOracle, Ownable {\\n    mapping(address => mapping(uint32 => uint256)) public ptToAssetRate;\\n    mapping(address => mapping(uint32 => uint256)) public ptToSyRate;\\n\\n    constructor() Ownable() {}\\n\\n    function setPtToAssetRate(address market, uint32 duration, uint256 rate) external onlyOwner {\\n        ptToAssetRate[market][duration] = rate;\\n    }\\n\\n    function setPtToSyRate(address market, uint32 duration, uint256 rate) external onlyOwner {\\n        ptToSyRate[market][duration] = rate;\\n    }\\n\\n    function getPtToAssetRate(address market, uint32 duration) external view returns (uint256) {\\n        return ptToAssetRate[market][duration];\\n    }\\n\\n    function getPtToSyRate(address market, uint32 duration) external view returns (uint256) {\\n        return ptToSyRate[market][duration];\\n    }\\n\\n    function getOracleState(\\n        address /* market */,\\n        uint32 /* duration */\\n    )\\n        external\\n        pure\\n        returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied)\\n    {\\n        return (false, 0, true);\\n    }\\n}\\n\",\"keccak256\":\"0x80d61dc9a3376c95bbba1a072ed917e914cc4f129dbb9c156070cb95c234a933\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1101,"contract":"contracts/oracles/mocks/MockPendlePtOracle.sol:MockPendlePtOracle","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":7367,"contract":"contracts/oracles/mocks/MockPendlePtOracle.sol:MockPendlePtOracle","label":"ptToAssetRate","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_uint32,t_uint256))"},{"astId":7373,"contract":"contracts/oracles/mocks/MockPendlePtOracle.sol:MockPendlePtOracle","label":"ptToSyRate","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_uint32,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_uint32,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint32,t_uint256)"},"t_mapping(t_uint32,t_uint256)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol":{"MockSfrxEthFraxOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"getPrices","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isBadData","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":"priceHigh","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceLow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isBadData","type":"bool"},{"internalType":"uint256","name":"_priceLow","type":"uint256"},{"internalType":"uint256","name":"_priceHigh","type":"uint256"}],"name":"setPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_7491":{"entryPoint":null,"id":7491,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":26,"id":1205,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50601633601a565b6069565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61041f806100765f395ff3fe608060405234801561000f575f80fd5b5060043610610085575f3560e01c80638da5cb5b116100585780638da5cb5b146100e5578063bd9a548b146100fd578063be00a66e1461011e578063f2fde38b14610127575f80fd5b80630683e4ca146100895780632ade707e146100a85780635648718b146100bd578063715018a6146100dd575b5f80fd5b61009260015481565b60405161009f919061023c565b60405180910390f35b6100bb6100b636600461027a565b61013a565b005b5f546100d090600160a01b900460ff1681565b60405161009f91906102ce565b6100bb610166565b5f546001600160a01b031660405161009f91906102f5565b5f5460015460025460405161009f93600160a01b900460ff16929190610303565b61009260025481565b6100bb610135366004610347565b610179565b6101426101bc565b5f8054931515600160a01b0260ff60a01b1990941693909317909255600155600255565b61016e6101bc565b6101775f6101e5565b565b6101816101bc565b6001600160a01b0381166101b05760405162461bcd60e51b81526004016101a790610365565b60405180910390fd5b6101b9816101e5565b50565b5f546001600160a01b031633146101775760405162461bcd60e51b81526004016101a7906103af565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805b82525050565b6020810161024a8284610234565b92915050565b8015155b81146101b9575f80fd5b803561024a81610250565b80610254565b803561024a81610269565b5f805f6060848603121561028f5761028f5f80fd5b5f61029a868661025e565b93505060206102ab8682870161026f565b92505060406102bc8682870161026f565b9150509250925092565b801515610236565b6020810161024a82846102c6565b5f6001600160a01b03821661024a565b610236816102dc565b6020810161024a82846102ec565b6060810161031182866102c6565b61031e6020830185610234565b61032b6040830184610234565b949350505050565b610254816102dc565b803561024a81610333565b5f6020828403121561035a5761035a5f80fd5b5f61032b848461033c565b6020808252810161024a81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161024a56fea2646970667358221220574ed17165f92871121b841847568d97f79c2d08b0fffaacf4a4535c6339c01e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 CALLER PUSH1 0x1A JUMP JUMPDEST PUSH1 0x69 JUMP JUMPDEST PUSH0 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 PUSH2 0x41F DUP1 PUSH2 0x76 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x85 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBD9A548B EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xBE00A66E EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x127 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x683E4CA EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x2ADE707E EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x5648718B EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xDD JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x92 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0xB6 CALLDATASIZE PUSH1 0x4 PUSH2 0x27A JUMP JUMPDEST PUSH2 0x13A JUMP JUMPDEST STOP JUMPDEST PUSH0 SLOAD PUSH2 0xD0 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0xBB PUSH2 0x166 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x2F5 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH2 0x9F SWAP4 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH2 0x303 JUMP JUMPDEST PUSH2 0x92 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xBB PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x347 JUMP JUMPDEST PUSH2 0x179 JUMP JUMPDEST PUSH2 0x142 PUSH2 0x1BC JUMP JUMPDEST PUSH0 DUP1 SLOAD SWAP4 ISZERO ISZERO PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x1 SSTORE PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH2 0x16E PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x177 PUSH0 PUSH2 0x1E5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x181 PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x365 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B9 DUP2 PUSH2 0x1E5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x177 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x3AF JUMP JUMPDEST PUSH0 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 DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24A DUP3 DUP5 PUSH2 0x234 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP2 EQ PUSH2 0x1B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24A DUP2 PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH2 0x254 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24A DUP2 PUSH2 0x269 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x29A DUP7 DUP7 PUSH2 0x25E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2AB DUP7 DUP3 DUP8 ADD PUSH2 0x26F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2BC DUP7 DUP3 DUP8 ADD PUSH2 0x26F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x236 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24A DUP3 DUP5 PUSH2 0x2C6 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x24A JUMP JUMPDEST PUSH2 0x236 DUP2 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24A DUP3 DUP5 PUSH2 0x2EC JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x311 DUP3 DUP7 PUSH2 0x2C6 JUMP JUMPDEST PUSH2 0x31E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x234 JUMP JUMPDEST PUSH2 0x32B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x234 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x254 DUP2 PUSH2 0x2DC JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24A DUP2 PUSH2 0x333 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35A JUMPI PUSH2 0x35A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x32B DUP5 DUP5 PUSH2 0x33C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x24A DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x24A JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x4E 0xD1 PUSH18 0x65F92871121B841847568D97F79C2D08B0FF STATICCALL 0xAC DELEGATECALL LOG4 MSTORE8 TLOAD PUSH4 0x39C01E64 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"170:523:73:-:0;;;325:26;;;;;;;;;-1:-1:-1;936:32:10;734:10:14;936:18:10;:32::i;:::-;170:523:73;;2426:187:10;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;170:523:73:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_1148":{"entryPoint":444,"id":1148,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":485,"id":1205,"parameterSlots":1,"returnSlots":0},"@getPrices_7531":{"entryPoint":null,"id":7531,"parameterSlots":0,"returnSlots":3},"@isBadData_7481":{"entryPoint":null,"id":7481,"parameterSlots":0,"returnSlots":0},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@priceHigh_7485":{"entryPoint":null,"id":7485,"parameterSlots":0,"returnSlots":0},"@priceLow_7483":{"entryPoint":null,"id":7483,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_1162":{"entryPoint":358,"id":1162,"parameterSlots":0,"returnSlots":0},"@setPrices_7515":{"entryPoint":314,"id":7515,"parameterSlots":3,"returnSlots":0},"@transferOwnership_1185":{"entryPoint":377,"id":1185,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":828,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":606,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":839,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_uint256t_uint256":{"entryPoint":634,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":748,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":710,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":564,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":757,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":718,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":771,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":869,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":943,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":572,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":732,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":819,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":592,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":617,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6164:101","nodeType":"YulBlock","src":"0:6164:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"482:35:101","nodeType":"YulBlock","src":"482:35:101","statements":[{"nativeSrc":"492:19:101","nodeType":"YulAssignment","src":"492:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"508:2:101","nodeType":"YulLiteral","src":"508:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"502:5:101","nodeType":"YulIdentifier","src":"502:5:101"},"nativeSrc":"502:9:101","nodeType":"YulFunctionCall","src":"502:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"492:6:101","nodeType":"YulIdentifier","src":"492:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"442:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"475:6:101","nodeType":"YulTypedName","src":"475:6:101","type":""}],"src":"442:75:101"},{"body":{"nativeSrc":"612:28:101","nodeType":"YulBlock","src":"612:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"629:1:101","nodeType":"YulLiteral","src":"629:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"632:1:101","nodeType":"YulLiteral","src":"632:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"622:6:101","nodeType":"YulIdentifier","src":"622:6:101"},"nativeSrc":"622:12:101","nodeType":"YulFunctionCall","src":"622:12:101"},"nativeSrc":"622:12:101","nodeType":"YulExpressionStatement","src":"622:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"523:117:101","nodeType":"YulFunctionDefinition","src":"523:117:101"},{"body":{"nativeSrc":"735:28:101","nodeType":"YulBlock","src":"735:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"752:1:101","nodeType":"YulLiteral","src":"752:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"755:1:101","nodeType":"YulLiteral","src":"755:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"745:6:101","nodeType":"YulIdentifier","src":"745:6:101"},"nativeSrc":"745:12:101","nodeType":"YulFunctionCall","src":"745:12:101"},"nativeSrc":"745:12:101","nodeType":"YulExpressionStatement","src":"745:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"646:117:101","nodeType":"YulFunctionDefinition","src":"646:117:101"},{"body":{"nativeSrc":"811:48:101","nodeType":"YulBlock","src":"811:48:101","statements":[{"nativeSrc":"821:32:101","nodeType":"YulAssignment","src":"821:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"846:5:101","nodeType":"YulIdentifier","src":"846:5:101"}],"functionName":{"name":"iszero","nativeSrc":"839:6:101","nodeType":"YulIdentifier","src":"839:6:101"},"nativeSrc":"839:13:101","nodeType":"YulFunctionCall","src":"839:13:101"}],"functionName":{"name":"iszero","nativeSrc":"832:6:101","nodeType":"YulIdentifier","src":"832:6:101"},"nativeSrc":"832:21:101","nodeType":"YulFunctionCall","src":"832:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"821:7:101","nodeType":"YulIdentifier","src":"821:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"769:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"793:5:101","nodeType":"YulTypedName","src":"793:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"803:7:101","nodeType":"YulTypedName","src":"803:7:101","type":""}],"src":"769:90:101"},{"body":{"nativeSrc":"905:76:101","nodeType":"YulBlock","src":"905:76:101","statements":[{"body":{"nativeSrc":"959:16:101","nodeType":"YulBlock","src":"959:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"968:1:101","nodeType":"YulLiteral","src":"968:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"971:1:101","nodeType":"YulLiteral","src":"971:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"961:6:101","nodeType":"YulIdentifier","src":"961:6:101"},"nativeSrc":"961:12:101","nodeType":"YulFunctionCall","src":"961:12:101"},"nativeSrc":"961:12:101","nodeType":"YulExpressionStatement","src":"961:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"928:5:101","nodeType":"YulIdentifier","src":"928:5:101"},{"arguments":[{"name":"value","nativeSrc":"950:5:101","nodeType":"YulIdentifier","src":"950:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"935:14:101","nodeType":"YulIdentifier","src":"935:14:101"},"nativeSrc":"935:21:101","nodeType":"YulFunctionCall","src":"935:21:101"}],"functionName":{"name":"eq","nativeSrc":"925:2:101","nodeType":"YulIdentifier","src":"925:2:101"},"nativeSrc":"925:32:101","nodeType":"YulFunctionCall","src":"925:32:101"}],"functionName":{"name":"iszero","nativeSrc":"918:6:101","nodeType":"YulIdentifier","src":"918:6:101"},"nativeSrc":"918:40:101","nodeType":"YulFunctionCall","src":"918:40:101"},"nativeSrc":"915:60:101","nodeType":"YulIf","src":"915:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"865:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"898:5:101","nodeType":"YulTypedName","src":"898:5:101","type":""}],"src":"865:116:101"},{"body":{"nativeSrc":"1036:84:101","nodeType":"YulBlock","src":"1036:84:101","statements":[{"nativeSrc":"1046:29:101","nodeType":"YulAssignment","src":"1046:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1068:6:101","nodeType":"YulIdentifier","src":"1068:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1055:12:101","nodeType":"YulIdentifier","src":"1055:12:101"},"nativeSrc":"1055:20:101","nodeType":"YulFunctionCall","src":"1055:20:101"},"variableNames":[{"name":"value","nativeSrc":"1046:5:101","nodeType":"YulIdentifier","src":"1046:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1108:5:101","nodeType":"YulIdentifier","src":"1108:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"1084:23:101","nodeType":"YulIdentifier","src":"1084:23:101"},"nativeSrc":"1084:30:101","nodeType":"YulFunctionCall","src":"1084:30:101"},"nativeSrc":"1084:30:101","nodeType":"YulExpressionStatement","src":"1084:30:101"}]},"name":"abi_decode_t_bool","nativeSrc":"987:133:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1014:6:101","nodeType":"YulTypedName","src":"1014:6:101","type":""},{"name":"end","nativeSrc":"1022:3:101","nodeType":"YulTypedName","src":"1022:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1030:5:101","nodeType":"YulTypedName","src":"1030:5:101","type":""}],"src":"987:133:101"},{"body":{"nativeSrc":"1169:79:101","nodeType":"YulBlock","src":"1169:79:101","statements":[{"body":{"nativeSrc":"1226:16:101","nodeType":"YulBlock","src":"1226:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1235:1:101","nodeType":"YulLiteral","src":"1235:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1238:1:101","nodeType":"YulLiteral","src":"1238:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1228:6:101","nodeType":"YulIdentifier","src":"1228:6:101"},"nativeSrc":"1228:12:101","nodeType":"YulFunctionCall","src":"1228:12:101"},"nativeSrc":"1228:12:101","nodeType":"YulExpressionStatement","src":"1228:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1192:5:101","nodeType":"YulIdentifier","src":"1192:5:101"},{"arguments":[{"name":"value","nativeSrc":"1217:5:101","nodeType":"YulIdentifier","src":"1217:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1199:17:101","nodeType":"YulIdentifier","src":"1199:17:101"},"nativeSrc":"1199:24:101","nodeType":"YulFunctionCall","src":"1199:24:101"}],"functionName":{"name":"eq","nativeSrc":"1189:2:101","nodeType":"YulIdentifier","src":"1189:2:101"},"nativeSrc":"1189:35:101","nodeType":"YulFunctionCall","src":"1189:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1182:6:101","nodeType":"YulIdentifier","src":"1182:6:101"},"nativeSrc":"1182:43:101","nodeType":"YulFunctionCall","src":"1182:43:101"},"nativeSrc":"1179:63:101","nodeType":"YulIf","src":"1179:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"1126:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1162:5:101","nodeType":"YulTypedName","src":"1162:5:101","type":""}],"src":"1126:122:101"},{"body":{"nativeSrc":"1306:87:101","nodeType":"YulBlock","src":"1306:87:101","statements":[{"nativeSrc":"1316:29:101","nodeType":"YulAssignment","src":"1316:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1338:6:101","nodeType":"YulIdentifier","src":"1338:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1325:12:101","nodeType":"YulIdentifier","src":"1325:12:101"},"nativeSrc":"1325:20:101","nodeType":"YulFunctionCall","src":"1325:20:101"},"variableNames":[{"name":"value","nativeSrc":"1316:5:101","nodeType":"YulIdentifier","src":"1316:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1381:5:101","nodeType":"YulIdentifier","src":"1381:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1354:26:101","nodeType":"YulIdentifier","src":"1354:26:101"},"nativeSrc":"1354:33:101","nodeType":"YulFunctionCall","src":"1354:33:101"},"nativeSrc":"1354:33:101","nodeType":"YulExpressionStatement","src":"1354:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1254:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1284:6:101","nodeType":"YulTypedName","src":"1284:6:101","type":""},{"name":"end","nativeSrc":"1292:3:101","nodeType":"YulTypedName","src":"1292:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1300:5:101","nodeType":"YulTypedName","src":"1300:5:101","type":""}],"src":"1254:139:101"},{"body":{"nativeSrc":"1496:516:101","nodeType":"YulBlock","src":"1496:516:101","statements":[{"body":{"nativeSrc":"1542:83:101","nodeType":"YulBlock","src":"1542:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1544:77:101","nodeType":"YulIdentifier","src":"1544:77:101"},"nativeSrc":"1544:79:101","nodeType":"YulFunctionCall","src":"1544:79:101"},"nativeSrc":"1544:79:101","nodeType":"YulExpressionStatement","src":"1544:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1517:7:101","nodeType":"YulIdentifier","src":"1517:7:101"},{"name":"headStart","nativeSrc":"1526:9:101","nodeType":"YulIdentifier","src":"1526:9:101"}],"functionName":{"name":"sub","nativeSrc":"1513:3:101","nodeType":"YulIdentifier","src":"1513:3:101"},"nativeSrc":"1513:23:101","nodeType":"YulFunctionCall","src":"1513:23:101"},{"kind":"number","nativeSrc":"1538:2:101","nodeType":"YulLiteral","src":"1538:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1509:3:101","nodeType":"YulIdentifier","src":"1509:3:101"},"nativeSrc":"1509:32:101","nodeType":"YulFunctionCall","src":"1509:32:101"},"nativeSrc":"1506:119:101","nodeType":"YulIf","src":"1506:119:101"},{"nativeSrc":"1635:114:101","nodeType":"YulBlock","src":"1635:114:101","statements":[{"nativeSrc":"1650:15:101","nodeType":"YulVariableDeclaration","src":"1650:15:101","value":{"kind":"number","nativeSrc":"1664:1:101","nodeType":"YulLiteral","src":"1664:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1654:6:101","nodeType":"YulTypedName","src":"1654:6:101","type":""}]},{"nativeSrc":"1679:60:101","nodeType":"YulAssignment","src":"1679:60:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1711:9:101","nodeType":"YulIdentifier","src":"1711:9:101"},{"name":"offset","nativeSrc":"1722:6:101","nodeType":"YulIdentifier","src":"1722:6:101"}],"functionName":{"name":"add","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:22:101","nodeType":"YulFunctionCall","src":"1707:22:101"},{"name":"dataEnd","nativeSrc":"1731:7:101","nodeType":"YulIdentifier","src":"1731:7:101"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"1689:17:101","nodeType":"YulIdentifier","src":"1689:17:101"},"nativeSrc":"1689:50:101","nodeType":"YulFunctionCall","src":"1689:50:101"},"variableNames":[{"name":"value0","nativeSrc":"1679:6:101","nodeType":"YulIdentifier","src":"1679:6:101"}]}]},{"nativeSrc":"1759:118:101","nodeType":"YulBlock","src":"1759:118:101","statements":[{"nativeSrc":"1774:16:101","nodeType":"YulVariableDeclaration","src":"1774:16:101","value":{"kind":"number","nativeSrc":"1788:2:101","nodeType":"YulLiteral","src":"1788:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1778:6:101","nodeType":"YulTypedName","src":"1778:6:101","type":""}]},{"nativeSrc":"1804:63:101","nodeType":"YulAssignment","src":"1804:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1839:9:101","nodeType":"YulIdentifier","src":"1839:9:101"},{"name":"offset","nativeSrc":"1850:6:101","nodeType":"YulIdentifier","src":"1850:6:101"}],"functionName":{"name":"add","nativeSrc":"1835:3:101","nodeType":"YulIdentifier","src":"1835:3:101"},"nativeSrc":"1835:22:101","nodeType":"YulFunctionCall","src":"1835:22:101"},{"name":"dataEnd","nativeSrc":"1859:7:101","nodeType":"YulIdentifier","src":"1859:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1814:20:101","nodeType":"YulIdentifier","src":"1814:20:101"},"nativeSrc":"1814:53:101","nodeType":"YulFunctionCall","src":"1814:53:101"},"variableNames":[{"name":"value1","nativeSrc":"1804:6:101","nodeType":"YulIdentifier","src":"1804:6:101"}]}]},{"nativeSrc":"1887:118:101","nodeType":"YulBlock","src":"1887:118:101","statements":[{"nativeSrc":"1902:16:101","nodeType":"YulVariableDeclaration","src":"1902:16:101","value":{"kind":"number","nativeSrc":"1916:2:101","nodeType":"YulLiteral","src":"1916:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1906:6:101","nodeType":"YulTypedName","src":"1906:6:101","type":""}]},{"nativeSrc":"1932:63:101","nodeType":"YulAssignment","src":"1932:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1967:9:101","nodeType":"YulIdentifier","src":"1967:9:101"},{"name":"offset","nativeSrc":"1978:6:101","nodeType":"YulIdentifier","src":"1978:6:101"}],"functionName":{"name":"add","nativeSrc":"1963:3:101","nodeType":"YulIdentifier","src":"1963:3:101"},"nativeSrc":"1963:22:101","nodeType":"YulFunctionCall","src":"1963:22:101"},{"name":"dataEnd","nativeSrc":"1987:7:101","nodeType":"YulIdentifier","src":"1987:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1942:20:101","nodeType":"YulIdentifier","src":"1942:20:101"},"nativeSrc":"1942:53:101","nodeType":"YulFunctionCall","src":"1942:53:101"},"variableNames":[{"name":"value2","nativeSrc":"1932:6:101","nodeType":"YulIdentifier","src":"1932:6:101"}]}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256","nativeSrc":"1399:613:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1450:9:101","nodeType":"YulTypedName","src":"1450:9:101","type":""},{"name":"dataEnd","nativeSrc":"1461:7:101","nodeType":"YulTypedName","src":"1461:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1473:6:101","nodeType":"YulTypedName","src":"1473:6:101","type":""},{"name":"value1","nativeSrc":"1481:6:101","nodeType":"YulTypedName","src":"1481:6:101","type":""},{"name":"value2","nativeSrc":"1489:6:101","nodeType":"YulTypedName","src":"1489:6:101","type":""}],"src":"1399:613:101"},{"body":{"nativeSrc":"2077:50:101","nodeType":"YulBlock","src":"2077:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2094:3:101","nodeType":"YulIdentifier","src":"2094:3:101"},{"arguments":[{"name":"value","nativeSrc":"2114:5:101","nodeType":"YulIdentifier","src":"2114:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2099:14:101","nodeType":"YulIdentifier","src":"2099:14:101"},"nativeSrc":"2099:21:101","nodeType":"YulFunctionCall","src":"2099:21:101"}],"functionName":{"name":"mstore","nativeSrc":"2087:6:101","nodeType":"YulIdentifier","src":"2087:6:101"},"nativeSrc":"2087:34:101","nodeType":"YulFunctionCall","src":"2087:34:101"},"nativeSrc":"2087:34:101","nodeType":"YulExpressionStatement","src":"2087:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2018:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2065:5:101","nodeType":"YulTypedName","src":"2065:5:101","type":""},{"name":"pos","nativeSrc":"2072:3:101","nodeType":"YulTypedName","src":"2072:3:101","type":""}],"src":"2018:109:101"},{"body":{"nativeSrc":"2225:118:101","nodeType":"YulBlock","src":"2225:118:101","statements":[{"nativeSrc":"2235:26:101","nodeType":"YulAssignment","src":"2235:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"},{"kind":"number","nativeSrc":"2258:2:101","nodeType":"YulLiteral","src":"2258:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2243:3:101","nodeType":"YulIdentifier","src":"2243:3:101"},"nativeSrc":"2243:18:101","nodeType":"YulFunctionCall","src":"2243:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2235:4:101","nodeType":"YulIdentifier","src":"2235:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2309:6:101","nodeType":"YulIdentifier","src":"2309:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2322:9:101","nodeType":"YulIdentifier","src":"2322:9:101"},{"kind":"number","nativeSrc":"2333:1:101","nodeType":"YulLiteral","src":"2333:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2318:3:101","nodeType":"YulIdentifier","src":"2318:3:101"},"nativeSrc":"2318:17:101","nodeType":"YulFunctionCall","src":"2318:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2271:37:101","nodeType":"YulIdentifier","src":"2271:37:101"},"nativeSrc":"2271:65:101","nodeType":"YulFunctionCall","src":"2271:65:101"},"nativeSrc":"2271:65:101","nodeType":"YulExpressionStatement","src":"2271:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2133:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2197:9:101","nodeType":"YulTypedName","src":"2197:9:101","type":""},{"name":"value0","nativeSrc":"2209:6:101","nodeType":"YulTypedName","src":"2209:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2220:4:101","nodeType":"YulTypedName","src":"2220:4:101","type":""}],"src":"2133:210:101"},{"body":{"nativeSrc":"2394:81:101","nodeType":"YulBlock","src":"2394:81:101","statements":[{"nativeSrc":"2404:65:101","nodeType":"YulAssignment","src":"2404:65:101","value":{"arguments":[{"name":"value","nativeSrc":"2419:5:101","nodeType":"YulIdentifier","src":"2419:5:101"},{"kind":"number","nativeSrc":"2426:42:101","nodeType":"YulLiteral","src":"2426:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2415:3:101","nodeType":"YulIdentifier","src":"2415:3:101"},"nativeSrc":"2415:54:101","nodeType":"YulFunctionCall","src":"2415:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2404:7:101","nodeType":"YulIdentifier","src":"2404:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2349:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2376:5:101","nodeType":"YulTypedName","src":"2376:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2386:7:101","nodeType":"YulTypedName","src":"2386:7:101","type":""}],"src":"2349:126:101"},{"body":{"nativeSrc":"2526:51:101","nodeType":"YulBlock","src":"2526:51:101","statements":[{"nativeSrc":"2536:35:101","nodeType":"YulAssignment","src":"2536:35:101","value":{"arguments":[{"name":"value","nativeSrc":"2565:5:101","nodeType":"YulIdentifier","src":"2565:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2547:17:101","nodeType":"YulIdentifier","src":"2547:17:101"},"nativeSrc":"2547:24:101","nodeType":"YulFunctionCall","src":"2547:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2536:7:101","nodeType":"YulIdentifier","src":"2536:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"2481:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2508:5:101","nodeType":"YulTypedName","src":"2508:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2518:7:101","nodeType":"YulTypedName","src":"2518:7:101","type":""}],"src":"2481:96:101"},{"body":{"nativeSrc":"2648:53:101","nodeType":"YulBlock","src":"2648:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2665:3:101","nodeType":"YulIdentifier","src":"2665:3:101"},{"arguments":[{"name":"value","nativeSrc":"2688:5:101","nodeType":"YulIdentifier","src":"2688:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2670:17:101","nodeType":"YulIdentifier","src":"2670:17:101"},"nativeSrc":"2670:24:101","nodeType":"YulFunctionCall","src":"2670:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2658:6:101","nodeType":"YulIdentifier","src":"2658:6:101"},"nativeSrc":"2658:37:101","nodeType":"YulFunctionCall","src":"2658:37:101"},"nativeSrc":"2658:37:101","nodeType":"YulExpressionStatement","src":"2658:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2583:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2636:5:101","nodeType":"YulTypedName","src":"2636:5:101","type":""},{"name":"pos","nativeSrc":"2643:3:101","nodeType":"YulTypedName","src":"2643:3:101","type":""}],"src":"2583:118:101"},{"body":{"nativeSrc":"2805:124:101","nodeType":"YulBlock","src":"2805:124:101","statements":[{"nativeSrc":"2815:26:101","nodeType":"YulAssignment","src":"2815:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2827:9:101","nodeType":"YulIdentifier","src":"2827:9:101"},{"kind":"number","nativeSrc":"2838:2:101","nodeType":"YulLiteral","src":"2838:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2823:3:101","nodeType":"YulIdentifier","src":"2823:3:101"},"nativeSrc":"2823:18:101","nodeType":"YulFunctionCall","src":"2823:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2815:4:101","nodeType":"YulIdentifier","src":"2815:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2895:6:101","nodeType":"YulIdentifier","src":"2895:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2908:9:101","nodeType":"YulIdentifier","src":"2908:9:101"},{"kind":"number","nativeSrc":"2919:1:101","nodeType":"YulLiteral","src":"2919:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2904:3:101","nodeType":"YulIdentifier","src":"2904:3:101"},"nativeSrc":"2904:17:101","nodeType":"YulFunctionCall","src":"2904:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2851:43:101","nodeType":"YulIdentifier","src":"2851:43:101"},"nativeSrc":"2851:71:101","nodeType":"YulFunctionCall","src":"2851:71:101"},"nativeSrc":"2851:71:101","nodeType":"YulExpressionStatement","src":"2851:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2707:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2777:9:101","nodeType":"YulTypedName","src":"2777:9:101","type":""},{"name":"value0","nativeSrc":"2789:6:101","nodeType":"YulTypedName","src":"2789:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2800:4:101","nodeType":"YulTypedName","src":"2800:4:101","type":""}],"src":"2707:222:101"},{"body":{"nativeSrc":"3083:282:101","nodeType":"YulBlock","src":"3083:282:101","statements":[{"nativeSrc":"3093:26:101","nodeType":"YulAssignment","src":"3093:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3105:9:101","nodeType":"YulIdentifier","src":"3105:9:101"},{"kind":"number","nativeSrc":"3116:2:101","nodeType":"YulLiteral","src":"3116:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3101:3:101","nodeType":"YulIdentifier","src":"3101:3:101"},"nativeSrc":"3101:18:101","nodeType":"YulFunctionCall","src":"3101:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3093:4:101","nodeType":"YulIdentifier","src":"3093:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3167:6:101","nodeType":"YulIdentifier","src":"3167:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3180:9:101","nodeType":"YulIdentifier","src":"3180:9:101"},{"kind":"number","nativeSrc":"3191:1:101","nodeType":"YulLiteral","src":"3191:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3176:3:101","nodeType":"YulIdentifier","src":"3176:3:101"},"nativeSrc":"3176:17:101","nodeType":"YulFunctionCall","src":"3176:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3129:37:101","nodeType":"YulIdentifier","src":"3129:37:101"},"nativeSrc":"3129:65:101","nodeType":"YulFunctionCall","src":"3129:65:101"},"nativeSrc":"3129:65:101","nodeType":"YulExpressionStatement","src":"3129:65:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"3248:6:101","nodeType":"YulIdentifier","src":"3248:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3261:9:101","nodeType":"YulIdentifier","src":"3261:9:101"},{"kind":"number","nativeSrc":"3272:2:101","nodeType":"YulLiteral","src":"3272:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3257:3:101","nodeType":"YulIdentifier","src":"3257:3:101"},"nativeSrc":"3257:18:101","nodeType":"YulFunctionCall","src":"3257:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3204:43:101","nodeType":"YulIdentifier","src":"3204:43:101"},"nativeSrc":"3204:72:101","nodeType":"YulFunctionCall","src":"3204:72:101"},"nativeSrc":"3204:72:101","nodeType":"YulExpressionStatement","src":"3204:72:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"3330:6:101","nodeType":"YulIdentifier","src":"3330:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3343:9:101","nodeType":"YulIdentifier","src":"3343:9:101"},{"kind":"number","nativeSrc":"3354:2:101","nodeType":"YulLiteral","src":"3354:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3339:3:101","nodeType":"YulIdentifier","src":"3339:3:101"},"nativeSrc":"3339:18:101","nodeType":"YulFunctionCall","src":"3339:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3286:43:101","nodeType":"YulIdentifier","src":"3286:43:101"},"nativeSrc":"3286:72:101","nodeType":"YulFunctionCall","src":"3286:72:101"},"nativeSrc":"3286:72:101","nodeType":"YulExpressionStatement","src":"3286:72:101"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"2935:430:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3039:9:101","nodeType":"YulTypedName","src":"3039:9:101","type":""},{"name":"value2","nativeSrc":"3051:6:101","nodeType":"YulTypedName","src":"3051:6:101","type":""},{"name":"value1","nativeSrc":"3059:6:101","nodeType":"YulTypedName","src":"3059:6:101","type":""},{"name":"value0","nativeSrc":"3067:6:101","nodeType":"YulTypedName","src":"3067:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3078:4:101","nodeType":"YulTypedName","src":"3078:4:101","type":""}],"src":"2935:430:101"},{"body":{"nativeSrc":"3414:79:101","nodeType":"YulBlock","src":"3414:79:101","statements":[{"body":{"nativeSrc":"3471:16:101","nodeType":"YulBlock","src":"3471:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3480:1:101","nodeType":"YulLiteral","src":"3480:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3483:1:101","nodeType":"YulLiteral","src":"3483:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3473:6:101","nodeType":"YulIdentifier","src":"3473:6:101"},"nativeSrc":"3473:12:101","nodeType":"YulFunctionCall","src":"3473:12:101"},"nativeSrc":"3473:12:101","nodeType":"YulExpressionStatement","src":"3473:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3437:5:101","nodeType":"YulIdentifier","src":"3437:5:101"},{"arguments":[{"name":"value","nativeSrc":"3462:5:101","nodeType":"YulIdentifier","src":"3462:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3444:17:101","nodeType":"YulIdentifier","src":"3444:17:101"},"nativeSrc":"3444:24:101","nodeType":"YulFunctionCall","src":"3444:24:101"}],"functionName":{"name":"eq","nativeSrc":"3434:2:101","nodeType":"YulIdentifier","src":"3434:2:101"},"nativeSrc":"3434:35:101","nodeType":"YulFunctionCall","src":"3434:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3427:6:101","nodeType":"YulIdentifier","src":"3427:6:101"},"nativeSrc":"3427:43:101","nodeType":"YulFunctionCall","src":"3427:43:101"},"nativeSrc":"3424:63:101","nodeType":"YulIf","src":"3424:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"3371:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3407:5:101","nodeType":"YulTypedName","src":"3407:5:101","type":""}],"src":"3371:122:101"},{"body":{"nativeSrc":"3551:87:101","nodeType":"YulBlock","src":"3551:87:101","statements":[{"nativeSrc":"3561:29:101","nodeType":"YulAssignment","src":"3561:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3583:6:101","nodeType":"YulIdentifier","src":"3583:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3570:12:101","nodeType":"YulIdentifier","src":"3570:12:101"},"nativeSrc":"3570:20:101","nodeType":"YulFunctionCall","src":"3570:20:101"},"variableNames":[{"name":"value","nativeSrc":"3561:5:101","nodeType":"YulIdentifier","src":"3561:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3626:5:101","nodeType":"YulIdentifier","src":"3626:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3599:26:101","nodeType":"YulIdentifier","src":"3599:26:101"},"nativeSrc":"3599:33:101","nodeType":"YulFunctionCall","src":"3599:33:101"},"nativeSrc":"3599:33:101","nodeType":"YulExpressionStatement","src":"3599:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"3499:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3529:6:101","nodeType":"YulTypedName","src":"3529:6:101","type":""},{"name":"end","nativeSrc":"3537:3:101","nodeType":"YulTypedName","src":"3537:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3545:5:101","nodeType":"YulTypedName","src":"3545:5:101","type":""}],"src":"3499:139:101"},{"body":{"nativeSrc":"3710:263:101","nodeType":"YulBlock","src":"3710:263:101","statements":[{"body":{"nativeSrc":"3756:83:101","nodeType":"YulBlock","src":"3756:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3758:77:101","nodeType":"YulIdentifier","src":"3758:77:101"},"nativeSrc":"3758:79:101","nodeType":"YulFunctionCall","src":"3758:79:101"},"nativeSrc":"3758:79:101","nodeType":"YulExpressionStatement","src":"3758:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3731:7:101","nodeType":"YulIdentifier","src":"3731:7:101"},{"name":"headStart","nativeSrc":"3740:9:101","nodeType":"YulIdentifier","src":"3740:9:101"}],"functionName":{"name":"sub","nativeSrc":"3727:3:101","nodeType":"YulIdentifier","src":"3727:3:101"},"nativeSrc":"3727:23:101","nodeType":"YulFunctionCall","src":"3727:23:101"},{"kind":"number","nativeSrc":"3752:2:101","nodeType":"YulLiteral","src":"3752:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3723:3:101","nodeType":"YulIdentifier","src":"3723:3:101"},"nativeSrc":"3723:32:101","nodeType":"YulFunctionCall","src":"3723:32:101"},"nativeSrc":"3720:119:101","nodeType":"YulIf","src":"3720:119:101"},{"nativeSrc":"3849:117:101","nodeType":"YulBlock","src":"3849:117:101","statements":[{"nativeSrc":"3864:15:101","nodeType":"YulVariableDeclaration","src":"3864:15:101","value":{"kind":"number","nativeSrc":"3878:1:101","nodeType":"YulLiteral","src":"3878:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3868:6:101","nodeType":"YulTypedName","src":"3868:6:101","type":""}]},{"nativeSrc":"3893:63:101","nodeType":"YulAssignment","src":"3893:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3928:9:101","nodeType":"YulIdentifier","src":"3928:9:101"},{"name":"offset","nativeSrc":"3939:6:101","nodeType":"YulIdentifier","src":"3939:6:101"}],"functionName":{"name":"add","nativeSrc":"3924:3:101","nodeType":"YulIdentifier","src":"3924:3:101"},"nativeSrc":"3924:22:101","nodeType":"YulFunctionCall","src":"3924:22:101"},{"name":"dataEnd","nativeSrc":"3948:7:101","nodeType":"YulIdentifier","src":"3948:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3903:20:101","nodeType":"YulIdentifier","src":"3903:20:101"},"nativeSrc":"3903:53:101","nodeType":"YulFunctionCall","src":"3903:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3893:6:101","nodeType":"YulIdentifier","src":"3893:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3644:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3680:9:101","nodeType":"YulTypedName","src":"3680:9:101","type":""},{"name":"dataEnd","nativeSrc":"3691:7:101","nodeType":"YulTypedName","src":"3691:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3703:6:101","nodeType":"YulTypedName","src":"3703:6:101","type":""}],"src":"3644:329:101"},{"body":{"nativeSrc":"4075:73:101","nodeType":"YulBlock","src":"4075:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4092:3:101","nodeType":"YulIdentifier","src":"4092:3:101"},{"name":"length","nativeSrc":"4097:6:101","nodeType":"YulIdentifier","src":"4097:6:101"}],"functionName":{"name":"mstore","nativeSrc":"4085:6:101","nodeType":"YulIdentifier","src":"4085:6:101"},"nativeSrc":"4085:19:101","nodeType":"YulFunctionCall","src":"4085:19:101"},"nativeSrc":"4085:19:101","nodeType":"YulExpressionStatement","src":"4085:19:101"},{"nativeSrc":"4113:29:101","nodeType":"YulAssignment","src":"4113:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"4132:3:101","nodeType":"YulIdentifier","src":"4132:3:101"},{"kind":"number","nativeSrc":"4137:4:101","nodeType":"YulLiteral","src":"4137:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4128:3:101","nodeType":"YulIdentifier","src":"4128:3:101"},"nativeSrc":"4128:14:101","nodeType":"YulFunctionCall","src":"4128:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"4113:11:101","nodeType":"YulIdentifier","src":"4113:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3979:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4047:3:101","nodeType":"YulTypedName","src":"4047:3:101","type":""},{"name":"length","nativeSrc":"4052:6:101","nodeType":"YulTypedName","src":"4052:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4063:11:101","nodeType":"YulTypedName","src":"4063:11:101","type":""}],"src":"3979:169:101"},{"body":{"nativeSrc":"4260:119:101","nodeType":"YulBlock","src":"4260:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4282:6:101","nodeType":"YulIdentifier","src":"4282:6:101"},{"kind":"number","nativeSrc":"4290:1:101","nodeType":"YulLiteral","src":"4290:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4278:3:101","nodeType":"YulIdentifier","src":"4278:3:101"},"nativeSrc":"4278:14:101","nodeType":"YulFunctionCall","src":"4278:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"4294:34:101","nodeType":"YulLiteral","src":"4294:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"4271:6:101","nodeType":"YulIdentifier","src":"4271:6:101"},"nativeSrc":"4271:58:101","nodeType":"YulFunctionCall","src":"4271:58:101"},"nativeSrc":"4271:58:101","nodeType":"YulExpressionStatement","src":"4271:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4350:6:101","nodeType":"YulIdentifier","src":"4350:6:101"},{"kind":"number","nativeSrc":"4358:2:101","nodeType":"YulLiteral","src":"4358:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4346:3:101","nodeType":"YulIdentifier","src":"4346:3:101"},"nativeSrc":"4346:15:101","nodeType":"YulFunctionCall","src":"4346:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"4363:8:101","nodeType":"YulLiteral","src":"4363:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"4339:6:101","nodeType":"YulIdentifier","src":"4339:6:101"},"nativeSrc":"4339:33:101","nodeType":"YulFunctionCall","src":"4339:33:101"},"nativeSrc":"4339:33:101","nodeType":"YulExpressionStatement","src":"4339:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"4154:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4252:6:101","nodeType":"YulTypedName","src":"4252:6:101","type":""}],"src":"4154:225:101"},{"body":{"nativeSrc":"4531:220:101","nodeType":"YulBlock","src":"4531:220:101","statements":[{"nativeSrc":"4541:74:101","nodeType":"YulAssignment","src":"4541:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"4607:3:101","nodeType":"YulIdentifier","src":"4607:3:101"},{"kind":"number","nativeSrc":"4612:2:101","nodeType":"YulLiteral","src":"4612:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4548:58:101","nodeType":"YulIdentifier","src":"4548:58:101"},"nativeSrc":"4548:67:101","nodeType":"YulFunctionCall","src":"4548:67:101"},"variableNames":[{"name":"pos","nativeSrc":"4541:3:101","nodeType":"YulIdentifier","src":"4541:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4713:3:101","nodeType":"YulIdentifier","src":"4713:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"4624:88:101","nodeType":"YulIdentifier","src":"4624:88:101"},"nativeSrc":"4624:93:101","nodeType":"YulFunctionCall","src":"4624:93:101"},"nativeSrc":"4624:93:101","nodeType":"YulExpressionStatement","src":"4624:93:101"},{"nativeSrc":"4726:19:101","nodeType":"YulAssignment","src":"4726:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"4737:3:101","nodeType":"YulIdentifier","src":"4737:3:101"},{"kind":"number","nativeSrc":"4742:2:101","nodeType":"YulLiteral","src":"4742:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4733:3:101","nodeType":"YulIdentifier","src":"4733:3:101"},"nativeSrc":"4733:12:101","nodeType":"YulFunctionCall","src":"4733:12:101"},"variableNames":[{"name":"end","nativeSrc":"4726:3:101","nodeType":"YulIdentifier","src":"4726:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"4385:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4519:3:101","nodeType":"YulTypedName","src":"4519:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4527:3:101","nodeType":"YulTypedName","src":"4527:3:101","type":""}],"src":"4385:366:101"},{"body":{"nativeSrc":"4928:248:101","nodeType":"YulBlock","src":"4928:248:101","statements":[{"nativeSrc":"4938:26:101","nodeType":"YulAssignment","src":"4938:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4950:9:101","nodeType":"YulIdentifier","src":"4950:9:101"},{"kind":"number","nativeSrc":"4961:2:101","nodeType":"YulLiteral","src":"4961:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4946:3:101","nodeType":"YulIdentifier","src":"4946:3:101"},"nativeSrc":"4946:18:101","nodeType":"YulFunctionCall","src":"4946:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4938:4:101","nodeType":"YulIdentifier","src":"4938:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4985:9:101","nodeType":"YulIdentifier","src":"4985:9:101"},{"kind":"number","nativeSrc":"4996:1:101","nodeType":"YulLiteral","src":"4996:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4981:3:101","nodeType":"YulIdentifier","src":"4981:3:101"},"nativeSrc":"4981:17:101","nodeType":"YulFunctionCall","src":"4981:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5004:4:101","nodeType":"YulIdentifier","src":"5004:4:101"},{"name":"headStart","nativeSrc":"5010:9:101","nodeType":"YulIdentifier","src":"5010:9:101"}],"functionName":{"name":"sub","nativeSrc":"5000:3:101","nodeType":"YulIdentifier","src":"5000:3:101"},"nativeSrc":"5000:20:101","nodeType":"YulFunctionCall","src":"5000:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4974:6:101","nodeType":"YulIdentifier","src":"4974:6:101"},"nativeSrc":"4974:47:101","nodeType":"YulFunctionCall","src":"4974:47:101"},"nativeSrc":"4974:47:101","nodeType":"YulExpressionStatement","src":"4974:47:101"},{"nativeSrc":"5030:139:101","nodeType":"YulAssignment","src":"5030:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5164:4:101","nodeType":"YulIdentifier","src":"5164:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"5038:124:101","nodeType":"YulIdentifier","src":"5038:124:101"},"nativeSrc":"5038:131:101","nodeType":"YulFunctionCall","src":"5038:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5030:4:101","nodeType":"YulIdentifier","src":"5030:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4757:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4908:9:101","nodeType":"YulTypedName","src":"4908:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4923:4:101","nodeType":"YulTypedName","src":"4923:4:101","type":""}],"src":"4757:419:101"},{"body":{"nativeSrc":"5288:76:101","nodeType":"YulBlock","src":"5288:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5310:6:101","nodeType":"YulIdentifier","src":"5310:6:101"},{"kind":"number","nativeSrc":"5318:1:101","nodeType":"YulLiteral","src":"5318:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5306:3:101","nodeType":"YulIdentifier","src":"5306:3:101"},"nativeSrc":"5306:14:101","nodeType":"YulFunctionCall","src":"5306:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"5322:34:101","nodeType":"YulLiteral","src":"5322:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"5299:6:101","nodeType":"YulIdentifier","src":"5299:6:101"},"nativeSrc":"5299:58:101","nodeType":"YulFunctionCall","src":"5299:58:101"},"nativeSrc":"5299:58:101","nodeType":"YulExpressionStatement","src":"5299:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"5182:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5280:6:101","nodeType":"YulTypedName","src":"5280:6:101","type":""}],"src":"5182:182:101"},{"body":{"nativeSrc":"5516:220:101","nodeType":"YulBlock","src":"5516:220:101","statements":[{"nativeSrc":"5526:74:101","nodeType":"YulAssignment","src":"5526:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5592:3:101","nodeType":"YulIdentifier","src":"5592:3:101"},{"kind":"number","nativeSrc":"5597:2:101","nodeType":"YulLiteral","src":"5597:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5533:58:101","nodeType":"YulIdentifier","src":"5533:58:101"},"nativeSrc":"5533:67:101","nodeType":"YulFunctionCall","src":"5533:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5526:3:101","nodeType":"YulIdentifier","src":"5526:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5698:3:101","nodeType":"YulIdentifier","src":"5698:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"5609:88:101","nodeType":"YulIdentifier","src":"5609:88:101"},"nativeSrc":"5609:93:101","nodeType":"YulFunctionCall","src":"5609:93:101"},"nativeSrc":"5609:93:101","nodeType":"YulExpressionStatement","src":"5609:93:101"},{"nativeSrc":"5711:19:101","nodeType":"YulAssignment","src":"5711:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5722:3:101","nodeType":"YulIdentifier","src":"5722:3:101"},{"kind":"number","nativeSrc":"5727:2:101","nodeType":"YulLiteral","src":"5727:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5718:3:101","nodeType":"YulIdentifier","src":"5718:3:101"},"nativeSrc":"5718:12:101","nodeType":"YulFunctionCall","src":"5718:12:101"},"variableNames":[{"name":"end","nativeSrc":"5711:3:101","nodeType":"YulIdentifier","src":"5711:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"5370:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5504:3:101","nodeType":"YulTypedName","src":"5504:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5512:3:101","nodeType":"YulTypedName","src":"5512:3:101","type":""}],"src":"5370:366:101"},{"body":{"nativeSrc":"5913:248:101","nodeType":"YulBlock","src":"5913:248:101","statements":[{"nativeSrc":"5923:26:101","nodeType":"YulAssignment","src":"5923:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5935:9:101","nodeType":"YulIdentifier","src":"5935:9:101"},{"kind":"number","nativeSrc":"5946:2:101","nodeType":"YulLiteral","src":"5946:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5931:3:101","nodeType":"YulIdentifier","src":"5931:3:101"},"nativeSrc":"5931:18:101","nodeType":"YulFunctionCall","src":"5931:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5923:4:101","nodeType":"YulIdentifier","src":"5923:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5970:9:101","nodeType":"YulIdentifier","src":"5970:9:101"},{"kind":"number","nativeSrc":"5981:1:101","nodeType":"YulLiteral","src":"5981:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5966:3:101","nodeType":"YulIdentifier","src":"5966:3:101"},"nativeSrc":"5966:17:101","nodeType":"YulFunctionCall","src":"5966:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5989:4:101","nodeType":"YulIdentifier","src":"5989:4:101"},{"name":"headStart","nativeSrc":"5995:9:101","nodeType":"YulIdentifier","src":"5995:9:101"}],"functionName":{"name":"sub","nativeSrc":"5985:3:101","nodeType":"YulIdentifier","src":"5985:3:101"},"nativeSrc":"5985:20:101","nodeType":"YulFunctionCall","src":"5985:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5959:6:101","nodeType":"YulIdentifier","src":"5959:6:101"},"nativeSrc":"5959:47:101","nodeType":"YulFunctionCall","src":"5959:47:101"},"nativeSrc":"5959:47:101","nodeType":"YulExpressionStatement","src":"5959:47:101"},{"nativeSrc":"6015:139:101","nodeType":"YulAssignment","src":"6015:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6149:4:101","nodeType":"YulIdentifier","src":"6149:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"6023:124:101","nodeType":"YulIdentifier","src":"6023:124:101"},"nativeSrc":"6023:131:101","nodeType":"YulFunctionCall","src":"6023:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6015:4:101","nodeType":"YulIdentifier","src":"6015:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5742:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5893:9:101","nodeType":"YulTypedName","src":"5893:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5908:4:101","nodeType":"YulTypedName","src":"5908:4:101","type":""}],"src":"5742:419:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_boolt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610085575f3560e01c80638da5cb5b116100585780638da5cb5b146100e5578063bd9a548b146100fd578063be00a66e1461011e578063f2fde38b14610127575f80fd5b80630683e4ca146100895780632ade707e146100a85780635648718b146100bd578063715018a6146100dd575b5f80fd5b61009260015481565b60405161009f919061023c565b60405180910390f35b6100bb6100b636600461027a565b61013a565b005b5f546100d090600160a01b900460ff1681565b60405161009f91906102ce565b6100bb610166565b5f546001600160a01b031660405161009f91906102f5565b5f5460015460025460405161009f93600160a01b900460ff16929190610303565b61009260025481565b6100bb610135366004610347565b610179565b6101426101bc565b5f8054931515600160a01b0260ff60a01b1990941693909317909255600155600255565b61016e6101bc565b6101775f6101e5565b565b6101816101bc565b6001600160a01b0381166101b05760405162461bcd60e51b81526004016101a790610365565b60405180910390fd5b6101b9816101e5565b50565b5f546001600160a01b031633146101775760405162461bcd60e51b81526004016101a7906103af565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805b82525050565b6020810161024a8284610234565b92915050565b8015155b81146101b9575f80fd5b803561024a81610250565b80610254565b803561024a81610269565b5f805f6060848603121561028f5761028f5f80fd5b5f61029a868661025e565b93505060206102ab8682870161026f565b92505060406102bc8682870161026f565b9150509250925092565b801515610236565b6020810161024a82846102c6565b5f6001600160a01b03821661024a565b610236816102dc565b6020810161024a82846102ec565b6060810161031182866102c6565b61031e6020830185610234565b61032b6040830184610234565b949350505050565b610254816102dc565b803561024a81610333565b5f6020828403121561035a5761035a5f80fd5b5f61032b848461033c565b6020808252810161024a81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161024a56fea2646970667358221220574ed17165f92871121b841847568d97f79c2d08b0fffaacf4a4535c6339c01e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x85 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBD9A548B EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xBE00A66E EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x127 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x683E4CA EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x2ADE707E EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x5648718B EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xDD JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x92 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0xB6 CALLDATASIZE PUSH1 0x4 PUSH2 0x27A JUMP JUMPDEST PUSH2 0x13A JUMP JUMPDEST STOP JUMPDEST PUSH0 SLOAD PUSH2 0xD0 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0xBB PUSH2 0x166 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x2F5 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH2 0x9F SWAP4 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP3 SWAP2 SWAP1 PUSH2 0x303 JUMP JUMPDEST PUSH2 0x92 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xBB PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x347 JUMP JUMPDEST PUSH2 0x179 JUMP JUMPDEST PUSH2 0x142 PUSH2 0x1BC JUMP JUMPDEST PUSH0 DUP1 SLOAD SWAP4 ISZERO ISZERO PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0xFF PUSH1 0xA0 SHL NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x1 SSTORE PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH2 0x16E PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x177 PUSH0 PUSH2 0x1E5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x181 PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x365 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B9 DUP2 PUSH2 0x1E5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x177 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A7 SWAP1 PUSH2 0x3AF JUMP JUMPDEST PUSH0 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 DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24A DUP3 DUP5 PUSH2 0x234 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP2 EQ PUSH2 0x1B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24A DUP2 PUSH2 0x250 JUMP JUMPDEST DUP1 PUSH2 0x254 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24A DUP2 PUSH2 0x269 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x29A DUP7 DUP7 PUSH2 0x25E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2AB DUP7 DUP3 DUP8 ADD PUSH2 0x26F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2BC DUP7 DUP3 DUP8 ADD PUSH2 0x26F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x236 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24A DUP3 DUP5 PUSH2 0x2C6 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x24A JUMP JUMPDEST PUSH2 0x236 DUP2 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x24A DUP3 DUP5 PUSH2 0x2EC JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x311 DUP3 DUP7 PUSH2 0x2C6 JUMP JUMPDEST PUSH2 0x31E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x234 JUMP JUMPDEST PUSH2 0x32B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x234 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x254 DUP2 PUSH2 0x2DC JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x24A DUP2 PUSH2 0x333 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35A JUMPI PUSH2 0x35A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x32B DUP5 DUP5 PUSH2 0x33C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x24A DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x24A JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI 0x4E 0xD1 PUSH18 0x65F92871121B841847568D97F79C2D08B0FF STATICCALL 0xAC DELEGATECALL LOG4 MSTORE8 TLOAD PUSH4 0x39C01E64 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"170:523:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;265:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;357:195;;;;;;:::i;:::-;;:::i;:::-;;238:21;;;;;-1:-1:-1;;;238:21:73;;;;;;;;;;;;;:::i;1824:101:10:-;;;:::i;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;1201:85;;;;;;:::i;558:133:73:-;611:4;653:9;664:8;;674:9;;558:133;;;;-1:-1:-1;;;653:9:73;;;;;664:8;674:9;558:133;:::i;294:24::-;;;;;;2074:198:10;;;;;;:::i;:::-;;:::i;357:195:73:-;1094:13:10;:11;:13::i;:::-;461:9:73::1;:22:::0;;;::::1;;-1:-1:-1::0;;;461:22:73::1;-1:-1:-1::0;;;;461:22:73;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;493:20:73;523:9:::1;:22:::0;357:195::o;1824:101:10:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2074:198::-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;2426:187::-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;865:116::-;839:13;;832:21;935;928:5;925:32;915:60;;971:1;968;961:12;987:133;1055:20;;1084:30;1055:20;1084:30;:::i;1126:122::-;1217:5;1199:24;7:77;1254:139;1325:20;;1354:33;1325:20;1354:33;:::i;1399:613::-;1473:6;1481;1489;1538:2;1526:9;1517:7;1513:23;1509:32;1506:119;;;1544:79;170:523:73;;;1544:79:101;1664:1;1689:50;1731:7;1711:9;1689:50;:::i;:::-;1679:60;;1635:114;1788:2;1814:53;1859:7;1850:6;1839:9;1835:22;1814:53;:::i;:::-;1804:63;;1759:118;1916:2;1942:53;1987:7;1978:6;1967:9;1963:22;1942:53;:::i;:::-;1932:63;;1887:118;1399:613;;;;;:::o;2018:109::-;839:13;;832:21;2099;769:90;2133:210;2258:2;2243:18;;2271:65;2247:9;2309:6;2271:65;:::i;2481:96::-;2518:7;-1:-1:-1;;;;;2415:54:101;;2547:24;2349:126;2583:118;2670:24;2688:5;2670:24;:::i;2707:222::-;2838:2;2823:18;;2851:71;2827:9;2895:6;2851:71;:::i;2935:430::-;3116:2;3101:18;;3129:65;3105:9;3167:6;3129:65;:::i;:::-;3204:72;3272:2;3261:9;3257:18;3248:6;3204:72;:::i;:::-;3286;3354:2;3343:9;3339:18;3330:6;3286:72;:::i;:::-;2935:430;;;;;;:::o;3371:122::-;3444:24;3462:5;3444:24;:::i;3499:139::-;3570:20;;3599:33;3570:20;3599:33;:::i;3644:329::-;3703:6;3752:2;3740:9;3731:7;3727:23;3723:32;3720:119;;;3758:79;170:523:73;;;3758:79:101;3878:1;3903:53;3948:7;3928:9;3903:53;:::i;4757:419::-;4961:2;4974:47;;;4946:18;;5038:131;4946:18;4612:2;4085:19;;4294:34;4137:4;4128:14;;4271:58;-1:-1:-1;;;4346:15:101;;;4339:33;4733:12;;;4385:366;5742:419;5946:2;5959:47;;;5931:18;;;4085:19;;;5322:34;4128:14;;;5299:58;5718:12;;;6023:131;5370:366"},"gasEstimates":{"creation":{"codeDepositCost":"211000","executionCost":"26089","totalCost":"237089"},"external":{"getPrices()":"infinite","isBadData()":"2447","owner()":"infinite","priceHigh()":"2404","priceLow()":"2361","renounceOwnership()":"infinite","setPrices(bool,uint256,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"getPrices()":"bd9a548b","isBadData()":"5648718b","owner()":"8da5cb5b","priceHigh()":"be00a66e","priceLow()":"0683e4ca","renounceOwnership()":"715018a6","setPrices(bool,uint256,uint256)":"2ade707e","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getPrices\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBadData\",\"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\":\"priceHigh\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceLow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isBadData\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"_priceLow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_priceHigh\",\"type\":\"uint256\"}],\"name\":\"setPrices\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol\":\"MockSfrxEthFraxOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/ISfrxEthFraxOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISfrxEthFraxOracle {\\n    function getPrices() external view returns (bool _isbadData, uint256 _priceLow, uint256 _priceHigh);\\n}\\n\",\"keccak256\":\"0x1444fbcfe658b985041e7ca5da6cce92fd143ca46d9793316ab2ef542fbde87a\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../../interfaces/ISfrxEthFraxOracle.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockSfrxEthFraxOracle is ISfrxEthFraxOracle, Ownable {\\n    bool public isBadData;\\n    uint256 public priceLow;\\n    uint256 public priceHigh;\\n\\n    constructor() Ownable() {}\\n\\n    function setPrices(bool _isBadData, uint256 _priceLow, uint256 _priceHigh) external onlyOwner {\\n        isBadData = _isBadData;\\n        priceLow = _priceLow;\\n        priceHigh = _priceHigh;\\n    }\\n\\n    function getPrices() external view override returns (bool, uint256, uint256) {\\n        return (isBadData, priceLow, priceHigh);\\n    }\\n}\\n\",\"keccak256\":\"0xe4f649d490f0db9a32355b6de0db20f23e4ee8b475e9bef78bb34ca48c2136af\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1101,"contract":"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol:MockSfrxEthFraxOracle","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":7481,"contract":"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol:MockSfrxEthFraxOracle","label":"isBadData","offset":20,"slot":"0","type":"t_bool"},{"astId":7483,"contract":"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol:MockSfrxEthFraxOracle","label":"priceLow","offset":0,"slot":"1","type":"t_uint256"},{"astId":7485,"contract":"contracts/oracles/mocks/MockSFrxEthFraxOracle.sol:MockSfrxEthFraxOracle","label":"priceHigh","offset":0,"slot":"2","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/BEP20Harness.sol":{"BEP20Harness":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimalsInternal","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"faucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"@_7558":{"entryPoint":null,"id":7558,"parameterSlots":3,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":261,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":324,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":383,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory":{"entryPoint":400,"id":null,"parameterSlots":2,"returnSlots":3},"allocate_memory":{"entryPoint":182,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":209,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":686,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":656,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":590,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":749,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":250,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":546,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":138,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":526,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":118,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":639,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":604,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":366,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:8980:101","nodeType":"YulBlock","src":"0:8980:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2613:43:101","nodeType":"YulBlock","src":"2613:43:101","statements":[{"nativeSrc":"2623:27:101","nodeType":"YulAssignment","src":"2623:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2638:5:101","nodeType":"YulIdentifier","src":"2638:5:101"},{"kind":"number","nativeSrc":"2645:4:101","nodeType":"YulLiteral","src":"2645:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2634:3:101","nodeType":"YulIdentifier","src":"2634:3:101"},"nativeSrc":"2634:16:101","nodeType":"YulFunctionCall","src":"2634:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2623:7:101","nodeType":"YulIdentifier","src":"2623:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2570:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulTypedName","src":"2595:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2605:7:101","nodeType":"YulTypedName","src":"2605:7:101","type":""}],"src":"2570:86:101"},{"body":{"nativeSrc":"2703:77:101","nodeType":"YulBlock","src":"2703:77:101","statements":[{"body":{"nativeSrc":"2758:16:101","nodeType":"YulBlock","src":"2758:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2767:1:101","nodeType":"YulLiteral","src":"2767:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2770:1:101","nodeType":"YulLiteral","src":"2770:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2760:6:101","nodeType":"YulIdentifier","src":"2760:6:101"},"nativeSrc":"2760:12:101","nodeType":"YulFunctionCall","src":"2760:12:101"},"nativeSrc":"2760:12:101","nodeType":"YulExpressionStatement","src":"2760:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2726:5:101","nodeType":"YulIdentifier","src":"2726:5:101"},{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2733:15:101","nodeType":"YulIdentifier","src":"2733:15:101"},"nativeSrc":"2733:22:101","nodeType":"YulFunctionCall","src":"2733:22:101"}],"functionName":{"name":"eq","nativeSrc":"2723:2:101","nodeType":"YulIdentifier","src":"2723:2:101"},"nativeSrc":"2723:33:101","nodeType":"YulFunctionCall","src":"2723:33:101"}],"functionName":{"name":"iszero","nativeSrc":"2716:6:101","nodeType":"YulIdentifier","src":"2716:6:101"},"nativeSrc":"2716:41:101","nodeType":"YulFunctionCall","src":"2716:41:101"},"nativeSrc":"2713:61:101","nodeType":"YulIf","src":"2713:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"2662:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2696:5:101","nodeType":"YulTypedName","src":"2696:5:101","type":""}],"src":"2662:118:101"},{"body":{"nativeSrc":"2847:78:101","nodeType":"YulBlock","src":"2847:78:101","statements":[{"nativeSrc":"2857:22:101","nodeType":"YulAssignment","src":"2857:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"mload","nativeSrc":"2866:5:101","nodeType":"YulIdentifier","src":"2866:5:101"},"nativeSrc":"2866:13:101","nodeType":"YulFunctionCall","src":"2866:13:101"},"variableNames":[{"name":"value","nativeSrc":"2857:5:101","nodeType":"YulIdentifier","src":"2857:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2913:5:101","nodeType":"YulIdentifier","src":"2913:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2888:24:101","nodeType":"YulIdentifier","src":"2888:24:101"},"nativeSrc":"2888:31:101","nodeType":"YulFunctionCall","src":"2888:31:101"},"nativeSrc":"2888:31:101","nodeType":"YulExpressionStatement","src":"2888:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2786:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2825:6:101","nodeType":"YulTypedName","src":"2825:6:101","type":""},{"name":"end","nativeSrc":"2833:3:101","nodeType":"YulTypedName","src":"2833:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2841:5:101","nodeType":"YulTypedName","src":"2841:5:101","type":""}],"src":"2786:139:101"},{"body":{"nativeSrc":"3060:876:101","nodeType":"YulBlock","src":"3060:876:101","statements":[{"body":{"nativeSrc":"3106:83:101","nodeType":"YulBlock","src":"3106:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3108:77:101","nodeType":"YulIdentifier","src":"3108:77:101"},"nativeSrc":"3108:79:101","nodeType":"YulFunctionCall","src":"3108:79:101"},"nativeSrc":"3108:79:101","nodeType":"YulExpressionStatement","src":"3108:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3081:7:101","nodeType":"YulIdentifier","src":"3081:7:101"},{"name":"headStart","nativeSrc":"3090:9:101","nodeType":"YulIdentifier","src":"3090:9:101"}],"functionName":{"name":"sub","nativeSrc":"3077:3:101","nodeType":"YulIdentifier","src":"3077:3:101"},"nativeSrc":"3077:23:101","nodeType":"YulFunctionCall","src":"3077:23:101"},{"kind":"number","nativeSrc":"3102:2:101","nodeType":"YulLiteral","src":"3102:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3073:3:101","nodeType":"YulIdentifier","src":"3073:3:101"},"nativeSrc":"3073:32:101","nodeType":"YulFunctionCall","src":"3073:32:101"},"nativeSrc":"3070:119:101","nodeType":"YulIf","src":"3070:119:101"},{"nativeSrc":"3199:291:101","nodeType":"YulBlock","src":"3199:291:101","statements":[{"nativeSrc":"3214:38:101","nodeType":"YulVariableDeclaration","src":"3214:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3238:9:101","nodeType":"YulIdentifier","src":"3238:9:101"},{"kind":"number","nativeSrc":"3249:1:101","nodeType":"YulLiteral","src":"3249:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3234:3:101","nodeType":"YulIdentifier","src":"3234:3:101"},"nativeSrc":"3234:17:101","nodeType":"YulFunctionCall","src":"3234:17:101"}],"functionName":{"name":"mload","nativeSrc":"3228:5:101","nodeType":"YulIdentifier","src":"3228:5:101"},"nativeSrc":"3228:24:101","nodeType":"YulFunctionCall","src":"3228:24:101"},"variables":[{"name":"offset","nativeSrc":"3218:6:101","nodeType":"YulTypedName","src":"3218:6:101","type":""}]},{"body":{"nativeSrc":"3299:83:101","nodeType":"YulBlock","src":"3299:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3301:77:101","nodeType":"YulIdentifier","src":"3301:77:101"},"nativeSrc":"3301:79:101","nodeType":"YulFunctionCall","src":"3301:79:101"},"nativeSrc":"3301:79:101","nodeType":"YulExpressionStatement","src":"3301:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3271:6:101","nodeType":"YulIdentifier","src":"3271:6:101"},{"kind":"number","nativeSrc":"3279:18:101","nodeType":"YulLiteral","src":"3279:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3268:2:101","nodeType":"YulIdentifier","src":"3268:2:101"},"nativeSrc":"3268:30:101","nodeType":"YulFunctionCall","src":"3268:30:101"},"nativeSrc":"3265:117:101","nodeType":"YulIf","src":"3265:117:101"},{"nativeSrc":"3396:84:101","nodeType":"YulAssignment","src":"3396:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3452:9:101","nodeType":"YulIdentifier","src":"3452:9:101"},{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulIdentifier","src":"3463:6:101"}],"functionName":{"name":"add","nativeSrc":"3448:3:101","nodeType":"YulIdentifier","src":"3448:3:101"},"nativeSrc":"3448:22:101","nodeType":"YulFunctionCall","src":"3448:22:101"},{"name":"dataEnd","nativeSrc":"3472:7:101","nodeType":"YulIdentifier","src":"3472:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3406:41:101","nodeType":"YulIdentifier","src":"3406:41:101"},"nativeSrc":"3406:74:101","nodeType":"YulFunctionCall","src":"3406:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3396:6:101","nodeType":"YulIdentifier","src":"3396:6:101"}]}]},{"nativeSrc":"3500:292:101","nodeType":"YulBlock","src":"3500:292:101","statements":[{"nativeSrc":"3515:39:101","nodeType":"YulVariableDeclaration","src":"3515:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3539:9:101","nodeType":"YulIdentifier","src":"3539:9:101"},{"kind":"number","nativeSrc":"3550:2:101","nodeType":"YulLiteral","src":"3550:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3535:3:101","nodeType":"YulIdentifier","src":"3535:3:101"},"nativeSrc":"3535:18:101","nodeType":"YulFunctionCall","src":"3535:18:101"}],"functionName":{"name":"mload","nativeSrc":"3529:5:101","nodeType":"YulIdentifier","src":"3529:5:101"},"nativeSrc":"3529:25:101","nodeType":"YulFunctionCall","src":"3529:25:101"},"variables":[{"name":"offset","nativeSrc":"3519:6:101","nodeType":"YulTypedName","src":"3519:6:101","type":""}]},{"body":{"nativeSrc":"3601:83:101","nodeType":"YulBlock","src":"3601:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3603:77:101","nodeType":"YulIdentifier","src":"3603:77:101"},"nativeSrc":"3603:79:101","nodeType":"YulFunctionCall","src":"3603:79:101"},"nativeSrc":"3603:79:101","nodeType":"YulExpressionStatement","src":"3603:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3573:6:101","nodeType":"YulIdentifier","src":"3573:6:101"},{"kind":"number","nativeSrc":"3581:18:101","nodeType":"YulLiteral","src":"3581:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3570:2:101","nodeType":"YulIdentifier","src":"3570:2:101"},"nativeSrc":"3570:30:101","nodeType":"YulFunctionCall","src":"3570:30:101"},"nativeSrc":"3567:117:101","nodeType":"YulIf","src":"3567:117:101"},{"nativeSrc":"3698:84:101","nodeType":"YulAssignment","src":"3698:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3754:9:101","nodeType":"YulIdentifier","src":"3754:9:101"},{"name":"offset","nativeSrc":"3765:6:101","nodeType":"YulIdentifier","src":"3765:6:101"}],"functionName":{"name":"add","nativeSrc":"3750:3:101","nodeType":"YulIdentifier","src":"3750:3:101"},"nativeSrc":"3750:22:101","nodeType":"YulFunctionCall","src":"3750:22:101"},{"name":"dataEnd","nativeSrc":"3774:7:101","nodeType":"YulIdentifier","src":"3774:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3708:41:101","nodeType":"YulIdentifier","src":"3708:41:101"},"nativeSrc":"3708:74:101","nodeType":"YulFunctionCall","src":"3708:74:101"},"variableNames":[{"name":"value1","nativeSrc":"3698:6:101","nodeType":"YulIdentifier","src":"3698:6:101"}]}]},{"nativeSrc":"3802:127:101","nodeType":"YulBlock","src":"3802:127:101","statements":[{"nativeSrc":"3817:16:101","nodeType":"YulVariableDeclaration","src":"3817:16:101","value":{"kind":"number","nativeSrc":"3831:2:101","nodeType":"YulLiteral","src":"3831:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3821:6:101","nodeType":"YulTypedName","src":"3821:6:101","type":""}]},{"nativeSrc":"3847:72:101","nodeType":"YulAssignment","src":"3847:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3891:9:101","nodeType":"YulIdentifier","src":"3891:9:101"},{"name":"offset","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"}],"functionName":{"name":"add","nativeSrc":"3887:3:101","nodeType":"YulIdentifier","src":"3887:3:101"},"nativeSrc":"3887:22:101","nodeType":"YulFunctionCall","src":"3887:22:101"},{"name":"dataEnd","nativeSrc":"3911:7:101","nodeType":"YulIdentifier","src":"3911:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"3857:29:101","nodeType":"YulIdentifier","src":"3857:29:101"},"nativeSrc":"3857:62:101","nodeType":"YulFunctionCall","src":"3857:62:101"},"variableNames":[{"name":"value2","nativeSrc":"3847:6:101","nodeType":"YulIdentifier","src":"3847:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory","nativeSrc":"2931:1005:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3014:9:101","nodeType":"YulTypedName","src":"3014:9:101","type":""},{"name":"dataEnd","nativeSrc":"3025:7:101","nodeType":"YulTypedName","src":"3025:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3037:6:101","nodeType":"YulTypedName","src":"3037:6:101","type":""},{"name":"value1","nativeSrc":"3045:6:101","nodeType":"YulTypedName","src":"3045:6:101","type":""},{"name":"value2","nativeSrc":"3053:6:101","nodeType":"YulTypedName","src":"3053:6:101","type":""}],"src":"2931:1005:101"},{"body":{"nativeSrc":"4001:40:101","nodeType":"YulBlock","src":"4001:40:101","statements":[{"nativeSrc":"4012:22:101","nodeType":"YulAssignment","src":"4012:22:101","value":{"arguments":[{"name":"value","nativeSrc":"4028:5:101","nodeType":"YulIdentifier","src":"4028:5:101"}],"functionName":{"name":"mload","nativeSrc":"4022:5:101","nodeType":"YulIdentifier","src":"4022:5:101"},"nativeSrc":"4022:12:101","nodeType":"YulFunctionCall","src":"4022:12:101"},"variableNames":[{"name":"length","nativeSrc":"4012:6:101","nodeType":"YulIdentifier","src":"4012:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3942:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3984:5:101","nodeType":"YulTypedName","src":"3984:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3994:6:101","nodeType":"YulTypedName","src":"3994:6:101","type":""}],"src":"3942:99:101"},{"body":{"nativeSrc":"4075:152:101","nodeType":"YulBlock","src":"4075:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4092:1:101","nodeType":"YulLiteral","src":"4092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4095:77:101","nodeType":"YulLiteral","src":"4095:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4085:6:101","nodeType":"YulIdentifier","src":"4085:6:101"},"nativeSrc":"4085:88:101","nodeType":"YulFunctionCall","src":"4085:88:101"},"nativeSrc":"4085:88:101","nodeType":"YulExpressionStatement","src":"4085:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4189:1:101","nodeType":"YulLiteral","src":"4189:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4192:4:101","nodeType":"YulLiteral","src":"4192:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4182:6:101","nodeType":"YulIdentifier","src":"4182:6:101"},"nativeSrc":"4182:15:101","nodeType":"YulFunctionCall","src":"4182:15:101"},"nativeSrc":"4182:15:101","nodeType":"YulExpressionStatement","src":"4182:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4213:1:101","nodeType":"YulLiteral","src":"4213:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4216:4:101","nodeType":"YulLiteral","src":"4216:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},"nativeSrc":"4206:15:101","nodeType":"YulFunctionCall","src":"4206:15:101"},"nativeSrc":"4206:15:101","nodeType":"YulExpressionStatement","src":"4206:15:101"}]},"name":"panic_error_0x22","nativeSrc":"4047:180:101","nodeType":"YulFunctionDefinition","src":"4047:180:101"},{"body":{"nativeSrc":"4284:269:101","nodeType":"YulBlock","src":"4284:269:101","statements":[{"nativeSrc":"4294:22:101","nodeType":"YulAssignment","src":"4294:22:101","value":{"arguments":[{"name":"data","nativeSrc":"4308:4:101","nodeType":"YulIdentifier","src":"4308:4:101"},{"kind":"number","nativeSrc":"4314:1:101","nodeType":"YulLiteral","src":"4314:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4304:3:101","nodeType":"YulIdentifier","src":"4304:3:101"},"nativeSrc":"4304:12:101","nodeType":"YulFunctionCall","src":"4304:12:101"},"variableNames":[{"name":"length","nativeSrc":"4294:6:101","nodeType":"YulIdentifier","src":"4294:6:101"}]},{"nativeSrc":"4325:38:101","nodeType":"YulVariableDeclaration","src":"4325:38:101","value":{"arguments":[{"name":"data","nativeSrc":"4355:4:101","nodeType":"YulIdentifier","src":"4355:4:101"},{"kind":"number","nativeSrc":"4361:1:101","nodeType":"YulLiteral","src":"4361:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4351:3:101","nodeType":"YulIdentifier","src":"4351:3:101"},"nativeSrc":"4351:12:101","nodeType":"YulFunctionCall","src":"4351:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4329:18:101","nodeType":"YulTypedName","src":"4329:18:101","type":""}]},{"body":{"nativeSrc":"4402:51:101","nodeType":"YulBlock","src":"4402:51:101","statements":[{"nativeSrc":"4416:27:101","nodeType":"YulAssignment","src":"4416:27:101","value":{"arguments":[{"name":"length","nativeSrc":"4430:6:101","nodeType":"YulIdentifier","src":"4430:6:101"},{"kind":"number","nativeSrc":"4438:4:101","nodeType":"YulLiteral","src":"4438:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4426:3:101","nodeType":"YulIdentifier","src":"4426:3:101"},"nativeSrc":"4426:17:101","nodeType":"YulFunctionCall","src":"4426:17:101"},"variableNames":[{"name":"length","nativeSrc":"4416:6:101","nodeType":"YulIdentifier","src":"4416:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4382:18:101","nodeType":"YulIdentifier","src":"4382:18:101"}],"functionName":{"name":"iszero","nativeSrc":"4375:6:101","nodeType":"YulIdentifier","src":"4375:6:101"},"nativeSrc":"4375:26:101","nodeType":"YulFunctionCall","src":"4375:26:101"},"nativeSrc":"4372:81:101","nodeType":"YulIf","src":"4372:81:101"},{"body":{"nativeSrc":"4505:42:101","nodeType":"YulBlock","src":"4505:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4519:16:101","nodeType":"YulIdentifier","src":"4519:16:101"},"nativeSrc":"4519:18:101","nodeType":"YulFunctionCall","src":"4519:18:101"},"nativeSrc":"4519:18:101","nodeType":"YulExpressionStatement","src":"4519:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4469:18:101","nodeType":"YulIdentifier","src":"4469:18:101"},{"arguments":[{"name":"length","nativeSrc":"4492:6:101","nodeType":"YulIdentifier","src":"4492:6:101"},{"kind":"number","nativeSrc":"4500:2:101","nodeType":"YulLiteral","src":"4500:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4489:2:101","nodeType":"YulIdentifier","src":"4489:2:101"},"nativeSrc":"4489:14:101","nodeType":"YulFunctionCall","src":"4489:14:101"}],"functionName":{"name":"eq","nativeSrc":"4466:2:101","nodeType":"YulIdentifier","src":"4466:2:101"},"nativeSrc":"4466:38:101","nodeType":"YulFunctionCall","src":"4466:38:101"},"nativeSrc":"4463:84:101","nodeType":"YulIf","src":"4463:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"4233:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4268:4:101","nodeType":"YulTypedName","src":"4268:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4277:6:101","nodeType":"YulTypedName","src":"4277:6:101","type":""}],"src":"4233:320:101"},{"body":{"nativeSrc":"4613:87:101","nodeType":"YulBlock","src":"4613:87:101","statements":[{"nativeSrc":"4623:11:101","nodeType":"YulAssignment","src":"4623:11:101","value":{"name":"ptr","nativeSrc":"4631:3:101","nodeType":"YulIdentifier","src":"4631:3:101"},"variableNames":[{"name":"data","nativeSrc":"4623:4:101","nodeType":"YulIdentifier","src":"4623:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4651:1:101","nodeType":"YulLiteral","src":"4651:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"4654:3:101","nodeType":"YulIdentifier","src":"4654:3:101"}],"functionName":{"name":"mstore","nativeSrc":"4644:6:101","nodeType":"YulIdentifier","src":"4644:6:101"},"nativeSrc":"4644:14:101","nodeType":"YulFunctionCall","src":"4644:14:101"},"nativeSrc":"4644:14:101","nodeType":"YulExpressionStatement","src":"4644:14:101"},{"nativeSrc":"4667:26:101","nodeType":"YulAssignment","src":"4667:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"4685:1:101","nodeType":"YulLiteral","src":"4685:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4688:4:101","nodeType":"YulLiteral","src":"4688:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4675:9:101","nodeType":"YulIdentifier","src":"4675:9:101"},"nativeSrc":"4675:18:101","nodeType":"YulFunctionCall","src":"4675:18:101"},"variableNames":[{"name":"data","nativeSrc":"4667:4:101","nodeType":"YulIdentifier","src":"4667:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4559:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4600:3:101","nodeType":"YulTypedName","src":"4600:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4608:4:101","nodeType":"YulTypedName","src":"4608:4:101","type":""}],"src":"4559:141:101"},{"body":{"nativeSrc":"4750:49:101","nodeType":"YulBlock","src":"4750:49:101","statements":[{"nativeSrc":"4760:33:101","nodeType":"YulAssignment","src":"4760:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4778:5:101","nodeType":"YulIdentifier","src":"4778:5:101"},{"kind":"number","nativeSrc":"4785:2:101","nodeType":"YulLiteral","src":"4785:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4774:3:101","nodeType":"YulIdentifier","src":"4774:3:101"},"nativeSrc":"4774:14:101","nodeType":"YulFunctionCall","src":"4774:14:101"},{"kind":"number","nativeSrc":"4790:2:101","nodeType":"YulLiteral","src":"4790:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4770:3:101","nodeType":"YulIdentifier","src":"4770:3:101"},"nativeSrc":"4770:23:101","nodeType":"YulFunctionCall","src":"4770:23:101"},"variableNames":[{"name":"result","nativeSrc":"4760:6:101","nodeType":"YulIdentifier","src":"4760:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4706:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4733:5:101","nodeType":"YulTypedName","src":"4733:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4743:6:101","nodeType":"YulTypedName","src":"4743:6:101","type":""}],"src":"4706:93:101"},{"body":{"nativeSrc":"4858:54:101","nodeType":"YulBlock","src":"4858:54:101","statements":[{"nativeSrc":"4868:37:101","nodeType":"YulAssignment","src":"4868:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"4893:4:101","nodeType":"YulIdentifier","src":"4893:4:101"},{"name":"value","nativeSrc":"4899:5:101","nodeType":"YulIdentifier","src":"4899:5:101"}],"functionName":{"name":"shl","nativeSrc":"4889:3:101","nodeType":"YulIdentifier","src":"4889:3:101"},"nativeSrc":"4889:16:101","nodeType":"YulFunctionCall","src":"4889:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"4868:8:101","nodeType":"YulIdentifier","src":"4868:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"4805:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4833:4:101","nodeType":"YulTypedName","src":"4833:4:101","type":""},{"name":"value","nativeSrc":"4839:5:101","nodeType":"YulTypedName","src":"4839:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4849:8:101","nodeType":"YulTypedName","src":"4849:8:101","type":""}],"src":"4805:107:101"},{"body":{"nativeSrc":"4994:317:101","nodeType":"YulBlock","src":"4994:317:101","statements":[{"nativeSrc":"5004:35:101","nodeType":"YulVariableDeclaration","src":"5004:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5025:10:101","nodeType":"YulIdentifier","src":"5025:10:101"},{"kind":"number","nativeSrc":"5037:1:101","nodeType":"YulLiteral","src":"5037:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5021:3:101","nodeType":"YulIdentifier","src":"5021:3:101"},"nativeSrc":"5021:18:101","nodeType":"YulFunctionCall","src":"5021:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"5008:9:101","nodeType":"YulTypedName","src":"5008:9:101","type":""}]},{"nativeSrc":"5048:109:101","nodeType":"YulVariableDeclaration","src":"5048:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5079:9:101","nodeType":"YulIdentifier","src":"5079:9:101"},{"kind":"number","nativeSrc":"5090:66:101","nodeType":"YulLiteral","src":"5090:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5060:18:101","nodeType":"YulIdentifier","src":"5060:18:101"},"nativeSrc":"5060:97:101","nodeType":"YulFunctionCall","src":"5060:97:101"},"variables":[{"name":"mask","nativeSrc":"5052:4:101","nodeType":"YulTypedName","src":"5052:4:101","type":""}]},{"nativeSrc":"5166:51:101","nodeType":"YulAssignment","src":"5166:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5197:9:101","nodeType":"YulIdentifier","src":"5197:9:101"},{"name":"toInsert","nativeSrc":"5208:8:101","nodeType":"YulIdentifier","src":"5208:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5178:18:101","nodeType":"YulIdentifier","src":"5178:18:101"},"nativeSrc":"5178:39:101","nodeType":"YulFunctionCall","src":"5178:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"5166:8:101","nodeType":"YulIdentifier","src":"5166:8:101"}]},{"nativeSrc":"5226:30:101","nodeType":"YulAssignment","src":"5226:30:101","value":{"arguments":[{"name":"value","nativeSrc":"5239:5:101","nodeType":"YulIdentifier","src":"5239:5:101"},{"arguments":[{"name":"mask","nativeSrc":"5250:4:101","nodeType":"YulIdentifier","src":"5250:4:101"}],"functionName":{"name":"not","nativeSrc":"5246:3:101","nodeType":"YulIdentifier","src":"5246:3:101"},"nativeSrc":"5246:9:101","nodeType":"YulFunctionCall","src":"5246:9:101"}],"functionName":{"name":"and","nativeSrc":"5235:3:101","nodeType":"YulIdentifier","src":"5235:3:101"},"nativeSrc":"5235:21:101","nodeType":"YulFunctionCall","src":"5235:21:101"},"variableNames":[{"name":"value","nativeSrc":"5226:5:101","nodeType":"YulIdentifier","src":"5226:5:101"}]},{"nativeSrc":"5265:40:101","nodeType":"YulAssignment","src":"5265:40:101","value":{"arguments":[{"name":"value","nativeSrc":"5278:5:101","nodeType":"YulIdentifier","src":"5278:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"5289:8:101","nodeType":"YulIdentifier","src":"5289:8:101"},{"name":"mask","nativeSrc":"5299:4:101","nodeType":"YulIdentifier","src":"5299:4:101"}],"functionName":{"name":"and","nativeSrc":"5285:3:101","nodeType":"YulIdentifier","src":"5285:3:101"},"nativeSrc":"5285:19:101","nodeType":"YulFunctionCall","src":"5285:19:101"}],"functionName":{"name":"or","nativeSrc":"5275:2:101","nodeType":"YulIdentifier","src":"5275:2:101"},"nativeSrc":"5275:30:101","nodeType":"YulFunctionCall","src":"5275:30:101"},"variableNames":[{"name":"result","nativeSrc":"5265:6:101","nodeType":"YulIdentifier","src":"5265:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"4918:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4955:5:101","nodeType":"YulTypedName","src":"4955:5:101","type":""},{"name":"shiftBytes","nativeSrc":"4962:10:101","nodeType":"YulTypedName","src":"4962:10:101","type":""},{"name":"toInsert","nativeSrc":"4974:8:101","nodeType":"YulTypedName","src":"4974:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4987:6:101","nodeType":"YulTypedName","src":"4987:6:101","type":""}],"src":"4918:393:101"},{"body":{"nativeSrc":"5362:32:101","nodeType":"YulBlock","src":"5362:32:101","statements":[{"nativeSrc":"5372:16:101","nodeType":"YulAssignment","src":"5372:16:101","value":{"name":"value","nativeSrc":"5383:5:101","nodeType":"YulIdentifier","src":"5383:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5372:7:101","nodeType":"YulIdentifier","src":"5372:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5317:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5344:5:101","nodeType":"YulTypedName","src":"5344:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5354:7:101","nodeType":"YulTypedName","src":"5354:7:101","type":""}],"src":"5317:77:101"},{"body":{"nativeSrc":"5432:28:101","nodeType":"YulBlock","src":"5432:28:101","statements":[{"nativeSrc":"5442:12:101","nodeType":"YulAssignment","src":"5442:12:101","value":{"name":"value","nativeSrc":"5449:5:101","nodeType":"YulIdentifier","src":"5449:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"}]}]},"name":"identity","nativeSrc":"5400:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5418:5:101","nodeType":"YulTypedName","src":"5418:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5428:3:101","nodeType":"YulTypedName","src":"5428:3:101","type":""}],"src":"5400:60:101"},{"body":{"nativeSrc":"5526:82:101","nodeType":"YulBlock","src":"5526:82:101","statements":[{"nativeSrc":"5536:66:101","nodeType":"YulAssignment","src":"5536:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5594:5:101","nodeType":"YulIdentifier","src":"5594:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5576:17:101","nodeType":"YulIdentifier","src":"5576:17:101"},"nativeSrc":"5576:24:101","nodeType":"YulFunctionCall","src":"5576:24:101"}],"functionName":{"name":"identity","nativeSrc":"5567:8:101","nodeType":"YulIdentifier","src":"5567:8:101"},"nativeSrc":"5567:34:101","nodeType":"YulFunctionCall","src":"5567:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5549:17:101","nodeType":"YulIdentifier","src":"5549:17:101"},"nativeSrc":"5549:53:101","nodeType":"YulFunctionCall","src":"5549:53:101"},"variableNames":[{"name":"converted","nativeSrc":"5536:9:101","nodeType":"YulIdentifier","src":"5536:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5466:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5506:5:101","nodeType":"YulTypedName","src":"5506:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5516:9:101","nodeType":"YulTypedName","src":"5516:9:101","type":""}],"src":"5466:142:101"},{"body":{"nativeSrc":"5661:28:101","nodeType":"YulBlock","src":"5661:28:101","statements":[{"nativeSrc":"5671:12:101","nodeType":"YulAssignment","src":"5671:12:101","value":{"name":"value","nativeSrc":"5678:5:101","nodeType":"YulIdentifier","src":"5678:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5671:3:101","nodeType":"YulIdentifier","src":"5671:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5614:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5647:5:101","nodeType":"YulTypedName","src":"5647:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5657:3:101","nodeType":"YulTypedName","src":"5657:3:101","type":""}],"src":"5614:75:101"},{"body":{"nativeSrc":"5771:193:101","nodeType":"YulBlock","src":"5771:193:101","statements":[{"nativeSrc":"5781:63:101","nodeType":"YulVariableDeclaration","src":"5781:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"5836:7:101","nodeType":"YulIdentifier","src":"5836:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5805:30:101","nodeType":"YulIdentifier","src":"5805:30:101"},"nativeSrc":"5805:39:101","nodeType":"YulFunctionCall","src":"5805:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"5785:16:101","nodeType":"YulTypedName","src":"5785:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5860:4:101","nodeType":"YulIdentifier","src":"5860:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5900:4:101","nodeType":"YulIdentifier","src":"5900:4:101"}],"functionName":{"name":"sload","nativeSrc":"5894:5:101","nodeType":"YulIdentifier","src":"5894:5:101"},"nativeSrc":"5894:11:101","nodeType":"YulFunctionCall","src":"5894:11:101"},{"name":"offset","nativeSrc":"5907:6:101","nodeType":"YulIdentifier","src":"5907:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"5939:16:101","nodeType":"YulIdentifier","src":"5939:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"5915:23:101","nodeType":"YulIdentifier","src":"5915:23:101"},"nativeSrc":"5915:41:101","nodeType":"YulFunctionCall","src":"5915:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5866:27:101","nodeType":"YulIdentifier","src":"5866:27:101"},"nativeSrc":"5866:91:101","nodeType":"YulFunctionCall","src":"5866:91:101"}],"functionName":{"name":"sstore","nativeSrc":"5853:6:101","nodeType":"YulIdentifier","src":"5853:6:101"},"nativeSrc":"5853:105:101","nodeType":"YulFunctionCall","src":"5853:105:101"},"nativeSrc":"5853:105:101","nodeType":"YulExpressionStatement","src":"5853:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5695:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5748:4:101","nodeType":"YulTypedName","src":"5748:4:101","type":""},{"name":"offset","nativeSrc":"5754:6:101","nodeType":"YulTypedName","src":"5754:6:101","type":""},{"name":"value_0","nativeSrc":"5762:7:101","nodeType":"YulTypedName","src":"5762:7:101","type":""}],"src":"5695:269:101"},{"body":{"nativeSrc":"6019:24:101","nodeType":"YulBlock","src":"6019:24:101","statements":[{"nativeSrc":"6029:8:101","nodeType":"YulAssignment","src":"6029:8:101","value":{"kind":"number","nativeSrc":"6036:1:101","nodeType":"YulLiteral","src":"6036:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6029:3:101","nodeType":"YulIdentifier","src":"6029:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"5970:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6015:3:101","nodeType":"YulTypedName","src":"6015:3:101","type":""}],"src":"5970:73:101"},{"body":{"nativeSrc":"6102:136:101","nodeType":"YulBlock","src":"6102:136:101","statements":[{"nativeSrc":"6112:46:101","nodeType":"YulVariableDeclaration","src":"6112:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6126:30:101","nodeType":"YulIdentifier","src":"6126:30:101"},"nativeSrc":"6126:32:101","nodeType":"YulFunctionCall","src":"6126:32:101"},"variables":[{"name":"zero_0","nativeSrc":"6116:6:101","nodeType":"YulTypedName","src":"6116:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6211:4:101","nodeType":"YulIdentifier","src":"6211:4:101"},{"name":"offset","nativeSrc":"6217:6:101","nodeType":"YulIdentifier","src":"6217:6:101"},{"name":"zero_0","nativeSrc":"6225:6:101","nodeType":"YulIdentifier","src":"6225:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6167:43:101","nodeType":"YulIdentifier","src":"6167:43:101"},"nativeSrc":"6167:65:101","nodeType":"YulFunctionCall","src":"6167:65:101"},"nativeSrc":"6167:65:101","nodeType":"YulExpressionStatement","src":"6167:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6049:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6088:4:101","nodeType":"YulTypedName","src":"6088:4:101","type":""},{"name":"offset","nativeSrc":"6094:6:101","nodeType":"YulTypedName","src":"6094:6:101","type":""}],"src":"6049:189:101"},{"body":{"nativeSrc":"6294:136:101","nodeType":"YulBlock","src":"6294:136:101","statements":[{"body":{"nativeSrc":"6361:63:101","nodeType":"YulBlock","src":"6361:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6405:5:101","nodeType":"YulIdentifier","src":"6405:5:101"},{"kind":"number","nativeSrc":"6412:1:101","nodeType":"YulLiteral","src":"6412:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"6375:29:101","nodeType":"YulIdentifier","src":"6375:29:101"},"nativeSrc":"6375:39:101","nodeType":"YulFunctionCall","src":"6375:39:101"},"nativeSrc":"6375:39:101","nodeType":"YulExpressionStatement","src":"6375:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6314:5:101","nodeType":"YulIdentifier","src":"6314:5:101"},{"name":"end","nativeSrc":"6321:3:101","nodeType":"YulIdentifier","src":"6321:3:101"}],"functionName":{"name":"lt","nativeSrc":"6311:2:101","nodeType":"YulIdentifier","src":"6311:2:101"},"nativeSrc":"6311:14:101","nodeType":"YulFunctionCall","src":"6311:14:101"},"nativeSrc":"6304:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"6326:26:101","nodeType":"YulBlock","src":"6326:26:101","statements":[{"nativeSrc":"6328:22:101","nodeType":"YulAssignment","src":"6328:22:101","value":{"arguments":[{"name":"start","nativeSrc":"6341:5:101","nodeType":"YulIdentifier","src":"6341:5:101"},{"kind":"number","nativeSrc":"6348:1:101","nodeType":"YulLiteral","src":"6348:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6337:3:101","nodeType":"YulIdentifier","src":"6337:3:101"},"nativeSrc":"6337:13:101","nodeType":"YulFunctionCall","src":"6337:13:101"},"variableNames":[{"name":"start","nativeSrc":"6328:5:101","nodeType":"YulIdentifier","src":"6328:5:101"}]}]},"pre":{"nativeSrc":"6308:2:101","nodeType":"YulBlock","src":"6308:2:101","statements":[]},"src":"6304:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6244:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6282:5:101","nodeType":"YulTypedName","src":"6282:5:101","type":""},{"name":"end","nativeSrc":"6289:3:101","nodeType":"YulTypedName","src":"6289:3:101","type":""}],"src":"6244:186:101"},{"body":{"nativeSrc":"6515:464:101","nodeType":"YulBlock","src":"6515:464:101","statements":[{"body":{"nativeSrc":"6541:431:101","nodeType":"YulBlock","src":"6541:431:101","statements":[{"nativeSrc":"6555:54:101","nodeType":"YulVariableDeclaration","src":"6555:54:101","value":{"arguments":[{"name":"array","nativeSrc":"6603:5:101","nodeType":"YulIdentifier","src":"6603:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6571:31:101","nodeType":"YulIdentifier","src":"6571:31:101"},"nativeSrc":"6571:38:101","nodeType":"YulFunctionCall","src":"6571:38:101"},"variables":[{"name":"dataArea","nativeSrc":"6559:8:101","nodeType":"YulTypedName","src":"6559:8:101","type":""}]},{"nativeSrc":"6622:63:101","nodeType":"YulVariableDeclaration","src":"6622:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"6645:8:101","nodeType":"YulIdentifier","src":"6645:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"6673:10:101","nodeType":"YulIdentifier","src":"6673:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6655:17:101","nodeType":"YulIdentifier","src":"6655:17:101"},"nativeSrc":"6655:29:101","nodeType":"YulFunctionCall","src":"6655:29:101"}],"functionName":{"name":"add","nativeSrc":"6641:3:101","nodeType":"YulIdentifier","src":"6641:3:101"},"nativeSrc":"6641:44:101","nodeType":"YulFunctionCall","src":"6641:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"6626:11:101","nodeType":"YulTypedName","src":"6626:11:101","type":""}]},{"body":{"nativeSrc":"6842:27:101","nodeType":"YulBlock","src":"6842:27:101","statements":[{"nativeSrc":"6844:23:101","nodeType":"YulAssignment","src":"6844:23:101","value":{"name":"dataArea","nativeSrc":"6859:8:101","nodeType":"YulIdentifier","src":"6859:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"6844:11:101","nodeType":"YulIdentifier","src":"6844:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6826:10:101","nodeType":"YulIdentifier","src":"6826:10:101"},{"kind":"number","nativeSrc":"6838:2:101","nodeType":"YulLiteral","src":"6838:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6823:2:101","nodeType":"YulIdentifier","src":"6823:2:101"},"nativeSrc":"6823:18:101","nodeType":"YulFunctionCall","src":"6823:18:101"},"nativeSrc":"6820:49:101","nodeType":"YulIf","src":"6820:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"6911:11:101","nodeType":"YulIdentifier","src":"6911:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"6928:8:101","nodeType":"YulIdentifier","src":"6928:8:101"},{"arguments":[{"name":"len","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6938:17:101","nodeType":"YulIdentifier","src":"6938:17:101"},"nativeSrc":"6938:22:101","nodeType":"YulFunctionCall","src":"6938:22:101"}],"functionName":{"name":"add","nativeSrc":"6924:3:101","nodeType":"YulIdentifier","src":"6924:3:101"},"nativeSrc":"6924:37:101","nodeType":"YulFunctionCall","src":"6924:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6882:28:101","nodeType":"YulIdentifier","src":"6882:28:101"},"nativeSrc":"6882:80:101","nodeType":"YulFunctionCall","src":"6882:80:101"},"nativeSrc":"6882:80:101","nodeType":"YulExpressionStatement","src":"6882:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6532:3:101","nodeType":"YulIdentifier","src":"6532:3:101"},{"kind":"number","nativeSrc":"6537:2:101","nodeType":"YulLiteral","src":"6537:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6529:2:101","nodeType":"YulIdentifier","src":"6529:2:101"},"nativeSrc":"6529:11:101","nodeType":"YulFunctionCall","src":"6529:11:101"},"nativeSrc":"6526:446:101","nodeType":"YulIf","src":"6526:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"6436:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"6491:5:101","nodeType":"YulTypedName","src":"6491:5:101","type":""},{"name":"len","nativeSrc":"6498:3:101","nodeType":"YulTypedName","src":"6498:3:101","type":""},{"name":"startIndex","nativeSrc":"6503:10:101","nodeType":"YulTypedName","src":"6503:10:101","type":""}],"src":"6436:543:101"},{"body":{"nativeSrc":"7048:54:101","nodeType":"YulBlock","src":"7048:54:101","statements":[{"nativeSrc":"7058:37:101","nodeType":"YulAssignment","src":"7058:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"7083:4:101","nodeType":"YulIdentifier","src":"7083:4:101"},{"name":"value","nativeSrc":"7089:5:101","nodeType":"YulIdentifier","src":"7089:5:101"}],"functionName":{"name":"shr","nativeSrc":"7079:3:101","nodeType":"YulIdentifier","src":"7079:3:101"},"nativeSrc":"7079:16:101","nodeType":"YulFunctionCall","src":"7079:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"7058:8:101","nodeType":"YulIdentifier","src":"7058:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"6985:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7023:4:101","nodeType":"YulTypedName","src":"7023:4:101","type":""},{"name":"value","nativeSrc":"7029:5:101","nodeType":"YulTypedName","src":"7029:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7039:8:101","nodeType":"YulTypedName","src":"7039:8:101","type":""}],"src":"6985:117:101"},{"body":{"nativeSrc":"7159:118:101","nodeType":"YulBlock","src":"7159:118:101","statements":[{"nativeSrc":"7169:68:101","nodeType":"YulVariableDeclaration","src":"7169:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7218:1:101","nodeType":"YulLiteral","src":"7218:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"7221:5:101","nodeType":"YulIdentifier","src":"7221:5:101"}],"functionName":{"name":"mul","nativeSrc":"7214:3:101","nodeType":"YulIdentifier","src":"7214:3:101"},"nativeSrc":"7214:13:101","nodeType":"YulFunctionCall","src":"7214:13:101"},{"arguments":[{"kind":"number","nativeSrc":"7233:1:101","nodeType":"YulLiteral","src":"7233:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7229:3:101","nodeType":"YulIdentifier","src":"7229:3:101"},"nativeSrc":"7229:6:101","nodeType":"YulFunctionCall","src":"7229:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7185:28:101","nodeType":"YulIdentifier","src":"7185:28:101"},"nativeSrc":"7185:51:101","nodeType":"YulFunctionCall","src":"7185:51:101"}],"functionName":{"name":"not","nativeSrc":"7181:3:101","nodeType":"YulIdentifier","src":"7181:3:101"},"nativeSrc":"7181:56:101","nodeType":"YulFunctionCall","src":"7181:56:101"},"variables":[{"name":"mask","nativeSrc":"7173:4:101","nodeType":"YulTypedName","src":"7173:4:101","type":""}]},{"nativeSrc":"7246:25:101","nodeType":"YulAssignment","src":"7246:25:101","value":{"arguments":[{"name":"data","nativeSrc":"7260:4:101","nodeType":"YulIdentifier","src":"7260:4:101"},{"name":"mask","nativeSrc":"7266:4:101","nodeType":"YulIdentifier","src":"7266:4:101"}],"functionName":{"name":"and","nativeSrc":"7256:3:101","nodeType":"YulIdentifier","src":"7256:3:101"},"nativeSrc":"7256:15:101","nodeType":"YulFunctionCall","src":"7256:15:101"},"variableNames":[{"name":"result","nativeSrc":"7246:6:101","nodeType":"YulIdentifier","src":"7246:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7108:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7136:4:101","nodeType":"YulTypedName","src":"7136:4:101","type":""},{"name":"bytes","nativeSrc":"7142:5:101","nodeType":"YulTypedName","src":"7142:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7152:6:101","nodeType":"YulTypedName","src":"7152:6:101","type":""}],"src":"7108:169:101"},{"body":{"nativeSrc":"7363:214:101","nodeType":"YulBlock","src":"7363:214:101","statements":[{"nativeSrc":"7496:37:101","nodeType":"YulAssignment","src":"7496:37:101","value":{"arguments":[{"name":"data","nativeSrc":"7523:4:101","nodeType":"YulIdentifier","src":"7523:4:101"},{"name":"len","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"7504:18:101","nodeType":"YulIdentifier","src":"7504:18:101"},"nativeSrc":"7504:29:101","nodeType":"YulFunctionCall","src":"7504:29:101"},"variableNames":[{"name":"data","nativeSrc":"7496:4:101","nodeType":"YulIdentifier","src":"7496:4:101"}]},{"nativeSrc":"7542:29:101","nodeType":"YulAssignment","src":"7542:29:101","value":{"arguments":[{"name":"data","nativeSrc":"7553:4:101","nodeType":"YulIdentifier","src":"7553:4:101"},{"arguments":[{"kind":"number","nativeSrc":"7563:1:101","nodeType":"YulLiteral","src":"7563:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"7566:3:101","nodeType":"YulIdentifier","src":"7566:3:101"}],"functionName":{"name":"mul","nativeSrc":"7559:3:101","nodeType":"YulIdentifier","src":"7559:3:101"},"nativeSrc":"7559:11:101","nodeType":"YulFunctionCall","src":"7559:11:101"}],"functionName":{"name":"or","nativeSrc":"7550:2:101","nodeType":"YulIdentifier","src":"7550:2:101"},"nativeSrc":"7550:21:101","nodeType":"YulFunctionCall","src":"7550:21:101"},"variableNames":[{"name":"used","nativeSrc":"7542:4:101","nodeType":"YulIdentifier","src":"7542:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7282:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7344:4:101","nodeType":"YulTypedName","src":"7344:4:101","type":""},{"name":"len","nativeSrc":"7350:3:101","nodeType":"YulTypedName","src":"7350:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"7358:4:101","nodeType":"YulTypedName","src":"7358:4:101","type":""}],"src":"7282:295:101"},{"body":{"nativeSrc":"7674:1303:101","nodeType":"YulBlock","src":"7674:1303:101","statements":[{"nativeSrc":"7685:51:101","nodeType":"YulVariableDeclaration","src":"7685:51:101","value":{"arguments":[{"name":"src","nativeSrc":"7732:3:101","nodeType":"YulIdentifier","src":"7732:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7699:32:101","nodeType":"YulIdentifier","src":"7699:32:101"},"nativeSrc":"7699:37:101","nodeType":"YulFunctionCall","src":"7699:37:101"},"variables":[{"name":"newLen","nativeSrc":"7689:6:101","nodeType":"YulTypedName","src":"7689:6:101","type":""}]},{"body":{"nativeSrc":"7821:22:101","nodeType":"YulBlock","src":"7821:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7823:16:101","nodeType":"YulIdentifier","src":"7823:16:101"},"nativeSrc":"7823:18:101","nodeType":"YulFunctionCall","src":"7823:18:101"},"nativeSrc":"7823:18:101","nodeType":"YulExpressionStatement","src":"7823:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7793:6:101","nodeType":"YulIdentifier","src":"7793:6:101"},{"kind":"number","nativeSrc":"7801:18:101","nodeType":"YulLiteral","src":"7801:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7790:2:101","nodeType":"YulIdentifier","src":"7790:2:101"},"nativeSrc":"7790:30:101","nodeType":"YulFunctionCall","src":"7790:30:101"},"nativeSrc":"7787:56:101","nodeType":"YulIf","src":"7787:56:101"},{"nativeSrc":"7853:52:101","nodeType":"YulVariableDeclaration","src":"7853:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"7899:4:101","nodeType":"YulIdentifier","src":"7899:4:101"}],"functionName":{"name":"sload","nativeSrc":"7893:5:101","nodeType":"YulIdentifier","src":"7893:5:101"},"nativeSrc":"7893:11:101","nodeType":"YulFunctionCall","src":"7893:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7867:25:101","nodeType":"YulIdentifier","src":"7867:25:101"},"nativeSrc":"7867:38:101","nodeType":"YulFunctionCall","src":"7867:38:101"},"variables":[{"name":"oldLen","nativeSrc":"7857:6:101","nodeType":"YulTypedName","src":"7857:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7998:4:101","nodeType":"YulIdentifier","src":"7998:4:101"},{"name":"oldLen","nativeSrc":"8004:6:101","nodeType":"YulIdentifier","src":"8004:6:101"},{"name":"newLen","nativeSrc":"8012:6:101","nodeType":"YulIdentifier","src":"8012:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7952:45:101","nodeType":"YulIdentifier","src":"7952:45:101"},"nativeSrc":"7952:67:101","nodeType":"YulFunctionCall","src":"7952:67:101"},"nativeSrc":"7952:67:101","nodeType":"YulExpressionStatement","src":"7952:67:101"},{"nativeSrc":"8029:18:101","nodeType":"YulVariableDeclaration","src":"8029:18:101","value":{"kind":"number","nativeSrc":"8046:1:101","nodeType":"YulLiteral","src":"8046:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8033:9:101","nodeType":"YulTypedName","src":"8033:9:101","type":""}]},{"nativeSrc":"8057:17:101","nodeType":"YulAssignment","src":"8057:17:101","value":{"kind":"number","nativeSrc":"8070:4:101","nodeType":"YulLiteral","src":"8070:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8057:9:101","nodeType":"YulIdentifier","src":"8057:9:101"}]},{"cases":[{"body":{"nativeSrc":"8121:611:101","nodeType":"YulBlock","src":"8121:611:101","statements":[{"nativeSrc":"8135:37:101","nodeType":"YulVariableDeclaration","src":"8135:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"8154:6:101","nodeType":"YulIdentifier","src":"8154:6:101"},{"arguments":[{"kind":"number","nativeSrc":"8166:4:101","nodeType":"YulLiteral","src":"8166:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8162:3:101","nodeType":"YulIdentifier","src":"8162:3:101"},"nativeSrc":"8162:9:101","nodeType":"YulFunctionCall","src":"8162:9:101"}],"functionName":{"name":"and","nativeSrc":"8150:3:101","nodeType":"YulIdentifier","src":"8150:3:101"},"nativeSrc":"8150:22:101","nodeType":"YulFunctionCall","src":"8150:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"8139:7:101","nodeType":"YulTypedName","src":"8139:7:101","type":""}]},{"nativeSrc":"8186:51:101","nodeType":"YulVariableDeclaration","src":"8186:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"8232:4:101","nodeType":"YulIdentifier","src":"8232:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8200:31:101","nodeType":"YulIdentifier","src":"8200:31:101"},"nativeSrc":"8200:37:101","nodeType":"YulFunctionCall","src":"8200:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"8190:6:101","nodeType":"YulTypedName","src":"8190:6:101","type":""}]},{"nativeSrc":"8250:10:101","nodeType":"YulVariableDeclaration","src":"8250:10:101","value":{"kind":"number","nativeSrc":"8259:1:101","nodeType":"YulLiteral","src":"8259:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8254:1:101","nodeType":"YulTypedName","src":"8254:1:101","type":""}]},{"body":{"nativeSrc":"8318:163:101","nodeType":"YulBlock","src":"8318:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8343:6:101","nodeType":"YulIdentifier","src":"8343:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8361:3:101","nodeType":"YulIdentifier","src":"8361:3:101"},{"name":"srcOffset","nativeSrc":"8366:9:101","nodeType":"YulIdentifier","src":"8366:9:101"}],"functionName":{"name":"add","nativeSrc":"8357:3:101","nodeType":"YulIdentifier","src":"8357:3:101"},"nativeSrc":"8357:19:101","nodeType":"YulFunctionCall","src":"8357:19:101"}],"functionName":{"name":"mload","nativeSrc":"8351:5:101","nodeType":"YulIdentifier","src":"8351:5:101"},"nativeSrc":"8351:26:101","nodeType":"YulFunctionCall","src":"8351:26:101"}],"functionName":{"name":"sstore","nativeSrc":"8336:6:101","nodeType":"YulIdentifier","src":"8336:6:101"},"nativeSrc":"8336:42:101","nodeType":"YulFunctionCall","src":"8336:42:101"},"nativeSrc":"8336:42:101","nodeType":"YulExpressionStatement","src":"8336:42:101"},{"nativeSrc":"8395:24:101","nodeType":"YulAssignment","src":"8395:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"8409:6:101","nodeType":"YulIdentifier","src":"8409:6:101"},{"kind":"number","nativeSrc":"8417:1:101","nodeType":"YulLiteral","src":"8417:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8405:3:101","nodeType":"YulIdentifier","src":"8405:3:101"},"nativeSrc":"8405:14:101","nodeType":"YulFunctionCall","src":"8405:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"8395:6:101","nodeType":"YulIdentifier","src":"8395:6:101"}]},{"nativeSrc":"8436:31:101","nodeType":"YulAssignment","src":"8436:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"8453:9:101","nodeType":"YulIdentifier","src":"8453:9:101"},{"kind":"number","nativeSrc":"8464:2:101","nodeType":"YulLiteral","src":"8464:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8449:3:101","nodeType":"YulIdentifier","src":"8449:3:101"},"nativeSrc":"8449:18:101","nodeType":"YulFunctionCall","src":"8449:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"8436:9:101","nodeType":"YulIdentifier","src":"8436:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8284:1:101","nodeType":"YulIdentifier","src":"8284:1:101"},{"name":"loopEnd","nativeSrc":"8287:7:101","nodeType":"YulIdentifier","src":"8287:7:101"}],"functionName":{"name":"lt","nativeSrc":"8281:2:101","nodeType":"YulIdentifier","src":"8281:2:101"},"nativeSrc":"8281:14:101","nodeType":"YulFunctionCall","src":"8281:14:101"},"nativeSrc":"8273:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"8296:21:101","nodeType":"YulBlock","src":"8296:21:101","statements":[{"nativeSrc":"8298:17:101","nodeType":"YulAssignment","src":"8298:17:101","value":{"arguments":[{"name":"i","nativeSrc":"8307:1:101","nodeType":"YulIdentifier","src":"8307:1:101"},{"kind":"number","nativeSrc":"8310:4:101","nodeType":"YulLiteral","src":"8310:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8303:3:101","nodeType":"YulIdentifier","src":"8303:3:101"},"nativeSrc":"8303:12:101","nodeType":"YulFunctionCall","src":"8303:12:101"},"variableNames":[{"name":"i","nativeSrc":"8298:1:101","nodeType":"YulIdentifier","src":"8298:1:101"}]}]},"pre":{"nativeSrc":"8277:3:101","nodeType":"YulBlock","src":"8277:3:101","statements":[]},"src":"8273:208:101"},{"body":{"nativeSrc":"8517:156:101","nodeType":"YulBlock","src":"8517:156:101","statements":[{"nativeSrc":"8535:43:101","nodeType":"YulVariableDeclaration","src":"8535:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8562:3:101","nodeType":"YulIdentifier","src":"8562:3:101"},{"name":"srcOffset","nativeSrc":"8567:9:101","nodeType":"YulIdentifier","src":"8567:9:101"}],"functionName":{"name":"add","nativeSrc":"8558:3:101","nodeType":"YulIdentifier","src":"8558:3:101"},"nativeSrc":"8558:19:101","nodeType":"YulFunctionCall","src":"8558:19:101"}],"functionName":{"name":"mload","nativeSrc":"8552:5:101","nodeType":"YulIdentifier","src":"8552:5:101"},"nativeSrc":"8552:26:101","nodeType":"YulFunctionCall","src":"8552:26:101"},"variables":[{"name":"lastValue","nativeSrc":"8539:9:101","nodeType":"YulTypedName","src":"8539:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8602:6:101","nodeType":"YulIdentifier","src":"8602:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"8629:9:101","nodeType":"YulIdentifier","src":"8629:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"8644:6:101","nodeType":"YulIdentifier","src":"8644:6:101"},{"kind":"number","nativeSrc":"8652:4:101","nodeType":"YulLiteral","src":"8652:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8640:3:101","nodeType":"YulIdentifier","src":"8640:3:101"},"nativeSrc":"8640:17:101","nodeType":"YulFunctionCall","src":"8640:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8610:18:101","nodeType":"YulIdentifier","src":"8610:18:101"},"nativeSrc":"8610:48:101","nodeType":"YulFunctionCall","src":"8610:48:101"}],"functionName":{"name":"sstore","nativeSrc":"8595:6:101","nodeType":"YulIdentifier","src":"8595:6:101"},"nativeSrc":"8595:64:101","nodeType":"YulFunctionCall","src":"8595:64:101"},"nativeSrc":"8595:64:101","nodeType":"YulExpressionStatement","src":"8595:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"8500:7:101","nodeType":"YulIdentifier","src":"8500:7:101"},{"name":"newLen","nativeSrc":"8509:6:101","nodeType":"YulIdentifier","src":"8509:6:101"}],"functionName":{"name":"lt","nativeSrc":"8497:2:101","nodeType":"YulIdentifier","src":"8497:2:101"},"nativeSrc":"8497:19:101","nodeType":"YulFunctionCall","src":"8497:19:101"},"nativeSrc":"8494:179:101","nodeType":"YulIf","src":"8494:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8693:4:101","nodeType":"YulIdentifier","src":"8693:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8707:6:101","nodeType":"YulIdentifier","src":"8707:6:101"},{"kind":"number","nativeSrc":"8715:1:101","nodeType":"YulLiteral","src":"8715:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8703:3:101","nodeType":"YulIdentifier","src":"8703:3:101"},"nativeSrc":"8703:14:101","nodeType":"YulFunctionCall","src":"8703:14:101"},{"kind":"number","nativeSrc":"8719:1:101","nodeType":"YulLiteral","src":"8719:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8699:3:101","nodeType":"YulIdentifier","src":"8699:3:101"},"nativeSrc":"8699:22:101","nodeType":"YulFunctionCall","src":"8699:22:101"}],"functionName":{"name":"sstore","nativeSrc":"8686:6:101","nodeType":"YulIdentifier","src":"8686:6:101"},"nativeSrc":"8686:36:101","nodeType":"YulFunctionCall","src":"8686:36:101"},"nativeSrc":"8686:36:101","nodeType":"YulExpressionStatement","src":"8686:36:101"}]},"nativeSrc":"8114:618:101","nodeType":"YulCase","src":"8114:618:101","value":{"kind":"number","nativeSrc":"8119:1:101","nodeType":"YulLiteral","src":"8119:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8749:222:101","nodeType":"YulBlock","src":"8749:222:101","statements":[{"nativeSrc":"8763:14:101","nodeType":"YulVariableDeclaration","src":"8763:14:101","value":{"kind":"number","nativeSrc":"8776:1:101","nodeType":"YulLiteral","src":"8776:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8767:5:101","nodeType":"YulTypedName","src":"8767:5:101","type":""}]},{"body":{"nativeSrc":"8800:67:101","nodeType":"YulBlock","src":"8800:67:101","statements":[{"nativeSrc":"8818:35:101","nodeType":"YulAssignment","src":"8818:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8837:3:101","nodeType":"YulIdentifier","src":"8837:3:101"},{"name":"srcOffset","nativeSrc":"8842:9:101","nodeType":"YulIdentifier","src":"8842:9:101"}],"functionName":{"name":"add","nativeSrc":"8833:3:101","nodeType":"YulIdentifier","src":"8833:3:101"},"nativeSrc":"8833:19:101","nodeType":"YulFunctionCall","src":"8833:19:101"}],"functionName":{"name":"mload","nativeSrc":"8827:5:101","nodeType":"YulIdentifier","src":"8827:5:101"},"nativeSrc":"8827:26:101","nodeType":"YulFunctionCall","src":"8827:26:101"},"variableNames":[{"name":"value","nativeSrc":"8818:5:101","nodeType":"YulIdentifier","src":"8818:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"8793:6:101","nodeType":"YulIdentifier","src":"8793:6:101"},"nativeSrc":"8790:77:101","nodeType":"YulIf","src":"8790:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8887:4:101","nodeType":"YulIdentifier","src":"8887:4:101"},{"arguments":[{"name":"value","nativeSrc":"8946:5:101","nodeType":"YulIdentifier","src":"8946:5:101"},{"name":"newLen","nativeSrc":"8953:6:101","nodeType":"YulIdentifier","src":"8953:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8893:52:101","nodeType":"YulIdentifier","src":"8893:52:101"},"nativeSrc":"8893:67:101","nodeType":"YulFunctionCall","src":"8893:67:101"}],"functionName":{"name":"sstore","nativeSrc":"8880:6:101","nodeType":"YulIdentifier","src":"8880:6:101"},"nativeSrc":"8880:81:101","nodeType":"YulFunctionCall","src":"8880:81:101"},"nativeSrc":"8880:81:101","nodeType":"YulExpressionStatement","src":"8880:81:101"}]},"nativeSrc":"8741:230:101","nodeType":"YulCase","src":"8741:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8094:6:101","nodeType":"YulIdentifier","src":"8094:6:101"},{"kind":"number","nativeSrc":"8102:2:101","nodeType":"YulLiteral","src":"8102:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8091:2:101","nodeType":"YulIdentifier","src":"8091:2:101"},"nativeSrc":"8091:14:101","nodeType":"YulFunctionCall","src":"8091:14:101"},"nativeSrc":"8084:887:101","nodeType":"YulSwitch","src":"8084:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7582:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7663:4:101","nodeType":"YulTypedName","src":"7663:4:101","type":""},{"name":"src","nativeSrc":"7669:3:101","nodeType":"YulTypedName","src":"7669:3:101","type":""}],"src":"7582:1395:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526005805460ff1916601217905534801561001c575f80fd5b50604051610e78380380610e7883398101604081905261003b91610190565b8282600361004983826102ed565b50600461005682826102ed565b50506005805460ff191660ff9390931692909217909155506103ac915050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156100af576100af610076565b6040525050565b5f6100c060405190565b90506100cc828261008a565b919050565b5f6001600160401b038211156100e9576100e9610076565b601f19601f83011660200192915050565b8281835e505f910152565b5f610117610112846100d1565b6100b6565b905082815260208101848484011115610131576101315f80fd5b61013c8482856100fa565b509392505050565b5f82601f830112610156576101565f80fd5b8151610166848260208601610105565b949350505050565b60ff8116811461017c575f80fd5b50565b805161018a8161016e565b92915050565b5f805f606084860312156101a5576101a55f80fd5b83516001600160401b038111156101bd576101bd5f80fd5b6101c986828701610144565b93505060208401516001600160401b038111156101e7576101e75f80fd5b6101f386828701610144565b92505060406102048682870161017f565b9150509250925092565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061023657607f821691505b6020821081036102485761024861020e565b50919050565b5f61018a6102598381565b90565b6102658361024e565b81545f1960089490940293841b1916921b91909117905550565b5f61028b81848461025c565b505050565b818110156102aa576102a25f8261027f565b600101610290565b5050565b601f82111561028b575f818152602090206020601f850104810160208510156102d45750805b6102e66020601f860104830182610290565b5050505050565b81516001600160401b0381111561030657610306610076565b6103108254610222565b61031b8282856102ae565b6020601f83116001811461034d575f84156103365750858201515b5f19600886021c19811660028602178655506103a4565b5f85815260208120601f198616915b8281101561037c578885015182556020948501946001909201910161035c565b8683101561039757848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b610abf806103b95f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80634511bf6b1161008857806395d89b411161006357806395d89b41146101a2578063a457c2d7146101aa578063a9059cbb146101bd578063dd62ed3e146101d0575f80fd5b80634511bf6b14610158578063579158971461016557806370a082311461017a575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806318160ddd1461010d57806323b872dd1461011e578063313ce567146101315780633950935114610145575b5f80fd5b6100d76101e3565b6040516100e49190610621565b60405180910390f35b6101006100fb366004610678565b610273565b6040516100e491906106bc565b6002545b6040516100e491906106d0565b61010061012c3660046106de565b61028c565b60055460ff165b6040516100e49190610733565b610100610153366004610678565b6102af565b6005546101389060ff1681565b610178610173366004610741565b6102d0565b005b610111610188366004610767565b6001600160a01b03165f9081526020819052604090205490565b6100d76102dd565b6101006101b8366004610678565b6102ec565b6101006101cb366004610678565b610331565b6101116101de366004610785565b61033e565b6060600380546101f2906107c9565b80601f016020809104026020016040519081016040528092919081815260200182805461021e906107c9565b80156102695780601f1061024057610100808354040283529160200191610269565b820191905f5260205f20905b81548152906001019060200180831161024c57829003601f168201915b5050505050905090565b5f33610280818585610368565b60019150505b92915050565b5f3361029985828561041b565b6102a4858585610463565b506001949350505050565b5f336102808185856102c1838361033e565b6102cb9190610809565b610368565b6102da3382610551565b50565b6060600480546101f2906107c9565b5f33816102f9828661033e565b9050838110156103245760405162461bcd60e51b815260040161031b90610860565b60405180910390fd5b6102a48286868403610368565b5f33610280818585610463565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661038e5760405162461bcd60e51b815260040161031b906108b0565b6001600160a01b0382166103b45760405162461bcd60e51b815260040161031b906108fe565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040e9085906106d0565b60405180910390a3505050565b5f610426848461033e565b90505f19811461045d57818110156104505760405162461bcd60e51b815260040161031b90610944565b61045d8484848403610368565b50505050565b6001600160a01b0383166104895760405162461bcd60e51b815260040161031b90610995565b6001600160a01b0382166104af5760405162461bcd60e51b815260040161031b906109e4565b6001600160a01b0383165f90815260208190526040902054818110156104e75760405162461bcd60e51b815260040161031b90610a36565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105449086906106d0565b60405180910390a361045d565b6001600160a01b0382166105775760405162461bcd60e51b815260040161031b90610a79565b8060025f8282546105889190610809565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105d99085906106d0565b60405180910390a35050565b8281835e505f910152565b5f6105f9825190565b8084526020840193506106108185602086016105e5565b601f01601f19169290920192915050565b6020808252810161063281846105f0565b9392505050565b5f6001600160a01b038216610286565b61065281610639565b81146102da575f80fd5b803561028681610649565b80610652565b803561028681610667565b5f806040838503121561068c5761068c5f80fd5b5f610697858561065c565b92505060206106a88582860161066d565b9150509250929050565b8015155b82525050565b6020810161028682846106b2565b806106b6565b6020810161028682846106ca565b5f805f606084860312156106f3576106f35f80fd5b5f6106fe868661065c565b935050602061070f8682870161065c565b92505060406107208682870161066d565b9150509250925092565b60ff81166106b6565b60208101610286828461072a565b5f60208284031215610754576107545f80fd5b5f61075f848461066d565b949350505050565b5f6020828403121561077a5761077a5f80fd5b5f61075f848461065c565b5f8060408385031215610799576107995f80fd5b5f6107a4858561065c565b92505060206106a88582860161065c565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806107dd57607f821691505b6020821081036107ef576107ef6107b5565b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610286576102866107f5565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b602080825281016102868161081c565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610859565b6020808252810161028681610870565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610859565b60208082528101610286816108c0565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b602080825281016102868161090e565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610859565b6020808252810161028681610954565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610859565b60208082528101610286816109a5565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610859565b60208082528101610286816109f4565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152915061093d565b6020808252810161028681610a4656fea2646970667358221220aa51770372fb65151eb1731da8fb445b1102858467957e40b1d2e3758b38ec8764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE78 CODESIZE SUB DUP1 PUSH2 0xE78 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x3B SWAP2 PUSH2 0x190 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH2 0x49 DUP4 DUP3 PUSH2 0x2ED JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x56 DUP3 DUP3 PUSH2 0x2ED JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE POP PUSH2 0x3AC SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0xAF JUMPI PUSH2 0xAF PUSH2 0x76 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC0 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xCC DUP3 DUP3 PUSH2 0x8A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0xE9 JUMPI PUSH2 0xE9 PUSH2 0x76 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x117 PUSH2 0x112 DUP5 PUSH2 0xD1 JUMP JUMPDEST PUSH2 0xB6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x131 JUMPI PUSH2 0x131 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x13C DUP5 DUP3 DUP6 PUSH2 0xFA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x156 JUMPI PUSH2 0x156 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x166 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x105 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x17C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x18A DUP2 PUSH2 0x16E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1A5 JUMPI PUSH2 0x1A5 PUSH0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1BD JUMPI PUSH2 0x1BD PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1C9 DUP7 DUP3 DUP8 ADD PUSH2 0x144 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1E7 JUMPI PUSH2 0x1E7 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1F3 DUP7 DUP3 DUP8 ADD PUSH2 0x144 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x204 DUP7 DUP3 DUP8 ADD PUSH2 0x17F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x236 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x248 JUMPI PUSH2 0x248 PUSH2 0x20E JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x18A PUSH2 0x259 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x265 DUP4 PUSH2 0x24E JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x28B DUP2 DUP5 DUP5 PUSH2 0x25C JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2AA JUMPI PUSH2 0x2A2 PUSH0 DUP3 PUSH2 0x27F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x290 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x28B JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2D4 JUMPI POP DUP1 JUMPDEST PUSH2 0x2E6 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x290 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x306 JUMPI PUSH2 0x306 PUSH2 0x76 JUMP JUMPDEST PUSH2 0x310 DUP3 SLOAD PUSH2 0x222 JUMP JUMPDEST PUSH2 0x31B DUP3 DUP3 DUP6 PUSH2 0x2AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x34D JUMPI PUSH0 DUP5 ISZERO PUSH2 0x336 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x3A4 JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x37C JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x35C JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x397 JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xABF DUP1 PUSH2 0x3B9 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4511BF6B GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1D0 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4511BF6B EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x17A JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x145 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xD7 PUSH2 0x1E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x621 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x6BC JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x12C CALLDATASIZE PUSH1 0x4 PUSH2 0x6DE JUMP JUMPDEST PUSH2 0x28C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x733 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x153 CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x138 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x178 PUSH2 0x173 CALLDATASIZE PUSH1 0x4 PUSH2 0x741 JUMP JUMPDEST PUSH2 0x2D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x111 PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x767 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x2DD JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x2EC JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1CB CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x331 JUMP JUMPDEST PUSH2 0x111 PUSH2 0x1DE CALLDATASIZE PUSH1 0x4 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1F2 SWAP1 PUSH2 0x7C9 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 0x21E SWAP1 PUSH2 0x7C9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x269 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x240 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x269 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x24C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x280 DUP2 DUP6 DUP6 PUSH2 0x368 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x299 DUP6 DUP3 DUP6 PUSH2 0x41B JUMP JUMPDEST PUSH2 0x2A4 DUP6 DUP6 DUP6 PUSH2 0x463 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x280 DUP2 DUP6 DUP6 PUSH2 0x2C1 DUP4 DUP4 PUSH2 0x33E JUMP JUMPDEST PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x809 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x2DA CALLER DUP3 PUSH2 0x551 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1F2 SWAP1 PUSH2 0x7C9 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2F9 DUP3 DUP7 PUSH2 0x33E JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x860 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A4 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x280 DUP2 DUP6 DUP6 PUSH2 0x463 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x8B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x40E SWAP1 DUP6 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x426 DUP5 DUP5 PUSH2 0x33E JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x45D JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x450 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x45D DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x489 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x995 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x9E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x4E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0xA36 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x544 SWAP1 DUP7 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x45D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0xA79 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x809 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x5D9 SWAP1 DUP6 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x5F9 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x610 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x632 DUP2 DUP5 PUSH2 0x5F0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x286 JUMP JUMPDEST PUSH2 0x652 DUP2 PUSH2 0x639 JUMP JUMPDEST DUP2 EQ PUSH2 0x2DA JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x286 DUP2 PUSH2 0x649 JUMP JUMPDEST DUP1 PUSH2 0x652 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x286 DUP2 PUSH2 0x667 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x68C JUMPI PUSH2 0x68C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x697 DUP6 DUP6 PUSH2 0x65C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6A8 DUP6 DUP3 DUP7 ADD PUSH2 0x66D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x286 DUP3 DUP5 PUSH2 0x6B2 JUMP JUMPDEST DUP1 PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x286 DUP3 DUP5 PUSH2 0x6CA JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x6F3 JUMPI PUSH2 0x6F3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x6FE DUP7 DUP7 PUSH2 0x65C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x70F DUP7 DUP3 DUP8 ADD PUSH2 0x65C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x720 DUP7 DUP3 DUP8 ADD PUSH2 0x66D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x286 DUP3 DUP5 PUSH2 0x72A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x754 JUMPI PUSH2 0x754 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x75F DUP5 DUP5 PUSH2 0x66D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x77A JUMPI PUSH2 0x77A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x75F DUP5 DUP5 PUSH2 0x65C JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x799 JUMPI PUSH2 0x799 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x7A4 DUP6 DUP6 PUSH2 0x65C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6A8 DUP6 DUP3 DUP7 ADD PUSH2 0x65C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x7DD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x7EF JUMPI PUSH2 0x7EF PUSH2 0x7B5 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x286 JUMPI PUSH2 0x286 PUSH2 0x7F5 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x81C JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x870 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x954 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x9A5 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x93D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0xA46 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA MLOAD PUSH24 0x372FB65151EB1731DA8FB445B1102858467957E40B1D2E3 PUSH22 0x8B38EC8764736F6C6343000819003300000000000000 ","sourceMap":"123:420:74:-:0;;;160:34;;;-1:-1:-1;;160:34:74;192:2;160:34;;;201:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;280:5;287:7;2046:5:11;:13;280:5:74;2046::11;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;-1:-1:-1;;306:16:74::1;:28:::0;;-1:-1:-1;;306:28:74::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;123:420:74;;-1:-1:-1;;123:420:74;688:180:101;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2662:118::-;2645:4;2634:16;;2726:5;2723:33;2713:61;;2770:1;2767;2760:12;2713:61;2662:118;:::o;2786:139::-;2866:13;;2888:31;2866:13;2888:31;:::i;:::-;2786:139;;;;:::o;2931:1005::-;3037:6;3045;3053;3102:2;3090:9;3081:7;3077:23;3073:32;3070:119;;;3108:79;197:1;194;187:12;3108:79;3228:24;;-1:-1:-1;;;;;3268:30:101;;3265:117;;;3301:79;197:1;194;187:12;3301:79;3406:74;3472:7;3463:6;3452:9;3448:22;3406:74;:::i;:::-;3396:84;;3199:291;3550:2;3539:9;3535:18;3529:25;-1:-1:-1;;;;;3573:6:101;3570:30;3567:117;;;3603:79;197:1;194;187:12;3603:79;3708:74;3774:7;3765:6;3754:9;3750:22;3708:74;:::i;:::-;3698:84;;3500:292;3831:2;3857:62;3911:7;3902:6;3891:9;3887:22;3857:62;:::i;:::-;3847:72;;3802:127;2931:1005;;;;;:::o;4047:180::-;-1:-1:-1;;;4092:1:101;4085:88;4192:4;4189:1;4182:15;4216:4;4213:1;4206:15;4233:320;4314:1;4304:12;;4361:1;4351:12;;;4372:81;;4438:4;4430:6;4426:17;4416:27;;4372:81;4500:2;4492:6;4489:14;4469:18;4466:38;4463:84;;4519:18;;:::i;:::-;4284:269;4233:320;;;:::o;5466:142::-;5516:9;5549:53;5567:34;5594:5;5567:34;5317:77;5576:24;5383:5;5317:77;5695:269;5805:39;5836:7;5805:39;:::i;:::-;5894:11;;-1:-1:-1;;5037:1:101;5021:18;;;;4889:16;;;5246:9;5235:21;4889:16;;5275:30;;;;5853:105;;-1:-1:-1;5695:269:101:o;6049:189::-;6015:3;6167:65;6225:6;6217;6211:4;6167:65;:::i;:::-;6102:136;6049:189;;:::o;6244:186::-;6321:3;6314:5;6311:14;6304:120;;;6375:39;6412:1;6405:5;6375:39;:::i;:::-;6348:1;6337:13;6304:120;;;6244:186;;:::o;6436:543::-;6537:2;6532:3;6529:11;6526:446;;;4608:4;4644:14;;;4688:4;4675:18;;4790:2;4785;4774:14;;4770:23;6645:8;6641:44;6838:2;6826:10;6823:18;6820:49;;;-1:-1:-1;6859:8:101;6820:49;6882:80;4790:2;4785;4774:14;;4770:23;6928:8;6924:37;6911:11;6882:80;:::i;:::-;6541:431;;6436:543;;;:::o;7582:1395::-;4022:12;;-1:-1:-1;;;;;7793:6:101;7790:30;7787:56;;;7823:18;;:::i;:::-;7867:38;7899:4;7893:11;7867:38;:::i;:::-;7952:67;8012:6;8004;7998:4;7952:67;:::i;:::-;8070:4;8102:2;8091:14;;8119:1;8114:618;;;;8776:1;8793:6;8790:77;;;-1:-1:-1;8833:19:101;;;8827:26;8790:77;-1:-1:-1;;7218:1:101;7214:13;;7079:16;7181:56;7256:15;;7563:1;7559:11;;7550:21;8887:4;8880:81;8749:222;8084:887;;8114:618;4608:4;4644:14;;;4688:4;4675:18;;-1:-1:-1;;8150:22:101;;;8273:208;8287:7;8284:1;8281:14;8273:208;;;8357:19;;;8351:26;8336:42;;8464:2;8449:18;;;;8417:1;8405:14;;;;8303:12;8273:208;;;8509:6;8500:7;8497:19;8494:179;;;8558:19;;;8552:26;-1:-1:-1;;8652:4:101;8640:17;;7218:1;7214:13;7079:16;7181:56;7256:15;8595:64;;8494:179;8719:1;8715;8707:6;8703:14;8699:22;8693:4;8686:36;8121:611;;;8084:887;;7674:1303;;;7582:1395;;:::o;:::-;123:420:74;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":872,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_mint_1610":{"entryPoint":1361,"id":1610,"parameterSlots":2,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":1051,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transfer_1553":{"entryPoint":1123,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":830,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":627,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@decimalsInternal_7540":{"entryPoint":null,"id":7540,"parameterSlots":0,"returnSlots":0},"@decimals_7579":{"entryPoint":null,"id":7579,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":748,"id":1476,"parameterSlots":2,"returnSlots":1},"@faucet_7570":{"entryPoint":720,"id":7570,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_1435":{"entryPoint":687,"id":1435,"parameterSlots":2,"returnSlots":1},"@name_1261":{"entryPoint":483,"id":1261,"parameterSlots":0,"returnSlots":1},"@symbol_1271":{"entryPoint":733,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":652,"id":1406,"parameterSlots":3,"returnSlots":1},"@transfer_1330":{"entryPoint":817,"id":1330,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1628,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1645,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1895,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1925,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1758,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1656,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":1857,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1714,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1520,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2469,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":2240,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":2318,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":2548,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2388,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":2160,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":2076,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":2630,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1738,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":1834,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1724,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1569,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2532,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2302,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2372,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2614,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2453,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2224,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2144,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2681,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1744,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":1843,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2057,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1593,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1509,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1993,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2037,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":1973,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1609,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1639,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14911:101","nodeType":"YulBlock","src":"0:14911:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1282:35:101","nodeType":"YulBlock","src":"1282:35:101","statements":[{"nativeSrc":"1292:19:101","nodeType":"YulAssignment","src":"1292:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:101","nodeType":"YulLiteral","src":"1308:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:101","nodeType":"YulIdentifier","src":"1302:5:101"},"nativeSrc":"1302:9:101","nodeType":"YulFunctionCall","src":"1302:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:101","nodeType":"YulIdentifier","src":"1292:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:101","nodeType":"YulTypedName","src":"1275:6:101","type":""}],"src":"1242:75:101"},{"body":{"nativeSrc":"1412:28:101","nodeType":"YulBlock","src":"1412:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:101","nodeType":"YulLiteral","src":"1429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:101","nodeType":"YulLiteral","src":"1432:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:101","nodeType":"YulIdentifier","src":"1422:6:101"},"nativeSrc":"1422:12:101","nodeType":"YulFunctionCall","src":"1422:12:101"},"nativeSrc":"1422:12:101","nodeType":"YulExpressionStatement","src":"1422:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:101","nodeType":"YulFunctionDefinition","src":"1323:117:101"},{"body":{"nativeSrc":"1535:28:101","nodeType":"YulBlock","src":"1535:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:101","nodeType":"YulLiteral","src":"1552:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:101","nodeType":"YulLiteral","src":"1555:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:101","nodeType":"YulIdentifier","src":"1545:6:101"},"nativeSrc":"1545:12:101","nodeType":"YulFunctionCall","src":"1545:12:101"},"nativeSrc":"1545:12:101","nodeType":"YulExpressionStatement","src":"1545:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:101","nodeType":"YulFunctionDefinition","src":"1446:117:101"},{"body":{"nativeSrc":"1614:81:101","nodeType":"YulBlock","src":"1614:81:101","statements":[{"nativeSrc":"1624:65:101","nodeType":"YulAssignment","src":"1624:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:101","nodeType":"YulIdentifier","src":"1639:5:101"},{"kind":"number","nativeSrc":"1646:42:101","nodeType":"YulLiteral","src":"1646:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:101","nodeType":"YulIdentifier","src":"1635:3:101"},"nativeSrc":"1635:54:101","nodeType":"YulFunctionCall","src":"1635:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:101","nodeType":"YulIdentifier","src":"1624:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulTypedName","src":"1596:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:101","nodeType":"YulTypedName","src":"1606:7:101","type":""}],"src":"1569:126:101"},{"body":{"nativeSrc":"1746:51:101","nodeType":"YulBlock","src":"1746:51:101","statements":[{"nativeSrc":"1756:35:101","nodeType":"YulAssignment","src":"1756:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:101","nodeType":"YulIdentifier","src":"1785:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:101","nodeType":"YulIdentifier","src":"1767:17:101"},"nativeSrc":"1767:24:101","nodeType":"YulFunctionCall","src":"1767:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:101","nodeType":"YulIdentifier","src":"1756:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:101","nodeType":"YulTypedName","src":"1728:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:101","nodeType":"YulTypedName","src":"1738:7:101","type":""}],"src":"1701:96:101"},{"body":{"nativeSrc":"1846:79:101","nodeType":"YulBlock","src":"1846:79:101","statements":[{"body":{"nativeSrc":"1903:16:101","nodeType":"YulBlock","src":"1903:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:101","nodeType":"YulLiteral","src":"1912:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:101","nodeType":"YulLiteral","src":"1915:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:101","nodeType":"YulIdentifier","src":"1905:6:101"},"nativeSrc":"1905:12:101","nodeType":"YulFunctionCall","src":"1905:12:101"},"nativeSrc":"1905:12:101","nodeType":"YulExpressionStatement","src":"1905:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:101","nodeType":"YulIdentifier","src":"1869:5:101"},{"arguments":[{"name":"value","nativeSrc":"1894:5:101","nodeType":"YulIdentifier","src":"1894:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:101","nodeType":"YulIdentifier","src":"1876:17:101"},"nativeSrc":"1876:24:101","nodeType":"YulFunctionCall","src":"1876:24:101"}],"functionName":{"name":"eq","nativeSrc":"1866:2:101","nodeType":"YulIdentifier","src":"1866:2:101"},"nativeSrc":"1866:35:101","nodeType":"YulFunctionCall","src":"1866:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:101","nodeType":"YulIdentifier","src":"1859:6:101"},"nativeSrc":"1859:43:101","nodeType":"YulFunctionCall","src":"1859:43:101"},"nativeSrc":"1856:63:101","nodeType":"YulIf","src":"1856:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:101","nodeType":"YulTypedName","src":"1839:5:101","type":""}],"src":"1803:122:101"},{"body":{"nativeSrc":"1983:87:101","nodeType":"YulBlock","src":"1983:87:101","statements":[{"nativeSrc":"1993:29:101","nodeType":"YulAssignment","src":"1993:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:101","nodeType":"YulIdentifier","src":"2015:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:101","nodeType":"YulIdentifier","src":"2002:12:101"},"nativeSrc":"2002:20:101","nodeType":"YulFunctionCall","src":"2002:20:101"},"variableNames":[{"name":"value","nativeSrc":"1993:5:101","nodeType":"YulIdentifier","src":"1993:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:101","nodeType":"YulIdentifier","src":"2058:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:101","nodeType":"YulIdentifier","src":"2031:26:101"},"nativeSrc":"2031:33:101","nodeType":"YulFunctionCall","src":"2031:33:101"},"nativeSrc":"2031:33:101","nodeType":"YulExpressionStatement","src":"2031:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:101","nodeType":"YulTypedName","src":"1961:6:101","type":""},{"name":"end","nativeSrc":"1969:3:101","nodeType":"YulTypedName","src":"1969:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:101","nodeType":"YulTypedName","src":"1977:5:101","type":""}],"src":"1931:139:101"},{"body":{"nativeSrc":"2121:32:101","nodeType":"YulBlock","src":"2121:32:101","statements":[{"nativeSrc":"2131:16:101","nodeType":"YulAssignment","src":"2131:16:101","value":{"name":"value","nativeSrc":"2142:5:101","nodeType":"YulIdentifier","src":"2142:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:101","nodeType":"YulIdentifier","src":"2131:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:101","nodeType":"YulTypedName","src":"2103:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:101","nodeType":"YulTypedName","src":"2113:7:101","type":""}],"src":"2076:77:101"},{"body":{"nativeSrc":"2202:79:101","nodeType":"YulBlock","src":"2202:79:101","statements":[{"body":{"nativeSrc":"2259:16:101","nodeType":"YulBlock","src":"2259:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:101","nodeType":"YulLiteral","src":"2268:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:101","nodeType":"YulLiteral","src":"2271:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:101","nodeType":"YulIdentifier","src":"2261:6:101"},"nativeSrc":"2261:12:101","nodeType":"YulFunctionCall","src":"2261:12:101"},"nativeSrc":"2261:12:101","nodeType":"YulExpressionStatement","src":"2261:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:101","nodeType":"YulIdentifier","src":"2225:5:101"},{"arguments":[{"name":"value","nativeSrc":"2250:5:101","nodeType":"YulIdentifier","src":"2250:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:101","nodeType":"YulIdentifier","src":"2232:17:101"},"nativeSrc":"2232:24:101","nodeType":"YulFunctionCall","src":"2232:24:101"}],"functionName":{"name":"eq","nativeSrc":"2222:2:101","nodeType":"YulIdentifier","src":"2222:2:101"},"nativeSrc":"2222:35:101","nodeType":"YulFunctionCall","src":"2222:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:101","nodeType":"YulIdentifier","src":"2215:6:101"},"nativeSrc":"2215:43:101","nodeType":"YulFunctionCall","src":"2215:43:101"},"nativeSrc":"2212:63:101","nodeType":"YulIf","src":"2212:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:101","nodeType":"YulTypedName","src":"2195:5:101","type":""}],"src":"2159:122:101"},{"body":{"nativeSrc":"2339:87:101","nodeType":"YulBlock","src":"2339:87:101","statements":[{"nativeSrc":"2349:29:101","nodeType":"YulAssignment","src":"2349:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:101","nodeType":"YulIdentifier","src":"2371:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:101","nodeType":"YulIdentifier","src":"2358:12:101"},"nativeSrc":"2358:20:101","nodeType":"YulFunctionCall","src":"2358:20:101"},"variableNames":[{"name":"value","nativeSrc":"2349:5:101","nodeType":"YulIdentifier","src":"2349:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:101","nodeType":"YulIdentifier","src":"2414:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:101","nodeType":"YulIdentifier","src":"2387:26:101"},"nativeSrc":"2387:33:101","nodeType":"YulFunctionCall","src":"2387:33:101"},"nativeSrc":"2387:33:101","nodeType":"YulExpressionStatement","src":"2387:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:101","nodeType":"YulTypedName","src":"2317:6:101","type":""},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulTypedName","src":"2325:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:101","nodeType":"YulTypedName","src":"2333:5:101","type":""}],"src":"2287:139:101"},{"body":{"nativeSrc":"2515:391:101","nodeType":"YulBlock","src":"2515:391:101","statements":[{"body":{"nativeSrc":"2561:83:101","nodeType":"YulBlock","src":"2561:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:101","nodeType":"YulIdentifier","src":"2563:77:101"},"nativeSrc":"2563:79:101","nodeType":"YulFunctionCall","src":"2563:79:101"},"nativeSrc":"2563:79:101","nodeType":"YulExpressionStatement","src":"2563:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:101","nodeType":"YulIdentifier","src":"2536:7:101"},{"name":"headStart","nativeSrc":"2545:9:101","nodeType":"YulIdentifier","src":"2545:9:101"}],"functionName":{"name":"sub","nativeSrc":"2532:3:101","nodeType":"YulIdentifier","src":"2532:3:101"},"nativeSrc":"2532:23:101","nodeType":"YulFunctionCall","src":"2532:23:101"},{"kind":"number","nativeSrc":"2557:2:101","nodeType":"YulLiteral","src":"2557:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},"nativeSrc":"2528:32:101","nodeType":"YulFunctionCall","src":"2528:32:101"},"nativeSrc":"2525:119:101","nodeType":"YulIf","src":"2525:119:101"},{"nativeSrc":"2654:117:101","nodeType":"YulBlock","src":"2654:117:101","statements":[{"nativeSrc":"2669:15:101","nodeType":"YulVariableDeclaration","src":"2669:15:101","value":{"kind":"number","nativeSrc":"2683:1:101","nodeType":"YulLiteral","src":"2683:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:101","nodeType":"YulTypedName","src":"2673:6:101","type":""}]},{"nativeSrc":"2698:63:101","nodeType":"YulAssignment","src":"2698:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:101","nodeType":"YulIdentifier","src":"2733:9:101"},{"name":"offset","nativeSrc":"2744:6:101","nodeType":"YulIdentifier","src":"2744:6:101"}],"functionName":{"name":"add","nativeSrc":"2729:3:101","nodeType":"YulIdentifier","src":"2729:3:101"},"nativeSrc":"2729:22:101","nodeType":"YulFunctionCall","src":"2729:22:101"},{"name":"dataEnd","nativeSrc":"2753:7:101","nodeType":"YulIdentifier","src":"2753:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:101","nodeType":"YulIdentifier","src":"2708:20:101"},"nativeSrc":"2708:53:101","nodeType":"YulFunctionCall","src":"2708:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:101","nodeType":"YulIdentifier","src":"2698:6:101"}]}]},{"nativeSrc":"2781:118:101","nodeType":"YulBlock","src":"2781:118:101","statements":[{"nativeSrc":"2796:16:101","nodeType":"YulVariableDeclaration","src":"2796:16:101","value":{"kind":"number","nativeSrc":"2810:2:101","nodeType":"YulLiteral","src":"2810:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:101","nodeType":"YulTypedName","src":"2800:6:101","type":""}]},{"nativeSrc":"2826:63:101","nodeType":"YulAssignment","src":"2826:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:101","nodeType":"YulIdentifier","src":"2861:9:101"},{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"add","nativeSrc":"2857:3:101","nodeType":"YulIdentifier","src":"2857:3:101"},"nativeSrc":"2857:22:101","nodeType":"YulFunctionCall","src":"2857:22:101"},{"name":"dataEnd","nativeSrc":"2881:7:101","nodeType":"YulIdentifier","src":"2881:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:101","nodeType":"YulIdentifier","src":"2836:20:101"},"nativeSrc":"2836:53:101","nodeType":"YulFunctionCall","src":"2836:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:101","nodeType":"YulIdentifier","src":"2826:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:101","nodeType":"YulTypedName","src":"2477:9:101","type":""},{"name":"dataEnd","nativeSrc":"2488:7:101","nodeType":"YulTypedName","src":"2488:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:101","nodeType":"YulTypedName","src":"2500:6:101","type":""},{"name":"value1","nativeSrc":"2508:6:101","nodeType":"YulTypedName","src":"2508:6:101","type":""}],"src":"2432:474:101"},{"body":{"nativeSrc":"2954:48:101","nodeType":"YulBlock","src":"2954:48:101","statements":[{"nativeSrc":"2964:32:101","nodeType":"YulAssignment","src":"2964:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:101","nodeType":"YulIdentifier","src":"2989:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:101","nodeType":"YulIdentifier","src":"2982:6:101"},"nativeSrc":"2982:13:101","nodeType":"YulFunctionCall","src":"2982:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:21:101","nodeType":"YulFunctionCall","src":"2975:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:101","nodeType":"YulIdentifier","src":"2964:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:101","nodeType":"YulTypedName","src":"2936:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:101","nodeType":"YulTypedName","src":"2946:7:101","type":""}],"src":"2912:90:101"},{"body":{"nativeSrc":"3067:50:101","nodeType":"YulBlock","src":"3067:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:101","nodeType":"YulIdentifier","src":"3084:3:101"},{"arguments":[{"name":"value","nativeSrc":"3104:5:101","nodeType":"YulIdentifier","src":"3104:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:101","nodeType":"YulIdentifier","src":"3089:14:101"},"nativeSrc":"3089:21:101","nodeType":"YulFunctionCall","src":"3089:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:101","nodeType":"YulIdentifier","src":"3077:6:101"},"nativeSrc":"3077:34:101","nodeType":"YulFunctionCall","src":"3077:34:101"},"nativeSrc":"3077:34:101","nodeType":"YulExpressionStatement","src":"3077:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:101","nodeType":"YulTypedName","src":"3055:5:101","type":""},{"name":"pos","nativeSrc":"3062:3:101","nodeType":"YulTypedName","src":"3062:3:101","type":""}],"src":"3008:109:101"},{"body":{"nativeSrc":"3215:118:101","nodeType":"YulBlock","src":"3215:118:101","statements":[{"nativeSrc":"3225:26:101","nodeType":"YulAssignment","src":"3225:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:101","nodeType":"YulIdentifier","src":"3237:9:101"},{"kind":"number","nativeSrc":"3248:2:101","nodeType":"YulLiteral","src":"3248:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:101","nodeType":"YulIdentifier","src":"3233:3:101"},"nativeSrc":"3233:18:101","nodeType":"YulFunctionCall","src":"3233:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:101","nodeType":"YulIdentifier","src":"3225:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:101","nodeType":"YulIdentifier","src":"3299:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:101","nodeType":"YulIdentifier","src":"3312:9:101"},{"kind":"number","nativeSrc":"3323:1:101","nodeType":"YulLiteral","src":"3323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:101","nodeType":"YulIdentifier","src":"3308:3:101"},"nativeSrc":"3308:17:101","nodeType":"YulFunctionCall","src":"3308:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:101","nodeType":"YulIdentifier","src":"3261:37:101"},"nativeSrc":"3261:65:101","nodeType":"YulFunctionCall","src":"3261:65:101"},"nativeSrc":"3261:65:101","nodeType":"YulExpressionStatement","src":"3261:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:101","nodeType":"YulTypedName","src":"3187:9:101","type":""},{"name":"value0","nativeSrc":"3199:6:101","nodeType":"YulTypedName","src":"3199:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:101","nodeType":"YulTypedName","src":"3210:4:101","type":""}],"src":"3123:210:101"},{"body":{"nativeSrc":"3404:53:101","nodeType":"YulBlock","src":"3404:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:101","nodeType":"YulIdentifier","src":"3421:3:101"},{"arguments":[{"name":"value","nativeSrc":"3444:5:101","nodeType":"YulIdentifier","src":"3444:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:101","nodeType":"YulIdentifier","src":"3426:17:101"},"nativeSrc":"3426:24:101","nodeType":"YulFunctionCall","src":"3426:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:101","nodeType":"YulIdentifier","src":"3414:6:101"},"nativeSrc":"3414:37:101","nodeType":"YulFunctionCall","src":"3414:37:101"},"nativeSrc":"3414:37:101","nodeType":"YulExpressionStatement","src":"3414:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:101","nodeType":"YulTypedName","src":"3392:5:101","type":""},{"name":"pos","nativeSrc":"3399:3:101","nodeType":"YulTypedName","src":"3399:3:101","type":""}],"src":"3339:118:101"},{"body":{"nativeSrc":"3561:124:101","nodeType":"YulBlock","src":"3561:124:101","statements":[{"nativeSrc":"3571:26:101","nodeType":"YulAssignment","src":"3571:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:101","nodeType":"YulIdentifier","src":"3583:9:101"},{"kind":"number","nativeSrc":"3594:2:101","nodeType":"YulLiteral","src":"3594:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:101","nodeType":"YulIdentifier","src":"3579:3:101"},"nativeSrc":"3579:18:101","nodeType":"YulFunctionCall","src":"3579:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:101","nodeType":"YulIdentifier","src":"3571:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:101","nodeType":"YulIdentifier","src":"3651:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:101","nodeType":"YulIdentifier","src":"3664:9:101"},{"kind":"number","nativeSrc":"3675:1:101","nodeType":"YulLiteral","src":"3675:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:101","nodeType":"YulIdentifier","src":"3660:3:101"},"nativeSrc":"3660:17:101","nodeType":"YulFunctionCall","src":"3660:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:101","nodeType":"YulIdentifier","src":"3607:43:101"},"nativeSrc":"3607:71:101","nodeType":"YulFunctionCall","src":"3607:71:101"},"nativeSrc":"3607:71:101","nodeType":"YulExpressionStatement","src":"3607:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:101","nodeType":"YulTypedName","src":"3533:9:101","type":""},{"name":"value0","nativeSrc":"3545:6:101","nodeType":"YulTypedName","src":"3545:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:101","nodeType":"YulTypedName","src":"3556:4:101","type":""}],"src":"3463:222:101"},{"body":{"nativeSrc":"3791:519:101","nodeType":"YulBlock","src":"3791:519:101","statements":[{"body":{"nativeSrc":"3837:83:101","nodeType":"YulBlock","src":"3837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:101","nodeType":"YulIdentifier","src":"3839:77:101"},"nativeSrc":"3839:79:101","nodeType":"YulFunctionCall","src":"3839:79:101"},"nativeSrc":"3839:79:101","nodeType":"YulExpressionStatement","src":"3839:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:101","nodeType":"YulIdentifier","src":"3812:7:101"},{"name":"headStart","nativeSrc":"3821:9:101","nodeType":"YulIdentifier","src":"3821:9:101"}],"functionName":{"name":"sub","nativeSrc":"3808:3:101","nodeType":"YulIdentifier","src":"3808:3:101"},"nativeSrc":"3808:23:101","nodeType":"YulFunctionCall","src":"3808:23:101"},{"kind":"number","nativeSrc":"3833:2:101","nodeType":"YulLiteral","src":"3833:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:101","nodeType":"YulIdentifier","src":"3804:3:101"},"nativeSrc":"3804:32:101","nodeType":"YulFunctionCall","src":"3804:32:101"},"nativeSrc":"3801:119:101","nodeType":"YulIf","src":"3801:119:101"},{"nativeSrc":"3930:117:101","nodeType":"YulBlock","src":"3930:117:101","statements":[{"nativeSrc":"3945:15:101","nodeType":"YulVariableDeclaration","src":"3945:15:101","value":{"kind":"number","nativeSrc":"3959:1:101","nodeType":"YulLiteral","src":"3959:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:101","nodeType":"YulTypedName","src":"3949:6:101","type":""}]},{"nativeSrc":"3974:63:101","nodeType":"YulAssignment","src":"3974:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:101","nodeType":"YulIdentifier","src":"4009:9:101"},{"name":"offset","nativeSrc":"4020:6:101","nodeType":"YulIdentifier","src":"4020:6:101"}],"functionName":{"name":"add","nativeSrc":"4005:3:101","nodeType":"YulIdentifier","src":"4005:3:101"},"nativeSrc":"4005:22:101","nodeType":"YulFunctionCall","src":"4005:22:101"},{"name":"dataEnd","nativeSrc":"4029:7:101","nodeType":"YulIdentifier","src":"4029:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:101","nodeType":"YulIdentifier","src":"3984:20:101"},"nativeSrc":"3984:53:101","nodeType":"YulFunctionCall","src":"3984:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:101","nodeType":"YulIdentifier","src":"3974:6:101"}]}]},{"nativeSrc":"4057:118:101","nodeType":"YulBlock","src":"4057:118:101","statements":[{"nativeSrc":"4072:16:101","nodeType":"YulVariableDeclaration","src":"4072:16:101","value":{"kind":"number","nativeSrc":"4086:2:101","nodeType":"YulLiteral","src":"4086:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:101","nodeType":"YulTypedName","src":"4076:6:101","type":""}]},{"nativeSrc":"4102:63:101","nodeType":"YulAssignment","src":"4102:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:101","nodeType":"YulIdentifier","src":"4137:9:101"},{"name":"offset","nativeSrc":"4148:6:101","nodeType":"YulIdentifier","src":"4148:6:101"}],"functionName":{"name":"add","nativeSrc":"4133:3:101","nodeType":"YulIdentifier","src":"4133:3:101"},"nativeSrc":"4133:22:101","nodeType":"YulFunctionCall","src":"4133:22:101"},{"name":"dataEnd","nativeSrc":"4157:7:101","nodeType":"YulIdentifier","src":"4157:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:101","nodeType":"YulIdentifier","src":"4112:20:101"},"nativeSrc":"4112:53:101","nodeType":"YulFunctionCall","src":"4112:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:101","nodeType":"YulIdentifier","src":"4102:6:101"}]}]},{"nativeSrc":"4185:118:101","nodeType":"YulBlock","src":"4185:118:101","statements":[{"nativeSrc":"4200:16:101","nodeType":"YulVariableDeclaration","src":"4200:16:101","value":{"kind":"number","nativeSrc":"4214:2:101","nodeType":"YulLiteral","src":"4214:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:101","nodeType":"YulTypedName","src":"4204:6:101","type":""}]},{"nativeSrc":"4230:63:101","nodeType":"YulAssignment","src":"4230:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:101","nodeType":"YulIdentifier","src":"4265:9:101"},{"name":"offset","nativeSrc":"4276:6:101","nodeType":"YulIdentifier","src":"4276:6:101"}],"functionName":{"name":"add","nativeSrc":"4261:3:101","nodeType":"YulIdentifier","src":"4261:3:101"},"nativeSrc":"4261:22:101","nodeType":"YulFunctionCall","src":"4261:22:101"},{"name":"dataEnd","nativeSrc":"4285:7:101","nodeType":"YulIdentifier","src":"4285:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:101","nodeType":"YulIdentifier","src":"4240:20:101"},"nativeSrc":"4240:53:101","nodeType":"YulFunctionCall","src":"4240:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:101","nodeType":"YulIdentifier","src":"4230:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:101","nodeType":"YulTypedName","src":"3745:9:101","type":""},{"name":"dataEnd","nativeSrc":"3756:7:101","nodeType":"YulTypedName","src":"3756:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:101","nodeType":"YulTypedName","src":"3768:6:101","type":""},{"name":"value1","nativeSrc":"3776:6:101","nodeType":"YulTypedName","src":"3776:6:101","type":""},{"name":"value2","nativeSrc":"3784:6:101","nodeType":"YulTypedName","src":"3784:6:101","type":""}],"src":"3691:619:101"},{"body":{"nativeSrc":"4359:43:101","nodeType":"YulBlock","src":"4359:43:101","statements":[{"nativeSrc":"4369:27:101","nodeType":"YulAssignment","src":"4369:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:101","nodeType":"YulIdentifier","src":"4384:5:101"},{"kind":"number","nativeSrc":"4391:4:101","nodeType":"YulLiteral","src":"4391:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:101","nodeType":"YulIdentifier","src":"4380:3:101"},"nativeSrc":"4380:16:101","nodeType":"YulFunctionCall","src":"4380:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:101","nodeType":"YulIdentifier","src":"4369:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:101","nodeType":"YulTypedName","src":"4341:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:101","nodeType":"YulTypedName","src":"4351:7:101","type":""}],"src":"4316:86:101"},{"body":{"nativeSrc":"4469:51:101","nodeType":"YulBlock","src":"4469:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:101","nodeType":"YulIdentifier","src":"4486:3:101"},{"arguments":[{"name":"value","nativeSrc":"4507:5:101","nodeType":"YulIdentifier","src":"4507:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:101","nodeType":"YulIdentifier","src":"4491:15:101"},"nativeSrc":"4491:22:101","nodeType":"YulFunctionCall","src":"4491:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:101","nodeType":"YulIdentifier","src":"4479:6:101"},"nativeSrc":"4479:35:101","nodeType":"YulFunctionCall","src":"4479:35:101"},"nativeSrc":"4479:35:101","nodeType":"YulExpressionStatement","src":"4479:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:101","nodeType":"YulTypedName","src":"4457:5:101","type":""},{"name":"pos","nativeSrc":"4464:3:101","nodeType":"YulTypedName","src":"4464:3:101","type":""}],"src":"4408:112:101"},{"body":{"nativeSrc":"4620:120:101","nodeType":"YulBlock","src":"4620:120:101","statements":[{"nativeSrc":"4630:26:101","nodeType":"YulAssignment","src":"4630:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:101","nodeType":"YulIdentifier","src":"4642:9:101"},{"kind":"number","nativeSrc":"4653:2:101","nodeType":"YulLiteral","src":"4653:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:101","nodeType":"YulIdentifier","src":"4638:3:101"},"nativeSrc":"4638:18:101","nodeType":"YulFunctionCall","src":"4638:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:101","nodeType":"YulIdentifier","src":"4630:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:101","nodeType":"YulIdentifier","src":"4706:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:101","nodeType":"YulIdentifier","src":"4719:9:101"},{"kind":"number","nativeSrc":"4730:1:101","nodeType":"YulLiteral","src":"4730:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:101","nodeType":"YulIdentifier","src":"4715:3:101"},"nativeSrc":"4715:17:101","nodeType":"YulFunctionCall","src":"4715:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:101","nodeType":"YulIdentifier","src":"4666:39:101"},"nativeSrc":"4666:67:101","nodeType":"YulFunctionCall","src":"4666:67:101"},"nativeSrc":"4666:67:101","nodeType":"YulExpressionStatement","src":"4666:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:101","nodeType":"YulTypedName","src":"4592:9:101","type":""},{"name":"value0","nativeSrc":"4604:6:101","nodeType":"YulTypedName","src":"4604:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:101","nodeType":"YulTypedName","src":"4615:4:101","type":""}],"src":"4526:214:101"},{"body":{"nativeSrc":"4812:263:101","nodeType":"YulBlock","src":"4812:263:101","statements":[{"body":{"nativeSrc":"4858:83:101","nodeType":"YulBlock","src":"4858:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4860:77:101","nodeType":"YulIdentifier","src":"4860:77:101"},"nativeSrc":"4860:79:101","nodeType":"YulFunctionCall","src":"4860:79:101"},"nativeSrc":"4860:79:101","nodeType":"YulExpressionStatement","src":"4860:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4833:7:101","nodeType":"YulIdentifier","src":"4833:7:101"},{"name":"headStart","nativeSrc":"4842:9:101","nodeType":"YulIdentifier","src":"4842:9:101"}],"functionName":{"name":"sub","nativeSrc":"4829:3:101","nodeType":"YulIdentifier","src":"4829:3:101"},"nativeSrc":"4829:23:101","nodeType":"YulFunctionCall","src":"4829:23:101"},{"kind":"number","nativeSrc":"4854:2:101","nodeType":"YulLiteral","src":"4854:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4825:3:101","nodeType":"YulIdentifier","src":"4825:3:101"},"nativeSrc":"4825:32:101","nodeType":"YulFunctionCall","src":"4825:32:101"},"nativeSrc":"4822:119:101","nodeType":"YulIf","src":"4822:119:101"},{"nativeSrc":"4951:117:101","nodeType":"YulBlock","src":"4951:117:101","statements":[{"nativeSrc":"4966:15:101","nodeType":"YulVariableDeclaration","src":"4966:15:101","value":{"kind":"number","nativeSrc":"4980:1:101","nodeType":"YulLiteral","src":"4980:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4970:6:101","nodeType":"YulTypedName","src":"4970:6:101","type":""}]},{"nativeSrc":"4995:63:101","nodeType":"YulAssignment","src":"4995:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5030:9:101","nodeType":"YulIdentifier","src":"5030:9:101"},{"name":"offset","nativeSrc":"5041:6:101","nodeType":"YulIdentifier","src":"5041:6:101"}],"functionName":{"name":"add","nativeSrc":"5026:3:101","nodeType":"YulIdentifier","src":"5026:3:101"},"nativeSrc":"5026:22:101","nodeType":"YulFunctionCall","src":"5026:22:101"},{"name":"dataEnd","nativeSrc":"5050:7:101","nodeType":"YulIdentifier","src":"5050:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5005:20:101","nodeType":"YulIdentifier","src":"5005:20:101"},"nativeSrc":"5005:53:101","nodeType":"YulFunctionCall","src":"5005:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4995:6:101","nodeType":"YulIdentifier","src":"4995:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"4746:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4782:9:101","nodeType":"YulTypedName","src":"4782:9:101","type":""},{"name":"dataEnd","nativeSrc":"4793:7:101","nodeType":"YulTypedName","src":"4793:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4805:6:101","nodeType":"YulTypedName","src":"4805:6:101","type":""}],"src":"4746:329:101"},{"body":{"nativeSrc":"5147:263:101","nodeType":"YulBlock","src":"5147:263:101","statements":[{"body":{"nativeSrc":"5193:83:101","nodeType":"YulBlock","src":"5193:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5195:77:101","nodeType":"YulIdentifier","src":"5195:77:101"},"nativeSrc":"5195:79:101","nodeType":"YulFunctionCall","src":"5195:79:101"},"nativeSrc":"5195:79:101","nodeType":"YulExpressionStatement","src":"5195:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5168:7:101","nodeType":"YulIdentifier","src":"5168:7:101"},{"name":"headStart","nativeSrc":"5177:9:101","nodeType":"YulIdentifier","src":"5177:9:101"}],"functionName":{"name":"sub","nativeSrc":"5164:3:101","nodeType":"YulIdentifier","src":"5164:3:101"},"nativeSrc":"5164:23:101","nodeType":"YulFunctionCall","src":"5164:23:101"},{"kind":"number","nativeSrc":"5189:2:101","nodeType":"YulLiteral","src":"5189:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5160:3:101","nodeType":"YulIdentifier","src":"5160:3:101"},"nativeSrc":"5160:32:101","nodeType":"YulFunctionCall","src":"5160:32:101"},"nativeSrc":"5157:119:101","nodeType":"YulIf","src":"5157:119:101"},{"nativeSrc":"5286:117:101","nodeType":"YulBlock","src":"5286:117:101","statements":[{"nativeSrc":"5301:15:101","nodeType":"YulVariableDeclaration","src":"5301:15:101","value":{"kind":"number","nativeSrc":"5315:1:101","nodeType":"YulLiteral","src":"5315:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5305:6:101","nodeType":"YulTypedName","src":"5305:6:101","type":""}]},{"nativeSrc":"5330:63:101","nodeType":"YulAssignment","src":"5330:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5365:9:101","nodeType":"YulIdentifier","src":"5365:9:101"},{"name":"offset","nativeSrc":"5376:6:101","nodeType":"YulIdentifier","src":"5376:6:101"}],"functionName":{"name":"add","nativeSrc":"5361:3:101","nodeType":"YulIdentifier","src":"5361:3:101"},"nativeSrc":"5361:22:101","nodeType":"YulFunctionCall","src":"5361:22:101"},{"name":"dataEnd","nativeSrc":"5385:7:101","nodeType":"YulIdentifier","src":"5385:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5340:20:101","nodeType":"YulIdentifier","src":"5340:20:101"},"nativeSrc":"5340:53:101","nodeType":"YulFunctionCall","src":"5340:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5330:6:101","nodeType":"YulIdentifier","src":"5330:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5081:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5117:9:101","nodeType":"YulTypedName","src":"5117:9:101","type":""},{"name":"dataEnd","nativeSrc":"5128:7:101","nodeType":"YulTypedName","src":"5128:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5140:6:101","nodeType":"YulTypedName","src":"5140:6:101","type":""}],"src":"5081:329:101"},{"body":{"nativeSrc":"5499:391:101","nodeType":"YulBlock","src":"5499:391:101","statements":[{"body":{"nativeSrc":"5545:83:101","nodeType":"YulBlock","src":"5545:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5547:77:101","nodeType":"YulIdentifier","src":"5547:77:101"},"nativeSrc":"5547:79:101","nodeType":"YulFunctionCall","src":"5547:79:101"},"nativeSrc":"5547:79:101","nodeType":"YulExpressionStatement","src":"5547:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5520:7:101","nodeType":"YulIdentifier","src":"5520:7:101"},{"name":"headStart","nativeSrc":"5529:9:101","nodeType":"YulIdentifier","src":"5529:9:101"}],"functionName":{"name":"sub","nativeSrc":"5516:3:101","nodeType":"YulIdentifier","src":"5516:3:101"},"nativeSrc":"5516:23:101","nodeType":"YulFunctionCall","src":"5516:23:101"},{"kind":"number","nativeSrc":"5541:2:101","nodeType":"YulLiteral","src":"5541:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5512:3:101","nodeType":"YulIdentifier","src":"5512:3:101"},"nativeSrc":"5512:32:101","nodeType":"YulFunctionCall","src":"5512:32:101"},"nativeSrc":"5509:119:101","nodeType":"YulIf","src":"5509:119:101"},{"nativeSrc":"5638:117:101","nodeType":"YulBlock","src":"5638:117:101","statements":[{"nativeSrc":"5653:15:101","nodeType":"YulVariableDeclaration","src":"5653:15:101","value":{"kind":"number","nativeSrc":"5667:1:101","nodeType":"YulLiteral","src":"5667:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5657:6:101","nodeType":"YulTypedName","src":"5657:6:101","type":""}]},{"nativeSrc":"5682:63:101","nodeType":"YulAssignment","src":"5682:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5717:9:101","nodeType":"YulIdentifier","src":"5717:9:101"},{"name":"offset","nativeSrc":"5728:6:101","nodeType":"YulIdentifier","src":"5728:6:101"}],"functionName":{"name":"add","nativeSrc":"5713:3:101","nodeType":"YulIdentifier","src":"5713:3:101"},"nativeSrc":"5713:22:101","nodeType":"YulFunctionCall","src":"5713:22:101"},{"name":"dataEnd","nativeSrc":"5737:7:101","nodeType":"YulIdentifier","src":"5737:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5692:20:101","nodeType":"YulIdentifier","src":"5692:20:101"},"nativeSrc":"5692:53:101","nodeType":"YulFunctionCall","src":"5692:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5682:6:101","nodeType":"YulIdentifier","src":"5682:6:101"}]}]},{"nativeSrc":"5765:118:101","nodeType":"YulBlock","src":"5765:118:101","statements":[{"nativeSrc":"5780:16:101","nodeType":"YulVariableDeclaration","src":"5780:16:101","value":{"kind":"number","nativeSrc":"5794:2:101","nodeType":"YulLiteral","src":"5794:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5784:6:101","nodeType":"YulTypedName","src":"5784:6:101","type":""}]},{"nativeSrc":"5810:63:101","nodeType":"YulAssignment","src":"5810:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5845:9:101","nodeType":"YulIdentifier","src":"5845:9:101"},{"name":"offset","nativeSrc":"5856:6:101","nodeType":"YulIdentifier","src":"5856:6:101"}],"functionName":{"name":"add","nativeSrc":"5841:3:101","nodeType":"YulIdentifier","src":"5841:3:101"},"nativeSrc":"5841:22:101","nodeType":"YulFunctionCall","src":"5841:22:101"},{"name":"dataEnd","nativeSrc":"5865:7:101","nodeType":"YulIdentifier","src":"5865:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5820:20:101","nodeType":"YulIdentifier","src":"5820:20:101"},"nativeSrc":"5820:53:101","nodeType":"YulFunctionCall","src":"5820:53:101"},"variableNames":[{"name":"value1","nativeSrc":"5810:6:101","nodeType":"YulIdentifier","src":"5810:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5416:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5461:9:101","nodeType":"YulTypedName","src":"5461:9:101","type":""},{"name":"dataEnd","nativeSrc":"5472:7:101","nodeType":"YulTypedName","src":"5472:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5484:6:101","nodeType":"YulTypedName","src":"5484:6:101","type":""},{"name":"value1","nativeSrc":"5492:6:101","nodeType":"YulTypedName","src":"5492:6:101","type":""}],"src":"5416:474:101"},{"body":{"nativeSrc":"5924:152:101","nodeType":"YulBlock","src":"5924:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5941:1:101","nodeType":"YulLiteral","src":"5941:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5944:77:101","nodeType":"YulLiteral","src":"5944:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5934:6:101","nodeType":"YulIdentifier","src":"5934:6:101"},"nativeSrc":"5934:88:101","nodeType":"YulFunctionCall","src":"5934:88:101"},"nativeSrc":"5934:88:101","nodeType":"YulExpressionStatement","src":"5934:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6038:1:101","nodeType":"YulLiteral","src":"6038:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6041:4:101","nodeType":"YulLiteral","src":"6041:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6031:6:101","nodeType":"YulIdentifier","src":"6031:6:101"},"nativeSrc":"6031:15:101","nodeType":"YulFunctionCall","src":"6031:15:101"},"nativeSrc":"6031:15:101","nodeType":"YulExpressionStatement","src":"6031:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6062:1:101","nodeType":"YulLiteral","src":"6062:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6065:4:101","nodeType":"YulLiteral","src":"6065:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6055:6:101","nodeType":"YulIdentifier","src":"6055:6:101"},"nativeSrc":"6055:15:101","nodeType":"YulFunctionCall","src":"6055:15:101"},"nativeSrc":"6055:15:101","nodeType":"YulExpressionStatement","src":"6055:15:101"}]},"name":"panic_error_0x22","nativeSrc":"5896:180:101","nodeType":"YulFunctionDefinition","src":"5896:180:101"},{"body":{"nativeSrc":"6133:269:101","nodeType":"YulBlock","src":"6133:269:101","statements":[{"nativeSrc":"6143:22:101","nodeType":"YulAssignment","src":"6143:22:101","value":{"arguments":[{"name":"data","nativeSrc":"6157:4:101","nodeType":"YulIdentifier","src":"6157:4:101"},{"kind":"number","nativeSrc":"6163:1:101","nodeType":"YulLiteral","src":"6163:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"6153:3:101","nodeType":"YulIdentifier","src":"6153:3:101"},"nativeSrc":"6153:12:101","nodeType":"YulFunctionCall","src":"6153:12:101"},"variableNames":[{"name":"length","nativeSrc":"6143:6:101","nodeType":"YulIdentifier","src":"6143:6:101"}]},{"nativeSrc":"6174:38:101","nodeType":"YulVariableDeclaration","src":"6174:38:101","value":{"arguments":[{"name":"data","nativeSrc":"6204:4:101","nodeType":"YulIdentifier","src":"6204:4:101"},{"kind":"number","nativeSrc":"6210:1:101","nodeType":"YulLiteral","src":"6210:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6200:3:101","nodeType":"YulIdentifier","src":"6200:3:101"},"nativeSrc":"6200:12:101","nodeType":"YulFunctionCall","src":"6200:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6178:18:101","nodeType":"YulTypedName","src":"6178:18:101","type":""}]},{"body":{"nativeSrc":"6251:51:101","nodeType":"YulBlock","src":"6251:51:101","statements":[{"nativeSrc":"6265:27:101","nodeType":"YulAssignment","src":"6265:27:101","value":{"arguments":[{"name":"length","nativeSrc":"6279:6:101","nodeType":"YulIdentifier","src":"6279:6:101"},{"kind":"number","nativeSrc":"6287:4:101","nodeType":"YulLiteral","src":"6287:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6275:3:101","nodeType":"YulIdentifier","src":"6275:3:101"},"nativeSrc":"6275:17:101","nodeType":"YulFunctionCall","src":"6275:17:101"},"variableNames":[{"name":"length","nativeSrc":"6265:6:101","nodeType":"YulIdentifier","src":"6265:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6231:18:101","nodeType":"YulIdentifier","src":"6231:18:101"}],"functionName":{"name":"iszero","nativeSrc":"6224:6:101","nodeType":"YulIdentifier","src":"6224:6:101"},"nativeSrc":"6224:26:101","nodeType":"YulFunctionCall","src":"6224:26:101"},"nativeSrc":"6221:81:101","nodeType":"YulIf","src":"6221:81:101"},{"body":{"nativeSrc":"6354:42:101","nodeType":"YulBlock","src":"6354:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6368:16:101","nodeType":"YulIdentifier","src":"6368:16:101"},"nativeSrc":"6368:18:101","nodeType":"YulFunctionCall","src":"6368:18:101"},"nativeSrc":"6368:18:101","nodeType":"YulExpressionStatement","src":"6368:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6318:18:101","nodeType":"YulIdentifier","src":"6318:18:101"},{"arguments":[{"name":"length","nativeSrc":"6341:6:101","nodeType":"YulIdentifier","src":"6341:6:101"},{"kind":"number","nativeSrc":"6349:2:101","nodeType":"YulLiteral","src":"6349:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6338:2:101","nodeType":"YulIdentifier","src":"6338:2:101"},"nativeSrc":"6338:14:101","nodeType":"YulFunctionCall","src":"6338:14:101"}],"functionName":{"name":"eq","nativeSrc":"6315:2:101","nodeType":"YulIdentifier","src":"6315:2:101"},"nativeSrc":"6315:38:101","nodeType":"YulFunctionCall","src":"6315:38:101"},"nativeSrc":"6312:84:101","nodeType":"YulIf","src":"6312:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"6082:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6117:4:101","nodeType":"YulTypedName","src":"6117:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6126:6:101","nodeType":"YulTypedName","src":"6126:6:101","type":""}],"src":"6082:320:101"},{"body":{"nativeSrc":"6436:152:101","nodeType":"YulBlock","src":"6436:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6453:1:101","nodeType":"YulLiteral","src":"6453:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6456:77:101","nodeType":"YulLiteral","src":"6456:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6446:6:101","nodeType":"YulIdentifier","src":"6446:6:101"},"nativeSrc":"6446:88:101","nodeType":"YulFunctionCall","src":"6446:88:101"},"nativeSrc":"6446:88:101","nodeType":"YulExpressionStatement","src":"6446:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6550:1:101","nodeType":"YulLiteral","src":"6550:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6553:4:101","nodeType":"YulLiteral","src":"6553:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6543:6:101","nodeType":"YulIdentifier","src":"6543:6:101"},"nativeSrc":"6543:15:101","nodeType":"YulFunctionCall","src":"6543:15:101"},"nativeSrc":"6543:15:101","nodeType":"YulExpressionStatement","src":"6543:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6574:1:101","nodeType":"YulLiteral","src":"6574:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6577:4:101","nodeType":"YulLiteral","src":"6577:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6567:6:101","nodeType":"YulIdentifier","src":"6567:6:101"},"nativeSrc":"6567:15:101","nodeType":"YulFunctionCall","src":"6567:15:101"},"nativeSrc":"6567:15:101","nodeType":"YulExpressionStatement","src":"6567:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6408:180:101","nodeType":"YulFunctionDefinition","src":"6408:180:101"},{"body":{"nativeSrc":"6638:147:101","nodeType":"YulBlock","src":"6638:147:101","statements":[{"nativeSrc":"6648:25:101","nodeType":"YulAssignment","src":"6648:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6671:1:101","nodeType":"YulIdentifier","src":"6671:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6653:17:101","nodeType":"YulIdentifier","src":"6653:17:101"},"nativeSrc":"6653:20:101","nodeType":"YulFunctionCall","src":"6653:20:101"},"variableNames":[{"name":"x","nativeSrc":"6648:1:101","nodeType":"YulIdentifier","src":"6648:1:101"}]},{"nativeSrc":"6682:25:101","nodeType":"YulAssignment","src":"6682:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6705:1:101","nodeType":"YulIdentifier","src":"6705:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6687:17:101","nodeType":"YulIdentifier","src":"6687:17:101"},"nativeSrc":"6687:20:101","nodeType":"YulFunctionCall","src":"6687:20:101"},"variableNames":[{"name":"y","nativeSrc":"6682:1:101","nodeType":"YulIdentifier","src":"6682:1:101"}]},{"nativeSrc":"6716:16:101","nodeType":"YulAssignment","src":"6716:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6727:1:101","nodeType":"YulIdentifier","src":"6727:1:101"},{"name":"y","nativeSrc":"6730:1:101","nodeType":"YulIdentifier","src":"6730:1:101"}],"functionName":{"name":"add","nativeSrc":"6723:3:101","nodeType":"YulIdentifier","src":"6723:3:101"},"nativeSrc":"6723:9:101","nodeType":"YulFunctionCall","src":"6723:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6716:3:101","nodeType":"YulIdentifier","src":"6716:3:101"}]},{"body":{"nativeSrc":"6756:22:101","nodeType":"YulBlock","src":"6756:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6758:16:101","nodeType":"YulIdentifier","src":"6758:16:101"},"nativeSrc":"6758:18:101","nodeType":"YulFunctionCall","src":"6758:18:101"},"nativeSrc":"6758:18:101","nodeType":"YulExpressionStatement","src":"6758:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6748:1:101","nodeType":"YulIdentifier","src":"6748:1:101"},{"name":"sum","nativeSrc":"6751:3:101","nodeType":"YulIdentifier","src":"6751:3:101"}],"functionName":{"name":"gt","nativeSrc":"6745:2:101","nodeType":"YulIdentifier","src":"6745:2:101"},"nativeSrc":"6745:10:101","nodeType":"YulFunctionCall","src":"6745:10:101"},"nativeSrc":"6742:36:101","nodeType":"YulIf","src":"6742:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6594:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6625:1:101","nodeType":"YulTypedName","src":"6625:1:101","type":""},{"name":"y","nativeSrc":"6628:1:101","nodeType":"YulTypedName","src":"6628:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6634:3:101","nodeType":"YulTypedName","src":"6634:3:101","type":""}],"src":"6594:191:101"},{"body":{"nativeSrc":"6897:118:101","nodeType":"YulBlock","src":"6897:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6919:6:101","nodeType":"YulIdentifier","src":"6919:6:101"},{"kind":"number","nativeSrc":"6927:1:101","nodeType":"YulLiteral","src":"6927:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6915:3:101","nodeType":"YulIdentifier","src":"6915:3:101"},"nativeSrc":"6915:14:101","nodeType":"YulFunctionCall","src":"6915:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"6931:34:101","nodeType":"YulLiteral","src":"6931:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"6908:6:101","nodeType":"YulIdentifier","src":"6908:6:101"},"nativeSrc":"6908:58:101","nodeType":"YulFunctionCall","src":"6908:58:101"},"nativeSrc":"6908:58:101","nodeType":"YulExpressionStatement","src":"6908:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6987:6:101","nodeType":"YulIdentifier","src":"6987:6:101"},{"kind":"number","nativeSrc":"6995:2:101","nodeType":"YulLiteral","src":"6995:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6983:3:101","nodeType":"YulIdentifier","src":"6983:3:101"},"nativeSrc":"6983:15:101","nodeType":"YulFunctionCall","src":"6983:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"7000:7:101","nodeType":"YulLiteral","src":"7000:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"6976:6:101","nodeType":"YulIdentifier","src":"6976:6:101"},"nativeSrc":"6976:32:101","nodeType":"YulFunctionCall","src":"6976:32:101"},"nativeSrc":"6976:32:101","nodeType":"YulExpressionStatement","src":"6976:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"6791:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6889:6:101","nodeType":"YulTypedName","src":"6889:6:101","type":""}],"src":"6791:224:101"},{"body":{"nativeSrc":"7167:220:101","nodeType":"YulBlock","src":"7167:220:101","statements":[{"nativeSrc":"7177:74:101","nodeType":"YulAssignment","src":"7177:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7243:3:101","nodeType":"YulIdentifier","src":"7243:3:101"},{"kind":"number","nativeSrc":"7248:2:101","nodeType":"YulLiteral","src":"7248:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7184:58:101","nodeType":"YulIdentifier","src":"7184:58:101"},"nativeSrc":"7184:67:101","nodeType":"YulFunctionCall","src":"7184:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7177:3:101","nodeType":"YulIdentifier","src":"7177:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7349:3:101","nodeType":"YulIdentifier","src":"7349:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7260:88:101","nodeType":"YulIdentifier","src":"7260:88:101"},"nativeSrc":"7260:93:101","nodeType":"YulFunctionCall","src":"7260:93:101"},"nativeSrc":"7260:93:101","nodeType":"YulExpressionStatement","src":"7260:93:101"},{"nativeSrc":"7362:19:101","nodeType":"YulAssignment","src":"7362:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7373:3:101","nodeType":"YulIdentifier","src":"7373:3:101"},{"kind":"number","nativeSrc":"7378:2:101","nodeType":"YulLiteral","src":"7378:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7369:3:101","nodeType":"YulIdentifier","src":"7369:3:101"},"nativeSrc":"7369:12:101","nodeType":"YulFunctionCall","src":"7369:12:101"},"variableNames":[{"name":"end","nativeSrc":"7362:3:101","nodeType":"YulIdentifier","src":"7362:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7021:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7155:3:101","nodeType":"YulTypedName","src":"7155:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7163:3:101","nodeType":"YulTypedName","src":"7163:3:101","type":""}],"src":"7021:366:101"},{"body":{"nativeSrc":"7564:248:101","nodeType":"YulBlock","src":"7564:248:101","statements":[{"nativeSrc":"7574:26:101","nodeType":"YulAssignment","src":"7574:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7586:9:101","nodeType":"YulIdentifier","src":"7586:9:101"},{"kind":"number","nativeSrc":"7597:2:101","nodeType":"YulLiteral","src":"7597:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7582:3:101","nodeType":"YulIdentifier","src":"7582:3:101"},"nativeSrc":"7582:18:101","nodeType":"YulFunctionCall","src":"7582:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7574:4:101","nodeType":"YulIdentifier","src":"7574:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7621:9:101","nodeType":"YulIdentifier","src":"7621:9:101"},{"kind":"number","nativeSrc":"7632:1:101","nodeType":"YulLiteral","src":"7632:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7617:3:101","nodeType":"YulIdentifier","src":"7617:3:101"},"nativeSrc":"7617:17:101","nodeType":"YulFunctionCall","src":"7617:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7640:4:101","nodeType":"YulIdentifier","src":"7640:4:101"},{"name":"headStart","nativeSrc":"7646:9:101","nodeType":"YulIdentifier","src":"7646:9:101"}],"functionName":{"name":"sub","nativeSrc":"7636:3:101","nodeType":"YulIdentifier","src":"7636:3:101"},"nativeSrc":"7636:20:101","nodeType":"YulFunctionCall","src":"7636:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7610:6:101","nodeType":"YulIdentifier","src":"7610:6:101"},"nativeSrc":"7610:47:101","nodeType":"YulFunctionCall","src":"7610:47:101"},"nativeSrc":"7610:47:101","nodeType":"YulExpressionStatement","src":"7610:47:101"},{"nativeSrc":"7666:139:101","nodeType":"YulAssignment","src":"7666:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"7800:4:101","nodeType":"YulIdentifier","src":"7800:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7674:124:101","nodeType":"YulIdentifier","src":"7674:124:101"},"nativeSrc":"7674:131:101","nodeType":"YulFunctionCall","src":"7674:131:101"},"variableNames":[{"name":"tail","nativeSrc":"7666:4:101","nodeType":"YulIdentifier","src":"7666:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7393:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7544:9:101","nodeType":"YulTypedName","src":"7544:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7559:4:101","nodeType":"YulTypedName","src":"7559:4:101","type":""}],"src":"7393:419:101"},{"body":{"nativeSrc":"7924:117:101","nodeType":"YulBlock","src":"7924:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7946:6:101","nodeType":"YulIdentifier","src":"7946:6:101"},{"kind":"number","nativeSrc":"7954:1:101","nodeType":"YulLiteral","src":"7954:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7942:3:101","nodeType":"YulIdentifier","src":"7942:3:101"},"nativeSrc":"7942:14:101","nodeType":"YulFunctionCall","src":"7942:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"7958:34:101","nodeType":"YulLiteral","src":"7958:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"7935:6:101","nodeType":"YulIdentifier","src":"7935:6:101"},"nativeSrc":"7935:58:101","nodeType":"YulFunctionCall","src":"7935:58:101"},"nativeSrc":"7935:58:101","nodeType":"YulExpressionStatement","src":"7935:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8014:6:101","nodeType":"YulIdentifier","src":"8014:6:101"},{"kind":"number","nativeSrc":"8022:2:101","nodeType":"YulLiteral","src":"8022:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8010:3:101","nodeType":"YulIdentifier","src":"8010:3:101"},"nativeSrc":"8010:15:101","nodeType":"YulFunctionCall","src":"8010:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"8027:6:101","nodeType":"YulLiteral","src":"8027:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"8003:6:101","nodeType":"YulIdentifier","src":"8003:6:101"},"nativeSrc":"8003:31:101","nodeType":"YulFunctionCall","src":"8003:31:101"},"nativeSrc":"8003:31:101","nodeType":"YulExpressionStatement","src":"8003:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"7818:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7916:6:101","nodeType":"YulTypedName","src":"7916:6:101","type":""}],"src":"7818:223:101"},{"body":{"nativeSrc":"8193:220:101","nodeType":"YulBlock","src":"8193:220:101","statements":[{"nativeSrc":"8203:74:101","nodeType":"YulAssignment","src":"8203:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"8269:3:101","nodeType":"YulIdentifier","src":"8269:3:101"},{"kind":"number","nativeSrc":"8274:2:101","nodeType":"YulLiteral","src":"8274:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8210:58:101","nodeType":"YulIdentifier","src":"8210:58:101"},"nativeSrc":"8210:67:101","nodeType":"YulFunctionCall","src":"8210:67:101"},"variableNames":[{"name":"pos","nativeSrc":"8203:3:101","nodeType":"YulIdentifier","src":"8203:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8375:3:101","nodeType":"YulIdentifier","src":"8375:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"8286:88:101","nodeType":"YulIdentifier","src":"8286:88:101"},"nativeSrc":"8286:93:101","nodeType":"YulFunctionCall","src":"8286:93:101"},"nativeSrc":"8286:93:101","nodeType":"YulExpressionStatement","src":"8286:93:101"},{"nativeSrc":"8388:19:101","nodeType":"YulAssignment","src":"8388:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"8399:3:101","nodeType":"YulIdentifier","src":"8399:3:101"},{"kind":"number","nativeSrc":"8404:2:101","nodeType":"YulLiteral","src":"8404:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8395:3:101","nodeType":"YulIdentifier","src":"8395:3:101"},"nativeSrc":"8395:12:101","nodeType":"YulFunctionCall","src":"8395:12:101"},"variableNames":[{"name":"end","nativeSrc":"8388:3:101","nodeType":"YulIdentifier","src":"8388:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8047:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8181:3:101","nodeType":"YulTypedName","src":"8181:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8189:3:101","nodeType":"YulTypedName","src":"8189:3:101","type":""}],"src":"8047:366:101"},{"body":{"nativeSrc":"8590:248:101","nodeType":"YulBlock","src":"8590:248:101","statements":[{"nativeSrc":"8600:26:101","nodeType":"YulAssignment","src":"8600:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8612:9:101","nodeType":"YulIdentifier","src":"8612:9:101"},{"kind":"number","nativeSrc":"8623:2:101","nodeType":"YulLiteral","src":"8623:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8608:3:101","nodeType":"YulIdentifier","src":"8608:3:101"},"nativeSrc":"8608:18:101","nodeType":"YulFunctionCall","src":"8608:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8600:4:101","nodeType":"YulIdentifier","src":"8600:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8647:9:101","nodeType":"YulIdentifier","src":"8647:9:101"},{"kind":"number","nativeSrc":"8658:1:101","nodeType":"YulLiteral","src":"8658:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8643:3:101","nodeType":"YulIdentifier","src":"8643:3:101"},"nativeSrc":"8643:17:101","nodeType":"YulFunctionCall","src":"8643:17:101"},{"arguments":[{"name":"tail","nativeSrc":"8666:4:101","nodeType":"YulIdentifier","src":"8666:4:101"},{"name":"headStart","nativeSrc":"8672:9:101","nodeType":"YulIdentifier","src":"8672:9:101"}],"functionName":{"name":"sub","nativeSrc":"8662:3:101","nodeType":"YulIdentifier","src":"8662:3:101"},"nativeSrc":"8662:20:101","nodeType":"YulFunctionCall","src":"8662:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8636:6:101","nodeType":"YulIdentifier","src":"8636:6:101"},"nativeSrc":"8636:47:101","nodeType":"YulFunctionCall","src":"8636:47:101"},"nativeSrc":"8636:47:101","nodeType":"YulExpressionStatement","src":"8636:47:101"},{"nativeSrc":"8692:139:101","nodeType":"YulAssignment","src":"8692:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"8826:4:101","nodeType":"YulIdentifier","src":"8826:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8700:124:101","nodeType":"YulIdentifier","src":"8700:124:101"},"nativeSrc":"8700:131:101","nodeType":"YulFunctionCall","src":"8700:131:101"},"variableNames":[{"name":"tail","nativeSrc":"8692:4:101","nodeType":"YulIdentifier","src":"8692:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8419:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8570:9:101","nodeType":"YulTypedName","src":"8570:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8585:4:101","nodeType":"YulTypedName","src":"8585:4:101","type":""}],"src":"8419:419:101"},{"body":{"nativeSrc":"8950:115:101","nodeType":"YulBlock","src":"8950:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8972:6:101","nodeType":"YulIdentifier","src":"8972:6:101"},{"kind":"number","nativeSrc":"8980:1:101","nodeType":"YulLiteral","src":"8980:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8968:3:101","nodeType":"YulIdentifier","src":"8968:3:101"},"nativeSrc":"8968:14:101","nodeType":"YulFunctionCall","src":"8968:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"8984:34:101","nodeType":"YulLiteral","src":"8984:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"8961:6:101","nodeType":"YulIdentifier","src":"8961:6:101"},"nativeSrc":"8961:58:101","nodeType":"YulFunctionCall","src":"8961:58:101"},"nativeSrc":"8961:58:101","nodeType":"YulExpressionStatement","src":"8961:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9040:6:101","nodeType":"YulIdentifier","src":"9040:6:101"},{"kind":"number","nativeSrc":"9048:2:101","nodeType":"YulLiteral","src":"9048:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9036:3:101","nodeType":"YulIdentifier","src":"9036:3:101"},"nativeSrc":"9036:15:101","nodeType":"YulFunctionCall","src":"9036:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"9053:4:101","nodeType":"YulLiteral","src":"9053:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"9029:6:101","nodeType":"YulIdentifier","src":"9029:6:101"},"nativeSrc":"9029:29:101","nodeType":"YulFunctionCall","src":"9029:29:101"},"nativeSrc":"9029:29:101","nodeType":"YulExpressionStatement","src":"9029:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"8844:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8942:6:101","nodeType":"YulTypedName","src":"8942:6:101","type":""}],"src":"8844:221:101"},{"body":{"nativeSrc":"9217:220:101","nodeType":"YulBlock","src":"9217:220:101","statements":[{"nativeSrc":"9227:74:101","nodeType":"YulAssignment","src":"9227:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9293:3:101","nodeType":"YulIdentifier","src":"9293:3:101"},{"kind":"number","nativeSrc":"9298:2:101","nodeType":"YulLiteral","src":"9298:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9234:58:101","nodeType":"YulIdentifier","src":"9234:58:101"},"nativeSrc":"9234:67:101","nodeType":"YulFunctionCall","src":"9234:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9227:3:101","nodeType":"YulIdentifier","src":"9227:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9399:3:101","nodeType":"YulIdentifier","src":"9399:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"9310:88:101","nodeType":"YulIdentifier","src":"9310:88:101"},"nativeSrc":"9310:93:101","nodeType":"YulFunctionCall","src":"9310:93:101"},"nativeSrc":"9310:93:101","nodeType":"YulExpressionStatement","src":"9310:93:101"},{"nativeSrc":"9412:19:101","nodeType":"YulAssignment","src":"9412:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9423:3:101","nodeType":"YulIdentifier","src":"9423:3:101"},{"kind":"number","nativeSrc":"9428:2:101","nodeType":"YulLiteral","src":"9428:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9419:3:101","nodeType":"YulIdentifier","src":"9419:3:101"},"nativeSrc":"9419:12:101","nodeType":"YulFunctionCall","src":"9419:12:101"},"variableNames":[{"name":"end","nativeSrc":"9412:3:101","nodeType":"YulIdentifier","src":"9412:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9071:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9205:3:101","nodeType":"YulTypedName","src":"9205:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9213:3:101","nodeType":"YulTypedName","src":"9213:3:101","type":""}],"src":"9071:366:101"},{"body":{"nativeSrc":"9614:248:101","nodeType":"YulBlock","src":"9614:248:101","statements":[{"nativeSrc":"9624:26:101","nodeType":"YulAssignment","src":"9624:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9636:9:101","nodeType":"YulIdentifier","src":"9636:9:101"},{"kind":"number","nativeSrc":"9647:2:101","nodeType":"YulLiteral","src":"9647:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9632:3:101","nodeType":"YulIdentifier","src":"9632:3:101"},"nativeSrc":"9632:18:101","nodeType":"YulFunctionCall","src":"9632:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9624:4:101","nodeType":"YulIdentifier","src":"9624:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9671:9:101","nodeType":"YulIdentifier","src":"9671:9:101"},{"kind":"number","nativeSrc":"9682:1:101","nodeType":"YulLiteral","src":"9682:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9667:3:101","nodeType":"YulIdentifier","src":"9667:3:101"},"nativeSrc":"9667:17:101","nodeType":"YulFunctionCall","src":"9667:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9690:4:101","nodeType":"YulIdentifier","src":"9690:4:101"},{"name":"headStart","nativeSrc":"9696:9:101","nodeType":"YulIdentifier","src":"9696:9:101"}],"functionName":{"name":"sub","nativeSrc":"9686:3:101","nodeType":"YulIdentifier","src":"9686:3:101"},"nativeSrc":"9686:20:101","nodeType":"YulFunctionCall","src":"9686:20:101"}],"functionName":{"name":"mstore","nativeSrc":"9660:6:101","nodeType":"YulIdentifier","src":"9660:6:101"},"nativeSrc":"9660:47:101","nodeType":"YulFunctionCall","src":"9660:47:101"},"nativeSrc":"9660:47:101","nodeType":"YulExpressionStatement","src":"9660:47:101"},{"nativeSrc":"9716:139:101","nodeType":"YulAssignment","src":"9716:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9850:4:101","nodeType":"YulIdentifier","src":"9850:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9724:124:101","nodeType":"YulIdentifier","src":"9724:124:101"},"nativeSrc":"9724:131:101","nodeType":"YulFunctionCall","src":"9724:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9716:4:101","nodeType":"YulIdentifier","src":"9716:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9443:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9594:9:101","nodeType":"YulTypedName","src":"9594:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9609:4:101","nodeType":"YulTypedName","src":"9609:4:101","type":""}],"src":"9443:419:101"},{"body":{"nativeSrc":"9974:73:101","nodeType":"YulBlock","src":"9974:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9996:6:101","nodeType":"YulIdentifier","src":"9996:6:101"},{"kind":"number","nativeSrc":"10004:1:101","nodeType":"YulLiteral","src":"10004:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9992:3:101","nodeType":"YulIdentifier","src":"9992:3:101"},"nativeSrc":"9992:14:101","nodeType":"YulFunctionCall","src":"9992:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"10008:31:101","nodeType":"YulLiteral","src":"10008:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"9985:6:101","nodeType":"YulIdentifier","src":"9985:6:101"},"nativeSrc":"9985:55:101","nodeType":"YulFunctionCall","src":"9985:55:101"},"nativeSrc":"9985:55:101","nodeType":"YulExpressionStatement","src":"9985:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"9868:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9966:6:101","nodeType":"YulTypedName","src":"9966:6:101","type":""}],"src":"9868:179:101"},{"body":{"nativeSrc":"10199:220:101","nodeType":"YulBlock","src":"10199:220:101","statements":[{"nativeSrc":"10209:74:101","nodeType":"YulAssignment","src":"10209:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10275:3:101","nodeType":"YulIdentifier","src":"10275:3:101"},{"kind":"number","nativeSrc":"10280:2:101","nodeType":"YulLiteral","src":"10280:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10216:58:101","nodeType":"YulIdentifier","src":"10216:58:101"},"nativeSrc":"10216:67:101","nodeType":"YulFunctionCall","src":"10216:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10209:3:101","nodeType":"YulIdentifier","src":"10209:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10381:3:101","nodeType":"YulIdentifier","src":"10381:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"10292:88:101","nodeType":"YulIdentifier","src":"10292:88:101"},"nativeSrc":"10292:93:101","nodeType":"YulFunctionCall","src":"10292:93:101"},"nativeSrc":"10292:93:101","nodeType":"YulExpressionStatement","src":"10292:93:101"},{"nativeSrc":"10394:19:101","nodeType":"YulAssignment","src":"10394:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10405:3:101","nodeType":"YulIdentifier","src":"10405:3:101"},{"kind":"number","nativeSrc":"10410:2:101","nodeType":"YulLiteral","src":"10410:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10401:3:101","nodeType":"YulIdentifier","src":"10401:3:101"},"nativeSrc":"10401:12:101","nodeType":"YulFunctionCall","src":"10401:12:101"},"variableNames":[{"name":"end","nativeSrc":"10394:3:101","nodeType":"YulIdentifier","src":"10394:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10053:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10187:3:101","nodeType":"YulTypedName","src":"10187:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10195:3:101","nodeType":"YulTypedName","src":"10195:3:101","type":""}],"src":"10053:366:101"},{"body":{"nativeSrc":"10596:248:101","nodeType":"YulBlock","src":"10596:248:101","statements":[{"nativeSrc":"10606:26:101","nodeType":"YulAssignment","src":"10606:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10618:9:101","nodeType":"YulIdentifier","src":"10618:9:101"},{"kind":"number","nativeSrc":"10629:2:101","nodeType":"YulLiteral","src":"10629:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10614:3:101","nodeType":"YulIdentifier","src":"10614:3:101"},"nativeSrc":"10614:18:101","nodeType":"YulFunctionCall","src":"10614:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10606:4:101","nodeType":"YulIdentifier","src":"10606:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10653:9:101","nodeType":"YulIdentifier","src":"10653:9:101"},{"kind":"number","nativeSrc":"10664:1:101","nodeType":"YulLiteral","src":"10664:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10649:3:101","nodeType":"YulIdentifier","src":"10649:3:101"},"nativeSrc":"10649:17:101","nodeType":"YulFunctionCall","src":"10649:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10672:4:101","nodeType":"YulIdentifier","src":"10672:4:101"},{"name":"headStart","nativeSrc":"10678:9:101","nodeType":"YulIdentifier","src":"10678:9:101"}],"functionName":{"name":"sub","nativeSrc":"10668:3:101","nodeType":"YulIdentifier","src":"10668:3:101"},"nativeSrc":"10668:20:101","nodeType":"YulFunctionCall","src":"10668:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10642:6:101","nodeType":"YulIdentifier","src":"10642:6:101"},"nativeSrc":"10642:47:101","nodeType":"YulFunctionCall","src":"10642:47:101"},"nativeSrc":"10642:47:101","nodeType":"YulExpressionStatement","src":"10642:47:101"},{"nativeSrc":"10698:139:101","nodeType":"YulAssignment","src":"10698:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10832:4:101","nodeType":"YulIdentifier","src":"10832:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10706:124:101","nodeType":"YulIdentifier","src":"10706:124:101"},"nativeSrc":"10706:131:101","nodeType":"YulFunctionCall","src":"10706:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10698:4:101","nodeType":"YulIdentifier","src":"10698:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10425:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10576:9:101","nodeType":"YulTypedName","src":"10576:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10591:4:101","nodeType":"YulTypedName","src":"10591:4:101","type":""}],"src":"10425:419:101"},{"body":{"nativeSrc":"10956:118:101","nodeType":"YulBlock","src":"10956:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10978:6:101","nodeType":"YulIdentifier","src":"10978:6:101"},{"kind":"number","nativeSrc":"10986:1:101","nodeType":"YulLiteral","src":"10986:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10974:3:101","nodeType":"YulIdentifier","src":"10974:3:101"},"nativeSrc":"10974:14:101","nodeType":"YulFunctionCall","src":"10974:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"10990:34:101","nodeType":"YulLiteral","src":"10990:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"10967:6:101","nodeType":"YulIdentifier","src":"10967:6:101"},"nativeSrc":"10967:58:101","nodeType":"YulFunctionCall","src":"10967:58:101"},"nativeSrc":"10967:58:101","nodeType":"YulExpressionStatement","src":"10967:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11046:6:101","nodeType":"YulIdentifier","src":"11046:6:101"},{"kind":"number","nativeSrc":"11054:2:101","nodeType":"YulLiteral","src":"11054:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11042:3:101","nodeType":"YulIdentifier","src":"11042:3:101"},"nativeSrc":"11042:15:101","nodeType":"YulFunctionCall","src":"11042:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"11059:7:101","nodeType":"YulLiteral","src":"11059:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"11035:6:101","nodeType":"YulIdentifier","src":"11035:6:101"},"nativeSrc":"11035:32:101","nodeType":"YulFunctionCall","src":"11035:32:101"},"nativeSrc":"11035:32:101","nodeType":"YulExpressionStatement","src":"11035:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"10850:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10948:6:101","nodeType":"YulTypedName","src":"10948:6:101","type":""}],"src":"10850:224:101"},{"body":{"nativeSrc":"11226:220:101","nodeType":"YulBlock","src":"11226:220:101","statements":[{"nativeSrc":"11236:74:101","nodeType":"YulAssignment","src":"11236:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11302:3:101","nodeType":"YulIdentifier","src":"11302:3:101"},{"kind":"number","nativeSrc":"11307:2:101","nodeType":"YulLiteral","src":"11307:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11243:58:101","nodeType":"YulIdentifier","src":"11243:58:101"},"nativeSrc":"11243:67:101","nodeType":"YulFunctionCall","src":"11243:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11236:3:101","nodeType":"YulIdentifier","src":"11236:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11408:3:101","nodeType":"YulIdentifier","src":"11408:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"11319:88:101","nodeType":"YulIdentifier","src":"11319:88:101"},"nativeSrc":"11319:93:101","nodeType":"YulFunctionCall","src":"11319:93:101"},"nativeSrc":"11319:93:101","nodeType":"YulExpressionStatement","src":"11319:93:101"},{"nativeSrc":"11421:19:101","nodeType":"YulAssignment","src":"11421:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11432:3:101","nodeType":"YulIdentifier","src":"11432:3:101"},{"kind":"number","nativeSrc":"11437:2:101","nodeType":"YulLiteral","src":"11437:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11428:3:101","nodeType":"YulIdentifier","src":"11428:3:101"},"nativeSrc":"11428:12:101","nodeType":"YulFunctionCall","src":"11428:12:101"},"variableNames":[{"name":"end","nativeSrc":"11421:3:101","nodeType":"YulIdentifier","src":"11421:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11080:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11214:3:101","nodeType":"YulTypedName","src":"11214:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11222:3:101","nodeType":"YulTypedName","src":"11222:3:101","type":""}],"src":"11080:366:101"},{"body":{"nativeSrc":"11623:248:101","nodeType":"YulBlock","src":"11623:248:101","statements":[{"nativeSrc":"11633:26:101","nodeType":"YulAssignment","src":"11633:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11645:9:101","nodeType":"YulIdentifier","src":"11645:9:101"},{"kind":"number","nativeSrc":"11656:2:101","nodeType":"YulLiteral","src":"11656:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11641:3:101","nodeType":"YulIdentifier","src":"11641:3:101"},"nativeSrc":"11641:18:101","nodeType":"YulFunctionCall","src":"11641:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11633:4:101","nodeType":"YulIdentifier","src":"11633:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11680:9:101","nodeType":"YulIdentifier","src":"11680:9:101"},{"kind":"number","nativeSrc":"11691:1:101","nodeType":"YulLiteral","src":"11691:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11676:3:101","nodeType":"YulIdentifier","src":"11676:3:101"},"nativeSrc":"11676:17:101","nodeType":"YulFunctionCall","src":"11676:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11699:4:101","nodeType":"YulIdentifier","src":"11699:4:101"},{"name":"headStart","nativeSrc":"11705:9:101","nodeType":"YulIdentifier","src":"11705:9:101"}],"functionName":{"name":"sub","nativeSrc":"11695:3:101","nodeType":"YulIdentifier","src":"11695:3:101"},"nativeSrc":"11695:20:101","nodeType":"YulFunctionCall","src":"11695:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11669:6:101","nodeType":"YulIdentifier","src":"11669:6:101"},"nativeSrc":"11669:47:101","nodeType":"YulFunctionCall","src":"11669:47:101"},"nativeSrc":"11669:47:101","nodeType":"YulExpressionStatement","src":"11669:47:101"},{"nativeSrc":"11725:139:101","nodeType":"YulAssignment","src":"11725:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11859:4:101","nodeType":"YulIdentifier","src":"11859:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11733:124:101","nodeType":"YulIdentifier","src":"11733:124:101"},"nativeSrc":"11733:131:101","nodeType":"YulFunctionCall","src":"11733:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11725:4:101","nodeType":"YulIdentifier","src":"11725:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11452:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11603:9:101","nodeType":"YulTypedName","src":"11603:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11618:4:101","nodeType":"YulTypedName","src":"11618:4:101","type":""}],"src":"11452:419:101"},{"body":{"nativeSrc":"11983:116:101","nodeType":"YulBlock","src":"11983:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12005:6:101","nodeType":"YulIdentifier","src":"12005:6:101"},{"kind":"number","nativeSrc":"12013:1:101","nodeType":"YulLiteral","src":"12013:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12001:3:101","nodeType":"YulIdentifier","src":"12001:3:101"},"nativeSrc":"12001:14:101","nodeType":"YulFunctionCall","src":"12001:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"12017:34:101","nodeType":"YulLiteral","src":"12017:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"11994:6:101","nodeType":"YulIdentifier","src":"11994:6:101"},"nativeSrc":"11994:58:101","nodeType":"YulFunctionCall","src":"11994:58:101"},"nativeSrc":"11994:58:101","nodeType":"YulExpressionStatement","src":"11994:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12073:6:101","nodeType":"YulIdentifier","src":"12073:6:101"},{"kind":"number","nativeSrc":"12081:2:101","nodeType":"YulLiteral","src":"12081:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12069:3:101","nodeType":"YulIdentifier","src":"12069:3:101"},"nativeSrc":"12069:15:101","nodeType":"YulFunctionCall","src":"12069:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"12086:5:101","nodeType":"YulLiteral","src":"12086:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"12062:6:101","nodeType":"YulIdentifier","src":"12062:6:101"},"nativeSrc":"12062:30:101","nodeType":"YulFunctionCall","src":"12062:30:101"},"nativeSrc":"12062:30:101","nodeType":"YulExpressionStatement","src":"12062:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"11877:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11975:6:101","nodeType":"YulTypedName","src":"11975:6:101","type":""}],"src":"11877:222:101"},{"body":{"nativeSrc":"12251:220:101","nodeType":"YulBlock","src":"12251:220:101","statements":[{"nativeSrc":"12261:74:101","nodeType":"YulAssignment","src":"12261:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12327:3:101","nodeType":"YulIdentifier","src":"12327:3:101"},{"kind":"number","nativeSrc":"12332:2:101","nodeType":"YulLiteral","src":"12332:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12268:58:101","nodeType":"YulIdentifier","src":"12268:58:101"},"nativeSrc":"12268:67:101","nodeType":"YulFunctionCall","src":"12268:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12261:3:101","nodeType":"YulIdentifier","src":"12261:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12433:3:101","nodeType":"YulIdentifier","src":"12433:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"12344:88:101","nodeType":"YulIdentifier","src":"12344:88:101"},"nativeSrc":"12344:93:101","nodeType":"YulFunctionCall","src":"12344:93:101"},"nativeSrc":"12344:93:101","nodeType":"YulExpressionStatement","src":"12344:93:101"},{"nativeSrc":"12446:19:101","nodeType":"YulAssignment","src":"12446:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12457:3:101","nodeType":"YulIdentifier","src":"12457:3:101"},{"kind":"number","nativeSrc":"12462:2:101","nodeType":"YulLiteral","src":"12462:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12453:3:101","nodeType":"YulIdentifier","src":"12453:3:101"},"nativeSrc":"12453:12:101","nodeType":"YulFunctionCall","src":"12453:12:101"},"variableNames":[{"name":"end","nativeSrc":"12446:3:101","nodeType":"YulIdentifier","src":"12446:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12105:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12239:3:101","nodeType":"YulTypedName","src":"12239:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12247:3:101","nodeType":"YulTypedName","src":"12247:3:101","type":""}],"src":"12105:366:101"},{"body":{"nativeSrc":"12648:248:101","nodeType":"YulBlock","src":"12648:248:101","statements":[{"nativeSrc":"12658:26:101","nodeType":"YulAssignment","src":"12658:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12670:9:101","nodeType":"YulIdentifier","src":"12670:9:101"},{"kind":"number","nativeSrc":"12681:2:101","nodeType":"YulLiteral","src":"12681:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12666:3:101","nodeType":"YulIdentifier","src":"12666:3:101"},"nativeSrc":"12666:18:101","nodeType":"YulFunctionCall","src":"12666:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12658:4:101","nodeType":"YulIdentifier","src":"12658:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12705:9:101","nodeType":"YulIdentifier","src":"12705:9:101"},{"kind":"number","nativeSrc":"12716:1:101","nodeType":"YulLiteral","src":"12716:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12701:3:101","nodeType":"YulIdentifier","src":"12701:3:101"},"nativeSrc":"12701:17:101","nodeType":"YulFunctionCall","src":"12701:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12724:4:101","nodeType":"YulIdentifier","src":"12724:4:101"},{"name":"headStart","nativeSrc":"12730:9:101","nodeType":"YulIdentifier","src":"12730:9:101"}],"functionName":{"name":"sub","nativeSrc":"12720:3:101","nodeType":"YulIdentifier","src":"12720:3:101"},"nativeSrc":"12720:20:101","nodeType":"YulFunctionCall","src":"12720:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12694:6:101","nodeType":"YulIdentifier","src":"12694:6:101"},"nativeSrc":"12694:47:101","nodeType":"YulFunctionCall","src":"12694:47:101"},"nativeSrc":"12694:47:101","nodeType":"YulExpressionStatement","src":"12694:47:101"},{"nativeSrc":"12750:139:101","nodeType":"YulAssignment","src":"12750:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12884:4:101","nodeType":"YulIdentifier","src":"12884:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12758:124:101","nodeType":"YulIdentifier","src":"12758:124:101"},"nativeSrc":"12758:131:101","nodeType":"YulFunctionCall","src":"12758:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12750:4:101","nodeType":"YulIdentifier","src":"12750:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12477:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12628:9:101","nodeType":"YulTypedName","src":"12628:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12643:4:101","nodeType":"YulTypedName","src":"12643:4:101","type":""}],"src":"12477:419:101"},{"body":{"nativeSrc":"13008:119:101","nodeType":"YulBlock","src":"13008:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13030:6:101","nodeType":"YulIdentifier","src":"13030:6:101"},{"kind":"number","nativeSrc":"13038:1:101","nodeType":"YulLiteral","src":"13038:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13026:3:101","nodeType":"YulIdentifier","src":"13026:3:101"},"nativeSrc":"13026:14:101","nodeType":"YulFunctionCall","src":"13026:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"13042:34:101","nodeType":"YulLiteral","src":"13042:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"13019:6:101","nodeType":"YulIdentifier","src":"13019:6:101"},"nativeSrc":"13019:58:101","nodeType":"YulFunctionCall","src":"13019:58:101"},"nativeSrc":"13019:58:101","nodeType":"YulExpressionStatement","src":"13019:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13098:6:101","nodeType":"YulIdentifier","src":"13098:6:101"},{"kind":"number","nativeSrc":"13106:2:101","nodeType":"YulLiteral","src":"13106:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13094:3:101","nodeType":"YulIdentifier","src":"13094:3:101"},"nativeSrc":"13094:15:101","nodeType":"YulFunctionCall","src":"13094:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"13111:8:101","nodeType":"YulLiteral","src":"13111:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"13087:6:101","nodeType":"YulIdentifier","src":"13087:6:101"},"nativeSrc":"13087:33:101","nodeType":"YulFunctionCall","src":"13087:33:101"},"nativeSrc":"13087:33:101","nodeType":"YulExpressionStatement","src":"13087:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"12902:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13000:6:101","nodeType":"YulTypedName","src":"13000:6:101","type":""}],"src":"12902:225:101"},{"body":{"nativeSrc":"13279:220:101","nodeType":"YulBlock","src":"13279:220:101","statements":[{"nativeSrc":"13289:74:101","nodeType":"YulAssignment","src":"13289:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13355:3:101","nodeType":"YulIdentifier","src":"13355:3:101"},{"kind":"number","nativeSrc":"13360:2:101","nodeType":"YulLiteral","src":"13360:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13296:58:101","nodeType":"YulIdentifier","src":"13296:58:101"},"nativeSrc":"13296:67:101","nodeType":"YulFunctionCall","src":"13296:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13289:3:101","nodeType":"YulIdentifier","src":"13289:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13461:3:101","nodeType":"YulIdentifier","src":"13461:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13372:88:101","nodeType":"YulIdentifier","src":"13372:88:101"},"nativeSrc":"13372:93:101","nodeType":"YulFunctionCall","src":"13372:93:101"},"nativeSrc":"13372:93:101","nodeType":"YulExpressionStatement","src":"13372:93:101"},{"nativeSrc":"13474:19:101","nodeType":"YulAssignment","src":"13474:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13485:3:101","nodeType":"YulIdentifier","src":"13485:3:101"},{"kind":"number","nativeSrc":"13490:2:101","nodeType":"YulLiteral","src":"13490:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13481:3:101","nodeType":"YulIdentifier","src":"13481:3:101"},"nativeSrc":"13481:12:101","nodeType":"YulFunctionCall","src":"13481:12:101"},"variableNames":[{"name":"end","nativeSrc":"13474:3:101","nodeType":"YulIdentifier","src":"13474:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13133:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13267:3:101","nodeType":"YulTypedName","src":"13267:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13275:3:101","nodeType":"YulTypedName","src":"13275:3:101","type":""}],"src":"13133:366:101"},{"body":{"nativeSrc":"13676:248:101","nodeType":"YulBlock","src":"13676:248:101","statements":[{"nativeSrc":"13686:26:101","nodeType":"YulAssignment","src":"13686:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13698:9:101","nodeType":"YulIdentifier","src":"13698:9:101"},{"kind":"number","nativeSrc":"13709:2:101","nodeType":"YulLiteral","src":"13709:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13694:3:101","nodeType":"YulIdentifier","src":"13694:3:101"},"nativeSrc":"13694:18:101","nodeType":"YulFunctionCall","src":"13694:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13686:4:101","nodeType":"YulIdentifier","src":"13686:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13733:9:101","nodeType":"YulIdentifier","src":"13733:9:101"},{"kind":"number","nativeSrc":"13744:1:101","nodeType":"YulLiteral","src":"13744:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13729:3:101","nodeType":"YulIdentifier","src":"13729:3:101"},"nativeSrc":"13729:17:101","nodeType":"YulFunctionCall","src":"13729:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13752:4:101","nodeType":"YulIdentifier","src":"13752:4:101"},{"name":"headStart","nativeSrc":"13758:9:101","nodeType":"YulIdentifier","src":"13758:9:101"}],"functionName":{"name":"sub","nativeSrc":"13748:3:101","nodeType":"YulIdentifier","src":"13748:3:101"},"nativeSrc":"13748:20:101","nodeType":"YulFunctionCall","src":"13748:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13722:6:101","nodeType":"YulIdentifier","src":"13722:6:101"},"nativeSrc":"13722:47:101","nodeType":"YulFunctionCall","src":"13722:47:101"},"nativeSrc":"13722:47:101","nodeType":"YulExpressionStatement","src":"13722:47:101"},{"nativeSrc":"13778:139:101","nodeType":"YulAssignment","src":"13778:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13912:4:101","nodeType":"YulIdentifier","src":"13912:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13786:124:101","nodeType":"YulIdentifier","src":"13786:124:101"},"nativeSrc":"13786:131:101","nodeType":"YulFunctionCall","src":"13786:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13778:4:101","nodeType":"YulIdentifier","src":"13778:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13505:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13656:9:101","nodeType":"YulTypedName","src":"13656:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13671:4:101","nodeType":"YulTypedName","src":"13671:4:101","type":""}],"src":"13505:419:101"},{"body":{"nativeSrc":"14036:75:101","nodeType":"YulBlock","src":"14036:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14058:6:101","nodeType":"YulIdentifier","src":"14058:6:101"},{"kind":"number","nativeSrc":"14066:1:101","nodeType":"YulLiteral","src":"14066:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14054:3:101","nodeType":"YulIdentifier","src":"14054:3:101"},"nativeSrc":"14054:14:101","nodeType":"YulFunctionCall","src":"14054:14:101"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"14070:33:101","nodeType":"YulLiteral","src":"14070:33:101","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"14047:6:101","nodeType":"YulIdentifier","src":"14047:6:101"},"nativeSrc":"14047:57:101","nodeType":"YulFunctionCall","src":"14047:57:101"},"nativeSrc":"14047:57:101","nodeType":"YulExpressionStatement","src":"14047:57:101"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"13930:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14028:6:101","nodeType":"YulTypedName","src":"14028:6:101","type":""}],"src":"13930:181:101"},{"body":{"nativeSrc":"14263:220:101","nodeType":"YulBlock","src":"14263:220:101","statements":[{"nativeSrc":"14273:74:101","nodeType":"YulAssignment","src":"14273:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14339:3:101","nodeType":"YulIdentifier","src":"14339:3:101"},{"kind":"number","nativeSrc":"14344:2:101","nodeType":"YulLiteral","src":"14344:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14280:58:101","nodeType":"YulIdentifier","src":"14280:58:101"},"nativeSrc":"14280:67:101","nodeType":"YulFunctionCall","src":"14280:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14273:3:101","nodeType":"YulIdentifier","src":"14273:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14445:3:101","nodeType":"YulIdentifier","src":"14445:3:101"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"14356:88:101","nodeType":"YulIdentifier","src":"14356:88:101"},"nativeSrc":"14356:93:101","nodeType":"YulFunctionCall","src":"14356:93:101"},"nativeSrc":"14356:93:101","nodeType":"YulExpressionStatement","src":"14356:93:101"},{"nativeSrc":"14458:19:101","nodeType":"YulAssignment","src":"14458:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14469:3:101","nodeType":"YulIdentifier","src":"14469:3:101"},{"kind":"number","nativeSrc":"14474:2:101","nodeType":"YulLiteral","src":"14474:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14465:3:101","nodeType":"YulIdentifier","src":"14465:3:101"},"nativeSrc":"14465:12:101","nodeType":"YulFunctionCall","src":"14465:12:101"},"variableNames":[{"name":"end","nativeSrc":"14458:3:101","nodeType":"YulIdentifier","src":"14458:3:101"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"14117:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14251:3:101","nodeType":"YulTypedName","src":"14251:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14259:3:101","nodeType":"YulTypedName","src":"14259:3:101","type":""}],"src":"14117:366:101"},{"body":{"nativeSrc":"14660:248:101","nodeType":"YulBlock","src":"14660:248:101","statements":[{"nativeSrc":"14670:26:101","nodeType":"YulAssignment","src":"14670:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14682:9:101","nodeType":"YulIdentifier","src":"14682:9:101"},{"kind":"number","nativeSrc":"14693:2:101","nodeType":"YulLiteral","src":"14693:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14678:3:101","nodeType":"YulIdentifier","src":"14678:3:101"},"nativeSrc":"14678:18:101","nodeType":"YulFunctionCall","src":"14678:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14670:4:101","nodeType":"YulIdentifier","src":"14670:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14717:9:101","nodeType":"YulIdentifier","src":"14717:9:101"},{"kind":"number","nativeSrc":"14728:1:101","nodeType":"YulLiteral","src":"14728:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14713:3:101","nodeType":"YulIdentifier","src":"14713:3:101"},"nativeSrc":"14713:17:101","nodeType":"YulFunctionCall","src":"14713:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14736:4:101","nodeType":"YulIdentifier","src":"14736:4:101"},{"name":"headStart","nativeSrc":"14742:9:101","nodeType":"YulIdentifier","src":"14742:9:101"}],"functionName":{"name":"sub","nativeSrc":"14732:3:101","nodeType":"YulIdentifier","src":"14732:3:101"},"nativeSrc":"14732:20:101","nodeType":"YulFunctionCall","src":"14732:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14706:6:101","nodeType":"YulIdentifier","src":"14706:6:101"},"nativeSrc":"14706:47:101","nodeType":"YulFunctionCall","src":"14706:47:101"},"nativeSrc":"14706:47:101","nodeType":"YulExpressionStatement","src":"14706:47:101"},{"nativeSrc":"14762:139:101","nodeType":"YulAssignment","src":"14762:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14896:4:101","nodeType":"YulIdentifier","src":"14896:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"14770:124:101","nodeType":"YulIdentifier","src":"14770:124:101"},"nativeSrc":"14770:131:101","nodeType":"YulFunctionCall","src":"14770:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14762:4:101","nodeType":"YulIdentifier","src":"14762:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14489:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14640:9:101","nodeType":"YulTypedName","src":"14640:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14655:4:101","nodeType":"YulTypedName","src":"14655:4:101","type":""}],"src":"14489:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80634511bf6b1161008857806395d89b411161006357806395d89b41146101a2578063a457c2d7146101aa578063a9059cbb146101bd578063dd62ed3e146101d0575f80fd5b80634511bf6b14610158578063579158971461016557806370a082311461017a575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806318160ddd1461010d57806323b872dd1461011e578063313ce567146101315780633950935114610145575b5f80fd5b6100d76101e3565b6040516100e49190610621565b60405180910390f35b6101006100fb366004610678565b610273565b6040516100e491906106bc565b6002545b6040516100e491906106d0565b61010061012c3660046106de565b61028c565b60055460ff165b6040516100e49190610733565b610100610153366004610678565b6102af565b6005546101389060ff1681565b610178610173366004610741565b6102d0565b005b610111610188366004610767565b6001600160a01b03165f9081526020819052604090205490565b6100d76102dd565b6101006101b8366004610678565b6102ec565b6101006101cb366004610678565b610331565b6101116101de366004610785565b61033e565b6060600380546101f2906107c9565b80601f016020809104026020016040519081016040528092919081815260200182805461021e906107c9565b80156102695780601f1061024057610100808354040283529160200191610269565b820191905f5260205f20905b81548152906001019060200180831161024c57829003601f168201915b5050505050905090565b5f33610280818585610368565b60019150505b92915050565b5f3361029985828561041b565b6102a4858585610463565b506001949350505050565b5f336102808185856102c1838361033e565b6102cb9190610809565b610368565b6102da3382610551565b50565b6060600480546101f2906107c9565b5f33816102f9828661033e565b9050838110156103245760405162461bcd60e51b815260040161031b90610860565b60405180910390fd5b6102a48286868403610368565b5f33610280818585610463565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661038e5760405162461bcd60e51b815260040161031b906108b0565b6001600160a01b0382166103b45760405162461bcd60e51b815260040161031b906108fe565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040e9085906106d0565b60405180910390a3505050565b5f610426848461033e565b90505f19811461045d57818110156104505760405162461bcd60e51b815260040161031b90610944565b61045d8484848403610368565b50505050565b6001600160a01b0383166104895760405162461bcd60e51b815260040161031b90610995565b6001600160a01b0382166104af5760405162461bcd60e51b815260040161031b906109e4565b6001600160a01b0383165f90815260208190526040902054818110156104e75760405162461bcd60e51b815260040161031b90610a36565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105449086906106d0565b60405180910390a361045d565b6001600160a01b0382166105775760405162461bcd60e51b815260040161031b90610a79565b8060025f8282546105889190610809565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105d99085906106d0565b60405180910390a35050565b8281835e505f910152565b5f6105f9825190565b8084526020840193506106108185602086016105e5565b601f01601f19169290920192915050565b6020808252810161063281846105f0565b9392505050565b5f6001600160a01b038216610286565b61065281610639565b81146102da575f80fd5b803561028681610649565b80610652565b803561028681610667565b5f806040838503121561068c5761068c5f80fd5b5f610697858561065c565b92505060206106a88582860161066d565b9150509250929050565b8015155b82525050565b6020810161028682846106b2565b806106b6565b6020810161028682846106ca565b5f805f606084860312156106f3576106f35f80fd5b5f6106fe868661065c565b935050602061070f8682870161065c565b92505060406107208682870161066d565b9150509250925092565b60ff81166106b6565b60208101610286828461072a565b5f60208284031215610754576107545f80fd5b5f61075f848461066d565b949350505050565b5f6020828403121561077a5761077a5f80fd5b5f61075f848461065c565b5f8060408385031215610799576107995f80fd5b5f6107a4858561065c565b92505060206106a88582860161065c565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806107dd57607f821691505b6020821081036107ef576107ef6107b5565b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610286576102866107f5565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b602080825281016102868161081c565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610859565b6020808252810161028681610870565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610859565b60208082528101610286816108c0565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b602080825281016102868161090e565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610859565b6020808252810161028681610954565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610859565b60208082528101610286816109a5565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610859565b60208082528101610286816109f4565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152915061093d565b6020808252810161028681610a4656fea2646970667358221220aa51770372fb65151eb1731da8fb445b1102858467957e40b1d2e3758b38ec8764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCB JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4511BF6B GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1D0 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4511BF6B EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x17A JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xED JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x145 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xD7 PUSH2 0x1E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x621 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x6BC JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x12C CALLDATASIZE PUSH1 0x4 PUSH2 0x6DE JUMP JUMPDEST PUSH2 0x28C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x733 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x153 CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x138 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x178 PUSH2 0x173 CALLDATASIZE PUSH1 0x4 PUSH2 0x741 JUMP JUMPDEST PUSH2 0x2D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x111 PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x767 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xD7 PUSH2 0x2DD JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x2EC JUMP JUMPDEST PUSH2 0x100 PUSH2 0x1CB CALLDATASIZE PUSH1 0x4 PUSH2 0x678 JUMP JUMPDEST PUSH2 0x331 JUMP JUMPDEST PUSH2 0x111 PUSH2 0x1DE CALLDATASIZE PUSH1 0x4 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1F2 SWAP1 PUSH2 0x7C9 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 0x21E SWAP1 PUSH2 0x7C9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x269 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x240 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x269 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x24C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x280 DUP2 DUP6 DUP6 PUSH2 0x368 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x299 DUP6 DUP3 DUP6 PUSH2 0x41B JUMP JUMPDEST PUSH2 0x2A4 DUP6 DUP6 DUP6 PUSH2 0x463 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x280 DUP2 DUP6 DUP6 PUSH2 0x2C1 DUP4 DUP4 PUSH2 0x33E JUMP JUMPDEST PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x809 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x2DA CALLER DUP3 PUSH2 0x551 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1F2 SWAP1 PUSH2 0x7C9 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2F9 DUP3 DUP7 PUSH2 0x33E JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x860 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A4 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x280 DUP2 DUP6 DUP6 PUSH2 0x463 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x8B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x40E SWAP1 DUP6 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x426 DUP5 DUP5 PUSH2 0x33E JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x45D JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x450 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x45D DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x489 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x995 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0x9E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x4E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0xA36 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x544 SWAP1 DUP7 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x45D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31B SWAP1 PUSH2 0xA79 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x809 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x5D9 SWAP1 DUP6 SWAP1 PUSH2 0x6D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x5F9 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x610 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x632 DUP2 DUP5 PUSH2 0x5F0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x286 JUMP JUMPDEST PUSH2 0x652 DUP2 PUSH2 0x639 JUMP JUMPDEST DUP2 EQ PUSH2 0x2DA JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x286 DUP2 PUSH2 0x649 JUMP JUMPDEST DUP1 PUSH2 0x652 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x286 DUP2 PUSH2 0x667 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x68C JUMPI PUSH2 0x68C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x697 DUP6 DUP6 PUSH2 0x65C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6A8 DUP6 DUP3 DUP7 ADD PUSH2 0x66D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x286 DUP3 DUP5 PUSH2 0x6B2 JUMP JUMPDEST DUP1 PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x286 DUP3 DUP5 PUSH2 0x6CA JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x6F3 JUMPI PUSH2 0x6F3 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x6FE DUP7 DUP7 PUSH2 0x65C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x70F DUP7 DUP3 DUP8 ADD PUSH2 0x65C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x720 DUP7 DUP3 DUP8 ADD PUSH2 0x66D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x286 DUP3 DUP5 PUSH2 0x72A JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x754 JUMPI PUSH2 0x754 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x75F DUP5 DUP5 PUSH2 0x66D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x77A JUMPI PUSH2 0x77A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x75F DUP5 DUP5 PUSH2 0x65C JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x799 JUMPI PUSH2 0x799 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x7A4 DUP6 DUP6 PUSH2 0x65C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6A8 DUP6 DUP3 DUP7 ADD PUSH2 0x65C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x7DD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x7EF JUMPI PUSH2 0x7EF PUSH2 0x7B5 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x286 JUMPI PUSH2 0x286 PUSH2 0x7F5 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x81C JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x870 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x8C0 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x954 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x9A5 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x859 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0x9F4 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x93D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x286 DUP2 PUSH2 0xA46 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA MLOAD PUSH24 0x372FB65151EB1731DA8FB445B1102858467957E40B1D2E3 PUSH22 0x8B38EC8764736F6C6343000819003300000000000000 ","sourceMap":"123:420:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;436:105:74:-;518:16;;;;436:105;;;;;;;:::i;5854:234:11:-;;;;;;:::i;:::-;;:::i;160:34:74:-;;;;;;;;;347:83;;;;;;:::i;:::-;;:::i;:::-;;3419:125:11;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:11;;5203:256;-1:-1:-1;;;;5203:256:11:o;5854:234::-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;347:83:74:-;398:25;404:10;416:6;398:5;:25::i;:::-;347:83;:::o;2369:102:11:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;8520:535;-1:-1:-1;;;;;8603:21:11;;8595:65;;;;-1:-1:-1;;;8595:65:11;;;;;;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:11;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;8520:535;;:::o;287:139:101:-;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;:::-;1143:86;923:313;-1:-1:-1;;;923:313:101:o;1701:96::-;1738:7;-1:-1:-1;;;;;1635:54:101;;1767:24;1569:126;1803:122;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1931:139;2002:20;;2031:33;2002:20;2031:33;:::i;2159:122::-;2250:5;2232:24;2076:77;2287:139;2358:20;;2387:33;2358:20;2387:33;:::i;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;123:420:74;;;2563:79:101;2683:1;2708:53;2753:7;2733:9;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;3008:109::-;2982:13;;2975:21;3089;3084:3;3077:34;3008:109;;:::o;3123:210::-;3248:2;3233:18;;3261:65;3237:9;3299:6;3261:65;:::i;3339:118::-;3444:5;3426:24;2076:77;3463:222;3594:2;3579:18;;3607:71;3583:9;3651:6;3607:71;:::i;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;123:420:74;;;3839:79:101;3959:1;3984:53;4029:7;4009:9;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4408:112::-;4391:4;4380:16;;4491:22;4316:86;4526:214;4653:2;4638:18;;4666:67;4642:9;4706:6;4666:67;:::i;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;123:420:74;;;4860:79:101;4980:1;5005:53;5050:7;5030:9;5005:53;:::i;:::-;4995:63;4746:329;-1:-1:-1;;;;4746:329:101:o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;123:420:74;;;5195:79:101;5315:1;5340:53;5385:7;5365:9;5340:53;:::i;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;123:420:74;;;5547:79:101;5667:1;5692:53;5737:7;5717:9;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;5896:180::-;-1:-1:-1;;;5941:1:101;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6163:1;6153:12;;6210:1;6200:12;;;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6133:269;6082:320;;;:::o;6408:180::-;-1:-1:-1;;;6453:1:101;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:191;6723:9;;;6745:10;;;6742:36;;;6758:18;;:::i;7021:366::-;7248:2;218:19;;7163:3;270:4;261:14;;6931:34;6908:58;;-1:-1:-1;;;6995:2:101;6983:15;;6976:32;7177:74;-1:-1:-1;7260:93:101;-1:-1:-1;7378:2:101;7369:12;;7021:366::o;7393:419::-;7597:2;7610:47;;;7582:18;;7674:131;7582:18;7674:131;:::i;8047:366::-;8274:2;218:19;;8189:3;270:4;261:14;;7958:34;7935:58;;-1:-1:-1;;;8022:2:101;8010:15;;8003:31;8203:74;-1:-1:-1;8286:93:101;7818:223;8419:419;8623:2;8636:47;;;8608:18;;8700:131;8608:18;8700:131;:::i;9071:366::-;9298:2;218:19;;9213:3;270:4;261:14;;8984:34;8961:58;;-1:-1:-1;;;9048:2:101;9036:15;;9029:29;9227:74;-1:-1:-1;9310:93:101;8844:221;9443:419;9647:2;9660:47;;;9632:18;;9724:131;9632:18;9724:131;:::i;10053:366::-;10280:2;218:19;;10195:3;270:4;261:14;;10008:31;9985:55;;10209:74;-1:-1:-1;10292:93:101;-1:-1:-1;10410:2:101;10401:12;;10053:366::o;10425:419::-;10629:2;10642:47;;;10614:18;;10706:131;10614:18;10706:131;:::i;11080:366::-;11307:2;218:19;;11222:3;270:4;261:14;;10990:34;10967:58;;-1:-1:-1;;;11054:2:101;11042:15;;11035:32;11236:74;-1:-1:-1;11319:93:101;10850:224;11452:419;11656:2;11669:47;;;11641:18;;11733:131;11641:18;11733:131;:::i;12105:366::-;12332:2;218:19;;12247:3;270:4;261:14;;12017:34;11994:58;;-1:-1:-1;;;12081:2:101;12069:15;;12062:30;12261:74;-1:-1:-1;12344:93:101;11877:222;12477:419;12681:2;12694:47;;;12666:18;;12758:131;12666:18;12758:131;:::i;13133:366::-;13360:2;218:19;;13275:3;270:4;261:14;;13042:34;13019:58;;-1:-1:-1;;;13106:2:101;13094:15;;13087:33;13289:74;-1:-1:-1;13372:93:101;12902:225;13505:419;13709:2;13722:47;;;13694:18;;13786:131;13694:18;13786:131;:::i;14117:366::-;14344:2;218:19;;14259:3;270:4;261:14;;14070:33;14047:57;;14273:74;-1:-1:-1;14356:93:101;13930:181;14489:419;14693:2;14706:47;;;14678:18;;14770:131;14678:18;14770:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"550200","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"2458","decimalsInternal()":"2409","decreaseAllowance(address,uint256)":"infinite","faucet(uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","symbol()":"infinite","totalSupply()":"2402","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decimalsInternal()":"4511bf6b","decreaseAllowance(address,uint256)":"a457c2d7","faucet(uint256)":"57915897","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimalsInternal\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"faucet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/BEP20Harness.sol\":\"BEP20Harness\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/test/BEP20Harness.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\ncontract BEP20Harness is ERC20 {\\n    uint8 public decimalsInternal = 18;\\n\\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) {\\n        decimalsInternal = decimals_;\\n    }\\n\\n    function faucet(uint256 amount) external {\\n        _mint(msg.sender, amount);\\n    }\\n\\n    function decimals() public view virtual override returns (uint8) {\\n        return decimalsInternal;\\n    }\\n}\\n\",\"keccak256\":\"0xb4b7d79a2e90fdd03b321d83628154f566cd23d0287b205828c855933909c0c4\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"contracts/test/BEP20Harness.sol:BEP20Harness","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"contracts/test/BEP20Harness.sol:BEP20Harness","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"contracts/test/BEP20Harness.sol:BEP20Harness","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"contracts/test/BEP20Harness.sol:BEP20Harness","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"contracts/test/BEP20Harness.sol:BEP20Harness","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":7540,"contract":"contracts/test/BEP20Harness.sol:BEP20Harness","label":"decimalsInternal","offset":0,"slot":"5","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockAnkrBNB.sol":{"MockAnkrBNB":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"faucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setSharesToBonds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sharesToBonds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"@_7617":{"entryPoint":null,"id":7617,"parameterSlots":3,"returnSlots":0},"@_msgSender_1908":{"entryPoint":112,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":116,"id":1205,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":340,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":403,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":462,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory":{"entryPoint":479,"id":null,"parameterSlots":2,"returnSlots":3},"allocate_memory":{"entryPoint":261,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":288,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":765,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":735,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":669,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":828,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":329,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":625,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":217,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":605,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":197,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":718,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":683,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":445,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:8980:101","nodeType":"YulBlock","src":"0:8980:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2613:43:101","nodeType":"YulBlock","src":"2613:43:101","statements":[{"nativeSrc":"2623:27:101","nodeType":"YulAssignment","src":"2623:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2638:5:101","nodeType":"YulIdentifier","src":"2638:5:101"},{"kind":"number","nativeSrc":"2645:4:101","nodeType":"YulLiteral","src":"2645:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2634:3:101","nodeType":"YulIdentifier","src":"2634:3:101"},"nativeSrc":"2634:16:101","nodeType":"YulFunctionCall","src":"2634:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2623:7:101","nodeType":"YulIdentifier","src":"2623:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2570:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulTypedName","src":"2595:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2605:7:101","nodeType":"YulTypedName","src":"2605:7:101","type":""}],"src":"2570:86:101"},{"body":{"nativeSrc":"2703:77:101","nodeType":"YulBlock","src":"2703:77:101","statements":[{"body":{"nativeSrc":"2758:16:101","nodeType":"YulBlock","src":"2758:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2767:1:101","nodeType":"YulLiteral","src":"2767:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2770:1:101","nodeType":"YulLiteral","src":"2770:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2760:6:101","nodeType":"YulIdentifier","src":"2760:6:101"},"nativeSrc":"2760:12:101","nodeType":"YulFunctionCall","src":"2760:12:101"},"nativeSrc":"2760:12:101","nodeType":"YulExpressionStatement","src":"2760:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2726:5:101","nodeType":"YulIdentifier","src":"2726:5:101"},{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2733:15:101","nodeType":"YulIdentifier","src":"2733:15:101"},"nativeSrc":"2733:22:101","nodeType":"YulFunctionCall","src":"2733:22:101"}],"functionName":{"name":"eq","nativeSrc":"2723:2:101","nodeType":"YulIdentifier","src":"2723:2:101"},"nativeSrc":"2723:33:101","nodeType":"YulFunctionCall","src":"2723:33:101"}],"functionName":{"name":"iszero","nativeSrc":"2716:6:101","nodeType":"YulIdentifier","src":"2716:6:101"},"nativeSrc":"2716:41:101","nodeType":"YulFunctionCall","src":"2716:41:101"},"nativeSrc":"2713:61:101","nodeType":"YulIf","src":"2713:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"2662:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2696:5:101","nodeType":"YulTypedName","src":"2696:5:101","type":""}],"src":"2662:118:101"},{"body":{"nativeSrc":"2847:78:101","nodeType":"YulBlock","src":"2847:78:101","statements":[{"nativeSrc":"2857:22:101","nodeType":"YulAssignment","src":"2857:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"mload","nativeSrc":"2866:5:101","nodeType":"YulIdentifier","src":"2866:5:101"},"nativeSrc":"2866:13:101","nodeType":"YulFunctionCall","src":"2866:13:101"},"variableNames":[{"name":"value","nativeSrc":"2857:5:101","nodeType":"YulIdentifier","src":"2857:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2913:5:101","nodeType":"YulIdentifier","src":"2913:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2888:24:101","nodeType":"YulIdentifier","src":"2888:24:101"},"nativeSrc":"2888:31:101","nodeType":"YulFunctionCall","src":"2888:31:101"},"nativeSrc":"2888:31:101","nodeType":"YulExpressionStatement","src":"2888:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2786:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2825:6:101","nodeType":"YulTypedName","src":"2825:6:101","type":""},{"name":"end","nativeSrc":"2833:3:101","nodeType":"YulTypedName","src":"2833:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2841:5:101","nodeType":"YulTypedName","src":"2841:5:101","type":""}],"src":"2786:139:101"},{"body":{"nativeSrc":"3060:876:101","nodeType":"YulBlock","src":"3060:876:101","statements":[{"body":{"nativeSrc":"3106:83:101","nodeType":"YulBlock","src":"3106:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3108:77:101","nodeType":"YulIdentifier","src":"3108:77:101"},"nativeSrc":"3108:79:101","nodeType":"YulFunctionCall","src":"3108:79:101"},"nativeSrc":"3108:79:101","nodeType":"YulExpressionStatement","src":"3108:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3081:7:101","nodeType":"YulIdentifier","src":"3081:7:101"},{"name":"headStart","nativeSrc":"3090:9:101","nodeType":"YulIdentifier","src":"3090:9:101"}],"functionName":{"name":"sub","nativeSrc":"3077:3:101","nodeType":"YulIdentifier","src":"3077:3:101"},"nativeSrc":"3077:23:101","nodeType":"YulFunctionCall","src":"3077:23:101"},{"kind":"number","nativeSrc":"3102:2:101","nodeType":"YulLiteral","src":"3102:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3073:3:101","nodeType":"YulIdentifier","src":"3073:3:101"},"nativeSrc":"3073:32:101","nodeType":"YulFunctionCall","src":"3073:32:101"},"nativeSrc":"3070:119:101","nodeType":"YulIf","src":"3070:119:101"},{"nativeSrc":"3199:291:101","nodeType":"YulBlock","src":"3199:291:101","statements":[{"nativeSrc":"3214:38:101","nodeType":"YulVariableDeclaration","src":"3214:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3238:9:101","nodeType":"YulIdentifier","src":"3238:9:101"},{"kind":"number","nativeSrc":"3249:1:101","nodeType":"YulLiteral","src":"3249:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3234:3:101","nodeType":"YulIdentifier","src":"3234:3:101"},"nativeSrc":"3234:17:101","nodeType":"YulFunctionCall","src":"3234:17:101"}],"functionName":{"name":"mload","nativeSrc":"3228:5:101","nodeType":"YulIdentifier","src":"3228:5:101"},"nativeSrc":"3228:24:101","nodeType":"YulFunctionCall","src":"3228:24:101"},"variables":[{"name":"offset","nativeSrc":"3218:6:101","nodeType":"YulTypedName","src":"3218:6:101","type":""}]},{"body":{"nativeSrc":"3299:83:101","nodeType":"YulBlock","src":"3299:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3301:77:101","nodeType":"YulIdentifier","src":"3301:77:101"},"nativeSrc":"3301:79:101","nodeType":"YulFunctionCall","src":"3301:79:101"},"nativeSrc":"3301:79:101","nodeType":"YulExpressionStatement","src":"3301:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3271:6:101","nodeType":"YulIdentifier","src":"3271:6:101"},{"kind":"number","nativeSrc":"3279:18:101","nodeType":"YulLiteral","src":"3279:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3268:2:101","nodeType":"YulIdentifier","src":"3268:2:101"},"nativeSrc":"3268:30:101","nodeType":"YulFunctionCall","src":"3268:30:101"},"nativeSrc":"3265:117:101","nodeType":"YulIf","src":"3265:117:101"},{"nativeSrc":"3396:84:101","nodeType":"YulAssignment","src":"3396:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3452:9:101","nodeType":"YulIdentifier","src":"3452:9:101"},{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulIdentifier","src":"3463:6:101"}],"functionName":{"name":"add","nativeSrc":"3448:3:101","nodeType":"YulIdentifier","src":"3448:3:101"},"nativeSrc":"3448:22:101","nodeType":"YulFunctionCall","src":"3448:22:101"},{"name":"dataEnd","nativeSrc":"3472:7:101","nodeType":"YulIdentifier","src":"3472:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3406:41:101","nodeType":"YulIdentifier","src":"3406:41:101"},"nativeSrc":"3406:74:101","nodeType":"YulFunctionCall","src":"3406:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3396:6:101","nodeType":"YulIdentifier","src":"3396:6:101"}]}]},{"nativeSrc":"3500:292:101","nodeType":"YulBlock","src":"3500:292:101","statements":[{"nativeSrc":"3515:39:101","nodeType":"YulVariableDeclaration","src":"3515:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3539:9:101","nodeType":"YulIdentifier","src":"3539:9:101"},{"kind":"number","nativeSrc":"3550:2:101","nodeType":"YulLiteral","src":"3550:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3535:3:101","nodeType":"YulIdentifier","src":"3535:3:101"},"nativeSrc":"3535:18:101","nodeType":"YulFunctionCall","src":"3535:18:101"}],"functionName":{"name":"mload","nativeSrc":"3529:5:101","nodeType":"YulIdentifier","src":"3529:5:101"},"nativeSrc":"3529:25:101","nodeType":"YulFunctionCall","src":"3529:25:101"},"variables":[{"name":"offset","nativeSrc":"3519:6:101","nodeType":"YulTypedName","src":"3519:6:101","type":""}]},{"body":{"nativeSrc":"3601:83:101","nodeType":"YulBlock","src":"3601:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3603:77:101","nodeType":"YulIdentifier","src":"3603:77:101"},"nativeSrc":"3603:79:101","nodeType":"YulFunctionCall","src":"3603:79:101"},"nativeSrc":"3603:79:101","nodeType":"YulExpressionStatement","src":"3603:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3573:6:101","nodeType":"YulIdentifier","src":"3573:6:101"},{"kind":"number","nativeSrc":"3581:18:101","nodeType":"YulLiteral","src":"3581:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3570:2:101","nodeType":"YulIdentifier","src":"3570:2:101"},"nativeSrc":"3570:30:101","nodeType":"YulFunctionCall","src":"3570:30:101"},"nativeSrc":"3567:117:101","nodeType":"YulIf","src":"3567:117:101"},{"nativeSrc":"3698:84:101","nodeType":"YulAssignment","src":"3698:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3754:9:101","nodeType":"YulIdentifier","src":"3754:9:101"},{"name":"offset","nativeSrc":"3765:6:101","nodeType":"YulIdentifier","src":"3765:6:101"}],"functionName":{"name":"add","nativeSrc":"3750:3:101","nodeType":"YulIdentifier","src":"3750:3:101"},"nativeSrc":"3750:22:101","nodeType":"YulFunctionCall","src":"3750:22:101"},{"name":"dataEnd","nativeSrc":"3774:7:101","nodeType":"YulIdentifier","src":"3774:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3708:41:101","nodeType":"YulIdentifier","src":"3708:41:101"},"nativeSrc":"3708:74:101","nodeType":"YulFunctionCall","src":"3708:74:101"},"variableNames":[{"name":"value1","nativeSrc":"3698:6:101","nodeType":"YulIdentifier","src":"3698:6:101"}]}]},{"nativeSrc":"3802:127:101","nodeType":"YulBlock","src":"3802:127:101","statements":[{"nativeSrc":"3817:16:101","nodeType":"YulVariableDeclaration","src":"3817:16:101","value":{"kind":"number","nativeSrc":"3831:2:101","nodeType":"YulLiteral","src":"3831:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3821:6:101","nodeType":"YulTypedName","src":"3821:6:101","type":""}]},{"nativeSrc":"3847:72:101","nodeType":"YulAssignment","src":"3847:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3891:9:101","nodeType":"YulIdentifier","src":"3891:9:101"},{"name":"offset","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"}],"functionName":{"name":"add","nativeSrc":"3887:3:101","nodeType":"YulIdentifier","src":"3887:3:101"},"nativeSrc":"3887:22:101","nodeType":"YulFunctionCall","src":"3887:22:101"},{"name":"dataEnd","nativeSrc":"3911:7:101","nodeType":"YulIdentifier","src":"3911:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"3857:29:101","nodeType":"YulIdentifier","src":"3857:29:101"},"nativeSrc":"3857:62:101","nodeType":"YulFunctionCall","src":"3857:62:101"},"variableNames":[{"name":"value2","nativeSrc":"3847:6:101","nodeType":"YulIdentifier","src":"3847:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory","nativeSrc":"2931:1005:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3014:9:101","nodeType":"YulTypedName","src":"3014:9:101","type":""},{"name":"dataEnd","nativeSrc":"3025:7:101","nodeType":"YulTypedName","src":"3025:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3037:6:101","nodeType":"YulTypedName","src":"3037:6:101","type":""},{"name":"value1","nativeSrc":"3045:6:101","nodeType":"YulTypedName","src":"3045:6:101","type":""},{"name":"value2","nativeSrc":"3053:6:101","nodeType":"YulTypedName","src":"3053:6:101","type":""}],"src":"2931:1005:101"},{"body":{"nativeSrc":"4001:40:101","nodeType":"YulBlock","src":"4001:40:101","statements":[{"nativeSrc":"4012:22:101","nodeType":"YulAssignment","src":"4012:22:101","value":{"arguments":[{"name":"value","nativeSrc":"4028:5:101","nodeType":"YulIdentifier","src":"4028:5:101"}],"functionName":{"name":"mload","nativeSrc":"4022:5:101","nodeType":"YulIdentifier","src":"4022:5:101"},"nativeSrc":"4022:12:101","nodeType":"YulFunctionCall","src":"4022:12:101"},"variableNames":[{"name":"length","nativeSrc":"4012:6:101","nodeType":"YulIdentifier","src":"4012:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3942:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3984:5:101","nodeType":"YulTypedName","src":"3984:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3994:6:101","nodeType":"YulTypedName","src":"3994:6:101","type":""}],"src":"3942:99:101"},{"body":{"nativeSrc":"4075:152:101","nodeType":"YulBlock","src":"4075:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4092:1:101","nodeType":"YulLiteral","src":"4092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4095:77:101","nodeType":"YulLiteral","src":"4095:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4085:6:101","nodeType":"YulIdentifier","src":"4085:6:101"},"nativeSrc":"4085:88:101","nodeType":"YulFunctionCall","src":"4085:88:101"},"nativeSrc":"4085:88:101","nodeType":"YulExpressionStatement","src":"4085:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4189:1:101","nodeType":"YulLiteral","src":"4189:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4192:4:101","nodeType":"YulLiteral","src":"4192:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4182:6:101","nodeType":"YulIdentifier","src":"4182:6:101"},"nativeSrc":"4182:15:101","nodeType":"YulFunctionCall","src":"4182:15:101"},"nativeSrc":"4182:15:101","nodeType":"YulExpressionStatement","src":"4182:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4213:1:101","nodeType":"YulLiteral","src":"4213:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4216:4:101","nodeType":"YulLiteral","src":"4216:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},"nativeSrc":"4206:15:101","nodeType":"YulFunctionCall","src":"4206:15:101"},"nativeSrc":"4206:15:101","nodeType":"YulExpressionStatement","src":"4206:15:101"}]},"name":"panic_error_0x22","nativeSrc":"4047:180:101","nodeType":"YulFunctionDefinition","src":"4047:180:101"},{"body":{"nativeSrc":"4284:269:101","nodeType":"YulBlock","src":"4284:269:101","statements":[{"nativeSrc":"4294:22:101","nodeType":"YulAssignment","src":"4294:22:101","value":{"arguments":[{"name":"data","nativeSrc":"4308:4:101","nodeType":"YulIdentifier","src":"4308:4:101"},{"kind":"number","nativeSrc":"4314:1:101","nodeType":"YulLiteral","src":"4314:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4304:3:101","nodeType":"YulIdentifier","src":"4304:3:101"},"nativeSrc":"4304:12:101","nodeType":"YulFunctionCall","src":"4304:12:101"},"variableNames":[{"name":"length","nativeSrc":"4294:6:101","nodeType":"YulIdentifier","src":"4294:6:101"}]},{"nativeSrc":"4325:38:101","nodeType":"YulVariableDeclaration","src":"4325:38:101","value":{"arguments":[{"name":"data","nativeSrc":"4355:4:101","nodeType":"YulIdentifier","src":"4355:4:101"},{"kind":"number","nativeSrc":"4361:1:101","nodeType":"YulLiteral","src":"4361:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4351:3:101","nodeType":"YulIdentifier","src":"4351:3:101"},"nativeSrc":"4351:12:101","nodeType":"YulFunctionCall","src":"4351:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4329:18:101","nodeType":"YulTypedName","src":"4329:18:101","type":""}]},{"body":{"nativeSrc":"4402:51:101","nodeType":"YulBlock","src":"4402:51:101","statements":[{"nativeSrc":"4416:27:101","nodeType":"YulAssignment","src":"4416:27:101","value":{"arguments":[{"name":"length","nativeSrc":"4430:6:101","nodeType":"YulIdentifier","src":"4430:6:101"},{"kind":"number","nativeSrc":"4438:4:101","nodeType":"YulLiteral","src":"4438:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4426:3:101","nodeType":"YulIdentifier","src":"4426:3:101"},"nativeSrc":"4426:17:101","nodeType":"YulFunctionCall","src":"4426:17:101"},"variableNames":[{"name":"length","nativeSrc":"4416:6:101","nodeType":"YulIdentifier","src":"4416:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4382:18:101","nodeType":"YulIdentifier","src":"4382:18:101"}],"functionName":{"name":"iszero","nativeSrc":"4375:6:101","nodeType":"YulIdentifier","src":"4375:6:101"},"nativeSrc":"4375:26:101","nodeType":"YulFunctionCall","src":"4375:26:101"},"nativeSrc":"4372:81:101","nodeType":"YulIf","src":"4372:81:101"},{"body":{"nativeSrc":"4505:42:101","nodeType":"YulBlock","src":"4505:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4519:16:101","nodeType":"YulIdentifier","src":"4519:16:101"},"nativeSrc":"4519:18:101","nodeType":"YulFunctionCall","src":"4519:18:101"},"nativeSrc":"4519:18:101","nodeType":"YulExpressionStatement","src":"4519:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4469:18:101","nodeType":"YulIdentifier","src":"4469:18:101"},{"arguments":[{"name":"length","nativeSrc":"4492:6:101","nodeType":"YulIdentifier","src":"4492:6:101"},{"kind":"number","nativeSrc":"4500:2:101","nodeType":"YulLiteral","src":"4500:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4489:2:101","nodeType":"YulIdentifier","src":"4489:2:101"},"nativeSrc":"4489:14:101","nodeType":"YulFunctionCall","src":"4489:14:101"}],"functionName":{"name":"eq","nativeSrc":"4466:2:101","nodeType":"YulIdentifier","src":"4466:2:101"},"nativeSrc":"4466:38:101","nodeType":"YulFunctionCall","src":"4466:38:101"},"nativeSrc":"4463:84:101","nodeType":"YulIf","src":"4463:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"4233:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4268:4:101","nodeType":"YulTypedName","src":"4268:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4277:6:101","nodeType":"YulTypedName","src":"4277:6:101","type":""}],"src":"4233:320:101"},{"body":{"nativeSrc":"4613:87:101","nodeType":"YulBlock","src":"4613:87:101","statements":[{"nativeSrc":"4623:11:101","nodeType":"YulAssignment","src":"4623:11:101","value":{"name":"ptr","nativeSrc":"4631:3:101","nodeType":"YulIdentifier","src":"4631:3:101"},"variableNames":[{"name":"data","nativeSrc":"4623:4:101","nodeType":"YulIdentifier","src":"4623:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4651:1:101","nodeType":"YulLiteral","src":"4651:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"4654:3:101","nodeType":"YulIdentifier","src":"4654:3:101"}],"functionName":{"name":"mstore","nativeSrc":"4644:6:101","nodeType":"YulIdentifier","src":"4644:6:101"},"nativeSrc":"4644:14:101","nodeType":"YulFunctionCall","src":"4644:14:101"},"nativeSrc":"4644:14:101","nodeType":"YulExpressionStatement","src":"4644:14:101"},{"nativeSrc":"4667:26:101","nodeType":"YulAssignment","src":"4667:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"4685:1:101","nodeType":"YulLiteral","src":"4685:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4688:4:101","nodeType":"YulLiteral","src":"4688:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4675:9:101","nodeType":"YulIdentifier","src":"4675:9:101"},"nativeSrc":"4675:18:101","nodeType":"YulFunctionCall","src":"4675:18:101"},"variableNames":[{"name":"data","nativeSrc":"4667:4:101","nodeType":"YulIdentifier","src":"4667:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4559:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4600:3:101","nodeType":"YulTypedName","src":"4600:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4608:4:101","nodeType":"YulTypedName","src":"4608:4:101","type":""}],"src":"4559:141:101"},{"body":{"nativeSrc":"4750:49:101","nodeType":"YulBlock","src":"4750:49:101","statements":[{"nativeSrc":"4760:33:101","nodeType":"YulAssignment","src":"4760:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4778:5:101","nodeType":"YulIdentifier","src":"4778:5:101"},{"kind":"number","nativeSrc":"4785:2:101","nodeType":"YulLiteral","src":"4785:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4774:3:101","nodeType":"YulIdentifier","src":"4774:3:101"},"nativeSrc":"4774:14:101","nodeType":"YulFunctionCall","src":"4774:14:101"},{"kind":"number","nativeSrc":"4790:2:101","nodeType":"YulLiteral","src":"4790:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4770:3:101","nodeType":"YulIdentifier","src":"4770:3:101"},"nativeSrc":"4770:23:101","nodeType":"YulFunctionCall","src":"4770:23:101"},"variableNames":[{"name":"result","nativeSrc":"4760:6:101","nodeType":"YulIdentifier","src":"4760:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4706:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4733:5:101","nodeType":"YulTypedName","src":"4733:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4743:6:101","nodeType":"YulTypedName","src":"4743:6:101","type":""}],"src":"4706:93:101"},{"body":{"nativeSrc":"4858:54:101","nodeType":"YulBlock","src":"4858:54:101","statements":[{"nativeSrc":"4868:37:101","nodeType":"YulAssignment","src":"4868:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"4893:4:101","nodeType":"YulIdentifier","src":"4893:4:101"},{"name":"value","nativeSrc":"4899:5:101","nodeType":"YulIdentifier","src":"4899:5:101"}],"functionName":{"name":"shl","nativeSrc":"4889:3:101","nodeType":"YulIdentifier","src":"4889:3:101"},"nativeSrc":"4889:16:101","nodeType":"YulFunctionCall","src":"4889:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"4868:8:101","nodeType":"YulIdentifier","src":"4868:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"4805:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4833:4:101","nodeType":"YulTypedName","src":"4833:4:101","type":""},{"name":"value","nativeSrc":"4839:5:101","nodeType":"YulTypedName","src":"4839:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4849:8:101","nodeType":"YulTypedName","src":"4849:8:101","type":""}],"src":"4805:107:101"},{"body":{"nativeSrc":"4994:317:101","nodeType":"YulBlock","src":"4994:317:101","statements":[{"nativeSrc":"5004:35:101","nodeType":"YulVariableDeclaration","src":"5004:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5025:10:101","nodeType":"YulIdentifier","src":"5025:10:101"},{"kind":"number","nativeSrc":"5037:1:101","nodeType":"YulLiteral","src":"5037:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5021:3:101","nodeType":"YulIdentifier","src":"5021:3:101"},"nativeSrc":"5021:18:101","nodeType":"YulFunctionCall","src":"5021:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"5008:9:101","nodeType":"YulTypedName","src":"5008:9:101","type":""}]},{"nativeSrc":"5048:109:101","nodeType":"YulVariableDeclaration","src":"5048:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5079:9:101","nodeType":"YulIdentifier","src":"5079:9:101"},{"kind":"number","nativeSrc":"5090:66:101","nodeType":"YulLiteral","src":"5090:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5060:18:101","nodeType":"YulIdentifier","src":"5060:18:101"},"nativeSrc":"5060:97:101","nodeType":"YulFunctionCall","src":"5060:97:101"},"variables":[{"name":"mask","nativeSrc":"5052:4:101","nodeType":"YulTypedName","src":"5052:4:101","type":""}]},{"nativeSrc":"5166:51:101","nodeType":"YulAssignment","src":"5166:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5197:9:101","nodeType":"YulIdentifier","src":"5197:9:101"},{"name":"toInsert","nativeSrc":"5208:8:101","nodeType":"YulIdentifier","src":"5208:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5178:18:101","nodeType":"YulIdentifier","src":"5178:18:101"},"nativeSrc":"5178:39:101","nodeType":"YulFunctionCall","src":"5178:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"5166:8:101","nodeType":"YulIdentifier","src":"5166:8:101"}]},{"nativeSrc":"5226:30:101","nodeType":"YulAssignment","src":"5226:30:101","value":{"arguments":[{"name":"value","nativeSrc":"5239:5:101","nodeType":"YulIdentifier","src":"5239:5:101"},{"arguments":[{"name":"mask","nativeSrc":"5250:4:101","nodeType":"YulIdentifier","src":"5250:4:101"}],"functionName":{"name":"not","nativeSrc":"5246:3:101","nodeType":"YulIdentifier","src":"5246:3:101"},"nativeSrc":"5246:9:101","nodeType":"YulFunctionCall","src":"5246:9:101"}],"functionName":{"name":"and","nativeSrc":"5235:3:101","nodeType":"YulIdentifier","src":"5235:3:101"},"nativeSrc":"5235:21:101","nodeType":"YulFunctionCall","src":"5235:21:101"},"variableNames":[{"name":"value","nativeSrc":"5226:5:101","nodeType":"YulIdentifier","src":"5226:5:101"}]},{"nativeSrc":"5265:40:101","nodeType":"YulAssignment","src":"5265:40:101","value":{"arguments":[{"name":"value","nativeSrc":"5278:5:101","nodeType":"YulIdentifier","src":"5278:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"5289:8:101","nodeType":"YulIdentifier","src":"5289:8:101"},{"name":"mask","nativeSrc":"5299:4:101","nodeType":"YulIdentifier","src":"5299:4:101"}],"functionName":{"name":"and","nativeSrc":"5285:3:101","nodeType":"YulIdentifier","src":"5285:3:101"},"nativeSrc":"5285:19:101","nodeType":"YulFunctionCall","src":"5285:19:101"}],"functionName":{"name":"or","nativeSrc":"5275:2:101","nodeType":"YulIdentifier","src":"5275:2:101"},"nativeSrc":"5275:30:101","nodeType":"YulFunctionCall","src":"5275:30:101"},"variableNames":[{"name":"result","nativeSrc":"5265:6:101","nodeType":"YulIdentifier","src":"5265:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"4918:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4955:5:101","nodeType":"YulTypedName","src":"4955:5:101","type":""},{"name":"shiftBytes","nativeSrc":"4962:10:101","nodeType":"YulTypedName","src":"4962:10:101","type":""},{"name":"toInsert","nativeSrc":"4974:8:101","nodeType":"YulTypedName","src":"4974:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4987:6:101","nodeType":"YulTypedName","src":"4987:6:101","type":""}],"src":"4918:393:101"},{"body":{"nativeSrc":"5362:32:101","nodeType":"YulBlock","src":"5362:32:101","statements":[{"nativeSrc":"5372:16:101","nodeType":"YulAssignment","src":"5372:16:101","value":{"name":"value","nativeSrc":"5383:5:101","nodeType":"YulIdentifier","src":"5383:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5372:7:101","nodeType":"YulIdentifier","src":"5372:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5317:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5344:5:101","nodeType":"YulTypedName","src":"5344:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5354:7:101","nodeType":"YulTypedName","src":"5354:7:101","type":""}],"src":"5317:77:101"},{"body":{"nativeSrc":"5432:28:101","nodeType":"YulBlock","src":"5432:28:101","statements":[{"nativeSrc":"5442:12:101","nodeType":"YulAssignment","src":"5442:12:101","value":{"name":"value","nativeSrc":"5449:5:101","nodeType":"YulIdentifier","src":"5449:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"}]}]},"name":"identity","nativeSrc":"5400:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5418:5:101","nodeType":"YulTypedName","src":"5418:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5428:3:101","nodeType":"YulTypedName","src":"5428:3:101","type":""}],"src":"5400:60:101"},{"body":{"nativeSrc":"5526:82:101","nodeType":"YulBlock","src":"5526:82:101","statements":[{"nativeSrc":"5536:66:101","nodeType":"YulAssignment","src":"5536:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5594:5:101","nodeType":"YulIdentifier","src":"5594:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5576:17:101","nodeType":"YulIdentifier","src":"5576:17:101"},"nativeSrc":"5576:24:101","nodeType":"YulFunctionCall","src":"5576:24:101"}],"functionName":{"name":"identity","nativeSrc":"5567:8:101","nodeType":"YulIdentifier","src":"5567:8:101"},"nativeSrc":"5567:34:101","nodeType":"YulFunctionCall","src":"5567:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5549:17:101","nodeType":"YulIdentifier","src":"5549:17:101"},"nativeSrc":"5549:53:101","nodeType":"YulFunctionCall","src":"5549:53:101"},"variableNames":[{"name":"converted","nativeSrc":"5536:9:101","nodeType":"YulIdentifier","src":"5536:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5466:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5506:5:101","nodeType":"YulTypedName","src":"5506:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5516:9:101","nodeType":"YulTypedName","src":"5516:9:101","type":""}],"src":"5466:142:101"},{"body":{"nativeSrc":"5661:28:101","nodeType":"YulBlock","src":"5661:28:101","statements":[{"nativeSrc":"5671:12:101","nodeType":"YulAssignment","src":"5671:12:101","value":{"name":"value","nativeSrc":"5678:5:101","nodeType":"YulIdentifier","src":"5678:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5671:3:101","nodeType":"YulIdentifier","src":"5671:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5614:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5647:5:101","nodeType":"YulTypedName","src":"5647:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5657:3:101","nodeType":"YulTypedName","src":"5657:3:101","type":""}],"src":"5614:75:101"},{"body":{"nativeSrc":"5771:193:101","nodeType":"YulBlock","src":"5771:193:101","statements":[{"nativeSrc":"5781:63:101","nodeType":"YulVariableDeclaration","src":"5781:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"5836:7:101","nodeType":"YulIdentifier","src":"5836:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5805:30:101","nodeType":"YulIdentifier","src":"5805:30:101"},"nativeSrc":"5805:39:101","nodeType":"YulFunctionCall","src":"5805:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"5785:16:101","nodeType":"YulTypedName","src":"5785:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5860:4:101","nodeType":"YulIdentifier","src":"5860:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5900:4:101","nodeType":"YulIdentifier","src":"5900:4:101"}],"functionName":{"name":"sload","nativeSrc":"5894:5:101","nodeType":"YulIdentifier","src":"5894:5:101"},"nativeSrc":"5894:11:101","nodeType":"YulFunctionCall","src":"5894:11:101"},{"name":"offset","nativeSrc":"5907:6:101","nodeType":"YulIdentifier","src":"5907:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"5939:16:101","nodeType":"YulIdentifier","src":"5939:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"5915:23:101","nodeType":"YulIdentifier","src":"5915:23:101"},"nativeSrc":"5915:41:101","nodeType":"YulFunctionCall","src":"5915:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5866:27:101","nodeType":"YulIdentifier","src":"5866:27:101"},"nativeSrc":"5866:91:101","nodeType":"YulFunctionCall","src":"5866:91:101"}],"functionName":{"name":"sstore","nativeSrc":"5853:6:101","nodeType":"YulIdentifier","src":"5853:6:101"},"nativeSrc":"5853:105:101","nodeType":"YulFunctionCall","src":"5853:105:101"},"nativeSrc":"5853:105:101","nodeType":"YulExpressionStatement","src":"5853:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5695:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5748:4:101","nodeType":"YulTypedName","src":"5748:4:101","type":""},{"name":"offset","nativeSrc":"5754:6:101","nodeType":"YulTypedName","src":"5754:6:101","type":""},{"name":"value_0","nativeSrc":"5762:7:101","nodeType":"YulTypedName","src":"5762:7:101","type":""}],"src":"5695:269:101"},{"body":{"nativeSrc":"6019:24:101","nodeType":"YulBlock","src":"6019:24:101","statements":[{"nativeSrc":"6029:8:101","nodeType":"YulAssignment","src":"6029:8:101","value":{"kind":"number","nativeSrc":"6036:1:101","nodeType":"YulLiteral","src":"6036:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6029:3:101","nodeType":"YulIdentifier","src":"6029:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"5970:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6015:3:101","nodeType":"YulTypedName","src":"6015:3:101","type":""}],"src":"5970:73:101"},{"body":{"nativeSrc":"6102:136:101","nodeType":"YulBlock","src":"6102:136:101","statements":[{"nativeSrc":"6112:46:101","nodeType":"YulVariableDeclaration","src":"6112:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6126:30:101","nodeType":"YulIdentifier","src":"6126:30:101"},"nativeSrc":"6126:32:101","nodeType":"YulFunctionCall","src":"6126:32:101"},"variables":[{"name":"zero_0","nativeSrc":"6116:6:101","nodeType":"YulTypedName","src":"6116:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6211:4:101","nodeType":"YulIdentifier","src":"6211:4:101"},{"name":"offset","nativeSrc":"6217:6:101","nodeType":"YulIdentifier","src":"6217:6:101"},{"name":"zero_0","nativeSrc":"6225:6:101","nodeType":"YulIdentifier","src":"6225:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6167:43:101","nodeType":"YulIdentifier","src":"6167:43:101"},"nativeSrc":"6167:65:101","nodeType":"YulFunctionCall","src":"6167:65:101"},"nativeSrc":"6167:65:101","nodeType":"YulExpressionStatement","src":"6167:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6049:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6088:4:101","nodeType":"YulTypedName","src":"6088:4:101","type":""},{"name":"offset","nativeSrc":"6094:6:101","nodeType":"YulTypedName","src":"6094:6:101","type":""}],"src":"6049:189:101"},{"body":{"nativeSrc":"6294:136:101","nodeType":"YulBlock","src":"6294:136:101","statements":[{"body":{"nativeSrc":"6361:63:101","nodeType":"YulBlock","src":"6361:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6405:5:101","nodeType":"YulIdentifier","src":"6405:5:101"},{"kind":"number","nativeSrc":"6412:1:101","nodeType":"YulLiteral","src":"6412:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"6375:29:101","nodeType":"YulIdentifier","src":"6375:29:101"},"nativeSrc":"6375:39:101","nodeType":"YulFunctionCall","src":"6375:39:101"},"nativeSrc":"6375:39:101","nodeType":"YulExpressionStatement","src":"6375:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6314:5:101","nodeType":"YulIdentifier","src":"6314:5:101"},{"name":"end","nativeSrc":"6321:3:101","nodeType":"YulIdentifier","src":"6321:3:101"}],"functionName":{"name":"lt","nativeSrc":"6311:2:101","nodeType":"YulIdentifier","src":"6311:2:101"},"nativeSrc":"6311:14:101","nodeType":"YulFunctionCall","src":"6311:14:101"},"nativeSrc":"6304:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"6326:26:101","nodeType":"YulBlock","src":"6326:26:101","statements":[{"nativeSrc":"6328:22:101","nodeType":"YulAssignment","src":"6328:22:101","value":{"arguments":[{"name":"start","nativeSrc":"6341:5:101","nodeType":"YulIdentifier","src":"6341:5:101"},{"kind":"number","nativeSrc":"6348:1:101","nodeType":"YulLiteral","src":"6348:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6337:3:101","nodeType":"YulIdentifier","src":"6337:3:101"},"nativeSrc":"6337:13:101","nodeType":"YulFunctionCall","src":"6337:13:101"},"variableNames":[{"name":"start","nativeSrc":"6328:5:101","nodeType":"YulIdentifier","src":"6328:5:101"}]}]},"pre":{"nativeSrc":"6308:2:101","nodeType":"YulBlock","src":"6308:2:101","statements":[]},"src":"6304:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6244:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6282:5:101","nodeType":"YulTypedName","src":"6282:5:101","type":""},{"name":"end","nativeSrc":"6289:3:101","nodeType":"YulTypedName","src":"6289:3:101","type":""}],"src":"6244:186:101"},{"body":{"nativeSrc":"6515:464:101","nodeType":"YulBlock","src":"6515:464:101","statements":[{"body":{"nativeSrc":"6541:431:101","nodeType":"YulBlock","src":"6541:431:101","statements":[{"nativeSrc":"6555:54:101","nodeType":"YulVariableDeclaration","src":"6555:54:101","value":{"arguments":[{"name":"array","nativeSrc":"6603:5:101","nodeType":"YulIdentifier","src":"6603:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6571:31:101","nodeType":"YulIdentifier","src":"6571:31:101"},"nativeSrc":"6571:38:101","nodeType":"YulFunctionCall","src":"6571:38:101"},"variables":[{"name":"dataArea","nativeSrc":"6559:8:101","nodeType":"YulTypedName","src":"6559:8:101","type":""}]},{"nativeSrc":"6622:63:101","nodeType":"YulVariableDeclaration","src":"6622:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"6645:8:101","nodeType":"YulIdentifier","src":"6645:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"6673:10:101","nodeType":"YulIdentifier","src":"6673:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6655:17:101","nodeType":"YulIdentifier","src":"6655:17:101"},"nativeSrc":"6655:29:101","nodeType":"YulFunctionCall","src":"6655:29:101"}],"functionName":{"name":"add","nativeSrc":"6641:3:101","nodeType":"YulIdentifier","src":"6641:3:101"},"nativeSrc":"6641:44:101","nodeType":"YulFunctionCall","src":"6641:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"6626:11:101","nodeType":"YulTypedName","src":"6626:11:101","type":""}]},{"body":{"nativeSrc":"6842:27:101","nodeType":"YulBlock","src":"6842:27:101","statements":[{"nativeSrc":"6844:23:101","nodeType":"YulAssignment","src":"6844:23:101","value":{"name":"dataArea","nativeSrc":"6859:8:101","nodeType":"YulIdentifier","src":"6859:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"6844:11:101","nodeType":"YulIdentifier","src":"6844:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6826:10:101","nodeType":"YulIdentifier","src":"6826:10:101"},{"kind":"number","nativeSrc":"6838:2:101","nodeType":"YulLiteral","src":"6838:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6823:2:101","nodeType":"YulIdentifier","src":"6823:2:101"},"nativeSrc":"6823:18:101","nodeType":"YulFunctionCall","src":"6823:18:101"},"nativeSrc":"6820:49:101","nodeType":"YulIf","src":"6820:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"6911:11:101","nodeType":"YulIdentifier","src":"6911:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"6928:8:101","nodeType":"YulIdentifier","src":"6928:8:101"},{"arguments":[{"name":"len","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6938:17:101","nodeType":"YulIdentifier","src":"6938:17:101"},"nativeSrc":"6938:22:101","nodeType":"YulFunctionCall","src":"6938:22:101"}],"functionName":{"name":"add","nativeSrc":"6924:3:101","nodeType":"YulIdentifier","src":"6924:3:101"},"nativeSrc":"6924:37:101","nodeType":"YulFunctionCall","src":"6924:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6882:28:101","nodeType":"YulIdentifier","src":"6882:28:101"},"nativeSrc":"6882:80:101","nodeType":"YulFunctionCall","src":"6882:80:101"},"nativeSrc":"6882:80:101","nodeType":"YulExpressionStatement","src":"6882:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6532:3:101","nodeType":"YulIdentifier","src":"6532:3:101"},{"kind":"number","nativeSrc":"6537:2:101","nodeType":"YulLiteral","src":"6537:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6529:2:101","nodeType":"YulIdentifier","src":"6529:2:101"},"nativeSrc":"6529:11:101","nodeType":"YulFunctionCall","src":"6529:11:101"},"nativeSrc":"6526:446:101","nodeType":"YulIf","src":"6526:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"6436:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"6491:5:101","nodeType":"YulTypedName","src":"6491:5:101","type":""},{"name":"len","nativeSrc":"6498:3:101","nodeType":"YulTypedName","src":"6498:3:101","type":""},{"name":"startIndex","nativeSrc":"6503:10:101","nodeType":"YulTypedName","src":"6503:10:101","type":""}],"src":"6436:543:101"},{"body":{"nativeSrc":"7048:54:101","nodeType":"YulBlock","src":"7048:54:101","statements":[{"nativeSrc":"7058:37:101","nodeType":"YulAssignment","src":"7058:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"7083:4:101","nodeType":"YulIdentifier","src":"7083:4:101"},{"name":"value","nativeSrc":"7089:5:101","nodeType":"YulIdentifier","src":"7089:5:101"}],"functionName":{"name":"shr","nativeSrc":"7079:3:101","nodeType":"YulIdentifier","src":"7079:3:101"},"nativeSrc":"7079:16:101","nodeType":"YulFunctionCall","src":"7079:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"7058:8:101","nodeType":"YulIdentifier","src":"7058:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"6985:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7023:4:101","nodeType":"YulTypedName","src":"7023:4:101","type":""},{"name":"value","nativeSrc":"7029:5:101","nodeType":"YulTypedName","src":"7029:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7039:8:101","nodeType":"YulTypedName","src":"7039:8:101","type":""}],"src":"6985:117:101"},{"body":{"nativeSrc":"7159:118:101","nodeType":"YulBlock","src":"7159:118:101","statements":[{"nativeSrc":"7169:68:101","nodeType":"YulVariableDeclaration","src":"7169:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7218:1:101","nodeType":"YulLiteral","src":"7218:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"7221:5:101","nodeType":"YulIdentifier","src":"7221:5:101"}],"functionName":{"name":"mul","nativeSrc":"7214:3:101","nodeType":"YulIdentifier","src":"7214:3:101"},"nativeSrc":"7214:13:101","nodeType":"YulFunctionCall","src":"7214:13:101"},{"arguments":[{"kind":"number","nativeSrc":"7233:1:101","nodeType":"YulLiteral","src":"7233:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7229:3:101","nodeType":"YulIdentifier","src":"7229:3:101"},"nativeSrc":"7229:6:101","nodeType":"YulFunctionCall","src":"7229:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7185:28:101","nodeType":"YulIdentifier","src":"7185:28:101"},"nativeSrc":"7185:51:101","nodeType":"YulFunctionCall","src":"7185:51:101"}],"functionName":{"name":"not","nativeSrc":"7181:3:101","nodeType":"YulIdentifier","src":"7181:3:101"},"nativeSrc":"7181:56:101","nodeType":"YulFunctionCall","src":"7181:56:101"},"variables":[{"name":"mask","nativeSrc":"7173:4:101","nodeType":"YulTypedName","src":"7173:4:101","type":""}]},{"nativeSrc":"7246:25:101","nodeType":"YulAssignment","src":"7246:25:101","value":{"arguments":[{"name":"data","nativeSrc":"7260:4:101","nodeType":"YulIdentifier","src":"7260:4:101"},{"name":"mask","nativeSrc":"7266:4:101","nodeType":"YulIdentifier","src":"7266:4:101"}],"functionName":{"name":"and","nativeSrc":"7256:3:101","nodeType":"YulIdentifier","src":"7256:3:101"},"nativeSrc":"7256:15:101","nodeType":"YulFunctionCall","src":"7256:15:101"},"variableNames":[{"name":"result","nativeSrc":"7246:6:101","nodeType":"YulIdentifier","src":"7246:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7108:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7136:4:101","nodeType":"YulTypedName","src":"7136:4:101","type":""},{"name":"bytes","nativeSrc":"7142:5:101","nodeType":"YulTypedName","src":"7142:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7152:6:101","nodeType":"YulTypedName","src":"7152:6:101","type":""}],"src":"7108:169:101"},{"body":{"nativeSrc":"7363:214:101","nodeType":"YulBlock","src":"7363:214:101","statements":[{"nativeSrc":"7496:37:101","nodeType":"YulAssignment","src":"7496:37:101","value":{"arguments":[{"name":"data","nativeSrc":"7523:4:101","nodeType":"YulIdentifier","src":"7523:4:101"},{"name":"len","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"7504:18:101","nodeType":"YulIdentifier","src":"7504:18:101"},"nativeSrc":"7504:29:101","nodeType":"YulFunctionCall","src":"7504:29:101"},"variableNames":[{"name":"data","nativeSrc":"7496:4:101","nodeType":"YulIdentifier","src":"7496:4:101"}]},{"nativeSrc":"7542:29:101","nodeType":"YulAssignment","src":"7542:29:101","value":{"arguments":[{"name":"data","nativeSrc":"7553:4:101","nodeType":"YulIdentifier","src":"7553:4:101"},{"arguments":[{"kind":"number","nativeSrc":"7563:1:101","nodeType":"YulLiteral","src":"7563:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"7566:3:101","nodeType":"YulIdentifier","src":"7566:3:101"}],"functionName":{"name":"mul","nativeSrc":"7559:3:101","nodeType":"YulIdentifier","src":"7559:3:101"},"nativeSrc":"7559:11:101","nodeType":"YulFunctionCall","src":"7559:11:101"}],"functionName":{"name":"or","nativeSrc":"7550:2:101","nodeType":"YulIdentifier","src":"7550:2:101"},"nativeSrc":"7550:21:101","nodeType":"YulFunctionCall","src":"7550:21:101"},"variableNames":[{"name":"used","nativeSrc":"7542:4:101","nodeType":"YulIdentifier","src":"7542:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7282:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7344:4:101","nodeType":"YulTypedName","src":"7344:4:101","type":""},{"name":"len","nativeSrc":"7350:3:101","nodeType":"YulTypedName","src":"7350:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"7358:4:101","nodeType":"YulTypedName","src":"7358:4:101","type":""}],"src":"7282:295:101"},{"body":{"nativeSrc":"7674:1303:101","nodeType":"YulBlock","src":"7674:1303:101","statements":[{"nativeSrc":"7685:51:101","nodeType":"YulVariableDeclaration","src":"7685:51:101","value":{"arguments":[{"name":"src","nativeSrc":"7732:3:101","nodeType":"YulIdentifier","src":"7732:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7699:32:101","nodeType":"YulIdentifier","src":"7699:32:101"},"nativeSrc":"7699:37:101","nodeType":"YulFunctionCall","src":"7699:37:101"},"variables":[{"name":"newLen","nativeSrc":"7689:6:101","nodeType":"YulTypedName","src":"7689:6:101","type":""}]},{"body":{"nativeSrc":"7821:22:101","nodeType":"YulBlock","src":"7821:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7823:16:101","nodeType":"YulIdentifier","src":"7823:16:101"},"nativeSrc":"7823:18:101","nodeType":"YulFunctionCall","src":"7823:18:101"},"nativeSrc":"7823:18:101","nodeType":"YulExpressionStatement","src":"7823:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7793:6:101","nodeType":"YulIdentifier","src":"7793:6:101"},{"kind":"number","nativeSrc":"7801:18:101","nodeType":"YulLiteral","src":"7801:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7790:2:101","nodeType":"YulIdentifier","src":"7790:2:101"},"nativeSrc":"7790:30:101","nodeType":"YulFunctionCall","src":"7790:30:101"},"nativeSrc":"7787:56:101","nodeType":"YulIf","src":"7787:56:101"},{"nativeSrc":"7853:52:101","nodeType":"YulVariableDeclaration","src":"7853:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"7899:4:101","nodeType":"YulIdentifier","src":"7899:4:101"}],"functionName":{"name":"sload","nativeSrc":"7893:5:101","nodeType":"YulIdentifier","src":"7893:5:101"},"nativeSrc":"7893:11:101","nodeType":"YulFunctionCall","src":"7893:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7867:25:101","nodeType":"YulIdentifier","src":"7867:25:101"},"nativeSrc":"7867:38:101","nodeType":"YulFunctionCall","src":"7867:38:101"},"variables":[{"name":"oldLen","nativeSrc":"7857:6:101","nodeType":"YulTypedName","src":"7857:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7998:4:101","nodeType":"YulIdentifier","src":"7998:4:101"},{"name":"oldLen","nativeSrc":"8004:6:101","nodeType":"YulIdentifier","src":"8004:6:101"},{"name":"newLen","nativeSrc":"8012:6:101","nodeType":"YulIdentifier","src":"8012:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7952:45:101","nodeType":"YulIdentifier","src":"7952:45:101"},"nativeSrc":"7952:67:101","nodeType":"YulFunctionCall","src":"7952:67:101"},"nativeSrc":"7952:67:101","nodeType":"YulExpressionStatement","src":"7952:67:101"},{"nativeSrc":"8029:18:101","nodeType":"YulVariableDeclaration","src":"8029:18:101","value":{"kind":"number","nativeSrc":"8046:1:101","nodeType":"YulLiteral","src":"8046:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8033:9:101","nodeType":"YulTypedName","src":"8033:9:101","type":""}]},{"nativeSrc":"8057:17:101","nodeType":"YulAssignment","src":"8057:17:101","value":{"kind":"number","nativeSrc":"8070:4:101","nodeType":"YulLiteral","src":"8070:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8057:9:101","nodeType":"YulIdentifier","src":"8057:9:101"}]},{"cases":[{"body":{"nativeSrc":"8121:611:101","nodeType":"YulBlock","src":"8121:611:101","statements":[{"nativeSrc":"8135:37:101","nodeType":"YulVariableDeclaration","src":"8135:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"8154:6:101","nodeType":"YulIdentifier","src":"8154:6:101"},{"arguments":[{"kind":"number","nativeSrc":"8166:4:101","nodeType":"YulLiteral","src":"8166:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8162:3:101","nodeType":"YulIdentifier","src":"8162:3:101"},"nativeSrc":"8162:9:101","nodeType":"YulFunctionCall","src":"8162:9:101"}],"functionName":{"name":"and","nativeSrc":"8150:3:101","nodeType":"YulIdentifier","src":"8150:3:101"},"nativeSrc":"8150:22:101","nodeType":"YulFunctionCall","src":"8150:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"8139:7:101","nodeType":"YulTypedName","src":"8139:7:101","type":""}]},{"nativeSrc":"8186:51:101","nodeType":"YulVariableDeclaration","src":"8186:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"8232:4:101","nodeType":"YulIdentifier","src":"8232:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8200:31:101","nodeType":"YulIdentifier","src":"8200:31:101"},"nativeSrc":"8200:37:101","nodeType":"YulFunctionCall","src":"8200:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"8190:6:101","nodeType":"YulTypedName","src":"8190:6:101","type":""}]},{"nativeSrc":"8250:10:101","nodeType":"YulVariableDeclaration","src":"8250:10:101","value":{"kind":"number","nativeSrc":"8259:1:101","nodeType":"YulLiteral","src":"8259:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8254:1:101","nodeType":"YulTypedName","src":"8254:1:101","type":""}]},{"body":{"nativeSrc":"8318:163:101","nodeType":"YulBlock","src":"8318:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8343:6:101","nodeType":"YulIdentifier","src":"8343:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8361:3:101","nodeType":"YulIdentifier","src":"8361:3:101"},{"name":"srcOffset","nativeSrc":"8366:9:101","nodeType":"YulIdentifier","src":"8366:9:101"}],"functionName":{"name":"add","nativeSrc":"8357:3:101","nodeType":"YulIdentifier","src":"8357:3:101"},"nativeSrc":"8357:19:101","nodeType":"YulFunctionCall","src":"8357:19:101"}],"functionName":{"name":"mload","nativeSrc":"8351:5:101","nodeType":"YulIdentifier","src":"8351:5:101"},"nativeSrc":"8351:26:101","nodeType":"YulFunctionCall","src":"8351:26:101"}],"functionName":{"name":"sstore","nativeSrc":"8336:6:101","nodeType":"YulIdentifier","src":"8336:6:101"},"nativeSrc":"8336:42:101","nodeType":"YulFunctionCall","src":"8336:42:101"},"nativeSrc":"8336:42:101","nodeType":"YulExpressionStatement","src":"8336:42:101"},{"nativeSrc":"8395:24:101","nodeType":"YulAssignment","src":"8395:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"8409:6:101","nodeType":"YulIdentifier","src":"8409:6:101"},{"kind":"number","nativeSrc":"8417:1:101","nodeType":"YulLiteral","src":"8417:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8405:3:101","nodeType":"YulIdentifier","src":"8405:3:101"},"nativeSrc":"8405:14:101","nodeType":"YulFunctionCall","src":"8405:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"8395:6:101","nodeType":"YulIdentifier","src":"8395:6:101"}]},{"nativeSrc":"8436:31:101","nodeType":"YulAssignment","src":"8436:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"8453:9:101","nodeType":"YulIdentifier","src":"8453:9:101"},{"kind":"number","nativeSrc":"8464:2:101","nodeType":"YulLiteral","src":"8464:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8449:3:101","nodeType":"YulIdentifier","src":"8449:3:101"},"nativeSrc":"8449:18:101","nodeType":"YulFunctionCall","src":"8449:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"8436:9:101","nodeType":"YulIdentifier","src":"8436:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8284:1:101","nodeType":"YulIdentifier","src":"8284:1:101"},{"name":"loopEnd","nativeSrc":"8287:7:101","nodeType":"YulIdentifier","src":"8287:7:101"}],"functionName":{"name":"lt","nativeSrc":"8281:2:101","nodeType":"YulIdentifier","src":"8281:2:101"},"nativeSrc":"8281:14:101","nodeType":"YulFunctionCall","src":"8281:14:101"},"nativeSrc":"8273:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"8296:21:101","nodeType":"YulBlock","src":"8296:21:101","statements":[{"nativeSrc":"8298:17:101","nodeType":"YulAssignment","src":"8298:17:101","value":{"arguments":[{"name":"i","nativeSrc":"8307:1:101","nodeType":"YulIdentifier","src":"8307:1:101"},{"kind":"number","nativeSrc":"8310:4:101","nodeType":"YulLiteral","src":"8310:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8303:3:101","nodeType":"YulIdentifier","src":"8303:3:101"},"nativeSrc":"8303:12:101","nodeType":"YulFunctionCall","src":"8303:12:101"},"variableNames":[{"name":"i","nativeSrc":"8298:1:101","nodeType":"YulIdentifier","src":"8298:1:101"}]}]},"pre":{"nativeSrc":"8277:3:101","nodeType":"YulBlock","src":"8277:3:101","statements":[]},"src":"8273:208:101"},{"body":{"nativeSrc":"8517:156:101","nodeType":"YulBlock","src":"8517:156:101","statements":[{"nativeSrc":"8535:43:101","nodeType":"YulVariableDeclaration","src":"8535:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8562:3:101","nodeType":"YulIdentifier","src":"8562:3:101"},{"name":"srcOffset","nativeSrc":"8567:9:101","nodeType":"YulIdentifier","src":"8567:9:101"}],"functionName":{"name":"add","nativeSrc":"8558:3:101","nodeType":"YulIdentifier","src":"8558:3:101"},"nativeSrc":"8558:19:101","nodeType":"YulFunctionCall","src":"8558:19:101"}],"functionName":{"name":"mload","nativeSrc":"8552:5:101","nodeType":"YulIdentifier","src":"8552:5:101"},"nativeSrc":"8552:26:101","nodeType":"YulFunctionCall","src":"8552:26:101"},"variables":[{"name":"lastValue","nativeSrc":"8539:9:101","nodeType":"YulTypedName","src":"8539:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8602:6:101","nodeType":"YulIdentifier","src":"8602:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"8629:9:101","nodeType":"YulIdentifier","src":"8629:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"8644:6:101","nodeType":"YulIdentifier","src":"8644:6:101"},{"kind":"number","nativeSrc":"8652:4:101","nodeType":"YulLiteral","src":"8652:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8640:3:101","nodeType":"YulIdentifier","src":"8640:3:101"},"nativeSrc":"8640:17:101","nodeType":"YulFunctionCall","src":"8640:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8610:18:101","nodeType":"YulIdentifier","src":"8610:18:101"},"nativeSrc":"8610:48:101","nodeType":"YulFunctionCall","src":"8610:48:101"}],"functionName":{"name":"sstore","nativeSrc":"8595:6:101","nodeType":"YulIdentifier","src":"8595:6:101"},"nativeSrc":"8595:64:101","nodeType":"YulFunctionCall","src":"8595:64:101"},"nativeSrc":"8595:64:101","nodeType":"YulExpressionStatement","src":"8595:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"8500:7:101","nodeType":"YulIdentifier","src":"8500:7:101"},{"name":"newLen","nativeSrc":"8509:6:101","nodeType":"YulIdentifier","src":"8509:6:101"}],"functionName":{"name":"lt","nativeSrc":"8497:2:101","nodeType":"YulIdentifier","src":"8497:2:101"},"nativeSrc":"8497:19:101","nodeType":"YulFunctionCall","src":"8497:19:101"},"nativeSrc":"8494:179:101","nodeType":"YulIf","src":"8494:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8693:4:101","nodeType":"YulIdentifier","src":"8693:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8707:6:101","nodeType":"YulIdentifier","src":"8707:6:101"},{"kind":"number","nativeSrc":"8715:1:101","nodeType":"YulLiteral","src":"8715:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8703:3:101","nodeType":"YulIdentifier","src":"8703:3:101"},"nativeSrc":"8703:14:101","nodeType":"YulFunctionCall","src":"8703:14:101"},{"kind":"number","nativeSrc":"8719:1:101","nodeType":"YulLiteral","src":"8719:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8699:3:101","nodeType":"YulIdentifier","src":"8699:3:101"},"nativeSrc":"8699:22:101","nodeType":"YulFunctionCall","src":"8699:22:101"}],"functionName":{"name":"sstore","nativeSrc":"8686:6:101","nodeType":"YulIdentifier","src":"8686:6:101"},"nativeSrc":"8686:36:101","nodeType":"YulFunctionCall","src":"8686:36:101"},"nativeSrc":"8686:36:101","nodeType":"YulExpressionStatement","src":"8686:36:101"}]},"nativeSrc":"8114:618:101","nodeType":"YulCase","src":"8114:618:101","value":{"kind":"number","nativeSrc":"8119:1:101","nodeType":"YulLiteral","src":"8119:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8749:222:101","nodeType":"YulBlock","src":"8749:222:101","statements":[{"nativeSrc":"8763:14:101","nodeType":"YulVariableDeclaration","src":"8763:14:101","value":{"kind":"number","nativeSrc":"8776:1:101","nodeType":"YulLiteral","src":"8776:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8767:5:101","nodeType":"YulTypedName","src":"8767:5:101","type":""}]},{"body":{"nativeSrc":"8800:67:101","nodeType":"YulBlock","src":"8800:67:101","statements":[{"nativeSrc":"8818:35:101","nodeType":"YulAssignment","src":"8818:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8837:3:101","nodeType":"YulIdentifier","src":"8837:3:101"},{"name":"srcOffset","nativeSrc":"8842:9:101","nodeType":"YulIdentifier","src":"8842:9:101"}],"functionName":{"name":"add","nativeSrc":"8833:3:101","nodeType":"YulIdentifier","src":"8833:3:101"},"nativeSrc":"8833:19:101","nodeType":"YulFunctionCall","src":"8833:19:101"}],"functionName":{"name":"mload","nativeSrc":"8827:5:101","nodeType":"YulIdentifier","src":"8827:5:101"},"nativeSrc":"8827:26:101","nodeType":"YulFunctionCall","src":"8827:26:101"},"variableNames":[{"name":"value","nativeSrc":"8818:5:101","nodeType":"YulIdentifier","src":"8818:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"8793:6:101","nodeType":"YulIdentifier","src":"8793:6:101"},"nativeSrc":"8790:77:101","nodeType":"YulIf","src":"8790:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8887:4:101","nodeType":"YulIdentifier","src":"8887:4:101"},{"arguments":[{"name":"value","nativeSrc":"8946:5:101","nodeType":"YulIdentifier","src":"8946:5:101"},{"name":"newLen","nativeSrc":"8953:6:101","nodeType":"YulIdentifier","src":"8953:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8893:52:101","nodeType":"YulIdentifier","src":"8893:52:101"},"nativeSrc":"8893:67:101","nodeType":"YulFunctionCall","src":"8893:67:101"}],"functionName":{"name":"sstore","nativeSrc":"8880:6:101","nodeType":"YulIdentifier","src":"8880:6:101"},"nativeSrc":"8880:81:101","nodeType":"YulFunctionCall","src":"8880:81:101"},"nativeSrc":"8880:81:101","nodeType":"YulExpressionStatement","src":"8880:81:101"}]},"nativeSrc":"8741:230:101","nodeType":"YulCase","src":"8741:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8094:6:101","nodeType":"YulIdentifier","src":"8094:6:101"},{"kind":"number","nativeSrc":"8102:2:101","nodeType":"YulLiteral","src":"8102:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8091:2:101","nodeType":"YulIdentifier","src":"8091:2:101"},"nativeSrc":"8091:14:101","nodeType":"YulFunctionCall","src":"8091:14:101"},"nativeSrc":"8084:887:101","nodeType":"YulSwitch","src":"8084:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7582:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7663:4:101","nodeType":"YulTypedName","src":"7663:4:101","type":""},{"name":"src","nativeSrc":"7669:3:101","nodeType":"YulTypedName","src":"7669:3:101","type":""}],"src":"7582:1395:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b506040516112b23803806112b283398101604081905261002e916101df565b8282600361003c838261033c565b506004610049828261033c565b50505061006261005d61007060201b60201c565b610074565b60ff16608052506103fb9050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156100fe576100fe6100c5565b6040525050565b5f61010f60405190565b905061011b82826100d9565b919050565b5f6001600160401b03821115610138576101386100c5565b601f19601f83011660200192915050565b8281835e505f910152565b5f61016661016184610120565b610105565b905082815260208101848484011115610180576101805f80fd5b61018b848285610149565b509392505050565b5f82601f8301126101a5576101a55f80fd5b81516101b5848260208601610154565b949350505050565b60ff811681146101cb575f80fd5b50565b80516101d9816101bd565b92915050565b5f805f606084860312156101f4576101f45f80fd5b83516001600160401b0381111561020c5761020c5f80fd5b61021886828701610193565b93505060208401516001600160401b03811115610236576102365f80fd5b61024286828701610193565b9250506040610253868287016101ce565b9150509250925092565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061028557607f821691505b6020821081036102975761029761025d565b50919050565b5f6101d96102a88381565b90565b6102b48361029d565b81545f1960089490940293841b1916921b91909117905550565b5f6102da8184846102ab565b505050565b818110156102f9576102f15f826102ce565b6001016102df565b5050565b601f8211156102da575f818152602090206020601f850104810160208510156103235750805b6103356020601f8601048301826102df565b5050505050565b81516001600160401b03811115610355576103556100c5565b61035f8254610271565b61036a8282856102fd565b6020601f83116001811461039c575f84156103855750858201515b5f19600886021c19811660028602178655506103f3565b5f85815260208120601f198616915b828110156103cb57888501518255602094850194600190920191016103ab565b868310156103e657848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b608051610e9861041a5f395f818161018e01526103aa0152610e985ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c80636c58d43d1161009e57806395d89b411161006e57806395d89b4114610245578063a457c2d71461024d578063a9059cbb14610260578063dd62ed3e14610273578063f2fde38b14610286575f80fd5b80636c58d43d146101e957806370a08231146101fc578063715018a6146102245780638da5cb5b1461022c575f80fd5b806323b872dd116100e457806323b872dd14610179578063313ce5671461018c57806339509351146101ba5780633ba0b9a9146101cd57806357915897146101d6575f80fd5b806306fdde03146101155780630904af8514610133578063095ea7b31461014857806318160ddd14610168575b5f80fd5b61011d610299565b60405161012a91906107fc565b60405180910390f35b610146610141366004610824565b610329565b005b61015b61015636600461086e565b610336565b60405161012a91906108b2565b6002545b60405161012a91906108c6565b61015b6101873660046108d4565b61034f565b7f000000000000000000000000000000000000000000000000000000000000000060405161012a9190610929565b61015b6101c836600461086e565b610374565b61016c60065481565b6101466101e4366004610824565b610395565b61016c6101f7366004610824565b6103a2565b61016c61020a366004610937565b6001600160a01b03165f9081526020819052604090205490565b6101466103e8565b6005546001600160a01b031660405161012a919061095e565b61011d6103fb565b61015b61025b36600461086e565b61040a565b61015b61026e36600461086e565b61045a565b61016c61028136600461096c565b610467565b610146610294366004610937565b610491565b6060600380546102a8906109b0565b80601f01602080910402602001604051908101604052809291908181526020018280546102d4906109b0565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b6103316104c8565b600655565b5f336103438185856104f2565b60019150505b92915050565b5f3361035c8582856105a5565b6103678585856105ed565b60019150505b9392505050565b5f336103438185856103868383610467565b61039091906109f0565b6104f2565b61039f33826106db565b50565b5f6103d160ff7f000000000000000000000000000000000000000000000000000000000000000016600a610b0f565b6006546103de9084610b1c565b6103499190610b4f565b6103f06104c8565b6103f95f61076f565b565b6060600480546102a8906109b0565b5f33816104178286610467565b9050838110156104425760405162461bcd60e51b815260040161043990610ba6565b60405180910390fd5b61044f82868684036104f2565b506001949350505050565b5f336103438185856105ed565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6104996104c8565b6001600160a01b0381166104bf5760405162461bcd60e51b815260040161043990610bf8565b61039f8161076f565b6005546001600160a01b031633146103f95760405162461bcd60e51b815260040161043990610c3c565b6001600160a01b0383166105185760405162461bcd60e51b815260040161043990610c8c565b6001600160a01b03821661053e5760405162461bcd60e51b815260040161043990610cda565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105989085906108c6565b60405180910390a3505050565b5f6105b08484610467565b90505f1981146105e757818110156105da5760405162461bcd60e51b815260040161043990610d1d565b6105e784848484036104f2565b50505050565b6001600160a01b0383166106135760405162461bcd60e51b815260040161043990610d6e565b6001600160a01b0382166106395760405162461bcd60e51b815260040161043990610dbd565b6001600160a01b0383165f90815260208190526040902054818110156106715760405162461bcd60e51b815260040161043990610e0f565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ce9086906108c6565b60405180910390a36105e7565b6001600160a01b0382166107015760405162461bcd60e51b815260040161043990610e52565b8060025f82825461071291906109f0565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107639085906108c6565b60405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f6107d4825190565b8084526020840193506107eb8185602086016107c0565b601f01601f19169290920192915050565b6020808252810161036d81846107cb565b805b811461039f575f80fd5b80356103498161080d565b5f60208284031215610837576108375f80fd5b5f6108428484610819565b949350505050565b5f6001600160a01b038216610349565b61080f8161084a565b80356103498161085a565b5f8060408385031215610882576108825f80fd5b5f61088d8585610863565b925050602061089e85828601610819565b9150509250929050565b8015155b82525050565b6020810161034982846108a8565b806108ac565b6020810161034982846108c0565b5f805f606084860312156108e9576108e95f80fd5b5f6108f48686610863565b935050602061090586828701610863565b925050604061091686828701610819565b9150509250925092565b60ff81166108ac565b602081016103498284610920565b5f6020828403121561094a5761094a5f80fd5b5f6108428484610863565b6108ac8161084a565b602081016103498284610955565b5f8060408385031215610980576109805f80fd5b5f61098b8585610863565b925050602061089e85828601610863565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806109c457607f821691505b6020821081036109d6576109d661099c565b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610349576103496109dc565b80825b6001851115610a4257808604811115610a2157610a216109dc565b6001851615610a2f57908102905b8002610a3b8560011c90565b9450610a06565b94509492505050565b5f82610a595750600161036d565b81610a6557505f61036d565b8160018114610a7b5760028114610a8557610ab2565b600191505061036d565b60ff841115610a9657610a966109dc565b8360020a915084821115610aac57610aac6109dc565b5061036d565b5060208310610133831016604e8410600b8410161715610ae5575081810a83811115610ae057610ae06109dc565b61036d565b610af28484846001610a03565b92509050818404811115610b0857610b086109dc565b0292915050565b5f61036d5f198484610a4b565b818102808215838204851417610b3457610b346109dc565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82610b5d57610b5d610b3b565b500490565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161034981610b62565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610b9f565b6020808252810161034981610bb6565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f5b5060200190565b6020808252810161034981610c08565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610b9f565b6020808252810161034981610c4c565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610b9f565b6020808252810161034981610c9c565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081529150610c35565b6020808252810161034981610cea565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610b9f565b6020808252810161034981610d2d565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610b9f565b6020808252810161034981610d7e565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610b9f565b6020808252810161034981610dcd565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610c35565b6020808252810161034981610e1f56fea26469706673582212206ab418a51d1895030cf1ec66b2cc206a647f128f019f98a88ef3411d9834d55d64736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x12B2 CODESIZE SUB DUP1 PUSH2 0x12B2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x1DF JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH2 0x3C DUP4 DUP3 PUSH2 0x33C JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x49 DUP3 DUP3 PUSH2 0x33C JUMP JUMPDEST POP POP POP PUSH2 0x62 PUSH2 0x5D PUSH2 0x70 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x74 JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x80 MSTORE POP PUSH2 0x3FB SWAP1 POP JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0xFE JUMPI PUSH2 0xFE PUSH2 0xC5 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10F PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x11B DUP3 DUP3 PUSH2 0xD9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x138 JUMPI PUSH2 0x138 PUSH2 0xC5 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x166 PUSH2 0x161 DUP5 PUSH2 0x120 JUMP JUMPDEST PUSH2 0x105 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x180 JUMPI PUSH2 0x180 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x18B DUP5 DUP3 DUP6 PUSH2 0x149 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A5 JUMPI PUSH2 0x1A5 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x154 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1D9 DUP2 PUSH2 0x1BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1F4 JUMPI PUSH2 0x1F4 PUSH0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x20C JUMPI PUSH2 0x20C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x218 DUP7 DUP3 DUP8 ADD PUSH2 0x193 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x236 JUMPI PUSH2 0x236 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x242 DUP7 DUP3 DUP8 ADD PUSH2 0x193 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x253 DUP7 DUP3 DUP8 ADD PUSH2 0x1CE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x285 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x297 JUMPI PUSH2 0x297 PUSH2 0x25D JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1D9 PUSH2 0x2A8 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2B4 DUP4 PUSH2 0x29D JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x2DA DUP2 DUP5 DUP5 PUSH2 0x2AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F1 PUSH0 DUP3 PUSH2 0x2CE JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2DF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2DA JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x323 JUMPI POP DUP1 JUMPDEST PUSH2 0x335 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x2DF JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0xC5 JUMP JUMPDEST PUSH2 0x35F DUP3 SLOAD PUSH2 0x271 JUMP JUMPDEST PUSH2 0x36A DUP3 DUP3 DUP6 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x39C JUMPI PUSH0 DUP5 ISZERO PUSH2 0x385 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x3F3 JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3CB JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x3AB JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x3E6 JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xE98 PUSH2 0x41A PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x18E ADD MSTORE PUSH2 0x3AA ADD MSTORE PUSH2 0xE98 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6C58D43D GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x286 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6C58D43D EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x3BA0B9A9 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x1D6 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x904AF85 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x168 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D PUSH2 0x299 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x146 PUSH2 0x141 CALLDATASIZE PUSH1 0x4 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x329 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH2 0x156 CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x336 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x187 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D4 JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x929 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x395 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x3E8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x95E JUMP JUMPDEST PUSH2 0x11D PUSH2 0x3FB JUMP JUMPDEST PUSH2 0x15B PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x40A JUMP JUMPDEST PUSH2 0x15B PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x45A JUMP JUMPDEST PUSH2 0x16C PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x96C JUMP JUMPDEST PUSH2 0x467 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x937 JUMP JUMPDEST PUSH2 0x491 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2A8 SWAP1 PUSH2 0x9B0 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 0x2D4 SWAP1 PUSH2 0x9B0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x31F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x31F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x302 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x331 PUSH2 0x4C8 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH0 CALLER PUSH2 0x343 DUP2 DUP6 DUP6 PUSH2 0x4F2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x35C DUP6 DUP3 DUP6 PUSH2 0x5A5 JUMP JUMPDEST PUSH2 0x367 DUP6 DUP6 DUP6 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x343 DUP2 DUP6 DUP6 PUSH2 0x386 DUP4 DUP4 PUSH2 0x467 JUMP JUMPDEST PUSH2 0x390 SWAP2 SWAP1 PUSH2 0x9F0 JUMP JUMPDEST PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x39F CALLER DUP3 PUSH2 0x6DB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x3D1 PUSH1 0xFF PUSH32 0x0 AND PUSH1 0xA PUSH2 0xB0F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x3DE SWAP1 DUP5 PUSH2 0xB1C JUMP JUMPDEST PUSH2 0x349 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x3F0 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x3F9 PUSH0 PUSH2 0x76F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x2A8 SWAP1 PUSH2 0x9B0 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x417 DUP3 DUP7 PUSH2 0x467 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x442 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xBA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x44F DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x4F2 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x343 DUP2 DUP6 DUP6 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x499 PUSH2 0x4C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xBF8 JUMP JUMPDEST PUSH2 0x39F DUP2 PUSH2 0x76F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xC3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x518 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xC8C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x598 SWAP1 DUP6 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5B0 DUP5 DUP5 PUSH2 0x467 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x5E7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xD1D JUMP JUMPDEST PUSH2 0x5E7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x4F2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xD6E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6CE SWAP1 DUP7 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x5E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xE52 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x712 SWAP2 SWAP1 PUSH2 0x9F0 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x763 SWAP1 DUP6 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7D4 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x7EB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x36D DUP2 DUP5 PUSH2 0x7CB JUMP JUMPDEST DUP1 JUMPDEST DUP2 EQ PUSH2 0x39F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x349 DUP2 PUSH2 0x80D JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH2 0x837 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x842 DUP5 DUP5 PUSH2 0x819 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x349 JUMP JUMPDEST PUSH2 0x80F DUP2 PUSH2 0x84A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x349 DUP2 PUSH2 0x85A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x882 JUMPI PUSH2 0x882 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x88D DUP6 DUP6 PUSH2 0x863 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x89E DUP6 DUP3 DUP7 ADD PUSH2 0x819 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x8A8 JUMP JUMPDEST DUP1 PUSH2 0x8AC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x8C0 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8E9 JUMPI PUSH2 0x8E9 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8F4 DUP7 DUP7 PUSH2 0x863 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x905 DUP7 DUP3 DUP8 ADD PUSH2 0x863 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x916 DUP7 DUP3 DUP8 ADD PUSH2 0x819 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x8AC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x920 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x94A JUMPI PUSH2 0x94A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x842 DUP5 DUP5 PUSH2 0x863 JUMP JUMPDEST PUSH2 0x8AC DUP2 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x955 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x980 JUMPI PUSH2 0x980 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x98B DUP6 DUP6 PUSH2 0x863 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x89E DUP6 DUP3 DUP7 ADD PUSH2 0x863 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x9C4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH2 0x99C JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x349 JUMPI PUSH2 0x349 PUSH2 0x9DC JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xA42 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x9DC JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xA2F JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xA3B DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xA06 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xA59 JUMPI POP PUSH1 0x1 PUSH2 0x36D JUMP JUMPDEST DUP2 PUSH2 0xA65 JUMPI POP PUSH0 PUSH2 0x36D JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xA7B JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xA85 JUMPI PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x36D JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xA96 JUMPI PUSH2 0xA96 PUSH2 0x9DC JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xAAC JUMPI PUSH2 0xAAC PUSH2 0x9DC JUMP JUMPDEST POP PUSH2 0x36D JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xAE5 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0x9DC JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH2 0xAF2 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xA03 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xB08 JUMPI PUSH2 0xB08 PUSH2 0x9DC JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x36D PUSH0 NOT DUP5 DUP5 PUSH2 0xA4B JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB34 JUMPI PUSH2 0xB34 PUSH2 0x9DC JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB5D JUMPI PUSH2 0xB5D PUSH2 0xB3B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xC9C JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xCEA JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xD2D JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xD7E JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xDCD JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xE1F JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0xB418A51D1895030CF1EC66 0xB2 0xCC KECCAK256 PUSH11 0x647F128F019F98A88EF341 SAR SWAP9 CALLVALUE 0xD5 TSTORE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"310:746:75:-:0;;;438:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;517:5;524:7;2046:5:11;:13;517:5:75;2046::11;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;936:32:10;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;553:21:75::2;;;::::0;-1:-1:-1;310:746:75;;-1:-1:-1;310:746:75;655:96:14;734:10;;655:96::o;2426:187:10:-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;688:180:101:-;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2662:118::-;2645:4;2634:16;;2726:5;2723:33;2713:61;;2770:1;2767;2760:12;2713:61;2662:118;:::o;2786:139::-;2866:13;;2888:31;2866:13;2888:31;:::i;:::-;2786:139;;;;:::o;2931:1005::-;3037:6;3045;3053;3102:2;3090:9;3081:7;3077:23;3073:32;3070:119;;;3108:79;197:1;194;187:12;3108:79;3228:24;;-1:-1:-1;;;;;3268:30:101;;3265:117;;;3301:79;197:1;194;187:12;3301:79;3406:74;3472:7;3463:6;3452:9;3448:22;3406:74;:::i;:::-;3396:84;;3199:291;3550:2;3539:9;3535:18;3529:25;-1:-1:-1;;;;;3573:6:101;3570:30;3567:117;;;3603:79;197:1;194;187:12;3603:79;3708:74;3774:7;3765:6;3754:9;3750:22;3708:74;:::i;:::-;3698:84;;3500:292;3831:2;3857:62;3911:7;3902:6;3891:9;3887:22;3857:62;:::i;:::-;3847:72;;3802:127;2931:1005;;;;;:::o;4047:180::-;-1:-1:-1;;;4092:1:101;4085:88;4192:4;4189:1;4182:15;4216:4;4213:1;4206:15;4233:320;4314:1;4304:12;;4361:1;4351:12;;;4372:81;;4438:4;4430:6;4426:17;4416:27;;4372:81;4500:2;4492:6;4489:14;4469:18;4466:38;4463:84;;4519:18;;:::i;:::-;4284:269;4233:320;;;:::o;5466:142::-;5516:9;5549:53;5567:34;5594:5;5567:34;5317:77;5576:24;5383:5;5317:77;5695:269;5805:39;5836:7;5805:39;:::i;:::-;5894:11;;-1:-1:-1;;5037:1:101;5021:18;;;;4889:16;;;5246:9;5235:21;4889:16;;5275:30;;;;5853:105;;-1:-1:-1;5695:269:101:o;6049:189::-;6015:3;6167:65;6225:6;6217;6211:4;6167:65;:::i;:::-;6102:136;6049:189;;:::o;6244:186::-;6321:3;6314:5;6311:14;6304:120;;;6375:39;6412:1;6405:5;6375:39;:::i;:::-;6348:1;6337:13;6304:120;;;6244:186;;:::o;6436:543::-;6537:2;6532:3;6529:11;6526:446;;;4608:4;4644:14;;;4688:4;4675:18;;4790:2;4785;4774:14;;4770:23;6645:8;6641:44;6838:2;6826:10;6823:18;6820:49;;;-1:-1:-1;6859:8:101;6820:49;6882:80;4790:2;4785;4774:14;;4770:23;6928:8;6924:37;6911:11;6882:80;:::i;:::-;6541:431;;6436:543;;;:::o;7582:1395::-;4022:12;;-1:-1:-1;;;;;7793:6:101;7790:30;7787:56;;;7823:18;;:::i;:::-;7867:38;7899:4;7893:11;7867:38;:::i;:::-;7952:67;8012:6;8004;7998:4;7952:67;:::i;:::-;8070:4;8102:2;8091:14;;8119:1;8114:618;;;;8776:1;8793:6;8790:77;;;-1:-1:-1;8833:19:101;;;8827:26;8790:77;-1:-1:-1;;7218:1:101;7214:13;;7079:16;7181:56;7256:15;;7563:1;7559:11;;7550:21;8887:4;8880:81;8749:222;8084:887;;8114:618;4608:4;4644:14;;;4688:4;4675:18;;-1:-1:-1;;8150:22:101;;;8273:208;8287:7;8284:1;8281:14;8273:208;;;8357:19;;;8351:26;8336:42;;8464:2;8449:18;;;;8417:1;8405:14;;;;8303:12;8273:208;;;8509:6;8500:7;8497:19;8494:179;;;8558:19;;;8552:26;-1:-1:-1;;8652:4:101;8640:17;;7218:1;7214:13;7079:16;7181:56;7256:15;8595:64;;8494:179;8719:1;8715;8707:6;8703:14;8699:22;8693:4;8686:36;8121:611;;;8084:887;;7674:1303;;;7582:1395;;:::o;:::-;310:746:75;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":1266,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_checkOwner_1148":{"entryPoint":1224,"id":1148,"parameterSlots":0,"returnSlots":0},"@_mint_1610":{"entryPoint":1755,"id":1610,"parameterSlots":2,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":1445,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_1205":{"entryPoint":1903,"id":1205,"parameterSlots":1,"returnSlots":0},"@_transfer_1553":{"entryPoint":1517,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":1127,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":822,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@decimals_7674":{"entryPoint":null,"id":7674,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":1034,"id":1476,"parameterSlots":2,"returnSlots":1},"@exchangeRate_7597":{"entryPoint":null,"id":7597,"parameterSlots":0,"returnSlots":0},"@faucet_7629":{"entryPoint":917,"id":7629,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_1435":{"entryPoint":884,"id":1435,"parameterSlots":2,"returnSlots":1},"@name_1261":{"entryPoint":665,"id":1261,"parameterSlots":0,"returnSlots":1},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_1162":{"entryPoint":1000,"id":1162,"parameterSlots":0,"returnSlots":0},"@setSharesToBonds_7641":{"entryPoint":809,"id":7641,"parameterSlots":1,"returnSlots":0},"@sharesToBonds_7663":{"entryPoint":930,"id":7663,"parameterSlots":1,"returnSlots":1},"@symbol_1271":{"entryPoint":1019,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":847,"id":1406,"parameterSlots":3,"returnSlots":1},"@transferOwnership_1185":{"entryPoint":1169,"id":1185,"parameterSlots":1,"returnSlots":0},"@transfer_1330":{"entryPoint":1114,"id":1330,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2147,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2359,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2412,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2260,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2158,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2084,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2389,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2216,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1995,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":3454,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":2998,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":3228,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":3306,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":3533,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":3080,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":3373,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":3148,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":2914,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":3615,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2240,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":2336,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2398,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2226,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2044,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3517,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3064,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3290,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3357,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3599,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3132,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3438,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3212,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2982,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3666,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2246,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":2345,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2544,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2895,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2563,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":2831,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2635,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2844,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2122,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1984,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2480,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2524,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2875,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":2460,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2138,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2061,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:20401:101","nodeType":"YulBlock","src":"0:20401:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1282:35:101","nodeType":"YulBlock","src":"1282:35:101","statements":[{"nativeSrc":"1292:19:101","nodeType":"YulAssignment","src":"1292:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:101","nodeType":"YulLiteral","src":"1308:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:101","nodeType":"YulIdentifier","src":"1302:5:101"},"nativeSrc":"1302:9:101","nodeType":"YulFunctionCall","src":"1302:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:101","nodeType":"YulIdentifier","src":"1292:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:101","nodeType":"YulTypedName","src":"1275:6:101","type":""}],"src":"1242:75:101"},{"body":{"nativeSrc":"1412:28:101","nodeType":"YulBlock","src":"1412:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:101","nodeType":"YulLiteral","src":"1429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:101","nodeType":"YulLiteral","src":"1432:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:101","nodeType":"YulIdentifier","src":"1422:6:101"},"nativeSrc":"1422:12:101","nodeType":"YulFunctionCall","src":"1422:12:101"},"nativeSrc":"1422:12:101","nodeType":"YulExpressionStatement","src":"1422:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:101","nodeType":"YulFunctionDefinition","src":"1323:117:101"},{"body":{"nativeSrc":"1535:28:101","nodeType":"YulBlock","src":"1535:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:101","nodeType":"YulLiteral","src":"1552:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:101","nodeType":"YulLiteral","src":"1555:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:101","nodeType":"YulIdentifier","src":"1545:6:101"},"nativeSrc":"1545:12:101","nodeType":"YulFunctionCall","src":"1545:12:101"},"nativeSrc":"1545:12:101","nodeType":"YulExpressionStatement","src":"1545:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:101","nodeType":"YulFunctionDefinition","src":"1446:117:101"},{"body":{"nativeSrc":"1614:32:101","nodeType":"YulBlock","src":"1614:32:101","statements":[{"nativeSrc":"1624:16:101","nodeType":"YulAssignment","src":"1624:16:101","value":{"name":"value","nativeSrc":"1635:5:101","nodeType":"YulIdentifier","src":"1635:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:101","nodeType":"YulIdentifier","src":"1624:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1569:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulTypedName","src":"1596:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:101","nodeType":"YulTypedName","src":"1606:7:101","type":""}],"src":"1569:77:101"},{"body":{"nativeSrc":"1695:79:101","nodeType":"YulBlock","src":"1695:79:101","statements":[{"body":{"nativeSrc":"1752:16:101","nodeType":"YulBlock","src":"1752:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1761:1:101","nodeType":"YulLiteral","src":"1761:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1764:1:101","nodeType":"YulLiteral","src":"1764:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1754:6:101","nodeType":"YulIdentifier","src":"1754:6:101"},"nativeSrc":"1754:12:101","nodeType":"YulFunctionCall","src":"1754:12:101"},"nativeSrc":"1754:12:101","nodeType":"YulExpressionStatement","src":"1754:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1718:5:101","nodeType":"YulIdentifier","src":"1718:5:101"},{"arguments":[{"name":"value","nativeSrc":"1743:5:101","nodeType":"YulIdentifier","src":"1743:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1725:17:101","nodeType":"YulIdentifier","src":"1725:17:101"},"nativeSrc":"1725:24:101","nodeType":"YulFunctionCall","src":"1725:24:101"}],"functionName":{"name":"eq","nativeSrc":"1715:2:101","nodeType":"YulIdentifier","src":"1715:2:101"},"nativeSrc":"1715:35:101","nodeType":"YulFunctionCall","src":"1715:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1708:6:101","nodeType":"YulIdentifier","src":"1708:6:101"},"nativeSrc":"1708:43:101","nodeType":"YulFunctionCall","src":"1708:43:101"},"nativeSrc":"1705:63:101","nodeType":"YulIf","src":"1705:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"1652:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1688:5:101","nodeType":"YulTypedName","src":"1688:5:101","type":""}],"src":"1652:122:101"},{"body":{"nativeSrc":"1832:87:101","nodeType":"YulBlock","src":"1832:87:101","statements":[{"nativeSrc":"1842:29:101","nodeType":"YulAssignment","src":"1842:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1864:6:101","nodeType":"YulIdentifier","src":"1864:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1851:12:101","nodeType":"YulIdentifier","src":"1851:12:101"},"nativeSrc":"1851:20:101","nodeType":"YulFunctionCall","src":"1851:20:101"},"variableNames":[{"name":"value","nativeSrc":"1842:5:101","nodeType":"YulIdentifier","src":"1842:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1907:5:101","nodeType":"YulIdentifier","src":"1907:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1880:26:101","nodeType":"YulIdentifier","src":"1880:26:101"},"nativeSrc":"1880:33:101","nodeType":"YulFunctionCall","src":"1880:33:101"},"nativeSrc":"1880:33:101","nodeType":"YulExpressionStatement","src":"1880:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1780:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1810:6:101","nodeType":"YulTypedName","src":"1810:6:101","type":""},{"name":"end","nativeSrc":"1818:3:101","nodeType":"YulTypedName","src":"1818:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1826:5:101","nodeType":"YulTypedName","src":"1826:5:101","type":""}],"src":"1780:139:101"},{"body":{"nativeSrc":"1991:263:101","nodeType":"YulBlock","src":"1991:263:101","statements":[{"body":{"nativeSrc":"2037:83:101","nodeType":"YulBlock","src":"2037:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2039:77:101","nodeType":"YulIdentifier","src":"2039:77:101"},"nativeSrc":"2039:79:101","nodeType":"YulFunctionCall","src":"2039:79:101"},"nativeSrc":"2039:79:101","nodeType":"YulExpressionStatement","src":"2039:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2012:7:101","nodeType":"YulIdentifier","src":"2012:7:101"},{"name":"headStart","nativeSrc":"2021:9:101","nodeType":"YulIdentifier","src":"2021:9:101"}],"functionName":{"name":"sub","nativeSrc":"2008:3:101","nodeType":"YulIdentifier","src":"2008:3:101"},"nativeSrc":"2008:23:101","nodeType":"YulFunctionCall","src":"2008:23:101"},{"kind":"number","nativeSrc":"2033:2:101","nodeType":"YulLiteral","src":"2033:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2004:3:101","nodeType":"YulIdentifier","src":"2004:3:101"},"nativeSrc":"2004:32:101","nodeType":"YulFunctionCall","src":"2004:32:101"},"nativeSrc":"2001:119:101","nodeType":"YulIf","src":"2001:119:101"},{"nativeSrc":"2130:117:101","nodeType":"YulBlock","src":"2130:117:101","statements":[{"nativeSrc":"2145:15:101","nodeType":"YulVariableDeclaration","src":"2145:15:101","value":{"kind":"number","nativeSrc":"2159:1:101","nodeType":"YulLiteral","src":"2159:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2149:6:101","nodeType":"YulTypedName","src":"2149:6:101","type":""}]},{"nativeSrc":"2174:63:101","nodeType":"YulAssignment","src":"2174:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2209:9:101","nodeType":"YulIdentifier","src":"2209:9:101"},{"name":"offset","nativeSrc":"2220:6:101","nodeType":"YulIdentifier","src":"2220:6:101"}],"functionName":{"name":"add","nativeSrc":"2205:3:101","nodeType":"YulIdentifier","src":"2205:3:101"},"nativeSrc":"2205:22:101","nodeType":"YulFunctionCall","src":"2205:22:101"},{"name":"dataEnd","nativeSrc":"2229:7:101","nodeType":"YulIdentifier","src":"2229:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2184:20:101","nodeType":"YulIdentifier","src":"2184:20:101"},"nativeSrc":"2184:53:101","nodeType":"YulFunctionCall","src":"2184:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2174:6:101","nodeType":"YulIdentifier","src":"2174:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1925:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1961:9:101","nodeType":"YulTypedName","src":"1961:9:101","type":""},{"name":"dataEnd","nativeSrc":"1972:7:101","nodeType":"YulTypedName","src":"1972:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1984:6:101","nodeType":"YulTypedName","src":"1984:6:101","type":""}],"src":"1925:329:101"},{"body":{"nativeSrc":"2305:81:101","nodeType":"YulBlock","src":"2305:81:101","statements":[{"nativeSrc":"2315:65:101","nodeType":"YulAssignment","src":"2315:65:101","value":{"arguments":[{"name":"value","nativeSrc":"2330:5:101","nodeType":"YulIdentifier","src":"2330:5:101"},{"kind":"number","nativeSrc":"2337:42:101","nodeType":"YulLiteral","src":"2337:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2326:3:101","nodeType":"YulIdentifier","src":"2326:3:101"},"nativeSrc":"2326:54:101","nodeType":"YulFunctionCall","src":"2326:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2315:7:101","nodeType":"YulIdentifier","src":"2315:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2260:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2287:5:101","nodeType":"YulTypedName","src":"2287:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2297:7:101","nodeType":"YulTypedName","src":"2297:7:101","type":""}],"src":"2260:126:101"},{"body":{"nativeSrc":"2437:51:101","nodeType":"YulBlock","src":"2437:51:101","statements":[{"nativeSrc":"2447:35:101","nodeType":"YulAssignment","src":"2447:35:101","value":{"arguments":[{"name":"value","nativeSrc":"2476:5:101","nodeType":"YulIdentifier","src":"2476:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2458:17:101","nodeType":"YulIdentifier","src":"2458:17:101"},"nativeSrc":"2458:24:101","nodeType":"YulFunctionCall","src":"2458:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2447:7:101","nodeType":"YulIdentifier","src":"2447:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"2392:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2419:5:101","nodeType":"YulTypedName","src":"2419:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2429:7:101","nodeType":"YulTypedName","src":"2429:7:101","type":""}],"src":"2392:96:101"},{"body":{"nativeSrc":"2537:79:101","nodeType":"YulBlock","src":"2537:79:101","statements":[{"body":{"nativeSrc":"2594:16:101","nodeType":"YulBlock","src":"2594:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2603:1:101","nodeType":"YulLiteral","src":"2603:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2606:1:101","nodeType":"YulLiteral","src":"2606:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2596:6:101","nodeType":"YulIdentifier","src":"2596:6:101"},"nativeSrc":"2596:12:101","nodeType":"YulFunctionCall","src":"2596:12:101"},"nativeSrc":"2596:12:101","nodeType":"YulExpressionStatement","src":"2596:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2560:5:101","nodeType":"YulIdentifier","src":"2560:5:101"},{"arguments":[{"name":"value","nativeSrc":"2585:5:101","nodeType":"YulIdentifier","src":"2585:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2567:17:101","nodeType":"YulIdentifier","src":"2567:17:101"},"nativeSrc":"2567:24:101","nodeType":"YulFunctionCall","src":"2567:24:101"}],"functionName":{"name":"eq","nativeSrc":"2557:2:101","nodeType":"YulIdentifier","src":"2557:2:101"},"nativeSrc":"2557:35:101","nodeType":"YulFunctionCall","src":"2557:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2550:6:101","nodeType":"YulIdentifier","src":"2550:6:101"},"nativeSrc":"2550:43:101","nodeType":"YulFunctionCall","src":"2550:43:101"},"nativeSrc":"2547:63:101","nodeType":"YulIf","src":"2547:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2494:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2530:5:101","nodeType":"YulTypedName","src":"2530:5:101","type":""}],"src":"2494:122:101"},{"body":{"nativeSrc":"2674:87:101","nodeType":"YulBlock","src":"2674:87:101","statements":[{"nativeSrc":"2684:29:101","nodeType":"YulAssignment","src":"2684:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2706:6:101","nodeType":"YulIdentifier","src":"2706:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2693:12:101","nodeType":"YulIdentifier","src":"2693:12:101"},"nativeSrc":"2693:20:101","nodeType":"YulFunctionCall","src":"2693:20:101"},"variableNames":[{"name":"value","nativeSrc":"2684:5:101","nodeType":"YulIdentifier","src":"2684:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2722:26:101","nodeType":"YulIdentifier","src":"2722:26:101"},"nativeSrc":"2722:33:101","nodeType":"YulFunctionCall","src":"2722:33:101"},"nativeSrc":"2722:33:101","nodeType":"YulExpressionStatement","src":"2722:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2622:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2652:6:101","nodeType":"YulTypedName","src":"2652:6:101","type":""},{"name":"end","nativeSrc":"2660:3:101","nodeType":"YulTypedName","src":"2660:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2668:5:101","nodeType":"YulTypedName","src":"2668:5:101","type":""}],"src":"2622:139:101"},{"body":{"nativeSrc":"2850:391:101","nodeType":"YulBlock","src":"2850:391:101","statements":[{"body":{"nativeSrc":"2896:83:101","nodeType":"YulBlock","src":"2896:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2898:77:101","nodeType":"YulIdentifier","src":"2898:77:101"},"nativeSrc":"2898:79:101","nodeType":"YulFunctionCall","src":"2898:79:101"},"nativeSrc":"2898:79:101","nodeType":"YulExpressionStatement","src":"2898:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2871:7:101","nodeType":"YulIdentifier","src":"2871:7:101"},{"name":"headStart","nativeSrc":"2880:9:101","nodeType":"YulIdentifier","src":"2880:9:101"}],"functionName":{"name":"sub","nativeSrc":"2867:3:101","nodeType":"YulIdentifier","src":"2867:3:101"},"nativeSrc":"2867:23:101","nodeType":"YulFunctionCall","src":"2867:23:101"},{"kind":"number","nativeSrc":"2892:2:101","nodeType":"YulLiteral","src":"2892:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2863:3:101","nodeType":"YulIdentifier","src":"2863:3:101"},"nativeSrc":"2863:32:101","nodeType":"YulFunctionCall","src":"2863:32:101"},"nativeSrc":"2860:119:101","nodeType":"YulIf","src":"2860:119:101"},{"nativeSrc":"2989:117:101","nodeType":"YulBlock","src":"2989:117:101","statements":[{"nativeSrc":"3004:15:101","nodeType":"YulVariableDeclaration","src":"3004:15:101","value":{"kind":"number","nativeSrc":"3018:1:101","nodeType":"YulLiteral","src":"3018:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3008:6:101","nodeType":"YulTypedName","src":"3008:6:101","type":""}]},{"nativeSrc":"3033:63:101","nodeType":"YulAssignment","src":"3033:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3068:9:101","nodeType":"YulIdentifier","src":"3068:9:101"},{"name":"offset","nativeSrc":"3079:6:101","nodeType":"YulIdentifier","src":"3079:6:101"}],"functionName":{"name":"add","nativeSrc":"3064:3:101","nodeType":"YulIdentifier","src":"3064:3:101"},"nativeSrc":"3064:22:101","nodeType":"YulFunctionCall","src":"3064:22:101"},{"name":"dataEnd","nativeSrc":"3088:7:101","nodeType":"YulIdentifier","src":"3088:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3043:20:101","nodeType":"YulIdentifier","src":"3043:20:101"},"nativeSrc":"3043:53:101","nodeType":"YulFunctionCall","src":"3043:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3033:6:101","nodeType":"YulIdentifier","src":"3033:6:101"}]}]},{"nativeSrc":"3116:118:101","nodeType":"YulBlock","src":"3116:118:101","statements":[{"nativeSrc":"3131:16:101","nodeType":"YulVariableDeclaration","src":"3131:16:101","value":{"kind":"number","nativeSrc":"3145:2:101","nodeType":"YulLiteral","src":"3145:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3135:6:101","nodeType":"YulTypedName","src":"3135:6:101","type":""}]},{"nativeSrc":"3161:63:101","nodeType":"YulAssignment","src":"3161:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3196:9:101","nodeType":"YulIdentifier","src":"3196:9:101"},{"name":"offset","nativeSrc":"3207:6:101","nodeType":"YulIdentifier","src":"3207:6:101"}],"functionName":{"name":"add","nativeSrc":"3192:3:101","nodeType":"YulIdentifier","src":"3192:3:101"},"nativeSrc":"3192:22:101","nodeType":"YulFunctionCall","src":"3192:22:101"},{"name":"dataEnd","nativeSrc":"3216:7:101","nodeType":"YulIdentifier","src":"3216:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3171:20:101","nodeType":"YulIdentifier","src":"3171:20:101"},"nativeSrc":"3171:53:101","nodeType":"YulFunctionCall","src":"3171:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2767:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2812:9:101","nodeType":"YulTypedName","src":"2812:9:101","type":""},{"name":"dataEnd","nativeSrc":"2823:7:101","nodeType":"YulTypedName","src":"2823:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2835:6:101","nodeType":"YulTypedName","src":"2835:6:101","type":""},{"name":"value1","nativeSrc":"2843:6:101","nodeType":"YulTypedName","src":"2843:6:101","type":""}],"src":"2767:474:101"},{"body":{"nativeSrc":"3289:48:101","nodeType":"YulBlock","src":"3289:48:101","statements":[{"nativeSrc":"3299:32:101","nodeType":"YulAssignment","src":"3299:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3324:5:101","nodeType":"YulIdentifier","src":"3324:5:101"}],"functionName":{"name":"iszero","nativeSrc":"3317:6:101","nodeType":"YulIdentifier","src":"3317:6:101"},"nativeSrc":"3317:13:101","nodeType":"YulFunctionCall","src":"3317:13:101"}],"functionName":{"name":"iszero","nativeSrc":"3310:6:101","nodeType":"YulIdentifier","src":"3310:6:101"},"nativeSrc":"3310:21:101","nodeType":"YulFunctionCall","src":"3310:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3299:7:101","nodeType":"YulIdentifier","src":"3299:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"3247:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3271:5:101","nodeType":"YulTypedName","src":"3271:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3281:7:101","nodeType":"YulTypedName","src":"3281:7:101","type":""}],"src":"3247:90:101"},{"body":{"nativeSrc":"3402:50:101","nodeType":"YulBlock","src":"3402:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3419:3:101","nodeType":"YulIdentifier","src":"3419:3:101"},{"arguments":[{"name":"value","nativeSrc":"3439:5:101","nodeType":"YulIdentifier","src":"3439:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3424:14:101","nodeType":"YulIdentifier","src":"3424:14:101"},"nativeSrc":"3424:21:101","nodeType":"YulFunctionCall","src":"3424:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3412:6:101","nodeType":"YulIdentifier","src":"3412:6:101"},"nativeSrc":"3412:34:101","nodeType":"YulFunctionCall","src":"3412:34:101"},"nativeSrc":"3412:34:101","nodeType":"YulExpressionStatement","src":"3412:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3343:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3390:5:101","nodeType":"YulTypedName","src":"3390:5:101","type":""},{"name":"pos","nativeSrc":"3397:3:101","nodeType":"YulTypedName","src":"3397:3:101","type":""}],"src":"3343:109:101"},{"body":{"nativeSrc":"3550:118:101","nodeType":"YulBlock","src":"3550:118:101","statements":[{"nativeSrc":"3560:26:101","nodeType":"YulAssignment","src":"3560:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3572:9:101","nodeType":"YulIdentifier","src":"3572:9:101"},{"kind":"number","nativeSrc":"3583:2:101","nodeType":"YulLiteral","src":"3583:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3568:3:101","nodeType":"YulIdentifier","src":"3568:3:101"},"nativeSrc":"3568:18:101","nodeType":"YulFunctionCall","src":"3568:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3560:4:101","nodeType":"YulIdentifier","src":"3560:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3634:6:101","nodeType":"YulIdentifier","src":"3634:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3647:9:101","nodeType":"YulIdentifier","src":"3647:9:101"},{"kind":"number","nativeSrc":"3658:1:101","nodeType":"YulLiteral","src":"3658:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3643:3:101","nodeType":"YulIdentifier","src":"3643:3:101"},"nativeSrc":"3643:17:101","nodeType":"YulFunctionCall","src":"3643:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3596:37:101","nodeType":"YulIdentifier","src":"3596:37:101"},"nativeSrc":"3596:65:101","nodeType":"YulFunctionCall","src":"3596:65:101"},"nativeSrc":"3596:65:101","nodeType":"YulExpressionStatement","src":"3596:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3458:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3522:9:101","nodeType":"YulTypedName","src":"3522:9:101","type":""},{"name":"value0","nativeSrc":"3534:6:101","nodeType":"YulTypedName","src":"3534:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3545:4:101","nodeType":"YulTypedName","src":"3545:4:101","type":""}],"src":"3458:210:101"},{"body":{"nativeSrc":"3739:53:101","nodeType":"YulBlock","src":"3739:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3756:3:101","nodeType":"YulIdentifier","src":"3756:3:101"},{"arguments":[{"name":"value","nativeSrc":"3779:5:101","nodeType":"YulIdentifier","src":"3779:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3761:17:101","nodeType":"YulIdentifier","src":"3761:17:101"},"nativeSrc":"3761:24:101","nodeType":"YulFunctionCall","src":"3761:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3749:6:101","nodeType":"YulIdentifier","src":"3749:6:101"},"nativeSrc":"3749:37:101","nodeType":"YulFunctionCall","src":"3749:37:101"},"nativeSrc":"3749:37:101","nodeType":"YulExpressionStatement","src":"3749:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3674:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3727:5:101","nodeType":"YulTypedName","src":"3727:5:101","type":""},{"name":"pos","nativeSrc":"3734:3:101","nodeType":"YulTypedName","src":"3734:3:101","type":""}],"src":"3674:118:101"},{"body":{"nativeSrc":"3896:124:101","nodeType":"YulBlock","src":"3896:124:101","statements":[{"nativeSrc":"3906:26:101","nodeType":"YulAssignment","src":"3906:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3918:9:101","nodeType":"YulIdentifier","src":"3918:9:101"},{"kind":"number","nativeSrc":"3929:2:101","nodeType":"YulLiteral","src":"3929:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3914:3:101","nodeType":"YulIdentifier","src":"3914:3:101"},"nativeSrc":"3914:18:101","nodeType":"YulFunctionCall","src":"3914:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3906:4:101","nodeType":"YulIdentifier","src":"3906:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3986:6:101","nodeType":"YulIdentifier","src":"3986:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3999:9:101","nodeType":"YulIdentifier","src":"3999:9:101"},{"kind":"number","nativeSrc":"4010:1:101","nodeType":"YulLiteral","src":"4010:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3995:3:101","nodeType":"YulIdentifier","src":"3995:3:101"},"nativeSrc":"3995:17:101","nodeType":"YulFunctionCall","src":"3995:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3942:43:101","nodeType":"YulIdentifier","src":"3942:43:101"},"nativeSrc":"3942:71:101","nodeType":"YulFunctionCall","src":"3942:71:101"},"nativeSrc":"3942:71:101","nodeType":"YulExpressionStatement","src":"3942:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3798:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3868:9:101","nodeType":"YulTypedName","src":"3868:9:101","type":""},{"name":"value0","nativeSrc":"3880:6:101","nodeType":"YulTypedName","src":"3880:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3891:4:101","nodeType":"YulTypedName","src":"3891:4:101","type":""}],"src":"3798:222:101"},{"body":{"nativeSrc":"4126:519:101","nodeType":"YulBlock","src":"4126:519:101","statements":[{"body":{"nativeSrc":"4172:83:101","nodeType":"YulBlock","src":"4172:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4174:77:101","nodeType":"YulIdentifier","src":"4174:77:101"},"nativeSrc":"4174:79:101","nodeType":"YulFunctionCall","src":"4174:79:101"},"nativeSrc":"4174:79:101","nodeType":"YulExpressionStatement","src":"4174:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4147:7:101","nodeType":"YulIdentifier","src":"4147:7:101"},{"name":"headStart","nativeSrc":"4156:9:101","nodeType":"YulIdentifier","src":"4156:9:101"}],"functionName":{"name":"sub","nativeSrc":"4143:3:101","nodeType":"YulIdentifier","src":"4143:3:101"},"nativeSrc":"4143:23:101","nodeType":"YulFunctionCall","src":"4143:23:101"},{"kind":"number","nativeSrc":"4168:2:101","nodeType":"YulLiteral","src":"4168:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4139:3:101","nodeType":"YulIdentifier","src":"4139:3:101"},"nativeSrc":"4139:32:101","nodeType":"YulFunctionCall","src":"4139:32:101"},"nativeSrc":"4136:119:101","nodeType":"YulIf","src":"4136:119:101"},{"nativeSrc":"4265:117:101","nodeType":"YulBlock","src":"4265:117:101","statements":[{"nativeSrc":"4280:15:101","nodeType":"YulVariableDeclaration","src":"4280:15:101","value":{"kind":"number","nativeSrc":"4294:1:101","nodeType":"YulLiteral","src":"4294:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4284:6:101","nodeType":"YulTypedName","src":"4284:6:101","type":""}]},{"nativeSrc":"4309:63:101","nodeType":"YulAssignment","src":"4309:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4344:9:101","nodeType":"YulIdentifier","src":"4344:9:101"},{"name":"offset","nativeSrc":"4355:6:101","nodeType":"YulIdentifier","src":"4355:6:101"}],"functionName":{"name":"add","nativeSrc":"4340:3:101","nodeType":"YulIdentifier","src":"4340:3:101"},"nativeSrc":"4340:22:101","nodeType":"YulFunctionCall","src":"4340:22:101"},{"name":"dataEnd","nativeSrc":"4364:7:101","nodeType":"YulIdentifier","src":"4364:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4319:20:101","nodeType":"YulIdentifier","src":"4319:20:101"},"nativeSrc":"4319:53:101","nodeType":"YulFunctionCall","src":"4319:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4309:6:101","nodeType":"YulIdentifier","src":"4309:6:101"}]}]},{"nativeSrc":"4392:118:101","nodeType":"YulBlock","src":"4392:118:101","statements":[{"nativeSrc":"4407:16:101","nodeType":"YulVariableDeclaration","src":"4407:16:101","value":{"kind":"number","nativeSrc":"4421:2:101","nodeType":"YulLiteral","src":"4421:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4411:6:101","nodeType":"YulTypedName","src":"4411:6:101","type":""}]},{"nativeSrc":"4437:63:101","nodeType":"YulAssignment","src":"4437:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4472:9:101","nodeType":"YulIdentifier","src":"4472:9:101"},{"name":"offset","nativeSrc":"4483:6:101","nodeType":"YulIdentifier","src":"4483:6:101"}],"functionName":{"name":"add","nativeSrc":"4468:3:101","nodeType":"YulIdentifier","src":"4468:3:101"},"nativeSrc":"4468:22:101","nodeType":"YulFunctionCall","src":"4468:22:101"},{"name":"dataEnd","nativeSrc":"4492:7:101","nodeType":"YulIdentifier","src":"4492:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4447:20:101","nodeType":"YulIdentifier","src":"4447:20:101"},"nativeSrc":"4447:53:101","nodeType":"YulFunctionCall","src":"4447:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4437:6:101","nodeType":"YulIdentifier","src":"4437:6:101"}]}]},{"nativeSrc":"4520:118:101","nodeType":"YulBlock","src":"4520:118:101","statements":[{"nativeSrc":"4535:16:101","nodeType":"YulVariableDeclaration","src":"4535:16:101","value":{"kind":"number","nativeSrc":"4549:2:101","nodeType":"YulLiteral","src":"4549:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4539:6:101","nodeType":"YulTypedName","src":"4539:6:101","type":""}]},{"nativeSrc":"4565:63:101","nodeType":"YulAssignment","src":"4565:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4600:9:101","nodeType":"YulIdentifier","src":"4600:9:101"},{"name":"offset","nativeSrc":"4611:6:101","nodeType":"YulIdentifier","src":"4611:6:101"}],"functionName":{"name":"add","nativeSrc":"4596:3:101","nodeType":"YulIdentifier","src":"4596:3:101"},"nativeSrc":"4596:22:101","nodeType":"YulFunctionCall","src":"4596:22:101"},{"name":"dataEnd","nativeSrc":"4620:7:101","nodeType":"YulIdentifier","src":"4620:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4575:20:101","nodeType":"YulIdentifier","src":"4575:20:101"},"nativeSrc":"4575:53:101","nodeType":"YulFunctionCall","src":"4575:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4565:6:101","nodeType":"YulIdentifier","src":"4565:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"4026:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4080:9:101","nodeType":"YulTypedName","src":"4080:9:101","type":""},{"name":"dataEnd","nativeSrc":"4091:7:101","nodeType":"YulTypedName","src":"4091:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4103:6:101","nodeType":"YulTypedName","src":"4103:6:101","type":""},{"name":"value1","nativeSrc":"4111:6:101","nodeType":"YulTypedName","src":"4111:6:101","type":""},{"name":"value2","nativeSrc":"4119:6:101","nodeType":"YulTypedName","src":"4119:6:101","type":""}],"src":"4026:619:101"},{"body":{"nativeSrc":"4694:43:101","nodeType":"YulBlock","src":"4694:43:101","statements":[{"nativeSrc":"4704:27:101","nodeType":"YulAssignment","src":"4704:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4719:5:101","nodeType":"YulIdentifier","src":"4719:5:101"},{"kind":"number","nativeSrc":"4726:4:101","nodeType":"YulLiteral","src":"4726:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4715:3:101","nodeType":"YulIdentifier","src":"4715:3:101"},"nativeSrc":"4715:16:101","nodeType":"YulFunctionCall","src":"4715:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4704:7:101","nodeType":"YulIdentifier","src":"4704:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4651:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4676:5:101","nodeType":"YulTypedName","src":"4676:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4686:7:101","nodeType":"YulTypedName","src":"4686:7:101","type":""}],"src":"4651:86:101"},{"body":{"nativeSrc":"4804:51:101","nodeType":"YulBlock","src":"4804:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4821:3:101","nodeType":"YulIdentifier","src":"4821:3:101"},{"arguments":[{"name":"value","nativeSrc":"4842:5:101","nodeType":"YulIdentifier","src":"4842:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4826:15:101","nodeType":"YulIdentifier","src":"4826:15:101"},"nativeSrc":"4826:22:101","nodeType":"YulFunctionCall","src":"4826:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4814:6:101","nodeType":"YulIdentifier","src":"4814:6:101"},"nativeSrc":"4814:35:101","nodeType":"YulFunctionCall","src":"4814:35:101"},"nativeSrc":"4814:35:101","nodeType":"YulExpressionStatement","src":"4814:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4743:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4792:5:101","nodeType":"YulTypedName","src":"4792:5:101","type":""},{"name":"pos","nativeSrc":"4799:3:101","nodeType":"YulTypedName","src":"4799:3:101","type":""}],"src":"4743:112:101"},{"body":{"nativeSrc":"4955:120:101","nodeType":"YulBlock","src":"4955:120:101","statements":[{"nativeSrc":"4965:26:101","nodeType":"YulAssignment","src":"4965:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4977:9:101","nodeType":"YulIdentifier","src":"4977:9:101"},{"kind":"number","nativeSrc":"4988:2:101","nodeType":"YulLiteral","src":"4988:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4973:3:101","nodeType":"YulIdentifier","src":"4973:3:101"},"nativeSrc":"4973:18:101","nodeType":"YulFunctionCall","src":"4973:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4965:4:101","nodeType":"YulIdentifier","src":"4965:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5041:6:101","nodeType":"YulIdentifier","src":"5041:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5054:9:101","nodeType":"YulIdentifier","src":"5054:9:101"},{"kind":"number","nativeSrc":"5065:1:101","nodeType":"YulLiteral","src":"5065:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5050:3:101","nodeType":"YulIdentifier","src":"5050:3:101"},"nativeSrc":"5050:17:101","nodeType":"YulFunctionCall","src":"5050:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"5001:39:101","nodeType":"YulIdentifier","src":"5001:39:101"},"nativeSrc":"5001:67:101","nodeType":"YulFunctionCall","src":"5001:67:101"},"nativeSrc":"5001:67:101","nodeType":"YulExpressionStatement","src":"5001:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4861:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4927:9:101","nodeType":"YulTypedName","src":"4927:9:101","type":""},{"name":"value0","nativeSrc":"4939:6:101","nodeType":"YulTypedName","src":"4939:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4950:4:101","nodeType":"YulTypedName","src":"4950:4:101","type":""}],"src":"4861:214:101"},{"body":{"nativeSrc":"5147:263:101","nodeType":"YulBlock","src":"5147:263:101","statements":[{"body":{"nativeSrc":"5193:83:101","nodeType":"YulBlock","src":"5193:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5195:77:101","nodeType":"YulIdentifier","src":"5195:77:101"},"nativeSrc":"5195:79:101","nodeType":"YulFunctionCall","src":"5195:79:101"},"nativeSrc":"5195:79:101","nodeType":"YulExpressionStatement","src":"5195:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5168:7:101","nodeType":"YulIdentifier","src":"5168:7:101"},{"name":"headStart","nativeSrc":"5177:9:101","nodeType":"YulIdentifier","src":"5177:9:101"}],"functionName":{"name":"sub","nativeSrc":"5164:3:101","nodeType":"YulIdentifier","src":"5164:3:101"},"nativeSrc":"5164:23:101","nodeType":"YulFunctionCall","src":"5164:23:101"},{"kind":"number","nativeSrc":"5189:2:101","nodeType":"YulLiteral","src":"5189:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5160:3:101","nodeType":"YulIdentifier","src":"5160:3:101"},"nativeSrc":"5160:32:101","nodeType":"YulFunctionCall","src":"5160:32:101"},"nativeSrc":"5157:119:101","nodeType":"YulIf","src":"5157:119:101"},{"nativeSrc":"5286:117:101","nodeType":"YulBlock","src":"5286:117:101","statements":[{"nativeSrc":"5301:15:101","nodeType":"YulVariableDeclaration","src":"5301:15:101","value":{"kind":"number","nativeSrc":"5315:1:101","nodeType":"YulLiteral","src":"5315:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5305:6:101","nodeType":"YulTypedName","src":"5305:6:101","type":""}]},{"nativeSrc":"5330:63:101","nodeType":"YulAssignment","src":"5330:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5365:9:101","nodeType":"YulIdentifier","src":"5365:9:101"},{"name":"offset","nativeSrc":"5376:6:101","nodeType":"YulIdentifier","src":"5376:6:101"}],"functionName":{"name":"add","nativeSrc":"5361:3:101","nodeType":"YulIdentifier","src":"5361:3:101"},"nativeSrc":"5361:22:101","nodeType":"YulFunctionCall","src":"5361:22:101"},{"name":"dataEnd","nativeSrc":"5385:7:101","nodeType":"YulIdentifier","src":"5385:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5340:20:101","nodeType":"YulIdentifier","src":"5340:20:101"},"nativeSrc":"5340:53:101","nodeType":"YulFunctionCall","src":"5340:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5330:6:101","nodeType":"YulIdentifier","src":"5330:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5081:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5117:9:101","nodeType":"YulTypedName","src":"5117:9:101","type":""},{"name":"dataEnd","nativeSrc":"5128:7:101","nodeType":"YulTypedName","src":"5128:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5140:6:101","nodeType":"YulTypedName","src":"5140:6:101","type":""}],"src":"5081:329:101"},{"body":{"nativeSrc":"5481:53:101","nodeType":"YulBlock","src":"5481:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5498:3:101","nodeType":"YulIdentifier","src":"5498:3:101"},{"arguments":[{"name":"value","nativeSrc":"5521:5:101","nodeType":"YulIdentifier","src":"5521:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5503:17:101","nodeType":"YulIdentifier","src":"5503:17:101"},"nativeSrc":"5503:24:101","nodeType":"YulFunctionCall","src":"5503:24:101"}],"functionName":{"name":"mstore","nativeSrc":"5491:6:101","nodeType":"YulIdentifier","src":"5491:6:101"},"nativeSrc":"5491:37:101","nodeType":"YulFunctionCall","src":"5491:37:101"},"nativeSrc":"5491:37:101","nodeType":"YulExpressionStatement","src":"5491:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5416:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5469:5:101","nodeType":"YulTypedName","src":"5469:5:101","type":""},{"name":"pos","nativeSrc":"5476:3:101","nodeType":"YulTypedName","src":"5476:3:101","type":""}],"src":"5416:118:101"},{"body":{"nativeSrc":"5638:124:101","nodeType":"YulBlock","src":"5638:124:101","statements":[{"nativeSrc":"5648:26:101","nodeType":"YulAssignment","src":"5648:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5660:9:101","nodeType":"YulIdentifier","src":"5660:9:101"},{"kind":"number","nativeSrc":"5671:2:101","nodeType":"YulLiteral","src":"5671:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5656:3:101","nodeType":"YulIdentifier","src":"5656:3:101"},"nativeSrc":"5656:18:101","nodeType":"YulFunctionCall","src":"5656:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5648:4:101","nodeType":"YulIdentifier","src":"5648:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5728:6:101","nodeType":"YulIdentifier","src":"5728:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5741:9:101","nodeType":"YulIdentifier","src":"5741:9:101"},{"kind":"number","nativeSrc":"5752:1:101","nodeType":"YulLiteral","src":"5752:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5737:3:101","nodeType":"YulIdentifier","src":"5737:3:101"},"nativeSrc":"5737:17:101","nodeType":"YulFunctionCall","src":"5737:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5684:43:101","nodeType":"YulIdentifier","src":"5684:43:101"},"nativeSrc":"5684:71:101","nodeType":"YulFunctionCall","src":"5684:71:101"},"nativeSrc":"5684:71:101","nodeType":"YulExpressionStatement","src":"5684:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5540:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5610:9:101","nodeType":"YulTypedName","src":"5610:9:101","type":""},{"name":"value0","nativeSrc":"5622:6:101","nodeType":"YulTypedName","src":"5622:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5633:4:101","nodeType":"YulTypedName","src":"5633:4:101","type":""}],"src":"5540:222:101"},{"body":{"nativeSrc":"5851:391:101","nodeType":"YulBlock","src":"5851:391:101","statements":[{"body":{"nativeSrc":"5897:83:101","nodeType":"YulBlock","src":"5897:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5899:77:101","nodeType":"YulIdentifier","src":"5899:77:101"},"nativeSrc":"5899:79:101","nodeType":"YulFunctionCall","src":"5899:79:101"},"nativeSrc":"5899:79:101","nodeType":"YulExpressionStatement","src":"5899:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5872:7:101","nodeType":"YulIdentifier","src":"5872:7:101"},{"name":"headStart","nativeSrc":"5881:9:101","nodeType":"YulIdentifier","src":"5881:9:101"}],"functionName":{"name":"sub","nativeSrc":"5868:3:101","nodeType":"YulIdentifier","src":"5868:3:101"},"nativeSrc":"5868:23:101","nodeType":"YulFunctionCall","src":"5868:23:101"},{"kind":"number","nativeSrc":"5893:2:101","nodeType":"YulLiteral","src":"5893:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5864:3:101","nodeType":"YulIdentifier","src":"5864:3:101"},"nativeSrc":"5864:32:101","nodeType":"YulFunctionCall","src":"5864:32:101"},"nativeSrc":"5861:119:101","nodeType":"YulIf","src":"5861:119:101"},{"nativeSrc":"5990:117:101","nodeType":"YulBlock","src":"5990:117:101","statements":[{"nativeSrc":"6005:15:101","nodeType":"YulVariableDeclaration","src":"6005:15:101","value":{"kind":"number","nativeSrc":"6019:1:101","nodeType":"YulLiteral","src":"6019:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6009:6:101","nodeType":"YulTypedName","src":"6009:6:101","type":""}]},{"nativeSrc":"6034:63:101","nodeType":"YulAssignment","src":"6034:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6069:9:101","nodeType":"YulIdentifier","src":"6069:9:101"},{"name":"offset","nativeSrc":"6080:6:101","nodeType":"YulIdentifier","src":"6080:6:101"}],"functionName":{"name":"add","nativeSrc":"6065:3:101","nodeType":"YulIdentifier","src":"6065:3:101"},"nativeSrc":"6065:22:101","nodeType":"YulFunctionCall","src":"6065:22:101"},{"name":"dataEnd","nativeSrc":"6089:7:101","nodeType":"YulIdentifier","src":"6089:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6044:20:101","nodeType":"YulIdentifier","src":"6044:20:101"},"nativeSrc":"6044:53:101","nodeType":"YulFunctionCall","src":"6044:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6034:6:101","nodeType":"YulIdentifier","src":"6034:6:101"}]}]},{"nativeSrc":"6117:118:101","nodeType":"YulBlock","src":"6117:118:101","statements":[{"nativeSrc":"6132:16:101","nodeType":"YulVariableDeclaration","src":"6132:16:101","value":{"kind":"number","nativeSrc":"6146:2:101","nodeType":"YulLiteral","src":"6146:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6136:6:101","nodeType":"YulTypedName","src":"6136:6:101","type":""}]},{"nativeSrc":"6162:63:101","nodeType":"YulAssignment","src":"6162:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6197:9:101","nodeType":"YulIdentifier","src":"6197:9:101"},{"name":"offset","nativeSrc":"6208:6:101","nodeType":"YulIdentifier","src":"6208:6:101"}],"functionName":{"name":"add","nativeSrc":"6193:3:101","nodeType":"YulIdentifier","src":"6193:3:101"},"nativeSrc":"6193:22:101","nodeType":"YulFunctionCall","src":"6193:22:101"},{"name":"dataEnd","nativeSrc":"6217:7:101","nodeType":"YulIdentifier","src":"6217:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6172:20:101","nodeType":"YulIdentifier","src":"6172:20:101"},"nativeSrc":"6172:53:101","nodeType":"YulFunctionCall","src":"6172:53:101"},"variableNames":[{"name":"value1","nativeSrc":"6162:6:101","nodeType":"YulIdentifier","src":"6162:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5768:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5813:9:101","nodeType":"YulTypedName","src":"5813:9:101","type":""},{"name":"dataEnd","nativeSrc":"5824:7:101","nodeType":"YulTypedName","src":"5824:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5836:6:101","nodeType":"YulTypedName","src":"5836:6:101","type":""},{"name":"value1","nativeSrc":"5844:6:101","nodeType":"YulTypedName","src":"5844:6:101","type":""}],"src":"5768:474:101"},{"body":{"nativeSrc":"6276:152:101","nodeType":"YulBlock","src":"6276:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6293:1:101","nodeType":"YulLiteral","src":"6293:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6296:77:101","nodeType":"YulLiteral","src":"6296:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6286:6:101","nodeType":"YulIdentifier","src":"6286:6:101"},"nativeSrc":"6286:88:101","nodeType":"YulFunctionCall","src":"6286:88:101"},"nativeSrc":"6286:88:101","nodeType":"YulExpressionStatement","src":"6286:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6390:1:101","nodeType":"YulLiteral","src":"6390:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6393:4:101","nodeType":"YulLiteral","src":"6393:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6383:6:101","nodeType":"YulIdentifier","src":"6383:6:101"},"nativeSrc":"6383:15:101","nodeType":"YulFunctionCall","src":"6383:15:101"},"nativeSrc":"6383:15:101","nodeType":"YulExpressionStatement","src":"6383:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6414:1:101","nodeType":"YulLiteral","src":"6414:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6417:4:101","nodeType":"YulLiteral","src":"6417:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6407:6:101","nodeType":"YulIdentifier","src":"6407:6:101"},"nativeSrc":"6407:15:101","nodeType":"YulFunctionCall","src":"6407:15:101"},"nativeSrc":"6407:15:101","nodeType":"YulExpressionStatement","src":"6407:15:101"}]},"name":"panic_error_0x22","nativeSrc":"6248:180:101","nodeType":"YulFunctionDefinition","src":"6248:180:101"},{"body":{"nativeSrc":"6485:269:101","nodeType":"YulBlock","src":"6485:269:101","statements":[{"nativeSrc":"6495:22:101","nodeType":"YulAssignment","src":"6495:22:101","value":{"arguments":[{"name":"data","nativeSrc":"6509:4:101","nodeType":"YulIdentifier","src":"6509:4:101"},{"kind":"number","nativeSrc":"6515:1:101","nodeType":"YulLiteral","src":"6515:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"6505:3:101","nodeType":"YulIdentifier","src":"6505:3:101"},"nativeSrc":"6505:12:101","nodeType":"YulFunctionCall","src":"6505:12:101"},"variableNames":[{"name":"length","nativeSrc":"6495:6:101","nodeType":"YulIdentifier","src":"6495:6:101"}]},{"nativeSrc":"6526:38:101","nodeType":"YulVariableDeclaration","src":"6526:38:101","value":{"arguments":[{"name":"data","nativeSrc":"6556:4:101","nodeType":"YulIdentifier","src":"6556:4:101"},{"kind":"number","nativeSrc":"6562:1:101","nodeType":"YulLiteral","src":"6562:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6552:3:101","nodeType":"YulIdentifier","src":"6552:3:101"},"nativeSrc":"6552:12:101","nodeType":"YulFunctionCall","src":"6552:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6530:18:101","nodeType":"YulTypedName","src":"6530:18:101","type":""}]},{"body":{"nativeSrc":"6603:51:101","nodeType":"YulBlock","src":"6603:51:101","statements":[{"nativeSrc":"6617:27:101","nodeType":"YulAssignment","src":"6617:27:101","value":{"arguments":[{"name":"length","nativeSrc":"6631:6:101","nodeType":"YulIdentifier","src":"6631:6:101"},{"kind":"number","nativeSrc":"6639:4:101","nodeType":"YulLiteral","src":"6639:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6627:3:101","nodeType":"YulIdentifier","src":"6627:3:101"},"nativeSrc":"6627:17:101","nodeType":"YulFunctionCall","src":"6627:17:101"},"variableNames":[{"name":"length","nativeSrc":"6617:6:101","nodeType":"YulIdentifier","src":"6617:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6583:18:101","nodeType":"YulIdentifier","src":"6583:18:101"}],"functionName":{"name":"iszero","nativeSrc":"6576:6:101","nodeType":"YulIdentifier","src":"6576:6:101"},"nativeSrc":"6576:26:101","nodeType":"YulFunctionCall","src":"6576:26:101"},"nativeSrc":"6573:81:101","nodeType":"YulIf","src":"6573:81:101"},{"body":{"nativeSrc":"6706:42:101","nodeType":"YulBlock","src":"6706:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6720:16:101","nodeType":"YulIdentifier","src":"6720:16:101"},"nativeSrc":"6720:18:101","nodeType":"YulFunctionCall","src":"6720:18:101"},"nativeSrc":"6720:18:101","nodeType":"YulExpressionStatement","src":"6720:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6670:18:101","nodeType":"YulIdentifier","src":"6670:18:101"},{"arguments":[{"name":"length","nativeSrc":"6693:6:101","nodeType":"YulIdentifier","src":"6693:6:101"},{"kind":"number","nativeSrc":"6701:2:101","nodeType":"YulLiteral","src":"6701:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6690:2:101","nodeType":"YulIdentifier","src":"6690:2:101"},"nativeSrc":"6690:14:101","nodeType":"YulFunctionCall","src":"6690:14:101"}],"functionName":{"name":"eq","nativeSrc":"6667:2:101","nodeType":"YulIdentifier","src":"6667:2:101"},"nativeSrc":"6667:38:101","nodeType":"YulFunctionCall","src":"6667:38:101"},"nativeSrc":"6664:84:101","nodeType":"YulIf","src":"6664:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"6434:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6469:4:101","nodeType":"YulTypedName","src":"6469:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6478:6:101","nodeType":"YulTypedName","src":"6478:6:101","type":""}],"src":"6434:320:101"},{"body":{"nativeSrc":"6788:152:101","nodeType":"YulBlock","src":"6788:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6805:1:101","nodeType":"YulLiteral","src":"6805:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6808:77:101","nodeType":"YulLiteral","src":"6808:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6798:6:101","nodeType":"YulIdentifier","src":"6798:6:101"},"nativeSrc":"6798:88:101","nodeType":"YulFunctionCall","src":"6798:88:101"},"nativeSrc":"6798:88:101","nodeType":"YulExpressionStatement","src":"6798:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6902:1:101","nodeType":"YulLiteral","src":"6902:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6905:4:101","nodeType":"YulLiteral","src":"6905:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6895:6:101","nodeType":"YulIdentifier","src":"6895:6:101"},"nativeSrc":"6895:15:101","nodeType":"YulFunctionCall","src":"6895:15:101"},"nativeSrc":"6895:15:101","nodeType":"YulExpressionStatement","src":"6895:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6926:1:101","nodeType":"YulLiteral","src":"6926:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6929:4:101","nodeType":"YulLiteral","src":"6929:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6919:6:101","nodeType":"YulIdentifier","src":"6919:6:101"},"nativeSrc":"6919:15:101","nodeType":"YulFunctionCall","src":"6919:15:101"},"nativeSrc":"6919:15:101","nodeType":"YulExpressionStatement","src":"6919:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6760:180:101","nodeType":"YulFunctionDefinition","src":"6760:180:101"},{"body":{"nativeSrc":"6990:147:101","nodeType":"YulBlock","src":"6990:147:101","statements":[{"nativeSrc":"7000:25:101","nodeType":"YulAssignment","src":"7000:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7023:1:101","nodeType":"YulIdentifier","src":"7023:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7005:17:101","nodeType":"YulIdentifier","src":"7005:17:101"},"nativeSrc":"7005:20:101","nodeType":"YulFunctionCall","src":"7005:20:101"},"variableNames":[{"name":"x","nativeSrc":"7000:1:101","nodeType":"YulIdentifier","src":"7000:1:101"}]},{"nativeSrc":"7034:25:101","nodeType":"YulAssignment","src":"7034:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7057:1:101","nodeType":"YulIdentifier","src":"7057:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7039:17:101","nodeType":"YulIdentifier","src":"7039:17:101"},"nativeSrc":"7039:20:101","nodeType":"YulFunctionCall","src":"7039:20:101"},"variableNames":[{"name":"y","nativeSrc":"7034:1:101","nodeType":"YulIdentifier","src":"7034:1:101"}]},{"nativeSrc":"7068:16:101","nodeType":"YulAssignment","src":"7068:16:101","value":{"arguments":[{"name":"x","nativeSrc":"7079:1:101","nodeType":"YulIdentifier","src":"7079:1:101"},{"name":"y","nativeSrc":"7082:1:101","nodeType":"YulIdentifier","src":"7082:1:101"}],"functionName":{"name":"add","nativeSrc":"7075:3:101","nodeType":"YulIdentifier","src":"7075:3:101"},"nativeSrc":"7075:9:101","nodeType":"YulFunctionCall","src":"7075:9:101"},"variableNames":[{"name":"sum","nativeSrc":"7068:3:101","nodeType":"YulIdentifier","src":"7068:3:101"}]},{"body":{"nativeSrc":"7108:22:101","nodeType":"YulBlock","src":"7108:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7110:16:101","nodeType":"YulIdentifier","src":"7110:16:101"},"nativeSrc":"7110:18:101","nodeType":"YulFunctionCall","src":"7110:18:101"},"nativeSrc":"7110:18:101","nodeType":"YulExpressionStatement","src":"7110:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7100:1:101","nodeType":"YulIdentifier","src":"7100:1:101"},{"name":"sum","nativeSrc":"7103:3:101","nodeType":"YulIdentifier","src":"7103:3:101"}],"functionName":{"name":"gt","nativeSrc":"7097:2:101","nodeType":"YulIdentifier","src":"7097:2:101"},"nativeSrc":"7097:10:101","nodeType":"YulFunctionCall","src":"7097:10:101"},"nativeSrc":"7094:36:101","nodeType":"YulIf","src":"7094:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6946:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6977:1:101","nodeType":"YulTypedName","src":"6977:1:101","type":""},{"name":"y","nativeSrc":"6980:1:101","nodeType":"YulTypedName","src":"6980:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6986:3:101","nodeType":"YulTypedName","src":"6986:3:101","type":""}],"src":"6946:191:101"},{"body":{"nativeSrc":"7194:51:101","nodeType":"YulBlock","src":"7194:51:101","statements":[{"nativeSrc":"7204:34:101","nodeType":"YulAssignment","src":"7204:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7229:1:101","nodeType":"YulLiteral","src":"7229:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7232:5:101","nodeType":"YulIdentifier","src":"7232:5:101"}],"functionName":{"name":"shr","nativeSrc":"7225:3:101","nodeType":"YulIdentifier","src":"7225:3:101"},"nativeSrc":"7225:13:101","nodeType":"YulFunctionCall","src":"7225:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7204:8:101","nodeType":"YulIdentifier","src":"7204:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7143:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7175:5:101","nodeType":"YulTypedName","src":"7175:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7185:8:101","nodeType":"YulTypedName","src":"7185:8:101","type":""}],"src":"7143:102:101"},{"body":{"nativeSrc":"7324:775:101","nodeType":"YulBlock","src":"7324:775:101","statements":[{"nativeSrc":"7334:15:101","nodeType":"YulAssignment","src":"7334:15:101","value":{"name":"_power","nativeSrc":"7343:6:101","nodeType":"YulIdentifier","src":"7343:6:101"},"variableNames":[{"name":"power","nativeSrc":"7334:5:101","nodeType":"YulIdentifier","src":"7334:5:101"}]},{"nativeSrc":"7358:14:101","nodeType":"YulAssignment","src":"7358:14:101","value":{"name":"_base","nativeSrc":"7367:5:101","nodeType":"YulIdentifier","src":"7367:5:101"},"variableNames":[{"name":"base","nativeSrc":"7358:4:101","nodeType":"YulIdentifier","src":"7358:4:101"}]},{"body":{"nativeSrc":"7416:677:101","nodeType":"YulBlock","src":"7416:677:101","statements":[{"body":{"nativeSrc":"7504:22:101","nodeType":"YulBlock","src":"7504:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7506:16:101","nodeType":"YulIdentifier","src":"7506:16:101"},"nativeSrc":"7506:18:101","nodeType":"YulFunctionCall","src":"7506:18:101"},"nativeSrc":"7506:18:101","nodeType":"YulExpressionStatement","src":"7506:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"7482:4:101","nodeType":"YulIdentifier","src":"7482:4:101"},{"arguments":[{"name":"max","nativeSrc":"7492:3:101","nodeType":"YulIdentifier","src":"7492:3:101"},{"name":"base","nativeSrc":"7497:4:101","nodeType":"YulIdentifier","src":"7497:4:101"}],"functionName":{"name":"div","nativeSrc":"7488:3:101","nodeType":"YulIdentifier","src":"7488:3:101"},"nativeSrc":"7488:14:101","nodeType":"YulFunctionCall","src":"7488:14:101"}],"functionName":{"name":"gt","nativeSrc":"7479:2:101","nodeType":"YulIdentifier","src":"7479:2:101"},"nativeSrc":"7479:24:101","nodeType":"YulFunctionCall","src":"7479:24:101"},"nativeSrc":"7476:50:101","nodeType":"YulIf","src":"7476:50:101"},{"body":{"nativeSrc":"7571:419:101","nodeType":"YulBlock","src":"7571:419:101","statements":[{"nativeSrc":"7951:25:101","nodeType":"YulAssignment","src":"7951:25:101","value":{"arguments":[{"name":"power","nativeSrc":"7964:5:101","nodeType":"YulIdentifier","src":"7964:5:101"},{"name":"base","nativeSrc":"7971:4:101","nodeType":"YulIdentifier","src":"7971:4:101"}],"functionName":{"name":"mul","nativeSrc":"7960:3:101","nodeType":"YulIdentifier","src":"7960:3:101"},"nativeSrc":"7960:16:101","nodeType":"YulFunctionCall","src":"7960:16:101"},"variableNames":[{"name":"power","nativeSrc":"7951:5:101","nodeType":"YulIdentifier","src":"7951:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7546:8:101","nodeType":"YulIdentifier","src":"7546:8:101"},{"kind":"number","nativeSrc":"7556:1:101","nodeType":"YulLiteral","src":"7556:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"7542:3:101","nodeType":"YulIdentifier","src":"7542:3:101"},"nativeSrc":"7542:16:101","nodeType":"YulFunctionCall","src":"7542:16:101"},"nativeSrc":"7539:451:101","nodeType":"YulIf","src":"7539:451:101"},{"nativeSrc":"8003:23:101","nodeType":"YulAssignment","src":"8003:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8015:4:101","nodeType":"YulIdentifier","src":"8015:4:101"},{"name":"base","nativeSrc":"8021:4:101","nodeType":"YulIdentifier","src":"8021:4:101"}],"functionName":{"name":"mul","nativeSrc":"8011:3:101","nodeType":"YulIdentifier","src":"8011:3:101"},"nativeSrc":"8011:15:101","nodeType":"YulFunctionCall","src":"8011:15:101"},"variableNames":[{"name":"base","nativeSrc":"8003:4:101","nodeType":"YulIdentifier","src":"8003:4:101"}]},{"nativeSrc":"8039:44:101","nodeType":"YulAssignment","src":"8039:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8074:8:101","nodeType":"YulIdentifier","src":"8074:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8051:22:101","nodeType":"YulIdentifier","src":"8051:22:101"},"nativeSrc":"8051:32:101","nodeType":"YulFunctionCall","src":"8051:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8039:8:101","nodeType":"YulIdentifier","src":"8039:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7392:8:101","nodeType":"YulIdentifier","src":"7392:8:101"},{"kind":"number","nativeSrc":"7402:1:101","nodeType":"YulLiteral","src":"7402:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7389:2:101","nodeType":"YulIdentifier","src":"7389:2:101"},"nativeSrc":"7389:15:101","nodeType":"YulFunctionCall","src":"7389:15:101"},"nativeSrc":"7381:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"7405:2:101","nodeType":"YulBlock","src":"7405:2:101","statements":[]},"pre":{"nativeSrc":"7385:3:101","nodeType":"YulBlock","src":"7385:3:101","statements":[]},"src":"7381:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7251:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7279:6:101","nodeType":"YulTypedName","src":"7279:6:101","type":""},{"name":"_base","nativeSrc":"7287:5:101","nodeType":"YulTypedName","src":"7287:5:101","type":""},{"name":"exponent","nativeSrc":"7294:8:101","nodeType":"YulTypedName","src":"7294:8:101","type":""},{"name":"max","nativeSrc":"7304:3:101","nodeType":"YulTypedName","src":"7304:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7312:5:101","nodeType":"YulTypedName","src":"7312:5:101","type":""},{"name":"base","nativeSrc":"7319:4:101","nodeType":"YulTypedName","src":"7319:4:101","type":""}],"src":"7251:848:101"},{"body":{"nativeSrc":"8165:1013:101","nodeType":"YulBlock","src":"8165:1013:101","statements":[{"body":{"nativeSrc":"8360:20:101","nodeType":"YulBlock","src":"8360:20:101","statements":[{"nativeSrc":"8362:10:101","nodeType":"YulAssignment","src":"8362:10:101","value":{"kind":"number","nativeSrc":"8371:1:101","nodeType":"YulLiteral","src":"8371:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8362:5:101","nodeType":"YulIdentifier","src":"8362:5:101"}]},{"nativeSrc":"8373:5:101","nodeType":"YulLeave","src":"8373:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8350:8:101","nodeType":"YulIdentifier","src":"8350:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8343:6:101","nodeType":"YulIdentifier","src":"8343:6:101"},"nativeSrc":"8343:16:101","nodeType":"YulFunctionCall","src":"8343:16:101"},"nativeSrc":"8340:40:101","nodeType":"YulIf","src":"8340:40:101"},{"body":{"nativeSrc":"8405:20:101","nodeType":"YulBlock","src":"8405:20:101","statements":[{"nativeSrc":"8407:10:101","nodeType":"YulAssignment","src":"8407:10:101","value":{"kind":"number","nativeSrc":"8416:1:101","nodeType":"YulLiteral","src":"8416:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"8407:5:101","nodeType":"YulIdentifier","src":"8407:5:101"}]},{"nativeSrc":"8418:5:101","nodeType":"YulLeave","src":"8418:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8399:4:101","nodeType":"YulIdentifier","src":"8399:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8392:6:101","nodeType":"YulIdentifier","src":"8392:6:101"},"nativeSrc":"8392:12:101","nodeType":"YulFunctionCall","src":"8392:12:101"},"nativeSrc":"8389:36:101","nodeType":"YulIf","src":"8389:36:101"},{"cases":[{"body":{"nativeSrc":"8535:20:101","nodeType":"YulBlock","src":"8535:20:101","statements":[{"nativeSrc":"8537:10:101","nodeType":"YulAssignment","src":"8537:10:101","value":{"kind":"number","nativeSrc":"8546:1:101","nodeType":"YulLiteral","src":"8546:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8537:5:101","nodeType":"YulIdentifier","src":"8537:5:101"}]},{"nativeSrc":"8548:5:101","nodeType":"YulLeave","src":"8548:5:101"}]},"nativeSrc":"8528:27:101","nodeType":"YulCase","src":"8528:27:101","value":{"kind":"number","nativeSrc":"8533:1:101","nodeType":"YulLiteral","src":"8533:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8579:176:101","nodeType":"YulBlock","src":"8579:176:101","statements":[{"body":{"nativeSrc":"8614:22:101","nodeType":"YulBlock","src":"8614:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8616:16:101","nodeType":"YulIdentifier","src":"8616:16:101"},"nativeSrc":"8616:18:101","nodeType":"YulFunctionCall","src":"8616:18:101"},"nativeSrc":"8616:18:101","nodeType":"YulExpressionStatement","src":"8616:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8599:8:101","nodeType":"YulIdentifier","src":"8599:8:101"},{"kind":"number","nativeSrc":"8609:3:101","nodeType":"YulLiteral","src":"8609:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"8596:2:101","nodeType":"YulIdentifier","src":"8596:2:101"},"nativeSrc":"8596:17:101","nodeType":"YulFunctionCall","src":"8596:17:101"},"nativeSrc":"8593:43:101","nodeType":"YulIf","src":"8593:43:101"},{"nativeSrc":"8649:25:101","nodeType":"YulAssignment","src":"8649:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"8662:1:101","nodeType":"YulLiteral","src":"8662:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"8665:8:101","nodeType":"YulIdentifier","src":"8665:8:101"}],"functionName":{"name":"exp","nativeSrc":"8658:3:101","nodeType":"YulIdentifier","src":"8658:3:101"},"nativeSrc":"8658:16:101","nodeType":"YulFunctionCall","src":"8658:16:101"},"variableNames":[{"name":"power","nativeSrc":"8649:5:101","nodeType":"YulIdentifier","src":"8649:5:101"}]},{"body":{"nativeSrc":"8705:22:101","nodeType":"YulBlock","src":"8705:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8707:16:101","nodeType":"YulIdentifier","src":"8707:16:101"},"nativeSrc":"8707:18:101","nodeType":"YulFunctionCall","src":"8707:18:101"},"nativeSrc":"8707:18:101","nodeType":"YulExpressionStatement","src":"8707:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"8693:5:101","nodeType":"YulIdentifier","src":"8693:5:101"},{"name":"max","nativeSrc":"8700:3:101","nodeType":"YulIdentifier","src":"8700:3:101"}],"functionName":{"name":"gt","nativeSrc":"8690:2:101","nodeType":"YulIdentifier","src":"8690:2:101"},"nativeSrc":"8690:14:101","nodeType":"YulFunctionCall","src":"8690:14:101"},"nativeSrc":"8687:40:101","nodeType":"YulIf","src":"8687:40:101"},{"nativeSrc":"8740:5:101","nodeType":"YulLeave","src":"8740:5:101"}]},"nativeSrc":"8564:191:101","nodeType":"YulCase","src":"8564:191:101","value":{"kind":"number","nativeSrc":"8569:1:101","nodeType":"YulLiteral","src":"8569:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"8485:4:101","nodeType":"YulIdentifier","src":"8485:4:101"},"nativeSrc":"8478:277:101","nodeType":"YulSwitch","src":"8478:277:101"},{"body":{"nativeSrc":"8887:123:101","nodeType":"YulBlock","src":"8887:123:101","statements":[{"nativeSrc":"8901:28:101","nodeType":"YulAssignment","src":"8901:28:101","value":{"arguments":[{"name":"base","nativeSrc":"8914:4:101","nodeType":"YulIdentifier","src":"8914:4:101"},{"name":"exponent","nativeSrc":"8920:8:101","nodeType":"YulIdentifier","src":"8920:8:101"}],"functionName":{"name":"exp","nativeSrc":"8910:3:101","nodeType":"YulIdentifier","src":"8910:3:101"},"nativeSrc":"8910:19:101","nodeType":"YulFunctionCall","src":"8910:19:101"},"variableNames":[{"name":"power","nativeSrc":"8901:5:101","nodeType":"YulIdentifier","src":"8901:5:101"}]},{"body":{"nativeSrc":"8960:22:101","nodeType":"YulBlock","src":"8960:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8962:16:101","nodeType":"YulIdentifier","src":"8962:16:101"},"nativeSrc":"8962:18:101","nodeType":"YulFunctionCall","src":"8962:18:101"},"nativeSrc":"8962:18:101","nodeType":"YulExpressionStatement","src":"8962:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"8948:5:101","nodeType":"YulIdentifier","src":"8948:5:101"},{"name":"max","nativeSrc":"8955:3:101","nodeType":"YulIdentifier","src":"8955:3:101"}],"functionName":{"name":"gt","nativeSrc":"8945:2:101","nodeType":"YulIdentifier","src":"8945:2:101"},"nativeSrc":"8945:14:101","nodeType":"YulFunctionCall","src":"8945:14:101"},"nativeSrc":"8942:40:101","nodeType":"YulIf","src":"8942:40:101"},{"nativeSrc":"8995:5:101","nodeType":"YulLeave","src":"8995:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"8790:4:101","nodeType":"YulIdentifier","src":"8790:4:101"},{"kind":"number","nativeSrc":"8796:2:101","nodeType":"YulLiteral","src":"8796:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"8787:2:101","nodeType":"YulIdentifier","src":"8787:2:101"},"nativeSrc":"8787:12:101","nodeType":"YulFunctionCall","src":"8787:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"8804:8:101","nodeType":"YulIdentifier","src":"8804:8:101"},{"kind":"number","nativeSrc":"8814:2:101","nodeType":"YulLiteral","src":"8814:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"8801:2:101","nodeType":"YulIdentifier","src":"8801:2:101"},"nativeSrc":"8801:16:101","nodeType":"YulFunctionCall","src":"8801:16:101"}],"functionName":{"name":"and","nativeSrc":"8783:3:101","nodeType":"YulIdentifier","src":"8783:3:101"},"nativeSrc":"8783:35:101","nodeType":"YulFunctionCall","src":"8783:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"8839:4:101","nodeType":"YulIdentifier","src":"8839:4:101"},{"kind":"number","nativeSrc":"8845:3:101","nodeType":"YulLiteral","src":"8845:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"8836:2:101","nodeType":"YulIdentifier","src":"8836:2:101"},"nativeSrc":"8836:13:101","nodeType":"YulFunctionCall","src":"8836:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"8854:8:101","nodeType":"YulIdentifier","src":"8854:8:101"},{"kind":"number","nativeSrc":"8864:2:101","nodeType":"YulLiteral","src":"8864:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"8851:2:101","nodeType":"YulIdentifier","src":"8851:2:101"},"nativeSrc":"8851:16:101","nodeType":"YulFunctionCall","src":"8851:16:101"}],"functionName":{"name":"and","nativeSrc":"8832:3:101","nodeType":"YulIdentifier","src":"8832:3:101"},"nativeSrc":"8832:36:101","nodeType":"YulFunctionCall","src":"8832:36:101"}],"functionName":{"name":"or","nativeSrc":"8767:2:101","nodeType":"YulIdentifier","src":"8767:2:101"},"nativeSrc":"8767:111:101","nodeType":"YulFunctionCall","src":"8767:111:101"},"nativeSrc":"8764:246:101","nodeType":"YulIf","src":"8764:246:101"},{"nativeSrc":"9020:57:101","nodeType":"YulAssignment","src":"9020:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9054:1:101","nodeType":"YulLiteral","src":"9054:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9057:4:101","nodeType":"YulIdentifier","src":"9057:4:101"},{"name":"exponent","nativeSrc":"9063:8:101","nodeType":"YulIdentifier","src":"9063:8:101"},{"name":"max","nativeSrc":"9073:3:101","nodeType":"YulIdentifier","src":"9073:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9035:18:101","nodeType":"YulIdentifier","src":"9035:18:101"},"nativeSrc":"9035:42:101","nodeType":"YulFunctionCall","src":"9035:42:101"},"variableNames":[{"name":"power","nativeSrc":"9020:5:101","nodeType":"YulIdentifier","src":"9020:5:101"},{"name":"base","nativeSrc":"9027:4:101","nodeType":"YulIdentifier","src":"9027:4:101"}]},{"body":{"nativeSrc":"9116:22:101","nodeType":"YulBlock","src":"9116:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9118:16:101","nodeType":"YulIdentifier","src":"9118:16:101"},"nativeSrc":"9118:18:101","nodeType":"YulFunctionCall","src":"9118:18:101"},"nativeSrc":"9118:18:101","nodeType":"YulExpressionStatement","src":"9118:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9093:5:101","nodeType":"YulIdentifier","src":"9093:5:101"},{"arguments":[{"name":"max","nativeSrc":"9104:3:101","nodeType":"YulIdentifier","src":"9104:3:101"},{"name":"base","nativeSrc":"9109:4:101","nodeType":"YulIdentifier","src":"9109:4:101"}],"functionName":{"name":"div","nativeSrc":"9100:3:101","nodeType":"YulIdentifier","src":"9100:3:101"},"nativeSrc":"9100:14:101","nodeType":"YulFunctionCall","src":"9100:14:101"}],"functionName":{"name":"gt","nativeSrc":"9090:2:101","nodeType":"YulIdentifier","src":"9090:2:101"},"nativeSrc":"9090:25:101","nodeType":"YulFunctionCall","src":"9090:25:101"},"nativeSrc":"9087:51:101","nodeType":"YulIf","src":"9087:51:101"},{"nativeSrc":"9147:25:101","nodeType":"YulAssignment","src":"9147:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9160:5:101","nodeType":"YulIdentifier","src":"9160:5:101"},{"name":"base","nativeSrc":"9167:4:101","nodeType":"YulIdentifier","src":"9167:4:101"}],"functionName":{"name":"mul","nativeSrc":"9156:3:101","nodeType":"YulIdentifier","src":"9156:3:101"},"nativeSrc":"9156:16:101","nodeType":"YulFunctionCall","src":"9156:16:101"},"variableNames":[{"name":"power","nativeSrc":"9147:5:101","nodeType":"YulIdentifier","src":"9147:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8105:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8135:4:101","nodeType":"YulTypedName","src":"8135:4:101","type":""},{"name":"exponent","nativeSrc":"8141:8:101","nodeType":"YulTypedName","src":"8141:8:101","type":""},{"name":"max","nativeSrc":"8151:3:101","nodeType":"YulTypedName","src":"8151:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8159:5:101","nodeType":"YulTypedName","src":"8159:5:101","type":""}],"src":"8105:1073:101"},{"body":{"nativeSrc":"9250:219:101","nodeType":"YulBlock","src":"9250:219:101","statements":[{"nativeSrc":"9260:31:101","nodeType":"YulAssignment","src":"9260:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9286:4:101","nodeType":"YulIdentifier","src":"9286:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9268:17:101","nodeType":"YulIdentifier","src":"9268:17:101"},"nativeSrc":"9268:23:101","nodeType":"YulFunctionCall","src":"9268:23:101"},"variableNames":[{"name":"base","nativeSrc":"9260:4:101","nodeType":"YulIdentifier","src":"9260:4:101"}]},{"nativeSrc":"9300:39:101","nodeType":"YulAssignment","src":"9300:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9330:8:101","nodeType":"YulIdentifier","src":"9330:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9312:17:101","nodeType":"YulIdentifier","src":"9312:17:101"},"nativeSrc":"9312:27:101","nodeType":"YulFunctionCall","src":"9312:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9300:8:101","nodeType":"YulIdentifier","src":"9300:8:101"}]},{"nativeSrc":"9349:113:101","nodeType":"YulAssignment","src":"9349:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9379:4:101","nodeType":"YulIdentifier","src":"9379:4:101"},{"name":"exponent","nativeSrc":"9385:8:101","nodeType":"YulIdentifier","src":"9385:8:101"},{"kind":"number","nativeSrc":"9395:66:101","nodeType":"YulLiteral","src":"9395:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9358:20:101","nodeType":"YulIdentifier","src":"9358:20:101"},"nativeSrc":"9358:104:101","nodeType":"YulFunctionCall","src":"9358:104:101"},"variableNames":[{"name":"power","nativeSrc":"9349:5:101","nodeType":"YulIdentifier","src":"9349:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9184:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9225:4:101","nodeType":"YulTypedName","src":"9225:4:101","type":""},{"name":"exponent","nativeSrc":"9231:8:101","nodeType":"YulTypedName","src":"9231:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9244:5:101","nodeType":"YulTypedName","src":"9244:5:101","type":""}],"src":"9184:285:101"},{"body":{"nativeSrc":"9523:362:101","nodeType":"YulBlock","src":"9523:362:101","statements":[{"nativeSrc":"9533:25:101","nodeType":"YulAssignment","src":"9533:25:101","value":{"arguments":[{"name":"x","nativeSrc":"9556:1:101","nodeType":"YulIdentifier","src":"9556:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9538:17:101","nodeType":"YulIdentifier","src":"9538:17:101"},"nativeSrc":"9538:20:101","nodeType":"YulFunctionCall","src":"9538:20:101"},"variableNames":[{"name":"x","nativeSrc":"9533:1:101","nodeType":"YulIdentifier","src":"9533:1:101"}]},{"nativeSrc":"9567:25:101","nodeType":"YulAssignment","src":"9567:25:101","value":{"arguments":[{"name":"y","nativeSrc":"9590:1:101","nodeType":"YulIdentifier","src":"9590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9572:17:101","nodeType":"YulIdentifier","src":"9572:17:101"},"nativeSrc":"9572:20:101","nodeType":"YulFunctionCall","src":"9572:20:101"},"variableNames":[{"name":"y","nativeSrc":"9567:1:101","nodeType":"YulIdentifier","src":"9567:1:101"}]},{"nativeSrc":"9601:28:101","nodeType":"YulVariableDeclaration","src":"9601:28:101","value":{"arguments":[{"name":"x","nativeSrc":"9624:1:101","nodeType":"YulIdentifier","src":"9624:1:101"},{"name":"y","nativeSrc":"9627:1:101","nodeType":"YulIdentifier","src":"9627:1:101"}],"functionName":{"name":"mul","nativeSrc":"9620:3:101","nodeType":"YulIdentifier","src":"9620:3:101"},"nativeSrc":"9620:9:101","nodeType":"YulFunctionCall","src":"9620:9:101"},"variables":[{"name":"product_raw","nativeSrc":"9605:11:101","nodeType":"YulTypedName","src":"9605:11:101","type":""}]},{"nativeSrc":"9638:41:101","nodeType":"YulAssignment","src":"9638:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"9667:11:101","nodeType":"YulIdentifier","src":"9667:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9649:17:101","nodeType":"YulIdentifier","src":"9649:17:101"},"nativeSrc":"9649:30:101","nodeType":"YulFunctionCall","src":"9649:30:101"},"variableNames":[{"name":"product","nativeSrc":"9638:7:101","nodeType":"YulIdentifier","src":"9638:7:101"}]},{"body":{"nativeSrc":"9856:22:101","nodeType":"YulBlock","src":"9856:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9858:16:101","nodeType":"YulIdentifier","src":"9858:16:101"},"nativeSrc":"9858:18:101","nodeType":"YulFunctionCall","src":"9858:18:101"},"nativeSrc":"9858:18:101","nodeType":"YulExpressionStatement","src":"9858:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"9789:1:101","nodeType":"YulIdentifier","src":"9789:1:101"}],"functionName":{"name":"iszero","nativeSrc":"9782:6:101","nodeType":"YulIdentifier","src":"9782:6:101"},"nativeSrc":"9782:9:101","nodeType":"YulFunctionCall","src":"9782:9:101"},{"arguments":[{"name":"y","nativeSrc":"9812:1:101","nodeType":"YulIdentifier","src":"9812:1:101"},{"arguments":[{"name":"product","nativeSrc":"9819:7:101","nodeType":"YulIdentifier","src":"9819:7:101"},{"name":"x","nativeSrc":"9828:1:101","nodeType":"YulIdentifier","src":"9828:1:101"}],"functionName":{"name":"div","nativeSrc":"9815:3:101","nodeType":"YulIdentifier","src":"9815:3:101"},"nativeSrc":"9815:15:101","nodeType":"YulFunctionCall","src":"9815:15:101"}],"functionName":{"name":"eq","nativeSrc":"9809:2:101","nodeType":"YulIdentifier","src":"9809:2:101"},"nativeSrc":"9809:22:101","nodeType":"YulFunctionCall","src":"9809:22:101"}],"functionName":{"name":"or","nativeSrc":"9762:2:101","nodeType":"YulIdentifier","src":"9762:2:101"},"nativeSrc":"9762:83:101","nodeType":"YulFunctionCall","src":"9762:83:101"}],"functionName":{"name":"iszero","nativeSrc":"9742:6:101","nodeType":"YulIdentifier","src":"9742:6:101"},"nativeSrc":"9742:113:101","nodeType":"YulFunctionCall","src":"9742:113:101"},"nativeSrc":"9739:139:101","nodeType":"YulIf","src":"9739:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"9475:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9506:1:101","nodeType":"YulTypedName","src":"9506:1:101","type":""},{"name":"y","nativeSrc":"9509:1:101","nodeType":"YulTypedName","src":"9509:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"9515:7:101","nodeType":"YulTypedName","src":"9515:7:101","type":""}],"src":"9475:410:101"},{"body":{"nativeSrc":"9919:152:101","nodeType":"YulBlock","src":"9919:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9936:1:101","nodeType":"YulLiteral","src":"9936:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9939:77:101","nodeType":"YulLiteral","src":"9939:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9929:6:101","nodeType":"YulIdentifier","src":"9929:6:101"},"nativeSrc":"9929:88:101","nodeType":"YulFunctionCall","src":"9929:88:101"},"nativeSrc":"9929:88:101","nodeType":"YulExpressionStatement","src":"9929:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10033:1:101","nodeType":"YulLiteral","src":"10033:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"10036:4:101","nodeType":"YulLiteral","src":"10036:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"10026:6:101","nodeType":"YulIdentifier","src":"10026:6:101"},"nativeSrc":"10026:15:101","nodeType":"YulFunctionCall","src":"10026:15:101"},"nativeSrc":"10026:15:101","nodeType":"YulExpressionStatement","src":"10026:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10057:1:101","nodeType":"YulLiteral","src":"10057:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"10060:4:101","nodeType":"YulLiteral","src":"10060:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10050:6:101","nodeType":"YulIdentifier","src":"10050:6:101"},"nativeSrc":"10050:15:101","nodeType":"YulFunctionCall","src":"10050:15:101"},"nativeSrc":"10050:15:101","nodeType":"YulExpressionStatement","src":"10050:15:101"}]},"name":"panic_error_0x12","nativeSrc":"9891:180:101","nodeType":"YulFunctionDefinition","src":"9891:180:101"},{"body":{"nativeSrc":"10119:143:101","nodeType":"YulBlock","src":"10119:143:101","statements":[{"nativeSrc":"10129:25:101","nodeType":"YulAssignment","src":"10129:25:101","value":{"arguments":[{"name":"x","nativeSrc":"10152:1:101","nodeType":"YulIdentifier","src":"10152:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10134:17:101","nodeType":"YulIdentifier","src":"10134:17:101"},"nativeSrc":"10134:20:101","nodeType":"YulFunctionCall","src":"10134:20:101"},"variableNames":[{"name":"x","nativeSrc":"10129:1:101","nodeType":"YulIdentifier","src":"10129:1:101"}]},{"nativeSrc":"10163:25:101","nodeType":"YulAssignment","src":"10163:25:101","value":{"arguments":[{"name":"y","nativeSrc":"10186:1:101","nodeType":"YulIdentifier","src":"10186:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10168:17:101","nodeType":"YulIdentifier","src":"10168:17:101"},"nativeSrc":"10168:20:101","nodeType":"YulFunctionCall","src":"10168:20:101"},"variableNames":[{"name":"y","nativeSrc":"10163:1:101","nodeType":"YulIdentifier","src":"10163:1:101"}]},{"body":{"nativeSrc":"10210:22:101","nodeType":"YulBlock","src":"10210:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"10212:16:101","nodeType":"YulIdentifier","src":"10212:16:101"},"nativeSrc":"10212:18:101","nodeType":"YulFunctionCall","src":"10212:18:101"},"nativeSrc":"10212:18:101","nodeType":"YulExpressionStatement","src":"10212:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"10207:1:101","nodeType":"YulIdentifier","src":"10207:1:101"}],"functionName":{"name":"iszero","nativeSrc":"10200:6:101","nodeType":"YulIdentifier","src":"10200:6:101"},"nativeSrc":"10200:9:101","nodeType":"YulFunctionCall","src":"10200:9:101"},"nativeSrc":"10197:35:101","nodeType":"YulIf","src":"10197:35:101"},{"nativeSrc":"10242:14:101","nodeType":"YulAssignment","src":"10242:14:101","value":{"arguments":[{"name":"x","nativeSrc":"10251:1:101","nodeType":"YulIdentifier","src":"10251:1:101"},{"name":"y","nativeSrc":"10254:1:101","nodeType":"YulIdentifier","src":"10254:1:101"}],"functionName":{"name":"div","nativeSrc":"10247:3:101","nodeType":"YulIdentifier","src":"10247:3:101"},"nativeSrc":"10247:9:101","nodeType":"YulFunctionCall","src":"10247:9:101"},"variableNames":[{"name":"r","nativeSrc":"10242:1:101","nodeType":"YulIdentifier","src":"10242:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"10077:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"10108:1:101","nodeType":"YulTypedName","src":"10108:1:101","type":""},{"name":"y","nativeSrc":"10111:1:101","nodeType":"YulTypedName","src":"10111:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"10117:1:101","nodeType":"YulTypedName","src":"10117:1:101","type":""}],"src":"10077:185:101"},{"body":{"nativeSrc":"10374:118:101","nodeType":"YulBlock","src":"10374:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10396:6:101","nodeType":"YulIdentifier","src":"10396:6:101"},{"kind":"number","nativeSrc":"10404:1:101","nodeType":"YulLiteral","src":"10404:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10392:3:101","nodeType":"YulIdentifier","src":"10392:3:101"},"nativeSrc":"10392:14:101","nodeType":"YulFunctionCall","src":"10392:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"10408:34:101","nodeType":"YulLiteral","src":"10408:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"10385:6:101","nodeType":"YulIdentifier","src":"10385:6:101"},"nativeSrc":"10385:58:101","nodeType":"YulFunctionCall","src":"10385:58:101"},"nativeSrc":"10385:58:101","nodeType":"YulExpressionStatement","src":"10385:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10464:6:101","nodeType":"YulIdentifier","src":"10464:6:101"},{"kind":"number","nativeSrc":"10472:2:101","nodeType":"YulLiteral","src":"10472:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10460:3:101","nodeType":"YulIdentifier","src":"10460:3:101"},"nativeSrc":"10460:15:101","nodeType":"YulFunctionCall","src":"10460:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"10477:7:101","nodeType":"YulLiteral","src":"10477:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"10453:6:101","nodeType":"YulIdentifier","src":"10453:6:101"},"nativeSrc":"10453:32:101","nodeType":"YulFunctionCall","src":"10453:32:101"},"nativeSrc":"10453:32:101","nodeType":"YulExpressionStatement","src":"10453:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"10268:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10366:6:101","nodeType":"YulTypedName","src":"10366:6:101","type":""}],"src":"10268:224:101"},{"body":{"nativeSrc":"10644:220:101","nodeType":"YulBlock","src":"10644:220:101","statements":[{"nativeSrc":"10654:74:101","nodeType":"YulAssignment","src":"10654:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10720:3:101","nodeType":"YulIdentifier","src":"10720:3:101"},{"kind":"number","nativeSrc":"10725:2:101","nodeType":"YulLiteral","src":"10725:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10661:58:101","nodeType":"YulIdentifier","src":"10661:58:101"},"nativeSrc":"10661:67:101","nodeType":"YulFunctionCall","src":"10661:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10654:3:101","nodeType":"YulIdentifier","src":"10654:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10826:3:101","nodeType":"YulIdentifier","src":"10826:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"10737:88:101","nodeType":"YulIdentifier","src":"10737:88:101"},"nativeSrc":"10737:93:101","nodeType":"YulFunctionCall","src":"10737:93:101"},"nativeSrc":"10737:93:101","nodeType":"YulExpressionStatement","src":"10737:93:101"},{"nativeSrc":"10839:19:101","nodeType":"YulAssignment","src":"10839:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10850:3:101","nodeType":"YulIdentifier","src":"10850:3:101"},{"kind":"number","nativeSrc":"10855:2:101","nodeType":"YulLiteral","src":"10855:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10846:3:101","nodeType":"YulIdentifier","src":"10846:3:101"},"nativeSrc":"10846:12:101","nodeType":"YulFunctionCall","src":"10846:12:101"},"variableNames":[{"name":"end","nativeSrc":"10839:3:101","nodeType":"YulIdentifier","src":"10839:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"10498:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10632:3:101","nodeType":"YulTypedName","src":"10632:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10640:3:101","nodeType":"YulTypedName","src":"10640:3:101","type":""}],"src":"10498:366:101"},{"body":{"nativeSrc":"11041:248:101","nodeType":"YulBlock","src":"11041:248:101","statements":[{"nativeSrc":"11051:26:101","nodeType":"YulAssignment","src":"11051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11063:9:101","nodeType":"YulIdentifier","src":"11063:9:101"},{"kind":"number","nativeSrc":"11074:2:101","nodeType":"YulLiteral","src":"11074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11059:3:101","nodeType":"YulIdentifier","src":"11059:3:101"},"nativeSrc":"11059:18:101","nodeType":"YulFunctionCall","src":"11059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11051:4:101","nodeType":"YulIdentifier","src":"11051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11098:9:101","nodeType":"YulIdentifier","src":"11098:9:101"},{"kind":"number","nativeSrc":"11109:1:101","nodeType":"YulLiteral","src":"11109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11094:3:101","nodeType":"YulIdentifier","src":"11094:3:101"},"nativeSrc":"11094:17:101","nodeType":"YulFunctionCall","src":"11094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11117:4:101","nodeType":"YulIdentifier","src":"11117:4:101"},{"name":"headStart","nativeSrc":"11123:9:101","nodeType":"YulIdentifier","src":"11123:9:101"}],"functionName":{"name":"sub","nativeSrc":"11113:3:101","nodeType":"YulIdentifier","src":"11113:3:101"},"nativeSrc":"11113:20:101","nodeType":"YulFunctionCall","src":"11113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11087:6:101","nodeType":"YulIdentifier","src":"11087:6:101"},"nativeSrc":"11087:47:101","nodeType":"YulFunctionCall","src":"11087:47:101"},"nativeSrc":"11087:47:101","nodeType":"YulExpressionStatement","src":"11087:47:101"},{"nativeSrc":"11143:139:101","nodeType":"YulAssignment","src":"11143:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11277:4:101","nodeType":"YulIdentifier","src":"11277:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"11151:124:101","nodeType":"YulIdentifier","src":"11151:124:101"},"nativeSrc":"11151:131:101","nodeType":"YulFunctionCall","src":"11151:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10870:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11021:9:101","nodeType":"YulTypedName","src":"11021:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11036:4:101","nodeType":"YulTypedName","src":"11036:4:101","type":""}],"src":"10870:419:101"},{"body":{"nativeSrc":"11401:119:101","nodeType":"YulBlock","src":"11401:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11423:6:101","nodeType":"YulIdentifier","src":"11423:6:101"},{"kind":"number","nativeSrc":"11431:1:101","nodeType":"YulLiteral","src":"11431:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11419:3:101","nodeType":"YulIdentifier","src":"11419:3:101"},"nativeSrc":"11419:14:101","nodeType":"YulFunctionCall","src":"11419:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"11435:34:101","nodeType":"YulLiteral","src":"11435:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"11412:6:101","nodeType":"YulIdentifier","src":"11412:6:101"},"nativeSrc":"11412:58:101","nodeType":"YulFunctionCall","src":"11412:58:101"},"nativeSrc":"11412:58:101","nodeType":"YulExpressionStatement","src":"11412:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11491:6:101","nodeType":"YulIdentifier","src":"11491:6:101"},{"kind":"number","nativeSrc":"11499:2:101","nodeType":"YulLiteral","src":"11499:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11487:3:101","nodeType":"YulIdentifier","src":"11487:3:101"},"nativeSrc":"11487:15:101","nodeType":"YulFunctionCall","src":"11487:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"11504:8:101","nodeType":"YulLiteral","src":"11504:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"11480:6:101","nodeType":"YulIdentifier","src":"11480:6:101"},"nativeSrc":"11480:33:101","nodeType":"YulFunctionCall","src":"11480:33:101"},"nativeSrc":"11480:33:101","nodeType":"YulExpressionStatement","src":"11480:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"11295:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11393:6:101","nodeType":"YulTypedName","src":"11393:6:101","type":""}],"src":"11295:225:101"},{"body":{"nativeSrc":"11672:220:101","nodeType":"YulBlock","src":"11672:220:101","statements":[{"nativeSrc":"11682:74:101","nodeType":"YulAssignment","src":"11682:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11748:3:101","nodeType":"YulIdentifier","src":"11748:3:101"},{"kind":"number","nativeSrc":"11753:2:101","nodeType":"YulLiteral","src":"11753:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11689:58:101","nodeType":"YulIdentifier","src":"11689:58:101"},"nativeSrc":"11689:67:101","nodeType":"YulFunctionCall","src":"11689:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11682:3:101","nodeType":"YulIdentifier","src":"11682:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11854:3:101","nodeType":"YulIdentifier","src":"11854:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"11765:88:101","nodeType":"YulIdentifier","src":"11765:88:101"},"nativeSrc":"11765:93:101","nodeType":"YulFunctionCall","src":"11765:93:101"},"nativeSrc":"11765:93:101","nodeType":"YulExpressionStatement","src":"11765:93:101"},{"nativeSrc":"11867:19:101","nodeType":"YulAssignment","src":"11867:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11878:3:101","nodeType":"YulIdentifier","src":"11878:3:101"},{"kind":"number","nativeSrc":"11883:2:101","nodeType":"YulLiteral","src":"11883:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11874:3:101","nodeType":"YulIdentifier","src":"11874:3:101"},"nativeSrc":"11874:12:101","nodeType":"YulFunctionCall","src":"11874:12:101"},"variableNames":[{"name":"end","nativeSrc":"11867:3:101","nodeType":"YulIdentifier","src":"11867:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"11526:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11660:3:101","nodeType":"YulTypedName","src":"11660:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11668:3:101","nodeType":"YulTypedName","src":"11668:3:101","type":""}],"src":"11526:366:101"},{"body":{"nativeSrc":"12069:248:101","nodeType":"YulBlock","src":"12069:248:101","statements":[{"nativeSrc":"12079:26:101","nodeType":"YulAssignment","src":"12079:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12091:9:101","nodeType":"YulIdentifier","src":"12091:9:101"},{"kind":"number","nativeSrc":"12102:2:101","nodeType":"YulLiteral","src":"12102:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12087:3:101","nodeType":"YulIdentifier","src":"12087:3:101"},"nativeSrc":"12087:18:101","nodeType":"YulFunctionCall","src":"12087:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12079:4:101","nodeType":"YulIdentifier","src":"12079:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12126:9:101","nodeType":"YulIdentifier","src":"12126:9:101"},{"kind":"number","nativeSrc":"12137:1:101","nodeType":"YulLiteral","src":"12137:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12122:3:101","nodeType":"YulIdentifier","src":"12122:3:101"},"nativeSrc":"12122:17:101","nodeType":"YulFunctionCall","src":"12122:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12145:4:101","nodeType":"YulIdentifier","src":"12145:4:101"},{"name":"headStart","nativeSrc":"12151:9:101","nodeType":"YulIdentifier","src":"12151:9:101"}],"functionName":{"name":"sub","nativeSrc":"12141:3:101","nodeType":"YulIdentifier","src":"12141:3:101"},"nativeSrc":"12141:20:101","nodeType":"YulFunctionCall","src":"12141:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12115:6:101","nodeType":"YulIdentifier","src":"12115:6:101"},"nativeSrc":"12115:47:101","nodeType":"YulFunctionCall","src":"12115:47:101"},"nativeSrc":"12115:47:101","nodeType":"YulExpressionStatement","src":"12115:47:101"},{"nativeSrc":"12171:139:101","nodeType":"YulAssignment","src":"12171:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12305:4:101","nodeType":"YulIdentifier","src":"12305:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"12179:124:101","nodeType":"YulIdentifier","src":"12179:124:101"},"nativeSrc":"12179:131:101","nodeType":"YulFunctionCall","src":"12179:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12171:4:101","nodeType":"YulIdentifier","src":"12171:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11898:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12049:9:101","nodeType":"YulTypedName","src":"12049:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12064:4:101","nodeType":"YulTypedName","src":"12064:4:101","type":""}],"src":"11898:419:101"},{"body":{"nativeSrc":"12429:76:101","nodeType":"YulBlock","src":"12429:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12451:6:101","nodeType":"YulIdentifier","src":"12451:6:101"},{"kind":"number","nativeSrc":"12459:1:101","nodeType":"YulLiteral","src":"12459:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12447:3:101","nodeType":"YulIdentifier","src":"12447:3:101"},"nativeSrc":"12447:14:101","nodeType":"YulFunctionCall","src":"12447:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"12463:34:101","nodeType":"YulLiteral","src":"12463:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"12440:6:101","nodeType":"YulIdentifier","src":"12440:6:101"},"nativeSrc":"12440:58:101","nodeType":"YulFunctionCall","src":"12440:58:101"},"nativeSrc":"12440:58:101","nodeType":"YulExpressionStatement","src":"12440:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"12323:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12421:6:101","nodeType":"YulTypedName","src":"12421:6:101","type":""}],"src":"12323:182:101"},{"body":{"nativeSrc":"12657:220:101","nodeType":"YulBlock","src":"12657:220:101","statements":[{"nativeSrc":"12667:74:101","nodeType":"YulAssignment","src":"12667:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12733:3:101","nodeType":"YulIdentifier","src":"12733:3:101"},{"kind":"number","nativeSrc":"12738:2:101","nodeType":"YulLiteral","src":"12738:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12674:58:101","nodeType":"YulIdentifier","src":"12674:58:101"},"nativeSrc":"12674:67:101","nodeType":"YulFunctionCall","src":"12674:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12667:3:101","nodeType":"YulIdentifier","src":"12667:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12839:3:101","nodeType":"YulIdentifier","src":"12839:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"12750:88:101","nodeType":"YulIdentifier","src":"12750:88:101"},"nativeSrc":"12750:93:101","nodeType":"YulFunctionCall","src":"12750:93:101"},"nativeSrc":"12750:93:101","nodeType":"YulExpressionStatement","src":"12750:93:101"},{"nativeSrc":"12852:19:101","nodeType":"YulAssignment","src":"12852:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12863:3:101","nodeType":"YulIdentifier","src":"12863:3:101"},{"kind":"number","nativeSrc":"12868:2:101","nodeType":"YulLiteral","src":"12868:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12859:3:101","nodeType":"YulIdentifier","src":"12859:3:101"},"nativeSrc":"12859:12:101","nodeType":"YulFunctionCall","src":"12859:12:101"},"variableNames":[{"name":"end","nativeSrc":"12852:3:101","nodeType":"YulIdentifier","src":"12852:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"12511:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12645:3:101","nodeType":"YulTypedName","src":"12645:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12653:3:101","nodeType":"YulTypedName","src":"12653:3:101","type":""}],"src":"12511:366:101"},{"body":{"nativeSrc":"13054:248:101","nodeType":"YulBlock","src":"13054:248:101","statements":[{"nativeSrc":"13064:26:101","nodeType":"YulAssignment","src":"13064:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13076:9:101","nodeType":"YulIdentifier","src":"13076:9:101"},{"kind":"number","nativeSrc":"13087:2:101","nodeType":"YulLiteral","src":"13087:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13072:3:101","nodeType":"YulIdentifier","src":"13072:3:101"},"nativeSrc":"13072:18:101","nodeType":"YulFunctionCall","src":"13072:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13064:4:101","nodeType":"YulIdentifier","src":"13064:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13111:9:101","nodeType":"YulIdentifier","src":"13111:9:101"},{"kind":"number","nativeSrc":"13122:1:101","nodeType":"YulLiteral","src":"13122:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13107:3:101","nodeType":"YulIdentifier","src":"13107:3:101"},"nativeSrc":"13107:17:101","nodeType":"YulFunctionCall","src":"13107:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13130:4:101","nodeType":"YulIdentifier","src":"13130:4:101"},{"name":"headStart","nativeSrc":"13136:9:101","nodeType":"YulIdentifier","src":"13136:9:101"}],"functionName":{"name":"sub","nativeSrc":"13126:3:101","nodeType":"YulIdentifier","src":"13126:3:101"},"nativeSrc":"13126:20:101","nodeType":"YulFunctionCall","src":"13126:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13100:6:101","nodeType":"YulIdentifier","src":"13100:6:101"},"nativeSrc":"13100:47:101","nodeType":"YulFunctionCall","src":"13100:47:101"},"nativeSrc":"13100:47:101","nodeType":"YulExpressionStatement","src":"13100:47:101"},{"nativeSrc":"13156:139:101","nodeType":"YulAssignment","src":"13156:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13290:4:101","nodeType":"YulIdentifier","src":"13290:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"13164:124:101","nodeType":"YulIdentifier","src":"13164:124:101"},"nativeSrc":"13164:131:101","nodeType":"YulFunctionCall","src":"13164:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13156:4:101","nodeType":"YulIdentifier","src":"13156:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12883:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13034:9:101","nodeType":"YulTypedName","src":"13034:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13049:4:101","nodeType":"YulTypedName","src":"13049:4:101","type":""}],"src":"12883:419:101"},{"body":{"nativeSrc":"13414:117:101","nodeType":"YulBlock","src":"13414:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13436:6:101","nodeType":"YulIdentifier","src":"13436:6:101"},{"kind":"number","nativeSrc":"13444:1:101","nodeType":"YulLiteral","src":"13444:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13432:3:101","nodeType":"YulIdentifier","src":"13432:3:101"},"nativeSrc":"13432:14:101","nodeType":"YulFunctionCall","src":"13432:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"13448:34:101","nodeType":"YulLiteral","src":"13448:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"13425:6:101","nodeType":"YulIdentifier","src":"13425:6:101"},"nativeSrc":"13425:58:101","nodeType":"YulFunctionCall","src":"13425:58:101"},"nativeSrc":"13425:58:101","nodeType":"YulExpressionStatement","src":"13425:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13504:6:101","nodeType":"YulIdentifier","src":"13504:6:101"},{"kind":"number","nativeSrc":"13512:2:101","nodeType":"YulLiteral","src":"13512:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13500:3:101","nodeType":"YulIdentifier","src":"13500:3:101"},"nativeSrc":"13500:15:101","nodeType":"YulFunctionCall","src":"13500:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"13517:6:101","nodeType":"YulLiteral","src":"13517:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"13493:6:101","nodeType":"YulIdentifier","src":"13493:6:101"},"nativeSrc":"13493:31:101","nodeType":"YulFunctionCall","src":"13493:31:101"},"nativeSrc":"13493:31:101","nodeType":"YulExpressionStatement","src":"13493:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"13308:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13406:6:101","nodeType":"YulTypedName","src":"13406:6:101","type":""}],"src":"13308:223:101"},{"body":{"nativeSrc":"13683:220:101","nodeType":"YulBlock","src":"13683:220:101","statements":[{"nativeSrc":"13693:74:101","nodeType":"YulAssignment","src":"13693:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13759:3:101","nodeType":"YulIdentifier","src":"13759:3:101"},{"kind":"number","nativeSrc":"13764:2:101","nodeType":"YulLiteral","src":"13764:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13700:58:101","nodeType":"YulIdentifier","src":"13700:58:101"},"nativeSrc":"13700:67:101","nodeType":"YulFunctionCall","src":"13700:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13693:3:101","nodeType":"YulIdentifier","src":"13693:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13865:3:101","nodeType":"YulIdentifier","src":"13865:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"13776:88:101","nodeType":"YulIdentifier","src":"13776:88:101"},"nativeSrc":"13776:93:101","nodeType":"YulFunctionCall","src":"13776:93:101"},"nativeSrc":"13776:93:101","nodeType":"YulExpressionStatement","src":"13776:93:101"},{"nativeSrc":"13878:19:101","nodeType":"YulAssignment","src":"13878:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13889:3:101","nodeType":"YulIdentifier","src":"13889:3:101"},{"kind":"number","nativeSrc":"13894:2:101","nodeType":"YulLiteral","src":"13894:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13885:3:101","nodeType":"YulIdentifier","src":"13885:3:101"},"nativeSrc":"13885:12:101","nodeType":"YulFunctionCall","src":"13885:12:101"},"variableNames":[{"name":"end","nativeSrc":"13878:3:101","nodeType":"YulIdentifier","src":"13878:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"13537:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13671:3:101","nodeType":"YulTypedName","src":"13671:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13679:3:101","nodeType":"YulTypedName","src":"13679:3:101","type":""}],"src":"13537:366:101"},{"body":{"nativeSrc":"14080:248:101","nodeType":"YulBlock","src":"14080:248:101","statements":[{"nativeSrc":"14090:26:101","nodeType":"YulAssignment","src":"14090:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14102:9:101","nodeType":"YulIdentifier","src":"14102:9:101"},{"kind":"number","nativeSrc":"14113:2:101","nodeType":"YulLiteral","src":"14113:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14098:3:101","nodeType":"YulIdentifier","src":"14098:3:101"},"nativeSrc":"14098:18:101","nodeType":"YulFunctionCall","src":"14098:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14090:4:101","nodeType":"YulIdentifier","src":"14090:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14137:9:101","nodeType":"YulIdentifier","src":"14137:9:101"},{"kind":"number","nativeSrc":"14148:1:101","nodeType":"YulLiteral","src":"14148:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14133:3:101","nodeType":"YulIdentifier","src":"14133:3:101"},"nativeSrc":"14133:17:101","nodeType":"YulFunctionCall","src":"14133:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14156:4:101","nodeType":"YulIdentifier","src":"14156:4:101"},{"name":"headStart","nativeSrc":"14162:9:101","nodeType":"YulIdentifier","src":"14162:9:101"}],"functionName":{"name":"sub","nativeSrc":"14152:3:101","nodeType":"YulIdentifier","src":"14152:3:101"},"nativeSrc":"14152:20:101","nodeType":"YulFunctionCall","src":"14152:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14126:6:101","nodeType":"YulIdentifier","src":"14126:6:101"},"nativeSrc":"14126:47:101","nodeType":"YulFunctionCall","src":"14126:47:101"},"nativeSrc":"14126:47:101","nodeType":"YulExpressionStatement","src":"14126:47:101"},{"nativeSrc":"14182:139:101","nodeType":"YulAssignment","src":"14182:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14316:4:101","nodeType":"YulIdentifier","src":"14316:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"14190:124:101","nodeType":"YulIdentifier","src":"14190:124:101"},"nativeSrc":"14190:131:101","nodeType":"YulFunctionCall","src":"14190:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14182:4:101","nodeType":"YulIdentifier","src":"14182:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13909:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14060:9:101","nodeType":"YulTypedName","src":"14060:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14075:4:101","nodeType":"YulTypedName","src":"14075:4:101","type":""}],"src":"13909:419:101"},{"body":{"nativeSrc":"14440:115:101","nodeType":"YulBlock","src":"14440:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14462:6:101","nodeType":"YulIdentifier","src":"14462:6:101"},{"kind":"number","nativeSrc":"14470:1:101","nodeType":"YulLiteral","src":"14470:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14458:3:101","nodeType":"YulIdentifier","src":"14458:3:101"},"nativeSrc":"14458:14:101","nodeType":"YulFunctionCall","src":"14458:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"14474:34:101","nodeType":"YulLiteral","src":"14474:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"14451:6:101","nodeType":"YulIdentifier","src":"14451:6:101"},"nativeSrc":"14451:58:101","nodeType":"YulFunctionCall","src":"14451:58:101"},"nativeSrc":"14451:58:101","nodeType":"YulExpressionStatement","src":"14451:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14530:6:101","nodeType":"YulIdentifier","src":"14530:6:101"},{"kind":"number","nativeSrc":"14538:2:101","nodeType":"YulLiteral","src":"14538:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14526:3:101","nodeType":"YulIdentifier","src":"14526:3:101"},"nativeSrc":"14526:15:101","nodeType":"YulFunctionCall","src":"14526:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"14543:4:101","nodeType":"YulLiteral","src":"14543:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"14519:6:101","nodeType":"YulIdentifier","src":"14519:6:101"},"nativeSrc":"14519:29:101","nodeType":"YulFunctionCall","src":"14519:29:101"},"nativeSrc":"14519:29:101","nodeType":"YulExpressionStatement","src":"14519:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"14334:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14432:6:101","nodeType":"YulTypedName","src":"14432:6:101","type":""}],"src":"14334:221:101"},{"body":{"nativeSrc":"14707:220:101","nodeType":"YulBlock","src":"14707:220:101","statements":[{"nativeSrc":"14717:74:101","nodeType":"YulAssignment","src":"14717:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14783:3:101","nodeType":"YulIdentifier","src":"14783:3:101"},{"kind":"number","nativeSrc":"14788:2:101","nodeType":"YulLiteral","src":"14788:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14724:58:101","nodeType":"YulIdentifier","src":"14724:58:101"},"nativeSrc":"14724:67:101","nodeType":"YulFunctionCall","src":"14724:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14717:3:101","nodeType":"YulIdentifier","src":"14717:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14889:3:101","nodeType":"YulIdentifier","src":"14889:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"14800:88:101","nodeType":"YulIdentifier","src":"14800:88:101"},"nativeSrc":"14800:93:101","nodeType":"YulFunctionCall","src":"14800:93:101"},"nativeSrc":"14800:93:101","nodeType":"YulExpressionStatement","src":"14800:93:101"},{"nativeSrc":"14902:19:101","nodeType":"YulAssignment","src":"14902:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14913:3:101","nodeType":"YulIdentifier","src":"14913:3:101"},{"kind":"number","nativeSrc":"14918:2:101","nodeType":"YulLiteral","src":"14918:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14909:3:101","nodeType":"YulIdentifier","src":"14909:3:101"},"nativeSrc":"14909:12:101","nodeType":"YulFunctionCall","src":"14909:12:101"},"variableNames":[{"name":"end","nativeSrc":"14902:3:101","nodeType":"YulIdentifier","src":"14902:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"14561:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14695:3:101","nodeType":"YulTypedName","src":"14695:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14703:3:101","nodeType":"YulTypedName","src":"14703:3:101","type":""}],"src":"14561:366:101"},{"body":{"nativeSrc":"15104:248:101","nodeType":"YulBlock","src":"15104:248:101","statements":[{"nativeSrc":"15114:26:101","nodeType":"YulAssignment","src":"15114:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15126:9:101","nodeType":"YulIdentifier","src":"15126:9:101"},{"kind":"number","nativeSrc":"15137:2:101","nodeType":"YulLiteral","src":"15137:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15122:3:101","nodeType":"YulIdentifier","src":"15122:3:101"},"nativeSrc":"15122:18:101","nodeType":"YulFunctionCall","src":"15122:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15114:4:101","nodeType":"YulIdentifier","src":"15114:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15161:9:101","nodeType":"YulIdentifier","src":"15161:9:101"},{"kind":"number","nativeSrc":"15172:1:101","nodeType":"YulLiteral","src":"15172:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15157:3:101","nodeType":"YulIdentifier","src":"15157:3:101"},"nativeSrc":"15157:17:101","nodeType":"YulFunctionCall","src":"15157:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15180:4:101","nodeType":"YulIdentifier","src":"15180:4:101"},{"name":"headStart","nativeSrc":"15186:9:101","nodeType":"YulIdentifier","src":"15186:9:101"}],"functionName":{"name":"sub","nativeSrc":"15176:3:101","nodeType":"YulIdentifier","src":"15176:3:101"},"nativeSrc":"15176:20:101","nodeType":"YulFunctionCall","src":"15176:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15150:6:101","nodeType":"YulIdentifier","src":"15150:6:101"},"nativeSrc":"15150:47:101","nodeType":"YulFunctionCall","src":"15150:47:101"},"nativeSrc":"15150:47:101","nodeType":"YulExpressionStatement","src":"15150:47:101"},{"nativeSrc":"15206:139:101","nodeType":"YulAssignment","src":"15206:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15340:4:101","nodeType":"YulIdentifier","src":"15340:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"15214:124:101","nodeType":"YulIdentifier","src":"15214:124:101"},"nativeSrc":"15214:131:101","nodeType":"YulFunctionCall","src":"15214:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15206:4:101","nodeType":"YulIdentifier","src":"15206:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14933:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15084:9:101","nodeType":"YulTypedName","src":"15084:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15099:4:101","nodeType":"YulTypedName","src":"15099:4:101","type":""}],"src":"14933:419:101"},{"body":{"nativeSrc":"15464:73:101","nodeType":"YulBlock","src":"15464:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15486:6:101","nodeType":"YulIdentifier","src":"15486:6:101"},{"kind":"number","nativeSrc":"15494:1:101","nodeType":"YulLiteral","src":"15494:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15482:3:101","nodeType":"YulIdentifier","src":"15482:3:101"},"nativeSrc":"15482:14:101","nodeType":"YulFunctionCall","src":"15482:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"15498:31:101","nodeType":"YulLiteral","src":"15498:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"15475:6:101","nodeType":"YulIdentifier","src":"15475:6:101"},"nativeSrc":"15475:55:101","nodeType":"YulFunctionCall","src":"15475:55:101"},"nativeSrc":"15475:55:101","nodeType":"YulExpressionStatement","src":"15475:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"15358:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15456:6:101","nodeType":"YulTypedName","src":"15456:6:101","type":""}],"src":"15358:179:101"},{"body":{"nativeSrc":"15689:220:101","nodeType":"YulBlock","src":"15689:220:101","statements":[{"nativeSrc":"15699:74:101","nodeType":"YulAssignment","src":"15699:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15765:3:101","nodeType":"YulIdentifier","src":"15765:3:101"},{"kind":"number","nativeSrc":"15770:2:101","nodeType":"YulLiteral","src":"15770:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15706:58:101","nodeType":"YulIdentifier","src":"15706:58:101"},"nativeSrc":"15706:67:101","nodeType":"YulFunctionCall","src":"15706:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15699:3:101","nodeType":"YulIdentifier","src":"15699:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15871:3:101","nodeType":"YulIdentifier","src":"15871:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"15782:88:101","nodeType":"YulIdentifier","src":"15782:88:101"},"nativeSrc":"15782:93:101","nodeType":"YulFunctionCall","src":"15782:93:101"},"nativeSrc":"15782:93:101","nodeType":"YulExpressionStatement","src":"15782:93:101"},{"nativeSrc":"15884:19:101","nodeType":"YulAssignment","src":"15884:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15895:3:101","nodeType":"YulIdentifier","src":"15895:3:101"},{"kind":"number","nativeSrc":"15900:2:101","nodeType":"YulLiteral","src":"15900:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15891:3:101","nodeType":"YulIdentifier","src":"15891:3:101"},"nativeSrc":"15891:12:101","nodeType":"YulFunctionCall","src":"15891:12:101"},"variableNames":[{"name":"end","nativeSrc":"15884:3:101","nodeType":"YulIdentifier","src":"15884:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"15543:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15677:3:101","nodeType":"YulTypedName","src":"15677:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15685:3:101","nodeType":"YulTypedName","src":"15685:3:101","type":""}],"src":"15543:366:101"},{"body":{"nativeSrc":"16086:248:101","nodeType":"YulBlock","src":"16086:248:101","statements":[{"nativeSrc":"16096:26:101","nodeType":"YulAssignment","src":"16096:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16108:9:101","nodeType":"YulIdentifier","src":"16108:9:101"},{"kind":"number","nativeSrc":"16119:2:101","nodeType":"YulLiteral","src":"16119:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16104:3:101","nodeType":"YulIdentifier","src":"16104:3:101"},"nativeSrc":"16104:18:101","nodeType":"YulFunctionCall","src":"16104:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16096:4:101","nodeType":"YulIdentifier","src":"16096:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16143:9:101","nodeType":"YulIdentifier","src":"16143:9:101"},{"kind":"number","nativeSrc":"16154:1:101","nodeType":"YulLiteral","src":"16154:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16139:3:101","nodeType":"YulIdentifier","src":"16139:3:101"},"nativeSrc":"16139:17:101","nodeType":"YulFunctionCall","src":"16139:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16162:4:101","nodeType":"YulIdentifier","src":"16162:4:101"},{"name":"headStart","nativeSrc":"16168:9:101","nodeType":"YulIdentifier","src":"16168:9:101"}],"functionName":{"name":"sub","nativeSrc":"16158:3:101","nodeType":"YulIdentifier","src":"16158:3:101"},"nativeSrc":"16158:20:101","nodeType":"YulFunctionCall","src":"16158:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16132:6:101","nodeType":"YulIdentifier","src":"16132:6:101"},"nativeSrc":"16132:47:101","nodeType":"YulFunctionCall","src":"16132:47:101"},"nativeSrc":"16132:47:101","nodeType":"YulExpressionStatement","src":"16132:47:101"},{"nativeSrc":"16188:139:101","nodeType":"YulAssignment","src":"16188:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16322:4:101","nodeType":"YulIdentifier","src":"16322:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"16196:124:101","nodeType":"YulIdentifier","src":"16196:124:101"},"nativeSrc":"16196:131:101","nodeType":"YulFunctionCall","src":"16196:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16188:4:101","nodeType":"YulIdentifier","src":"16188:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15915:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16066:9:101","nodeType":"YulTypedName","src":"16066:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16081:4:101","nodeType":"YulTypedName","src":"16081:4:101","type":""}],"src":"15915:419:101"},{"body":{"nativeSrc":"16446:118:101","nodeType":"YulBlock","src":"16446:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16468:6:101","nodeType":"YulIdentifier","src":"16468:6:101"},{"kind":"number","nativeSrc":"16476:1:101","nodeType":"YulLiteral","src":"16476:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16464:3:101","nodeType":"YulIdentifier","src":"16464:3:101"},"nativeSrc":"16464:14:101","nodeType":"YulFunctionCall","src":"16464:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"16480:34:101","nodeType":"YulLiteral","src":"16480:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"16457:6:101","nodeType":"YulIdentifier","src":"16457:6:101"},"nativeSrc":"16457:58:101","nodeType":"YulFunctionCall","src":"16457:58:101"},"nativeSrc":"16457:58:101","nodeType":"YulExpressionStatement","src":"16457:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16536:6:101","nodeType":"YulIdentifier","src":"16536:6:101"},{"kind":"number","nativeSrc":"16544:2:101","nodeType":"YulLiteral","src":"16544:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16532:3:101","nodeType":"YulIdentifier","src":"16532:3:101"},"nativeSrc":"16532:15:101","nodeType":"YulFunctionCall","src":"16532:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"16549:7:101","nodeType":"YulLiteral","src":"16549:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"16525:6:101","nodeType":"YulIdentifier","src":"16525:6:101"},"nativeSrc":"16525:32:101","nodeType":"YulFunctionCall","src":"16525:32:101"},"nativeSrc":"16525:32:101","nodeType":"YulExpressionStatement","src":"16525:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"16340:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16438:6:101","nodeType":"YulTypedName","src":"16438:6:101","type":""}],"src":"16340:224:101"},{"body":{"nativeSrc":"16716:220:101","nodeType":"YulBlock","src":"16716:220:101","statements":[{"nativeSrc":"16726:74:101","nodeType":"YulAssignment","src":"16726:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"16792:3:101","nodeType":"YulIdentifier","src":"16792:3:101"},{"kind":"number","nativeSrc":"16797:2:101","nodeType":"YulLiteral","src":"16797:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16733:58:101","nodeType":"YulIdentifier","src":"16733:58:101"},"nativeSrc":"16733:67:101","nodeType":"YulFunctionCall","src":"16733:67:101"},"variableNames":[{"name":"pos","nativeSrc":"16726:3:101","nodeType":"YulIdentifier","src":"16726:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16898:3:101","nodeType":"YulIdentifier","src":"16898:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"16809:88:101","nodeType":"YulIdentifier","src":"16809:88:101"},"nativeSrc":"16809:93:101","nodeType":"YulFunctionCall","src":"16809:93:101"},"nativeSrc":"16809:93:101","nodeType":"YulExpressionStatement","src":"16809:93:101"},{"nativeSrc":"16911:19:101","nodeType":"YulAssignment","src":"16911:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"16922:3:101","nodeType":"YulIdentifier","src":"16922:3:101"},{"kind":"number","nativeSrc":"16927:2:101","nodeType":"YulLiteral","src":"16927:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16918:3:101","nodeType":"YulIdentifier","src":"16918:3:101"},"nativeSrc":"16918:12:101","nodeType":"YulFunctionCall","src":"16918:12:101"},"variableNames":[{"name":"end","nativeSrc":"16911:3:101","nodeType":"YulIdentifier","src":"16911:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"16570:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16704:3:101","nodeType":"YulTypedName","src":"16704:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16712:3:101","nodeType":"YulTypedName","src":"16712:3:101","type":""}],"src":"16570:366:101"},{"body":{"nativeSrc":"17113:248:101","nodeType":"YulBlock","src":"17113:248:101","statements":[{"nativeSrc":"17123:26:101","nodeType":"YulAssignment","src":"17123:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17135:9:101","nodeType":"YulIdentifier","src":"17135:9:101"},{"kind":"number","nativeSrc":"17146:2:101","nodeType":"YulLiteral","src":"17146:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17131:3:101","nodeType":"YulIdentifier","src":"17131:3:101"},"nativeSrc":"17131:18:101","nodeType":"YulFunctionCall","src":"17131:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17123:4:101","nodeType":"YulIdentifier","src":"17123:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17170:9:101","nodeType":"YulIdentifier","src":"17170:9:101"},{"kind":"number","nativeSrc":"17181:1:101","nodeType":"YulLiteral","src":"17181:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17166:3:101","nodeType":"YulIdentifier","src":"17166:3:101"},"nativeSrc":"17166:17:101","nodeType":"YulFunctionCall","src":"17166:17:101"},{"arguments":[{"name":"tail","nativeSrc":"17189:4:101","nodeType":"YulIdentifier","src":"17189:4:101"},{"name":"headStart","nativeSrc":"17195:9:101","nodeType":"YulIdentifier","src":"17195:9:101"}],"functionName":{"name":"sub","nativeSrc":"17185:3:101","nodeType":"YulIdentifier","src":"17185:3:101"},"nativeSrc":"17185:20:101","nodeType":"YulFunctionCall","src":"17185:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17159:6:101","nodeType":"YulIdentifier","src":"17159:6:101"},"nativeSrc":"17159:47:101","nodeType":"YulFunctionCall","src":"17159:47:101"},"nativeSrc":"17159:47:101","nodeType":"YulExpressionStatement","src":"17159:47:101"},{"nativeSrc":"17215:139:101","nodeType":"YulAssignment","src":"17215:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"17349:4:101","nodeType":"YulIdentifier","src":"17349:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"17223:124:101","nodeType":"YulIdentifier","src":"17223:124:101"},"nativeSrc":"17223:131:101","nodeType":"YulFunctionCall","src":"17223:131:101"},"variableNames":[{"name":"tail","nativeSrc":"17215:4:101","nodeType":"YulIdentifier","src":"17215:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16942:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17093:9:101","nodeType":"YulTypedName","src":"17093:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17108:4:101","nodeType":"YulTypedName","src":"17108:4:101","type":""}],"src":"16942:419:101"},{"body":{"nativeSrc":"17473:116:101","nodeType":"YulBlock","src":"17473:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"17495:6:101","nodeType":"YulIdentifier","src":"17495:6:101"},{"kind":"number","nativeSrc":"17503:1:101","nodeType":"YulLiteral","src":"17503:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17491:3:101","nodeType":"YulIdentifier","src":"17491:3:101"},"nativeSrc":"17491:14:101","nodeType":"YulFunctionCall","src":"17491:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"17507:34:101","nodeType":"YulLiteral","src":"17507:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"17484:6:101","nodeType":"YulIdentifier","src":"17484:6:101"},"nativeSrc":"17484:58:101","nodeType":"YulFunctionCall","src":"17484:58:101"},"nativeSrc":"17484:58:101","nodeType":"YulExpressionStatement","src":"17484:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"17563:6:101","nodeType":"YulIdentifier","src":"17563:6:101"},{"kind":"number","nativeSrc":"17571:2:101","nodeType":"YulLiteral","src":"17571:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17559:3:101","nodeType":"YulIdentifier","src":"17559:3:101"},"nativeSrc":"17559:15:101","nodeType":"YulFunctionCall","src":"17559:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"17576:5:101","nodeType":"YulLiteral","src":"17576:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"17552:6:101","nodeType":"YulIdentifier","src":"17552:6:101"},"nativeSrc":"17552:30:101","nodeType":"YulFunctionCall","src":"17552:30:101"},"nativeSrc":"17552:30:101","nodeType":"YulExpressionStatement","src":"17552:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"17367:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"17465:6:101","nodeType":"YulTypedName","src":"17465:6:101","type":""}],"src":"17367:222:101"},{"body":{"nativeSrc":"17741:220:101","nodeType":"YulBlock","src":"17741:220:101","statements":[{"nativeSrc":"17751:74:101","nodeType":"YulAssignment","src":"17751:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"17817:3:101","nodeType":"YulIdentifier","src":"17817:3:101"},{"kind":"number","nativeSrc":"17822:2:101","nodeType":"YulLiteral","src":"17822:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"17758:58:101","nodeType":"YulIdentifier","src":"17758:58:101"},"nativeSrc":"17758:67:101","nodeType":"YulFunctionCall","src":"17758:67:101"},"variableNames":[{"name":"pos","nativeSrc":"17751:3:101","nodeType":"YulIdentifier","src":"17751:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17923:3:101","nodeType":"YulIdentifier","src":"17923:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"17834:88:101","nodeType":"YulIdentifier","src":"17834:88:101"},"nativeSrc":"17834:93:101","nodeType":"YulFunctionCall","src":"17834:93:101"},"nativeSrc":"17834:93:101","nodeType":"YulExpressionStatement","src":"17834:93:101"},{"nativeSrc":"17936:19:101","nodeType":"YulAssignment","src":"17936:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"17947:3:101","nodeType":"YulIdentifier","src":"17947:3:101"},{"kind":"number","nativeSrc":"17952:2:101","nodeType":"YulLiteral","src":"17952:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17943:3:101","nodeType":"YulIdentifier","src":"17943:3:101"},"nativeSrc":"17943:12:101","nodeType":"YulFunctionCall","src":"17943:12:101"},"variableNames":[{"name":"end","nativeSrc":"17936:3:101","nodeType":"YulIdentifier","src":"17936:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"17595:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17729:3:101","nodeType":"YulTypedName","src":"17729:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17737:3:101","nodeType":"YulTypedName","src":"17737:3:101","type":""}],"src":"17595:366:101"},{"body":{"nativeSrc":"18138:248:101","nodeType":"YulBlock","src":"18138:248:101","statements":[{"nativeSrc":"18148:26:101","nodeType":"YulAssignment","src":"18148:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18160:9:101","nodeType":"YulIdentifier","src":"18160:9:101"},{"kind":"number","nativeSrc":"18171:2:101","nodeType":"YulLiteral","src":"18171:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18156:3:101","nodeType":"YulIdentifier","src":"18156:3:101"},"nativeSrc":"18156:18:101","nodeType":"YulFunctionCall","src":"18156:18:101"},"variableNames":[{"name":"tail","nativeSrc":"18148:4:101","nodeType":"YulIdentifier","src":"18148:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18195:9:101","nodeType":"YulIdentifier","src":"18195:9:101"},{"kind":"number","nativeSrc":"18206:1:101","nodeType":"YulLiteral","src":"18206:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18191:3:101","nodeType":"YulIdentifier","src":"18191:3:101"},"nativeSrc":"18191:17:101","nodeType":"YulFunctionCall","src":"18191:17:101"},{"arguments":[{"name":"tail","nativeSrc":"18214:4:101","nodeType":"YulIdentifier","src":"18214:4:101"},{"name":"headStart","nativeSrc":"18220:9:101","nodeType":"YulIdentifier","src":"18220:9:101"}],"functionName":{"name":"sub","nativeSrc":"18210:3:101","nodeType":"YulIdentifier","src":"18210:3:101"},"nativeSrc":"18210:20:101","nodeType":"YulFunctionCall","src":"18210:20:101"}],"functionName":{"name":"mstore","nativeSrc":"18184:6:101","nodeType":"YulIdentifier","src":"18184:6:101"},"nativeSrc":"18184:47:101","nodeType":"YulFunctionCall","src":"18184:47:101"},"nativeSrc":"18184:47:101","nodeType":"YulExpressionStatement","src":"18184:47:101"},{"nativeSrc":"18240:139:101","nodeType":"YulAssignment","src":"18240:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"18374:4:101","nodeType":"YulIdentifier","src":"18374:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"18248:124:101","nodeType":"YulIdentifier","src":"18248:124:101"},"nativeSrc":"18248:131:101","nodeType":"YulFunctionCall","src":"18248:131:101"},"variableNames":[{"name":"tail","nativeSrc":"18240:4:101","nodeType":"YulIdentifier","src":"18240:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17967:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18118:9:101","nodeType":"YulTypedName","src":"18118:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18133:4:101","nodeType":"YulTypedName","src":"18133:4:101","type":""}],"src":"17967:419:101"},{"body":{"nativeSrc":"18498:119:101","nodeType":"YulBlock","src":"18498:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"18520:6:101","nodeType":"YulIdentifier","src":"18520:6:101"},{"kind":"number","nativeSrc":"18528:1:101","nodeType":"YulLiteral","src":"18528:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18516:3:101","nodeType":"YulIdentifier","src":"18516:3:101"},"nativeSrc":"18516:14:101","nodeType":"YulFunctionCall","src":"18516:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"18532:34:101","nodeType":"YulLiteral","src":"18532:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"18509:6:101","nodeType":"YulIdentifier","src":"18509:6:101"},"nativeSrc":"18509:58:101","nodeType":"YulFunctionCall","src":"18509:58:101"},"nativeSrc":"18509:58:101","nodeType":"YulExpressionStatement","src":"18509:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"18588:6:101","nodeType":"YulIdentifier","src":"18588:6:101"},{"kind":"number","nativeSrc":"18596:2:101","nodeType":"YulLiteral","src":"18596:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18584:3:101","nodeType":"YulIdentifier","src":"18584:3:101"},"nativeSrc":"18584:15:101","nodeType":"YulFunctionCall","src":"18584:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"18601:8:101","nodeType":"YulLiteral","src":"18601:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"18577:6:101","nodeType":"YulIdentifier","src":"18577:6:101"},"nativeSrc":"18577:33:101","nodeType":"YulFunctionCall","src":"18577:33:101"},"nativeSrc":"18577:33:101","nodeType":"YulExpressionStatement","src":"18577:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"18392:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18490:6:101","nodeType":"YulTypedName","src":"18490:6:101","type":""}],"src":"18392:225:101"},{"body":{"nativeSrc":"18769:220:101","nodeType":"YulBlock","src":"18769:220:101","statements":[{"nativeSrc":"18779:74:101","nodeType":"YulAssignment","src":"18779:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"18845:3:101","nodeType":"YulIdentifier","src":"18845:3:101"},{"kind":"number","nativeSrc":"18850:2:101","nodeType":"YulLiteral","src":"18850:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"18786:58:101","nodeType":"YulIdentifier","src":"18786:58:101"},"nativeSrc":"18786:67:101","nodeType":"YulFunctionCall","src":"18786:67:101"},"variableNames":[{"name":"pos","nativeSrc":"18779:3:101","nodeType":"YulIdentifier","src":"18779:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18951:3:101","nodeType":"YulIdentifier","src":"18951:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"18862:88:101","nodeType":"YulIdentifier","src":"18862:88:101"},"nativeSrc":"18862:93:101","nodeType":"YulFunctionCall","src":"18862:93:101"},"nativeSrc":"18862:93:101","nodeType":"YulExpressionStatement","src":"18862:93:101"},{"nativeSrc":"18964:19:101","nodeType":"YulAssignment","src":"18964:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"18975:3:101","nodeType":"YulIdentifier","src":"18975:3:101"},{"kind":"number","nativeSrc":"18980:2:101","nodeType":"YulLiteral","src":"18980:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18971:3:101","nodeType":"YulIdentifier","src":"18971:3:101"},"nativeSrc":"18971:12:101","nodeType":"YulFunctionCall","src":"18971:12:101"},"variableNames":[{"name":"end","nativeSrc":"18964:3:101","nodeType":"YulIdentifier","src":"18964:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"18623:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18757:3:101","nodeType":"YulTypedName","src":"18757:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18765:3:101","nodeType":"YulTypedName","src":"18765:3:101","type":""}],"src":"18623:366:101"},{"body":{"nativeSrc":"19166:248:101","nodeType":"YulBlock","src":"19166:248:101","statements":[{"nativeSrc":"19176:26:101","nodeType":"YulAssignment","src":"19176:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"19188:9:101","nodeType":"YulIdentifier","src":"19188:9:101"},{"kind":"number","nativeSrc":"19199:2:101","nodeType":"YulLiteral","src":"19199:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19184:3:101","nodeType":"YulIdentifier","src":"19184:3:101"},"nativeSrc":"19184:18:101","nodeType":"YulFunctionCall","src":"19184:18:101"},"variableNames":[{"name":"tail","nativeSrc":"19176:4:101","nodeType":"YulIdentifier","src":"19176:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19223:9:101","nodeType":"YulIdentifier","src":"19223:9:101"},{"kind":"number","nativeSrc":"19234:1:101","nodeType":"YulLiteral","src":"19234:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19219:3:101","nodeType":"YulIdentifier","src":"19219:3:101"},"nativeSrc":"19219:17:101","nodeType":"YulFunctionCall","src":"19219:17:101"},{"arguments":[{"name":"tail","nativeSrc":"19242:4:101","nodeType":"YulIdentifier","src":"19242:4:101"},{"name":"headStart","nativeSrc":"19248:9:101","nodeType":"YulIdentifier","src":"19248:9:101"}],"functionName":{"name":"sub","nativeSrc":"19238:3:101","nodeType":"YulIdentifier","src":"19238:3:101"},"nativeSrc":"19238:20:101","nodeType":"YulFunctionCall","src":"19238:20:101"}],"functionName":{"name":"mstore","nativeSrc":"19212:6:101","nodeType":"YulIdentifier","src":"19212:6:101"},"nativeSrc":"19212:47:101","nodeType":"YulFunctionCall","src":"19212:47:101"},"nativeSrc":"19212:47:101","nodeType":"YulExpressionStatement","src":"19212:47:101"},{"nativeSrc":"19268:139:101","nodeType":"YulAssignment","src":"19268:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"19402:4:101","nodeType":"YulIdentifier","src":"19402:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"19276:124:101","nodeType":"YulIdentifier","src":"19276:124:101"},"nativeSrc":"19276:131:101","nodeType":"YulFunctionCall","src":"19276:131:101"},"variableNames":[{"name":"tail","nativeSrc":"19268:4:101","nodeType":"YulIdentifier","src":"19268:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18995:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19146:9:101","nodeType":"YulTypedName","src":"19146:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19161:4:101","nodeType":"YulTypedName","src":"19161:4:101","type":""}],"src":"18995:419:101"},{"body":{"nativeSrc":"19526:75:101","nodeType":"YulBlock","src":"19526:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19548:6:101","nodeType":"YulIdentifier","src":"19548:6:101"},{"kind":"number","nativeSrc":"19556:1:101","nodeType":"YulLiteral","src":"19556:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19544:3:101","nodeType":"YulIdentifier","src":"19544:3:101"},"nativeSrc":"19544:14:101","nodeType":"YulFunctionCall","src":"19544:14:101"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"19560:33:101","nodeType":"YulLiteral","src":"19560:33:101","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"19537:6:101","nodeType":"YulIdentifier","src":"19537:6:101"},"nativeSrc":"19537:57:101","nodeType":"YulFunctionCall","src":"19537:57:101"},"nativeSrc":"19537:57:101","nodeType":"YulExpressionStatement","src":"19537:57:101"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"19420:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19518:6:101","nodeType":"YulTypedName","src":"19518:6:101","type":""}],"src":"19420:181:101"},{"body":{"nativeSrc":"19753:220:101","nodeType":"YulBlock","src":"19753:220:101","statements":[{"nativeSrc":"19763:74:101","nodeType":"YulAssignment","src":"19763:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"19829:3:101","nodeType":"YulIdentifier","src":"19829:3:101"},{"kind":"number","nativeSrc":"19834:2:101","nodeType":"YulLiteral","src":"19834:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19770:58:101","nodeType":"YulIdentifier","src":"19770:58:101"},"nativeSrc":"19770:67:101","nodeType":"YulFunctionCall","src":"19770:67:101"},"variableNames":[{"name":"pos","nativeSrc":"19763:3:101","nodeType":"YulIdentifier","src":"19763:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19935:3:101","nodeType":"YulIdentifier","src":"19935:3:101"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"19846:88:101","nodeType":"YulIdentifier","src":"19846:88:101"},"nativeSrc":"19846:93:101","nodeType":"YulFunctionCall","src":"19846:93:101"},"nativeSrc":"19846:93:101","nodeType":"YulExpressionStatement","src":"19846:93:101"},{"nativeSrc":"19948:19:101","nodeType":"YulAssignment","src":"19948:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"19959:3:101","nodeType":"YulIdentifier","src":"19959:3:101"},{"kind":"number","nativeSrc":"19964:2:101","nodeType":"YulLiteral","src":"19964:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19955:3:101","nodeType":"YulIdentifier","src":"19955:3:101"},"nativeSrc":"19955:12:101","nodeType":"YulFunctionCall","src":"19955:12:101"},"variableNames":[{"name":"end","nativeSrc":"19948:3:101","nodeType":"YulIdentifier","src":"19948:3:101"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"19607:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19741:3:101","nodeType":"YulTypedName","src":"19741:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19749:3:101","nodeType":"YulTypedName","src":"19749:3:101","type":""}],"src":"19607:366:101"},{"body":{"nativeSrc":"20150:248:101","nodeType":"YulBlock","src":"20150:248:101","statements":[{"nativeSrc":"20160:26:101","nodeType":"YulAssignment","src":"20160:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20172:9:101","nodeType":"YulIdentifier","src":"20172:9:101"},{"kind":"number","nativeSrc":"20183:2:101","nodeType":"YulLiteral","src":"20183:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20168:3:101","nodeType":"YulIdentifier","src":"20168:3:101"},"nativeSrc":"20168:18:101","nodeType":"YulFunctionCall","src":"20168:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20160:4:101","nodeType":"YulIdentifier","src":"20160:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20207:9:101","nodeType":"YulIdentifier","src":"20207:9:101"},{"kind":"number","nativeSrc":"20218:1:101","nodeType":"YulLiteral","src":"20218:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20203:3:101","nodeType":"YulIdentifier","src":"20203:3:101"},"nativeSrc":"20203:17:101","nodeType":"YulFunctionCall","src":"20203:17:101"},{"arguments":[{"name":"tail","nativeSrc":"20226:4:101","nodeType":"YulIdentifier","src":"20226:4:101"},{"name":"headStart","nativeSrc":"20232:9:101","nodeType":"YulIdentifier","src":"20232:9:101"}],"functionName":{"name":"sub","nativeSrc":"20222:3:101","nodeType":"YulIdentifier","src":"20222:3:101"},"nativeSrc":"20222:20:101","nodeType":"YulFunctionCall","src":"20222:20:101"}],"functionName":{"name":"mstore","nativeSrc":"20196:6:101","nodeType":"YulIdentifier","src":"20196:6:101"},"nativeSrc":"20196:47:101","nodeType":"YulFunctionCall","src":"20196:47:101"},"nativeSrc":"20196:47:101","nodeType":"YulExpressionStatement","src":"20196:47:101"},{"nativeSrc":"20252:139:101","nodeType":"YulAssignment","src":"20252:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"20386:4:101","nodeType":"YulIdentifier","src":"20386:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"20260:124:101","nodeType":"YulIdentifier","src":"20260:124:101"},"nativeSrc":"20260:131:101","nodeType":"YulFunctionCall","src":"20260:131:101"},"variableNames":[{"name":"tail","nativeSrc":"20252:4:101","nodeType":"YulIdentifier","src":"20252:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19979:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20130:9:101","nodeType":"YulTypedName","src":"20130:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20145:4:101","nodeType":"YulTypedName","src":"20145:4:101","type":""}],"src":"19979:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7595":[{"length":32,"start":398},{"length":32,"start":938}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c80636c58d43d1161009e57806395d89b411161006e57806395d89b4114610245578063a457c2d71461024d578063a9059cbb14610260578063dd62ed3e14610273578063f2fde38b14610286575f80fd5b80636c58d43d146101e957806370a08231146101fc578063715018a6146102245780638da5cb5b1461022c575f80fd5b806323b872dd116100e457806323b872dd14610179578063313ce5671461018c57806339509351146101ba5780633ba0b9a9146101cd57806357915897146101d6575f80fd5b806306fdde03146101155780630904af8514610133578063095ea7b31461014857806318160ddd14610168575b5f80fd5b61011d610299565b60405161012a91906107fc565b60405180910390f35b610146610141366004610824565b610329565b005b61015b61015636600461086e565b610336565b60405161012a91906108b2565b6002545b60405161012a91906108c6565b61015b6101873660046108d4565b61034f565b7f000000000000000000000000000000000000000000000000000000000000000060405161012a9190610929565b61015b6101c836600461086e565b610374565b61016c60065481565b6101466101e4366004610824565b610395565b61016c6101f7366004610824565b6103a2565b61016c61020a366004610937565b6001600160a01b03165f9081526020819052604090205490565b6101466103e8565b6005546001600160a01b031660405161012a919061095e565b61011d6103fb565b61015b61025b36600461086e565b61040a565b61015b61026e36600461086e565b61045a565b61016c61028136600461096c565b610467565b610146610294366004610937565b610491565b6060600380546102a8906109b0565b80601f01602080910402602001604051908101604052809291908181526020018280546102d4906109b0565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b6103316104c8565b600655565b5f336103438185856104f2565b60019150505b92915050565b5f3361035c8582856105a5565b6103678585856105ed565b60019150505b9392505050565b5f336103438185856103868383610467565b61039091906109f0565b6104f2565b61039f33826106db565b50565b5f6103d160ff7f000000000000000000000000000000000000000000000000000000000000000016600a610b0f565b6006546103de9084610b1c565b6103499190610b4f565b6103f06104c8565b6103f95f61076f565b565b6060600480546102a8906109b0565b5f33816104178286610467565b9050838110156104425760405162461bcd60e51b815260040161043990610ba6565b60405180910390fd5b61044f82868684036104f2565b506001949350505050565b5f336103438185856105ed565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6104996104c8565b6001600160a01b0381166104bf5760405162461bcd60e51b815260040161043990610bf8565b61039f8161076f565b6005546001600160a01b031633146103f95760405162461bcd60e51b815260040161043990610c3c565b6001600160a01b0383166105185760405162461bcd60e51b815260040161043990610c8c565b6001600160a01b03821661053e5760405162461bcd60e51b815260040161043990610cda565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105989085906108c6565b60405180910390a3505050565b5f6105b08484610467565b90505f1981146105e757818110156105da5760405162461bcd60e51b815260040161043990610d1d565b6105e784848484036104f2565b50505050565b6001600160a01b0383166106135760405162461bcd60e51b815260040161043990610d6e565b6001600160a01b0382166106395760405162461bcd60e51b815260040161043990610dbd565b6001600160a01b0383165f90815260208190526040902054818110156106715760405162461bcd60e51b815260040161043990610e0f565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ce9086906108c6565b60405180910390a36105e7565b6001600160a01b0382166107015760405162461bcd60e51b815260040161043990610e52565b8060025f82825461071291906109f0565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107639085906108c6565b60405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f6107d4825190565b8084526020840193506107eb8185602086016107c0565b601f01601f19169290920192915050565b6020808252810161036d81846107cb565b805b811461039f575f80fd5b80356103498161080d565b5f60208284031215610837576108375f80fd5b5f6108428484610819565b949350505050565b5f6001600160a01b038216610349565b61080f8161084a565b80356103498161085a565b5f8060408385031215610882576108825f80fd5b5f61088d8585610863565b925050602061089e85828601610819565b9150509250929050565b8015155b82525050565b6020810161034982846108a8565b806108ac565b6020810161034982846108c0565b5f805f606084860312156108e9576108e95f80fd5b5f6108f48686610863565b935050602061090586828701610863565b925050604061091686828701610819565b9150509250925092565b60ff81166108ac565b602081016103498284610920565b5f6020828403121561094a5761094a5f80fd5b5f6108428484610863565b6108ac8161084a565b602081016103498284610955565b5f8060408385031215610980576109805f80fd5b5f61098b8585610863565b925050602061089e85828601610863565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806109c457607f821691505b6020821081036109d6576109d661099c565b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610349576103496109dc565b80825b6001851115610a4257808604811115610a2157610a216109dc565b6001851615610a2f57908102905b8002610a3b8560011c90565b9450610a06565b94509492505050565b5f82610a595750600161036d565b81610a6557505f61036d565b8160018114610a7b5760028114610a8557610ab2565b600191505061036d565b60ff841115610a9657610a966109dc565b8360020a915084821115610aac57610aac6109dc565b5061036d565b5060208310610133831016604e8410600b8410161715610ae5575081810a83811115610ae057610ae06109dc565b61036d565b610af28484846001610a03565b92509050818404811115610b0857610b086109dc565b0292915050565b5f61036d5f198484610a4b565b818102808215838204851417610b3457610b346109dc565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82610b5d57610b5d610b3b565b500490565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161034981610b62565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610b9f565b6020808252810161034981610bb6565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f5b5060200190565b6020808252810161034981610c08565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610b9f565b6020808252810161034981610c4c565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610b9f565b6020808252810161034981610c9c565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081529150610c35565b6020808252810161034981610cea565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610b9f565b6020808252810161034981610d2d565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610b9f565b6020808252810161034981610d7e565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610b9f565b6020808252810161034981610dcd565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610c35565b6020808252810161034981610e1f56fea26469706673582212206ab418a51d1895030cf1ec66b2cc206a647f128f019f98a88ef3411d9834d55d64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6C58D43D GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x286 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6C58D43D EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x22C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x3BA0B9A9 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x1D6 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x904AF85 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x168 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D PUSH2 0x299 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x7FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x146 PUSH2 0x141 CALLDATASIZE PUSH1 0x4 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x329 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH2 0x156 CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x336 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x187 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D4 JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x929 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x395 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x824 JUMP JUMPDEST PUSH2 0x3A2 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x3E8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x95E JUMP JUMPDEST PUSH2 0x11D PUSH2 0x3FB JUMP JUMPDEST PUSH2 0x15B PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x40A JUMP JUMPDEST PUSH2 0x15B PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x86E JUMP JUMPDEST PUSH2 0x45A JUMP JUMPDEST PUSH2 0x16C PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x96C JUMP JUMPDEST PUSH2 0x467 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x937 JUMP JUMPDEST PUSH2 0x491 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2A8 SWAP1 PUSH2 0x9B0 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 0x2D4 SWAP1 PUSH2 0x9B0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x31F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x31F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x302 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x331 PUSH2 0x4C8 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH0 CALLER PUSH2 0x343 DUP2 DUP6 DUP6 PUSH2 0x4F2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x35C DUP6 DUP3 DUP6 PUSH2 0x5A5 JUMP JUMPDEST PUSH2 0x367 DUP6 DUP6 DUP6 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x343 DUP2 DUP6 DUP6 PUSH2 0x386 DUP4 DUP4 PUSH2 0x467 JUMP JUMPDEST PUSH2 0x390 SWAP2 SWAP1 PUSH2 0x9F0 JUMP JUMPDEST PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x39F CALLER DUP3 PUSH2 0x6DB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x3D1 PUSH1 0xFF PUSH32 0x0 AND PUSH1 0xA PUSH2 0xB0F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x3DE SWAP1 DUP5 PUSH2 0xB1C JUMP JUMPDEST PUSH2 0x349 SWAP2 SWAP1 PUSH2 0xB4F JUMP JUMPDEST PUSH2 0x3F0 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x3F9 PUSH0 PUSH2 0x76F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x2A8 SWAP1 PUSH2 0x9B0 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x417 DUP3 DUP7 PUSH2 0x467 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x442 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xBA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x44F DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x4F2 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x343 DUP2 DUP6 DUP6 PUSH2 0x5ED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x499 PUSH2 0x4C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xBF8 JUMP JUMPDEST PUSH2 0x39F DUP2 PUSH2 0x76F JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xC3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x518 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xC8C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x598 SWAP1 DUP6 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5B0 DUP5 DUP5 PUSH2 0x467 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x5E7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xD1D JUMP JUMPDEST PUSH2 0x5E7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x4F2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xD6E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6CE SWAP1 DUP7 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x5E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xE52 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x712 SWAP2 SWAP1 PUSH2 0x9F0 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x763 SWAP1 DUP6 SWAP1 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7D4 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x7EB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x36D DUP2 DUP5 PUSH2 0x7CB JUMP JUMPDEST DUP1 JUMPDEST DUP2 EQ PUSH2 0x39F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x349 DUP2 PUSH2 0x80D JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x837 JUMPI PUSH2 0x837 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x842 DUP5 DUP5 PUSH2 0x819 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x349 JUMP JUMPDEST PUSH2 0x80F DUP2 PUSH2 0x84A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x349 DUP2 PUSH2 0x85A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x882 JUMPI PUSH2 0x882 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x88D DUP6 DUP6 PUSH2 0x863 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x89E DUP6 DUP3 DUP7 ADD PUSH2 0x819 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x8A8 JUMP JUMPDEST DUP1 PUSH2 0x8AC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x8C0 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8E9 JUMPI PUSH2 0x8E9 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8F4 DUP7 DUP7 PUSH2 0x863 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x905 DUP7 DUP3 DUP8 ADD PUSH2 0x863 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x916 DUP7 DUP3 DUP8 ADD PUSH2 0x819 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x8AC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x920 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x94A JUMPI PUSH2 0x94A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x842 DUP5 DUP5 PUSH2 0x863 JUMP JUMPDEST PUSH2 0x8AC DUP2 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x349 DUP3 DUP5 PUSH2 0x955 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x980 JUMPI PUSH2 0x980 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x98B DUP6 DUP6 PUSH2 0x863 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x89E DUP6 DUP3 DUP7 ADD PUSH2 0x863 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x9C4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH2 0x99C JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x349 JUMPI PUSH2 0x349 PUSH2 0x9DC JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xA42 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xA21 JUMPI PUSH2 0xA21 PUSH2 0x9DC JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xA2F JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xA3B DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xA06 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xA59 JUMPI POP PUSH1 0x1 PUSH2 0x36D JUMP JUMPDEST DUP2 PUSH2 0xA65 JUMPI POP PUSH0 PUSH2 0x36D JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xA7B JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xA85 JUMPI PUSH2 0xAB2 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x36D JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xA96 JUMPI PUSH2 0xA96 PUSH2 0x9DC JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xAAC JUMPI PUSH2 0xAAC PUSH2 0x9DC JUMP JUMPDEST POP PUSH2 0x36D JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xAE5 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0x9DC JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH2 0xAF2 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xA03 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xB08 JUMPI PUSH2 0xB08 PUSH2 0x9DC JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x36D PUSH0 NOT DUP5 DUP5 PUSH2 0xA4B JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB34 JUMPI PUSH2 0xB34 PUSH2 0x9DC JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB5D JUMPI PUSH2 0xB5D PUSH2 0xB3B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xBB6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xC4C JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xC9C JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xCEA JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xD2D JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xD7E JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xDCD JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x349 DUP2 PUSH2 0xE1F JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH11 0xB418A51D1895030CF1EC66 0xB2 0xCC KECCAK256 PUSH11 0x647F128F019F98A88EF341 SAR SWAP9 CALLVALUE 0xD5 TSTORE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"310:746:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;676:95:75;;;;;;:::i;:::-;;:::i;:::-;;4444:197:11;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;939:115:75:-;1038:9;939:115;;;;;;:::i;5854:234:11:-;;;;;;:::i;:::-;;:::i;404:27:75:-;;;;;;587:83;;;;;;:::i;:::-;;:::i;777:156::-;;;;;;:::i;:::-;;:::i;3419:125:11:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;1824:101:10;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:10;1201:85;;;;;;:::i;2369:102:11:-;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2074:198:10:-;;;;;;:::i;:::-;;:::i;2158:98:11:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;676:95:75:-;1094:13:10;:11;:13::i;:::-;745:12:75::1;:19:::0;676:95::o;4444:197:11:-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;;:::o;5854:234::-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;587:83:75:-;638:25;644:10;656:6;638:5;:25::i;:::-;587:83;:::o;777:156::-;848:7;901:24;907:18;915:9;907:18;901:2;:24;:::i;:::-;884:12;;875:21;;:6;:21;:::i;:::-;874:52;;;;:::i;1824:101:10:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2369:102:11:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;-1:-1:-1;6991:4:11;;6575:427;-1:-1:-1;;;;6575:427:11:o;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;2074:198:10:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;2237:28;2256:8;2237:18;:28::i;1359:130::-:0;1273:6;;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;10457:340:11:-;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;8520:535;-1:-1:-1;;;;;8603:21:11;;8595:65;;;;-1:-1:-1;;;8595:65:11;;;;;;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:11;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;8520:535;;:::o;2426:187:10:-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;287:139:101:-;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;1652:122::-;1743:5;1725:24;1718:5;1715:35;1705:63;;1764:1;1761;1754:12;1780:139;1851:20;;1880:33;1851:20;1880:33;:::i;1925:329::-;1984:6;2033:2;2021:9;2012:7;2008:23;2004:32;2001:119;;;2039:79;310:746:75;;;2039:79:101;2159:1;2184:53;2229:7;2209:9;2184:53;:::i;:::-;2174:63;1925:329;-1:-1:-1;;;;1925:329:101:o;2392:96::-;2429:7;-1:-1:-1;;;;;2326:54:101;;2458:24;2260:126;2494:122;2567:24;2585:5;2567:24;:::i;2622:139::-;2693:20;;2722:33;2693:20;2722:33;:::i;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;310:746:75;;;2898:79:101;3018:1;3043:53;3088:7;3068:9;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3343:109::-;3317:13;;3310:21;3424;3419:3;3412:34;3343:109;;:::o;3458:210::-;3583:2;3568:18;;3596:65;3572:9;3634:6;3596:65;:::i;3674:118::-;3779:5;3761:24;1569:77;3798:222;3929:2;3914:18;;3942:71;3918:9;3986:6;3942:71;:::i;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;310:746:75;;;4174:79:101;4294:1;4319:53;4364:7;4344:9;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4743:112::-;4726:4;4715:16;;4826:22;4651:86;4861:214;4988:2;4973:18;;5001:67;4977:9;5041:6;5001:67;:::i;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;310:746:75;;;5195:79:101;5315:1;5340:53;5385:7;5365:9;5340:53;:::i;5416:118::-;5503:24;5521:5;5503:24;:::i;5540:222::-;5671:2;5656:18;;5684:71;5660:9;5728:6;5684:71;:::i;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;310:746:75;;;5899:79:101;6019:1;6044:53;6089:7;6069:9;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;6248:180::-;-1:-1:-1;;;6293:1:101;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:320;6515:1;6505:12;;6562:1;6552:12;;;6573:81;;6639:4;6631:6;6627:17;6617:27;;6573:81;6701:2;6693:6;6690:14;6670:18;6667:38;6664:84;;6720:18;;:::i;:::-;6485:269;6434:320;;;:::o;6760:180::-;-1:-1:-1;;;6805:1:101;6798:88;6905:4;6902:1;6895:15;6929:4;6926:1;6919:15;6946:191;7075:9;;;7097:10;;;7094:36;;;7110:18;;:::i;7251:848::-;7343:6;7367:5;7381:712;7402:1;7392:8;7389:15;7381:712;;;7497:4;7492:3;7488:14;7482:4;7479:24;7476:50;;;7506:18;;:::i;:::-;7556:1;7546:8;7542:16;7539:451;;;7960:16;;;;7539:451;8011:15;;8051:32;8074:8;7229:1;7225:13;;7143:102;8051:32;8039:44;;7381:712;;;7251:848;;;;;;;:::o;8105:1073::-;8159:5;8350:8;8340:40;;-1:-1:-1;8371:1:101;8373:5;;8340:40;8399:4;8389:36;;-1:-1:-1;8416:1:101;8418:5;;8389:36;8485:4;8533:1;8528:27;;;;8569:1;8564:191;;;;8478:277;;8528:27;8546:1;8537:10;;8548:5;;;8564:191;8609:3;8599:8;8596:17;8593:43;;;8616:18;;:::i;:::-;8665:8;8662:1;8658:16;8649:25;;8700:3;8693:5;8690:14;8687:40;;;8707:18;;:::i;:::-;8740:5;;;8478:277;;8864:2;8854:8;8851:16;8845:3;8839:4;8836:13;8832:36;8814:2;8804:8;8801:16;8796:2;8790:4;8787:12;8783:35;8767:111;8764:246;;;-1:-1:-1;8910:19:101;;;8945:14;;;8942:40;;;8962:18;;:::i;:::-;8995:5;;8764:246;9035:42;9073:3;9063:8;9057:4;9054:1;9035:42;:::i;:::-;9020:57;;;;9109:4;9104:3;9100:14;9093:5;9090:25;9087:51;;;9118:18;;:::i;:::-;9156:16;;8105:1073;-1:-1:-1;;8105:1073:101:o;9184:285::-;9244:5;9358:104;-1:-1:-1;;9385:8:101;9379:4;9358:104;:::i;9475:410::-;9620:9;;;;9782;;9815:15;;;9809:22;;9762:83;9739:139;;9858:18;;:::i;:::-;9523:362;9475:410;;;;:::o;9891:180::-;-1:-1:-1;;;9936:1:101;9929:88;10036:4;10033:1;10026:15;10060:4;10057:1;10050:15;10077:185;10117:1;10207;10197:35;;10212:18;;:::i;:::-;-1:-1:-1;10247:9:101;;10077:185::o;10498:366::-;10725:2;218:19;;10640:3;270:4;261:14;;10408:34;10385:58;;-1:-1:-1;;;10472:2:101;10460:15;;10453:32;10654:74;-1:-1:-1;10737:93:101;-1:-1:-1;10855:2:101;10846:12;;10498:366::o;10870:419::-;11074:2;11087:47;;;11059:18;;11151:131;11059:18;11151:131;:::i;11526:366::-;11753:2;218:19;;11668:3;270:4;261:14;;11435:34;11412:58;;-1:-1:-1;;;11499:2:101;11487:15;;11480:33;11682:74;-1:-1:-1;11765:93:101;11295:225;11898:419;12102:2;12115:47;;;12087:18;;12179:131;12087:18;12179:131;:::i;12511:366::-;12738:2;218:19;;;12463:34;261:14;;12440:58;;;12653:3;12750:93;-1:-1:-1;12868:2:101;12859:12;;12511:366::o;12883:419::-;13087:2;13100:47;;;13072:18;;13164:131;13072:18;13164:131;:::i;13537:366::-;13764:2;218:19;;13679:3;270:4;261:14;;13448:34;13425:58;;-1:-1:-1;;;13512:2:101;13500:15;;13493:31;13693:74;-1:-1:-1;13776:93:101;13308:223;13909:419;14113:2;14126:47;;;14098:18;;14190:131;14098:18;14190:131;:::i;14561:366::-;14788:2;218:19;;14703:3;270:4;261:14;;14474:34;14451:58;;-1:-1:-1;;;14538:2:101;14526:15;;14519:29;14717:74;-1:-1:-1;14800:93:101;14334:221;14933:419;15137:2;15150:47;;;15122:18;;15214:131;15122:18;15214:131;:::i;15543:366::-;15770:2;218:19;;15685:3;270:4;261:14;;15498:31;15475:55;;15699:74;-1:-1:-1;15782:93:101;15358:179;15915:419;16119:2;16132:47;;;16104:18;;16196:131;16104:18;16196:131;:::i;16570:366::-;16797:2;218:19;;16712:3;270:4;261:14;;16480:34;16457:58;;-1:-1:-1;;;16544:2:101;16532:15;;16525:32;16726:74;-1:-1:-1;16809:93:101;16340:224;16942:419;17146:2;17159:47;;;17131:18;;17223:131;17131:18;17223:131;:::i;17595:366::-;17822:2;218:19;;17737:3;270:4;261:14;;17507:34;17484:58;;-1:-1:-1;;;17571:2:101;17559:15;;17552:30;17751:74;-1:-1:-1;17834:93:101;17367:222;17967:419;18171:2;18184:47;;;18156:18;;18248:131;18156:18;18248:131;:::i;18623:366::-;18850:2;218:19;;18765:3;270:4;261:14;;18532:34;18509:58;;-1:-1:-1;;;18596:2:101;18584:15;;18577:33;18779:74;-1:-1:-1;18862:93:101;18392:225;18995:419;19199:2;19212:47;;;19184:18;;19276:131;19184:18;19276:131;:::i;19607:366::-;19834:2;218:19;;19749:3;270:4;261:14;;19560:33;19537:57;;19763:74;-1:-1:-1;19846:93:101;19420:181;19979:419;20183:2;20196:47;;;20168:18;;20260:131;20168:18;20260:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"747200","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"infinite","decreaseAllowance(address,uint256)":"infinite","exchangeRate()":"2460","faucet(uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","owner()":"infinite","renounceOwnership()":"infinite","setSharesToBonds(uint256)":"infinite","sharesToBonds(uint256)":"infinite","symbol()":"infinite","totalSupply()":"2447","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","exchangeRate()":"3ba0b9a9","faucet(uint256)":"57915897","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setSharesToBonds(uint256)":"0904af85","sharesToBonds(uint256)":"6c58d43d","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"faucet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"name\":\"setSharesToBonds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sharesToBonds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"contracts/test/MockAnkrBNB.sol\":\"MockAnkrBNB\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/IAnkrBNB.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAnkrBNB {\\n    function sharesToBonds(uint256 amount) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x4e04d3cae00fc38b1f754cff9aa4054deea6e8a4d3fe80a1d8f0a54bbe73342e\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockAnkrBNB.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { ERC20 } from \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\nimport { IAnkrBNB } from \\\"../interfaces/IAnkrBNB.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockAnkrBNB is ERC20, Ownable, IAnkrBNB {\\n    uint8 private immutable _decimals;\\n    uint256 public exchangeRate;\\n\\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) Ownable() {\\n        _decimals = decimals_;\\n    }\\n\\n    function faucet(uint256 amount) external {\\n        _mint(msg.sender, amount);\\n    }\\n\\n    function setSharesToBonds(uint256 rate) external onlyOwner {\\n        exchangeRate = rate;\\n    }\\n\\n    function sharesToBonds(uint256 amount) external view override returns (uint256) {\\n        return (amount * exchangeRate) / (10 ** uint256(_decimals));\\n    }\\n\\n    function decimals() public view virtual override(ERC20, IAnkrBNB) returns (uint8) {\\n        return _decimals;\\n    }\\n}\\n\",\"keccak256\":\"0x431bc5b6e869d88fe5a957b6a4fcbf274ec08157cc726b26290254015e749447\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"contracts/test/MockAnkrBNB.sol:MockAnkrBNB","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"contracts/test/MockAnkrBNB.sol:MockAnkrBNB","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"contracts/test/MockAnkrBNB.sol:MockAnkrBNB","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"contracts/test/MockAnkrBNB.sol:MockAnkrBNB","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"contracts/test/MockAnkrBNB.sol:MockAnkrBNB","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":1101,"contract":"contracts/test/MockAnkrBNB.sol:MockAnkrBNB","label":"_owner","offset":0,"slot":"5","type":"t_address"},{"astId":7597,"contract":"contracts/test/MockAnkrBNB.sol:MockAnkrBNB","label":"exchangeRate","offset":0,"slot":"6","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockAsBNB.sol":{"MockAsBNB":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"minter_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"faucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"@_7718":{"entryPoint":null,"id":7718,"parameterSlots":4,"returnSlots":0},"@_msgSender_1908":{"entryPoint":146,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":150,"id":1205,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":374,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":539,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":437,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":497,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_address_fromMemory":{"entryPoint":550,"id":null,"parameterSlots":2,"returnSlots":4},"allocate_memory":{"entryPoint":295,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":322,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":856,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":514,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":826,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":760,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":919,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":363,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":716,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":251,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":696,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":231,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":809,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":774,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":530,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":479,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:9648:101","nodeType":"YulBlock","src":"0:9648:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2613:43:101","nodeType":"YulBlock","src":"2613:43:101","statements":[{"nativeSrc":"2623:27:101","nodeType":"YulAssignment","src":"2623:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2638:5:101","nodeType":"YulIdentifier","src":"2638:5:101"},{"kind":"number","nativeSrc":"2645:4:101","nodeType":"YulLiteral","src":"2645:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2634:3:101","nodeType":"YulIdentifier","src":"2634:3:101"},"nativeSrc":"2634:16:101","nodeType":"YulFunctionCall","src":"2634:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2623:7:101","nodeType":"YulIdentifier","src":"2623:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2570:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulTypedName","src":"2595:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2605:7:101","nodeType":"YulTypedName","src":"2605:7:101","type":""}],"src":"2570:86:101"},{"body":{"nativeSrc":"2703:77:101","nodeType":"YulBlock","src":"2703:77:101","statements":[{"body":{"nativeSrc":"2758:16:101","nodeType":"YulBlock","src":"2758:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2767:1:101","nodeType":"YulLiteral","src":"2767:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2770:1:101","nodeType":"YulLiteral","src":"2770:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2760:6:101","nodeType":"YulIdentifier","src":"2760:6:101"},"nativeSrc":"2760:12:101","nodeType":"YulFunctionCall","src":"2760:12:101"},"nativeSrc":"2760:12:101","nodeType":"YulExpressionStatement","src":"2760:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2726:5:101","nodeType":"YulIdentifier","src":"2726:5:101"},{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2733:15:101","nodeType":"YulIdentifier","src":"2733:15:101"},"nativeSrc":"2733:22:101","nodeType":"YulFunctionCall","src":"2733:22:101"}],"functionName":{"name":"eq","nativeSrc":"2723:2:101","nodeType":"YulIdentifier","src":"2723:2:101"},"nativeSrc":"2723:33:101","nodeType":"YulFunctionCall","src":"2723:33:101"}],"functionName":{"name":"iszero","nativeSrc":"2716:6:101","nodeType":"YulIdentifier","src":"2716:6:101"},"nativeSrc":"2716:41:101","nodeType":"YulFunctionCall","src":"2716:41:101"},"nativeSrc":"2713:61:101","nodeType":"YulIf","src":"2713:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"2662:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2696:5:101","nodeType":"YulTypedName","src":"2696:5:101","type":""}],"src":"2662:118:101"},{"body":{"nativeSrc":"2847:78:101","nodeType":"YulBlock","src":"2847:78:101","statements":[{"nativeSrc":"2857:22:101","nodeType":"YulAssignment","src":"2857:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"mload","nativeSrc":"2866:5:101","nodeType":"YulIdentifier","src":"2866:5:101"},"nativeSrc":"2866:13:101","nodeType":"YulFunctionCall","src":"2866:13:101"},"variableNames":[{"name":"value","nativeSrc":"2857:5:101","nodeType":"YulIdentifier","src":"2857:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2913:5:101","nodeType":"YulIdentifier","src":"2913:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2888:24:101","nodeType":"YulIdentifier","src":"2888:24:101"},"nativeSrc":"2888:31:101","nodeType":"YulFunctionCall","src":"2888:31:101"},"nativeSrc":"2888:31:101","nodeType":"YulExpressionStatement","src":"2888:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2786:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2825:6:101","nodeType":"YulTypedName","src":"2825:6:101","type":""},{"name":"end","nativeSrc":"2833:3:101","nodeType":"YulTypedName","src":"2833:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2841:5:101","nodeType":"YulTypedName","src":"2841:5:101","type":""}],"src":"2786:139:101"},{"body":{"nativeSrc":"2976:81:101","nodeType":"YulBlock","src":"2976:81:101","statements":[{"nativeSrc":"2986:65:101","nodeType":"YulAssignment","src":"2986:65:101","value":{"arguments":[{"name":"value","nativeSrc":"3001:5:101","nodeType":"YulIdentifier","src":"3001:5:101"},{"kind":"number","nativeSrc":"3008:42:101","nodeType":"YulLiteral","src":"3008:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2997:3:101","nodeType":"YulIdentifier","src":"2997:3:101"},"nativeSrc":"2997:54:101","nodeType":"YulFunctionCall","src":"2997:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2986:7:101","nodeType":"YulIdentifier","src":"2986:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2931:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2958:5:101","nodeType":"YulTypedName","src":"2958:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2968:7:101","nodeType":"YulTypedName","src":"2968:7:101","type":""}],"src":"2931:126:101"},{"body":{"nativeSrc":"3108:51:101","nodeType":"YulBlock","src":"3108:51:101","statements":[{"nativeSrc":"3118:35:101","nodeType":"YulAssignment","src":"3118:35:101","value":{"arguments":[{"name":"value","nativeSrc":"3147:5:101","nodeType":"YulIdentifier","src":"3147:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3129:17:101","nodeType":"YulIdentifier","src":"3129:17:101"},"nativeSrc":"3129:24:101","nodeType":"YulFunctionCall","src":"3129:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3118:7:101","nodeType":"YulIdentifier","src":"3118:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"3063:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3090:5:101","nodeType":"YulTypedName","src":"3090:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3100:7:101","nodeType":"YulTypedName","src":"3100:7:101","type":""}],"src":"3063:96:101"},{"body":{"nativeSrc":"3208:79:101","nodeType":"YulBlock","src":"3208:79:101","statements":[{"body":{"nativeSrc":"3265:16:101","nodeType":"YulBlock","src":"3265:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3274:1:101","nodeType":"YulLiteral","src":"3274:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3277:1:101","nodeType":"YulLiteral","src":"3277:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3267:6:101","nodeType":"YulIdentifier","src":"3267:6:101"},"nativeSrc":"3267:12:101","nodeType":"YulFunctionCall","src":"3267:12:101"},"nativeSrc":"3267:12:101","nodeType":"YulExpressionStatement","src":"3267:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3231:5:101","nodeType":"YulIdentifier","src":"3231:5:101"},{"arguments":[{"name":"value","nativeSrc":"3256:5:101","nodeType":"YulIdentifier","src":"3256:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3238:17:101","nodeType":"YulIdentifier","src":"3238:17:101"},"nativeSrc":"3238:24:101","nodeType":"YulFunctionCall","src":"3238:24:101"}],"functionName":{"name":"eq","nativeSrc":"3228:2:101","nodeType":"YulIdentifier","src":"3228:2:101"},"nativeSrc":"3228:35:101","nodeType":"YulFunctionCall","src":"3228:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3221:6:101","nodeType":"YulIdentifier","src":"3221:6:101"},"nativeSrc":"3221:43:101","nodeType":"YulFunctionCall","src":"3221:43:101"},"nativeSrc":"3218:63:101","nodeType":"YulIf","src":"3218:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"3165:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3201:5:101","nodeType":"YulTypedName","src":"3201:5:101","type":""}],"src":"3165:122:101"},{"body":{"nativeSrc":"3356:80:101","nodeType":"YulBlock","src":"3356:80:101","statements":[{"nativeSrc":"3366:22:101","nodeType":"YulAssignment","src":"3366:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"3381:6:101","nodeType":"YulIdentifier","src":"3381:6:101"}],"functionName":{"name":"mload","nativeSrc":"3375:5:101","nodeType":"YulIdentifier","src":"3375:5:101"},"nativeSrc":"3375:13:101","nodeType":"YulFunctionCall","src":"3375:13:101"},"variableNames":[{"name":"value","nativeSrc":"3366:5:101","nodeType":"YulIdentifier","src":"3366:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3424:5:101","nodeType":"YulIdentifier","src":"3424:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3397:26:101","nodeType":"YulIdentifier","src":"3397:26:101"},"nativeSrc":"3397:33:101","nodeType":"YulFunctionCall","src":"3397:33:101"},"nativeSrc":"3397:33:101","nodeType":"YulExpressionStatement","src":"3397:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"3293:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3334:6:101","nodeType":"YulTypedName","src":"3334:6:101","type":""},{"name":"end","nativeSrc":"3342:3:101","nodeType":"YulTypedName","src":"3342:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3350:5:101","nodeType":"YulTypedName","src":"3350:5:101","type":""}],"src":"3293:143:101"},{"body":{"nativeSrc":"3588:1016:101","nodeType":"YulBlock","src":"3588:1016:101","statements":[{"body":{"nativeSrc":"3635:83:101","nodeType":"YulBlock","src":"3635:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3637:77:101","nodeType":"YulIdentifier","src":"3637:77:101"},"nativeSrc":"3637:79:101","nodeType":"YulFunctionCall","src":"3637:79:101"},"nativeSrc":"3637:79:101","nodeType":"YulExpressionStatement","src":"3637:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3609:7:101","nodeType":"YulIdentifier","src":"3609:7:101"},{"name":"headStart","nativeSrc":"3618:9:101","nodeType":"YulIdentifier","src":"3618:9:101"}],"functionName":{"name":"sub","nativeSrc":"3605:3:101","nodeType":"YulIdentifier","src":"3605:3:101"},"nativeSrc":"3605:23:101","nodeType":"YulFunctionCall","src":"3605:23:101"},{"kind":"number","nativeSrc":"3630:3:101","nodeType":"YulLiteral","src":"3630:3:101","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3601:3:101","nodeType":"YulIdentifier","src":"3601:3:101"},"nativeSrc":"3601:33:101","nodeType":"YulFunctionCall","src":"3601:33:101"},"nativeSrc":"3598:120:101","nodeType":"YulIf","src":"3598:120:101"},{"nativeSrc":"3728:291:101","nodeType":"YulBlock","src":"3728:291:101","statements":[{"nativeSrc":"3743:38:101","nodeType":"YulVariableDeclaration","src":"3743:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3767:9:101","nodeType":"YulIdentifier","src":"3767:9:101"},{"kind":"number","nativeSrc":"3778:1:101","nodeType":"YulLiteral","src":"3778:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3763:3:101","nodeType":"YulIdentifier","src":"3763:3:101"},"nativeSrc":"3763:17:101","nodeType":"YulFunctionCall","src":"3763:17:101"}],"functionName":{"name":"mload","nativeSrc":"3757:5:101","nodeType":"YulIdentifier","src":"3757:5:101"},"nativeSrc":"3757:24:101","nodeType":"YulFunctionCall","src":"3757:24:101"},"variables":[{"name":"offset","nativeSrc":"3747:6:101","nodeType":"YulTypedName","src":"3747:6:101","type":""}]},{"body":{"nativeSrc":"3828:83:101","nodeType":"YulBlock","src":"3828:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3830:77:101","nodeType":"YulIdentifier","src":"3830:77:101"},"nativeSrc":"3830:79:101","nodeType":"YulFunctionCall","src":"3830:79:101"},"nativeSrc":"3830:79:101","nodeType":"YulExpressionStatement","src":"3830:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3800:6:101","nodeType":"YulIdentifier","src":"3800:6:101"},{"kind":"number","nativeSrc":"3808:18:101","nodeType":"YulLiteral","src":"3808:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3797:2:101","nodeType":"YulIdentifier","src":"3797:2:101"},"nativeSrc":"3797:30:101","nodeType":"YulFunctionCall","src":"3797:30:101"},"nativeSrc":"3794:117:101","nodeType":"YulIf","src":"3794:117:101"},{"nativeSrc":"3925:84:101","nodeType":"YulAssignment","src":"3925:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3981:9:101","nodeType":"YulIdentifier","src":"3981:9:101"},{"name":"offset","nativeSrc":"3992:6:101","nodeType":"YulIdentifier","src":"3992:6:101"}],"functionName":{"name":"add","nativeSrc":"3977:3:101","nodeType":"YulIdentifier","src":"3977:3:101"},"nativeSrc":"3977:22:101","nodeType":"YulFunctionCall","src":"3977:22:101"},{"name":"dataEnd","nativeSrc":"4001:7:101","nodeType":"YulIdentifier","src":"4001:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3935:41:101","nodeType":"YulIdentifier","src":"3935:41:101"},"nativeSrc":"3935:74:101","nodeType":"YulFunctionCall","src":"3935:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3925:6:101","nodeType":"YulIdentifier","src":"3925:6:101"}]}]},{"nativeSrc":"4029:292:101","nodeType":"YulBlock","src":"4029:292:101","statements":[{"nativeSrc":"4044:39:101","nodeType":"YulVariableDeclaration","src":"4044:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4068:9:101","nodeType":"YulIdentifier","src":"4068:9:101"},{"kind":"number","nativeSrc":"4079:2:101","nodeType":"YulLiteral","src":"4079:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4064:3:101","nodeType":"YulIdentifier","src":"4064:3:101"},"nativeSrc":"4064:18:101","nodeType":"YulFunctionCall","src":"4064:18:101"}],"functionName":{"name":"mload","nativeSrc":"4058:5:101","nodeType":"YulIdentifier","src":"4058:5:101"},"nativeSrc":"4058:25:101","nodeType":"YulFunctionCall","src":"4058:25:101"},"variables":[{"name":"offset","nativeSrc":"4048:6:101","nodeType":"YulTypedName","src":"4048:6:101","type":""}]},{"body":{"nativeSrc":"4130:83:101","nodeType":"YulBlock","src":"4130:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4132:77:101","nodeType":"YulIdentifier","src":"4132:77:101"},"nativeSrc":"4132:79:101","nodeType":"YulFunctionCall","src":"4132:79:101"},"nativeSrc":"4132:79:101","nodeType":"YulExpressionStatement","src":"4132:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4102:6:101","nodeType":"YulIdentifier","src":"4102:6:101"},{"kind":"number","nativeSrc":"4110:18:101","nodeType":"YulLiteral","src":"4110:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4099:2:101","nodeType":"YulIdentifier","src":"4099:2:101"},"nativeSrc":"4099:30:101","nodeType":"YulFunctionCall","src":"4099:30:101"},"nativeSrc":"4096:117:101","nodeType":"YulIf","src":"4096:117:101"},{"nativeSrc":"4227:84:101","nodeType":"YulAssignment","src":"4227:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4283:9:101","nodeType":"YulIdentifier","src":"4283:9:101"},{"name":"offset","nativeSrc":"4294:6:101","nodeType":"YulIdentifier","src":"4294:6:101"}],"functionName":{"name":"add","nativeSrc":"4279:3:101","nodeType":"YulIdentifier","src":"4279:3:101"},"nativeSrc":"4279:22:101","nodeType":"YulFunctionCall","src":"4279:22:101"},{"name":"dataEnd","nativeSrc":"4303:7:101","nodeType":"YulIdentifier","src":"4303:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"4237:41:101","nodeType":"YulIdentifier","src":"4237:41:101"},"nativeSrc":"4237:74:101","nodeType":"YulFunctionCall","src":"4237:74:101"},"variableNames":[{"name":"value1","nativeSrc":"4227:6:101","nodeType":"YulIdentifier","src":"4227:6:101"}]}]},{"nativeSrc":"4331:127:101","nodeType":"YulBlock","src":"4331:127:101","statements":[{"nativeSrc":"4346:16:101","nodeType":"YulVariableDeclaration","src":"4346:16:101","value":{"kind":"number","nativeSrc":"4360:2:101","nodeType":"YulLiteral","src":"4360:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4350:6:101","nodeType":"YulTypedName","src":"4350:6:101","type":""}]},{"nativeSrc":"4376:72:101","nodeType":"YulAssignment","src":"4376:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4420:9:101","nodeType":"YulIdentifier","src":"4420:9:101"},{"name":"offset","nativeSrc":"4431:6:101","nodeType":"YulIdentifier","src":"4431:6:101"}],"functionName":{"name":"add","nativeSrc":"4416:3:101","nodeType":"YulIdentifier","src":"4416:3:101"},"nativeSrc":"4416:22:101","nodeType":"YulFunctionCall","src":"4416:22:101"},{"name":"dataEnd","nativeSrc":"4440:7:101","nodeType":"YulIdentifier","src":"4440:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"4386:29:101","nodeType":"YulIdentifier","src":"4386:29:101"},"nativeSrc":"4386:62:101","nodeType":"YulFunctionCall","src":"4386:62:101"},"variableNames":[{"name":"value2","nativeSrc":"4376:6:101","nodeType":"YulIdentifier","src":"4376:6:101"}]}]},{"nativeSrc":"4468:129:101","nodeType":"YulBlock","src":"4468:129:101","statements":[{"nativeSrc":"4483:16:101","nodeType":"YulVariableDeclaration","src":"4483:16:101","value":{"kind":"number","nativeSrc":"4497:2:101","nodeType":"YulLiteral","src":"4497:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"4487:6:101","nodeType":"YulTypedName","src":"4487:6:101","type":""}]},{"nativeSrc":"4513:74:101","nodeType":"YulAssignment","src":"4513:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4559:9:101","nodeType":"YulIdentifier","src":"4559:9:101"},{"name":"offset","nativeSrc":"4570:6:101","nodeType":"YulIdentifier","src":"4570:6:101"}],"functionName":{"name":"add","nativeSrc":"4555:3:101","nodeType":"YulIdentifier","src":"4555:3:101"},"nativeSrc":"4555:22:101","nodeType":"YulFunctionCall","src":"4555:22:101"},{"name":"dataEnd","nativeSrc":"4579:7:101","nodeType":"YulIdentifier","src":"4579:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"4523:31:101","nodeType":"YulIdentifier","src":"4523:31:101"},"nativeSrc":"4523:64:101","nodeType":"YulFunctionCall","src":"4523:64:101"},"variableNames":[{"name":"value3","nativeSrc":"4513:6:101","nodeType":"YulIdentifier","src":"4513:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_address_fromMemory","nativeSrc":"3442:1162:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3534:9:101","nodeType":"YulTypedName","src":"3534:9:101","type":""},{"name":"dataEnd","nativeSrc":"3545:7:101","nodeType":"YulTypedName","src":"3545:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3557:6:101","nodeType":"YulTypedName","src":"3557:6:101","type":""},{"name":"value1","nativeSrc":"3565:6:101","nodeType":"YulTypedName","src":"3565:6:101","type":""},{"name":"value2","nativeSrc":"3573:6:101","nodeType":"YulTypedName","src":"3573:6:101","type":""},{"name":"value3","nativeSrc":"3581:6:101","nodeType":"YulTypedName","src":"3581:6:101","type":""}],"src":"3442:1162:101"},{"body":{"nativeSrc":"4669:40:101","nodeType":"YulBlock","src":"4669:40:101","statements":[{"nativeSrc":"4680:22:101","nodeType":"YulAssignment","src":"4680:22:101","value":{"arguments":[{"name":"value","nativeSrc":"4696:5:101","nodeType":"YulIdentifier","src":"4696:5:101"}],"functionName":{"name":"mload","nativeSrc":"4690:5:101","nodeType":"YulIdentifier","src":"4690:5:101"},"nativeSrc":"4690:12:101","nodeType":"YulFunctionCall","src":"4690:12:101"},"variableNames":[{"name":"length","nativeSrc":"4680:6:101","nodeType":"YulIdentifier","src":"4680:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"4610:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4652:5:101","nodeType":"YulTypedName","src":"4652:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4662:6:101","nodeType":"YulTypedName","src":"4662:6:101","type":""}],"src":"4610:99:101"},{"body":{"nativeSrc":"4743:152:101","nodeType":"YulBlock","src":"4743:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4760:1:101","nodeType":"YulLiteral","src":"4760:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4763:77:101","nodeType":"YulLiteral","src":"4763:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4753:6:101","nodeType":"YulIdentifier","src":"4753:6:101"},"nativeSrc":"4753:88:101","nodeType":"YulFunctionCall","src":"4753:88:101"},"nativeSrc":"4753:88:101","nodeType":"YulExpressionStatement","src":"4753:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4857:1:101","nodeType":"YulLiteral","src":"4857:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4860:4:101","nodeType":"YulLiteral","src":"4860:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4850:6:101","nodeType":"YulIdentifier","src":"4850:6:101"},"nativeSrc":"4850:15:101","nodeType":"YulFunctionCall","src":"4850:15:101"},"nativeSrc":"4850:15:101","nodeType":"YulExpressionStatement","src":"4850:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4881:1:101","nodeType":"YulLiteral","src":"4881:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4884:4:101","nodeType":"YulLiteral","src":"4884:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4874:6:101","nodeType":"YulIdentifier","src":"4874:6:101"},"nativeSrc":"4874:15:101","nodeType":"YulFunctionCall","src":"4874:15:101"},"nativeSrc":"4874:15:101","nodeType":"YulExpressionStatement","src":"4874:15:101"}]},"name":"panic_error_0x22","nativeSrc":"4715:180:101","nodeType":"YulFunctionDefinition","src":"4715:180:101"},{"body":{"nativeSrc":"4952:269:101","nodeType":"YulBlock","src":"4952:269:101","statements":[{"nativeSrc":"4962:22:101","nodeType":"YulAssignment","src":"4962:22:101","value":{"arguments":[{"name":"data","nativeSrc":"4976:4:101","nodeType":"YulIdentifier","src":"4976:4:101"},{"kind":"number","nativeSrc":"4982:1:101","nodeType":"YulLiteral","src":"4982:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4972:3:101","nodeType":"YulIdentifier","src":"4972:3:101"},"nativeSrc":"4972:12:101","nodeType":"YulFunctionCall","src":"4972:12:101"},"variableNames":[{"name":"length","nativeSrc":"4962:6:101","nodeType":"YulIdentifier","src":"4962:6:101"}]},{"nativeSrc":"4993:38:101","nodeType":"YulVariableDeclaration","src":"4993:38:101","value":{"arguments":[{"name":"data","nativeSrc":"5023:4:101","nodeType":"YulIdentifier","src":"5023:4:101"},{"kind":"number","nativeSrc":"5029:1:101","nodeType":"YulLiteral","src":"5029:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5019:3:101","nodeType":"YulIdentifier","src":"5019:3:101"},"nativeSrc":"5019:12:101","nodeType":"YulFunctionCall","src":"5019:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4997:18:101","nodeType":"YulTypedName","src":"4997:18:101","type":""}]},{"body":{"nativeSrc":"5070:51:101","nodeType":"YulBlock","src":"5070:51:101","statements":[{"nativeSrc":"5084:27:101","nodeType":"YulAssignment","src":"5084:27:101","value":{"arguments":[{"name":"length","nativeSrc":"5098:6:101","nodeType":"YulIdentifier","src":"5098:6:101"},{"kind":"number","nativeSrc":"5106:4:101","nodeType":"YulLiteral","src":"5106:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5094:3:101","nodeType":"YulIdentifier","src":"5094:3:101"},"nativeSrc":"5094:17:101","nodeType":"YulFunctionCall","src":"5094:17:101"},"variableNames":[{"name":"length","nativeSrc":"5084:6:101","nodeType":"YulIdentifier","src":"5084:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5050:18:101","nodeType":"YulIdentifier","src":"5050:18:101"}],"functionName":{"name":"iszero","nativeSrc":"5043:6:101","nodeType":"YulIdentifier","src":"5043:6:101"},"nativeSrc":"5043:26:101","nodeType":"YulFunctionCall","src":"5043:26:101"},"nativeSrc":"5040:81:101","nodeType":"YulIf","src":"5040:81:101"},{"body":{"nativeSrc":"5173:42:101","nodeType":"YulBlock","src":"5173:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"5187:16:101","nodeType":"YulIdentifier","src":"5187:16:101"},"nativeSrc":"5187:18:101","nodeType":"YulFunctionCall","src":"5187:18:101"},"nativeSrc":"5187:18:101","nodeType":"YulExpressionStatement","src":"5187:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5137:18:101","nodeType":"YulIdentifier","src":"5137:18:101"},{"arguments":[{"name":"length","nativeSrc":"5160:6:101","nodeType":"YulIdentifier","src":"5160:6:101"},{"kind":"number","nativeSrc":"5168:2:101","nodeType":"YulLiteral","src":"5168:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5157:2:101","nodeType":"YulIdentifier","src":"5157:2:101"},"nativeSrc":"5157:14:101","nodeType":"YulFunctionCall","src":"5157:14:101"}],"functionName":{"name":"eq","nativeSrc":"5134:2:101","nodeType":"YulIdentifier","src":"5134:2:101"},"nativeSrc":"5134:38:101","nodeType":"YulFunctionCall","src":"5134:38:101"},"nativeSrc":"5131:84:101","nodeType":"YulIf","src":"5131:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"4901:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4936:4:101","nodeType":"YulTypedName","src":"4936:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4945:6:101","nodeType":"YulTypedName","src":"4945:6:101","type":""}],"src":"4901:320:101"},{"body":{"nativeSrc":"5281:87:101","nodeType":"YulBlock","src":"5281:87:101","statements":[{"nativeSrc":"5291:11:101","nodeType":"YulAssignment","src":"5291:11:101","value":{"name":"ptr","nativeSrc":"5299:3:101","nodeType":"YulIdentifier","src":"5299:3:101"},"variableNames":[{"name":"data","nativeSrc":"5291:4:101","nodeType":"YulIdentifier","src":"5291:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5319:1:101","nodeType":"YulLiteral","src":"5319:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"5322:3:101","nodeType":"YulIdentifier","src":"5322:3:101"}],"functionName":{"name":"mstore","nativeSrc":"5312:6:101","nodeType":"YulIdentifier","src":"5312:6:101"},"nativeSrc":"5312:14:101","nodeType":"YulFunctionCall","src":"5312:14:101"},"nativeSrc":"5312:14:101","nodeType":"YulExpressionStatement","src":"5312:14:101"},{"nativeSrc":"5335:26:101","nodeType":"YulAssignment","src":"5335:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"5353:1:101","nodeType":"YulLiteral","src":"5353:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5356:4:101","nodeType":"YulLiteral","src":"5356:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5343:9:101","nodeType":"YulIdentifier","src":"5343:9:101"},"nativeSrc":"5343:18:101","nodeType":"YulFunctionCall","src":"5343:18:101"},"variableNames":[{"name":"data","nativeSrc":"5335:4:101","nodeType":"YulIdentifier","src":"5335:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"5227:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"5268:3:101","nodeType":"YulTypedName","src":"5268:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"5276:4:101","nodeType":"YulTypedName","src":"5276:4:101","type":""}],"src":"5227:141:101"},{"body":{"nativeSrc":"5418:49:101","nodeType":"YulBlock","src":"5418:49:101","statements":[{"nativeSrc":"5428:33:101","nodeType":"YulAssignment","src":"5428:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5446:5:101","nodeType":"YulIdentifier","src":"5446:5:101"},{"kind":"number","nativeSrc":"5453:2:101","nodeType":"YulLiteral","src":"5453:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"},"nativeSrc":"5442:14:101","nodeType":"YulFunctionCall","src":"5442:14:101"},{"kind":"number","nativeSrc":"5458:2:101","nodeType":"YulLiteral","src":"5458:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"5438:3:101","nodeType":"YulIdentifier","src":"5438:3:101"},"nativeSrc":"5438:23:101","nodeType":"YulFunctionCall","src":"5438:23:101"},"variableNames":[{"name":"result","nativeSrc":"5428:6:101","nodeType":"YulIdentifier","src":"5428:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"5374:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5401:5:101","nodeType":"YulTypedName","src":"5401:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5411:6:101","nodeType":"YulTypedName","src":"5411:6:101","type":""}],"src":"5374:93:101"},{"body":{"nativeSrc":"5526:54:101","nodeType":"YulBlock","src":"5526:54:101","statements":[{"nativeSrc":"5536:37:101","nodeType":"YulAssignment","src":"5536:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"5561:4:101","nodeType":"YulIdentifier","src":"5561:4:101"},{"name":"value","nativeSrc":"5567:5:101","nodeType":"YulIdentifier","src":"5567:5:101"}],"functionName":{"name":"shl","nativeSrc":"5557:3:101","nodeType":"YulIdentifier","src":"5557:3:101"},"nativeSrc":"5557:16:101","nodeType":"YulFunctionCall","src":"5557:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"5536:8:101","nodeType":"YulIdentifier","src":"5536:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"5473:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"5501:4:101","nodeType":"YulTypedName","src":"5501:4:101","type":""},{"name":"value","nativeSrc":"5507:5:101","nodeType":"YulTypedName","src":"5507:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"5517:8:101","nodeType":"YulTypedName","src":"5517:8:101","type":""}],"src":"5473:107:101"},{"body":{"nativeSrc":"5662:317:101","nodeType":"YulBlock","src":"5662:317:101","statements":[{"nativeSrc":"5672:35:101","nodeType":"YulVariableDeclaration","src":"5672:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5693:10:101","nodeType":"YulIdentifier","src":"5693:10:101"},{"kind":"number","nativeSrc":"5705:1:101","nodeType":"YulLiteral","src":"5705:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5689:3:101","nodeType":"YulIdentifier","src":"5689:3:101"},"nativeSrc":"5689:18:101","nodeType":"YulFunctionCall","src":"5689:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"5676:9:101","nodeType":"YulTypedName","src":"5676:9:101","type":""}]},{"nativeSrc":"5716:109:101","nodeType":"YulVariableDeclaration","src":"5716:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5747:9:101","nodeType":"YulIdentifier","src":"5747:9:101"},{"kind":"number","nativeSrc":"5758:66:101","nodeType":"YulLiteral","src":"5758:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5728:18:101","nodeType":"YulIdentifier","src":"5728:18:101"},"nativeSrc":"5728:97:101","nodeType":"YulFunctionCall","src":"5728:97:101"},"variables":[{"name":"mask","nativeSrc":"5720:4:101","nodeType":"YulTypedName","src":"5720:4:101","type":""}]},{"nativeSrc":"5834:51:101","nodeType":"YulAssignment","src":"5834:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5865:9:101","nodeType":"YulIdentifier","src":"5865:9:101"},{"name":"toInsert","nativeSrc":"5876:8:101","nodeType":"YulIdentifier","src":"5876:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5846:18:101","nodeType":"YulIdentifier","src":"5846:18:101"},"nativeSrc":"5846:39:101","nodeType":"YulFunctionCall","src":"5846:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"5834:8:101","nodeType":"YulIdentifier","src":"5834:8:101"}]},{"nativeSrc":"5894:30:101","nodeType":"YulAssignment","src":"5894:30:101","value":{"arguments":[{"name":"value","nativeSrc":"5907:5:101","nodeType":"YulIdentifier","src":"5907:5:101"},{"arguments":[{"name":"mask","nativeSrc":"5918:4:101","nodeType":"YulIdentifier","src":"5918:4:101"}],"functionName":{"name":"not","nativeSrc":"5914:3:101","nodeType":"YulIdentifier","src":"5914:3:101"},"nativeSrc":"5914:9:101","nodeType":"YulFunctionCall","src":"5914:9:101"}],"functionName":{"name":"and","nativeSrc":"5903:3:101","nodeType":"YulIdentifier","src":"5903:3:101"},"nativeSrc":"5903:21:101","nodeType":"YulFunctionCall","src":"5903:21:101"},"variableNames":[{"name":"value","nativeSrc":"5894:5:101","nodeType":"YulIdentifier","src":"5894:5:101"}]},{"nativeSrc":"5933:40:101","nodeType":"YulAssignment","src":"5933:40:101","value":{"arguments":[{"name":"value","nativeSrc":"5946:5:101","nodeType":"YulIdentifier","src":"5946:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"5957:8:101","nodeType":"YulIdentifier","src":"5957:8:101"},{"name":"mask","nativeSrc":"5967:4:101","nodeType":"YulIdentifier","src":"5967:4:101"}],"functionName":{"name":"and","nativeSrc":"5953:3:101","nodeType":"YulIdentifier","src":"5953:3:101"},"nativeSrc":"5953:19:101","nodeType":"YulFunctionCall","src":"5953:19:101"}],"functionName":{"name":"or","nativeSrc":"5943:2:101","nodeType":"YulIdentifier","src":"5943:2:101"},"nativeSrc":"5943:30:101","nodeType":"YulFunctionCall","src":"5943:30:101"},"variableNames":[{"name":"result","nativeSrc":"5933:6:101","nodeType":"YulIdentifier","src":"5933:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"5586:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5623:5:101","nodeType":"YulTypedName","src":"5623:5:101","type":""},{"name":"shiftBytes","nativeSrc":"5630:10:101","nodeType":"YulTypedName","src":"5630:10:101","type":""},{"name":"toInsert","nativeSrc":"5642:8:101","nodeType":"YulTypedName","src":"5642:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5655:6:101","nodeType":"YulTypedName","src":"5655:6:101","type":""}],"src":"5586:393:101"},{"body":{"nativeSrc":"6030:32:101","nodeType":"YulBlock","src":"6030:32:101","statements":[{"nativeSrc":"6040:16:101","nodeType":"YulAssignment","src":"6040:16:101","value":{"name":"value","nativeSrc":"6051:5:101","nodeType":"YulIdentifier","src":"6051:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6040:7:101","nodeType":"YulIdentifier","src":"6040:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5985:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6012:5:101","nodeType":"YulTypedName","src":"6012:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6022:7:101","nodeType":"YulTypedName","src":"6022:7:101","type":""}],"src":"5985:77:101"},{"body":{"nativeSrc":"6100:28:101","nodeType":"YulBlock","src":"6100:28:101","statements":[{"nativeSrc":"6110:12:101","nodeType":"YulAssignment","src":"6110:12:101","value":{"name":"value","nativeSrc":"6117:5:101","nodeType":"YulIdentifier","src":"6117:5:101"},"variableNames":[{"name":"ret","nativeSrc":"6110:3:101","nodeType":"YulIdentifier","src":"6110:3:101"}]}]},"name":"identity","nativeSrc":"6068:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6086:5:101","nodeType":"YulTypedName","src":"6086:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"6096:3:101","nodeType":"YulTypedName","src":"6096:3:101","type":""}],"src":"6068:60:101"},{"body":{"nativeSrc":"6194:82:101","nodeType":"YulBlock","src":"6194:82:101","statements":[{"nativeSrc":"6204:66:101","nodeType":"YulAssignment","src":"6204:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6262:5:101","nodeType":"YulIdentifier","src":"6262:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6244:17:101","nodeType":"YulIdentifier","src":"6244:17:101"},"nativeSrc":"6244:24:101","nodeType":"YulFunctionCall","src":"6244:24:101"}],"functionName":{"name":"identity","nativeSrc":"6235:8:101","nodeType":"YulIdentifier","src":"6235:8:101"},"nativeSrc":"6235:34:101","nodeType":"YulFunctionCall","src":"6235:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6217:17:101","nodeType":"YulIdentifier","src":"6217:17:101"},"nativeSrc":"6217:53:101","nodeType":"YulFunctionCall","src":"6217:53:101"},"variableNames":[{"name":"converted","nativeSrc":"6204:9:101","nodeType":"YulIdentifier","src":"6204:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"6134:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6174:5:101","nodeType":"YulTypedName","src":"6174:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6184:9:101","nodeType":"YulTypedName","src":"6184:9:101","type":""}],"src":"6134:142:101"},{"body":{"nativeSrc":"6329:28:101","nodeType":"YulBlock","src":"6329:28:101","statements":[{"nativeSrc":"6339:12:101","nodeType":"YulAssignment","src":"6339:12:101","value":{"name":"value","nativeSrc":"6346:5:101","nodeType":"YulIdentifier","src":"6346:5:101"},"variableNames":[{"name":"ret","nativeSrc":"6339:3:101","nodeType":"YulIdentifier","src":"6339:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"6282:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6315:5:101","nodeType":"YulTypedName","src":"6315:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"6325:3:101","nodeType":"YulTypedName","src":"6325:3:101","type":""}],"src":"6282:75:101"},{"body":{"nativeSrc":"6439:193:101","nodeType":"YulBlock","src":"6439:193:101","statements":[{"nativeSrc":"6449:63:101","nodeType":"YulVariableDeclaration","src":"6449:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"6504:7:101","nodeType":"YulIdentifier","src":"6504:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"6473:30:101","nodeType":"YulIdentifier","src":"6473:30:101"},"nativeSrc":"6473:39:101","nodeType":"YulFunctionCall","src":"6473:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"6453:16:101","nodeType":"YulTypedName","src":"6453:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6528:4:101","nodeType":"YulIdentifier","src":"6528:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"6568:4:101","nodeType":"YulIdentifier","src":"6568:4:101"}],"functionName":{"name":"sload","nativeSrc":"6562:5:101","nodeType":"YulIdentifier","src":"6562:5:101"},"nativeSrc":"6562:11:101","nodeType":"YulFunctionCall","src":"6562:11:101"},{"name":"offset","nativeSrc":"6575:6:101","nodeType":"YulIdentifier","src":"6575:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"6607:16:101","nodeType":"YulIdentifier","src":"6607:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"6583:23:101","nodeType":"YulIdentifier","src":"6583:23:101"},"nativeSrc":"6583:41:101","nodeType":"YulFunctionCall","src":"6583:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"6534:27:101","nodeType":"YulIdentifier","src":"6534:27:101"},"nativeSrc":"6534:91:101","nodeType":"YulFunctionCall","src":"6534:91:101"}],"functionName":{"name":"sstore","nativeSrc":"6521:6:101","nodeType":"YulIdentifier","src":"6521:6:101"},"nativeSrc":"6521:105:101","nodeType":"YulFunctionCall","src":"6521:105:101"},"nativeSrc":"6521:105:101","nodeType":"YulExpressionStatement","src":"6521:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6363:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6416:4:101","nodeType":"YulTypedName","src":"6416:4:101","type":""},{"name":"offset","nativeSrc":"6422:6:101","nodeType":"YulTypedName","src":"6422:6:101","type":""},{"name":"value_0","nativeSrc":"6430:7:101","nodeType":"YulTypedName","src":"6430:7:101","type":""}],"src":"6363:269:101"},{"body":{"nativeSrc":"6687:24:101","nodeType":"YulBlock","src":"6687:24:101","statements":[{"nativeSrc":"6697:8:101","nodeType":"YulAssignment","src":"6697:8:101","value":{"kind":"number","nativeSrc":"6704:1:101","nodeType":"YulLiteral","src":"6704:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6697:3:101","nodeType":"YulIdentifier","src":"6697:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"6638:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6683:3:101","nodeType":"YulTypedName","src":"6683:3:101","type":""}],"src":"6638:73:101"},{"body":{"nativeSrc":"6770:136:101","nodeType":"YulBlock","src":"6770:136:101","statements":[{"nativeSrc":"6780:46:101","nodeType":"YulVariableDeclaration","src":"6780:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6794:30:101","nodeType":"YulIdentifier","src":"6794:30:101"},"nativeSrc":"6794:32:101","nodeType":"YulFunctionCall","src":"6794:32:101"},"variables":[{"name":"zero_0","nativeSrc":"6784:6:101","nodeType":"YulTypedName","src":"6784:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6879:4:101","nodeType":"YulIdentifier","src":"6879:4:101"},{"name":"offset","nativeSrc":"6885:6:101","nodeType":"YulIdentifier","src":"6885:6:101"},{"name":"zero_0","nativeSrc":"6893:6:101","nodeType":"YulIdentifier","src":"6893:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6835:43:101","nodeType":"YulIdentifier","src":"6835:43:101"},"nativeSrc":"6835:65:101","nodeType":"YulFunctionCall","src":"6835:65:101"},"nativeSrc":"6835:65:101","nodeType":"YulExpressionStatement","src":"6835:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6717:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6756:4:101","nodeType":"YulTypedName","src":"6756:4:101","type":""},{"name":"offset","nativeSrc":"6762:6:101","nodeType":"YulTypedName","src":"6762:6:101","type":""}],"src":"6717:189:101"},{"body":{"nativeSrc":"6962:136:101","nodeType":"YulBlock","src":"6962:136:101","statements":[{"body":{"nativeSrc":"7029:63:101","nodeType":"YulBlock","src":"7029:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"7073:5:101","nodeType":"YulIdentifier","src":"7073:5:101"},{"kind":"number","nativeSrc":"7080:1:101","nodeType":"YulLiteral","src":"7080:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"7043:29:101","nodeType":"YulIdentifier","src":"7043:29:101"},"nativeSrc":"7043:39:101","nodeType":"YulFunctionCall","src":"7043:39:101"},"nativeSrc":"7043:39:101","nodeType":"YulExpressionStatement","src":"7043:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6982:5:101","nodeType":"YulIdentifier","src":"6982:5:101"},{"name":"end","nativeSrc":"6989:3:101","nodeType":"YulIdentifier","src":"6989:3:101"}],"functionName":{"name":"lt","nativeSrc":"6979:2:101","nodeType":"YulIdentifier","src":"6979:2:101"},"nativeSrc":"6979:14:101","nodeType":"YulFunctionCall","src":"6979:14:101"},"nativeSrc":"6972:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"6994:26:101","nodeType":"YulBlock","src":"6994:26:101","statements":[{"nativeSrc":"6996:22:101","nodeType":"YulAssignment","src":"6996:22:101","value":{"arguments":[{"name":"start","nativeSrc":"7009:5:101","nodeType":"YulIdentifier","src":"7009:5:101"},{"kind":"number","nativeSrc":"7016:1:101","nodeType":"YulLiteral","src":"7016:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7005:3:101","nodeType":"YulIdentifier","src":"7005:3:101"},"nativeSrc":"7005:13:101","nodeType":"YulFunctionCall","src":"7005:13:101"},"variableNames":[{"name":"start","nativeSrc":"6996:5:101","nodeType":"YulIdentifier","src":"6996:5:101"}]}]},"pre":{"nativeSrc":"6976:2:101","nodeType":"YulBlock","src":"6976:2:101","statements":[]},"src":"6972:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6912:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6950:5:101","nodeType":"YulTypedName","src":"6950:5:101","type":""},{"name":"end","nativeSrc":"6957:3:101","nodeType":"YulTypedName","src":"6957:3:101","type":""}],"src":"6912:186:101"},{"body":{"nativeSrc":"7183:464:101","nodeType":"YulBlock","src":"7183:464:101","statements":[{"body":{"nativeSrc":"7209:431:101","nodeType":"YulBlock","src":"7209:431:101","statements":[{"nativeSrc":"7223:54:101","nodeType":"YulVariableDeclaration","src":"7223:54:101","value":{"arguments":[{"name":"array","nativeSrc":"7271:5:101","nodeType":"YulIdentifier","src":"7271:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"7239:31:101","nodeType":"YulIdentifier","src":"7239:31:101"},"nativeSrc":"7239:38:101","nodeType":"YulFunctionCall","src":"7239:38:101"},"variables":[{"name":"dataArea","nativeSrc":"7227:8:101","nodeType":"YulTypedName","src":"7227:8:101","type":""}]},{"nativeSrc":"7290:63:101","nodeType":"YulVariableDeclaration","src":"7290:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"7313:8:101","nodeType":"YulIdentifier","src":"7313:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"7341:10:101","nodeType":"YulIdentifier","src":"7341:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"7323:17:101","nodeType":"YulIdentifier","src":"7323:17:101"},"nativeSrc":"7323:29:101","nodeType":"YulFunctionCall","src":"7323:29:101"}],"functionName":{"name":"add","nativeSrc":"7309:3:101","nodeType":"YulIdentifier","src":"7309:3:101"},"nativeSrc":"7309:44:101","nodeType":"YulFunctionCall","src":"7309:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"7294:11:101","nodeType":"YulTypedName","src":"7294:11:101","type":""}]},{"body":{"nativeSrc":"7510:27:101","nodeType":"YulBlock","src":"7510:27:101","statements":[{"nativeSrc":"7512:23:101","nodeType":"YulAssignment","src":"7512:23:101","value":{"name":"dataArea","nativeSrc":"7527:8:101","nodeType":"YulIdentifier","src":"7527:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"7512:11:101","nodeType":"YulIdentifier","src":"7512:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"7494:10:101","nodeType":"YulIdentifier","src":"7494:10:101"},{"kind":"number","nativeSrc":"7506:2:101","nodeType":"YulLiteral","src":"7506:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"7491:2:101","nodeType":"YulIdentifier","src":"7491:2:101"},"nativeSrc":"7491:18:101","nodeType":"YulFunctionCall","src":"7491:18:101"},"nativeSrc":"7488:49:101","nodeType":"YulIf","src":"7488:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"7579:11:101","nodeType":"YulIdentifier","src":"7579:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"7596:8:101","nodeType":"YulIdentifier","src":"7596:8:101"},{"arguments":[{"name":"len","nativeSrc":"7624:3:101","nodeType":"YulIdentifier","src":"7624:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"7606:17:101","nodeType":"YulIdentifier","src":"7606:17:101"},"nativeSrc":"7606:22:101","nodeType":"YulFunctionCall","src":"7606:22:101"}],"functionName":{"name":"add","nativeSrc":"7592:3:101","nodeType":"YulIdentifier","src":"7592:3:101"},"nativeSrc":"7592:37:101","nodeType":"YulFunctionCall","src":"7592:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"7550:28:101","nodeType":"YulIdentifier","src":"7550:28:101"},"nativeSrc":"7550:80:101","nodeType":"YulFunctionCall","src":"7550:80:101"},"nativeSrc":"7550:80:101","nodeType":"YulExpressionStatement","src":"7550:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"7200:3:101","nodeType":"YulIdentifier","src":"7200:3:101"},{"kind":"number","nativeSrc":"7205:2:101","nodeType":"YulLiteral","src":"7205:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"7197:2:101","nodeType":"YulIdentifier","src":"7197:2:101"},"nativeSrc":"7197:11:101","nodeType":"YulFunctionCall","src":"7197:11:101"},"nativeSrc":"7194:446:101","nodeType":"YulIf","src":"7194:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7104:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"7159:5:101","nodeType":"YulTypedName","src":"7159:5:101","type":""},{"name":"len","nativeSrc":"7166:3:101","nodeType":"YulTypedName","src":"7166:3:101","type":""},{"name":"startIndex","nativeSrc":"7171:10:101","nodeType":"YulTypedName","src":"7171:10:101","type":""}],"src":"7104:543:101"},{"body":{"nativeSrc":"7716:54:101","nodeType":"YulBlock","src":"7716:54:101","statements":[{"nativeSrc":"7726:37:101","nodeType":"YulAssignment","src":"7726:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"7751:4:101","nodeType":"YulIdentifier","src":"7751:4:101"},{"name":"value","nativeSrc":"7757:5:101","nodeType":"YulIdentifier","src":"7757:5:101"}],"functionName":{"name":"shr","nativeSrc":"7747:3:101","nodeType":"YulIdentifier","src":"7747:3:101"},"nativeSrc":"7747:16:101","nodeType":"YulFunctionCall","src":"7747:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"7726:8:101","nodeType":"YulIdentifier","src":"7726:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"7653:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7691:4:101","nodeType":"YulTypedName","src":"7691:4:101","type":""},{"name":"value","nativeSrc":"7697:5:101","nodeType":"YulTypedName","src":"7697:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7707:8:101","nodeType":"YulTypedName","src":"7707:8:101","type":""}],"src":"7653:117:101"},{"body":{"nativeSrc":"7827:118:101","nodeType":"YulBlock","src":"7827:118:101","statements":[{"nativeSrc":"7837:68:101","nodeType":"YulVariableDeclaration","src":"7837:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7886:1:101","nodeType":"YulLiteral","src":"7886:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"7889:5:101","nodeType":"YulIdentifier","src":"7889:5:101"}],"functionName":{"name":"mul","nativeSrc":"7882:3:101","nodeType":"YulIdentifier","src":"7882:3:101"},"nativeSrc":"7882:13:101","nodeType":"YulFunctionCall","src":"7882:13:101"},{"arguments":[{"kind":"number","nativeSrc":"7901:1:101","nodeType":"YulLiteral","src":"7901:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7897:3:101","nodeType":"YulIdentifier","src":"7897:3:101"},"nativeSrc":"7897:6:101","nodeType":"YulFunctionCall","src":"7897:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7853:28:101","nodeType":"YulIdentifier","src":"7853:28:101"},"nativeSrc":"7853:51:101","nodeType":"YulFunctionCall","src":"7853:51:101"}],"functionName":{"name":"not","nativeSrc":"7849:3:101","nodeType":"YulIdentifier","src":"7849:3:101"},"nativeSrc":"7849:56:101","nodeType":"YulFunctionCall","src":"7849:56:101"},"variables":[{"name":"mask","nativeSrc":"7841:4:101","nodeType":"YulTypedName","src":"7841:4:101","type":""}]},{"nativeSrc":"7914:25:101","nodeType":"YulAssignment","src":"7914:25:101","value":{"arguments":[{"name":"data","nativeSrc":"7928:4:101","nodeType":"YulIdentifier","src":"7928:4:101"},{"name":"mask","nativeSrc":"7934:4:101","nodeType":"YulIdentifier","src":"7934:4:101"}],"functionName":{"name":"and","nativeSrc":"7924:3:101","nodeType":"YulIdentifier","src":"7924:3:101"},"nativeSrc":"7924:15:101","nodeType":"YulFunctionCall","src":"7924:15:101"},"variableNames":[{"name":"result","nativeSrc":"7914:6:101","nodeType":"YulIdentifier","src":"7914:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7776:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7804:4:101","nodeType":"YulTypedName","src":"7804:4:101","type":""},{"name":"bytes","nativeSrc":"7810:5:101","nodeType":"YulTypedName","src":"7810:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7820:6:101","nodeType":"YulTypedName","src":"7820:6:101","type":""}],"src":"7776:169:101"},{"body":{"nativeSrc":"8031:214:101","nodeType":"YulBlock","src":"8031:214:101","statements":[{"nativeSrc":"8164:37:101","nodeType":"YulAssignment","src":"8164:37:101","value":{"arguments":[{"name":"data","nativeSrc":"8191:4:101","nodeType":"YulIdentifier","src":"8191:4:101"},{"name":"len","nativeSrc":"8197:3:101","nodeType":"YulIdentifier","src":"8197:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8172:18:101","nodeType":"YulIdentifier","src":"8172:18:101"},"nativeSrc":"8172:29:101","nodeType":"YulFunctionCall","src":"8172:29:101"},"variableNames":[{"name":"data","nativeSrc":"8164:4:101","nodeType":"YulIdentifier","src":"8164:4:101"}]},{"nativeSrc":"8210:29:101","nodeType":"YulAssignment","src":"8210:29:101","value":{"arguments":[{"name":"data","nativeSrc":"8221:4:101","nodeType":"YulIdentifier","src":"8221:4:101"},{"arguments":[{"kind":"number","nativeSrc":"8231:1:101","nodeType":"YulLiteral","src":"8231:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"8234:3:101","nodeType":"YulIdentifier","src":"8234:3:101"}],"functionName":{"name":"mul","nativeSrc":"8227:3:101","nodeType":"YulIdentifier","src":"8227:3:101"},"nativeSrc":"8227:11:101","nodeType":"YulFunctionCall","src":"8227:11:101"}],"functionName":{"name":"or","nativeSrc":"8218:2:101","nodeType":"YulIdentifier","src":"8218:2:101"},"nativeSrc":"8218:21:101","nodeType":"YulFunctionCall","src":"8218:21:101"},"variableNames":[{"name":"used","nativeSrc":"8210:4:101","nodeType":"YulIdentifier","src":"8210:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7950:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"8012:4:101","nodeType":"YulTypedName","src":"8012:4:101","type":""},{"name":"len","nativeSrc":"8018:3:101","nodeType":"YulTypedName","src":"8018:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"8026:4:101","nodeType":"YulTypedName","src":"8026:4:101","type":""}],"src":"7950:295:101"},{"body":{"nativeSrc":"8342:1303:101","nodeType":"YulBlock","src":"8342:1303:101","statements":[{"nativeSrc":"8353:51:101","nodeType":"YulVariableDeclaration","src":"8353:51:101","value":{"arguments":[{"name":"src","nativeSrc":"8400:3:101","nodeType":"YulIdentifier","src":"8400:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"8367:32:101","nodeType":"YulIdentifier","src":"8367:32:101"},"nativeSrc":"8367:37:101","nodeType":"YulFunctionCall","src":"8367:37:101"},"variables":[{"name":"newLen","nativeSrc":"8357:6:101","nodeType":"YulTypedName","src":"8357:6:101","type":""}]},{"body":{"nativeSrc":"8489:22:101","nodeType":"YulBlock","src":"8489:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8491:16:101","nodeType":"YulIdentifier","src":"8491:16:101"},"nativeSrc":"8491:18:101","nodeType":"YulFunctionCall","src":"8491:18:101"},"nativeSrc":"8491:18:101","nodeType":"YulExpressionStatement","src":"8491:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"8461:6:101","nodeType":"YulIdentifier","src":"8461:6:101"},{"kind":"number","nativeSrc":"8469:18:101","nodeType":"YulLiteral","src":"8469:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8458:2:101","nodeType":"YulIdentifier","src":"8458:2:101"},"nativeSrc":"8458:30:101","nodeType":"YulFunctionCall","src":"8458:30:101"},"nativeSrc":"8455:56:101","nodeType":"YulIf","src":"8455:56:101"},{"nativeSrc":"8521:52:101","nodeType":"YulVariableDeclaration","src":"8521:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"sload","nativeSrc":"8561:5:101","nodeType":"YulIdentifier","src":"8561:5:101"},"nativeSrc":"8561:11:101","nodeType":"YulFunctionCall","src":"8561:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"8535:25:101","nodeType":"YulIdentifier","src":"8535:25:101"},"nativeSrc":"8535:38:101","nodeType":"YulFunctionCall","src":"8535:38:101"},"variables":[{"name":"oldLen","nativeSrc":"8525:6:101","nodeType":"YulTypedName","src":"8525:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8666:4:101","nodeType":"YulIdentifier","src":"8666:4:101"},{"name":"oldLen","nativeSrc":"8672:6:101","nodeType":"YulIdentifier","src":"8672:6:101"},{"name":"newLen","nativeSrc":"8680:6:101","nodeType":"YulIdentifier","src":"8680:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"8620:45:101","nodeType":"YulIdentifier","src":"8620:45:101"},"nativeSrc":"8620:67:101","nodeType":"YulFunctionCall","src":"8620:67:101"},"nativeSrc":"8620:67:101","nodeType":"YulExpressionStatement","src":"8620:67:101"},{"nativeSrc":"8697:18:101","nodeType":"YulVariableDeclaration","src":"8697:18:101","value":{"kind":"number","nativeSrc":"8714:1:101","nodeType":"YulLiteral","src":"8714:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8701:9:101","nodeType":"YulTypedName","src":"8701:9:101","type":""}]},{"nativeSrc":"8725:17:101","nodeType":"YulAssignment","src":"8725:17:101","value":{"kind":"number","nativeSrc":"8738:4:101","nodeType":"YulLiteral","src":"8738:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8725:9:101","nodeType":"YulIdentifier","src":"8725:9:101"}]},{"cases":[{"body":{"nativeSrc":"8789:611:101","nodeType":"YulBlock","src":"8789:611:101","statements":[{"nativeSrc":"8803:37:101","nodeType":"YulVariableDeclaration","src":"8803:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"8822:6:101","nodeType":"YulIdentifier","src":"8822:6:101"},{"arguments":[{"kind":"number","nativeSrc":"8834:4:101","nodeType":"YulLiteral","src":"8834:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8830:3:101","nodeType":"YulIdentifier","src":"8830:3:101"},"nativeSrc":"8830:9:101","nodeType":"YulFunctionCall","src":"8830:9:101"}],"functionName":{"name":"and","nativeSrc":"8818:3:101","nodeType":"YulIdentifier","src":"8818:3:101"},"nativeSrc":"8818:22:101","nodeType":"YulFunctionCall","src":"8818:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"8807:7:101","nodeType":"YulTypedName","src":"8807:7:101","type":""}]},{"nativeSrc":"8854:51:101","nodeType":"YulVariableDeclaration","src":"8854:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"8900:4:101","nodeType":"YulIdentifier","src":"8900:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8868:31:101","nodeType":"YulIdentifier","src":"8868:31:101"},"nativeSrc":"8868:37:101","nodeType":"YulFunctionCall","src":"8868:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"8858:6:101","nodeType":"YulTypedName","src":"8858:6:101","type":""}]},{"nativeSrc":"8918:10:101","nodeType":"YulVariableDeclaration","src":"8918:10:101","value":{"kind":"number","nativeSrc":"8927:1:101","nodeType":"YulLiteral","src":"8927:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8922:1:101","nodeType":"YulTypedName","src":"8922:1:101","type":""}]},{"body":{"nativeSrc":"8986:163:101","nodeType":"YulBlock","src":"8986:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"9011:6:101","nodeType":"YulIdentifier","src":"9011:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9029:3:101","nodeType":"YulIdentifier","src":"9029:3:101"},{"name":"srcOffset","nativeSrc":"9034:9:101","nodeType":"YulIdentifier","src":"9034:9:101"}],"functionName":{"name":"add","nativeSrc":"9025:3:101","nodeType":"YulIdentifier","src":"9025:3:101"},"nativeSrc":"9025:19:101","nodeType":"YulFunctionCall","src":"9025:19:101"}],"functionName":{"name":"mload","nativeSrc":"9019:5:101","nodeType":"YulIdentifier","src":"9019:5:101"},"nativeSrc":"9019:26:101","nodeType":"YulFunctionCall","src":"9019:26:101"}],"functionName":{"name":"sstore","nativeSrc":"9004:6:101","nodeType":"YulIdentifier","src":"9004:6:101"},"nativeSrc":"9004:42:101","nodeType":"YulFunctionCall","src":"9004:42:101"},"nativeSrc":"9004:42:101","nodeType":"YulExpressionStatement","src":"9004:42:101"},{"nativeSrc":"9063:24:101","nodeType":"YulAssignment","src":"9063:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"9077:6:101","nodeType":"YulIdentifier","src":"9077:6:101"},{"kind":"number","nativeSrc":"9085:1:101","nodeType":"YulLiteral","src":"9085:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9073:3:101","nodeType":"YulIdentifier","src":"9073:3:101"},"nativeSrc":"9073:14:101","nodeType":"YulFunctionCall","src":"9073:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"9063:6:101","nodeType":"YulIdentifier","src":"9063:6:101"}]},{"nativeSrc":"9104:31:101","nodeType":"YulAssignment","src":"9104:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"9121:9:101","nodeType":"YulIdentifier","src":"9121:9:101"},{"kind":"number","nativeSrc":"9132:2:101","nodeType":"YulLiteral","src":"9132:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9117:3:101","nodeType":"YulIdentifier","src":"9117:3:101"},"nativeSrc":"9117:18:101","nodeType":"YulFunctionCall","src":"9117:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"9104:9:101","nodeType":"YulIdentifier","src":"9104:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8952:1:101","nodeType":"YulIdentifier","src":"8952:1:101"},{"name":"loopEnd","nativeSrc":"8955:7:101","nodeType":"YulIdentifier","src":"8955:7:101"}],"functionName":{"name":"lt","nativeSrc":"8949:2:101","nodeType":"YulIdentifier","src":"8949:2:101"},"nativeSrc":"8949:14:101","nodeType":"YulFunctionCall","src":"8949:14:101"},"nativeSrc":"8941:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"8964:21:101","nodeType":"YulBlock","src":"8964:21:101","statements":[{"nativeSrc":"8966:17:101","nodeType":"YulAssignment","src":"8966:17:101","value":{"arguments":[{"name":"i","nativeSrc":"8975:1:101","nodeType":"YulIdentifier","src":"8975:1:101"},{"kind":"number","nativeSrc":"8978:4:101","nodeType":"YulLiteral","src":"8978:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8971:3:101","nodeType":"YulIdentifier","src":"8971:3:101"},"nativeSrc":"8971:12:101","nodeType":"YulFunctionCall","src":"8971:12:101"},"variableNames":[{"name":"i","nativeSrc":"8966:1:101","nodeType":"YulIdentifier","src":"8966:1:101"}]}]},"pre":{"nativeSrc":"8945:3:101","nodeType":"YulBlock","src":"8945:3:101","statements":[]},"src":"8941:208:101"},{"body":{"nativeSrc":"9185:156:101","nodeType":"YulBlock","src":"9185:156:101","statements":[{"nativeSrc":"9203:43:101","nodeType":"YulVariableDeclaration","src":"9203:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9230:3:101","nodeType":"YulIdentifier","src":"9230:3:101"},{"name":"srcOffset","nativeSrc":"9235:9:101","nodeType":"YulIdentifier","src":"9235:9:101"}],"functionName":{"name":"add","nativeSrc":"9226:3:101","nodeType":"YulIdentifier","src":"9226:3:101"},"nativeSrc":"9226:19:101","nodeType":"YulFunctionCall","src":"9226:19:101"}],"functionName":{"name":"mload","nativeSrc":"9220:5:101","nodeType":"YulIdentifier","src":"9220:5:101"},"nativeSrc":"9220:26:101","nodeType":"YulFunctionCall","src":"9220:26:101"},"variables":[{"name":"lastValue","nativeSrc":"9207:9:101","nodeType":"YulTypedName","src":"9207:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"9270:6:101","nodeType":"YulIdentifier","src":"9270:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"9297:9:101","nodeType":"YulIdentifier","src":"9297:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"9312:6:101","nodeType":"YulIdentifier","src":"9312:6:101"},{"kind":"number","nativeSrc":"9320:4:101","nodeType":"YulLiteral","src":"9320:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"9308:3:101","nodeType":"YulIdentifier","src":"9308:3:101"},"nativeSrc":"9308:17:101","nodeType":"YulFunctionCall","src":"9308:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"9278:18:101","nodeType":"YulIdentifier","src":"9278:18:101"},"nativeSrc":"9278:48:101","nodeType":"YulFunctionCall","src":"9278:48:101"}],"functionName":{"name":"sstore","nativeSrc":"9263:6:101","nodeType":"YulIdentifier","src":"9263:6:101"},"nativeSrc":"9263:64:101","nodeType":"YulFunctionCall","src":"9263:64:101"},"nativeSrc":"9263:64:101","nodeType":"YulExpressionStatement","src":"9263:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"9168:7:101","nodeType":"YulIdentifier","src":"9168:7:101"},{"name":"newLen","nativeSrc":"9177:6:101","nodeType":"YulIdentifier","src":"9177:6:101"}],"functionName":{"name":"lt","nativeSrc":"9165:2:101","nodeType":"YulIdentifier","src":"9165:2:101"},"nativeSrc":"9165:19:101","nodeType":"YulFunctionCall","src":"9165:19:101"},"nativeSrc":"9162:179:101","nodeType":"YulIf","src":"9162:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"9361:4:101","nodeType":"YulIdentifier","src":"9361:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"9375:6:101","nodeType":"YulIdentifier","src":"9375:6:101"},{"kind":"number","nativeSrc":"9383:1:101","nodeType":"YulLiteral","src":"9383:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"9371:3:101","nodeType":"YulIdentifier","src":"9371:3:101"},"nativeSrc":"9371:14:101","nodeType":"YulFunctionCall","src":"9371:14:101"},{"kind":"number","nativeSrc":"9387:1:101","nodeType":"YulLiteral","src":"9387:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9367:3:101","nodeType":"YulIdentifier","src":"9367:3:101"},"nativeSrc":"9367:22:101","nodeType":"YulFunctionCall","src":"9367:22:101"}],"functionName":{"name":"sstore","nativeSrc":"9354:6:101","nodeType":"YulIdentifier","src":"9354:6:101"},"nativeSrc":"9354:36:101","nodeType":"YulFunctionCall","src":"9354:36:101"},"nativeSrc":"9354:36:101","nodeType":"YulExpressionStatement","src":"9354:36:101"}]},"nativeSrc":"8782:618:101","nodeType":"YulCase","src":"8782:618:101","value":{"kind":"number","nativeSrc":"8787:1:101","nodeType":"YulLiteral","src":"8787:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9417:222:101","nodeType":"YulBlock","src":"9417:222:101","statements":[{"nativeSrc":"9431:14:101","nodeType":"YulVariableDeclaration","src":"9431:14:101","value":{"kind":"number","nativeSrc":"9444:1:101","nodeType":"YulLiteral","src":"9444:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9435:5:101","nodeType":"YulTypedName","src":"9435:5:101","type":""}]},{"body":{"nativeSrc":"9468:67:101","nodeType":"YulBlock","src":"9468:67:101","statements":[{"nativeSrc":"9486:35:101","nodeType":"YulAssignment","src":"9486:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9505:3:101","nodeType":"YulIdentifier","src":"9505:3:101"},{"name":"srcOffset","nativeSrc":"9510:9:101","nodeType":"YulIdentifier","src":"9510:9:101"}],"functionName":{"name":"add","nativeSrc":"9501:3:101","nodeType":"YulIdentifier","src":"9501:3:101"},"nativeSrc":"9501:19:101","nodeType":"YulFunctionCall","src":"9501:19:101"}],"functionName":{"name":"mload","nativeSrc":"9495:5:101","nodeType":"YulIdentifier","src":"9495:5:101"},"nativeSrc":"9495:26:101","nodeType":"YulFunctionCall","src":"9495:26:101"},"variableNames":[{"name":"value","nativeSrc":"9486:5:101","nodeType":"YulIdentifier","src":"9486:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"9461:6:101","nodeType":"YulIdentifier","src":"9461:6:101"},"nativeSrc":"9458:77:101","nodeType":"YulIf","src":"9458:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"9555:4:101","nodeType":"YulIdentifier","src":"9555:4:101"},{"arguments":[{"name":"value","nativeSrc":"9614:5:101","nodeType":"YulIdentifier","src":"9614:5:101"},{"name":"newLen","nativeSrc":"9621:6:101","nodeType":"YulIdentifier","src":"9621:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"9561:52:101","nodeType":"YulIdentifier","src":"9561:52:101"},"nativeSrc":"9561:67:101","nodeType":"YulFunctionCall","src":"9561:67:101"}],"functionName":{"name":"sstore","nativeSrc":"9548:6:101","nodeType":"YulIdentifier","src":"9548:6:101"},"nativeSrc":"9548:81:101","nodeType":"YulFunctionCall","src":"9548:81:101"},"nativeSrc":"9548:81:101","nodeType":"YulExpressionStatement","src":"9548:81:101"}]},"nativeSrc":"9409:230:101","nodeType":"YulCase","src":"9409:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8762:6:101","nodeType":"YulIdentifier","src":"8762:6:101"},{"kind":"number","nativeSrc":"8770:2:101","nodeType":"YulLiteral","src":"8770:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8759:2:101","nodeType":"YulIdentifier","src":"8759:2:101"},"nativeSrc":"8759:14:101","nodeType":"YulFunctionCall","src":"8759:14:101"},"nativeSrc":"8752:887:101","nodeType":"YulSwitch","src":"8752:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"8250:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"8331:4:101","nodeType":"YulTypedName","src":"8331:4:101","type":""},{"name":"src","nativeSrc":"8337:3:101","nodeType":"YulTypedName","src":"8337:3:101","type":""}],"src":"8250:1395:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b5060405161117138038061117183398101604081905261002e91610226565b8383600361003c8382610397565b5060046100498282610397565b50505061006261005d61009260201b60201c565b610096565b60ff91909116608052600680546001600160a01b0319166001600160a01b03909216919091179055506104569050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b0382111715610120576101206100e7565b6040525050565b5f61013160405190565b905061013d82826100fb565b919050565b5f6001600160401b0382111561015a5761015a6100e7565b601f19601f83011660200192915050565b8281835e505f910152565b5f61018861018384610142565b610127565b9050828152602081018484840111156101a2576101a25f80fd5b6101ad84828561016b565b509392505050565b5f82601f8301126101c7576101c75f80fd5b81516101d7848260208601610176565b949350505050565b60ff81165b81146101ee575f80fd5b50565b80516101fc816101df565b92915050565b5f6001600160a01b0382166101fc565b6101e481610202565b80516101fc81610212565b5f805f806080858703121561023c5761023c5f80fd5b84516001600160401b03811115610254576102545f80fd5b610260878288016101b5565b94505060208501516001600160401b0381111561027e5761027e5f80fd5b61028a878288016101b5565b935050604061029b878288016101f1565b92505060606102ac8782880161021b565b91505092959194509250565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806102e057607f821691505b6020821081036102f2576102f26102b8565b50919050565b5f6101fc6103038381565b90565b61030f836102f8565b81545f1960089490940293841b1916921b91909117905550565b5f610335818484610306565b505050565b818110156103545761034c5f82610329565b60010161033a565b5050565b601f821115610335575f818152602090206020601f8501048101602085101561037e5750805b6103906020601f86010483018261033a565b5050505050565b81516001600160401b038111156103b0576103b06100e7565b6103ba82546102cc565b6103c5828285610358565b6020601f8311600181146103f7575f84156103e05750858201515b5f19600886021c198116600286021786555061044e565b5f85815260208120601f198616915b828110156104265788850151825560209485019460019092019101610406565b8683101561044157848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b608051610d0361046e5f395f61018e0152610d035ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c806370a082311161009e578063a457c2d71161006e578063a457c2d71461022b578063a9059cbb1461023e578063dd62ed3e14610251578063f2fde38b14610264578063fca3b5aa14610277575f80fd5b806370a08231146101e2578063715018a61461020a5780638da5cb5b1461021257806395d89b4114610223575f80fd5b806323b872dd116100d957806323b872dd14610179578063313ce5671461018c57806339509351146101ba57806357915897146101cd575f80fd5b806306fdde031461010a5780630754617214610128578063095ea7b31461014857806318160ddd14610168575b5f80fd5b61011261028a565b60405161011f91906107b7565b60405180910390f35b60065461013b906001600160a01b031681565b60405161011f91906107ee565b61015b61015636600461082b565b61031a565b60405161011f919061086d565b6002545b60405161011f9190610881565b61015b61018736600461088f565b610333565b7f000000000000000000000000000000000000000000000000000000000000000060405161011f91906108e4565b61015b6101c836600461082b565b610356565b6101e06101db3660046108f2565b610377565b005b61016c6101f0366004610918565b6001600160a01b03165f9081526020819052604090205490565b6101e0610384565b6005546001600160a01b031661013b565b610112610397565b61015b61023936600461082b565b6103a6565b61015b61024c36600461082b565b6103eb565b61016c61025f366004610936565b6103f8565b6101e0610272366004610918565b610422565b6101e0610285366004610918565b610459565b6060600380546102999061097a565b80601f01602080910402602001604051908101604052809291908181526020018280546102c59061097a565b80156103105780601f106102e757610100808354040283529160200191610310565b820191905f5260205f20905b8154815290600101906020018083116102f357829003601f168201915b5050505050905090565b5f33610327818585610483565b60019150505b92915050565b5f33610340858285610536565b61034b85858561057e565b506001949350505050565b5f3361032781858561036883836103f8565b61037291906109ba565b610483565b610381338261066c565b50565b61038c610700565b6103955f61072a565b565b6060600480546102999061097a565b5f33816103b382866103f8565b9050838110156103de5760405162461bcd60e51b81526004016103d590610a11565b60405180910390fd5b61034b8286868403610483565b5f3361032781858561057e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61042a610700565b6001600160a01b0381166104505760405162461bcd60e51b81526004016103d590610a63565b6103818161072a565b610461610700565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166104a95760405162461bcd60e51b81526004016103d590610ab3565b6001600160a01b0382166104cf5760405162461bcd60e51b81526004016103d590610b01565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610529908590610881565b60405180910390a3505050565b5f61054184846103f8565b90505f198114610578578181101561056b5760405162461bcd60e51b81526004016103d590610b47565b6105788484848403610483565b50505050565b6001600160a01b0383166105a45760405162461bcd60e51b81526004016103d590610b98565b6001600160a01b0382166105ca5760405162461bcd60e51b81526004016103d590610be7565b6001600160a01b0383165f90815260208190526040902054818110156106025760405162461bcd60e51b81526004016103d590610c39565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061065f908690610881565b60405180910390a3610578565b6001600160a01b0382166106925760405162461bcd60e51b81526004016103d590610c7c565b8060025f8282546106a391906109ba565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106f4908590610881565b60405180910390a35050565b6005546001600160a01b031633146103955760405162461bcd60e51b81526004016103d590610cbd565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f61078f825190565b8084526020840193506107a681856020860161077b565b601f01601f19169290920192915050565b602080825281016107c88184610786565b9392505050565b5f6001600160a01b03821661032d565b6107e8816107cf565b82525050565b6020810161032d82846107df565b610805816107cf565b8114610381575f80fd5b803561032d816107fc565b80610805565b803561032d8161081a565b5f806040838503121561083f5761083f5f80fd5b5f61084a858561080f565b925050602061085b85828601610820565b9150509250929050565b8015156107e8565b6020810161032d8284610865565b806107e8565b6020810161032d828461087b565b5f805f606084860312156108a4576108a45f80fd5b5f6108af868661080f565b93505060206108c08682870161080f565b92505060406108d186828701610820565b9150509250925092565b60ff81166107e8565b6020810161032d82846108db565b5f60208284031215610905576109055f80fd5b5f6109108484610820565b949350505050565b5f6020828403121561092b5761092b5f80fd5b5f610910848461080f565b5f806040838503121561094a5761094a5f80fd5b5f610955858561080f565b925050602061085b8582860161080f565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061098e57607f821691505b6020821081036109a0576109a0610966565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561032d5761032d6109a6565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161032d816109cd565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610a0a565b6020808252810161032d81610a21565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610a0a565b6020808252810161032d81610a73565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610a0a565b6020808252810161032d81610ac3565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161032d81610b11565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610a0a565b6020808252810161032d81610b57565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610a0a565b6020808252810161032d81610ba8565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610a0a565b6020808252810161032d81610bf7565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610b40565b6020808252810161032d81610c49565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610b40565b6020808252810161032d81610c8c56fea2646970667358221220911d88c199c490f1eb2a6d5f155ba03284c12c21ee1bfd533d58fa90f9a7923164736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1171 CODESIZE SUB DUP1 PUSH2 0x1171 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x226 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x3 PUSH2 0x3C DUP4 DUP3 PUSH2 0x397 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x49 DUP3 DUP3 PUSH2 0x397 JUMP JUMPDEST POP POP POP PUSH2 0x62 PUSH2 0x5D PUSH2 0x92 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x96 JUMP JUMPDEST PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x80 MSTORE PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x456 SWAP1 POP JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x120 JUMPI PUSH2 0x120 PUSH2 0xE7 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x131 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x13D DUP3 DUP3 PUSH2 0xFB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x15A JUMPI PUSH2 0x15A PUSH2 0xE7 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x188 PUSH2 0x183 DUP5 PUSH2 0x142 JUMP JUMPDEST PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1A2 JUMPI PUSH2 0x1A2 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1AD DUP5 DUP3 DUP6 PUSH2 0x16B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C7 JUMPI PUSH2 0x1C7 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x176 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x1EE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1FC DUP2 PUSH2 0x1DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1FC JUMP JUMPDEST PUSH2 0x1E4 DUP2 PUSH2 0x202 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1FC DUP2 PUSH2 0x212 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x23C JUMPI PUSH2 0x23C PUSH0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x254 JUMPI PUSH2 0x254 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x260 DUP8 DUP3 DUP9 ADD PUSH2 0x1B5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x27E JUMPI PUSH2 0x27E PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x28A DUP8 DUP3 DUP9 ADD PUSH2 0x1B5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x29B DUP8 DUP3 DUP9 ADD PUSH2 0x1F1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2AC DUP8 DUP3 DUP9 ADD PUSH2 0x21B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2E0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2F2 JUMPI PUSH2 0x2F2 PUSH2 0x2B8 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1FC PUSH2 0x303 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x30F DUP4 PUSH2 0x2F8 JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x335 DUP2 DUP5 DUP5 PUSH2 0x306 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x354 JUMPI PUSH2 0x34C PUSH0 DUP3 PUSH2 0x329 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x33A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x335 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x37E JUMPI POP DUP1 JUMPDEST PUSH2 0x390 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x33A JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3B0 JUMPI PUSH2 0x3B0 PUSH2 0xE7 JUMP JUMPDEST PUSH2 0x3BA DUP3 SLOAD PUSH2 0x2CC JUMP JUMPDEST PUSH2 0x3C5 DUP3 DUP3 DUP6 PUSH2 0x358 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3F7 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x3E0 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x44E JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x426 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x406 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x441 JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xD03 PUSH2 0x46E PUSH0 CODECOPY PUSH0 PUSH2 0x18E ADD MSTORE PUSH2 0xD03 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xFCA3B5AA EQ PUSH2 0x277 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1E2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x223 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x1CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x7546172 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x168 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x112 PUSH2 0x28A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x13B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x15B PUSH2 0x156 CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x86D JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x187 CALLDATASIZE PUSH1 0x4 PUSH2 0x88F JUMP JUMPDEST PUSH2 0x333 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x8E4 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x356 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x377 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16C PUSH2 0x1F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x13B JUMP JUMPDEST PUSH2 0x112 PUSH2 0x397 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x239 CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x3EB JUMP JUMPDEST PUSH2 0x16C PUSH2 0x25F CALLDATASIZE PUSH1 0x4 PUSH2 0x936 JUMP JUMPDEST PUSH2 0x3F8 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x918 JUMP JUMPDEST PUSH2 0x422 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x285 CALLDATASIZE PUSH1 0x4 PUSH2 0x918 JUMP JUMPDEST PUSH2 0x459 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x299 SWAP1 PUSH2 0x97A 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 0x2C5 SWAP1 PUSH2 0x97A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x310 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x310 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2F3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x327 DUP2 DUP6 DUP6 PUSH2 0x483 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x340 DUP6 DUP3 DUP6 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x34B DUP6 DUP6 DUP6 PUSH2 0x57E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x327 DUP2 DUP6 DUP6 PUSH2 0x368 DUP4 DUP4 PUSH2 0x3F8 JUMP JUMPDEST PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x9BA JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST PUSH2 0x381 CALLER DUP3 PUSH2 0x66C JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x38C PUSH2 0x700 JUMP JUMPDEST PUSH2 0x395 PUSH0 PUSH2 0x72A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x299 SWAP1 PUSH2 0x97A JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x3B3 DUP3 DUP7 PUSH2 0x3F8 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xA11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x34B DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x483 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x327 DUP2 DUP6 DUP6 PUSH2 0x57E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x42A PUSH2 0x700 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x450 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xA63 JUMP JUMPDEST PUSH2 0x381 DUP2 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x461 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x529 SWAP1 DUP6 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x541 DUP5 DUP5 PUSH2 0x3F8 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x578 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xB47 JUMP JUMPDEST PUSH2 0x578 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x483 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xB98 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xBE7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xC39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x65F SWAP1 DUP7 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xC7C JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x6A3 SWAP2 SWAP1 PUSH2 0x9BA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6F4 SWAP1 DUP6 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x395 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xCBD JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x78F DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x7A6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x77B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x7C8 DUP2 DUP5 PUSH2 0x786 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x32D JUMP JUMPDEST PUSH2 0x7E8 DUP2 PUSH2 0x7CF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x7DF JUMP JUMPDEST PUSH2 0x805 DUP2 PUSH2 0x7CF JUMP JUMPDEST DUP2 EQ PUSH2 0x381 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x32D DUP2 PUSH2 0x7FC JUMP JUMPDEST DUP1 PUSH2 0x805 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x32D DUP2 PUSH2 0x81A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x83F JUMPI PUSH2 0x83F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x84A DUP6 DUP6 PUSH2 0x80F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x85B DUP6 DUP3 DUP7 ADD PUSH2 0x820 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x865 JUMP JUMPDEST DUP1 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x87B JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8A4 JUMPI PUSH2 0x8A4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8AF DUP7 DUP7 PUSH2 0x80F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8C0 DUP7 DUP3 DUP8 ADD PUSH2 0x80F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8D1 DUP7 DUP3 DUP8 ADD PUSH2 0x820 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x8DB JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x905 JUMPI PUSH2 0x905 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x910 DUP5 DUP5 PUSH2 0x820 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x92B JUMPI PUSH2 0x92B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x910 DUP5 DUP5 PUSH2 0x80F JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x94A JUMPI PUSH2 0x94A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x955 DUP6 DUP6 PUSH2 0x80F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x85B DUP6 DUP3 DUP7 ADD PUSH2 0x80F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x98E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x9A0 JUMPI PUSH2 0x9A0 PUSH2 0x966 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x32D JUMPI PUSH2 0x32D PUSH2 0x9A6 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xA21 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xAC3 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xB11 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xBA8 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xB40 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xB40 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xC8C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 SAR DUP9 0xC1 SWAP10 0xC4 SWAP1 CALL 0xEB 0x2A PUSH14 0x5F155BA03284C12C21EE1BFD533D PC STATICCALL SWAP1 0xF9 0xA7 SWAP3 BALANCE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"306:646:76:-:0;;;424:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;558:5;565:7;2046:5:11;:13;558:5:76;2046::11;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;936:32:10;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;594:21:76::2;::::0;;;::::2;;::::0;625:6:::2;:16:::0;;-1:-1:-1;;;;;;625:16:76::2;-1:-1:-1::0;;;;;625:16:76;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;306:646:76;;-1:-1:-1;306:646:76;655:96:14;734:10;;655:96::o;2426:187:10:-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;688:180:101:-;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2662:118::-;2645:4;2634:16;;2733:22;2726:5;2723:33;2713:61;;2770:1;2767;2760:12;2713:61;2662:118;:::o;2786:139::-;2866:13;;2888:31;2866:13;2888:31;:::i;:::-;2786:139;;;;:::o;3063:96::-;3100:7;-1:-1:-1;;;;;2997:54:101;;3129:24;2931:126;3165:122;3238:24;3256:5;3238:24;:::i;3293:143::-;3375:13;;3397:33;3375:13;3397:33;:::i;3442:1162::-;3557:6;3565;3573;3581;3630:3;3618:9;3609:7;3605:23;3601:33;3598:120;;;3637:79;197:1;194;187:12;3637:79;3757:24;;-1:-1:-1;;;;;3797:30:101;;3794:117;;;3830:79;197:1;194;187:12;3830:79;3935:74;4001:7;3992:6;3981:9;3977:22;3935:74;:::i;:::-;3925:84;;3728:291;4079:2;4068:9;4064:18;4058:25;-1:-1:-1;;;;;4102:6:101;4099:30;4096:117;;;4132:79;197:1;194;187:12;4132:79;4237:74;4303:7;4294:6;4283:9;4279:22;4237:74;:::i;:::-;4227:84;;4029:292;4360:2;4386:62;4440:7;4431:6;4420:9;4416:22;4386:62;:::i;:::-;4376:72;;4331:127;4497:2;4523:64;4579:7;4570:6;4559:9;4555:22;4523:64;:::i;:::-;4513:74;;4468:129;3442:1162;;;;;;;:::o;4715:180::-;-1:-1:-1;;;4760:1:101;4753:88;4860:4;4857:1;4850:15;4884:4;4881:1;4874:15;4901:320;4982:1;4972:12;;5029:1;5019:12;;;5040:81;;5106:4;5098:6;5094:17;5084:27;;5040:81;5168:2;5160:6;5157:14;5137:18;5134:38;5131:84;;5187:18;;:::i;:::-;4952:269;4901:320;;;:::o;6134:142::-;6184:9;6217:53;6235:34;6262:5;6235:34;5985:77;6244:24;6051:5;5985:77;6363:269;6473:39;6504:7;6473:39;:::i;:::-;6562:11;;-1:-1:-1;;5705:1:101;5689:18;;;;5557:16;;;5914:9;5903:21;5557:16;;5943:30;;;;6521:105;;-1:-1:-1;6363:269:101:o;6717:189::-;6683:3;6835:65;6893:6;6885;6879:4;6835:65;:::i;:::-;6770:136;6717:189;;:::o;6912:186::-;6989:3;6982:5;6979:14;6972:120;;;7043:39;7080:1;7073:5;7043:39;:::i;:::-;7016:1;7005:13;6972:120;;;6912:186;;:::o;7104:543::-;7205:2;7200:3;7197:11;7194:446;;;5276:4;5312:14;;;5356:4;5343:18;;5458:2;5453;5442:14;;5438:23;7313:8;7309:44;7506:2;7494:10;7491:18;7488:49;;;-1:-1:-1;7527:8:101;7488:49;7550:80;5458:2;5453;5442:14;;5438:23;7596:8;7592:37;7579:11;7550:80;:::i;:::-;7209:431;;7104:543;;;:::o;8250:1395::-;4690:12;;-1:-1:-1;;;;;8461:6:101;8458:30;8455:56;;;8491:18;;:::i;:::-;8535:38;8567:4;8561:11;8535:38;:::i;:::-;8620:67;8680:6;8672;8666:4;8620:67;:::i;:::-;8738:4;8770:2;8759:14;;8787:1;8782:618;;;;9444:1;9461:6;9458:77;;;-1:-1:-1;9501:19:101;;;9495:26;9458:77;-1:-1:-1;;7886:1:101;7882:13;;7747:16;7849:56;7924:15;;8231:1;8227:11;;8218:21;9555:4;9548:81;9417:222;8752:887;;8782:618;5276:4;5312:14;;;5356:4;5343:18;;-1:-1:-1;;8818:22:101;;;8941:208;8955:7;8952:1;8949:14;8941:208;;;9025:19;;;9019:26;9004:42;;9132:2;9117:18;;;;9085:1;9073:14;;;;8971:12;8941:208;;;9177:6;9168:7;9165:19;9162:179;;;9226:19;;;9220:26;-1:-1:-1;;9320:4:101;9308:17;;7886:1;7882:13;7747:16;7849:56;7924:15;9263:64;;9162:179;9387:1;9383;9375:6;9371:14;9367:22;9361:4;9354:36;8789:611;;;8752:887;;8342:1303;;;8250:1395;;:::o;:::-;306:646:76;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":1155,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_checkOwner_1148":{"entryPoint":1792,"id":1148,"parameterSlots":0,"returnSlots":0},"@_mint_1610":{"entryPoint":1644,"id":1610,"parameterSlots":2,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":1334,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_1205":{"entryPoint":1834,"id":1205,"parameterSlots":1,"returnSlots":0},"@_transfer_1553":{"entryPoint":1406,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":1016,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":794,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@decimals_7753":{"entryPoint":null,"id":7753,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":934,"id":1476,"parameterSlots":2,"returnSlots":1},"@faucet_7730":{"entryPoint":887,"id":7730,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_1435":{"entryPoint":854,"id":1435,"parameterSlots":2,"returnSlots":1},"@minter_7692":{"entryPoint":null,"id":7692,"parameterSlots":0,"returnSlots":0},"@name_1261":{"entryPoint":650,"id":1261,"parameterSlots":0,"returnSlots":1},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_1162":{"entryPoint":900,"id":1162,"parameterSlots":0,"returnSlots":0},"@setMinter_7742":{"entryPoint":1113,"id":7742,"parameterSlots":1,"returnSlots":0},"@symbol_1271":{"entryPoint":919,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":819,"id":1406,"parameterSlots":3,"returnSlots":1},"@transferOwnership_1185":{"entryPoint":1058,"id":1185,"parameterSlots":1,"returnSlots":0},"@transfer_1330":{"entryPoint":1003,"id":1330,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2063,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2080,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2328,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2358,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2191,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2091,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2290,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2015,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2149,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1926,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2984,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":2593,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":2755,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":2833,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":3063,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":3212,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2903,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":2675,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":2509,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":3145,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2171,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":2267,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2030,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2157,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1975,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3047,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2659,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2817,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2887,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3129,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3261,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2968,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2739,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2577,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3196,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2177,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":2276,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2490,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1999,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1915,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2426,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2470,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":2406,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2044,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2074,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:17276:101","nodeType":"YulBlock","src":"0:17276:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1287:81:101","nodeType":"YulBlock","src":"1287:81:101","statements":[{"nativeSrc":"1297:65:101","nodeType":"YulAssignment","src":"1297:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1312:5:101","nodeType":"YulIdentifier","src":"1312:5:101"},{"kind":"number","nativeSrc":"1319:42:101","nodeType":"YulLiteral","src":"1319:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1308:3:101","nodeType":"YulIdentifier","src":"1308:3:101"},"nativeSrc":"1308:54:101","nodeType":"YulFunctionCall","src":"1308:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1297:7:101","nodeType":"YulIdentifier","src":"1297:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1242:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1269:5:101","nodeType":"YulTypedName","src":"1269:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1279:7:101","nodeType":"YulTypedName","src":"1279:7:101","type":""}],"src":"1242:126:101"},{"body":{"nativeSrc":"1419:51:101","nodeType":"YulBlock","src":"1419:51:101","statements":[{"nativeSrc":"1429:35:101","nodeType":"YulAssignment","src":"1429:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1458:5:101","nodeType":"YulIdentifier","src":"1458:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1440:17:101","nodeType":"YulIdentifier","src":"1440:17:101"},"nativeSrc":"1440:24:101","nodeType":"YulFunctionCall","src":"1440:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1429:7:101","nodeType":"YulIdentifier","src":"1429:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1374:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1401:5:101","nodeType":"YulTypedName","src":"1401:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1411:7:101","nodeType":"YulTypedName","src":"1411:7:101","type":""}],"src":"1374:96:101"},{"body":{"nativeSrc":"1541:53:101","nodeType":"YulBlock","src":"1541:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1558:3:101","nodeType":"YulIdentifier","src":"1558:3:101"},{"arguments":[{"name":"value","nativeSrc":"1581:5:101","nodeType":"YulIdentifier","src":"1581:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1563:17:101","nodeType":"YulIdentifier","src":"1563:17:101"},"nativeSrc":"1563:24:101","nodeType":"YulFunctionCall","src":"1563:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1551:6:101","nodeType":"YulIdentifier","src":"1551:6:101"},"nativeSrc":"1551:37:101","nodeType":"YulFunctionCall","src":"1551:37:101"},"nativeSrc":"1551:37:101","nodeType":"YulExpressionStatement","src":"1551:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1476:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""},{"name":"pos","nativeSrc":"1536:3:101","nodeType":"YulTypedName","src":"1536:3:101","type":""}],"src":"1476:118:101"},{"body":{"nativeSrc":"1698:124:101","nodeType":"YulBlock","src":"1698:124:101","statements":[{"nativeSrc":"1708:26:101","nodeType":"YulAssignment","src":"1708:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1720:9:101","nodeType":"YulIdentifier","src":"1720:9:101"},{"kind":"number","nativeSrc":"1731:2:101","nodeType":"YulLiteral","src":"1731:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1716:3:101","nodeType":"YulIdentifier","src":"1716:3:101"},"nativeSrc":"1716:18:101","nodeType":"YulFunctionCall","src":"1716:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1708:4:101","nodeType":"YulIdentifier","src":"1708:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1788:6:101","nodeType":"YulIdentifier","src":"1788:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1801:9:101","nodeType":"YulIdentifier","src":"1801:9:101"},{"kind":"number","nativeSrc":"1812:1:101","nodeType":"YulLiteral","src":"1812:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1797:3:101","nodeType":"YulIdentifier","src":"1797:3:101"},"nativeSrc":"1797:17:101","nodeType":"YulFunctionCall","src":"1797:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1744:43:101","nodeType":"YulIdentifier","src":"1744:43:101"},"nativeSrc":"1744:71:101","nodeType":"YulFunctionCall","src":"1744:71:101"},"nativeSrc":"1744:71:101","nodeType":"YulExpressionStatement","src":"1744:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1600:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1670:9:101","nodeType":"YulTypedName","src":"1670:9:101","type":""},{"name":"value0","nativeSrc":"1682:6:101","nodeType":"YulTypedName","src":"1682:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1693:4:101","nodeType":"YulTypedName","src":"1693:4:101","type":""}],"src":"1600:222:101"},{"body":{"nativeSrc":"1868:35:101","nodeType":"YulBlock","src":"1868:35:101","statements":[{"nativeSrc":"1878:19:101","nodeType":"YulAssignment","src":"1878:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1894:2:101","nodeType":"YulLiteral","src":"1894:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1888:5:101","nodeType":"YulIdentifier","src":"1888:5:101"},"nativeSrc":"1888:9:101","nodeType":"YulFunctionCall","src":"1888:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1878:6:101","nodeType":"YulIdentifier","src":"1878:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1828:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1861:6:101","nodeType":"YulTypedName","src":"1861:6:101","type":""}],"src":"1828:75:101"},{"body":{"nativeSrc":"1998:28:101","nodeType":"YulBlock","src":"1998:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2015:1:101","nodeType":"YulLiteral","src":"2015:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2018:1:101","nodeType":"YulLiteral","src":"2018:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2008:6:101","nodeType":"YulIdentifier","src":"2008:6:101"},"nativeSrc":"2008:12:101","nodeType":"YulFunctionCall","src":"2008:12:101"},"nativeSrc":"2008:12:101","nodeType":"YulExpressionStatement","src":"2008:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1909:117:101","nodeType":"YulFunctionDefinition","src":"1909:117:101"},{"body":{"nativeSrc":"2121:28:101","nodeType":"YulBlock","src":"2121:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2138:1:101","nodeType":"YulLiteral","src":"2138:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2141:1:101","nodeType":"YulLiteral","src":"2141:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2131:6:101","nodeType":"YulIdentifier","src":"2131:6:101"},"nativeSrc":"2131:12:101","nodeType":"YulFunctionCall","src":"2131:12:101"},"nativeSrc":"2131:12:101","nodeType":"YulExpressionStatement","src":"2131:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2032:117:101","nodeType":"YulFunctionDefinition","src":"2032:117:101"},{"body":{"nativeSrc":"2198:79:101","nodeType":"YulBlock","src":"2198:79:101","statements":[{"body":{"nativeSrc":"2255:16:101","nodeType":"YulBlock","src":"2255:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2264:1:101","nodeType":"YulLiteral","src":"2264:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2267:1:101","nodeType":"YulLiteral","src":"2267:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2257:6:101","nodeType":"YulIdentifier","src":"2257:6:101"},"nativeSrc":"2257:12:101","nodeType":"YulFunctionCall","src":"2257:12:101"},"nativeSrc":"2257:12:101","nodeType":"YulExpressionStatement","src":"2257:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2221:5:101","nodeType":"YulIdentifier","src":"2221:5:101"},{"arguments":[{"name":"value","nativeSrc":"2246:5:101","nodeType":"YulIdentifier","src":"2246:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2228:17:101","nodeType":"YulIdentifier","src":"2228:17:101"},"nativeSrc":"2228:24:101","nodeType":"YulFunctionCall","src":"2228:24:101"}],"functionName":{"name":"eq","nativeSrc":"2218:2:101","nodeType":"YulIdentifier","src":"2218:2:101"},"nativeSrc":"2218:35:101","nodeType":"YulFunctionCall","src":"2218:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2211:6:101","nodeType":"YulIdentifier","src":"2211:6:101"},"nativeSrc":"2211:43:101","nodeType":"YulFunctionCall","src":"2211:43:101"},"nativeSrc":"2208:63:101","nodeType":"YulIf","src":"2208:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2155:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2191:5:101","nodeType":"YulTypedName","src":"2191:5:101","type":""}],"src":"2155:122:101"},{"body":{"nativeSrc":"2335:87:101","nodeType":"YulBlock","src":"2335:87:101","statements":[{"nativeSrc":"2345:29:101","nodeType":"YulAssignment","src":"2345:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2367:6:101","nodeType":"YulIdentifier","src":"2367:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2354:12:101","nodeType":"YulIdentifier","src":"2354:12:101"},"nativeSrc":"2354:20:101","nodeType":"YulFunctionCall","src":"2354:20:101"},"variableNames":[{"name":"value","nativeSrc":"2345:5:101","nodeType":"YulIdentifier","src":"2345:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2410:5:101","nodeType":"YulIdentifier","src":"2410:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2383:26:101","nodeType":"YulIdentifier","src":"2383:26:101"},"nativeSrc":"2383:33:101","nodeType":"YulFunctionCall","src":"2383:33:101"},"nativeSrc":"2383:33:101","nodeType":"YulExpressionStatement","src":"2383:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2283:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2313:6:101","nodeType":"YulTypedName","src":"2313:6:101","type":""},{"name":"end","nativeSrc":"2321:3:101","nodeType":"YulTypedName","src":"2321:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2329:5:101","nodeType":"YulTypedName","src":"2329:5:101","type":""}],"src":"2283:139:101"},{"body":{"nativeSrc":"2473:32:101","nodeType":"YulBlock","src":"2473:32:101","statements":[{"nativeSrc":"2483:16:101","nodeType":"YulAssignment","src":"2483:16:101","value":{"name":"value","nativeSrc":"2494:5:101","nodeType":"YulIdentifier","src":"2494:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2483:7:101","nodeType":"YulIdentifier","src":"2483:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2428:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulTypedName","src":"2455:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2465:7:101","nodeType":"YulTypedName","src":"2465:7:101","type":""}],"src":"2428:77:101"},{"body":{"nativeSrc":"2554:79:101","nodeType":"YulBlock","src":"2554:79:101","statements":[{"body":{"nativeSrc":"2611:16:101","nodeType":"YulBlock","src":"2611:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2620:1:101","nodeType":"YulLiteral","src":"2620:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2623:1:101","nodeType":"YulLiteral","src":"2623:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2613:6:101","nodeType":"YulIdentifier","src":"2613:6:101"},"nativeSrc":"2613:12:101","nodeType":"YulFunctionCall","src":"2613:12:101"},"nativeSrc":"2613:12:101","nodeType":"YulExpressionStatement","src":"2613:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2577:5:101","nodeType":"YulIdentifier","src":"2577:5:101"},{"arguments":[{"name":"value","nativeSrc":"2602:5:101","nodeType":"YulIdentifier","src":"2602:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2584:17:101","nodeType":"YulIdentifier","src":"2584:17:101"},"nativeSrc":"2584:24:101","nodeType":"YulFunctionCall","src":"2584:24:101"}],"functionName":{"name":"eq","nativeSrc":"2574:2:101","nodeType":"YulIdentifier","src":"2574:2:101"},"nativeSrc":"2574:35:101","nodeType":"YulFunctionCall","src":"2574:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2567:6:101","nodeType":"YulIdentifier","src":"2567:6:101"},"nativeSrc":"2567:43:101","nodeType":"YulFunctionCall","src":"2567:43:101"},"nativeSrc":"2564:63:101","nodeType":"YulIf","src":"2564:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2511:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2547:5:101","nodeType":"YulTypedName","src":"2547:5:101","type":""}],"src":"2511:122:101"},{"body":{"nativeSrc":"2691:87:101","nodeType":"YulBlock","src":"2691:87:101","statements":[{"nativeSrc":"2701:29:101","nodeType":"YulAssignment","src":"2701:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2723:6:101","nodeType":"YulIdentifier","src":"2723:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2710:12:101","nodeType":"YulIdentifier","src":"2710:12:101"},"nativeSrc":"2710:20:101","nodeType":"YulFunctionCall","src":"2710:20:101"},"variableNames":[{"name":"value","nativeSrc":"2701:5:101","nodeType":"YulIdentifier","src":"2701:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2766:5:101","nodeType":"YulIdentifier","src":"2766:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2739:26:101","nodeType":"YulIdentifier","src":"2739:26:101"},"nativeSrc":"2739:33:101","nodeType":"YulFunctionCall","src":"2739:33:101"},"nativeSrc":"2739:33:101","nodeType":"YulExpressionStatement","src":"2739:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2639:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2669:6:101","nodeType":"YulTypedName","src":"2669:6:101","type":""},{"name":"end","nativeSrc":"2677:3:101","nodeType":"YulTypedName","src":"2677:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2685:5:101","nodeType":"YulTypedName","src":"2685:5:101","type":""}],"src":"2639:139:101"},{"body":{"nativeSrc":"2867:391:101","nodeType":"YulBlock","src":"2867:391:101","statements":[{"body":{"nativeSrc":"2913:83:101","nodeType":"YulBlock","src":"2913:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2915:77:101","nodeType":"YulIdentifier","src":"2915:77:101"},"nativeSrc":"2915:79:101","nodeType":"YulFunctionCall","src":"2915:79:101"},"nativeSrc":"2915:79:101","nodeType":"YulExpressionStatement","src":"2915:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2888:7:101","nodeType":"YulIdentifier","src":"2888:7:101"},{"name":"headStart","nativeSrc":"2897:9:101","nodeType":"YulIdentifier","src":"2897:9:101"}],"functionName":{"name":"sub","nativeSrc":"2884:3:101","nodeType":"YulIdentifier","src":"2884:3:101"},"nativeSrc":"2884:23:101","nodeType":"YulFunctionCall","src":"2884:23:101"},{"kind":"number","nativeSrc":"2909:2:101","nodeType":"YulLiteral","src":"2909:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2880:3:101","nodeType":"YulIdentifier","src":"2880:3:101"},"nativeSrc":"2880:32:101","nodeType":"YulFunctionCall","src":"2880:32:101"},"nativeSrc":"2877:119:101","nodeType":"YulIf","src":"2877:119:101"},{"nativeSrc":"3006:117:101","nodeType":"YulBlock","src":"3006:117:101","statements":[{"nativeSrc":"3021:15:101","nodeType":"YulVariableDeclaration","src":"3021:15:101","value":{"kind":"number","nativeSrc":"3035:1:101","nodeType":"YulLiteral","src":"3035:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3025:6:101","nodeType":"YulTypedName","src":"3025:6:101","type":""}]},{"nativeSrc":"3050:63:101","nodeType":"YulAssignment","src":"3050:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3085:9:101","nodeType":"YulIdentifier","src":"3085:9:101"},{"name":"offset","nativeSrc":"3096:6:101","nodeType":"YulIdentifier","src":"3096:6:101"}],"functionName":{"name":"add","nativeSrc":"3081:3:101","nodeType":"YulIdentifier","src":"3081:3:101"},"nativeSrc":"3081:22:101","nodeType":"YulFunctionCall","src":"3081:22:101"},{"name":"dataEnd","nativeSrc":"3105:7:101","nodeType":"YulIdentifier","src":"3105:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3060:20:101","nodeType":"YulIdentifier","src":"3060:20:101"},"nativeSrc":"3060:53:101","nodeType":"YulFunctionCall","src":"3060:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3050:6:101","nodeType":"YulIdentifier","src":"3050:6:101"}]}]},{"nativeSrc":"3133:118:101","nodeType":"YulBlock","src":"3133:118:101","statements":[{"nativeSrc":"3148:16:101","nodeType":"YulVariableDeclaration","src":"3148:16:101","value":{"kind":"number","nativeSrc":"3162:2:101","nodeType":"YulLiteral","src":"3162:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3152:6:101","nodeType":"YulTypedName","src":"3152:6:101","type":""}]},{"nativeSrc":"3178:63:101","nodeType":"YulAssignment","src":"3178:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3213:9:101","nodeType":"YulIdentifier","src":"3213:9:101"},{"name":"offset","nativeSrc":"3224:6:101","nodeType":"YulIdentifier","src":"3224:6:101"}],"functionName":{"name":"add","nativeSrc":"3209:3:101","nodeType":"YulIdentifier","src":"3209:3:101"},"nativeSrc":"3209:22:101","nodeType":"YulFunctionCall","src":"3209:22:101"},{"name":"dataEnd","nativeSrc":"3233:7:101","nodeType":"YulIdentifier","src":"3233:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3188:20:101","nodeType":"YulIdentifier","src":"3188:20:101"},"nativeSrc":"3188:53:101","nodeType":"YulFunctionCall","src":"3188:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2784:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2829:9:101","nodeType":"YulTypedName","src":"2829:9:101","type":""},{"name":"dataEnd","nativeSrc":"2840:7:101","nodeType":"YulTypedName","src":"2840:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2852:6:101","nodeType":"YulTypedName","src":"2852:6:101","type":""},{"name":"value1","nativeSrc":"2860:6:101","nodeType":"YulTypedName","src":"2860:6:101","type":""}],"src":"2784:474:101"},{"body":{"nativeSrc":"3306:48:101","nodeType":"YulBlock","src":"3306:48:101","statements":[{"nativeSrc":"3316:32:101","nodeType":"YulAssignment","src":"3316:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3341:5:101","nodeType":"YulIdentifier","src":"3341:5:101"}],"functionName":{"name":"iszero","nativeSrc":"3334:6:101","nodeType":"YulIdentifier","src":"3334:6:101"},"nativeSrc":"3334:13:101","nodeType":"YulFunctionCall","src":"3334:13:101"}],"functionName":{"name":"iszero","nativeSrc":"3327:6:101","nodeType":"YulIdentifier","src":"3327:6:101"},"nativeSrc":"3327:21:101","nodeType":"YulFunctionCall","src":"3327:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3316:7:101","nodeType":"YulIdentifier","src":"3316:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"3264:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3288:5:101","nodeType":"YulTypedName","src":"3288:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3298:7:101","nodeType":"YulTypedName","src":"3298:7:101","type":""}],"src":"3264:90:101"},{"body":{"nativeSrc":"3419:50:101","nodeType":"YulBlock","src":"3419:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3436:3:101","nodeType":"YulIdentifier","src":"3436:3:101"},{"arguments":[{"name":"value","nativeSrc":"3456:5:101","nodeType":"YulIdentifier","src":"3456:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3441:14:101","nodeType":"YulIdentifier","src":"3441:14:101"},"nativeSrc":"3441:21:101","nodeType":"YulFunctionCall","src":"3441:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3429:6:101","nodeType":"YulIdentifier","src":"3429:6:101"},"nativeSrc":"3429:34:101","nodeType":"YulFunctionCall","src":"3429:34:101"},"nativeSrc":"3429:34:101","nodeType":"YulExpressionStatement","src":"3429:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3360:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3407:5:101","nodeType":"YulTypedName","src":"3407:5:101","type":""},{"name":"pos","nativeSrc":"3414:3:101","nodeType":"YulTypedName","src":"3414:3:101","type":""}],"src":"3360:109:101"},{"body":{"nativeSrc":"3567:118:101","nodeType":"YulBlock","src":"3567:118:101","statements":[{"nativeSrc":"3577:26:101","nodeType":"YulAssignment","src":"3577:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3589:9:101","nodeType":"YulIdentifier","src":"3589:9:101"},{"kind":"number","nativeSrc":"3600:2:101","nodeType":"YulLiteral","src":"3600:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3585:3:101","nodeType":"YulIdentifier","src":"3585:3:101"},"nativeSrc":"3585:18:101","nodeType":"YulFunctionCall","src":"3585:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3577:4:101","nodeType":"YulIdentifier","src":"3577:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:101","nodeType":"YulIdentifier","src":"3651:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:101","nodeType":"YulIdentifier","src":"3664:9:101"},{"kind":"number","nativeSrc":"3675:1:101","nodeType":"YulLiteral","src":"3675:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:101","nodeType":"YulIdentifier","src":"3660:3:101"},"nativeSrc":"3660:17:101","nodeType":"YulFunctionCall","src":"3660:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3613:37:101","nodeType":"YulIdentifier","src":"3613:37:101"},"nativeSrc":"3613:65:101","nodeType":"YulFunctionCall","src":"3613:65:101"},"nativeSrc":"3613:65:101","nodeType":"YulExpressionStatement","src":"3613:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3475:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3539:9:101","nodeType":"YulTypedName","src":"3539:9:101","type":""},{"name":"value0","nativeSrc":"3551:6:101","nodeType":"YulTypedName","src":"3551:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3562:4:101","nodeType":"YulTypedName","src":"3562:4:101","type":""}],"src":"3475:210:101"},{"body":{"nativeSrc":"3756:53:101","nodeType":"YulBlock","src":"3756:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3773:3:101","nodeType":"YulIdentifier","src":"3773:3:101"},{"arguments":[{"name":"value","nativeSrc":"3796:5:101","nodeType":"YulIdentifier","src":"3796:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3778:17:101","nodeType":"YulIdentifier","src":"3778:17:101"},"nativeSrc":"3778:24:101","nodeType":"YulFunctionCall","src":"3778:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3766:6:101","nodeType":"YulIdentifier","src":"3766:6:101"},"nativeSrc":"3766:37:101","nodeType":"YulFunctionCall","src":"3766:37:101"},"nativeSrc":"3766:37:101","nodeType":"YulExpressionStatement","src":"3766:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3691:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3744:5:101","nodeType":"YulTypedName","src":"3744:5:101","type":""},{"name":"pos","nativeSrc":"3751:3:101","nodeType":"YulTypedName","src":"3751:3:101","type":""}],"src":"3691:118:101"},{"body":{"nativeSrc":"3913:124:101","nodeType":"YulBlock","src":"3913:124:101","statements":[{"nativeSrc":"3923:26:101","nodeType":"YulAssignment","src":"3923:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3935:9:101","nodeType":"YulIdentifier","src":"3935:9:101"},{"kind":"number","nativeSrc":"3946:2:101","nodeType":"YulLiteral","src":"3946:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3931:3:101","nodeType":"YulIdentifier","src":"3931:3:101"},"nativeSrc":"3931:18:101","nodeType":"YulFunctionCall","src":"3931:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3923:4:101","nodeType":"YulIdentifier","src":"3923:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4003:6:101","nodeType":"YulIdentifier","src":"4003:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4016:9:101","nodeType":"YulIdentifier","src":"4016:9:101"},{"kind":"number","nativeSrc":"4027:1:101","nodeType":"YulLiteral","src":"4027:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4012:3:101","nodeType":"YulIdentifier","src":"4012:3:101"},"nativeSrc":"4012:17:101","nodeType":"YulFunctionCall","src":"4012:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3959:43:101","nodeType":"YulIdentifier","src":"3959:43:101"},"nativeSrc":"3959:71:101","nodeType":"YulFunctionCall","src":"3959:71:101"},"nativeSrc":"3959:71:101","nodeType":"YulExpressionStatement","src":"3959:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3815:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3885:9:101","nodeType":"YulTypedName","src":"3885:9:101","type":""},{"name":"value0","nativeSrc":"3897:6:101","nodeType":"YulTypedName","src":"3897:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3908:4:101","nodeType":"YulTypedName","src":"3908:4:101","type":""}],"src":"3815:222:101"},{"body":{"nativeSrc":"4143:519:101","nodeType":"YulBlock","src":"4143:519:101","statements":[{"body":{"nativeSrc":"4189:83:101","nodeType":"YulBlock","src":"4189:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4191:77:101","nodeType":"YulIdentifier","src":"4191:77:101"},"nativeSrc":"4191:79:101","nodeType":"YulFunctionCall","src":"4191:79:101"},"nativeSrc":"4191:79:101","nodeType":"YulExpressionStatement","src":"4191:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4164:7:101","nodeType":"YulIdentifier","src":"4164:7:101"},{"name":"headStart","nativeSrc":"4173:9:101","nodeType":"YulIdentifier","src":"4173:9:101"}],"functionName":{"name":"sub","nativeSrc":"4160:3:101","nodeType":"YulIdentifier","src":"4160:3:101"},"nativeSrc":"4160:23:101","nodeType":"YulFunctionCall","src":"4160:23:101"},{"kind":"number","nativeSrc":"4185:2:101","nodeType":"YulLiteral","src":"4185:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4156:3:101","nodeType":"YulIdentifier","src":"4156:3:101"},"nativeSrc":"4156:32:101","nodeType":"YulFunctionCall","src":"4156:32:101"},"nativeSrc":"4153:119:101","nodeType":"YulIf","src":"4153:119:101"},{"nativeSrc":"4282:117:101","nodeType":"YulBlock","src":"4282:117:101","statements":[{"nativeSrc":"4297:15:101","nodeType":"YulVariableDeclaration","src":"4297:15:101","value":{"kind":"number","nativeSrc":"4311:1:101","nodeType":"YulLiteral","src":"4311:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4301:6:101","nodeType":"YulTypedName","src":"4301:6:101","type":""}]},{"nativeSrc":"4326:63:101","nodeType":"YulAssignment","src":"4326:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4361:9:101","nodeType":"YulIdentifier","src":"4361:9:101"},{"name":"offset","nativeSrc":"4372:6:101","nodeType":"YulIdentifier","src":"4372:6:101"}],"functionName":{"name":"add","nativeSrc":"4357:3:101","nodeType":"YulIdentifier","src":"4357:3:101"},"nativeSrc":"4357:22:101","nodeType":"YulFunctionCall","src":"4357:22:101"},{"name":"dataEnd","nativeSrc":"4381:7:101","nodeType":"YulIdentifier","src":"4381:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4336:20:101","nodeType":"YulIdentifier","src":"4336:20:101"},"nativeSrc":"4336:53:101","nodeType":"YulFunctionCall","src":"4336:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4326:6:101","nodeType":"YulIdentifier","src":"4326:6:101"}]}]},{"nativeSrc":"4409:118:101","nodeType":"YulBlock","src":"4409:118:101","statements":[{"nativeSrc":"4424:16:101","nodeType":"YulVariableDeclaration","src":"4424:16:101","value":{"kind":"number","nativeSrc":"4438:2:101","nodeType":"YulLiteral","src":"4438:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4428:6:101","nodeType":"YulTypedName","src":"4428:6:101","type":""}]},{"nativeSrc":"4454:63:101","nodeType":"YulAssignment","src":"4454:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4489:9:101","nodeType":"YulIdentifier","src":"4489:9:101"},{"name":"offset","nativeSrc":"4500:6:101","nodeType":"YulIdentifier","src":"4500:6:101"}],"functionName":{"name":"add","nativeSrc":"4485:3:101","nodeType":"YulIdentifier","src":"4485:3:101"},"nativeSrc":"4485:22:101","nodeType":"YulFunctionCall","src":"4485:22:101"},{"name":"dataEnd","nativeSrc":"4509:7:101","nodeType":"YulIdentifier","src":"4509:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4464:20:101","nodeType":"YulIdentifier","src":"4464:20:101"},"nativeSrc":"4464:53:101","nodeType":"YulFunctionCall","src":"4464:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4454:6:101","nodeType":"YulIdentifier","src":"4454:6:101"}]}]},{"nativeSrc":"4537:118:101","nodeType":"YulBlock","src":"4537:118:101","statements":[{"nativeSrc":"4552:16:101","nodeType":"YulVariableDeclaration","src":"4552:16:101","value":{"kind":"number","nativeSrc":"4566:2:101","nodeType":"YulLiteral","src":"4566:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4556:6:101","nodeType":"YulTypedName","src":"4556:6:101","type":""}]},{"nativeSrc":"4582:63:101","nodeType":"YulAssignment","src":"4582:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4617:9:101","nodeType":"YulIdentifier","src":"4617:9:101"},{"name":"offset","nativeSrc":"4628:6:101","nodeType":"YulIdentifier","src":"4628:6:101"}],"functionName":{"name":"add","nativeSrc":"4613:3:101","nodeType":"YulIdentifier","src":"4613:3:101"},"nativeSrc":"4613:22:101","nodeType":"YulFunctionCall","src":"4613:22:101"},{"name":"dataEnd","nativeSrc":"4637:7:101","nodeType":"YulIdentifier","src":"4637:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4592:20:101","nodeType":"YulIdentifier","src":"4592:20:101"},"nativeSrc":"4592:53:101","nodeType":"YulFunctionCall","src":"4592:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4582:6:101","nodeType":"YulIdentifier","src":"4582:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"4043:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4097:9:101","nodeType":"YulTypedName","src":"4097:9:101","type":""},{"name":"dataEnd","nativeSrc":"4108:7:101","nodeType":"YulTypedName","src":"4108:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4120:6:101","nodeType":"YulTypedName","src":"4120:6:101","type":""},{"name":"value1","nativeSrc":"4128:6:101","nodeType":"YulTypedName","src":"4128:6:101","type":""},{"name":"value2","nativeSrc":"4136:6:101","nodeType":"YulTypedName","src":"4136:6:101","type":""}],"src":"4043:619:101"},{"body":{"nativeSrc":"4711:43:101","nodeType":"YulBlock","src":"4711:43:101","statements":[{"nativeSrc":"4721:27:101","nodeType":"YulAssignment","src":"4721:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4736:5:101","nodeType":"YulIdentifier","src":"4736:5:101"},{"kind":"number","nativeSrc":"4743:4:101","nodeType":"YulLiteral","src":"4743:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4732:3:101","nodeType":"YulIdentifier","src":"4732:3:101"},"nativeSrc":"4732:16:101","nodeType":"YulFunctionCall","src":"4732:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4721:7:101","nodeType":"YulIdentifier","src":"4721:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4668:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4693:5:101","nodeType":"YulTypedName","src":"4693:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4703:7:101","nodeType":"YulTypedName","src":"4703:7:101","type":""}],"src":"4668:86:101"},{"body":{"nativeSrc":"4821:51:101","nodeType":"YulBlock","src":"4821:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4838:3:101","nodeType":"YulIdentifier","src":"4838:3:101"},{"arguments":[{"name":"value","nativeSrc":"4859:5:101","nodeType":"YulIdentifier","src":"4859:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4843:15:101","nodeType":"YulIdentifier","src":"4843:15:101"},"nativeSrc":"4843:22:101","nodeType":"YulFunctionCall","src":"4843:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4831:6:101","nodeType":"YulIdentifier","src":"4831:6:101"},"nativeSrc":"4831:35:101","nodeType":"YulFunctionCall","src":"4831:35:101"},"nativeSrc":"4831:35:101","nodeType":"YulExpressionStatement","src":"4831:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4760:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4809:5:101","nodeType":"YulTypedName","src":"4809:5:101","type":""},{"name":"pos","nativeSrc":"4816:3:101","nodeType":"YulTypedName","src":"4816:3:101","type":""}],"src":"4760:112:101"},{"body":{"nativeSrc":"4972:120:101","nodeType":"YulBlock","src":"4972:120:101","statements":[{"nativeSrc":"4982:26:101","nodeType":"YulAssignment","src":"4982:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4994:9:101","nodeType":"YulIdentifier","src":"4994:9:101"},{"kind":"number","nativeSrc":"5005:2:101","nodeType":"YulLiteral","src":"5005:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4990:3:101","nodeType":"YulIdentifier","src":"4990:3:101"},"nativeSrc":"4990:18:101","nodeType":"YulFunctionCall","src":"4990:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4982:4:101","nodeType":"YulIdentifier","src":"4982:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5058:6:101","nodeType":"YulIdentifier","src":"5058:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5071:9:101","nodeType":"YulIdentifier","src":"5071:9:101"},{"kind":"number","nativeSrc":"5082:1:101","nodeType":"YulLiteral","src":"5082:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5067:3:101","nodeType":"YulIdentifier","src":"5067:3:101"},"nativeSrc":"5067:17:101","nodeType":"YulFunctionCall","src":"5067:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"5018:39:101","nodeType":"YulIdentifier","src":"5018:39:101"},"nativeSrc":"5018:67:101","nodeType":"YulFunctionCall","src":"5018:67:101"},"nativeSrc":"5018:67:101","nodeType":"YulExpressionStatement","src":"5018:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4878:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4944:9:101","nodeType":"YulTypedName","src":"4944:9:101","type":""},{"name":"value0","nativeSrc":"4956:6:101","nodeType":"YulTypedName","src":"4956:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4967:4:101","nodeType":"YulTypedName","src":"4967:4:101","type":""}],"src":"4878:214:101"},{"body":{"nativeSrc":"5164:263:101","nodeType":"YulBlock","src":"5164:263:101","statements":[{"body":{"nativeSrc":"5210:83:101","nodeType":"YulBlock","src":"5210:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5212:77:101","nodeType":"YulIdentifier","src":"5212:77:101"},"nativeSrc":"5212:79:101","nodeType":"YulFunctionCall","src":"5212:79:101"},"nativeSrc":"5212:79:101","nodeType":"YulExpressionStatement","src":"5212:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5185:7:101","nodeType":"YulIdentifier","src":"5185:7:101"},{"name":"headStart","nativeSrc":"5194:9:101","nodeType":"YulIdentifier","src":"5194:9:101"}],"functionName":{"name":"sub","nativeSrc":"5181:3:101","nodeType":"YulIdentifier","src":"5181:3:101"},"nativeSrc":"5181:23:101","nodeType":"YulFunctionCall","src":"5181:23:101"},{"kind":"number","nativeSrc":"5206:2:101","nodeType":"YulLiteral","src":"5206:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5177:3:101","nodeType":"YulIdentifier","src":"5177:3:101"},"nativeSrc":"5177:32:101","nodeType":"YulFunctionCall","src":"5177:32:101"},"nativeSrc":"5174:119:101","nodeType":"YulIf","src":"5174:119:101"},{"nativeSrc":"5303:117:101","nodeType":"YulBlock","src":"5303:117:101","statements":[{"nativeSrc":"5318:15:101","nodeType":"YulVariableDeclaration","src":"5318:15:101","value":{"kind":"number","nativeSrc":"5332:1:101","nodeType":"YulLiteral","src":"5332:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5322:6:101","nodeType":"YulTypedName","src":"5322:6:101","type":""}]},{"nativeSrc":"5347:63:101","nodeType":"YulAssignment","src":"5347:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5382:9:101","nodeType":"YulIdentifier","src":"5382:9:101"},{"name":"offset","nativeSrc":"5393:6:101","nodeType":"YulIdentifier","src":"5393:6:101"}],"functionName":{"name":"add","nativeSrc":"5378:3:101","nodeType":"YulIdentifier","src":"5378:3:101"},"nativeSrc":"5378:22:101","nodeType":"YulFunctionCall","src":"5378:22:101"},{"name":"dataEnd","nativeSrc":"5402:7:101","nodeType":"YulIdentifier","src":"5402:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5357:20:101","nodeType":"YulIdentifier","src":"5357:20:101"},"nativeSrc":"5357:53:101","nodeType":"YulFunctionCall","src":"5357:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5347:6:101","nodeType":"YulIdentifier","src":"5347:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"5098:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5134:9:101","nodeType":"YulTypedName","src":"5134:9:101","type":""},{"name":"dataEnd","nativeSrc":"5145:7:101","nodeType":"YulTypedName","src":"5145:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5157:6:101","nodeType":"YulTypedName","src":"5157:6:101","type":""}],"src":"5098:329:101"},{"body":{"nativeSrc":"5499:263:101","nodeType":"YulBlock","src":"5499:263:101","statements":[{"body":{"nativeSrc":"5545:83:101","nodeType":"YulBlock","src":"5545:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5547:77:101","nodeType":"YulIdentifier","src":"5547:77:101"},"nativeSrc":"5547:79:101","nodeType":"YulFunctionCall","src":"5547:79:101"},"nativeSrc":"5547:79:101","nodeType":"YulExpressionStatement","src":"5547:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5520:7:101","nodeType":"YulIdentifier","src":"5520:7:101"},{"name":"headStart","nativeSrc":"5529:9:101","nodeType":"YulIdentifier","src":"5529:9:101"}],"functionName":{"name":"sub","nativeSrc":"5516:3:101","nodeType":"YulIdentifier","src":"5516:3:101"},"nativeSrc":"5516:23:101","nodeType":"YulFunctionCall","src":"5516:23:101"},{"kind":"number","nativeSrc":"5541:2:101","nodeType":"YulLiteral","src":"5541:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5512:3:101","nodeType":"YulIdentifier","src":"5512:3:101"},"nativeSrc":"5512:32:101","nodeType":"YulFunctionCall","src":"5512:32:101"},"nativeSrc":"5509:119:101","nodeType":"YulIf","src":"5509:119:101"},{"nativeSrc":"5638:117:101","nodeType":"YulBlock","src":"5638:117:101","statements":[{"nativeSrc":"5653:15:101","nodeType":"YulVariableDeclaration","src":"5653:15:101","value":{"kind":"number","nativeSrc":"5667:1:101","nodeType":"YulLiteral","src":"5667:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5657:6:101","nodeType":"YulTypedName","src":"5657:6:101","type":""}]},{"nativeSrc":"5682:63:101","nodeType":"YulAssignment","src":"5682:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5717:9:101","nodeType":"YulIdentifier","src":"5717:9:101"},{"name":"offset","nativeSrc":"5728:6:101","nodeType":"YulIdentifier","src":"5728:6:101"}],"functionName":{"name":"add","nativeSrc":"5713:3:101","nodeType":"YulIdentifier","src":"5713:3:101"},"nativeSrc":"5713:22:101","nodeType":"YulFunctionCall","src":"5713:22:101"},{"name":"dataEnd","nativeSrc":"5737:7:101","nodeType":"YulIdentifier","src":"5737:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5692:20:101","nodeType":"YulIdentifier","src":"5692:20:101"},"nativeSrc":"5692:53:101","nodeType":"YulFunctionCall","src":"5692:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5682:6:101","nodeType":"YulIdentifier","src":"5682:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5433:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5469:9:101","nodeType":"YulTypedName","src":"5469:9:101","type":""},{"name":"dataEnd","nativeSrc":"5480:7:101","nodeType":"YulTypedName","src":"5480:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5492:6:101","nodeType":"YulTypedName","src":"5492:6:101","type":""}],"src":"5433:329:101"},{"body":{"nativeSrc":"5851:391:101","nodeType":"YulBlock","src":"5851:391:101","statements":[{"body":{"nativeSrc":"5897:83:101","nodeType":"YulBlock","src":"5897:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5899:77:101","nodeType":"YulIdentifier","src":"5899:77:101"},"nativeSrc":"5899:79:101","nodeType":"YulFunctionCall","src":"5899:79:101"},"nativeSrc":"5899:79:101","nodeType":"YulExpressionStatement","src":"5899:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5872:7:101","nodeType":"YulIdentifier","src":"5872:7:101"},{"name":"headStart","nativeSrc":"5881:9:101","nodeType":"YulIdentifier","src":"5881:9:101"}],"functionName":{"name":"sub","nativeSrc":"5868:3:101","nodeType":"YulIdentifier","src":"5868:3:101"},"nativeSrc":"5868:23:101","nodeType":"YulFunctionCall","src":"5868:23:101"},{"kind":"number","nativeSrc":"5893:2:101","nodeType":"YulLiteral","src":"5893:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5864:3:101","nodeType":"YulIdentifier","src":"5864:3:101"},"nativeSrc":"5864:32:101","nodeType":"YulFunctionCall","src":"5864:32:101"},"nativeSrc":"5861:119:101","nodeType":"YulIf","src":"5861:119:101"},{"nativeSrc":"5990:117:101","nodeType":"YulBlock","src":"5990:117:101","statements":[{"nativeSrc":"6005:15:101","nodeType":"YulVariableDeclaration","src":"6005:15:101","value":{"kind":"number","nativeSrc":"6019:1:101","nodeType":"YulLiteral","src":"6019:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6009:6:101","nodeType":"YulTypedName","src":"6009:6:101","type":""}]},{"nativeSrc":"6034:63:101","nodeType":"YulAssignment","src":"6034:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6069:9:101","nodeType":"YulIdentifier","src":"6069:9:101"},{"name":"offset","nativeSrc":"6080:6:101","nodeType":"YulIdentifier","src":"6080:6:101"}],"functionName":{"name":"add","nativeSrc":"6065:3:101","nodeType":"YulIdentifier","src":"6065:3:101"},"nativeSrc":"6065:22:101","nodeType":"YulFunctionCall","src":"6065:22:101"},{"name":"dataEnd","nativeSrc":"6089:7:101","nodeType":"YulIdentifier","src":"6089:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6044:20:101","nodeType":"YulIdentifier","src":"6044:20:101"},"nativeSrc":"6044:53:101","nodeType":"YulFunctionCall","src":"6044:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6034:6:101","nodeType":"YulIdentifier","src":"6034:6:101"}]}]},{"nativeSrc":"6117:118:101","nodeType":"YulBlock","src":"6117:118:101","statements":[{"nativeSrc":"6132:16:101","nodeType":"YulVariableDeclaration","src":"6132:16:101","value":{"kind":"number","nativeSrc":"6146:2:101","nodeType":"YulLiteral","src":"6146:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6136:6:101","nodeType":"YulTypedName","src":"6136:6:101","type":""}]},{"nativeSrc":"6162:63:101","nodeType":"YulAssignment","src":"6162:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6197:9:101","nodeType":"YulIdentifier","src":"6197:9:101"},{"name":"offset","nativeSrc":"6208:6:101","nodeType":"YulIdentifier","src":"6208:6:101"}],"functionName":{"name":"add","nativeSrc":"6193:3:101","nodeType":"YulIdentifier","src":"6193:3:101"},"nativeSrc":"6193:22:101","nodeType":"YulFunctionCall","src":"6193:22:101"},{"name":"dataEnd","nativeSrc":"6217:7:101","nodeType":"YulIdentifier","src":"6217:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6172:20:101","nodeType":"YulIdentifier","src":"6172:20:101"},"nativeSrc":"6172:53:101","nodeType":"YulFunctionCall","src":"6172:53:101"},"variableNames":[{"name":"value1","nativeSrc":"6162:6:101","nodeType":"YulIdentifier","src":"6162:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5768:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5813:9:101","nodeType":"YulTypedName","src":"5813:9:101","type":""},{"name":"dataEnd","nativeSrc":"5824:7:101","nodeType":"YulTypedName","src":"5824:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5836:6:101","nodeType":"YulTypedName","src":"5836:6:101","type":""},{"name":"value1","nativeSrc":"5844:6:101","nodeType":"YulTypedName","src":"5844:6:101","type":""}],"src":"5768:474:101"},{"body":{"nativeSrc":"6276:152:101","nodeType":"YulBlock","src":"6276:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6293:1:101","nodeType":"YulLiteral","src":"6293:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6296:77:101","nodeType":"YulLiteral","src":"6296:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6286:6:101","nodeType":"YulIdentifier","src":"6286:6:101"},"nativeSrc":"6286:88:101","nodeType":"YulFunctionCall","src":"6286:88:101"},"nativeSrc":"6286:88:101","nodeType":"YulExpressionStatement","src":"6286:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6390:1:101","nodeType":"YulLiteral","src":"6390:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6393:4:101","nodeType":"YulLiteral","src":"6393:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6383:6:101","nodeType":"YulIdentifier","src":"6383:6:101"},"nativeSrc":"6383:15:101","nodeType":"YulFunctionCall","src":"6383:15:101"},"nativeSrc":"6383:15:101","nodeType":"YulExpressionStatement","src":"6383:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6414:1:101","nodeType":"YulLiteral","src":"6414:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6417:4:101","nodeType":"YulLiteral","src":"6417:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6407:6:101","nodeType":"YulIdentifier","src":"6407:6:101"},"nativeSrc":"6407:15:101","nodeType":"YulFunctionCall","src":"6407:15:101"},"nativeSrc":"6407:15:101","nodeType":"YulExpressionStatement","src":"6407:15:101"}]},"name":"panic_error_0x22","nativeSrc":"6248:180:101","nodeType":"YulFunctionDefinition","src":"6248:180:101"},{"body":{"nativeSrc":"6485:269:101","nodeType":"YulBlock","src":"6485:269:101","statements":[{"nativeSrc":"6495:22:101","nodeType":"YulAssignment","src":"6495:22:101","value":{"arguments":[{"name":"data","nativeSrc":"6509:4:101","nodeType":"YulIdentifier","src":"6509:4:101"},{"kind":"number","nativeSrc":"6515:1:101","nodeType":"YulLiteral","src":"6515:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"6505:3:101","nodeType":"YulIdentifier","src":"6505:3:101"},"nativeSrc":"6505:12:101","nodeType":"YulFunctionCall","src":"6505:12:101"},"variableNames":[{"name":"length","nativeSrc":"6495:6:101","nodeType":"YulIdentifier","src":"6495:6:101"}]},{"nativeSrc":"6526:38:101","nodeType":"YulVariableDeclaration","src":"6526:38:101","value":{"arguments":[{"name":"data","nativeSrc":"6556:4:101","nodeType":"YulIdentifier","src":"6556:4:101"},{"kind":"number","nativeSrc":"6562:1:101","nodeType":"YulLiteral","src":"6562:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6552:3:101","nodeType":"YulIdentifier","src":"6552:3:101"},"nativeSrc":"6552:12:101","nodeType":"YulFunctionCall","src":"6552:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6530:18:101","nodeType":"YulTypedName","src":"6530:18:101","type":""}]},{"body":{"nativeSrc":"6603:51:101","nodeType":"YulBlock","src":"6603:51:101","statements":[{"nativeSrc":"6617:27:101","nodeType":"YulAssignment","src":"6617:27:101","value":{"arguments":[{"name":"length","nativeSrc":"6631:6:101","nodeType":"YulIdentifier","src":"6631:6:101"},{"kind":"number","nativeSrc":"6639:4:101","nodeType":"YulLiteral","src":"6639:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6627:3:101","nodeType":"YulIdentifier","src":"6627:3:101"},"nativeSrc":"6627:17:101","nodeType":"YulFunctionCall","src":"6627:17:101"},"variableNames":[{"name":"length","nativeSrc":"6617:6:101","nodeType":"YulIdentifier","src":"6617:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6583:18:101","nodeType":"YulIdentifier","src":"6583:18:101"}],"functionName":{"name":"iszero","nativeSrc":"6576:6:101","nodeType":"YulIdentifier","src":"6576:6:101"},"nativeSrc":"6576:26:101","nodeType":"YulFunctionCall","src":"6576:26:101"},"nativeSrc":"6573:81:101","nodeType":"YulIf","src":"6573:81:101"},{"body":{"nativeSrc":"6706:42:101","nodeType":"YulBlock","src":"6706:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6720:16:101","nodeType":"YulIdentifier","src":"6720:16:101"},"nativeSrc":"6720:18:101","nodeType":"YulFunctionCall","src":"6720:18:101"},"nativeSrc":"6720:18:101","nodeType":"YulExpressionStatement","src":"6720:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6670:18:101","nodeType":"YulIdentifier","src":"6670:18:101"},{"arguments":[{"name":"length","nativeSrc":"6693:6:101","nodeType":"YulIdentifier","src":"6693:6:101"},{"kind":"number","nativeSrc":"6701:2:101","nodeType":"YulLiteral","src":"6701:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6690:2:101","nodeType":"YulIdentifier","src":"6690:2:101"},"nativeSrc":"6690:14:101","nodeType":"YulFunctionCall","src":"6690:14:101"}],"functionName":{"name":"eq","nativeSrc":"6667:2:101","nodeType":"YulIdentifier","src":"6667:2:101"},"nativeSrc":"6667:38:101","nodeType":"YulFunctionCall","src":"6667:38:101"},"nativeSrc":"6664:84:101","nodeType":"YulIf","src":"6664:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"6434:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6469:4:101","nodeType":"YulTypedName","src":"6469:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6478:6:101","nodeType":"YulTypedName","src":"6478:6:101","type":""}],"src":"6434:320:101"},{"body":{"nativeSrc":"6788:152:101","nodeType":"YulBlock","src":"6788:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6805:1:101","nodeType":"YulLiteral","src":"6805:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6808:77:101","nodeType":"YulLiteral","src":"6808:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6798:6:101","nodeType":"YulIdentifier","src":"6798:6:101"},"nativeSrc":"6798:88:101","nodeType":"YulFunctionCall","src":"6798:88:101"},"nativeSrc":"6798:88:101","nodeType":"YulExpressionStatement","src":"6798:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6902:1:101","nodeType":"YulLiteral","src":"6902:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6905:4:101","nodeType":"YulLiteral","src":"6905:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6895:6:101","nodeType":"YulIdentifier","src":"6895:6:101"},"nativeSrc":"6895:15:101","nodeType":"YulFunctionCall","src":"6895:15:101"},"nativeSrc":"6895:15:101","nodeType":"YulExpressionStatement","src":"6895:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6926:1:101","nodeType":"YulLiteral","src":"6926:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6929:4:101","nodeType":"YulLiteral","src":"6929:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6919:6:101","nodeType":"YulIdentifier","src":"6919:6:101"},"nativeSrc":"6919:15:101","nodeType":"YulFunctionCall","src":"6919:15:101"},"nativeSrc":"6919:15:101","nodeType":"YulExpressionStatement","src":"6919:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6760:180:101","nodeType":"YulFunctionDefinition","src":"6760:180:101"},{"body":{"nativeSrc":"6990:147:101","nodeType":"YulBlock","src":"6990:147:101","statements":[{"nativeSrc":"7000:25:101","nodeType":"YulAssignment","src":"7000:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7023:1:101","nodeType":"YulIdentifier","src":"7023:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7005:17:101","nodeType":"YulIdentifier","src":"7005:17:101"},"nativeSrc":"7005:20:101","nodeType":"YulFunctionCall","src":"7005:20:101"},"variableNames":[{"name":"x","nativeSrc":"7000:1:101","nodeType":"YulIdentifier","src":"7000:1:101"}]},{"nativeSrc":"7034:25:101","nodeType":"YulAssignment","src":"7034:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7057:1:101","nodeType":"YulIdentifier","src":"7057:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7039:17:101","nodeType":"YulIdentifier","src":"7039:17:101"},"nativeSrc":"7039:20:101","nodeType":"YulFunctionCall","src":"7039:20:101"},"variableNames":[{"name":"y","nativeSrc":"7034:1:101","nodeType":"YulIdentifier","src":"7034:1:101"}]},{"nativeSrc":"7068:16:101","nodeType":"YulAssignment","src":"7068:16:101","value":{"arguments":[{"name":"x","nativeSrc":"7079:1:101","nodeType":"YulIdentifier","src":"7079:1:101"},{"name":"y","nativeSrc":"7082:1:101","nodeType":"YulIdentifier","src":"7082:1:101"}],"functionName":{"name":"add","nativeSrc":"7075:3:101","nodeType":"YulIdentifier","src":"7075:3:101"},"nativeSrc":"7075:9:101","nodeType":"YulFunctionCall","src":"7075:9:101"},"variableNames":[{"name":"sum","nativeSrc":"7068:3:101","nodeType":"YulIdentifier","src":"7068:3:101"}]},{"body":{"nativeSrc":"7108:22:101","nodeType":"YulBlock","src":"7108:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7110:16:101","nodeType":"YulIdentifier","src":"7110:16:101"},"nativeSrc":"7110:18:101","nodeType":"YulFunctionCall","src":"7110:18:101"},"nativeSrc":"7110:18:101","nodeType":"YulExpressionStatement","src":"7110:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7100:1:101","nodeType":"YulIdentifier","src":"7100:1:101"},{"name":"sum","nativeSrc":"7103:3:101","nodeType":"YulIdentifier","src":"7103:3:101"}],"functionName":{"name":"gt","nativeSrc":"7097:2:101","nodeType":"YulIdentifier","src":"7097:2:101"},"nativeSrc":"7097:10:101","nodeType":"YulFunctionCall","src":"7097:10:101"},"nativeSrc":"7094:36:101","nodeType":"YulIf","src":"7094:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6946:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6977:1:101","nodeType":"YulTypedName","src":"6977:1:101","type":""},{"name":"y","nativeSrc":"6980:1:101","nodeType":"YulTypedName","src":"6980:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6986:3:101","nodeType":"YulTypedName","src":"6986:3:101","type":""}],"src":"6946:191:101"},{"body":{"nativeSrc":"7249:118:101","nodeType":"YulBlock","src":"7249:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7271:6:101","nodeType":"YulIdentifier","src":"7271:6:101"},{"kind":"number","nativeSrc":"7279:1:101","nodeType":"YulLiteral","src":"7279:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7267:3:101","nodeType":"YulIdentifier","src":"7267:3:101"},"nativeSrc":"7267:14:101","nodeType":"YulFunctionCall","src":"7267:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"7283:34:101","nodeType":"YulLiteral","src":"7283:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"7260:6:101","nodeType":"YulIdentifier","src":"7260:6:101"},"nativeSrc":"7260:58:101","nodeType":"YulFunctionCall","src":"7260:58:101"},"nativeSrc":"7260:58:101","nodeType":"YulExpressionStatement","src":"7260:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7339:6:101","nodeType":"YulIdentifier","src":"7339:6:101"},{"kind":"number","nativeSrc":"7347:2:101","nodeType":"YulLiteral","src":"7347:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7335:3:101","nodeType":"YulIdentifier","src":"7335:3:101"},"nativeSrc":"7335:15:101","nodeType":"YulFunctionCall","src":"7335:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"7352:7:101","nodeType":"YulLiteral","src":"7352:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"7328:6:101","nodeType":"YulIdentifier","src":"7328:6:101"},"nativeSrc":"7328:32:101","nodeType":"YulFunctionCall","src":"7328:32:101"},"nativeSrc":"7328:32:101","nodeType":"YulExpressionStatement","src":"7328:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7143:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7241:6:101","nodeType":"YulTypedName","src":"7241:6:101","type":""}],"src":"7143:224:101"},{"body":{"nativeSrc":"7519:220:101","nodeType":"YulBlock","src":"7519:220:101","statements":[{"nativeSrc":"7529:74:101","nodeType":"YulAssignment","src":"7529:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7595:3:101","nodeType":"YulIdentifier","src":"7595:3:101"},{"kind":"number","nativeSrc":"7600:2:101","nodeType":"YulLiteral","src":"7600:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7536:58:101","nodeType":"YulIdentifier","src":"7536:58:101"},"nativeSrc":"7536:67:101","nodeType":"YulFunctionCall","src":"7536:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7701:3:101","nodeType":"YulIdentifier","src":"7701:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7612:88:101","nodeType":"YulIdentifier","src":"7612:88:101"},"nativeSrc":"7612:93:101","nodeType":"YulFunctionCall","src":"7612:93:101"},"nativeSrc":"7612:93:101","nodeType":"YulExpressionStatement","src":"7612:93:101"},{"nativeSrc":"7714:19:101","nodeType":"YulAssignment","src":"7714:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7725:3:101","nodeType":"YulIdentifier","src":"7725:3:101"},{"kind":"number","nativeSrc":"7730:2:101","nodeType":"YulLiteral","src":"7730:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7721:3:101","nodeType":"YulIdentifier","src":"7721:3:101"},"nativeSrc":"7721:12:101","nodeType":"YulFunctionCall","src":"7721:12:101"},"variableNames":[{"name":"end","nativeSrc":"7714:3:101","nodeType":"YulIdentifier","src":"7714:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7373:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7507:3:101","nodeType":"YulTypedName","src":"7507:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7515:3:101","nodeType":"YulTypedName","src":"7515:3:101","type":""}],"src":"7373:366:101"},{"body":{"nativeSrc":"7916:248:101","nodeType":"YulBlock","src":"7916:248:101","statements":[{"nativeSrc":"7926:26:101","nodeType":"YulAssignment","src":"7926:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7938:9:101","nodeType":"YulIdentifier","src":"7938:9:101"},{"kind":"number","nativeSrc":"7949:2:101","nodeType":"YulLiteral","src":"7949:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7934:3:101","nodeType":"YulIdentifier","src":"7934:3:101"},"nativeSrc":"7934:18:101","nodeType":"YulFunctionCall","src":"7934:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7926:4:101","nodeType":"YulIdentifier","src":"7926:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7973:9:101","nodeType":"YulIdentifier","src":"7973:9:101"},{"kind":"number","nativeSrc":"7984:1:101","nodeType":"YulLiteral","src":"7984:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7969:3:101","nodeType":"YulIdentifier","src":"7969:3:101"},"nativeSrc":"7969:17:101","nodeType":"YulFunctionCall","src":"7969:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7992:4:101","nodeType":"YulIdentifier","src":"7992:4:101"},{"name":"headStart","nativeSrc":"7998:9:101","nodeType":"YulIdentifier","src":"7998:9:101"}],"functionName":{"name":"sub","nativeSrc":"7988:3:101","nodeType":"YulIdentifier","src":"7988:3:101"},"nativeSrc":"7988:20:101","nodeType":"YulFunctionCall","src":"7988:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7962:6:101","nodeType":"YulIdentifier","src":"7962:6:101"},"nativeSrc":"7962:47:101","nodeType":"YulFunctionCall","src":"7962:47:101"},"nativeSrc":"7962:47:101","nodeType":"YulExpressionStatement","src":"7962:47:101"},{"nativeSrc":"8018:139:101","nodeType":"YulAssignment","src":"8018:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"8152:4:101","nodeType":"YulIdentifier","src":"8152:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"8026:124:101","nodeType":"YulIdentifier","src":"8026:124:101"},"nativeSrc":"8026:131:101","nodeType":"YulFunctionCall","src":"8026:131:101"},"variableNames":[{"name":"tail","nativeSrc":"8018:4:101","nodeType":"YulIdentifier","src":"8018:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7745:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7896:9:101","nodeType":"YulTypedName","src":"7896:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7911:4:101","nodeType":"YulTypedName","src":"7911:4:101","type":""}],"src":"7745:419:101"},{"body":{"nativeSrc":"8276:119:101","nodeType":"YulBlock","src":"8276:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8298:6:101","nodeType":"YulIdentifier","src":"8298:6:101"},{"kind":"number","nativeSrc":"8306:1:101","nodeType":"YulLiteral","src":"8306:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8294:3:101","nodeType":"YulIdentifier","src":"8294:3:101"},"nativeSrc":"8294:14:101","nodeType":"YulFunctionCall","src":"8294:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"8310:34:101","nodeType":"YulLiteral","src":"8310:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"8287:6:101","nodeType":"YulIdentifier","src":"8287:6:101"},"nativeSrc":"8287:58:101","nodeType":"YulFunctionCall","src":"8287:58:101"},"nativeSrc":"8287:58:101","nodeType":"YulExpressionStatement","src":"8287:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8366:6:101","nodeType":"YulIdentifier","src":"8366:6:101"},{"kind":"number","nativeSrc":"8374:2:101","nodeType":"YulLiteral","src":"8374:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8362:3:101","nodeType":"YulIdentifier","src":"8362:3:101"},"nativeSrc":"8362:15:101","nodeType":"YulFunctionCall","src":"8362:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"8379:8:101","nodeType":"YulLiteral","src":"8379:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"8355:6:101","nodeType":"YulIdentifier","src":"8355:6:101"},"nativeSrc":"8355:33:101","nodeType":"YulFunctionCall","src":"8355:33:101"},"nativeSrc":"8355:33:101","nodeType":"YulExpressionStatement","src":"8355:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"8170:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8268:6:101","nodeType":"YulTypedName","src":"8268:6:101","type":""}],"src":"8170:225:101"},{"body":{"nativeSrc":"8547:220:101","nodeType":"YulBlock","src":"8547:220:101","statements":[{"nativeSrc":"8557:74:101","nodeType":"YulAssignment","src":"8557:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"8623:3:101","nodeType":"YulIdentifier","src":"8623:3:101"},{"kind":"number","nativeSrc":"8628:2:101","nodeType":"YulLiteral","src":"8628:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8564:58:101","nodeType":"YulIdentifier","src":"8564:58:101"},"nativeSrc":"8564:67:101","nodeType":"YulFunctionCall","src":"8564:67:101"},"variableNames":[{"name":"pos","nativeSrc":"8557:3:101","nodeType":"YulIdentifier","src":"8557:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8729:3:101","nodeType":"YulIdentifier","src":"8729:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"8640:88:101","nodeType":"YulIdentifier","src":"8640:88:101"},"nativeSrc":"8640:93:101","nodeType":"YulFunctionCall","src":"8640:93:101"},"nativeSrc":"8640:93:101","nodeType":"YulExpressionStatement","src":"8640:93:101"},{"nativeSrc":"8742:19:101","nodeType":"YulAssignment","src":"8742:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"8753:3:101","nodeType":"YulIdentifier","src":"8753:3:101"},{"kind":"number","nativeSrc":"8758:2:101","nodeType":"YulLiteral","src":"8758:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8749:3:101","nodeType":"YulIdentifier","src":"8749:3:101"},"nativeSrc":"8749:12:101","nodeType":"YulFunctionCall","src":"8749:12:101"},"variableNames":[{"name":"end","nativeSrc":"8742:3:101","nodeType":"YulIdentifier","src":"8742:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"8401:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8535:3:101","nodeType":"YulTypedName","src":"8535:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8543:3:101","nodeType":"YulTypedName","src":"8543:3:101","type":""}],"src":"8401:366:101"},{"body":{"nativeSrc":"8944:248:101","nodeType":"YulBlock","src":"8944:248:101","statements":[{"nativeSrc":"8954:26:101","nodeType":"YulAssignment","src":"8954:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8966:9:101","nodeType":"YulIdentifier","src":"8966:9:101"},{"kind":"number","nativeSrc":"8977:2:101","nodeType":"YulLiteral","src":"8977:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8962:3:101","nodeType":"YulIdentifier","src":"8962:3:101"},"nativeSrc":"8962:18:101","nodeType":"YulFunctionCall","src":"8962:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8954:4:101","nodeType":"YulIdentifier","src":"8954:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9001:9:101","nodeType":"YulIdentifier","src":"9001:9:101"},{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8997:3:101","nodeType":"YulIdentifier","src":"8997:3:101"},"nativeSrc":"8997:17:101","nodeType":"YulFunctionCall","src":"8997:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9020:4:101","nodeType":"YulIdentifier","src":"9020:4:101"},{"name":"headStart","nativeSrc":"9026:9:101","nodeType":"YulIdentifier","src":"9026:9:101"}],"functionName":{"name":"sub","nativeSrc":"9016:3:101","nodeType":"YulIdentifier","src":"9016:3:101"},"nativeSrc":"9016:20:101","nodeType":"YulFunctionCall","src":"9016:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8990:6:101","nodeType":"YulIdentifier","src":"8990:6:101"},"nativeSrc":"8990:47:101","nodeType":"YulFunctionCall","src":"8990:47:101"},"nativeSrc":"8990:47:101","nodeType":"YulExpressionStatement","src":"8990:47:101"},{"nativeSrc":"9046:139:101","nodeType":"YulAssignment","src":"9046:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9180:4:101","nodeType":"YulIdentifier","src":"9180:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"9054:124:101","nodeType":"YulIdentifier","src":"9054:124:101"},"nativeSrc":"9054:131:101","nodeType":"YulFunctionCall","src":"9054:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9046:4:101","nodeType":"YulIdentifier","src":"9046:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8773:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8924:9:101","nodeType":"YulTypedName","src":"8924:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8939:4:101","nodeType":"YulTypedName","src":"8939:4:101","type":""}],"src":"8773:419:101"},{"body":{"nativeSrc":"9304:117:101","nodeType":"YulBlock","src":"9304:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9326:6:101","nodeType":"YulIdentifier","src":"9326:6:101"},{"kind":"number","nativeSrc":"9334:1:101","nodeType":"YulLiteral","src":"9334:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9322:3:101","nodeType":"YulIdentifier","src":"9322:3:101"},"nativeSrc":"9322:14:101","nodeType":"YulFunctionCall","src":"9322:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"9338:34:101","nodeType":"YulLiteral","src":"9338:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"9315:6:101","nodeType":"YulIdentifier","src":"9315:6:101"},"nativeSrc":"9315:58:101","nodeType":"YulFunctionCall","src":"9315:58:101"},"nativeSrc":"9315:58:101","nodeType":"YulExpressionStatement","src":"9315:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9394:6:101","nodeType":"YulIdentifier","src":"9394:6:101"},{"kind":"number","nativeSrc":"9402:2:101","nodeType":"YulLiteral","src":"9402:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9390:3:101","nodeType":"YulIdentifier","src":"9390:3:101"},"nativeSrc":"9390:15:101","nodeType":"YulFunctionCall","src":"9390:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"9407:6:101","nodeType":"YulLiteral","src":"9407:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:101","nodeType":"YulIdentifier","src":"9383:6:101"},"nativeSrc":"9383:31:101","nodeType":"YulFunctionCall","src":"9383:31:101"},"nativeSrc":"9383:31:101","nodeType":"YulExpressionStatement","src":"9383:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"9198:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9296:6:101","nodeType":"YulTypedName","src":"9296:6:101","type":""}],"src":"9198:223:101"},{"body":{"nativeSrc":"9573:220:101","nodeType":"YulBlock","src":"9573:220:101","statements":[{"nativeSrc":"9583:74:101","nodeType":"YulAssignment","src":"9583:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9649:3:101","nodeType":"YulIdentifier","src":"9649:3:101"},{"kind":"number","nativeSrc":"9654:2:101","nodeType":"YulLiteral","src":"9654:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9590:58:101","nodeType":"YulIdentifier","src":"9590:58:101"},"nativeSrc":"9590:67:101","nodeType":"YulFunctionCall","src":"9590:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9583:3:101","nodeType":"YulIdentifier","src":"9583:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9755:3:101","nodeType":"YulIdentifier","src":"9755:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"9666:88:101","nodeType":"YulIdentifier","src":"9666:88:101"},"nativeSrc":"9666:93:101","nodeType":"YulFunctionCall","src":"9666:93:101"},"nativeSrc":"9666:93:101","nodeType":"YulExpressionStatement","src":"9666:93:101"},{"nativeSrc":"9768:19:101","nodeType":"YulAssignment","src":"9768:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9779:3:101","nodeType":"YulIdentifier","src":"9779:3:101"},{"kind":"number","nativeSrc":"9784:2:101","nodeType":"YulLiteral","src":"9784:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9775:3:101","nodeType":"YulIdentifier","src":"9775:3:101"},"nativeSrc":"9775:12:101","nodeType":"YulFunctionCall","src":"9775:12:101"},"variableNames":[{"name":"end","nativeSrc":"9768:3:101","nodeType":"YulIdentifier","src":"9768:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"9427:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9561:3:101","nodeType":"YulTypedName","src":"9561:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9569:3:101","nodeType":"YulTypedName","src":"9569:3:101","type":""}],"src":"9427:366:101"},{"body":{"nativeSrc":"9970:248:101","nodeType":"YulBlock","src":"9970:248:101","statements":[{"nativeSrc":"9980:26:101","nodeType":"YulAssignment","src":"9980:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9992:9:101","nodeType":"YulIdentifier","src":"9992:9:101"},{"kind":"number","nativeSrc":"10003:2:101","nodeType":"YulLiteral","src":"10003:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9988:3:101","nodeType":"YulIdentifier","src":"9988:3:101"},"nativeSrc":"9988:18:101","nodeType":"YulFunctionCall","src":"9988:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9980:4:101","nodeType":"YulIdentifier","src":"9980:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10027:9:101","nodeType":"YulIdentifier","src":"10027:9:101"},{"kind":"number","nativeSrc":"10038:1:101","nodeType":"YulLiteral","src":"10038:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10023:3:101","nodeType":"YulIdentifier","src":"10023:3:101"},"nativeSrc":"10023:17:101","nodeType":"YulFunctionCall","src":"10023:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10046:4:101","nodeType":"YulIdentifier","src":"10046:4:101"},{"name":"headStart","nativeSrc":"10052:9:101","nodeType":"YulIdentifier","src":"10052:9:101"}],"functionName":{"name":"sub","nativeSrc":"10042:3:101","nodeType":"YulIdentifier","src":"10042:3:101"},"nativeSrc":"10042:20:101","nodeType":"YulFunctionCall","src":"10042:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10016:6:101","nodeType":"YulIdentifier","src":"10016:6:101"},"nativeSrc":"10016:47:101","nodeType":"YulFunctionCall","src":"10016:47:101"},"nativeSrc":"10016:47:101","nodeType":"YulExpressionStatement","src":"10016:47:101"},{"nativeSrc":"10072:139:101","nodeType":"YulAssignment","src":"10072:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10206:4:101","nodeType":"YulIdentifier","src":"10206:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"10080:124:101","nodeType":"YulIdentifier","src":"10080:124:101"},"nativeSrc":"10080:131:101","nodeType":"YulFunctionCall","src":"10080:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10072:4:101","nodeType":"YulIdentifier","src":"10072:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9799:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9950:9:101","nodeType":"YulTypedName","src":"9950:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9965:4:101","nodeType":"YulTypedName","src":"9965:4:101","type":""}],"src":"9799:419:101"},{"body":{"nativeSrc":"10330:115:101","nodeType":"YulBlock","src":"10330:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10352:6:101","nodeType":"YulIdentifier","src":"10352:6:101"},{"kind":"number","nativeSrc":"10360:1:101","nodeType":"YulLiteral","src":"10360:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10348:3:101","nodeType":"YulIdentifier","src":"10348:3:101"},"nativeSrc":"10348:14:101","nodeType":"YulFunctionCall","src":"10348:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"10364:34:101","nodeType":"YulLiteral","src":"10364:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"10341:6:101","nodeType":"YulIdentifier","src":"10341:6:101"},"nativeSrc":"10341:58:101","nodeType":"YulFunctionCall","src":"10341:58:101"},"nativeSrc":"10341:58:101","nodeType":"YulExpressionStatement","src":"10341:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10420:6:101","nodeType":"YulIdentifier","src":"10420:6:101"},{"kind":"number","nativeSrc":"10428:2:101","nodeType":"YulLiteral","src":"10428:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10416:3:101","nodeType":"YulIdentifier","src":"10416:3:101"},"nativeSrc":"10416:15:101","nodeType":"YulFunctionCall","src":"10416:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"10433:4:101","nodeType":"YulLiteral","src":"10433:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"10409:6:101","nodeType":"YulIdentifier","src":"10409:6:101"},"nativeSrc":"10409:29:101","nodeType":"YulFunctionCall","src":"10409:29:101"},"nativeSrc":"10409:29:101","nodeType":"YulExpressionStatement","src":"10409:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"10224:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10322:6:101","nodeType":"YulTypedName","src":"10322:6:101","type":""}],"src":"10224:221:101"},{"body":{"nativeSrc":"10597:220:101","nodeType":"YulBlock","src":"10597:220:101","statements":[{"nativeSrc":"10607:74:101","nodeType":"YulAssignment","src":"10607:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10673:3:101","nodeType":"YulIdentifier","src":"10673:3:101"},{"kind":"number","nativeSrc":"10678:2:101","nodeType":"YulLiteral","src":"10678:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10614:58:101","nodeType":"YulIdentifier","src":"10614:58:101"},"nativeSrc":"10614:67:101","nodeType":"YulFunctionCall","src":"10614:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10607:3:101","nodeType":"YulIdentifier","src":"10607:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10779:3:101","nodeType":"YulIdentifier","src":"10779:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"10690:88:101","nodeType":"YulIdentifier","src":"10690:88:101"},"nativeSrc":"10690:93:101","nodeType":"YulFunctionCall","src":"10690:93:101"},"nativeSrc":"10690:93:101","nodeType":"YulExpressionStatement","src":"10690:93:101"},{"nativeSrc":"10792:19:101","nodeType":"YulAssignment","src":"10792:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10803:3:101","nodeType":"YulIdentifier","src":"10803:3:101"},{"kind":"number","nativeSrc":"10808:2:101","nodeType":"YulLiteral","src":"10808:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10799:3:101","nodeType":"YulIdentifier","src":"10799:3:101"},"nativeSrc":"10799:12:101","nodeType":"YulFunctionCall","src":"10799:12:101"},"variableNames":[{"name":"end","nativeSrc":"10792:3:101","nodeType":"YulIdentifier","src":"10792:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"10451:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10585:3:101","nodeType":"YulTypedName","src":"10585:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10593:3:101","nodeType":"YulTypedName","src":"10593:3:101","type":""}],"src":"10451:366:101"},{"body":{"nativeSrc":"10994:248:101","nodeType":"YulBlock","src":"10994:248:101","statements":[{"nativeSrc":"11004:26:101","nodeType":"YulAssignment","src":"11004:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11016:9:101","nodeType":"YulIdentifier","src":"11016:9:101"},{"kind":"number","nativeSrc":"11027:2:101","nodeType":"YulLiteral","src":"11027:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11012:3:101","nodeType":"YulIdentifier","src":"11012:3:101"},"nativeSrc":"11012:18:101","nodeType":"YulFunctionCall","src":"11012:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11004:4:101","nodeType":"YulIdentifier","src":"11004:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11051:9:101","nodeType":"YulIdentifier","src":"11051:9:101"},{"kind":"number","nativeSrc":"11062:1:101","nodeType":"YulLiteral","src":"11062:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11047:3:101","nodeType":"YulIdentifier","src":"11047:3:101"},"nativeSrc":"11047:17:101","nodeType":"YulFunctionCall","src":"11047:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11070:4:101","nodeType":"YulIdentifier","src":"11070:4:101"},{"name":"headStart","nativeSrc":"11076:9:101","nodeType":"YulIdentifier","src":"11076:9:101"}],"functionName":{"name":"sub","nativeSrc":"11066:3:101","nodeType":"YulIdentifier","src":"11066:3:101"},"nativeSrc":"11066:20:101","nodeType":"YulFunctionCall","src":"11066:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11040:6:101","nodeType":"YulIdentifier","src":"11040:6:101"},"nativeSrc":"11040:47:101","nodeType":"YulFunctionCall","src":"11040:47:101"},"nativeSrc":"11040:47:101","nodeType":"YulExpressionStatement","src":"11040:47:101"},{"nativeSrc":"11096:139:101","nodeType":"YulAssignment","src":"11096:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11230:4:101","nodeType":"YulIdentifier","src":"11230:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"11104:124:101","nodeType":"YulIdentifier","src":"11104:124:101"},"nativeSrc":"11104:131:101","nodeType":"YulFunctionCall","src":"11104:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11096:4:101","nodeType":"YulIdentifier","src":"11096:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10823:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10974:9:101","nodeType":"YulTypedName","src":"10974:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10989:4:101","nodeType":"YulTypedName","src":"10989:4:101","type":""}],"src":"10823:419:101"},{"body":{"nativeSrc":"11354:73:101","nodeType":"YulBlock","src":"11354:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11376:6:101","nodeType":"YulIdentifier","src":"11376:6:101"},{"kind":"number","nativeSrc":"11384:1:101","nodeType":"YulLiteral","src":"11384:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11372:3:101","nodeType":"YulIdentifier","src":"11372:3:101"},"nativeSrc":"11372:14:101","nodeType":"YulFunctionCall","src":"11372:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"11388:31:101","nodeType":"YulLiteral","src":"11388:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"11365:6:101","nodeType":"YulIdentifier","src":"11365:6:101"},"nativeSrc":"11365:55:101","nodeType":"YulFunctionCall","src":"11365:55:101"},"nativeSrc":"11365:55:101","nodeType":"YulExpressionStatement","src":"11365:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"11248:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11346:6:101","nodeType":"YulTypedName","src":"11346:6:101","type":""}],"src":"11248:179:101"},{"body":{"nativeSrc":"11579:220:101","nodeType":"YulBlock","src":"11579:220:101","statements":[{"nativeSrc":"11589:74:101","nodeType":"YulAssignment","src":"11589:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11655:3:101","nodeType":"YulIdentifier","src":"11655:3:101"},{"kind":"number","nativeSrc":"11660:2:101","nodeType":"YulLiteral","src":"11660:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11596:58:101","nodeType":"YulIdentifier","src":"11596:58:101"},"nativeSrc":"11596:67:101","nodeType":"YulFunctionCall","src":"11596:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11589:3:101","nodeType":"YulIdentifier","src":"11589:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11761:3:101","nodeType":"YulIdentifier","src":"11761:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"11672:88:101","nodeType":"YulIdentifier","src":"11672:88:101"},"nativeSrc":"11672:93:101","nodeType":"YulFunctionCall","src":"11672:93:101"},"nativeSrc":"11672:93:101","nodeType":"YulExpressionStatement","src":"11672:93:101"},{"nativeSrc":"11774:19:101","nodeType":"YulAssignment","src":"11774:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11785:3:101","nodeType":"YulIdentifier","src":"11785:3:101"},{"kind":"number","nativeSrc":"11790:2:101","nodeType":"YulLiteral","src":"11790:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11781:3:101","nodeType":"YulIdentifier","src":"11781:3:101"},"nativeSrc":"11781:12:101","nodeType":"YulFunctionCall","src":"11781:12:101"},"variableNames":[{"name":"end","nativeSrc":"11774:3:101","nodeType":"YulIdentifier","src":"11774:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"11433:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11567:3:101","nodeType":"YulTypedName","src":"11567:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11575:3:101","nodeType":"YulTypedName","src":"11575:3:101","type":""}],"src":"11433:366:101"},{"body":{"nativeSrc":"11976:248:101","nodeType":"YulBlock","src":"11976:248:101","statements":[{"nativeSrc":"11986:26:101","nodeType":"YulAssignment","src":"11986:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11998:9:101","nodeType":"YulIdentifier","src":"11998:9:101"},{"kind":"number","nativeSrc":"12009:2:101","nodeType":"YulLiteral","src":"12009:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11994:3:101","nodeType":"YulIdentifier","src":"11994:3:101"},"nativeSrc":"11994:18:101","nodeType":"YulFunctionCall","src":"11994:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11986:4:101","nodeType":"YulIdentifier","src":"11986:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12033:9:101","nodeType":"YulIdentifier","src":"12033:9:101"},{"kind":"number","nativeSrc":"12044:1:101","nodeType":"YulLiteral","src":"12044:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12029:3:101","nodeType":"YulIdentifier","src":"12029:3:101"},"nativeSrc":"12029:17:101","nodeType":"YulFunctionCall","src":"12029:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12052:4:101","nodeType":"YulIdentifier","src":"12052:4:101"},{"name":"headStart","nativeSrc":"12058:9:101","nodeType":"YulIdentifier","src":"12058:9:101"}],"functionName":{"name":"sub","nativeSrc":"12048:3:101","nodeType":"YulIdentifier","src":"12048:3:101"},"nativeSrc":"12048:20:101","nodeType":"YulFunctionCall","src":"12048:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12022:6:101","nodeType":"YulIdentifier","src":"12022:6:101"},"nativeSrc":"12022:47:101","nodeType":"YulFunctionCall","src":"12022:47:101"},"nativeSrc":"12022:47:101","nodeType":"YulExpressionStatement","src":"12022:47:101"},{"nativeSrc":"12078:139:101","nodeType":"YulAssignment","src":"12078:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12212:4:101","nodeType":"YulIdentifier","src":"12212:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"12086:124:101","nodeType":"YulIdentifier","src":"12086:124:101"},"nativeSrc":"12086:131:101","nodeType":"YulFunctionCall","src":"12086:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12078:4:101","nodeType":"YulIdentifier","src":"12078:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11805:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11956:9:101","nodeType":"YulTypedName","src":"11956:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11971:4:101","nodeType":"YulTypedName","src":"11971:4:101","type":""}],"src":"11805:419:101"},{"body":{"nativeSrc":"12336:118:101","nodeType":"YulBlock","src":"12336:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12358:6:101","nodeType":"YulIdentifier","src":"12358:6:101"},{"kind":"number","nativeSrc":"12366:1:101","nodeType":"YulLiteral","src":"12366:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12354:3:101","nodeType":"YulIdentifier","src":"12354:3:101"},"nativeSrc":"12354:14:101","nodeType":"YulFunctionCall","src":"12354:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"12370:34:101","nodeType":"YulLiteral","src":"12370:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"12347:6:101","nodeType":"YulIdentifier","src":"12347:6:101"},"nativeSrc":"12347:58:101","nodeType":"YulFunctionCall","src":"12347:58:101"},"nativeSrc":"12347:58:101","nodeType":"YulExpressionStatement","src":"12347:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12426:6:101","nodeType":"YulIdentifier","src":"12426:6:101"},{"kind":"number","nativeSrc":"12434:2:101","nodeType":"YulLiteral","src":"12434:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:15:101","nodeType":"YulFunctionCall","src":"12422:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"12439:7:101","nodeType":"YulLiteral","src":"12439:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:32:101","nodeType":"YulFunctionCall","src":"12415:32:101"},"nativeSrc":"12415:32:101","nodeType":"YulExpressionStatement","src":"12415:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"12230:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12328:6:101","nodeType":"YulTypedName","src":"12328:6:101","type":""}],"src":"12230:224:101"},{"body":{"nativeSrc":"12606:220:101","nodeType":"YulBlock","src":"12606:220:101","statements":[{"nativeSrc":"12616:74:101","nodeType":"YulAssignment","src":"12616:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12682:3:101","nodeType":"YulIdentifier","src":"12682:3:101"},{"kind":"number","nativeSrc":"12687:2:101","nodeType":"YulLiteral","src":"12687:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12623:58:101","nodeType":"YulIdentifier","src":"12623:58:101"},"nativeSrc":"12623:67:101","nodeType":"YulFunctionCall","src":"12623:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12616:3:101","nodeType":"YulIdentifier","src":"12616:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12788:3:101","nodeType":"YulIdentifier","src":"12788:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"12699:88:101","nodeType":"YulIdentifier","src":"12699:88:101"},"nativeSrc":"12699:93:101","nodeType":"YulFunctionCall","src":"12699:93:101"},"nativeSrc":"12699:93:101","nodeType":"YulExpressionStatement","src":"12699:93:101"},{"nativeSrc":"12801:19:101","nodeType":"YulAssignment","src":"12801:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12812:3:101","nodeType":"YulIdentifier","src":"12812:3:101"},{"kind":"number","nativeSrc":"12817:2:101","nodeType":"YulLiteral","src":"12817:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12808:3:101","nodeType":"YulIdentifier","src":"12808:3:101"},"nativeSrc":"12808:12:101","nodeType":"YulFunctionCall","src":"12808:12:101"},"variableNames":[{"name":"end","nativeSrc":"12801:3:101","nodeType":"YulIdentifier","src":"12801:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"12460:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12594:3:101","nodeType":"YulTypedName","src":"12594:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12602:3:101","nodeType":"YulTypedName","src":"12602:3:101","type":""}],"src":"12460:366:101"},{"body":{"nativeSrc":"13003:248:101","nodeType":"YulBlock","src":"13003:248:101","statements":[{"nativeSrc":"13013:26:101","nodeType":"YulAssignment","src":"13013:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13025:9:101","nodeType":"YulIdentifier","src":"13025:9:101"},{"kind":"number","nativeSrc":"13036:2:101","nodeType":"YulLiteral","src":"13036:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13021:3:101","nodeType":"YulIdentifier","src":"13021:3:101"},"nativeSrc":"13021:18:101","nodeType":"YulFunctionCall","src":"13021:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13013:4:101","nodeType":"YulIdentifier","src":"13013:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13060:9:101","nodeType":"YulIdentifier","src":"13060:9:101"},{"kind":"number","nativeSrc":"13071:1:101","nodeType":"YulLiteral","src":"13071:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13056:3:101","nodeType":"YulIdentifier","src":"13056:3:101"},"nativeSrc":"13056:17:101","nodeType":"YulFunctionCall","src":"13056:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13079:4:101","nodeType":"YulIdentifier","src":"13079:4:101"},{"name":"headStart","nativeSrc":"13085:9:101","nodeType":"YulIdentifier","src":"13085:9:101"}],"functionName":{"name":"sub","nativeSrc":"13075:3:101","nodeType":"YulIdentifier","src":"13075:3:101"},"nativeSrc":"13075:20:101","nodeType":"YulFunctionCall","src":"13075:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13049:6:101","nodeType":"YulIdentifier","src":"13049:6:101"},"nativeSrc":"13049:47:101","nodeType":"YulFunctionCall","src":"13049:47:101"},"nativeSrc":"13049:47:101","nodeType":"YulExpressionStatement","src":"13049:47:101"},{"nativeSrc":"13105:139:101","nodeType":"YulAssignment","src":"13105:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13239:4:101","nodeType":"YulIdentifier","src":"13239:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"13113:124:101","nodeType":"YulIdentifier","src":"13113:124:101"},"nativeSrc":"13113:131:101","nodeType":"YulFunctionCall","src":"13113:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13105:4:101","nodeType":"YulIdentifier","src":"13105:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12832:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12983:9:101","nodeType":"YulTypedName","src":"12983:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12998:4:101","nodeType":"YulTypedName","src":"12998:4:101","type":""}],"src":"12832:419:101"},{"body":{"nativeSrc":"13363:116:101","nodeType":"YulBlock","src":"13363:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13385:6:101","nodeType":"YulIdentifier","src":"13385:6:101"},{"kind":"number","nativeSrc":"13393:1:101","nodeType":"YulLiteral","src":"13393:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13381:3:101","nodeType":"YulIdentifier","src":"13381:3:101"},"nativeSrc":"13381:14:101","nodeType":"YulFunctionCall","src":"13381:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"13397:34:101","nodeType":"YulLiteral","src":"13397:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"13374:6:101","nodeType":"YulIdentifier","src":"13374:6:101"},"nativeSrc":"13374:58:101","nodeType":"YulFunctionCall","src":"13374:58:101"},"nativeSrc":"13374:58:101","nodeType":"YulExpressionStatement","src":"13374:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13453:6:101","nodeType":"YulIdentifier","src":"13453:6:101"},{"kind":"number","nativeSrc":"13461:2:101","nodeType":"YulLiteral","src":"13461:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13449:3:101","nodeType":"YulIdentifier","src":"13449:3:101"},"nativeSrc":"13449:15:101","nodeType":"YulFunctionCall","src":"13449:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"13466:5:101","nodeType":"YulLiteral","src":"13466:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"13442:6:101","nodeType":"YulIdentifier","src":"13442:6:101"},"nativeSrc":"13442:30:101","nodeType":"YulFunctionCall","src":"13442:30:101"},"nativeSrc":"13442:30:101","nodeType":"YulExpressionStatement","src":"13442:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"13257:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13355:6:101","nodeType":"YulTypedName","src":"13355:6:101","type":""}],"src":"13257:222:101"},{"body":{"nativeSrc":"13631:220:101","nodeType":"YulBlock","src":"13631:220:101","statements":[{"nativeSrc":"13641:74:101","nodeType":"YulAssignment","src":"13641:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13707:3:101","nodeType":"YulIdentifier","src":"13707:3:101"},{"kind":"number","nativeSrc":"13712:2:101","nodeType":"YulLiteral","src":"13712:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13648:58:101","nodeType":"YulIdentifier","src":"13648:58:101"},"nativeSrc":"13648:67:101","nodeType":"YulFunctionCall","src":"13648:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13641:3:101","nodeType":"YulIdentifier","src":"13641:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13813:3:101","nodeType":"YulIdentifier","src":"13813:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"13724:88:101","nodeType":"YulIdentifier","src":"13724:88:101"},"nativeSrc":"13724:93:101","nodeType":"YulFunctionCall","src":"13724:93:101"},"nativeSrc":"13724:93:101","nodeType":"YulExpressionStatement","src":"13724:93:101"},{"nativeSrc":"13826:19:101","nodeType":"YulAssignment","src":"13826:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13837:3:101","nodeType":"YulIdentifier","src":"13837:3:101"},{"kind":"number","nativeSrc":"13842:2:101","nodeType":"YulLiteral","src":"13842:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13833:3:101","nodeType":"YulIdentifier","src":"13833:3:101"},"nativeSrc":"13833:12:101","nodeType":"YulFunctionCall","src":"13833:12:101"},"variableNames":[{"name":"end","nativeSrc":"13826:3:101","nodeType":"YulIdentifier","src":"13826:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"13485:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13619:3:101","nodeType":"YulTypedName","src":"13619:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13627:3:101","nodeType":"YulTypedName","src":"13627:3:101","type":""}],"src":"13485:366:101"},{"body":{"nativeSrc":"14028:248:101","nodeType":"YulBlock","src":"14028:248:101","statements":[{"nativeSrc":"14038:26:101","nodeType":"YulAssignment","src":"14038:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14050:9:101","nodeType":"YulIdentifier","src":"14050:9:101"},{"kind":"number","nativeSrc":"14061:2:101","nodeType":"YulLiteral","src":"14061:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14046:3:101","nodeType":"YulIdentifier","src":"14046:3:101"},"nativeSrc":"14046:18:101","nodeType":"YulFunctionCall","src":"14046:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14038:4:101","nodeType":"YulIdentifier","src":"14038:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14085:9:101","nodeType":"YulIdentifier","src":"14085:9:101"},{"kind":"number","nativeSrc":"14096:1:101","nodeType":"YulLiteral","src":"14096:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14081:3:101","nodeType":"YulIdentifier","src":"14081:3:101"},"nativeSrc":"14081:17:101","nodeType":"YulFunctionCall","src":"14081:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14104:4:101","nodeType":"YulIdentifier","src":"14104:4:101"},{"name":"headStart","nativeSrc":"14110:9:101","nodeType":"YulIdentifier","src":"14110:9:101"}],"functionName":{"name":"sub","nativeSrc":"14100:3:101","nodeType":"YulIdentifier","src":"14100:3:101"},"nativeSrc":"14100:20:101","nodeType":"YulFunctionCall","src":"14100:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14074:6:101","nodeType":"YulIdentifier","src":"14074:6:101"},"nativeSrc":"14074:47:101","nodeType":"YulFunctionCall","src":"14074:47:101"},"nativeSrc":"14074:47:101","nodeType":"YulExpressionStatement","src":"14074:47:101"},{"nativeSrc":"14130:139:101","nodeType":"YulAssignment","src":"14130:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14264:4:101","nodeType":"YulIdentifier","src":"14264:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"14138:124:101","nodeType":"YulIdentifier","src":"14138:124:101"},"nativeSrc":"14138:131:101","nodeType":"YulFunctionCall","src":"14138:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14130:4:101","nodeType":"YulIdentifier","src":"14130:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13857:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14008:9:101","nodeType":"YulTypedName","src":"14008:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14023:4:101","nodeType":"YulTypedName","src":"14023:4:101","type":""}],"src":"13857:419:101"},{"body":{"nativeSrc":"14388:119:101","nodeType":"YulBlock","src":"14388:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14410:6:101","nodeType":"YulIdentifier","src":"14410:6:101"},{"kind":"number","nativeSrc":"14418:1:101","nodeType":"YulLiteral","src":"14418:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14406:3:101","nodeType":"YulIdentifier","src":"14406:3:101"},"nativeSrc":"14406:14:101","nodeType":"YulFunctionCall","src":"14406:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"14422:34:101","nodeType":"YulLiteral","src":"14422:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"14399:6:101","nodeType":"YulIdentifier","src":"14399:6:101"},"nativeSrc":"14399:58:101","nodeType":"YulFunctionCall","src":"14399:58:101"},"nativeSrc":"14399:58:101","nodeType":"YulExpressionStatement","src":"14399:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14478:6:101","nodeType":"YulIdentifier","src":"14478:6:101"},{"kind":"number","nativeSrc":"14486:2:101","nodeType":"YulLiteral","src":"14486:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14474:3:101","nodeType":"YulIdentifier","src":"14474:3:101"},"nativeSrc":"14474:15:101","nodeType":"YulFunctionCall","src":"14474:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"14491:8:101","nodeType":"YulLiteral","src":"14491:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"14467:6:101","nodeType":"YulIdentifier","src":"14467:6:101"},"nativeSrc":"14467:33:101","nodeType":"YulFunctionCall","src":"14467:33:101"},"nativeSrc":"14467:33:101","nodeType":"YulExpressionStatement","src":"14467:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"14282:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14380:6:101","nodeType":"YulTypedName","src":"14380:6:101","type":""}],"src":"14282:225:101"},{"body":{"nativeSrc":"14659:220:101","nodeType":"YulBlock","src":"14659:220:101","statements":[{"nativeSrc":"14669:74:101","nodeType":"YulAssignment","src":"14669:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14735:3:101","nodeType":"YulIdentifier","src":"14735:3:101"},{"kind":"number","nativeSrc":"14740:2:101","nodeType":"YulLiteral","src":"14740:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14676:58:101","nodeType":"YulIdentifier","src":"14676:58:101"},"nativeSrc":"14676:67:101","nodeType":"YulFunctionCall","src":"14676:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14669:3:101","nodeType":"YulIdentifier","src":"14669:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14841:3:101","nodeType":"YulIdentifier","src":"14841:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"14752:88:101","nodeType":"YulIdentifier","src":"14752:88:101"},"nativeSrc":"14752:93:101","nodeType":"YulFunctionCall","src":"14752:93:101"},"nativeSrc":"14752:93:101","nodeType":"YulExpressionStatement","src":"14752:93:101"},{"nativeSrc":"14854:19:101","nodeType":"YulAssignment","src":"14854:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14865:3:101","nodeType":"YulIdentifier","src":"14865:3:101"},{"kind":"number","nativeSrc":"14870:2:101","nodeType":"YulLiteral","src":"14870:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14861:3:101","nodeType":"YulIdentifier","src":"14861:3:101"},"nativeSrc":"14861:12:101","nodeType":"YulFunctionCall","src":"14861:12:101"},"variableNames":[{"name":"end","nativeSrc":"14854:3:101","nodeType":"YulIdentifier","src":"14854:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"14513:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14647:3:101","nodeType":"YulTypedName","src":"14647:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14655:3:101","nodeType":"YulTypedName","src":"14655:3:101","type":""}],"src":"14513:366:101"},{"body":{"nativeSrc":"15056:248:101","nodeType":"YulBlock","src":"15056:248:101","statements":[{"nativeSrc":"15066:26:101","nodeType":"YulAssignment","src":"15066:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15078:9:101","nodeType":"YulIdentifier","src":"15078:9:101"},{"kind":"number","nativeSrc":"15089:2:101","nodeType":"YulLiteral","src":"15089:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15074:3:101","nodeType":"YulIdentifier","src":"15074:3:101"},"nativeSrc":"15074:18:101","nodeType":"YulFunctionCall","src":"15074:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15066:4:101","nodeType":"YulIdentifier","src":"15066:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15113:9:101","nodeType":"YulIdentifier","src":"15113:9:101"},{"kind":"number","nativeSrc":"15124:1:101","nodeType":"YulLiteral","src":"15124:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15109:3:101","nodeType":"YulIdentifier","src":"15109:3:101"},"nativeSrc":"15109:17:101","nodeType":"YulFunctionCall","src":"15109:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15132:4:101","nodeType":"YulIdentifier","src":"15132:4:101"},{"name":"headStart","nativeSrc":"15138:9:101","nodeType":"YulIdentifier","src":"15138:9:101"}],"functionName":{"name":"sub","nativeSrc":"15128:3:101","nodeType":"YulIdentifier","src":"15128:3:101"},"nativeSrc":"15128:20:101","nodeType":"YulFunctionCall","src":"15128:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15102:6:101","nodeType":"YulIdentifier","src":"15102:6:101"},"nativeSrc":"15102:47:101","nodeType":"YulFunctionCall","src":"15102:47:101"},"nativeSrc":"15102:47:101","nodeType":"YulExpressionStatement","src":"15102:47:101"},{"nativeSrc":"15158:139:101","nodeType":"YulAssignment","src":"15158:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15292:4:101","nodeType":"YulIdentifier","src":"15292:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"15166:124:101","nodeType":"YulIdentifier","src":"15166:124:101"},"nativeSrc":"15166:131:101","nodeType":"YulFunctionCall","src":"15166:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15158:4:101","nodeType":"YulIdentifier","src":"15158:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14885:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15036:9:101","nodeType":"YulTypedName","src":"15036:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15051:4:101","nodeType":"YulTypedName","src":"15051:4:101","type":""}],"src":"14885:419:101"},{"body":{"nativeSrc":"15416:75:101","nodeType":"YulBlock","src":"15416:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15438:6:101","nodeType":"YulIdentifier","src":"15438:6:101"},{"kind":"number","nativeSrc":"15446:1:101","nodeType":"YulLiteral","src":"15446:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15434:3:101","nodeType":"YulIdentifier","src":"15434:3:101"},"nativeSrc":"15434:14:101","nodeType":"YulFunctionCall","src":"15434:14:101"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"15450:33:101","nodeType":"YulLiteral","src":"15450:33:101","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"15427:6:101","nodeType":"YulIdentifier","src":"15427:6:101"},"nativeSrc":"15427:57:101","nodeType":"YulFunctionCall","src":"15427:57:101"},"nativeSrc":"15427:57:101","nodeType":"YulExpressionStatement","src":"15427:57:101"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"15310:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15408:6:101","nodeType":"YulTypedName","src":"15408:6:101","type":""}],"src":"15310:181:101"},{"body":{"nativeSrc":"15643:220:101","nodeType":"YulBlock","src":"15643:220:101","statements":[{"nativeSrc":"15653:74:101","nodeType":"YulAssignment","src":"15653:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15719:3:101","nodeType":"YulIdentifier","src":"15719:3:101"},{"kind":"number","nativeSrc":"15724:2:101","nodeType":"YulLiteral","src":"15724:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15660:58:101","nodeType":"YulIdentifier","src":"15660:58:101"},"nativeSrc":"15660:67:101","nodeType":"YulFunctionCall","src":"15660:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15653:3:101","nodeType":"YulIdentifier","src":"15653:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15825:3:101","nodeType":"YulIdentifier","src":"15825:3:101"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"15736:88:101","nodeType":"YulIdentifier","src":"15736:88:101"},"nativeSrc":"15736:93:101","nodeType":"YulFunctionCall","src":"15736:93:101"},"nativeSrc":"15736:93:101","nodeType":"YulExpressionStatement","src":"15736:93:101"},{"nativeSrc":"15838:19:101","nodeType":"YulAssignment","src":"15838:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15849:3:101","nodeType":"YulIdentifier","src":"15849:3:101"},{"kind":"number","nativeSrc":"15854:2:101","nodeType":"YulLiteral","src":"15854:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15845:3:101","nodeType":"YulIdentifier","src":"15845:3:101"},"nativeSrc":"15845:12:101","nodeType":"YulFunctionCall","src":"15845:12:101"},"variableNames":[{"name":"end","nativeSrc":"15838:3:101","nodeType":"YulIdentifier","src":"15838:3:101"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"15497:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15631:3:101","nodeType":"YulTypedName","src":"15631:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15639:3:101","nodeType":"YulTypedName","src":"15639:3:101","type":""}],"src":"15497:366:101"},{"body":{"nativeSrc":"16040:248:101","nodeType":"YulBlock","src":"16040:248:101","statements":[{"nativeSrc":"16050:26:101","nodeType":"YulAssignment","src":"16050:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16062:9:101","nodeType":"YulIdentifier","src":"16062:9:101"},{"kind":"number","nativeSrc":"16073:2:101","nodeType":"YulLiteral","src":"16073:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16058:3:101","nodeType":"YulIdentifier","src":"16058:3:101"},"nativeSrc":"16058:18:101","nodeType":"YulFunctionCall","src":"16058:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16050:4:101","nodeType":"YulIdentifier","src":"16050:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16097:9:101","nodeType":"YulIdentifier","src":"16097:9:101"},{"kind":"number","nativeSrc":"16108:1:101","nodeType":"YulLiteral","src":"16108:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16093:3:101","nodeType":"YulIdentifier","src":"16093:3:101"},"nativeSrc":"16093:17:101","nodeType":"YulFunctionCall","src":"16093:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16116:4:101","nodeType":"YulIdentifier","src":"16116:4:101"},{"name":"headStart","nativeSrc":"16122:9:101","nodeType":"YulIdentifier","src":"16122:9:101"}],"functionName":{"name":"sub","nativeSrc":"16112:3:101","nodeType":"YulIdentifier","src":"16112:3:101"},"nativeSrc":"16112:20:101","nodeType":"YulFunctionCall","src":"16112:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16086:6:101","nodeType":"YulIdentifier","src":"16086:6:101"},"nativeSrc":"16086:47:101","nodeType":"YulFunctionCall","src":"16086:47:101"},"nativeSrc":"16086:47:101","nodeType":"YulExpressionStatement","src":"16086:47:101"},{"nativeSrc":"16142:139:101","nodeType":"YulAssignment","src":"16142:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16276:4:101","nodeType":"YulIdentifier","src":"16276:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"16150:124:101","nodeType":"YulIdentifier","src":"16150:124:101"},"nativeSrc":"16150:131:101","nodeType":"YulFunctionCall","src":"16150:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16142:4:101","nodeType":"YulIdentifier","src":"16142:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15869:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16020:9:101","nodeType":"YulTypedName","src":"16020:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16035:4:101","nodeType":"YulTypedName","src":"16035:4:101","type":""}],"src":"15869:419:101"},{"body":{"nativeSrc":"16400:76:101","nodeType":"YulBlock","src":"16400:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16422:6:101","nodeType":"YulIdentifier","src":"16422:6:101"},{"kind":"number","nativeSrc":"16430:1:101","nodeType":"YulLiteral","src":"16430:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16418:3:101","nodeType":"YulIdentifier","src":"16418:3:101"},"nativeSrc":"16418:14:101","nodeType":"YulFunctionCall","src":"16418:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"16434:34:101","nodeType":"YulLiteral","src":"16434:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"16411:6:101","nodeType":"YulIdentifier","src":"16411:6:101"},"nativeSrc":"16411:58:101","nodeType":"YulFunctionCall","src":"16411:58:101"},"nativeSrc":"16411:58:101","nodeType":"YulExpressionStatement","src":"16411:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"16294:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16392:6:101","nodeType":"YulTypedName","src":"16392:6:101","type":""}],"src":"16294:182:101"},{"body":{"nativeSrc":"16628:220:101","nodeType":"YulBlock","src":"16628:220:101","statements":[{"nativeSrc":"16638:74:101","nodeType":"YulAssignment","src":"16638:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"16704:3:101","nodeType":"YulIdentifier","src":"16704:3:101"},{"kind":"number","nativeSrc":"16709:2:101","nodeType":"YulLiteral","src":"16709:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16645:58:101","nodeType":"YulIdentifier","src":"16645:58:101"},"nativeSrc":"16645:67:101","nodeType":"YulFunctionCall","src":"16645:67:101"},"variableNames":[{"name":"pos","nativeSrc":"16638:3:101","nodeType":"YulIdentifier","src":"16638:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16810:3:101","nodeType":"YulIdentifier","src":"16810:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"16721:88:101","nodeType":"YulIdentifier","src":"16721:88:101"},"nativeSrc":"16721:93:101","nodeType":"YulFunctionCall","src":"16721:93:101"},"nativeSrc":"16721:93:101","nodeType":"YulExpressionStatement","src":"16721:93:101"},{"nativeSrc":"16823:19:101","nodeType":"YulAssignment","src":"16823:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"16834:3:101","nodeType":"YulIdentifier","src":"16834:3:101"},{"kind":"number","nativeSrc":"16839:2:101","nodeType":"YulLiteral","src":"16839:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16830:3:101","nodeType":"YulIdentifier","src":"16830:3:101"},"nativeSrc":"16830:12:101","nodeType":"YulFunctionCall","src":"16830:12:101"},"variableNames":[{"name":"end","nativeSrc":"16823:3:101","nodeType":"YulIdentifier","src":"16823:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"16482:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16616:3:101","nodeType":"YulTypedName","src":"16616:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16624:3:101","nodeType":"YulTypedName","src":"16624:3:101","type":""}],"src":"16482:366:101"},{"body":{"nativeSrc":"17025:248:101","nodeType":"YulBlock","src":"17025:248:101","statements":[{"nativeSrc":"17035:26:101","nodeType":"YulAssignment","src":"17035:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17047:9:101","nodeType":"YulIdentifier","src":"17047:9:101"},{"kind":"number","nativeSrc":"17058:2:101","nodeType":"YulLiteral","src":"17058:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17043:3:101","nodeType":"YulIdentifier","src":"17043:3:101"},"nativeSrc":"17043:18:101","nodeType":"YulFunctionCall","src":"17043:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17035:4:101","nodeType":"YulIdentifier","src":"17035:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17082:9:101","nodeType":"YulIdentifier","src":"17082:9:101"},{"kind":"number","nativeSrc":"17093:1:101","nodeType":"YulLiteral","src":"17093:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17078:3:101","nodeType":"YulIdentifier","src":"17078:3:101"},"nativeSrc":"17078:17:101","nodeType":"YulFunctionCall","src":"17078:17:101"},{"arguments":[{"name":"tail","nativeSrc":"17101:4:101","nodeType":"YulIdentifier","src":"17101:4:101"},{"name":"headStart","nativeSrc":"17107:9:101","nodeType":"YulIdentifier","src":"17107:9:101"}],"functionName":{"name":"sub","nativeSrc":"17097:3:101","nodeType":"YulIdentifier","src":"17097:3:101"},"nativeSrc":"17097:20:101","nodeType":"YulFunctionCall","src":"17097:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17071:6:101","nodeType":"YulIdentifier","src":"17071:6:101"},"nativeSrc":"17071:47:101","nodeType":"YulFunctionCall","src":"17071:47:101"},"nativeSrc":"17071:47:101","nodeType":"YulExpressionStatement","src":"17071:47:101"},{"nativeSrc":"17127:139:101","nodeType":"YulAssignment","src":"17127:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"17261:4:101","nodeType":"YulIdentifier","src":"17261:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"17135:124:101","nodeType":"YulIdentifier","src":"17135:124:101"},"nativeSrc":"17135:131:101","nodeType":"YulFunctionCall","src":"17135:131:101"},"variableNames":[{"name":"tail","nativeSrc":"17127:4:101","nodeType":"YulIdentifier","src":"17127:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16854:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17005:9:101","nodeType":"YulTypedName","src":"17005:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17020:4:101","nodeType":"YulTypedName","src":"17020:4:101","type":""}],"src":"16854:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7690":[{"length":32,"start":398}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610106575f3560e01c806370a082311161009e578063a457c2d71161006e578063a457c2d71461022b578063a9059cbb1461023e578063dd62ed3e14610251578063f2fde38b14610264578063fca3b5aa14610277575f80fd5b806370a08231146101e2578063715018a61461020a5780638da5cb5b1461021257806395d89b4114610223575f80fd5b806323b872dd116100d957806323b872dd14610179578063313ce5671461018c57806339509351146101ba57806357915897146101cd575f80fd5b806306fdde031461010a5780630754617214610128578063095ea7b31461014857806318160ddd14610168575b5f80fd5b61011261028a565b60405161011f91906107b7565b60405180910390f35b60065461013b906001600160a01b031681565b60405161011f91906107ee565b61015b61015636600461082b565b61031a565b60405161011f919061086d565b6002545b60405161011f9190610881565b61015b61018736600461088f565b610333565b7f000000000000000000000000000000000000000000000000000000000000000060405161011f91906108e4565b61015b6101c836600461082b565b610356565b6101e06101db3660046108f2565b610377565b005b61016c6101f0366004610918565b6001600160a01b03165f9081526020819052604090205490565b6101e0610384565b6005546001600160a01b031661013b565b610112610397565b61015b61023936600461082b565b6103a6565b61015b61024c36600461082b565b6103eb565b61016c61025f366004610936565b6103f8565b6101e0610272366004610918565b610422565b6101e0610285366004610918565b610459565b6060600380546102999061097a565b80601f01602080910402602001604051908101604052809291908181526020018280546102c59061097a565b80156103105780601f106102e757610100808354040283529160200191610310565b820191905f5260205f20905b8154815290600101906020018083116102f357829003601f168201915b5050505050905090565b5f33610327818585610483565b60019150505b92915050565b5f33610340858285610536565b61034b85858561057e565b506001949350505050565b5f3361032781858561036883836103f8565b61037291906109ba565b610483565b610381338261066c565b50565b61038c610700565b6103955f61072a565b565b6060600480546102999061097a565b5f33816103b382866103f8565b9050838110156103de5760405162461bcd60e51b81526004016103d590610a11565b60405180910390fd5b61034b8286868403610483565b5f3361032781858561057e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61042a610700565b6001600160a01b0381166104505760405162461bcd60e51b81526004016103d590610a63565b6103818161072a565b610461610700565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166104a95760405162461bcd60e51b81526004016103d590610ab3565b6001600160a01b0382166104cf5760405162461bcd60e51b81526004016103d590610b01565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610529908590610881565b60405180910390a3505050565b5f61054184846103f8565b90505f198114610578578181101561056b5760405162461bcd60e51b81526004016103d590610b47565b6105788484848403610483565b50505050565b6001600160a01b0383166105a45760405162461bcd60e51b81526004016103d590610b98565b6001600160a01b0382166105ca5760405162461bcd60e51b81526004016103d590610be7565b6001600160a01b0383165f90815260208190526040902054818110156106025760405162461bcd60e51b81526004016103d590610c39565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061065f908690610881565b60405180910390a3610578565b6001600160a01b0382166106925760405162461bcd60e51b81526004016103d590610c7c565b8060025f8282546106a391906109ba565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106f4908590610881565b60405180910390a35050565b6005546001600160a01b031633146103955760405162461bcd60e51b81526004016103d590610cbd565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f61078f825190565b8084526020840193506107a681856020860161077b565b601f01601f19169290920192915050565b602080825281016107c88184610786565b9392505050565b5f6001600160a01b03821661032d565b6107e8816107cf565b82525050565b6020810161032d82846107df565b610805816107cf565b8114610381575f80fd5b803561032d816107fc565b80610805565b803561032d8161081a565b5f806040838503121561083f5761083f5f80fd5b5f61084a858561080f565b925050602061085b85828601610820565b9150509250929050565b8015156107e8565b6020810161032d8284610865565b806107e8565b6020810161032d828461087b565b5f805f606084860312156108a4576108a45f80fd5b5f6108af868661080f565b93505060206108c08682870161080f565b92505060406108d186828701610820565b9150509250925092565b60ff81166107e8565b6020810161032d82846108db565b5f60208284031215610905576109055f80fd5b5f6109108484610820565b949350505050565b5f6020828403121561092b5761092b5f80fd5b5f610910848461080f565b5f806040838503121561094a5761094a5f80fd5b5f610955858561080f565b925050602061085b8582860161080f565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061098e57607f821691505b6020821081036109a0576109a0610966565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561032d5761032d6109a6565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161032d816109cd565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610a0a565b6020808252810161032d81610a21565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610a0a565b6020808252810161032d81610a73565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610a0a565b6020808252810161032d81610ac3565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161032d81610b11565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610a0a565b6020808252810161032d81610b57565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610a0a565b6020808252810161032d81610ba8565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610a0a565b6020808252810161032d81610bf7565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610b40565b6020808252810161032d81610c49565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610b40565b6020808252810161032d81610c8c56fea2646970667358221220911d88c199c490f1eb2a6d5f155ba03284c12c21ee1bfd533d58fa90f9a7923164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xFCA3B5AA EQ PUSH2 0x277 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1E2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x223 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x1CD JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x7546172 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x168 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x112 PUSH2 0x28A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x13B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x15B PUSH2 0x156 CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x86D JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x187 CALLDATASIZE PUSH1 0x4 PUSH2 0x88F JUMP JUMPDEST PUSH2 0x333 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x8E4 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x356 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x377 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16C PUSH2 0x1F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x918 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x13B JUMP JUMPDEST PUSH2 0x112 PUSH2 0x397 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x239 CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x24C CALLDATASIZE PUSH1 0x4 PUSH2 0x82B JUMP JUMPDEST PUSH2 0x3EB JUMP JUMPDEST PUSH2 0x16C PUSH2 0x25F CALLDATASIZE PUSH1 0x4 PUSH2 0x936 JUMP JUMPDEST PUSH2 0x3F8 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x918 JUMP JUMPDEST PUSH2 0x422 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x285 CALLDATASIZE PUSH1 0x4 PUSH2 0x918 JUMP JUMPDEST PUSH2 0x459 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x299 SWAP1 PUSH2 0x97A 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 0x2C5 SWAP1 PUSH2 0x97A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x310 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x310 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2F3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x327 DUP2 DUP6 DUP6 PUSH2 0x483 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x340 DUP6 DUP3 DUP6 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x34B DUP6 DUP6 DUP6 PUSH2 0x57E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x327 DUP2 DUP6 DUP6 PUSH2 0x368 DUP4 DUP4 PUSH2 0x3F8 JUMP JUMPDEST PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x9BA JUMP JUMPDEST PUSH2 0x483 JUMP JUMPDEST PUSH2 0x381 CALLER DUP3 PUSH2 0x66C JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x38C PUSH2 0x700 JUMP JUMPDEST PUSH2 0x395 PUSH0 PUSH2 0x72A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x299 SWAP1 PUSH2 0x97A JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x3B3 DUP3 DUP7 PUSH2 0x3F8 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xA11 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x34B DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x483 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x327 DUP2 DUP6 DUP6 PUSH2 0x57E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x42A PUSH2 0x700 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x450 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xA63 JUMP JUMPDEST PUSH2 0x381 DUP2 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x461 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x529 SWAP1 DUP6 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x541 DUP5 DUP5 PUSH2 0x3F8 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x578 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xB47 JUMP JUMPDEST PUSH2 0x578 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x483 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xB98 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xBE7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xC39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x65F SWAP1 DUP7 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xC7C JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x6A3 SWAP2 SWAP1 PUSH2 0x9BA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6F4 SWAP1 DUP6 SWAP1 PUSH2 0x881 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x395 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D5 SWAP1 PUSH2 0xCBD JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x78F DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x7A6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x77B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x7C8 DUP2 DUP5 PUSH2 0x786 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x32D JUMP JUMPDEST PUSH2 0x7E8 DUP2 PUSH2 0x7CF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x7DF JUMP JUMPDEST PUSH2 0x805 DUP2 PUSH2 0x7CF JUMP JUMPDEST DUP2 EQ PUSH2 0x381 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x32D DUP2 PUSH2 0x7FC JUMP JUMPDEST DUP1 PUSH2 0x805 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x32D DUP2 PUSH2 0x81A JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x83F JUMPI PUSH2 0x83F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x84A DUP6 DUP6 PUSH2 0x80F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x85B DUP6 DUP3 DUP7 ADD PUSH2 0x820 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x865 JUMP JUMPDEST DUP1 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x87B JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8A4 JUMPI PUSH2 0x8A4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8AF DUP7 DUP7 PUSH2 0x80F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x8C0 DUP7 DUP3 DUP8 ADD PUSH2 0x80F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x8D1 DUP7 DUP3 DUP8 ADD PUSH2 0x820 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x32D DUP3 DUP5 PUSH2 0x8DB JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x905 JUMPI PUSH2 0x905 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x910 DUP5 DUP5 PUSH2 0x820 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x92B JUMPI PUSH2 0x92B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x910 DUP5 DUP5 PUSH2 0x80F JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x94A JUMPI PUSH2 0x94A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x955 DUP6 DUP6 PUSH2 0x80F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x85B DUP6 DUP3 DUP7 ADD PUSH2 0x80F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x98E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x9A0 JUMPI PUSH2 0x9A0 PUSH2 0x966 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x32D JUMPI PUSH2 0x32D PUSH2 0x9A6 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xA21 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xA73 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xAC3 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xB11 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xBA8 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xA0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xB40 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xB40 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x32D DUP2 PUSH2 0xC8C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 SAR DUP9 0xC1 SWAP10 0xC4 SWAP1 CALL 0xEB 0x2A PUSH14 0x5F155BA03284C12C21EE1BFD533D PC STATICCALL SWAP1 0xF9 0xA7 SWAP3 BALANCE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"306:646:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;396:21:76;;;;;-1:-1:-1;;;;;396:21:76;;;;;;;;;;:::i;4444:197:11:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;837:113:76:-;934:9;837:113;;;;;;:::i;5854:234:11:-;;;;;;:::i;:::-;;:::i;654:83:76:-;;;;;;:::i;:::-;;:::i;:::-;;3419:125:11;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;1824:101:10;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:10;1201:85;;2369:102:11;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2074:198:10:-;;;;;;:::i;:::-;;:::i;743:88:76:-;;;;;;:::i;:::-;;:::i;2158:98:11:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:11;;5203:256;-1:-1:-1;;;;5203:256:11:o;5854:234::-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;654:83:76:-;705:25;711:10;723:6;705:5;:25::i;:::-;654:83;:::o;1824:101:10:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2369:102:11:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;2074:198:10:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;2237:28;2256:8;2237:18;:28::i;743:88:76:-:0;1094:13:10;:11;:13::i;:::-;808:6:76::1;:16:::0;;-1:-1:-1;;;;;;808:16:76::1;-1:-1:-1::0;;;;;808:16:76;;;::::1;::::0;;;::::1;::::0;;743:88::o;10457:340:11:-;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;8520:535;-1:-1:-1;;;;;8603:21:11;;8595:65;;;;-1:-1:-1;;;8595:65:11;;;;;;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:11;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;8520:535;;:::o;1359:130:10:-;1273:6;;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;2426:187::-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;287:139:101:-;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;:::-;1143:86;923:313;-1:-1:-1;;;923:313:101:o;1374:96::-;1411:7;-1:-1:-1;;;;;1308:54:101;;1440:24;1242:126;1476:118;1563:24;1581:5;1563:24;:::i;:::-;1558:3;1551:37;1476:118;;:::o;1600:222::-;1731:2;1716:18;;1744:71;1720:9;1788:6;1744:71;:::i;2155:122::-;2228:24;2246:5;2228:24;:::i;:::-;2221:5;2218:35;2208:63;;2267:1;2264;2257:12;2283:139;2354:20;;2383:33;2354:20;2383:33;:::i;2511:122::-;2602:5;2584:24;2428:77;2639:139;2710:20;;2739:33;2710:20;2739:33;:::i;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;306:646:76;;;2915:79:101;3035:1;3060:53;3105:7;3085:9;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3360:109::-;3334:13;;3327:21;3441;3264:90;3475:210;3600:2;3585:18;;3613:65;3589:9;3651:6;3613:65;:::i;3691:118::-;3796:5;3778:24;2428:77;3815:222;3946:2;3931:18;;3959:71;3935:9;4003:6;3959:71;:::i;4043:619::-;4120:6;4128;4136;4185:2;4173:9;4164:7;4160:23;4156:32;4153:119;;;4191:79;306:646:76;;;4191:79:101;4311:1;4336:53;4381:7;4361:9;4336:53;:::i;:::-;4326:63;;4282:117;4438:2;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4409:118;4566:2;4592:53;4637:7;4628:6;4617:9;4613:22;4592:53;:::i;:::-;4582:63;;4537:118;4043:619;;;;;:::o;4760:112::-;4743:4;4732:16;;4843:22;4668:86;4878:214;5005:2;4990:18;;5018:67;4994:9;5058:6;5018:67;:::i;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;306:646:76;;;5212:79:101;5332:1;5357:53;5402:7;5382:9;5357:53;:::i;:::-;5347:63;5098:329;-1:-1:-1;;;;5098:329:101:o;5433:::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;306:646:76;;;5547:79:101;5667:1;5692:53;5737:7;5717:9;5692:53;:::i;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;306:646:76;;;5899:79:101;6019:1;6044:53;6089:7;6069:9;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;6248:180::-;-1:-1:-1;;;6293:1:101;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:320;6515:1;6505:12;;6562:1;6552:12;;;6573:81;;6639:4;6631:6;6627:17;6617:27;;6573:81;6701:2;6693:6;6690:14;6670:18;6667:38;6664:84;;6720:18;;:::i;:::-;6485:269;6434:320;;;:::o;6760:180::-;-1:-1:-1;;;6805:1:101;6798:88;6905:4;6902:1;6895:15;6929:4;6926:1;6919:15;6946:191;7075:9;;;7097:10;;;7094:36;;;7110:18;;:::i;7373:366::-;7600:2;218:19;;7515:3;270:4;261:14;;7283:34;7260:58;;-1:-1:-1;;;7347:2:101;7335:15;;7328:32;7529:74;-1:-1:-1;7612:93:101;-1:-1:-1;7730:2:101;7721:12;;7373:366::o;7745:419::-;7949:2;7962:47;;;7934:18;;8026:131;7934:18;8026:131;:::i;8401:366::-;8628:2;218:19;;8543:3;270:4;261:14;;8310:34;8287:58;;-1:-1:-1;;;8374:2:101;8362:15;;8355:33;8557:74;-1:-1:-1;8640:93:101;8170:225;8773:419;8977:2;8990:47;;;8962:18;;9054:131;8962:18;9054:131;:::i;9427:366::-;9654:2;218:19;;9569:3;270:4;261:14;;9338:34;9315:58;;-1:-1:-1;;;9402:2:101;9390:15;;9383:31;9583:74;-1:-1:-1;9666:93:101;9198:223;9799:419;10003:2;10016:47;;;9988:18;;10080:131;9988:18;10080:131;:::i;10451:366::-;10678:2;218:19;;10593:3;270:4;261:14;;10364:34;10341:58;;-1:-1:-1;;;10428:2:101;10416:15;;10409:29;10607:74;-1:-1:-1;10690:93:101;10224:221;10823:419;11027:2;11040:47;;;11012:18;;11104:131;11012:18;11104:131;:::i;11433:366::-;11660:2;218:19;;11575:3;270:4;261:14;;11388:31;11365:55;;11589:74;-1:-1:-1;11672:93:101;-1:-1:-1;11790:2:101;11781:12;;11433:366::o;11805:419::-;12009:2;12022:47;;;11994:18;;12086:131;11994:18;12086:131;:::i;12460:366::-;12687:2;218:19;;12602:3;270:4;261:14;;12370:34;12347:58;;-1:-1:-1;;;12434:2:101;12422:15;;12415:32;12616:74;-1:-1:-1;12699:93:101;12230:224;12832:419;13036:2;13049:47;;;13021:18;;13113:131;13021:18;13113:131;:::i;13485:366::-;13712:2;218:19;;13627:3;270:4;261:14;;13397:34;13374:58;;-1:-1:-1;;;13461:2:101;13449:15;;13442:30;13641:74;-1:-1:-1;13724:93:101;13257:222;13857:419;14061:2;14074:47;;;14046:18;;14138:131;14046:18;14138:131;:::i;14513:366::-;14740:2;218:19;;14655:3;270:4;261:14;;14422:34;14399:58;;-1:-1:-1;;;14486:2:101;14474:15;;14467:33;14669:74;-1:-1:-1;14752:93:101;14282:225;14885:419;15089:2;15102:47;;;15074:18;;15166:131;15074:18;15166:131;:::i;15497:366::-;15724:2;218:19;;15639:3;270:4;261:14;;15450:33;15427:57;;15653:74;-1:-1:-1;15736:93:101;15310:181;15869:419;16073:2;16086:47;;;16058:18;;16150:131;16058:18;16150:131;:::i;16482:366::-;16709:2;218:19;;;16434:34;261:14;;16411:58;;;16624:3;16721:93;16294:182;16854:419;17058:2;17071:47;;;17043:18;;17135:131;17043:18;17135:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"666200","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"infinite","decreaseAllowance(address,uint256)":"infinite","faucet(uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","minter()":"infinite","name()":"infinite","owner()":"infinite","renounceOwnership()":"infinite","setMinter(address)":"infinite","symbol()":"infinite","totalSupply()":"2447","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","faucet(uint256)":"57915897","increaseAllowance(address,uint256)":"39509351","minter()":"07546172","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setMinter(address)":"fca3b5aa","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"faucet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"}],\"name\":\"setMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"contracts/test/MockAsBNB.sol\":\"MockAsBNB\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/IAsBNB.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAsBNB {\\n    function minter() external view returns (address);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x34a434d78d48a1c33f79740bab9454fb5eaf05eb38e3abddd3fe55e6f4b4c937\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockAsBNB.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { ERC20 } from \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\nimport { IAsBNB } from \\\"../interfaces/IAsBNB.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockAsBNB is ERC20, Ownable, IAsBNB {\\n    uint8 private immutable _decimals;\\n    address public minter;\\n\\n    constructor(\\n        string memory name_,\\n        string memory symbol_,\\n        uint8 decimals_,\\n        address minter_\\n    ) ERC20(name_, symbol_) Ownable() {\\n        _decimals = decimals_;\\n        minter = minter_;\\n    }\\n\\n    function faucet(uint256 amount) external {\\n        _mint(msg.sender, amount);\\n    }\\n\\n    function setMinter(address minter_) external onlyOwner {\\n        minter = minter_;\\n    }\\n\\n    function decimals() public view virtual override(ERC20, IAsBNB) returns (uint8) {\\n        return _decimals;\\n    }\\n}\\n\",\"keccak256\":\"0x94527caf0d123d89f46bac6cb0784c1dea0fc6e60de9da4dcbb5ff8080a047cc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"contracts/test/MockAsBNB.sol:MockAsBNB","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"contracts/test/MockAsBNB.sol:MockAsBNB","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"contracts/test/MockAsBNB.sol:MockAsBNB","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"contracts/test/MockAsBNB.sol:MockAsBNB","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"contracts/test/MockAsBNB.sol:MockAsBNB","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":1101,"contract":"contracts/test/MockAsBNB.sol:MockAsBNB","label":"_owner","offset":0,"slot":"5","type":"t_address"},{"astId":7692,"contract":"contracts/test/MockAsBNB.sol:MockAsBNB","label":"minter","offset":0,"slot":"6","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockAsBNBMinter.sol":{"MockAsBNBMinter":{"abi":[{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"convertToTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b5060b880601a5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80638590625614602a575b5f80fd5b603860353660046055565b90565b604051604391906077565b60405180910390f35b80355b92915050565b5f6020828403121560665760665f80fd5b5f606f8484604c565b949350505050565b81815260208101604f56fea26469706673582212209298a2f4bd0b19897e217d2e98123235b41da20ef87032d355dccc8f77bb0b1864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0xB8 DUP1 PUSH1 0x1A PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x85906256 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x38 PUSH1 0x35 CALLDATASIZE PUSH1 0x4 PUSH1 0x55 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x43 SWAP2 SWAP1 PUSH1 0x77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 CALLDATALOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x66 JUMPI PUSH1 0x66 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x6F DUP5 DUP5 PUSH1 0x4C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH1 0x4F JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SWAP9 LOG2 DELEGATECALL 0xBD SIGNEXTEND NOT DUP10 PUSH31 0x217D2E98123235B41DA20EF87032D355DCCC8F77BB0B1864736F6C63430008 NOT STOP CALLER ","sourceMap":"194:163:77:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@convertToTokens_7771":{"entryPoint":null,"id":7771,"parameterSlots":1,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":76,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":85,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":119,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1374:101","nodeType":"YulBlock","src":"0:1374:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:32:101","nodeType":"YulBlock","src":"379:32:101","statements":[{"nativeSrc":"389:16:101","nodeType":"YulAssignment","src":"389:16:101","value":{"name":"value","nativeSrc":"400:5:101","nodeType":"YulIdentifier","src":"400:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"334:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:77:101"},{"body":{"nativeSrc":"460:79:101","nodeType":"YulBlock","src":"460:79:101","statements":[{"body":{"nativeSrc":"517:16:101","nodeType":"YulBlock","src":"517:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:101","nodeType":"YulLiteral","src":"526:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:101","nodeType":"YulLiteral","src":"529:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:101","nodeType":"YulIdentifier","src":"519:6:101"},"nativeSrc":"519:12:101","nodeType":"YulFunctionCall","src":"519:12:101"},"nativeSrc":"519:12:101","nodeType":"YulExpressionStatement","src":"519:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:101","nodeType":"YulIdentifier","src":"483:5:101"},{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"490:17:101","nodeType":"YulIdentifier","src":"490:17:101"},"nativeSrc":"490:24:101","nodeType":"YulFunctionCall","src":"490:24:101"}],"functionName":{"name":"eq","nativeSrc":"480:2:101","nodeType":"YulIdentifier","src":"480:2:101"},"nativeSrc":"480:35:101","nodeType":"YulFunctionCall","src":"480:35:101"}],"functionName":{"name":"iszero","nativeSrc":"473:6:101","nodeType":"YulIdentifier","src":"473:6:101"},"nativeSrc":"473:43:101","nodeType":"YulFunctionCall","src":"473:43:101"},"nativeSrc":"470:63:101","nodeType":"YulIf","src":"470:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"417:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:101","nodeType":"YulTypedName","src":"453:5:101","type":""}],"src":"417:122:101"},{"body":{"nativeSrc":"597:87:101","nodeType":"YulBlock","src":"597:87:101","statements":[{"nativeSrc":"607:29:101","nodeType":"YulAssignment","src":"607:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:101","nodeType":"YulIdentifier","src":"629:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:101","nodeType":"YulIdentifier","src":"616:12:101"},"nativeSrc":"616:20:101","nodeType":"YulFunctionCall","src":"616:20:101"},"variableNames":[{"name":"value","nativeSrc":"607:5:101","nodeType":"YulIdentifier","src":"607:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:101","nodeType":"YulIdentifier","src":"672:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"645:26:101","nodeType":"YulIdentifier","src":"645:26:101"},"nativeSrc":"645:33:101","nodeType":"YulFunctionCall","src":"645:33:101"},"nativeSrc":"645:33:101","nodeType":"YulExpressionStatement","src":"645:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"545:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:101","nodeType":"YulTypedName","src":"575:6:101","type":""},{"name":"end","nativeSrc":"583:3:101","nodeType":"YulTypedName","src":"583:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:101","nodeType":"YulTypedName","src":"591:5:101","type":""}],"src":"545:139:101"},{"body":{"nativeSrc":"756:263:101","nodeType":"YulBlock","src":"756:263:101","statements":[{"body":{"nativeSrc":"802:83:101","nodeType":"YulBlock","src":"802:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"804:77:101","nodeType":"YulIdentifier","src":"804:77:101"},"nativeSrc":"804:79:101","nodeType":"YulFunctionCall","src":"804:79:101"},"nativeSrc":"804:79:101","nodeType":"YulExpressionStatement","src":"804:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"777:7:101","nodeType":"YulIdentifier","src":"777:7:101"},{"name":"headStart","nativeSrc":"786:9:101","nodeType":"YulIdentifier","src":"786:9:101"}],"functionName":{"name":"sub","nativeSrc":"773:3:101","nodeType":"YulIdentifier","src":"773:3:101"},"nativeSrc":"773:23:101","nodeType":"YulFunctionCall","src":"773:23:101"},{"kind":"number","nativeSrc":"798:2:101","nodeType":"YulLiteral","src":"798:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"769:3:101","nodeType":"YulIdentifier","src":"769:3:101"},"nativeSrc":"769:32:101","nodeType":"YulFunctionCall","src":"769:32:101"},"nativeSrc":"766:119:101","nodeType":"YulIf","src":"766:119:101"},{"nativeSrc":"895:117:101","nodeType":"YulBlock","src":"895:117:101","statements":[{"nativeSrc":"910:15:101","nodeType":"YulVariableDeclaration","src":"910:15:101","value":{"kind":"number","nativeSrc":"924:1:101","nodeType":"YulLiteral","src":"924:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"914:6:101","nodeType":"YulTypedName","src":"914:6:101","type":""}]},{"nativeSrc":"939:63:101","nodeType":"YulAssignment","src":"939:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"974:9:101","nodeType":"YulIdentifier","src":"974:9:101"},{"name":"offset","nativeSrc":"985:6:101","nodeType":"YulIdentifier","src":"985:6:101"}],"functionName":{"name":"add","nativeSrc":"970:3:101","nodeType":"YulIdentifier","src":"970:3:101"},"nativeSrc":"970:22:101","nodeType":"YulFunctionCall","src":"970:22:101"},{"name":"dataEnd","nativeSrc":"994:7:101","nodeType":"YulIdentifier","src":"994:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"949:20:101","nodeType":"YulIdentifier","src":"949:20:101"},"nativeSrc":"949:53:101","nodeType":"YulFunctionCall","src":"949:53:101"},"variableNames":[{"name":"value0","nativeSrc":"939:6:101","nodeType":"YulIdentifier","src":"939:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"690:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"726:9:101","nodeType":"YulTypedName","src":"726:9:101","type":""},{"name":"dataEnd","nativeSrc":"737:7:101","nodeType":"YulTypedName","src":"737:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"749:6:101","nodeType":"YulTypedName","src":"749:6:101","type":""}],"src":"690:329:101"},{"body":{"nativeSrc":"1090:53:101","nodeType":"YulBlock","src":"1090:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1107:3:101","nodeType":"YulIdentifier","src":"1107:3:101"},{"arguments":[{"name":"value","nativeSrc":"1130:5:101","nodeType":"YulIdentifier","src":"1130:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1112:17:101","nodeType":"YulIdentifier","src":"1112:17:101"},"nativeSrc":"1112:24:101","nodeType":"YulFunctionCall","src":"1112:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1100:6:101","nodeType":"YulIdentifier","src":"1100:6:101"},"nativeSrc":"1100:37:101","nodeType":"YulFunctionCall","src":"1100:37:101"},"nativeSrc":"1100:37:101","nodeType":"YulExpressionStatement","src":"1100:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1025:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1078:5:101","nodeType":"YulTypedName","src":"1078:5:101","type":""},{"name":"pos","nativeSrc":"1085:3:101","nodeType":"YulTypedName","src":"1085:3:101","type":""}],"src":"1025:118:101"},{"body":{"nativeSrc":"1247:124:101","nodeType":"YulBlock","src":"1247:124:101","statements":[{"nativeSrc":"1257:26:101","nodeType":"YulAssignment","src":"1257:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1269:9:101","nodeType":"YulIdentifier","src":"1269:9:101"},{"kind":"number","nativeSrc":"1280:2:101","nodeType":"YulLiteral","src":"1280:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1265:3:101","nodeType":"YulIdentifier","src":"1265:3:101"},"nativeSrc":"1265:18:101","nodeType":"YulFunctionCall","src":"1265:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1257:4:101","nodeType":"YulIdentifier","src":"1257:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1337:6:101","nodeType":"YulIdentifier","src":"1337:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1350:9:101","nodeType":"YulIdentifier","src":"1350:9:101"},{"kind":"number","nativeSrc":"1361:1:101","nodeType":"YulLiteral","src":"1361:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1346:3:101","nodeType":"YulIdentifier","src":"1346:3:101"},"nativeSrc":"1346:17:101","nodeType":"YulFunctionCall","src":"1346:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1293:43:101","nodeType":"YulIdentifier","src":"1293:43:101"},"nativeSrc":"1293:71:101","nodeType":"YulFunctionCall","src":"1293:71:101"},"nativeSrc":"1293:71:101","nodeType":"YulExpressionStatement","src":"1293:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1149:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1219:9:101","nodeType":"YulTypedName","src":"1219:9:101","type":""},{"name":"value0","nativeSrc":"1231:6:101","nodeType":"YulTypedName","src":"1231:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1242:4:101","nodeType":"YulTypedName","src":"1242:4:101","type":""}],"src":"1149:222:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600e575f80fd5b50600436106026575f3560e01c80638590625614602a575b5f80fd5b603860353660046055565b90565b604051604391906077565b60405180910390f35b80355b92915050565b5f6020828403121560665760665f80fd5b5f606f8484604c565b949350505050565b81815260208101604f56fea26469706673582212209298a2f4bd0b19897e217d2e98123235b41da20ef87032d355dccc8f77bb0b1864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x85906256 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x38 PUSH1 0x35 CALLDATASIZE PUSH1 0x4 PUSH1 0x55 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x43 SWAP2 SWAP1 PUSH1 0x77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 CALLDATALOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x66 JUMPI PUSH1 0x66 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x6F DUP5 DUP5 PUSH1 0x4C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH1 0x4F JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SWAP9 LOG2 DELEGATECALL 0xBD SIGNEXTEND NOT DUP10 PUSH31 0x217D2E98123235B41DA20EF87032D355DCCC8F77BB0B1864736F6C63430008 NOT STOP CALLER ","sourceMap":"194:163:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:114;;;;;;:::i;:::-;341:7;241:114;;;;;;;;:::i;:::-;;;;;;;;545:139:101;616:20;;645:33;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;194:163:77;;;804:79:101;924:1;949:53;994:7;974:9;949:53;:::i;:::-;939:63;690:329;-1:-1:-1;;;;690:329:101:o;1149:222::-;1100:37;;;1280:2;1265:18;;1293:71;1025:118"},"gasEstimates":{"creation":{"codeDepositCost":"36800","executionCost":"85","totalCost":"36885"},"external":{"convertToTokens(uint256)":"infinite"}},"methodIdentifiers":{"convertToTokens(uint256)":"85906256"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockAsBNBMinter.sol\":\"MockAsBNBMinter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAsBNBMinter.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IAsBNBMinter {\\n    function convertToTokens(uint256 amount) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0x3cf93eddba855443b20f0dcfd7938448c9b44caa866403f53b6cd5bcf4ec1003\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockAsBNBMinter.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { IAsBNBMinter } from \\\"../interfaces/IAsBNBMinter.sol\\\";\\n\\ncontract MockAsBNBMinter is IAsBNBMinter {\\n    function convertToTokens(uint256 _amount) external pure override returns (uint256) {\\n        return _amount;\\n    }\\n}\\n\",\"keccak256\":\"0x482bd87ace143267e000e3638fa5e55d963d31559acbe7ad4e7ed7fb09818a62\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockCallPrice.sol":{"CorrelatedTokenOracleInterface":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getPrice(address)":"41976e09","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockCallPrice.sol\":\"CorrelatedTokenOracleInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockCallPrice.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../interfaces/OracleInterface.sol\\\";\\n\\ninterface CorrelatedTokenOracleInterface {\\n    function updateSnapshot() external;\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ncontract MockCallPrice {\\n    function getMultiPrice(CorrelatedTokenOracleInterface oracle, address asset) public returns (uint256, uint256) {\\n        oracle.updateSnapshot();\\n        return (oracle.getPrice(asset), oracle.getPrice(asset));\\n    }\\n\\n    function getUnderlyingPriceResilientOracle(\\n        ResilientOracleInterface oracle,\\n        address vToken\\n    ) public returns (uint256, uint256) {\\n        oracle.updatePrice(vToken);\\n        oracle.updatePrice(vToken);\\n        return (oracle.getUnderlyingPrice(vToken), oracle.getUnderlyingPrice(vToken));\\n    }\\n\\n    function getAssetPriceResilientOracle(\\n        ResilientOracleInterface oracle,\\n        address asset\\n    ) public returns (uint256, uint256) {\\n        oracle.updateAssetPrice(asset);\\n        oracle.updateAssetPrice(asset);\\n        return (oracle.getPrice(asset), oracle.getPrice(asset));\\n    }\\n}\\n\",\"keccak256\":\"0x499db17c0c6973ae037972f11f567aba531944f1c27f99b9775dda5685888b62\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"MockCallPrice":{"abi":[{"inputs":[{"internalType":"contract ResilientOracleInterface","name":"oracle","type":"address"},{"internalType":"address","name":"asset","type":"address"}],"name":"getAssetPriceResilientOracle","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract CorrelatedTokenOracleInterface","name":"oracle","type":"address"},{"internalType":"address","name":"asset","type":"address"}],"name":"getMultiPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ResilientOracleInterface","name":"oracle","type":"address"},{"internalType":"address","name":"vToken","type":"address"}],"name":"getUnderlyingPriceResilientOracle","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b506104e68061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80630ddd2e27146100435780632bd6ec3e1461006d5780632cf689b414610080575b5f80fd5b6100566100513660046103fe565b610093565b604051610064929190610440565b60405180910390f35b61005661007b3660046103fe565b610228565b61005661008e3660046103fe565b610373565b5f80836001600160a01b031663b62cad69846040518263ffffffff1660e01b81526004016100c1919061046b565b5f604051808303815f87803b1580156100d8575f80fd5b505af11580156100ea573d5f803e3d5ffd5b505060405163b62cad6960e01b81526001600160a01b038716925063b62cad69915061011a90869060040161046b565b5f604051808303815f87803b158015610131575f80fd5b505af1158015610143573d5f803e3d5ffd5b50506040516341976e0960e01b81526001600160a01b03871692506341976e09915061017390869060040161046b565b602060405180830381865afa15801561018e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b2919061048a565b6040516341976e0960e01b81526001600160a01b038616906341976e09906101de90879060040161046b565b602060405180830381865afa1580156101f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021d919061048a565b915091509250929050565b5f80836001600160a01b03166396e85ced846040518263ffffffff1660e01b8152600401610256919061046b565b5f604051808303815f87803b15801561026d575f80fd5b505af115801561027f573d5f803e3d5ffd5b50506040516396e85ced60e01b81526001600160a01b03871692506396e85ced91506102af90869060040161046b565b5f604051808303815f87803b1580156102c6575f80fd5b505af11580156102d8573d5f803e3d5ffd5b505060405163fc57d4df60e01b81526001600160a01b038716925063fc57d4df915061030890869060040161046b565b602060405180830381865afa158015610323573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610347919061048a565b60405163fc57d4df60e01b81526001600160a01b0386169063fc57d4df906101de90879060040161046b565b5f80836001600160a01b031663692404266040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610131575f80fd5b5f6001600160a01b0382165b92915050565b5f6103b9826103ad565b6103d2816103bf565b81146103dc575f80fd5b50565b80356103b9816103c9565b6103d2816103ad565b80356103b9816103ea565b5f8060408385031215610412576104125f80fd5b5f61041d85856103df565b925050602061042e858286016103f3565b9150509250929050565b805b82525050565b6040810161044e8285610438565b61045b6020830184610438565b9392505050565b61043a816103ad565b602081016103b98284610462565b806103d2565b80516103b981610479565b5f6020828403121561049d5761049d5f80fd5b5f6104a8848461047f565b94935050505056fea2646970667358221220c39594bd8355b6c47ff5549a022d26003aca0806f0fed724542d2a455f4eedf064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4E6 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xDDD2E27 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x2BD6EC3E EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x2CF689B4 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x56 PUSH2 0x51 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x93 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x64 SWAP3 SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x56 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x228 JUMP JUMPDEST PUSH2 0x56 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB62CAD69 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0xB62CAD69 SWAP2 POP PUSH2 0x11A SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x143 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0x41976E09 SWAP2 POP PUSH2 0x173 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x1B2 SWAP2 SWAP1 PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x1DE SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x21D SWAP2 SWAP1 PUSH2 0x48A JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x96E85CED DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x96E85CED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0x96E85CED SWAP2 POP PUSH2 0x2AF SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D8 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xFC57D4DF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0xFC57D4DF SWAP2 POP PUSH2 0x308 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x323 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x347 SWAP2 SWAP1 PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFC57D4DF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0xFC57D4DF SWAP1 PUSH2 0x1DE SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x69240426 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3B9 DUP3 PUSH2 0x3AD JUMP JUMPDEST PUSH2 0x3D2 DUP2 PUSH2 0x3BF JUMP JUMPDEST DUP2 EQ PUSH2 0x3DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B9 DUP2 PUSH2 0x3C9 JUMP JUMPDEST PUSH2 0x3D2 DUP2 PUSH2 0x3AD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B9 DUP2 PUSH2 0x3EA JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x412 JUMPI PUSH2 0x412 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x41D DUP6 DUP6 PUSH2 0x3DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x42E DUP6 DUP3 DUP7 ADD PUSH2 0x3F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x44E DUP3 DUP6 PUSH2 0x438 JUMP JUMPDEST PUSH2 0x45B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x438 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3B9 DUP3 DUP5 PUSH2 0x462 JUMP JUMPDEST DUP1 PUSH2 0x3D2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3B9 DUP2 PUSH2 0x479 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49D JUMPI PUSH2 0x49D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x4A8 DUP5 DUP5 PUSH2 0x47F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 SWAP6 SWAP5 0xBD DUP4 SSTORE 0xB6 0xC4 PUSH32 0xF5549A022D26003ACA0806F0FED724542D2A455F4EEDF064736F6C6343000819 STOP CALLER ","sourceMap":"382:867:78:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getAssetPriceResilientOracle_7886":{"entryPoint":147,"id":7886,"parameterSlots":2,"returnSlots":2},"@getMultiPrice_7816":{"entryPoint":883,"id":7816,"parameterSlots":2,"returnSlots":2},"@getUnderlyingPriceResilientOracle_7851":{"entryPoint":552,"id":7851,"parameterSlots":2,"returnSlots":2},"abi_decode_t_address":{"entryPoint":1011,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_CorrelatedTokenOracleInterface_$7788":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_ResilientOracleInterface_$3686":{"entryPoint":991,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":1151,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_CorrelatedTokenOracleInterface_$7788t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_ResilientOracleInterface_$3686t_address":{"entryPoint":1022,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":1162,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1122,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1080,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1131,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":1088,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":941,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_CorrelatedTokenOracleInterface_$7788":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_ResilientOracleInterface_$3686":{"entryPoint":959,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1002,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_CorrelatedTokenOracleInterface_$7788":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_ResilientOracleInterface_$3686":{"entryPoint":969,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1145,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4583:101","nodeType":"YulBlock","src":"0:4583:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"646:51:101","nodeType":"YulBlock","src":"646:51:101","statements":[{"nativeSrc":"656:35:101","nodeType":"YulAssignment","src":"656:35:101","value":{"arguments":[{"name":"value","nativeSrc":"685:5:101","nodeType":"YulIdentifier","src":"685:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"667:17:101","nodeType":"YulIdentifier","src":"667:17:101"},"nativeSrc":"667:24:101","nodeType":"YulFunctionCall","src":"667:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"656:7:101","nodeType":"YulIdentifier","src":"656:7:101"}]}]},"name":"cleanup_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"568:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"628:5:101","nodeType":"YulTypedName","src":"628:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"638:7:101","nodeType":"YulTypedName","src":"638:7:101","type":""}],"src":"568:129:101"},{"body":{"nativeSrc":"779:112:101","nodeType":"YulBlock","src":"779:112:101","statements":[{"body":{"nativeSrc":"869:16:101","nodeType":"YulBlock","src":"869:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"878:1:101","nodeType":"YulLiteral","src":"878:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"881:1:101","nodeType":"YulLiteral","src":"881:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"871:6:101","nodeType":"YulIdentifier","src":"871:6:101"},"nativeSrc":"871:12:101","nodeType":"YulFunctionCall","src":"871:12:101"},"nativeSrc":"871:12:101","nodeType":"YulExpressionStatement","src":"871:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"802:5:101","nodeType":"YulIdentifier","src":"802:5:101"},{"arguments":[{"name":"value","nativeSrc":"860:5:101","nodeType":"YulIdentifier","src":"860:5:101"}],"functionName":{"name":"cleanup_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"809:50:101","nodeType":"YulIdentifier","src":"809:50:101"},"nativeSrc":"809:57:101","nodeType":"YulFunctionCall","src":"809:57:101"}],"functionName":{"name":"eq","nativeSrc":"799:2:101","nodeType":"YulIdentifier","src":"799:2:101"},"nativeSrc":"799:68:101","nodeType":"YulFunctionCall","src":"799:68:101"}],"functionName":{"name":"iszero","nativeSrc":"792:6:101","nodeType":"YulIdentifier","src":"792:6:101"},"nativeSrc":"792:76:101","nodeType":"YulFunctionCall","src":"792:76:101"},"nativeSrc":"789:96:101","nodeType":"YulIf","src":"789:96:101"}]},"name":"validator_revert_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"703:188:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"772:5:101","nodeType":"YulTypedName","src":"772:5:101","type":""}],"src":"703:188:101"},{"body":{"nativeSrc":"982:120:101","nodeType":"YulBlock","src":"982:120:101","statements":[{"nativeSrc":"992:29:101","nodeType":"YulAssignment","src":"992:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1014:6:101","nodeType":"YulIdentifier","src":"1014:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1001:12:101","nodeType":"YulIdentifier","src":"1001:12:101"},"nativeSrc":"1001:20:101","nodeType":"YulFunctionCall","src":"1001:20:101"},"variableNames":[{"name":"value","nativeSrc":"992:5:101","nodeType":"YulIdentifier","src":"992:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1090:5:101","nodeType":"YulIdentifier","src":"1090:5:101"}],"functionName":{"name":"validator_revert_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"1030:59:101","nodeType":"YulIdentifier","src":"1030:59:101"},"nativeSrc":"1030:66:101","nodeType":"YulFunctionCall","src":"1030:66:101"},"nativeSrc":"1030:66:101","nodeType":"YulExpressionStatement","src":"1030:66:101"}]},"name":"abi_decode_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"897:205:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"960:6:101","nodeType":"YulTypedName","src":"960:6:101","type":""},{"name":"end","nativeSrc":"968:3:101","nodeType":"YulTypedName","src":"968:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"976:5:101","nodeType":"YulTypedName","src":"976:5:101","type":""}],"src":"897:205:101"},{"body":{"nativeSrc":"1151:79:101","nodeType":"YulBlock","src":"1151:79:101","statements":[{"body":{"nativeSrc":"1208:16:101","nodeType":"YulBlock","src":"1208:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1217:1:101","nodeType":"YulLiteral","src":"1217:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1220:1:101","nodeType":"YulLiteral","src":"1220:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1210:6:101","nodeType":"YulIdentifier","src":"1210:6:101"},"nativeSrc":"1210:12:101","nodeType":"YulFunctionCall","src":"1210:12:101"},"nativeSrc":"1210:12:101","nodeType":"YulExpressionStatement","src":"1210:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1174:5:101","nodeType":"YulIdentifier","src":"1174:5:101"},{"arguments":[{"name":"value","nativeSrc":"1199:5:101","nodeType":"YulIdentifier","src":"1199:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1181:17:101","nodeType":"YulIdentifier","src":"1181:17:101"},"nativeSrc":"1181:24:101","nodeType":"YulFunctionCall","src":"1181:24:101"}],"functionName":{"name":"eq","nativeSrc":"1171:2:101","nodeType":"YulIdentifier","src":"1171:2:101"},"nativeSrc":"1171:35:101","nodeType":"YulFunctionCall","src":"1171:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1164:6:101","nodeType":"YulIdentifier","src":"1164:6:101"},"nativeSrc":"1164:43:101","nodeType":"YulFunctionCall","src":"1164:43:101"},"nativeSrc":"1161:63:101","nodeType":"YulIf","src":"1161:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1108:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1144:5:101","nodeType":"YulTypedName","src":"1144:5:101","type":""}],"src":"1108:122:101"},{"body":{"nativeSrc":"1288:87:101","nodeType":"YulBlock","src":"1288:87:101","statements":[{"nativeSrc":"1298:29:101","nodeType":"YulAssignment","src":"1298:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1320:6:101","nodeType":"YulIdentifier","src":"1320:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1307:12:101","nodeType":"YulIdentifier","src":"1307:12:101"},"nativeSrc":"1307:20:101","nodeType":"YulFunctionCall","src":"1307:20:101"},"variableNames":[{"name":"value","nativeSrc":"1298:5:101","nodeType":"YulIdentifier","src":"1298:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1363:5:101","nodeType":"YulIdentifier","src":"1363:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1336:26:101","nodeType":"YulIdentifier","src":"1336:26:101"},"nativeSrc":"1336:33:101","nodeType":"YulFunctionCall","src":"1336:33:101"},"nativeSrc":"1336:33:101","nodeType":"YulExpressionStatement","src":"1336:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1236:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1266:6:101","nodeType":"YulTypedName","src":"1266:6:101","type":""},{"name":"end","nativeSrc":"1274:3:101","nodeType":"YulTypedName","src":"1274:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1282:5:101","nodeType":"YulTypedName","src":"1282:5:101","type":""}],"src":"1236:139:101"},{"body":{"nativeSrc":"1497:424:101","nodeType":"YulBlock","src":"1497:424:101","statements":[{"body":{"nativeSrc":"1543:83:101","nodeType":"YulBlock","src":"1543:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1545:77:101","nodeType":"YulIdentifier","src":"1545:77:101"},"nativeSrc":"1545:79:101","nodeType":"YulFunctionCall","src":"1545:79:101"},"nativeSrc":"1545:79:101","nodeType":"YulExpressionStatement","src":"1545:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1518:7:101","nodeType":"YulIdentifier","src":"1518:7:101"},{"name":"headStart","nativeSrc":"1527:9:101","nodeType":"YulIdentifier","src":"1527:9:101"}],"functionName":{"name":"sub","nativeSrc":"1514:3:101","nodeType":"YulIdentifier","src":"1514:3:101"},"nativeSrc":"1514:23:101","nodeType":"YulFunctionCall","src":"1514:23:101"},{"kind":"number","nativeSrc":"1539:2:101","nodeType":"YulLiteral","src":"1539:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1510:3:101","nodeType":"YulIdentifier","src":"1510:3:101"},"nativeSrc":"1510:32:101","nodeType":"YulFunctionCall","src":"1510:32:101"},"nativeSrc":"1507:119:101","nodeType":"YulIf","src":"1507:119:101"},{"nativeSrc":"1636:150:101","nodeType":"YulBlock","src":"1636:150:101","statements":[{"nativeSrc":"1651:15:101","nodeType":"YulVariableDeclaration","src":"1651:15:101","value":{"kind":"number","nativeSrc":"1665:1:101","nodeType":"YulLiteral","src":"1665:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1655:6:101","nodeType":"YulTypedName","src":"1655:6:101","type":""}]},{"nativeSrc":"1680:96:101","nodeType":"YulAssignment","src":"1680:96:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1748:9:101","nodeType":"YulIdentifier","src":"1748:9:101"},{"name":"offset","nativeSrc":"1759:6:101","nodeType":"YulIdentifier","src":"1759:6:101"}],"functionName":{"name":"add","nativeSrc":"1744:3:101","nodeType":"YulIdentifier","src":"1744:3:101"},"nativeSrc":"1744:22:101","nodeType":"YulFunctionCall","src":"1744:22:101"},{"name":"dataEnd","nativeSrc":"1768:7:101","nodeType":"YulIdentifier","src":"1768:7:101"}],"functionName":{"name":"abi_decode_t_contract$_ResilientOracleInterface_$3686","nativeSrc":"1690:53:101","nodeType":"YulIdentifier","src":"1690:53:101"},"nativeSrc":"1690:86:101","nodeType":"YulFunctionCall","src":"1690:86:101"},"variableNames":[{"name":"value0","nativeSrc":"1680:6:101","nodeType":"YulIdentifier","src":"1680:6:101"}]}]},{"nativeSrc":"1796:118:101","nodeType":"YulBlock","src":"1796:118:101","statements":[{"nativeSrc":"1811:16:101","nodeType":"YulVariableDeclaration","src":"1811:16:101","value":{"kind":"number","nativeSrc":"1825:2:101","nodeType":"YulLiteral","src":"1825:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1815:6:101","nodeType":"YulTypedName","src":"1815:6:101","type":""}]},{"nativeSrc":"1841:63:101","nodeType":"YulAssignment","src":"1841:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1876:9:101","nodeType":"YulIdentifier","src":"1876:9:101"},{"name":"offset","nativeSrc":"1887:6:101","nodeType":"YulIdentifier","src":"1887:6:101"}],"functionName":{"name":"add","nativeSrc":"1872:3:101","nodeType":"YulIdentifier","src":"1872:3:101"},"nativeSrc":"1872:22:101","nodeType":"YulFunctionCall","src":"1872:22:101"},{"name":"dataEnd","nativeSrc":"1896:7:101","nodeType":"YulIdentifier","src":"1896:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1851:20:101","nodeType":"YulIdentifier","src":"1851:20:101"},"nativeSrc":"1851:53:101","nodeType":"YulFunctionCall","src":"1851:53:101"},"variableNames":[{"name":"value1","nativeSrc":"1841:6:101","nodeType":"YulIdentifier","src":"1841:6:101"}]}]}]},"name":"abi_decode_tuple_t_contract$_ResilientOracleInterface_$3686t_address","nativeSrc":"1381:540:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1459:9:101","nodeType":"YulTypedName","src":"1459:9:101","type":""},{"name":"dataEnd","nativeSrc":"1470:7:101","nodeType":"YulTypedName","src":"1470:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1482:6:101","nodeType":"YulTypedName","src":"1482:6:101","type":""},{"name":"value1","nativeSrc":"1490:6:101","nodeType":"YulTypedName","src":"1490:6:101","type":""}],"src":"1381:540:101"},{"body":{"nativeSrc":"1972:32:101","nodeType":"YulBlock","src":"1972:32:101","statements":[{"nativeSrc":"1982:16:101","nodeType":"YulAssignment","src":"1982:16:101","value":{"name":"value","nativeSrc":"1993:5:101","nodeType":"YulIdentifier","src":"1993:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1982:7:101","nodeType":"YulIdentifier","src":"1982:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1927:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1954:5:101","nodeType":"YulTypedName","src":"1954:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1964:7:101","nodeType":"YulTypedName","src":"1964:7:101","type":""}],"src":"1927:77:101"},{"body":{"nativeSrc":"2075:53:101","nodeType":"YulBlock","src":"2075:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2092:3:101","nodeType":"YulIdentifier","src":"2092:3:101"},{"arguments":[{"name":"value","nativeSrc":"2115:5:101","nodeType":"YulIdentifier","src":"2115:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2097:17:101","nodeType":"YulIdentifier","src":"2097:17:101"},"nativeSrc":"2097:24:101","nodeType":"YulFunctionCall","src":"2097:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2085:6:101","nodeType":"YulIdentifier","src":"2085:6:101"},"nativeSrc":"2085:37:101","nodeType":"YulFunctionCall","src":"2085:37:101"},"nativeSrc":"2085:37:101","nodeType":"YulExpressionStatement","src":"2085:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2010:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2063:5:101","nodeType":"YulTypedName","src":"2063:5:101","type":""},{"name":"pos","nativeSrc":"2070:3:101","nodeType":"YulTypedName","src":"2070:3:101","type":""}],"src":"2010:118:101"},{"body":{"nativeSrc":"2260:206:101","nodeType":"YulBlock","src":"2260:206:101","statements":[{"nativeSrc":"2270:26:101","nodeType":"YulAssignment","src":"2270:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2282:9:101","nodeType":"YulIdentifier","src":"2282:9:101"},{"kind":"number","nativeSrc":"2293:2:101","nodeType":"YulLiteral","src":"2293:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2278:3:101","nodeType":"YulIdentifier","src":"2278:3:101"},"nativeSrc":"2278:18:101","nodeType":"YulFunctionCall","src":"2278:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2270:4:101","nodeType":"YulIdentifier","src":"2270:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2350:6:101","nodeType":"YulIdentifier","src":"2350:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2363:9:101","nodeType":"YulIdentifier","src":"2363:9:101"},{"kind":"number","nativeSrc":"2374:1:101","nodeType":"YulLiteral","src":"2374:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2359:3:101","nodeType":"YulIdentifier","src":"2359:3:101"},"nativeSrc":"2359:17:101","nodeType":"YulFunctionCall","src":"2359:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2306:43:101","nodeType":"YulIdentifier","src":"2306:43:101"},"nativeSrc":"2306:71:101","nodeType":"YulFunctionCall","src":"2306:71:101"},"nativeSrc":"2306:71:101","nodeType":"YulExpressionStatement","src":"2306:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"2431:6:101","nodeType":"YulIdentifier","src":"2431:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2444:9:101","nodeType":"YulIdentifier","src":"2444:9:101"},{"kind":"number","nativeSrc":"2455:2:101","nodeType":"YulLiteral","src":"2455:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2440:3:101","nodeType":"YulIdentifier","src":"2440:3:101"},"nativeSrc":"2440:18:101","nodeType":"YulFunctionCall","src":"2440:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2387:43:101","nodeType":"YulIdentifier","src":"2387:43:101"},"nativeSrc":"2387:72:101","nodeType":"YulFunctionCall","src":"2387:72:101"},"nativeSrc":"2387:72:101","nodeType":"YulExpressionStatement","src":"2387:72:101"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"2134:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2224:9:101","nodeType":"YulTypedName","src":"2224:9:101","type":""},{"name":"value1","nativeSrc":"2236:6:101","nodeType":"YulTypedName","src":"2236:6:101","type":""},{"name":"value0","nativeSrc":"2244:6:101","nodeType":"YulTypedName","src":"2244:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2255:4:101","nodeType":"YulTypedName","src":"2255:4:101","type":""}],"src":"2134:332:101"},{"body":{"nativeSrc":"2556:51:101","nodeType":"YulBlock","src":"2556:51:101","statements":[{"nativeSrc":"2566:35:101","nodeType":"YulAssignment","src":"2566:35:101","value":{"arguments":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulIdentifier","src":"2595:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2577:17:101","nodeType":"YulIdentifier","src":"2577:17:101"},"nativeSrc":"2577:24:101","nodeType":"YulFunctionCall","src":"2577:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2566:7:101","nodeType":"YulIdentifier","src":"2566:7:101"}]}]},"name":"cleanup_t_contract$_CorrelatedTokenOracleInterface_$7788","nativeSrc":"2472:135:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2538:5:101","nodeType":"YulTypedName","src":"2538:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2548:7:101","nodeType":"YulTypedName","src":"2548:7:101","type":""}],"src":"2472:135:101"},{"body":{"nativeSrc":"2695:118:101","nodeType":"YulBlock","src":"2695:118:101","statements":[{"body":{"nativeSrc":"2791:16:101","nodeType":"YulBlock","src":"2791:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2800:1:101","nodeType":"YulLiteral","src":"2800:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2803:1:101","nodeType":"YulLiteral","src":"2803:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2793:6:101","nodeType":"YulIdentifier","src":"2793:6:101"},"nativeSrc":"2793:12:101","nodeType":"YulFunctionCall","src":"2793:12:101"},"nativeSrc":"2793:12:101","nodeType":"YulExpressionStatement","src":"2793:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2718:5:101","nodeType":"YulIdentifier","src":"2718:5:101"},{"arguments":[{"name":"value","nativeSrc":"2782:5:101","nodeType":"YulIdentifier","src":"2782:5:101"}],"functionName":{"name":"cleanup_t_contract$_CorrelatedTokenOracleInterface_$7788","nativeSrc":"2725:56:101","nodeType":"YulIdentifier","src":"2725:56:101"},"nativeSrc":"2725:63:101","nodeType":"YulFunctionCall","src":"2725:63:101"}],"functionName":{"name":"eq","nativeSrc":"2715:2:101","nodeType":"YulIdentifier","src":"2715:2:101"},"nativeSrc":"2715:74:101","nodeType":"YulFunctionCall","src":"2715:74:101"}],"functionName":{"name":"iszero","nativeSrc":"2708:6:101","nodeType":"YulIdentifier","src":"2708:6:101"},"nativeSrc":"2708:82:101","nodeType":"YulFunctionCall","src":"2708:82:101"},"nativeSrc":"2705:102:101","nodeType":"YulIf","src":"2705:102:101"}]},"name":"validator_revert_t_contract$_CorrelatedTokenOracleInterface_$7788","nativeSrc":"2613:200:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2688:5:101","nodeType":"YulTypedName","src":"2688:5:101","type":""}],"src":"2613:200:101"},{"body":{"nativeSrc":"2910:126:101","nodeType":"YulBlock","src":"2910:126:101","statements":[{"nativeSrc":"2920:29:101","nodeType":"YulAssignment","src":"2920:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2942:6:101","nodeType":"YulIdentifier","src":"2942:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2929:12:101","nodeType":"YulIdentifier","src":"2929:12:101"},"nativeSrc":"2929:20:101","nodeType":"YulFunctionCall","src":"2929:20:101"},"variableNames":[{"name":"value","nativeSrc":"2920:5:101","nodeType":"YulIdentifier","src":"2920:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3024:5:101","nodeType":"YulIdentifier","src":"3024:5:101"}],"functionName":{"name":"validator_revert_t_contract$_CorrelatedTokenOracleInterface_$7788","nativeSrc":"2958:65:101","nodeType":"YulIdentifier","src":"2958:65:101"},"nativeSrc":"2958:72:101","nodeType":"YulFunctionCall","src":"2958:72:101"},"nativeSrc":"2958:72:101","nodeType":"YulExpressionStatement","src":"2958:72:101"}]},"name":"abi_decode_t_contract$_CorrelatedTokenOracleInterface_$7788","nativeSrc":"2819:217:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2888:6:101","nodeType":"YulTypedName","src":"2888:6:101","type":""},{"name":"end","nativeSrc":"2896:3:101","nodeType":"YulTypedName","src":"2896:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2904:5:101","nodeType":"YulTypedName","src":"2904:5:101","type":""}],"src":"2819:217:101"},{"body":{"nativeSrc":"3164:430:101","nodeType":"YulBlock","src":"3164:430:101","statements":[{"body":{"nativeSrc":"3210:83:101","nodeType":"YulBlock","src":"3210:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3212:77:101","nodeType":"YulIdentifier","src":"3212:77:101"},"nativeSrc":"3212:79:101","nodeType":"YulFunctionCall","src":"3212:79:101"},"nativeSrc":"3212:79:101","nodeType":"YulExpressionStatement","src":"3212:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3185:7:101","nodeType":"YulIdentifier","src":"3185:7:101"},{"name":"headStart","nativeSrc":"3194:9:101","nodeType":"YulIdentifier","src":"3194:9:101"}],"functionName":{"name":"sub","nativeSrc":"3181:3:101","nodeType":"YulIdentifier","src":"3181:3:101"},"nativeSrc":"3181:23:101","nodeType":"YulFunctionCall","src":"3181:23:101"},{"kind":"number","nativeSrc":"3206:2:101","nodeType":"YulLiteral","src":"3206:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3177:3:101","nodeType":"YulIdentifier","src":"3177:3:101"},"nativeSrc":"3177:32:101","nodeType":"YulFunctionCall","src":"3177:32:101"},"nativeSrc":"3174:119:101","nodeType":"YulIf","src":"3174:119:101"},{"nativeSrc":"3303:156:101","nodeType":"YulBlock","src":"3303:156:101","statements":[{"nativeSrc":"3318:15:101","nodeType":"YulVariableDeclaration","src":"3318:15:101","value":{"kind":"number","nativeSrc":"3332:1:101","nodeType":"YulLiteral","src":"3332:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3322:6:101","nodeType":"YulTypedName","src":"3322:6:101","type":""}]},{"nativeSrc":"3347:102:101","nodeType":"YulAssignment","src":"3347:102:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3421:9:101","nodeType":"YulIdentifier","src":"3421:9:101"},{"name":"offset","nativeSrc":"3432:6:101","nodeType":"YulIdentifier","src":"3432:6:101"}],"functionName":{"name":"add","nativeSrc":"3417:3:101","nodeType":"YulIdentifier","src":"3417:3:101"},"nativeSrc":"3417:22:101","nodeType":"YulFunctionCall","src":"3417:22:101"},{"name":"dataEnd","nativeSrc":"3441:7:101","nodeType":"YulIdentifier","src":"3441:7:101"}],"functionName":{"name":"abi_decode_t_contract$_CorrelatedTokenOracleInterface_$7788","nativeSrc":"3357:59:101","nodeType":"YulIdentifier","src":"3357:59:101"},"nativeSrc":"3357:92:101","nodeType":"YulFunctionCall","src":"3357:92:101"},"variableNames":[{"name":"value0","nativeSrc":"3347:6:101","nodeType":"YulIdentifier","src":"3347:6:101"}]}]},{"nativeSrc":"3469:118:101","nodeType":"YulBlock","src":"3469:118:101","statements":[{"nativeSrc":"3484:16:101","nodeType":"YulVariableDeclaration","src":"3484:16:101","value":{"kind":"number","nativeSrc":"3498:2:101","nodeType":"YulLiteral","src":"3498:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3488:6:101","nodeType":"YulTypedName","src":"3488:6:101","type":""}]},{"nativeSrc":"3514:63:101","nodeType":"YulAssignment","src":"3514:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3549:9:101","nodeType":"YulIdentifier","src":"3549:9:101"},{"name":"offset","nativeSrc":"3560:6:101","nodeType":"YulIdentifier","src":"3560:6:101"}],"functionName":{"name":"add","nativeSrc":"3545:3:101","nodeType":"YulIdentifier","src":"3545:3:101"},"nativeSrc":"3545:22:101","nodeType":"YulFunctionCall","src":"3545:22:101"},{"name":"dataEnd","nativeSrc":"3569:7:101","nodeType":"YulIdentifier","src":"3569:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3524:20:101","nodeType":"YulIdentifier","src":"3524:20:101"},"nativeSrc":"3524:53:101","nodeType":"YulFunctionCall","src":"3524:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3514:6:101","nodeType":"YulIdentifier","src":"3514:6:101"}]}]}]},"name":"abi_decode_tuple_t_contract$_CorrelatedTokenOracleInterface_$7788t_address","nativeSrc":"3042:552:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3126:9:101","nodeType":"YulTypedName","src":"3126:9:101","type":""},{"name":"dataEnd","nativeSrc":"3137:7:101","nodeType":"YulTypedName","src":"3137:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3149:6:101","nodeType":"YulTypedName","src":"3149:6:101","type":""},{"name":"value1","nativeSrc":"3157:6:101","nodeType":"YulTypedName","src":"3157:6:101","type":""}],"src":"3042:552:101"},{"body":{"nativeSrc":"3665:53:101","nodeType":"YulBlock","src":"3665:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3682:3:101","nodeType":"YulIdentifier","src":"3682:3:101"},{"arguments":[{"name":"value","nativeSrc":"3705:5:101","nodeType":"YulIdentifier","src":"3705:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3687:17:101","nodeType":"YulIdentifier","src":"3687:17:101"},"nativeSrc":"3687:24:101","nodeType":"YulFunctionCall","src":"3687:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3675:6:101","nodeType":"YulIdentifier","src":"3675:6:101"},"nativeSrc":"3675:37:101","nodeType":"YulFunctionCall","src":"3675:37:101"},"nativeSrc":"3675:37:101","nodeType":"YulExpressionStatement","src":"3675:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3600:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3653:5:101","nodeType":"YulTypedName","src":"3653:5:101","type":""},{"name":"pos","nativeSrc":"3660:3:101","nodeType":"YulTypedName","src":"3660:3:101","type":""}],"src":"3600:118:101"},{"body":{"nativeSrc":"3822:124:101","nodeType":"YulBlock","src":"3822:124:101","statements":[{"nativeSrc":"3832:26:101","nodeType":"YulAssignment","src":"3832:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3844:9:101","nodeType":"YulIdentifier","src":"3844:9:101"},{"kind":"number","nativeSrc":"3855:2:101","nodeType":"YulLiteral","src":"3855:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3840:3:101","nodeType":"YulIdentifier","src":"3840:3:101"},"nativeSrc":"3840:18:101","nodeType":"YulFunctionCall","src":"3840:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3832:4:101","nodeType":"YulIdentifier","src":"3832:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3912:6:101","nodeType":"YulIdentifier","src":"3912:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3925:9:101","nodeType":"YulIdentifier","src":"3925:9:101"},{"kind":"number","nativeSrc":"3936:1:101","nodeType":"YulLiteral","src":"3936:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3921:3:101","nodeType":"YulIdentifier","src":"3921:3:101"},"nativeSrc":"3921:17:101","nodeType":"YulFunctionCall","src":"3921:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3868:43:101","nodeType":"YulIdentifier","src":"3868:43:101"},"nativeSrc":"3868:71:101","nodeType":"YulFunctionCall","src":"3868:71:101"},"nativeSrc":"3868:71:101","nodeType":"YulExpressionStatement","src":"3868:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3724:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3794:9:101","nodeType":"YulTypedName","src":"3794:9:101","type":""},{"name":"value0","nativeSrc":"3806:6:101","nodeType":"YulTypedName","src":"3806:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3817:4:101","nodeType":"YulTypedName","src":"3817:4:101","type":""}],"src":"3724:222:101"},{"body":{"nativeSrc":"3995:79:101","nodeType":"YulBlock","src":"3995:79:101","statements":[{"body":{"nativeSrc":"4052:16:101","nodeType":"YulBlock","src":"4052:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4061:1:101","nodeType":"YulLiteral","src":"4061:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4064:1:101","nodeType":"YulLiteral","src":"4064:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4054:6:101","nodeType":"YulIdentifier","src":"4054:6:101"},"nativeSrc":"4054:12:101","nodeType":"YulFunctionCall","src":"4054:12:101"},"nativeSrc":"4054:12:101","nodeType":"YulExpressionStatement","src":"4054:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4018:5:101","nodeType":"YulIdentifier","src":"4018:5:101"},{"arguments":[{"name":"value","nativeSrc":"4043:5:101","nodeType":"YulIdentifier","src":"4043:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4025:17:101","nodeType":"YulIdentifier","src":"4025:17:101"},"nativeSrc":"4025:24:101","nodeType":"YulFunctionCall","src":"4025:24:101"}],"functionName":{"name":"eq","nativeSrc":"4015:2:101","nodeType":"YulIdentifier","src":"4015:2:101"},"nativeSrc":"4015:35:101","nodeType":"YulFunctionCall","src":"4015:35:101"}],"functionName":{"name":"iszero","nativeSrc":"4008:6:101","nodeType":"YulIdentifier","src":"4008:6:101"},"nativeSrc":"4008:43:101","nodeType":"YulFunctionCall","src":"4008:43:101"},"nativeSrc":"4005:63:101","nodeType":"YulIf","src":"4005:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"3952:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3988:5:101","nodeType":"YulTypedName","src":"3988:5:101","type":""}],"src":"3952:122:101"},{"body":{"nativeSrc":"4143:80:101","nodeType":"YulBlock","src":"4143:80:101","statements":[{"nativeSrc":"4153:22:101","nodeType":"YulAssignment","src":"4153:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"4168:6:101","nodeType":"YulIdentifier","src":"4168:6:101"}],"functionName":{"name":"mload","nativeSrc":"4162:5:101","nodeType":"YulIdentifier","src":"4162:5:101"},"nativeSrc":"4162:13:101","nodeType":"YulFunctionCall","src":"4162:13:101"},"variableNames":[{"name":"value","nativeSrc":"4153:5:101","nodeType":"YulIdentifier","src":"4153:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4211:5:101","nodeType":"YulIdentifier","src":"4211:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"4184:26:101","nodeType":"YulIdentifier","src":"4184:26:101"},"nativeSrc":"4184:33:101","nodeType":"YulFunctionCall","src":"4184:33:101"},"nativeSrc":"4184:33:101","nodeType":"YulExpressionStatement","src":"4184:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"4080:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4121:6:101","nodeType":"YulTypedName","src":"4121:6:101","type":""},{"name":"end","nativeSrc":"4129:3:101","nodeType":"YulTypedName","src":"4129:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4137:5:101","nodeType":"YulTypedName","src":"4137:5:101","type":""}],"src":"4080:143:101"},{"body":{"nativeSrc":"4306:274:101","nodeType":"YulBlock","src":"4306:274:101","statements":[{"body":{"nativeSrc":"4352:83:101","nodeType":"YulBlock","src":"4352:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4354:77:101","nodeType":"YulIdentifier","src":"4354:77:101"},"nativeSrc":"4354:79:101","nodeType":"YulFunctionCall","src":"4354:79:101"},"nativeSrc":"4354:79:101","nodeType":"YulExpressionStatement","src":"4354:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4327:7:101","nodeType":"YulIdentifier","src":"4327:7:101"},{"name":"headStart","nativeSrc":"4336:9:101","nodeType":"YulIdentifier","src":"4336:9:101"}],"functionName":{"name":"sub","nativeSrc":"4323:3:101","nodeType":"YulIdentifier","src":"4323:3:101"},"nativeSrc":"4323:23:101","nodeType":"YulFunctionCall","src":"4323:23:101"},{"kind":"number","nativeSrc":"4348:2:101","nodeType":"YulLiteral","src":"4348:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4319:3:101","nodeType":"YulIdentifier","src":"4319:3:101"},"nativeSrc":"4319:32:101","nodeType":"YulFunctionCall","src":"4319:32:101"},"nativeSrc":"4316:119:101","nodeType":"YulIf","src":"4316:119:101"},{"nativeSrc":"4445:128:101","nodeType":"YulBlock","src":"4445:128:101","statements":[{"nativeSrc":"4460:15:101","nodeType":"YulVariableDeclaration","src":"4460:15:101","value":{"kind":"number","nativeSrc":"4474:1:101","nodeType":"YulLiteral","src":"4474:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4464:6:101","nodeType":"YulTypedName","src":"4464:6:101","type":""}]},{"nativeSrc":"4489:74:101","nodeType":"YulAssignment","src":"4489:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4535:9:101","nodeType":"YulIdentifier","src":"4535:9:101"},{"name":"offset","nativeSrc":"4546:6:101","nodeType":"YulIdentifier","src":"4546:6:101"}],"functionName":{"name":"add","nativeSrc":"4531:3:101","nodeType":"YulIdentifier","src":"4531:3:101"},"nativeSrc":"4531:22:101","nodeType":"YulFunctionCall","src":"4531:22:101"},{"name":"dataEnd","nativeSrc":"4555:7:101","nodeType":"YulIdentifier","src":"4555:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"4499:31:101","nodeType":"YulIdentifier","src":"4499:31:101"},"nativeSrc":"4499:64:101","nodeType":"YulFunctionCall","src":"4499:64:101"},"variableNames":[{"name":"value0","nativeSrc":"4489:6:101","nodeType":"YulIdentifier","src":"4489:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"4229:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4276:9:101","nodeType":"YulTypedName","src":"4276:9:101","type":""},{"name":"dataEnd","nativeSrc":"4287:7:101","nodeType":"YulTypedName","src":"4287:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4299:6:101","nodeType":"YulTypedName","src":"4299:6:101","type":""}],"src":"4229:351:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_contract$_ResilientOracleInterface_$3686(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_ResilientOracleInterface_$3686(value) {\n        if iszero(eq(value, cleanup_t_contract$_ResilientOracleInterface_$3686(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_ResilientOracleInterface_$3686(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_ResilientOracleInterface_$3686(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_contract$_ResilientOracleInterface_$3686t_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_ResilientOracleInterface_$3686(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_contract$_CorrelatedTokenOracleInterface_$7788(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_CorrelatedTokenOracleInterface_$7788(value) {\n        if iszero(eq(value, cleanup_t_contract$_CorrelatedTokenOracleInterface_$7788(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_CorrelatedTokenOracleInterface_$7788(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_CorrelatedTokenOracleInterface_$7788(value)\n    }\n\n    function abi_decode_tuple_t_contract$_CorrelatedTokenOracleInterface_$7788t_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_CorrelatedTokenOracleInterface_$7788(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061003f575f3560e01c80630ddd2e27146100435780632bd6ec3e1461006d5780632cf689b414610080575b5f80fd5b6100566100513660046103fe565b610093565b604051610064929190610440565b60405180910390f35b61005661007b3660046103fe565b610228565b61005661008e3660046103fe565b610373565b5f80836001600160a01b031663b62cad69846040518263ffffffff1660e01b81526004016100c1919061046b565b5f604051808303815f87803b1580156100d8575f80fd5b505af11580156100ea573d5f803e3d5ffd5b505060405163b62cad6960e01b81526001600160a01b038716925063b62cad69915061011a90869060040161046b565b5f604051808303815f87803b158015610131575f80fd5b505af1158015610143573d5f803e3d5ffd5b50506040516341976e0960e01b81526001600160a01b03871692506341976e09915061017390869060040161046b565b602060405180830381865afa15801561018e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b2919061048a565b6040516341976e0960e01b81526001600160a01b038616906341976e09906101de90879060040161046b565b602060405180830381865afa1580156101f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021d919061048a565b915091509250929050565b5f80836001600160a01b03166396e85ced846040518263ffffffff1660e01b8152600401610256919061046b565b5f604051808303815f87803b15801561026d575f80fd5b505af115801561027f573d5f803e3d5ffd5b50506040516396e85ced60e01b81526001600160a01b03871692506396e85ced91506102af90869060040161046b565b5f604051808303815f87803b1580156102c6575f80fd5b505af11580156102d8573d5f803e3d5ffd5b505060405163fc57d4df60e01b81526001600160a01b038716925063fc57d4df915061030890869060040161046b565b602060405180830381865afa158015610323573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610347919061048a565b60405163fc57d4df60e01b81526001600160a01b0386169063fc57d4df906101de90879060040161046b565b5f80836001600160a01b031663692404266040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610131575f80fd5b5f6001600160a01b0382165b92915050565b5f6103b9826103ad565b6103d2816103bf565b81146103dc575f80fd5b50565b80356103b9816103c9565b6103d2816103ad565b80356103b9816103ea565b5f8060408385031215610412576104125f80fd5b5f61041d85856103df565b925050602061042e858286016103f3565b9150509250929050565b805b82525050565b6040810161044e8285610438565b61045b6020830184610438565b9392505050565b61043a816103ad565b602081016103b98284610462565b806103d2565b80516103b981610479565b5f6020828403121561049d5761049d5f80fd5b5f6104a8848461047f565b94935050505056fea2646970667358221220c39594bd8355b6c47ff5549a022d26003aca0806f0fed724542d2a455f4eedf064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xDDD2E27 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x2BD6EC3E EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x2CF689B4 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x56 PUSH2 0x51 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x93 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x64 SWAP3 SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x56 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x228 JUMP JUMPDEST PUSH2 0x56 PUSH2 0x8E CALLDATASIZE PUSH1 0x4 PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB62CAD69 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEA JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0xB62CAD69 SWAP2 POP PUSH2 0x11A SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x143 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0x41976E09 SWAP2 POP PUSH2 0x173 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x1B2 SWAP2 SWAP1 PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x41976E09 SWAP1 PUSH2 0x1DE SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F9 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x21D SWAP2 SWAP1 PUSH2 0x48A JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x96E85CED DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27F JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x96E85CED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0x96E85CED SWAP2 POP PUSH2 0x2AF SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D8 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xFC57D4DF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP3 POP PUSH4 0xFC57D4DF SWAP2 POP PUSH2 0x308 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x323 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x347 SWAP2 SWAP1 PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFC57D4DF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0xFC57D4DF SWAP1 PUSH2 0x1DE SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x46B JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x69240426 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3B9 DUP3 PUSH2 0x3AD JUMP JUMPDEST PUSH2 0x3D2 DUP2 PUSH2 0x3BF JUMP JUMPDEST DUP2 EQ PUSH2 0x3DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B9 DUP2 PUSH2 0x3C9 JUMP JUMPDEST PUSH2 0x3D2 DUP2 PUSH2 0x3AD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B9 DUP2 PUSH2 0x3EA JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x412 JUMPI PUSH2 0x412 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x41D DUP6 DUP6 PUSH2 0x3DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x42E DUP6 DUP3 DUP7 ADD PUSH2 0x3F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x44E DUP3 DUP6 PUSH2 0x438 JUMP JUMPDEST PUSH2 0x45B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x438 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3B9 DUP3 DUP5 PUSH2 0x462 JUMP JUMPDEST DUP1 PUSH2 0x3D2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3B9 DUP2 PUSH2 0x479 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49D JUMPI PUSH2 0x49D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x4A8 DUP5 DUP5 PUSH2 0x47F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 SWAP6 SWAP5 0xBD DUP4 SSTORE 0xB6 0xC4 PUSH32 0xF5549A022D26003ACA0806F0FED724542D2A455F4EEDF064736F6C6343000819 STOP CALLER ","sourceMap":"382:867:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;953:294;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;633:314;;;;;;:::i;:::-;;:::i;411:216::-;;;;;;:::i;:::-;;:::i;953:294::-;1077:7;1086;1105:6;-1:-1:-1;;;;;1105:23:78;;1129:5;1105:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1145:30:78;;-1:-1:-1;;;1145:30:78;;-1:-1:-1;;;;;1145:23:78;;;-1:-1:-1;1145:23:78;;-1:-1:-1;1145:30:78;;1169:5;;1145:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1193:22:78;;-1:-1:-1;;;1193:22:78;;-1:-1:-1;;;;;1193:15:78;;;-1:-1:-1;1193:15:78;;-1:-1:-1;1193:22:78;;1209:5;;1193:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217;;-1:-1:-1;;;1217:22:78;;-1:-1:-1;;;;;1217:15:78;;;;;:22;;1233:5;;1217:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1185:55;;;;953:294;;;;;:::o;633:314::-;763:7;772;791:6;-1:-1:-1;;;;;791:18:78;;810:6;791:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;827:26:78;;-1:-1:-1;;;827:26:78;;-1:-1:-1;;;;;827:18:78;;;-1:-1:-1;827:18:78;;-1:-1:-1;827:26:78;;846:6;;827:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;871:33:78;;-1:-1:-1;;;871:33:78;;-1:-1:-1;;;;;871:25:78;;;-1:-1:-1;871:25:78;;-1:-1:-1;871:33:78;;897:6;;871:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;906;;-1:-1:-1;;;906:33:78;;-1:-1:-1;;;;;906:25:78;;;;;:33;;932:6;;906:33;;;:::i;411:216::-;504:7;513;532:6;-1:-1:-1;;;;;532:21:78;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;466:96:101;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:129::-;638:7;667:24;685:5;667:24;:::i;703:188::-;809:57;860:5;809:57;:::i;:::-;802:5;799:68;789:96;;881:1;878;871:12;789:96;703:188;:::o;897:205::-;1001:20;;1030:66;1001:20;1030:66;:::i;1108:122::-;1181:24;1199:5;1181:24;:::i;1236:139::-;1307:20;;1336:33;1307:20;1336:33;:::i;1381:540::-;1482:6;1490;1539:2;1527:9;1518:7;1514:23;1510:32;1507:119;;;1545:79;382:867:78;;;1545:79:101;1665:1;1690:86;1768:7;1748:9;1690:86;:::i;:::-;1680:96;;1636:150;1825:2;1851:53;1896:7;1887:6;1876:9;1872:22;1851:53;:::i;:::-;1841:63;;1796:118;1381:540;;;;;:::o;2010:118::-;2115:5;2097:24;2092:3;2085:37;2010:118;;:::o;2134:332::-;2293:2;2278:18;;2306:71;2282:9;2350:6;2306:71;:::i;:::-;2387:72;2455:2;2444:9;2440:18;2431:6;2387:72;:::i;:::-;2134:332;;;;;:::o;3600:118::-;3687:24;3705:5;3687:24;:::i;3724:222::-;3855:2;3840:18;;3868:71;3844:9;3912:6;3868:71;:::i;3952:122::-;4043:5;4025:24;1927:77;4080:143;4162:13;;4184:33;4162:13;4184:33;:::i;4229:351::-;4299:6;4348:2;4336:9;4327:7;4323:23;4319:32;4316:119;;;4354:79;382:867:78;;;4354:79:101;4474:1;4499:64;4555:7;4535:9;4499:64;:::i;:::-;4489:74;4229:351;-1:-1:-1;;;;4229:351:101:o"},"gasEstimates":{"creation":{"codeDepositCost":"250800","executionCost":"292","totalCost":"251092"},"external":{"getAssetPriceResilientOracle(address,address)":"infinite","getMultiPrice(address,address)":"infinite","getUnderlyingPriceResilientOracle(address,address)":"infinite"}},"methodIdentifiers":{"getAssetPriceResilientOracle(address,address)":"0ddd2e27","getMultiPrice(address,address)":"2cf689b4","getUnderlyingPriceResilientOracle(address,address)":"2bd6ec3e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getAssetPriceResilientOracle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract CorrelatedTokenOracleInterface\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getMultiPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"getUnderlyingPriceResilientOracle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockCallPrice.sol\":\"MockCallPrice\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockCallPrice.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../interfaces/OracleInterface.sol\\\";\\n\\ninterface CorrelatedTokenOracleInterface {\\n    function updateSnapshot() external;\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ncontract MockCallPrice {\\n    function getMultiPrice(CorrelatedTokenOracleInterface oracle, address asset) public returns (uint256, uint256) {\\n        oracle.updateSnapshot();\\n        return (oracle.getPrice(asset), oracle.getPrice(asset));\\n    }\\n\\n    function getUnderlyingPriceResilientOracle(\\n        ResilientOracleInterface oracle,\\n        address vToken\\n    ) public returns (uint256, uint256) {\\n        oracle.updatePrice(vToken);\\n        oracle.updatePrice(vToken);\\n        return (oracle.getUnderlyingPrice(vToken), oracle.getUnderlyingPrice(vToken));\\n    }\\n\\n    function getAssetPriceResilientOracle(\\n        ResilientOracleInterface oracle,\\n        address asset\\n    ) public returns (uint256, uint256) {\\n        oracle.updateAssetPrice(asset);\\n        oracle.updateAssetPrice(asset);\\n        return (oracle.getPrice(asset), oracle.getPrice(asset));\\n    }\\n}\\n\",\"keccak256\":\"0x499db17c0c6973ae037972f11f567aba531944f1c27f99b9775dda5685888b62\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockEtherFiLiquidityPool.sol":{"MockEtherFiLiquidityPool":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"_share","type":"uint256"}],"name":"amountForShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountPerShare","type":"uint256"}],"name":"setAmountPerShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_7904":{"entryPoint":null,"id":7904,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":26,"id":1205,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50601633601a565b6069565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103a1806100765f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063561bddf814610064578063715018a61461008d5780637c5a227c146100975780638da5cb5b146100a0578063b1ef362d146100b8578063f2fde38b146100cb575b5f80fd5b6100776100723660046101f8565b6100de565b6040516100849190610226565b60405180910390f35b610095610106565b005b61007760015481565b5f546001600160a01b0316604051610084919061024d565b6100956100c63660046101f8565b610119565b6100956100d936600461026f565b610126565b5f670de0b6b3a7640000600154836100f691906102a1565b61010091906102d4565b92915050565b61010e610169565b6101175f610192565b565b610121610169565b600155565b61012e610169565b6001600160a01b03811661015d5760405162461bcd60e51b8152600401610154906102e7565b60405180910390fd5b61016681610192565b50565b5f546001600160a01b031633146101175760405162461bcd60e51b815260040161015490610331565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805b8114610166575f80fd5b8035610100816101e1565b5f6020828403121561020b5761020b5f80fd5b5f61021684846101ed565b949350505050565b805b82525050565b60208101610100828461021e565b5f6001600160a01b038216610100565b61022081610234565b602081016101008284610244565b6101e381610234565b80356101008161025b565b5f60208284031215610282576102825f80fd5b5f6102168484610264565b634e487b7160e01b5f52601160045260245ffd5b8181028082158382048514176102b9576102b961028d565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f826102e2576102e26102c0565b500490565b6020808252810161010081602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161010056fea264697066735822122089a79b75b1b169a2f123dc99230f82af4e3a74d41e5167fef8be3045252737f864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 CALLER PUSH1 0x1A JUMP JUMPDEST PUSH1 0x69 JUMP JUMPDEST PUSH0 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 PUSH2 0x3A1 DUP1 PUSH2 0x76 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x60 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x561BDDF8 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x7C5A227C EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xB1EF362D EQ PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xCB JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x77 PUSH2 0x72 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x226 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0x106 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x77 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x24D JUMP JUMPDEST PUSH2 0x95 PUSH2 0xC6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0x119 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xD9 CALLDATASIZE PUSH1 0x4 PUSH2 0x26F JUMP JUMPDEST PUSH2 0x126 JUMP JUMPDEST PUSH0 PUSH8 0xDE0B6B3A7640000 PUSH1 0x1 SLOAD DUP4 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x2A1 JUMP JUMPDEST PUSH2 0x100 SWAP2 SWAP1 PUSH2 0x2D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10E PUSH2 0x169 JUMP JUMPDEST PUSH2 0x117 PUSH0 PUSH2 0x192 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x121 PUSH2 0x169 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH2 0x12E PUSH2 0x169 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x166 DUP2 PUSH2 0x192 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x117 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x331 JUMP JUMPDEST PUSH0 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 DUP1 JUMPDEST DUP2 EQ PUSH2 0x166 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x100 DUP2 PUSH2 0x1E1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B JUMPI PUSH2 0x20B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x216 DUP5 DUP5 PUSH2 0x1ED JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x100 DUP3 DUP5 PUSH2 0x21E JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x100 JUMP JUMPDEST PUSH2 0x220 DUP2 PUSH2 0x234 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x100 DUP3 DUP5 PUSH2 0x244 JUMP JUMPDEST PUSH2 0x1E3 DUP2 PUSH2 0x234 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x100 DUP2 PUSH2 0x25B JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282 JUMPI PUSH2 0x282 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x216 DUP5 DUP5 PUSH2 0x264 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x2B9 JUMPI PUSH2 0x2B9 PUSH2 0x28D JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x2E2 JUMPI PUSH2 0x2E2 PUSH2 0x2C0 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x100 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x100 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 0xA7 SWAP12 PUSH22 0xB1B169A2F123DC99230F82AF4E3A74D41E5167FEF8BE ADDRESS GASLIMIT 0x25 0x27 CALLDATACOPY 0xF8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"170:467:79:-:0;;;340:26;;;;;;;;;-1:-1:-1;936:32:10;734:10:14;936:18:10;:32::i;:::-;170:467:79;;2426:187:10;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;170:467:79:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_1148":{"entryPoint":361,"id":1148,"parameterSlots":0,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":402,"id":1205,"parameterSlots":1,"returnSlots":0},"@amountForShare_7932":{"entryPoint":222,"id":7932,"parameterSlots":1,"returnSlots":1},"@amountPerShare_7898":{"entryPoint":null,"id":7898,"parameterSlots":0,"returnSlots":0},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_1162":{"entryPoint":262,"id":1162,"parameterSlots":0,"returnSlots":0},"@setAmountPerShare_7916":{"entryPoint":281,"id":7916,"parameterSlots":1,"returnSlots":0},"@transferOwnership_1185":{"entryPoint":294,"id":1185,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":493,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":504,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":580,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":542,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":589,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":743,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":817,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":550,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":724,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":673,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":564,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":653,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":704,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":603,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":481,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5735:101","nodeType":"YulBlock","src":"0:5735:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:32:101","nodeType":"YulBlock","src":"379:32:101","statements":[{"nativeSrc":"389:16:101","nodeType":"YulAssignment","src":"389:16:101","value":{"name":"value","nativeSrc":"400:5:101","nodeType":"YulIdentifier","src":"400:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"334:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:77:101"},{"body":{"nativeSrc":"460:79:101","nodeType":"YulBlock","src":"460:79:101","statements":[{"body":{"nativeSrc":"517:16:101","nodeType":"YulBlock","src":"517:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:101","nodeType":"YulLiteral","src":"526:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:101","nodeType":"YulLiteral","src":"529:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:101","nodeType":"YulIdentifier","src":"519:6:101"},"nativeSrc":"519:12:101","nodeType":"YulFunctionCall","src":"519:12:101"},"nativeSrc":"519:12:101","nodeType":"YulExpressionStatement","src":"519:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:101","nodeType":"YulIdentifier","src":"483:5:101"},{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"490:17:101","nodeType":"YulIdentifier","src":"490:17:101"},"nativeSrc":"490:24:101","nodeType":"YulFunctionCall","src":"490:24:101"}],"functionName":{"name":"eq","nativeSrc":"480:2:101","nodeType":"YulIdentifier","src":"480:2:101"},"nativeSrc":"480:35:101","nodeType":"YulFunctionCall","src":"480:35:101"}],"functionName":{"name":"iszero","nativeSrc":"473:6:101","nodeType":"YulIdentifier","src":"473:6:101"},"nativeSrc":"473:43:101","nodeType":"YulFunctionCall","src":"473:43:101"},"nativeSrc":"470:63:101","nodeType":"YulIf","src":"470:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"417:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:101","nodeType":"YulTypedName","src":"453:5:101","type":""}],"src":"417:122:101"},{"body":{"nativeSrc":"597:87:101","nodeType":"YulBlock","src":"597:87:101","statements":[{"nativeSrc":"607:29:101","nodeType":"YulAssignment","src":"607:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:101","nodeType":"YulIdentifier","src":"629:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:101","nodeType":"YulIdentifier","src":"616:12:101"},"nativeSrc":"616:20:101","nodeType":"YulFunctionCall","src":"616:20:101"},"variableNames":[{"name":"value","nativeSrc":"607:5:101","nodeType":"YulIdentifier","src":"607:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:101","nodeType":"YulIdentifier","src":"672:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"645:26:101","nodeType":"YulIdentifier","src":"645:26:101"},"nativeSrc":"645:33:101","nodeType":"YulFunctionCall","src":"645:33:101"},"nativeSrc":"645:33:101","nodeType":"YulExpressionStatement","src":"645:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"545:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:101","nodeType":"YulTypedName","src":"575:6:101","type":""},{"name":"end","nativeSrc":"583:3:101","nodeType":"YulTypedName","src":"583:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:101","nodeType":"YulTypedName","src":"591:5:101","type":""}],"src":"545:139:101"},{"body":{"nativeSrc":"756:263:101","nodeType":"YulBlock","src":"756:263:101","statements":[{"body":{"nativeSrc":"802:83:101","nodeType":"YulBlock","src":"802:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"804:77:101","nodeType":"YulIdentifier","src":"804:77:101"},"nativeSrc":"804:79:101","nodeType":"YulFunctionCall","src":"804:79:101"},"nativeSrc":"804:79:101","nodeType":"YulExpressionStatement","src":"804:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"777:7:101","nodeType":"YulIdentifier","src":"777:7:101"},{"name":"headStart","nativeSrc":"786:9:101","nodeType":"YulIdentifier","src":"786:9:101"}],"functionName":{"name":"sub","nativeSrc":"773:3:101","nodeType":"YulIdentifier","src":"773:3:101"},"nativeSrc":"773:23:101","nodeType":"YulFunctionCall","src":"773:23:101"},{"kind":"number","nativeSrc":"798:2:101","nodeType":"YulLiteral","src":"798:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"769:3:101","nodeType":"YulIdentifier","src":"769:3:101"},"nativeSrc":"769:32:101","nodeType":"YulFunctionCall","src":"769:32:101"},"nativeSrc":"766:119:101","nodeType":"YulIf","src":"766:119:101"},{"nativeSrc":"895:117:101","nodeType":"YulBlock","src":"895:117:101","statements":[{"nativeSrc":"910:15:101","nodeType":"YulVariableDeclaration","src":"910:15:101","value":{"kind":"number","nativeSrc":"924:1:101","nodeType":"YulLiteral","src":"924:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"914:6:101","nodeType":"YulTypedName","src":"914:6:101","type":""}]},{"nativeSrc":"939:63:101","nodeType":"YulAssignment","src":"939:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"974:9:101","nodeType":"YulIdentifier","src":"974:9:101"},{"name":"offset","nativeSrc":"985:6:101","nodeType":"YulIdentifier","src":"985:6:101"}],"functionName":{"name":"add","nativeSrc":"970:3:101","nodeType":"YulIdentifier","src":"970:3:101"},"nativeSrc":"970:22:101","nodeType":"YulFunctionCall","src":"970:22:101"},{"name":"dataEnd","nativeSrc":"994:7:101","nodeType":"YulIdentifier","src":"994:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"949:20:101","nodeType":"YulIdentifier","src":"949:20:101"},"nativeSrc":"949:53:101","nodeType":"YulFunctionCall","src":"949:53:101"},"variableNames":[{"name":"value0","nativeSrc":"939:6:101","nodeType":"YulIdentifier","src":"939:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"690:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"726:9:101","nodeType":"YulTypedName","src":"726:9:101","type":""},{"name":"dataEnd","nativeSrc":"737:7:101","nodeType":"YulTypedName","src":"737:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"749:6:101","nodeType":"YulTypedName","src":"749:6:101","type":""}],"src":"690:329:101"},{"body":{"nativeSrc":"1090:53:101","nodeType":"YulBlock","src":"1090:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1107:3:101","nodeType":"YulIdentifier","src":"1107:3:101"},{"arguments":[{"name":"value","nativeSrc":"1130:5:101","nodeType":"YulIdentifier","src":"1130:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1112:17:101","nodeType":"YulIdentifier","src":"1112:17:101"},"nativeSrc":"1112:24:101","nodeType":"YulFunctionCall","src":"1112:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1100:6:101","nodeType":"YulIdentifier","src":"1100:6:101"},"nativeSrc":"1100:37:101","nodeType":"YulFunctionCall","src":"1100:37:101"},"nativeSrc":"1100:37:101","nodeType":"YulExpressionStatement","src":"1100:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1025:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1078:5:101","nodeType":"YulTypedName","src":"1078:5:101","type":""},{"name":"pos","nativeSrc":"1085:3:101","nodeType":"YulTypedName","src":"1085:3:101","type":""}],"src":"1025:118:101"},{"body":{"nativeSrc":"1247:124:101","nodeType":"YulBlock","src":"1247:124:101","statements":[{"nativeSrc":"1257:26:101","nodeType":"YulAssignment","src":"1257:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1269:9:101","nodeType":"YulIdentifier","src":"1269:9:101"},{"kind":"number","nativeSrc":"1280:2:101","nodeType":"YulLiteral","src":"1280:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1265:3:101","nodeType":"YulIdentifier","src":"1265:3:101"},"nativeSrc":"1265:18:101","nodeType":"YulFunctionCall","src":"1265:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1257:4:101","nodeType":"YulIdentifier","src":"1257:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1337:6:101","nodeType":"YulIdentifier","src":"1337:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1350:9:101","nodeType":"YulIdentifier","src":"1350:9:101"},{"kind":"number","nativeSrc":"1361:1:101","nodeType":"YulLiteral","src":"1361:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1346:3:101","nodeType":"YulIdentifier","src":"1346:3:101"},"nativeSrc":"1346:17:101","nodeType":"YulFunctionCall","src":"1346:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1293:43:101","nodeType":"YulIdentifier","src":"1293:43:101"},"nativeSrc":"1293:71:101","nodeType":"YulFunctionCall","src":"1293:71:101"},"nativeSrc":"1293:71:101","nodeType":"YulExpressionStatement","src":"1293:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1149:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1219:9:101","nodeType":"YulTypedName","src":"1219:9:101","type":""},{"name":"value0","nativeSrc":"1231:6:101","nodeType":"YulTypedName","src":"1231:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1242:4:101","nodeType":"YulTypedName","src":"1242:4:101","type":""}],"src":"1149:222:101"},{"body":{"nativeSrc":"1422:81:101","nodeType":"YulBlock","src":"1422:81:101","statements":[{"nativeSrc":"1432:65:101","nodeType":"YulAssignment","src":"1432:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1447:5:101","nodeType":"YulIdentifier","src":"1447:5:101"},{"kind":"number","nativeSrc":"1454:42:101","nodeType":"YulLiteral","src":"1454:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1443:3:101","nodeType":"YulIdentifier","src":"1443:3:101"},"nativeSrc":"1443:54:101","nodeType":"YulFunctionCall","src":"1443:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1432:7:101","nodeType":"YulIdentifier","src":"1432:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1377:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1404:5:101","nodeType":"YulTypedName","src":"1404:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1414:7:101","nodeType":"YulTypedName","src":"1414:7:101","type":""}],"src":"1377:126:101"},{"body":{"nativeSrc":"1554:51:101","nodeType":"YulBlock","src":"1554:51:101","statements":[{"nativeSrc":"1564:35:101","nodeType":"YulAssignment","src":"1564:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1593:5:101","nodeType":"YulIdentifier","src":"1593:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1575:17:101","nodeType":"YulIdentifier","src":"1575:17:101"},"nativeSrc":"1575:24:101","nodeType":"YulFunctionCall","src":"1575:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1564:7:101","nodeType":"YulIdentifier","src":"1564:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1509:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1536:5:101","nodeType":"YulTypedName","src":"1536:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1546:7:101","nodeType":"YulTypedName","src":"1546:7:101","type":""}],"src":"1509:96:101"},{"body":{"nativeSrc":"1676:53:101","nodeType":"YulBlock","src":"1676:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1693:3:101","nodeType":"YulIdentifier","src":"1693:3:101"},{"arguments":[{"name":"value","nativeSrc":"1716:5:101","nodeType":"YulIdentifier","src":"1716:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1698:17:101","nodeType":"YulIdentifier","src":"1698:17:101"},"nativeSrc":"1698:24:101","nodeType":"YulFunctionCall","src":"1698:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1686:6:101","nodeType":"YulIdentifier","src":"1686:6:101"},"nativeSrc":"1686:37:101","nodeType":"YulFunctionCall","src":"1686:37:101"},"nativeSrc":"1686:37:101","nodeType":"YulExpressionStatement","src":"1686:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1611:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1664:5:101","nodeType":"YulTypedName","src":"1664:5:101","type":""},{"name":"pos","nativeSrc":"1671:3:101","nodeType":"YulTypedName","src":"1671:3:101","type":""}],"src":"1611:118:101"},{"body":{"nativeSrc":"1833:124:101","nodeType":"YulBlock","src":"1833:124:101","statements":[{"nativeSrc":"1843:26:101","nodeType":"YulAssignment","src":"1843:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1855:9:101","nodeType":"YulIdentifier","src":"1855:9:101"},{"kind":"number","nativeSrc":"1866:2:101","nodeType":"YulLiteral","src":"1866:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1851:3:101","nodeType":"YulIdentifier","src":"1851:3:101"},"nativeSrc":"1851:18:101","nodeType":"YulFunctionCall","src":"1851:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1843:4:101","nodeType":"YulIdentifier","src":"1843:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1936:9:101","nodeType":"YulIdentifier","src":"1936:9:101"},{"kind":"number","nativeSrc":"1947:1:101","nodeType":"YulLiteral","src":"1947:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1932:3:101","nodeType":"YulIdentifier","src":"1932:3:101"},"nativeSrc":"1932:17:101","nodeType":"YulFunctionCall","src":"1932:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1879:43:101","nodeType":"YulIdentifier","src":"1879:43:101"},"nativeSrc":"1879:71:101","nodeType":"YulFunctionCall","src":"1879:71:101"},"nativeSrc":"1879:71:101","nodeType":"YulExpressionStatement","src":"1879:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1735:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1805:9:101","nodeType":"YulTypedName","src":"1805:9:101","type":""},{"name":"value0","nativeSrc":"1817:6:101","nodeType":"YulTypedName","src":"1817:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1828:4:101","nodeType":"YulTypedName","src":"1828:4:101","type":""}],"src":"1735:222:101"},{"body":{"nativeSrc":"2006:79:101","nodeType":"YulBlock","src":"2006:79:101","statements":[{"body":{"nativeSrc":"2063:16:101","nodeType":"YulBlock","src":"2063:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2072:1:101","nodeType":"YulLiteral","src":"2072:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2075:1:101","nodeType":"YulLiteral","src":"2075:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2065:6:101","nodeType":"YulIdentifier","src":"2065:6:101"},"nativeSrc":"2065:12:101","nodeType":"YulFunctionCall","src":"2065:12:101"},"nativeSrc":"2065:12:101","nodeType":"YulExpressionStatement","src":"2065:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2029:5:101","nodeType":"YulIdentifier","src":"2029:5:101"},{"arguments":[{"name":"value","nativeSrc":"2054:5:101","nodeType":"YulIdentifier","src":"2054:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2036:17:101","nodeType":"YulIdentifier","src":"2036:17:101"},"nativeSrc":"2036:24:101","nodeType":"YulFunctionCall","src":"2036:24:101"}],"functionName":{"name":"eq","nativeSrc":"2026:2:101","nodeType":"YulIdentifier","src":"2026:2:101"},"nativeSrc":"2026:35:101","nodeType":"YulFunctionCall","src":"2026:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"},"nativeSrc":"2019:43:101","nodeType":"YulFunctionCall","src":"2019:43:101"},"nativeSrc":"2016:63:101","nodeType":"YulIf","src":"2016:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1963:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1999:5:101","nodeType":"YulTypedName","src":"1999:5:101","type":""}],"src":"1963:122:101"},{"body":{"nativeSrc":"2143:87:101","nodeType":"YulBlock","src":"2143:87:101","statements":[{"nativeSrc":"2153:29:101","nodeType":"YulAssignment","src":"2153:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2175:6:101","nodeType":"YulIdentifier","src":"2175:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2162:12:101","nodeType":"YulIdentifier","src":"2162:12:101"},"nativeSrc":"2162:20:101","nodeType":"YulFunctionCall","src":"2162:20:101"},"variableNames":[{"name":"value","nativeSrc":"2153:5:101","nodeType":"YulIdentifier","src":"2153:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2218:5:101","nodeType":"YulIdentifier","src":"2218:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2191:26:101","nodeType":"YulIdentifier","src":"2191:26:101"},"nativeSrc":"2191:33:101","nodeType":"YulFunctionCall","src":"2191:33:101"},"nativeSrc":"2191:33:101","nodeType":"YulExpressionStatement","src":"2191:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2091:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2121:6:101","nodeType":"YulTypedName","src":"2121:6:101","type":""},{"name":"end","nativeSrc":"2129:3:101","nodeType":"YulTypedName","src":"2129:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2137:5:101","nodeType":"YulTypedName","src":"2137:5:101","type":""}],"src":"2091:139:101"},{"body":{"nativeSrc":"2302:263:101","nodeType":"YulBlock","src":"2302:263:101","statements":[{"body":{"nativeSrc":"2348:83:101","nodeType":"YulBlock","src":"2348:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2350:77:101","nodeType":"YulIdentifier","src":"2350:77:101"},"nativeSrc":"2350:79:101","nodeType":"YulFunctionCall","src":"2350:79:101"},"nativeSrc":"2350:79:101","nodeType":"YulExpressionStatement","src":"2350:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2323:7:101","nodeType":"YulIdentifier","src":"2323:7:101"},{"name":"headStart","nativeSrc":"2332:9:101","nodeType":"YulIdentifier","src":"2332:9:101"}],"functionName":{"name":"sub","nativeSrc":"2319:3:101","nodeType":"YulIdentifier","src":"2319:3:101"},"nativeSrc":"2319:23:101","nodeType":"YulFunctionCall","src":"2319:23:101"},{"kind":"number","nativeSrc":"2344:2:101","nodeType":"YulLiteral","src":"2344:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2315:3:101","nodeType":"YulIdentifier","src":"2315:3:101"},"nativeSrc":"2315:32:101","nodeType":"YulFunctionCall","src":"2315:32:101"},"nativeSrc":"2312:119:101","nodeType":"YulIf","src":"2312:119:101"},{"nativeSrc":"2441:117:101","nodeType":"YulBlock","src":"2441:117:101","statements":[{"nativeSrc":"2456:15:101","nodeType":"YulVariableDeclaration","src":"2456:15:101","value":{"kind":"number","nativeSrc":"2470:1:101","nodeType":"YulLiteral","src":"2470:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2460:6:101","nodeType":"YulTypedName","src":"2460:6:101","type":""}]},{"nativeSrc":"2485:63:101","nodeType":"YulAssignment","src":"2485:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2520:9:101","nodeType":"YulIdentifier","src":"2520:9:101"},{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"}],"functionName":{"name":"add","nativeSrc":"2516:3:101","nodeType":"YulIdentifier","src":"2516:3:101"},"nativeSrc":"2516:22:101","nodeType":"YulFunctionCall","src":"2516:22:101"},{"name":"dataEnd","nativeSrc":"2540:7:101","nodeType":"YulIdentifier","src":"2540:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2495:20:101","nodeType":"YulIdentifier","src":"2495:20:101"},"nativeSrc":"2495:53:101","nodeType":"YulFunctionCall","src":"2495:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2485:6:101","nodeType":"YulIdentifier","src":"2485:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2236:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2272:9:101","nodeType":"YulTypedName","src":"2272:9:101","type":""},{"name":"dataEnd","nativeSrc":"2283:7:101","nodeType":"YulTypedName","src":"2283:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2295:6:101","nodeType":"YulTypedName","src":"2295:6:101","type":""}],"src":"2236:329:101"},{"body":{"nativeSrc":"2599:152:101","nodeType":"YulBlock","src":"2599:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2616:1:101","nodeType":"YulLiteral","src":"2616:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2619:77:101","nodeType":"YulLiteral","src":"2619:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2609:6:101","nodeType":"YulIdentifier","src":"2609:6:101"},"nativeSrc":"2609:88:101","nodeType":"YulFunctionCall","src":"2609:88:101"},"nativeSrc":"2609:88:101","nodeType":"YulExpressionStatement","src":"2609:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2713:1:101","nodeType":"YulLiteral","src":"2713:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2716:4:101","nodeType":"YulLiteral","src":"2716:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"2706:6:101","nodeType":"YulIdentifier","src":"2706:6:101"},"nativeSrc":"2706:15:101","nodeType":"YulFunctionCall","src":"2706:15:101"},"nativeSrc":"2706:15:101","nodeType":"YulExpressionStatement","src":"2706:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2737:1:101","nodeType":"YulLiteral","src":"2737:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2740:4:101","nodeType":"YulLiteral","src":"2740:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2730:6:101","nodeType":"YulIdentifier","src":"2730:6:101"},"nativeSrc":"2730:15:101","nodeType":"YulFunctionCall","src":"2730:15:101"},"nativeSrc":"2730:15:101","nodeType":"YulExpressionStatement","src":"2730:15:101"}]},"name":"panic_error_0x11","nativeSrc":"2571:180:101","nodeType":"YulFunctionDefinition","src":"2571:180:101"},{"body":{"nativeSrc":"2805:362:101","nodeType":"YulBlock","src":"2805:362:101","statements":[{"nativeSrc":"2815:25:101","nodeType":"YulAssignment","src":"2815:25:101","value":{"arguments":[{"name":"x","nativeSrc":"2838:1:101","nodeType":"YulIdentifier","src":"2838:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2820:17:101","nodeType":"YulIdentifier","src":"2820:17:101"},"nativeSrc":"2820:20:101","nodeType":"YulFunctionCall","src":"2820:20:101"},"variableNames":[{"name":"x","nativeSrc":"2815:1:101","nodeType":"YulIdentifier","src":"2815:1:101"}]},{"nativeSrc":"2849:25:101","nodeType":"YulAssignment","src":"2849:25:101","value":{"arguments":[{"name":"y","nativeSrc":"2872:1:101","nodeType":"YulIdentifier","src":"2872:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2854:17:101","nodeType":"YulIdentifier","src":"2854:17:101"},"nativeSrc":"2854:20:101","nodeType":"YulFunctionCall","src":"2854:20:101"},"variableNames":[{"name":"y","nativeSrc":"2849:1:101","nodeType":"YulIdentifier","src":"2849:1:101"}]},{"nativeSrc":"2883:28:101","nodeType":"YulVariableDeclaration","src":"2883:28:101","value":{"arguments":[{"name":"x","nativeSrc":"2906:1:101","nodeType":"YulIdentifier","src":"2906:1:101"},{"name":"y","nativeSrc":"2909:1:101","nodeType":"YulIdentifier","src":"2909:1:101"}],"functionName":{"name":"mul","nativeSrc":"2902:3:101","nodeType":"YulIdentifier","src":"2902:3:101"},"nativeSrc":"2902:9:101","nodeType":"YulFunctionCall","src":"2902:9:101"},"variables":[{"name":"product_raw","nativeSrc":"2887:11:101","nodeType":"YulTypedName","src":"2887:11:101","type":""}]},{"nativeSrc":"2920:41:101","nodeType":"YulAssignment","src":"2920:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"2949:11:101","nodeType":"YulIdentifier","src":"2949:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2931:17:101","nodeType":"YulIdentifier","src":"2931:17:101"},"nativeSrc":"2931:30:101","nodeType":"YulFunctionCall","src":"2931:30:101"},"variableNames":[{"name":"product","nativeSrc":"2920:7:101","nodeType":"YulIdentifier","src":"2920:7:101"}]},{"body":{"nativeSrc":"3138:22:101","nodeType":"YulBlock","src":"3138:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"3140:16:101","nodeType":"YulIdentifier","src":"3140:16:101"},"nativeSrc":"3140:18:101","nodeType":"YulFunctionCall","src":"3140:18:101"},"nativeSrc":"3140:18:101","nodeType":"YulExpressionStatement","src":"3140:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"3071:1:101","nodeType":"YulIdentifier","src":"3071:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3064:6:101","nodeType":"YulIdentifier","src":"3064:6:101"},"nativeSrc":"3064:9:101","nodeType":"YulFunctionCall","src":"3064:9:101"},{"arguments":[{"name":"y","nativeSrc":"3094:1:101","nodeType":"YulIdentifier","src":"3094:1:101"},{"arguments":[{"name":"product","nativeSrc":"3101:7:101","nodeType":"YulIdentifier","src":"3101:7:101"},{"name":"x","nativeSrc":"3110:1:101","nodeType":"YulIdentifier","src":"3110:1:101"}],"functionName":{"name":"div","nativeSrc":"3097:3:101","nodeType":"YulIdentifier","src":"3097:3:101"},"nativeSrc":"3097:15:101","nodeType":"YulFunctionCall","src":"3097:15:101"}],"functionName":{"name":"eq","nativeSrc":"3091:2:101","nodeType":"YulIdentifier","src":"3091:2:101"},"nativeSrc":"3091:22:101","nodeType":"YulFunctionCall","src":"3091:22:101"}],"functionName":{"name":"or","nativeSrc":"3044:2:101","nodeType":"YulIdentifier","src":"3044:2:101"},"nativeSrc":"3044:83:101","nodeType":"YulFunctionCall","src":"3044:83:101"}],"functionName":{"name":"iszero","nativeSrc":"3024:6:101","nodeType":"YulIdentifier","src":"3024:6:101"},"nativeSrc":"3024:113:101","nodeType":"YulFunctionCall","src":"3024:113:101"},"nativeSrc":"3021:139:101","nodeType":"YulIf","src":"3021:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"2757:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"2788:1:101","nodeType":"YulTypedName","src":"2788:1:101","type":""},{"name":"y","nativeSrc":"2791:1:101","nodeType":"YulTypedName","src":"2791:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"2797:7:101","nodeType":"YulTypedName","src":"2797:7:101","type":""}],"src":"2757:410:101"},{"body":{"nativeSrc":"3201:152:101","nodeType":"YulBlock","src":"3201:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3218:1:101","nodeType":"YulLiteral","src":"3218:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3221:77:101","nodeType":"YulLiteral","src":"3221:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3211:6:101","nodeType":"YulIdentifier","src":"3211:6:101"},"nativeSrc":"3211:88:101","nodeType":"YulFunctionCall","src":"3211:88:101"},"nativeSrc":"3211:88:101","nodeType":"YulExpressionStatement","src":"3211:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3315:1:101","nodeType":"YulLiteral","src":"3315:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3318:4:101","nodeType":"YulLiteral","src":"3318:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"3308:6:101","nodeType":"YulIdentifier","src":"3308:6:101"},"nativeSrc":"3308:15:101","nodeType":"YulFunctionCall","src":"3308:15:101"},"nativeSrc":"3308:15:101","nodeType":"YulExpressionStatement","src":"3308:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3339:1:101","nodeType":"YulLiteral","src":"3339:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3342:4:101","nodeType":"YulLiteral","src":"3342:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3332:6:101","nodeType":"YulIdentifier","src":"3332:6:101"},"nativeSrc":"3332:15:101","nodeType":"YulFunctionCall","src":"3332:15:101"},"nativeSrc":"3332:15:101","nodeType":"YulExpressionStatement","src":"3332:15:101"}]},"name":"panic_error_0x12","nativeSrc":"3173:180:101","nodeType":"YulFunctionDefinition","src":"3173:180:101"},{"body":{"nativeSrc":"3401:143:101","nodeType":"YulBlock","src":"3401:143:101","statements":[{"nativeSrc":"3411:25:101","nodeType":"YulAssignment","src":"3411:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3434:1:101","nodeType":"YulIdentifier","src":"3434:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3416:17:101","nodeType":"YulIdentifier","src":"3416:17:101"},"nativeSrc":"3416:20:101","nodeType":"YulFunctionCall","src":"3416:20:101"},"variableNames":[{"name":"x","nativeSrc":"3411:1:101","nodeType":"YulIdentifier","src":"3411:1:101"}]},{"nativeSrc":"3445:25:101","nodeType":"YulAssignment","src":"3445:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3468:1:101","nodeType":"YulIdentifier","src":"3468:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3450:17:101","nodeType":"YulIdentifier","src":"3450:17:101"},"nativeSrc":"3450:20:101","nodeType":"YulFunctionCall","src":"3450:20:101"},"variableNames":[{"name":"y","nativeSrc":"3445:1:101","nodeType":"YulIdentifier","src":"3445:1:101"}]},{"body":{"nativeSrc":"3492:22:101","nodeType":"YulBlock","src":"3492:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3494:16:101","nodeType":"YulIdentifier","src":"3494:16:101"},"nativeSrc":"3494:18:101","nodeType":"YulFunctionCall","src":"3494:18:101"},"nativeSrc":"3494:18:101","nodeType":"YulExpressionStatement","src":"3494:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3489:1:101","nodeType":"YulIdentifier","src":"3489:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3482:6:101","nodeType":"YulIdentifier","src":"3482:6:101"},"nativeSrc":"3482:9:101","nodeType":"YulFunctionCall","src":"3482:9:101"},"nativeSrc":"3479:35:101","nodeType":"YulIf","src":"3479:35:101"},{"nativeSrc":"3524:14:101","nodeType":"YulAssignment","src":"3524:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3533:1:101","nodeType":"YulIdentifier","src":"3533:1:101"},{"name":"y","nativeSrc":"3536:1:101","nodeType":"YulIdentifier","src":"3536:1:101"}],"functionName":{"name":"div","nativeSrc":"3529:3:101","nodeType":"YulIdentifier","src":"3529:3:101"},"nativeSrc":"3529:9:101","nodeType":"YulFunctionCall","src":"3529:9:101"},"variableNames":[{"name":"r","nativeSrc":"3524:1:101","nodeType":"YulIdentifier","src":"3524:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3359:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3390:1:101","nodeType":"YulTypedName","src":"3390:1:101","type":""},{"name":"y","nativeSrc":"3393:1:101","nodeType":"YulTypedName","src":"3393:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3399:1:101","nodeType":"YulTypedName","src":"3399:1:101","type":""}],"src":"3359:185:101"},{"body":{"nativeSrc":"3646:73:101","nodeType":"YulBlock","src":"3646:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3663:3:101","nodeType":"YulIdentifier","src":"3663:3:101"},{"name":"length","nativeSrc":"3668:6:101","nodeType":"YulIdentifier","src":"3668:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3656:6:101","nodeType":"YulIdentifier","src":"3656:6:101"},"nativeSrc":"3656:19:101","nodeType":"YulFunctionCall","src":"3656:19:101"},"nativeSrc":"3656:19:101","nodeType":"YulExpressionStatement","src":"3656:19:101"},{"nativeSrc":"3684:29:101","nodeType":"YulAssignment","src":"3684:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"3703:3:101","nodeType":"YulIdentifier","src":"3703:3:101"},{"kind":"number","nativeSrc":"3708:4:101","nodeType":"YulLiteral","src":"3708:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3699:3:101","nodeType":"YulIdentifier","src":"3699:3:101"},"nativeSrc":"3699:14:101","nodeType":"YulFunctionCall","src":"3699:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"3684:11:101","nodeType":"YulIdentifier","src":"3684:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3550:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3618:3:101","nodeType":"YulTypedName","src":"3618:3:101","type":""},{"name":"length","nativeSrc":"3623:6:101","nodeType":"YulTypedName","src":"3623:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3634:11:101","nodeType":"YulTypedName","src":"3634:11:101","type":""}],"src":"3550:169:101"},{"body":{"nativeSrc":"3831:119:101","nodeType":"YulBlock","src":"3831:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3853:6:101","nodeType":"YulIdentifier","src":"3853:6:101"},{"kind":"number","nativeSrc":"3861:1:101","nodeType":"YulLiteral","src":"3861:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3849:3:101","nodeType":"YulIdentifier","src":"3849:3:101"},"nativeSrc":"3849:14:101","nodeType":"YulFunctionCall","src":"3849:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"3865:34:101","nodeType":"YulLiteral","src":"3865:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"3842:6:101","nodeType":"YulIdentifier","src":"3842:6:101"},"nativeSrc":"3842:58:101","nodeType":"YulFunctionCall","src":"3842:58:101"},"nativeSrc":"3842:58:101","nodeType":"YulExpressionStatement","src":"3842:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3921:6:101","nodeType":"YulIdentifier","src":"3921:6:101"},{"kind":"number","nativeSrc":"3929:2:101","nodeType":"YulLiteral","src":"3929:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3917:3:101","nodeType":"YulIdentifier","src":"3917:3:101"},"nativeSrc":"3917:15:101","nodeType":"YulFunctionCall","src":"3917:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"3934:8:101","nodeType":"YulLiteral","src":"3934:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"3910:6:101","nodeType":"YulIdentifier","src":"3910:6:101"},"nativeSrc":"3910:33:101","nodeType":"YulFunctionCall","src":"3910:33:101"},"nativeSrc":"3910:33:101","nodeType":"YulExpressionStatement","src":"3910:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"3725:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3823:6:101","nodeType":"YulTypedName","src":"3823:6:101","type":""}],"src":"3725:225:101"},{"body":{"nativeSrc":"4102:220:101","nodeType":"YulBlock","src":"4102:220:101","statements":[{"nativeSrc":"4112:74:101","nodeType":"YulAssignment","src":"4112:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"4178:3:101","nodeType":"YulIdentifier","src":"4178:3:101"},{"kind":"number","nativeSrc":"4183:2:101","nodeType":"YulLiteral","src":"4183:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4119:58:101","nodeType":"YulIdentifier","src":"4119:58:101"},"nativeSrc":"4119:67:101","nodeType":"YulFunctionCall","src":"4119:67:101"},"variableNames":[{"name":"pos","nativeSrc":"4112:3:101","nodeType":"YulIdentifier","src":"4112:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4284:3:101","nodeType":"YulIdentifier","src":"4284:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"4195:88:101","nodeType":"YulIdentifier","src":"4195:88:101"},"nativeSrc":"4195:93:101","nodeType":"YulFunctionCall","src":"4195:93:101"},"nativeSrc":"4195:93:101","nodeType":"YulExpressionStatement","src":"4195:93:101"},{"nativeSrc":"4297:19:101","nodeType":"YulAssignment","src":"4297:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"4308:3:101","nodeType":"YulIdentifier","src":"4308:3:101"},{"kind":"number","nativeSrc":"4313:2:101","nodeType":"YulLiteral","src":"4313:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4304:3:101","nodeType":"YulIdentifier","src":"4304:3:101"},"nativeSrc":"4304:12:101","nodeType":"YulFunctionCall","src":"4304:12:101"},"variableNames":[{"name":"end","nativeSrc":"4297:3:101","nodeType":"YulIdentifier","src":"4297:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"3956:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4090:3:101","nodeType":"YulTypedName","src":"4090:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4098:3:101","nodeType":"YulTypedName","src":"4098:3:101","type":""}],"src":"3956:366:101"},{"body":{"nativeSrc":"4499:248:101","nodeType":"YulBlock","src":"4499:248:101","statements":[{"nativeSrc":"4509:26:101","nodeType":"YulAssignment","src":"4509:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4521:9:101","nodeType":"YulIdentifier","src":"4521:9:101"},{"kind":"number","nativeSrc":"4532:2:101","nodeType":"YulLiteral","src":"4532:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4517:3:101","nodeType":"YulIdentifier","src":"4517:3:101"},"nativeSrc":"4517:18:101","nodeType":"YulFunctionCall","src":"4517:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4509:4:101","nodeType":"YulIdentifier","src":"4509:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4556:9:101","nodeType":"YulIdentifier","src":"4556:9:101"},{"kind":"number","nativeSrc":"4567:1:101","nodeType":"YulLiteral","src":"4567:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4552:3:101","nodeType":"YulIdentifier","src":"4552:3:101"},"nativeSrc":"4552:17:101","nodeType":"YulFunctionCall","src":"4552:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4575:4:101","nodeType":"YulIdentifier","src":"4575:4:101"},{"name":"headStart","nativeSrc":"4581:9:101","nodeType":"YulIdentifier","src":"4581:9:101"}],"functionName":{"name":"sub","nativeSrc":"4571:3:101","nodeType":"YulIdentifier","src":"4571:3:101"},"nativeSrc":"4571:20:101","nodeType":"YulFunctionCall","src":"4571:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4545:6:101","nodeType":"YulIdentifier","src":"4545:6:101"},"nativeSrc":"4545:47:101","nodeType":"YulFunctionCall","src":"4545:47:101"},"nativeSrc":"4545:47:101","nodeType":"YulExpressionStatement","src":"4545:47:101"},{"nativeSrc":"4601:139:101","nodeType":"YulAssignment","src":"4601:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"4735:4:101","nodeType":"YulIdentifier","src":"4735:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"4609:124:101","nodeType":"YulIdentifier","src":"4609:124:101"},"nativeSrc":"4609:131:101","nodeType":"YulFunctionCall","src":"4609:131:101"},"variableNames":[{"name":"tail","nativeSrc":"4601:4:101","nodeType":"YulIdentifier","src":"4601:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4328:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4479:9:101","nodeType":"YulTypedName","src":"4479:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4494:4:101","nodeType":"YulTypedName","src":"4494:4:101","type":""}],"src":"4328:419:101"},{"body":{"nativeSrc":"4859:76:101","nodeType":"YulBlock","src":"4859:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4881:6:101","nodeType":"YulIdentifier","src":"4881:6:101"},{"kind":"number","nativeSrc":"4889:1:101","nodeType":"YulLiteral","src":"4889:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4877:3:101","nodeType":"YulIdentifier","src":"4877:3:101"},"nativeSrc":"4877:14:101","nodeType":"YulFunctionCall","src":"4877:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"4893:34:101","nodeType":"YulLiteral","src":"4893:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"4870:6:101","nodeType":"YulIdentifier","src":"4870:6:101"},"nativeSrc":"4870:58:101","nodeType":"YulFunctionCall","src":"4870:58:101"},"nativeSrc":"4870:58:101","nodeType":"YulExpressionStatement","src":"4870:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"4753:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4851:6:101","nodeType":"YulTypedName","src":"4851:6:101","type":""}],"src":"4753:182:101"},{"body":{"nativeSrc":"5087:220:101","nodeType":"YulBlock","src":"5087:220:101","statements":[{"nativeSrc":"5097:74:101","nodeType":"YulAssignment","src":"5097:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5163:3:101","nodeType":"YulIdentifier","src":"5163:3:101"},{"kind":"number","nativeSrc":"5168:2:101","nodeType":"YulLiteral","src":"5168:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5104:58:101","nodeType":"YulIdentifier","src":"5104:58:101"},"nativeSrc":"5104:67:101","nodeType":"YulFunctionCall","src":"5104:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5097:3:101","nodeType":"YulIdentifier","src":"5097:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5269:3:101","nodeType":"YulIdentifier","src":"5269:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"5180:88:101","nodeType":"YulIdentifier","src":"5180:88:101"},"nativeSrc":"5180:93:101","nodeType":"YulFunctionCall","src":"5180:93:101"},"nativeSrc":"5180:93:101","nodeType":"YulExpressionStatement","src":"5180:93:101"},{"nativeSrc":"5282:19:101","nodeType":"YulAssignment","src":"5282:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5293:3:101","nodeType":"YulIdentifier","src":"5293:3:101"},{"kind":"number","nativeSrc":"5298:2:101","nodeType":"YulLiteral","src":"5298:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5289:3:101","nodeType":"YulIdentifier","src":"5289:3:101"},"nativeSrc":"5289:12:101","nodeType":"YulFunctionCall","src":"5289:12:101"},"variableNames":[{"name":"end","nativeSrc":"5282:3:101","nodeType":"YulIdentifier","src":"5282:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"4941:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5075:3:101","nodeType":"YulTypedName","src":"5075:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5083:3:101","nodeType":"YulTypedName","src":"5083:3:101","type":""}],"src":"4941:366:101"},{"body":{"nativeSrc":"5484:248:101","nodeType":"YulBlock","src":"5484:248:101","statements":[{"nativeSrc":"5494:26:101","nodeType":"YulAssignment","src":"5494:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5506:9:101","nodeType":"YulIdentifier","src":"5506:9:101"},{"kind":"number","nativeSrc":"5517:2:101","nodeType":"YulLiteral","src":"5517:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5502:3:101","nodeType":"YulIdentifier","src":"5502:3:101"},"nativeSrc":"5502:18:101","nodeType":"YulFunctionCall","src":"5502:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5494:4:101","nodeType":"YulIdentifier","src":"5494:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5541:9:101","nodeType":"YulIdentifier","src":"5541:9:101"},{"kind":"number","nativeSrc":"5552:1:101","nodeType":"YulLiteral","src":"5552:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5537:3:101","nodeType":"YulIdentifier","src":"5537:3:101"},"nativeSrc":"5537:17:101","nodeType":"YulFunctionCall","src":"5537:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5560:4:101","nodeType":"YulIdentifier","src":"5560:4:101"},{"name":"headStart","nativeSrc":"5566:9:101","nodeType":"YulIdentifier","src":"5566:9:101"}],"functionName":{"name":"sub","nativeSrc":"5556:3:101","nodeType":"YulIdentifier","src":"5556:3:101"},"nativeSrc":"5556:20:101","nodeType":"YulFunctionCall","src":"5556:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5530:6:101","nodeType":"YulIdentifier","src":"5530:6:101"},"nativeSrc":"5530:47:101","nodeType":"YulFunctionCall","src":"5530:47:101"},"nativeSrc":"5530:47:101","nodeType":"YulExpressionStatement","src":"5530:47:101"},{"nativeSrc":"5586:139:101","nodeType":"YulAssignment","src":"5586:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5720:4:101","nodeType":"YulIdentifier","src":"5720:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"5594:124:101","nodeType":"YulIdentifier","src":"5594:124:101"},"nativeSrc":"5594:131:101","nodeType":"YulFunctionCall","src":"5594:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5586:4:101","nodeType":"YulIdentifier","src":"5586:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5313:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5464:9:101","nodeType":"YulTypedName","src":"5464:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5479:4:101","nodeType":"YulTypedName","src":"5479:4:101","type":""}],"src":"5313:419:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610060575f3560e01c8063561bddf814610064578063715018a61461008d5780637c5a227c146100975780638da5cb5b146100a0578063b1ef362d146100b8578063f2fde38b146100cb575b5f80fd5b6100776100723660046101f8565b6100de565b6040516100849190610226565b60405180910390f35b610095610106565b005b61007760015481565b5f546001600160a01b0316604051610084919061024d565b6100956100c63660046101f8565b610119565b6100956100d936600461026f565b610126565b5f670de0b6b3a7640000600154836100f691906102a1565b61010091906102d4565b92915050565b61010e610169565b6101175f610192565b565b610121610169565b600155565b61012e610169565b6001600160a01b03811661015d5760405162461bcd60e51b8152600401610154906102e7565b60405180910390fd5b61016681610192565b50565b5f546001600160a01b031633146101175760405162461bcd60e51b815260040161015490610331565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805b8114610166575f80fd5b8035610100816101e1565b5f6020828403121561020b5761020b5f80fd5b5f61021684846101ed565b949350505050565b805b82525050565b60208101610100828461021e565b5f6001600160a01b038216610100565b61022081610234565b602081016101008284610244565b6101e381610234565b80356101008161025b565b5f60208284031215610282576102825f80fd5b5f6102168484610264565b634e487b7160e01b5f52601160045260245ffd5b8181028082158382048514176102b9576102b961028d565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f826102e2576102e26102c0565b500490565b6020808252810161010081602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161010056fea264697066735822122089a79b75b1b169a2f123dc99230f82af4e3a74d41e5167fef8be3045252737f864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x60 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x561BDDF8 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x7C5A227C EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xB1EF362D EQ PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xCB JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x77 PUSH2 0x72 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x226 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0x106 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x77 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x24D JUMP JUMPDEST PUSH2 0x95 PUSH2 0xC6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0x119 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xD9 CALLDATASIZE PUSH1 0x4 PUSH2 0x26F JUMP JUMPDEST PUSH2 0x126 JUMP JUMPDEST PUSH0 PUSH8 0xDE0B6B3A7640000 PUSH1 0x1 SLOAD DUP4 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x2A1 JUMP JUMPDEST PUSH2 0x100 SWAP2 SWAP1 PUSH2 0x2D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10E PUSH2 0x169 JUMP JUMPDEST PUSH2 0x117 PUSH0 PUSH2 0x192 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x121 PUSH2 0x169 JUMP JUMPDEST PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH2 0x12E PUSH2 0x169 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x166 DUP2 PUSH2 0x192 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x117 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154 SWAP1 PUSH2 0x331 JUMP JUMPDEST PUSH0 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 DUP1 JUMPDEST DUP2 EQ PUSH2 0x166 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x100 DUP2 PUSH2 0x1E1 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B JUMPI PUSH2 0x20B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x216 DUP5 DUP5 PUSH2 0x1ED JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x100 DUP3 DUP5 PUSH2 0x21E JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x100 JUMP JUMPDEST PUSH2 0x220 DUP2 PUSH2 0x234 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x100 DUP3 DUP5 PUSH2 0x244 JUMP JUMPDEST PUSH2 0x1E3 DUP2 PUSH2 0x234 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x100 DUP2 PUSH2 0x25B JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282 JUMPI PUSH2 0x282 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x216 DUP5 DUP5 PUSH2 0x264 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x2B9 JUMPI PUSH2 0x2B9 PUSH2 0x28D JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x2E2 JUMPI PUSH2 0x2E2 PUSH2 0x2C0 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x100 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x100 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 0xA7 SWAP12 PUSH22 0xB1B169A2F123DC99230F82AF4E3A74D41E5167FEF8BE ADDRESS GASLIMIT 0x25 0x27 CALLDATACOPY 0xF8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"170:467:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:137;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:10;;;:::i;:::-;;304:29:79;;;;;;1201:85:10;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;1201:85;;;;;;:::i;372:120:79:-;;;;;;:::i;:::-;;:::i;2074:198:10:-;;;;;;:::i;:::-;;:::i;498:137:79:-;570:7;624:4;606:14;;597:6;:23;;;;:::i;:::-;596:32;;;;:::i;:::-;589:39;498:137;-1:-1:-1;;498:137:79:o;1824:101:10:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;372:120:79:-;1094:13:10;:11;:13::i;:::-;453:14:79::1;:32:::0;372:120::o;2074:198:10:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;2426:187::-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;417:122:101:-;508:5;490:24;483:5;480:35;470:63;;529:1;526;519:12;545:139;616:20;;645:33;616:20;645:33;:::i;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;170:467:79;;;804:79:101;924:1;949:53;994:7;974:9;949:53;:::i;:::-;939:63;690:329;-1:-1:-1;;;;690:329:101:o;1025:118::-;1130:5;1112:24;1107:3;1100:37;1025:118;;:::o;1149:222::-;1280:2;1265:18;;1293:71;1269:9;1337:6;1293:71;:::i;1509:96::-;1546:7;-1:-1:-1;;;;;1443:54:101;;1575:24;1377:126;1611:118;1698:24;1716:5;1698:24;:::i;1735:222::-;1866:2;1851:18;;1879:71;1855:9;1923:6;1879:71;:::i;1963:122::-;2036:24;2054:5;2036:24;:::i;2091:139::-;2162:20;;2191:33;2162:20;2191:33;:::i;2236:329::-;2295:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:119;;;2350:79;170:467:79;;;2350:79:101;2470:1;2495:53;2540:7;2520:9;2495:53;:::i;2571:180::-;-1:-1:-1;;;2616:1:101;2609:88;2716:4;2713:1;2706:15;2740:4;2737:1;2730:15;2757:410;2902:9;;;;3064;;3097:15;;;3091:22;;3044:83;3021:139;;3140:18;;:::i;:::-;2805:362;2757:410;;;;:::o;3173:180::-;-1:-1:-1;;;3218:1:101;3211:88;3318:4;3315:1;3308:15;3342:4;3339:1;3332:15;3359:185;3399:1;3489;3479:35;;3494:18;;:::i;:::-;-1:-1:-1;3529:9:101;;3359:185::o;4328:419::-;4532:2;4545:47;;;4517:18;;4609:131;4517:18;4183:2;3656:19;;3865:34;3708:4;3699:14;;3842:58;-1:-1:-1;;;3917:15:101;;;3910:33;4304:12;;;3956:366;5313:419;5517:2;5530:47;;;5502:18;;;3656:19;;;4893:34;3699:14;;;4870:58;5289:12;;;5594:131;4941:366"},"gasEstimates":{"creation":{"codeDepositCost":"185800","executionCost":"26070","totalCost":"211870"},"external":{"amountForShare(uint256)":"infinite","amountPerShare()":"2382","owner()":"infinite","renounceOwnership()":"infinite","setAmountPerShare(uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"amountForShare(uint256)":"561bddf8","amountPerShare()":"7c5a227c","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAmountPerShare(uint256)":"b1ef362d","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_share\",\"type\":\"uint256\"}],\"name\":\"amountForShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"amountPerShare\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountPerShare\",\"type\":\"uint256\"}],\"name\":\"setAmountPerShare\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"amountPerShare()\":{\"notice\":\"The amount of eETH per weETH scaled by 1e18\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockEtherFiLiquidityPool.sol\":\"MockEtherFiLiquidityPool\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/IEtherFiLiquidityPool.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IEtherFiLiquidityPool {\\n    function amountForShare(uint256 _share) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xce3955be63e9f3787e90573c72c119238d2e63712c1a828b874145b1f91761d6\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockEtherFiLiquidityPool.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../interfaces/IEtherFiLiquidityPool.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockEtherFiLiquidityPool is IEtherFiLiquidityPool, Ownable {\\n    /// @notice The amount of eETH per weETH scaled by 1e18\\n    uint256 public amountPerShare;\\n\\n    constructor() Ownable() {}\\n\\n    function setAmountPerShare(uint256 _amountPerShare) external onlyOwner {\\n        amountPerShare = _amountPerShare;\\n    }\\n\\n    function amountForShare(uint256 _share) external view override returns (uint256) {\\n        return (_share * amountPerShare) / 1e18;\\n    }\\n}\\n\",\"keccak256\":\"0x7546c418d5ce4bc5a9467d6cd2be25ad3113a9341d5970b4c7c62d6daaf5db79\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1101,"contract":"contracts/test/MockEtherFiLiquidityPool.sol:MockEtherFiLiquidityPool","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":7898,"contract":"contracts/test/MockEtherFiLiquidityPool.sol:MockEtherFiLiquidityPool","label":"amountPerShare","offset":0,"slot":"1","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{"amountPerShare()":{"notice":"The amount of eETH per weETH scaled by 1e18"}},"version":1}}},"contracts/test/MockSFrax.sol":{"MockSFrax":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"faucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"@_7970":{"entryPoint":null,"id":7970,"parameterSlots":3,"returnSlots":0},"@_msgSender_1908":{"entryPoint":112,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":116,"id":1205,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":340,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":403,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":462,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory":{"entryPoint":479,"id":null,"parameterSlots":2,"returnSlots":3},"allocate_memory":{"entryPoint":261,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":288,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":765,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":735,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":669,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":828,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":329,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":625,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":217,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":605,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":197,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":718,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":683,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":445,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:8980:101","nodeType":"YulBlock","src":"0:8980:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2613:43:101","nodeType":"YulBlock","src":"2613:43:101","statements":[{"nativeSrc":"2623:27:101","nodeType":"YulAssignment","src":"2623:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2638:5:101","nodeType":"YulIdentifier","src":"2638:5:101"},{"kind":"number","nativeSrc":"2645:4:101","nodeType":"YulLiteral","src":"2645:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2634:3:101","nodeType":"YulIdentifier","src":"2634:3:101"},"nativeSrc":"2634:16:101","nodeType":"YulFunctionCall","src":"2634:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2623:7:101","nodeType":"YulIdentifier","src":"2623:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2570:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulTypedName","src":"2595:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2605:7:101","nodeType":"YulTypedName","src":"2605:7:101","type":""}],"src":"2570:86:101"},{"body":{"nativeSrc":"2703:77:101","nodeType":"YulBlock","src":"2703:77:101","statements":[{"body":{"nativeSrc":"2758:16:101","nodeType":"YulBlock","src":"2758:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2767:1:101","nodeType":"YulLiteral","src":"2767:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2770:1:101","nodeType":"YulLiteral","src":"2770:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2760:6:101","nodeType":"YulIdentifier","src":"2760:6:101"},"nativeSrc":"2760:12:101","nodeType":"YulFunctionCall","src":"2760:12:101"},"nativeSrc":"2760:12:101","nodeType":"YulExpressionStatement","src":"2760:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2726:5:101","nodeType":"YulIdentifier","src":"2726:5:101"},{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2733:15:101","nodeType":"YulIdentifier","src":"2733:15:101"},"nativeSrc":"2733:22:101","nodeType":"YulFunctionCall","src":"2733:22:101"}],"functionName":{"name":"eq","nativeSrc":"2723:2:101","nodeType":"YulIdentifier","src":"2723:2:101"},"nativeSrc":"2723:33:101","nodeType":"YulFunctionCall","src":"2723:33:101"}],"functionName":{"name":"iszero","nativeSrc":"2716:6:101","nodeType":"YulIdentifier","src":"2716:6:101"},"nativeSrc":"2716:41:101","nodeType":"YulFunctionCall","src":"2716:41:101"},"nativeSrc":"2713:61:101","nodeType":"YulIf","src":"2713:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"2662:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2696:5:101","nodeType":"YulTypedName","src":"2696:5:101","type":""}],"src":"2662:118:101"},{"body":{"nativeSrc":"2847:78:101","nodeType":"YulBlock","src":"2847:78:101","statements":[{"nativeSrc":"2857:22:101","nodeType":"YulAssignment","src":"2857:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"mload","nativeSrc":"2866:5:101","nodeType":"YulIdentifier","src":"2866:5:101"},"nativeSrc":"2866:13:101","nodeType":"YulFunctionCall","src":"2866:13:101"},"variableNames":[{"name":"value","nativeSrc":"2857:5:101","nodeType":"YulIdentifier","src":"2857:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2913:5:101","nodeType":"YulIdentifier","src":"2913:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2888:24:101","nodeType":"YulIdentifier","src":"2888:24:101"},"nativeSrc":"2888:31:101","nodeType":"YulFunctionCall","src":"2888:31:101"},"nativeSrc":"2888:31:101","nodeType":"YulExpressionStatement","src":"2888:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2786:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2825:6:101","nodeType":"YulTypedName","src":"2825:6:101","type":""},{"name":"end","nativeSrc":"2833:3:101","nodeType":"YulTypedName","src":"2833:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2841:5:101","nodeType":"YulTypedName","src":"2841:5:101","type":""}],"src":"2786:139:101"},{"body":{"nativeSrc":"3060:876:101","nodeType":"YulBlock","src":"3060:876:101","statements":[{"body":{"nativeSrc":"3106:83:101","nodeType":"YulBlock","src":"3106:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3108:77:101","nodeType":"YulIdentifier","src":"3108:77:101"},"nativeSrc":"3108:79:101","nodeType":"YulFunctionCall","src":"3108:79:101"},"nativeSrc":"3108:79:101","nodeType":"YulExpressionStatement","src":"3108:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3081:7:101","nodeType":"YulIdentifier","src":"3081:7:101"},{"name":"headStart","nativeSrc":"3090:9:101","nodeType":"YulIdentifier","src":"3090:9:101"}],"functionName":{"name":"sub","nativeSrc":"3077:3:101","nodeType":"YulIdentifier","src":"3077:3:101"},"nativeSrc":"3077:23:101","nodeType":"YulFunctionCall","src":"3077:23:101"},{"kind":"number","nativeSrc":"3102:2:101","nodeType":"YulLiteral","src":"3102:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3073:3:101","nodeType":"YulIdentifier","src":"3073:3:101"},"nativeSrc":"3073:32:101","nodeType":"YulFunctionCall","src":"3073:32:101"},"nativeSrc":"3070:119:101","nodeType":"YulIf","src":"3070:119:101"},{"nativeSrc":"3199:291:101","nodeType":"YulBlock","src":"3199:291:101","statements":[{"nativeSrc":"3214:38:101","nodeType":"YulVariableDeclaration","src":"3214:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3238:9:101","nodeType":"YulIdentifier","src":"3238:9:101"},{"kind":"number","nativeSrc":"3249:1:101","nodeType":"YulLiteral","src":"3249:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3234:3:101","nodeType":"YulIdentifier","src":"3234:3:101"},"nativeSrc":"3234:17:101","nodeType":"YulFunctionCall","src":"3234:17:101"}],"functionName":{"name":"mload","nativeSrc":"3228:5:101","nodeType":"YulIdentifier","src":"3228:5:101"},"nativeSrc":"3228:24:101","nodeType":"YulFunctionCall","src":"3228:24:101"},"variables":[{"name":"offset","nativeSrc":"3218:6:101","nodeType":"YulTypedName","src":"3218:6:101","type":""}]},{"body":{"nativeSrc":"3299:83:101","nodeType":"YulBlock","src":"3299:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3301:77:101","nodeType":"YulIdentifier","src":"3301:77:101"},"nativeSrc":"3301:79:101","nodeType":"YulFunctionCall","src":"3301:79:101"},"nativeSrc":"3301:79:101","nodeType":"YulExpressionStatement","src":"3301:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3271:6:101","nodeType":"YulIdentifier","src":"3271:6:101"},{"kind":"number","nativeSrc":"3279:18:101","nodeType":"YulLiteral","src":"3279:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3268:2:101","nodeType":"YulIdentifier","src":"3268:2:101"},"nativeSrc":"3268:30:101","nodeType":"YulFunctionCall","src":"3268:30:101"},"nativeSrc":"3265:117:101","nodeType":"YulIf","src":"3265:117:101"},{"nativeSrc":"3396:84:101","nodeType":"YulAssignment","src":"3396:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3452:9:101","nodeType":"YulIdentifier","src":"3452:9:101"},{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulIdentifier","src":"3463:6:101"}],"functionName":{"name":"add","nativeSrc":"3448:3:101","nodeType":"YulIdentifier","src":"3448:3:101"},"nativeSrc":"3448:22:101","nodeType":"YulFunctionCall","src":"3448:22:101"},{"name":"dataEnd","nativeSrc":"3472:7:101","nodeType":"YulIdentifier","src":"3472:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3406:41:101","nodeType":"YulIdentifier","src":"3406:41:101"},"nativeSrc":"3406:74:101","nodeType":"YulFunctionCall","src":"3406:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3396:6:101","nodeType":"YulIdentifier","src":"3396:6:101"}]}]},{"nativeSrc":"3500:292:101","nodeType":"YulBlock","src":"3500:292:101","statements":[{"nativeSrc":"3515:39:101","nodeType":"YulVariableDeclaration","src":"3515:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3539:9:101","nodeType":"YulIdentifier","src":"3539:9:101"},{"kind":"number","nativeSrc":"3550:2:101","nodeType":"YulLiteral","src":"3550:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3535:3:101","nodeType":"YulIdentifier","src":"3535:3:101"},"nativeSrc":"3535:18:101","nodeType":"YulFunctionCall","src":"3535:18:101"}],"functionName":{"name":"mload","nativeSrc":"3529:5:101","nodeType":"YulIdentifier","src":"3529:5:101"},"nativeSrc":"3529:25:101","nodeType":"YulFunctionCall","src":"3529:25:101"},"variables":[{"name":"offset","nativeSrc":"3519:6:101","nodeType":"YulTypedName","src":"3519:6:101","type":""}]},{"body":{"nativeSrc":"3601:83:101","nodeType":"YulBlock","src":"3601:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3603:77:101","nodeType":"YulIdentifier","src":"3603:77:101"},"nativeSrc":"3603:79:101","nodeType":"YulFunctionCall","src":"3603:79:101"},"nativeSrc":"3603:79:101","nodeType":"YulExpressionStatement","src":"3603:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3573:6:101","nodeType":"YulIdentifier","src":"3573:6:101"},{"kind":"number","nativeSrc":"3581:18:101","nodeType":"YulLiteral","src":"3581:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3570:2:101","nodeType":"YulIdentifier","src":"3570:2:101"},"nativeSrc":"3570:30:101","nodeType":"YulFunctionCall","src":"3570:30:101"},"nativeSrc":"3567:117:101","nodeType":"YulIf","src":"3567:117:101"},{"nativeSrc":"3698:84:101","nodeType":"YulAssignment","src":"3698:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3754:9:101","nodeType":"YulIdentifier","src":"3754:9:101"},{"name":"offset","nativeSrc":"3765:6:101","nodeType":"YulIdentifier","src":"3765:6:101"}],"functionName":{"name":"add","nativeSrc":"3750:3:101","nodeType":"YulIdentifier","src":"3750:3:101"},"nativeSrc":"3750:22:101","nodeType":"YulFunctionCall","src":"3750:22:101"},{"name":"dataEnd","nativeSrc":"3774:7:101","nodeType":"YulIdentifier","src":"3774:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3708:41:101","nodeType":"YulIdentifier","src":"3708:41:101"},"nativeSrc":"3708:74:101","nodeType":"YulFunctionCall","src":"3708:74:101"},"variableNames":[{"name":"value1","nativeSrc":"3698:6:101","nodeType":"YulIdentifier","src":"3698:6:101"}]}]},{"nativeSrc":"3802:127:101","nodeType":"YulBlock","src":"3802:127:101","statements":[{"nativeSrc":"3817:16:101","nodeType":"YulVariableDeclaration","src":"3817:16:101","value":{"kind":"number","nativeSrc":"3831:2:101","nodeType":"YulLiteral","src":"3831:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3821:6:101","nodeType":"YulTypedName","src":"3821:6:101","type":""}]},{"nativeSrc":"3847:72:101","nodeType":"YulAssignment","src":"3847:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3891:9:101","nodeType":"YulIdentifier","src":"3891:9:101"},{"name":"offset","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"}],"functionName":{"name":"add","nativeSrc":"3887:3:101","nodeType":"YulIdentifier","src":"3887:3:101"},"nativeSrc":"3887:22:101","nodeType":"YulFunctionCall","src":"3887:22:101"},{"name":"dataEnd","nativeSrc":"3911:7:101","nodeType":"YulIdentifier","src":"3911:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"3857:29:101","nodeType":"YulIdentifier","src":"3857:29:101"},"nativeSrc":"3857:62:101","nodeType":"YulFunctionCall","src":"3857:62:101"},"variableNames":[{"name":"value2","nativeSrc":"3847:6:101","nodeType":"YulIdentifier","src":"3847:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory","nativeSrc":"2931:1005:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3014:9:101","nodeType":"YulTypedName","src":"3014:9:101","type":""},{"name":"dataEnd","nativeSrc":"3025:7:101","nodeType":"YulTypedName","src":"3025:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3037:6:101","nodeType":"YulTypedName","src":"3037:6:101","type":""},{"name":"value1","nativeSrc":"3045:6:101","nodeType":"YulTypedName","src":"3045:6:101","type":""},{"name":"value2","nativeSrc":"3053:6:101","nodeType":"YulTypedName","src":"3053:6:101","type":""}],"src":"2931:1005:101"},{"body":{"nativeSrc":"4001:40:101","nodeType":"YulBlock","src":"4001:40:101","statements":[{"nativeSrc":"4012:22:101","nodeType":"YulAssignment","src":"4012:22:101","value":{"arguments":[{"name":"value","nativeSrc":"4028:5:101","nodeType":"YulIdentifier","src":"4028:5:101"}],"functionName":{"name":"mload","nativeSrc":"4022:5:101","nodeType":"YulIdentifier","src":"4022:5:101"},"nativeSrc":"4022:12:101","nodeType":"YulFunctionCall","src":"4022:12:101"},"variableNames":[{"name":"length","nativeSrc":"4012:6:101","nodeType":"YulIdentifier","src":"4012:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3942:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3984:5:101","nodeType":"YulTypedName","src":"3984:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3994:6:101","nodeType":"YulTypedName","src":"3994:6:101","type":""}],"src":"3942:99:101"},{"body":{"nativeSrc":"4075:152:101","nodeType":"YulBlock","src":"4075:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4092:1:101","nodeType":"YulLiteral","src":"4092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4095:77:101","nodeType":"YulLiteral","src":"4095:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4085:6:101","nodeType":"YulIdentifier","src":"4085:6:101"},"nativeSrc":"4085:88:101","nodeType":"YulFunctionCall","src":"4085:88:101"},"nativeSrc":"4085:88:101","nodeType":"YulExpressionStatement","src":"4085:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4189:1:101","nodeType":"YulLiteral","src":"4189:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4192:4:101","nodeType":"YulLiteral","src":"4192:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4182:6:101","nodeType":"YulIdentifier","src":"4182:6:101"},"nativeSrc":"4182:15:101","nodeType":"YulFunctionCall","src":"4182:15:101"},"nativeSrc":"4182:15:101","nodeType":"YulExpressionStatement","src":"4182:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4213:1:101","nodeType":"YulLiteral","src":"4213:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4216:4:101","nodeType":"YulLiteral","src":"4216:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},"nativeSrc":"4206:15:101","nodeType":"YulFunctionCall","src":"4206:15:101"},"nativeSrc":"4206:15:101","nodeType":"YulExpressionStatement","src":"4206:15:101"}]},"name":"panic_error_0x22","nativeSrc":"4047:180:101","nodeType":"YulFunctionDefinition","src":"4047:180:101"},{"body":{"nativeSrc":"4284:269:101","nodeType":"YulBlock","src":"4284:269:101","statements":[{"nativeSrc":"4294:22:101","nodeType":"YulAssignment","src":"4294:22:101","value":{"arguments":[{"name":"data","nativeSrc":"4308:4:101","nodeType":"YulIdentifier","src":"4308:4:101"},{"kind":"number","nativeSrc":"4314:1:101","nodeType":"YulLiteral","src":"4314:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4304:3:101","nodeType":"YulIdentifier","src":"4304:3:101"},"nativeSrc":"4304:12:101","nodeType":"YulFunctionCall","src":"4304:12:101"},"variableNames":[{"name":"length","nativeSrc":"4294:6:101","nodeType":"YulIdentifier","src":"4294:6:101"}]},{"nativeSrc":"4325:38:101","nodeType":"YulVariableDeclaration","src":"4325:38:101","value":{"arguments":[{"name":"data","nativeSrc":"4355:4:101","nodeType":"YulIdentifier","src":"4355:4:101"},{"kind":"number","nativeSrc":"4361:1:101","nodeType":"YulLiteral","src":"4361:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4351:3:101","nodeType":"YulIdentifier","src":"4351:3:101"},"nativeSrc":"4351:12:101","nodeType":"YulFunctionCall","src":"4351:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4329:18:101","nodeType":"YulTypedName","src":"4329:18:101","type":""}]},{"body":{"nativeSrc":"4402:51:101","nodeType":"YulBlock","src":"4402:51:101","statements":[{"nativeSrc":"4416:27:101","nodeType":"YulAssignment","src":"4416:27:101","value":{"arguments":[{"name":"length","nativeSrc":"4430:6:101","nodeType":"YulIdentifier","src":"4430:6:101"},{"kind":"number","nativeSrc":"4438:4:101","nodeType":"YulLiteral","src":"4438:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4426:3:101","nodeType":"YulIdentifier","src":"4426:3:101"},"nativeSrc":"4426:17:101","nodeType":"YulFunctionCall","src":"4426:17:101"},"variableNames":[{"name":"length","nativeSrc":"4416:6:101","nodeType":"YulIdentifier","src":"4416:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4382:18:101","nodeType":"YulIdentifier","src":"4382:18:101"}],"functionName":{"name":"iszero","nativeSrc":"4375:6:101","nodeType":"YulIdentifier","src":"4375:6:101"},"nativeSrc":"4375:26:101","nodeType":"YulFunctionCall","src":"4375:26:101"},"nativeSrc":"4372:81:101","nodeType":"YulIf","src":"4372:81:101"},{"body":{"nativeSrc":"4505:42:101","nodeType":"YulBlock","src":"4505:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4519:16:101","nodeType":"YulIdentifier","src":"4519:16:101"},"nativeSrc":"4519:18:101","nodeType":"YulFunctionCall","src":"4519:18:101"},"nativeSrc":"4519:18:101","nodeType":"YulExpressionStatement","src":"4519:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4469:18:101","nodeType":"YulIdentifier","src":"4469:18:101"},{"arguments":[{"name":"length","nativeSrc":"4492:6:101","nodeType":"YulIdentifier","src":"4492:6:101"},{"kind":"number","nativeSrc":"4500:2:101","nodeType":"YulLiteral","src":"4500:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4489:2:101","nodeType":"YulIdentifier","src":"4489:2:101"},"nativeSrc":"4489:14:101","nodeType":"YulFunctionCall","src":"4489:14:101"}],"functionName":{"name":"eq","nativeSrc":"4466:2:101","nodeType":"YulIdentifier","src":"4466:2:101"},"nativeSrc":"4466:38:101","nodeType":"YulFunctionCall","src":"4466:38:101"},"nativeSrc":"4463:84:101","nodeType":"YulIf","src":"4463:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"4233:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4268:4:101","nodeType":"YulTypedName","src":"4268:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4277:6:101","nodeType":"YulTypedName","src":"4277:6:101","type":""}],"src":"4233:320:101"},{"body":{"nativeSrc":"4613:87:101","nodeType":"YulBlock","src":"4613:87:101","statements":[{"nativeSrc":"4623:11:101","nodeType":"YulAssignment","src":"4623:11:101","value":{"name":"ptr","nativeSrc":"4631:3:101","nodeType":"YulIdentifier","src":"4631:3:101"},"variableNames":[{"name":"data","nativeSrc":"4623:4:101","nodeType":"YulIdentifier","src":"4623:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4651:1:101","nodeType":"YulLiteral","src":"4651:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"4654:3:101","nodeType":"YulIdentifier","src":"4654:3:101"}],"functionName":{"name":"mstore","nativeSrc":"4644:6:101","nodeType":"YulIdentifier","src":"4644:6:101"},"nativeSrc":"4644:14:101","nodeType":"YulFunctionCall","src":"4644:14:101"},"nativeSrc":"4644:14:101","nodeType":"YulExpressionStatement","src":"4644:14:101"},{"nativeSrc":"4667:26:101","nodeType":"YulAssignment","src":"4667:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"4685:1:101","nodeType":"YulLiteral","src":"4685:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4688:4:101","nodeType":"YulLiteral","src":"4688:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4675:9:101","nodeType":"YulIdentifier","src":"4675:9:101"},"nativeSrc":"4675:18:101","nodeType":"YulFunctionCall","src":"4675:18:101"},"variableNames":[{"name":"data","nativeSrc":"4667:4:101","nodeType":"YulIdentifier","src":"4667:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4559:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4600:3:101","nodeType":"YulTypedName","src":"4600:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4608:4:101","nodeType":"YulTypedName","src":"4608:4:101","type":""}],"src":"4559:141:101"},{"body":{"nativeSrc":"4750:49:101","nodeType":"YulBlock","src":"4750:49:101","statements":[{"nativeSrc":"4760:33:101","nodeType":"YulAssignment","src":"4760:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4778:5:101","nodeType":"YulIdentifier","src":"4778:5:101"},{"kind":"number","nativeSrc":"4785:2:101","nodeType":"YulLiteral","src":"4785:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4774:3:101","nodeType":"YulIdentifier","src":"4774:3:101"},"nativeSrc":"4774:14:101","nodeType":"YulFunctionCall","src":"4774:14:101"},{"kind":"number","nativeSrc":"4790:2:101","nodeType":"YulLiteral","src":"4790:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4770:3:101","nodeType":"YulIdentifier","src":"4770:3:101"},"nativeSrc":"4770:23:101","nodeType":"YulFunctionCall","src":"4770:23:101"},"variableNames":[{"name":"result","nativeSrc":"4760:6:101","nodeType":"YulIdentifier","src":"4760:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4706:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4733:5:101","nodeType":"YulTypedName","src":"4733:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4743:6:101","nodeType":"YulTypedName","src":"4743:6:101","type":""}],"src":"4706:93:101"},{"body":{"nativeSrc":"4858:54:101","nodeType":"YulBlock","src":"4858:54:101","statements":[{"nativeSrc":"4868:37:101","nodeType":"YulAssignment","src":"4868:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"4893:4:101","nodeType":"YulIdentifier","src":"4893:4:101"},{"name":"value","nativeSrc":"4899:5:101","nodeType":"YulIdentifier","src":"4899:5:101"}],"functionName":{"name":"shl","nativeSrc":"4889:3:101","nodeType":"YulIdentifier","src":"4889:3:101"},"nativeSrc":"4889:16:101","nodeType":"YulFunctionCall","src":"4889:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"4868:8:101","nodeType":"YulIdentifier","src":"4868:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"4805:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4833:4:101","nodeType":"YulTypedName","src":"4833:4:101","type":""},{"name":"value","nativeSrc":"4839:5:101","nodeType":"YulTypedName","src":"4839:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4849:8:101","nodeType":"YulTypedName","src":"4849:8:101","type":""}],"src":"4805:107:101"},{"body":{"nativeSrc":"4994:317:101","nodeType":"YulBlock","src":"4994:317:101","statements":[{"nativeSrc":"5004:35:101","nodeType":"YulVariableDeclaration","src":"5004:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5025:10:101","nodeType":"YulIdentifier","src":"5025:10:101"},{"kind":"number","nativeSrc":"5037:1:101","nodeType":"YulLiteral","src":"5037:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5021:3:101","nodeType":"YulIdentifier","src":"5021:3:101"},"nativeSrc":"5021:18:101","nodeType":"YulFunctionCall","src":"5021:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"5008:9:101","nodeType":"YulTypedName","src":"5008:9:101","type":""}]},{"nativeSrc":"5048:109:101","nodeType":"YulVariableDeclaration","src":"5048:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5079:9:101","nodeType":"YulIdentifier","src":"5079:9:101"},{"kind":"number","nativeSrc":"5090:66:101","nodeType":"YulLiteral","src":"5090:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5060:18:101","nodeType":"YulIdentifier","src":"5060:18:101"},"nativeSrc":"5060:97:101","nodeType":"YulFunctionCall","src":"5060:97:101"},"variables":[{"name":"mask","nativeSrc":"5052:4:101","nodeType":"YulTypedName","src":"5052:4:101","type":""}]},{"nativeSrc":"5166:51:101","nodeType":"YulAssignment","src":"5166:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5197:9:101","nodeType":"YulIdentifier","src":"5197:9:101"},{"name":"toInsert","nativeSrc":"5208:8:101","nodeType":"YulIdentifier","src":"5208:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5178:18:101","nodeType":"YulIdentifier","src":"5178:18:101"},"nativeSrc":"5178:39:101","nodeType":"YulFunctionCall","src":"5178:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"5166:8:101","nodeType":"YulIdentifier","src":"5166:8:101"}]},{"nativeSrc":"5226:30:101","nodeType":"YulAssignment","src":"5226:30:101","value":{"arguments":[{"name":"value","nativeSrc":"5239:5:101","nodeType":"YulIdentifier","src":"5239:5:101"},{"arguments":[{"name":"mask","nativeSrc":"5250:4:101","nodeType":"YulIdentifier","src":"5250:4:101"}],"functionName":{"name":"not","nativeSrc":"5246:3:101","nodeType":"YulIdentifier","src":"5246:3:101"},"nativeSrc":"5246:9:101","nodeType":"YulFunctionCall","src":"5246:9:101"}],"functionName":{"name":"and","nativeSrc":"5235:3:101","nodeType":"YulIdentifier","src":"5235:3:101"},"nativeSrc":"5235:21:101","nodeType":"YulFunctionCall","src":"5235:21:101"},"variableNames":[{"name":"value","nativeSrc":"5226:5:101","nodeType":"YulIdentifier","src":"5226:5:101"}]},{"nativeSrc":"5265:40:101","nodeType":"YulAssignment","src":"5265:40:101","value":{"arguments":[{"name":"value","nativeSrc":"5278:5:101","nodeType":"YulIdentifier","src":"5278:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"5289:8:101","nodeType":"YulIdentifier","src":"5289:8:101"},{"name":"mask","nativeSrc":"5299:4:101","nodeType":"YulIdentifier","src":"5299:4:101"}],"functionName":{"name":"and","nativeSrc":"5285:3:101","nodeType":"YulIdentifier","src":"5285:3:101"},"nativeSrc":"5285:19:101","nodeType":"YulFunctionCall","src":"5285:19:101"}],"functionName":{"name":"or","nativeSrc":"5275:2:101","nodeType":"YulIdentifier","src":"5275:2:101"},"nativeSrc":"5275:30:101","nodeType":"YulFunctionCall","src":"5275:30:101"},"variableNames":[{"name":"result","nativeSrc":"5265:6:101","nodeType":"YulIdentifier","src":"5265:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"4918:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4955:5:101","nodeType":"YulTypedName","src":"4955:5:101","type":""},{"name":"shiftBytes","nativeSrc":"4962:10:101","nodeType":"YulTypedName","src":"4962:10:101","type":""},{"name":"toInsert","nativeSrc":"4974:8:101","nodeType":"YulTypedName","src":"4974:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4987:6:101","nodeType":"YulTypedName","src":"4987:6:101","type":""}],"src":"4918:393:101"},{"body":{"nativeSrc":"5362:32:101","nodeType":"YulBlock","src":"5362:32:101","statements":[{"nativeSrc":"5372:16:101","nodeType":"YulAssignment","src":"5372:16:101","value":{"name":"value","nativeSrc":"5383:5:101","nodeType":"YulIdentifier","src":"5383:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5372:7:101","nodeType":"YulIdentifier","src":"5372:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5317:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5344:5:101","nodeType":"YulTypedName","src":"5344:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5354:7:101","nodeType":"YulTypedName","src":"5354:7:101","type":""}],"src":"5317:77:101"},{"body":{"nativeSrc":"5432:28:101","nodeType":"YulBlock","src":"5432:28:101","statements":[{"nativeSrc":"5442:12:101","nodeType":"YulAssignment","src":"5442:12:101","value":{"name":"value","nativeSrc":"5449:5:101","nodeType":"YulIdentifier","src":"5449:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"}]}]},"name":"identity","nativeSrc":"5400:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5418:5:101","nodeType":"YulTypedName","src":"5418:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5428:3:101","nodeType":"YulTypedName","src":"5428:3:101","type":""}],"src":"5400:60:101"},{"body":{"nativeSrc":"5526:82:101","nodeType":"YulBlock","src":"5526:82:101","statements":[{"nativeSrc":"5536:66:101","nodeType":"YulAssignment","src":"5536:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5594:5:101","nodeType":"YulIdentifier","src":"5594:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5576:17:101","nodeType":"YulIdentifier","src":"5576:17:101"},"nativeSrc":"5576:24:101","nodeType":"YulFunctionCall","src":"5576:24:101"}],"functionName":{"name":"identity","nativeSrc":"5567:8:101","nodeType":"YulIdentifier","src":"5567:8:101"},"nativeSrc":"5567:34:101","nodeType":"YulFunctionCall","src":"5567:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5549:17:101","nodeType":"YulIdentifier","src":"5549:17:101"},"nativeSrc":"5549:53:101","nodeType":"YulFunctionCall","src":"5549:53:101"},"variableNames":[{"name":"converted","nativeSrc":"5536:9:101","nodeType":"YulIdentifier","src":"5536:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5466:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5506:5:101","nodeType":"YulTypedName","src":"5506:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5516:9:101","nodeType":"YulTypedName","src":"5516:9:101","type":""}],"src":"5466:142:101"},{"body":{"nativeSrc":"5661:28:101","nodeType":"YulBlock","src":"5661:28:101","statements":[{"nativeSrc":"5671:12:101","nodeType":"YulAssignment","src":"5671:12:101","value":{"name":"value","nativeSrc":"5678:5:101","nodeType":"YulIdentifier","src":"5678:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5671:3:101","nodeType":"YulIdentifier","src":"5671:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5614:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5647:5:101","nodeType":"YulTypedName","src":"5647:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5657:3:101","nodeType":"YulTypedName","src":"5657:3:101","type":""}],"src":"5614:75:101"},{"body":{"nativeSrc":"5771:193:101","nodeType":"YulBlock","src":"5771:193:101","statements":[{"nativeSrc":"5781:63:101","nodeType":"YulVariableDeclaration","src":"5781:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"5836:7:101","nodeType":"YulIdentifier","src":"5836:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5805:30:101","nodeType":"YulIdentifier","src":"5805:30:101"},"nativeSrc":"5805:39:101","nodeType":"YulFunctionCall","src":"5805:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"5785:16:101","nodeType":"YulTypedName","src":"5785:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5860:4:101","nodeType":"YulIdentifier","src":"5860:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5900:4:101","nodeType":"YulIdentifier","src":"5900:4:101"}],"functionName":{"name":"sload","nativeSrc":"5894:5:101","nodeType":"YulIdentifier","src":"5894:5:101"},"nativeSrc":"5894:11:101","nodeType":"YulFunctionCall","src":"5894:11:101"},{"name":"offset","nativeSrc":"5907:6:101","nodeType":"YulIdentifier","src":"5907:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"5939:16:101","nodeType":"YulIdentifier","src":"5939:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"5915:23:101","nodeType":"YulIdentifier","src":"5915:23:101"},"nativeSrc":"5915:41:101","nodeType":"YulFunctionCall","src":"5915:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5866:27:101","nodeType":"YulIdentifier","src":"5866:27:101"},"nativeSrc":"5866:91:101","nodeType":"YulFunctionCall","src":"5866:91:101"}],"functionName":{"name":"sstore","nativeSrc":"5853:6:101","nodeType":"YulIdentifier","src":"5853:6:101"},"nativeSrc":"5853:105:101","nodeType":"YulFunctionCall","src":"5853:105:101"},"nativeSrc":"5853:105:101","nodeType":"YulExpressionStatement","src":"5853:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5695:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5748:4:101","nodeType":"YulTypedName","src":"5748:4:101","type":""},{"name":"offset","nativeSrc":"5754:6:101","nodeType":"YulTypedName","src":"5754:6:101","type":""},{"name":"value_0","nativeSrc":"5762:7:101","nodeType":"YulTypedName","src":"5762:7:101","type":""}],"src":"5695:269:101"},{"body":{"nativeSrc":"6019:24:101","nodeType":"YulBlock","src":"6019:24:101","statements":[{"nativeSrc":"6029:8:101","nodeType":"YulAssignment","src":"6029:8:101","value":{"kind":"number","nativeSrc":"6036:1:101","nodeType":"YulLiteral","src":"6036:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6029:3:101","nodeType":"YulIdentifier","src":"6029:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"5970:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6015:3:101","nodeType":"YulTypedName","src":"6015:3:101","type":""}],"src":"5970:73:101"},{"body":{"nativeSrc":"6102:136:101","nodeType":"YulBlock","src":"6102:136:101","statements":[{"nativeSrc":"6112:46:101","nodeType":"YulVariableDeclaration","src":"6112:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6126:30:101","nodeType":"YulIdentifier","src":"6126:30:101"},"nativeSrc":"6126:32:101","nodeType":"YulFunctionCall","src":"6126:32:101"},"variables":[{"name":"zero_0","nativeSrc":"6116:6:101","nodeType":"YulTypedName","src":"6116:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6211:4:101","nodeType":"YulIdentifier","src":"6211:4:101"},{"name":"offset","nativeSrc":"6217:6:101","nodeType":"YulIdentifier","src":"6217:6:101"},{"name":"zero_0","nativeSrc":"6225:6:101","nodeType":"YulIdentifier","src":"6225:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6167:43:101","nodeType":"YulIdentifier","src":"6167:43:101"},"nativeSrc":"6167:65:101","nodeType":"YulFunctionCall","src":"6167:65:101"},"nativeSrc":"6167:65:101","nodeType":"YulExpressionStatement","src":"6167:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6049:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6088:4:101","nodeType":"YulTypedName","src":"6088:4:101","type":""},{"name":"offset","nativeSrc":"6094:6:101","nodeType":"YulTypedName","src":"6094:6:101","type":""}],"src":"6049:189:101"},{"body":{"nativeSrc":"6294:136:101","nodeType":"YulBlock","src":"6294:136:101","statements":[{"body":{"nativeSrc":"6361:63:101","nodeType":"YulBlock","src":"6361:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6405:5:101","nodeType":"YulIdentifier","src":"6405:5:101"},{"kind":"number","nativeSrc":"6412:1:101","nodeType":"YulLiteral","src":"6412:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"6375:29:101","nodeType":"YulIdentifier","src":"6375:29:101"},"nativeSrc":"6375:39:101","nodeType":"YulFunctionCall","src":"6375:39:101"},"nativeSrc":"6375:39:101","nodeType":"YulExpressionStatement","src":"6375:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6314:5:101","nodeType":"YulIdentifier","src":"6314:5:101"},{"name":"end","nativeSrc":"6321:3:101","nodeType":"YulIdentifier","src":"6321:3:101"}],"functionName":{"name":"lt","nativeSrc":"6311:2:101","nodeType":"YulIdentifier","src":"6311:2:101"},"nativeSrc":"6311:14:101","nodeType":"YulFunctionCall","src":"6311:14:101"},"nativeSrc":"6304:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"6326:26:101","nodeType":"YulBlock","src":"6326:26:101","statements":[{"nativeSrc":"6328:22:101","nodeType":"YulAssignment","src":"6328:22:101","value":{"arguments":[{"name":"start","nativeSrc":"6341:5:101","nodeType":"YulIdentifier","src":"6341:5:101"},{"kind":"number","nativeSrc":"6348:1:101","nodeType":"YulLiteral","src":"6348:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6337:3:101","nodeType":"YulIdentifier","src":"6337:3:101"},"nativeSrc":"6337:13:101","nodeType":"YulFunctionCall","src":"6337:13:101"},"variableNames":[{"name":"start","nativeSrc":"6328:5:101","nodeType":"YulIdentifier","src":"6328:5:101"}]}]},"pre":{"nativeSrc":"6308:2:101","nodeType":"YulBlock","src":"6308:2:101","statements":[]},"src":"6304:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6244:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6282:5:101","nodeType":"YulTypedName","src":"6282:5:101","type":""},{"name":"end","nativeSrc":"6289:3:101","nodeType":"YulTypedName","src":"6289:3:101","type":""}],"src":"6244:186:101"},{"body":{"nativeSrc":"6515:464:101","nodeType":"YulBlock","src":"6515:464:101","statements":[{"body":{"nativeSrc":"6541:431:101","nodeType":"YulBlock","src":"6541:431:101","statements":[{"nativeSrc":"6555:54:101","nodeType":"YulVariableDeclaration","src":"6555:54:101","value":{"arguments":[{"name":"array","nativeSrc":"6603:5:101","nodeType":"YulIdentifier","src":"6603:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6571:31:101","nodeType":"YulIdentifier","src":"6571:31:101"},"nativeSrc":"6571:38:101","nodeType":"YulFunctionCall","src":"6571:38:101"},"variables":[{"name":"dataArea","nativeSrc":"6559:8:101","nodeType":"YulTypedName","src":"6559:8:101","type":""}]},{"nativeSrc":"6622:63:101","nodeType":"YulVariableDeclaration","src":"6622:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"6645:8:101","nodeType":"YulIdentifier","src":"6645:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"6673:10:101","nodeType":"YulIdentifier","src":"6673:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6655:17:101","nodeType":"YulIdentifier","src":"6655:17:101"},"nativeSrc":"6655:29:101","nodeType":"YulFunctionCall","src":"6655:29:101"}],"functionName":{"name":"add","nativeSrc":"6641:3:101","nodeType":"YulIdentifier","src":"6641:3:101"},"nativeSrc":"6641:44:101","nodeType":"YulFunctionCall","src":"6641:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"6626:11:101","nodeType":"YulTypedName","src":"6626:11:101","type":""}]},{"body":{"nativeSrc":"6842:27:101","nodeType":"YulBlock","src":"6842:27:101","statements":[{"nativeSrc":"6844:23:101","nodeType":"YulAssignment","src":"6844:23:101","value":{"name":"dataArea","nativeSrc":"6859:8:101","nodeType":"YulIdentifier","src":"6859:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"6844:11:101","nodeType":"YulIdentifier","src":"6844:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6826:10:101","nodeType":"YulIdentifier","src":"6826:10:101"},{"kind":"number","nativeSrc":"6838:2:101","nodeType":"YulLiteral","src":"6838:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6823:2:101","nodeType":"YulIdentifier","src":"6823:2:101"},"nativeSrc":"6823:18:101","nodeType":"YulFunctionCall","src":"6823:18:101"},"nativeSrc":"6820:49:101","nodeType":"YulIf","src":"6820:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"6911:11:101","nodeType":"YulIdentifier","src":"6911:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"6928:8:101","nodeType":"YulIdentifier","src":"6928:8:101"},{"arguments":[{"name":"len","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6938:17:101","nodeType":"YulIdentifier","src":"6938:17:101"},"nativeSrc":"6938:22:101","nodeType":"YulFunctionCall","src":"6938:22:101"}],"functionName":{"name":"add","nativeSrc":"6924:3:101","nodeType":"YulIdentifier","src":"6924:3:101"},"nativeSrc":"6924:37:101","nodeType":"YulFunctionCall","src":"6924:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6882:28:101","nodeType":"YulIdentifier","src":"6882:28:101"},"nativeSrc":"6882:80:101","nodeType":"YulFunctionCall","src":"6882:80:101"},"nativeSrc":"6882:80:101","nodeType":"YulExpressionStatement","src":"6882:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6532:3:101","nodeType":"YulIdentifier","src":"6532:3:101"},{"kind":"number","nativeSrc":"6537:2:101","nodeType":"YulLiteral","src":"6537:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6529:2:101","nodeType":"YulIdentifier","src":"6529:2:101"},"nativeSrc":"6529:11:101","nodeType":"YulFunctionCall","src":"6529:11:101"},"nativeSrc":"6526:446:101","nodeType":"YulIf","src":"6526:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"6436:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"6491:5:101","nodeType":"YulTypedName","src":"6491:5:101","type":""},{"name":"len","nativeSrc":"6498:3:101","nodeType":"YulTypedName","src":"6498:3:101","type":""},{"name":"startIndex","nativeSrc":"6503:10:101","nodeType":"YulTypedName","src":"6503:10:101","type":""}],"src":"6436:543:101"},{"body":{"nativeSrc":"7048:54:101","nodeType":"YulBlock","src":"7048:54:101","statements":[{"nativeSrc":"7058:37:101","nodeType":"YulAssignment","src":"7058:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"7083:4:101","nodeType":"YulIdentifier","src":"7083:4:101"},{"name":"value","nativeSrc":"7089:5:101","nodeType":"YulIdentifier","src":"7089:5:101"}],"functionName":{"name":"shr","nativeSrc":"7079:3:101","nodeType":"YulIdentifier","src":"7079:3:101"},"nativeSrc":"7079:16:101","nodeType":"YulFunctionCall","src":"7079:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"7058:8:101","nodeType":"YulIdentifier","src":"7058:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"6985:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7023:4:101","nodeType":"YulTypedName","src":"7023:4:101","type":""},{"name":"value","nativeSrc":"7029:5:101","nodeType":"YulTypedName","src":"7029:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7039:8:101","nodeType":"YulTypedName","src":"7039:8:101","type":""}],"src":"6985:117:101"},{"body":{"nativeSrc":"7159:118:101","nodeType":"YulBlock","src":"7159:118:101","statements":[{"nativeSrc":"7169:68:101","nodeType":"YulVariableDeclaration","src":"7169:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7218:1:101","nodeType":"YulLiteral","src":"7218:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"7221:5:101","nodeType":"YulIdentifier","src":"7221:5:101"}],"functionName":{"name":"mul","nativeSrc":"7214:3:101","nodeType":"YulIdentifier","src":"7214:3:101"},"nativeSrc":"7214:13:101","nodeType":"YulFunctionCall","src":"7214:13:101"},{"arguments":[{"kind":"number","nativeSrc":"7233:1:101","nodeType":"YulLiteral","src":"7233:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7229:3:101","nodeType":"YulIdentifier","src":"7229:3:101"},"nativeSrc":"7229:6:101","nodeType":"YulFunctionCall","src":"7229:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7185:28:101","nodeType":"YulIdentifier","src":"7185:28:101"},"nativeSrc":"7185:51:101","nodeType":"YulFunctionCall","src":"7185:51:101"}],"functionName":{"name":"not","nativeSrc":"7181:3:101","nodeType":"YulIdentifier","src":"7181:3:101"},"nativeSrc":"7181:56:101","nodeType":"YulFunctionCall","src":"7181:56:101"},"variables":[{"name":"mask","nativeSrc":"7173:4:101","nodeType":"YulTypedName","src":"7173:4:101","type":""}]},{"nativeSrc":"7246:25:101","nodeType":"YulAssignment","src":"7246:25:101","value":{"arguments":[{"name":"data","nativeSrc":"7260:4:101","nodeType":"YulIdentifier","src":"7260:4:101"},{"name":"mask","nativeSrc":"7266:4:101","nodeType":"YulIdentifier","src":"7266:4:101"}],"functionName":{"name":"and","nativeSrc":"7256:3:101","nodeType":"YulIdentifier","src":"7256:3:101"},"nativeSrc":"7256:15:101","nodeType":"YulFunctionCall","src":"7256:15:101"},"variableNames":[{"name":"result","nativeSrc":"7246:6:101","nodeType":"YulIdentifier","src":"7246:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7108:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7136:4:101","nodeType":"YulTypedName","src":"7136:4:101","type":""},{"name":"bytes","nativeSrc":"7142:5:101","nodeType":"YulTypedName","src":"7142:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7152:6:101","nodeType":"YulTypedName","src":"7152:6:101","type":""}],"src":"7108:169:101"},{"body":{"nativeSrc":"7363:214:101","nodeType":"YulBlock","src":"7363:214:101","statements":[{"nativeSrc":"7496:37:101","nodeType":"YulAssignment","src":"7496:37:101","value":{"arguments":[{"name":"data","nativeSrc":"7523:4:101","nodeType":"YulIdentifier","src":"7523:4:101"},{"name":"len","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"7504:18:101","nodeType":"YulIdentifier","src":"7504:18:101"},"nativeSrc":"7504:29:101","nodeType":"YulFunctionCall","src":"7504:29:101"},"variableNames":[{"name":"data","nativeSrc":"7496:4:101","nodeType":"YulIdentifier","src":"7496:4:101"}]},{"nativeSrc":"7542:29:101","nodeType":"YulAssignment","src":"7542:29:101","value":{"arguments":[{"name":"data","nativeSrc":"7553:4:101","nodeType":"YulIdentifier","src":"7553:4:101"},{"arguments":[{"kind":"number","nativeSrc":"7563:1:101","nodeType":"YulLiteral","src":"7563:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"7566:3:101","nodeType":"YulIdentifier","src":"7566:3:101"}],"functionName":{"name":"mul","nativeSrc":"7559:3:101","nodeType":"YulIdentifier","src":"7559:3:101"},"nativeSrc":"7559:11:101","nodeType":"YulFunctionCall","src":"7559:11:101"}],"functionName":{"name":"or","nativeSrc":"7550:2:101","nodeType":"YulIdentifier","src":"7550:2:101"},"nativeSrc":"7550:21:101","nodeType":"YulFunctionCall","src":"7550:21:101"},"variableNames":[{"name":"used","nativeSrc":"7542:4:101","nodeType":"YulIdentifier","src":"7542:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7282:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7344:4:101","nodeType":"YulTypedName","src":"7344:4:101","type":""},{"name":"len","nativeSrc":"7350:3:101","nodeType":"YulTypedName","src":"7350:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"7358:4:101","nodeType":"YulTypedName","src":"7358:4:101","type":""}],"src":"7282:295:101"},{"body":{"nativeSrc":"7674:1303:101","nodeType":"YulBlock","src":"7674:1303:101","statements":[{"nativeSrc":"7685:51:101","nodeType":"YulVariableDeclaration","src":"7685:51:101","value":{"arguments":[{"name":"src","nativeSrc":"7732:3:101","nodeType":"YulIdentifier","src":"7732:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7699:32:101","nodeType":"YulIdentifier","src":"7699:32:101"},"nativeSrc":"7699:37:101","nodeType":"YulFunctionCall","src":"7699:37:101"},"variables":[{"name":"newLen","nativeSrc":"7689:6:101","nodeType":"YulTypedName","src":"7689:6:101","type":""}]},{"body":{"nativeSrc":"7821:22:101","nodeType":"YulBlock","src":"7821:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7823:16:101","nodeType":"YulIdentifier","src":"7823:16:101"},"nativeSrc":"7823:18:101","nodeType":"YulFunctionCall","src":"7823:18:101"},"nativeSrc":"7823:18:101","nodeType":"YulExpressionStatement","src":"7823:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7793:6:101","nodeType":"YulIdentifier","src":"7793:6:101"},{"kind":"number","nativeSrc":"7801:18:101","nodeType":"YulLiteral","src":"7801:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7790:2:101","nodeType":"YulIdentifier","src":"7790:2:101"},"nativeSrc":"7790:30:101","nodeType":"YulFunctionCall","src":"7790:30:101"},"nativeSrc":"7787:56:101","nodeType":"YulIf","src":"7787:56:101"},{"nativeSrc":"7853:52:101","nodeType":"YulVariableDeclaration","src":"7853:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"7899:4:101","nodeType":"YulIdentifier","src":"7899:4:101"}],"functionName":{"name":"sload","nativeSrc":"7893:5:101","nodeType":"YulIdentifier","src":"7893:5:101"},"nativeSrc":"7893:11:101","nodeType":"YulFunctionCall","src":"7893:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7867:25:101","nodeType":"YulIdentifier","src":"7867:25:101"},"nativeSrc":"7867:38:101","nodeType":"YulFunctionCall","src":"7867:38:101"},"variables":[{"name":"oldLen","nativeSrc":"7857:6:101","nodeType":"YulTypedName","src":"7857:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7998:4:101","nodeType":"YulIdentifier","src":"7998:4:101"},{"name":"oldLen","nativeSrc":"8004:6:101","nodeType":"YulIdentifier","src":"8004:6:101"},{"name":"newLen","nativeSrc":"8012:6:101","nodeType":"YulIdentifier","src":"8012:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7952:45:101","nodeType":"YulIdentifier","src":"7952:45:101"},"nativeSrc":"7952:67:101","nodeType":"YulFunctionCall","src":"7952:67:101"},"nativeSrc":"7952:67:101","nodeType":"YulExpressionStatement","src":"7952:67:101"},{"nativeSrc":"8029:18:101","nodeType":"YulVariableDeclaration","src":"8029:18:101","value":{"kind":"number","nativeSrc":"8046:1:101","nodeType":"YulLiteral","src":"8046:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8033:9:101","nodeType":"YulTypedName","src":"8033:9:101","type":""}]},{"nativeSrc":"8057:17:101","nodeType":"YulAssignment","src":"8057:17:101","value":{"kind":"number","nativeSrc":"8070:4:101","nodeType":"YulLiteral","src":"8070:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8057:9:101","nodeType":"YulIdentifier","src":"8057:9:101"}]},{"cases":[{"body":{"nativeSrc":"8121:611:101","nodeType":"YulBlock","src":"8121:611:101","statements":[{"nativeSrc":"8135:37:101","nodeType":"YulVariableDeclaration","src":"8135:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"8154:6:101","nodeType":"YulIdentifier","src":"8154:6:101"},{"arguments":[{"kind":"number","nativeSrc":"8166:4:101","nodeType":"YulLiteral","src":"8166:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8162:3:101","nodeType":"YulIdentifier","src":"8162:3:101"},"nativeSrc":"8162:9:101","nodeType":"YulFunctionCall","src":"8162:9:101"}],"functionName":{"name":"and","nativeSrc":"8150:3:101","nodeType":"YulIdentifier","src":"8150:3:101"},"nativeSrc":"8150:22:101","nodeType":"YulFunctionCall","src":"8150:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"8139:7:101","nodeType":"YulTypedName","src":"8139:7:101","type":""}]},{"nativeSrc":"8186:51:101","nodeType":"YulVariableDeclaration","src":"8186:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"8232:4:101","nodeType":"YulIdentifier","src":"8232:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8200:31:101","nodeType":"YulIdentifier","src":"8200:31:101"},"nativeSrc":"8200:37:101","nodeType":"YulFunctionCall","src":"8200:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"8190:6:101","nodeType":"YulTypedName","src":"8190:6:101","type":""}]},{"nativeSrc":"8250:10:101","nodeType":"YulVariableDeclaration","src":"8250:10:101","value":{"kind":"number","nativeSrc":"8259:1:101","nodeType":"YulLiteral","src":"8259:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8254:1:101","nodeType":"YulTypedName","src":"8254:1:101","type":""}]},{"body":{"nativeSrc":"8318:163:101","nodeType":"YulBlock","src":"8318:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8343:6:101","nodeType":"YulIdentifier","src":"8343:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8361:3:101","nodeType":"YulIdentifier","src":"8361:3:101"},{"name":"srcOffset","nativeSrc":"8366:9:101","nodeType":"YulIdentifier","src":"8366:9:101"}],"functionName":{"name":"add","nativeSrc":"8357:3:101","nodeType":"YulIdentifier","src":"8357:3:101"},"nativeSrc":"8357:19:101","nodeType":"YulFunctionCall","src":"8357:19:101"}],"functionName":{"name":"mload","nativeSrc":"8351:5:101","nodeType":"YulIdentifier","src":"8351:5:101"},"nativeSrc":"8351:26:101","nodeType":"YulFunctionCall","src":"8351:26:101"}],"functionName":{"name":"sstore","nativeSrc":"8336:6:101","nodeType":"YulIdentifier","src":"8336:6:101"},"nativeSrc":"8336:42:101","nodeType":"YulFunctionCall","src":"8336:42:101"},"nativeSrc":"8336:42:101","nodeType":"YulExpressionStatement","src":"8336:42:101"},{"nativeSrc":"8395:24:101","nodeType":"YulAssignment","src":"8395:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"8409:6:101","nodeType":"YulIdentifier","src":"8409:6:101"},{"kind":"number","nativeSrc":"8417:1:101","nodeType":"YulLiteral","src":"8417:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8405:3:101","nodeType":"YulIdentifier","src":"8405:3:101"},"nativeSrc":"8405:14:101","nodeType":"YulFunctionCall","src":"8405:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"8395:6:101","nodeType":"YulIdentifier","src":"8395:6:101"}]},{"nativeSrc":"8436:31:101","nodeType":"YulAssignment","src":"8436:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"8453:9:101","nodeType":"YulIdentifier","src":"8453:9:101"},{"kind":"number","nativeSrc":"8464:2:101","nodeType":"YulLiteral","src":"8464:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8449:3:101","nodeType":"YulIdentifier","src":"8449:3:101"},"nativeSrc":"8449:18:101","nodeType":"YulFunctionCall","src":"8449:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"8436:9:101","nodeType":"YulIdentifier","src":"8436:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8284:1:101","nodeType":"YulIdentifier","src":"8284:1:101"},{"name":"loopEnd","nativeSrc":"8287:7:101","nodeType":"YulIdentifier","src":"8287:7:101"}],"functionName":{"name":"lt","nativeSrc":"8281:2:101","nodeType":"YulIdentifier","src":"8281:2:101"},"nativeSrc":"8281:14:101","nodeType":"YulFunctionCall","src":"8281:14:101"},"nativeSrc":"8273:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"8296:21:101","nodeType":"YulBlock","src":"8296:21:101","statements":[{"nativeSrc":"8298:17:101","nodeType":"YulAssignment","src":"8298:17:101","value":{"arguments":[{"name":"i","nativeSrc":"8307:1:101","nodeType":"YulIdentifier","src":"8307:1:101"},{"kind":"number","nativeSrc":"8310:4:101","nodeType":"YulLiteral","src":"8310:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8303:3:101","nodeType":"YulIdentifier","src":"8303:3:101"},"nativeSrc":"8303:12:101","nodeType":"YulFunctionCall","src":"8303:12:101"},"variableNames":[{"name":"i","nativeSrc":"8298:1:101","nodeType":"YulIdentifier","src":"8298:1:101"}]}]},"pre":{"nativeSrc":"8277:3:101","nodeType":"YulBlock","src":"8277:3:101","statements":[]},"src":"8273:208:101"},{"body":{"nativeSrc":"8517:156:101","nodeType":"YulBlock","src":"8517:156:101","statements":[{"nativeSrc":"8535:43:101","nodeType":"YulVariableDeclaration","src":"8535:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8562:3:101","nodeType":"YulIdentifier","src":"8562:3:101"},{"name":"srcOffset","nativeSrc":"8567:9:101","nodeType":"YulIdentifier","src":"8567:9:101"}],"functionName":{"name":"add","nativeSrc":"8558:3:101","nodeType":"YulIdentifier","src":"8558:3:101"},"nativeSrc":"8558:19:101","nodeType":"YulFunctionCall","src":"8558:19:101"}],"functionName":{"name":"mload","nativeSrc":"8552:5:101","nodeType":"YulIdentifier","src":"8552:5:101"},"nativeSrc":"8552:26:101","nodeType":"YulFunctionCall","src":"8552:26:101"},"variables":[{"name":"lastValue","nativeSrc":"8539:9:101","nodeType":"YulTypedName","src":"8539:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8602:6:101","nodeType":"YulIdentifier","src":"8602:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"8629:9:101","nodeType":"YulIdentifier","src":"8629:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"8644:6:101","nodeType":"YulIdentifier","src":"8644:6:101"},{"kind":"number","nativeSrc":"8652:4:101","nodeType":"YulLiteral","src":"8652:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8640:3:101","nodeType":"YulIdentifier","src":"8640:3:101"},"nativeSrc":"8640:17:101","nodeType":"YulFunctionCall","src":"8640:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8610:18:101","nodeType":"YulIdentifier","src":"8610:18:101"},"nativeSrc":"8610:48:101","nodeType":"YulFunctionCall","src":"8610:48:101"}],"functionName":{"name":"sstore","nativeSrc":"8595:6:101","nodeType":"YulIdentifier","src":"8595:6:101"},"nativeSrc":"8595:64:101","nodeType":"YulFunctionCall","src":"8595:64:101"},"nativeSrc":"8595:64:101","nodeType":"YulExpressionStatement","src":"8595:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"8500:7:101","nodeType":"YulIdentifier","src":"8500:7:101"},{"name":"newLen","nativeSrc":"8509:6:101","nodeType":"YulIdentifier","src":"8509:6:101"}],"functionName":{"name":"lt","nativeSrc":"8497:2:101","nodeType":"YulIdentifier","src":"8497:2:101"},"nativeSrc":"8497:19:101","nodeType":"YulFunctionCall","src":"8497:19:101"},"nativeSrc":"8494:179:101","nodeType":"YulIf","src":"8494:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8693:4:101","nodeType":"YulIdentifier","src":"8693:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8707:6:101","nodeType":"YulIdentifier","src":"8707:6:101"},{"kind":"number","nativeSrc":"8715:1:101","nodeType":"YulLiteral","src":"8715:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8703:3:101","nodeType":"YulIdentifier","src":"8703:3:101"},"nativeSrc":"8703:14:101","nodeType":"YulFunctionCall","src":"8703:14:101"},{"kind":"number","nativeSrc":"8719:1:101","nodeType":"YulLiteral","src":"8719:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8699:3:101","nodeType":"YulIdentifier","src":"8699:3:101"},"nativeSrc":"8699:22:101","nodeType":"YulFunctionCall","src":"8699:22:101"}],"functionName":{"name":"sstore","nativeSrc":"8686:6:101","nodeType":"YulIdentifier","src":"8686:6:101"},"nativeSrc":"8686:36:101","nodeType":"YulFunctionCall","src":"8686:36:101"},"nativeSrc":"8686:36:101","nodeType":"YulExpressionStatement","src":"8686:36:101"}]},"nativeSrc":"8114:618:101","nodeType":"YulCase","src":"8114:618:101","value":{"kind":"number","nativeSrc":"8119:1:101","nodeType":"YulLiteral","src":"8119:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8749:222:101","nodeType":"YulBlock","src":"8749:222:101","statements":[{"nativeSrc":"8763:14:101","nodeType":"YulVariableDeclaration","src":"8763:14:101","value":{"kind":"number","nativeSrc":"8776:1:101","nodeType":"YulLiteral","src":"8776:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8767:5:101","nodeType":"YulTypedName","src":"8767:5:101","type":""}]},{"body":{"nativeSrc":"8800:67:101","nodeType":"YulBlock","src":"8800:67:101","statements":[{"nativeSrc":"8818:35:101","nodeType":"YulAssignment","src":"8818:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8837:3:101","nodeType":"YulIdentifier","src":"8837:3:101"},{"name":"srcOffset","nativeSrc":"8842:9:101","nodeType":"YulIdentifier","src":"8842:9:101"}],"functionName":{"name":"add","nativeSrc":"8833:3:101","nodeType":"YulIdentifier","src":"8833:3:101"},"nativeSrc":"8833:19:101","nodeType":"YulFunctionCall","src":"8833:19:101"}],"functionName":{"name":"mload","nativeSrc":"8827:5:101","nodeType":"YulIdentifier","src":"8827:5:101"},"nativeSrc":"8827:26:101","nodeType":"YulFunctionCall","src":"8827:26:101"},"variableNames":[{"name":"value","nativeSrc":"8818:5:101","nodeType":"YulIdentifier","src":"8818:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"8793:6:101","nodeType":"YulIdentifier","src":"8793:6:101"},"nativeSrc":"8790:77:101","nodeType":"YulIf","src":"8790:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8887:4:101","nodeType":"YulIdentifier","src":"8887:4:101"},{"arguments":[{"name":"value","nativeSrc":"8946:5:101","nodeType":"YulIdentifier","src":"8946:5:101"},{"name":"newLen","nativeSrc":"8953:6:101","nodeType":"YulIdentifier","src":"8953:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8893:52:101","nodeType":"YulIdentifier","src":"8893:52:101"},"nativeSrc":"8893:67:101","nodeType":"YulFunctionCall","src":"8893:67:101"}],"functionName":{"name":"sstore","nativeSrc":"8880:6:101","nodeType":"YulIdentifier","src":"8880:6:101"},"nativeSrc":"8880:81:101","nodeType":"YulFunctionCall","src":"8880:81:101"},"nativeSrc":"8880:81:101","nodeType":"YulExpressionStatement","src":"8880:81:101"}]},"nativeSrc":"8741:230:101","nodeType":"YulCase","src":"8741:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8094:6:101","nodeType":"YulIdentifier","src":"8094:6:101"},{"kind":"number","nativeSrc":"8102:2:101","nodeType":"YulLiteral","src":"8102:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8091:2:101","nodeType":"YulIdentifier","src":"8091:2:101"},"nativeSrc":"8091:14:101","nodeType":"YulFunctionCall","src":"8091:14:101"},"nativeSrc":"8084:887:101","nodeType":"YulSwitch","src":"8084:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7582:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7663:4:101","nodeType":"YulTypedName","src":"7663:4:101","type":""},{"name":"src","nativeSrc":"7669:3:101","nodeType":"YulTypedName","src":"7669:3:101","type":""}],"src":"7582:1395:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b506040516112ba3803806112ba83398101604081905261002e916101df565b8282600361003c838261033c565b506004610049828261033c565b50505061006261005d61007060201b60201c565b610074565b60ff16608052506103fb9050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156100fe576100fe6100c5565b6040525050565b5f61010f60405190565b905061011b82826100d9565b919050565b5f6001600160401b03821115610138576101386100c5565b601f19601f83011660200192915050565b8281835e505f910152565b5f61016661016184610120565b610105565b905082815260208101848484011115610180576101805f80fd5b61018b848285610149565b509392505050565b5f82601f8301126101a5576101a55f80fd5b81516101b5848260208601610154565b949350505050565b60ff811681146101cb575f80fd5b50565b80516101d9816101bd565b92915050565b5f805f606084860312156101f4576101f45f80fd5b83516001600160401b0381111561020c5761020c5f80fd5b61021886828701610193565b93505060208401516001600160401b03811115610236576102365f80fd5b61024286828701610193565b9250506040610253868287016101ce565b9150509250925092565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061028557607f821691505b6020821081036102975761029761025d565b50919050565b5f6101d96102a88381565b90565b6102b48361029d565b81545f1960089490940293841b1916921b91909117905550565b5f6102da8184846102ab565b505050565b818110156102f9576102f15f826102ce565b6001016102df565b5050565b601f8211156102da575f818152602090206020601f850104810160208510156103235750805b6103356020601f8601048301826102df565b5050505050565b81516001600160401b03811115610355576103556100c5565b61035f8254610271565b61036a8282856102fd565b6020601f83116001811461039c575f84156103855750858201515b5f19600886021c19811660028602178655506103f3565b5f85815260208120601f198616915b828110156103cb57888501518255602094850194600190920191016103ab565b868310156103e657848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b608051610ea061041a5f395f818161019001526103350152610ea05ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063579158971161009e57806395d89b411161006e57806395d89b4114610249578063a457c2d714610251578063a9059cbb14610264578063dd62ed3e14610277578063f2fde38b1461028a575f80fd5b806357915897146101ed57806370a0823114610200578063715018a6146102285780638da5cb5b14610230575f80fd5b806323b872dd116100e457806323b872dd1461017b578063313ce5671461018e57806334fcf437146101bc57806339509351146101d15780633ba0b9a9146101e4575f80fd5b806306fdde031461011557806307a2d13a14610133578063095ea7b31461015357806318160ddd14610173575b5f80fd5b61011d61029d565b60405161012a9190610804565b60405180910390f35b61014661014136600461082c565b61032d565b60405161012a919061085a565b61016661016136600461088c565b610379565b60405161012a91906108ce565b600254610146565b6101666101893660046108dc565b610390565b7f000000000000000000000000000000000000000000000000000000000000000060405161012a9190610931565b6101cf6101ca36600461082c565b6103b5565b005b6101666101df36600461088c565b6103c2565b61014660065481565b6101cf6101fb36600461082c565b6103e3565b61014661020e36600461093f565b6001600160a01b03165f9081526020819052604090205490565b6101cf6103f0565b6005546001600160a01b031660405161012a9190610966565b61011d610403565b61016661025f36600461088c565b610412565b61016661027236600461088c565b610462565b610146610285366004610974565b61046f565b6101cf61029836600461093f565b610499565b6060600380546102ac906109b8565b80601f01602080910402602001604051908101604052809291908181526020018280546102d8906109b8565b80156103235780601f106102fa57610100808354040283529160200191610323565b820191905f5260205f20905b81548152906001019060200180831161030657829003601f168201915b5050505050905090565b5f61035c60ff7f000000000000000000000000000000000000000000000000000000000000000016600a610b04565b6006546103699084610b11565b6103739190610b44565b92915050565b5f336103868185856104d0565b5060019392505050565b5f3361039d858285610583565b6103a88585856105cb565b60019150505b9392505050565b6103bd6106b9565b600655565b5f336103868185856103d4838361046f565b6103de9190610b57565b6104d0565b6103ed33826106e3565b50565b6103f86106b9565b6104015f610777565b565b6060600480546102ac906109b8565b5f338161041f828661046f565b90508381101561044a5760405162461bcd60e51b815260040161044190610bae565b60405180910390fd5b61045782868684036104d0565b506001949350505050565b5f336103868185856105cb565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6104a16106b9565b6001600160a01b0381166104c75760405162461bcd60e51b815260040161044190610c00565b6103ed81610777565b6001600160a01b0383166104f65760405162461bcd60e51b815260040161044190610c50565b6001600160a01b03821661051c5760405162461bcd60e51b815260040161044190610c9e565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061057690859061085a565b60405180910390a3505050565b5f61058e848461046f565b90505f1981146105c557818110156105b85760405162461bcd60e51b815260040161044190610ce4565b6105c584848484036104d0565b50505050565b6001600160a01b0383166105f15760405162461bcd60e51b815260040161044190610d35565b6001600160a01b0382166106175760405162461bcd60e51b815260040161044190610d84565b6001600160a01b0383165f908152602081905260409020548181101561064f5760405162461bcd60e51b815260040161044190610dd6565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ac90869061085a565b60405180910390a36105c5565b6005546001600160a01b031633146104015760405162461bcd60e51b815260040161044190610e17565b6001600160a01b0382166107095760405162461bcd60e51b815260040161044190610e5a565b8060025f82825461071a9190610b57565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061076b90859061085a565b60405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f6107dc825190565b8084526020840193506107f38185602086016107c8565b601f01601f19169290920192915050565b602080825281016103ae81846107d3565b805b81146103ed575f80fd5b803561037381610815565b5f6020828403121561083f5761083f5f80fd5b5f61084a8484610821565b949350505050565b805b82525050565b602081016103738284610852565b5f6001600160a01b038216610373565b61081781610868565b803561037381610878565b5f80604083850312156108a0576108a05f80fd5b5f6108ab8585610881565b92505060206108bc85828601610821565b9150509250929050565b801515610854565b6020810161037382846108c6565b5f805f606084860312156108f1576108f15f80fd5b5f6108fc8686610881565b935050602061090d86828701610881565b925050604061091e86828701610821565b9150509250925092565b60ff8116610854565b602081016103738284610928565b5f60208284031215610952576109525f80fd5b5f61084a8484610881565b61085481610868565b60208101610373828461095d565b5f8060408385031215610988576109885f80fd5b5f6109938585610881565b92505060206108bc85828601610881565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806109cc57607f821691505b6020821081036109de576109de6109a4565b50919050565b634e487b7160e01b5f52601160045260245ffd5b80825b6001851115610a3757808604811115610a1657610a166109e4565b6001851615610a2457908102905b8002610a308560011c90565b94506109fb565b94509492505050565b5f82610a4e575060016103ae565b81610a5a57505f6103ae565b8160018114610a705760028114610a7a57610aa7565b60019150506103ae565b60ff841115610a8b57610a8b6109e4565b8360020a915084821115610aa157610aa16109e4565b506103ae565b5060208310610133831016604e8410600b8410161715610ada575081810a83811115610ad557610ad56109e4565b6103ae565b610ae784848460016109f8565b92509050818404811115610afd57610afd6109e4565b0292915050565b5f6103ae5f198484610a40565b818102808215838204851417610b2957610b296109e4565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82610b5257610b52610b30565b500490565b80820180821115610373576103736109e4565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161037381610b6a565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610ba7565b6020808252810161037381610bbe565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610ba7565b6020808252810161037381610c10565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610ba7565b6020808252810161037381610c60565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161037381610cae565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610ba7565b6020808252810161037381610cf4565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610ba7565b6020808252810161037381610d45565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610ba7565b6020808252810161037381610d94565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610cdd565b6020808252810161037381610de6565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610cdd565b6020808252810161037381610e2756fea2646970667358221220b968a1dce2cbcb675f1526b7a462c23457bec16a93633f164c638dd0adcb69ad64736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x12BA CODESIZE SUB DUP1 PUSH2 0x12BA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x1DF JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH2 0x3C DUP4 DUP3 PUSH2 0x33C JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x49 DUP3 DUP3 PUSH2 0x33C JUMP JUMPDEST POP POP POP PUSH2 0x62 PUSH2 0x5D PUSH2 0x70 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x74 JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x80 MSTORE POP PUSH2 0x3FB SWAP1 POP JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0xFE JUMPI PUSH2 0xFE PUSH2 0xC5 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10F PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x11B DUP3 DUP3 PUSH2 0xD9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x138 JUMPI PUSH2 0x138 PUSH2 0xC5 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x166 PUSH2 0x161 DUP5 PUSH2 0x120 JUMP JUMPDEST PUSH2 0x105 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x180 JUMPI PUSH2 0x180 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x18B DUP5 DUP3 DUP6 PUSH2 0x149 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A5 JUMPI PUSH2 0x1A5 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x154 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1D9 DUP2 PUSH2 0x1BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1F4 JUMPI PUSH2 0x1F4 PUSH0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x20C JUMPI PUSH2 0x20C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x218 DUP7 DUP3 DUP8 ADD PUSH2 0x193 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x236 JUMPI PUSH2 0x236 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x242 DUP7 DUP3 DUP8 ADD PUSH2 0x193 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x253 DUP7 DUP3 DUP8 ADD PUSH2 0x1CE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x285 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x297 JUMPI PUSH2 0x297 PUSH2 0x25D JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1D9 PUSH2 0x2A8 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2B4 DUP4 PUSH2 0x29D JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x2DA DUP2 DUP5 DUP5 PUSH2 0x2AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F1 PUSH0 DUP3 PUSH2 0x2CE JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2DF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2DA JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x323 JUMPI POP DUP1 JUMPDEST PUSH2 0x335 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x2DF JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0xC5 JUMP JUMPDEST PUSH2 0x35F DUP3 SLOAD PUSH2 0x271 JUMP JUMPDEST PUSH2 0x36A DUP3 DUP3 DUP6 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x39C JUMPI PUSH0 DUP5 ISZERO PUSH2 0x385 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x3F3 JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3CB JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x3AB JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x3E6 JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xEA0 PUSH2 0x41A PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x190 ADD MSTORE PUSH2 0x335 ADD MSTORE PUSH2 0xEA0 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57915897 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x57915897 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x230 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x34FCF437 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x3BA0B9A9 EQ PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x7A2D13A EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x173 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x804 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x146 PUSH2 0x141 CALLDATASIZE PUSH1 0x4 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH2 0x166 PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x379 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x8CE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x146 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x189 CALLDATASIZE PUSH1 0x4 PUSH2 0x8DC JUMP JUMPDEST PUSH2 0x390 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x931 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x1CA CALLDATASIZE PUSH1 0x4 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x3B5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x166 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0x146 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x1FB CALLDATASIZE PUSH1 0x4 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x20E CALLDATASIZE PUSH1 0x4 PUSH2 0x93F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x3F0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x403 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x25F CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x462 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x285 CALLDATASIZE PUSH1 0x4 PUSH2 0x974 JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x298 CALLDATASIZE PUSH1 0x4 PUSH2 0x93F JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0x9B8 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 0x2D8 SWAP1 PUSH2 0x9B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x323 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x323 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x306 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x35C PUSH1 0xFF PUSH32 0x0 AND PUSH1 0xA PUSH2 0xB04 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x369 SWAP1 DUP5 PUSH2 0xB11 JUMP JUMPDEST PUSH2 0x373 SWAP2 SWAP1 PUSH2 0xB44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x386 DUP2 DUP6 DUP6 PUSH2 0x4D0 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x39D DUP6 DUP3 DUP6 PUSH2 0x583 JUMP JUMPDEST PUSH2 0x3A8 DUP6 DUP6 DUP6 PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3BD PUSH2 0x6B9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH0 CALLER PUSH2 0x386 DUP2 DUP6 DUP6 PUSH2 0x3D4 DUP4 DUP4 PUSH2 0x46F JUMP JUMPDEST PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH2 0x3ED CALLER DUP3 PUSH2 0x6E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3F8 PUSH2 0x6B9 JUMP JUMPDEST PUSH2 0x401 PUSH0 PUSH2 0x777 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0x9B8 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x41F DUP3 DUP7 PUSH2 0x46F JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x44A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x457 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x4D0 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x386 DUP2 DUP6 DUP6 PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4A1 PUSH2 0x6B9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xC00 JUMP JUMPDEST PUSH2 0x3ED DUP2 PUSH2 0x777 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xC50 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x51C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xC9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x576 SWAP1 DUP6 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x58E DUP5 DUP5 PUSH2 0x46F JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x5C5 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x5C5 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x4D0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xD84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x64F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xDD6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6AC SWAP1 DUP7 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xE17 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xE5A JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x71A SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x76B SWAP1 DUP6 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7DC DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x7F3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3AE DUP2 DUP5 PUSH2 0x7D3 JUMP JUMPDEST DUP1 JUMPDEST DUP2 EQ PUSH2 0x3ED JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x373 DUP2 PUSH2 0x815 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x83F JUMPI PUSH2 0x83F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x84A DUP5 DUP5 PUSH2 0x821 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x852 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x373 JUMP JUMPDEST PUSH2 0x817 DUP2 PUSH2 0x868 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x373 DUP2 PUSH2 0x878 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8A0 JUMPI PUSH2 0x8A0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8AB DUP6 DUP6 PUSH2 0x881 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8BC DUP6 DUP3 DUP7 ADD PUSH2 0x821 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x854 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x8C6 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8F1 JUMPI PUSH2 0x8F1 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8FC DUP7 DUP7 PUSH2 0x881 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x90D DUP7 DUP3 DUP8 ADD PUSH2 0x881 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x91E DUP7 DUP3 DUP8 ADD PUSH2 0x821 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x854 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x928 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x952 JUMPI PUSH2 0x952 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x84A DUP5 DUP5 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x854 DUP2 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x95D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x988 JUMPI PUSH2 0x988 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x993 DUP6 DUP6 PUSH2 0x881 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8BC DUP6 DUP3 DUP7 ADD PUSH2 0x881 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x9CC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x9DE JUMPI PUSH2 0x9DE PUSH2 0x9A4 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xA37 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH2 0x9E4 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xA24 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xA30 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x9FB JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xA4E JUMPI POP PUSH1 0x1 PUSH2 0x3AE JUMP JUMPDEST DUP2 PUSH2 0xA5A JUMPI POP PUSH0 PUSH2 0x3AE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xA70 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xA7A JUMPI PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x3AE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xA8B JUMPI PUSH2 0xA8B PUSH2 0x9E4 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xAA1 JUMPI PUSH2 0xAA1 PUSH2 0x9E4 JUMP JUMPDEST POP PUSH2 0x3AE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xADA JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xAD5 JUMPI PUSH2 0xAD5 PUSH2 0x9E4 JUMP JUMPDEST PUSH2 0x3AE JUMP JUMPDEST PUSH2 0xAE7 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x9F8 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xAFD JUMPI PUSH2 0xAFD PUSH2 0x9E4 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3AE PUSH0 NOT DUP5 DUP5 PUSH2 0xA40 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB29 JUMPI PUSH2 0xB29 PUSH2 0x9E4 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB52 JUMPI PUSH2 0xB52 PUSH2 0xB30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x373 JUMPI PUSH2 0x373 PUSH2 0x9E4 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xBBE JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xC10 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xCAE JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xCF4 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xD45 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xDE6 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xE27 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 PUSH9 0xA1DCE2CBCB675F1526 0xB7 LOG4 PUSH3 0xC23457 0xBE 0xC1 PUSH11 0x93633F164C638DD0ADCB69 0xAD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"306:733:80:-:0;;;430:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;509:5;516:7;2046:5:11;:13;509:5:80;2046::11;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;936:32:10;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;545:21:80::2;;;::::0;-1:-1:-1;306:733:80;;-1:-1:-1;306:733:80;655:96:14;734:10;;655:96::o;2426:187:10:-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;688:180:101:-;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2662:118::-;2645:4;2634:16;;2726:5;2723:33;2713:61;;2770:1;2767;2760:12;2713:61;2662:118;:::o;2786:139::-;2866:13;;2888:31;2866:13;2888:31;:::i;:::-;2786:139;;;;:::o;2931:1005::-;3037:6;3045;3053;3102:2;3090:9;3081:7;3077:23;3073:32;3070:119;;;3108:79;197:1;194;187:12;3108:79;3228:24;;-1:-1:-1;;;;;3268:30:101;;3265:117;;;3301:79;197:1;194;187:12;3301:79;3406:74;3472:7;3463:6;3452:9;3448:22;3406:74;:::i;:::-;3396:84;;3199:291;3550:2;3539:9;3535:18;3529:25;-1:-1:-1;;;;;3573:6:101;3570:30;3567:117;;;3603:79;197:1;194;187:12;3603:79;3708:74;3774:7;3765:6;3754:9;3750:22;3708:74;:::i;:::-;3698:84;;3500:292;3831:2;3857:62;3911:7;3902:6;3891:9;3887:22;3857:62;:::i;:::-;3847:72;;3802:127;2931:1005;;;;;:::o;4047:180::-;-1:-1:-1;;;4092:1:101;4085:88;4192:4;4189:1;4182:15;4216:4;4213:1;4206:15;4233:320;4314:1;4304:12;;4361:1;4351:12;;;4372:81;;4438:4;4430:6;4426:17;4416:27;;4372:81;4500:2;4492:6;4489:14;4469:18;4466:38;4463:84;;4519:18;;:::i;:::-;4284:269;4233:320;;;:::o;5466:142::-;5516:9;5549:53;5567:34;5594:5;5567:34;5317:77;5576:24;5383:5;5317:77;5695:269;5805:39;5836:7;5805:39;:::i;:::-;5894:11;;-1:-1:-1;;5037:1:101;5021:18;;;;4889:16;;;5246:9;5235:21;4889:16;;5275:30;;;;5853:105;;-1:-1:-1;5695:269:101:o;6049:189::-;6015:3;6167:65;6225:6;6217;6211:4;6167:65;:::i;:::-;6102:136;6049:189;;:::o;6244:186::-;6321:3;6314:5;6311:14;6304:120;;;6375:39;6412:1;6405:5;6375:39;:::i;:::-;6348:1;6337:13;6304:120;;;6244:186;;:::o;6436:543::-;6537:2;6532:3;6529:11;6526:446;;;4608:4;4644:14;;;4688:4;4675:18;;4790:2;4785;4774:14;;4770:23;6645:8;6641:44;6838:2;6826:10;6823:18;6820:49;;;-1:-1:-1;6859:8:101;6820:49;6882:80;4790:2;4785;4774:14;;4770:23;6928:8;6924:37;6911:11;6882:80;:::i;:::-;6541:431;;6436:543;;;:::o;7582:1395::-;4022:12;;-1:-1:-1;;;;;7793:6:101;7790:30;7787:56;;;7823:18;;:::i;:::-;7867:38;7899:4;7893:11;7867:38;:::i;:::-;7952:67;8012:6;8004;7998:4;7952:67;:::i;:::-;8070:4;8102:2;8091:14;;8119:1;8114:618;;;;8776:1;8793:6;8790:77;;;-1:-1:-1;8833:19:101;;;8827:26;8790:77;-1:-1:-1;;7218:1:101;7214:13;;7079:16;7181:56;7256:15;;7563:1;7559:11;;7550:21;8887:4;8880:81;8749:222;8084:887;;8114:618;4608:4;4644:14;;;4688:4;4675:18;;-1:-1:-1;;8150:22:101;;;8273:208;8287:7;8284:1;8281:14;8273:208;;;8357:19;;;8351:26;8336:42;;8464:2;8449:18;;;;8417:1;8405:14;;;;8303:12;8273:208;;;8509:6;8500:7;8497:19;8494:179;;;8558:19;;;8552:26;-1:-1:-1;;8652:4:101;8640:17;;7218:1;7214:13;7079:16;7181:56;7256:15;8595:64;;8494:179;8719:1;8715;8707:6;8703:14;8699:22;8693:4;8686:36;8121:611;;;8084:887;;7674:1303;;;7582:1395;;:::o;:::-;306:733:80;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":1232,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_checkOwner_1148":{"entryPoint":1721,"id":1148,"parameterSlots":0,"returnSlots":0},"@_mint_1610":{"entryPoint":1763,"id":1610,"parameterSlots":2,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":1411,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_1205":{"entryPoint":1911,"id":1205,"parameterSlots":1,"returnSlots":0},"@_transfer_1553":{"entryPoint":1483,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":1135,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":889,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@convertToAssets_8016":{"entryPoint":813,"id":8016,"parameterSlots":1,"returnSlots":1},"@decimals_8027":{"entryPoint":null,"id":8027,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":1042,"id":1476,"parameterSlots":2,"returnSlots":1},"@exchangeRate_7950":{"entryPoint":null,"id":7950,"parameterSlots":0,"returnSlots":0},"@faucet_7982":{"entryPoint":995,"id":7982,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_1435":{"entryPoint":962,"id":1435,"parameterSlots":2,"returnSlots":1},"@name_1261":{"entryPoint":669,"id":1261,"parameterSlots":0,"returnSlots":1},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_1162":{"entryPoint":1008,"id":1162,"parameterSlots":0,"returnSlots":0},"@setRate_7994":{"entryPoint":949,"id":7994,"parameterSlots":1,"returnSlots":0},"@symbol_1271":{"entryPoint":1027,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":912,"id":1406,"parameterSlots":3,"returnSlots":1},"@transferOwnership_1185":{"entryPoint":1177,"id":1185,"parameterSlots":1,"returnSlots":0},"@transfer_1330":{"entryPoint":1122,"id":1330,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2177,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2081,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2367,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2420,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2268,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2188,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2092,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2397,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2246,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2003,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":3397,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":3006,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":3168,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":3246,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":3476,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":3558,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":3316,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":3088,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":2922,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":3623,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2130,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":2344,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2406,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2254,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2052,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3460,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3072,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3230,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3300,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3542,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3607,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3381,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3152,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2990,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3674,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2138,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":2353,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2903,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2884,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2552,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":2820,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2624,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2833,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2152,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1992,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2488,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2532,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2864,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":2468,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2168,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2069,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:20401:101","nodeType":"YulBlock","src":"0:20401:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1282:35:101","nodeType":"YulBlock","src":"1282:35:101","statements":[{"nativeSrc":"1292:19:101","nodeType":"YulAssignment","src":"1292:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:101","nodeType":"YulLiteral","src":"1308:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:101","nodeType":"YulIdentifier","src":"1302:5:101"},"nativeSrc":"1302:9:101","nodeType":"YulFunctionCall","src":"1302:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:101","nodeType":"YulIdentifier","src":"1292:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:101","nodeType":"YulTypedName","src":"1275:6:101","type":""}],"src":"1242:75:101"},{"body":{"nativeSrc":"1412:28:101","nodeType":"YulBlock","src":"1412:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:101","nodeType":"YulLiteral","src":"1429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:101","nodeType":"YulLiteral","src":"1432:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:101","nodeType":"YulIdentifier","src":"1422:6:101"},"nativeSrc":"1422:12:101","nodeType":"YulFunctionCall","src":"1422:12:101"},"nativeSrc":"1422:12:101","nodeType":"YulExpressionStatement","src":"1422:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:101","nodeType":"YulFunctionDefinition","src":"1323:117:101"},{"body":{"nativeSrc":"1535:28:101","nodeType":"YulBlock","src":"1535:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:101","nodeType":"YulLiteral","src":"1552:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:101","nodeType":"YulLiteral","src":"1555:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:101","nodeType":"YulIdentifier","src":"1545:6:101"},"nativeSrc":"1545:12:101","nodeType":"YulFunctionCall","src":"1545:12:101"},"nativeSrc":"1545:12:101","nodeType":"YulExpressionStatement","src":"1545:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:101","nodeType":"YulFunctionDefinition","src":"1446:117:101"},{"body":{"nativeSrc":"1614:32:101","nodeType":"YulBlock","src":"1614:32:101","statements":[{"nativeSrc":"1624:16:101","nodeType":"YulAssignment","src":"1624:16:101","value":{"name":"value","nativeSrc":"1635:5:101","nodeType":"YulIdentifier","src":"1635:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:101","nodeType":"YulIdentifier","src":"1624:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1569:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulTypedName","src":"1596:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:101","nodeType":"YulTypedName","src":"1606:7:101","type":""}],"src":"1569:77:101"},{"body":{"nativeSrc":"1695:79:101","nodeType":"YulBlock","src":"1695:79:101","statements":[{"body":{"nativeSrc":"1752:16:101","nodeType":"YulBlock","src":"1752:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1761:1:101","nodeType":"YulLiteral","src":"1761:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1764:1:101","nodeType":"YulLiteral","src":"1764:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1754:6:101","nodeType":"YulIdentifier","src":"1754:6:101"},"nativeSrc":"1754:12:101","nodeType":"YulFunctionCall","src":"1754:12:101"},"nativeSrc":"1754:12:101","nodeType":"YulExpressionStatement","src":"1754:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1718:5:101","nodeType":"YulIdentifier","src":"1718:5:101"},{"arguments":[{"name":"value","nativeSrc":"1743:5:101","nodeType":"YulIdentifier","src":"1743:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1725:17:101","nodeType":"YulIdentifier","src":"1725:17:101"},"nativeSrc":"1725:24:101","nodeType":"YulFunctionCall","src":"1725:24:101"}],"functionName":{"name":"eq","nativeSrc":"1715:2:101","nodeType":"YulIdentifier","src":"1715:2:101"},"nativeSrc":"1715:35:101","nodeType":"YulFunctionCall","src":"1715:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1708:6:101","nodeType":"YulIdentifier","src":"1708:6:101"},"nativeSrc":"1708:43:101","nodeType":"YulFunctionCall","src":"1708:43:101"},"nativeSrc":"1705:63:101","nodeType":"YulIf","src":"1705:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"1652:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1688:5:101","nodeType":"YulTypedName","src":"1688:5:101","type":""}],"src":"1652:122:101"},{"body":{"nativeSrc":"1832:87:101","nodeType":"YulBlock","src":"1832:87:101","statements":[{"nativeSrc":"1842:29:101","nodeType":"YulAssignment","src":"1842:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1864:6:101","nodeType":"YulIdentifier","src":"1864:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1851:12:101","nodeType":"YulIdentifier","src":"1851:12:101"},"nativeSrc":"1851:20:101","nodeType":"YulFunctionCall","src":"1851:20:101"},"variableNames":[{"name":"value","nativeSrc":"1842:5:101","nodeType":"YulIdentifier","src":"1842:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1907:5:101","nodeType":"YulIdentifier","src":"1907:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1880:26:101","nodeType":"YulIdentifier","src":"1880:26:101"},"nativeSrc":"1880:33:101","nodeType":"YulFunctionCall","src":"1880:33:101"},"nativeSrc":"1880:33:101","nodeType":"YulExpressionStatement","src":"1880:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1780:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1810:6:101","nodeType":"YulTypedName","src":"1810:6:101","type":""},{"name":"end","nativeSrc":"1818:3:101","nodeType":"YulTypedName","src":"1818:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1826:5:101","nodeType":"YulTypedName","src":"1826:5:101","type":""}],"src":"1780:139:101"},{"body":{"nativeSrc":"1991:263:101","nodeType":"YulBlock","src":"1991:263:101","statements":[{"body":{"nativeSrc":"2037:83:101","nodeType":"YulBlock","src":"2037:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2039:77:101","nodeType":"YulIdentifier","src":"2039:77:101"},"nativeSrc":"2039:79:101","nodeType":"YulFunctionCall","src":"2039:79:101"},"nativeSrc":"2039:79:101","nodeType":"YulExpressionStatement","src":"2039:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2012:7:101","nodeType":"YulIdentifier","src":"2012:7:101"},{"name":"headStart","nativeSrc":"2021:9:101","nodeType":"YulIdentifier","src":"2021:9:101"}],"functionName":{"name":"sub","nativeSrc":"2008:3:101","nodeType":"YulIdentifier","src":"2008:3:101"},"nativeSrc":"2008:23:101","nodeType":"YulFunctionCall","src":"2008:23:101"},{"kind":"number","nativeSrc":"2033:2:101","nodeType":"YulLiteral","src":"2033:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2004:3:101","nodeType":"YulIdentifier","src":"2004:3:101"},"nativeSrc":"2004:32:101","nodeType":"YulFunctionCall","src":"2004:32:101"},"nativeSrc":"2001:119:101","nodeType":"YulIf","src":"2001:119:101"},{"nativeSrc":"2130:117:101","nodeType":"YulBlock","src":"2130:117:101","statements":[{"nativeSrc":"2145:15:101","nodeType":"YulVariableDeclaration","src":"2145:15:101","value":{"kind":"number","nativeSrc":"2159:1:101","nodeType":"YulLiteral","src":"2159:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2149:6:101","nodeType":"YulTypedName","src":"2149:6:101","type":""}]},{"nativeSrc":"2174:63:101","nodeType":"YulAssignment","src":"2174:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2209:9:101","nodeType":"YulIdentifier","src":"2209:9:101"},{"name":"offset","nativeSrc":"2220:6:101","nodeType":"YulIdentifier","src":"2220:6:101"}],"functionName":{"name":"add","nativeSrc":"2205:3:101","nodeType":"YulIdentifier","src":"2205:3:101"},"nativeSrc":"2205:22:101","nodeType":"YulFunctionCall","src":"2205:22:101"},{"name":"dataEnd","nativeSrc":"2229:7:101","nodeType":"YulIdentifier","src":"2229:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2184:20:101","nodeType":"YulIdentifier","src":"2184:20:101"},"nativeSrc":"2184:53:101","nodeType":"YulFunctionCall","src":"2184:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2174:6:101","nodeType":"YulIdentifier","src":"2174:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1925:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1961:9:101","nodeType":"YulTypedName","src":"1961:9:101","type":""},{"name":"dataEnd","nativeSrc":"1972:7:101","nodeType":"YulTypedName","src":"1972:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1984:6:101","nodeType":"YulTypedName","src":"1984:6:101","type":""}],"src":"1925:329:101"},{"body":{"nativeSrc":"2325:53:101","nodeType":"YulBlock","src":"2325:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2342:3:101","nodeType":"YulIdentifier","src":"2342:3:101"},{"arguments":[{"name":"value","nativeSrc":"2365:5:101","nodeType":"YulIdentifier","src":"2365:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2347:17:101","nodeType":"YulIdentifier","src":"2347:17:101"},"nativeSrc":"2347:24:101","nodeType":"YulFunctionCall","src":"2347:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2335:6:101","nodeType":"YulIdentifier","src":"2335:6:101"},"nativeSrc":"2335:37:101","nodeType":"YulFunctionCall","src":"2335:37:101"},"nativeSrc":"2335:37:101","nodeType":"YulExpressionStatement","src":"2335:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2260:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2313:5:101","nodeType":"YulTypedName","src":"2313:5:101","type":""},{"name":"pos","nativeSrc":"2320:3:101","nodeType":"YulTypedName","src":"2320:3:101","type":""}],"src":"2260:118:101"},{"body":{"nativeSrc":"2482:124:101","nodeType":"YulBlock","src":"2482:124:101","statements":[{"nativeSrc":"2492:26:101","nodeType":"YulAssignment","src":"2492:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2504:9:101","nodeType":"YulIdentifier","src":"2504:9:101"},{"kind":"number","nativeSrc":"2515:2:101","nodeType":"YulLiteral","src":"2515:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2500:3:101","nodeType":"YulIdentifier","src":"2500:3:101"},"nativeSrc":"2500:18:101","nodeType":"YulFunctionCall","src":"2500:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2492:4:101","nodeType":"YulIdentifier","src":"2492:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2572:6:101","nodeType":"YulIdentifier","src":"2572:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2585:9:101","nodeType":"YulIdentifier","src":"2585:9:101"},{"kind":"number","nativeSrc":"2596:1:101","nodeType":"YulLiteral","src":"2596:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2581:3:101","nodeType":"YulIdentifier","src":"2581:3:101"},"nativeSrc":"2581:17:101","nodeType":"YulFunctionCall","src":"2581:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2528:43:101","nodeType":"YulIdentifier","src":"2528:43:101"},"nativeSrc":"2528:71:101","nodeType":"YulFunctionCall","src":"2528:71:101"},"nativeSrc":"2528:71:101","nodeType":"YulExpressionStatement","src":"2528:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2384:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2454:9:101","nodeType":"YulTypedName","src":"2454:9:101","type":""},{"name":"value0","nativeSrc":"2466:6:101","nodeType":"YulTypedName","src":"2466:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2477:4:101","nodeType":"YulTypedName","src":"2477:4:101","type":""}],"src":"2384:222:101"},{"body":{"nativeSrc":"2657:81:101","nodeType":"YulBlock","src":"2657:81:101","statements":[{"nativeSrc":"2667:65:101","nodeType":"YulAssignment","src":"2667:65:101","value":{"arguments":[{"name":"value","nativeSrc":"2682:5:101","nodeType":"YulIdentifier","src":"2682:5:101"},{"kind":"number","nativeSrc":"2689:42:101","nodeType":"YulLiteral","src":"2689:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2678:3:101","nodeType":"YulIdentifier","src":"2678:3:101"},"nativeSrc":"2678:54:101","nodeType":"YulFunctionCall","src":"2678:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2667:7:101","nodeType":"YulIdentifier","src":"2667:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2612:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2639:5:101","nodeType":"YulTypedName","src":"2639:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2649:7:101","nodeType":"YulTypedName","src":"2649:7:101","type":""}],"src":"2612:126:101"},{"body":{"nativeSrc":"2789:51:101","nodeType":"YulBlock","src":"2789:51:101","statements":[{"nativeSrc":"2799:35:101","nodeType":"YulAssignment","src":"2799:35:101","value":{"arguments":[{"name":"value","nativeSrc":"2828:5:101","nodeType":"YulIdentifier","src":"2828:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2810:17:101","nodeType":"YulIdentifier","src":"2810:17:101"},"nativeSrc":"2810:24:101","nodeType":"YulFunctionCall","src":"2810:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2799:7:101","nodeType":"YulIdentifier","src":"2799:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"2744:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2771:5:101","nodeType":"YulTypedName","src":"2771:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2781:7:101","nodeType":"YulTypedName","src":"2781:7:101","type":""}],"src":"2744:96:101"},{"body":{"nativeSrc":"2889:79:101","nodeType":"YulBlock","src":"2889:79:101","statements":[{"body":{"nativeSrc":"2946:16:101","nodeType":"YulBlock","src":"2946:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2955:1:101","nodeType":"YulLiteral","src":"2955:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2948:6:101","nodeType":"YulIdentifier","src":"2948:6:101"},"nativeSrc":"2948:12:101","nodeType":"YulFunctionCall","src":"2948:12:101"},"nativeSrc":"2948:12:101","nodeType":"YulExpressionStatement","src":"2948:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2912:5:101","nodeType":"YulIdentifier","src":"2912:5:101"},{"arguments":[{"name":"value","nativeSrc":"2937:5:101","nodeType":"YulIdentifier","src":"2937:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2919:17:101","nodeType":"YulIdentifier","src":"2919:17:101"},"nativeSrc":"2919:24:101","nodeType":"YulFunctionCall","src":"2919:24:101"}],"functionName":{"name":"eq","nativeSrc":"2909:2:101","nodeType":"YulIdentifier","src":"2909:2:101"},"nativeSrc":"2909:35:101","nodeType":"YulFunctionCall","src":"2909:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2902:6:101","nodeType":"YulIdentifier","src":"2902:6:101"},"nativeSrc":"2902:43:101","nodeType":"YulFunctionCall","src":"2902:43:101"},"nativeSrc":"2899:63:101","nodeType":"YulIf","src":"2899:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2846:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2882:5:101","nodeType":"YulTypedName","src":"2882:5:101","type":""}],"src":"2846:122:101"},{"body":{"nativeSrc":"3026:87:101","nodeType":"YulBlock","src":"3026:87:101","statements":[{"nativeSrc":"3036:29:101","nodeType":"YulAssignment","src":"3036:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:101","nodeType":"YulIdentifier","src":"3058:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3045:12:101","nodeType":"YulIdentifier","src":"3045:12:101"},"nativeSrc":"3045:20:101","nodeType":"YulFunctionCall","src":"3045:20:101"},"variableNames":[{"name":"value","nativeSrc":"3036:5:101","nodeType":"YulIdentifier","src":"3036:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3101:5:101","nodeType":"YulIdentifier","src":"3101:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3074:26:101","nodeType":"YulIdentifier","src":"3074:26:101"},"nativeSrc":"3074:33:101","nodeType":"YulFunctionCall","src":"3074:33:101"},"nativeSrc":"3074:33:101","nodeType":"YulExpressionStatement","src":"3074:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2974:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3004:6:101","nodeType":"YulTypedName","src":"3004:6:101","type":""},{"name":"end","nativeSrc":"3012:3:101","nodeType":"YulTypedName","src":"3012:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3020:5:101","nodeType":"YulTypedName","src":"3020:5:101","type":""}],"src":"2974:139:101"},{"body":{"nativeSrc":"3202:391:101","nodeType":"YulBlock","src":"3202:391:101","statements":[{"body":{"nativeSrc":"3248:83:101","nodeType":"YulBlock","src":"3248:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3250:77:101","nodeType":"YulIdentifier","src":"3250:77:101"},"nativeSrc":"3250:79:101","nodeType":"YulFunctionCall","src":"3250:79:101"},"nativeSrc":"3250:79:101","nodeType":"YulExpressionStatement","src":"3250:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3223:7:101","nodeType":"YulIdentifier","src":"3223:7:101"},{"name":"headStart","nativeSrc":"3232:9:101","nodeType":"YulIdentifier","src":"3232:9:101"}],"functionName":{"name":"sub","nativeSrc":"3219:3:101","nodeType":"YulIdentifier","src":"3219:3:101"},"nativeSrc":"3219:23:101","nodeType":"YulFunctionCall","src":"3219:23:101"},{"kind":"number","nativeSrc":"3244:2:101","nodeType":"YulLiteral","src":"3244:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3215:3:101","nodeType":"YulIdentifier","src":"3215:3:101"},"nativeSrc":"3215:32:101","nodeType":"YulFunctionCall","src":"3215:32:101"},"nativeSrc":"3212:119:101","nodeType":"YulIf","src":"3212:119:101"},{"nativeSrc":"3341:117:101","nodeType":"YulBlock","src":"3341:117:101","statements":[{"nativeSrc":"3356:15:101","nodeType":"YulVariableDeclaration","src":"3356:15:101","value":{"kind":"number","nativeSrc":"3370:1:101","nodeType":"YulLiteral","src":"3370:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3360:6:101","nodeType":"YulTypedName","src":"3360:6:101","type":""}]},{"nativeSrc":"3385:63:101","nodeType":"YulAssignment","src":"3385:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3420:9:101","nodeType":"YulIdentifier","src":"3420:9:101"},{"name":"offset","nativeSrc":"3431:6:101","nodeType":"YulIdentifier","src":"3431:6:101"}],"functionName":{"name":"add","nativeSrc":"3416:3:101","nodeType":"YulIdentifier","src":"3416:3:101"},"nativeSrc":"3416:22:101","nodeType":"YulFunctionCall","src":"3416:22:101"},{"name":"dataEnd","nativeSrc":"3440:7:101","nodeType":"YulIdentifier","src":"3440:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3395:20:101","nodeType":"YulIdentifier","src":"3395:20:101"},"nativeSrc":"3395:53:101","nodeType":"YulFunctionCall","src":"3395:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3385:6:101","nodeType":"YulIdentifier","src":"3385:6:101"}]}]},{"nativeSrc":"3468:118:101","nodeType":"YulBlock","src":"3468:118:101","statements":[{"nativeSrc":"3483:16:101","nodeType":"YulVariableDeclaration","src":"3483:16:101","value":{"kind":"number","nativeSrc":"3497:2:101","nodeType":"YulLiteral","src":"3497:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3487:6:101","nodeType":"YulTypedName","src":"3487:6:101","type":""}]},{"nativeSrc":"3513:63:101","nodeType":"YulAssignment","src":"3513:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3548:9:101","nodeType":"YulIdentifier","src":"3548:9:101"},{"name":"offset","nativeSrc":"3559:6:101","nodeType":"YulIdentifier","src":"3559:6:101"}],"functionName":{"name":"add","nativeSrc":"3544:3:101","nodeType":"YulIdentifier","src":"3544:3:101"},"nativeSrc":"3544:22:101","nodeType":"YulFunctionCall","src":"3544:22:101"},{"name":"dataEnd","nativeSrc":"3568:7:101","nodeType":"YulIdentifier","src":"3568:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3523:20:101","nodeType":"YulIdentifier","src":"3523:20:101"},"nativeSrc":"3523:53:101","nodeType":"YulFunctionCall","src":"3523:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3513:6:101","nodeType":"YulIdentifier","src":"3513:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"3119:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3164:9:101","nodeType":"YulTypedName","src":"3164:9:101","type":""},{"name":"dataEnd","nativeSrc":"3175:7:101","nodeType":"YulTypedName","src":"3175:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3187:6:101","nodeType":"YulTypedName","src":"3187:6:101","type":""},{"name":"value1","nativeSrc":"3195:6:101","nodeType":"YulTypedName","src":"3195:6:101","type":""}],"src":"3119:474:101"},{"body":{"nativeSrc":"3641:48:101","nodeType":"YulBlock","src":"3641:48:101","statements":[{"nativeSrc":"3651:32:101","nodeType":"YulAssignment","src":"3651:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3676:5:101","nodeType":"YulIdentifier","src":"3676:5:101"}],"functionName":{"name":"iszero","nativeSrc":"3669:6:101","nodeType":"YulIdentifier","src":"3669:6:101"},"nativeSrc":"3669:13:101","nodeType":"YulFunctionCall","src":"3669:13:101"}],"functionName":{"name":"iszero","nativeSrc":"3662:6:101","nodeType":"YulIdentifier","src":"3662:6:101"},"nativeSrc":"3662:21:101","nodeType":"YulFunctionCall","src":"3662:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3651:7:101","nodeType":"YulIdentifier","src":"3651:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"3599:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3623:5:101","nodeType":"YulTypedName","src":"3623:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3633:7:101","nodeType":"YulTypedName","src":"3633:7:101","type":""}],"src":"3599:90:101"},{"body":{"nativeSrc":"3754:50:101","nodeType":"YulBlock","src":"3754:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3771:3:101","nodeType":"YulIdentifier","src":"3771:3:101"},{"arguments":[{"name":"value","nativeSrc":"3791:5:101","nodeType":"YulIdentifier","src":"3791:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3776:14:101","nodeType":"YulIdentifier","src":"3776:14:101"},"nativeSrc":"3776:21:101","nodeType":"YulFunctionCall","src":"3776:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3764:6:101","nodeType":"YulIdentifier","src":"3764:6:101"},"nativeSrc":"3764:34:101","nodeType":"YulFunctionCall","src":"3764:34:101"},"nativeSrc":"3764:34:101","nodeType":"YulExpressionStatement","src":"3764:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3695:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3742:5:101","nodeType":"YulTypedName","src":"3742:5:101","type":""},{"name":"pos","nativeSrc":"3749:3:101","nodeType":"YulTypedName","src":"3749:3:101","type":""}],"src":"3695:109:101"},{"body":{"nativeSrc":"3902:118:101","nodeType":"YulBlock","src":"3902:118:101","statements":[{"nativeSrc":"3912:26:101","nodeType":"YulAssignment","src":"3912:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3924:9:101","nodeType":"YulIdentifier","src":"3924:9:101"},{"kind":"number","nativeSrc":"3935:2:101","nodeType":"YulLiteral","src":"3935:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3920:3:101","nodeType":"YulIdentifier","src":"3920:3:101"},"nativeSrc":"3920:18:101","nodeType":"YulFunctionCall","src":"3920:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3912:4:101","nodeType":"YulIdentifier","src":"3912:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3986:6:101","nodeType":"YulIdentifier","src":"3986:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3999:9:101","nodeType":"YulIdentifier","src":"3999:9:101"},{"kind":"number","nativeSrc":"4010:1:101","nodeType":"YulLiteral","src":"4010:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3995:3:101","nodeType":"YulIdentifier","src":"3995:3:101"},"nativeSrc":"3995:17:101","nodeType":"YulFunctionCall","src":"3995:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3948:37:101","nodeType":"YulIdentifier","src":"3948:37:101"},"nativeSrc":"3948:65:101","nodeType":"YulFunctionCall","src":"3948:65:101"},"nativeSrc":"3948:65:101","nodeType":"YulExpressionStatement","src":"3948:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3810:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3874:9:101","nodeType":"YulTypedName","src":"3874:9:101","type":""},{"name":"value0","nativeSrc":"3886:6:101","nodeType":"YulTypedName","src":"3886:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3897:4:101","nodeType":"YulTypedName","src":"3897:4:101","type":""}],"src":"3810:210:101"},{"body":{"nativeSrc":"4126:519:101","nodeType":"YulBlock","src":"4126:519:101","statements":[{"body":{"nativeSrc":"4172:83:101","nodeType":"YulBlock","src":"4172:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4174:77:101","nodeType":"YulIdentifier","src":"4174:77:101"},"nativeSrc":"4174:79:101","nodeType":"YulFunctionCall","src":"4174:79:101"},"nativeSrc":"4174:79:101","nodeType":"YulExpressionStatement","src":"4174:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4147:7:101","nodeType":"YulIdentifier","src":"4147:7:101"},{"name":"headStart","nativeSrc":"4156:9:101","nodeType":"YulIdentifier","src":"4156:9:101"}],"functionName":{"name":"sub","nativeSrc":"4143:3:101","nodeType":"YulIdentifier","src":"4143:3:101"},"nativeSrc":"4143:23:101","nodeType":"YulFunctionCall","src":"4143:23:101"},{"kind":"number","nativeSrc":"4168:2:101","nodeType":"YulLiteral","src":"4168:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4139:3:101","nodeType":"YulIdentifier","src":"4139:3:101"},"nativeSrc":"4139:32:101","nodeType":"YulFunctionCall","src":"4139:32:101"},"nativeSrc":"4136:119:101","nodeType":"YulIf","src":"4136:119:101"},{"nativeSrc":"4265:117:101","nodeType":"YulBlock","src":"4265:117:101","statements":[{"nativeSrc":"4280:15:101","nodeType":"YulVariableDeclaration","src":"4280:15:101","value":{"kind":"number","nativeSrc":"4294:1:101","nodeType":"YulLiteral","src":"4294:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4284:6:101","nodeType":"YulTypedName","src":"4284:6:101","type":""}]},{"nativeSrc":"4309:63:101","nodeType":"YulAssignment","src":"4309:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4344:9:101","nodeType":"YulIdentifier","src":"4344:9:101"},{"name":"offset","nativeSrc":"4355:6:101","nodeType":"YulIdentifier","src":"4355:6:101"}],"functionName":{"name":"add","nativeSrc":"4340:3:101","nodeType":"YulIdentifier","src":"4340:3:101"},"nativeSrc":"4340:22:101","nodeType":"YulFunctionCall","src":"4340:22:101"},{"name":"dataEnd","nativeSrc":"4364:7:101","nodeType":"YulIdentifier","src":"4364:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4319:20:101","nodeType":"YulIdentifier","src":"4319:20:101"},"nativeSrc":"4319:53:101","nodeType":"YulFunctionCall","src":"4319:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4309:6:101","nodeType":"YulIdentifier","src":"4309:6:101"}]}]},{"nativeSrc":"4392:118:101","nodeType":"YulBlock","src":"4392:118:101","statements":[{"nativeSrc":"4407:16:101","nodeType":"YulVariableDeclaration","src":"4407:16:101","value":{"kind":"number","nativeSrc":"4421:2:101","nodeType":"YulLiteral","src":"4421:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4411:6:101","nodeType":"YulTypedName","src":"4411:6:101","type":""}]},{"nativeSrc":"4437:63:101","nodeType":"YulAssignment","src":"4437:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4472:9:101","nodeType":"YulIdentifier","src":"4472:9:101"},{"name":"offset","nativeSrc":"4483:6:101","nodeType":"YulIdentifier","src":"4483:6:101"}],"functionName":{"name":"add","nativeSrc":"4468:3:101","nodeType":"YulIdentifier","src":"4468:3:101"},"nativeSrc":"4468:22:101","nodeType":"YulFunctionCall","src":"4468:22:101"},{"name":"dataEnd","nativeSrc":"4492:7:101","nodeType":"YulIdentifier","src":"4492:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4447:20:101","nodeType":"YulIdentifier","src":"4447:20:101"},"nativeSrc":"4447:53:101","nodeType":"YulFunctionCall","src":"4447:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4437:6:101","nodeType":"YulIdentifier","src":"4437:6:101"}]}]},{"nativeSrc":"4520:118:101","nodeType":"YulBlock","src":"4520:118:101","statements":[{"nativeSrc":"4535:16:101","nodeType":"YulVariableDeclaration","src":"4535:16:101","value":{"kind":"number","nativeSrc":"4549:2:101","nodeType":"YulLiteral","src":"4549:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4539:6:101","nodeType":"YulTypedName","src":"4539:6:101","type":""}]},{"nativeSrc":"4565:63:101","nodeType":"YulAssignment","src":"4565:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4600:9:101","nodeType":"YulIdentifier","src":"4600:9:101"},{"name":"offset","nativeSrc":"4611:6:101","nodeType":"YulIdentifier","src":"4611:6:101"}],"functionName":{"name":"add","nativeSrc":"4596:3:101","nodeType":"YulIdentifier","src":"4596:3:101"},"nativeSrc":"4596:22:101","nodeType":"YulFunctionCall","src":"4596:22:101"},{"name":"dataEnd","nativeSrc":"4620:7:101","nodeType":"YulIdentifier","src":"4620:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4575:20:101","nodeType":"YulIdentifier","src":"4575:20:101"},"nativeSrc":"4575:53:101","nodeType":"YulFunctionCall","src":"4575:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4565:6:101","nodeType":"YulIdentifier","src":"4565:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"4026:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4080:9:101","nodeType":"YulTypedName","src":"4080:9:101","type":""},{"name":"dataEnd","nativeSrc":"4091:7:101","nodeType":"YulTypedName","src":"4091:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4103:6:101","nodeType":"YulTypedName","src":"4103:6:101","type":""},{"name":"value1","nativeSrc":"4111:6:101","nodeType":"YulTypedName","src":"4111:6:101","type":""},{"name":"value2","nativeSrc":"4119:6:101","nodeType":"YulTypedName","src":"4119:6:101","type":""}],"src":"4026:619:101"},{"body":{"nativeSrc":"4694:43:101","nodeType":"YulBlock","src":"4694:43:101","statements":[{"nativeSrc":"4704:27:101","nodeType":"YulAssignment","src":"4704:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4719:5:101","nodeType":"YulIdentifier","src":"4719:5:101"},{"kind":"number","nativeSrc":"4726:4:101","nodeType":"YulLiteral","src":"4726:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4715:3:101","nodeType":"YulIdentifier","src":"4715:3:101"},"nativeSrc":"4715:16:101","nodeType":"YulFunctionCall","src":"4715:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4704:7:101","nodeType":"YulIdentifier","src":"4704:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4651:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4676:5:101","nodeType":"YulTypedName","src":"4676:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4686:7:101","nodeType":"YulTypedName","src":"4686:7:101","type":""}],"src":"4651:86:101"},{"body":{"nativeSrc":"4804:51:101","nodeType":"YulBlock","src":"4804:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4821:3:101","nodeType":"YulIdentifier","src":"4821:3:101"},{"arguments":[{"name":"value","nativeSrc":"4842:5:101","nodeType":"YulIdentifier","src":"4842:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4826:15:101","nodeType":"YulIdentifier","src":"4826:15:101"},"nativeSrc":"4826:22:101","nodeType":"YulFunctionCall","src":"4826:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4814:6:101","nodeType":"YulIdentifier","src":"4814:6:101"},"nativeSrc":"4814:35:101","nodeType":"YulFunctionCall","src":"4814:35:101"},"nativeSrc":"4814:35:101","nodeType":"YulExpressionStatement","src":"4814:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4743:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4792:5:101","nodeType":"YulTypedName","src":"4792:5:101","type":""},{"name":"pos","nativeSrc":"4799:3:101","nodeType":"YulTypedName","src":"4799:3:101","type":""}],"src":"4743:112:101"},{"body":{"nativeSrc":"4955:120:101","nodeType":"YulBlock","src":"4955:120:101","statements":[{"nativeSrc":"4965:26:101","nodeType":"YulAssignment","src":"4965:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4977:9:101","nodeType":"YulIdentifier","src":"4977:9:101"},{"kind":"number","nativeSrc":"4988:2:101","nodeType":"YulLiteral","src":"4988:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4973:3:101","nodeType":"YulIdentifier","src":"4973:3:101"},"nativeSrc":"4973:18:101","nodeType":"YulFunctionCall","src":"4973:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4965:4:101","nodeType":"YulIdentifier","src":"4965:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5041:6:101","nodeType":"YulIdentifier","src":"5041:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5054:9:101","nodeType":"YulIdentifier","src":"5054:9:101"},{"kind":"number","nativeSrc":"5065:1:101","nodeType":"YulLiteral","src":"5065:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5050:3:101","nodeType":"YulIdentifier","src":"5050:3:101"},"nativeSrc":"5050:17:101","nodeType":"YulFunctionCall","src":"5050:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"5001:39:101","nodeType":"YulIdentifier","src":"5001:39:101"},"nativeSrc":"5001:67:101","nodeType":"YulFunctionCall","src":"5001:67:101"},"nativeSrc":"5001:67:101","nodeType":"YulExpressionStatement","src":"5001:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4861:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4927:9:101","nodeType":"YulTypedName","src":"4927:9:101","type":""},{"name":"value0","nativeSrc":"4939:6:101","nodeType":"YulTypedName","src":"4939:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4950:4:101","nodeType":"YulTypedName","src":"4950:4:101","type":""}],"src":"4861:214:101"},{"body":{"nativeSrc":"5147:263:101","nodeType":"YulBlock","src":"5147:263:101","statements":[{"body":{"nativeSrc":"5193:83:101","nodeType":"YulBlock","src":"5193:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5195:77:101","nodeType":"YulIdentifier","src":"5195:77:101"},"nativeSrc":"5195:79:101","nodeType":"YulFunctionCall","src":"5195:79:101"},"nativeSrc":"5195:79:101","nodeType":"YulExpressionStatement","src":"5195:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5168:7:101","nodeType":"YulIdentifier","src":"5168:7:101"},{"name":"headStart","nativeSrc":"5177:9:101","nodeType":"YulIdentifier","src":"5177:9:101"}],"functionName":{"name":"sub","nativeSrc":"5164:3:101","nodeType":"YulIdentifier","src":"5164:3:101"},"nativeSrc":"5164:23:101","nodeType":"YulFunctionCall","src":"5164:23:101"},{"kind":"number","nativeSrc":"5189:2:101","nodeType":"YulLiteral","src":"5189:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5160:3:101","nodeType":"YulIdentifier","src":"5160:3:101"},"nativeSrc":"5160:32:101","nodeType":"YulFunctionCall","src":"5160:32:101"},"nativeSrc":"5157:119:101","nodeType":"YulIf","src":"5157:119:101"},{"nativeSrc":"5286:117:101","nodeType":"YulBlock","src":"5286:117:101","statements":[{"nativeSrc":"5301:15:101","nodeType":"YulVariableDeclaration","src":"5301:15:101","value":{"kind":"number","nativeSrc":"5315:1:101","nodeType":"YulLiteral","src":"5315:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5305:6:101","nodeType":"YulTypedName","src":"5305:6:101","type":""}]},{"nativeSrc":"5330:63:101","nodeType":"YulAssignment","src":"5330:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5365:9:101","nodeType":"YulIdentifier","src":"5365:9:101"},{"name":"offset","nativeSrc":"5376:6:101","nodeType":"YulIdentifier","src":"5376:6:101"}],"functionName":{"name":"add","nativeSrc":"5361:3:101","nodeType":"YulIdentifier","src":"5361:3:101"},"nativeSrc":"5361:22:101","nodeType":"YulFunctionCall","src":"5361:22:101"},{"name":"dataEnd","nativeSrc":"5385:7:101","nodeType":"YulIdentifier","src":"5385:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5340:20:101","nodeType":"YulIdentifier","src":"5340:20:101"},"nativeSrc":"5340:53:101","nodeType":"YulFunctionCall","src":"5340:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5330:6:101","nodeType":"YulIdentifier","src":"5330:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5081:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5117:9:101","nodeType":"YulTypedName","src":"5117:9:101","type":""},{"name":"dataEnd","nativeSrc":"5128:7:101","nodeType":"YulTypedName","src":"5128:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5140:6:101","nodeType":"YulTypedName","src":"5140:6:101","type":""}],"src":"5081:329:101"},{"body":{"nativeSrc":"5481:53:101","nodeType":"YulBlock","src":"5481:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5498:3:101","nodeType":"YulIdentifier","src":"5498:3:101"},{"arguments":[{"name":"value","nativeSrc":"5521:5:101","nodeType":"YulIdentifier","src":"5521:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5503:17:101","nodeType":"YulIdentifier","src":"5503:17:101"},"nativeSrc":"5503:24:101","nodeType":"YulFunctionCall","src":"5503:24:101"}],"functionName":{"name":"mstore","nativeSrc":"5491:6:101","nodeType":"YulIdentifier","src":"5491:6:101"},"nativeSrc":"5491:37:101","nodeType":"YulFunctionCall","src":"5491:37:101"},"nativeSrc":"5491:37:101","nodeType":"YulExpressionStatement","src":"5491:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5416:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5469:5:101","nodeType":"YulTypedName","src":"5469:5:101","type":""},{"name":"pos","nativeSrc":"5476:3:101","nodeType":"YulTypedName","src":"5476:3:101","type":""}],"src":"5416:118:101"},{"body":{"nativeSrc":"5638:124:101","nodeType":"YulBlock","src":"5638:124:101","statements":[{"nativeSrc":"5648:26:101","nodeType":"YulAssignment","src":"5648:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5660:9:101","nodeType":"YulIdentifier","src":"5660:9:101"},{"kind":"number","nativeSrc":"5671:2:101","nodeType":"YulLiteral","src":"5671:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5656:3:101","nodeType":"YulIdentifier","src":"5656:3:101"},"nativeSrc":"5656:18:101","nodeType":"YulFunctionCall","src":"5656:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5648:4:101","nodeType":"YulIdentifier","src":"5648:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5728:6:101","nodeType":"YulIdentifier","src":"5728:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5741:9:101","nodeType":"YulIdentifier","src":"5741:9:101"},{"kind":"number","nativeSrc":"5752:1:101","nodeType":"YulLiteral","src":"5752:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5737:3:101","nodeType":"YulIdentifier","src":"5737:3:101"},"nativeSrc":"5737:17:101","nodeType":"YulFunctionCall","src":"5737:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5684:43:101","nodeType":"YulIdentifier","src":"5684:43:101"},"nativeSrc":"5684:71:101","nodeType":"YulFunctionCall","src":"5684:71:101"},"nativeSrc":"5684:71:101","nodeType":"YulExpressionStatement","src":"5684:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5540:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5610:9:101","nodeType":"YulTypedName","src":"5610:9:101","type":""},{"name":"value0","nativeSrc":"5622:6:101","nodeType":"YulTypedName","src":"5622:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5633:4:101","nodeType":"YulTypedName","src":"5633:4:101","type":""}],"src":"5540:222:101"},{"body":{"nativeSrc":"5851:391:101","nodeType":"YulBlock","src":"5851:391:101","statements":[{"body":{"nativeSrc":"5897:83:101","nodeType":"YulBlock","src":"5897:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5899:77:101","nodeType":"YulIdentifier","src":"5899:77:101"},"nativeSrc":"5899:79:101","nodeType":"YulFunctionCall","src":"5899:79:101"},"nativeSrc":"5899:79:101","nodeType":"YulExpressionStatement","src":"5899:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5872:7:101","nodeType":"YulIdentifier","src":"5872:7:101"},{"name":"headStart","nativeSrc":"5881:9:101","nodeType":"YulIdentifier","src":"5881:9:101"}],"functionName":{"name":"sub","nativeSrc":"5868:3:101","nodeType":"YulIdentifier","src":"5868:3:101"},"nativeSrc":"5868:23:101","nodeType":"YulFunctionCall","src":"5868:23:101"},{"kind":"number","nativeSrc":"5893:2:101","nodeType":"YulLiteral","src":"5893:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5864:3:101","nodeType":"YulIdentifier","src":"5864:3:101"},"nativeSrc":"5864:32:101","nodeType":"YulFunctionCall","src":"5864:32:101"},"nativeSrc":"5861:119:101","nodeType":"YulIf","src":"5861:119:101"},{"nativeSrc":"5990:117:101","nodeType":"YulBlock","src":"5990:117:101","statements":[{"nativeSrc":"6005:15:101","nodeType":"YulVariableDeclaration","src":"6005:15:101","value":{"kind":"number","nativeSrc":"6019:1:101","nodeType":"YulLiteral","src":"6019:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6009:6:101","nodeType":"YulTypedName","src":"6009:6:101","type":""}]},{"nativeSrc":"6034:63:101","nodeType":"YulAssignment","src":"6034:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6069:9:101","nodeType":"YulIdentifier","src":"6069:9:101"},{"name":"offset","nativeSrc":"6080:6:101","nodeType":"YulIdentifier","src":"6080:6:101"}],"functionName":{"name":"add","nativeSrc":"6065:3:101","nodeType":"YulIdentifier","src":"6065:3:101"},"nativeSrc":"6065:22:101","nodeType":"YulFunctionCall","src":"6065:22:101"},{"name":"dataEnd","nativeSrc":"6089:7:101","nodeType":"YulIdentifier","src":"6089:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6044:20:101","nodeType":"YulIdentifier","src":"6044:20:101"},"nativeSrc":"6044:53:101","nodeType":"YulFunctionCall","src":"6044:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6034:6:101","nodeType":"YulIdentifier","src":"6034:6:101"}]}]},{"nativeSrc":"6117:118:101","nodeType":"YulBlock","src":"6117:118:101","statements":[{"nativeSrc":"6132:16:101","nodeType":"YulVariableDeclaration","src":"6132:16:101","value":{"kind":"number","nativeSrc":"6146:2:101","nodeType":"YulLiteral","src":"6146:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6136:6:101","nodeType":"YulTypedName","src":"6136:6:101","type":""}]},{"nativeSrc":"6162:63:101","nodeType":"YulAssignment","src":"6162:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6197:9:101","nodeType":"YulIdentifier","src":"6197:9:101"},{"name":"offset","nativeSrc":"6208:6:101","nodeType":"YulIdentifier","src":"6208:6:101"}],"functionName":{"name":"add","nativeSrc":"6193:3:101","nodeType":"YulIdentifier","src":"6193:3:101"},"nativeSrc":"6193:22:101","nodeType":"YulFunctionCall","src":"6193:22:101"},{"name":"dataEnd","nativeSrc":"6217:7:101","nodeType":"YulIdentifier","src":"6217:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6172:20:101","nodeType":"YulIdentifier","src":"6172:20:101"},"nativeSrc":"6172:53:101","nodeType":"YulFunctionCall","src":"6172:53:101"},"variableNames":[{"name":"value1","nativeSrc":"6162:6:101","nodeType":"YulIdentifier","src":"6162:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5768:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5813:9:101","nodeType":"YulTypedName","src":"5813:9:101","type":""},{"name":"dataEnd","nativeSrc":"5824:7:101","nodeType":"YulTypedName","src":"5824:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5836:6:101","nodeType":"YulTypedName","src":"5836:6:101","type":""},{"name":"value1","nativeSrc":"5844:6:101","nodeType":"YulTypedName","src":"5844:6:101","type":""}],"src":"5768:474:101"},{"body":{"nativeSrc":"6276:152:101","nodeType":"YulBlock","src":"6276:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6293:1:101","nodeType":"YulLiteral","src":"6293:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6296:77:101","nodeType":"YulLiteral","src":"6296:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6286:6:101","nodeType":"YulIdentifier","src":"6286:6:101"},"nativeSrc":"6286:88:101","nodeType":"YulFunctionCall","src":"6286:88:101"},"nativeSrc":"6286:88:101","nodeType":"YulExpressionStatement","src":"6286:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6390:1:101","nodeType":"YulLiteral","src":"6390:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6393:4:101","nodeType":"YulLiteral","src":"6393:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6383:6:101","nodeType":"YulIdentifier","src":"6383:6:101"},"nativeSrc":"6383:15:101","nodeType":"YulFunctionCall","src":"6383:15:101"},"nativeSrc":"6383:15:101","nodeType":"YulExpressionStatement","src":"6383:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6414:1:101","nodeType":"YulLiteral","src":"6414:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6417:4:101","nodeType":"YulLiteral","src":"6417:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6407:6:101","nodeType":"YulIdentifier","src":"6407:6:101"},"nativeSrc":"6407:15:101","nodeType":"YulFunctionCall","src":"6407:15:101"},"nativeSrc":"6407:15:101","nodeType":"YulExpressionStatement","src":"6407:15:101"}]},"name":"panic_error_0x22","nativeSrc":"6248:180:101","nodeType":"YulFunctionDefinition","src":"6248:180:101"},{"body":{"nativeSrc":"6485:269:101","nodeType":"YulBlock","src":"6485:269:101","statements":[{"nativeSrc":"6495:22:101","nodeType":"YulAssignment","src":"6495:22:101","value":{"arguments":[{"name":"data","nativeSrc":"6509:4:101","nodeType":"YulIdentifier","src":"6509:4:101"},{"kind":"number","nativeSrc":"6515:1:101","nodeType":"YulLiteral","src":"6515:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"6505:3:101","nodeType":"YulIdentifier","src":"6505:3:101"},"nativeSrc":"6505:12:101","nodeType":"YulFunctionCall","src":"6505:12:101"},"variableNames":[{"name":"length","nativeSrc":"6495:6:101","nodeType":"YulIdentifier","src":"6495:6:101"}]},{"nativeSrc":"6526:38:101","nodeType":"YulVariableDeclaration","src":"6526:38:101","value":{"arguments":[{"name":"data","nativeSrc":"6556:4:101","nodeType":"YulIdentifier","src":"6556:4:101"},{"kind":"number","nativeSrc":"6562:1:101","nodeType":"YulLiteral","src":"6562:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6552:3:101","nodeType":"YulIdentifier","src":"6552:3:101"},"nativeSrc":"6552:12:101","nodeType":"YulFunctionCall","src":"6552:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6530:18:101","nodeType":"YulTypedName","src":"6530:18:101","type":""}]},{"body":{"nativeSrc":"6603:51:101","nodeType":"YulBlock","src":"6603:51:101","statements":[{"nativeSrc":"6617:27:101","nodeType":"YulAssignment","src":"6617:27:101","value":{"arguments":[{"name":"length","nativeSrc":"6631:6:101","nodeType":"YulIdentifier","src":"6631:6:101"},{"kind":"number","nativeSrc":"6639:4:101","nodeType":"YulLiteral","src":"6639:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6627:3:101","nodeType":"YulIdentifier","src":"6627:3:101"},"nativeSrc":"6627:17:101","nodeType":"YulFunctionCall","src":"6627:17:101"},"variableNames":[{"name":"length","nativeSrc":"6617:6:101","nodeType":"YulIdentifier","src":"6617:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6583:18:101","nodeType":"YulIdentifier","src":"6583:18:101"}],"functionName":{"name":"iszero","nativeSrc":"6576:6:101","nodeType":"YulIdentifier","src":"6576:6:101"},"nativeSrc":"6576:26:101","nodeType":"YulFunctionCall","src":"6576:26:101"},"nativeSrc":"6573:81:101","nodeType":"YulIf","src":"6573:81:101"},{"body":{"nativeSrc":"6706:42:101","nodeType":"YulBlock","src":"6706:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6720:16:101","nodeType":"YulIdentifier","src":"6720:16:101"},"nativeSrc":"6720:18:101","nodeType":"YulFunctionCall","src":"6720:18:101"},"nativeSrc":"6720:18:101","nodeType":"YulExpressionStatement","src":"6720:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6670:18:101","nodeType":"YulIdentifier","src":"6670:18:101"},{"arguments":[{"name":"length","nativeSrc":"6693:6:101","nodeType":"YulIdentifier","src":"6693:6:101"},{"kind":"number","nativeSrc":"6701:2:101","nodeType":"YulLiteral","src":"6701:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6690:2:101","nodeType":"YulIdentifier","src":"6690:2:101"},"nativeSrc":"6690:14:101","nodeType":"YulFunctionCall","src":"6690:14:101"}],"functionName":{"name":"eq","nativeSrc":"6667:2:101","nodeType":"YulIdentifier","src":"6667:2:101"},"nativeSrc":"6667:38:101","nodeType":"YulFunctionCall","src":"6667:38:101"},"nativeSrc":"6664:84:101","nodeType":"YulIf","src":"6664:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"6434:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6469:4:101","nodeType":"YulTypedName","src":"6469:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6478:6:101","nodeType":"YulTypedName","src":"6478:6:101","type":""}],"src":"6434:320:101"},{"body":{"nativeSrc":"6788:152:101","nodeType":"YulBlock","src":"6788:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6805:1:101","nodeType":"YulLiteral","src":"6805:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6808:77:101","nodeType":"YulLiteral","src":"6808:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6798:6:101","nodeType":"YulIdentifier","src":"6798:6:101"},"nativeSrc":"6798:88:101","nodeType":"YulFunctionCall","src":"6798:88:101"},"nativeSrc":"6798:88:101","nodeType":"YulExpressionStatement","src":"6798:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6902:1:101","nodeType":"YulLiteral","src":"6902:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6905:4:101","nodeType":"YulLiteral","src":"6905:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6895:6:101","nodeType":"YulIdentifier","src":"6895:6:101"},"nativeSrc":"6895:15:101","nodeType":"YulFunctionCall","src":"6895:15:101"},"nativeSrc":"6895:15:101","nodeType":"YulExpressionStatement","src":"6895:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6926:1:101","nodeType":"YulLiteral","src":"6926:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6929:4:101","nodeType":"YulLiteral","src":"6929:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6919:6:101","nodeType":"YulIdentifier","src":"6919:6:101"},"nativeSrc":"6919:15:101","nodeType":"YulFunctionCall","src":"6919:15:101"},"nativeSrc":"6919:15:101","nodeType":"YulExpressionStatement","src":"6919:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6760:180:101","nodeType":"YulFunctionDefinition","src":"6760:180:101"},{"body":{"nativeSrc":"6997:51:101","nodeType":"YulBlock","src":"6997:51:101","statements":[{"nativeSrc":"7007:34:101","nodeType":"YulAssignment","src":"7007:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7032:1:101","nodeType":"YulLiteral","src":"7032:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7035:5:101","nodeType":"YulIdentifier","src":"7035:5:101"}],"functionName":{"name":"shr","nativeSrc":"7028:3:101","nodeType":"YulIdentifier","src":"7028:3:101"},"nativeSrc":"7028:13:101","nodeType":"YulFunctionCall","src":"7028:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7007:8:101","nodeType":"YulIdentifier","src":"7007:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"6946:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6978:5:101","nodeType":"YulTypedName","src":"6978:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6988:8:101","nodeType":"YulTypedName","src":"6988:8:101","type":""}],"src":"6946:102:101"},{"body":{"nativeSrc":"7127:775:101","nodeType":"YulBlock","src":"7127:775:101","statements":[{"nativeSrc":"7137:15:101","nodeType":"YulAssignment","src":"7137:15:101","value":{"name":"_power","nativeSrc":"7146:6:101","nodeType":"YulIdentifier","src":"7146:6:101"},"variableNames":[{"name":"power","nativeSrc":"7137:5:101","nodeType":"YulIdentifier","src":"7137:5:101"}]},{"nativeSrc":"7161:14:101","nodeType":"YulAssignment","src":"7161:14:101","value":{"name":"_base","nativeSrc":"7170:5:101","nodeType":"YulIdentifier","src":"7170:5:101"},"variableNames":[{"name":"base","nativeSrc":"7161:4:101","nodeType":"YulIdentifier","src":"7161:4:101"}]},{"body":{"nativeSrc":"7219:677:101","nodeType":"YulBlock","src":"7219:677:101","statements":[{"body":{"nativeSrc":"7307:22:101","nodeType":"YulBlock","src":"7307:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7309:16:101","nodeType":"YulIdentifier","src":"7309:16:101"},"nativeSrc":"7309:18:101","nodeType":"YulFunctionCall","src":"7309:18:101"},"nativeSrc":"7309:18:101","nodeType":"YulExpressionStatement","src":"7309:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"7285:4:101","nodeType":"YulIdentifier","src":"7285:4:101"},{"arguments":[{"name":"max","nativeSrc":"7295:3:101","nodeType":"YulIdentifier","src":"7295:3:101"},{"name":"base","nativeSrc":"7300:4:101","nodeType":"YulIdentifier","src":"7300:4:101"}],"functionName":{"name":"div","nativeSrc":"7291:3:101","nodeType":"YulIdentifier","src":"7291:3:101"},"nativeSrc":"7291:14:101","nodeType":"YulFunctionCall","src":"7291:14:101"}],"functionName":{"name":"gt","nativeSrc":"7282:2:101","nodeType":"YulIdentifier","src":"7282:2:101"},"nativeSrc":"7282:24:101","nodeType":"YulFunctionCall","src":"7282:24:101"},"nativeSrc":"7279:50:101","nodeType":"YulIf","src":"7279:50:101"},{"body":{"nativeSrc":"7374:419:101","nodeType":"YulBlock","src":"7374:419:101","statements":[{"nativeSrc":"7754:25:101","nodeType":"YulAssignment","src":"7754:25:101","value":{"arguments":[{"name":"power","nativeSrc":"7767:5:101","nodeType":"YulIdentifier","src":"7767:5:101"},{"name":"base","nativeSrc":"7774:4:101","nodeType":"YulIdentifier","src":"7774:4:101"}],"functionName":{"name":"mul","nativeSrc":"7763:3:101","nodeType":"YulIdentifier","src":"7763:3:101"},"nativeSrc":"7763:16:101","nodeType":"YulFunctionCall","src":"7763:16:101"},"variableNames":[{"name":"power","nativeSrc":"7754:5:101","nodeType":"YulIdentifier","src":"7754:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7349:8:101","nodeType":"YulIdentifier","src":"7349:8:101"},{"kind":"number","nativeSrc":"7359:1:101","nodeType":"YulLiteral","src":"7359:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"7345:3:101","nodeType":"YulIdentifier","src":"7345:3:101"},"nativeSrc":"7345:16:101","nodeType":"YulFunctionCall","src":"7345:16:101"},"nativeSrc":"7342:451:101","nodeType":"YulIf","src":"7342:451:101"},{"nativeSrc":"7806:23:101","nodeType":"YulAssignment","src":"7806:23:101","value":{"arguments":[{"name":"base","nativeSrc":"7818:4:101","nodeType":"YulIdentifier","src":"7818:4:101"},{"name":"base","nativeSrc":"7824:4:101","nodeType":"YulIdentifier","src":"7824:4:101"}],"functionName":{"name":"mul","nativeSrc":"7814:3:101","nodeType":"YulIdentifier","src":"7814:3:101"},"nativeSrc":"7814:15:101","nodeType":"YulFunctionCall","src":"7814:15:101"},"variableNames":[{"name":"base","nativeSrc":"7806:4:101","nodeType":"YulIdentifier","src":"7806:4:101"}]},{"nativeSrc":"7842:44:101","nodeType":"YulAssignment","src":"7842:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"7877:8:101","nodeType":"YulIdentifier","src":"7877:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"7854:22:101","nodeType":"YulIdentifier","src":"7854:22:101"},"nativeSrc":"7854:32:101","nodeType":"YulFunctionCall","src":"7854:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"7842:8:101","nodeType":"YulIdentifier","src":"7842:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7195:8:101","nodeType":"YulIdentifier","src":"7195:8:101"},{"kind":"number","nativeSrc":"7205:1:101","nodeType":"YulLiteral","src":"7205:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7192:2:101","nodeType":"YulIdentifier","src":"7192:2:101"},"nativeSrc":"7192:15:101","nodeType":"YulFunctionCall","src":"7192:15:101"},"nativeSrc":"7184:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"7208:2:101","nodeType":"YulBlock","src":"7208:2:101","statements":[]},"pre":{"nativeSrc":"7188:3:101","nodeType":"YulBlock","src":"7188:3:101","statements":[]},"src":"7184:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7054:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7082:6:101","nodeType":"YulTypedName","src":"7082:6:101","type":""},{"name":"_base","nativeSrc":"7090:5:101","nodeType":"YulTypedName","src":"7090:5:101","type":""},{"name":"exponent","nativeSrc":"7097:8:101","nodeType":"YulTypedName","src":"7097:8:101","type":""},{"name":"max","nativeSrc":"7107:3:101","nodeType":"YulTypedName","src":"7107:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7115:5:101","nodeType":"YulTypedName","src":"7115:5:101","type":""},{"name":"base","nativeSrc":"7122:4:101","nodeType":"YulTypedName","src":"7122:4:101","type":""}],"src":"7054:848:101"},{"body":{"nativeSrc":"7968:1013:101","nodeType":"YulBlock","src":"7968:1013:101","statements":[{"body":{"nativeSrc":"8163:20:101","nodeType":"YulBlock","src":"8163:20:101","statements":[{"nativeSrc":"8165:10:101","nodeType":"YulAssignment","src":"8165:10:101","value":{"kind":"number","nativeSrc":"8174:1:101","nodeType":"YulLiteral","src":"8174:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8165:5:101","nodeType":"YulIdentifier","src":"8165:5:101"}]},{"nativeSrc":"8176:5:101","nodeType":"YulLeave","src":"8176:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8153:8:101","nodeType":"YulIdentifier","src":"8153:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8146:6:101","nodeType":"YulIdentifier","src":"8146:6:101"},"nativeSrc":"8146:16:101","nodeType":"YulFunctionCall","src":"8146:16:101"},"nativeSrc":"8143:40:101","nodeType":"YulIf","src":"8143:40:101"},{"body":{"nativeSrc":"8208:20:101","nodeType":"YulBlock","src":"8208:20:101","statements":[{"nativeSrc":"8210:10:101","nodeType":"YulAssignment","src":"8210:10:101","value":{"kind":"number","nativeSrc":"8219:1:101","nodeType":"YulLiteral","src":"8219:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"8210:5:101","nodeType":"YulIdentifier","src":"8210:5:101"}]},{"nativeSrc":"8221:5:101","nodeType":"YulLeave","src":"8221:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8202:4:101","nodeType":"YulIdentifier","src":"8202:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8195:6:101","nodeType":"YulIdentifier","src":"8195:6:101"},"nativeSrc":"8195:12:101","nodeType":"YulFunctionCall","src":"8195:12:101"},"nativeSrc":"8192:36:101","nodeType":"YulIf","src":"8192:36:101"},{"cases":[{"body":{"nativeSrc":"8338:20:101","nodeType":"YulBlock","src":"8338:20:101","statements":[{"nativeSrc":"8340:10:101","nodeType":"YulAssignment","src":"8340:10:101","value":{"kind":"number","nativeSrc":"8349:1:101","nodeType":"YulLiteral","src":"8349:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8340:5:101","nodeType":"YulIdentifier","src":"8340:5:101"}]},{"nativeSrc":"8351:5:101","nodeType":"YulLeave","src":"8351:5:101"}]},"nativeSrc":"8331:27:101","nodeType":"YulCase","src":"8331:27:101","value":{"kind":"number","nativeSrc":"8336:1:101","nodeType":"YulLiteral","src":"8336:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8382:176:101","nodeType":"YulBlock","src":"8382:176:101","statements":[{"body":{"nativeSrc":"8417:22:101","nodeType":"YulBlock","src":"8417:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8419:16:101","nodeType":"YulIdentifier","src":"8419:16:101"},"nativeSrc":"8419:18:101","nodeType":"YulFunctionCall","src":"8419:18:101"},"nativeSrc":"8419:18:101","nodeType":"YulExpressionStatement","src":"8419:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8402:8:101","nodeType":"YulIdentifier","src":"8402:8:101"},{"kind":"number","nativeSrc":"8412:3:101","nodeType":"YulLiteral","src":"8412:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"8399:2:101","nodeType":"YulIdentifier","src":"8399:2:101"},"nativeSrc":"8399:17:101","nodeType":"YulFunctionCall","src":"8399:17:101"},"nativeSrc":"8396:43:101","nodeType":"YulIf","src":"8396:43:101"},{"nativeSrc":"8452:25:101","nodeType":"YulAssignment","src":"8452:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"8465:1:101","nodeType":"YulLiteral","src":"8465:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"8468:8:101","nodeType":"YulIdentifier","src":"8468:8:101"}],"functionName":{"name":"exp","nativeSrc":"8461:3:101","nodeType":"YulIdentifier","src":"8461:3:101"},"nativeSrc":"8461:16:101","nodeType":"YulFunctionCall","src":"8461:16:101"},"variableNames":[{"name":"power","nativeSrc":"8452:5:101","nodeType":"YulIdentifier","src":"8452:5:101"}]},{"body":{"nativeSrc":"8508:22:101","nodeType":"YulBlock","src":"8508:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8510:16:101","nodeType":"YulIdentifier","src":"8510:16:101"},"nativeSrc":"8510:18:101","nodeType":"YulFunctionCall","src":"8510:18:101"},"nativeSrc":"8510:18:101","nodeType":"YulExpressionStatement","src":"8510:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"8496:5:101","nodeType":"YulIdentifier","src":"8496:5:101"},{"name":"max","nativeSrc":"8503:3:101","nodeType":"YulIdentifier","src":"8503:3:101"}],"functionName":{"name":"gt","nativeSrc":"8493:2:101","nodeType":"YulIdentifier","src":"8493:2:101"},"nativeSrc":"8493:14:101","nodeType":"YulFunctionCall","src":"8493:14:101"},"nativeSrc":"8490:40:101","nodeType":"YulIf","src":"8490:40:101"},{"nativeSrc":"8543:5:101","nodeType":"YulLeave","src":"8543:5:101"}]},"nativeSrc":"8367:191:101","nodeType":"YulCase","src":"8367:191:101","value":{"kind":"number","nativeSrc":"8372:1:101","nodeType":"YulLiteral","src":"8372:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"8288:4:101","nodeType":"YulIdentifier","src":"8288:4:101"},"nativeSrc":"8281:277:101","nodeType":"YulSwitch","src":"8281:277:101"},{"body":{"nativeSrc":"8690:123:101","nodeType":"YulBlock","src":"8690:123:101","statements":[{"nativeSrc":"8704:28:101","nodeType":"YulAssignment","src":"8704:28:101","value":{"arguments":[{"name":"base","nativeSrc":"8717:4:101","nodeType":"YulIdentifier","src":"8717:4:101"},{"name":"exponent","nativeSrc":"8723:8:101","nodeType":"YulIdentifier","src":"8723:8:101"}],"functionName":{"name":"exp","nativeSrc":"8713:3:101","nodeType":"YulIdentifier","src":"8713:3:101"},"nativeSrc":"8713:19:101","nodeType":"YulFunctionCall","src":"8713:19:101"},"variableNames":[{"name":"power","nativeSrc":"8704:5:101","nodeType":"YulIdentifier","src":"8704:5:101"}]},{"body":{"nativeSrc":"8763:22:101","nodeType":"YulBlock","src":"8763:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8765:16:101","nodeType":"YulIdentifier","src":"8765:16:101"},"nativeSrc":"8765:18:101","nodeType":"YulFunctionCall","src":"8765:18:101"},"nativeSrc":"8765:18:101","nodeType":"YulExpressionStatement","src":"8765:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"8751:5:101","nodeType":"YulIdentifier","src":"8751:5:101"},{"name":"max","nativeSrc":"8758:3:101","nodeType":"YulIdentifier","src":"8758:3:101"}],"functionName":{"name":"gt","nativeSrc":"8748:2:101","nodeType":"YulIdentifier","src":"8748:2:101"},"nativeSrc":"8748:14:101","nodeType":"YulFunctionCall","src":"8748:14:101"},"nativeSrc":"8745:40:101","nodeType":"YulIf","src":"8745:40:101"},{"nativeSrc":"8798:5:101","nodeType":"YulLeave","src":"8798:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"8593:4:101","nodeType":"YulIdentifier","src":"8593:4:101"},{"kind":"number","nativeSrc":"8599:2:101","nodeType":"YulLiteral","src":"8599:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"8590:2:101","nodeType":"YulIdentifier","src":"8590:2:101"},"nativeSrc":"8590:12:101","nodeType":"YulFunctionCall","src":"8590:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"8607:8:101","nodeType":"YulIdentifier","src":"8607:8:101"},{"kind":"number","nativeSrc":"8617:2:101","nodeType":"YulLiteral","src":"8617:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"8604:2:101","nodeType":"YulIdentifier","src":"8604:2:101"},"nativeSrc":"8604:16:101","nodeType":"YulFunctionCall","src":"8604:16:101"}],"functionName":{"name":"and","nativeSrc":"8586:3:101","nodeType":"YulIdentifier","src":"8586:3:101"},"nativeSrc":"8586:35:101","nodeType":"YulFunctionCall","src":"8586:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"8642:4:101","nodeType":"YulIdentifier","src":"8642:4:101"},{"kind":"number","nativeSrc":"8648:3:101","nodeType":"YulLiteral","src":"8648:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"8639:2:101","nodeType":"YulIdentifier","src":"8639:2:101"},"nativeSrc":"8639:13:101","nodeType":"YulFunctionCall","src":"8639:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"8657:8:101","nodeType":"YulIdentifier","src":"8657:8:101"},{"kind":"number","nativeSrc":"8667:2:101","nodeType":"YulLiteral","src":"8667:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"8654:2:101","nodeType":"YulIdentifier","src":"8654:2:101"},"nativeSrc":"8654:16:101","nodeType":"YulFunctionCall","src":"8654:16:101"}],"functionName":{"name":"and","nativeSrc":"8635:3:101","nodeType":"YulIdentifier","src":"8635:3:101"},"nativeSrc":"8635:36:101","nodeType":"YulFunctionCall","src":"8635:36:101"}],"functionName":{"name":"or","nativeSrc":"8570:2:101","nodeType":"YulIdentifier","src":"8570:2:101"},"nativeSrc":"8570:111:101","nodeType":"YulFunctionCall","src":"8570:111:101"},"nativeSrc":"8567:246:101","nodeType":"YulIf","src":"8567:246:101"},{"nativeSrc":"8823:57:101","nodeType":"YulAssignment","src":"8823:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"8857:1:101","nodeType":"YulLiteral","src":"8857:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"8860:4:101","nodeType":"YulIdentifier","src":"8860:4:101"},{"name":"exponent","nativeSrc":"8866:8:101","nodeType":"YulIdentifier","src":"8866:8:101"},{"name":"max","nativeSrc":"8876:3:101","nodeType":"YulIdentifier","src":"8876:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"8838:18:101","nodeType":"YulIdentifier","src":"8838:18:101"},"nativeSrc":"8838:42:101","nodeType":"YulFunctionCall","src":"8838:42:101"},"variableNames":[{"name":"power","nativeSrc":"8823:5:101","nodeType":"YulIdentifier","src":"8823:5:101"},{"name":"base","nativeSrc":"8830:4:101","nodeType":"YulIdentifier","src":"8830:4:101"}]},{"body":{"nativeSrc":"8919:22:101","nodeType":"YulBlock","src":"8919:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8921:16:101","nodeType":"YulIdentifier","src":"8921:16:101"},"nativeSrc":"8921:18:101","nodeType":"YulFunctionCall","src":"8921:18:101"},"nativeSrc":"8921:18:101","nodeType":"YulExpressionStatement","src":"8921:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"8896:5:101","nodeType":"YulIdentifier","src":"8896:5:101"},{"arguments":[{"name":"max","nativeSrc":"8907:3:101","nodeType":"YulIdentifier","src":"8907:3:101"},{"name":"base","nativeSrc":"8912:4:101","nodeType":"YulIdentifier","src":"8912:4:101"}],"functionName":{"name":"div","nativeSrc":"8903:3:101","nodeType":"YulIdentifier","src":"8903:3:101"},"nativeSrc":"8903:14:101","nodeType":"YulFunctionCall","src":"8903:14:101"}],"functionName":{"name":"gt","nativeSrc":"8893:2:101","nodeType":"YulIdentifier","src":"8893:2:101"},"nativeSrc":"8893:25:101","nodeType":"YulFunctionCall","src":"8893:25:101"},"nativeSrc":"8890:51:101","nodeType":"YulIf","src":"8890:51:101"},{"nativeSrc":"8950:25:101","nodeType":"YulAssignment","src":"8950:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8963:5:101","nodeType":"YulIdentifier","src":"8963:5:101"},{"name":"base","nativeSrc":"8970:4:101","nodeType":"YulIdentifier","src":"8970:4:101"}],"functionName":{"name":"mul","nativeSrc":"8959:3:101","nodeType":"YulIdentifier","src":"8959:3:101"},"nativeSrc":"8959:16:101","nodeType":"YulFunctionCall","src":"8959:16:101"},"variableNames":[{"name":"power","nativeSrc":"8950:5:101","nodeType":"YulIdentifier","src":"8950:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"7908:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"7938:4:101","nodeType":"YulTypedName","src":"7938:4:101","type":""},{"name":"exponent","nativeSrc":"7944:8:101","nodeType":"YulTypedName","src":"7944:8:101","type":""},{"name":"max","nativeSrc":"7954:3:101","nodeType":"YulTypedName","src":"7954:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7962:5:101","nodeType":"YulTypedName","src":"7962:5:101","type":""}],"src":"7908:1073:101"},{"body":{"nativeSrc":"9053:219:101","nodeType":"YulBlock","src":"9053:219:101","statements":[{"nativeSrc":"9063:31:101","nodeType":"YulAssignment","src":"9063:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9089:4:101","nodeType":"YulIdentifier","src":"9089:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9071:17:101","nodeType":"YulIdentifier","src":"9071:17:101"},"nativeSrc":"9071:23:101","nodeType":"YulFunctionCall","src":"9071:23:101"},"variableNames":[{"name":"base","nativeSrc":"9063:4:101","nodeType":"YulIdentifier","src":"9063:4:101"}]},{"nativeSrc":"9103:39:101","nodeType":"YulAssignment","src":"9103:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9133:8:101","nodeType":"YulIdentifier","src":"9133:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9115:17:101","nodeType":"YulIdentifier","src":"9115:17:101"},"nativeSrc":"9115:27:101","nodeType":"YulFunctionCall","src":"9115:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9103:8:101","nodeType":"YulIdentifier","src":"9103:8:101"}]},{"nativeSrc":"9152:113:101","nodeType":"YulAssignment","src":"9152:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9182:4:101","nodeType":"YulIdentifier","src":"9182:4:101"},{"name":"exponent","nativeSrc":"9188:8:101","nodeType":"YulIdentifier","src":"9188:8:101"},{"kind":"number","nativeSrc":"9198:66:101","nodeType":"YulLiteral","src":"9198:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9161:20:101","nodeType":"YulIdentifier","src":"9161:20:101"},"nativeSrc":"9161:104:101","nodeType":"YulFunctionCall","src":"9161:104:101"},"variableNames":[{"name":"power","nativeSrc":"9152:5:101","nodeType":"YulIdentifier","src":"9152:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"8987:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9028:4:101","nodeType":"YulTypedName","src":"9028:4:101","type":""},{"name":"exponent","nativeSrc":"9034:8:101","nodeType":"YulTypedName","src":"9034:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9047:5:101","nodeType":"YulTypedName","src":"9047:5:101","type":""}],"src":"8987:285:101"},{"body":{"nativeSrc":"9326:362:101","nodeType":"YulBlock","src":"9326:362:101","statements":[{"nativeSrc":"9336:25:101","nodeType":"YulAssignment","src":"9336:25:101","value":{"arguments":[{"name":"x","nativeSrc":"9359:1:101","nodeType":"YulIdentifier","src":"9359:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9341:17:101","nodeType":"YulIdentifier","src":"9341:17:101"},"nativeSrc":"9341:20:101","nodeType":"YulFunctionCall","src":"9341:20:101"},"variableNames":[{"name":"x","nativeSrc":"9336:1:101","nodeType":"YulIdentifier","src":"9336:1:101"}]},{"nativeSrc":"9370:25:101","nodeType":"YulAssignment","src":"9370:25:101","value":{"arguments":[{"name":"y","nativeSrc":"9393:1:101","nodeType":"YulIdentifier","src":"9393:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9375:17:101","nodeType":"YulIdentifier","src":"9375:17:101"},"nativeSrc":"9375:20:101","nodeType":"YulFunctionCall","src":"9375:20:101"},"variableNames":[{"name":"y","nativeSrc":"9370:1:101","nodeType":"YulIdentifier","src":"9370:1:101"}]},{"nativeSrc":"9404:28:101","nodeType":"YulVariableDeclaration","src":"9404:28:101","value":{"arguments":[{"name":"x","nativeSrc":"9427:1:101","nodeType":"YulIdentifier","src":"9427:1:101"},{"name":"y","nativeSrc":"9430:1:101","nodeType":"YulIdentifier","src":"9430:1:101"}],"functionName":{"name":"mul","nativeSrc":"9423:3:101","nodeType":"YulIdentifier","src":"9423:3:101"},"nativeSrc":"9423:9:101","nodeType":"YulFunctionCall","src":"9423:9:101"},"variables":[{"name":"product_raw","nativeSrc":"9408:11:101","nodeType":"YulTypedName","src":"9408:11:101","type":""}]},{"nativeSrc":"9441:41:101","nodeType":"YulAssignment","src":"9441:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"9470:11:101","nodeType":"YulIdentifier","src":"9470:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9452:17:101","nodeType":"YulIdentifier","src":"9452:17:101"},"nativeSrc":"9452:30:101","nodeType":"YulFunctionCall","src":"9452:30:101"},"variableNames":[{"name":"product","nativeSrc":"9441:7:101","nodeType":"YulIdentifier","src":"9441:7:101"}]},{"body":{"nativeSrc":"9659:22:101","nodeType":"YulBlock","src":"9659:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9661:16:101","nodeType":"YulIdentifier","src":"9661:16:101"},"nativeSrc":"9661:18:101","nodeType":"YulFunctionCall","src":"9661:18:101"},"nativeSrc":"9661:18:101","nodeType":"YulExpressionStatement","src":"9661:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"9592:1:101","nodeType":"YulIdentifier","src":"9592:1:101"}],"functionName":{"name":"iszero","nativeSrc":"9585:6:101","nodeType":"YulIdentifier","src":"9585:6:101"},"nativeSrc":"9585:9:101","nodeType":"YulFunctionCall","src":"9585:9:101"},{"arguments":[{"name":"y","nativeSrc":"9615:1:101","nodeType":"YulIdentifier","src":"9615:1:101"},{"arguments":[{"name":"product","nativeSrc":"9622:7:101","nodeType":"YulIdentifier","src":"9622:7:101"},{"name":"x","nativeSrc":"9631:1:101","nodeType":"YulIdentifier","src":"9631:1:101"}],"functionName":{"name":"div","nativeSrc":"9618:3:101","nodeType":"YulIdentifier","src":"9618:3:101"},"nativeSrc":"9618:15:101","nodeType":"YulFunctionCall","src":"9618:15:101"}],"functionName":{"name":"eq","nativeSrc":"9612:2:101","nodeType":"YulIdentifier","src":"9612:2:101"},"nativeSrc":"9612:22:101","nodeType":"YulFunctionCall","src":"9612:22:101"}],"functionName":{"name":"or","nativeSrc":"9565:2:101","nodeType":"YulIdentifier","src":"9565:2:101"},"nativeSrc":"9565:83:101","nodeType":"YulFunctionCall","src":"9565:83:101"}],"functionName":{"name":"iszero","nativeSrc":"9545:6:101","nodeType":"YulIdentifier","src":"9545:6:101"},"nativeSrc":"9545:113:101","nodeType":"YulFunctionCall","src":"9545:113:101"},"nativeSrc":"9542:139:101","nodeType":"YulIf","src":"9542:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"9278:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9309:1:101","nodeType":"YulTypedName","src":"9309:1:101","type":""},{"name":"y","nativeSrc":"9312:1:101","nodeType":"YulTypedName","src":"9312:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"9318:7:101","nodeType":"YulTypedName","src":"9318:7:101","type":""}],"src":"9278:410:101"},{"body":{"nativeSrc":"9722:152:101","nodeType":"YulBlock","src":"9722:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9739:1:101","nodeType":"YulLiteral","src":"9739:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9742:77:101","nodeType":"YulLiteral","src":"9742:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9732:6:101","nodeType":"YulIdentifier","src":"9732:6:101"},"nativeSrc":"9732:88:101","nodeType":"YulFunctionCall","src":"9732:88:101"},"nativeSrc":"9732:88:101","nodeType":"YulExpressionStatement","src":"9732:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9836:1:101","nodeType":"YulLiteral","src":"9836:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"9839:4:101","nodeType":"YulLiteral","src":"9839:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"9829:6:101","nodeType":"YulIdentifier","src":"9829:6:101"},"nativeSrc":"9829:15:101","nodeType":"YulFunctionCall","src":"9829:15:101"},"nativeSrc":"9829:15:101","nodeType":"YulExpressionStatement","src":"9829:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9860:1:101","nodeType":"YulLiteral","src":"9860:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9863:4:101","nodeType":"YulLiteral","src":"9863:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9853:6:101","nodeType":"YulIdentifier","src":"9853:6:101"},"nativeSrc":"9853:15:101","nodeType":"YulFunctionCall","src":"9853:15:101"},"nativeSrc":"9853:15:101","nodeType":"YulExpressionStatement","src":"9853:15:101"}]},"name":"panic_error_0x12","nativeSrc":"9694:180:101","nodeType":"YulFunctionDefinition","src":"9694:180:101"},{"body":{"nativeSrc":"9922:143:101","nodeType":"YulBlock","src":"9922:143:101","statements":[{"nativeSrc":"9932:25:101","nodeType":"YulAssignment","src":"9932:25:101","value":{"arguments":[{"name":"x","nativeSrc":"9955:1:101","nodeType":"YulIdentifier","src":"9955:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9937:17:101","nodeType":"YulIdentifier","src":"9937:17:101"},"nativeSrc":"9937:20:101","nodeType":"YulFunctionCall","src":"9937:20:101"},"variableNames":[{"name":"x","nativeSrc":"9932:1:101","nodeType":"YulIdentifier","src":"9932:1:101"}]},{"nativeSrc":"9966:25:101","nodeType":"YulAssignment","src":"9966:25:101","value":{"arguments":[{"name":"y","nativeSrc":"9989:1:101","nodeType":"YulIdentifier","src":"9989:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9971:17:101","nodeType":"YulIdentifier","src":"9971:17:101"},"nativeSrc":"9971:20:101","nodeType":"YulFunctionCall","src":"9971:20:101"},"variableNames":[{"name":"y","nativeSrc":"9966:1:101","nodeType":"YulIdentifier","src":"9966:1:101"}]},{"body":{"nativeSrc":"10013:22:101","nodeType":"YulBlock","src":"10013:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"10015:16:101","nodeType":"YulIdentifier","src":"10015:16:101"},"nativeSrc":"10015:18:101","nodeType":"YulFunctionCall","src":"10015:18:101"},"nativeSrc":"10015:18:101","nodeType":"YulExpressionStatement","src":"10015:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"10010:1:101","nodeType":"YulIdentifier","src":"10010:1:101"}],"functionName":{"name":"iszero","nativeSrc":"10003:6:101","nodeType":"YulIdentifier","src":"10003:6:101"},"nativeSrc":"10003:9:101","nodeType":"YulFunctionCall","src":"10003:9:101"},"nativeSrc":"10000:35:101","nodeType":"YulIf","src":"10000:35:101"},{"nativeSrc":"10045:14:101","nodeType":"YulAssignment","src":"10045:14:101","value":{"arguments":[{"name":"x","nativeSrc":"10054:1:101","nodeType":"YulIdentifier","src":"10054:1:101"},{"name":"y","nativeSrc":"10057:1:101","nodeType":"YulIdentifier","src":"10057:1:101"}],"functionName":{"name":"div","nativeSrc":"10050:3:101","nodeType":"YulIdentifier","src":"10050:3:101"},"nativeSrc":"10050:9:101","nodeType":"YulFunctionCall","src":"10050:9:101"},"variableNames":[{"name":"r","nativeSrc":"10045:1:101","nodeType":"YulIdentifier","src":"10045:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"9880:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9911:1:101","nodeType":"YulTypedName","src":"9911:1:101","type":""},{"name":"y","nativeSrc":"9914:1:101","nodeType":"YulTypedName","src":"9914:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"9920:1:101","nodeType":"YulTypedName","src":"9920:1:101","type":""}],"src":"9880:185:101"},{"body":{"nativeSrc":"10115:147:101","nodeType":"YulBlock","src":"10115:147:101","statements":[{"nativeSrc":"10125:25:101","nodeType":"YulAssignment","src":"10125:25:101","value":{"arguments":[{"name":"x","nativeSrc":"10148:1:101","nodeType":"YulIdentifier","src":"10148:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10130:17:101","nodeType":"YulIdentifier","src":"10130:17:101"},"nativeSrc":"10130:20:101","nodeType":"YulFunctionCall","src":"10130:20:101"},"variableNames":[{"name":"x","nativeSrc":"10125:1:101","nodeType":"YulIdentifier","src":"10125:1:101"}]},{"nativeSrc":"10159:25:101","nodeType":"YulAssignment","src":"10159:25:101","value":{"arguments":[{"name":"y","nativeSrc":"10182:1:101","nodeType":"YulIdentifier","src":"10182:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10164:17:101","nodeType":"YulIdentifier","src":"10164:17:101"},"nativeSrc":"10164:20:101","nodeType":"YulFunctionCall","src":"10164:20:101"},"variableNames":[{"name":"y","nativeSrc":"10159:1:101","nodeType":"YulIdentifier","src":"10159:1:101"}]},{"nativeSrc":"10193:16:101","nodeType":"YulAssignment","src":"10193:16:101","value":{"arguments":[{"name":"x","nativeSrc":"10204:1:101","nodeType":"YulIdentifier","src":"10204:1:101"},{"name":"y","nativeSrc":"10207:1:101","nodeType":"YulIdentifier","src":"10207:1:101"}],"functionName":{"name":"add","nativeSrc":"10200:3:101","nodeType":"YulIdentifier","src":"10200:3:101"},"nativeSrc":"10200:9:101","nodeType":"YulFunctionCall","src":"10200:9:101"},"variableNames":[{"name":"sum","nativeSrc":"10193:3:101","nodeType":"YulIdentifier","src":"10193:3:101"}]},{"body":{"nativeSrc":"10233:22:101","nodeType":"YulBlock","src":"10233:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10235:16:101","nodeType":"YulIdentifier","src":"10235:16:101"},"nativeSrc":"10235:18:101","nodeType":"YulFunctionCall","src":"10235:18:101"},"nativeSrc":"10235:18:101","nodeType":"YulExpressionStatement","src":"10235:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"10225:1:101","nodeType":"YulIdentifier","src":"10225:1:101"},{"name":"sum","nativeSrc":"10228:3:101","nodeType":"YulIdentifier","src":"10228:3:101"}],"functionName":{"name":"gt","nativeSrc":"10222:2:101","nodeType":"YulIdentifier","src":"10222:2:101"},"nativeSrc":"10222:10:101","nodeType":"YulFunctionCall","src":"10222:10:101"},"nativeSrc":"10219:36:101","nodeType":"YulIf","src":"10219:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"10071:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"10102:1:101","nodeType":"YulTypedName","src":"10102:1:101","type":""},{"name":"y","nativeSrc":"10105:1:101","nodeType":"YulTypedName","src":"10105:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"10111:3:101","nodeType":"YulTypedName","src":"10111:3:101","type":""}],"src":"10071:191:101"},{"body":{"nativeSrc":"10374:118:101","nodeType":"YulBlock","src":"10374:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10396:6:101","nodeType":"YulIdentifier","src":"10396:6:101"},{"kind":"number","nativeSrc":"10404:1:101","nodeType":"YulLiteral","src":"10404:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10392:3:101","nodeType":"YulIdentifier","src":"10392:3:101"},"nativeSrc":"10392:14:101","nodeType":"YulFunctionCall","src":"10392:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"10408:34:101","nodeType":"YulLiteral","src":"10408:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"10385:6:101","nodeType":"YulIdentifier","src":"10385:6:101"},"nativeSrc":"10385:58:101","nodeType":"YulFunctionCall","src":"10385:58:101"},"nativeSrc":"10385:58:101","nodeType":"YulExpressionStatement","src":"10385:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10464:6:101","nodeType":"YulIdentifier","src":"10464:6:101"},{"kind":"number","nativeSrc":"10472:2:101","nodeType":"YulLiteral","src":"10472:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10460:3:101","nodeType":"YulIdentifier","src":"10460:3:101"},"nativeSrc":"10460:15:101","nodeType":"YulFunctionCall","src":"10460:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"10477:7:101","nodeType":"YulLiteral","src":"10477:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"10453:6:101","nodeType":"YulIdentifier","src":"10453:6:101"},"nativeSrc":"10453:32:101","nodeType":"YulFunctionCall","src":"10453:32:101"},"nativeSrc":"10453:32:101","nodeType":"YulExpressionStatement","src":"10453:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"10268:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10366:6:101","nodeType":"YulTypedName","src":"10366:6:101","type":""}],"src":"10268:224:101"},{"body":{"nativeSrc":"10644:220:101","nodeType":"YulBlock","src":"10644:220:101","statements":[{"nativeSrc":"10654:74:101","nodeType":"YulAssignment","src":"10654:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10720:3:101","nodeType":"YulIdentifier","src":"10720:3:101"},{"kind":"number","nativeSrc":"10725:2:101","nodeType":"YulLiteral","src":"10725:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10661:58:101","nodeType":"YulIdentifier","src":"10661:58:101"},"nativeSrc":"10661:67:101","nodeType":"YulFunctionCall","src":"10661:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10654:3:101","nodeType":"YulIdentifier","src":"10654:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10826:3:101","nodeType":"YulIdentifier","src":"10826:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"10737:88:101","nodeType":"YulIdentifier","src":"10737:88:101"},"nativeSrc":"10737:93:101","nodeType":"YulFunctionCall","src":"10737:93:101"},"nativeSrc":"10737:93:101","nodeType":"YulExpressionStatement","src":"10737:93:101"},{"nativeSrc":"10839:19:101","nodeType":"YulAssignment","src":"10839:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10850:3:101","nodeType":"YulIdentifier","src":"10850:3:101"},{"kind":"number","nativeSrc":"10855:2:101","nodeType":"YulLiteral","src":"10855:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10846:3:101","nodeType":"YulIdentifier","src":"10846:3:101"},"nativeSrc":"10846:12:101","nodeType":"YulFunctionCall","src":"10846:12:101"},"variableNames":[{"name":"end","nativeSrc":"10839:3:101","nodeType":"YulIdentifier","src":"10839:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"10498:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10632:3:101","nodeType":"YulTypedName","src":"10632:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10640:3:101","nodeType":"YulTypedName","src":"10640:3:101","type":""}],"src":"10498:366:101"},{"body":{"nativeSrc":"11041:248:101","nodeType":"YulBlock","src":"11041:248:101","statements":[{"nativeSrc":"11051:26:101","nodeType":"YulAssignment","src":"11051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11063:9:101","nodeType":"YulIdentifier","src":"11063:9:101"},{"kind":"number","nativeSrc":"11074:2:101","nodeType":"YulLiteral","src":"11074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11059:3:101","nodeType":"YulIdentifier","src":"11059:3:101"},"nativeSrc":"11059:18:101","nodeType":"YulFunctionCall","src":"11059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11051:4:101","nodeType":"YulIdentifier","src":"11051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11098:9:101","nodeType":"YulIdentifier","src":"11098:9:101"},{"kind":"number","nativeSrc":"11109:1:101","nodeType":"YulLiteral","src":"11109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11094:3:101","nodeType":"YulIdentifier","src":"11094:3:101"},"nativeSrc":"11094:17:101","nodeType":"YulFunctionCall","src":"11094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11117:4:101","nodeType":"YulIdentifier","src":"11117:4:101"},{"name":"headStart","nativeSrc":"11123:9:101","nodeType":"YulIdentifier","src":"11123:9:101"}],"functionName":{"name":"sub","nativeSrc":"11113:3:101","nodeType":"YulIdentifier","src":"11113:3:101"},"nativeSrc":"11113:20:101","nodeType":"YulFunctionCall","src":"11113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11087:6:101","nodeType":"YulIdentifier","src":"11087:6:101"},"nativeSrc":"11087:47:101","nodeType":"YulFunctionCall","src":"11087:47:101"},"nativeSrc":"11087:47:101","nodeType":"YulExpressionStatement","src":"11087:47:101"},{"nativeSrc":"11143:139:101","nodeType":"YulAssignment","src":"11143:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11277:4:101","nodeType":"YulIdentifier","src":"11277:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"11151:124:101","nodeType":"YulIdentifier","src":"11151:124:101"},"nativeSrc":"11151:131:101","nodeType":"YulFunctionCall","src":"11151:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10870:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11021:9:101","nodeType":"YulTypedName","src":"11021:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11036:4:101","nodeType":"YulTypedName","src":"11036:4:101","type":""}],"src":"10870:419:101"},{"body":{"nativeSrc":"11401:119:101","nodeType":"YulBlock","src":"11401:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11423:6:101","nodeType":"YulIdentifier","src":"11423:6:101"},{"kind":"number","nativeSrc":"11431:1:101","nodeType":"YulLiteral","src":"11431:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11419:3:101","nodeType":"YulIdentifier","src":"11419:3:101"},"nativeSrc":"11419:14:101","nodeType":"YulFunctionCall","src":"11419:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"11435:34:101","nodeType":"YulLiteral","src":"11435:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"11412:6:101","nodeType":"YulIdentifier","src":"11412:6:101"},"nativeSrc":"11412:58:101","nodeType":"YulFunctionCall","src":"11412:58:101"},"nativeSrc":"11412:58:101","nodeType":"YulExpressionStatement","src":"11412:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11491:6:101","nodeType":"YulIdentifier","src":"11491:6:101"},{"kind":"number","nativeSrc":"11499:2:101","nodeType":"YulLiteral","src":"11499:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11487:3:101","nodeType":"YulIdentifier","src":"11487:3:101"},"nativeSrc":"11487:15:101","nodeType":"YulFunctionCall","src":"11487:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"11504:8:101","nodeType":"YulLiteral","src":"11504:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"11480:6:101","nodeType":"YulIdentifier","src":"11480:6:101"},"nativeSrc":"11480:33:101","nodeType":"YulFunctionCall","src":"11480:33:101"},"nativeSrc":"11480:33:101","nodeType":"YulExpressionStatement","src":"11480:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"11295:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11393:6:101","nodeType":"YulTypedName","src":"11393:6:101","type":""}],"src":"11295:225:101"},{"body":{"nativeSrc":"11672:220:101","nodeType":"YulBlock","src":"11672:220:101","statements":[{"nativeSrc":"11682:74:101","nodeType":"YulAssignment","src":"11682:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11748:3:101","nodeType":"YulIdentifier","src":"11748:3:101"},{"kind":"number","nativeSrc":"11753:2:101","nodeType":"YulLiteral","src":"11753:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11689:58:101","nodeType":"YulIdentifier","src":"11689:58:101"},"nativeSrc":"11689:67:101","nodeType":"YulFunctionCall","src":"11689:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11682:3:101","nodeType":"YulIdentifier","src":"11682:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11854:3:101","nodeType":"YulIdentifier","src":"11854:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"11765:88:101","nodeType":"YulIdentifier","src":"11765:88:101"},"nativeSrc":"11765:93:101","nodeType":"YulFunctionCall","src":"11765:93:101"},"nativeSrc":"11765:93:101","nodeType":"YulExpressionStatement","src":"11765:93:101"},{"nativeSrc":"11867:19:101","nodeType":"YulAssignment","src":"11867:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11878:3:101","nodeType":"YulIdentifier","src":"11878:3:101"},{"kind":"number","nativeSrc":"11883:2:101","nodeType":"YulLiteral","src":"11883:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11874:3:101","nodeType":"YulIdentifier","src":"11874:3:101"},"nativeSrc":"11874:12:101","nodeType":"YulFunctionCall","src":"11874:12:101"},"variableNames":[{"name":"end","nativeSrc":"11867:3:101","nodeType":"YulIdentifier","src":"11867:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"11526:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11660:3:101","nodeType":"YulTypedName","src":"11660:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11668:3:101","nodeType":"YulTypedName","src":"11668:3:101","type":""}],"src":"11526:366:101"},{"body":{"nativeSrc":"12069:248:101","nodeType":"YulBlock","src":"12069:248:101","statements":[{"nativeSrc":"12079:26:101","nodeType":"YulAssignment","src":"12079:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12091:9:101","nodeType":"YulIdentifier","src":"12091:9:101"},{"kind":"number","nativeSrc":"12102:2:101","nodeType":"YulLiteral","src":"12102:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12087:3:101","nodeType":"YulIdentifier","src":"12087:3:101"},"nativeSrc":"12087:18:101","nodeType":"YulFunctionCall","src":"12087:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12079:4:101","nodeType":"YulIdentifier","src":"12079:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12126:9:101","nodeType":"YulIdentifier","src":"12126:9:101"},{"kind":"number","nativeSrc":"12137:1:101","nodeType":"YulLiteral","src":"12137:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12122:3:101","nodeType":"YulIdentifier","src":"12122:3:101"},"nativeSrc":"12122:17:101","nodeType":"YulFunctionCall","src":"12122:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12145:4:101","nodeType":"YulIdentifier","src":"12145:4:101"},{"name":"headStart","nativeSrc":"12151:9:101","nodeType":"YulIdentifier","src":"12151:9:101"}],"functionName":{"name":"sub","nativeSrc":"12141:3:101","nodeType":"YulIdentifier","src":"12141:3:101"},"nativeSrc":"12141:20:101","nodeType":"YulFunctionCall","src":"12141:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12115:6:101","nodeType":"YulIdentifier","src":"12115:6:101"},"nativeSrc":"12115:47:101","nodeType":"YulFunctionCall","src":"12115:47:101"},"nativeSrc":"12115:47:101","nodeType":"YulExpressionStatement","src":"12115:47:101"},{"nativeSrc":"12171:139:101","nodeType":"YulAssignment","src":"12171:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12305:4:101","nodeType":"YulIdentifier","src":"12305:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"12179:124:101","nodeType":"YulIdentifier","src":"12179:124:101"},"nativeSrc":"12179:131:101","nodeType":"YulFunctionCall","src":"12179:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12171:4:101","nodeType":"YulIdentifier","src":"12171:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11898:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12049:9:101","nodeType":"YulTypedName","src":"12049:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12064:4:101","nodeType":"YulTypedName","src":"12064:4:101","type":""}],"src":"11898:419:101"},{"body":{"nativeSrc":"12429:117:101","nodeType":"YulBlock","src":"12429:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12451:6:101","nodeType":"YulIdentifier","src":"12451:6:101"},{"kind":"number","nativeSrc":"12459:1:101","nodeType":"YulLiteral","src":"12459:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12447:3:101","nodeType":"YulIdentifier","src":"12447:3:101"},"nativeSrc":"12447:14:101","nodeType":"YulFunctionCall","src":"12447:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"12463:34:101","nodeType":"YulLiteral","src":"12463:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"12440:6:101","nodeType":"YulIdentifier","src":"12440:6:101"},"nativeSrc":"12440:58:101","nodeType":"YulFunctionCall","src":"12440:58:101"},"nativeSrc":"12440:58:101","nodeType":"YulExpressionStatement","src":"12440:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12519:6:101","nodeType":"YulIdentifier","src":"12519:6:101"},{"kind":"number","nativeSrc":"12527:2:101","nodeType":"YulLiteral","src":"12527:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12515:3:101","nodeType":"YulIdentifier","src":"12515:3:101"},"nativeSrc":"12515:15:101","nodeType":"YulFunctionCall","src":"12515:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"12532:6:101","nodeType":"YulLiteral","src":"12532:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"12508:6:101","nodeType":"YulIdentifier","src":"12508:6:101"},"nativeSrc":"12508:31:101","nodeType":"YulFunctionCall","src":"12508:31:101"},"nativeSrc":"12508:31:101","nodeType":"YulExpressionStatement","src":"12508:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"12323:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12421:6:101","nodeType":"YulTypedName","src":"12421:6:101","type":""}],"src":"12323:223:101"},{"body":{"nativeSrc":"12698:220:101","nodeType":"YulBlock","src":"12698:220:101","statements":[{"nativeSrc":"12708:74:101","nodeType":"YulAssignment","src":"12708:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12774:3:101","nodeType":"YulIdentifier","src":"12774:3:101"},{"kind":"number","nativeSrc":"12779:2:101","nodeType":"YulLiteral","src":"12779:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12715:58:101","nodeType":"YulIdentifier","src":"12715:58:101"},"nativeSrc":"12715:67:101","nodeType":"YulFunctionCall","src":"12715:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12708:3:101","nodeType":"YulIdentifier","src":"12708:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12880:3:101","nodeType":"YulIdentifier","src":"12880:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"12791:88:101","nodeType":"YulIdentifier","src":"12791:88:101"},"nativeSrc":"12791:93:101","nodeType":"YulFunctionCall","src":"12791:93:101"},"nativeSrc":"12791:93:101","nodeType":"YulExpressionStatement","src":"12791:93:101"},{"nativeSrc":"12893:19:101","nodeType":"YulAssignment","src":"12893:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12904:3:101","nodeType":"YulIdentifier","src":"12904:3:101"},{"kind":"number","nativeSrc":"12909:2:101","nodeType":"YulLiteral","src":"12909:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12900:3:101","nodeType":"YulIdentifier","src":"12900:3:101"},"nativeSrc":"12900:12:101","nodeType":"YulFunctionCall","src":"12900:12:101"},"variableNames":[{"name":"end","nativeSrc":"12893:3:101","nodeType":"YulIdentifier","src":"12893:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"12552:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12686:3:101","nodeType":"YulTypedName","src":"12686:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12694:3:101","nodeType":"YulTypedName","src":"12694:3:101","type":""}],"src":"12552:366:101"},{"body":{"nativeSrc":"13095:248:101","nodeType":"YulBlock","src":"13095:248:101","statements":[{"nativeSrc":"13105:26:101","nodeType":"YulAssignment","src":"13105:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13117:9:101","nodeType":"YulIdentifier","src":"13117:9:101"},{"kind":"number","nativeSrc":"13128:2:101","nodeType":"YulLiteral","src":"13128:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13113:3:101","nodeType":"YulIdentifier","src":"13113:3:101"},"nativeSrc":"13113:18:101","nodeType":"YulFunctionCall","src":"13113:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13105:4:101","nodeType":"YulIdentifier","src":"13105:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13152:9:101","nodeType":"YulIdentifier","src":"13152:9:101"},{"kind":"number","nativeSrc":"13163:1:101","nodeType":"YulLiteral","src":"13163:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13148:3:101","nodeType":"YulIdentifier","src":"13148:3:101"},"nativeSrc":"13148:17:101","nodeType":"YulFunctionCall","src":"13148:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13171:4:101","nodeType":"YulIdentifier","src":"13171:4:101"},{"name":"headStart","nativeSrc":"13177:9:101","nodeType":"YulIdentifier","src":"13177:9:101"}],"functionName":{"name":"sub","nativeSrc":"13167:3:101","nodeType":"YulIdentifier","src":"13167:3:101"},"nativeSrc":"13167:20:101","nodeType":"YulFunctionCall","src":"13167:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13141:6:101","nodeType":"YulIdentifier","src":"13141:6:101"},"nativeSrc":"13141:47:101","nodeType":"YulFunctionCall","src":"13141:47:101"},"nativeSrc":"13141:47:101","nodeType":"YulExpressionStatement","src":"13141:47:101"},{"nativeSrc":"13197:139:101","nodeType":"YulAssignment","src":"13197:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13331:4:101","nodeType":"YulIdentifier","src":"13331:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"13205:124:101","nodeType":"YulIdentifier","src":"13205:124:101"},"nativeSrc":"13205:131:101","nodeType":"YulFunctionCall","src":"13205:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13197:4:101","nodeType":"YulIdentifier","src":"13197:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12924:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13075:9:101","nodeType":"YulTypedName","src":"13075:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13090:4:101","nodeType":"YulTypedName","src":"13090:4:101","type":""}],"src":"12924:419:101"},{"body":{"nativeSrc":"13455:115:101","nodeType":"YulBlock","src":"13455:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13477:6:101","nodeType":"YulIdentifier","src":"13477:6:101"},{"kind":"number","nativeSrc":"13485:1:101","nodeType":"YulLiteral","src":"13485:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13473:3:101","nodeType":"YulIdentifier","src":"13473:3:101"},"nativeSrc":"13473:14:101","nodeType":"YulFunctionCall","src":"13473:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"13489:34:101","nodeType":"YulLiteral","src":"13489:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"13466:6:101","nodeType":"YulIdentifier","src":"13466:6:101"},"nativeSrc":"13466:58:101","nodeType":"YulFunctionCall","src":"13466:58:101"},"nativeSrc":"13466:58:101","nodeType":"YulExpressionStatement","src":"13466:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13545:6:101","nodeType":"YulIdentifier","src":"13545:6:101"},{"kind":"number","nativeSrc":"13553:2:101","nodeType":"YulLiteral","src":"13553:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13541:3:101","nodeType":"YulIdentifier","src":"13541:3:101"},"nativeSrc":"13541:15:101","nodeType":"YulFunctionCall","src":"13541:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"13558:4:101","nodeType":"YulLiteral","src":"13558:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"13534:6:101","nodeType":"YulIdentifier","src":"13534:6:101"},"nativeSrc":"13534:29:101","nodeType":"YulFunctionCall","src":"13534:29:101"},"nativeSrc":"13534:29:101","nodeType":"YulExpressionStatement","src":"13534:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"13349:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13447:6:101","nodeType":"YulTypedName","src":"13447:6:101","type":""}],"src":"13349:221:101"},{"body":{"nativeSrc":"13722:220:101","nodeType":"YulBlock","src":"13722:220:101","statements":[{"nativeSrc":"13732:74:101","nodeType":"YulAssignment","src":"13732:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13798:3:101","nodeType":"YulIdentifier","src":"13798:3:101"},{"kind":"number","nativeSrc":"13803:2:101","nodeType":"YulLiteral","src":"13803:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13739:58:101","nodeType":"YulIdentifier","src":"13739:58:101"},"nativeSrc":"13739:67:101","nodeType":"YulFunctionCall","src":"13739:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13732:3:101","nodeType":"YulIdentifier","src":"13732:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13904:3:101","nodeType":"YulIdentifier","src":"13904:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"13815:88:101","nodeType":"YulIdentifier","src":"13815:88:101"},"nativeSrc":"13815:93:101","nodeType":"YulFunctionCall","src":"13815:93:101"},"nativeSrc":"13815:93:101","nodeType":"YulExpressionStatement","src":"13815:93:101"},{"nativeSrc":"13917:19:101","nodeType":"YulAssignment","src":"13917:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13928:3:101","nodeType":"YulIdentifier","src":"13928:3:101"},{"kind":"number","nativeSrc":"13933:2:101","nodeType":"YulLiteral","src":"13933:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13924:3:101","nodeType":"YulIdentifier","src":"13924:3:101"},"nativeSrc":"13924:12:101","nodeType":"YulFunctionCall","src":"13924:12:101"},"variableNames":[{"name":"end","nativeSrc":"13917:3:101","nodeType":"YulIdentifier","src":"13917:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"13576:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13710:3:101","nodeType":"YulTypedName","src":"13710:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13718:3:101","nodeType":"YulTypedName","src":"13718:3:101","type":""}],"src":"13576:366:101"},{"body":{"nativeSrc":"14119:248:101","nodeType":"YulBlock","src":"14119:248:101","statements":[{"nativeSrc":"14129:26:101","nodeType":"YulAssignment","src":"14129:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14141:9:101","nodeType":"YulIdentifier","src":"14141:9:101"},{"kind":"number","nativeSrc":"14152:2:101","nodeType":"YulLiteral","src":"14152:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14137:3:101","nodeType":"YulIdentifier","src":"14137:3:101"},"nativeSrc":"14137:18:101","nodeType":"YulFunctionCall","src":"14137:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14129:4:101","nodeType":"YulIdentifier","src":"14129:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14176:9:101","nodeType":"YulIdentifier","src":"14176:9:101"},{"kind":"number","nativeSrc":"14187:1:101","nodeType":"YulLiteral","src":"14187:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14172:3:101","nodeType":"YulIdentifier","src":"14172:3:101"},"nativeSrc":"14172:17:101","nodeType":"YulFunctionCall","src":"14172:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14195:4:101","nodeType":"YulIdentifier","src":"14195:4:101"},{"name":"headStart","nativeSrc":"14201:9:101","nodeType":"YulIdentifier","src":"14201:9:101"}],"functionName":{"name":"sub","nativeSrc":"14191:3:101","nodeType":"YulIdentifier","src":"14191:3:101"},"nativeSrc":"14191:20:101","nodeType":"YulFunctionCall","src":"14191:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14165:6:101","nodeType":"YulIdentifier","src":"14165:6:101"},"nativeSrc":"14165:47:101","nodeType":"YulFunctionCall","src":"14165:47:101"},"nativeSrc":"14165:47:101","nodeType":"YulExpressionStatement","src":"14165:47:101"},{"nativeSrc":"14221:139:101","nodeType":"YulAssignment","src":"14221:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14355:4:101","nodeType":"YulIdentifier","src":"14355:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"14229:124:101","nodeType":"YulIdentifier","src":"14229:124:101"},"nativeSrc":"14229:131:101","nodeType":"YulFunctionCall","src":"14229:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14221:4:101","nodeType":"YulIdentifier","src":"14221:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13948:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14099:9:101","nodeType":"YulTypedName","src":"14099:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14114:4:101","nodeType":"YulTypedName","src":"14114:4:101","type":""}],"src":"13948:419:101"},{"body":{"nativeSrc":"14479:73:101","nodeType":"YulBlock","src":"14479:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14501:6:101","nodeType":"YulIdentifier","src":"14501:6:101"},{"kind":"number","nativeSrc":"14509:1:101","nodeType":"YulLiteral","src":"14509:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14497:3:101","nodeType":"YulIdentifier","src":"14497:3:101"},"nativeSrc":"14497:14:101","nodeType":"YulFunctionCall","src":"14497:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"14513:31:101","nodeType":"YulLiteral","src":"14513:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"14490:6:101","nodeType":"YulIdentifier","src":"14490:6:101"},"nativeSrc":"14490:55:101","nodeType":"YulFunctionCall","src":"14490:55:101"},"nativeSrc":"14490:55:101","nodeType":"YulExpressionStatement","src":"14490:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"14373:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14471:6:101","nodeType":"YulTypedName","src":"14471:6:101","type":""}],"src":"14373:179:101"},{"body":{"nativeSrc":"14704:220:101","nodeType":"YulBlock","src":"14704:220:101","statements":[{"nativeSrc":"14714:74:101","nodeType":"YulAssignment","src":"14714:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14780:3:101","nodeType":"YulIdentifier","src":"14780:3:101"},{"kind":"number","nativeSrc":"14785:2:101","nodeType":"YulLiteral","src":"14785:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14721:58:101","nodeType":"YulIdentifier","src":"14721:58:101"},"nativeSrc":"14721:67:101","nodeType":"YulFunctionCall","src":"14721:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14714:3:101","nodeType":"YulIdentifier","src":"14714:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14886:3:101","nodeType":"YulIdentifier","src":"14886:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"14797:88:101","nodeType":"YulIdentifier","src":"14797:88:101"},"nativeSrc":"14797:93:101","nodeType":"YulFunctionCall","src":"14797:93:101"},"nativeSrc":"14797:93:101","nodeType":"YulExpressionStatement","src":"14797:93:101"},{"nativeSrc":"14899:19:101","nodeType":"YulAssignment","src":"14899:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14910:3:101","nodeType":"YulIdentifier","src":"14910:3:101"},{"kind":"number","nativeSrc":"14915:2:101","nodeType":"YulLiteral","src":"14915:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14906:3:101","nodeType":"YulIdentifier","src":"14906:3:101"},"nativeSrc":"14906:12:101","nodeType":"YulFunctionCall","src":"14906:12:101"},"variableNames":[{"name":"end","nativeSrc":"14899:3:101","nodeType":"YulIdentifier","src":"14899:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"14558:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14692:3:101","nodeType":"YulTypedName","src":"14692:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14700:3:101","nodeType":"YulTypedName","src":"14700:3:101","type":""}],"src":"14558:366:101"},{"body":{"nativeSrc":"15101:248:101","nodeType":"YulBlock","src":"15101:248:101","statements":[{"nativeSrc":"15111:26:101","nodeType":"YulAssignment","src":"15111:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15123:9:101","nodeType":"YulIdentifier","src":"15123:9:101"},{"kind":"number","nativeSrc":"15134:2:101","nodeType":"YulLiteral","src":"15134:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15119:3:101","nodeType":"YulIdentifier","src":"15119:3:101"},"nativeSrc":"15119:18:101","nodeType":"YulFunctionCall","src":"15119:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15111:4:101","nodeType":"YulIdentifier","src":"15111:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15158:9:101","nodeType":"YulIdentifier","src":"15158:9:101"},{"kind":"number","nativeSrc":"15169:1:101","nodeType":"YulLiteral","src":"15169:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15154:3:101","nodeType":"YulIdentifier","src":"15154:3:101"},"nativeSrc":"15154:17:101","nodeType":"YulFunctionCall","src":"15154:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15177:4:101","nodeType":"YulIdentifier","src":"15177:4:101"},{"name":"headStart","nativeSrc":"15183:9:101","nodeType":"YulIdentifier","src":"15183:9:101"}],"functionName":{"name":"sub","nativeSrc":"15173:3:101","nodeType":"YulIdentifier","src":"15173:3:101"},"nativeSrc":"15173:20:101","nodeType":"YulFunctionCall","src":"15173:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15147:6:101","nodeType":"YulIdentifier","src":"15147:6:101"},"nativeSrc":"15147:47:101","nodeType":"YulFunctionCall","src":"15147:47:101"},"nativeSrc":"15147:47:101","nodeType":"YulExpressionStatement","src":"15147:47:101"},{"nativeSrc":"15203:139:101","nodeType":"YulAssignment","src":"15203:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15337:4:101","nodeType":"YulIdentifier","src":"15337:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"15211:124:101","nodeType":"YulIdentifier","src":"15211:124:101"},"nativeSrc":"15211:131:101","nodeType":"YulFunctionCall","src":"15211:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15203:4:101","nodeType":"YulIdentifier","src":"15203:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14930:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15081:9:101","nodeType":"YulTypedName","src":"15081:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15096:4:101","nodeType":"YulTypedName","src":"15096:4:101","type":""}],"src":"14930:419:101"},{"body":{"nativeSrc":"15461:118:101","nodeType":"YulBlock","src":"15461:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15483:6:101","nodeType":"YulIdentifier","src":"15483:6:101"},{"kind":"number","nativeSrc":"15491:1:101","nodeType":"YulLiteral","src":"15491:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15479:3:101","nodeType":"YulIdentifier","src":"15479:3:101"},"nativeSrc":"15479:14:101","nodeType":"YulFunctionCall","src":"15479:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"15495:34:101","nodeType":"YulLiteral","src":"15495:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"15472:6:101","nodeType":"YulIdentifier","src":"15472:6:101"},"nativeSrc":"15472:58:101","nodeType":"YulFunctionCall","src":"15472:58:101"},"nativeSrc":"15472:58:101","nodeType":"YulExpressionStatement","src":"15472:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15551:6:101","nodeType":"YulIdentifier","src":"15551:6:101"},{"kind":"number","nativeSrc":"15559:2:101","nodeType":"YulLiteral","src":"15559:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15547:3:101","nodeType":"YulIdentifier","src":"15547:3:101"},"nativeSrc":"15547:15:101","nodeType":"YulFunctionCall","src":"15547:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"15564:7:101","nodeType":"YulLiteral","src":"15564:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"15540:6:101","nodeType":"YulIdentifier","src":"15540:6:101"},"nativeSrc":"15540:32:101","nodeType":"YulFunctionCall","src":"15540:32:101"},"nativeSrc":"15540:32:101","nodeType":"YulExpressionStatement","src":"15540:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"15355:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15453:6:101","nodeType":"YulTypedName","src":"15453:6:101","type":""}],"src":"15355:224:101"},{"body":{"nativeSrc":"15731:220:101","nodeType":"YulBlock","src":"15731:220:101","statements":[{"nativeSrc":"15741:74:101","nodeType":"YulAssignment","src":"15741:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15807:3:101","nodeType":"YulIdentifier","src":"15807:3:101"},{"kind":"number","nativeSrc":"15812:2:101","nodeType":"YulLiteral","src":"15812:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15748:58:101","nodeType":"YulIdentifier","src":"15748:58:101"},"nativeSrc":"15748:67:101","nodeType":"YulFunctionCall","src":"15748:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15741:3:101","nodeType":"YulIdentifier","src":"15741:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15913:3:101","nodeType":"YulIdentifier","src":"15913:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"15824:88:101","nodeType":"YulIdentifier","src":"15824:88:101"},"nativeSrc":"15824:93:101","nodeType":"YulFunctionCall","src":"15824:93:101"},"nativeSrc":"15824:93:101","nodeType":"YulExpressionStatement","src":"15824:93:101"},{"nativeSrc":"15926:19:101","nodeType":"YulAssignment","src":"15926:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15937:3:101","nodeType":"YulIdentifier","src":"15937:3:101"},{"kind":"number","nativeSrc":"15942:2:101","nodeType":"YulLiteral","src":"15942:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15933:3:101","nodeType":"YulIdentifier","src":"15933:3:101"},"nativeSrc":"15933:12:101","nodeType":"YulFunctionCall","src":"15933:12:101"},"variableNames":[{"name":"end","nativeSrc":"15926:3:101","nodeType":"YulIdentifier","src":"15926:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"15585:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15719:3:101","nodeType":"YulTypedName","src":"15719:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15727:3:101","nodeType":"YulTypedName","src":"15727:3:101","type":""}],"src":"15585:366:101"},{"body":{"nativeSrc":"16128:248:101","nodeType":"YulBlock","src":"16128:248:101","statements":[{"nativeSrc":"16138:26:101","nodeType":"YulAssignment","src":"16138:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16150:9:101","nodeType":"YulIdentifier","src":"16150:9:101"},{"kind":"number","nativeSrc":"16161:2:101","nodeType":"YulLiteral","src":"16161:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16146:3:101","nodeType":"YulIdentifier","src":"16146:3:101"},"nativeSrc":"16146:18:101","nodeType":"YulFunctionCall","src":"16146:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16138:4:101","nodeType":"YulIdentifier","src":"16138:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16185:9:101","nodeType":"YulIdentifier","src":"16185:9:101"},{"kind":"number","nativeSrc":"16196:1:101","nodeType":"YulLiteral","src":"16196:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16181:3:101","nodeType":"YulIdentifier","src":"16181:3:101"},"nativeSrc":"16181:17:101","nodeType":"YulFunctionCall","src":"16181:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16204:4:101","nodeType":"YulIdentifier","src":"16204:4:101"},{"name":"headStart","nativeSrc":"16210:9:101","nodeType":"YulIdentifier","src":"16210:9:101"}],"functionName":{"name":"sub","nativeSrc":"16200:3:101","nodeType":"YulIdentifier","src":"16200:3:101"},"nativeSrc":"16200:20:101","nodeType":"YulFunctionCall","src":"16200:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16174:6:101","nodeType":"YulIdentifier","src":"16174:6:101"},"nativeSrc":"16174:47:101","nodeType":"YulFunctionCall","src":"16174:47:101"},"nativeSrc":"16174:47:101","nodeType":"YulExpressionStatement","src":"16174:47:101"},{"nativeSrc":"16230:139:101","nodeType":"YulAssignment","src":"16230:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16364:4:101","nodeType":"YulIdentifier","src":"16364:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"16238:124:101","nodeType":"YulIdentifier","src":"16238:124:101"},"nativeSrc":"16238:131:101","nodeType":"YulFunctionCall","src":"16238:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16230:4:101","nodeType":"YulIdentifier","src":"16230:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15957:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16108:9:101","nodeType":"YulTypedName","src":"16108:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16123:4:101","nodeType":"YulTypedName","src":"16123:4:101","type":""}],"src":"15957:419:101"},{"body":{"nativeSrc":"16488:116:101","nodeType":"YulBlock","src":"16488:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16510:6:101","nodeType":"YulIdentifier","src":"16510:6:101"},{"kind":"number","nativeSrc":"16518:1:101","nodeType":"YulLiteral","src":"16518:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16506:3:101","nodeType":"YulIdentifier","src":"16506:3:101"},"nativeSrc":"16506:14:101","nodeType":"YulFunctionCall","src":"16506:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"16522:34:101","nodeType":"YulLiteral","src":"16522:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"16499:6:101","nodeType":"YulIdentifier","src":"16499:6:101"},"nativeSrc":"16499:58:101","nodeType":"YulFunctionCall","src":"16499:58:101"},"nativeSrc":"16499:58:101","nodeType":"YulExpressionStatement","src":"16499:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16578:6:101","nodeType":"YulIdentifier","src":"16578:6:101"},{"kind":"number","nativeSrc":"16586:2:101","nodeType":"YulLiteral","src":"16586:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16574:3:101","nodeType":"YulIdentifier","src":"16574:3:101"},"nativeSrc":"16574:15:101","nodeType":"YulFunctionCall","src":"16574:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"16591:5:101","nodeType":"YulLiteral","src":"16591:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"16567:6:101","nodeType":"YulIdentifier","src":"16567:6:101"},"nativeSrc":"16567:30:101","nodeType":"YulFunctionCall","src":"16567:30:101"},"nativeSrc":"16567:30:101","nodeType":"YulExpressionStatement","src":"16567:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"16382:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16480:6:101","nodeType":"YulTypedName","src":"16480:6:101","type":""}],"src":"16382:222:101"},{"body":{"nativeSrc":"16756:220:101","nodeType":"YulBlock","src":"16756:220:101","statements":[{"nativeSrc":"16766:74:101","nodeType":"YulAssignment","src":"16766:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"16832:3:101","nodeType":"YulIdentifier","src":"16832:3:101"},{"kind":"number","nativeSrc":"16837:2:101","nodeType":"YulLiteral","src":"16837:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16773:58:101","nodeType":"YulIdentifier","src":"16773:58:101"},"nativeSrc":"16773:67:101","nodeType":"YulFunctionCall","src":"16773:67:101"},"variableNames":[{"name":"pos","nativeSrc":"16766:3:101","nodeType":"YulIdentifier","src":"16766:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16938:3:101","nodeType":"YulIdentifier","src":"16938:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"16849:88:101","nodeType":"YulIdentifier","src":"16849:88:101"},"nativeSrc":"16849:93:101","nodeType":"YulFunctionCall","src":"16849:93:101"},"nativeSrc":"16849:93:101","nodeType":"YulExpressionStatement","src":"16849:93:101"},{"nativeSrc":"16951:19:101","nodeType":"YulAssignment","src":"16951:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"16962:3:101","nodeType":"YulIdentifier","src":"16962:3:101"},{"kind":"number","nativeSrc":"16967:2:101","nodeType":"YulLiteral","src":"16967:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16958:3:101","nodeType":"YulIdentifier","src":"16958:3:101"},"nativeSrc":"16958:12:101","nodeType":"YulFunctionCall","src":"16958:12:101"},"variableNames":[{"name":"end","nativeSrc":"16951:3:101","nodeType":"YulIdentifier","src":"16951:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"16610:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16744:3:101","nodeType":"YulTypedName","src":"16744:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16752:3:101","nodeType":"YulTypedName","src":"16752:3:101","type":""}],"src":"16610:366:101"},{"body":{"nativeSrc":"17153:248:101","nodeType":"YulBlock","src":"17153:248:101","statements":[{"nativeSrc":"17163:26:101","nodeType":"YulAssignment","src":"17163:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17175:9:101","nodeType":"YulIdentifier","src":"17175:9:101"},{"kind":"number","nativeSrc":"17186:2:101","nodeType":"YulLiteral","src":"17186:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17171:3:101","nodeType":"YulIdentifier","src":"17171:3:101"},"nativeSrc":"17171:18:101","nodeType":"YulFunctionCall","src":"17171:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17163:4:101","nodeType":"YulIdentifier","src":"17163:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17210:9:101","nodeType":"YulIdentifier","src":"17210:9:101"},{"kind":"number","nativeSrc":"17221:1:101","nodeType":"YulLiteral","src":"17221:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17206:3:101","nodeType":"YulIdentifier","src":"17206:3:101"},"nativeSrc":"17206:17:101","nodeType":"YulFunctionCall","src":"17206:17:101"},{"arguments":[{"name":"tail","nativeSrc":"17229:4:101","nodeType":"YulIdentifier","src":"17229:4:101"},{"name":"headStart","nativeSrc":"17235:9:101","nodeType":"YulIdentifier","src":"17235:9:101"}],"functionName":{"name":"sub","nativeSrc":"17225:3:101","nodeType":"YulIdentifier","src":"17225:3:101"},"nativeSrc":"17225:20:101","nodeType":"YulFunctionCall","src":"17225:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17199:6:101","nodeType":"YulIdentifier","src":"17199:6:101"},"nativeSrc":"17199:47:101","nodeType":"YulFunctionCall","src":"17199:47:101"},"nativeSrc":"17199:47:101","nodeType":"YulExpressionStatement","src":"17199:47:101"},{"nativeSrc":"17255:139:101","nodeType":"YulAssignment","src":"17255:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"17389:4:101","nodeType":"YulIdentifier","src":"17389:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"17263:124:101","nodeType":"YulIdentifier","src":"17263:124:101"},"nativeSrc":"17263:131:101","nodeType":"YulFunctionCall","src":"17263:131:101"},"variableNames":[{"name":"tail","nativeSrc":"17255:4:101","nodeType":"YulIdentifier","src":"17255:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16982:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17133:9:101","nodeType":"YulTypedName","src":"17133:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17148:4:101","nodeType":"YulTypedName","src":"17148:4:101","type":""}],"src":"16982:419:101"},{"body":{"nativeSrc":"17513:119:101","nodeType":"YulBlock","src":"17513:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"17535:6:101","nodeType":"YulIdentifier","src":"17535:6:101"},{"kind":"number","nativeSrc":"17543:1:101","nodeType":"YulLiteral","src":"17543:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17531:3:101","nodeType":"YulIdentifier","src":"17531:3:101"},"nativeSrc":"17531:14:101","nodeType":"YulFunctionCall","src":"17531:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"17547:34:101","nodeType":"YulLiteral","src":"17547:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"17524:6:101","nodeType":"YulIdentifier","src":"17524:6:101"},"nativeSrc":"17524:58:101","nodeType":"YulFunctionCall","src":"17524:58:101"},"nativeSrc":"17524:58:101","nodeType":"YulExpressionStatement","src":"17524:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"17603:6:101","nodeType":"YulIdentifier","src":"17603:6:101"},{"kind":"number","nativeSrc":"17611:2:101","nodeType":"YulLiteral","src":"17611:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17599:3:101","nodeType":"YulIdentifier","src":"17599:3:101"},"nativeSrc":"17599:15:101","nodeType":"YulFunctionCall","src":"17599:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"17616:8:101","nodeType":"YulLiteral","src":"17616:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"17592:6:101","nodeType":"YulIdentifier","src":"17592:6:101"},"nativeSrc":"17592:33:101","nodeType":"YulFunctionCall","src":"17592:33:101"},"nativeSrc":"17592:33:101","nodeType":"YulExpressionStatement","src":"17592:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"17407:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"17505:6:101","nodeType":"YulTypedName","src":"17505:6:101","type":""}],"src":"17407:225:101"},{"body":{"nativeSrc":"17784:220:101","nodeType":"YulBlock","src":"17784:220:101","statements":[{"nativeSrc":"17794:74:101","nodeType":"YulAssignment","src":"17794:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"17860:3:101","nodeType":"YulIdentifier","src":"17860:3:101"},{"kind":"number","nativeSrc":"17865:2:101","nodeType":"YulLiteral","src":"17865:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"17801:58:101","nodeType":"YulIdentifier","src":"17801:58:101"},"nativeSrc":"17801:67:101","nodeType":"YulFunctionCall","src":"17801:67:101"},"variableNames":[{"name":"pos","nativeSrc":"17794:3:101","nodeType":"YulIdentifier","src":"17794:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17966:3:101","nodeType":"YulIdentifier","src":"17966:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"17877:88:101","nodeType":"YulIdentifier","src":"17877:88:101"},"nativeSrc":"17877:93:101","nodeType":"YulFunctionCall","src":"17877:93:101"},"nativeSrc":"17877:93:101","nodeType":"YulExpressionStatement","src":"17877:93:101"},{"nativeSrc":"17979:19:101","nodeType":"YulAssignment","src":"17979:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"17990:3:101","nodeType":"YulIdentifier","src":"17990:3:101"},{"kind":"number","nativeSrc":"17995:2:101","nodeType":"YulLiteral","src":"17995:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17986:3:101","nodeType":"YulIdentifier","src":"17986:3:101"},"nativeSrc":"17986:12:101","nodeType":"YulFunctionCall","src":"17986:12:101"},"variableNames":[{"name":"end","nativeSrc":"17979:3:101","nodeType":"YulIdentifier","src":"17979:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"17638:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17772:3:101","nodeType":"YulTypedName","src":"17772:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17780:3:101","nodeType":"YulTypedName","src":"17780:3:101","type":""}],"src":"17638:366:101"},{"body":{"nativeSrc":"18181:248:101","nodeType":"YulBlock","src":"18181:248:101","statements":[{"nativeSrc":"18191:26:101","nodeType":"YulAssignment","src":"18191:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"18203:9:101","nodeType":"YulIdentifier","src":"18203:9:101"},{"kind":"number","nativeSrc":"18214:2:101","nodeType":"YulLiteral","src":"18214:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18199:3:101","nodeType":"YulIdentifier","src":"18199:3:101"},"nativeSrc":"18199:18:101","nodeType":"YulFunctionCall","src":"18199:18:101"},"variableNames":[{"name":"tail","nativeSrc":"18191:4:101","nodeType":"YulIdentifier","src":"18191:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18238:9:101","nodeType":"YulIdentifier","src":"18238:9:101"},{"kind":"number","nativeSrc":"18249:1:101","nodeType":"YulLiteral","src":"18249:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18234:3:101","nodeType":"YulIdentifier","src":"18234:3:101"},"nativeSrc":"18234:17:101","nodeType":"YulFunctionCall","src":"18234:17:101"},{"arguments":[{"name":"tail","nativeSrc":"18257:4:101","nodeType":"YulIdentifier","src":"18257:4:101"},{"name":"headStart","nativeSrc":"18263:9:101","nodeType":"YulIdentifier","src":"18263:9:101"}],"functionName":{"name":"sub","nativeSrc":"18253:3:101","nodeType":"YulIdentifier","src":"18253:3:101"},"nativeSrc":"18253:20:101","nodeType":"YulFunctionCall","src":"18253:20:101"}],"functionName":{"name":"mstore","nativeSrc":"18227:6:101","nodeType":"YulIdentifier","src":"18227:6:101"},"nativeSrc":"18227:47:101","nodeType":"YulFunctionCall","src":"18227:47:101"},"nativeSrc":"18227:47:101","nodeType":"YulExpressionStatement","src":"18227:47:101"},{"nativeSrc":"18283:139:101","nodeType":"YulAssignment","src":"18283:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"18417:4:101","nodeType":"YulIdentifier","src":"18417:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"18291:124:101","nodeType":"YulIdentifier","src":"18291:124:101"},"nativeSrc":"18291:131:101","nodeType":"YulFunctionCall","src":"18291:131:101"},"variableNames":[{"name":"tail","nativeSrc":"18283:4:101","nodeType":"YulIdentifier","src":"18283:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18010:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18161:9:101","nodeType":"YulTypedName","src":"18161:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18176:4:101","nodeType":"YulTypedName","src":"18176:4:101","type":""}],"src":"18010:419:101"},{"body":{"nativeSrc":"18541:76:101","nodeType":"YulBlock","src":"18541:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"18563:6:101","nodeType":"YulIdentifier","src":"18563:6:101"},{"kind":"number","nativeSrc":"18571:1:101","nodeType":"YulLiteral","src":"18571:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18559:3:101","nodeType":"YulIdentifier","src":"18559:3:101"},"nativeSrc":"18559:14:101","nodeType":"YulFunctionCall","src":"18559:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"18575:34:101","nodeType":"YulLiteral","src":"18575:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"18552:6:101","nodeType":"YulIdentifier","src":"18552:6:101"},"nativeSrc":"18552:58:101","nodeType":"YulFunctionCall","src":"18552:58:101"},"nativeSrc":"18552:58:101","nodeType":"YulExpressionStatement","src":"18552:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"18435:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18533:6:101","nodeType":"YulTypedName","src":"18533:6:101","type":""}],"src":"18435:182:101"},{"body":{"nativeSrc":"18769:220:101","nodeType":"YulBlock","src":"18769:220:101","statements":[{"nativeSrc":"18779:74:101","nodeType":"YulAssignment","src":"18779:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"18845:3:101","nodeType":"YulIdentifier","src":"18845:3:101"},{"kind":"number","nativeSrc":"18850:2:101","nodeType":"YulLiteral","src":"18850:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"18786:58:101","nodeType":"YulIdentifier","src":"18786:58:101"},"nativeSrc":"18786:67:101","nodeType":"YulFunctionCall","src":"18786:67:101"},"variableNames":[{"name":"pos","nativeSrc":"18779:3:101","nodeType":"YulIdentifier","src":"18779:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18951:3:101","nodeType":"YulIdentifier","src":"18951:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"18862:88:101","nodeType":"YulIdentifier","src":"18862:88:101"},"nativeSrc":"18862:93:101","nodeType":"YulFunctionCall","src":"18862:93:101"},"nativeSrc":"18862:93:101","nodeType":"YulExpressionStatement","src":"18862:93:101"},{"nativeSrc":"18964:19:101","nodeType":"YulAssignment","src":"18964:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"18975:3:101","nodeType":"YulIdentifier","src":"18975:3:101"},{"kind":"number","nativeSrc":"18980:2:101","nodeType":"YulLiteral","src":"18980:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18971:3:101","nodeType":"YulIdentifier","src":"18971:3:101"},"nativeSrc":"18971:12:101","nodeType":"YulFunctionCall","src":"18971:12:101"},"variableNames":[{"name":"end","nativeSrc":"18964:3:101","nodeType":"YulIdentifier","src":"18964:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"18623:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18757:3:101","nodeType":"YulTypedName","src":"18757:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18765:3:101","nodeType":"YulTypedName","src":"18765:3:101","type":""}],"src":"18623:366:101"},{"body":{"nativeSrc":"19166:248:101","nodeType":"YulBlock","src":"19166:248:101","statements":[{"nativeSrc":"19176:26:101","nodeType":"YulAssignment","src":"19176:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"19188:9:101","nodeType":"YulIdentifier","src":"19188:9:101"},{"kind":"number","nativeSrc":"19199:2:101","nodeType":"YulLiteral","src":"19199:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19184:3:101","nodeType":"YulIdentifier","src":"19184:3:101"},"nativeSrc":"19184:18:101","nodeType":"YulFunctionCall","src":"19184:18:101"},"variableNames":[{"name":"tail","nativeSrc":"19176:4:101","nodeType":"YulIdentifier","src":"19176:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19223:9:101","nodeType":"YulIdentifier","src":"19223:9:101"},{"kind":"number","nativeSrc":"19234:1:101","nodeType":"YulLiteral","src":"19234:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19219:3:101","nodeType":"YulIdentifier","src":"19219:3:101"},"nativeSrc":"19219:17:101","nodeType":"YulFunctionCall","src":"19219:17:101"},{"arguments":[{"name":"tail","nativeSrc":"19242:4:101","nodeType":"YulIdentifier","src":"19242:4:101"},{"name":"headStart","nativeSrc":"19248:9:101","nodeType":"YulIdentifier","src":"19248:9:101"}],"functionName":{"name":"sub","nativeSrc":"19238:3:101","nodeType":"YulIdentifier","src":"19238:3:101"},"nativeSrc":"19238:20:101","nodeType":"YulFunctionCall","src":"19238:20:101"}],"functionName":{"name":"mstore","nativeSrc":"19212:6:101","nodeType":"YulIdentifier","src":"19212:6:101"},"nativeSrc":"19212:47:101","nodeType":"YulFunctionCall","src":"19212:47:101"},"nativeSrc":"19212:47:101","nodeType":"YulExpressionStatement","src":"19212:47:101"},{"nativeSrc":"19268:139:101","nodeType":"YulAssignment","src":"19268:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"19402:4:101","nodeType":"YulIdentifier","src":"19402:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"19276:124:101","nodeType":"YulIdentifier","src":"19276:124:101"},"nativeSrc":"19276:131:101","nodeType":"YulFunctionCall","src":"19276:131:101"},"variableNames":[{"name":"tail","nativeSrc":"19268:4:101","nodeType":"YulIdentifier","src":"19268:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18995:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19146:9:101","nodeType":"YulTypedName","src":"19146:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19161:4:101","nodeType":"YulTypedName","src":"19161:4:101","type":""}],"src":"18995:419:101"},{"body":{"nativeSrc":"19526:75:101","nodeType":"YulBlock","src":"19526:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19548:6:101","nodeType":"YulIdentifier","src":"19548:6:101"},{"kind":"number","nativeSrc":"19556:1:101","nodeType":"YulLiteral","src":"19556:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19544:3:101","nodeType":"YulIdentifier","src":"19544:3:101"},"nativeSrc":"19544:14:101","nodeType":"YulFunctionCall","src":"19544:14:101"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"19560:33:101","nodeType":"YulLiteral","src":"19560:33:101","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"19537:6:101","nodeType":"YulIdentifier","src":"19537:6:101"},"nativeSrc":"19537:57:101","nodeType":"YulFunctionCall","src":"19537:57:101"},"nativeSrc":"19537:57:101","nodeType":"YulExpressionStatement","src":"19537:57:101"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"19420:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19518:6:101","nodeType":"YulTypedName","src":"19518:6:101","type":""}],"src":"19420:181:101"},{"body":{"nativeSrc":"19753:220:101","nodeType":"YulBlock","src":"19753:220:101","statements":[{"nativeSrc":"19763:74:101","nodeType":"YulAssignment","src":"19763:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"19829:3:101","nodeType":"YulIdentifier","src":"19829:3:101"},{"kind":"number","nativeSrc":"19834:2:101","nodeType":"YulLiteral","src":"19834:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19770:58:101","nodeType":"YulIdentifier","src":"19770:58:101"},"nativeSrc":"19770:67:101","nodeType":"YulFunctionCall","src":"19770:67:101"},"variableNames":[{"name":"pos","nativeSrc":"19763:3:101","nodeType":"YulIdentifier","src":"19763:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19935:3:101","nodeType":"YulIdentifier","src":"19935:3:101"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"19846:88:101","nodeType":"YulIdentifier","src":"19846:88:101"},"nativeSrc":"19846:93:101","nodeType":"YulFunctionCall","src":"19846:93:101"},"nativeSrc":"19846:93:101","nodeType":"YulExpressionStatement","src":"19846:93:101"},{"nativeSrc":"19948:19:101","nodeType":"YulAssignment","src":"19948:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"19959:3:101","nodeType":"YulIdentifier","src":"19959:3:101"},{"kind":"number","nativeSrc":"19964:2:101","nodeType":"YulLiteral","src":"19964:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19955:3:101","nodeType":"YulIdentifier","src":"19955:3:101"},"nativeSrc":"19955:12:101","nodeType":"YulFunctionCall","src":"19955:12:101"},"variableNames":[{"name":"end","nativeSrc":"19948:3:101","nodeType":"YulIdentifier","src":"19948:3:101"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"19607:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19741:3:101","nodeType":"YulTypedName","src":"19741:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19749:3:101","nodeType":"YulTypedName","src":"19749:3:101","type":""}],"src":"19607:366:101"},{"body":{"nativeSrc":"20150:248:101","nodeType":"YulBlock","src":"20150:248:101","statements":[{"nativeSrc":"20160:26:101","nodeType":"YulAssignment","src":"20160:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"20172:9:101","nodeType":"YulIdentifier","src":"20172:9:101"},{"kind":"number","nativeSrc":"20183:2:101","nodeType":"YulLiteral","src":"20183:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20168:3:101","nodeType":"YulIdentifier","src":"20168:3:101"},"nativeSrc":"20168:18:101","nodeType":"YulFunctionCall","src":"20168:18:101"},"variableNames":[{"name":"tail","nativeSrc":"20160:4:101","nodeType":"YulIdentifier","src":"20160:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20207:9:101","nodeType":"YulIdentifier","src":"20207:9:101"},{"kind":"number","nativeSrc":"20218:1:101","nodeType":"YulLiteral","src":"20218:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20203:3:101","nodeType":"YulIdentifier","src":"20203:3:101"},"nativeSrc":"20203:17:101","nodeType":"YulFunctionCall","src":"20203:17:101"},{"arguments":[{"name":"tail","nativeSrc":"20226:4:101","nodeType":"YulIdentifier","src":"20226:4:101"},{"name":"headStart","nativeSrc":"20232:9:101","nodeType":"YulIdentifier","src":"20232:9:101"}],"functionName":{"name":"sub","nativeSrc":"20222:3:101","nodeType":"YulIdentifier","src":"20222:3:101"},"nativeSrc":"20222:20:101","nodeType":"YulFunctionCall","src":"20222:20:101"}],"functionName":{"name":"mstore","nativeSrc":"20196:6:101","nodeType":"YulIdentifier","src":"20196:6:101"},"nativeSrc":"20196:47:101","nodeType":"YulFunctionCall","src":"20196:47:101"},"nativeSrc":"20196:47:101","nodeType":"YulExpressionStatement","src":"20196:47:101"},{"nativeSrc":"20252:139:101","nodeType":"YulAssignment","src":"20252:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"20386:4:101","nodeType":"YulIdentifier","src":"20386:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"20260:124:101","nodeType":"YulIdentifier","src":"20260:124:101"},"nativeSrc":"20260:131:101","nodeType":"YulFunctionCall","src":"20260:131:101"},"variableNames":[{"name":"tail","nativeSrc":"20252:4:101","nodeType":"YulIdentifier","src":"20252:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19979:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20130:9:101","nodeType":"YulTypedName","src":"20130:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20145:4:101","nodeType":"YulTypedName","src":"20145:4:101","type":""}],"src":"19979:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7948":[{"length":32,"start":400},{"length":32,"start":821}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063579158971161009e57806395d89b411161006e57806395d89b4114610249578063a457c2d714610251578063a9059cbb14610264578063dd62ed3e14610277578063f2fde38b1461028a575f80fd5b806357915897146101ed57806370a0823114610200578063715018a6146102285780638da5cb5b14610230575f80fd5b806323b872dd116100e457806323b872dd1461017b578063313ce5671461018e57806334fcf437146101bc57806339509351146101d15780633ba0b9a9146101e4575f80fd5b806306fdde031461011557806307a2d13a14610133578063095ea7b31461015357806318160ddd14610173575b5f80fd5b61011d61029d565b60405161012a9190610804565b60405180910390f35b61014661014136600461082c565b61032d565b60405161012a919061085a565b61016661016136600461088c565b610379565b60405161012a91906108ce565b600254610146565b6101666101893660046108dc565b610390565b7f000000000000000000000000000000000000000000000000000000000000000060405161012a9190610931565b6101cf6101ca36600461082c565b6103b5565b005b6101666101df36600461088c565b6103c2565b61014660065481565b6101cf6101fb36600461082c565b6103e3565b61014661020e36600461093f565b6001600160a01b03165f9081526020819052604090205490565b6101cf6103f0565b6005546001600160a01b031660405161012a9190610966565b61011d610403565b61016661025f36600461088c565b610412565b61016661027236600461088c565b610462565b610146610285366004610974565b61046f565b6101cf61029836600461093f565b610499565b6060600380546102ac906109b8565b80601f01602080910402602001604051908101604052809291908181526020018280546102d8906109b8565b80156103235780601f106102fa57610100808354040283529160200191610323565b820191905f5260205f20905b81548152906001019060200180831161030657829003601f168201915b5050505050905090565b5f61035c60ff7f000000000000000000000000000000000000000000000000000000000000000016600a610b04565b6006546103699084610b11565b6103739190610b44565b92915050565b5f336103868185856104d0565b5060019392505050565b5f3361039d858285610583565b6103a88585856105cb565b60019150505b9392505050565b6103bd6106b9565b600655565b5f336103868185856103d4838361046f565b6103de9190610b57565b6104d0565b6103ed33826106e3565b50565b6103f86106b9565b6104015f610777565b565b6060600480546102ac906109b8565b5f338161041f828661046f565b90508381101561044a5760405162461bcd60e51b815260040161044190610bae565b60405180910390fd5b61045782868684036104d0565b506001949350505050565b5f336103868185856105cb565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6104a16106b9565b6001600160a01b0381166104c75760405162461bcd60e51b815260040161044190610c00565b6103ed81610777565b6001600160a01b0383166104f65760405162461bcd60e51b815260040161044190610c50565b6001600160a01b03821661051c5760405162461bcd60e51b815260040161044190610c9e565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061057690859061085a565b60405180910390a3505050565b5f61058e848461046f565b90505f1981146105c557818110156105b85760405162461bcd60e51b815260040161044190610ce4565b6105c584848484036104d0565b50505050565b6001600160a01b0383166105f15760405162461bcd60e51b815260040161044190610d35565b6001600160a01b0382166106175760405162461bcd60e51b815260040161044190610d84565b6001600160a01b0383165f908152602081905260409020548181101561064f5760405162461bcd60e51b815260040161044190610dd6565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ac90869061085a565b60405180910390a36105c5565b6005546001600160a01b031633146104015760405162461bcd60e51b815260040161044190610e17565b6001600160a01b0382166107095760405162461bcd60e51b815260040161044190610e5a565b8060025f82825461071a9190610b57565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061076b90859061085a565b60405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f6107dc825190565b8084526020840193506107f38185602086016107c8565b601f01601f19169290920192915050565b602080825281016103ae81846107d3565b805b81146103ed575f80fd5b803561037381610815565b5f6020828403121561083f5761083f5f80fd5b5f61084a8484610821565b949350505050565b805b82525050565b602081016103738284610852565b5f6001600160a01b038216610373565b61081781610868565b803561037381610878565b5f80604083850312156108a0576108a05f80fd5b5f6108ab8585610881565b92505060206108bc85828601610821565b9150509250929050565b801515610854565b6020810161037382846108c6565b5f805f606084860312156108f1576108f15f80fd5b5f6108fc8686610881565b935050602061090d86828701610881565b925050604061091e86828701610821565b9150509250925092565b60ff8116610854565b602081016103738284610928565b5f60208284031215610952576109525f80fd5b5f61084a8484610881565b61085481610868565b60208101610373828461095d565b5f8060408385031215610988576109885f80fd5b5f6109938585610881565b92505060206108bc85828601610881565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806109cc57607f821691505b6020821081036109de576109de6109a4565b50919050565b634e487b7160e01b5f52601160045260245ffd5b80825b6001851115610a3757808604811115610a1657610a166109e4565b6001851615610a2457908102905b8002610a308560011c90565b94506109fb565b94509492505050565b5f82610a4e575060016103ae565b81610a5a57505f6103ae565b8160018114610a705760028114610a7a57610aa7565b60019150506103ae565b60ff841115610a8b57610a8b6109e4565b8360020a915084821115610aa157610aa16109e4565b506103ae565b5060208310610133831016604e8410600b8410161715610ada575081810a83811115610ad557610ad56109e4565b6103ae565b610ae784848460016109f8565b92509050818404811115610afd57610afd6109e4565b0292915050565b5f6103ae5f198484610a40565b818102808215838204851417610b2957610b296109e4565b5092915050565b634e487b7160e01b5f52601260045260245ffd5b5f82610b5257610b52610b30565b500490565b80820180821115610373576103736109e4565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161037381610b6a565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150610ba7565b6020808252810161037381610bbe565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610ba7565b6020808252810161037381610c10565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610ba7565b6020808252810161037381610c60565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161037381610cae565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610ba7565b6020808252810161037381610cf4565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610ba7565b6020808252810161037381610d45565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610ba7565b6020808252810161037381610d94565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610cdd565b6020808252810161037381610de6565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610cdd565b6020808252810161037381610e2756fea2646970667358221220b968a1dce2cbcb675f1526b7a462c23457bec16a93633f164c638dd0adcb69ad64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x111 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57915897 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x277 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x57915897 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x230 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xE4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x34FCF437 EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x3BA0B9A9 EQ PUSH2 0x1E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x7A2D13A EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x173 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x11D PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x804 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x146 PUSH2 0x141 CALLDATASIZE PUSH1 0x4 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x32D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH2 0x166 PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x379 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x8CE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x146 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x189 CALLDATASIZE PUSH1 0x4 PUSH2 0x8DC JUMP JUMPDEST PUSH2 0x390 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x931 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x1CA CALLDATASIZE PUSH1 0x4 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x3B5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x166 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0x146 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x1FB CALLDATASIZE PUSH1 0x4 PUSH2 0x82C JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x20E CALLDATASIZE PUSH1 0x4 PUSH2 0x93F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x3F0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST PUSH2 0x11D PUSH2 0x403 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x25F CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x272 CALLDATASIZE PUSH1 0x4 PUSH2 0x88C JUMP JUMPDEST PUSH2 0x462 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x285 CALLDATASIZE PUSH1 0x4 PUSH2 0x974 JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH2 0x1CF PUSH2 0x298 CALLDATASIZE PUSH1 0x4 PUSH2 0x93F JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0x9B8 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 0x2D8 SWAP1 PUSH2 0x9B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x323 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x323 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x306 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x35C PUSH1 0xFF PUSH32 0x0 AND PUSH1 0xA PUSH2 0xB04 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x369 SWAP1 DUP5 PUSH2 0xB11 JUMP JUMPDEST PUSH2 0x373 SWAP2 SWAP1 PUSH2 0xB44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x386 DUP2 DUP6 DUP6 PUSH2 0x4D0 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x39D DUP6 DUP3 DUP6 PUSH2 0x583 JUMP JUMPDEST PUSH2 0x3A8 DUP6 DUP6 DUP6 PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3BD PUSH2 0x6B9 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH0 CALLER PUSH2 0x386 DUP2 DUP6 DUP6 PUSH2 0x3D4 DUP4 DUP4 PUSH2 0x46F JUMP JUMPDEST PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH2 0x3ED CALLER DUP3 PUSH2 0x6E3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3F8 PUSH2 0x6B9 JUMP JUMPDEST PUSH2 0x401 PUSH0 PUSH2 0x777 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x2AC SWAP1 PUSH2 0x9B8 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x41F DUP3 DUP7 PUSH2 0x46F JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x44A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xBAE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x457 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x4D0 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x386 DUP2 DUP6 DUP6 PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4A1 PUSH2 0x6B9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xC00 JUMP JUMPDEST PUSH2 0x3ED DUP2 PUSH2 0x777 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xC50 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x51C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xC9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x576 SWAP1 DUP6 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x58E DUP5 DUP5 PUSH2 0x46F JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x5C5 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x5C5 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x4D0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xD35 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xD84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x64F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xDD6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6AC SWAP1 DUP7 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xE17 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x441 SWAP1 PUSH2 0xE5A JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x71A SWAP2 SWAP1 PUSH2 0xB57 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x76B SWAP1 DUP6 SWAP1 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7DC DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x7F3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3AE DUP2 DUP5 PUSH2 0x7D3 JUMP JUMPDEST DUP1 JUMPDEST DUP2 EQ PUSH2 0x3ED JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x373 DUP2 PUSH2 0x815 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x83F JUMPI PUSH2 0x83F PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x84A DUP5 DUP5 PUSH2 0x821 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x852 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x373 JUMP JUMPDEST PUSH2 0x817 DUP2 PUSH2 0x868 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x373 DUP2 PUSH2 0x878 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8A0 JUMPI PUSH2 0x8A0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8AB DUP6 DUP6 PUSH2 0x881 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8BC DUP6 DUP3 DUP7 ADD PUSH2 0x821 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x854 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x8C6 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8F1 JUMPI PUSH2 0x8F1 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8FC DUP7 DUP7 PUSH2 0x881 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x90D DUP7 DUP3 DUP8 ADD PUSH2 0x881 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x91E DUP7 DUP3 DUP8 ADD PUSH2 0x821 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x854 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x928 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x952 JUMPI PUSH2 0x952 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x84A DUP5 DUP5 PUSH2 0x881 JUMP JUMPDEST PUSH2 0x854 DUP2 PUSH2 0x868 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x373 DUP3 DUP5 PUSH2 0x95D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x988 JUMPI PUSH2 0x988 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x993 DUP6 DUP6 PUSH2 0x881 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8BC DUP6 DUP3 DUP7 ADD PUSH2 0x881 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x9CC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x9DE JUMPI PUSH2 0x9DE PUSH2 0x9A4 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xA37 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH2 0x9E4 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xA24 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xA30 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x9FB JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xA4E JUMPI POP PUSH1 0x1 PUSH2 0x3AE JUMP JUMPDEST DUP2 PUSH2 0xA5A JUMPI POP PUSH0 PUSH2 0x3AE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xA70 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xA7A JUMPI PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x3AE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xA8B JUMPI PUSH2 0xA8B PUSH2 0x9E4 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xAA1 JUMPI PUSH2 0xAA1 PUSH2 0x9E4 JUMP JUMPDEST POP PUSH2 0x3AE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xADA JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xAD5 JUMPI PUSH2 0xAD5 PUSH2 0x9E4 JUMP JUMPDEST PUSH2 0x3AE JUMP JUMPDEST PUSH2 0xAE7 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x9F8 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xAFD JUMPI PUSH2 0xAFD PUSH2 0x9E4 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3AE PUSH0 NOT DUP5 DUP5 PUSH2 0xA40 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xB29 JUMPI PUSH2 0xB29 PUSH2 0x9E4 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xB52 JUMPI PUSH2 0xB52 PUSH2 0xB30 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x373 JUMPI PUSH2 0x373 PUSH2 0x9E4 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xBBE JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xC10 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xCAE JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xCF4 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xD45 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xDE6 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xCDD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x373 DUP2 PUSH2 0xE27 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 PUSH9 0xA1DCE2CBCB675F1526 0xB7 LOG4 PUSH3 0xC23457 0xBE 0xC1 PUSH11 0x93633F164C638DD0ADCB69 0xAD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"306:733:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;760:158:80;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4444:197:11:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;5203:256;;;;;;:::i;:::-;;:::i;924:113:80:-;1021:9;924:113;;;;;;:::i;668:86::-;;;;;;:::i;:::-;;:::i;:::-;;5854:234:11;;;;;;:::i;:::-;;:::i;396:27:80:-;;;;;;579:83;;;;;;:::i;:::-;;:::i;3419:125:11:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;1824:101:10;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:10;1201:85;;;;;;:::i;2369:102:11:-;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2074:198:10:-;;;;;;:::i;:::-;;:::i;2158:98:11:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;760:158:80:-;833:7;886:24;892:18;900:9;892:18;886:2;:24;:::i;:::-;869:12;;860:21;;:6;:21;:::i;:::-;859:52;;;;:::i;:::-;852:59;760:158;-1:-1:-1;;760:158:80:o;4444:197:11:-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;-1:-1:-1;4630:4:11;;4444:197;-1:-1:-1;;;4444:197:11:o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;;:::o;668:86:80:-;1094:13:10;:11;:13::i;:::-;728:12:80::1;:19:::0;668:86::o;5854:234:11:-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;579:83:80:-;630:25;636:10;648:6;630:5;:25::i;:::-;579:83;:::o;1824:101:10:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2369:102:11:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;-1:-1:-1;6991:4:11;;6575:427;-1:-1:-1;;;;6575:427:11:o;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;2074:198:10:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;2237:28;2256:8;2237:18;:28::i;10457:340:11:-:0;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;1359:130:10;1273:6;;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;8520:535:11:-;-1:-1:-1;;;;;8603:21:11;;8595:65;;;;-1:-1:-1;;;8595:65:11;;;;;;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:11;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;8520:535;;:::o;2426:187:10:-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;287:139:101:-;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;1652:122::-;1743:5;1725:24;1718:5;1715:35;1705:63;;1764:1;1761;1754:12;1780:139;1851:20;;1880:33;1851:20;1880:33;:::i;1925:329::-;1984:6;2033:2;2021:9;2012:7;2008:23;2004:32;2001:119;;;2039:79;306:733:80;;;2039:79:101;2159:1;2184:53;2229:7;2209:9;2184:53;:::i;:::-;2174:63;1925:329;-1:-1:-1;;;;1925:329:101:o;2260:118::-;2365:5;2347:24;2342:3;2335:37;2260:118;;:::o;2384:222::-;2515:2;2500:18;;2528:71;2504:9;2572:6;2528:71;:::i;2744:96::-;2781:7;-1:-1:-1;;;;;2678:54:101;;2810:24;2612:126;2846:122;2919:24;2937:5;2919:24;:::i;2974:139::-;3045:20;;3074:33;3045:20;3074:33;:::i;3119:474::-;3187:6;3195;3244:2;3232:9;3223:7;3219:23;3215:32;3212:119;;;3250:79;306:733:80;;;3250:79:101;3370:1;3395:53;3440:7;3420:9;3395:53;:::i;:::-;3385:63;;3341:117;3497:2;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3468:118;3119:474;;;;;:::o;3695:109::-;3669:13;;3662:21;3776;3599:90;3810:210;3935:2;3920:18;;3948:65;3924:9;3986:6;3948:65;:::i;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;306:733:80;;;4174:79:101;4294:1;4319:53;4364:7;4344:9;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4743:112::-;4726:4;4715:16;;4826:22;4651:86;4861:214;4988:2;4973:18;;5001:67;4977:9;5041:6;5001:67;:::i;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;306:733:80;;;5195:79:101;5315:1;5340:53;5385:7;5365:9;5340:53;:::i;5416:118::-;5503:24;5521:5;5503:24;:::i;5540:222::-;5671:2;5656:18;;5684:71;5660:9;5728:6;5684:71;:::i;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;306:733:80;;;5899:79:101;6019:1;6044:53;6089:7;6069:9;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;6248:180::-;-1:-1:-1;;;6293:1:101;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:320;6515:1;6505:12;;6562:1;6552:12;;;6573:81;;6639:4;6631:6;6627:17;6617:27;;6573:81;6701:2;6693:6;6690:14;6670:18;6667:38;6664:84;;6720:18;;:::i;:::-;6485:269;6434:320;;;:::o;6760:180::-;-1:-1:-1;;;6805:1:101;6798:88;6905:4;6902:1;6895:15;6929:4;6926:1;6919:15;7054:848;7146:6;7170:5;7184:712;7205:1;7195:8;7192:15;7184:712;;;7300:4;7295:3;7291:14;7285:4;7282:24;7279:50;;;7309:18;;:::i;:::-;7359:1;7349:8;7345:16;7342:451;;;7763:16;;;;7342:451;7814:15;;7854:32;7877:8;7032:1;7028:13;;6946:102;7854:32;7842:44;;7184:712;;;7054:848;;;;;;;:::o;7908:1073::-;7962:5;8153:8;8143:40;;-1:-1:-1;8174:1:101;8176:5;;8143:40;8202:4;8192:36;;-1:-1:-1;8219:1:101;8221:5;;8192:36;8288:4;8336:1;8331:27;;;;8372:1;8367:191;;;;8281:277;;8331:27;8349:1;8340:10;;8351:5;;;8367:191;8412:3;8402:8;8399:17;8396:43;;;8419:18;;:::i;:::-;8468:8;8465:1;8461:16;8452:25;;8503:3;8496:5;8493:14;8490:40;;;8510:18;;:::i;:::-;8543:5;;;8281:277;;8667:2;8657:8;8654:16;8648:3;8642:4;8639:13;8635:36;8617:2;8607:8;8604:16;8599:2;8593:4;8590:12;8586:35;8570:111;8567:246;;;-1:-1:-1;8713:19:101;;;8748:14;;;8745:40;;;8765:18;;:::i;:::-;8798:5;;8567:246;8838:42;8876:3;8866:8;8860:4;8857:1;8838:42;:::i;:::-;8823:57;;;;8912:4;8907:3;8903:14;8896:5;8893:25;8890:51;;;8921:18;;:::i;:::-;8959:16;;7908:1073;-1:-1:-1;;7908:1073:101:o;8987:285::-;9047:5;9161:104;-1:-1:-1;;9188:8:101;9182:4;9161:104;:::i;9278:410::-;9423:9;;;;9585;;9618:15;;;9612:22;;9565:83;9542:139;;9661:18;;:::i;:::-;9326:362;9278:410;;;;:::o;9694:180::-;-1:-1:-1;;;9739:1:101;9732:88;9839:4;9836:1;9829:15;9863:4;9860:1;9853:15;9880:185;9920:1;10010;10000:35;;10015:18;;:::i;:::-;-1:-1:-1;10050:9:101;;9880:185::o;10071:191::-;10200:9;;;10222:10;;;10219:36;;;10235:18;;:::i;10498:366::-;10725:2;218:19;;10640:3;270:4;261:14;;10408:34;10385:58;;-1:-1:-1;;;10472:2:101;10460:15;;10453:32;10654:74;-1:-1:-1;10737:93:101;-1:-1:-1;10855:2:101;10846:12;;10498:366::o;10870:419::-;11074:2;11087:47;;;11059:18;;11151:131;11059:18;11151:131;:::i;11526:366::-;11753:2;218:19;;11668:3;270:4;261:14;;11435:34;11412:58;;-1:-1:-1;;;11499:2:101;11487:15;;11480:33;11682:74;-1:-1:-1;11765:93:101;11295:225;11898:419;12102:2;12115:47;;;12087:18;;12179:131;12087:18;12179:131;:::i;12552:366::-;12779:2;218:19;;12694:3;270:4;261:14;;12463:34;12440:58;;-1:-1:-1;;;12527:2:101;12515:15;;12508:31;12708:74;-1:-1:-1;12791:93:101;12323:223;12924:419;13128:2;13141:47;;;13113:18;;13205:131;13113:18;13205:131;:::i;13576:366::-;13803:2;218:19;;13718:3;270:4;261:14;;13489:34;13466:58;;-1:-1:-1;;;13553:2:101;13541:15;;13534:29;13732:74;-1:-1:-1;13815:93:101;13349:221;13948:419;14152:2;14165:47;;;14137:18;;14229:131;14137:18;14229:131;:::i;14558:366::-;14785:2;218:19;;14700:3;270:4;261:14;;14513:31;14490:55;;14714:74;-1:-1:-1;14797:93:101;-1:-1:-1;14915:2:101;14906:12;;14558:366::o;14930:419::-;15134:2;15147:47;;;15119:18;;15211:131;15119:18;15211:131;:::i;15585:366::-;15812:2;218:19;;15727:3;270:4;261:14;;15495:34;15472:58;;-1:-1:-1;;;15559:2:101;15547:15;;15540:32;15741:74;-1:-1:-1;15824:93:101;15355:224;15957:419;16161:2;16174:47;;;16146:18;;16238:131;16146:18;16238:131;:::i;16610:366::-;16837:2;218:19;;16752:3;270:4;261:14;;16522:34;16499:58;;-1:-1:-1;;;16586:2:101;16574:15;;16567:30;16766:74;-1:-1:-1;16849:93:101;16382:222;16982:419;17186:2;17199:47;;;17171:18;;17263:131;17171:18;17263:131;:::i;17638:366::-;17865:2;218:19;;17780:3;270:4;261:14;;17547:34;17524:58;;-1:-1:-1;;;17611:2:101;17599:15;;17592:33;17794:74;-1:-1:-1;17877:93:101;17407:225;18010:419;18214:2;18227:47;;;18199:18;;18291:131;18199:18;18291:131;:::i;18623:366::-;18850:2;218:19;;;18575:34;261:14;;18552:58;;;18765:3;18862:93;18435:182;18995:419;19199:2;19212:47;;;19184:18;;19276:131;19184:18;19276:131;:::i;19607:366::-;19834:2;218:19;;19749:3;270:4;261:14;;19560:33;19537:57;;19763:74;-1:-1:-1;19846:93:101;19420:181;19979:419;20183:2;20196:47;;;20168:18;;20260:131;20168:18;20260:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"748800","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","convertToAssets(uint256)":"infinite","decimals()":"infinite","decreaseAllowance(address,uint256)":"infinite","exchangeRate()":"2471","faucet(uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","owner()":"infinite","renounceOwnership()":"infinite","setRate(uint256)":"infinite","symbol()":"infinite","totalSupply()":"2447","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","exchangeRate()":"3ba0b9a9","faucet(uint256)":"57915897","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setRate(uint256)":"34fcf437","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"faucet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"name\":\"setRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"contracts/test/MockSFrax.sol\":\"MockSFrax\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/ISFrax.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ISFrax {\\n    function convertToAssets(uint256 shares) external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x478821eeeb2b7699442dc19b5029f918f650448cb0655b88348a167ea856efb8\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockSFrax.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { ERC20 } from \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\nimport { ISFrax } from \\\"../interfaces/ISFrax.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockSFrax is ERC20, Ownable, ISFrax {\\n    uint8 private immutable _decimals;\\n    uint256 public exchangeRate;\\n\\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) Ownable() {\\n        _decimals = decimals_;\\n    }\\n\\n    function faucet(uint256 amount) external {\\n        _mint(msg.sender, amount);\\n    }\\n\\n    function setRate(uint256 rate) external onlyOwner {\\n        exchangeRate = rate;\\n    }\\n\\n    function convertToAssets(uint256 shares) external view override returns (uint256) {\\n        return (shares * exchangeRate) / (10 ** uint256(_decimals));\\n    }\\n\\n    function decimals() public view virtual override(ERC20, ISFrax) returns (uint8) {\\n        return _decimals;\\n    }\\n}\\n\",\"keccak256\":\"0xd5e178328993353fecbf2dff7cb9b90fe32207d4b0bbceb9e29e75cb94acc200\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"contracts/test/MockSFrax.sol:MockSFrax","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"contracts/test/MockSFrax.sol:MockSFrax","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"contracts/test/MockSFrax.sol:MockSFrax","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"contracts/test/MockSFrax.sol:MockSFrax","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"contracts/test/MockSFrax.sol:MockSFrax","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":1101,"contract":"contracts/test/MockSFrax.sol:MockSFrax","label":"_owner","offset":0,"slot":"5","type":"t_address"},{"astId":7950,"contract":"contracts/test/MockSFrax.sol:MockSFrax","label":"exchangeRate","offset":0,"slot":"6","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockSimpleOracle.sol":{"MockBoundValidator":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"pass","type":"bool"}],"name":"setValidateResult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"twapUpdated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"reporterPrice","type":"uint256"},{"internalType":"uint256","name":"anchorPrice","type":"uint256"}],"name":"validateAssetPriceWithAnchorPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"reporterPrice","type":"uint256"},{"internalType":"uint256","name":"anchorPrice","type":"uint256"}],"name":"validatePriceWithAnchorPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"validateResults","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_8092":{"entryPoint":null,"id":8092,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b5061024c8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806328d0ef671461005957806379c5e5121461009c5780638146bf7f146100d657806397c7033e14610059578063a050bcb3146100e3575b5f80fd5b610086610067366004610149565b50506001600160a01b03165f9081526020819052604090205460ff1690565b6040516100939190610195565b60405180910390f35b6100d46100aa3660046101b6565b6001600160a01b03919091165f908152602081905260409020805460ff1916911515919091179055565b005b6001546100869060ff1681565b6100866100f13660046101f0565b5f6020819052908152604090205460ff1681565b5f6001600160a01b0382165b92915050565b61012081610105565b811461012a575f80fd5b50565b803561011181610117565b80610120565b803561011181610138565b5f805f6060848603121561015e5761015e5f80fd5b5f610169868661012d565b935050602061017a8682870161013e565b925050604061018b8682870161013e565b9150509250925092565b811515815260208101610111565b801515610120565b8035610111816101a3565b5f80604083850312156101ca576101ca5f80fd5b5f6101d5858561012d565b92505060206101e6858286016101ab565b9150509250929050565b5f60208284031215610203576102035f80fd5b5f61020e848461012d565b94935050505056fea26469706673582212202b505f4431ace8a938f0e13b9840f1e8b73449cc4e0415fb2526d54257f25f6d64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x24C DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x28D0EF67 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x79C5E512 EQ PUSH2 0x9C JUMPI DUP1 PUSH4 0x8146BF7F EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x97C7033E EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0xA050BCB3 EQ PUSH2 0xE3 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x86 PUSH2 0x67 CALLDATASIZE PUSH1 0x4 PUSH2 0x149 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x195 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH2 0xAA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x86 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x86 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F0 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x120 DUP2 PUSH2 0x105 JUMP JUMPDEST DUP2 EQ PUSH2 0x12A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x111 DUP2 PUSH2 0x117 JUMP JUMPDEST DUP1 PUSH2 0x120 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x111 DUP2 PUSH2 0x138 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15E JUMPI PUSH2 0x15E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x169 DUP7 DUP7 PUSH2 0x12D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x17A DUP7 DUP3 DUP8 ADD PUSH2 0x13E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18B DUP7 DUP3 DUP8 ADD PUSH2 0x13E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0x111 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x120 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x111 DUP2 PUSH2 0x1A3 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CA JUMPI PUSH2 0x1CA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1D5 DUP6 DUP6 PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E6 DUP6 DUP3 DUP7 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x203 JUMPI PUSH2 0x203 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x20E DUP5 DUP5 PUSH2 0x12D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B POP PUSH0 PREVRANDAO BALANCE 0xAC 0xE8 0xA9 CODESIZE CREATE 0xE1 EXTCODESIZE SWAP9 BLOCKHASH CALL 0xE8 0xB7 CALLVALUE BLOBHASH 0xCC 0x4E DIV ISZERO 0xFB 0x25 0x26 0xD5 TIMESTAMP JUMPI CALLCODE PUSH0 PUSH14 0x64736F6C63430008190033000000 ","sourceMap":"575:713:81:-:0;;;719:32;;;;;;;;;;575:713;;;;;;"},"deployedBytecode":{"functionDebugData":{"@setValidateResult_8138":{"entryPoint":null,"id":8138,"parameterSlots":2,"returnSlots":0},"@twapUpdated_8088":{"entryPoint":null,"id":8088,"parameterSlots":0,"returnSlots":0},"@validateAssetPriceWithAnchorPrice_8124":{"entryPoint":null,"id":8124,"parameterSlots":3,"returnSlots":1},"@validatePriceWithAnchorPrice_8108":{"entryPoint":null,"id":8108,"parameterSlots":3,"returnSlots":1},"@validateResults_8086":{"entryPoint":null,"id":8086,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":301,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":427,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":318,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":496,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bool":{"entryPoint":438,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":329,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":405,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":261,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":279,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":419,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":312,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3316:101","nodeType":"YulBlock","src":"0:3316:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"886:32:101","nodeType":"YulBlock","src":"886:32:101","statements":[{"nativeSrc":"896:16:101","nodeType":"YulAssignment","src":"896:16:101","value":{"name":"value","nativeSrc":"907:5:101","nodeType":"YulIdentifier","src":"907:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:101","nodeType":"YulIdentifier","src":"896:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:101","nodeType":"YulTypedName","src":"868:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:101","nodeType":"YulTypedName","src":"878:7:101","type":""}],"src":"841:77:101"},{"body":{"nativeSrc":"967:79:101","nodeType":"YulBlock","src":"967:79:101","statements":[{"body":{"nativeSrc":"1024:16:101","nodeType":"YulBlock","src":"1024:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:101","nodeType":"YulLiteral","src":"1033:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:101","nodeType":"YulLiteral","src":"1036:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:101","nodeType":"YulIdentifier","src":"1026:6:101"},"nativeSrc":"1026:12:101","nodeType":"YulFunctionCall","src":"1026:12:101"},"nativeSrc":"1026:12:101","nodeType":"YulExpressionStatement","src":"1026:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:101","nodeType":"YulIdentifier","src":"990:5:101"},{"arguments":[{"name":"value","nativeSrc":"1015:5:101","nodeType":"YulIdentifier","src":"1015:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:101","nodeType":"YulIdentifier","src":"997:17:101"},"nativeSrc":"997:24:101","nodeType":"YulFunctionCall","src":"997:24:101"}],"functionName":{"name":"eq","nativeSrc":"987:2:101","nodeType":"YulIdentifier","src":"987:2:101"},"nativeSrc":"987:35:101","nodeType":"YulFunctionCall","src":"987:35:101"}],"functionName":{"name":"iszero","nativeSrc":"980:6:101","nodeType":"YulIdentifier","src":"980:6:101"},"nativeSrc":"980:43:101","nodeType":"YulFunctionCall","src":"980:43:101"},"nativeSrc":"977:63:101","nodeType":"YulIf","src":"977:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:101","nodeType":"YulTypedName","src":"960:5:101","type":""}],"src":"924:122:101"},{"body":{"nativeSrc":"1104:87:101","nodeType":"YulBlock","src":"1104:87:101","statements":[{"nativeSrc":"1114:29:101","nodeType":"YulAssignment","src":"1114:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:101","nodeType":"YulIdentifier","src":"1123:12:101"},"nativeSrc":"1123:20:101","nodeType":"YulFunctionCall","src":"1123:20:101"},"variableNames":[{"name":"value","nativeSrc":"1114:5:101","nodeType":"YulIdentifier","src":"1114:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:101","nodeType":"YulIdentifier","src":"1179:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:101","nodeType":"YulIdentifier","src":"1152:26:101"},"nativeSrc":"1152:33:101","nodeType":"YulFunctionCall","src":"1152:33:101"},"nativeSrc":"1152:33:101","nodeType":"YulExpressionStatement","src":"1152:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:101","nodeType":"YulTypedName","src":"1082:6:101","type":""},{"name":"end","nativeSrc":"1090:3:101","nodeType":"YulTypedName","src":"1090:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:101","nodeType":"YulTypedName","src":"1098:5:101","type":""}],"src":"1052:139:101"},{"body":{"nativeSrc":"1297:519:101","nodeType":"YulBlock","src":"1297:519:101","statements":[{"body":{"nativeSrc":"1343:83:101","nodeType":"YulBlock","src":"1343:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1345:77:101","nodeType":"YulIdentifier","src":"1345:77:101"},"nativeSrc":"1345:79:101","nodeType":"YulFunctionCall","src":"1345:79:101"},"nativeSrc":"1345:79:101","nodeType":"YulExpressionStatement","src":"1345:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1318:7:101","nodeType":"YulIdentifier","src":"1318:7:101"},{"name":"headStart","nativeSrc":"1327:9:101","nodeType":"YulIdentifier","src":"1327:9:101"}],"functionName":{"name":"sub","nativeSrc":"1314:3:101","nodeType":"YulIdentifier","src":"1314:3:101"},"nativeSrc":"1314:23:101","nodeType":"YulFunctionCall","src":"1314:23:101"},{"kind":"number","nativeSrc":"1339:2:101","nodeType":"YulLiteral","src":"1339:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1310:3:101","nodeType":"YulIdentifier","src":"1310:3:101"},"nativeSrc":"1310:32:101","nodeType":"YulFunctionCall","src":"1310:32:101"},"nativeSrc":"1307:119:101","nodeType":"YulIf","src":"1307:119:101"},{"nativeSrc":"1436:117:101","nodeType":"YulBlock","src":"1436:117:101","statements":[{"nativeSrc":"1451:15:101","nodeType":"YulVariableDeclaration","src":"1451:15:101","value":{"kind":"number","nativeSrc":"1465:1:101","nodeType":"YulLiteral","src":"1465:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1455:6:101","nodeType":"YulTypedName","src":"1455:6:101","type":""}]},{"nativeSrc":"1480:63:101","nodeType":"YulAssignment","src":"1480:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1515:9:101","nodeType":"YulIdentifier","src":"1515:9:101"},{"name":"offset","nativeSrc":"1526:6:101","nodeType":"YulIdentifier","src":"1526:6:101"}],"functionName":{"name":"add","nativeSrc":"1511:3:101","nodeType":"YulIdentifier","src":"1511:3:101"},"nativeSrc":"1511:22:101","nodeType":"YulFunctionCall","src":"1511:22:101"},{"name":"dataEnd","nativeSrc":"1535:7:101","nodeType":"YulIdentifier","src":"1535:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1490:20:101","nodeType":"YulIdentifier","src":"1490:20:101"},"nativeSrc":"1490:53:101","nodeType":"YulFunctionCall","src":"1490:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1480:6:101","nodeType":"YulIdentifier","src":"1480:6:101"}]}]},{"nativeSrc":"1563:118:101","nodeType":"YulBlock","src":"1563:118:101","statements":[{"nativeSrc":"1578:16:101","nodeType":"YulVariableDeclaration","src":"1578:16:101","value":{"kind":"number","nativeSrc":"1592:2:101","nodeType":"YulLiteral","src":"1592:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1582:6:101","nodeType":"YulTypedName","src":"1582:6:101","type":""}]},{"nativeSrc":"1608:63:101","nodeType":"YulAssignment","src":"1608:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1643:9:101","nodeType":"YulIdentifier","src":"1643:9:101"},{"name":"offset","nativeSrc":"1654:6:101","nodeType":"YulIdentifier","src":"1654:6:101"}],"functionName":{"name":"add","nativeSrc":"1639:3:101","nodeType":"YulIdentifier","src":"1639:3:101"},"nativeSrc":"1639:22:101","nodeType":"YulFunctionCall","src":"1639:22:101"},{"name":"dataEnd","nativeSrc":"1663:7:101","nodeType":"YulIdentifier","src":"1663:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1618:20:101","nodeType":"YulIdentifier","src":"1618:20:101"},"nativeSrc":"1618:53:101","nodeType":"YulFunctionCall","src":"1618:53:101"},"variableNames":[{"name":"value1","nativeSrc":"1608:6:101","nodeType":"YulIdentifier","src":"1608:6:101"}]}]},{"nativeSrc":"1691:118:101","nodeType":"YulBlock","src":"1691:118:101","statements":[{"nativeSrc":"1706:16:101","nodeType":"YulVariableDeclaration","src":"1706:16:101","value":{"kind":"number","nativeSrc":"1720:2:101","nodeType":"YulLiteral","src":"1720:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1710:6:101","nodeType":"YulTypedName","src":"1710:6:101","type":""}]},{"nativeSrc":"1736:63:101","nodeType":"YulAssignment","src":"1736:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1771:9:101","nodeType":"YulIdentifier","src":"1771:9:101"},{"name":"offset","nativeSrc":"1782:6:101","nodeType":"YulIdentifier","src":"1782:6:101"}],"functionName":{"name":"add","nativeSrc":"1767:3:101","nodeType":"YulIdentifier","src":"1767:3:101"},"nativeSrc":"1767:22:101","nodeType":"YulFunctionCall","src":"1767:22:101"},{"name":"dataEnd","nativeSrc":"1791:7:101","nodeType":"YulIdentifier","src":"1791:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1746:20:101","nodeType":"YulIdentifier","src":"1746:20:101"},"nativeSrc":"1746:53:101","nodeType":"YulFunctionCall","src":"1746:53:101"},"variableNames":[{"name":"value2","nativeSrc":"1736:6:101","nodeType":"YulIdentifier","src":"1736:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nativeSrc":"1197:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1251:9:101","nodeType":"YulTypedName","src":"1251:9:101","type":""},{"name":"dataEnd","nativeSrc":"1262:7:101","nodeType":"YulTypedName","src":"1262:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1274:6:101","nodeType":"YulTypedName","src":"1274:6:101","type":""},{"name":"value1","nativeSrc":"1282:6:101","nodeType":"YulTypedName","src":"1282:6:101","type":""},{"name":"value2","nativeSrc":"1290:6:101","nodeType":"YulTypedName","src":"1290:6:101","type":""}],"src":"1197:619:101"},{"body":{"nativeSrc":"1864:48:101","nodeType":"YulBlock","src":"1864:48:101","statements":[{"nativeSrc":"1874:32:101","nodeType":"YulAssignment","src":"1874:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1899:5:101","nodeType":"YulIdentifier","src":"1899:5:101"}],"functionName":{"name":"iszero","nativeSrc":"1892:6:101","nodeType":"YulIdentifier","src":"1892:6:101"},"nativeSrc":"1892:13:101","nodeType":"YulFunctionCall","src":"1892:13:101"}],"functionName":{"name":"iszero","nativeSrc":"1885:6:101","nodeType":"YulIdentifier","src":"1885:6:101"},"nativeSrc":"1885:21:101","nodeType":"YulFunctionCall","src":"1885:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1874:7:101","nodeType":"YulIdentifier","src":"1874:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"1822:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1846:5:101","nodeType":"YulTypedName","src":"1846:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1856:7:101","nodeType":"YulTypedName","src":"1856:7:101","type":""}],"src":"1822:90:101"},{"body":{"nativeSrc":"1977:50:101","nodeType":"YulBlock","src":"1977:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1994:3:101","nodeType":"YulIdentifier","src":"1994:3:101"},{"arguments":[{"name":"value","nativeSrc":"2014:5:101","nodeType":"YulIdentifier","src":"2014:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1999:14:101","nodeType":"YulIdentifier","src":"1999:14:101"},"nativeSrc":"1999:21:101","nodeType":"YulFunctionCall","src":"1999:21:101"}],"functionName":{"name":"mstore","nativeSrc":"1987:6:101","nodeType":"YulIdentifier","src":"1987:6:101"},"nativeSrc":"1987:34:101","nodeType":"YulFunctionCall","src":"1987:34:101"},"nativeSrc":"1987:34:101","nodeType":"YulExpressionStatement","src":"1987:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1918:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1965:5:101","nodeType":"YulTypedName","src":"1965:5:101","type":""},{"name":"pos","nativeSrc":"1972:3:101","nodeType":"YulTypedName","src":"1972:3:101","type":""}],"src":"1918:109:101"},{"body":{"nativeSrc":"2125:118:101","nodeType":"YulBlock","src":"2125:118:101","statements":[{"nativeSrc":"2135:26:101","nodeType":"YulAssignment","src":"2135:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2147:9:101","nodeType":"YulIdentifier","src":"2147:9:101"},{"kind":"number","nativeSrc":"2158:2:101","nodeType":"YulLiteral","src":"2158:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2143:3:101","nodeType":"YulIdentifier","src":"2143:3:101"},"nativeSrc":"2143:18:101","nodeType":"YulFunctionCall","src":"2143:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2135:4:101","nodeType":"YulIdentifier","src":"2135:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2209:6:101","nodeType":"YulIdentifier","src":"2209:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2222:9:101","nodeType":"YulIdentifier","src":"2222:9:101"},{"kind":"number","nativeSrc":"2233:1:101","nodeType":"YulLiteral","src":"2233:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2218:3:101","nodeType":"YulIdentifier","src":"2218:3:101"},"nativeSrc":"2218:17:101","nodeType":"YulFunctionCall","src":"2218:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2171:37:101","nodeType":"YulIdentifier","src":"2171:37:101"},"nativeSrc":"2171:65:101","nodeType":"YulFunctionCall","src":"2171:65:101"},"nativeSrc":"2171:65:101","nodeType":"YulExpressionStatement","src":"2171:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2033:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2097:9:101","nodeType":"YulTypedName","src":"2097:9:101","type":""},{"name":"value0","nativeSrc":"2109:6:101","nodeType":"YulTypedName","src":"2109:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2120:4:101","nodeType":"YulTypedName","src":"2120:4:101","type":""}],"src":"2033:210:101"},{"body":{"nativeSrc":"2289:76:101","nodeType":"YulBlock","src":"2289:76:101","statements":[{"body":{"nativeSrc":"2343:16:101","nodeType":"YulBlock","src":"2343:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2352:1:101","nodeType":"YulLiteral","src":"2352:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2355:1:101","nodeType":"YulLiteral","src":"2355:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2345:6:101","nodeType":"YulIdentifier","src":"2345:6:101"},"nativeSrc":"2345:12:101","nodeType":"YulFunctionCall","src":"2345:12:101"},"nativeSrc":"2345:12:101","nodeType":"YulExpressionStatement","src":"2345:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2312:5:101","nodeType":"YulIdentifier","src":"2312:5:101"},{"arguments":[{"name":"value","nativeSrc":"2334:5:101","nodeType":"YulIdentifier","src":"2334:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2319:14:101","nodeType":"YulIdentifier","src":"2319:14:101"},"nativeSrc":"2319:21:101","nodeType":"YulFunctionCall","src":"2319:21:101"}],"functionName":{"name":"eq","nativeSrc":"2309:2:101","nodeType":"YulIdentifier","src":"2309:2:101"},"nativeSrc":"2309:32:101","nodeType":"YulFunctionCall","src":"2309:32:101"}],"functionName":{"name":"iszero","nativeSrc":"2302:6:101","nodeType":"YulIdentifier","src":"2302:6:101"},"nativeSrc":"2302:40:101","nodeType":"YulFunctionCall","src":"2302:40:101"},"nativeSrc":"2299:60:101","nodeType":"YulIf","src":"2299:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"2249:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2282:5:101","nodeType":"YulTypedName","src":"2282:5:101","type":""}],"src":"2249:116:101"},{"body":{"nativeSrc":"2420:84:101","nodeType":"YulBlock","src":"2420:84:101","statements":[{"nativeSrc":"2430:29:101","nodeType":"YulAssignment","src":"2430:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2452:6:101","nodeType":"YulIdentifier","src":"2452:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2439:12:101","nodeType":"YulIdentifier","src":"2439:12:101"},"nativeSrc":"2439:20:101","nodeType":"YulFunctionCall","src":"2439:20:101"},"variableNames":[{"name":"value","nativeSrc":"2430:5:101","nodeType":"YulIdentifier","src":"2430:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2492:5:101","nodeType":"YulIdentifier","src":"2492:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"2468:23:101","nodeType":"YulIdentifier","src":"2468:23:101"},"nativeSrc":"2468:30:101","nodeType":"YulFunctionCall","src":"2468:30:101"},"nativeSrc":"2468:30:101","nodeType":"YulExpressionStatement","src":"2468:30:101"}]},"name":"abi_decode_t_bool","nativeSrc":"2371:133:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2398:6:101","nodeType":"YulTypedName","src":"2398:6:101","type":""},{"name":"end","nativeSrc":"2406:3:101","nodeType":"YulTypedName","src":"2406:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2414:5:101","nodeType":"YulTypedName","src":"2414:5:101","type":""}],"src":"2371:133:101"},{"body":{"nativeSrc":"2590:388:101","nodeType":"YulBlock","src":"2590:388:101","statements":[{"body":{"nativeSrc":"2636:83:101","nodeType":"YulBlock","src":"2636:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2638:77:101","nodeType":"YulIdentifier","src":"2638:77:101"},"nativeSrc":"2638:79:101","nodeType":"YulFunctionCall","src":"2638:79:101"},"nativeSrc":"2638:79:101","nodeType":"YulExpressionStatement","src":"2638:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2611:7:101","nodeType":"YulIdentifier","src":"2611:7:101"},{"name":"headStart","nativeSrc":"2620:9:101","nodeType":"YulIdentifier","src":"2620:9:101"}],"functionName":{"name":"sub","nativeSrc":"2607:3:101","nodeType":"YulIdentifier","src":"2607:3:101"},"nativeSrc":"2607:23:101","nodeType":"YulFunctionCall","src":"2607:23:101"},{"kind":"number","nativeSrc":"2632:2:101","nodeType":"YulLiteral","src":"2632:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2603:3:101","nodeType":"YulIdentifier","src":"2603:3:101"},"nativeSrc":"2603:32:101","nodeType":"YulFunctionCall","src":"2603:32:101"},"nativeSrc":"2600:119:101","nodeType":"YulIf","src":"2600:119:101"},{"nativeSrc":"2729:117:101","nodeType":"YulBlock","src":"2729:117:101","statements":[{"nativeSrc":"2744:15:101","nodeType":"YulVariableDeclaration","src":"2744:15:101","value":{"kind":"number","nativeSrc":"2758:1:101","nodeType":"YulLiteral","src":"2758:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2748:6:101","nodeType":"YulTypedName","src":"2748:6:101","type":""}]},{"nativeSrc":"2773:63:101","nodeType":"YulAssignment","src":"2773:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2808:9:101","nodeType":"YulIdentifier","src":"2808:9:101"},{"name":"offset","nativeSrc":"2819:6:101","nodeType":"YulIdentifier","src":"2819:6:101"}],"functionName":{"name":"add","nativeSrc":"2804:3:101","nodeType":"YulIdentifier","src":"2804:3:101"},"nativeSrc":"2804:22:101","nodeType":"YulFunctionCall","src":"2804:22:101"},{"name":"dataEnd","nativeSrc":"2828:7:101","nodeType":"YulIdentifier","src":"2828:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2783:20:101","nodeType":"YulIdentifier","src":"2783:20:101"},"nativeSrc":"2783:53:101","nodeType":"YulFunctionCall","src":"2783:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2773:6:101","nodeType":"YulIdentifier","src":"2773:6:101"}]}]},{"nativeSrc":"2856:115:101","nodeType":"YulBlock","src":"2856:115:101","statements":[{"nativeSrc":"2871:16:101","nodeType":"YulVariableDeclaration","src":"2871:16:101","value":{"kind":"number","nativeSrc":"2885:2:101","nodeType":"YulLiteral","src":"2885:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2875:6:101","nodeType":"YulTypedName","src":"2875:6:101","type":""}]},{"nativeSrc":"2901:60:101","nodeType":"YulAssignment","src":"2901:60:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2933:9:101","nodeType":"YulIdentifier","src":"2933:9:101"},{"name":"offset","nativeSrc":"2944:6:101","nodeType":"YulIdentifier","src":"2944:6:101"}],"functionName":{"name":"add","nativeSrc":"2929:3:101","nodeType":"YulIdentifier","src":"2929:3:101"},"nativeSrc":"2929:22:101","nodeType":"YulFunctionCall","src":"2929:22:101"},{"name":"dataEnd","nativeSrc":"2953:7:101","nodeType":"YulIdentifier","src":"2953:7:101"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"2911:17:101","nodeType":"YulIdentifier","src":"2911:17:101"},"nativeSrc":"2911:50:101","nodeType":"YulFunctionCall","src":"2911:50:101"},"variableNames":[{"name":"value1","nativeSrc":"2901:6:101","nodeType":"YulIdentifier","src":"2901:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"2510:468:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2552:9:101","nodeType":"YulTypedName","src":"2552:9:101","type":""},{"name":"dataEnd","nativeSrc":"2563:7:101","nodeType":"YulTypedName","src":"2563:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2575:6:101","nodeType":"YulTypedName","src":"2575:6:101","type":""},{"name":"value1","nativeSrc":"2583:6:101","nodeType":"YulTypedName","src":"2583:6:101","type":""}],"src":"2510:468:101"},{"body":{"nativeSrc":"3050:263:101","nodeType":"YulBlock","src":"3050:263:101","statements":[{"body":{"nativeSrc":"3096:83:101","nodeType":"YulBlock","src":"3096:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3098:77:101","nodeType":"YulIdentifier","src":"3098:77:101"},"nativeSrc":"3098:79:101","nodeType":"YulFunctionCall","src":"3098:79:101"},"nativeSrc":"3098:79:101","nodeType":"YulExpressionStatement","src":"3098:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3071:7:101","nodeType":"YulIdentifier","src":"3071:7:101"},{"name":"headStart","nativeSrc":"3080:9:101","nodeType":"YulIdentifier","src":"3080:9:101"}],"functionName":{"name":"sub","nativeSrc":"3067:3:101","nodeType":"YulIdentifier","src":"3067:3:101"},"nativeSrc":"3067:23:101","nodeType":"YulFunctionCall","src":"3067:23:101"},{"kind":"number","nativeSrc":"3092:2:101","nodeType":"YulLiteral","src":"3092:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3063:3:101","nodeType":"YulIdentifier","src":"3063:3:101"},"nativeSrc":"3063:32:101","nodeType":"YulFunctionCall","src":"3063:32:101"},"nativeSrc":"3060:119:101","nodeType":"YulIf","src":"3060:119:101"},{"nativeSrc":"3189:117:101","nodeType":"YulBlock","src":"3189:117:101","statements":[{"nativeSrc":"3204:15:101","nodeType":"YulVariableDeclaration","src":"3204:15:101","value":{"kind":"number","nativeSrc":"3218:1:101","nodeType":"YulLiteral","src":"3218:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3208:6:101","nodeType":"YulTypedName","src":"3208:6:101","type":""}]},{"nativeSrc":"3233:63:101","nodeType":"YulAssignment","src":"3233:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3268:9:101","nodeType":"YulIdentifier","src":"3268:9:101"},{"name":"offset","nativeSrc":"3279:6:101","nodeType":"YulIdentifier","src":"3279:6:101"}],"functionName":{"name":"add","nativeSrc":"3264:3:101","nodeType":"YulIdentifier","src":"3264:3:101"},"nativeSrc":"3264:22:101","nodeType":"YulFunctionCall","src":"3264:22:101"},{"name":"dataEnd","nativeSrc":"3288:7:101","nodeType":"YulIdentifier","src":"3288:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3243:20:101","nodeType":"YulIdentifier","src":"3243:20:101"},"nativeSrc":"3243:53:101","nodeType":"YulFunctionCall","src":"3243:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3233:6:101","nodeType":"YulIdentifier","src":"3233:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2984:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3020:9:101","nodeType":"YulTypedName","src":"3020:9:101","type":""},{"name":"dataEnd","nativeSrc":"3031:7:101","nodeType":"YulTypedName","src":"3031:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3043:6:101","nodeType":"YulTypedName","src":"3043:6:101","type":""}],"src":"2984:329:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610055575f3560e01c806328d0ef671461005957806379c5e5121461009c5780638146bf7f146100d657806397c7033e14610059578063a050bcb3146100e3575b5f80fd5b610086610067366004610149565b50506001600160a01b03165f9081526020819052604090205460ff1690565b6040516100939190610195565b60405180910390f35b6100d46100aa3660046101b6565b6001600160a01b03919091165f908152602081905260409020805460ff1916911515919091179055565b005b6001546100869060ff1681565b6100866100f13660046101f0565b5f6020819052908152604090205460ff1681565b5f6001600160a01b0382165b92915050565b61012081610105565b811461012a575f80fd5b50565b803561011181610117565b80610120565b803561011181610138565b5f805f6060848603121561015e5761015e5f80fd5b5f610169868661012d565b935050602061017a8682870161013e565b925050604061018b8682870161013e565b9150509250925092565b811515815260208101610111565b801515610120565b8035610111816101a3565b5f80604083850312156101ca576101ca5f80fd5b5f6101d5858561012d565b92505060206101e6858286016101ab565b9150509250929050565b5f60208284031215610203576102035f80fd5b5f61020e848461012d565b94935050505056fea26469706673582212202b505f4431ace8a938f0e13b9840f1e8b73449cc4e0415fb2526d54257f25f6d64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x28D0EF67 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x79C5E512 EQ PUSH2 0x9C JUMPI DUP1 PUSH4 0x8146BF7F EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0x97C7033E EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0xA050BCB3 EQ PUSH2 0xE3 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x86 PUSH2 0x67 CALLDATASIZE PUSH1 0x4 PUSH2 0x149 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x195 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH2 0xAA CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x86 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x86 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F0 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x120 DUP2 PUSH2 0x105 JUMP JUMPDEST DUP2 EQ PUSH2 0x12A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x111 DUP2 PUSH2 0x117 JUMP JUMPDEST DUP1 PUSH2 0x120 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x111 DUP2 PUSH2 0x138 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15E JUMPI PUSH2 0x15E PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x169 DUP7 DUP7 PUSH2 0x12D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x17A DUP7 DUP3 DUP8 ADD PUSH2 0x13E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18B DUP7 DUP3 DUP8 ADD PUSH2 0x13E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0x111 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x120 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x111 DUP2 PUSH2 0x1A3 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CA JUMPI PUSH2 0x1CA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1D5 DUP6 DUP6 PUSH2 0x12D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E6 DUP6 DUP3 DUP7 ADD PUSH2 0x1AB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x203 JUMPI PUSH2 0x203 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x20E DUP5 DUP5 PUSH2 0x12D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2B POP PUSH0 PREVRANDAO BALANCE 0xAC 0xE8 0xA9 CODESIZE CREATE 0xE1 EXTCODESIZE SWAP9 BLOCKHASH CALL 0xE8 0xB7 CALLVALUE BLOBHASH 0xCC 0x4E DIV ISZERO 0xFB 0x25 0x26 0xD5 TIMESTAMP JUMPI CALLCODE PUSH0 PUSH14 0x64736F6C63430008190033000000 ","sourceMap":"575:713:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;967:207;;;;;;:::i;:::-;-1:-1:-1;;;;;;;1145:22:81;1122:4;1145:22;;;;;;;;;;;;;;967:207;;;;;;;;:::i;:::-;;;;;;;;1180:106;;;;;;:::i;:::-;-1:-1:-1;;;;;1250:22:81;;;;:15;:22;;;;;;;;;;:29;;-1:-1:-1;;1250:29:81;;;;;;;;;;1180:106;;;689:23;;;;;;;;;636:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;466:96:101;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;767:20;;796:33;767:20;796:33;:::i;924:122::-;1015:5;997:24;841:77;1052:139;1123:20;;1152:33;1123:20;1152:33;:::i;1197:619::-;1274:6;1282;1290;1339:2;1327:9;1318:7;1314:23;1310:32;1307:119;;;1345:79;575:713:81;;;1345:79:101;1465:1;1490:53;1535:7;1515:9;1490:53;:::i;:::-;1480:63;;1436:117;1592:2;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1563:118;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1197:619;;;;;:::o;2033:210::-;1892:13;;1885:21;1987:34;;2158:2;2143:18;;2171:65;1918:109;2249:116;1892:13;;1885:21;2319;1822:90;2371:133;2439:20;;2468:30;2439:20;2468:30;:::i;2510:468::-;2575:6;2583;2632:2;2620:9;2611:7;2607:23;2603:32;2600:119;;;2638:79;575:713:81;;;2638:79:101;2758:1;2783:53;2828:7;2808:9;2783:53;:::i;:::-;2773:63;;2729:117;2885:2;2911:50;2953:7;2944:6;2933:9;2929:22;2911:50;:::i;:::-;2901:60;;2856:115;2510:468;;;;;:::o;2984:329::-;3043:6;3092:2;3080:9;3071:7;3067:23;3063:32;3060:119;;;3098:79;575:713:81;;;3098:79:101;3218:1;3243:53;3288:7;3268:9;3243:53;:::i;:::-;3233:63;2984:329;-1:-1:-1;;;;2984:329:101:o"},"gasEstimates":{"creation":{"codeDepositCost":"117600","executionCost":"163","totalCost":"117763"},"external":{"setValidateResult(address,bool)":"infinite","twapUpdated()":"2374","validateAssetPriceWithAnchorPrice(address,uint256,uint256)":"infinite","validatePriceWithAnchorPrice(address,uint256,uint256)":"infinite","validateResults(address)":"infinite"}},"methodIdentifiers":{"setValidateResult(address,bool)":"79c5e512","twapUpdated()":"8146bf7f","validateAssetPriceWithAnchorPrice(address,uint256,uint256)":"28d0ef67","validatePriceWithAnchorPrice(address,uint256,uint256)":"97c7033e","validateResults(address)":"a050bcb3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"pass\",\"type\":\"bool\"}],\"name\":\"setValidateResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"twapUpdated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reporterPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"anchorPrice\",\"type\":\"uint256\"}],\"name\":\"validateAssetPriceWithAnchorPrice\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reporterPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"anchorPrice\",\"type\":\"uint256\"}],\"name\":\"validatePriceWithAnchorPrice\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateResults\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockSimpleOracle.sol\":\"MockBoundValidator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockSimpleOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../interfaces/OracleInterface.sol\\\";\\n\\ncontract MockSimpleOracle is OracleInterface {\\n    mapping(address => uint256) public prices;\\n\\n    constructor() {\\n        //\\n    }\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256) {\\n        return prices[vToken];\\n    }\\n\\n    function getPrice(address asset) external view returns (uint256) {\\n        return prices[asset];\\n    }\\n\\n    function setPrice(address vToken, uint256 price) public {\\n        prices[vToken] = price;\\n    }\\n}\\n\\ncontract MockBoundValidator is BoundValidatorInterface {\\n    mapping(address => bool) public validateResults;\\n    bool public twapUpdated;\\n\\n    constructor() {\\n        //\\n    }\\n\\n    function validatePriceWithAnchorPrice(\\n        address vToken,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool) {\\n        return validateResults[vToken];\\n    }\\n\\n    function validateAssetPriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool) {\\n        return validateResults[asset];\\n    }\\n\\n    function setValidateResult(address token, bool pass) public {\\n        validateResults[token] = pass;\\n    }\\n}\\n\",\"keccak256\":\"0xe9ca8d3be0fae48300418056a31f28bce0dee027117e2dda3e7bf6d27f691453\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8086,"contract":"contracts/test/MockSimpleOracle.sol:MockBoundValidator","label":"validateResults","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":8088,"contract":"contracts/test/MockSimpleOracle.sol:MockBoundValidator","label":"twapUpdated","offset":0,"slot":"1","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"kind":"user","methods":{},"version":1}},"MockSimpleOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"getUnderlyingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"prices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_8041":{"entryPoint":null,"id":8041,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b506101bb8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610049575f3560e01c8062e4768b1461004d57806341976e0914610078578063cfed246b146100b6578063fc57d4df14610078575b5f80fd5b61007661005b366004610119565b6001600160a01b039091165f90815260208190526040902055565b005b6100a0610086366004610153565b6001600160a01b03165f9081526020819052604090205490565b6040516100ad9190610179565b60405180910390f35b6100a06100c4366004610153565b5f6020819052908152604090205481565b5f6001600160a01b0382165b92915050565b6100f0816100d5565b81146100fa575f80fd5b50565b80356100e1816100e7565b806100f0565b80356100e181610108565b5f806040838503121561012d5761012d5f80fd5b5f61013885856100fd565b92505060206101498582860161010e565b9150509250929050565b5f60208284031215610166576101665f80fd5b5f61017184846100fd565b949350505050565b818152602081016100e156fea2646970667358221220d90856a2da89540d6eadbe40a65deb93c06ead42e5159625a601e8c565d207ce64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x49 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xE4768B EQ PUSH2 0x4D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0xFC57D4DF EQ PUSH2 0x78 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH2 0x5B CALLDATASIZE PUSH1 0x4 PUSH2 0x119 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA0 PUSH2 0x86 CALLDATASIZE PUSH1 0x4 PUSH2 0x153 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x179 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0xC4 CALLDATASIZE PUSH1 0x4 PUSH2 0x153 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF0 DUP2 PUSH2 0xD5 JUMP JUMPDEST DUP2 EQ PUSH2 0xFA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xE1 DUP2 PUSH2 0xE7 JUMP JUMPDEST DUP1 PUSH2 0xF0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xE1 DUP2 PUSH2 0x108 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D JUMPI PUSH2 0x12D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x138 DUP6 DUP6 PUSH2 0xFD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x149 DUP6 DUP3 DUP7 ADD PUSH2 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x166 JUMPI PUSH2 0x166 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x171 DUP5 DUP5 PUSH2 0xFD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xE1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 ADDMOD JUMP LOG2 0xDA DUP10 SLOAD 0xD PUSH15 0xADBE40A65DEB93C06EAD42E5159625 0xA6 ADD 0xE8 0xC5 PUSH6 0xD207CE64736F PUSH13 0x63430008190033000000000000 ","sourceMap":"111:462:81:-:0;;;210:32;;;;;;;;;;111:462;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getPrice_8065":{"entryPoint":null,"id":8065,"parameterSlots":1,"returnSlots":1},"@getUnderlyingPrice_8053":{"entryPoint":null,"id":8053,"parameterSlots":1,"returnSlots":1},"@prices_8037":{"entryPoint":null,"id":8037,"parameterSlots":0,"returnSlots":0},"@setPrice_8079":{"entryPoint":null,"id":8079,"parameterSlots":2,"returnSlots":0},"abi_decode_t_address":{"entryPoint":253,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":270,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":339,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":281,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":377,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":213,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":231,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":264,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2361:101","nodeType":"YulBlock","src":"0:2361:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"886:32:101","nodeType":"YulBlock","src":"886:32:101","statements":[{"nativeSrc":"896:16:101","nodeType":"YulAssignment","src":"896:16:101","value":{"name":"value","nativeSrc":"907:5:101","nodeType":"YulIdentifier","src":"907:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:101","nodeType":"YulIdentifier","src":"896:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:101","nodeType":"YulTypedName","src":"868:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:101","nodeType":"YulTypedName","src":"878:7:101","type":""}],"src":"841:77:101"},{"body":{"nativeSrc":"967:79:101","nodeType":"YulBlock","src":"967:79:101","statements":[{"body":{"nativeSrc":"1024:16:101","nodeType":"YulBlock","src":"1024:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:101","nodeType":"YulLiteral","src":"1033:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:101","nodeType":"YulLiteral","src":"1036:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:101","nodeType":"YulIdentifier","src":"1026:6:101"},"nativeSrc":"1026:12:101","nodeType":"YulFunctionCall","src":"1026:12:101"},"nativeSrc":"1026:12:101","nodeType":"YulExpressionStatement","src":"1026:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:101","nodeType":"YulIdentifier","src":"990:5:101"},{"arguments":[{"name":"value","nativeSrc":"1015:5:101","nodeType":"YulIdentifier","src":"1015:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:101","nodeType":"YulIdentifier","src":"997:17:101"},"nativeSrc":"997:24:101","nodeType":"YulFunctionCall","src":"997:24:101"}],"functionName":{"name":"eq","nativeSrc":"987:2:101","nodeType":"YulIdentifier","src":"987:2:101"},"nativeSrc":"987:35:101","nodeType":"YulFunctionCall","src":"987:35:101"}],"functionName":{"name":"iszero","nativeSrc":"980:6:101","nodeType":"YulIdentifier","src":"980:6:101"},"nativeSrc":"980:43:101","nodeType":"YulFunctionCall","src":"980:43:101"},"nativeSrc":"977:63:101","nodeType":"YulIf","src":"977:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:101","nodeType":"YulTypedName","src":"960:5:101","type":""}],"src":"924:122:101"},{"body":{"nativeSrc":"1104:87:101","nodeType":"YulBlock","src":"1104:87:101","statements":[{"nativeSrc":"1114:29:101","nodeType":"YulAssignment","src":"1114:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:101","nodeType":"YulIdentifier","src":"1123:12:101"},"nativeSrc":"1123:20:101","nodeType":"YulFunctionCall","src":"1123:20:101"},"variableNames":[{"name":"value","nativeSrc":"1114:5:101","nodeType":"YulIdentifier","src":"1114:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:101","nodeType":"YulIdentifier","src":"1179:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:101","nodeType":"YulIdentifier","src":"1152:26:101"},"nativeSrc":"1152:33:101","nodeType":"YulFunctionCall","src":"1152:33:101"},"nativeSrc":"1152:33:101","nodeType":"YulExpressionStatement","src":"1152:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:101","nodeType":"YulTypedName","src":"1082:6:101","type":""},{"name":"end","nativeSrc":"1090:3:101","nodeType":"YulTypedName","src":"1090:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:101","nodeType":"YulTypedName","src":"1098:5:101","type":""}],"src":"1052:139:101"},{"body":{"nativeSrc":"1280:391:101","nodeType":"YulBlock","src":"1280:391:101","statements":[{"body":{"nativeSrc":"1326:83:101","nodeType":"YulBlock","src":"1326:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1328:77:101","nodeType":"YulIdentifier","src":"1328:77:101"},"nativeSrc":"1328:79:101","nodeType":"YulFunctionCall","src":"1328:79:101"},"nativeSrc":"1328:79:101","nodeType":"YulExpressionStatement","src":"1328:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1301:7:101","nodeType":"YulIdentifier","src":"1301:7:101"},{"name":"headStart","nativeSrc":"1310:9:101","nodeType":"YulIdentifier","src":"1310:9:101"}],"functionName":{"name":"sub","nativeSrc":"1297:3:101","nodeType":"YulIdentifier","src":"1297:3:101"},"nativeSrc":"1297:23:101","nodeType":"YulFunctionCall","src":"1297:23:101"},{"kind":"number","nativeSrc":"1322:2:101","nodeType":"YulLiteral","src":"1322:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1293:3:101","nodeType":"YulIdentifier","src":"1293:3:101"},"nativeSrc":"1293:32:101","nodeType":"YulFunctionCall","src":"1293:32:101"},"nativeSrc":"1290:119:101","nodeType":"YulIf","src":"1290:119:101"},{"nativeSrc":"1419:117:101","nodeType":"YulBlock","src":"1419:117:101","statements":[{"nativeSrc":"1434:15:101","nodeType":"YulVariableDeclaration","src":"1434:15:101","value":{"kind":"number","nativeSrc":"1448:1:101","nodeType":"YulLiteral","src":"1448:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1438:6:101","nodeType":"YulTypedName","src":"1438:6:101","type":""}]},{"nativeSrc":"1463:63:101","nodeType":"YulAssignment","src":"1463:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1498:9:101","nodeType":"YulIdentifier","src":"1498:9:101"},{"name":"offset","nativeSrc":"1509:6:101","nodeType":"YulIdentifier","src":"1509:6:101"}],"functionName":{"name":"add","nativeSrc":"1494:3:101","nodeType":"YulIdentifier","src":"1494:3:101"},"nativeSrc":"1494:22:101","nodeType":"YulFunctionCall","src":"1494:22:101"},{"name":"dataEnd","nativeSrc":"1518:7:101","nodeType":"YulIdentifier","src":"1518:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1473:20:101","nodeType":"YulIdentifier","src":"1473:20:101"},"nativeSrc":"1473:53:101","nodeType":"YulFunctionCall","src":"1473:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1463:6:101","nodeType":"YulIdentifier","src":"1463:6:101"}]}]},{"nativeSrc":"1546:118:101","nodeType":"YulBlock","src":"1546:118:101","statements":[{"nativeSrc":"1561:16:101","nodeType":"YulVariableDeclaration","src":"1561:16:101","value":{"kind":"number","nativeSrc":"1575:2:101","nodeType":"YulLiteral","src":"1575:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1565:6:101","nodeType":"YulTypedName","src":"1565:6:101","type":""}]},{"nativeSrc":"1591:63:101","nodeType":"YulAssignment","src":"1591:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:101","nodeType":"YulIdentifier","src":"1626:9:101"},{"name":"offset","nativeSrc":"1637:6:101","nodeType":"YulIdentifier","src":"1637:6:101"}],"functionName":{"name":"add","nativeSrc":"1622:3:101","nodeType":"YulIdentifier","src":"1622:3:101"},"nativeSrc":"1622:22:101","nodeType":"YulFunctionCall","src":"1622:22:101"},{"name":"dataEnd","nativeSrc":"1646:7:101","nodeType":"YulIdentifier","src":"1646:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1601:20:101","nodeType":"YulIdentifier","src":"1601:20:101"},"nativeSrc":"1601:53:101","nodeType":"YulFunctionCall","src":"1601:53:101"},"variableNames":[{"name":"value1","nativeSrc":"1591:6:101","nodeType":"YulIdentifier","src":"1591:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1197:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1242:9:101","nodeType":"YulTypedName","src":"1242:9:101","type":""},{"name":"dataEnd","nativeSrc":"1253:7:101","nodeType":"YulTypedName","src":"1253:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1265:6:101","nodeType":"YulTypedName","src":"1265:6:101","type":""},{"name":"value1","nativeSrc":"1273:6:101","nodeType":"YulTypedName","src":"1273:6:101","type":""}],"src":"1197:474:101"},{"body":{"nativeSrc":"1743:263:101","nodeType":"YulBlock","src":"1743:263:101","statements":[{"body":{"nativeSrc":"1789:83:101","nodeType":"YulBlock","src":"1789:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1791:77:101","nodeType":"YulIdentifier","src":"1791:77:101"},"nativeSrc":"1791:79:101","nodeType":"YulFunctionCall","src":"1791:79:101"},"nativeSrc":"1791:79:101","nodeType":"YulExpressionStatement","src":"1791:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1764:7:101","nodeType":"YulIdentifier","src":"1764:7:101"},{"name":"headStart","nativeSrc":"1773:9:101","nodeType":"YulIdentifier","src":"1773:9:101"}],"functionName":{"name":"sub","nativeSrc":"1760:3:101","nodeType":"YulIdentifier","src":"1760:3:101"},"nativeSrc":"1760:23:101","nodeType":"YulFunctionCall","src":"1760:23:101"},{"kind":"number","nativeSrc":"1785:2:101","nodeType":"YulLiteral","src":"1785:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1756:3:101","nodeType":"YulIdentifier","src":"1756:3:101"},"nativeSrc":"1756:32:101","nodeType":"YulFunctionCall","src":"1756:32:101"},"nativeSrc":"1753:119:101","nodeType":"YulIf","src":"1753:119:101"},{"nativeSrc":"1882:117:101","nodeType":"YulBlock","src":"1882:117:101","statements":[{"nativeSrc":"1897:15:101","nodeType":"YulVariableDeclaration","src":"1897:15:101","value":{"kind":"number","nativeSrc":"1911:1:101","nodeType":"YulLiteral","src":"1911:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1901:6:101","nodeType":"YulTypedName","src":"1901:6:101","type":""}]},{"nativeSrc":"1926:63:101","nodeType":"YulAssignment","src":"1926:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1961:9:101","nodeType":"YulIdentifier","src":"1961:9:101"},{"name":"offset","nativeSrc":"1972:6:101","nodeType":"YulIdentifier","src":"1972:6:101"}],"functionName":{"name":"add","nativeSrc":"1957:3:101","nodeType":"YulIdentifier","src":"1957:3:101"},"nativeSrc":"1957:22:101","nodeType":"YulFunctionCall","src":"1957:22:101"},{"name":"dataEnd","nativeSrc":"1981:7:101","nodeType":"YulIdentifier","src":"1981:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1936:20:101","nodeType":"YulIdentifier","src":"1936:20:101"},"nativeSrc":"1936:53:101","nodeType":"YulFunctionCall","src":"1936:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1926:6:101","nodeType":"YulIdentifier","src":"1926:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1677:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1713:9:101","nodeType":"YulTypedName","src":"1713:9:101","type":""},{"name":"dataEnd","nativeSrc":"1724:7:101","nodeType":"YulTypedName","src":"1724:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1736:6:101","nodeType":"YulTypedName","src":"1736:6:101","type":""}],"src":"1677:329:101"},{"body":{"nativeSrc":"2077:53:101","nodeType":"YulBlock","src":"2077:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2094:3:101","nodeType":"YulIdentifier","src":"2094:3:101"},{"arguments":[{"name":"value","nativeSrc":"2117:5:101","nodeType":"YulIdentifier","src":"2117:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2099:17:101","nodeType":"YulIdentifier","src":"2099:17:101"},"nativeSrc":"2099:24:101","nodeType":"YulFunctionCall","src":"2099:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2087:6:101","nodeType":"YulIdentifier","src":"2087:6:101"},"nativeSrc":"2087:37:101","nodeType":"YulFunctionCall","src":"2087:37:101"},"nativeSrc":"2087:37:101","nodeType":"YulExpressionStatement","src":"2087:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2012:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2065:5:101","nodeType":"YulTypedName","src":"2065:5:101","type":""},{"name":"pos","nativeSrc":"2072:3:101","nodeType":"YulTypedName","src":"2072:3:101","type":""}],"src":"2012:118:101"},{"body":{"nativeSrc":"2234:124:101","nodeType":"YulBlock","src":"2234:124:101","statements":[{"nativeSrc":"2244:26:101","nodeType":"YulAssignment","src":"2244:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2256:9:101","nodeType":"YulIdentifier","src":"2256:9:101"},{"kind":"number","nativeSrc":"2267:2:101","nodeType":"YulLiteral","src":"2267:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2252:3:101","nodeType":"YulIdentifier","src":"2252:3:101"},"nativeSrc":"2252:18:101","nodeType":"YulFunctionCall","src":"2252:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2244:4:101","nodeType":"YulIdentifier","src":"2244:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2324:6:101","nodeType":"YulIdentifier","src":"2324:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2337:9:101","nodeType":"YulIdentifier","src":"2337:9:101"},{"kind":"number","nativeSrc":"2348:1:101","nodeType":"YulLiteral","src":"2348:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2333:3:101","nodeType":"YulIdentifier","src":"2333:3:101"},"nativeSrc":"2333:17:101","nodeType":"YulFunctionCall","src":"2333:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2280:43:101","nodeType":"YulIdentifier","src":"2280:43:101"},"nativeSrc":"2280:71:101","nodeType":"YulFunctionCall","src":"2280:71:101"},"nativeSrc":"2280:71:101","nodeType":"YulExpressionStatement","src":"2280:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2136:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2206:9:101","nodeType":"YulTypedName","src":"2206:9:101","type":""},{"name":"value0","nativeSrc":"2218:6:101","nodeType":"YulTypedName","src":"2218:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2229:4:101","nodeType":"YulTypedName","src":"2229:4:101","type":""}],"src":"2136:222:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610049575f3560e01c8062e4768b1461004d57806341976e0914610078578063cfed246b146100b6578063fc57d4df14610078575b5f80fd5b61007661005b366004610119565b6001600160a01b039091165f90815260208190526040902055565b005b6100a0610086366004610153565b6001600160a01b03165f9081526020819052604090205490565b6040516100ad9190610179565b60405180910390f35b6100a06100c4366004610153565b5f6020819052908152604090205481565b5f6001600160a01b0382165b92915050565b6100f0816100d5565b81146100fa575f80fd5b50565b80356100e1816100e7565b806100f0565b80356100e181610108565b5f806040838503121561012d5761012d5f80fd5b5f61013885856100fd565b92505060206101498582860161010e565b9150509250929050565b5f60208284031215610166576101665f80fd5b5f61017184846100fd565b949350505050565b818152602081016100e156fea2646970667358221220d90856a2da89540d6eadbe40a65deb93c06ead42e5159625a601e8c565d207ce64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x49 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xE4768B EQ PUSH2 0x4D JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0xFC57D4DF EQ PUSH2 0x78 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH2 0x5B CALLDATASIZE PUSH1 0x4 PUSH2 0x119 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA0 PUSH2 0x86 CALLDATASIZE PUSH1 0x4 PUSH2 0x153 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x179 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0xC4 CALLDATASIZE PUSH1 0x4 PUSH2 0x153 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF0 DUP2 PUSH2 0xD5 JUMP JUMPDEST DUP2 EQ PUSH2 0xFA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xE1 DUP2 PUSH2 0xE7 JUMP JUMPDEST DUP1 PUSH2 0xF0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xE1 DUP2 PUSH2 0x108 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D JUMPI PUSH2 0x12D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x138 DUP6 DUP6 PUSH2 0xFD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x149 DUP6 DUP3 DUP7 ADD PUSH2 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x166 JUMPI PUSH2 0x166 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x171 DUP5 DUP5 PUSH2 0xFD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xE1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD9 ADDMOD JUMP LOG2 0xDA DUP10 SLOAD 0xD PUSH15 0xADBE40A65DEB93C06EAD42E5159625 0xA6 ADD 0xE8 0xC5 PUSH6 0xD207CE64736F PUSH13 0x63430008190033000000000000 ","sourceMap":"111:462:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:95;;;;;;:::i;:::-;-1:-1:-1;;;;;542:14:81;;;:6;:14;;;;;;;;;;:22;476:95;;;368:102;;;;;;:::i;:::-;-1:-1:-1;;;;;450:13:81;424:7;450:13;;;;;;;;;;;;368:102;;;;;;;;:::i;:::-;;;;;;;;162:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;466:96:101;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;767:20;;796:33;767:20;796:33;:::i;924:122::-;1015:5;997:24;841:77;1052:139;1123:20;;1152:33;1123:20;1152:33;:::i;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;111:462:81;;;1328:79:101;1448:1;1473:53;1518:7;1498:9;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:329::-;1736:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:119;;;1791:79;111:462:81;;;1791:79:101;1911:1;1936:53;1981:7;1961:9;1936:53;:::i;:::-;1926:63;1677:329;-1:-1:-1;;;;1677:329:101:o;2136:222::-;2087:37;;;2267:2;2252:18;;2280:71;2012:118"},"gasEstimates":{"creation":{"codeDepositCost":"88600","executionCost":"133","totalCost":"88733"},"external":{"getPrice(address)":"infinite","getUnderlyingPrice(address)":"infinite","prices(address)":"infinite","setPrice(address,uint256)":"infinite"}},"methodIdentifiers":{"getPrice(address)":"41976e09","getUnderlyingPrice(address)":"fc57d4df","prices(address)":"cfed246b","setPrice(address,uint256)":"00e4768b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"getUnderlyingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"prices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockSimpleOracle.sol\":\"MockSimpleOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockSimpleOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../interfaces/OracleInterface.sol\\\";\\n\\ncontract MockSimpleOracle is OracleInterface {\\n    mapping(address => uint256) public prices;\\n\\n    constructor() {\\n        //\\n    }\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256) {\\n        return prices[vToken];\\n    }\\n\\n    function getPrice(address asset) external view returns (uint256) {\\n        return prices[asset];\\n    }\\n\\n    function setPrice(address vToken, uint256 price) public {\\n        prices[vToken] = price;\\n    }\\n}\\n\\ncontract MockBoundValidator is BoundValidatorInterface {\\n    mapping(address => bool) public validateResults;\\n    bool public twapUpdated;\\n\\n    constructor() {\\n        //\\n    }\\n\\n    function validatePriceWithAnchorPrice(\\n        address vToken,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool) {\\n        return validateResults[vToken];\\n    }\\n\\n    function validateAssetPriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool) {\\n        return validateResults[asset];\\n    }\\n\\n    function setValidateResult(address token, bool pass) public {\\n        validateResults[token] = pass;\\n    }\\n}\\n\",\"keccak256\":\"0xe9ca8d3be0fae48300418056a31f28bce0dee027117e2dda3e7bf6d27f691453\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8037,"contract":"contracts/test/MockSimpleOracle.sol:MockSimpleOracle","label":"prices","offset":0,"slot":"0","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_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockV3Aggregator.sol":{"MockV3Aggregator":{"abi":[{"inputs":[{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"int256","name":"_initialAnswer","type":"int256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatedAt","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":true,"internalType":"address","name":"startedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"startedAt","type":"uint256"}],"name":"NewRound","type":"event"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"_answer","type":"int256"}],"name":"updateAnswer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"},{"internalType":"int256","name":"_answer","type":"int256"},{"internalType":"uint256","name":"_timestamp","type":"uint256"},{"internalType":"uint256","name":"_startedAt","type":"uint256"}],"name":"updateRoundData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"title":"MockV3Aggregator","version":1},"evm":{"bytecode":{"functionDebugData":{"@_8184":{"entryPoint":null,"id":8184,"parameterSlots":2,"returnSlots":0},"@updateAnswer_8292":{"entryPoint":76,"id":8292,"parameterSlots":1,"returnSlots":0},"abi_decode_t_int256_fromMemory":{"entryPoint":201,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":178,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8t_int256_fromMemory":{"entryPoint":212,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":290,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":270,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_int256":{"entryPoint":195,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":160,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2062:101","nodeType":"YulBlock","src":"0:2062:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"377:43:101","nodeType":"YulBlock","src":"377:43:101","statements":[{"nativeSrc":"387:27:101","nodeType":"YulAssignment","src":"387:27:101","value":{"arguments":[{"name":"value","nativeSrc":"402:5:101","nodeType":"YulIdentifier","src":"402:5:101"},{"kind":"number","nativeSrc":"409:4:101","nodeType":"YulLiteral","src":"409:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"398:3:101","nodeType":"YulIdentifier","src":"398:3:101"},"nativeSrc":"398:16:101","nodeType":"YulFunctionCall","src":"398:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"387:7:101","nodeType":"YulIdentifier","src":"387:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"334:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"359:5:101","nodeType":"YulTypedName","src":"359:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"369:7:101","nodeType":"YulTypedName","src":"369:7:101","type":""}],"src":"334:86:101"},{"body":{"nativeSrc":"467:77:101","nodeType":"YulBlock","src":"467:77:101","statements":[{"body":{"nativeSrc":"522:16:101","nodeType":"YulBlock","src":"522:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"531:1:101","nodeType":"YulLiteral","src":"531:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"534:1:101","nodeType":"YulLiteral","src":"534:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"524:6:101","nodeType":"YulIdentifier","src":"524:6:101"},"nativeSrc":"524:12:101","nodeType":"YulFunctionCall","src":"524:12:101"},"nativeSrc":"524:12:101","nodeType":"YulExpressionStatement","src":"524:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"490:5:101","nodeType":"YulIdentifier","src":"490:5:101"},{"arguments":[{"name":"value","nativeSrc":"513:5:101","nodeType":"YulIdentifier","src":"513:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"497:15:101","nodeType":"YulIdentifier","src":"497:15:101"},"nativeSrc":"497:22:101","nodeType":"YulFunctionCall","src":"497:22:101"}],"functionName":{"name":"eq","nativeSrc":"487:2:101","nodeType":"YulIdentifier","src":"487:2:101"},"nativeSrc":"487:33:101","nodeType":"YulFunctionCall","src":"487:33:101"}],"functionName":{"name":"iszero","nativeSrc":"480:6:101","nodeType":"YulIdentifier","src":"480:6:101"},"nativeSrc":"480:41:101","nodeType":"YulFunctionCall","src":"480:41:101"},"nativeSrc":"477:61:101","nodeType":"YulIf","src":"477:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"426:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"460:5:101","nodeType":"YulTypedName","src":"460:5:101","type":""}],"src":"426:118:101"},{"body":{"nativeSrc":"611:78:101","nodeType":"YulBlock","src":"611:78:101","statements":[{"nativeSrc":"621:22:101","nodeType":"YulAssignment","src":"621:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"636:6:101","nodeType":"YulIdentifier","src":"636:6:101"}],"functionName":{"name":"mload","nativeSrc":"630:5:101","nodeType":"YulIdentifier","src":"630:5:101"},"nativeSrc":"630:13:101","nodeType":"YulFunctionCall","src":"630:13:101"},"variableNames":[{"name":"value","nativeSrc":"621:5:101","nodeType":"YulIdentifier","src":"621:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"677:5:101","nodeType":"YulIdentifier","src":"677:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"652:24:101","nodeType":"YulIdentifier","src":"652:24:101"},"nativeSrc":"652:31:101","nodeType":"YulFunctionCall","src":"652:31:101"},"nativeSrc":"652:31:101","nodeType":"YulExpressionStatement","src":"652:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"550:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"589:6:101","nodeType":"YulTypedName","src":"589:6:101","type":""},{"name":"end","nativeSrc":"597:3:101","nodeType":"YulTypedName","src":"597:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"605:5:101","nodeType":"YulTypedName","src":"605:5:101","type":""}],"src":"550:139:101"},{"body":{"nativeSrc":"739:32:101","nodeType":"YulBlock","src":"739:32:101","statements":[{"nativeSrc":"749:16:101","nodeType":"YulAssignment","src":"749:16:101","value":{"name":"value","nativeSrc":"760:5:101","nodeType":"YulIdentifier","src":"760:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"749:7:101","nodeType":"YulIdentifier","src":"749:7:101"}]}]},"name":"cleanup_t_int256","nativeSrc":"695:76:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"721:5:101","nodeType":"YulTypedName","src":"721:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"731:7:101","nodeType":"YulTypedName","src":"731:7:101","type":""}],"src":"695:76:101"},{"body":{"nativeSrc":"819:78:101","nodeType":"YulBlock","src":"819:78:101","statements":[{"body":{"nativeSrc":"875:16:101","nodeType":"YulBlock","src":"875:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"884:1:101","nodeType":"YulLiteral","src":"884:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"887:1:101","nodeType":"YulLiteral","src":"887:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"877:6:101","nodeType":"YulIdentifier","src":"877:6:101"},"nativeSrc":"877:12:101","nodeType":"YulFunctionCall","src":"877:12:101"},"nativeSrc":"877:12:101","nodeType":"YulExpressionStatement","src":"877:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"842:5:101","nodeType":"YulIdentifier","src":"842:5:101"},{"arguments":[{"name":"value","nativeSrc":"866:5:101","nodeType":"YulIdentifier","src":"866:5:101"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"849:16:101","nodeType":"YulIdentifier","src":"849:16:101"},"nativeSrc":"849:23:101","nodeType":"YulFunctionCall","src":"849:23:101"}],"functionName":{"name":"eq","nativeSrc":"839:2:101","nodeType":"YulIdentifier","src":"839:2:101"},"nativeSrc":"839:34:101","nodeType":"YulFunctionCall","src":"839:34:101"}],"functionName":{"name":"iszero","nativeSrc":"832:6:101","nodeType":"YulIdentifier","src":"832:6:101"},"nativeSrc":"832:42:101","nodeType":"YulFunctionCall","src":"832:42:101"},"nativeSrc":"829:62:101","nodeType":"YulIf","src":"829:62:101"}]},"name":"validator_revert_t_int256","nativeSrc":"777:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"812:5:101","nodeType":"YulTypedName","src":"812:5:101","type":""}],"src":"777:120:101"},{"body":{"nativeSrc":"965:79:101","nodeType":"YulBlock","src":"965:79:101","statements":[{"nativeSrc":"975:22:101","nodeType":"YulAssignment","src":"975:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"990:6:101","nodeType":"YulIdentifier","src":"990:6:101"}],"functionName":{"name":"mload","nativeSrc":"984:5:101","nodeType":"YulIdentifier","src":"984:5:101"},"nativeSrc":"984:13:101","nodeType":"YulFunctionCall","src":"984:13:101"},"variableNames":[{"name":"value","nativeSrc":"975:5:101","nodeType":"YulIdentifier","src":"975:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1032:5:101","nodeType":"YulIdentifier","src":"1032:5:101"}],"functionName":{"name":"validator_revert_t_int256","nativeSrc":"1006:25:101","nodeType":"YulIdentifier","src":"1006:25:101"},"nativeSrc":"1006:32:101","nodeType":"YulFunctionCall","src":"1006:32:101"},"nativeSrc":"1006:32:101","nodeType":"YulExpressionStatement","src":"1006:32:101"}]},"name":"abi_decode_t_int256_fromMemory","nativeSrc":"903:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"943:6:101","nodeType":"YulTypedName","src":"943:6:101","type":""},{"name":"end","nativeSrc":"951:3:101","nodeType":"YulTypedName","src":"951:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"959:5:101","nodeType":"YulTypedName","src":"959:5:101","type":""}],"src":"903:141:101"},{"body":{"nativeSrc":"1141:410:101","nodeType":"YulBlock","src":"1141:410:101","statements":[{"body":{"nativeSrc":"1187:83:101","nodeType":"YulBlock","src":"1187:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1189:77:101","nodeType":"YulIdentifier","src":"1189:77:101"},"nativeSrc":"1189:79:101","nodeType":"YulFunctionCall","src":"1189:79:101"},"nativeSrc":"1189:79:101","nodeType":"YulExpressionStatement","src":"1189:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1162:7:101","nodeType":"YulIdentifier","src":"1162:7:101"},{"name":"headStart","nativeSrc":"1171:9:101","nodeType":"YulIdentifier","src":"1171:9:101"}],"functionName":{"name":"sub","nativeSrc":"1158:3:101","nodeType":"YulIdentifier","src":"1158:3:101"},"nativeSrc":"1158:23:101","nodeType":"YulFunctionCall","src":"1158:23:101"},{"kind":"number","nativeSrc":"1183:2:101","nodeType":"YulLiteral","src":"1183:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1154:3:101","nodeType":"YulIdentifier","src":"1154:3:101"},"nativeSrc":"1154:32:101","nodeType":"YulFunctionCall","src":"1154:32:101"},"nativeSrc":"1151:119:101","nodeType":"YulIf","src":"1151:119:101"},{"nativeSrc":"1280:126:101","nodeType":"YulBlock","src":"1280:126:101","statements":[{"nativeSrc":"1295:15:101","nodeType":"YulVariableDeclaration","src":"1295:15:101","value":{"kind":"number","nativeSrc":"1309:1:101","nodeType":"YulLiteral","src":"1309:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1299:6:101","nodeType":"YulTypedName","src":"1299:6:101","type":""}]},{"nativeSrc":"1324:72:101","nodeType":"YulAssignment","src":"1324:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1368:9:101","nodeType":"YulIdentifier","src":"1368:9:101"},{"name":"offset","nativeSrc":"1379:6:101","nodeType":"YulIdentifier","src":"1379:6:101"}],"functionName":{"name":"add","nativeSrc":"1364:3:101","nodeType":"YulIdentifier","src":"1364:3:101"},"nativeSrc":"1364:22:101","nodeType":"YulFunctionCall","src":"1364:22:101"},{"name":"dataEnd","nativeSrc":"1388:7:101","nodeType":"YulIdentifier","src":"1388:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"1334:29:101","nodeType":"YulIdentifier","src":"1334:29:101"},"nativeSrc":"1334:62:101","nodeType":"YulFunctionCall","src":"1334:62:101"},"variableNames":[{"name":"value0","nativeSrc":"1324:6:101","nodeType":"YulIdentifier","src":"1324:6:101"}]}]},{"nativeSrc":"1416:128:101","nodeType":"YulBlock","src":"1416:128:101","statements":[{"nativeSrc":"1431:16:101","nodeType":"YulVariableDeclaration","src":"1431:16:101","value":{"kind":"number","nativeSrc":"1445:2:101","nodeType":"YulLiteral","src":"1445:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1435:6:101","nodeType":"YulTypedName","src":"1435:6:101","type":""}]},{"nativeSrc":"1461:73:101","nodeType":"YulAssignment","src":"1461:73:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1506:9:101","nodeType":"YulIdentifier","src":"1506:9:101"},{"name":"offset","nativeSrc":"1517:6:101","nodeType":"YulIdentifier","src":"1517:6:101"}],"functionName":{"name":"add","nativeSrc":"1502:3:101","nodeType":"YulIdentifier","src":"1502:3:101"},"nativeSrc":"1502:22:101","nodeType":"YulFunctionCall","src":"1502:22:101"},{"name":"dataEnd","nativeSrc":"1526:7:101","nodeType":"YulIdentifier","src":"1526:7:101"}],"functionName":{"name":"abi_decode_t_int256_fromMemory","nativeSrc":"1471:30:101","nodeType":"YulIdentifier","src":"1471:30:101"},"nativeSrc":"1471:63:101","nodeType":"YulFunctionCall","src":"1471:63:101"},"variableNames":[{"name":"value1","nativeSrc":"1461:6:101","nodeType":"YulIdentifier","src":"1461:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8t_int256_fromMemory","nativeSrc":"1050:501:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1103:9:101","nodeType":"YulTypedName","src":"1103:9:101","type":""},{"name":"dataEnd","nativeSrc":"1114:7:101","nodeType":"YulTypedName","src":"1114:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1126:6:101","nodeType":"YulTypedName","src":"1126:6:101","type":""},{"name":"value1","nativeSrc":"1134:6:101","nodeType":"YulTypedName","src":"1134:6:101","type":""}],"src":"1050:501:101"},{"body":{"nativeSrc":"1585:152:101","nodeType":"YulBlock","src":"1585:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1602:1:101","nodeType":"YulLiteral","src":"1602:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1605:77:101","nodeType":"YulLiteral","src":"1605:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1595:6:101","nodeType":"YulIdentifier","src":"1595:6:101"},"nativeSrc":"1595:88:101","nodeType":"YulFunctionCall","src":"1595:88:101"},"nativeSrc":"1595:88:101","nodeType":"YulExpressionStatement","src":"1595:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1699:1:101","nodeType":"YulLiteral","src":"1699:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"1702:4:101","nodeType":"YulLiteral","src":"1702:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1692:6:101","nodeType":"YulIdentifier","src":"1692:6:101"},"nativeSrc":"1692:15:101","nodeType":"YulFunctionCall","src":"1692:15:101"},"nativeSrc":"1692:15:101","nodeType":"YulExpressionStatement","src":"1692:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1723:1:101","nodeType":"YulLiteral","src":"1723:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1726:4:101","nodeType":"YulLiteral","src":"1726:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1716:6:101","nodeType":"YulIdentifier","src":"1716:6:101"},"nativeSrc":"1716:15:101","nodeType":"YulFunctionCall","src":"1716:15:101"},"nativeSrc":"1716:15:101","nodeType":"YulExpressionStatement","src":"1716:15:101"}]},"name":"panic_error_0x11","nativeSrc":"1557:180:101","nodeType":"YulFunctionDefinition","src":"1557:180:101"},{"body":{"nativeSrc":"1788:32:101","nodeType":"YulBlock","src":"1788:32:101","statements":[{"nativeSrc":"1798:16:101","nodeType":"YulAssignment","src":"1798:16:101","value":{"name":"value","nativeSrc":"1809:5:101","nodeType":"YulIdentifier","src":"1809:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1798:7:101","nodeType":"YulIdentifier","src":"1798:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1743:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1770:5:101","nodeType":"YulTypedName","src":"1770:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1780:7:101","nodeType":"YulTypedName","src":"1780:7:101","type":""}],"src":"1743:77:101"},{"body":{"nativeSrc":"1869:190:101","nodeType":"YulBlock","src":"1869:190:101","statements":[{"nativeSrc":"1879:33:101","nodeType":"YulAssignment","src":"1879:33:101","value":{"arguments":[{"name":"value","nativeSrc":"1906:5:101","nodeType":"YulIdentifier","src":"1906:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1888:17:101","nodeType":"YulIdentifier","src":"1888:17:101"},"nativeSrc":"1888:24:101","nodeType":"YulFunctionCall","src":"1888:24:101"},"variableNames":[{"name":"value","nativeSrc":"1879:5:101","nodeType":"YulIdentifier","src":"1879:5:101"}]},{"body":{"nativeSrc":"2002:22:101","nodeType":"YulBlock","src":"2002:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"2004:16:101","nodeType":"YulIdentifier","src":"2004:16:101"},"nativeSrc":"2004:18:101","nodeType":"YulFunctionCall","src":"2004:18:101"},"nativeSrc":"2004:18:101","nodeType":"YulExpressionStatement","src":"2004:18:101"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"1927:5:101","nodeType":"YulIdentifier","src":"1927:5:101"},{"kind":"number","nativeSrc":"1934:66:101","nodeType":"YulLiteral","src":"1934:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"1924:2:101","nodeType":"YulIdentifier","src":"1924:2:101"},"nativeSrc":"1924:77:101","nodeType":"YulFunctionCall","src":"1924:77:101"},"nativeSrc":"1921:103:101","nodeType":"YulIf","src":"1921:103:101"},{"nativeSrc":"2033:20:101","nodeType":"YulAssignment","src":"2033:20:101","value":{"arguments":[{"name":"value","nativeSrc":"2044:5:101","nodeType":"YulIdentifier","src":"2044:5:101"},{"kind":"number","nativeSrc":"2051:1:101","nodeType":"YulLiteral","src":"2051:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2040:3:101","nodeType":"YulIdentifier","src":"2040:3:101"},"nativeSrc":"2040:13:101","nodeType":"YulFunctionCall","src":"2040:13:101"},"variableNames":[{"name":"ret","nativeSrc":"2033:3:101","nodeType":"YulIdentifier","src":"2033:3:101"}]}]},"name":"increment_t_uint256","nativeSrc":"1826:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1855:5:101","nodeType":"YulTypedName","src":"1855:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1865:3:101","nodeType":"YulTypedName","src":"1865:3:101","type":""}],"src":"1826:233:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function cleanup_t_int256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_int256(value) {\n        if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_int256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_int256(value)\n    }\n\n    function abi_decode_tuple_t_uint8t_int256_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_int256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function increment_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060405161063038038061063083398101604081905261002e916100d4565b5f805460ff191660ff84161790556100458161004c565b505061013a565b60018190554260025560038054905f61006483610122565b9091555050600380545f908152600460209081526040808320949094558254825260058152838220429081905592548252600690529190912055565b60ff81165b81146100af575f80fd5b50565b80516100bd816100a0565b92915050565b806100a5565b80516100bd816100c3565b5f80604083850312156100e8576100e85f80fd5b5f6100f385856100b2565b9250506020610104858286016100c9565b9150509250929050565b634e487b7160e01b5f52601160045260245ffd5b5f5f1982036101335761013361010e565b5060010190565b6104e9806101475f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638205bf6a1161006e5780638205bf6a146101985780639a6fc8f5146101a1578063a87a20ce146101f8578063b5ab58dc1461020b578063b633620c1461022a578063feaf968c14610249575f80fd5b8063313ce567146100b55780634aa2011f146100d757806350d25bcd1461013357806354fd4d5014610149578063668a0f02146101505780637284e41614610159575b5f80fd5b5f546100c19060ff1681565b6040516100ce91906102d2565b60405180910390f35b6101316100e536600461031d565b69ffffffffffffffffffff9093166003818155600184905560028390555f9182526004602090815260408084209590955581548352600581528483209390935554815260069091522055565b005b61013c60015481565b6040516100ce9190610383565b61013c5f81565b61013c60035481565b604080518082018252601f81527f76302e362f74657374732f4d6f636b563341676772656761746f722e736f6c00602082015290516100ce91906103cd565b61013c60025481565b6101e76101af3660046103e5565b69ffffffffffffffffffff81165f90815260046020908152604080832054600683528184205460059093529220549293919290918490565b6040516100ce95949392919061041d565b610131610206366004610469565b610273565b61013c610219366004610469565b60046020525f908152604090205481565b61013c610238366004610469565b60056020525f908152604090205481565b6003545f8181526004602090815260408083205460068352818420546005909352922054836101e7565b60018190554260025560038054905f61028b8361049b565b9091555050600380545f908152600460209081526040808320949094558254825260058152838220429081905592548252600690529190912055565b60ff81165b82525050565b602081016102e082846102c7565b92915050565b69ffffffffffffffffffff81165b81146102fe575f80fd5b50565b80356102e0816102e6565b806102f4565b80356102e08161030c565b5f805f8060808587031215610333576103335f80fd5b5f61033e8787610301565b945050602061034f87828801610312565b935050604061036087828801610312565b925050606061037187828801610312565b91505092959194509250565b806102cc565b602081016102e0828461037d565b8281835e505f910152565b5f6103a5825190565b8084526020840193506103bc818560208601610391565b601f01601f19169290920192915050565b602080825281016103de818461039c565b9392505050565b5f602082840312156103f8576103f85f80fd5b5f6104038484610301565b949350505050565b69ffffffffffffffffffff81166102cc565b60a0810161042b828861040b565b610438602083018761037d565b610445604083018661037d565b610452606083018561037d565b61045f608083018461040b565b9695505050505050565b5f6020828403121561047c5761047c5f80fd5b5f6104038484610312565b634e487b7160e01b5f52601160045260245ffd5b5f5f1982036104ac576104ac610487565b506001019056fea2646970667358221220210b5ba3fc4b20df645448975cae863e242361e8006d50aafb7703c93efe025d64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x630 CODESIZE SUB DUP1 PUSH2 0x630 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0xD4 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0x45 DUP2 PUSH2 0x4C JUMP JUMPDEST POP POP PUSH2 0x13A JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH0 PUSH2 0x64 DUP4 PUSH2 0x122 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 DUP1 SLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP3 SLOAD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE DUP4 DUP3 KECCAK256 TIMESTAMP SWAP1 DUP2 SWAP1 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0xFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0xAF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0xBD DUP2 PUSH2 0xA0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH2 0xA5 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xBD DUP2 PUSH2 0xC3 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE8 JUMPI PUSH2 0xE8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xF3 DUP6 DUP6 PUSH2 0xB2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x104 DUP6 DUP3 DUP7 ADD PUSH2 0xC9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 NOT DUP3 SUB PUSH2 0x133 JUMPI PUSH2 0x133 PUSH2 0x10E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0x4E9 DUP1 PUSH2 0x147 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8205BF6A GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x9A6FC8F5 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0xA87A20CE EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xB5AB58DC EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xB633620C EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0xFEAF968C EQ PUSH2 0x249 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x4AA2011F EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x668A0F02 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x7284E416 EQ PUSH2 0x159 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 SLOAD PUSH2 0xC1 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND PUSH1 0x3 DUP2 DUP2 SSTORE PUSH1 0x1 DUP5 SWAP1 SSTORE PUSH1 0x2 DUP4 SWAP1 SSTORE PUSH0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP6 SWAP1 SWAP6 SSTORE DUP2 SLOAD DUP4 MSTORE PUSH1 0x5 DUP2 MSTORE DUP5 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SLOAD DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13C PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x383 JUMP JUMPDEST PUSH2 0x13C PUSH0 DUP2 JUMP JUMPDEST PUSH2 0x13C PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH32 0x76302E362F74657374732F4D6F636B563341676772656761746F722E736F6C00 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x3CD JUMP JUMPDEST PUSH2 0x13C PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0x3E5 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x131 PUSH2 0x206 CALLDATASIZE PUSH1 0x4 PUSH2 0x469 JUMP JUMPDEST PUSH2 0x273 JUMP JUMPDEST PUSH2 0x13C PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x469 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x13C PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x469 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD DUP4 PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH0 PUSH2 0x28B DUP4 PUSH2 0x49B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 DUP1 SLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP3 SLOAD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE DUP4 DUP3 KECCAK256 TIMESTAMP SWAP1 DUP2 SWAP1 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0xFF DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2E0 DUP3 DUP5 PUSH2 0x2C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x2FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2E0 DUP2 PUSH2 0x2E6 JUMP JUMPDEST DUP1 PUSH2 0x2F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2E0 DUP2 PUSH2 0x30C JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x333 JUMPI PUSH2 0x333 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x33E DUP8 DUP8 PUSH2 0x301 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x34F DUP8 DUP3 DUP9 ADD PUSH2 0x312 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x360 DUP8 DUP3 DUP9 ADD PUSH2 0x312 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x371 DUP8 DUP3 DUP9 ADD PUSH2 0x312 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP1 PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2E0 DUP3 DUP5 PUSH2 0x37D JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x3A5 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x3BC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x391 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3DE DUP2 DUP5 PUSH2 0x39C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F8 JUMPI PUSH2 0x3F8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x403 DUP5 DUP5 PUSH2 0x301 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x2CC JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x42B DUP3 DUP9 PUSH2 0x40B JUMP JUMPDEST PUSH2 0x438 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x445 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x452 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x45F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x40B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x47C JUMPI PUSH2 0x47C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x403 DUP5 DUP5 PUSH2 0x312 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 NOT DUP3 SUB PUSH2 0x4AC JUMPI PUSH2 0x4AC PUSH2 0x487 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 SIGNEXTEND JUMPDEST LOG3 0xFC 0x4B KECCAK256 0xDF PUSH5 0x5448975CAE DUP7 RETURNDATACOPY 0x24 0x23 PUSH2 0xE800 PUSH14 0x50AAFB7703C93EFE025D64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"409:2008:82:-:0;;;795:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;857:8;:20;;-1:-1:-1;;857:20:82;;;;;;;887:28;900:14;887:12;:28::i;:::-;795:127;;409:2008;;1759:298;1814:12;:22;;;1864:15;1846;:33;1889:11;:13;;;-1:-1:-1;1889:13:82;;;:::i;:::-;;;;-1:-1:-1;;1922:11:82;;;1912:22;;;;:9;:22;;;;;;;;:32;;;;1967:11;;1954:25;;:12;:25;;;;;1982:15;1954:43;;;;2020:11;;2007:25;;:12;:25;;;;;;:43;1759:298::o;426:118:101:-;409:4;398:16;;497:22;490:5;487:33;477:61;;534:1;531;524:12;477:61;426:118;:::o;550:139::-;630:13;;652:31;630:13;652:31;:::i;:::-;550:139;;;;:::o;777:120::-;866:5;849:23;695:76;903:141;984:13;;1006:32;984:13;1006:32;:::i;1050:501::-;1126:6;1134;1183:2;1171:9;1162:7;1158:23;1154:32;1151:119;;;1189:79;197:1;194;187:12;1189:79;1309:1;1334:62;1388:7;1368:9;1334:62;:::i;:::-;1324:72;;1280:126;1445:2;1471:63;1526:7;1517:6;1506:9;1502:22;1471:63;:::i;:::-;1461:73;;1416:128;1050:501;;;;;:::o;1557:180::-;-1:-1:-1;;;1602:1:101;1595:88;1702:4;1699:1;1692:15;1726:4;1723:1;1716:15;1826:233;1865:3;-1:-1:-1;;1927:5:101;1924:77;1921:103;;2004:18;;:::i;:::-;-1:-1:-1;2051:1:101;2040:13;;1826:233::o;:::-;409:2008:82;;;;;;"},"deployedBytecode":{"functionDebugData":{"@decimals_8150":{"entryPoint":null,"id":8150,"parameterSlots":0,"returnSlots":0},"@description_8254":{"entryPoint":null,"id":8254,"parameterSlots":0,"returnSlots":1},"@getAnswer_8160":{"entryPoint":null,"id":8160,"parameterSlots":0,"returnSlots":0},"@getRoundData_8213":{"entryPoint":null,"id":8213,"parameterSlots":1,"returnSlots":5},"@getTimestamp_8164":{"entryPoint":null,"id":8164,"parameterSlots":0,"returnSlots":0},"@latestAnswer_8152":{"entryPoint":null,"id":8152,"parameterSlots":0,"returnSlots":0},"@latestRoundData_8246":{"entryPoint":null,"id":8246,"parameterSlots":0,"returnSlots":5},"@latestRound_8156":{"entryPoint":null,"id":8156,"parameterSlots":0,"returnSlots":0},"@latestTimestamp_8154":{"entryPoint":null,"id":8154,"parameterSlots":0,"returnSlots":0},"@updateAnswer_8292":{"entryPoint":627,"id":8292,"parameterSlots":1,"returnSlots":0},"@updateRoundData_8334":{"entryPoint":null,"id":8334,"parameterSlots":4,"returnSlots":0},"@version_8148":{"entryPoint":null,"id":8148,"parameterSlots":0,"returnSlots":0},"abi_decode_t_int256":{"entryPoint":786,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint80":{"entryPoint":769,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_int256":{"entryPoint":1129,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint80":{"entryPoint":997,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256":{"entryPoint":797,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_t_int256_to_t_int256_fromStack":{"entryPoint":893,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":924,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint80_to_t_uint80_fromStack":{"entryPoint":1035,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":711,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed":{"entryPoint":899,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":973,"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_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed":{"entryPoint":1053,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":722,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_int256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint80":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":913,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":1179,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":1159,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_int256":{"entryPoint":780,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint80":{"entryPoint":742,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6752:101","nodeType":"YulBlock","src":"0:6752:101","statements":[{"body":{"nativeSrc":"50:43:101","nodeType":"YulBlock","src":"50:43:101","statements":[{"nativeSrc":"60:27:101","nodeType":"YulAssignment","src":"60:27:101","value":{"arguments":[{"name":"value","nativeSrc":"75:5:101","nodeType":"YulIdentifier","src":"75:5:101"},{"kind":"number","nativeSrc":"82:4:101","nodeType":"YulLiteral","src":"82:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"71:3:101","nodeType":"YulIdentifier","src":"71:3:101"},"nativeSrc":"71:16:101","nodeType":"YulFunctionCall","src":"71:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"60:7:101","nodeType":"YulIdentifier","src":"60:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"32:5:101","nodeType":"YulTypedName","src":"32:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"42:7:101","nodeType":"YulTypedName","src":"42:7:101","type":""}],"src":"7:86:101"},{"body":{"nativeSrc":"160:51:101","nodeType":"YulBlock","src":"160:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"177:3:101","nodeType":"YulIdentifier","src":"177:3:101"},{"arguments":[{"name":"value","nativeSrc":"198:5:101","nodeType":"YulIdentifier","src":"198:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"182:15:101","nodeType":"YulIdentifier","src":"182:15:101"},"nativeSrc":"182:22:101","nodeType":"YulFunctionCall","src":"182:22:101"}],"functionName":{"name":"mstore","nativeSrc":"170:6:101","nodeType":"YulIdentifier","src":"170:6:101"},"nativeSrc":"170:35:101","nodeType":"YulFunctionCall","src":"170:35:101"},"nativeSrc":"170:35:101","nodeType":"YulExpressionStatement","src":"170:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"99:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"148:5:101","nodeType":"YulTypedName","src":"148:5:101","type":""},{"name":"pos","nativeSrc":"155:3:101","nodeType":"YulTypedName","src":"155:3:101","type":""}],"src":"99:112:101"},{"body":{"nativeSrc":"311:120:101","nodeType":"YulBlock","src":"311:120:101","statements":[{"nativeSrc":"321:26:101","nodeType":"YulAssignment","src":"321:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"333:9:101","nodeType":"YulIdentifier","src":"333:9:101"},{"kind":"number","nativeSrc":"344:2:101","nodeType":"YulLiteral","src":"344:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"329:3:101","nodeType":"YulIdentifier","src":"329:3:101"},"nativeSrc":"329:18:101","nodeType":"YulFunctionCall","src":"329:18:101"},"variableNames":[{"name":"tail","nativeSrc":"321:4:101","nodeType":"YulIdentifier","src":"321:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"397:6:101","nodeType":"YulIdentifier","src":"397:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"410:9:101","nodeType":"YulIdentifier","src":"410:9:101"},{"kind":"number","nativeSrc":"421:1:101","nodeType":"YulLiteral","src":"421:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"406:3:101","nodeType":"YulIdentifier","src":"406:3:101"},"nativeSrc":"406:17:101","nodeType":"YulFunctionCall","src":"406:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"357:39:101","nodeType":"YulIdentifier","src":"357:39:101"},"nativeSrc":"357:67:101","nodeType":"YulFunctionCall","src":"357:67:101"},"nativeSrc":"357:67:101","nodeType":"YulExpressionStatement","src":"357:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"217:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"283:9:101","nodeType":"YulTypedName","src":"283:9:101","type":""},{"name":"value0","nativeSrc":"295:6:101","nodeType":"YulTypedName","src":"295:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"306:4:101","nodeType":"YulTypedName","src":"306:4:101","type":""}],"src":"217:214:101"},{"body":{"nativeSrc":"477:35:101","nodeType":"YulBlock","src":"477:35:101","statements":[{"nativeSrc":"487:19:101","nodeType":"YulAssignment","src":"487:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"503:2:101","nodeType":"YulLiteral","src":"503:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"497:5:101","nodeType":"YulIdentifier","src":"497:5:101"},"nativeSrc":"497:9:101","nodeType":"YulFunctionCall","src":"497:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"487:6:101","nodeType":"YulIdentifier","src":"487:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"437:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"470:6:101","nodeType":"YulTypedName","src":"470:6:101","type":""}],"src":"437:75:101"},{"body":{"nativeSrc":"607:28:101","nodeType":"YulBlock","src":"607:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"624:1:101","nodeType":"YulLiteral","src":"624:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"627:1:101","nodeType":"YulLiteral","src":"627:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"617:6:101","nodeType":"YulIdentifier","src":"617:6:101"},"nativeSrc":"617:12:101","nodeType":"YulFunctionCall","src":"617:12:101"},"nativeSrc":"617:12:101","nodeType":"YulExpressionStatement","src":"617:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"518:117:101","nodeType":"YulFunctionDefinition","src":"518:117:101"},{"body":{"nativeSrc":"730:28:101","nodeType":"YulBlock","src":"730:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"747:1:101","nodeType":"YulLiteral","src":"747:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"750:1:101","nodeType":"YulLiteral","src":"750:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"740:6:101","nodeType":"YulIdentifier","src":"740:6:101"},"nativeSrc":"740:12:101","nodeType":"YulFunctionCall","src":"740:12:101"},"nativeSrc":"740:12:101","nodeType":"YulExpressionStatement","src":"740:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"641:117:101","nodeType":"YulFunctionDefinition","src":"641:117:101"},{"body":{"nativeSrc":"808:61:101","nodeType":"YulBlock","src":"808:61:101","statements":[{"nativeSrc":"818:45:101","nodeType":"YulAssignment","src":"818:45:101","value":{"arguments":[{"name":"value","nativeSrc":"833:5:101","nodeType":"YulIdentifier","src":"833:5:101"},{"kind":"number","nativeSrc":"840:22:101","nodeType":"YulLiteral","src":"840:22:101","type":"","value":"0xffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"829:3:101","nodeType":"YulIdentifier","src":"829:3:101"},"nativeSrc":"829:34:101","nodeType":"YulFunctionCall","src":"829:34:101"},"variableNames":[{"name":"cleaned","nativeSrc":"818:7:101","nodeType":"YulIdentifier","src":"818:7:101"}]}]},"name":"cleanup_t_uint80","nativeSrc":"764:105:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"790:5:101","nodeType":"YulTypedName","src":"790:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"800:7:101","nodeType":"YulTypedName","src":"800:7:101","type":""}],"src":"764:105:101"},{"body":{"nativeSrc":"917:78:101","nodeType":"YulBlock","src":"917:78:101","statements":[{"body":{"nativeSrc":"973:16:101","nodeType":"YulBlock","src":"973:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"982:1:101","nodeType":"YulLiteral","src":"982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"985:1:101","nodeType":"YulLiteral","src":"985:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"975:6:101","nodeType":"YulIdentifier","src":"975:6:101"},"nativeSrc":"975:12:101","nodeType":"YulFunctionCall","src":"975:12:101"},"nativeSrc":"975:12:101","nodeType":"YulExpressionStatement","src":"975:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"940:5:101","nodeType":"YulIdentifier","src":"940:5:101"},{"arguments":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulIdentifier","src":"964:5:101"}],"functionName":{"name":"cleanup_t_uint80","nativeSrc":"947:16:101","nodeType":"YulIdentifier","src":"947:16:101"},"nativeSrc":"947:23:101","nodeType":"YulFunctionCall","src":"947:23:101"}],"functionName":{"name":"eq","nativeSrc":"937:2:101","nodeType":"YulIdentifier","src":"937:2:101"},"nativeSrc":"937:34:101","nodeType":"YulFunctionCall","src":"937:34:101"}],"functionName":{"name":"iszero","nativeSrc":"930:6:101","nodeType":"YulIdentifier","src":"930:6:101"},"nativeSrc":"930:42:101","nodeType":"YulFunctionCall","src":"930:42:101"},"nativeSrc":"927:62:101","nodeType":"YulIf","src":"927:62:101"}]},"name":"validator_revert_t_uint80","nativeSrc":"875:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"910:5:101","nodeType":"YulTypedName","src":"910:5:101","type":""}],"src":"875:120:101"},{"body":{"nativeSrc":"1052:86:101","nodeType":"YulBlock","src":"1052:86:101","statements":[{"nativeSrc":"1062:29:101","nodeType":"YulAssignment","src":"1062:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1084:6:101","nodeType":"YulIdentifier","src":"1084:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1071:12:101","nodeType":"YulIdentifier","src":"1071:12:101"},"nativeSrc":"1071:20:101","nodeType":"YulFunctionCall","src":"1071:20:101"},"variableNames":[{"name":"value","nativeSrc":"1062:5:101","nodeType":"YulIdentifier","src":"1062:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1126:5:101","nodeType":"YulIdentifier","src":"1126:5:101"}],"functionName":{"name":"validator_revert_t_uint80","nativeSrc":"1100:25:101","nodeType":"YulIdentifier","src":"1100:25:101"},"nativeSrc":"1100:32:101","nodeType":"YulFunctionCall","src":"1100:32:101"},"nativeSrc":"1100:32:101","nodeType":"YulExpressionStatement","src":"1100:32:101"}]},"name":"abi_decode_t_uint80","nativeSrc":"1001:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1030:6:101","nodeType":"YulTypedName","src":"1030:6:101","type":""},{"name":"end","nativeSrc":"1038:3:101","nodeType":"YulTypedName","src":"1038:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1046:5:101","nodeType":"YulTypedName","src":"1046:5:101","type":""}],"src":"1001:137:101"},{"body":{"nativeSrc":"1188:32:101","nodeType":"YulBlock","src":"1188:32:101","statements":[{"nativeSrc":"1198:16:101","nodeType":"YulAssignment","src":"1198:16:101","value":{"name":"value","nativeSrc":"1209:5:101","nodeType":"YulIdentifier","src":"1209:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1198:7:101","nodeType":"YulIdentifier","src":"1198:7:101"}]}]},"name":"cleanup_t_int256","nativeSrc":"1144:76:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1170:5:101","nodeType":"YulTypedName","src":"1170:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1180:7:101","nodeType":"YulTypedName","src":"1180:7:101","type":""}],"src":"1144:76:101"},{"body":{"nativeSrc":"1268:78:101","nodeType":"YulBlock","src":"1268:78:101","statements":[{"body":{"nativeSrc":"1324:16:101","nodeType":"YulBlock","src":"1324:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1333:1:101","nodeType":"YulLiteral","src":"1333:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1336:1:101","nodeType":"YulLiteral","src":"1336:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1326:6:101","nodeType":"YulIdentifier","src":"1326:6:101"},"nativeSrc":"1326:12:101","nodeType":"YulFunctionCall","src":"1326:12:101"},"nativeSrc":"1326:12:101","nodeType":"YulExpressionStatement","src":"1326:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1291:5:101","nodeType":"YulIdentifier","src":"1291:5:101"},{"arguments":[{"name":"value","nativeSrc":"1315:5:101","nodeType":"YulIdentifier","src":"1315:5:101"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"1298:16:101","nodeType":"YulIdentifier","src":"1298:16:101"},"nativeSrc":"1298:23:101","nodeType":"YulFunctionCall","src":"1298:23:101"}],"functionName":{"name":"eq","nativeSrc":"1288:2:101","nodeType":"YulIdentifier","src":"1288:2:101"},"nativeSrc":"1288:34:101","nodeType":"YulFunctionCall","src":"1288:34:101"}],"functionName":{"name":"iszero","nativeSrc":"1281:6:101","nodeType":"YulIdentifier","src":"1281:6:101"},"nativeSrc":"1281:42:101","nodeType":"YulFunctionCall","src":"1281:42:101"},"nativeSrc":"1278:62:101","nodeType":"YulIf","src":"1278:62:101"}]},"name":"validator_revert_t_int256","nativeSrc":"1226:120:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1261:5:101","nodeType":"YulTypedName","src":"1261:5:101","type":""}],"src":"1226:120:101"},{"body":{"nativeSrc":"1403:86:101","nodeType":"YulBlock","src":"1403:86:101","statements":[{"nativeSrc":"1413:29:101","nodeType":"YulAssignment","src":"1413:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1435:6:101","nodeType":"YulIdentifier","src":"1435:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1422:12:101","nodeType":"YulIdentifier","src":"1422:12:101"},"nativeSrc":"1422:20:101","nodeType":"YulFunctionCall","src":"1422:20:101"},"variableNames":[{"name":"value","nativeSrc":"1413:5:101","nodeType":"YulIdentifier","src":"1413:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1477:5:101","nodeType":"YulIdentifier","src":"1477:5:101"}],"functionName":{"name":"validator_revert_t_int256","nativeSrc":"1451:25:101","nodeType":"YulIdentifier","src":"1451:25:101"},"nativeSrc":"1451:32:101","nodeType":"YulFunctionCall","src":"1451:32:101"},"nativeSrc":"1451:32:101","nodeType":"YulExpressionStatement","src":"1451:32:101"}]},"name":"abi_decode_t_int256","nativeSrc":"1352:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1381:6:101","nodeType":"YulTypedName","src":"1381:6:101","type":""},{"name":"end","nativeSrc":"1389:3:101","nodeType":"YulTypedName","src":"1389:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1397:5:101","nodeType":"YulTypedName","src":"1397:5:101","type":""}],"src":"1352:137:101"},{"body":{"nativeSrc":"1540:32:101","nodeType":"YulBlock","src":"1540:32:101","statements":[{"nativeSrc":"1550:16:101","nodeType":"YulAssignment","src":"1550:16:101","value":{"name":"value","nativeSrc":"1561:5:101","nodeType":"YulIdentifier","src":"1561:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1550:7:101","nodeType":"YulIdentifier","src":"1550:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1495:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1522:5:101","nodeType":"YulTypedName","src":"1522:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1532:7:101","nodeType":"YulTypedName","src":"1532:7:101","type":""}],"src":"1495:77:101"},{"body":{"nativeSrc":"1621:79:101","nodeType":"YulBlock","src":"1621:79:101","statements":[{"body":{"nativeSrc":"1678:16:101","nodeType":"YulBlock","src":"1678:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1687:1:101","nodeType":"YulLiteral","src":"1687:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1690:1:101","nodeType":"YulLiteral","src":"1690:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1680:6:101","nodeType":"YulIdentifier","src":"1680:6:101"},"nativeSrc":"1680:12:101","nodeType":"YulFunctionCall","src":"1680:12:101"},"nativeSrc":"1680:12:101","nodeType":"YulExpressionStatement","src":"1680:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1644:5:101","nodeType":"YulIdentifier","src":"1644:5:101"},{"arguments":[{"name":"value","nativeSrc":"1669:5:101","nodeType":"YulIdentifier","src":"1669:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1651:17:101","nodeType":"YulIdentifier","src":"1651:17:101"},"nativeSrc":"1651:24:101","nodeType":"YulFunctionCall","src":"1651:24:101"}],"functionName":{"name":"eq","nativeSrc":"1641:2:101","nodeType":"YulIdentifier","src":"1641:2:101"},"nativeSrc":"1641:35:101","nodeType":"YulFunctionCall","src":"1641:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1634:6:101","nodeType":"YulIdentifier","src":"1634:6:101"},"nativeSrc":"1634:43:101","nodeType":"YulFunctionCall","src":"1634:43:101"},"nativeSrc":"1631:63:101","nodeType":"YulIf","src":"1631:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"1578:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1614:5:101","nodeType":"YulTypedName","src":"1614:5:101","type":""}],"src":"1578:122:101"},{"body":{"nativeSrc":"1758:87:101","nodeType":"YulBlock","src":"1758:87:101","statements":[{"nativeSrc":"1768:29:101","nodeType":"YulAssignment","src":"1768:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1790:6:101","nodeType":"YulIdentifier","src":"1790:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1777:12:101","nodeType":"YulIdentifier","src":"1777:12:101"},"nativeSrc":"1777:20:101","nodeType":"YulFunctionCall","src":"1777:20:101"},"variableNames":[{"name":"value","nativeSrc":"1768:5:101","nodeType":"YulIdentifier","src":"1768:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1833:5:101","nodeType":"YulIdentifier","src":"1833:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1806:26:101","nodeType":"YulIdentifier","src":"1806:26:101"},"nativeSrc":"1806:33:101","nodeType":"YulFunctionCall","src":"1806:33:101"},"nativeSrc":"1806:33:101","nodeType":"YulExpressionStatement","src":"1806:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1706:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1736:6:101","nodeType":"YulTypedName","src":"1736:6:101","type":""},{"name":"end","nativeSrc":"1744:3:101","nodeType":"YulTypedName","src":"1744:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1752:5:101","nodeType":"YulTypedName","src":"1752:5:101","type":""}],"src":"1706:139:101"},{"body":{"nativeSrc":"1966:646:101","nodeType":"YulBlock","src":"1966:646:101","statements":[{"body":{"nativeSrc":"2013:83:101","nodeType":"YulBlock","src":"2013:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2015:77:101","nodeType":"YulIdentifier","src":"2015:77:101"},"nativeSrc":"2015:79:101","nodeType":"YulFunctionCall","src":"2015:79:101"},"nativeSrc":"2015:79:101","nodeType":"YulExpressionStatement","src":"2015:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1987:7:101","nodeType":"YulIdentifier","src":"1987:7:101"},{"name":"headStart","nativeSrc":"1996:9:101","nodeType":"YulIdentifier","src":"1996:9:101"}],"functionName":{"name":"sub","nativeSrc":"1983:3:101","nodeType":"YulIdentifier","src":"1983:3:101"},"nativeSrc":"1983:23:101","nodeType":"YulFunctionCall","src":"1983:23:101"},{"kind":"number","nativeSrc":"2008:3:101","nodeType":"YulLiteral","src":"2008:3:101","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1979:3:101","nodeType":"YulIdentifier","src":"1979:3:101"},"nativeSrc":"1979:33:101","nodeType":"YulFunctionCall","src":"1979:33:101"},"nativeSrc":"1976:120:101","nodeType":"YulIf","src":"1976:120:101"},{"nativeSrc":"2106:116:101","nodeType":"YulBlock","src":"2106:116:101","statements":[{"nativeSrc":"2121:15:101","nodeType":"YulVariableDeclaration","src":"2121:15:101","value":{"kind":"number","nativeSrc":"2135:1:101","nodeType":"YulLiteral","src":"2135:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2125:6:101","nodeType":"YulTypedName","src":"2125:6:101","type":""}]},{"nativeSrc":"2150:62:101","nodeType":"YulAssignment","src":"2150:62:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2184:9:101","nodeType":"YulIdentifier","src":"2184:9:101"},{"name":"offset","nativeSrc":"2195:6:101","nodeType":"YulIdentifier","src":"2195:6:101"}],"functionName":{"name":"add","nativeSrc":"2180:3:101","nodeType":"YulIdentifier","src":"2180:3:101"},"nativeSrc":"2180:22:101","nodeType":"YulFunctionCall","src":"2180:22:101"},{"name":"dataEnd","nativeSrc":"2204:7:101","nodeType":"YulIdentifier","src":"2204:7:101"}],"functionName":{"name":"abi_decode_t_uint80","nativeSrc":"2160:19:101","nodeType":"YulIdentifier","src":"2160:19:101"},"nativeSrc":"2160:52:101","nodeType":"YulFunctionCall","src":"2160:52:101"},"variableNames":[{"name":"value0","nativeSrc":"2150:6:101","nodeType":"YulIdentifier","src":"2150:6:101"}]}]},{"nativeSrc":"2232:117:101","nodeType":"YulBlock","src":"2232:117:101","statements":[{"nativeSrc":"2247:16:101","nodeType":"YulVariableDeclaration","src":"2247:16:101","value":{"kind":"number","nativeSrc":"2261:2:101","nodeType":"YulLiteral","src":"2261:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2251:6:101","nodeType":"YulTypedName","src":"2251:6:101","type":""}]},{"nativeSrc":"2277:62:101","nodeType":"YulAssignment","src":"2277:62:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2311:9:101","nodeType":"YulIdentifier","src":"2311:9:101"},{"name":"offset","nativeSrc":"2322:6:101","nodeType":"YulIdentifier","src":"2322:6:101"}],"functionName":{"name":"add","nativeSrc":"2307:3:101","nodeType":"YulIdentifier","src":"2307:3:101"},"nativeSrc":"2307:22:101","nodeType":"YulFunctionCall","src":"2307:22:101"},{"name":"dataEnd","nativeSrc":"2331:7:101","nodeType":"YulIdentifier","src":"2331:7:101"}],"functionName":{"name":"abi_decode_t_int256","nativeSrc":"2287:19:101","nodeType":"YulIdentifier","src":"2287:19:101"},"nativeSrc":"2287:52:101","nodeType":"YulFunctionCall","src":"2287:52:101"},"variableNames":[{"name":"value1","nativeSrc":"2277:6:101","nodeType":"YulIdentifier","src":"2277:6:101"}]}]},{"nativeSrc":"2359:118:101","nodeType":"YulBlock","src":"2359:118:101","statements":[{"nativeSrc":"2374:16:101","nodeType":"YulVariableDeclaration","src":"2374:16:101","value":{"kind":"number","nativeSrc":"2388:2:101","nodeType":"YulLiteral","src":"2388:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2378:6:101","nodeType":"YulTypedName","src":"2378:6:101","type":""}]},{"nativeSrc":"2404:63:101","nodeType":"YulAssignment","src":"2404:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2439:9:101","nodeType":"YulIdentifier","src":"2439:9:101"},{"name":"offset","nativeSrc":"2450:6:101","nodeType":"YulIdentifier","src":"2450:6:101"}],"functionName":{"name":"add","nativeSrc":"2435:3:101","nodeType":"YulIdentifier","src":"2435:3:101"},"nativeSrc":"2435:22:101","nodeType":"YulFunctionCall","src":"2435:22:101"},{"name":"dataEnd","nativeSrc":"2459:7:101","nodeType":"YulIdentifier","src":"2459:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2414:20:101","nodeType":"YulIdentifier","src":"2414:20:101"},"nativeSrc":"2414:53:101","nodeType":"YulFunctionCall","src":"2414:53:101"},"variableNames":[{"name":"value2","nativeSrc":"2404:6:101","nodeType":"YulIdentifier","src":"2404:6:101"}]}]},{"nativeSrc":"2487:118:101","nodeType":"YulBlock","src":"2487:118:101","statements":[{"nativeSrc":"2502:16:101","nodeType":"YulVariableDeclaration","src":"2502:16:101","value":{"kind":"number","nativeSrc":"2516:2:101","nodeType":"YulLiteral","src":"2516:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"2506:6:101","nodeType":"YulTypedName","src":"2506:6:101","type":""}]},{"nativeSrc":"2532:63:101","nodeType":"YulAssignment","src":"2532:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2567:9:101","nodeType":"YulIdentifier","src":"2567:9:101"},{"name":"offset","nativeSrc":"2578:6:101","nodeType":"YulIdentifier","src":"2578:6:101"}],"functionName":{"name":"add","nativeSrc":"2563:3:101","nodeType":"YulIdentifier","src":"2563:3:101"},"nativeSrc":"2563:22:101","nodeType":"YulFunctionCall","src":"2563:22:101"},{"name":"dataEnd","nativeSrc":"2587:7:101","nodeType":"YulIdentifier","src":"2587:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2542:20:101","nodeType":"YulIdentifier","src":"2542:20:101"},"nativeSrc":"2542:53:101","nodeType":"YulFunctionCall","src":"2542:53:101"},"variableNames":[{"name":"value3","nativeSrc":"2532:6:101","nodeType":"YulIdentifier","src":"2532:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint80t_int256t_uint256t_uint256","nativeSrc":"1851:761:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulTypedName","src":"1912:9:101","type":""},{"name":"dataEnd","nativeSrc":"1923:7:101","nodeType":"YulTypedName","src":"1923:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1935:6:101","nodeType":"YulTypedName","src":"1935:6:101","type":""},{"name":"value1","nativeSrc":"1943:6:101","nodeType":"YulTypedName","src":"1943:6:101","type":""},{"name":"value2","nativeSrc":"1951:6:101","nodeType":"YulTypedName","src":"1951:6:101","type":""},{"name":"value3","nativeSrc":"1959:6:101","nodeType":"YulTypedName","src":"1959:6:101","type":""}],"src":"1851:761:101"},{"body":{"nativeSrc":"2681:52:101","nodeType":"YulBlock","src":"2681:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2698:3:101","nodeType":"YulIdentifier","src":"2698:3:101"},{"arguments":[{"name":"value","nativeSrc":"2720:5:101","nodeType":"YulIdentifier","src":"2720:5:101"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"2703:16:101","nodeType":"YulIdentifier","src":"2703:16:101"},"nativeSrc":"2703:23:101","nodeType":"YulFunctionCall","src":"2703:23:101"}],"functionName":{"name":"mstore","nativeSrc":"2691:6:101","nodeType":"YulIdentifier","src":"2691:6:101"},"nativeSrc":"2691:36:101","nodeType":"YulFunctionCall","src":"2691:36:101"},"nativeSrc":"2691:36:101","nodeType":"YulExpressionStatement","src":"2691:36:101"}]},"name":"abi_encode_t_int256_to_t_int256_fromStack","nativeSrc":"2618:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2669:5:101","nodeType":"YulTypedName","src":"2669:5:101","type":""},{"name":"pos","nativeSrc":"2676:3:101","nodeType":"YulTypedName","src":"2676:3:101","type":""}],"src":"2618:115:101"},{"body":{"nativeSrc":"2835:122:101","nodeType":"YulBlock","src":"2835:122:101","statements":[{"nativeSrc":"2845:26:101","nodeType":"YulAssignment","src":"2845:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2857:9:101","nodeType":"YulIdentifier","src":"2857:9:101"},{"kind":"number","nativeSrc":"2868:2:101","nodeType":"YulLiteral","src":"2868:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2853:3:101","nodeType":"YulIdentifier","src":"2853:3:101"},"nativeSrc":"2853:18:101","nodeType":"YulFunctionCall","src":"2853:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2845:4:101","nodeType":"YulIdentifier","src":"2845:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2923:6:101","nodeType":"YulIdentifier","src":"2923:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2936:9:101","nodeType":"YulIdentifier","src":"2936:9:101"},{"kind":"number","nativeSrc":"2947:1:101","nodeType":"YulLiteral","src":"2947:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2932:3:101","nodeType":"YulIdentifier","src":"2932:3:101"},"nativeSrc":"2932:17:101","nodeType":"YulFunctionCall","src":"2932:17:101"}],"functionName":{"name":"abi_encode_t_int256_to_t_int256_fromStack","nativeSrc":"2881:41:101","nodeType":"YulIdentifier","src":"2881:41:101"},"nativeSrc":"2881:69:101","nodeType":"YulFunctionCall","src":"2881:69:101"},"nativeSrc":"2881:69:101","nodeType":"YulExpressionStatement","src":"2881:69:101"}]},"name":"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed","nativeSrc":"2739:218:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2807:9:101","nodeType":"YulTypedName","src":"2807:9:101","type":""},{"name":"value0","nativeSrc":"2819:6:101","nodeType":"YulTypedName","src":"2819:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2830:4:101","nodeType":"YulTypedName","src":"2830:4:101","type":""}],"src":"2739:218:101"},{"body":{"nativeSrc":"3028:53:101","nodeType":"YulBlock","src":"3028:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3045:3:101","nodeType":"YulIdentifier","src":"3045:3:101"},{"arguments":[{"name":"value","nativeSrc":"3068:5:101","nodeType":"YulIdentifier","src":"3068:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3050:17:101","nodeType":"YulIdentifier","src":"3050:17:101"},"nativeSrc":"3050:24:101","nodeType":"YulFunctionCall","src":"3050:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3038:6:101","nodeType":"YulIdentifier","src":"3038:6:101"},"nativeSrc":"3038:37:101","nodeType":"YulFunctionCall","src":"3038:37:101"},"nativeSrc":"3038:37:101","nodeType":"YulExpressionStatement","src":"3038:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2963:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3016:5:101","nodeType":"YulTypedName","src":"3016:5:101","type":""},{"name":"pos","nativeSrc":"3023:3:101","nodeType":"YulTypedName","src":"3023:3:101","type":""}],"src":"2963:118:101"},{"body":{"nativeSrc":"3185:124:101","nodeType":"YulBlock","src":"3185:124:101","statements":[{"nativeSrc":"3195:26:101","nodeType":"YulAssignment","src":"3195:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3207:9:101","nodeType":"YulIdentifier","src":"3207:9:101"},{"kind":"number","nativeSrc":"3218:2:101","nodeType":"YulLiteral","src":"3218:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3203:3:101","nodeType":"YulIdentifier","src":"3203:3:101"},"nativeSrc":"3203:18:101","nodeType":"YulFunctionCall","src":"3203:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3195:4:101","nodeType":"YulIdentifier","src":"3195:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3275:6:101","nodeType":"YulIdentifier","src":"3275:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3288:9:101","nodeType":"YulIdentifier","src":"3288:9:101"},{"kind":"number","nativeSrc":"3299:1:101","nodeType":"YulLiteral","src":"3299:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3284:3:101","nodeType":"YulIdentifier","src":"3284:3:101"},"nativeSrc":"3284:17:101","nodeType":"YulFunctionCall","src":"3284:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3231:43:101","nodeType":"YulIdentifier","src":"3231:43:101"},"nativeSrc":"3231:71:101","nodeType":"YulFunctionCall","src":"3231:71:101"},"nativeSrc":"3231:71:101","nodeType":"YulExpressionStatement","src":"3231:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3087:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3157:9:101","nodeType":"YulTypedName","src":"3157:9:101","type":""},{"name":"value0","nativeSrc":"3169:6:101","nodeType":"YulTypedName","src":"3169:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3180:4:101","nodeType":"YulTypedName","src":"3180:4:101","type":""}],"src":"3087:222:101"},{"body":{"nativeSrc":"3374:40:101","nodeType":"YulBlock","src":"3374:40:101","statements":[{"nativeSrc":"3385:22:101","nodeType":"YulAssignment","src":"3385:22:101","value":{"arguments":[{"name":"value","nativeSrc":"3401:5:101","nodeType":"YulIdentifier","src":"3401:5:101"}],"functionName":{"name":"mload","nativeSrc":"3395:5:101","nodeType":"YulIdentifier","src":"3395:5:101"},"nativeSrc":"3395:12:101","nodeType":"YulFunctionCall","src":"3395:12:101"},"variableNames":[{"name":"length","nativeSrc":"3385:6:101","nodeType":"YulIdentifier","src":"3385:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3315:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3357:5:101","nodeType":"YulTypedName","src":"3357:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3367:6:101","nodeType":"YulTypedName","src":"3367:6:101","type":""}],"src":"3315:99:101"},{"body":{"nativeSrc":"3516:73:101","nodeType":"YulBlock","src":"3516:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3533:3:101","nodeType":"YulIdentifier","src":"3533:3:101"},{"name":"length","nativeSrc":"3538:6:101","nodeType":"YulIdentifier","src":"3538:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3526:6:101","nodeType":"YulIdentifier","src":"3526:6:101"},"nativeSrc":"3526:19:101","nodeType":"YulFunctionCall","src":"3526:19:101"},"nativeSrc":"3526:19:101","nodeType":"YulExpressionStatement","src":"3526:19:101"},{"nativeSrc":"3554:29:101","nodeType":"YulAssignment","src":"3554:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"3573:3:101","nodeType":"YulIdentifier","src":"3573:3:101"},{"kind":"number","nativeSrc":"3578:4:101","nodeType":"YulLiteral","src":"3578:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3569:3:101","nodeType":"YulIdentifier","src":"3569:3:101"},"nativeSrc":"3569:14:101","nodeType":"YulFunctionCall","src":"3569:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"3554:11:101","nodeType":"YulIdentifier","src":"3554:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3420:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3488:3:101","nodeType":"YulTypedName","src":"3488:3:101","type":""},{"name":"length","nativeSrc":"3493:6:101","nodeType":"YulTypedName","src":"3493:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3504:11:101","nodeType":"YulTypedName","src":"3504:11:101","type":""}],"src":"3420:169:101"},{"body":{"nativeSrc":"3657:77:101","nodeType":"YulBlock","src":"3657:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},{"name":"src","nativeSrc":"3679:3:101","nodeType":"YulIdentifier","src":"3679:3:101"},{"name":"length","nativeSrc":"3684:6:101","nodeType":"YulIdentifier","src":"3684:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"3668:5:101","nodeType":"YulIdentifier","src":"3668:5:101"},"nativeSrc":"3668:23:101","nodeType":"YulFunctionCall","src":"3668:23:101"},"nativeSrc":"3668:23:101","nodeType":"YulExpressionStatement","src":"3668:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3711:3:101","nodeType":"YulIdentifier","src":"3711:3:101"},{"name":"length","nativeSrc":"3716:6:101","nodeType":"YulIdentifier","src":"3716:6:101"}],"functionName":{"name":"add","nativeSrc":"3707:3:101","nodeType":"YulIdentifier","src":"3707:3:101"},"nativeSrc":"3707:16:101","nodeType":"YulFunctionCall","src":"3707:16:101"},{"kind":"number","nativeSrc":"3725:1:101","nodeType":"YulLiteral","src":"3725:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3700:6:101","nodeType":"YulIdentifier","src":"3700:6:101"},"nativeSrc":"3700:27:101","nodeType":"YulFunctionCall","src":"3700:27:101"},"nativeSrc":"3700:27:101","nodeType":"YulExpressionStatement","src":"3700:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3595:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3639:3:101","nodeType":"YulTypedName","src":"3639:3:101","type":""},{"name":"dst","nativeSrc":"3644:3:101","nodeType":"YulTypedName","src":"3644:3:101","type":""},{"name":"length","nativeSrc":"3649:6:101","nodeType":"YulTypedName","src":"3649:6:101","type":""}],"src":"3595:139:101"},{"body":{"nativeSrc":"3788:54:101","nodeType":"YulBlock","src":"3788:54:101","statements":[{"nativeSrc":"3798:38:101","nodeType":"YulAssignment","src":"3798:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3816:5:101","nodeType":"YulIdentifier","src":"3816:5:101"},{"kind":"number","nativeSrc":"3823:2:101","nodeType":"YulLiteral","src":"3823:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3812:3:101","nodeType":"YulIdentifier","src":"3812:3:101"},"nativeSrc":"3812:14:101","nodeType":"YulFunctionCall","src":"3812:14:101"},{"arguments":[{"kind":"number","nativeSrc":"3832:2:101","nodeType":"YulLiteral","src":"3832:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3828:3:101","nodeType":"YulIdentifier","src":"3828:3:101"},"nativeSrc":"3828:7:101","nodeType":"YulFunctionCall","src":"3828:7:101"}],"functionName":{"name":"and","nativeSrc":"3808:3:101","nodeType":"YulIdentifier","src":"3808:3:101"},"nativeSrc":"3808:28:101","nodeType":"YulFunctionCall","src":"3808:28:101"},"variableNames":[{"name":"result","nativeSrc":"3798:6:101","nodeType":"YulIdentifier","src":"3798:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3740:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3771:5:101","nodeType":"YulTypedName","src":"3771:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3781:6:101","nodeType":"YulTypedName","src":"3781:6:101","type":""}],"src":"3740:102:101"},{"body":{"nativeSrc":"3940:285:101","nodeType":"YulBlock","src":"3940:285:101","statements":[{"nativeSrc":"3950:53:101","nodeType":"YulVariableDeclaration","src":"3950:53:101","value":{"arguments":[{"name":"value","nativeSrc":"3997:5:101","nodeType":"YulIdentifier","src":"3997:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"3964:32:101","nodeType":"YulIdentifier","src":"3964:32:101"},"nativeSrc":"3964:39:101","nodeType":"YulFunctionCall","src":"3964:39:101"},"variables":[{"name":"length","nativeSrc":"3954:6:101","nodeType":"YulTypedName","src":"3954:6:101","type":""}]},{"nativeSrc":"4012:78:101","nodeType":"YulAssignment","src":"4012:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"4078:3:101","nodeType":"YulIdentifier","src":"4078:3:101"},{"name":"length","nativeSrc":"4083:6:101","nodeType":"YulIdentifier","src":"4083:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4019:58:101","nodeType":"YulIdentifier","src":"4019:58:101"},"nativeSrc":"4019:71:101","nodeType":"YulFunctionCall","src":"4019:71:101"},"variableNames":[{"name":"pos","nativeSrc":"4012:3:101","nodeType":"YulIdentifier","src":"4012:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4138:5:101","nodeType":"YulIdentifier","src":"4138:5:101"},{"kind":"number","nativeSrc":"4145:4:101","nodeType":"YulLiteral","src":"4145:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4134:3:101","nodeType":"YulIdentifier","src":"4134:3:101"},"nativeSrc":"4134:16:101","nodeType":"YulFunctionCall","src":"4134:16:101"},{"name":"pos","nativeSrc":"4152:3:101","nodeType":"YulIdentifier","src":"4152:3:101"},{"name":"length","nativeSrc":"4157:6:101","nodeType":"YulIdentifier","src":"4157:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4099:34:101","nodeType":"YulIdentifier","src":"4099:34:101"},"nativeSrc":"4099:65:101","nodeType":"YulFunctionCall","src":"4099:65:101"},"nativeSrc":"4099:65:101","nodeType":"YulExpressionStatement","src":"4099:65:101"},{"nativeSrc":"4173:46:101","nodeType":"YulAssignment","src":"4173:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"4184:3:101","nodeType":"YulIdentifier","src":"4184:3:101"},{"arguments":[{"name":"length","nativeSrc":"4211:6:101","nodeType":"YulIdentifier","src":"4211:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4189:21:101","nodeType":"YulIdentifier","src":"4189:21:101"},"nativeSrc":"4189:29:101","nodeType":"YulFunctionCall","src":"4189:29:101"}],"functionName":{"name":"add","nativeSrc":"4180:3:101","nodeType":"YulIdentifier","src":"4180:3:101"},"nativeSrc":"4180:39:101","nodeType":"YulFunctionCall","src":"4180:39:101"},"variableNames":[{"name":"end","nativeSrc":"4173:3:101","nodeType":"YulIdentifier","src":"4173:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"3848:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3921:5:101","nodeType":"YulTypedName","src":"3921:5:101","type":""},{"name":"pos","nativeSrc":"3928:3:101","nodeType":"YulTypedName","src":"3928:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3936:3:101","nodeType":"YulTypedName","src":"3936:3:101","type":""}],"src":"3848:377:101"},{"body":{"nativeSrc":"4349:195:101","nodeType":"YulBlock","src":"4349:195:101","statements":[{"nativeSrc":"4359:26:101","nodeType":"YulAssignment","src":"4359:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4371:9:101","nodeType":"YulIdentifier","src":"4371:9:101"},{"kind":"number","nativeSrc":"4382:2:101","nodeType":"YulLiteral","src":"4382:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4367:3:101","nodeType":"YulIdentifier","src":"4367:3:101"},"nativeSrc":"4367:18:101","nodeType":"YulFunctionCall","src":"4367:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4359:4:101","nodeType":"YulIdentifier","src":"4359:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4406:9:101","nodeType":"YulIdentifier","src":"4406:9:101"},{"kind":"number","nativeSrc":"4417:1:101","nodeType":"YulLiteral","src":"4417:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4402:3:101","nodeType":"YulIdentifier","src":"4402:3:101"},"nativeSrc":"4402:17:101","nodeType":"YulFunctionCall","src":"4402:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4425:4:101","nodeType":"YulIdentifier","src":"4425:4:101"},{"name":"headStart","nativeSrc":"4431:9:101","nodeType":"YulIdentifier","src":"4431:9:101"}],"functionName":{"name":"sub","nativeSrc":"4421:3:101","nodeType":"YulIdentifier","src":"4421:3:101"},"nativeSrc":"4421:20:101","nodeType":"YulFunctionCall","src":"4421:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4395:6:101","nodeType":"YulIdentifier","src":"4395:6:101"},"nativeSrc":"4395:47:101","nodeType":"YulFunctionCall","src":"4395:47:101"},"nativeSrc":"4395:47:101","nodeType":"YulExpressionStatement","src":"4395:47:101"},{"nativeSrc":"4451:86:101","nodeType":"YulAssignment","src":"4451:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"4523:6:101","nodeType":"YulIdentifier","src":"4523:6:101"},{"name":"tail","nativeSrc":"4532:4:101","nodeType":"YulIdentifier","src":"4532:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4459:63:101","nodeType":"YulIdentifier","src":"4459:63:101"},"nativeSrc":"4459:78:101","nodeType":"YulFunctionCall","src":"4459:78:101"},"variableNames":[{"name":"tail","nativeSrc":"4451:4:101","nodeType":"YulIdentifier","src":"4451:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4231:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4321:9:101","nodeType":"YulTypedName","src":"4321:9:101","type":""},{"name":"value0","nativeSrc":"4333:6:101","nodeType":"YulTypedName","src":"4333:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4344:4:101","nodeType":"YulTypedName","src":"4344:4:101","type":""}],"src":"4231:313:101"},{"body":{"nativeSrc":"4615:262:101","nodeType":"YulBlock","src":"4615:262:101","statements":[{"body":{"nativeSrc":"4661:83:101","nodeType":"YulBlock","src":"4661:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4663:77:101","nodeType":"YulIdentifier","src":"4663:77:101"},"nativeSrc":"4663:79:101","nodeType":"YulFunctionCall","src":"4663:79:101"},"nativeSrc":"4663:79:101","nodeType":"YulExpressionStatement","src":"4663:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4636:7:101","nodeType":"YulIdentifier","src":"4636:7:101"},{"name":"headStart","nativeSrc":"4645:9:101","nodeType":"YulIdentifier","src":"4645:9:101"}],"functionName":{"name":"sub","nativeSrc":"4632:3:101","nodeType":"YulIdentifier","src":"4632:3:101"},"nativeSrc":"4632:23:101","nodeType":"YulFunctionCall","src":"4632:23:101"},{"kind":"number","nativeSrc":"4657:2:101","nodeType":"YulLiteral","src":"4657:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4628:3:101","nodeType":"YulIdentifier","src":"4628:3:101"},"nativeSrc":"4628:32:101","nodeType":"YulFunctionCall","src":"4628:32:101"},"nativeSrc":"4625:119:101","nodeType":"YulIf","src":"4625:119:101"},{"nativeSrc":"4754:116:101","nodeType":"YulBlock","src":"4754:116:101","statements":[{"nativeSrc":"4769:15:101","nodeType":"YulVariableDeclaration","src":"4769:15:101","value":{"kind":"number","nativeSrc":"4783:1:101","nodeType":"YulLiteral","src":"4783:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4773:6:101","nodeType":"YulTypedName","src":"4773:6:101","type":""}]},{"nativeSrc":"4798:62:101","nodeType":"YulAssignment","src":"4798:62:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4832:9:101","nodeType":"YulIdentifier","src":"4832:9:101"},{"name":"offset","nativeSrc":"4843:6:101","nodeType":"YulIdentifier","src":"4843:6:101"}],"functionName":{"name":"add","nativeSrc":"4828:3:101","nodeType":"YulIdentifier","src":"4828:3:101"},"nativeSrc":"4828:22:101","nodeType":"YulFunctionCall","src":"4828:22:101"},{"name":"dataEnd","nativeSrc":"4852:7:101","nodeType":"YulIdentifier","src":"4852:7:101"}],"functionName":{"name":"abi_decode_t_uint80","nativeSrc":"4808:19:101","nodeType":"YulIdentifier","src":"4808:19:101"},"nativeSrc":"4808:52:101","nodeType":"YulFunctionCall","src":"4808:52:101"},"variableNames":[{"name":"value0","nativeSrc":"4798:6:101","nodeType":"YulIdentifier","src":"4798:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint80","nativeSrc":"4550:327:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4585:9:101","nodeType":"YulTypedName","src":"4585:9:101","type":""},{"name":"dataEnd","nativeSrc":"4596:7:101","nodeType":"YulTypedName","src":"4596:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4608:6:101","nodeType":"YulTypedName","src":"4608:6:101","type":""}],"src":"4550:327:101"},{"body":{"nativeSrc":"4946:52:101","nodeType":"YulBlock","src":"4946:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4963:3:101","nodeType":"YulIdentifier","src":"4963:3:101"},{"arguments":[{"name":"value","nativeSrc":"4985:5:101","nodeType":"YulIdentifier","src":"4985:5:101"}],"functionName":{"name":"cleanup_t_uint80","nativeSrc":"4968:16:101","nodeType":"YulIdentifier","src":"4968:16:101"},"nativeSrc":"4968:23:101","nodeType":"YulFunctionCall","src":"4968:23:101"}],"functionName":{"name":"mstore","nativeSrc":"4956:6:101","nodeType":"YulIdentifier","src":"4956:6:101"},"nativeSrc":"4956:36:101","nodeType":"YulFunctionCall","src":"4956:36:101"},"nativeSrc":"4956:36:101","nodeType":"YulExpressionStatement","src":"4956:36:101"}]},"name":"abi_encode_t_uint80_to_t_uint80_fromStack","nativeSrc":"4883:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4934:5:101","nodeType":"YulTypedName","src":"4934:5:101","type":""},{"name":"pos","nativeSrc":"4941:3:101","nodeType":"YulTypedName","src":"4941:3:101","type":""}],"src":"4883:115:101"},{"body":{"nativeSrc":"5208:448:101","nodeType":"YulBlock","src":"5208:448:101","statements":[{"nativeSrc":"5218:27:101","nodeType":"YulAssignment","src":"5218:27:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5230:9:101","nodeType":"YulIdentifier","src":"5230:9:101"},{"kind":"number","nativeSrc":"5241:3:101","nodeType":"YulLiteral","src":"5241:3:101","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5226:3:101","nodeType":"YulIdentifier","src":"5226:3:101"},"nativeSrc":"5226:19:101","nodeType":"YulFunctionCall","src":"5226:19:101"},"variableNames":[{"name":"tail","nativeSrc":"5218:4:101","nodeType":"YulIdentifier","src":"5218:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5297:6:101","nodeType":"YulIdentifier","src":"5297:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5310:9:101","nodeType":"YulIdentifier","src":"5310:9:101"},{"kind":"number","nativeSrc":"5321:1:101","nodeType":"YulLiteral","src":"5321:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5306:3:101","nodeType":"YulIdentifier","src":"5306:3:101"},"nativeSrc":"5306:17:101","nodeType":"YulFunctionCall","src":"5306:17:101"}],"functionName":{"name":"abi_encode_t_uint80_to_t_uint80_fromStack","nativeSrc":"5255:41:101","nodeType":"YulIdentifier","src":"5255:41:101"},"nativeSrc":"5255:69:101","nodeType":"YulFunctionCall","src":"5255:69:101"},"nativeSrc":"5255:69:101","nodeType":"YulExpressionStatement","src":"5255:69:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5376:6:101","nodeType":"YulIdentifier","src":"5376:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5389:9:101","nodeType":"YulIdentifier","src":"5389:9:101"},{"kind":"number","nativeSrc":"5400:2:101","nodeType":"YulLiteral","src":"5400:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5385:3:101","nodeType":"YulIdentifier","src":"5385:3:101"},"nativeSrc":"5385:18:101","nodeType":"YulFunctionCall","src":"5385:18:101"}],"functionName":{"name":"abi_encode_t_int256_to_t_int256_fromStack","nativeSrc":"5334:41:101","nodeType":"YulIdentifier","src":"5334:41:101"},"nativeSrc":"5334:70:101","nodeType":"YulFunctionCall","src":"5334:70:101"},"nativeSrc":"5334:70:101","nodeType":"YulExpressionStatement","src":"5334:70:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"5458:6:101","nodeType":"YulIdentifier","src":"5458:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5471:9:101","nodeType":"YulIdentifier","src":"5471:9:101"},{"kind":"number","nativeSrc":"5482:2:101","nodeType":"YulLiteral","src":"5482:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5467:3:101","nodeType":"YulIdentifier","src":"5467:3:101"},"nativeSrc":"5467:18:101","nodeType":"YulFunctionCall","src":"5467:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5414:43:101","nodeType":"YulIdentifier","src":"5414:43:101"},"nativeSrc":"5414:72:101","nodeType":"YulFunctionCall","src":"5414:72:101"},"nativeSrc":"5414:72:101","nodeType":"YulExpressionStatement","src":"5414:72:101"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"5540:6:101","nodeType":"YulIdentifier","src":"5540:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5553:9:101","nodeType":"YulIdentifier","src":"5553:9:101"},{"kind":"number","nativeSrc":"5564:2:101","nodeType":"YulLiteral","src":"5564:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5549:3:101","nodeType":"YulIdentifier","src":"5549:3:101"},"nativeSrc":"5549:18:101","nodeType":"YulFunctionCall","src":"5549:18:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5496:43:101","nodeType":"YulIdentifier","src":"5496:43:101"},"nativeSrc":"5496:72:101","nodeType":"YulFunctionCall","src":"5496:72:101"},"nativeSrc":"5496:72:101","nodeType":"YulExpressionStatement","src":"5496:72:101"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"5620:6:101","nodeType":"YulIdentifier","src":"5620:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5633:9:101","nodeType":"YulIdentifier","src":"5633:9:101"},{"kind":"number","nativeSrc":"5644:3:101","nodeType":"YulLiteral","src":"5644:3:101","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5629:3:101","nodeType":"YulIdentifier","src":"5629:3:101"},"nativeSrc":"5629:19:101","nodeType":"YulFunctionCall","src":"5629:19:101"}],"functionName":{"name":"abi_encode_t_uint80_to_t_uint80_fromStack","nativeSrc":"5578:41:101","nodeType":"YulIdentifier","src":"5578:41:101"},"nativeSrc":"5578:71:101","nodeType":"YulFunctionCall","src":"5578:71:101"},"nativeSrc":"5578:71:101","nodeType":"YulExpressionStatement","src":"5578:71:101"}]},"name":"abi_encode_tuple_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed","nativeSrc":"5004:652:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5148:9:101","nodeType":"YulTypedName","src":"5148:9:101","type":""},{"name":"value4","nativeSrc":"5160:6:101","nodeType":"YulTypedName","src":"5160:6:101","type":""},{"name":"value3","nativeSrc":"5168:6:101","nodeType":"YulTypedName","src":"5168:6:101","type":""},{"name":"value2","nativeSrc":"5176:6:101","nodeType":"YulTypedName","src":"5176:6:101","type":""},{"name":"value1","nativeSrc":"5184:6:101","nodeType":"YulTypedName","src":"5184:6:101","type":""},{"name":"value0","nativeSrc":"5192:6:101","nodeType":"YulTypedName","src":"5192:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5203:4:101","nodeType":"YulTypedName","src":"5203:4:101","type":""}],"src":"5004:652:101"},{"body":{"nativeSrc":"5727:262:101","nodeType":"YulBlock","src":"5727:262:101","statements":[{"body":{"nativeSrc":"5773:83:101","nodeType":"YulBlock","src":"5773:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5775:77:101","nodeType":"YulIdentifier","src":"5775:77:101"},"nativeSrc":"5775:79:101","nodeType":"YulFunctionCall","src":"5775:79:101"},"nativeSrc":"5775:79:101","nodeType":"YulExpressionStatement","src":"5775:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5748:7:101","nodeType":"YulIdentifier","src":"5748:7:101"},{"name":"headStart","nativeSrc":"5757:9:101","nodeType":"YulIdentifier","src":"5757:9:101"}],"functionName":{"name":"sub","nativeSrc":"5744:3:101","nodeType":"YulIdentifier","src":"5744:3:101"},"nativeSrc":"5744:23:101","nodeType":"YulFunctionCall","src":"5744:23:101"},{"kind":"number","nativeSrc":"5769:2:101","nodeType":"YulLiteral","src":"5769:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5740:3:101","nodeType":"YulIdentifier","src":"5740:3:101"},"nativeSrc":"5740:32:101","nodeType":"YulFunctionCall","src":"5740:32:101"},"nativeSrc":"5737:119:101","nodeType":"YulIf","src":"5737:119:101"},{"nativeSrc":"5866:116:101","nodeType":"YulBlock","src":"5866:116:101","statements":[{"nativeSrc":"5881:15:101","nodeType":"YulVariableDeclaration","src":"5881:15:101","value":{"kind":"number","nativeSrc":"5895:1:101","nodeType":"YulLiteral","src":"5895:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5885:6:101","nodeType":"YulTypedName","src":"5885:6:101","type":""}]},{"nativeSrc":"5910:62:101","nodeType":"YulAssignment","src":"5910:62:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5944:9:101","nodeType":"YulIdentifier","src":"5944:9:101"},{"name":"offset","nativeSrc":"5955:6:101","nodeType":"YulIdentifier","src":"5955:6:101"}],"functionName":{"name":"add","nativeSrc":"5940:3:101","nodeType":"YulIdentifier","src":"5940:3:101"},"nativeSrc":"5940:22:101","nodeType":"YulFunctionCall","src":"5940:22:101"},{"name":"dataEnd","nativeSrc":"5964:7:101","nodeType":"YulIdentifier","src":"5964:7:101"}],"functionName":{"name":"abi_decode_t_int256","nativeSrc":"5920:19:101","nodeType":"YulIdentifier","src":"5920:19:101"},"nativeSrc":"5920:52:101","nodeType":"YulFunctionCall","src":"5920:52:101"},"variableNames":[{"name":"value0","nativeSrc":"5910:6:101","nodeType":"YulIdentifier","src":"5910:6:101"}]}]}]},"name":"abi_decode_tuple_t_int256","nativeSrc":"5662:327:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5697:9:101","nodeType":"YulTypedName","src":"5697:9:101","type":""},{"name":"dataEnd","nativeSrc":"5708:7:101","nodeType":"YulTypedName","src":"5708:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5720:6:101","nodeType":"YulTypedName","src":"5720:6:101","type":""}],"src":"5662:327:101"},{"body":{"nativeSrc":"6061:263:101","nodeType":"YulBlock","src":"6061:263:101","statements":[{"body":{"nativeSrc":"6107:83:101","nodeType":"YulBlock","src":"6107:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6109:77:101","nodeType":"YulIdentifier","src":"6109:77:101"},"nativeSrc":"6109:79:101","nodeType":"YulFunctionCall","src":"6109:79:101"},"nativeSrc":"6109:79:101","nodeType":"YulExpressionStatement","src":"6109:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6082:7:101","nodeType":"YulIdentifier","src":"6082:7:101"},{"name":"headStart","nativeSrc":"6091:9:101","nodeType":"YulIdentifier","src":"6091:9:101"}],"functionName":{"name":"sub","nativeSrc":"6078:3:101","nodeType":"YulIdentifier","src":"6078:3:101"},"nativeSrc":"6078:23:101","nodeType":"YulFunctionCall","src":"6078:23:101"},{"kind":"number","nativeSrc":"6103:2:101","nodeType":"YulLiteral","src":"6103:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6074:3:101","nodeType":"YulIdentifier","src":"6074:3:101"},"nativeSrc":"6074:32:101","nodeType":"YulFunctionCall","src":"6074:32:101"},"nativeSrc":"6071:119:101","nodeType":"YulIf","src":"6071:119:101"},{"nativeSrc":"6200:117:101","nodeType":"YulBlock","src":"6200:117:101","statements":[{"nativeSrc":"6215:15:101","nodeType":"YulVariableDeclaration","src":"6215:15:101","value":{"kind":"number","nativeSrc":"6229:1:101","nodeType":"YulLiteral","src":"6229:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6219:6:101","nodeType":"YulTypedName","src":"6219:6:101","type":""}]},{"nativeSrc":"6244:63:101","nodeType":"YulAssignment","src":"6244:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6279:9:101","nodeType":"YulIdentifier","src":"6279:9:101"},{"name":"offset","nativeSrc":"6290:6:101","nodeType":"YulIdentifier","src":"6290:6:101"}],"functionName":{"name":"add","nativeSrc":"6275:3:101","nodeType":"YulIdentifier","src":"6275:3:101"},"nativeSrc":"6275:22:101","nodeType":"YulFunctionCall","src":"6275:22:101"},{"name":"dataEnd","nativeSrc":"6299:7:101","nodeType":"YulIdentifier","src":"6299:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6254:20:101","nodeType":"YulIdentifier","src":"6254:20:101"},"nativeSrc":"6254:53:101","nodeType":"YulFunctionCall","src":"6254:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6244:6:101","nodeType":"YulIdentifier","src":"6244:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"5995:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6031:9:101","nodeType":"YulTypedName","src":"6031:9:101","type":""},{"name":"dataEnd","nativeSrc":"6042:7:101","nodeType":"YulTypedName","src":"6042:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6054:6:101","nodeType":"YulTypedName","src":"6054:6:101","type":""}],"src":"5995:329:101"},{"body":{"nativeSrc":"6358:152:101","nodeType":"YulBlock","src":"6358:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6375:1:101","nodeType":"YulLiteral","src":"6375:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6378:77:101","nodeType":"YulLiteral","src":"6378:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6368:6:101","nodeType":"YulIdentifier","src":"6368:6:101"},"nativeSrc":"6368:88:101","nodeType":"YulFunctionCall","src":"6368:88:101"},"nativeSrc":"6368:88:101","nodeType":"YulExpressionStatement","src":"6368:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6472:1:101","nodeType":"YulLiteral","src":"6472:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6475:4:101","nodeType":"YulLiteral","src":"6475:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6465:6:101","nodeType":"YulIdentifier","src":"6465:6:101"},"nativeSrc":"6465:15:101","nodeType":"YulFunctionCall","src":"6465:15:101"},"nativeSrc":"6465:15:101","nodeType":"YulExpressionStatement","src":"6465:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6496:1:101","nodeType":"YulLiteral","src":"6496:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6499:4:101","nodeType":"YulLiteral","src":"6499:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6489:6:101","nodeType":"YulIdentifier","src":"6489:6:101"},"nativeSrc":"6489:15:101","nodeType":"YulFunctionCall","src":"6489:15:101"},"nativeSrc":"6489:15:101","nodeType":"YulExpressionStatement","src":"6489:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6330:180:101","nodeType":"YulFunctionDefinition","src":"6330:180:101"},{"body":{"nativeSrc":"6559:190:101","nodeType":"YulBlock","src":"6559:190:101","statements":[{"nativeSrc":"6569:33:101","nodeType":"YulAssignment","src":"6569:33:101","value":{"arguments":[{"name":"value","nativeSrc":"6596:5:101","nodeType":"YulIdentifier","src":"6596:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6578:17:101","nodeType":"YulIdentifier","src":"6578:17:101"},"nativeSrc":"6578:24:101","nodeType":"YulFunctionCall","src":"6578:24:101"},"variableNames":[{"name":"value","nativeSrc":"6569:5:101","nodeType":"YulIdentifier","src":"6569:5:101"}]},{"body":{"nativeSrc":"6692:22:101","nodeType":"YulBlock","src":"6692:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6694:16:101","nodeType":"YulIdentifier","src":"6694:16:101"},"nativeSrc":"6694:18:101","nodeType":"YulFunctionCall","src":"6694:18:101"},"nativeSrc":"6694:18:101","nodeType":"YulExpressionStatement","src":"6694:18:101"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"6617:5:101","nodeType":"YulIdentifier","src":"6617:5:101"},{"kind":"number","nativeSrc":"6624:66:101","nodeType":"YulLiteral","src":"6624:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"6614:2:101","nodeType":"YulIdentifier","src":"6614:2:101"},"nativeSrc":"6614:77:101","nodeType":"YulFunctionCall","src":"6614:77:101"},"nativeSrc":"6611:103:101","nodeType":"YulIf","src":"6611:103:101"},{"nativeSrc":"6723:20:101","nodeType":"YulAssignment","src":"6723:20:101","value":{"arguments":[{"name":"value","nativeSrc":"6734:5:101","nodeType":"YulIdentifier","src":"6734:5:101"},{"kind":"number","nativeSrc":"6741:1:101","nodeType":"YulLiteral","src":"6741:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6730:3:101","nodeType":"YulIdentifier","src":"6730:3:101"},"nativeSrc":"6730:13:101","nodeType":"YulFunctionCall","src":"6730:13:101"},"variableNames":[{"name":"ret","nativeSrc":"6723:3:101","nodeType":"YulIdentifier","src":"6723:3:101"}]}]},"name":"increment_t_uint256","nativeSrc":"6516:233:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6545:5:101","nodeType":"YulTypedName","src":"6545:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"6555:3:101","nodeType":"YulTypedName","src":"6555:3:101","type":""}],"src":"6516:233:101"}]},"contents":"{\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint80(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint80(value) {\n        if iszero(eq(value, cleanup_t_uint80(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint80(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint80(value)\n    }\n\n    function cleanup_t_int256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_int256(value) {\n        if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_int256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_int256(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint80t_int256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint80(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_int256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_int256(value))\n    }\n\n    function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_int256_to_t_int256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function abi_decode_tuple_t_uint80(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint80(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint80_to_t_uint80_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint80(value))\n    }\n\n    function abi_encode_tuple_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__to_t_uint80_t_int256_t_uint256_t_uint256_t_uint80__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint80_to_t_uint80_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_int256_to_t_int256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint80_to_t_uint80_fromStack(value4,  add(headStart, 128))\n\n    }\n\n    function abi_decode_tuple_t_int256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_int256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function increment_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638205bf6a1161006e5780638205bf6a146101985780639a6fc8f5146101a1578063a87a20ce146101f8578063b5ab58dc1461020b578063b633620c1461022a578063feaf968c14610249575f80fd5b8063313ce567146100b55780634aa2011f146100d757806350d25bcd1461013357806354fd4d5014610149578063668a0f02146101505780637284e41614610159575b5f80fd5b5f546100c19060ff1681565b6040516100ce91906102d2565b60405180910390f35b6101316100e536600461031d565b69ffffffffffffffffffff9093166003818155600184905560028390555f9182526004602090815260408084209590955581548352600581528483209390935554815260069091522055565b005b61013c60015481565b6040516100ce9190610383565b61013c5f81565b61013c60035481565b604080518082018252601f81527f76302e362f74657374732f4d6f636b563341676772656761746f722e736f6c00602082015290516100ce91906103cd565b61013c60025481565b6101e76101af3660046103e5565b69ffffffffffffffffffff81165f90815260046020908152604080832054600683528184205460059093529220549293919290918490565b6040516100ce95949392919061041d565b610131610206366004610469565b610273565b61013c610219366004610469565b60046020525f908152604090205481565b61013c610238366004610469565b60056020525f908152604090205481565b6003545f8181526004602090815260408083205460068352818420546005909352922054836101e7565b60018190554260025560038054905f61028b8361049b565b9091555050600380545f908152600460209081526040808320949094558254825260058152838220429081905592548252600690529190912055565b60ff81165b82525050565b602081016102e082846102c7565b92915050565b69ffffffffffffffffffff81165b81146102fe575f80fd5b50565b80356102e0816102e6565b806102f4565b80356102e08161030c565b5f805f8060808587031215610333576103335f80fd5b5f61033e8787610301565b945050602061034f87828801610312565b935050604061036087828801610312565b925050606061037187828801610312565b91505092959194509250565b806102cc565b602081016102e0828461037d565b8281835e505f910152565b5f6103a5825190565b8084526020840193506103bc818560208601610391565b601f01601f19169290920192915050565b602080825281016103de818461039c565b9392505050565b5f602082840312156103f8576103f85f80fd5b5f6104038484610301565b949350505050565b69ffffffffffffffffffff81166102cc565b60a0810161042b828861040b565b610438602083018761037d565b610445604083018661037d565b610452606083018561037d565b61045f608083018461040b565b9695505050505050565b5f6020828403121561047c5761047c5f80fd5b5f6104038484610312565b634e487b7160e01b5f52601160045260245ffd5b5f5f1982036104ac576104ac610487565b506001019056fea2646970667358221220210b5ba3fc4b20df645448975cae863e242361e8006d50aafb7703c93efe025d64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8205BF6A GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x8205BF6A EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x9A6FC8F5 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0xA87A20CE EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0xB5AB58DC EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xB633620C EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0xFEAF968C EQ PUSH2 0x249 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x4AA2011F EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x668A0F02 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x7284E416 EQ PUSH2 0x159 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 SLOAD PUSH2 0xC1 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND PUSH1 0x3 DUP2 DUP2 SSTORE PUSH1 0x1 DUP5 SWAP1 SSTORE PUSH1 0x2 DUP4 SWAP1 SSTORE PUSH0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP6 SWAP1 SWAP6 SSTORE DUP2 SLOAD DUP4 MSTORE PUSH1 0x5 DUP2 MSTORE DUP5 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SLOAD DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x13C PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x383 JUMP JUMPDEST PUSH2 0x13C PUSH0 DUP2 JUMP JUMPDEST PUSH2 0x13C PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH32 0x76302E362F74657374732F4D6F636B563341676772656761746F722E736F6C00 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x3CD JUMP JUMPDEST PUSH2 0x13C PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x1AF CALLDATASIZE PUSH1 0x4 PUSH2 0x3E5 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP5 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x131 PUSH2 0x206 CALLDATASIZE PUSH1 0x4 PUSH2 0x469 JUMP JUMPDEST PUSH2 0x273 JUMP JUMPDEST PUSH2 0x13C PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x469 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x13C PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x469 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD DUP4 PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x1 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP1 PUSH0 PUSH2 0x28B DUP4 PUSH2 0x49B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 DUP1 SLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP3 SLOAD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE DUP4 DUP3 KECCAK256 TIMESTAMP SWAP1 DUP2 SWAP1 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0xFF DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2E0 DUP3 DUP5 PUSH2 0x2C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x2FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2E0 DUP2 PUSH2 0x2E6 JUMP JUMPDEST DUP1 PUSH2 0x2F4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2E0 DUP2 PUSH2 0x30C JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x333 JUMPI PUSH2 0x333 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x33E DUP8 DUP8 PUSH2 0x301 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x34F DUP8 DUP3 DUP9 ADD PUSH2 0x312 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x360 DUP8 DUP3 DUP9 ADD PUSH2 0x312 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x371 DUP8 DUP3 DUP9 ADD PUSH2 0x312 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP1 PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2E0 DUP3 DUP5 PUSH2 0x37D JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x3A5 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x3BC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x391 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3DE DUP2 DUP5 PUSH2 0x39C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F8 JUMPI PUSH2 0x3F8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x403 DUP5 DUP5 PUSH2 0x301 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x2CC JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x42B DUP3 DUP9 PUSH2 0x40B JUMP JUMPDEST PUSH2 0x438 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x445 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x452 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x45F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x40B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x47C JUMPI PUSH2 0x47C PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x403 DUP5 DUP5 PUSH2 0x312 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 NOT DUP3 SUB PUSH2 0x4AC JUMPI PUSH2 0x4AC PUSH2 0x487 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 SIGNEXTEND JUMPDEST LOG3 0xFC 0x4B KECCAK256 0xDF PUSH5 0x5448975CAE DUP7 RETURNDATACOPY 0x24 0x23 PUSH2 0xE800 PUSH14 0x50AAFB7703C93EFE025D64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"409:2008:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:21;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2063:352;;;;;;:::i;:::-;2178:22;;;;:11;:22;;;2210:12;:22;;;-1:-1:-1;2242:28:82;;;-1:-1:-1;2280:22:82;;;:9;:22;;;;;;;;:32;;;;2335:11;;2322:25;;:12;:25;;;;;:38;;;;2383:11;2370:25;;:12;:25;;;;:38;2063:352;;;537:26;;;;;;;;;;;;;:::i;468:35::-;;502:1;468:35;;605:26;;;;;;1635:118;1706:40;;;;;;;;;;;;;;;;1635:118;;;;1706:40;1635:118;:::i;569:30::-;;;;;;928:310;;;;;;:::i;:::-;1153:19;;;1028:14;1153:19;;;:9;:19;;;;;;;;;1174:12;:22;;;;;;1198:12;:22;;;;;;1153:19;;;;1174:22;;1153:19;;928:310;;;;;;;;;;;;:::i;1759:298::-;;;;;;:::i;:::-;;:::i;638:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;687:47;;;;;;:::i;:::-;;;;;;;;;;;;;;1244:385;1453:11;;1318:14;1479:22;;;:9;:22;;;;;;;;;1515:12;:25;;;;;;1554:12;:25;;;;;;1453:11;1244:385;;1759:298;1814:12;:22;;;1864:15;1846;:33;1889:11;:13;;;-1:-1:-1;1889:13:82;;;:::i;:::-;;;;-1:-1:-1;;1922:11:82;;;1912:22;;;;:9;:22;;;;;;;;:32;;;;1967:11;;1954:25;;:12;:25;;;;;1982:15;1954:43;;;;2020:11;;2007:25;;:12;:25;;;;;;:43;1759:298::o;99:112:101:-;82:4;71:16;;182:22;177:3;170:35;99:112;;:::o;217:214::-;344:2;329:18;;357:67;333:9;397:6;357:67;:::i;:::-;217:214;;;;:::o;875:120::-;840:22;829:34;;947:23;940:5;937:34;927:62;;985:1;982;975:12;927:62;875:120;:::o;1001:137::-;1071:20;;1100:32;1071:20;1100:32;:::i;1226:120::-;1315:5;1298:23;1144:76;1352:137;1422:20;;1451:32;1422:20;1451:32;:::i;1851:761::-;1935:6;1943;1951;1959;2008:3;1996:9;1987:7;1983:23;1979:33;1976:120;;;2015:79;409:2008:82;;;2015:79:101;2135:1;2160:52;2204:7;2184:9;2160:52;:::i;:::-;2150:62;;2106:116;2261:2;2287:52;2331:7;2322:6;2311:9;2307:22;2287:52;:::i;:::-;2277:62;;2232:117;2388:2;2414:53;2459:7;2450:6;2439:9;2435:22;2414:53;:::i;:::-;2404:63;;2359:118;2516:2;2542:53;2587:7;2578:6;2567:9;2563:22;2542:53;:::i;:::-;2532:63;;2487:118;1851:761;;;;;;;:::o;2618:115::-;2720:5;2703:23;1144:76;2739:218;2868:2;2853:18;;2881:69;2857:9;2923:6;2881:69;:::i;3595:139::-;3684:6;3679:3;3674;3668:23;-1:-1:-1;3725:1:101;3707:16;;3700:27;3595:139::o;3848:377::-;3936:3;3964:39;3997:5;3395:12;;3315:99;3964:39;3526:19;;;3578:4;3569:14;;4012:78;;4099:65;4157:6;4152:3;4145:4;4138:5;4134:16;4099:65;:::i;:::-;3832:2;3812:14;-1:-1:-1;;3808:28:101;4180:39;;;;;;-1:-1:-1;;3848:377:101:o;4231:313::-;4382:2;4395:47;;;4367:18;;4459:78;4367:18;4523:6;4459:78;:::i;:::-;4451:86;4231:313;-1:-1:-1;;;4231:313:101:o;4550:327::-;4608:6;4657:2;4645:9;4636:7;4632:23;4628:32;4625:119;;;4663:79;409:2008:82;;;4663:79:101;4783:1;4808:52;4852:7;4832:9;4808:52;:::i;:::-;4798:62;4550:327;-1:-1:-1;;;;4550:327:101:o;4883:115::-;840:22;829:34;;4968:23;764:105;5004:652;5241:3;5226:19;;5255:69;5230:9;5297:6;5255:69;:::i;:::-;5334:70;5400:2;5389:9;5385:18;5376:6;5334:70;:::i;:::-;5414:72;5482:2;5471:9;5467:18;5458:6;5414:72;:::i;:::-;5496;5564:2;5553:9;5549:18;5540:6;5496:72;:::i;:::-;5578:71;5644:3;5633:9;5629:19;5620:6;5578:71;:::i;:::-;5004:652;;;;;;;;:::o;5662:327::-;5720:6;5769:2;5757:9;5748:7;5744:23;5740:32;5737:119;;;5775:79;409:2008:82;;;5775:79:101;5895:1;5920:52;5964:7;5944:9;5920:52;:::i;6330:180::-;-1:-1:-1;;;6375:1:101;6368:88;6475:4;6472:1;6465:15;6499:4;6496:1;6489:15;6516:233;6555:3;-1:-1:-1;;6617:5:101;6614:77;6611:103;;6694:18;;:::i;:::-;-1:-1:-1;6741:1:101;6730:13;;6516:233::o"},"gasEstimates":{"creation":{"codeDepositCost":"251400","executionCost":"infinite","totalCost":"infinite"},"external":{"decimals()":"2375","description()":"infinite","getAnswer(uint256)":"infinite","getRoundData(uint80)":"infinite","getTimestamp(uint256)":"infinite","latestAnswer()":"2416","latestRound()":"2460","latestRoundData()":"infinite","latestTimestamp()":"2371","updateAnswer(int256)":"141714","updateRoundData(uint80,int256,uint256,uint256)":"infinite","version()":"337"}},"methodIdentifiers":{"decimals()":"313ce567","description()":"7284e416","getAnswer(uint256)":"b5ab58dc","getRoundData(uint80)":"9a6fc8f5","getTimestamp(uint256)":"b633620c","latestAnswer()":"50d25bcd","latestRound()":"668a0f02","latestRoundData()":"feaf968c","latestTimestamp()":"8205bf6a","updateAnswer(int256)":"a87a20ce","updateRoundData(uint80,int256,uint256,uint256)":"4aa2011f","version()":"54fd4d50"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"_initialAnswer\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"int256\",\"name\":\"current\",\"type\":\"int256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"name\":\"AnswerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"}],\"name\":\"NewRound\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint80\",\"name\":\"_roundId\",\"type\":\"uint80\"}],\"name\":\"getRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"_answer\",\"type\":\"int256\"}],\"name\":\"updateAnswer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint80\",\"name\":\"_roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"_answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"_timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startedAt\",\"type\":\"uint256\"}],\"name\":\"updateRoundData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"MockV3Aggregator\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Based on the FluxAggregator contractUse this contract when you need to test other contract's ability to read data from an aggregator contract, but how the aggregator got its answer is unimportant\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockV3Aggregator.sol\":\"MockV3Aggregator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorInterface {\\n  function latestAnswer() external view returns (int256);\\n\\n  function latestTimestamp() external view returns (uint256);\\n\\n  function latestRound() external view returns (uint256);\\n\\n  function getAnswer(uint256 roundId) external view returns (int256);\\n\\n  function getTimestamp(uint256 roundId) external view returns (uint256);\\n\\n  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);\\n\\n  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);\\n}\\n\",\"keccak256\":\"0xb496651006b9a2a07920ffe116928b11e2a6458e21361cecca51409522488ca7\",\"license\":\"MIT\"},\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport \\\"./AggregatorInterface.sol\\\";\\nimport \\\"./AggregatorV3Interface.sol\\\";\\n\\ninterface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface {}\\n\",\"keccak256\":\"0x4a7757ff7bbafe044cd49c2a45c7c18ec50eff7c7af6869face5e1e9cda976f2\",\"license\":\"MIT\"},\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorV3Interface {\\n  function decimals() external view returns (uint8);\\n\\n  function description() external view returns (string memory);\\n\\n  function version() external view returns (uint256);\\n\\n  function getRoundData(uint80 _roundId)\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n\\n  function latestRoundData()\\n    external\\n    view\\n    returns (\\n      uint80 roundId,\\n      int256 answer,\\n      uint256 startedAt,\\n      uint256 updatedAt,\\n      uint80 answeredInRound\\n    );\\n}\\n\",\"keccak256\":\"0x6e6e4b0835904509406b070ee173b5bc8f677c19421b76be38aea3b1b3d30846\",\"license\":\"MIT\"},\"contracts/test/MockV3Aggregator.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol\\\";\\n\\n/**\\n * @title MockV3Aggregator\\n * @notice Based on the FluxAggregator contract\\n * @notice Use this contract when you need to test\\n * other contract's ability to read data from an\\n * aggregator contract, but how the aggregator got\\n * its answer is unimportant\\n */\\ncontract MockV3Aggregator is AggregatorV2V3Interface {\\n    uint256 public constant version = 0;\\n\\n    uint8 public decimals;\\n    int256 public latestAnswer;\\n    uint256 public latestTimestamp;\\n    uint256 public latestRound;\\n\\n    mapping(uint256 => int256) public getAnswer;\\n    mapping(uint256 => uint256) public getTimestamp;\\n    mapping(uint256 => uint256) private getStartedAt;\\n\\n    constructor(uint8 _decimals, int256 _initialAnswer) {\\n        decimals = _decimals;\\n        updateAnswer(_initialAnswer);\\n    }\\n\\n    function getRoundData(\\n        uint80 _roundId\\n    )\\n        external\\n        view\\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)\\n    {\\n        return (_roundId, getAnswer[_roundId], getStartedAt[_roundId], getTimestamp[_roundId], _roundId);\\n    }\\n\\n    function latestRoundData()\\n        external\\n        view\\n        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)\\n    {\\n        return (\\n            uint80(latestRound),\\n            getAnswer[latestRound],\\n            getStartedAt[latestRound],\\n            getTimestamp[latestRound],\\n            uint80(latestRound)\\n        );\\n    }\\n\\n    function description() external pure returns (string memory) {\\n        return \\\"v0.6/tests/MockV3Aggregator.sol\\\";\\n    }\\n\\n    function updateAnswer(int256 _answer) public {\\n        latestAnswer = _answer;\\n        latestTimestamp = block.timestamp;\\n        latestRound++;\\n        getAnswer[latestRound] = _answer;\\n        getTimestamp[latestRound] = block.timestamp;\\n        getStartedAt[latestRound] = block.timestamp;\\n    }\\n\\n    function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public {\\n        latestRound = _roundId;\\n        latestAnswer = _answer;\\n        latestTimestamp = _timestamp;\\n        getAnswer[latestRound] = _answer;\\n        getTimestamp[latestRound] = _timestamp;\\n        getStartedAt[latestRound] = _startedAt;\\n    }\\n}\\n\",\"keccak256\":\"0x5e95134f7ca90239285524bc006c0d993aa6735d2bc758435a80e966fdad6bd9\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8150,"contract":"contracts/test/MockV3Aggregator.sol:MockV3Aggregator","label":"decimals","offset":0,"slot":"0","type":"t_uint8"},{"astId":8152,"contract":"contracts/test/MockV3Aggregator.sol:MockV3Aggregator","label":"latestAnswer","offset":0,"slot":"1","type":"t_int256"},{"astId":8154,"contract":"contracts/test/MockV3Aggregator.sol:MockV3Aggregator","label":"latestTimestamp","offset":0,"slot":"2","type":"t_uint256"},{"astId":8156,"contract":"contracts/test/MockV3Aggregator.sol:MockV3Aggregator","label":"latestRound","offset":0,"slot":"3","type":"t_uint256"},{"astId":8160,"contract":"contracts/test/MockV3Aggregator.sol:MockV3Aggregator","label":"getAnswer","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_int256)"},{"astId":8164,"contract":"contracts/test/MockV3Aggregator.sol:MockV3Aggregator","label":"getTimestamp","offset":0,"slot":"5","type":"t_mapping(t_uint256,t_uint256)"},{"astId":8168,"contract":"contracts/test/MockV3Aggregator.sol:MockV3Aggregator","label":"getStartedAt","offset":0,"slot":"6","type":"t_mapping(t_uint256,t_uint256)"}],"types":{"t_int256":{"encoding":"inplace","label":"int256","numberOfBytes":"32"},"t_mapping(t_uint256,t_int256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => int256)","numberOfBytes":"32","value":"t_int256"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"notice":"Based on the FluxAggregator contractUse this contract when you need to test other contract's ability to read data from an aggregator contract, but how the aggregator got its answer is unimportant","version":1}}},"contracts/test/MockWBETH.sol":{"MockWBETH":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"faucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setExchangeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1117":{"entryPoint":null,"id":1117,"parameterSlots":0,"returnSlots":0},"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"@_8373":{"entryPoint":null,"id":8373,"parameterSlots":3,"returnSlots":0},"@_msgSender_1908":{"entryPoint":112,"id":1908,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1205":{"entryPoint":116,"id":1205,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":340,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":403,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":462,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory":{"entryPoint":479,"id":null,"parameterSlots":2,"returnSlots":3},"allocate_memory":{"entryPoint":261,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":288,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":765,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":735,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":669,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":828,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":329,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":625,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":217,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":605,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":197,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":718,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":683,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":445,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:8980:101","nodeType":"YulBlock","src":"0:8980:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2613:43:101","nodeType":"YulBlock","src":"2613:43:101","statements":[{"nativeSrc":"2623:27:101","nodeType":"YulAssignment","src":"2623:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2638:5:101","nodeType":"YulIdentifier","src":"2638:5:101"},{"kind":"number","nativeSrc":"2645:4:101","nodeType":"YulLiteral","src":"2645:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2634:3:101","nodeType":"YulIdentifier","src":"2634:3:101"},"nativeSrc":"2634:16:101","nodeType":"YulFunctionCall","src":"2634:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2623:7:101","nodeType":"YulIdentifier","src":"2623:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2570:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulTypedName","src":"2595:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2605:7:101","nodeType":"YulTypedName","src":"2605:7:101","type":""}],"src":"2570:86:101"},{"body":{"nativeSrc":"2703:77:101","nodeType":"YulBlock","src":"2703:77:101","statements":[{"body":{"nativeSrc":"2758:16:101","nodeType":"YulBlock","src":"2758:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2767:1:101","nodeType":"YulLiteral","src":"2767:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2770:1:101","nodeType":"YulLiteral","src":"2770:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2760:6:101","nodeType":"YulIdentifier","src":"2760:6:101"},"nativeSrc":"2760:12:101","nodeType":"YulFunctionCall","src":"2760:12:101"},"nativeSrc":"2760:12:101","nodeType":"YulExpressionStatement","src":"2760:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2726:5:101","nodeType":"YulIdentifier","src":"2726:5:101"},{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2733:15:101","nodeType":"YulIdentifier","src":"2733:15:101"},"nativeSrc":"2733:22:101","nodeType":"YulFunctionCall","src":"2733:22:101"}],"functionName":{"name":"eq","nativeSrc":"2723:2:101","nodeType":"YulIdentifier","src":"2723:2:101"},"nativeSrc":"2723:33:101","nodeType":"YulFunctionCall","src":"2723:33:101"}],"functionName":{"name":"iszero","nativeSrc":"2716:6:101","nodeType":"YulIdentifier","src":"2716:6:101"},"nativeSrc":"2716:41:101","nodeType":"YulFunctionCall","src":"2716:41:101"},"nativeSrc":"2713:61:101","nodeType":"YulIf","src":"2713:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"2662:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2696:5:101","nodeType":"YulTypedName","src":"2696:5:101","type":""}],"src":"2662:118:101"},{"body":{"nativeSrc":"2847:78:101","nodeType":"YulBlock","src":"2847:78:101","statements":[{"nativeSrc":"2857:22:101","nodeType":"YulAssignment","src":"2857:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"mload","nativeSrc":"2866:5:101","nodeType":"YulIdentifier","src":"2866:5:101"},"nativeSrc":"2866:13:101","nodeType":"YulFunctionCall","src":"2866:13:101"},"variableNames":[{"name":"value","nativeSrc":"2857:5:101","nodeType":"YulIdentifier","src":"2857:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2913:5:101","nodeType":"YulIdentifier","src":"2913:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2888:24:101","nodeType":"YulIdentifier","src":"2888:24:101"},"nativeSrc":"2888:31:101","nodeType":"YulFunctionCall","src":"2888:31:101"},"nativeSrc":"2888:31:101","nodeType":"YulExpressionStatement","src":"2888:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2786:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2825:6:101","nodeType":"YulTypedName","src":"2825:6:101","type":""},{"name":"end","nativeSrc":"2833:3:101","nodeType":"YulTypedName","src":"2833:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2841:5:101","nodeType":"YulTypedName","src":"2841:5:101","type":""}],"src":"2786:139:101"},{"body":{"nativeSrc":"3060:876:101","nodeType":"YulBlock","src":"3060:876:101","statements":[{"body":{"nativeSrc":"3106:83:101","nodeType":"YulBlock","src":"3106:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3108:77:101","nodeType":"YulIdentifier","src":"3108:77:101"},"nativeSrc":"3108:79:101","nodeType":"YulFunctionCall","src":"3108:79:101"},"nativeSrc":"3108:79:101","nodeType":"YulExpressionStatement","src":"3108:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3081:7:101","nodeType":"YulIdentifier","src":"3081:7:101"},{"name":"headStart","nativeSrc":"3090:9:101","nodeType":"YulIdentifier","src":"3090:9:101"}],"functionName":{"name":"sub","nativeSrc":"3077:3:101","nodeType":"YulIdentifier","src":"3077:3:101"},"nativeSrc":"3077:23:101","nodeType":"YulFunctionCall","src":"3077:23:101"},{"kind":"number","nativeSrc":"3102:2:101","nodeType":"YulLiteral","src":"3102:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3073:3:101","nodeType":"YulIdentifier","src":"3073:3:101"},"nativeSrc":"3073:32:101","nodeType":"YulFunctionCall","src":"3073:32:101"},"nativeSrc":"3070:119:101","nodeType":"YulIf","src":"3070:119:101"},{"nativeSrc":"3199:291:101","nodeType":"YulBlock","src":"3199:291:101","statements":[{"nativeSrc":"3214:38:101","nodeType":"YulVariableDeclaration","src":"3214:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3238:9:101","nodeType":"YulIdentifier","src":"3238:9:101"},{"kind":"number","nativeSrc":"3249:1:101","nodeType":"YulLiteral","src":"3249:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3234:3:101","nodeType":"YulIdentifier","src":"3234:3:101"},"nativeSrc":"3234:17:101","nodeType":"YulFunctionCall","src":"3234:17:101"}],"functionName":{"name":"mload","nativeSrc":"3228:5:101","nodeType":"YulIdentifier","src":"3228:5:101"},"nativeSrc":"3228:24:101","nodeType":"YulFunctionCall","src":"3228:24:101"},"variables":[{"name":"offset","nativeSrc":"3218:6:101","nodeType":"YulTypedName","src":"3218:6:101","type":""}]},{"body":{"nativeSrc":"3299:83:101","nodeType":"YulBlock","src":"3299:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3301:77:101","nodeType":"YulIdentifier","src":"3301:77:101"},"nativeSrc":"3301:79:101","nodeType":"YulFunctionCall","src":"3301:79:101"},"nativeSrc":"3301:79:101","nodeType":"YulExpressionStatement","src":"3301:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3271:6:101","nodeType":"YulIdentifier","src":"3271:6:101"},{"kind":"number","nativeSrc":"3279:18:101","nodeType":"YulLiteral","src":"3279:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3268:2:101","nodeType":"YulIdentifier","src":"3268:2:101"},"nativeSrc":"3268:30:101","nodeType":"YulFunctionCall","src":"3268:30:101"},"nativeSrc":"3265:117:101","nodeType":"YulIf","src":"3265:117:101"},{"nativeSrc":"3396:84:101","nodeType":"YulAssignment","src":"3396:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3452:9:101","nodeType":"YulIdentifier","src":"3452:9:101"},{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulIdentifier","src":"3463:6:101"}],"functionName":{"name":"add","nativeSrc":"3448:3:101","nodeType":"YulIdentifier","src":"3448:3:101"},"nativeSrc":"3448:22:101","nodeType":"YulFunctionCall","src":"3448:22:101"},{"name":"dataEnd","nativeSrc":"3472:7:101","nodeType":"YulIdentifier","src":"3472:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3406:41:101","nodeType":"YulIdentifier","src":"3406:41:101"},"nativeSrc":"3406:74:101","nodeType":"YulFunctionCall","src":"3406:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3396:6:101","nodeType":"YulIdentifier","src":"3396:6:101"}]}]},{"nativeSrc":"3500:292:101","nodeType":"YulBlock","src":"3500:292:101","statements":[{"nativeSrc":"3515:39:101","nodeType":"YulVariableDeclaration","src":"3515:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3539:9:101","nodeType":"YulIdentifier","src":"3539:9:101"},{"kind":"number","nativeSrc":"3550:2:101","nodeType":"YulLiteral","src":"3550:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3535:3:101","nodeType":"YulIdentifier","src":"3535:3:101"},"nativeSrc":"3535:18:101","nodeType":"YulFunctionCall","src":"3535:18:101"}],"functionName":{"name":"mload","nativeSrc":"3529:5:101","nodeType":"YulIdentifier","src":"3529:5:101"},"nativeSrc":"3529:25:101","nodeType":"YulFunctionCall","src":"3529:25:101"},"variables":[{"name":"offset","nativeSrc":"3519:6:101","nodeType":"YulTypedName","src":"3519:6:101","type":""}]},{"body":{"nativeSrc":"3601:83:101","nodeType":"YulBlock","src":"3601:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3603:77:101","nodeType":"YulIdentifier","src":"3603:77:101"},"nativeSrc":"3603:79:101","nodeType":"YulFunctionCall","src":"3603:79:101"},"nativeSrc":"3603:79:101","nodeType":"YulExpressionStatement","src":"3603:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3573:6:101","nodeType":"YulIdentifier","src":"3573:6:101"},{"kind":"number","nativeSrc":"3581:18:101","nodeType":"YulLiteral","src":"3581:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3570:2:101","nodeType":"YulIdentifier","src":"3570:2:101"},"nativeSrc":"3570:30:101","nodeType":"YulFunctionCall","src":"3570:30:101"},"nativeSrc":"3567:117:101","nodeType":"YulIf","src":"3567:117:101"},{"nativeSrc":"3698:84:101","nodeType":"YulAssignment","src":"3698:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3754:9:101","nodeType":"YulIdentifier","src":"3754:9:101"},{"name":"offset","nativeSrc":"3765:6:101","nodeType":"YulIdentifier","src":"3765:6:101"}],"functionName":{"name":"add","nativeSrc":"3750:3:101","nodeType":"YulIdentifier","src":"3750:3:101"},"nativeSrc":"3750:22:101","nodeType":"YulFunctionCall","src":"3750:22:101"},{"name":"dataEnd","nativeSrc":"3774:7:101","nodeType":"YulIdentifier","src":"3774:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3708:41:101","nodeType":"YulIdentifier","src":"3708:41:101"},"nativeSrc":"3708:74:101","nodeType":"YulFunctionCall","src":"3708:74:101"},"variableNames":[{"name":"value1","nativeSrc":"3698:6:101","nodeType":"YulIdentifier","src":"3698:6:101"}]}]},{"nativeSrc":"3802:127:101","nodeType":"YulBlock","src":"3802:127:101","statements":[{"nativeSrc":"3817:16:101","nodeType":"YulVariableDeclaration","src":"3817:16:101","value":{"kind":"number","nativeSrc":"3831:2:101","nodeType":"YulLiteral","src":"3831:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3821:6:101","nodeType":"YulTypedName","src":"3821:6:101","type":""}]},{"nativeSrc":"3847:72:101","nodeType":"YulAssignment","src":"3847:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3891:9:101","nodeType":"YulIdentifier","src":"3891:9:101"},{"name":"offset","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"}],"functionName":{"name":"add","nativeSrc":"3887:3:101","nodeType":"YulIdentifier","src":"3887:3:101"},"nativeSrc":"3887:22:101","nodeType":"YulFunctionCall","src":"3887:22:101"},{"name":"dataEnd","nativeSrc":"3911:7:101","nodeType":"YulIdentifier","src":"3911:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"3857:29:101","nodeType":"YulIdentifier","src":"3857:29:101"},"nativeSrc":"3857:62:101","nodeType":"YulFunctionCall","src":"3857:62:101"},"variableNames":[{"name":"value2","nativeSrc":"3847:6:101","nodeType":"YulIdentifier","src":"3847:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory","nativeSrc":"2931:1005:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3014:9:101","nodeType":"YulTypedName","src":"3014:9:101","type":""},{"name":"dataEnd","nativeSrc":"3025:7:101","nodeType":"YulTypedName","src":"3025:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3037:6:101","nodeType":"YulTypedName","src":"3037:6:101","type":""},{"name":"value1","nativeSrc":"3045:6:101","nodeType":"YulTypedName","src":"3045:6:101","type":""},{"name":"value2","nativeSrc":"3053:6:101","nodeType":"YulTypedName","src":"3053:6:101","type":""}],"src":"2931:1005:101"},{"body":{"nativeSrc":"4001:40:101","nodeType":"YulBlock","src":"4001:40:101","statements":[{"nativeSrc":"4012:22:101","nodeType":"YulAssignment","src":"4012:22:101","value":{"arguments":[{"name":"value","nativeSrc":"4028:5:101","nodeType":"YulIdentifier","src":"4028:5:101"}],"functionName":{"name":"mload","nativeSrc":"4022:5:101","nodeType":"YulIdentifier","src":"4022:5:101"},"nativeSrc":"4022:12:101","nodeType":"YulFunctionCall","src":"4022:12:101"},"variableNames":[{"name":"length","nativeSrc":"4012:6:101","nodeType":"YulIdentifier","src":"4012:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3942:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3984:5:101","nodeType":"YulTypedName","src":"3984:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3994:6:101","nodeType":"YulTypedName","src":"3994:6:101","type":""}],"src":"3942:99:101"},{"body":{"nativeSrc":"4075:152:101","nodeType":"YulBlock","src":"4075:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4092:1:101","nodeType":"YulLiteral","src":"4092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4095:77:101","nodeType":"YulLiteral","src":"4095:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4085:6:101","nodeType":"YulIdentifier","src":"4085:6:101"},"nativeSrc":"4085:88:101","nodeType":"YulFunctionCall","src":"4085:88:101"},"nativeSrc":"4085:88:101","nodeType":"YulExpressionStatement","src":"4085:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4189:1:101","nodeType":"YulLiteral","src":"4189:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4192:4:101","nodeType":"YulLiteral","src":"4192:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4182:6:101","nodeType":"YulIdentifier","src":"4182:6:101"},"nativeSrc":"4182:15:101","nodeType":"YulFunctionCall","src":"4182:15:101"},"nativeSrc":"4182:15:101","nodeType":"YulExpressionStatement","src":"4182:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4213:1:101","nodeType":"YulLiteral","src":"4213:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4216:4:101","nodeType":"YulLiteral","src":"4216:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},"nativeSrc":"4206:15:101","nodeType":"YulFunctionCall","src":"4206:15:101"},"nativeSrc":"4206:15:101","nodeType":"YulExpressionStatement","src":"4206:15:101"}]},"name":"panic_error_0x22","nativeSrc":"4047:180:101","nodeType":"YulFunctionDefinition","src":"4047:180:101"},{"body":{"nativeSrc":"4284:269:101","nodeType":"YulBlock","src":"4284:269:101","statements":[{"nativeSrc":"4294:22:101","nodeType":"YulAssignment","src":"4294:22:101","value":{"arguments":[{"name":"data","nativeSrc":"4308:4:101","nodeType":"YulIdentifier","src":"4308:4:101"},{"kind":"number","nativeSrc":"4314:1:101","nodeType":"YulLiteral","src":"4314:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4304:3:101","nodeType":"YulIdentifier","src":"4304:3:101"},"nativeSrc":"4304:12:101","nodeType":"YulFunctionCall","src":"4304:12:101"},"variableNames":[{"name":"length","nativeSrc":"4294:6:101","nodeType":"YulIdentifier","src":"4294:6:101"}]},{"nativeSrc":"4325:38:101","nodeType":"YulVariableDeclaration","src":"4325:38:101","value":{"arguments":[{"name":"data","nativeSrc":"4355:4:101","nodeType":"YulIdentifier","src":"4355:4:101"},{"kind":"number","nativeSrc":"4361:1:101","nodeType":"YulLiteral","src":"4361:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4351:3:101","nodeType":"YulIdentifier","src":"4351:3:101"},"nativeSrc":"4351:12:101","nodeType":"YulFunctionCall","src":"4351:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4329:18:101","nodeType":"YulTypedName","src":"4329:18:101","type":""}]},{"body":{"nativeSrc":"4402:51:101","nodeType":"YulBlock","src":"4402:51:101","statements":[{"nativeSrc":"4416:27:101","nodeType":"YulAssignment","src":"4416:27:101","value":{"arguments":[{"name":"length","nativeSrc":"4430:6:101","nodeType":"YulIdentifier","src":"4430:6:101"},{"kind":"number","nativeSrc":"4438:4:101","nodeType":"YulLiteral","src":"4438:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4426:3:101","nodeType":"YulIdentifier","src":"4426:3:101"},"nativeSrc":"4426:17:101","nodeType":"YulFunctionCall","src":"4426:17:101"},"variableNames":[{"name":"length","nativeSrc":"4416:6:101","nodeType":"YulIdentifier","src":"4416:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4382:18:101","nodeType":"YulIdentifier","src":"4382:18:101"}],"functionName":{"name":"iszero","nativeSrc":"4375:6:101","nodeType":"YulIdentifier","src":"4375:6:101"},"nativeSrc":"4375:26:101","nodeType":"YulFunctionCall","src":"4375:26:101"},"nativeSrc":"4372:81:101","nodeType":"YulIf","src":"4372:81:101"},{"body":{"nativeSrc":"4505:42:101","nodeType":"YulBlock","src":"4505:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4519:16:101","nodeType":"YulIdentifier","src":"4519:16:101"},"nativeSrc":"4519:18:101","nodeType":"YulFunctionCall","src":"4519:18:101"},"nativeSrc":"4519:18:101","nodeType":"YulExpressionStatement","src":"4519:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4469:18:101","nodeType":"YulIdentifier","src":"4469:18:101"},{"arguments":[{"name":"length","nativeSrc":"4492:6:101","nodeType":"YulIdentifier","src":"4492:6:101"},{"kind":"number","nativeSrc":"4500:2:101","nodeType":"YulLiteral","src":"4500:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4489:2:101","nodeType":"YulIdentifier","src":"4489:2:101"},"nativeSrc":"4489:14:101","nodeType":"YulFunctionCall","src":"4489:14:101"}],"functionName":{"name":"eq","nativeSrc":"4466:2:101","nodeType":"YulIdentifier","src":"4466:2:101"},"nativeSrc":"4466:38:101","nodeType":"YulFunctionCall","src":"4466:38:101"},"nativeSrc":"4463:84:101","nodeType":"YulIf","src":"4463:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"4233:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4268:4:101","nodeType":"YulTypedName","src":"4268:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4277:6:101","nodeType":"YulTypedName","src":"4277:6:101","type":""}],"src":"4233:320:101"},{"body":{"nativeSrc":"4613:87:101","nodeType":"YulBlock","src":"4613:87:101","statements":[{"nativeSrc":"4623:11:101","nodeType":"YulAssignment","src":"4623:11:101","value":{"name":"ptr","nativeSrc":"4631:3:101","nodeType":"YulIdentifier","src":"4631:3:101"},"variableNames":[{"name":"data","nativeSrc":"4623:4:101","nodeType":"YulIdentifier","src":"4623:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4651:1:101","nodeType":"YulLiteral","src":"4651:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"4654:3:101","nodeType":"YulIdentifier","src":"4654:3:101"}],"functionName":{"name":"mstore","nativeSrc":"4644:6:101","nodeType":"YulIdentifier","src":"4644:6:101"},"nativeSrc":"4644:14:101","nodeType":"YulFunctionCall","src":"4644:14:101"},"nativeSrc":"4644:14:101","nodeType":"YulExpressionStatement","src":"4644:14:101"},{"nativeSrc":"4667:26:101","nodeType":"YulAssignment","src":"4667:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"4685:1:101","nodeType":"YulLiteral","src":"4685:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4688:4:101","nodeType":"YulLiteral","src":"4688:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4675:9:101","nodeType":"YulIdentifier","src":"4675:9:101"},"nativeSrc":"4675:18:101","nodeType":"YulFunctionCall","src":"4675:18:101"},"variableNames":[{"name":"data","nativeSrc":"4667:4:101","nodeType":"YulIdentifier","src":"4667:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4559:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4600:3:101","nodeType":"YulTypedName","src":"4600:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4608:4:101","nodeType":"YulTypedName","src":"4608:4:101","type":""}],"src":"4559:141:101"},{"body":{"nativeSrc":"4750:49:101","nodeType":"YulBlock","src":"4750:49:101","statements":[{"nativeSrc":"4760:33:101","nodeType":"YulAssignment","src":"4760:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4778:5:101","nodeType":"YulIdentifier","src":"4778:5:101"},{"kind":"number","nativeSrc":"4785:2:101","nodeType":"YulLiteral","src":"4785:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4774:3:101","nodeType":"YulIdentifier","src":"4774:3:101"},"nativeSrc":"4774:14:101","nodeType":"YulFunctionCall","src":"4774:14:101"},{"kind":"number","nativeSrc":"4790:2:101","nodeType":"YulLiteral","src":"4790:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4770:3:101","nodeType":"YulIdentifier","src":"4770:3:101"},"nativeSrc":"4770:23:101","nodeType":"YulFunctionCall","src":"4770:23:101"},"variableNames":[{"name":"result","nativeSrc":"4760:6:101","nodeType":"YulIdentifier","src":"4760:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4706:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4733:5:101","nodeType":"YulTypedName","src":"4733:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4743:6:101","nodeType":"YulTypedName","src":"4743:6:101","type":""}],"src":"4706:93:101"},{"body":{"nativeSrc":"4858:54:101","nodeType":"YulBlock","src":"4858:54:101","statements":[{"nativeSrc":"4868:37:101","nodeType":"YulAssignment","src":"4868:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"4893:4:101","nodeType":"YulIdentifier","src":"4893:4:101"},{"name":"value","nativeSrc":"4899:5:101","nodeType":"YulIdentifier","src":"4899:5:101"}],"functionName":{"name":"shl","nativeSrc":"4889:3:101","nodeType":"YulIdentifier","src":"4889:3:101"},"nativeSrc":"4889:16:101","nodeType":"YulFunctionCall","src":"4889:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"4868:8:101","nodeType":"YulIdentifier","src":"4868:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"4805:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4833:4:101","nodeType":"YulTypedName","src":"4833:4:101","type":""},{"name":"value","nativeSrc":"4839:5:101","nodeType":"YulTypedName","src":"4839:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4849:8:101","nodeType":"YulTypedName","src":"4849:8:101","type":""}],"src":"4805:107:101"},{"body":{"nativeSrc":"4994:317:101","nodeType":"YulBlock","src":"4994:317:101","statements":[{"nativeSrc":"5004:35:101","nodeType":"YulVariableDeclaration","src":"5004:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5025:10:101","nodeType":"YulIdentifier","src":"5025:10:101"},{"kind":"number","nativeSrc":"5037:1:101","nodeType":"YulLiteral","src":"5037:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5021:3:101","nodeType":"YulIdentifier","src":"5021:3:101"},"nativeSrc":"5021:18:101","nodeType":"YulFunctionCall","src":"5021:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"5008:9:101","nodeType":"YulTypedName","src":"5008:9:101","type":""}]},{"nativeSrc":"5048:109:101","nodeType":"YulVariableDeclaration","src":"5048:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5079:9:101","nodeType":"YulIdentifier","src":"5079:9:101"},{"kind":"number","nativeSrc":"5090:66:101","nodeType":"YulLiteral","src":"5090:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5060:18:101","nodeType":"YulIdentifier","src":"5060:18:101"},"nativeSrc":"5060:97:101","nodeType":"YulFunctionCall","src":"5060:97:101"},"variables":[{"name":"mask","nativeSrc":"5052:4:101","nodeType":"YulTypedName","src":"5052:4:101","type":""}]},{"nativeSrc":"5166:51:101","nodeType":"YulAssignment","src":"5166:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5197:9:101","nodeType":"YulIdentifier","src":"5197:9:101"},{"name":"toInsert","nativeSrc":"5208:8:101","nodeType":"YulIdentifier","src":"5208:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5178:18:101","nodeType":"YulIdentifier","src":"5178:18:101"},"nativeSrc":"5178:39:101","nodeType":"YulFunctionCall","src":"5178:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"5166:8:101","nodeType":"YulIdentifier","src":"5166:8:101"}]},{"nativeSrc":"5226:30:101","nodeType":"YulAssignment","src":"5226:30:101","value":{"arguments":[{"name":"value","nativeSrc":"5239:5:101","nodeType":"YulIdentifier","src":"5239:5:101"},{"arguments":[{"name":"mask","nativeSrc":"5250:4:101","nodeType":"YulIdentifier","src":"5250:4:101"}],"functionName":{"name":"not","nativeSrc":"5246:3:101","nodeType":"YulIdentifier","src":"5246:3:101"},"nativeSrc":"5246:9:101","nodeType":"YulFunctionCall","src":"5246:9:101"}],"functionName":{"name":"and","nativeSrc":"5235:3:101","nodeType":"YulIdentifier","src":"5235:3:101"},"nativeSrc":"5235:21:101","nodeType":"YulFunctionCall","src":"5235:21:101"},"variableNames":[{"name":"value","nativeSrc":"5226:5:101","nodeType":"YulIdentifier","src":"5226:5:101"}]},{"nativeSrc":"5265:40:101","nodeType":"YulAssignment","src":"5265:40:101","value":{"arguments":[{"name":"value","nativeSrc":"5278:5:101","nodeType":"YulIdentifier","src":"5278:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"5289:8:101","nodeType":"YulIdentifier","src":"5289:8:101"},{"name":"mask","nativeSrc":"5299:4:101","nodeType":"YulIdentifier","src":"5299:4:101"}],"functionName":{"name":"and","nativeSrc":"5285:3:101","nodeType":"YulIdentifier","src":"5285:3:101"},"nativeSrc":"5285:19:101","nodeType":"YulFunctionCall","src":"5285:19:101"}],"functionName":{"name":"or","nativeSrc":"5275:2:101","nodeType":"YulIdentifier","src":"5275:2:101"},"nativeSrc":"5275:30:101","nodeType":"YulFunctionCall","src":"5275:30:101"},"variableNames":[{"name":"result","nativeSrc":"5265:6:101","nodeType":"YulIdentifier","src":"5265:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"4918:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4955:5:101","nodeType":"YulTypedName","src":"4955:5:101","type":""},{"name":"shiftBytes","nativeSrc":"4962:10:101","nodeType":"YulTypedName","src":"4962:10:101","type":""},{"name":"toInsert","nativeSrc":"4974:8:101","nodeType":"YulTypedName","src":"4974:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4987:6:101","nodeType":"YulTypedName","src":"4987:6:101","type":""}],"src":"4918:393:101"},{"body":{"nativeSrc":"5362:32:101","nodeType":"YulBlock","src":"5362:32:101","statements":[{"nativeSrc":"5372:16:101","nodeType":"YulAssignment","src":"5372:16:101","value":{"name":"value","nativeSrc":"5383:5:101","nodeType":"YulIdentifier","src":"5383:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5372:7:101","nodeType":"YulIdentifier","src":"5372:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5317:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5344:5:101","nodeType":"YulTypedName","src":"5344:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5354:7:101","nodeType":"YulTypedName","src":"5354:7:101","type":""}],"src":"5317:77:101"},{"body":{"nativeSrc":"5432:28:101","nodeType":"YulBlock","src":"5432:28:101","statements":[{"nativeSrc":"5442:12:101","nodeType":"YulAssignment","src":"5442:12:101","value":{"name":"value","nativeSrc":"5449:5:101","nodeType":"YulIdentifier","src":"5449:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"}]}]},"name":"identity","nativeSrc":"5400:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5418:5:101","nodeType":"YulTypedName","src":"5418:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5428:3:101","nodeType":"YulTypedName","src":"5428:3:101","type":""}],"src":"5400:60:101"},{"body":{"nativeSrc":"5526:82:101","nodeType":"YulBlock","src":"5526:82:101","statements":[{"nativeSrc":"5536:66:101","nodeType":"YulAssignment","src":"5536:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5594:5:101","nodeType":"YulIdentifier","src":"5594:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5576:17:101","nodeType":"YulIdentifier","src":"5576:17:101"},"nativeSrc":"5576:24:101","nodeType":"YulFunctionCall","src":"5576:24:101"}],"functionName":{"name":"identity","nativeSrc":"5567:8:101","nodeType":"YulIdentifier","src":"5567:8:101"},"nativeSrc":"5567:34:101","nodeType":"YulFunctionCall","src":"5567:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5549:17:101","nodeType":"YulIdentifier","src":"5549:17:101"},"nativeSrc":"5549:53:101","nodeType":"YulFunctionCall","src":"5549:53:101"},"variableNames":[{"name":"converted","nativeSrc":"5536:9:101","nodeType":"YulIdentifier","src":"5536:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5466:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5506:5:101","nodeType":"YulTypedName","src":"5506:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5516:9:101","nodeType":"YulTypedName","src":"5516:9:101","type":""}],"src":"5466:142:101"},{"body":{"nativeSrc":"5661:28:101","nodeType":"YulBlock","src":"5661:28:101","statements":[{"nativeSrc":"5671:12:101","nodeType":"YulAssignment","src":"5671:12:101","value":{"name":"value","nativeSrc":"5678:5:101","nodeType":"YulIdentifier","src":"5678:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5671:3:101","nodeType":"YulIdentifier","src":"5671:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5614:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5647:5:101","nodeType":"YulTypedName","src":"5647:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5657:3:101","nodeType":"YulTypedName","src":"5657:3:101","type":""}],"src":"5614:75:101"},{"body":{"nativeSrc":"5771:193:101","nodeType":"YulBlock","src":"5771:193:101","statements":[{"nativeSrc":"5781:63:101","nodeType":"YulVariableDeclaration","src":"5781:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"5836:7:101","nodeType":"YulIdentifier","src":"5836:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5805:30:101","nodeType":"YulIdentifier","src":"5805:30:101"},"nativeSrc":"5805:39:101","nodeType":"YulFunctionCall","src":"5805:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"5785:16:101","nodeType":"YulTypedName","src":"5785:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5860:4:101","nodeType":"YulIdentifier","src":"5860:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5900:4:101","nodeType":"YulIdentifier","src":"5900:4:101"}],"functionName":{"name":"sload","nativeSrc":"5894:5:101","nodeType":"YulIdentifier","src":"5894:5:101"},"nativeSrc":"5894:11:101","nodeType":"YulFunctionCall","src":"5894:11:101"},{"name":"offset","nativeSrc":"5907:6:101","nodeType":"YulIdentifier","src":"5907:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"5939:16:101","nodeType":"YulIdentifier","src":"5939:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"5915:23:101","nodeType":"YulIdentifier","src":"5915:23:101"},"nativeSrc":"5915:41:101","nodeType":"YulFunctionCall","src":"5915:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5866:27:101","nodeType":"YulIdentifier","src":"5866:27:101"},"nativeSrc":"5866:91:101","nodeType":"YulFunctionCall","src":"5866:91:101"}],"functionName":{"name":"sstore","nativeSrc":"5853:6:101","nodeType":"YulIdentifier","src":"5853:6:101"},"nativeSrc":"5853:105:101","nodeType":"YulFunctionCall","src":"5853:105:101"},"nativeSrc":"5853:105:101","nodeType":"YulExpressionStatement","src":"5853:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5695:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5748:4:101","nodeType":"YulTypedName","src":"5748:4:101","type":""},{"name":"offset","nativeSrc":"5754:6:101","nodeType":"YulTypedName","src":"5754:6:101","type":""},{"name":"value_0","nativeSrc":"5762:7:101","nodeType":"YulTypedName","src":"5762:7:101","type":""}],"src":"5695:269:101"},{"body":{"nativeSrc":"6019:24:101","nodeType":"YulBlock","src":"6019:24:101","statements":[{"nativeSrc":"6029:8:101","nodeType":"YulAssignment","src":"6029:8:101","value":{"kind":"number","nativeSrc":"6036:1:101","nodeType":"YulLiteral","src":"6036:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6029:3:101","nodeType":"YulIdentifier","src":"6029:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"5970:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6015:3:101","nodeType":"YulTypedName","src":"6015:3:101","type":""}],"src":"5970:73:101"},{"body":{"nativeSrc":"6102:136:101","nodeType":"YulBlock","src":"6102:136:101","statements":[{"nativeSrc":"6112:46:101","nodeType":"YulVariableDeclaration","src":"6112:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6126:30:101","nodeType":"YulIdentifier","src":"6126:30:101"},"nativeSrc":"6126:32:101","nodeType":"YulFunctionCall","src":"6126:32:101"},"variables":[{"name":"zero_0","nativeSrc":"6116:6:101","nodeType":"YulTypedName","src":"6116:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6211:4:101","nodeType":"YulIdentifier","src":"6211:4:101"},{"name":"offset","nativeSrc":"6217:6:101","nodeType":"YulIdentifier","src":"6217:6:101"},{"name":"zero_0","nativeSrc":"6225:6:101","nodeType":"YulIdentifier","src":"6225:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6167:43:101","nodeType":"YulIdentifier","src":"6167:43:101"},"nativeSrc":"6167:65:101","nodeType":"YulFunctionCall","src":"6167:65:101"},"nativeSrc":"6167:65:101","nodeType":"YulExpressionStatement","src":"6167:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6049:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6088:4:101","nodeType":"YulTypedName","src":"6088:4:101","type":""},{"name":"offset","nativeSrc":"6094:6:101","nodeType":"YulTypedName","src":"6094:6:101","type":""}],"src":"6049:189:101"},{"body":{"nativeSrc":"6294:136:101","nodeType":"YulBlock","src":"6294:136:101","statements":[{"body":{"nativeSrc":"6361:63:101","nodeType":"YulBlock","src":"6361:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6405:5:101","nodeType":"YulIdentifier","src":"6405:5:101"},{"kind":"number","nativeSrc":"6412:1:101","nodeType":"YulLiteral","src":"6412:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"6375:29:101","nodeType":"YulIdentifier","src":"6375:29:101"},"nativeSrc":"6375:39:101","nodeType":"YulFunctionCall","src":"6375:39:101"},"nativeSrc":"6375:39:101","nodeType":"YulExpressionStatement","src":"6375:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6314:5:101","nodeType":"YulIdentifier","src":"6314:5:101"},{"name":"end","nativeSrc":"6321:3:101","nodeType":"YulIdentifier","src":"6321:3:101"}],"functionName":{"name":"lt","nativeSrc":"6311:2:101","nodeType":"YulIdentifier","src":"6311:2:101"},"nativeSrc":"6311:14:101","nodeType":"YulFunctionCall","src":"6311:14:101"},"nativeSrc":"6304:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"6326:26:101","nodeType":"YulBlock","src":"6326:26:101","statements":[{"nativeSrc":"6328:22:101","nodeType":"YulAssignment","src":"6328:22:101","value":{"arguments":[{"name":"start","nativeSrc":"6341:5:101","nodeType":"YulIdentifier","src":"6341:5:101"},{"kind":"number","nativeSrc":"6348:1:101","nodeType":"YulLiteral","src":"6348:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6337:3:101","nodeType":"YulIdentifier","src":"6337:3:101"},"nativeSrc":"6337:13:101","nodeType":"YulFunctionCall","src":"6337:13:101"},"variableNames":[{"name":"start","nativeSrc":"6328:5:101","nodeType":"YulIdentifier","src":"6328:5:101"}]}]},"pre":{"nativeSrc":"6308:2:101","nodeType":"YulBlock","src":"6308:2:101","statements":[]},"src":"6304:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6244:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6282:5:101","nodeType":"YulTypedName","src":"6282:5:101","type":""},{"name":"end","nativeSrc":"6289:3:101","nodeType":"YulTypedName","src":"6289:3:101","type":""}],"src":"6244:186:101"},{"body":{"nativeSrc":"6515:464:101","nodeType":"YulBlock","src":"6515:464:101","statements":[{"body":{"nativeSrc":"6541:431:101","nodeType":"YulBlock","src":"6541:431:101","statements":[{"nativeSrc":"6555:54:101","nodeType":"YulVariableDeclaration","src":"6555:54:101","value":{"arguments":[{"name":"array","nativeSrc":"6603:5:101","nodeType":"YulIdentifier","src":"6603:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6571:31:101","nodeType":"YulIdentifier","src":"6571:31:101"},"nativeSrc":"6571:38:101","nodeType":"YulFunctionCall","src":"6571:38:101"},"variables":[{"name":"dataArea","nativeSrc":"6559:8:101","nodeType":"YulTypedName","src":"6559:8:101","type":""}]},{"nativeSrc":"6622:63:101","nodeType":"YulVariableDeclaration","src":"6622:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"6645:8:101","nodeType":"YulIdentifier","src":"6645:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"6673:10:101","nodeType":"YulIdentifier","src":"6673:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6655:17:101","nodeType":"YulIdentifier","src":"6655:17:101"},"nativeSrc":"6655:29:101","nodeType":"YulFunctionCall","src":"6655:29:101"}],"functionName":{"name":"add","nativeSrc":"6641:3:101","nodeType":"YulIdentifier","src":"6641:3:101"},"nativeSrc":"6641:44:101","nodeType":"YulFunctionCall","src":"6641:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"6626:11:101","nodeType":"YulTypedName","src":"6626:11:101","type":""}]},{"body":{"nativeSrc":"6842:27:101","nodeType":"YulBlock","src":"6842:27:101","statements":[{"nativeSrc":"6844:23:101","nodeType":"YulAssignment","src":"6844:23:101","value":{"name":"dataArea","nativeSrc":"6859:8:101","nodeType":"YulIdentifier","src":"6859:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"6844:11:101","nodeType":"YulIdentifier","src":"6844:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6826:10:101","nodeType":"YulIdentifier","src":"6826:10:101"},{"kind":"number","nativeSrc":"6838:2:101","nodeType":"YulLiteral","src":"6838:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6823:2:101","nodeType":"YulIdentifier","src":"6823:2:101"},"nativeSrc":"6823:18:101","nodeType":"YulFunctionCall","src":"6823:18:101"},"nativeSrc":"6820:49:101","nodeType":"YulIf","src":"6820:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"6911:11:101","nodeType":"YulIdentifier","src":"6911:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"6928:8:101","nodeType":"YulIdentifier","src":"6928:8:101"},{"arguments":[{"name":"len","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6938:17:101","nodeType":"YulIdentifier","src":"6938:17:101"},"nativeSrc":"6938:22:101","nodeType":"YulFunctionCall","src":"6938:22:101"}],"functionName":{"name":"add","nativeSrc":"6924:3:101","nodeType":"YulIdentifier","src":"6924:3:101"},"nativeSrc":"6924:37:101","nodeType":"YulFunctionCall","src":"6924:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6882:28:101","nodeType":"YulIdentifier","src":"6882:28:101"},"nativeSrc":"6882:80:101","nodeType":"YulFunctionCall","src":"6882:80:101"},"nativeSrc":"6882:80:101","nodeType":"YulExpressionStatement","src":"6882:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6532:3:101","nodeType":"YulIdentifier","src":"6532:3:101"},{"kind":"number","nativeSrc":"6537:2:101","nodeType":"YulLiteral","src":"6537:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6529:2:101","nodeType":"YulIdentifier","src":"6529:2:101"},"nativeSrc":"6529:11:101","nodeType":"YulFunctionCall","src":"6529:11:101"},"nativeSrc":"6526:446:101","nodeType":"YulIf","src":"6526:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"6436:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"6491:5:101","nodeType":"YulTypedName","src":"6491:5:101","type":""},{"name":"len","nativeSrc":"6498:3:101","nodeType":"YulTypedName","src":"6498:3:101","type":""},{"name":"startIndex","nativeSrc":"6503:10:101","nodeType":"YulTypedName","src":"6503:10:101","type":""}],"src":"6436:543:101"},{"body":{"nativeSrc":"7048:54:101","nodeType":"YulBlock","src":"7048:54:101","statements":[{"nativeSrc":"7058:37:101","nodeType":"YulAssignment","src":"7058:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"7083:4:101","nodeType":"YulIdentifier","src":"7083:4:101"},{"name":"value","nativeSrc":"7089:5:101","nodeType":"YulIdentifier","src":"7089:5:101"}],"functionName":{"name":"shr","nativeSrc":"7079:3:101","nodeType":"YulIdentifier","src":"7079:3:101"},"nativeSrc":"7079:16:101","nodeType":"YulFunctionCall","src":"7079:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"7058:8:101","nodeType":"YulIdentifier","src":"7058:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"6985:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7023:4:101","nodeType":"YulTypedName","src":"7023:4:101","type":""},{"name":"value","nativeSrc":"7029:5:101","nodeType":"YulTypedName","src":"7029:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7039:8:101","nodeType":"YulTypedName","src":"7039:8:101","type":""}],"src":"6985:117:101"},{"body":{"nativeSrc":"7159:118:101","nodeType":"YulBlock","src":"7159:118:101","statements":[{"nativeSrc":"7169:68:101","nodeType":"YulVariableDeclaration","src":"7169:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7218:1:101","nodeType":"YulLiteral","src":"7218:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"7221:5:101","nodeType":"YulIdentifier","src":"7221:5:101"}],"functionName":{"name":"mul","nativeSrc":"7214:3:101","nodeType":"YulIdentifier","src":"7214:3:101"},"nativeSrc":"7214:13:101","nodeType":"YulFunctionCall","src":"7214:13:101"},{"arguments":[{"kind":"number","nativeSrc":"7233:1:101","nodeType":"YulLiteral","src":"7233:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7229:3:101","nodeType":"YulIdentifier","src":"7229:3:101"},"nativeSrc":"7229:6:101","nodeType":"YulFunctionCall","src":"7229:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7185:28:101","nodeType":"YulIdentifier","src":"7185:28:101"},"nativeSrc":"7185:51:101","nodeType":"YulFunctionCall","src":"7185:51:101"}],"functionName":{"name":"not","nativeSrc":"7181:3:101","nodeType":"YulIdentifier","src":"7181:3:101"},"nativeSrc":"7181:56:101","nodeType":"YulFunctionCall","src":"7181:56:101"},"variables":[{"name":"mask","nativeSrc":"7173:4:101","nodeType":"YulTypedName","src":"7173:4:101","type":""}]},{"nativeSrc":"7246:25:101","nodeType":"YulAssignment","src":"7246:25:101","value":{"arguments":[{"name":"data","nativeSrc":"7260:4:101","nodeType":"YulIdentifier","src":"7260:4:101"},{"name":"mask","nativeSrc":"7266:4:101","nodeType":"YulIdentifier","src":"7266:4:101"}],"functionName":{"name":"and","nativeSrc":"7256:3:101","nodeType":"YulIdentifier","src":"7256:3:101"},"nativeSrc":"7256:15:101","nodeType":"YulFunctionCall","src":"7256:15:101"},"variableNames":[{"name":"result","nativeSrc":"7246:6:101","nodeType":"YulIdentifier","src":"7246:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7108:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7136:4:101","nodeType":"YulTypedName","src":"7136:4:101","type":""},{"name":"bytes","nativeSrc":"7142:5:101","nodeType":"YulTypedName","src":"7142:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7152:6:101","nodeType":"YulTypedName","src":"7152:6:101","type":""}],"src":"7108:169:101"},{"body":{"nativeSrc":"7363:214:101","nodeType":"YulBlock","src":"7363:214:101","statements":[{"nativeSrc":"7496:37:101","nodeType":"YulAssignment","src":"7496:37:101","value":{"arguments":[{"name":"data","nativeSrc":"7523:4:101","nodeType":"YulIdentifier","src":"7523:4:101"},{"name":"len","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"7504:18:101","nodeType":"YulIdentifier","src":"7504:18:101"},"nativeSrc":"7504:29:101","nodeType":"YulFunctionCall","src":"7504:29:101"},"variableNames":[{"name":"data","nativeSrc":"7496:4:101","nodeType":"YulIdentifier","src":"7496:4:101"}]},{"nativeSrc":"7542:29:101","nodeType":"YulAssignment","src":"7542:29:101","value":{"arguments":[{"name":"data","nativeSrc":"7553:4:101","nodeType":"YulIdentifier","src":"7553:4:101"},{"arguments":[{"kind":"number","nativeSrc":"7563:1:101","nodeType":"YulLiteral","src":"7563:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"7566:3:101","nodeType":"YulIdentifier","src":"7566:3:101"}],"functionName":{"name":"mul","nativeSrc":"7559:3:101","nodeType":"YulIdentifier","src":"7559:3:101"},"nativeSrc":"7559:11:101","nodeType":"YulFunctionCall","src":"7559:11:101"}],"functionName":{"name":"or","nativeSrc":"7550:2:101","nodeType":"YulIdentifier","src":"7550:2:101"},"nativeSrc":"7550:21:101","nodeType":"YulFunctionCall","src":"7550:21:101"},"variableNames":[{"name":"used","nativeSrc":"7542:4:101","nodeType":"YulIdentifier","src":"7542:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7282:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7344:4:101","nodeType":"YulTypedName","src":"7344:4:101","type":""},{"name":"len","nativeSrc":"7350:3:101","nodeType":"YulTypedName","src":"7350:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"7358:4:101","nodeType":"YulTypedName","src":"7358:4:101","type":""}],"src":"7282:295:101"},{"body":{"nativeSrc":"7674:1303:101","nodeType":"YulBlock","src":"7674:1303:101","statements":[{"nativeSrc":"7685:51:101","nodeType":"YulVariableDeclaration","src":"7685:51:101","value":{"arguments":[{"name":"src","nativeSrc":"7732:3:101","nodeType":"YulIdentifier","src":"7732:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7699:32:101","nodeType":"YulIdentifier","src":"7699:32:101"},"nativeSrc":"7699:37:101","nodeType":"YulFunctionCall","src":"7699:37:101"},"variables":[{"name":"newLen","nativeSrc":"7689:6:101","nodeType":"YulTypedName","src":"7689:6:101","type":""}]},{"body":{"nativeSrc":"7821:22:101","nodeType":"YulBlock","src":"7821:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7823:16:101","nodeType":"YulIdentifier","src":"7823:16:101"},"nativeSrc":"7823:18:101","nodeType":"YulFunctionCall","src":"7823:18:101"},"nativeSrc":"7823:18:101","nodeType":"YulExpressionStatement","src":"7823:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7793:6:101","nodeType":"YulIdentifier","src":"7793:6:101"},{"kind":"number","nativeSrc":"7801:18:101","nodeType":"YulLiteral","src":"7801:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7790:2:101","nodeType":"YulIdentifier","src":"7790:2:101"},"nativeSrc":"7790:30:101","nodeType":"YulFunctionCall","src":"7790:30:101"},"nativeSrc":"7787:56:101","nodeType":"YulIf","src":"7787:56:101"},{"nativeSrc":"7853:52:101","nodeType":"YulVariableDeclaration","src":"7853:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"7899:4:101","nodeType":"YulIdentifier","src":"7899:4:101"}],"functionName":{"name":"sload","nativeSrc":"7893:5:101","nodeType":"YulIdentifier","src":"7893:5:101"},"nativeSrc":"7893:11:101","nodeType":"YulFunctionCall","src":"7893:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7867:25:101","nodeType":"YulIdentifier","src":"7867:25:101"},"nativeSrc":"7867:38:101","nodeType":"YulFunctionCall","src":"7867:38:101"},"variables":[{"name":"oldLen","nativeSrc":"7857:6:101","nodeType":"YulTypedName","src":"7857:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7998:4:101","nodeType":"YulIdentifier","src":"7998:4:101"},{"name":"oldLen","nativeSrc":"8004:6:101","nodeType":"YulIdentifier","src":"8004:6:101"},{"name":"newLen","nativeSrc":"8012:6:101","nodeType":"YulIdentifier","src":"8012:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7952:45:101","nodeType":"YulIdentifier","src":"7952:45:101"},"nativeSrc":"7952:67:101","nodeType":"YulFunctionCall","src":"7952:67:101"},"nativeSrc":"7952:67:101","nodeType":"YulExpressionStatement","src":"7952:67:101"},{"nativeSrc":"8029:18:101","nodeType":"YulVariableDeclaration","src":"8029:18:101","value":{"kind":"number","nativeSrc":"8046:1:101","nodeType":"YulLiteral","src":"8046:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8033:9:101","nodeType":"YulTypedName","src":"8033:9:101","type":""}]},{"nativeSrc":"8057:17:101","nodeType":"YulAssignment","src":"8057:17:101","value":{"kind":"number","nativeSrc":"8070:4:101","nodeType":"YulLiteral","src":"8070:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8057:9:101","nodeType":"YulIdentifier","src":"8057:9:101"}]},{"cases":[{"body":{"nativeSrc":"8121:611:101","nodeType":"YulBlock","src":"8121:611:101","statements":[{"nativeSrc":"8135:37:101","nodeType":"YulVariableDeclaration","src":"8135:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"8154:6:101","nodeType":"YulIdentifier","src":"8154:6:101"},{"arguments":[{"kind":"number","nativeSrc":"8166:4:101","nodeType":"YulLiteral","src":"8166:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8162:3:101","nodeType":"YulIdentifier","src":"8162:3:101"},"nativeSrc":"8162:9:101","nodeType":"YulFunctionCall","src":"8162:9:101"}],"functionName":{"name":"and","nativeSrc":"8150:3:101","nodeType":"YulIdentifier","src":"8150:3:101"},"nativeSrc":"8150:22:101","nodeType":"YulFunctionCall","src":"8150:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"8139:7:101","nodeType":"YulTypedName","src":"8139:7:101","type":""}]},{"nativeSrc":"8186:51:101","nodeType":"YulVariableDeclaration","src":"8186:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"8232:4:101","nodeType":"YulIdentifier","src":"8232:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8200:31:101","nodeType":"YulIdentifier","src":"8200:31:101"},"nativeSrc":"8200:37:101","nodeType":"YulFunctionCall","src":"8200:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"8190:6:101","nodeType":"YulTypedName","src":"8190:6:101","type":""}]},{"nativeSrc":"8250:10:101","nodeType":"YulVariableDeclaration","src":"8250:10:101","value":{"kind":"number","nativeSrc":"8259:1:101","nodeType":"YulLiteral","src":"8259:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8254:1:101","nodeType":"YulTypedName","src":"8254:1:101","type":""}]},{"body":{"nativeSrc":"8318:163:101","nodeType":"YulBlock","src":"8318:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8343:6:101","nodeType":"YulIdentifier","src":"8343:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8361:3:101","nodeType":"YulIdentifier","src":"8361:3:101"},{"name":"srcOffset","nativeSrc":"8366:9:101","nodeType":"YulIdentifier","src":"8366:9:101"}],"functionName":{"name":"add","nativeSrc":"8357:3:101","nodeType":"YulIdentifier","src":"8357:3:101"},"nativeSrc":"8357:19:101","nodeType":"YulFunctionCall","src":"8357:19:101"}],"functionName":{"name":"mload","nativeSrc":"8351:5:101","nodeType":"YulIdentifier","src":"8351:5:101"},"nativeSrc":"8351:26:101","nodeType":"YulFunctionCall","src":"8351:26:101"}],"functionName":{"name":"sstore","nativeSrc":"8336:6:101","nodeType":"YulIdentifier","src":"8336:6:101"},"nativeSrc":"8336:42:101","nodeType":"YulFunctionCall","src":"8336:42:101"},"nativeSrc":"8336:42:101","nodeType":"YulExpressionStatement","src":"8336:42:101"},{"nativeSrc":"8395:24:101","nodeType":"YulAssignment","src":"8395:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"8409:6:101","nodeType":"YulIdentifier","src":"8409:6:101"},{"kind":"number","nativeSrc":"8417:1:101","nodeType":"YulLiteral","src":"8417:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8405:3:101","nodeType":"YulIdentifier","src":"8405:3:101"},"nativeSrc":"8405:14:101","nodeType":"YulFunctionCall","src":"8405:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"8395:6:101","nodeType":"YulIdentifier","src":"8395:6:101"}]},{"nativeSrc":"8436:31:101","nodeType":"YulAssignment","src":"8436:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"8453:9:101","nodeType":"YulIdentifier","src":"8453:9:101"},{"kind":"number","nativeSrc":"8464:2:101","nodeType":"YulLiteral","src":"8464:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8449:3:101","nodeType":"YulIdentifier","src":"8449:3:101"},"nativeSrc":"8449:18:101","nodeType":"YulFunctionCall","src":"8449:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"8436:9:101","nodeType":"YulIdentifier","src":"8436:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8284:1:101","nodeType":"YulIdentifier","src":"8284:1:101"},{"name":"loopEnd","nativeSrc":"8287:7:101","nodeType":"YulIdentifier","src":"8287:7:101"}],"functionName":{"name":"lt","nativeSrc":"8281:2:101","nodeType":"YulIdentifier","src":"8281:2:101"},"nativeSrc":"8281:14:101","nodeType":"YulFunctionCall","src":"8281:14:101"},"nativeSrc":"8273:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"8296:21:101","nodeType":"YulBlock","src":"8296:21:101","statements":[{"nativeSrc":"8298:17:101","nodeType":"YulAssignment","src":"8298:17:101","value":{"arguments":[{"name":"i","nativeSrc":"8307:1:101","nodeType":"YulIdentifier","src":"8307:1:101"},{"kind":"number","nativeSrc":"8310:4:101","nodeType":"YulLiteral","src":"8310:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8303:3:101","nodeType":"YulIdentifier","src":"8303:3:101"},"nativeSrc":"8303:12:101","nodeType":"YulFunctionCall","src":"8303:12:101"},"variableNames":[{"name":"i","nativeSrc":"8298:1:101","nodeType":"YulIdentifier","src":"8298:1:101"}]}]},"pre":{"nativeSrc":"8277:3:101","nodeType":"YulBlock","src":"8277:3:101","statements":[]},"src":"8273:208:101"},{"body":{"nativeSrc":"8517:156:101","nodeType":"YulBlock","src":"8517:156:101","statements":[{"nativeSrc":"8535:43:101","nodeType":"YulVariableDeclaration","src":"8535:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8562:3:101","nodeType":"YulIdentifier","src":"8562:3:101"},{"name":"srcOffset","nativeSrc":"8567:9:101","nodeType":"YulIdentifier","src":"8567:9:101"}],"functionName":{"name":"add","nativeSrc":"8558:3:101","nodeType":"YulIdentifier","src":"8558:3:101"},"nativeSrc":"8558:19:101","nodeType":"YulFunctionCall","src":"8558:19:101"}],"functionName":{"name":"mload","nativeSrc":"8552:5:101","nodeType":"YulIdentifier","src":"8552:5:101"},"nativeSrc":"8552:26:101","nodeType":"YulFunctionCall","src":"8552:26:101"},"variables":[{"name":"lastValue","nativeSrc":"8539:9:101","nodeType":"YulTypedName","src":"8539:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8602:6:101","nodeType":"YulIdentifier","src":"8602:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"8629:9:101","nodeType":"YulIdentifier","src":"8629:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"8644:6:101","nodeType":"YulIdentifier","src":"8644:6:101"},{"kind":"number","nativeSrc":"8652:4:101","nodeType":"YulLiteral","src":"8652:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8640:3:101","nodeType":"YulIdentifier","src":"8640:3:101"},"nativeSrc":"8640:17:101","nodeType":"YulFunctionCall","src":"8640:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8610:18:101","nodeType":"YulIdentifier","src":"8610:18:101"},"nativeSrc":"8610:48:101","nodeType":"YulFunctionCall","src":"8610:48:101"}],"functionName":{"name":"sstore","nativeSrc":"8595:6:101","nodeType":"YulIdentifier","src":"8595:6:101"},"nativeSrc":"8595:64:101","nodeType":"YulFunctionCall","src":"8595:64:101"},"nativeSrc":"8595:64:101","nodeType":"YulExpressionStatement","src":"8595:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"8500:7:101","nodeType":"YulIdentifier","src":"8500:7:101"},{"name":"newLen","nativeSrc":"8509:6:101","nodeType":"YulIdentifier","src":"8509:6:101"}],"functionName":{"name":"lt","nativeSrc":"8497:2:101","nodeType":"YulIdentifier","src":"8497:2:101"},"nativeSrc":"8497:19:101","nodeType":"YulFunctionCall","src":"8497:19:101"},"nativeSrc":"8494:179:101","nodeType":"YulIf","src":"8494:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8693:4:101","nodeType":"YulIdentifier","src":"8693:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8707:6:101","nodeType":"YulIdentifier","src":"8707:6:101"},{"kind":"number","nativeSrc":"8715:1:101","nodeType":"YulLiteral","src":"8715:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8703:3:101","nodeType":"YulIdentifier","src":"8703:3:101"},"nativeSrc":"8703:14:101","nodeType":"YulFunctionCall","src":"8703:14:101"},{"kind":"number","nativeSrc":"8719:1:101","nodeType":"YulLiteral","src":"8719:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8699:3:101","nodeType":"YulIdentifier","src":"8699:3:101"},"nativeSrc":"8699:22:101","nodeType":"YulFunctionCall","src":"8699:22:101"}],"functionName":{"name":"sstore","nativeSrc":"8686:6:101","nodeType":"YulIdentifier","src":"8686:6:101"},"nativeSrc":"8686:36:101","nodeType":"YulFunctionCall","src":"8686:36:101"},"nativeSrc":"8686:36:101","nodeType":"YulExpressionStatement","src":"8686:36:101"}]},"nativeSrc":"8114:618:101","nodeType":"YulCase","src":"8114:618:101","value":{"kind":"number","nativeSrc":"8119:1:101","nodeType":"YulLiteral","src":"8119:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8749:222:101","nodeType":"YulBlock","src":"8749:222:101","statements":[{"nativeSrc":"8763:14:101","nodeType":"YulVariableDeclaration","src":"8763:14:101","value":{"kind":"number","nativeSrc":"8776:1:101","nodeType":"YulLiteral","src":"8776:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8767:5:101","nodeType":"YulTypedName","src":"8767:5:101","type":""}]},{"body":{"nativeSrc":"8800:67:101","nodeType":"YulBlock","src":"8800:67:101","statements":[{"nativeSrc":"8818:35:101","nodeType":"YulAssignment","src":"8818:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8837:3:101","nodeType":"YulIdentifier","src":"8837:3:101"},{"name":"srcOffset","nativeSrc":"8842:9:101","nodeType":"YulIdentifier","src":"8842:9:101"}],"functionName":{"name":"add","nativeSrc":"8833:3:101","nodeType":"YulIdentifier","src":"8833:3:101"},"nativeSrc":"8833:19:101","nodeType":"YulFunctionCall","src":"8833:19:101"}],"functionName":{"name":"mload","nativeSrc":"8827:5:101","nodeType":"YulIdentifier","src":"8827:5:101"},"nativeSrc":"8827:26:101","nodeType":"YulFunctionCall","src":"8827:26:101"},"variableNames":[{"name":"value","nativeSrc":"8818:5:101","nodeType":"YulIdentifier","src":"8818:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"8793:6:101","nodeType":"YulIdentifier","src":"8793:6:101"},"nativeSrc":"8790:77:101","nodeType":"YulIf","src":"8790:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8887:4:101","nodeType":"YulIdentifier","src":"8887:4:101"},{"arguments":[{"name":"value","nativeSrc":"8946:5:101","nodeType":"YulIdentifier","src":"8946:5:101"},{"name":"newLen","nativeSrc":"8953:6:101","nodeType":"YulIdentifier","src":"8953:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8893:52:101","nodeType":"YulIdentifier","src":"8893:52:101"},"nativeSrc":"8893:67:101","nodeType":"YulFunctionCall","src":"8893:67:101"}],"functionName":{"name":"sstore","nativeSrc":"8880:6:101","nodeType":"YulIdentifier","src":"8880:6:101"},"nativeSrc":"8880:81:101","nodeType":"YulFunctionCall","src":"8880:81:101"},"nativeSrc":"8880:81:101","nodeType":"YulExpressionStatement","src":"8880:81:101"}]},"nativeSrc":"8741:230:101","nodeType":"YulCase","src":"8741:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8094:6:101","nodeType":"YulIdentifier","src":"8094:6:101"},{"kind":"number","nativeSrc":"8102:2:101","nodeType":"YulLiteral","src":"8102:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8091:2:101","nodeType":"YulIdentifier","src":"8091:2:101"},"nativeSrc":"8091:14:101","nodeType":"YulFunctionCall","src":"8091:14:101"},"nativeSrc":"8084:887:101","nodeType":"YulSwitch","src":"8084:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7582:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7663:4:101","nodeType":"YulTypedName","src":"7663:4:101","type":""},{"name":"src","nativeSrc":"7669:3:101","nodeType":"YulTypedName","src":"7669:3:101","type":""}],"src":"7582:1395:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b506040516110e63803806110e683398101604081905261002e916101df565b8282600361003c838261033c565b506004610049828261033c565b50505061006261005d61007060201b60201c565b610074565b60ff16608052506103fb9050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156100fe576100fe6100c5565b6040525050565b5f61010f60405190565b905061011b82826100d9565b919050565b5f6001600160401b03821115610138576101386100c5565b601f19601f83011660200192915050565b8281835e505f910152565b5f61016661016184610120565b610105565b905082815260208101848484011115610180576101805f80fd5b61018b848285610149565b509392505050565b5f82601f8301126101a5576101a55f80fd5b81516101b5848260208601610154565b949350505050565b60ff811681146101cb575f80fd5b50565b80516101d9816101bd565b92915050565b5f805f606084860312156101f4576101f45f80fd5b83516001600160401b0381111561020c5761020c5f80fd5b61021886828701610193565b93505060208401516001600160401b03811115610236576102365f80fd5b61024286828701610193565b9250506040610253868287016101ce565b9150509250925092565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061028557607f821691505b6020821081036102975761029761025d565b50919050565b5f6101d96102a88381565b90565b6102b48361029d565b81545f1960089490940293841b1916921b91909117905550565b5f6102da8184846102ab565b505050565b818110156102f9576102f15f826102ce565b6001016102df565b5050565b601f8211156102da575f818152602090206020601f850104810160208510156103235750805b6103356020601f8601048301826102df565b5050505050565b81516001600160401b03811115610355576103556100c5565b61035f8254610271565b61036a8282856102fd565b6020601f83116001811461039c575f84156103855750858201515b5f19600886021c19811660028602178655506103f3565b5f85815260208120601f198616915b828110156103cb57888501518255602094850194600190920191016103ab565b868310156103e657848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b608051610cd36104135f395f61016e0152610cd35ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c806370a082311161009e578063a457c2d71161006e578063a457c2d71461021c578063a9059cbb1461022f578063db068e0e14610242578063dd62ed3e14610255578063f2fde38b14610268575f80fd5b806370a08231146101cb578063715018a6146101f35780638da5cb5b146101fb57806395d89b4114610214575f80fd5b8063313ce567116100d9578063313ce5671461016c578063395093511461019a5780633ba0b9a9146101ad57806357915897146101b6575f80fd5b806306fdde031461010a578063095ea7b31461012857806318160ddd1461014857806323b872dd14610159575b5f80fd5b61011261027b565b60405161011f919061078b565b60405180910390f35b61013b6101363660046107e2565b61030b565b60405161011f9190610826565b6002545b60405161011f919061083a565b61013b610167366004610848565b610324565b7f000000000000000000000000000000000000000000000000000000000000000060405161011f919061089d565b61013b6101a83660046107e2565b610347565b61014c60065481565b6101c96101c43660046108ab565b610368565b005b61014c6101d93660046108d1565b6001600160a01b03165f9081526020819052604090205490565b6101c9610375565b6005546001600160a01b031660405161011f91906108f8565b610112610388565b61013b61022a3660046107e2565b610397565b61013b61023d3660046107e2565b6103dc565b6101c96102503660046108ab565b6103e9565b61014c610263366004610906565b6103f6565b6101c96102763660046108d1565b610420565b60606003805461028a9061094a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b69061094a565b80156103015780601f106102d857610100808354040283529160200191610301565b820191905f5260205f20905b8154815290600101906020018083116102e457829003601f168201915b5050505050905090565b5f33610318818585610457565b60019150505b92915050565b5f3361033185828561050a565b61033c858585610552565b506001949350505050565b5f3361031881858561035983836103f6565b610363919061098a565b610457565b6103723382610640565b50565b61037d6106d4565b6103865f6106fe565b565b60606004805461028a9061094a565b5f33816103a482866103f6565b9050838110156103cf5760405162461bcd60e51b81526004016103c6906109e1565b60405180910390fd5b61033c8286868403610457565b5f33610318818585610552565b6103f16106d4565b600655565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6104286106d4565b6001600160a01b03811661044e5760405162461bcd60e51b81526004016103c690610a33565b610372816106fe565b6001600160a01b03831661047d5760405162461bcd60e51b81526004016103c690610a83565b6001600160a01b0382166104a35760405162461bcd60e51b81526004016103c690610ad1565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104fd90859061083a565b60405180910390a3505050565b5f61051584846103f6565b90505f19811461054c578181101561053f5760405162461bcd60e51b81526004016103c690610b17565b61054c8484848403610457565b50505050565b6001600160a01b0383166105785760405162461bcd60e51b81526004016103c690610b68565b6001600160a01b03821661059e5760405162461bcd60e51b81526004016103c690610bb7565b6001600160a01b0383165f90815260208190526040902054818110156105d65760405162461bcd60e51b81526004016103c690610c09565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061063390869061083a565b60405180910390a361054c565b6001600160a01b0382166106665760405162461bcd60e51b81526004016103c690610c4c565b8060025f828254610677919061098a565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106c890859061083a565b60405180910390a35050565b6005546001600160a01b031633146103865760405162461bcd60e51b81526004016103c690610c8d565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f610763825190565b80845260208401935061077a81856020860161074f565b601f01601f19169290920192915050565b6020808252810161079c818461075a565b9392505050565b5f6001600160a01b03821661031e565b6107bc816107a3565b8114610372575f80fd5b803561031e816107b3565b806107bc565b803561031e816107d1565b5f80604083850312156107f6576107f65f80fd5b5f61080185856107c6565b9250506020610812858286016107d7565b9150509250929050565b8015155b82525050565b6020810161031e828461081c565b80610820565b6020810161031e8284610834565b5f805f6060848603121561085d5761085d5f80fd5b5f61086886866107c6565b9350506020610879868287016107c6565b925050604061088a868287016107d7565b9150509250925092565b60ff8116610820565b6020810161031e8284610894565b5f602082840312156108be576108be5f80fd5b5f6108c984846107d7565b949350505050565b5f602082840312156108e4576108e45f80fd5b5f6108c984846107c6565b610820816107a3565b6020810161031e82846108ef565b5f806040838503121561091a5761091a5f80fd5b5f61092585856107c6565b9250506020610812858286016107c6565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061095e57607f821691505b60208210810361097057610970610936565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561031e5761031e610976565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161031e8161099d565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015291506109da565b6020808252810161031e816109f1565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015291506109da565b6020808252810161031e81610a43565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015291506109da565b6020808252810161031e81610a93565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161031e81610ae1565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015291506109da565b6020808252810161031e81610b27565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015291506109da565b6020808252810161031e81610b78565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b602082015291506109da565b6020808252810161031e81610bc7565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610b10565b6020808252810161031e81610c19565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610b10565b6020808252810161031e81610c5c56fea2646970667358221220f8bb751701f45fa682d768ca902189bcdff7949dabbed8d2f7d4a0dbfa5c0ba964736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10E6 CODESIZE SUB DUP1 PUSH2 0x10E6 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x1DF JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH2 0x3C DUP4 DUP3 PUSH2 0x33C JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x49 DUP3 DUP3 PUSH2 0x33C JUMP JUMPDEST POP POP POP PUSH2 0x62 PUSH2 0x5D PUSH2 0x70 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x74 JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x80 MSTORE POP PUSH2 0x3FB SWAP1 POP JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0xFE JUMPI PUSH2 0xFE PUSH2 0xC5 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10F PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x11B DUP3 DUP3 PUSH2 0xD9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x138 JUMPI PUSH2 0x138 PUSH2 0xC5 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x166 PUSH2 0x161 DUP5 PUSH2 0x120 JUMP JUMPDEST PUSH2 0x105 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x180 JUMPI PUSH2 0x180 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x18B DUP5 DUP3 DUP6 PUSH2 0x149 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A5 JUMPI PUSH2 0x1A5 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x154 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1CB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1D9 DUP2 PUSH2 0x1BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1F4 JUMPI PUSH2 0x1F4 PUSH0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x20C JUMPI PUSH2 0x20C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x218 DUP7 DUP3 DUP8 ADD PUSH2 0x193 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x236 JUMPI PUSH2 0x236 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x242 DUP7 DUP3 DUP8 ADD PUSH2 0x193 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x253 DUP7 DUP3 DUP8 ADD PUSH2 0x1CE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x285 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x297 JUMPI PUSH2 0x297 PUSH2 0x25D JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1D9 PUSH2 0x2A8 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2B4 DUP4 PUSH2 0x29D JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x2DA DUP2 DUP5 DUP5 PUSH2 0x2AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F1 PUSH0 DUP3 PUSH2 0x2CE JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2DF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2DA JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x323 JUMPI POP DUP1 JUMPDEST PUSH2 0x335 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x2DF JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0xC5 JUMP JUMPDEST PUSH2 0x35F DUP3 SLOAD PUSH2 0x271 JUMP JUMPDEST PUSH2 0x36A DUP3 DUP3 DUP6 PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x39C JUMPI PUSH0 DUP5 ISZERO PUSH2 0x385 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x3F3 JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3CB JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x3AB JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x3E6 JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xCD3 PUSH2 0x413 PUSH0 CODECOPY PUSH0 PUSH2 0x16E ADD MSTORE PUSH2 0xCD3 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xDB068E0E EQ PUSH2 0x242 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x268 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x214 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x3BA0B9A9 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x1B6 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x159 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x112 PUSH2 0x27B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x78B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13B PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x30B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH2 0x13B PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x848 JUMP JUMPDEST PUSH2 0x324 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x89D JUMP JUMPDEST PUSH2 0x13B PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x347 JUMP JUMPDEST PUSH2 0x14C PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14C PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x8F8 JUMP JUMPDEST PUSH2 0x112 PUSH2 0x388 JUMP JUMPDEST PUSH2 0x13B PUSH2 0x22A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x397 JUMP JUMPDEST PUSH2 0x13B PUSH2 0x23D CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x3DC JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x3E9 JUMP JUMPDEST PUSH2 0x14C PUSH2 0x263 CALLDATASIZE PUSH1 0x4 PUSH2 0x906 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x276 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D1 JUMP JUMPDEST PUSH2 0x420 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x28A SWAP1 PUSH2 0x94A 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 0x2B6 SWAP1 PUSH2 0x94A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x301 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x301 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x318 DUP2 DUP6 DUP6 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x331 DUP6 DUP3 DUP6 PUSH2 0x50A JUMP JUMPDEST PUSH2 0x33C DUP6 DUP6 DUP6 PUSH2 0x552 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x318 DUP2 DUP6 DUP6 PUSH2 0x359 DUP4 DUP4 PUSH2 0x3F6 JUMP JUMPDEST PUSH2 0x363 SWAP2 SWAP1 PUSH2 0x98A JUMP JUMPDEST PUSH2 0x457 JUMP JUMPDEST PUSH2 0x372 CALLER DUP3 PUSH2 0x640 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x37D PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0x386 PUSH0 PUSH2 0x6FE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x28A SWAP1 PUSH2 0x94A JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x3A4 DUP3 DUP7 PUSH2 0x3F6 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x9E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x457 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x318 DUP2 DUP6 DUP6 PUSH2 0x552 JUMP JUMPDEST PUSH2 0x3F1 PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x428 PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x44E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xA33 JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x47D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xA83 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xAD1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x4FD SWAP1 DUP6 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x515 DUP5 DUP5 PUSH2 0x3F6 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x54C JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x53F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xB17 JUMP JUMPDEST PUSH2 0x54C DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x457 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x578 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x59E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xBB7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xC09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x633 SWAP1 DUP7 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x54C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xC4C JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x677 SWAP2 SWAP1 PUSH2 0x98A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6C8 SWAP1 DUP6 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x386 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xC8D JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x763 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x77A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x74F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x79C DUP2 DUP5 PUSH2 0x75A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x31E JUMP JUMPDEST PUSH2 0x7BC DUP2 PUSH2 0x7A3 JUMP JUMPDEST DUP2 EQ PUSH2 0x372 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x31E DUP2 PUSH2 0x7B3 JUMP JUMPDEST DUP1 PUSH2 0x7BC JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x31E DUP2 PUSH2 0x7D1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7F6 JUMPI PUSH2 0x7F6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x801 DUP6 DUP6 PUSH2 0x7C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x812 DUP6 DUP3 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x81C JUMP JUMPDEST DUP1 PUSH2 0x820 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x834 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x85D JUMPI PUSH2 0x85D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x868 DUP7 DUP7 PUSH2 0x7C6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x879 DUP7 DUP3 DUP8 ADD PUSH2 0x7C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x88A DUP7 DUP3 DUP8 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x820 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x894 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BE JUMPI PUSH2 0x8BE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8C9 DUP5 DUP5 PUSH2 0x7D7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8E4 JUMPI PUSH2 0x8E4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8C9 DUP5 DUP5 PUSH2 0x7C6 JUMP JUMPDEST PUSH2 0x820 DUP2 PUSH2 0x7A3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x8EF JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x91A JUMPI PUSH2 0x91A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x925 DUP6 DUP6 PUSH2 0x7C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x812 DUP6 DUP3 DUP7 ADD PUSH2 0x7C6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x95E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x970 JUMPI PUSH2 0x970 PUSH2 0x936 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x31E JUMPI PUSH2 0x31E PUSH2 0x976 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0x99D JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xA43 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xA93 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xB78 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xB10 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xB10 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xC5C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 0xBB PUSH22 0x1701F45FA682D768CA902189BCDFF7949DABBED8D2F7 0xD4 LOG0 0xDB STATICCALL TLOAD SIGNEXTEND 0xA9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"306:586:83:-:0;;;439:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;518:5;525:7;2046:5:11;:13;518:5:83;2046::11;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;936:32:10;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;554:21:83::2;;;::::0;-1:-1:-1;306:586:83;;-1:-1:-1;306:586:83;655:96:14;734:10;;655:96::o;2426:187:10:-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;688:180:101:-;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2662:118::-;2645:4;2634:16;;2726:5;2723:33;2713:61;;2770:1;2767;2760:12;2713:61;2662:118;:::o;2786:139::-;2866:13;;2888:31;2866:13;2888:31;:::i;:::-;2786:139;;;;:::o;2931:1005::-;3037:6;3045;3053;3102:2;3090:9;3081:7;3077:23;3073:32;3070:119;;;3108:79;197:1;194;187:12;3108:79;3228:24;;-1:-1:-1;;;;;3268:30:101;;3265:117;;;3301:79;197:1;194;187:12;3301:79;3406:74;3472:7;3463:6;3452:9;3448:22;3406:74;:::i;:::-;3396:84;;3199:291;3550:2;3539:9;3535:18;3529:25;-1:-1:-1;;;;;3573:6:101;3570:30;3567:117;;;3603:79;197:1;194;187:12;3603:79;3708:74;3774:7;3765:6;3754:9;3750:22;3708:74;:::i;:::-;3698:84;;3500:292;3831:2;3857:62;3911:7;3902:6;3891:9;3887:22;3857:62;:::i;:::-;3847:72;;3802:127;2931:1005;;;;;:::o;4047:180::-;-1:-1:-1;;;4092:1:101;4085:88;4192:4;4189:1;4182:15;4216:4;4213:1;4206:15;4233:320;4314:1;4304:12;;4361:1;4351:12;;;4372:81;;4438:4;4430:6;4426:17;4416:27;;4372:81;4500:2;4492:6;4489:14;4469:18;4466:38;4463:84;;4519:18;;:::i;:::-;4284:269;4233:320;;;:::o;5466:142::-;5516:9;5549:53;5567:34;5594:5;5567:34;5317:77;5576:24;5383:5;5317:77;5695:269;5805:39;5836:7;5805:39;:::i;:::-;5894:11;;-1:-1:-1;;5037:1:101;5021:18;;;;4889:16;;;5246:9;5235:21;4889:16;;5275:30;;;;5853:105;;-1:-1:-1;5695:269:101:o;6049:189::-;6015:3;6167:65;6225:6;6217;6211:4;6167:65;:::i;:::-;6102:136;6049:189;;:::o;6244:186::-;6321:3;6314:5;6311:14;6304:120;;;6375:39;6412:1;6405:5;6375:39;:::i;:::-;6348:1;6337:13;6304:120;;;6244:186;;:::o;6436:543::-;6537:2;6532:3;6529:11;6526:446;;;4608:4;4644:14;;;4688:4;4675:18;;4790:2;4785;4774:14;;4770:23;6645:8;6641:44;6838:2;6826:10;6823:18;6820:49;;;-1:-1:-1;6859:8:101;6820:49;6882:80;4790:2;4785;4774:14;;4770:23;6928:8;6924:37;6911:11;6882:80;:::i;:::-;6541:431;;6436:543;;;:::o;7582:1395::-;4022:12;;-1:-1:-1;;;;;7793:6:101;7790:30;7787:56;;;7823:18;;:::i;:::-;7867:38;7899:4;7893:11;7867:38;:::i;:::-;7952:67;8012:6;8004;7998:4;7952:67;:::i;:::-;8070:4;8102:2;8091:14;;8119:1;8114:618;;;;8776:1;8793:6;8790:77;;;-1:-1:-1;8833:19:101;;;8827:26;8790:77;-1:-1:-1;;7218:1:101;7214:13;;7079:16;7181:56;7256:15;;7563:1;7559:11;;7550:21;8887:4;8880:81;8749:222;8084:887;;8114:618;4608:4;4644:14;;;4688:4;4675:18;;-1:-1:-1;;8150:22:101;;;8273:208;8287:7;8284:1;8281:14;8273:208;;;8357:19;;;8351:26;8336:42;;8464:2;8449:18;;;;8417:1;8405:14;;;;8303:12;8273:208;;;8509:6;8500:7;8497:19;8494:179;;;8558:19;;;8552:26;-1:-1:-1;;8652:4:101;8640:17;;7218:1;7214:13;7079:16;7181:56;7256:15;8595:64;;8494:179;8719:1;8715;8707:6;8703:14;8699:22;8693:4;8686:36;8121:611;;;8084:887;;7674:1303;;;7582:1395;;:::o;:::-;306:586:83;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":1111,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_checkOwner_1148":{"entryPoint":1748,"id":1148,"parameterSlots":0,"returnSlots":0},"@_mint_1610":{"entryPoint":1600,"id":1610,"parameterSlots":2,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":1290,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_1205":{"entryPoint":1790,"id":1205,"parameterSlots":1,"returnSlots":0},"@_transfer_1553":{"entryPoint":1362,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":1014,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":779,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@decimals_8408":{"entryPoint":null,"id":8408,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":919,"id":1476,"parameterSlots":2,"returnSlots":1},"@exchangeRate_8353":{"entryPoint":null,"id":8353,"parameterSlots":0,"returnSlots":0},"@faucet_8385":{"entryPoint":872,"id":8385,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_1435":{"entryPoint":839,"id":1435,"parameterSlots":2,"returnSlots":1},"@name_1261":{"entryPoint":635,"id":1261,"parameterSlots":0,"returnSlots":1},"@owner_1134":{"entryPoint":null,"id":1134,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_1162":{"entryPoint":885,"id":1162,"parameterSlots":0,"returnSlots":0},"@setExchangeRate_8397":{"entryPoint":1001,"id":8397,"parameterSlots":1,"returnSlots":0},"@symbol_1271":{"entryPoint":904,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":804,"id":1406,"parameterSlots":3,"returnSlots":1},"@transferOwnership_1185":{"entryPoint":1056,"id":1185,"parameterSlots":1,"returnSlots":0},"@transfer_1330":{"entryPoint":988,"id":1330,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1990,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2007,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2257,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2310,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2120,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2018,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2287,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2076,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1882,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2936,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":2545,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":2707,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":2785,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":3015,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":3164,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2855,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":2627,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":2461,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":3097,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2100,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":2196,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2296,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2086,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1931,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2999,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2611,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2769,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2839,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3081,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3213,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2920,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2691,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2529,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3148,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2106,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":2205,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2442,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1955,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1871,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2378,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2422,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":2358,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1971,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2001,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:17276:101","nodeType":"YulBlock","src":"0:17276:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1282:35:101","nodeType":"YulBlock","src":"1282:35:101","statements":[{"nativeSrc":"1292:19:101","nodeType":"YulAssignment","src":"1292:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:101","nodeType":"YulLiteral","src":"1308:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:101","nodeType":"YulIdentifier","src":"1302:5:101"},"nativeSrc":"1302:9:101","nodeType":"YulFunctionCall","src":"1302:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:101","nodeType":"YulIdentifier","src":"1292:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:101","nodeType":"YulTypedName","src":"1275:6:101","type":""}],"src":"1242:75:101"},{"body":{"nativeSrc":"1412:28:101","nodeType":"YulBlock","src":"1412:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:101","nodeType":"YulLiteral","src":"1429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:101","nodeType":"YulLiteral","src":"1432:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:101","nodeType":"YulIdentifier","src":"1422:6:101"},"nativeSrc":"1422:12:101","nodeType":"YulFunctionCall","src":"1422:12:101"},"nativeSrc":"1422:12:101","nodeType":"YulExpressionStatement","src":"1422:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:101","nodeType":"YulFunctionDefinition","src":"1323:117:101"},{"body":{"nativeSrc":"1535:28:101","nodeType":"YulBlock","src":"1535:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:101","nodeType":"YulLiteral","src":"1552:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:101","nodeType":"YulLiteral","src":"1555:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:101","nodeType":"YulIdentifier","src":"1545:6:101"},"nativeSrc":"1545:12:101","nodeType":"YulFunctionCall","src":"1545:12:101"},"nativeSrc":"1545:12:101","nodeType":"YulExpressionStatement","src":"1545:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:101","nodeType":"YulFunctionDefinition","src":"1446:117:101"},{"body":{"nativeSrc":"1614:81:101","nodeType":"YulBlock","src":"1614:81:101","statements":[{"nativeSrc":"1624:65:101","nodeType":"YulAssignment","src":"1624:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:101","nodeType":"YulIdentifier","src":"1639:5:101"},{"kind":"number","nativeSrc":"1646:42:101","nodeType":"YulLiteral","src":"1646:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:101","nodeType":"YulIdentifier","src":"1635:3:101"},"nativeSrc":"1635:54:101","nodeType":"YulFunctionCall","src":"1635:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:101","nodeType":"YulIdentifier","src":"1624:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulTypedName","src":"1596:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:101","nodeType":"YulTypedName","src":"1606:7:101","type":""}],"src":"1569:126:101"},{"body":{"nativeSrc":"1746:51:101","nodeType":"YulBlock","src":"1746:51:101","statements":[{"nativeSrc":"1756:35:101","nodeType":"YulAssignment","src":"1756:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:101","nodeType":"YulIdentifier","src":"1785:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:101","nodeType":"YulIdentifier","src":"1767:17:101"},"nativeSrc":"1767:24:101","nodeType":"YulFunctionCall","src":"1767:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:101","nodeType":"YulIdentifier","src":"1756:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:101","nodeType":"YulTypedName","src":"1728:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:101","nodeType":"YulTypedName","src":"1738:7:101","type":""}],"src":"1701:96:101"},{"body":{"nativeSrc":"1846:79:101","nodeType":"YulBlock","src":"1846:79:101","statements":[{"body":{"nativeSrc":"1903:16:101","nodeType":"YulBlock","src":"1903:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:101","nodeType":"YulLiteral","src":"1912:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:101","nodeType":"YulLiteral","src":"1915:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:101","nodeType":"YulIdentifier","src":"1905:6:101"},"nativeSrc":"1905:12:101","nodeType":"YulFunctionCall","src":"1905:12:101"},"nativeSrc":"1905:12:101","nodeType":"YulExpressionStatement","src":"1905:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:101","nodeType":"YulIdentifier","src":"1869:5:101"},{"arguments":[{"name":"value","nativeSrc":"1894:5:101","nodeType":"YulIdentifier","src":"1894:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:101","nodeType":"YulIdentifier","src":"1876:17:101"},"nativeSrc":"1876:24:101","nodeType":"YulFunctionCall","src":"1876:24:101"}],"functionName":{"name":"eq","nativeSrc":"1866:2:101","nodeType":"YulIdentifier","src":"1866:2:101"},"nativeSrc":"1866:35:101","nodeType":"YulFunctionCall","src":"1866:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:101","nodeType":"YulIdentifier","src":"1859:6:101"},"nativeSrc":"1859:43:101","nodeType":"YulFunctionCall","src":"1859:43:101"},"nativeSrc":"1856:63:101","nodeType":"YulIf","src":"1856:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:101","nodeType":"YulTypedName","src":"1839:5:101","type":""}],"src":"1803:122:101"},{"body":{"nativeSrc":"1983:87:101","nodeType":"YulBlock","src":"1983:87:101","statements":[{"nativeSrc":"1993:29:101","nodeType":"YulAssignment","src":"1993:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:101","nodeType":"YulIdentifier","src":"2015:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:101","nodeType":"YulIdentifier","src":"2002:12:101"},"nativeSrc":"2002:20:101","nodeType":"YulFunctionCall","src":"2002:20:101"},"variableNames":[{"name":"value","nativeSrc":"1993:5:101","nodeType":"YulIdentifier","src":"1993:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:101","nodeType":"YulIdentifier","src":"2058:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:101","nodeType":"YulIdentifier","src":"2031:26:101"},"nativeSrc":"2031:33:101","nodeType":"YulFunctionCall","src":"2031:33:101"},"nativeSrc":"2031:33:101","nodeType":"YulExpressionStatement","src":"2031:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:101","nodeType":"YulTypedName","src":"1961:6:101","type":""},{"name":"end","nativeSrc":"1969:3:101","nodeType":"YulTypedName","src":"1969:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:101","nodeType":"YulTypedName","src":"1977:5:101","type":""}],"src":"1931:139:101"},{"body":{"nativeSrc":"2121:32:101","nodeType":"YulBlock","src":"2121:32:101","statements":[{"nativeSrc":"2131:16:101","nodeType":"YulAssignment","src":"2131:16:101","value":{"name":"value","nativeSrc":"2142:5:101","nodeType":"YulIdentifier","src":"2142:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:101","nodeType":"YulIdentifier","src":"2131:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:101","nodeType":"YulTypedName","src":"2103:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:101","nodeType":"YulTypedName","src":"2113:7:101","type":""}],"src":"2076:77:101"},{"body":{"nativeSrc":"2202:79:101","nodeType":"YulBlock","src":"2202:79:101","statements":[{"body":{"nativeSrc":"2259:16:101","nodeType":"YulBlock","src":"2259:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:101","nodeType":"YulLiteral","src":"2268:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:101","nodeType":"YulLiteral","src":"2271:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:101","nodeType":"YulIdentifier","src":"2261:6:101"},"nativeSrc":"2261:12:101","nodeType":"YulFunctionCall","src":"2261:12:101"},"nativeSrc":"2261:12:101","nodeType":"YulExpressionStatement","src":"2261:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:101","nodeType":"YulIdentifier","src":"2225:5:101"},{"arguments":[{"name":"value","nativeSrc":"2250:5:101","nodeType":"YulIdentifier","src":"2250:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:101","nodeType":"YulIdentifier","src":"2232:17:101"},"nativeSrc":"2232:24:101","nodeType":"YulFunctionCall","src":"2232:24:101"}],"functionName":{"name":"eq","nativeSrc":"2222:2:101","nodeType":"YulIdentifier","src":"2222:2:101"},"nativeSrc":"2222:35:101","nodeType":"YulFunctionCall","src":"2222:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:101","nodeType":"YulIdentifier","src":"2215:6:101"},"nativeSrc":"2215:43:101","nodeType":"YulFunctionCall","src":"2215:43:101"},"nativeSrc":"2212:63:101","nodeType":"YulIf","src":"2212:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:101","nodeType":"YulTypedName","src":"2195:5:101","type":""}],"src":"2159:122:101"},{"body":{"nativeSrc":"2339:87:101","nodeType":"YulBlock","src":"2339:87:101","statements":[{"nativeSrc":"2349:29:101","nodeType":"YulAssignment","src":"2349:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:101","nodeType":"YulIdentifier","src":"2371:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:101","nodeType":"YulIdentifier","src":"2358:12:101"},"nativeSrc":"2358:20:101","nodeType":"YulFunctionCall","src":"2358:20:101"},"variableNames":[{"name":"value","nativeSrc":"2349:5:101","nodeType":"YulIdentifier","src":"2349:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:101","nodeType":"YulIdentifier","src":"2414:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:101","nodeType":"YulIdentifier","src":"2387:26:101"},"nativeSrc":"2387:33:101","nodeType":"YulFunctionCall","src":"2387:33:101"},"nativeSrc":"2387:33:101","nodeType":"YulExpressionStatement","src":"2387:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:101","nodeType":"YulTypedName","src":"2317:6:101","type":""},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulTypedName","src":"2325:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:101","nodeType":"YulTypedName","src":"2333:5:101","type":""}],"src":"2287:139:101"},{"body":{"nativeSrc":"2515:391:101","nodeType":"YulBlock","src":"2515:391:101","statements":[{"body":{"nativeSrc":"2561:83:101","nodeType":"YulBlock","src":"2561:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:101","nodeType":"YulIdentifier","src":"2563:77:101"},"nativeSrc":"2563:79:101","nodeType":"YulFunctionCall","src":"2563:79:101"},"nativeSrc":"2563:79:101","nodeType":"YulExpressionStatement","src":"2563:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:101","nodeType":"YulIdentifier","src":"2536:7:101"},{"name":"headStart","nativeSrc":"2545:9:101","nodeType":"YulIdentifier","src":"2545:9:101"}],"functionName":{"name":"sub","nativeSrc":"2532:3:101","nodeType":"YulIdentifier","src":"2532:3:101"},"nativeSrc":"2532:23:101","nodeType":"YulFunctionCall","src":"2532:23:101"},{"kind":"number","nativeSrc":"2557:2:101","nodeType":"YulLiteral","src":"2557:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},"nativeSrc":"2528:32:101","nodeType":"YulFunctionCall","src":"2528:32:101"},"nativeSrc":"2525:119:101","nodeType":"YulIf","src":"2525:119:101"},{"nativeSrc":"2654:117:101","nodeType":"YulBlock","src":"2654:117:101","statements":[{"nativeSrc":"2669:15:101","nodeType":"YulVariableDeclaration","src":"2669:15:101","value":{"kind":"number","nativeSrc":"2683:1:101","nodeType":"YulLiteral","src":"2683:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:101","nodeType":"YulTypedName","src":"2673:6:101","type":""}]},{"nativeSrc":"2698:63:101","nodeType":"YulAssignment","src":"2698:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:101","nodeType":"YulIdentifier","src":"2733:9:101"},{"name":"offset","nativeSrc":"2744:6:101","nodeType":"YulIdentifier","src":"2744:6:101"}],"functionName":{"name":"add","nativeSrc":"2729:3:101","nodeType":"YulIdentifier","src":"2729:3:101"},"nativeSrc":"2729:22:101","nodeType":"YulFunctionCall","src":"2729:22:101"},{"name":"dataEnd","nativeSrc":"2753:7:101","nodeType":"YulIdentifier","src":"2753:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:101","nodeType":"YulIdentifier","src":"2708:20:101"},"nativeSrc":"2708:53:101","nodeType":"YulFunctionCall","src":"2708:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:101","nodeType":"YulIdentifier","src":"2698:6:101"}]}]},{"nativeSrc":"2781:118:101","nodeType":"YulBlock","src":"2781:118:101","statements":[{"nativeSrc":"2796:16:101","nodeType":"YulVariableDeclaration","src":"2796:16:101","value":{"kind":"number","nativeSrc":"2810:2:101","nodeType":"YulLiteral","src":"2810:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:101","nodeType":"YulTypedName","src":"2800:6:101","type":""}]},{"nativeSrc":"2826:63:101","nodeType":"YulAssignment","src":"2826:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:101","nodeType":"YulIdentifier","src":"2861:9:101"},{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"add","nativeSrc":"2857:3:101","nodeType":"YulIdentifier","src":"2857:3:101"},"nativeSrc":"2857:22:101","nodeType":"YulFunctionCall","src":"2857:22:101"},{"name":"dataEnd","nativeSrc":"2881:7:101","nodeType":"YulIdentifier","src":"2881:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:101","nodeType":"YulIdentifier","src":"2836:20:101"},"nativeSrc":"2836:53:101","nodeType":"YulFunctionCall","src":"2836:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:101","nodeType":"YulIdentifier","src":"2826:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:101","nodeType":"YulTypedName","src":"2477:9:101","type":""},{"name":"dataEnd","nativeSrc":"2488:7:101","nodeType":"YulTypedName","src":"2488:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:101","nodeType":"YulTypedName","src":"2500:6:101","type":""},{"name":"value1","nativeSrc":"2508:6:101","nodeType":"YulTypedName","src":"2508:6:101","type":""}],"src":"2432:474:101"},{"body":{"nativeSrc":"2954:48:101","nodeType":"YulBlock","src":"2954:48:101","statements":[{"nativeSrc":"2964:32:101","nodeType":"YulAssignment","src":"2964:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:101","nodeType":"YulIdentifier","src":"2989:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:101","nodeType":"YulIdentifier","src":"2982:6:101"},"nativeSrc":"2982:13:101","nodeType":"YulFunctionCall","src":"2982:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:21:101","nodeType":"YulFunctionCall","src":"2975:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:101","nodeType":"YulIdentifier","src":"2964:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:101","nodeType":"YulTypedName","src":"2936:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:101","nodeType":"YulTypedName","src":"2946:7:101","type":""}],"src":"2912:90:101"},{"body":{"nativeSrc":"3067:50:101","nodeType":"YulBlock","src":"3067:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:101","nodeType":"YulIdentifier","src":"3084:3:101"},{"arguments":[{"name":"value","nativeSrc":"3104:5:101","nodeType":"YulIdentifier","src":"3104:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:101","nodeType":"YulIdentifier","src":"3089:14:101"},"nativeSrc":"3089:21:101","nodeType":"YulFunctionCall","src":"3089:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:101","nodeType":"YulIdentifier","src":"3077:6:101"},"nativeSrc":"3077:34:101","nodeType":"YulFunctionCall","src":"3077:34:101"},"nativeSrc":"3077:34:101","nodeType":"YulExpressionStatement","src":"3077:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:101","nodeType":"YulTypedName","src":"3055:5:101","type":""},{"name":"pos","nativeSrc":"3062:3:101","nodeType":"YulTypedName","src":"3062:3:101","type":""}],"src":"3008:109:101"},{"body":{"nativeSrc":"3215:118:101","nodeType":"YulBlock","src":"3215:118:101","statements":[{"nativeSrc":"3225:26:101","nodeType":"YulAssignment","src":"3225:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:101","nodeType":"YulIdentifier","src":"3237:9:101"},{"kind":"number","nativeSrc":"3248:2:101","nodeType":"YulLiteral","src":"3248:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:101","nodeType":"YulIdentifier","src":"3233:3:101"},"nativeSrc":"3233:18:101","nodeType":"YulFunctionCall","src":"3233:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:101","nodeType":"YulIdentifier","src":"3225:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:101","nodeType":"YulIdentifier","src":"3299:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:101","nodeType":"YulIdentifier","src":"3312:9:101"},{"kind":"number","nativeSrc":"3323:1:101","nodeType":"YulLiteral","src":"3323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:101","nodeType":"YulIdentifier","src":"3308:3:101"},"nativeSrc":"3308:17:101","nodeType":"YulFunctionCall","src":"3308:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:101","nodeType":"YulIdentifier","src":"3261:37:101"},"nativeSrc":"3261:65:101","nodeType":"YulFunctionCall","src":"3261:65:101"},"nativeSrc":"3261:65:101","nodeType":"YulExpressionStatement","src":"3261:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:101","nodeType":"YulTypedName","src":"3187:9:101","type":""},{"name":"value0","nativeSrc":"3199:6:101","nodeType":"YulTypedName","src":"3199:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:101","nodeType":"YulTypedName","src":"3210:4:101","type":""}],"src":"3123:210:101"},{"body":{"nativeSrc":"3404:53:101","nodeType":"YulBlock","src":"3404:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:101","nodeType":"YulIdentifier","src":"3421:3:101"},{"arguments":[{"name":"value","nativeSrc":"3444:5:101","nodeType":"YulIdentifier","src":"3444:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:101","nodeType":"YulIdentifier","src":"3426:17:101"},"nativeSrc":"3426:24:101","nodeType":"YulFunctionCall","src":"3426:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:101","nodeType":"YulIdentifier","src":"3414:6:101"},"nativeSrc":"3414:37:101","nodeType":"YulFunctionCall","src":"3414:37:101"},"nativeSrc":"3414:37:101","nodeType":"YulExpressionStatement","src":"3414:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:101","nodeType":"YulTypedName","src":"3392:5:101","type":""},{"name":"pos","nativeSrc":"3399:3:101","nodeType":"YulTypedName","src":"3399:3:101","type":""}],"src":"3339:118:101"},{"body":{"nativeSrc":"3561:124:101","nodeType":"YulBlock","src":"3561:124:101","statements":[{"nativeSrc":"3571:26:101","nodeType":"YulAssignment","src":"3571:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:101","nodeType":"YulIdentifier","src":"3583:9:101"},{"kind":"number","nativeSrc":"3594:2:101","nodeType":"YulLiteral","src":"3594:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:101","nodeType":"YulIdentifier","src":"3579:3:101"},"nativeSrc":"3579:18:101","nodeType":"YulFunctionCall","src":"3579:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:101","nodeType":"YulIdentifier","src":"3571:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:101","nodeType":"YulIdentifier","src":"3651:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:101","nodeType":"YulIdentifier","src":"3664:9:101"},{"kind":"number","nativeSrc":"3675:1:101","nodeType":"YulLiteral","src":"3675:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:101","nodeType":"YulIdentifier","src":"3660:3:101"},"nativeSrc":"3660:17:101","nodeType":"YulFunctionCall","src":"3660:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:101","nodeType":"YulIdentifier","src":"3607:43:101"},"nativeSrc":"3607:71:101","nodeType":"YulFunctionCall","src":"3607:71:101"},"nativeSrc":"3607:71:101","nodeType":"YulExpressionStatement","src":"3607:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:101","nodeType":"YulTypedName","src":"3533:9:101","type":""},{"name":"value0","nativeSrc":"3545:6:101","nodeType":"YulTypedName","src":"3545:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:101","nodeType":"YulTypedName","src":"3556:4:101","type":""}],"src":"3463:222:101"},{"body":{"nativeSrc":"3791:519:101","nodeType":"YulBlock","src":"3791:519:101","statements":[{"body":{"nativeSrc":"3837:83:101","nodeType":"YulBlock","src":"3837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:101","nodeType":"YulIdentifier","src":"3839:77:101"},"nativeSrc":"3839:79:101","nodeType":"YulFunctionCall","src":"3839:79:101"},"nativeSrc":"3839:79:101","nodeType":"YulExpressionStatement","src":"3839:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:101","nodeType":"YulIdentifier","src":"3812:7:101"},{"name":"headStart","nativeSrc":"3821:9:101","nodeType":"YulIdentifier","src":"3821:9:101"}],"functionName":{"name":"sub","nativeSrc":"3808:3:101","nodeType":"YulIdentifier","src":"3808:3:101"},"nativeSrc":"3808:23:101","nodeType":"YulFunctionCall","src":"3808:23:101"},{"kind":"number","nativeSrc":"3833:2:101","nodeType":"YulLiteral","src":"3833:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:101","nodeType":"YulIdentifier","src":"3804:3:101"},"nativeSrc":"3804:32:101","nodeType":"YulFunctionCall","src":"3804:32:101"},"nativeSrc":"3801:119:101","nodeType":"YulIf","src":"3801:119:101"},{"nativeSrc":"3930:117:101","nodeType":"YulBlock","src":"3930:117:101","statements":[{"nativeSrc":"3945:15:101","nodeType":"YulVariableDeclaration","src":"3945:15:101","value":{"kind":"number","nativeSrc":"3959:1:101","nodeType":"YulLiteral","src":"3959:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:101","nodeType":"YulTypedName","src":"3949:6:101","type":""}]},{"nativeSrc":"3974:63:101","nodeType":"YulAssignment","src":"3974:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:101","nodeType":"YulIdentifier","src":"4009:9:101"},{"name":"offset","nativeSrc":"4020:6:101","nodeType":"YulIdentifier","src":"4020:6:101"}],"functionName":{"name":"add","nativeSrc":"4005:3:101","nodeType":"YulIdentifier","src":"4005:3:101"},"nativeSrc":"4005:22:101","nodeType":"YulFunctionCall","src":"4005:22:101"},{"name":"dataEnd","nativeSrc":"4029:7:101","nodeType":"YulIdentifier","src":"4029:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:101","nodeType":"YulIdentifier","src":"3984:20:101"},"nativeSrc":"3984:53:101","nodeType":"YulFunctionCall","src":"3984:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:101","nodeType":"YulIdentifier","src":"3974:6:101"}]}]},{"nativeSrc":"4057:118:101","nodeType":"YulBlock","src":"4057:118:101","statements":[{"nativeSrc":"4072:16:101","nodeType":"YulVariableDeclaration","src":"4072:16:101","value":{"kind":"number","nativeSrc":"4086:2:101","nodeType":"YulLiteral","src":"4086:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:101","nodeType":"YulTypedName","src":"4076:6:101","type":""}]},{"nativeSrc":"4102:63:101","nodeType":"YulAssignment","src":"4102:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:101","nodeType":"YulIdentifier","src":"4137:9:101"},{"name":"offset","nativeSrc":"4148:6:101","nodeType":"YulIdentifier","src":"4148:6:101"}],"functionName":{"name":"add","nativeSrc":"4133:3:101","nodeType":"YulIdentifier","src":"4133:3:101"},"nativeSrc":"4133:22:101","nodeType":"YulFunctionCall","src":"4133:22:101"},{"name":"dataEnd","nativeSrc":"4157:7:101","nodeType":"YulIdentifier","src":"4157:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:101","nodeType":"YulIdentifier","src":"4112:20:101"},"nativeSrc":"4112:53:101","nodeType":"YulFunctionCall","src":"4112:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:101","nodeType":"YulIdentifier","src":"4102:6:101"}]}]},{"nativeSrc":"4185:118:101","nodeType":"YulBlock","src":"4185:118:101","statements":[{"nativeSrc":"4200:16:101","nodeType":"YulVariableDeclaration","src":"4200:16:101","value":{"kind":"number","nativeSrc":"4214:2:101","nodeType":"YulLiteral","src":"4214:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:101","nodeType":"YulTypedName","src":"4204:6:101","type":""}]},{"nativeSrc":"4230:63:101","nodeType":"YulAssignment","src":"4230:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:101","nodeType":"YulIdentifier","src":"4265:9:101"},{"name":"offset","nativeSrc":"4276:6:101","nodeType":"YulIdentifier","src":"4276:6:101"}],"functionName":{"name":"add","nativeSrc":"4261:3:101","nodeType":"YulIdentifier","src":"4261:3:101"},"nativeSrc":"4261:22:101","nodeType":"YulFunctionCall","src":"4261:22:101"},{"name":"dataEnd","nativeSrc":"4285:7:101","nodeType":"YulIdentifier","src":"4285:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:101","nodeType":"YulIdentifier","src":"4240:20:101"},"nativeSrc":"4240:53:101","nodeType":"YulFunctionCall","src":"4240:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:101","nodeType":"YulIdentifier","src":"4230:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:101","nodeType":"YulTypedName","src":"3745:9:101","type":""},{"name":"dataEnd","nativeSrc":"3756:7:101","nodeType":"YulTypedName","src":"3756:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:101","nodeType":"YulTypedName","src":"3768:6:101","type":""},{"name":"value1","nativeSrc":"3776:6:101","nodeType":"YulTypedName","src":"3776:6:101","type":""},{"name":"value2","nativeSrc":"3784:6:101","nodeType":"YulTypedName","src":"3784:6:101","type":""}],"src":"3691:619:101"},{"body":{"nativeSrc":"4359:43:101","nodeType":"YulBlock","src":"4359:43:101","statements":[{"nativeSrc":"4369:27:101","nodeType":"YulAssignment","src":"4369:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:101","nodeType":"YulIdentifier","src":"4384:5:101"},{"kind":"number","nativeSrc":"4391:4:101","nodeType":"YulLiteral","src":"4391:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:101","nodeType":"YulIdentifier","src":"4380:3:101"},"nativeSrc":"4380:16:101","nodeType":"YulFunctionCall","src":"4380:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:101","nodeType":"YulIdentifier","src":"4369:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:101","nodeType":"YulTypedName","src":"4341:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:101","nodeType":"YulTypedName","src":"4351:7:101","type":""}],"src":"4316:86:101"},{"body":{"nativeSrc":"4469:51:101","nodeType":"YulBlock","src":"4469:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:101","nodeType":"YulIdentifier","src":"4486:3:101"},{"arguments":[{"name":"value","nativeSrc":"4507:5:101","nodeType":"YulIdentifier","src":"4507:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:101","nodeType":"YulIdentifier","src":"4491:15:101"},"nativeSrc":"4491:22:101","nodeType":"YulFunctionCall","src":"4491:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:101","nodeType":"YulIdentifier","src":"4479:6:101"},"nativeSrc":"4479:35:101","nodeType":"YulFunctionCall","src":"4479:35:101"},"nativeSrc":"4479:35:101","nodeType":"YulExpressionStatement","src":"4479:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:101","nodeType":"YulTypedName","src":"4457:5:101","type":""},{"name":"pos","nativeSrc":"4464:3:101","nodeType":"YulTypedName","src":"4464:3:101","type":""}],"src":"4408:112:101"},{"body":{"nativeSrc":"4620:120:101","nodeType":"YulBlock","src":"4620:120:101","statements":[{"nativeSrc":"4630:26:101","nodeType":"YulAssignment","src":"4630:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:101","nodeType":"YulIdentifier","src":"4642:9:101"},{"kind":"number","nativeSrc":"4653:2:101","nodeType":"YulLiteral","src":"4653:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:101","nodeType":"YulIdentifier","src":"4638:3:101"},"nativeSrc":"4638:18:101","nodeType":"YulFunctionCall","src":"4638:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:101","nodeType":"YulIdentifier","src":"4630:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:101","nodeType":"YulIdentifier","src":"4706:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:101","nodeType":"YulIdentifier","src":"4719:9:101"},{"kind":"number","nativeSrc":"4730:1:101","nodeType":"YulLiteral","src":"4730:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:101","nodeType":"YulIdentifier","src":"4715:3:101"},"nativeSrc":"4715:17:101","nodeType":"YulFunctionCall","src":"4715:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:101","nodeType":"YulIdentifier","src":"4666:39:101"},"nativeSrc":"4666:67:101","nodeType":"YulFunctionCall","src":"4666:67:101"},"nativeSrc":"4666:67:101","nodeType":"YulExpressionStatement","src":"4666:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:101","nodeType":"YulTypedName","src":"4592:9:101","type":""},{"name":"value0","nativeSrc":"4604:6:101","nodeType":"YulTypedName","src":"4604:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:101","nodeType":"YulTypedName","src":"4615:4:101","type":""}],"src":"4526:214:101"},{"body":{"nativeSrc":"4812:263:101","nodeType":"YulBlock","src":"4812:263:101","statements":[{"body":{"nativeSrc":"4858:83:101","nodeType":"YulBlock","src":"4858:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4860:77:101","nodeType":"YulIdentifier","src":"4860:77:101"},"nativeSrc":"4860:79:101","nodeType":"YulFunctionCall","src":"4860:79:101"},"nativeSrc":"4860:79:101","nodeType":"YulExpressionStatement","src":"4860:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4833:7:101","nodeType":"YulIdentifier","src":"4833:7:101"},{"name":"headStart","nativeSrc":"4842:9:101","nodeType":"YulIdentifier","src":"4842:9:101"}],"functionName":{"name":"sub","nativeSrc":"4829:3:101","nodeType":"YulIdentifier","src":"4829:3:101"},"nativeSrc":"4829:23:101","nodeType":"YulFunctionCall","src":"4829:23:101"},{"kind":"number","nativeSrc":"4854:2:101","nodeType":"YulLiteral","src":"4854:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4825:3:101","nodeType":"YulIdentifier","src":"4825:3:101"},"nativeSrc":"4825:32:101","nodeType":"YulFunctionCall","src":"4825:32:101"},"nativeSrc":"4822:119:101","nodeType":"YulIf","src":"4822:119:101"},{"nativeSrc":"4951:117:101","nodeType":"YulBlock","src":"4951:117:101","statements":[{"nativeSrc":"4966:15:101","nodeType":"YulVariableDeclaration","src":"4966:15:101","value":{"kind":"number","nativeSrc":"4980:1:101","nodeType":"YulLiteral","src":"4980:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4970:6:101","nodeType":"YulTypedName","src":"4970:6:101","type":""}]},{"nativeSrc":"4995:63:101","nodeType":"YulAssignment","src":"4995:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5030:9:101","nodeType":"YulIdentifier","src":"5030:9:101"},{"name":"offset","nativeSrc":"5041:6:101","nodeType":"YulIdentifier","src":"5041:6:101"}],"functionName":{"name":"add","nativeSrc":"5026:3:101","nodeType":"YulIdentifier","src":"5026:3:101"},"nativeSrc":"5026:22:101","nodeType":"YulFunctionCall","src":"5026:22:101"},{"name":"dataEnd","nativeSrc":"5050:7:101","nodeType":"YulIdentifier","src":"5050:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5005:20:101","nodeType":"YulIdentifier","src":"5005:20:101"},"nativeSrc":"5005:53:101","nodeType":"YulFunctionCall","src":"5005:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4995:6:101","nodeType":"YulIdentifier","src":"4995:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"4746:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4782:9:101","nodeType":"YulTypedName","src":"4782:9:101","type":""},{"name":"dataEnd","nativeSrc":"4793:7:101","nodeType":"YulTypedName","src":"4793:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4805:6:101","nodeType":"YulTypedName","src":"4805:6:101","type":""}],"src":"4746:329:101"},{"body":{"nativeSrc":"5147:263:101","nodeType":"YulBlock","src":"5147:263:101","statements":[{"body":{"nativeSrc":"5193:83:101","nodeType":"YulBlock","src":"5193:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5195:77:101","nodeType":"YulIdentifier","src":"5195:77:101"},"nativeSrc":"5195:79:101","nodeType":"YulFunctionCall","src":"5195:79:101"},"nativeSrc":"5195:79:101","nodeType":"YulExpressionStatement","src":"5195:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5168:7:101","nodeType":"YulIdentifier","src":"5168:7:101"},{"name":"headStart","nativeSrc":"5177:9:101","nodeType":"YulIdentifier","src":"5177:9:101"}],"functionName":{"name":"sub","nativeSrc":"5164:3:101","nodeType":"YulIdentifier","src":"5164:3:101"},"nativeSrc":"5164:23:101","nodeType":"YulFunctionCall","src":"5164:23:101"},{"kind":"number","nativeSrc":"5189:2:101","nodeType":"YulLiteral","src":"5189:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5160:3:101","nodeType":"YulIdentifier","src":"5160:3:101"},"nativeSrc":"5160:32:101","nodeType":"YulFunctionCall","src":"5160:32:101"},"nativeSrc":"5157:119:101","nodeType":"YulIf","src":"5157:119:101"},{"nativeSrc":"5286:117:101","nodeType":"YulBlock","src":"5286:117:101","statements":[{"nativeSrc":"5301:15:101","nodeType":"YulVariableDeclaration","src":"5301:15:101","value":{"kind":"number","nativeSrc":"5315:1:101","nodeType":"YulLiteral","src":"5315:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5305:6:101","nodeType":"YulTypedName","src":"5305:6:101","type":""}]},{"nativeSrc":"5330:63:101","nodeType":"YulAssignment","src":"5330:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5365:9:101","nodeType":"YulIdentifier","src":"5365:9:101"},{"name":"offset","nativeSrc":"5376:6:101","nodeType":"YulIdentifier","src":"5376:6:101"}],"functionName":{"name":"add","nativeSrc":"5361:3:101","nodeType":"YulIdentifier","src":"5361:3:101"},"nativeSrc":"5361:22:101","nodeType":"YulFunctionCall","src":"5361:22:101"},{"name":"dataEnd","nativeSrc":"5385:7:101","nodeType":"YulIdentifier","src":"5385:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5340:20:101","nodeType":"YulIdentifier","src":"5340:20:101"},"nativeSrc":"5340:53:101","nodeType":"YulFunctionCall","src":"5340:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5330:6:101","nodeType":"YulIdentifier","src":"5330:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5081:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5117:9:101","nodeType":"YulTypedName","src":"5117:9:101","type":""},{"name":"dataEnd","nativeSrc":"5128:7:101","nodeType":"YulTypedName","src":"5128:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5140:6:101","nodeType":"YulTypedName","src":"5140:6:101","type":""}],"src":"5081:329:101"},{"body":{"nativeSrc":"5481:53:101","nodeType":"YulBlock","src":"5481:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5498:3:101","nodeType":"YulIdentifier","src":"5498:3:101"},{"arguments":[{"name":"value","nativeSrc":"5521:5:101","nodeType":"YulIdentifier","src":"5521:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5503:17:101","nodeType":"YulIdentifier","src":"5503:17:101"},"nativeSrc":"5503:24:101","nodeType":"YulFunctionCall","src":"5503:24:101"}],"functionName":{"name":"mstore","nativeSrc":"5491:6:101","nodeType":"YulIdentifier","src":"5491:6:101"},"nativeSrc":"5491:37:101","nodeType":"YulFunctionCall","src":"5491:37:101"},"nativeSrc":"5491:37:101","nodeType":"YulExpressionStatement","src":"5491:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5416:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5469:5:101","nodeType":"YulTypedName","src":"5469:5:101","type":""},{"name":"pos","nativeSrc":"5476:3:101","nodeType":"YulTypedName","src":"5476:3:101","type":""}],"src":"5416:118:101"},{"body":{"nativeSrc":"5638:124:101","nodeType":"YulBlock","src":"5638:124:101","statements":[{"nativeSrc":"5648:26:101","nodeType":"YulAssignment","src":"5648:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5660:9:101","nodeType":"YulIdentifier","src":"5660:9:101"},{"kind":"number","nativeSrc":"5671:2:101","nodeType":"YulLiteral","src":"5671:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5656:3:101","nodeType":"YulIdentifier","src":"5656:3:101"},"nativeSrc":"5656:18:101","nodeType":"YulFunctionCall","src":"5656:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5648:4:101","nodeType":"YulIdentifier","src":"5648:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5728:6:101","nodeType":"YulIdentifier","src":"5728:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5741:9:101","nodeType":"YulIdentifier","src":"5741:9:101"},{"kind":"number","nativeSrc":"5752:1:101","nodeType":"YulLiteral","src":"5752:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5737:3:101","nodeType":"YulIdentifier","src":"5737:3:101"},"nativeSrc":"5737:17:101","nodeType":"YulFunctionCall","src":"5737:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5684:43:101","nodeType":"YulIdentifier","src":"5684:43:101"},"nativeSrc":"5684:71:101","nodeType":"YulFunctionCall","src":"5684:71:101"},"nativeSrc":"5684:71:101","nodeType":"YulExpressionStatement","src":"5684:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5540:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5610:9:101","nodeType":"YulTypedName","src":"5610:9:101","type":""},{"name":"value0","nativeSrc":"5622:6:101","nodeType":"YulTypedName","src":"5622:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5633:4:101","nodeType":"YulTypedName","src":"5633:4:101","type":""}],"src":"5540:222:101"},{"body":{"nativeSrc":"5851:391:101","nodeType":"YulBlock","src":"5851:391:101","statements":[{"body":{"nativeSrc":"5897:83:101","nodeType":"YulBlock","src":"5897:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5899:77:101","nodeType":"YulIdentifier","src":"5899:77:101"},"nativeSrc":"5899:79:101","nodeType":"YulFunctionCall","src":"5899:79:101"},"nativeSrc":"5899:79:101","nodeType":"YulExpressionStatement","src":"5899:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5872:7:101","nodeType":"YulIdentifier","src":"5872:7:101"},{"name":"headStart","nativeSrc":"5881:9:101","nodeType":"YulIdentifier","src":"5881:9:101"}],"functionName":{"name":"sub","nativeSrc":"5868:3:101","nodeType":"YulIdentifier","src":"5868:3:101"},"nativeSrc":"5868:23:101","nodeType":"YulFunctionCall","src":"5868:23:101"},{"kind":"number","nativeSrc":"5893:2:101","nodeType":"YulLiteral","src":"5893:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5864:3:101","nodeType":"YulIdentifier","src":"5864:3:101"},"nativeSrc":"5864:32:101","nodeType":"YulFunctionCall","src":"5864:32:101"},"nativeSrc":"5861:119:101","nodeType":"YulIf","src":"5861:119:101"},{"nativeSrc":"5990:117:101","nodeType":"YulBlock","src":"5990:117:101","statements":[{"nativeSrc":"6005:15:101","nodeType":"YulVariableDeclaration","src":"6005:15:101","value":{"kind":"number","nativeSrc":"6019:1:101","nodeType":"YulLiteral","src":"6019:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6009:6:101","nodeType":"YulTypedName","src":"6009:6:101","type":""}]},{"nativeSrc":"6034:63:101","nodeType":"YulAssignment","src":"6034:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6069:9:101","nodeType":"YulIdentifier","src":"6069:9:101"},{"name":"offset","nativeSrc":"6080:6:101","nodeType":"YulIdentifier","src":"6080:6:101"}],"functionName":{"name":"add","nativeSrc":"6065:3:101","nodeType":"YulIdentifier","src":"6065:3:101"},"nativeSrc":"6065:22:101","nodeType":"YulFunctionCall","src":"6065:22:101"},{"name":"dataEnd","nativeSrc":"6089:7:101","nodeType":"YulIdentifier","src":"6089:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6044:20:101","nodeType":"YulIdentifier","src":"6044:20:101"},"nativeSrc":"6044:53:101","nodeType":"YulFunctionCall","src":"6044:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6034:6:101","nodeType":"YulIdentifier","src":"6034:6:101"}]}]},{"nativeSrc":"6117:118:101","nodeType":"YulBlock","src":"6117:118:101","statements":[{"nativeSrc":"6132:16:101","nodeType":"YulVariableDeclaration","src":"6132:16:101","value":{"kind":"number","nativeSrc":"6146:2:101","nodeType":"YulLiteral","src":"6146:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6136:6:101","nodeType":"YulTypedName","src":"6136:6:101","type":""}]},{"nativeSrc":"6162:63:101","nodeType":"YulAssignment","src":"6162:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6197:9:101","nodeType":"YulIdentifier","src":"6197:9:101"},{"name":"offset","nativeSrc":"6208:6:101","nodeType":"YulIdentifier","src":"6208:6:101"}],"functionName":{"name":"add","nativeSrc":"6193:3:101","nodeType":"YulIdentifier","src":"6193:3:101"},"nativeSrc":"6193:22:101","nodeType":"YulFunctionCall","src":"6193:22:101"},{"name":"dataEnd","nativeSrc":"6217:7:101","nodeType":"YulIdentifier","src":"6217:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6172:20:101","nodeType":"YulIdentifier","src":"6172:20:101"},"nativeSrc":"6172:53:101","nodeType":"YulFunctionCall","src":"6172:53:101"},"variableNames":[{"name":"value1","nativeSrc":"6162:6:101","nodeType":"YulIdentifier","src":"6162:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5768:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5813:9:101","nodeType":"YulTypedName","src":"5813:9:101","type":""},{"name":"dataEnd","nativeSrc":"5824:7:101","nodeType":"YulTypedName","src":"5824:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5836:6:101","nodeType":"YulTypedName","src":"5836:6:101","type":""},{"name":"value1","nativeSrc":"5844:6:101","nodeType":"YulTypedName","src":"5844:6:101","type":""}],"src":"5768:474:101"},{"body":{"nativeSrc":"6276:152:101","nodeType":"YulBlock","src":"6276:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6293:1:101","nodeType":"YulLiteral","src":"6293:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6296:77:101","nodeType":"YulLiteral","src":"6296:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6286:6:101","nodeType":"YulIdentifier","src":"6286:6:101"},"nativeSrc":"6286:88:101","nodeType":"YulFunctionCall","src":"6286:88:101"},"nativeSrc":"6286:88:101","nodeType":"YulExpressionStatement","src":"6286:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6390:1:101","nodeType":"YulLiteral","src":"6390:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6393:4:101","nodeType":"YulLiteral","src":"6393:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6383:6:101","nodeType":"YulIdentifier","src":"6383:6:101"},"nativeSrc":"6383:15:101","nodeType":"YulFunctionCall","src":"6383:15:101"},"nativeSrc":"6383:15:101","nodeType":"YulExpressionStatement","src":"6383:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6414:1:101","nodeType":"YulLiteral","src":"6414:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6417:4:101","nodeType":"YulLiteral","src":"6417:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6407:6:101","nodeType":"YulIdentifier","src":"6407:6:101"},"nativeSrc":"6407:15:101","nodeType":"YulFunctionCall","src":"6407:15:101"},"nativeSrc":"6407:15:101","nodeType":"YulExpressionStatement","src":"6407:15:101"}]},"name":"panic_error_0x22","nativeSrc":"6248:180:101","nodeType":"YulFunctionDefinition","src":"6248:180:101"},{"body":{"nativeSrc":"6485:269:101","nodeType":"YulBlock","src":"6485:269:101","statements":[{"nativeSrc":"6495:22:101","nodeType":"YulAssignment","src":"6495:22:101","value":{"arguments":[{"name":"data","nativeSrc":"6509:4:101","nodeType":"YulIdentifier","src":"6509:4:101"},{"kind":"number","nativeSrc":"6515:1:101","nodeType":"YulLiteral","src":"6515:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"6505:3:101","nodeType":"YulIdentifier","src":"6505:3:101"},"nativeSrc":"6505:12:101","nodeType":"YulFunctionCall","src":"6505:12:101"},"variableNames":[{"name":"length","nativeSrc":"6495:6:101","nodeType":"YulIdentifier","src":"6495:6:101"}]},{"nativeSrc":"6526:38:101","nodeType":"YulVariableDeclaration","src":"6526:38:101","value":{"arguments":[{"name":"data","nativeSrc":"6556:4:101","nodeType":"YulIdentifier","src":"6556:4:101"},{"kind":"number","nativeSrc":"6562:1:101","nodeType":"YulLiteral","src":"6562:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6552:3:101","nodeType":"YulIdentifier","src":"6552:3:101"},"nativeSrc":"6552:12:101","nodeType":"YulFunctionCall","src":"6552:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6530:18:101","nodeType":"YulTypedName","src":"6530:18:101","type":""}]},{"body":{"nativeSrc":"6603:51:101","nodeType":"YulBlock","src":"6603:51:101","statements":[{"nativeSrc":"6617:27:101","nodeType":"YulAssignment","src":"6617:27:101","value":{"arguments":[{"name":"length","nativeSrc":"6631:6:101","nodeType":"YulIdentifier","src":"6631:6:101"},{"kind":"number","nativeSrc":"6639:4:101","nodeType":"YulLiteral","src":"6639:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6627:3:101","nodeType":"YulIdentifier","src":"6627:3:101"},"nativeSrc":"6627:17:101","nodeType":"YulFunctionCall","src":"6627:17:101"},"variableNames":[{"name":"length","nativeSrc":"6617:6:101","nodeType":"YulIdentifier","src":"6617:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6583:18:101","nodeType":"YulIdentifier","src":"6583:18:101"}],"functionName":{"name":"iszero","nativeSrc":"6576:6:101","nodeType":"YulIdentifier","src":"6576:6:101"},"nativeSrc":"6576:26:101","nodeType":"YulFunctionCall","src":"6576:26:101"},"nativeSrc":"6573:81:101","nodeType":"YulIf","src":"6573:81:101"},{"body":{"nativeSrc":"6706:42:101","nodeType":"YulBlock","src":"6706:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6720:16:101","nodeType":"YulIdentifier","src":"6720:16:101"},"nativeSrc":"6720:18:101","nodeType":"YulFunctionCall","src":"6720:18:101"},"nativeSrc":"6720:18:101","nodeType":"YulExpressionStatement","src":"6720:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6670:18:101","nodeType":"YulIdentifier","src":"6670:18:101"},{"arguments":[{"name":"length","nativeSrc":"6693:6:101","nodeType":"YulIdentifier","src":"6693:6:101"},{"kind":"number","nativeSrc":"6701:2:101","nodeType":"YulLiteral","src":"6701:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6690:2:101","nodeType":"YulIdentifier","src":"6690:2:101"},"nativeSrc":"6690:14:101","nodeType":"YulFunctionCall","src":"6690:14:101"}],"functionName":{"name":"eq","nativeSrc":"6667:2:101","nodeType":"YulIdentifier","src":"6667:2:101"},"nativeSrc":"6667:38:101","nodeType":"YulFunctionCall","src":"6667:38:101"},"nativeSrc":"6664:84:101","nodeType":"YulIf","src":"6664:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"6434:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6469:4:101","nodeType":"YulTypedName","src":"6469:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6478:6:101","nodeType":"YulTypedName","src":"6478:6:101","type":""}],"src":"6434:320:101"},{"body":{"nativeSrc":"6788:152:101","nodeType":"YulBlock","src":"6788:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6805:1:101","nodeType":"YulLiteral","src":"6805:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6808:77:101","nodeType":"YulLiteral","src":"6808:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6798:6:101","nodeType":"YulIdentifier","src":"6798:6:101"},"nativeSrc":"6798:88:101","nodeType":"YulFunctionCall","src":"6798:88:101"},"nativeSrc":"6798:88:101","nodeType":"YulExpressionStatement","src":"6798:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6902:1:101","nodeType":"YulLiteral","src":"6902:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6905:4:101","nodeType":"YulLiteral","src":"6905:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6895:6:101","nodeType":"YulIdentifier","src":"6895:6:101"},"nativeSrc":"6895:15:101","nodeType":"YulFunctionCall","src":"6895:15:101"},"nativeSrc":"6895:15:101","nodeType":"YulExpressionStatement","src":"6895:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6926:1:101","nodeType":"YulLiteral","src":"6926:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6929:4:101","nodeType":"YulLiteral","src":"6929:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6919:6:101","nodeType":"YulIdentifier","src":"6919:6:101"},"nativeSrc":"6919:15:101","nodeType":"YulFunctionCall","src":"6919:15:101"},"nativeSrc":"6919:15:101","nodeType":"YulExpressionStatement","src":"6919:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6760:180:101","nodeType":"YulFunctionDefinition","src":"6760:180:101"},{"body":{"nativeSrc":"6990:147:101","nodeType":"YulBlock","src":"6990:147:101","statements":[{"nativeSrc":"7000:25:101","nodeType":"YulAssignment","src":"7000:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7023:1:101","nodeType":"YulIdentifier","src":"7023:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7005:17:101","nodeType":"YulIdentifier","src":"7005:17:101"},"nativeSrc":"7005:20:101","nodeType":"YulFunctionCall","src":"7005:20:101"},"variableNames":[{"name":"x","nativeSrc":"7000:1:101","nodeType":"YulIdentifier","src":"7000:1:101"}]},{"nativeSrc":"7034:25:101","nodeType":"YulAssignment","src":"7034:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7057:1:101","nodeType":"YulIdentifier","src":"7057:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7039:17:101","nodeType":"YulIdentifier","src":"7039:17:101"},"nativeSrc":"7039:20:101","nodeType":"YulFunctionCall","src":"7039:20:101"},"variableNames":[{"name":"y","nativeSrc":"7034:1:101","nodeType":"YulIdentifier","src":"7034:1:101"}]},{"nativeSrc":"7068:16:101","nodeType":"YulAssignment","src":"7068:16:101","value":{"arguments":[{"name":"x","nativeSrc":"7079:1:101","nodeType":"YulIdentifier","src":"7079:1:101"},{"name":"y","nativeSrc":"7082:1:101","nodeType":"YulIdentifier","src":"7082:1:101"}],"functionName":{"name":"add","nativeSrc":"7075:3:101","nodeType":"YulIdentifier","src":"7075:3:101"},"nativeSrc":"7075:9:101","nodeType":"YulFunctionCall","src":"7075:9:101"},"variableNames":[{"name":"sum","nativeSrc":"7068:3:101","nodeType":"YulIdentifier","src":"7068:3:101"}]},{"body":{"nativeSrc":"7108:22:101","nodeType":"YulBlock","src":"7108:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7110:16:101","nodeType":"YulIdentifier","src":"7110:16:101"},"nativeSrc":"7110:18:101","nodeType":"YulFunctionCall","src":"7110:18:101"},"nativeSrc":"7110:18:101","nodeType":"YulExpressionStatement","src":"7110:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7100:1:101","nodeType":"YulIdentifier","src":"7100:1:101"},{"name":"sum","nativeSrc":"7103:3:101","nodeType":"YulIdentifier","src":"7103:3:101"}],"functionName":{"name":"gt","nativeSrc":"7097:2:101","nodeType":"YulIdentifier","src":"7097:2:101"},"nativeSrc":"7097:10:101","nodeType":"YulFunctionCall","src":"7097:10:101"},"nativeSrc":"7094:36:101","nodeType":"YulIf","src":"7094:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6946:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6977:1:101","nodeType":"YulTypedName","src":"6977:1:101","type":""},{"name":"y","nativeSrc":"6980:1:101","nodeType":"YulTypedName","src":"6980:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6986:3:101","nodeType":"YulTypedName","src":"6986:3:101","type":""}],"src":"6946:191:101"},{"body":{"nativeSrc":"7249:118:101","nodeType":"YulBlock","src":"7249:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7271:6:101","nodeType":"YulIdentifier","src":"7271:6:101"},{"kind":"number","nativeSrc":"7279:1:101","nodeType":"YulLiteral","src":"7279:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7267:3:101","nodeType":"YulIdentifier","src":"7267:3:101"},"nativeSrc":"7267:14:101","nodeType":"YulFunctionCall","src":"7267:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"7283:34:101","nodeType":"YulLiteral","src":"7283:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"7260:6:101","nodeType":"YulIdentifier","src":"7260:6:101"},"nativeSrc":"7260:58:101","nodeType":"YulFunctionCall","src":"7260:58:101"},"nativeSrc":"7260:58:101","nodeType":"YulExpressionStatement","src":"7260:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7339:6:101","nodeType":"YulIdentifier","src":"7339:6:101"},{"kind":"number","nativeSrc":"7347:2:101","nodeType":"YulLiteral","src":"7347:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7335:3:101","nodeType":"YulIdentifier","src":"7335:3:101"},"nativeSrc":"7335:15:101","nodeType":"YulFunctionCall","src":"7335:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"7352:7:101","nodeType":"YulLiteral","src":"7352:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"7328:6:101","nodeType":"YulIdentifier","src":"7328:6:101"},"nativeSrc":"7328:32:101","nodeType":"YulFunctionCall","src":"7328:32:101"},"nativeSrc":"7328:32:101","nodeType":"YulExpressionStatement","src":"7328:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7143:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7241:6:101","nodeType":"YulTypedName","src":"7241:6:101","type":""}],"src":"7143:224:101"},{"body":{"nativeSrc":"7519:220:101","nodeType":"YulBlock","src":"7519:220:101","statements":[{"nativeSrc":"7529:74:101","nodeType":"YulAssignment","src":"7529:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7595:3:101","nodeType":"YulIdentifier","src":"7595:3:101"},{"kind":"number","nativeSrc":"7600:2:101","nodeType":"YulLiteral","src":"7600:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7536:58:101","nodeType":"YulIdentifier","src":"7536:58:101"},"nativeSrc":"7536:67:101","nodeType":"YulFunctionCall","src":"7536:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7701:3:101","nodeType":"YulIdentifier","src":"7701:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7612:88:101","nodeType":"YulIdentifier","src":"7612:88:101"},"nativeSrc":"7612:93:101","nodeType":"YulFunctionCall","src":"7612:93:101"},"nativeSrc":"7612:93:101","nodeType":"YulExpressionStatement","src":"7612:93:101"},{"nativeSrc":"7714:19:101","nodeType":"YulAssignment","src":"7714:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7725:3:101","nodeType":"YulIdentifier","src":"7725:3:101"},{"kind":"number","nativeSrc":"7730:2:101","nodeType":"YulLiteral","src":"7730:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7721:3:101","nodeType":"YulIdentifier","src":"7721:3:101"},"nativeSrc":"7721:12:101","nodeType":"YulFunctionCall","src":"7721:12:101"},"variableNames":[{"name":"end","nativeSrc":"7714:3:101","nodeType":"YulIdentifier","src":"7714:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7373:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7507:3:101","nodeType":"YulTypedName","src":"7507:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7515:3:101","nodeType":"YulTypedName","src":"7515:3:101","type":""}],"src":"7373:366:101"},{"body":{"nativeSrc":"7916:248:101","nodeType":"YulBlock","src":"7916:248:101","statements":[{"nativeSrc":"7926:26:101","nodeType":"YulAssignment","src":"7926:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7938:9:101","nodeType":"YulIdentifier","src":"7938:9:101"},{"kind":"number","nativeSrc":"7949:2:101","nodeType":"YulLiteral","src":"7949:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7934:3:101","nodeType":"YulIdentifier","src":"7934:3:101"},"nativeSrc":"7934:18:101","nodeType":"YulFunctionCall","src":"7934:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7926:4:101","nodeType":"YulIdentifier","src":"7926:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7973:9:101","nodeType":"YulIdentifier","src":"7973:9:101"},{"kind":"number","nativeSrc":"7984:1:101","nodeType":"YulLiteral","src":"7984:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7969:3:101","nodeType":"YulIdentifier","src":"7969:3:101"},"nativeSrc":"7969:17:101","nodeType":"YulFunctionCall","src":"7969:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7992:4:101","nodeType":"YulIdentifier","src":"7992:4:101"},{"name":"headStart","nativeSrc":"7998:9:101","nodeType":"YulIdentifier","src":"7998:9:101"}],"functionName":{"name":"sub","nativeSrc":"7988:3:101","nodeType":"YulIdentifier","src":"7988:3:101"},"nativeSrc":"7988:20:101","nodeType":"YulFunctionCall","src":"7988:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7962:6:101","nodeType":"YulIdentifier","src":"7962:6:101"},"nativeSrc":"7962:47:101","nodeType":"YulFunctionCall","src":"7962:47:101"},"nativeSrc":"7962:47:101","nodeType":"YulExpressionStatement","src":"7962:47:101"},{"nativeSrc":"8018:139:101","nodeType":"YulAssignment","src":"8018:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"8152:4:101","nodeType":"YulIdentifier","src":"8152:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"8026:124:101","nodeType":"YulIdentifier","src":"8026:124:101"},"nativeSrc":"8026:131:101","nodeType":"YulFunctionCall","src":"8026:131:101"},"variableNames":[{"name":"tail","nativeSrc":"8018:4:101","nodeType":"YulIdentifier","src":"8018:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7745:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7896:9:101","nodeType":"YulTypedName","src":"7896:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7911:4:101","nodeType":"YulTypedName","src":"7911:4:101","type":""}],"src":"7745:419:101"},{"body":{"nativeSrc":"8276:119:101","nodeType":"YulBlock","src":"8276:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8298:6:101","nodeType":"YulIdentifier","src":"8298:6:101"},{"kind":"number","nativeSrc":"8306:1:101","nodeType":"YulLiteral","src":"8306:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8294:3:101","nodeType":"YulIdentifier","src":"8294:3:101"},"nativeSrc":"8294:14:101","nodeType":"YulFunctionCall","src":"8294:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"8310:34:101","nodeType":"YulLiteral","src":"8310:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"8287:6:101","nodeType":"YulIdentifier","src":"8287:6:101"},"nativeSrc":"8287:58:101","nodeType":"YulFunctionCall","src":"8287:58:101"},"nativeSrc":"8287:58:101","nodeType":"YulExpressionStatement","src":"8287:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8366:6:101","nodeType":"YulIdentifier","src":"8366:6:101"},{"kind":"number","nativeSrc":"8374:2:101","nodeType":"YulLiteral","src":"8374:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8362:3:101","nodeType":"YulIdentifier","src":"8362:3:101"},"nativeSrc":"8362:15:101","nodeType":"YulFunctionCall","src":"8362:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"8379:8:101","nodeType":"YulLiteral","src":"8379:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"8355:6:101","nodeType":"YulIdentifier","src":"8355:6:101"},"nativeSrc":"8355:33:101","nodeType":"YulFunctionCall","src":"8355:33:101"},"nativeSrc":"8355:33:101","nodeType":"YulExpressionStatement","src":"8355:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"8170:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8268:6:101","nodeType":"YulTypedName","src":"8268:6:101","type":""}],"src":"8170:225:101"},{"body":{"nativeSrc":"8547:220:101","nodeType":"YulBlock","src":"8547:220:101","statements":[{"nativeSrc":"8557:74:101","nodeType":"YulAssignment","src":"8557:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"8623:3:101","nodeType":"YulIdentifier","src":"8623:3:101"},{"kind":"number","nativeSrc":"8628:2:101","nodeType":"YulLiteral","src":"8628:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8564:58:101","nodeType":"YulIdentifier","src":"8564:58:101"},"nativeSrc":"8564:67:101","nodeType":"YulFunctionCall","src":"8564:67:101"},"variableNames":[{"name":"pos","nativeSrc":"8557:3:101","nodeType":"YulIdentifier","src":"8557:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8729:3:101","nodeType":"YulIdentifier","src":"8729:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"8640:88:101","nodeType":"YulIdentifier","src":"8640:88:101"},"nativeSrc":"8640:93:101","nodeType":"YulFunctionCall","src":"8640:93:101"},"nativeSrc":"8640:93:101","nodeType":"YulExpressionStatement","src":"8640:93:101"},{"nativeSrc":"8742:19:101","nodeType":"YulAssignment","src":"8742:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"8753:3:101","nodeType":"YulIdentifier","src":"8753:3:101"},{"kind":"number","nativeSrc":"8758:2:101","nodeType":"YulLiteral","src":"8758:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8749:3:101","nodeType":"YulIdentifier","src":"8749:3:101"},"nativeSrc":"8749:12:101","nodeType":"YulFunctionCall","src":"8749:12:101"},"variableNames":[{"name":"end","nativeSrc":"8742:3:101","nodeType":"YulIdentifier","src":"8742:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"8401:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8535:3:101","nodeType":"YulTypedName","src":"8535:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8543:3:101","nodeType":"YulTypedName","src":"8543:3:101","type":""}],"src":"8401:366:101"},{"body":{"nativeSrc":"8944:248:101","nodeType":"YulBlock","src":"8944:248:101","statements":[{"nativeSrc":"8954:26:101","nodeType":"YulAssignment","src":"8954:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8966:9:101","nodeType":"YulIdentifier","src":"8966:9:101"},{"kind":"number","nativeSrc":"8977:2:101","nodeType":"YulLiteral","src":"8977:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8962:3:101","nodeType":"YulIdentifier","src":"8962:3:101"},"nativeSrc":"8962:18:101","nodeType":"YulFunctionCall","src":"8962:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8954:4:101","nodeType":"YulIdentifier","src":"8954:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9001:9:101","nodeType":"YulIdentifier","src":"9001:9:101"},{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8997:3:101","nodeType":"YulIdentifier","src":"8997:3:101"},"nativeSrc":"8997:17:101","nodeType":"YulFunctionCall","src":"8997:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9020:4:101","nodeType":"YulIdentifier","src":"9020:4:101"},{"name":"headStart","nativeSrc":"9026:9:101","nodeType":"YulIdentifier","src":"9026:9:101"}],"functionName":{"name":"sub","nativeSrc":"9016:3:101","nodeType":"YulIdentifier","src":"9016:3:101"},"nativeSrc":"9016:20:101","nodeType":"YulFunctionCall","src":"9016:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8990:6:101","nodeType":"YulIdentifier","src":"8990:6:101"},"nativeSrc":"8990:47:101","nodeType":"YulFunctionCall","src":"8990:47:101"},"nativeSrc":"8990:47:101","nodeType":"YulExpressionStatement","src":"8990:47:101"},{"nativeSrc":"9046:139:101","nodeType":"YulAssignment","src":"9046:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9180:4:101","nodeType":"YulIdentifier","src":"9180:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"9054:124:101","nodeType":"YulIdentifier","src":"9054:124:101"},"nativeSrc":"9054:131:101","nodeType":"YulFunctionCall","src":"9054:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9046:4:101","nodeType":"YulIdentifier","src":"9046:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8773:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8924:9:101","nodeType":"YulTypedName","src":"8924:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8939:4:101","nodeType":"YulTypedName","src":"8939:4:101","type":""}],"src":"8773:419:101"},{"body":{"nativeSrc":"9304:117:101","nodeType":"YulBlock","src":"9304:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9326:6:101","nodeType":"YulIdentifier","src":"9326:6:101"},{"kind":"number","nativeSrc":"9334:1:101","nodeType":"YulLiteral","src":"9334:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9322:3:101","nodeType":"YulIdentifier","src":"9322:3:101"},"nativeSrc":"9322:14:101","nodeType":"YulFunctionCall","src":"9322:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"9338:34:101","nodeType":"YulLiteral","src":"9338:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"9315:6:101","nodeType":"YulIdentifier","src":"9315:6:101"},"nativeSrc":"9315:58:101","nodeType":"YulFunctionCall","src":"9315:58:101"},"nativeSrc":"9315:58:101","nodeType":"YulExpressionStatement","src":"9315:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9394:6:101","nodeType":"YulIdentifier","src":"9394:6:101"},{"kind":"number","nativeSrc":"9402:2:101","nodeType":"YulLiteral","src":"9402:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9390:3:101","nodeType":"YulIdentifier","src":"9390:3:101"},"nativeSrc":"9390:15:101","nodeType":"YulFunctionCall","src":"9390:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"9407:6:101","nodeType":"YulLiteral","src":"9407:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:101","nodeType":"YulIdentifier","src":"9383:6:101"},"nativeSrc":"9383:31:101","nodeType":"YulFunctionCall","src":"9383:31:101"},"nativeSrc":"9383:31:101","nodeType":"YulExpressionStatement","src":"9383:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"9198:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9296:6:101","nodeType":"YulTypedName","src":"9296:6:101","type":""}],"src":"9198:223:101"},{"body":{"nativeSrc":"9573:220:101","nodeType":"YulBlock","src":"9573:220:101","statements":[{"nativeSrc":"9583:74:101","nodeType":"YulAssignment","src":"9583:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9649:3:101","nodeType":"YulIdentifier","src":"9649:3:101"},{"kind":"number","nativeSrc":"9654:2:101","nodeType":"YulLiteral","src":"9654:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9590:58:101","nodeType":"YulIdentifier","src":"9590:58:101"},"nativeSrc":"9590:67:101","nodeType":"YulFunctionCall","src":"9590:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9583:3:101","nodeType":"YulIdentifier","src":"9583:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9755:3:101","nodeType":"YulIdentifier","src":"9755:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"9666:88:101","nodeType":"YulIdentifier","src":"9666:88:101"},"nativeSrc":"9666:93:101","nodeType":"YulFunctionCall","src":"9666:93:101"},"nativeSrc":"9666:93:101","nodeType":"YulExpressionStatement","src":"9666:93:101"},{"nativeSrc":"9768:19:101","nodeType":"YulAssignment","src":"9768:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9779:3:101","nodeType":"YulIdentifier","src":"9779:3:101"},{"kind":"number","nativeSrc":"9784:2:101","nodeType":"YulLiteral","src":"9784:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9775:3:101","nodeType":"YulIdentifier","src":"9775:3:101"},"nativeSrc":"9775:12:101","nodeType":"YulFunctionCall","src":"9775:12:101"},"variableNames":[{"name":"end","nativeSrc":"9768:3:101","nodeType":"YulIdentifier","src":"9768:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"9427:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9561:3:101","nodeType":"YulTypedName","src":"9561:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9569:3:101","nodeType":"YulTypedName","src":"9569:3:101","type":""}],"src":"9427:366:101"},{"body":{"nativeSrc":"9970:248:101","nodeType":"YulBlock","src":"9970:248:101","statements":[{"nativeSrc":"9980:26:101","nodeType":"YulAssignment","src":"9980:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9992:9:101","nodeType":"YulIdentifier","src":"9992:9:101"},{"kind":"number","nativeSrc":"10003:2:101","nodeType":"YulLiteral","src":"10003:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9988:3:101","nodeType":"YulIdentifier","src":"9988:3:101"},"nativeSrc":"9988:18:101","nodeType":"YulFunctionCall","src":"9988:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9980:4:101","nodeType":"YulIdentifier","src":"9980:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10027:9:101","nodeType":"YulIdentifier","src":"10027:9:101"},{"kind":"number","nativeSrc":"10038:1:101","nodeType":"YulLiteral","src":"10038:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10023:3:101","nodeType":"YulIdentifier","src":"10023:3:101"},"nativeSrc":"10023:17:101","nodeType":"YulFunctionCall","src":"10023:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10046:4:101","nodeType":"YulIdentifier","src":"10046:4:101"},{"name":"headStart","nativeSrc":"10052:9:101","nodeType":"YulIdentifier","src":"10052:9:101"}],"functionName":{"name":"sub","nativeSrc":"10042:3:101","nodeType":"YulIdentifier","src":"10042:3:101"},"nativeSrc":"10042:20:101","nodeType":"YulFunctionCall","src":"10042:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10016:6:101","nodeType":"YulIdentifier","src":"10016:6:101"},"nativeSrc":"10016:47:101","nodeType":"YulFunctionCall","src":"10016:47:101"},"nativeSrc":"10016:47:101","nodeType":"YulExpressionStatement","src":"10016:47:101"},{"nativeSrc":"10072:139:101","nodeType":"YulAssignment","src":"10072:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10206:4:101","nodeType":"YulIdentifier","src":"10206:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"10080:124:101","nodeType":"YulIdentifier","src":"10080:124:101"},"nativeSrc":"10080:131:101","nodeType":"YulFunctionCall","src":"10080:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10072:4:101","nodeType":"YulIdentifier","src":"10072:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9799:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9950:9:101","nodeType":"YulTypedName","src":"9950:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9965:4:101","nodeType":"YulTypedName","src":"9965:4:101","type":""}],"src":"9799:419:101"},{"body":{"nativeSrc":"10330:115:101","nodeType":"YulBlock","src":"10330:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10352:6:101","nodeType":"YulIdentifier","src":"10352:6:101"},{"kind":"number","nativeSrc":"10360:1:101","nodeType":"YulLiteral","src":"10360:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10348:3:101","nodeType":"YulIdentifier","src":"10348:3:101"},"nativeSrc":"10348:14:101","nodeType":"YulFunctionCall","src":"10348:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"10364:34:101","nodeType":"YulLiteral","src":"10364:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"10341:6:101","nodeType":"YulIdentifier","src":"10341:6:101"},"nativeSrc":"10341:58:101","nodeType":"YulFunctionCall","src":"10341:58:101"},"nativeSrc":"10341:58:101","nodeType":"YulExpressionStatement","src":"10341:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10420:6:101","nodeType":"YulIdentifier","src":"10420:6:101"},{"kind":"number","nativeSrc":"10428:2:101","nodeType":"YulLiteral","src":"10428:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10416:3:101","nodeType":"YulIdentifier","src":"10416:3:101"},"nativeSrc":"10416:15:101","nodeType":"YulFunctionCall","src":"10416:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"10433:4:101","nodeType":"YulLiteral","src":"10433:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"10409:6:101","nodeType":"YulIdentifier","src":"10409:6:101"},"nativeSrc":"10409:29:101","nodeType":"YulFunctionCall","src":"10409:29:101"},"nativeSrc":"10409:29:101","nodeType":"YulExpressionStatement","src":"10409:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"10224:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10322:6:101","nodeType":"YulTypedName","src":"10322:6:101","type":""}],"src":"10224:221:101"},{"body":{"nativeSrc":"10597:220:101","nodeType":"YulBlock","src":"10597:220:101","statements":[{"nativeSrc":"10607:74:101","nodeType":"YulAssignment","src":"10607:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10673:3:101","nodeType":"YulIdentifier","src":"10673:3:101"},{"kind":"number","nativeSrc":"10678:2:101","nodeType":"YulLiteral","src":"10678:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10614:58:101","nodeType":"YulIdentifier","src":"10614:58:101"},"nativeSrc":"10614:67:101","nodeType":"YulFunctionCall","src":"10614:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10607:3:101","nodeType":"YulIdentifier","src":"10607:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10779:3:101","nodeType":"YulIdentifier","src":"10779:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"10690:88:101","nodeType":"YulIdentifier","src":"10690:88:101"},"nativeSrc":"10690:93:101","nodeType":"YulFunctionCall","src":"10690:93:101"},"nativeSrc":"10690:93:101","nodeType":"YulExpressionStatement","src":"10690:93:101"},{"nativeSrc":"10792:19:101","nodeType":"YulAssignment","src":"10792:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10803:3:101","nodeType":"YulIdentifier","src":"10803:3:101"},{"kind":"number","nativeSrc":"10808:2:101","nodeType":"YulLiteral","src":"10808:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10799:3:101","nodeType":"YulIdentifier","src":"10799:3:101"},"nativeSrc":"10799:12:101","nodeType":"YulFunctionCall","src":"10799:12:101"},"variableNames":[{"name":"end","nativeSrc":"10792:3:101","nodeType":"YulIdentifier","src":"10792:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"10451:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10585:3:101","nodeType":"YulTypedName","src":"10585:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10593:3:101","nodeType":"YulTypedName","src":"10593:3:101","type":""}],"src":"10451:366:101"},{"body":{"nativeSrc":"10994:248:101","nodeType":"YulBlock","src":"10994:248:101","statements":[{"nativeSrc":"11004:26:101","nodeType":"YulAssignment","src":"11004:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11016:9:101","nodeType":"YulIdentifier","src":"11016:9:101"},{"kind":"number","nativeSrc":"11027:2:101","nodeType":"YulLiteral","src":"11027:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11012:3:101","nodeType":"YulIdentifier","src":"11012:3:101"},"nativeSrc":"11012:18:101","nodeType":"YulFunctionCall","src":"11012:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11004:4:101","nodeType":"YulIdentifier","src":"11004:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11051:9:101","nodeType":"YulIdentifier","src":"11051:9:101"},{"kind":"number","nativeSrc":"11062:1:101","nodeType":"YulLiteral","src":"11062:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11047:3:101","nodeType":"YulIdentifier","src":"11047:3:101"},"nativeSrc":"11047:17:101","nodeType":"YulFunctionCall","src":"11047:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11070:4:101","nodeType":"YulIdentifier","src":"11070:4:101"},{"name":"headStart","nativeSrc":"11076:9:101","nodeType":"YulIdentifier","src":"11076:9:101"}],"functionName":{"name":"sub","nativeSrc":"11066:3:101","nodeType":"YulIdentifier","src":"11066:3:101"},"nativeSrc":"11066:20:101","nodeType":"YulFunctionCall","src":"11066:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11040:6:101","nodeType":"YulIdentifier","src":"11040:6:101"},"nativeSrc":"11040:47:101","nodeType":"YulFunctionCall","src":"11040:47:101"},"nativeSrc":"11040:47:101","nodeType":"YulExpressionStatement","src":"11040:47:101"},{"nativeSrc":"11096:139:101","nodeType":"YulAssignment","src":"11096:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11230:4:101","nodeType":"YulIdentifier","src":"11230:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"11104:124:101","nodeType":"YulIdentifier","src":"11104:124:101"},"nativeSrc":"11104:131:101","nodeType":"YulFunctionCall","src":"11104:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11096:4:101","nodeType":"YulIdentifier","src":"11096:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10823:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10974:9:101","nodeType":"YulTypedName","src":"10974:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10989:4:101","nodeType":"YulTypedName","src":"10989:4:101","type":""}],"src":"10823:419:101"},{"body":{"nativeSrc":"11354:73:101","nodeType":"YulBlock","src":"11354:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11376:6:101","nodeType":"YulIdentifier","src":"11376:6:101"},{"kind":"number","nativeSrc":"11384:1:101","nodeType":"YulLiteral","src":"11384:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11372:3:101","nodeType":"YulIdentifier","src":"11372:3:101"},"nativeSrc":"11372:14:101","nodeType":"YulFunctionCall","src":"11372:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"11388:31:101","nodeType":"YulLiteral","src":"11388:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"11365:6:101","nodeType":"YulIdentifier","src":"11365:6:101"},"nativeSrc":"11365:55:101","nodeType":"YulFunctionCall","src":"11365:55:101"},"nativeSrc":"11365:55:101","nodeType":"YulExpressionStatement","src":"11365:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"11248:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11346:6:101","nodeType":"YulTypedName","src":"11346:6:101","type":""}],"src":"11248:179:101"},{"body":{"nativeSrc":"11579:220:101","nodeType":"YulBlock","src":"11579:220:101","statements":[{"nativeSrc":"11589:74:101","nodeType":"YulAssignment","src":"11589:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11655:3:101","nodeType":"YulIdentifier","src":"11655:3:101"},{"kind":"number","nativeSrc":"11660:2:101","nodeType":"YulLiteral","src":"11660:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11596:58:101","nodeType":"YulIdentifier","src":"11596:58:101"},"nativeSrc":"11596:67:101","nodeType":"YulFunctionCall","src":"11596:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11589:3:101","nodeType":"YulIdentifier","src":"11589:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11761:3:101","nodeType":"YulIdentifier","src":"11761:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"11672:88:101","nodeType":"YulIdentifier","src":"11672:88:101"},"nativeSrc":"11672:93:101","nodeType":"YulFunctionCall","src":"11672:93:101"},"nativeSrc":"11672:93:101","nodeType":"YulExpressionStatement","src":"11672:93:101"},{"nativeSrc":"11774:19:101","nodeType":"YulAssignment","src":"11774:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11785:3:101","nodeType":"YulIdentifier","src":"11785:3:101"},{"kind":"number","nativeSrc":"11790:2:101","nodeType":"YulLiteral","src":"11790:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11781:3:101","nodeType":"YulIdentifier","src":"11781:3:101"},"nativeSrc":"11781:12:101","nodeType":"YulFunctionCall","src":"11781:12:101"},"variableNames":[{"name":"end","nativeSrc":"11774:3:101","nodeType":"YulIdentifier","src":"11774:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"11433:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11567:3:101","nodeType":"YulTypedName","src":"11567:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11575:3:101","nodeType":"YulTypedName","src":"11575:3:101","type":""}],"src":"11433:366:101"},{"body":{"nativeSrc":"11976:248:101","nodeType":"YulBlock","src":"11976:248:101","statements":[{"nativeSrc":"11986:26:101","nodeType":"YulAssignment","src":"11986:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11998:9:101","nodeType":"YulIdentifier","src":"11998:9:101"},{"kind":"number","nativeSrc":"12009:2:101","nodeType":"YulLiteral","src":"12009:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11994:3:101","nodeType":"YulIdentifier","src":"11994:3:101"},"nativeSrc":"11994:18:101","nodeType":"YulFunctionCall","src":"11994:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11986:4:101","nodeType":"YulIdentifier","src":"11986:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12033:9:101","nodeType":"YulIdentifier","src":"12033:9:101"},{"kind":"number","nativeSrc":"12044:1:101","nodeType":"YulLiteral","src":"12044:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12029:3:101","nodeType":"YulIdentifier","src":"12029:3:101"},"nativeSrc":"12029:17:101","nodeType":"YulFunctionCall","src":"12029:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12052:4:101","nodeType":"YulIdentifier","src":"12052:4:101"},{"name":"headStart","nativeSrc":"12058:9:101","nodeType":"YulIdentifier","src":"12058:9:101"}],"functionName":{"name":"sub","nativeSrc":"12048:3:101","nodeType":"YulIdentifier","src":"12048:3:101"},"nativeSrc":"12048:20:101","nodeType":"YulFunctionCall","src":"12048:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12022:6:101","nodeType":"YulIdentifier","src":"12022:6:101"},"nativeSrc":"12022:47:101","nodeType":"YulFunctionCall","src":"12022:47:101"},"nativeSrc":"12022:47:101","nodeType":"YulExpressionStatement","src":"12022:47:101"},{"nativeSrc":"12078:139:101","nodeType":"YulAssignment","src":"12078:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12212:4:101","nodeType":"YulIdentifier","src":"12212:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"12086:124:101","nodeType":"YulIdentifier","src":"12086:124:101"},"nativeSrc":"12086:131:101","nodeType":"YulFunctionCall","src":"12086:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12078:4:101","nodeType":"YulIdentifier","src":"12078:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11805:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11956:9:101","nodeType":"YulTypedName","src":"11956:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11971:4:101","nodeType":"YulTypedName","src":"11971:4:101","type":""}],"src":"11805:419:101"},{"body":{"nativeSrc":"12336:118:101","nodeType":"YulBlock","src":"12336:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12358:6:101","nodeType":"YulIdentifier","src":"12358:6:101"},{"kind":"number","nativeSrc":"12366:1:101","nodeType":"YulLiteral","src":"12366:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12354:3:101","nodeType":"YulIdentifier","src":"12354:3:101"},"nativeSrc":"12354:14:101","nodeType":"YulFunctionCall","src":"12354:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"12370:34:101","nodeType":"YulLiteral","src":"12370:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"12347:6:101","nodeType":"YulIdentifier","src":"12347:6:101"},"nativeSrc":"12347:58:101","nodeType":"YulFunctionCall","src":"12347:58:101"},"nativeSrc":"12347:58:101","nodeType":"YulExpressionStatement","src":"12347:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12426:6:101","nodeType":"YulIdentifier","src":"12426:6:101"},{"kind":"number","nativeSrc":"12434:2:101","nodeType":"YulLiteral","src":"12434:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:15:101","nodeType":"YulFunctionCall","src":"12422:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"12439:7:101","nodeType":"YulLiteral","src":"12439:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:32:101","nodeType":"YulFunctionCall","src":"12415:32:101"},"nativeSrc":"12415:32:101","nodeType":"YulExpressionStatement","src":"12415:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"12230:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12328:6:101","nodeType":"YulTypedName","src":"12328:6:101","type":""}],"src":"12230:224:101"},{"body":{"nativeSrc":"12606:220:101","nodeType":"YulBlock","src":"12606:220:101","statements":[{"nativeSrc":"12616:74:101","nodeType":"YulAssignment","src":"12616:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12682:3:101","nodeType":"YulIdentifier","src":"12682:3:101"},{"kind":"number","nativeSrc":"12687:2:101","nodeType":"YulLiteral","src":"12687:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12623:58:101","nodeType":"YulIdentifier","src":"12623:58:101"},"nativeSrc":"12623:67:101","nodeType":"YulFunctionCall","src":"12623:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12616:3:101","nodeType":"YulIdentifier","src":"12616:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12788:3:101","nodeType":"YulIdentifier","src":"12788:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"12699:88:101","nodeType":"YulIdentifier","src":"12699:88:101"},"nativeSrc":"12699:93:101","nodeType":"YulFunctionCall","src":"12699:93:101"},"nativeSrc":"12699:93:101","nodeType":"YulExpressionStatement","src":"12699:93:101"},{"nativeSrc":"12801:19:101","nodeType":"YulAssignment","src":"12801:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12812:3:101","nodeType":"YulIdentifier","src":"12812:3:101"},{"kind":"number","nativeSrc":"12817:2:101","nodeType":"YulLiteral","src":"12817:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12808:3:101","nodeType":"YulIdentifier","src":"12808:3:101"},"nativeSrc":"12808:12:101","nodeType":"YulFunctionCall","src":"12808:12:101"},"variableNames":[{"name":"end","nativeSrc":"12801:3:101","nodeType":"YulIdentifier","src":"12801:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"12460:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12594:3:101","nodeType":"YulTypedName","src":"12594:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12602:3:101","nodeType":"YulTypedName","src":"12602:3:101","type":""}],"src":"12460:366:101"},{"body":{"nativeSrc":"13003:248:101","nodeType":"YulBlock","src":"13003:248:101","statements":[{"nativeSrc":"13013:26:101","nodeType":"YulAssignment","src":"13013:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13025:9:101","nodeType":"YulIdentifier","src":"13025:9:101"},{"kind":"number","nativeSrc":"13036:2:101","nodeType":"YulLiteral","src":"13036:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13021:3:101","nodeType":"YulIdentifier","src":"13021:3:101"},"nativeSrc":"13021:18:101","nodeType":"YulFunctionCall","src":"13021:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13013:4:101","nodeType":"YulIdentifier","src":"13013:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13060:9:101","nodeType":"YulIdentifier","src":"13060:9:101"},{"kind":"number","nativeSrc":"13071:1:101","nodeType":"YulLiteral","src":"13071:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13056:3:101","nodeType":"YulIdentifier","src":"13056:3:101"},"nativeSrc":"13056:17:101","nodeType":"YulFunctionCall","src":"13056:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13079:4:101","nodeType":"YulIdentifier","src":"13079:4:101"},{"name":"headStart","nativeSrc":"13085:9:101","nodeType":"YulIdentifier","src":"13085:9:101"}],"functionName":{"name":"sub","nativeSrc":"13075:3:101","nodeType":"YulIdentifier","src":"13075:3:101"},"nativeSrc":"13075:20:101","nodeType":"YulFunctionCall","src":"13075:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13049:6:101","nodeType":"YulIdentifier","src":"13049:6:101"},"nativeSrc":"13049:47:101","nodeType":"YulFunctionCall","src":"13049:47:101"},"nativeSrc":"13049:47:101","nodeType":"YulExpressionStatement","src":"13049:47:101"},{"nativeSrc":"13105:139:101","nodeType":"YulAssignment","src":"13105:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13239:4:101","nodeType":"YulIdentifier","src":"13239:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"13113:124:101","nodeType":"YulIdentifier","src":"13113:124:101"},"nativeSrc":"13113:131:101","nodeType":"YulFunctionCall","src":"13113:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13105:4:101","nodeType":"YulIdentifier","src":"13105:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12832:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12983:9:101","nodeType":"YulTypedName","src":"12983:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12998:4:101","nodeType":"YulTypedName","src":"12998:4:101","type":""}],"src":"12832:419:101"},{"body":{"nativeSrc":"13363:116:101","nodeType":"YulBlock","src":"13363:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13385:6:101","nodeType":"YulIdentifier","src":"13385:6:101"},{"kind":"number","nativeSrc":"13393:1:101","nodeType":"YulLiteral","src":"13393:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13381:3:101","nodeType":"YulIdentifier","src":"13381:3:101"},"nativeSrc":"13381:14:101","nodeType":"YulFunctionCall","src":"13381:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"13397:34:101","nodeType":"YulLiteral","src":"13397:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"13374:6:101","nodeType":"YulIdentifier","src":"13374:6:101"},"nativeSrc":"13374:58:101","nodeType":"YulFunctionCall","src":"13374:58:101"},"nativeSrc":"13374:58:101","nodeType":"YulExpressionStatement","src":"13374:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13453:6:101","nodeType":"YulIdentifier","src":"13453:6:101"},{"kind":"number","nativeSrc":"13461:2:101","nodeType":"YulLiteral","src":"13461:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13449:3:101","nodeType":"YulIdentifier","src":"13449:3:101"},"nativeSrc":"13449:15:101","nodeType":"YulFunctionCall","src":"13449:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"13466:5:101","nodeType":"YulLiteral","src":"13466:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"13442:6:101","nodeType":"YulIdentifier","src":"13442:6:101"},"nativeSrc":"13442:30:101","nodeType":"YulFunctionCall","src":"13442:30:101"},"nativeSrc":"13442:30:101","nodeType":"YulExpressionStatement","src":"13442:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"13257:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13355:6:101","nodeType":"YulTypedName","src":"13355:6:101","type":""}],"src":"13257:222:101"},{"body":{"nativeSrc":"13631:220:101","nodeType":"YulBlock","src":"13631:220:101","statements":[{"nativeSrc":"13641:74:101","nodeType":"YulAssignment","src":"13641:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13707:3:101","nodeType":"YulIdentifier","src":"13707:3:101"},{"kind":"number","nativeSrc":"13712:2:101","nodeType":"YulLiteral","src":"13712:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13648:58:101","nodeType":"YulIdentifier","src":"13648:58:101"},"nativeSrc":"13648:67:101","nodeType":"YulFunctionCall","src":"13648:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13641:3:101","nodeType":"YulIdentifier","src":"13641:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13813:3:101","nodeType":"YulIdentifier","src":"13813:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"13724:88:101","nodeType":"YulIdentifier","src":"13724:88:101"},"nativeSrc":"13724:93:101","nodeType":"YulFunctionCall","src":"13724:93:101"},"nativeSrc":"13724:93:101","nodeType":"YulExpressionStatement","src":"13724:93:101"},{"nativeSrc":"13826:19:101","nodeType":"YulAssignment","src":"13826:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13837:3:101","nodeType":"YulIdentifier","src":"13837:3:101"},{"kind":"number","nativeSrc":"13842:2:101","nodeType":"YulLiteral","src":"13842:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13833:3:101","nodeType":"YulIdentifier","src":"13833:3:101"},"nativeSrc":"13833:12:101","nodeType":"YulFunctionCall","src":"13833:12:101"},"variableNames":[{"name":"end","nativeSrc":"13826:3:101","nodeType":"YulIdentifier","src":"13826:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"13485:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13619:3:101","nodeType":"YulTypedName","src":"13619:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13627:3:101","nodeType":"YulTypedName","src":"13627:3:101","type":""}],"src":"13485:366:101"},{"body":{"nativeSrc":"14028:248:101","nodeType":"YulBlock","src":"14028:248:101","statements":[{"nativeSrc":"14038:26:101","nodeType":"YulAssignment","src":"14038:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14050:9:101","nodeType":"YulIdentifier","src":"14050:9:101"},{"kind":"number","nativeSrc":"14061:2:101","nodeType":"YulLiteral","src":"14061:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14046:3:101","nodeType":"YulIdentifier","src":"14046:3:101"},"nativeSrc":"14046:18:101","nodeType":"YulFunctionCall","src":"14046:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14038:4:101","nodeType":"YulIdentifier","src":"14038:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14085:9:101","nodeType":"YulIdentifier","src":"14085:9:101"},{"kind":"number","nativeSrc":"14096:1:101","nodeType":"YulLiteral","src":"14096:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14081:3:101","nodeType":"YulIdentifier","src":"14081:3:101"},"nativeSrc":"14081:17:101","nodeType":"YulFunctionCall","src":"14081:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14104:4:101","nodeType":"YulIdentifier","src":"14104:4:101"},{"name":"headStart","nativeSrc":"14110:9:101","nodeType":"YulIdentifier","src":"14110:9:101"}],"functionName":{"name":"sub","nativeSrc":"14100:3:101","nodeType":"YulIdentifier","src":"14100:3:101"},"nativeSrc":"14100:20:101","nodeType":"YulFunctionCall","src":"14100:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14074:6:101","nodeType":"YulIdentifier","src":"14074:6:101"},"nativeSrc":"14074:47:101","nodeType":"YulFunctionCall","src":"14074:47:101"},"nativeSrc":"14074:47:101","nodeType":"YulExpressionStatement","src":"14074:47:101"},{"nativeSrc":"14130:139:101","nodeType":"YulAssignment","src":"14130:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14264:4:101","nodeType":"YulIdentifier","src":"14264:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"14138:124:101","nodeType":"YulIdentifier","src":"14138:124:101"},"nativeSrc":"14138:131:101","nodeType":"YulFunctionCall","src":"14138:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14130:4:101","nodeType":"YulIdentifier","src":"14130:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13857:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14008:9:101","nodeType":"YulTypedName","src":"14008:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14023:4:101","nodeType":"YulTypedName","src":"14023:4:101","type":""}],"src":"13857:419:101"},{"body":{"nativeSrc":"14388:119:101","nodeType":"YulBlock","src":"14388:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14410:6:101","nodeType":"YulIdentifier","src":"14410:6:101"},{"kind":"number","nativeSrc":"14418:1:101","nodeType":"YulLiteral","src":"14418:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14406:3:101","nodeType":"YulIdentifier","src":"14406:3:101"},"nativeSrc":"14406:14:101","nodeType":"YulFunctionCall","src":"14406:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"14422:34:101","nodeType":"YulLiteral","src":"14422:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"14399:6:101","nodeType":"YulIdentifier","src":"14399:6:101"},"nativeSrc":"14399:58:101","nodeType":"YulFunctionCall","src":"14399:58:101"},"nativeSrc":"14399:58:101","nodeType":"YulExpressionStatement","src":"14399:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14478:6:101","nodeType":"YulIdentifier","src":"14478:6:101"},{"kind":"number","nativeSrc":"14486:2:101","nodeType":"YulLiteral","src":"14486:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14474:3:101","nodeType":"YulIdentifier","src":"14474:3:101"},"nativeSrc":"14474:15:101","nodeType":"YulFunctionCall","src":"14474:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"14491:8:101","nodeType":"YulLiteral","src":"14491:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"14467:6:101","nodeType":"YulIdentifier","src":"14467:6:101"},"nativeSrc":"14467:33:101","nodeType":"YulFunctionCall","src":"14467:33:101"},"nativeSrc":"14467:33:101","nodeType":"YulExpressionStatement","src":"14467:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"14282:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14380:6:101","nodeType":"YulTypedName","src":"14380:6:101","type":""}],"src":"14282:225:101"},{"body":{"nativeSrc":"14659:220:101","nodeType":"YulBlock","src":"14659:220:101","statements":[{"nativeSrc":"14669:74:101","nodeType":"YulAssignment","src":"14669:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14735:3:101","nodeType":"YulIdentifier","src":"14735:3:101"},{"kind":"number","nativeSrc":"14740:2:101","nodeType":"YulLiteral","src":"14740:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14676:58:101","nodeType":"YulIdentifier","src":"14676:58:101"},"nativeSrc":"14676:67:101","nodeType":"YulFunctionCall","src":"14676:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14669:3:101","nodeType":"YulIdentifier","src":"14669:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14841:3:101","nodeType":"YulIdentifier","src":"14841:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"14752:88:101","nodeType":"YulIdentifier","src":"14752:88:101"},"nativeSrc":"14752:93:101","nodeType":"YulFunctionCall","src":"14752:93:101"},"nativeSrc":"14752:93:101","nodeType":"YulExpressionStatement","src":"14752:93:101"},{"nativeSrc":"14854:19:101","nodeType":"YulAssignment","src":"14854:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14865:3:101","nodeType":"YulIdentifier","src":"14865:3:101"},{"kind":"number","nativeSrc":"14870:2:101","nodeType":"YulLiteral","src":"14870:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14861:3:101","nodeType":"YulIdentifier","src":"14861:3:101"},"nativeSrc":"14861:12:101","nodeType":"YulFunctionCall","src":"14861:12:101"},"variableNames":[{"name":"end","nativeSrc":"14854:3:101","nodeType":"YulIdentifier","src":"14854:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"14513:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14647:3:101","nodeType":"YulTypedName","src":"14647:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14655:3:101","nodeType":"YulTypedName","src":"14655:3:101","type":""}],"src":"14513:366:101"},{"body":{"nativeSrc":"15056:248:101","nodeType":"YulBlock","src":"15056:248:101","statements":[{"nativeSrc":"15066:26:101","nodeType":"YulAssignment","src":"15066:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15078:9:101","nodeType":"YulIdentifier","src":"15078:9:101"},{"kind":"number","nativeSrc":"15089:2:101","nodeType":"YulLiteral","src":"15089:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15074:3:101","nodeType":"YulIdentifier","src":"15074:3:101"},"nativeSrc":"15074:18:101","nodeType":"YulFunctionCall","src":"15074:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15066:4:101","nodeType":"YulIdentifier","src":"15066:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15113:9:101","nodeType":"YulIdentifier","src":"15113:9:101"},{"kind":"number","nativeSrc":"15124:1:101","nodeType":"YulLiteral","src":"15124:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15109:3:101","nodeType":"YulIdentifier","src":"15109:3:101"},"nativeSrc":"15109:17:101","nodeType":"YulFunctionCall","src":"15109:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15132:4:101","nodeType":"YulIdentifier","src":"15132:4:101"},{"name":"headStart","nativeSrc":"15138:9:101","nodeType":"YulIdentifier","src":"15138:9:101"}],"functionName":{"name":"sub","nativeSrc":"15128:3:101","nodeType":"YulIdentifier","src":"15128:3:101"},"nativeSrc":"15128:20:101","nodeType":"YulFunctionCall","src":"15128:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15102:6:101","nodeType":"YulIdentifier","src":"15102:6:101"},"nativeSrc":"15102:47:101","nodeType":"YulFunctionCall","src":"15102:47:101"},"nativeSrc":"15102:47:101","nodeType":"YulExpressionStatement","src":"15102:47:101"},{"nativeSrc":"15158:139:101","nodeType":"YulAssignment","src":"15158:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15292:4:101","nodeType":"YulIdentifier","src":"15292:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"15166:124:101","nodeType":"YulIdentifier","src":"15166:124:101"},"nativeSrc":"15166:131:101","nodeType":"YulFunctionCall","src":"15166:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15158:4:101","nodeType":"YulIdentifier","src":"15158:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14885:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15036:9:101","nodeType":"YulTypedName","src":"15036:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15051:4:101","nodeType":"YulTypedName","src":"15051:4:101","type":""}],"src":"14885:419:101"},{"body":{"nativeSrc":"15416:75:101","nodeType":"YulBlock","src":"15416:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15438:6:101","nodeType":"YulIdentifier","src":"15438:6:101"},{"kind":"number","nativeSrc":"15446:1:101","nodeType":"YulLiteral","src":"15446:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15434:3:101","nodeType":"YulIdentifier","src":"15434:3:101"},"nativeSrc":"15434:14:101","nodeType":"YulFunctionCall","src":"15434:14:101"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"15450:33:101","nodeType":"YulLiteral","src":"15450:33:101","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"15427:6:101","nodeType":"YulIdentifier","src":"15427:6:101"},"nativeSrc":"15427:57:101","nodeType":"YulFunctionCall","src":"15427:57:101"},"nativeSrc":"15427:57:101","nodeType":"YulExpressionStatement","src":"15427:57:101"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"15310:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15408:6:101","nodeType":"YulTypedName","src":"15408:6:101","type":""}],"src":"15310:181:101"},{"body":{"nativeSrc":"15643:220:101","nodeType":"YulBlock","src":"15643:220:101","statements":[{"nativeSrc":"15653:74:101","nodeType":"YulAssignment","src":"15653:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"15719:3:101","nodeType":"YulIdentifier","src":"15719:3:101"},{"kind":"number","nativeSrc":"15724:2:101","nodeType":"YulLiteral","src":"15724:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15660:58:101","nodeType":"YulIdentifier","src":"15660:58:101"},"nativeSrc":"15660:67:101","nodeType":"YulFunctionCall","src":"15660:67:101"},"variableNames":[{"name":"pos","nativeSrc":"15653:3:101","nodeType":"YulIdentifier","src":"15653:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15825:3:101","nodeType":"YulIdentifier","src":"15825:3:101"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"15736:88:101","nodeType":"YulIdentifier","src":"15736:88:101"},"nativeSrc":"15736:93:101","nodeType":"YulFunctionCall","src":"15736:93:101"},"nativeSrc":"15736:93:101","nodeType":"YulExpressionStatement","src":"15736:93:101"},{"nativeSrc":"15838:19:101","nodeType":"YulAssignment","src":"15838:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"15849:3:101","nodeType":"YulIdentifier","src":"15849:3:101"},{"kind":"number","nativeSrc":"15854:2:101","nodeType":"YulLiteral","src":"15854:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15845:3:101","nodeType":"YulIdentifier","src":"15845:3:101"},"nativeSrc":"15845:12:101","nodeType":"YulFunctionCall","src":"15845:12:101"},"variableNames":[{"name":"end","nativeSrc":"15838:3:101","nodeType":"YulIdentifier","src":"15838:3:101"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"15497:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15631:3:101","nodeType":"YulTypedName","src":"15631:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15639:3:101","nodeType":"YulTypedName","src":"15639:3:101","type":""}],"src":"15497:366:101"},{"body":{"nativeSrc":"16040:248:101","nodeType":"YulBlock","src":"16040:248:101","statements":[{"nativeSrc":"16050:26:101","nodeType":"YulAssignment","src":"16050:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"16062:9:101","nodeType":"YulIdentifier","src":"16062:9:101"},{"kind":"number","nativeSrc":"16073:2:101","nodeType":"YulLiteral","src":"16073:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16058:3:101","nodeType":"YulIdentifier","src":"16058:3:101"},"nativeSrc":"16058:18:101","nodeType":"YulFunctionCall","src":"16058:18:101"},"variableNames":[{"name":"tail","nativeSrc":"16050:4:101","nodeType":"YulIdentifier","src":"16050:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16097:9:101","nodeType":"YulIdentifier","src":"16097:9:101"},{"kind":"number","nativeSrc":"16108:1:101","nodeType":"YulLiteral","src":"16108:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16093:3:101","nodeType":"YulIdentifier","src":"16093:3:101"},"nativeSrc":"16093:17:101","nodeType":"YulFunctionCall","src":"16093:17:101"},{"arguments":[{"name":"tail","nativeSrc":"16116:4:101","nodeType":"YulIdentifier","src":"16116:4:101"},{"name":"headStart","nativeSrc":"16122:9:101","nodeType":"YulIdentifier","src":"16122:9:101"}],"functionName":{"name":"sub","nativeSrc":"16112:3:101","nodeType":"YulIdentifier","src":"16112:3:101"},"nativeSrc":"16112:20:101","nodeType":"YulFunctionCall","src":"16112:20:101"}],"functionName":{"name":"mstore","nativeSrc":"16086:6:101","nodeType":"YulIdentifier","src":"16086:6:101"},"nativeSrc":"16086:47:101","nodeType":"YulFunctionCall","src":"16086:47:101"},"nativeSrc":"16086:47:101","nodeType":"YulExpressionStatement","src":"16086:47:101"},{"nativeSrc":"16142:139:101","nodeType":"YulAssignment","src":"16142:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"16276:4:101","nodeType":"YulIdentifier","src":"16276:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"16150:124:101","nodeType":"YulIdentifier","src":"16150:124:101"},"nativeSrc":"16150:131:101","nodeType":"YulFunctionCall","src":"16150:131:101"},"variableNames":[{"name":"tail","nativeSrc":"16142:4:101","nodeType":"YulIdentifier","src":"16142:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15869:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16020:9:101","nodeType":"YulTypedName","src":"16020:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16035:4:101","nodeType":"YulTypedName","src":"16035:4:101","type":""}],"src":"15869:419:101"},{"body":{"nativeSrc":"16400:76:101","nodeType":"YulBlock","src":"16400:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16422:6:101","nodeType":"YulIdentifier","src":"16422:6:101"},{"kind":"number","nativeSrc":"16430:1:101","nodeType":"YulLiteral","src":"16430:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16418:3:101","nodeType":"YulIdentifier","src":"16418:3:101"},"nativeSrc":"16418:14:101","nodeType":"YulFunctionCall","src":"16418:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"16434:34:101","nodeType":"YulLiteral","src":"16434:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"16411:6:101","nodeType":"YulIdentifier","src":"16411:6:101"},"nativeSrc":"16411:58:101","nodeType":"YulFunctionCall","src":"16411:58:101"},"nativeSrc":"16411:58:101","nodeType":"YulExpressionStatement","src":"16411:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"16294:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16392:6:101","nodeType":"YulTypedName","src":"16392:6:101","type":""}],"src":"16294:182:101"},{"body":{"nativeSrc":"16628:220:101","nodeType":"YulBlock","src":"16628:220:101","statements":[{"nativeSrc":"16638:74:101","nodeType":"YulAssignment","src":"16638:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"16704:3:101","nodeType":"YulIdentifier","src":"16704:3:101"},{"kind":"number","nativeSrc":"16709:2:101","nodeType":"YulLiteral","src":"16709:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16645:58:101","nodeType":"YulIdentifier","src":"16645:58:101"},"nativeSrc":"16645:67:101","nodeType":"YulFunctionCall","src":"16645:67:101"},"variableNames":[{"name":"pos","nativeSrc":"16638:3:101","nodeType":"YulIdentifier","src":"16638:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16810:3:101","nodeType":"YulIdentifier","src":"16810:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"16721:88:101","nodeType":"YulIdentifier","src":"16721:88:101"},"nativeSrc":"16721:93:101","nodeType":"YulFunctionCall","src":"16721:93:101"},"nativeSrc":"16721:93:101","nodeType":"YulExpressionStatement","src":"16721:93:101"},{"nativeSrc":"16823:19:101","nodeType":"YulAssignment","src":"16823:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"16834:3:101","nodeType":"YulIdentifier","src":"16834:3:101"},{"kind":"number","nativeSrc":"16839:2:101","nodeType":"YulLiteral","src":"16839:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16830:3:101","nodeType":"YulIdentifier","src":"16830:3:101"},"nativeSrc":"16830:12:101","nodeType":"YulFunctionCall","src":"16830:12:101"},"variableNames":[{"name":"end","nativeSrc":"16823:3:101","nodeType":"YulIdentifier","src":"16823:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"16482:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16616:3:101","nodeType":"YulTypedName","src":"16616:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16624:3:101","nodeType":"YulTypedName","src":"16624:3:101","type":""}],"src":"16482:366:101"},{"body":{"nativeSrc":"17025:248:101","nodeType":"YulBlock","src":"17025:248:101","statements":[{"nativeSrc":"17035:26:101","nodeType":"YulAssignment","src":"17035:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"17047:9:101","nodeType":"YulIdentifier","src":"17047:9:101"},{"kind":"number","nativeSrc":"17058:2:101","nodeType":"YulLiteral","src":"17058:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17043:3:101","nodeType":"YulIdentifier","src":"17043:3:101"},"nativeSrc":"17043:18:101","nodeType":"YulFunctionCall","src":"17043:18:101"},"variableNames":[{"name":"tail","nativeSrc":"17035:4:101","nodeType":"YulIdentifier","src":"17035:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17082:9:101","nodeType":"YulIdentifier","src":"17082:9:101"},{"kind":"number","nativeSrc":"17093:1:101","nodeType":"YulLiteral","src":"17093:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17078:3:101","nodeType":"YulIdentifier","src":"17078:3:101"},"nativeSrc":"17078:17:101","nodeType":"YulFunctionCall","src":"17078:17:101"},{"arguments":[{"name":"tail","nativeSrc":"17101:4:101","nodeType":"YulIdentifier","src":"17101:4:101"},{"name":"headStart","nativeSrc":"17107:9:101","nodeType":"YulIdentifier","src":"17107:9:101"}],"functionName":{"name":"sub","nativeSrc":"17097:3:101","nodeType":"YulIdentifier","src":"17097:3:101"},"nativeSrc":"17097:20:101","nodeType":"YulFunctionCall","src":"17097:20:101"}],"functionName":{"name":"mstore","nativeSrc":"17071:6:101","nodeType":"YulIdentifier","src":"17071:6:101"},"nativeSrc":"17071:47:101","nodeType":"YulFunctionCall","src":"17071:47:101"},"nativeSrc":"17071:47:101","nodeType":"YulExpressionStatement","src":"17071:47:101"},{"nativeSrc":"17127:139:101","nodeType":"YulAssignment","src":"17127:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"17261:4:101","nodeType":"YulIdentifier","src":"17261:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"17135:124:101","nodeType":"YulIdentifier","src":"17135:124:101"},"nativeSrc":"17135:131:101","nodeType":"YulFunctionCall","src":"17135:131:101"},"variableNames":[{"name":"tail","nativeSrc":"17127:4:101","nodeType":"YulIdentifier","src":"17127:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16854:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17005:9:101","nodeType":"YulTypedName","src":"17005:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17020:4:101","nodeType":"YulTypedName","src":"17020:4:101","type":""}],"src":"16854:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"8350":[{"length":32,"start":366}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610106575f3560e01c806370a082311161009e578063a457c2d71161006e578063a457c2d71461021c578063a9059cbb1461022f578063db068e0e14610242578063dd62ed3e14610255578063f2fde38b14610268575f80fd5b806370a08231146101cb578063715018a6146101f35780638da5cb5b146101fb57806395d89b4114610214575f80fd5b8063313ce567116100d9578063313ce5671461016c578063395093511461019a5780633ba0b9a9146101ad57806357915897146101b6575f80fd5b806306fdde031461010a578063095ea7b31461012857806318160ddd1461014857806323b872dd14610159575b5f80fd5b61011261027b565b60405161011f919061078b565b60405180910390f35b61013b6101363660046107e2565b61030b565b60405161011f9190610826565b6002545b60405161011f919061083a565b61013b610167366004610848565b610324565b7f000000000000000000000000000000000000000000000000000000000000000060405161011f919061089d565b61013b6101a83660046107e2565b610347565b61014c60065481565b6101c96101c43660046108ab565b610368565b005b61014c6101d93660046108d1565b6001600160a01b03165f9081526020819052604090205490565b6101c9610375565b6005546001600160a01b031660405161011f91906108f8565b610112610388565b61013b61022a3660046107e2565b610397565b61013b61023d3660046107e2565b6103dc565b6101c96102503660046108ab565b6103e9565b61014c610263366004610906565b6103f6565b6101c96102763660046108d1565b610420565b60606003805461028a9061094a565b80601f01602080910402602001604051908101604052809291908181526020018280546102b69061094a565b80156103015780601f106102d857610100808354040283529160200191610301565b820191905f5260205f20905b8154815290600101906020018083116102e457829003601f168201915b5050505050905090565b5f33610318818585610457565b60019150505b92915050565b5f3361033185828561050a565b61033c858585610552565b506001949350505050565b5f3361031881858561035983836103f6565b610363919061098a565b610457565b6103723382610640565b50565b61037d6106d4565b6103865f6106fe565b565b60606004805461028a9061094a565b5f33816103a482866103f6565b9050838110156103cf5760405162461bcd60e51b81526004016103c6906109e1565b60405180910390fd5b61033c8286868403610457565b5f33610318818585610552565b6103f16106d4565b600655565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6104286106d4565b6001600160a01b03811661044e5760405162461bcd60e51b81526004016103c690610a33565b610372816106fe565b6001600160a01b03831661047d5760405162461bcd60e51b81526004016103c690610a83565b6001600160a01b0382166104a35760405162461bcd60e51b81526004016103c690610ad1565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104fd90859061083a565b60405180910390a3505050565b5f61051584846103f6565b90505f19811461054c578181101561053f5760405162461bcd60e51b81526004016103c690610b17565b61054c8484848403610457565b50505050565b6001600160a01b0383166105785760405162461bcd60e51b81526004016103c690610b68565b6001600160a01b03821661059e5760405162461bcd60e51b81526004016103c690610bb7565b6001600160a01b0383165f90815260208190526040902054818110156105d65760405162461bcd60e51b81526004016103c690610c09565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061063390869061083a565b60405180910390a361054c565b6001600160a01b0382166106665760405162461bcd60e51b81526004016103c690610c4c565b8060025f828254610677919061098a565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106c890859061083a565b60405180910390a35050565b6005546001600160a01b031633146103865760405162461bcd60e51b81526004016103c690610c8d565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8281835e505f910152565b5f610763825190565b80845260208401935061077a81856020860161074f565b601f01601f19169290920192915050565b6020808252810161079c818461075a565b9392505050565b5f6001600160a01b03821661031e565b6107bc816107a3565b8114610372575f80fd5b803561031e816107b3565b806107bc565b803561031e816107d1565b5f80604083850312156107f6576107f65f80fd5b5f61080185856107c6565b9250506020610812858286016107d7565b9150509250929050565b8015155b82525050565b6020810161031e828461081c565b80610820565b6020810161031e8284610834565b5f805f6060848603121561085d5761085d5f80fd5b5f61086886866107c6565b9350506020610879868287016107c6565b925050604061088a868287016107d7565b9150509250925092565b60ff8116610820565b6020810161031e8284610894565b5f602082840312156108be576108be5f80fd5b5f6108c984846107d7565b949350505050565b5f602082840312156108e4576108e45f80fd5b5f6108c984846107c6565b610820816107a3565b6020810161031e82846108ef565b5f806040838503121561091a5761091a5f80fd5b5f61092585856107c6565b9250506020610812858286016107c6565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061095e57607f821691505b60208210810361097057610970610936565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561031e5761031e610976565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161031e8161099d565b602681525f602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015291506109da565b6020808252810161031e816109f1565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015291506109da565b6020808252810161031e81610a43565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015291506109da565b6020808252810161031e81610a93565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161031e81610ae1565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015291506109da565b6020808252810161031e81610b27565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015291506109da565b6020808252810161031e81610b78565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b602082015291506109da565b6020808252810161031e81610bc7565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610b10565b6020808252810161031e81610c19565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081525f610b10565b6020808252810161031e81610c5c56fea2646970667358221220f8bb751701f45fa682d768ca902189bcdff7949dabbed8d2f7d4a0dbfa5c0ba964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x106 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x9E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0xDB068E0E EQ PUSH2 0x242 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x268 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x214 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD9 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x3BA0B9A9 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x1B6 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x159 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x112 PUSH2 0x27B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x78B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13B PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x30B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH2 0x13B PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x848 JUMP JUMPDEST PUSH2 0x324 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x89D JUMP JUMPDEST PUSH2 0x13B PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x347 JUMP JUMPDEST PUSH2 0x14C PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x1C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14C PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x11F SWAP2 SWAP1 PUSH2 0x8F8 JUMP JUMPDEST PUSH2 0x112 PUSH2 0x388 JUMP JUMPDEST PUSH2 0x13B PUSH2 0x22A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x397 JUMP JUMPDEST PUSH2 0x13B PUSH2 0x23D CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x3DC JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x3E9 JUMP JUMPDEST PUSH2 0x14C PUSH2 0x263 CALLDATASIZE PUSH1 0x4 PUSH2 0x906 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST PUSH2 0x1C9 PUSH2 0x276 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D1 JUMP JUMPDEST PUSH2 0x420 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x28A SWAP1 PUSH2 0x94A 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 0x2B6 SWAP1 PUSH2 0x94A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x301 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x301 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x318 DUP2 DUP6 DUP6 PUSH2 0x457 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x331 DUP6 DUP3 DUP6 PUSH2 0x50A JUMP JUMPDEST PUSH2 0x33C DUP6 DUP6 DUP6 PUSH2 0x552 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x318 DUP2 DUP6 DUP6 PUSH2 0x359 DUP4 DUP4 PUSH2 0x3F6 JUMP JUMPDEST PUSH2 0x363 SWAP2 SWAP1 PUSH2 0x98A JUMP JUMPDEST PUSH2 0x457 JUMP JUMPDEST PUSH2 0x372 CALLER DUP3 PUSH2 0x640 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x37D PUSH2 0x6D4 JUMP JUMPDEST PUSH2 0x386 PUSH0 PUSH2 0x6FE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x28A SWAP1 PUSH2 0x94A JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x3A4 DUP3 DUP7 PUSH2 0x3F6 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0x9E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33C DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x457 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x318 DUP2 DUP6 DUP6 PUSH2 0x552 JUMP JUMPDEST PUSH2 0x3F1 PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x428 PUSH2 0x6D4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x44E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xA33 JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x47D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xA83 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xAD1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x4FD SWAP1 DUP6 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x515 DUP5 DUP5 PUSH2 0x3F6 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x54C JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x53F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xB17 JUMP JUMPDEST PUSH2 0x54C DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x457 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x578 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xB68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x59E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xBB7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xC09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x633 SWAP1 DUP7 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x54C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x666 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xC4C JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x677 SWAP2 SWAP1 PUSH2 0x98A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x6C8 SWAP1 DUP6 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x386 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C6 SWAP1 PUSH2 0xC8D JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x763 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x77A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x74F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x79C DUP2 DUP5 PUSH2 0x75A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x31E JUMP JUMPDEST PUSH2 0x7BC DUP2 PUSH2 0x7A3 JUMP JUMPDEST DUP2 EQ PUSH2 0x372 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x31E DUP2 PUSH2 0x7B3 JUMP JUMPDEST DUP1 PUSH2 0x7BC JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x31E DUP2 PUSH2 0x7D1 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7F6 JUMPI PUSH2 0x7F6 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x801 DUP6 DUP6 PUSH2 0x7C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x812 DUP6 DUP3 DUP7 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x81C JUMP JUMPDEST DUP1 PUSH2 0x820 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x834 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x85D JUMPI PUSH2 0x85D PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x868 DUP7 DUP7 PUSH2 0x7C6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x879 DUP7 DUP3 DUP8 ADD PUSH2 0x7C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x88A DUP7 DUP3 DUP8 ADD PUSH2 0x7D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x820 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x894 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BE JUMPI PUSH2 0x8BE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8C9 DUP5 DUP5 PUSH2 0x7D7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8E4 JUMPI PUSH2 0x8E4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x8C9 DUP5 DUP5 PUSH2 0x7C6 JUMP JUMPDEST PUSH2 0x820 DUP2 PUSH2 0x7A3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x31E DUP3 DUP5 PUSH2 0x8EF JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x91A JUMPI PUSH2 0x91A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x925 DUP6 DUP6 PUSH2 0x7C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x812 DUP6 DUP3 DUP7 ADD PUSH2 0x7C6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x95E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x970 JUMPI PUSH2 0x970 PUSH2 0x936 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x31E JUMPI PUSH2 0x31E PUSH2 0x976 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0x99D JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xA43 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xA93 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xAE1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xB78 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9DA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0xB10 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xC19 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH0 PUSH2 0xB10 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x31E DUP2 PUSH2 0xC5C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 0xBB PUSH22 0x1701F45FA682D768CA902189BCDFF7949DABBED8D2F7 0xD4 LOG0 0xDB STATICCALL TLOAD SIGNEXTEND 0xA9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"306:586:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;777:113:83:-;874:9;777:113;;;;;;:::i;5854:234:11:-;;;;;;:::i;:::-;;:::i;396:36:83:-;;;;;;588:83;;;;;;:::i;:::-;;:::i;:::-;;3419:125:11;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;1824:101:10;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:10;1201:85;;;;;;:::i;2369:102:11:-;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;677:94:83:-;;;;;;:::i;:::-;;:::i;3987:149:11:-;;;;;;:::i;:::-;;:::i;2074:198:10:-;;;;;;:::i;:::-;;:::i;2158:98:11:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:11;;5203:256;-1:-1:-1;;;;5203:256:11:o;5854:234::-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;588:83:83:-;639:25;645:10;657:6;639:5;:25::i;:::-;588:83;:::o;1824:101:10:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2369:102:11:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;677:94:83:-;1094:13:10;:11;:13::i;:::-;745:12:83::1;:19:::0;677:94::o;3987:149:11:-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;2074:198:10:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:10;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:10::1;;;;;;;:::i;:::-;2237:28;2256:8;2237:18;:28::i;10457:340:11:-:0;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;8520:535;-1:-1:-1;;;;;8603:21:11;;8595:65;;;;-1:-1:-1;;;8595:65:11;;;;;;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:11;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;8520:535;;:::o;1359:130:10:-;1273:6;;-1:-1:-1;;;;;1273:6:10;734:10:14;1422:23:10;1414:68;;;;-1:-1:-1;;;1414:68:10;;;;;;;:::i;2426:187::-;2518:6;;;-1:-1:-1;;;;;2534:17:10;;;-1:-1:-1;;;;;;2534:17:10;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;287:139:101:-;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;:::-;1143:86;923:313;-1:-1:-1;;;923:313:101:o;1701:96::-;1738:7;-1:-1:-1;;;;;1635:54:101;;1767:24;1569:126;1803:122;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1931:139;2002:20;;2031:33;2002:20;2031:33;:::i;2159:122::-;2250:5;2232:24;2076:77;2287:139;2358:20;;2387:33;2358:20;2387:33;:::i;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;306:586:83;;;2563:79:101;2683:1;2708:53;2753:7;2733:9;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;3008:109::-;2982:13;;2975:21;3089;3084:3;3077:34;3008:109;;:::o;3123:210::-;3248:2;3233:18;;3261:65;3237:9;3299:6;3261:65;:::i;3339:118::-;3444:5;3426:24;2076:77;3463:222;3594:2;3579:18;;3607:71;3583:9;3651:6;3607:71;:::i;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;306:586:83;;;3839:79:101;3959:1;3984:53;4029:7;4009:9;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4408:112::-;4391:4;4380:16;;4491:22;4316:86;4526:214;4653:2;4638:18;;4666:67;4642:9;4706:6;4666:67;:::i;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;306:586:83;;;4860:79:101;4980:1;5005:53;5050:7;5030:9;5005:53;:::i;:::-;4995:63;4746:329;-1:-1:-1;;;;4746:329:101:o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;306:586:83;;;5195:79:101;5315:1;5340:53;5385:7;5365:9;5340:53;:::i;5416:118::-;5503:24;5521:5;5503:24;:::i;5540:222::-;5671:2;5656:18;;5684:71;5660:9;5728:6;5684:71;:::i;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;306:586:83;;;5899:79:101;6019:1;6044:53;6089:7;6069:9;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;6248:180::-;-1:-1:-1;;;6293:1:101;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:320;6515:1;6505:12;;6562:1;6552:12;;;6573:81;;6639:4;6631:6;6627:17;6617:27;;6573:81;6701:2;6693:6;6690:14;6670:18;6667:38;6664:84;;6720:18;;:::i;:::-;6485:269;6434:320;;;:::o;6760:180::-;-1:-1:-1;;;6805:1:101;6798:88;6905:4;6902:1;6895:15;6929:4;6926:1;6919:15;6946:191;7075:9;;;7097:10;;;7094:36;;;7110:18;;:::i;7373:366::-;7600:2;218:19;;7515:3;270:4;261:14;;7283:34;7260:58;;-1:-1:-1;;;7347:2:101;7335:15;;7328:32;7529:74;-1:-1:-1;7612:93:101;-1:-1:-1;7730:2:101;7721:12;;7373:366::o;7745:419::-;7949:2;7962:47;;;7934:18;;8026:131;7934:18;8026:131;:::i;8401:366::-;8628:2;218:19;;8543:3;270:4;261:14;;8310:34;8287:58;;-1:-1:-1;;;8374:2:101;8362:15;;8355:33;8557:74;-1:-1:-1;8640:93:101;8170:225;8773:419;8977:2;8990:47;;;8962:18;;9054:131;8962:18;9054:131;:::i;9427:366::-;9654:2;218:19;;9569:3;270:4;261:14;;9338:34;9315:58;;-1:-1:-1;;;9402:2:101;9390:15;;9383:31;9583:74;-1:-1:-1;9666:93:101;9198:223;9799:419;10003:2;10016:47;;;9988:18;;10080:131;9988:18;10080:131;:::i;10451:366::-;10678:2;218:19;;10593:3;270:4;261:14;;10364:34;10341:58;;-1:-1:-1;;;10428:2:101;10416:15;;10409:29;10607:74;-1:-1:-1;10690:93:101;10224:221;10823:419;11027:2;11040:47;;;11012:18;;11104:131;11012:18;11104:131;:::i;11433:366::-;11660:2;218:19;;11575:3;270:4;261:14;;11388:31;11365:55;;11589:74;-1:-1:-1;11672:93:101;-1:-1:-1;11790:2:101;11781:12;;11433:366::o;11805:419::-;12009:2;12022:47;;;11994:18;;12086:131;11994:18;12086:131;:::i;12460:366::-;12687:2;218:19;;12602:3;270:4;261:14;;12370:34;12347:58;;-1:-1:-1;;;12434:2:101;12422:15;;12415:32;12616:74;-1:-1:-1;12699:93:101;12230:224;12832:419;13036:2;13049:47;;;13021:18;;13113:131;13021:18;13113:131;:::i;13485:366::-;13712:2;218:19;;13627:3;270:4;261:14;;13397:34;13374:58;;-1:-1:-1;;;13461:2:101;13449:15;;13442:30;13641:74;-1:-1:-1;13724:93:101;13257:222;13857:419;14061:2;14074:47;;;14046:18;;14138:131;14046:18;14138:131;:::i;14513:366::-;14740:2;218:19;;14655:3;270:4;261:14;;14422:34;14399:58;;-1:-1:-1;;;14486:2:101;14474:15;;14467:33;14669:74;-1:-1:-1;14752:93:101;14282:225;14885:419;15089:2;15102:47;;;15074:18;;15166:131;15074:18;15166:131;:::i;15497:366::-;15724:2;218:19;;15639:3;270:4;261:14;;15450:33;15427:57;;15653:74;-1:-1:-1;15736:93:101;15310:181;15869:419;16073:2;16086:47;;;16058:18;;16150:131;16058:18;16150:131;:::i;16482:366::-;16709:2;218:19;;;16434:34;261:14;;16411:58;;;16624:3;16721:93;16294:182;16854:419;17058:2;17071:47;;;17043:18;;17135:131;17043:18;17135:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"656600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"infinite","decreaseAllowance(address,uint256)":"infinite","exchangeRate()":"2438","faucet(uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","owner()":"infinite","renounceOwnership()":"infinite","setExchangeRate(uint256)":"infinite","symbol()":"infinite","totalSupply()":"2425","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","exchangeRate()":"3ba0b9a9","faucet(uint256)":"57915897","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setExchangeRate(uint256)":"db068e0e","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"faucet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"}],\"name\":\"setExchangeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"contracts/test/MockWBETH.sol\":\"MockWBETH\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/interfaces/IWBETH.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IWBETH {\\n    function exchangeRate() external view returns (uint256);\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0xaff923809f41bf7bc321d5285ddf2c03856a3cf0050c005154e31e811161d7db\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockWBETH.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { ERC20 } from \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\nimport { IWBETH } from \\\"../interfaces/IWBETH.sol\\\";\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\ncontract MockWBETH is ERC20, Ownable, IWBETH {\\n    uint8 private immutable _decimals;\\n    uint256 public override exchangeRate;\\n\\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) Ownable() {\\n        _decimals = decimals_;\\n    }\\n\\n    function faucet(uint256 amount) external {\\n        _mint(msg.sender, amount);\\n    }\\n\\n    function setExchangeRate(uint256 rate) external onlyOwner {\\n        exchangeRate = rate;\\n    }\\n\\n    function decimals() public view virtual override(ERC20, IWBETH) returns (uint8) {\\n        return _decimals;\\n    }\\n}\\n\",\"keccak256\":\"0xf773f0b8ff5b722fec7922da98c574203d0c5c0c5dcff3be4bfae5e006d836eb\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"contracts/test/MockWBETH.sol:MockWBETH","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"contracts/test/MockWBETH.sol:MockWBETH","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"contracts/test/MockWBETH.sol:MockWBETH","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"contracts/test/MockWBETH.sol:MockWBETH","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"contracts/test/MockWBETH.sol:MockWBETH","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":1101,"contract":"contracts/test/MockWBETH.sol:MockWBETH","label":"_owner","offset":0,"slot":"5","type":"t_address"},{"astId":8353,"contract":"contracts/test/MockWBETH.sol:MockWBETH","label":"exchangeRate","offset":0,"slot":"6","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/PancakePairHarness.sol":{"Math":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220c31b2689dcabed9e101ad9a72ea0b4c879dc7f99e72a38d544e20d9a4a60870064736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 SHL 0x26 DUP10 0xDC 0xAB 0xED SWAP15 LT BYTE 0xD9 0xA7 0x2E LOG0 0xB4 0xC8 PUSH26 0xDC7F99E72A38D544E20D9A4A60870064736F6C63430008190033 ","sourceMap":"119:540:84:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;119:540:84;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220c31b2689dcabed9e101ad9a72ea0b4c879dc7f99e72a38d544e20d9a4a60870064736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 SHL 0x26 DUP10 0xDC 0xAB 0xED SWAP15 LT BYTE 0xD9 0xA7 0x2E LOG0 0xB4 0xC8 PUSH26 0xDC7F99E72A38D544E20D9A4A60870064736F6C63430008190033 ","sourceMap":"119:540:84:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"min(uint256,uint256)":"infinite","sqrt(uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/PancakePairHarness.sol\":\"Math\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/test/PancakePairHarness.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n// a library for performing various math operations\\n\\nlibrary Math {\\n    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\\n        z = x < y ? x : y;\\n    }\\n\\n    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\\n    function sqrt(uint256 y) internal pure returns (uint256 z) {\\n        if (y > 3) {\\n            z = y;\\n            uint256 x = y / 2 + 1;\\n            while (x < z) {\\n                z = x;\\n                x = (y / x + x) / 2;\\n            }\\n        } else if (y != 0) {\\n            z = 1;\\n        }\\n    }\\n}\\n\\n// range: [0, 2**112 - 1]\\n// resolution: 1 / 2**112\\n\\nlibrary UQ112x112 {\\n    //solhint-disable-next-line state-visibility\\n    uint224 constant Q112 = 2 ** 112;\\n\\n    // encode a uint112 as a UQ112x112\\n    function encode(uint112 y) internal pure returns (uint224 z) {\\n        z = uint224(y) * Q112; // never overflows\\n    }\\n\\n    // divide a UQ112x112 by a uint112, returning a UQ112x112\\n    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\\n        z = x / uint224(y);\\n    }\\n}\\n\\ncontract PancakePairHarness {\\n    using UQ112x112 for uint224;\\n\\n    address public token0;\\n    address public token1;\\n\\n    uint112 private reserve0; // uses single storage slot, accessible via getReserves\\n    uint112 private reserve1; // uses single storage slot, accessible via getReserves\\n    uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\\n\\n    uint256 public price0CumulativeLast;\\n    uint256 public price1CumulativeLast;\\n    uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\\n\\n    // called once by the factory at time of deployment\\n    function initialize(address _token0, address _token1) external {\\n        token0 = _token0;\\n        token1 = _token1;\\n    }\\n\\n    // update reserves and, on the first call per block, price accumulators\\n    function update(uint256 balance0, uint256 balance1, uint112 _reserve0, uint112 _reserve1) external {\\n        require(balance0 <= type(uint112).max && balance1 <= type(uint112).max, \\\"PancakeV2: OVERFLOW\\\");\\n        uint32 blockTimestamp = uint32(block.timestamp % 2 ** 32);\\n        unchecked {\\n            uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\\n            if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\\n                // * never overflows, and + overflow is desired\\n                price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;\\n                price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;\\n            }\\n        }\\n        reserve0 = uint112(balance0);\\n        reserve1 = uint112(balance1);\\n        blockTimestampLast = blockTimestamp;\\n    }\\n\\n    function currentBlockTimestamp() external view returns (uint32) {\\n        return uint32(block.timestamp % 2 ** 32);\\n    }\\n\\n    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {\\n        _reserve0 = reserve0;\\n        _reserve1 = reserve1;\\n        _blockTimestampLast = blockTimestampLast;\\n    }\\n}\\n\",\"keccak256\":\"0x745b3603309b8f6c73826777046e35321cdae207bcd9e87fa2fd7a6035c87037\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"PancakePairHarness":{"abi":[{"inputs":[],"name":"currentBlockTimestamp","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"balance0","type":"uint256"},{"internalType":"uint256","name":"balance1","type":"uint256"},{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b506105a38061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c80635a3d5493116100635780635a3d5493146101435780637464fc3d1461014c578063abf8127214610155578063d21220a71461016a578063d9fc83c61461017d575f80fd5b80630902f1ac146100945780630dfe1681146100d1578063485cc955146100f05780635909c0d51461012d575b5f80fd5b6002546040516100c8916001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690610350565b60405180910390f35b5f546100e3906001600160a01b031681565b6040516100c89190610399565b61012b6100fe3660046103c8565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b005b61013660035481565b6040516100c89190610408565b61013660045481565b61013660055481565b61015d610190565b6040516100c89190610416565b6001546100e3906001600160a01b031681565b61012b61018b36600461044f565b6101a5565b5f6101a0640100000000426104c3565b905090565b6001600160701b0384118015906101c357506001600160701b038311155b6101e85760405162461bcd60e51b81526004016101df906104d6565b60405180910390fd5b5f6101f8640100000000426104c3565b60025490915063ffffffff600160e01b909104811682039081161580159061022857506001600160701b03841615155b801561023c57506001600160701b03831615155b156102a7578063ffffffff1661026485610255866102fa565b6001600160e01b031690610318565b600380546001600160e01b03929092169290920201905563ffffffff811661028f84610255876102fa565b600480546001600160e01b0392909216929092020190555b506002805463ffffffff909216600160e01b026001600160e01b036001600160701b03968716600160701b026001600160e01b031990941696909716959095179190911794909416929092179092555050565b5f610312600160701b6001600160701b03841661051b565b92915050565b5f61032c6001600160701b0383168461054d565b9392505050565b6001600160701b0381165b82525050565b63ffffffff811661033e565b6060810161035e8286610333565b61036b6020830185610333565b6103786040830184610344565b949350505050565b5f6001600160a01b038216610312565b61033e81610380565b602081016103128284610390565b6103b081610380565b81146103ba575f80fd5b50565b8035610312816103a7565b5f80604083850312156103dc576103dc5f80fd5b5f6103e785856103bd565b92505060206103f8858286016103bd565b9150509250929050565b8061033e565b602081016103128284610402565b602081016103128284610344565b806103b0565b803561031281610424565b6001600160701b0381166103b0565b803561031281610435565b5f805f8060808587031215610465576104655f80fd5b5f610470878761042a565b94505060206104818782880161042a565b935050604061049287828801610444565b92505060606104a387828801610444565b91505092959194509250565b634e487b7160e01b5f52601260045260245ffd5b5f826104d1576104d16104af565b500690565b6020808252810161031281601381527250616e63616b6556323a204f564552464c4f5760681b602082015260400190565b634e487b7160e01b5f52601160045260245ffd5b6001600160e01b03918216919081169082820290811690821583830485141761054657610546610507565b5092915050565b6001600160e01b0391821691165f82610568576105686104af565b50049056fea26469706673582212205e3fa6d9dc1cd1cf7e869c6a9930ae4a06cddbf694c51c245dcb32759777652864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A3 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x90 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A3D5493 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xABF81272 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x16A JUMPI DUP1 PUSH4 0xD9FC83C6 EQ PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x902F1AC EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x12D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x70 SHL DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD PUSH2 0xE3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x399 JUMP JUMPDEST PUSH2 0x12B PUSH2 0xFE CALLDATASIZE PUSH1 0x4 PUSH2 0x3C8 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x136 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x136 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x136 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x15D PUSH2 0x190 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x416 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xE3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x18B CALLDATASIZE PUSH1 0x4 PUSH2 0x44F JUMP JUMPDEST PUSH2 0x1A5 JUMP JUMPDEST PUSH0 PUSH2 0x1A0 PUSH5 0x100000000 TIMESTAMP PUSH2 0x4C3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x1C3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP4 GT ISZERO JUMPDEST PUSH2 0x1E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DF SWAP1 PUSH2 0x4D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1F8 PUSH5 0x100000000 TIMESTAMP PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP2 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x228 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x23C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x264 DUP6 PUSH2 0x255 DUP7 PUSH2 0x2FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 PUSH2 0x318 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x28F DUP5 PUSH2 0x255 DUP8 PUSH2 0x2FA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xE0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP7 DUP8 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP7 SWAP1 SWAP8 AND SWAP6 SWAP1 SWAP6 OR SWAP2 SWAP1 SWAP2 OR SWAP5 SWAP1 SWAP5 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP3 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x312 PUSH1 0x1 PUSH1 0x70 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH2 0x51B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32C PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP4 AND DUP5 PUSH2 0x54D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x35E DUP3 DUP7 PUSH2 0x333 JUMP JUMPDEST PUSH2 0x36B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x333 JUMP JUMPDEST PUSH2 0x378 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x344 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x312 JUMP JUMPDEST PUSH2 0x33E DUP2 PUSH2 0x380 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x312 DUP3 DUP5 PUSH2 0x390 JUMP JUMPDEST PUSH2 0x3B0 DUP2 PUSH2 0x380 JUMP JUMPDEST DUP2 EQ PUSH2 0x3BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x312 DUP2 PUSH2 0x3A7 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x3E7 DUP6 DUP6 PUSH2 0x3BD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F8 DUP6 DUP3 DUP7 ADD PUSH2 0x3BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x312 DUP3 DUP5 PUSH2 0x402 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x312 DUP3 DUP5 PUSH2 0x344 JUMP JUMPDEST DUP1 PUSH2 0x3B0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x312 DUP2 PUSH2 0x424 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND PUSH2 0x3B0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x312 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x465 JUMPI PUSH2 0x465 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x470 DUP8 DUP8 PUSH2 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x481 DUP8 DUP3 DUP9 ADD PUSH2 0x42A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x492 DUP8 DUP3 DUP9 ADD PUSH2 0x444 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x4A3 DUP8 DUP3 DUP9 ADD PUSH2 0x444 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x4D1 JUMPI PUSH2 0x4D1 PUSH2 0x4AF JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x312 DUP2 PUSH1 0x13 DUP2 MSTORE PUSH19 0x50616E63616B6556323A204F564552464C4F57 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 MUL SWAP1 DUP2 AND SWAP1 DUP3 ISZERO DUP4 DUP4 DIV DUP6 EQ OR PUSH2 0x546 JUMPI PUSH2 0x546 PUSH2 0x507 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP2 DUP3 AND SWAP2 AND PUSH0 DUP3 PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x4AF JUMP JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MCOPY EXTCODEHASH 0xA6 0xD9 0xDC SHR 0xD1 0xCF PUSH31 0x869C6A9930AE4A06CDDBF694C51C245DCB32759777652864736F6C63430008 NOT STOP CALLER ","sourceMap":"1161:2090:84:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@currentBlockTimestamp_8689":{"entryPoint":400,"id":8689,"parameterSlots":0,"returnSlots":1},"@encode_8507":{"entryPoint":762,"id":8507,"parameterSlots":1,"returnSlots":1},"@getReserves_8711":{"entryPoint":null,"id":8711,"parameterSlots":0,"returnSlots":3},"@initialize_8562":{"entryPoint":null,"id":8562,"parameterSlots":2,"returnSlots":0},"@kLast_8546":{"entryPoint":null,"id":8546,"parameterSlots":0,"returnSlots":0},"@price0CumulativeLast_8542":{"entryPoint":null,"id":8542,"parameterSlots":0,"returnSlots":0},"@price1CumulativeLast_8544":{"entryPoint":null,"id":8544,"parameterSlots":0,"returnSlots":0},"@token0_8532":{"entryPoint":null,"id":8532,"parameterSlots":0,"returnSlots":0},"@token1_8534":{"entryPoint":null,"id":8534,"parameterSlots":0,"returnSlots":0},"@update_8673":{"entryPoint":421,"id":8673,"parameterSlots":4,"returnSlots":0},"@uqdiv_8526":{"entryPoint":792,"id":8526,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":957,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint112":{"entryPoint":1092,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1066,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":968,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_uint112t_uint112":{"entryPoint":1103,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":912,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint112_to_t_uint112_fromStack":{"entryPoint":819,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1026,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":836,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":921,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1238,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint112_t_uint112_t_uint32__to_t_uint112_t_uint112_t_uint32__fromStack_reversed":{"entryPoint":848,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1032,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":1046,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint224":{"entryPoint":1357,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint224":{"entryPoint":1307,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":896,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint112":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint224":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":1219,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":1287,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":1199,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":935,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint112":{"entryPoint":1077,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1060,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7010:101","nodeType":"YulBlock","src":"0:7010:101","statements":[{"body":{"nativeSrc":"52:69:101","nodeType":"YulBlock","src":"52:69:101","statements":[{"nativeSrc":"62:53:101","nodeType":"YulAssignment","src":"62:53:101","value":{"arguments":[{"name":"value","nativeSrc":"77:5:101","nodeType":"YulIdentifier","src":"77:5:101"},{"kind":"number","nativeSrc":"84:30:101","nodeType":"YulLiteral","src":"84:30:101","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"73:3:101","nodeType":"YulIdentifier","src":"73:3:101"},"nativeSrc":"73:42:101","nodeType":"YulFunctionCall","src":"73:42:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint112","nativeSrc":"7:114:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:114:101"},{"body":{"nativeSrc":"192:53:101","nodeType":"YulBlock","src":"192:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"209:3:101","nodeType":"YulIdentifier","src":"209:3:101"},{"arguments":[{"name":"value","nativeSrc":"232:5:101","nodeType":"YulIdentifier","src":"232:5:101"}],"functionName":{"name":"cleanup_t_uint112","nativeSrc":"214:17:101","nodeType":"YulIdentifier","src":"214:17:101"},"nativeSrc":"214:24:101","nodeType":"YulFunctionCall","src":"214:24:101"}],"functionName":{"name":"mstore","nativeSrc":"202:6:101","nodeType":"YulIdentifier","src":"202:6:101"},"nativeSrc":"202:37:101","nodeType":"YulFunctionCall","src":"202:37:101"},"nativeSrc":"202:37:101","nodeType":"YulExpressionStatement","src":"202:37:101"}]},"name":"abi_encode_t_uint112_to_t_uint112_fromStack","nativeSrc":"127:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"180:5:101","nodeType":"YulTypedName","src":"180:5:101","type":""},{"name":"pos","nativeSrc":"187:3:101","nodeType":"YulTypedName","src":"187:3:101","type":""}],"src":"127:118:101"},{"body":{"nativeSrc":"295:49:101","nodeType":"YulBlock","src":"295:49:101","statements":[{"nativeSrc":"305:33:101","nodeType":"YulAssignment","src":"305:33:101","value":{"arguments":[{"name":"value","nativeSrc":"320:5:101","nodeType":"YulIdentifier","src":"320:5:101"},{"kind":"number","nativeSrc":"327:10:101","nodeType":"YulLiteral","src":"327:10:101","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"316:3:101","nodeType":"YulIdentifier","src":"316:3:101"},"nativeSrc":"316:22:101","nodeType":"YulFunctionCall","src":"316:22:101"},"variableNames":[{"name":"cleaned","nativeSrc":"305:7:101","nodeType":"YulIdentifier","src":"305:7:101"}]}]},"name":"cleanup_t_uint32","nativeSrc":"251:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"277:5:101","nodeType":"YulTypedName","src":"277:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"287:7:101","nodeType":"YulTypedName","src":"287:7:101","type":""}],"src":"251:93:101"},{"body":{"nativeSrc":"413:52:101","nodeType":"YulBlock","src":"413:52:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"430:3:101","nodeType":"YulIdentifier","src":"430:3:101"},{"arguments":[{"name":"value","nativeSrc":"452:5:101","nodeType":"YulIdentifier","src":"452:5:101"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"435:16:101","nodeType":"YulIdentifier","src":"435:16:101"},"nativeSrc":"435:23:101","nodeType":"YulFunctionCall","src":"435:23:101"}],"functionName":{"name":"mstore","nativeSrc":"423:6:101","nodeType":"YulIdentifier","src":"423:6:101"},"nativeSrc":"423:36:101","nodeType":"YulFunctionCall","src":"423:36:101"},"nativeSrc":"423:36:101","nodeType":"YulExpressionStatement","src":"423:36:101"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"350:115:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"401:5:101","nodeType":"YulTypedName","src":"401:5:101","type":""},{"name":"pos","nativeSrc":"408:3:101","nodeType":"YulTypedName","src":"408:3:101","type":""}],"src":"350:115:101"},{"body":{"nativeSrc":"623:286:101","nodeType":"YulBlock","src":"623:286:101","statements":[{"nativeSrc":"633:26:101","nodeType":"YulAssignment","src":"633:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"645:9:101","nodeType":"YulIdentifier","src":"645:9:101"},{"kind":"number","nativeSrc":"656:2:101","nodeType":"YulLiteral","src":"656:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"641:3:101","nodeType":"YulIdentifier","src":"641:3:101"},"nativeSrc":"641:18:101","nodeType":"YulFunctionCall","src":"641:18:101"},"variableNames":[{"name":"tail","nativeSrc":"633:4:101","nodeType":"YulIdentifier","src":"633:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"713:6:101","nodeType":"YulIdentifier","src":"713:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"726:9:101","nodeType":"YulIdentifier","src":"726:9:101"},{"kind":"number","nativeSrc":"737:1:101","nodeType":"YulLiteral","src":"737:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"722:3:101","nodeType":"YulIdentifier","src":"722:3:101"},"nativeSrc":"722:17:101","nodeType":"YulFunctionCall","src":"722:17:101"}],"functionName":{"name":"abi_encode_t_uint112_to_t_uint112_fromStack","nativeSrc":"669:43:101","nodeType":"YulIdentifier","src":"669:43:101"},"nativeSrc":"669:71:101","nodeType":"YulFunctionCall","src":"669:71:101"},"nativeSrc":"669:71:101","nodeType":"YulExpressionStatement","src":"669:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"794:6:101","nodeType":"YulIdentifier","src":"794:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"807:9:101","nodeType":"YulIdentifier","src":"807:9:101"},{"kind":"number","nativeSrc":"818:2:101","nodeType":"YulLiteral","src":"818:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"803:3:101","nodeType":"YulIdentifier","src":"803:3:101"},"nativeSrc":"803:18:101","nodeType":"YulFunctionCall","src":"803:18:101"}],"functionName":{"name":"abi_encode_t_uint112_to_t_uint112_fromStack","nativeSrc":"750:43:101","nodeType":"YulIdentifier","src":"750:43:101"},"nativeSrc":"750:72:101","nodeType":"YulFunctionCall","src":"750:72:101"},"nativeSrc":"750:72:101","nodeType":"YulExpressionStatement","src":"750:72:101"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"874:6:101","nodeType":"YulIdentifier","src":"874:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"887:9:101","nodeType":"YulIdentifier","src":"887:9:101"},{"kind":"number","nativeSrc":"898:2:101","nodeType":"YulLiteral","src":"898:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"883:3:101","nodeType":"YulIdentifier","src":"883:3:101"},"nativeSrc":"883:18:101","nodeType":"YulFunctionCall","src":"883:18:101"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"832:41:101","nodeType":"YulIdentifier","src":"832:41:101"},"nativeSrc":"832:70:101","nodeType":"YulFunctionCall","src":"832:70:101"},"nativeSrc":"832:70:101","nodeType":"YulExpressionStatement","src":"832:70:101"}]},"name":"abi_encode_tuple_t_uint112_t_uint112_t_uint32__to_t_uint112_t_uint112_t_uint32__fromStack_reversed","nativeSrc":"471:438:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"579:9:101","nodeType":"YulTypedName","src":"579:9:101","type":""},{"name":"value2","nativeSrc":"591:6:101","nodeType":"YulTypedName","src":"591:6:101","type":""},{"name":"value1","nativeSrc":"599:6:101","nodeType":"YulTypedName","src":"599:6:101","type":""},{"name":"value0","nativeSrc":"607:6:101","nodeType":"YulTypedName","src":"607:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"618:4:101","nodeType":"YulTypedName","src":"618:4:101","type":""}],"src":"471:438:101"},{"body":{"nativeSrc":"960:81:101","nodeType":"YulBlock","src":"960:81:101","statements":[{"nativeSrc":"970:65:101","nodeType":"YulAssignment","src":"970:65:101","value":{"arguments":[{"name":"value","nativeSrc":"985:5:101","nodeType":"YulIdentifier","src":"985:5:101"},{"kind":"number","nativeSrc":"992:42:101","nodeType":"YulLiteral","src":"992:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"981:3:101","nodeType":"YulIdentifier","src":"981:3:101"},"nativeSrc":"981:54:101","nodeType":"YulFunctionCall","src":"981:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"970:7:101","nodeType":"YulIdentifier","src":"970:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"915:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"942:5:101","nodeType":"YulTypedName","src":"942:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"952:7:101","nodeType":"YulTypedName","src":"952:7:101","type":""}],"src":"915:126:101"},{"body":{"nativeSrc":"1092:51:101","nodeType":"YulBlock","src":"1092:51:101","statements":[{"nativeSrc":"1102:35:101","nodeType":"YulAssignment","src":"1102:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1131:5:101","nodeType":"YulIdentifier","src":"1131:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1113:17:101","nodeType":"YulIdentifier","src":"1113:17:101"},"nativeSrc":"1113:24:101","nodeType":"YulFunctionCall","src":"1113:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1102:7:101","nodeType":"YulIdentifier","src":"1102:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1047:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1074:5:101","nodeType":"YulTypedName","src":"1074:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1084:7:101","nodeType":"YulTypedName","src":"1084:7:101","type":""}],"src":"1047:96:101"},{"body":{"nativeSrc":"1214:53:101","nodeType":"YulBlock","src":"1214:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1231:3:101","nodeType":"YulIdentifier","src":"1231:3:101"},{"arguments":[{"name":"value","nativeSrc":"1254:5:101","nodeType":"YulIdentifier","src":"1254:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1236:17:101","nodeType":"YulIdentifier","src":"1236:17:101"},"nativeSrc":"1236:24:101","nodeType":"YulFunctionCall","src":"1236:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1224:6:101","nodeType":"YulIdentifier","src":"1224:6:101"},"nativeSrc":"1224:37:101","nodeType":"YulFunctionCall","src":"1224:37:101"},"nativeSrc":"1224:37:101","nodeType":"YulExpressionStatement","src":"1224:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1149:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1202:5:101","nodeType":"YulTypedName","src":"1202:5:101","type":""},{"name":"pos","nativeSrc":"1209:3:101","nodeType":"YulTypedName","src":"1209:3:101","type":""}],"src":"1149:118:101"},{"body":{"nativeSrc":"1371:124:101","nodeType":"YulBlock","src":"1371:124:101","statements":[{"nativeSrc":"1381:26:101","nodeType":"YulAssignment","src":"1381:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1393:9:101","nodeType":"YulIdentifier","src":"1393:9:101"},{"kind":"number","nativeSrc":"1404:2:101","nodeType":"YulLiteral","src":"1404:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1389:3:101","nodeType":"YulIdentifier","src":"1389:3:101"},"nativeSrc":"1389:18:101","nodeType":"YulFunctionCall","src":"1389:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1381:4:101","nodeType":"YulIdentifier","src":"1381:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1461:6:101","nodeType":"YulIdentifier","src":"1461:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1474:9:101","nodeType":"YulIdentifier","src":"1474:9:101"},{"kind":"number","nativeSrc":"1485:1:101","nodeType":"YulLiteral","src":"1485:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1470:3:101","nodeType":"YulIdentifier","src":"1470:3:101"},"nativeSrc":"1470:17:101","nodeType":"YulFunctionCall","src":"1470:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1417:43:101","nodeType":"YulIdentifier","src":"1417:43:101"},"nativeSrc":"1417:71:101","nodeType":"YulFunctionCall","src":"1417:71:101"},"nativeSrc":"1417:71:101","nodeType":"YulExpressionStatement","src":"1417:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1273:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1343:9:101","nodeType":"YulTypedName","src":"1343:9:101","type":""},{"name":"value0","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1366:4:101","nodeType":"YulTypedName","src":"1366:4:101","type":""}],"src":"1273:222:101"},{"body":{"nativeSrc":"1541:35:101","nodeType":"YulBlock","src":"1541:35:101","statements":[{"nativeSrc":"1551:19:101","nodeType":"YulAssignment","src":"1551:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1567:2:101","nodeType":"YulLiteral","src":"1567:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1561:5:101","nodeType":"YulIdentifier","src":"1561:5:101"},"nativeSrc":"1561:9:101","nodeType":"YulFunctionCall","src":"1561:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1551:6:101","nodeType":"YulIdentifier","src":"1551:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1501:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1534:6:101","nodeType":"YulTypedName","src":"1534:6:101","type":""}],"src":"1501:75:101"},{"body":{"nativeSrc":"1671:28:101","nodeType":"YulBlock","src":"1671:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1688:1:101","nodeType":"YulLiteral","src":"1688:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1691:1:101","nodeType":"YulLiteral","src":"1691:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1681:6:101","nodeType":"YulIdentifier","src":"1681:6:101"},"nativeSrc":"1681:12:101","nodeType":"YulFunctionCall","src":"1681:12:101"},"nativeSrc":"1681:12:101","nodeType":"YulExpressionStatement","src":"1681:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1582:117:101","nodeType":"YulFunctionDefinition","src":"1582:117:101"},{"body":{"nativeSrc":"1794:28:101","nodeType":"YulBlock","src":"1794:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1811:1:101","nodeType":"YulLiteral","src":"1811:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1814:1:101","nodeType":"YulLiteral","src":"1814:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1804:6:101","nodeType":"YulIdentifier","src":"1804:6:101"},"nativeSrc":"1804:12:101","nodeType":"YulFunctionCall","src":"1804:12:101"},"nativeSrc":"1804:12:101","nodeType":"YulExpressionStatement","src":"1804:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1705:117:101","nodeType":"YulFunctionDefinition","src":"1705:117:101"},{"body":{"nativeSrc":"1871:79:101","nodeType":"YulBlock","src":"1871:79:101","statements":[{"body":{"nativeSrc":"1928:16:101","nodeType":"YulBlock","src":"1928:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1937:1:101","nodeType":"YulLiteral","src":"1937:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1940:1:101","nodeType":"YulLiteral","src":"1940:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1930:6:101","nodeType":"YulIdentifier","src":"1930:6:101"},"nativeSrc":"1930:12:101","nodeType":"YulFunctionCall","src":"1930:12:101"},"nativeSrc":"1930:12:101","nodeType":"YulExpressionStatement","src":"1930:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1894:5:101","nodeType":"YulIdentifier","src":"1894:5:101"},{"arguments":[{"name":"value","nativeSrc":"1919:5:101","nodeType":"YulIdentifier","src":"1919:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1901:17:101","nodeType":"YulIdentifier","src":"1901:17:101"},"nativeSrc":"1901:24:101","nodeType":"YulFunctionCall","src":"1901:24:101"}],"functionName":{"name":"eq","nativeSrc":"1891:2:101","nodeType":"YulIdentifier","src":"1891:2:101"},"nativeSrc":"1891:35:101","nodeType":"YulFunctionCall","src":"1891:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1884:6:101","nodeType":"YulIdentifier","src":"1884:6:101"},"nativeSrc":"1884:43:101","nodeType":"YulFunctionCall","src":"1884:43:101"},"nativeSrc":"1881:63:101","nodeType":"YulIf","src":"1881:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1828:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1864:5:101","nodeType":"YulTypedName","src":"1864:5:101","type":""}],"src":"1828:122:101"},{"body":{"nativeSrc":"2008:87:101","nodeType":"YulBlock","src":"2008:87:101","statements":[{"nativeSrc":"2018:29:101","nodeType":"YulAssignment","src":"2018:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2040:6:101","nodeType":"YulIdentifier","src":"2040:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2027:12:101","nodeType":"YulIdentifier","src":"2027:12:101"},"nativeSrc":"2027:20:101","nodeType":"YulFunctionCall","src":"2027:20:101"},"variableNames":[{"name":"value","nativeSrc":"2018:5:101","nodeType":"YulIdentifier","src":"2018:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2083:5:101","nodeType":"YulIdentifier","src":"2083:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2056:26:101","nodeType":"YulIdentifier","src":"2056:26:101"},"nativeSrc":"2056:33:101","nodeType":"YulFunctionCall","src":"2056:33:101"},"nativeSrc":"2056:33:101","nodeType":"YulExpressionStatement","src":"2056:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1956:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1986:6:101","nodeType":"YulTypedName","src":"1986:6:101","type":""},{"name":"end","nativeSrc":"1994:3:101","nodeType":"YulTypedName","src":"1994:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2002:5:101","nodeType":"YulTypedName","src":"2002:5:101","type":""}],"src":"1956:139:101"},{"body":{"nativeSrc":"2184:391:101","nodeType":"YulBlock","src":"2184:391:101","statements":[{"body":{"nativeSrc":"2230:83:101","nodeType":"YulBlock","src":"2230:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2232:77:101","nodeType":"YulIdentifier","src":"2232:77:101"},"nativeSrc":"2232:79:101","nodeType":"YulFunctionCall","src":"2232:79:101"},"nativeSrc":"2232:79:101","nodeType":"YulExpressionStatement","src":"2232:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2205:7:101","nodeType":"YulIdentifier","src":"2205:7:101"},{"name":"headStart","nativeSrc":"2214:9:101","nodeType":"YulIdentifier","src":"2214:9:101"}],"functionName":{"name":"sub","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:23:101","nodeType":"YulFunctionCall","src":"2201:23:101"},{"kind":"number","nativeSrc":"2226:2:101","nodeType":"YulLiteral","src":"2226:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2197:3:101","nodeType":"YulIdentifier","src":"2197:3:101"},"nativeSrc":"2197:32:101","nodeType":"YulFunctionCall","src":"2197:32:101"},"nativeSrc":"2194:119:101","nodeType":"YulIf","src":"2194:119:101"},{"nativeSrc":"2323:117:101","nodeType":"YulBlock","src":"2323:117:101","statements":[{"nativeSrc":"2338:15:101","nodeType":"YulVariableDeclaration","src":"2338:15:101","value":{"kind":"number","nativeSrc":"2352:1:101","nodeType":"YulLiteral","src":"2352:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2342:6:101","nodeType":"YulTypedName","src":"2342:6:101","type":""}]},{"nativeSrc":"2367:63:101","nodeType":"YulAssignment","src":"2367:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2402:9:101","nodeType":"YulIdentifier","src":"2402:9:101"},{"name":"offset","nativeSrc":"2413:6:101","nodeType":"YulIdentifier","src":"2413:6:101"}],"functionName":{"name":"add","nativeSrc":"2398:3:101","nodeType":"YulIdentifier","src":"2398:3:101"},"nativeSrc":"2398:22:101","nodeType":"YulFunctionCall","src":"2398:22:101"},{"name":"dataEnd","nativeSrc":"2422:7:101","nodeType":"YulIdentifier","src":"2422:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2377:20:101","nodeType":"YulIdentifier","src":"2377:20:101"},"nativeSrc":"2377:53:101","nodeType":"YulFunctionCall","src":"2377:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2367:6:101","nodeType":"YulIdentifier","src":"2367:6:101"}]}]},{"nativeSrc":"2450:118:101","nodeType":"YulBlock","src":"2450:118:101","statements":[{"nativeSrc":"2465:16:101","nodeType":"YulVariableDeclaration","src":"2465:16:101","value":{"kind":"number","nativeSrc":"2479:2:101","nodeType":"YulLiteral","src":"2479:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2469:6:101","nodeType":"YulTypedName","src":"2469:6:101","type":""}]},{"nativeSrc":"2495:63:101","nodeType":"YulAssignment","src":"2495:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2530:9:101","nodeType":"YulIdentifier","src":"2530:9:101"},{"name":"offset","nativeSrc":"2541:6:101","nodeType":"YulIdentifier","src":"2541:6:101"}],"functionName":{"name":"add","nativeSrc":"2526:3:101","nodeType":"YulIdentifier","src":"2526:3:101"},"nativeSrc":"2526:22:101","nodeType":"YulFunctionCall","src":"2526:22:101"},{"name":"dataEnd","nativeSrc":"2550:7:101","nodeType":"YulIdentifier","src":"2550:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2505:20:101","nodeType":"YulIdentifier","src":"2505:20:101"},"nativeSrc":"2505:53:101","nodeType":"YulFunctionCall","src":"2505:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2495:6:101","nodeType":"YulIdentifier","src":"2495:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"2101:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2146:9:101","nodeType":"YulTypedName","src":"2146:9:101","type":""},{"name":"dataEnd","nativeSrc":"2157:7:101","nodeType":"YulTypedName","src":"2157:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2169:6:101","nodeType":"YulTypedName","src":"2169:6:101","type":""},{"name":"value1","nativeSrc":"2177:6:101","nodeType":"YulTypedName","src":"2177:6:101","type":""}],"src":"2101:474:101"},{"body":{"nativeSrc":"2626:32:101","nodeType":"YulBlock","src":"2626:32:101","statements":[{"nativeSrc":"2636:16:101","nodeType":"YulAssignment","src":"2636:16:101","value":{"name":"value","nativeSrc":"2647:5:101","nodeType":"YulIdentifier","src":"2647:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2636:7:101","nodeType":"YulIdentifier","src":"2636:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2581:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2608:5:101","nodeType":"YulTypedName","src":"2608:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2618:7:101","nodeType":"YulTypedName","src":"2618:7:101","type":""}],"src":"2581:77:101"},{"body":{"nativeSrc":"2729:53:101","nodeType":"YulBlock","src":"2729:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2746:3:101","nodeType":"YulIdentifier","src":"2746:3:101"},{"arguments":[{"name":"value","nativeSrc":"2769:5:101","nodeType":"YulIdentifier","src":"2769:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2751:17:101","nodeType":"YulIdentifier","src":"2751:17:101"},"nativeSrc":"2751:24:101","nodeType":"YulFunctionCall","src":"2751:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2739:6:101","nodeType":"YulIdentifier","src":"2739:6:101"},"nativeSrc":"2739:37:101","nodeType":"YulFunctionCall","src":"2739:37:101"},"nativeSrc":"2739:37:101","nodeType":"YulExpressionStatement","src":"2739:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2664:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2717:5:101","nodeType":"YulTypedName","src":"2717:5:101","type":""},{"name":"pos","nativeSrc":"2724:3:101","nodeType":"YulTypedName","src":"2724:3:101","type":""}],"src":"2664:118:101"},{"body":{"nativeSrc":"2886:124:101","nodeType":"YulBlock","src":"2886:124:101","statements":[{"nativeSrc":"2896:26:101","nodeType":"YulAssignment","src":"2896:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2908:9:101","nodeType":"YulIdentifier","src":"2908:9:101"},{"kind":"number","nativeSrc":"2919:2:101","nodeType":"YulLiteral","src":"2919:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2904:3:101","nodeType":"YulIdentifier","src":"2904:3:101"},"nativeSrc":"2904:18:101","nodeType":"YulFunctionCall","src":"2904:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2896:4:101","nodeType":"YulIdentifier","src":"2896:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2976:6:101","nodeType":"YulIdentifier","src":"2976:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2989:9:101","nodeType":"YulIdentifier","src":"2989:9:101"},{"kind":"number","nativeSrc":"3000:1:101","nodeType":"YulLiteral","src":"3000:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2985:3:101","nodeType":"YulIdentifier","src":"2985:3:101"},"nativeSrc":"2985:17:101","nodeType":"YulFunctionCall","src":"2985:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2932:43:101","nodeType":"YulIdentifier","src":"2932:43:101"},"nativeSrc":"2932:71:101","nodeType":"YulFunctionCall","src":"2932:71:101"},"nativeSrc":"2932:71:101","nodeType":"YulExpressionStatement","src":"2932:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2788:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2858:9:101","nodeType":"YulTypedName","src":"2858:9:101","type":""},{"name":"value0","nativeSrc":"2870:6:101","nodeType":"YulTypedName","src":"2870:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2881:4:101","nodeType":"YulTypedName","src":"2881:4:101","type":""}],"src":"2788:222:101"},{"body":{"nativeSrc":"3112:122:101","nodeType":"YulBlock","src":"3112:122:101","statements":[{"nativeSrc":"3122:26:101","nodeType":"YulAssignment","src":"3122:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3134:9:101","nodeType":"YulIdentifier","src":"3134:9:101"},{"kind":"number","nativeSrc":"3145:2:101","nodeType":"YulLiteral","src":"3145:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3130:3:101","nodeType":"YulIdentifier","src":"3130:3:101"},"nativeSrc":"3130:18:101","nodeType":"YulFunctionCall","src":"3130:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3122:4:101","nodeType":"YulIdentifier","src":"3122:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3200:6:101","nodeType":"YulIdentifier","src":"3200:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3213:9:101","nodeType":"YulIdentifier","src":"3213:9:101"},{"kind":"number","nativeSrc":"3224:1:101","nodeType":"YulLiteral","src":"3224:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3209:3:101","nodeType":"YulIdentifier","src":"3209:3:101"},"nativeSrc":"3209:17:101","nodeType":"YulFunctionCall","src":"3209:17:101"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"3158:41:101","nodeType":"YulIdentifier","src":"3158:41:101"},"nativeSrc":"3158:69:101","nodeType":"YulFunctionCall","src":"3158:69:101"},"nativeSrc":"3158:69:101","nodeType":"YulExpressionStatement","src":"3158:69:101"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nativeSrc":"3016:218:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3084:9:101","nodeType":"YulTypedName","src":"3084:9:101","type":""},{"name":"value0","nativeSrc":"3096:6:101","nodeType":"YulTypedName","src":"3096:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3107:4:101","nodeType":"YulTypedName","src":"3107:4:101","type":""}],"src":"3016:218:101"},{"body":{"nativeSrc":"3283:79:101","nodeType":"YulBlock","src":"3283:79:101","statements":[{"body":{"nativeSrc":"3340:16:101","nodeType":"YulBlock","src":"3340:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3349:1:101","nodeType":"YulLiteral","src":"3349:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3352:1:101","nodeType":"YulLiteral","src":"3352:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3342:6:101","nodeType":"YulIdentifier","src":"3342:6:101"},"nativeSrc":"3342:12:101","nodeType":"YulFunctionCall","src":"3342:12:101"},"nativeSrc":"3342:12:101","nodeType":"YulExpressionStatement","src":"3342:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3306:5:101","nodeType":"YulIdentifier","src":"3306:5:101"},{"arguments":[{"name":"value","nativeSrc":"3331:5:101","nodeType":"YulIdentifier","src":"3331:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3313:17:101","nodeType":"YulIdentifier","src":"3313:17:101"},"nativeSrc":"3313:24:101","nodeType":"YulFunctionCall","src":"3313:24:101"}],"functionName":{"name":"eq","nativeSrc":"3303:2:101","nodeType":"YulIdentifier","src":"3303:2:101"},"nativeSrc":"3303:35:101","nodeType":"YulFunctionCall","src":"3303:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3296:6:101","nodeType":"YulIdentifier","src":"3296:6:101"},"nativeSrc":"3296:43:101","nodeType":"YulFunctionCall","src":"3296:43:101"},"nativeSrc":"3293:63:101","nodeType":"YulIf","src":"3293:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"3240:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3276:5:101","nodeType":"YulTypedName","src":"3276:5:101","type":""}],"src":"3240:122:101"},{"body":{"nativeSrc":"3420:87:101","nodeType":"YulBlock","src":"3420:87:101","statements":[{"nativeSrc":"3430:29:101","nodeType":"YulAssignment","src":"3430:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3452:6:101","nodeType":"YulIdentifier","src":"3452:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3439:12:101","nodeType":"YulIdentifier","src":"3439:12:101"},"nativeSrc":"3439:20:101","nodeType":"YulFunctionCall","src":"3439:20:101"},"variableNames":[{"name":"value","nativeSrc":"3430:5:101","nodeType":"YulIdentifier","src":"3430:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3495:5:101","nodeType":"YulIdentifier","src":"3495:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3468:26:101","nodeType":"YulIdentifier","src":"3468:26:101"},"nativeSrc":"3468:33:101","nodeType":"YulFunctionCall","src":"3468:33:101"},"nativeSrc":"3468:33:101","nodeType":"YulExpressionStatement","src":"3468:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3368:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3398:6:101","nodeType":"YulTypedName","src":"3398:6:101","type":""},{"name":"end","nativeSrc":"3406:3:101","nodeType":"YulTypedName","src":"3406:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3414:5:101","nodeType":"YulTypedName","src":"3414:5:101","type":""}],"src":"3368:139:101"},{"body":{"nativeSrc":"3556:79:101","nodeType":"YulBlock","src":"3556:79:101","statements":[{"body":{"nativeSrc":"3613:16:101","nodeType":"YulBlock","src":"3613:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3622:1:101","nodeType":"YulLiteral","src":"3622:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3625:1:101","nodeType":"YulLiteral","src":"3625:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3615:6:101","nodeType":"YulIdentifier","src":"3615:6:101"},"nativeSrc":"3615:12:101","nodeType":"YulFunctionCall","src":"3615:12:101"},"nativeSrc":"3615:12:101","nodeType":"YulExpressionStatement","src":"3615:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3579:5:101","nodeType":"YulIdentifier","src":"3579:5:101"},{"arguments":[{"name":"value","nativeSrc":"3604:5:101","nodeType":"YulIdentifier","src":"3604:5:101"}],"functionName":{"name":"cleanup_t_uint112","nativeSrc":"3586:17:101","nodeType":"YulIdentifier","src":"3586:17:101"},"nativeSrc":"3586:24:101","nodeType":"YulFunctionCall","src":"3586:24:101"}],"functionName":{"name":"eq","nativeSrc":"3576:2:101","nodeType":"YulIdentifier","src":"3576:2:101"},"nativeSrc":"3576:35:101","nodeType":"YulFunctionCall","src":"3576:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3569:6:101","nodeType":"YulIdentifier","src":"3569:6:101"},"nativeSrc":"3569:43:101","nodeType":"YulFunctionCall","src":"3569:43:101"},"nativeSrc":"3566:63:101","nodeType":"YulIf","src":"3566:63:101"}]},"name":"validator_revert_t_uint112","nativeSrc":"3513:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3549:5:101","nodeType":"YulTypedName","src":"3549:5:101","type":""}],"src":"3513:122:101"},{"body":{"nativeSrc":"3693:87:101","nodeType":"YulBlock","src":"3693:87:101","statements":[{"nativeSrc":"3703:29:101","nodeType":"YulAssignment","src":"3703:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3725:6:101","nodeType":"YulIdentifier","src":"3725:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3712:12:101","nodeType":"YulIdentifier","src":"3712:12:101"},"nativeSrc":"3712:20:101","nodeType":"YulFunctionCall","src":"3712:20:101"},"variableNames":[{"name":"value","nativeSrc":"3703:5:101","nodeType":"YulIdentifier","src":"3703:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3768:5:101","nodeType":"YulIdentifier","src":"3768:5:101"}],"functionName":{"name":"validator_revert_t_uint112","nativeSrc":"3741:26:101","nodeType":"YulIdentifier","src":"3741:26:101"},"nativeSrc":"3741:33:101","nodeType":"YulFunctionCall","src":"3741:33:101"},"nativeSrc":"3741:33:101","nodeType":"YulExpressionStatement","src":"3741:33:101"}]},"name":"abi_decode_t_uint112","nativeSrc":"3641:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3671:6:101","nodeType":"YulTypedName","src":"3671:6:101","type":""},{"name":"end","nativeSrc":"3679:3:101","nodeType":"YulTypedName","src":"3679:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3687:5:101","nodeType":"YulTypedName","src":"3687:5:101","type":""}],"src":"3641:139:101"},{"body":{"nativeSrc":"3903:648:101","nodeType":"YulBlock","src":"3903:648:101","statements":[{"body":{"nativeSrc":"3950:83:101","nodeType":"YulBlock","src":"3950:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3952:77:101","nodeType":"YulIdentifier","src":"3952:77:101"},"nativeSrc":"3952:79:101","nodeType":"YulFunctionCall","src":"3952:79:101"},"nativeSrc":"3952:79:101","nodeType":"YulExpressionStatement","src":"3952:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3924:7:101","nodeType":"YulIdentifier","src":"3924:7:101"},{"name":"headStart","nativeSrc":"3933:9:101","nodeType":"YulIdentifier","src":"3933:9:101"}],"functionName":{"name":"sub","nativeSrc":"3920:3:101","nodeType":"YulIdentifier","src":"3920:3:101"},"nativeSrc":"3920:23:101","nodeType":"YulFunctionCall","src":"3920:23:101"},{"kind":"number","nativeSrc":"3945:3:101","nodeType":"YulLiteral","src":"3945:3:101","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3916:3:101","nodeType":"YulIdentifier","src":"3916:3:101"},"nativeSrc":"3916:33:101","nodeType":"YulFunctionCall","src":"3916:33:101"},"nativeSrc":"3913:120:101","nodeType":"YulIf","src":"3913:120:101"},{"nativeSrc":"4043:117:101","nodeType":"YulBlock","src":"4043:117:101","statements":[{"nativeSrc":"4058:15:101","nodeType":"YulVariableDeclaration","src":"4058:15:101","value":{"kind":"number","nativeSrc":"4072:1:101","nodeType":"YulLiteral","src":"4072:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4062:6:101","nodeType":"YulTypedName","src":"4062:6:101","type":""}]},{"nativeSrc":"4087:63:101","nodeType":"YulAssignment","src":"4087:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4122:9:101","nodeType":"YulIdentifier","src":"4122:9:101"},{"name":"offset","nativeSrc":"4133:6:101","nodeType":"YulIdentifier","src":"4133:6:101"}],"functionName":{"name":"add","nativeSrc":"4118:3:101","nodeType":"YulIdentifier","src":"4118:3:101"},"nativeSrc":"4118:22:101","nodeType":"YulFunctionCall","src":"4118:22:101"},{"name":"dataEnd","nativeSrc":"4142:7:101","nodeType":"YulIdentifier","src":"4142:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4097:20:101","nodeType":"YulIdentifier","src":"4097:20:101"},"nativeSrc":"4097:53:101","nodeType":"YulFunctionCall","src":"4097:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4087:6:101","nodeType":"YulIdentifier","src":"4087:6:101"}]}]},{"nativeSrc":"4170:118:101","nodeType":"YulBlock","src":"4170:118:101","statements":[{"nativeSrc":"4185:16:101","nodeType":"YulVariableDeclaration","src":"4185:16:101","value":{"kind":"number","nativeSrc":"4199:2:101","nodeType":"YulLiteral","src":"4199:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4189:6:101","nodeType":"YulTypedName","src":"4189:6:101","type":""}]},{"nativeSrc":"4215:63:101","nodeType":"YulAssignment","src":"4215:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4250:9:101","nodeType":"YulIdentifier","src":"4250:9:101"},{"name":"offset","nativeSrc":"4261:6:101","nodeType":"YulIdentifier","src":"4261:6:101"}],"functionName":{"name":"add","nativeSrc":"4246:3:101","nodeType":"YulIdentifier","src":"4246:3:101"},"nativeSrc":"4246:22:101","nodeType":"YulFunctionCall","src":"4246:22:101"},{"name":"dataEnd","nativeSrc":"4270:7:101","nodeType":"YulIdentifier","src":"4270:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4225:20:101","nodeType":"YulIdentifier","src":"4225:20:101"},"nativeSrc":"4225:53:101","nodeType":"YulFunctionCall","src":"4225:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4215:6:101","nodeType":"YulIdentifier","src":"4215:6:101"}]}]},{"nativeSrc":"4298:118:101","nodeType":"YulBlock","src":"4298:118:101","statements":[{"nativeSrc":"4313:16:101","nodeType":"YulVariableDeclaration","src":"4313:16:101","value":{"kind":"number","nativeSrc":"4327:2:101","nodeType":"YulLiteral","src":"4327:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4317:6:101","nodeType":"YulTypedName","src":"4317:6:101","type":""}]},{"nativeSrc":"4343:63:101","nodeType":"YulAssignment","src":"4343:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4378:9:101","nodeType":"YulIdentifier","src":"4378:9:101"},{"name":"offset","nativeSrc":"4389:6:101","nodeType":"YulIdentifier","src":"4389:6:101"}],"functionName":{"name":"add","nativeSrc":"4374:3:101","nodeType":"YulIdentifier","src":"4374:3:101"},"nativeSrc":"4374:22:101","nodeType":"YulFunctionCall","src":"4374:22:101"},{"name":"dataEnd","nativeSrc":"4398:7:101","nodeType":"YulIdentifier","src":"4398:7:101"}],"functionName":{"name":"abi_decode_t_uint112","nativeSrc":"4353:20:101","nodeType":"YulIdentifier","src":"4353:20:101"},"nativeSrc":"4353:53:101","nodeType":"YulFunctionCall","src":"4353:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4343:6:101","nodeType":"YulIdentifier","src":"4343:6:101"}]}]},{"nativeSrc":"4426:118:101","nodeType":"YulBlock","src":"4426:118:101","statements":[{"nativeSrc":"4441:16:101","nodeType":"YulVariableDeclaration","src":"4441:16:101","value":{"kind":"number","nativeSrc":"4455:2:101","nodeType":"YulLiteral","src":"4455:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"4445:6:101","nodeType":"YulTypedName","src":"4445:6:101","type":""}]},{"nativeSrc":"4471:63:101","nodeType":"YulAssignment","src":"4471:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4506:9:101","nodeType":"YulIdentifier","src":"4506:9:101"},{"name":"offset","nativeSrc":"4517:6:101","nodeType":"YulIdentifier","src":"4517:6:101"}],"functionName":{"name":"add","nativeSrc":"4502:3:101","nodeType":"YulIdentifier","src":"4502:3:101"},"nativeSrc":"4502:22:101","nodeType":"YulFunctionCall","src":"4502:22:101"},{"name":"dataEnd","nativeSrc":"4526:7:101","nodeType":"YulIdentifier","src":"4526:7:101"}],"functionName":{"name":"abi_decode_t_uint112","nativeSrc":"4481:20:101","nodeType":"YulIdentifier","src":"4481:20:101"},"nativeSrc":"4481:53:101","nodeType":"YulFunctionCall","src":"4481:53:101"},"variableNames":[{"name":"value3","nativeSrc":"4471:6:101","nodeType":"YulIdentifier","src":"4471:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint112t_uint112","nativeSrc":"3786:765:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3849:9:101","nodeType":"YulTypedName","src":"3849:9:101","type":""},{"name":"dataEnd","nativeSrc":"3860:7:101","nodeType":"YulTypedName","src":"3860:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3872:6:101","nodeType":"YulTypedName","src":"3872:6:101","type":""},{"name":"value1","nativeSrc":"3880:6:101","nodeType":"YulTypedName","src":"3880:6:101","type":""},{"name":"value2","nativeSrc":"3888:6:101","nodeType":"YulTypedName","src":"3888:6:101","type":""},{"name":"value3","nativeSrc":"3896:6:101","nodeType":"YulTypedName","src":"3896:6:101","type":""}],"src":"3786:765:101"},{"body":{"nativeSrc":"4585:152:101","nodeType":"YulBlock","src":"4585:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4602:1:101","nodeType":"YulLiteral","src":"4602:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4605:77:101","nodeType":"YulLiteral","src":"4605:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4595:6:101","nodeType":"YulIdentifier","src":"4595:6:101"},"nativeSrc":"4595:88:101","nodeType":"YulFunctionCall","src":"4595:88:101"},"nativeSrc":"4595:88:101","nodeType":"YulExpressionStatement","src":"4595:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4699:1:101","nodeType":"YulLiteral","src":"4699:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4702:4:101","nodeType":"YulLiteral","src":"4702:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"4692:6:101","nodeType":"YulIdentifier","src":"4692:6:101"},"nativeSrc":"4692:15:101","nodeType":"YulFunctionCall","src":"4692:15:101"},"nativeSrc":"4692:15:101","nodeType":"YulExpressionStatement","src":"4692:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4723:1:101","nodeType":"YulLiteral","src":"4723:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4726:4:101","nodeType":"YulLiteral","src":"4726:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4716:6:101","nodeType":"YulIdentifier","src":"4716:6:101"},"nativeSrc":"4716:15:101","nodeType":"YulFunctionCall","src":"4716:15:101"},"nativeSrc":"4716:15:101","nodeType":"YulExpressionStatement","src":"4716:15:101"}]},"name":"panic_error_0x12","nativeSrc":"4557:180:101","nodeType":"YulFunctionDefinition","src":"4557:180:101"},{"body":{"nativeSrc":"4777:142:101","nodeType":"YulBlock","src":"4777:142:101","statements":[{"nativeSrc":"4787:25:101","nodeType":"YulAssignment","src":"4787:25:101","value":{"arguments":[{"name":"x","nativeSrc":"4810:1:101","nodeType":"YulIdentifier","src":"4810:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4792:17:101","nodeType":"YulIdentifier","src":"4792:17:101"},"nativeSrc":"4792:20:101","nodeType":"YulFunctionCall","src":"4792:20:101"},"variableNames":[{"name":"x","nativeSrc":"4787:1:101","nodeType":"YulIdentifier","src":"4787:1:101"}]},{"nativeSrc":"4821:25:101","nodeType":"YulAssignment","src":"4821:25:101","value":{"arguments":[{"name":"y","nativeSrc":"4844:1:101","nodeType":"YulIdentifier","src":"4844:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4826:17:101","nodeType":"YulIdentifier","src":"4826:17:101"},"nativeSrc":"4826:20:101","nodeType":"YulFunctionCall","src":"4826:20:101"},"variableNames":[{"name":"y","nativeSrc":"4821:1:101","nodeType":"YulIdentifier","src":"4821:1:101"}]},{"body":{"nativeSrc":"4868:22:101","nodeType":"YulBlock","src":"4868:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"4870:16:101","nodeType":"YulIdentifier","src":"4870:16:101"},"nativeSrc":"4870:18:101","nodeType":"YulFunctionCall","src":"4870:18:101"},"nativeSrc":"4870:18:101","nodeType":"YulExpressionStatement","src":"4870:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"4865:1:101","nodeType":"YulIdentifier","src":"4865:1:101"}],"functionName":{"name":"iszero","nativeSrc":"4858:6:101","nodeType":"YulIdentifier","src":"4858:6:101"},"nativeSrc":"4858:9:101","nodeType":"YulFunctionCall","src":"4858:9:101"},"nativeSrc":"4855:35:101","nodeType":"YulIf","src":"4855:35:101"},{"nativeSrc":"4899:14:101","nodeType":"YulAssignment","src":"4899:14:101","value":{"arguments":[{"name":"x","nativeSrc":"4908:1:101","nodeType":"YulIdentifier","src":"4908:1:101"},{"name":"y","nativeSrc":"4911:1:101","nodeType":"YulIdentifier","src":"4911:1:101"}],"functionName":{"name":"mod","nativeSrc":"4904:3:101","nodeType":"YulIdentifier","src":"4904:3:101"},"nativeSrc":"4904:9:101","nodeType":"YulFunctionCall","src":"4904:9:101"},"variableNames":[{"name":"r","nativeSrc":"4899:1:101","nodeType":"YulIdentifier","src":"4899:1:101"}]}]},"name":"mod_t_uint256","nativeSrc":"4743:176:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4766:1:101","nodeType":"YulTypedName","src":"4766:1:101","type":""},{"name":"y","nativeSrc":"4769:1:101","nodeType":"YulTypedName","src":"4769:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"4775:1:101","nodeType":"YulTypedName","src":"4775:1:101","type":""}],"src":"4743:176:101"},{"body":{"nativeSrc":"5021:73:101","nodeType":"YulBlock","src":"5021:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5038:3:101","nodeType":"YulIdentifier","src":"5038:3:101"},{"name":"length","nativeSrc":"5043:6:101","nodeType":"YulIdentifier","src":"5043:6:101"}],"functionName":{"name":"mstore","nativeSrc":"5031:6:101","nodeType":"YulIdentifier","src":"5031:6:101"},"nativeSrc":"5031:19:101","nodeType":"YulFunctionCall","src":"5031:19:101"},"nativeSrc":"5031:19:101","nodeType":"YulExpressionStatement","src":"5031:19:101"},{"nativeSrc":"5059:29:101","nodeType":"YulAssignment","src":"5059:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"5078:3:101","nodeType":"YulIdentifier","src":"5078:3:101"},{"kind":"number","nativeSrc":"5083:4:101","nodeType":"YulLiteral","src":"5083:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5074:3:101","nodeType":"YulIdentifier","src":"5074:3:101"},"nativeSrc":"5074:14:101","nodeType":"YulFunctionCall","src":"5074:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"5059:11:101","nodeType":"YulIdentifier","src":"5059:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4925:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4993:3:101","nodeType":"YulTypedName","src":"4993:3:101","type":""},{"name":"length","nativeSrc":"4998:6:101","nodeType":"YulTypedName","src":"4998:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5009:11:101","nodeType":"YulTypedName","src":"5009:11:101","type":""}],"src":"4925:169:101"},{"body":{"nativeSrc":"5206:63:101","nodeType":"YulBlock","src":"5206:63:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5228:6:101","nodeType":"YulIdentifier","src":"5228:6:101"},{"kind":"number","nativeSrc":"5236:1:101","nodeType":"YulLiteral","src":"5236:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5224:3:101","nodeType":"YulIdentifier","src":"5224:3:101"},"nativeSrc":"5224:14:101","nodeType":"YulFunctionCall","src":"5224:14:101"},{"hexValue":"50616e63616b6556323a204f564552464c4f57","kind":"string","nativeSrc":"5240:21:101","nodeType":"YulLiteral","src":"5240:21:101","type":"","value":"PancakeV2: OVERFLOW"}],"functionName":{"name":"mstore","nativeSrc":"5217:6:101","nodeType":"YulIdentifier","src":"5217:6:101"},"nativeSrc":"5217:45:101","nodeType":"YulFunctionCall","src":"5217:45:101"},"nativeSrc":"5217:45:101","nodeType":"YulExpressionStatement","src":"5217:45:101"}]},"name":"store_literal_in_memory_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df","nativeSrc":"5100:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5198:6:101","nodeType":"YulTypedName","src":"5198:6:101","type":""}],"src":"5100:169:101"},{"body":{"nativeSrc":"5421:220:101","nodeType":"YulBlock","src":"5421:220:101","statements":[{"nativeSrc":"5431:74:101","nodeType":"YulAssignment","src":"5431:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5497:3:101","nodeType":"YulIdentifier","src":"5497:3:101"},{"kind":"number","nativeSrc":"5502:2:101","nodeType":"YulLiteral","src":"5502:2:101","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5438:58:101","nodeType":"YulIdentifier","src":"5438:58:101"},"nativeSrc":"5438:67:101","nodeType":"YulFunctionCall","src":"5438:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5431:3:101","nodeType":"YulIdentifier","src":"5431:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5603:3:101","nodeType":"YulIdentifier","src":"5603:3:101"}],"functionName":{"name":"store_literal_in_memory_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df","nativeSrc":"5514:88:101","nodeType":"YulIdentifier","src":"5514:88:101"},"nativeSrc":"5514:93:101","nodeType":"YulFunctionCall","src":"5514:93:101"},"nativeSrc":"5514:93:101","nodeType":"YulExpressionStatement","src":"5514:93:101"},{"nativeSrc":"5616:19:101","nodeType":"YulAssignment","src":"5616:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5627:3:101","nodeType":"YulIdentifier","src":"5627:3:101"},{"kind":"number","nativeSrc":"5632:2:101","nodeType":"YulLiteral","src":"5632:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5623:3:101","nodeType":"YulIdentifier","src":"5623:3:101"},"nativeSrc":"5623:12:101","nodeType":"YulFunctionCall","src":"5623:12:101"},"variableNames":[{"name":"end","nativeSrc":"5616:3:101","nodeType":"YulIdentifier","src":"5616:3:101"}]}]},"name":"abi_encode_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df_to_t_string_memory_ptr_fromStack","nativeSrc":"5275:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5409:3:101","nodeType":"YulTypedName","src":"5409:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5417:3:101","nodeType":"YulTypedName","src":"5417:3:101","type":""}],"src":"5275:366:101"},{"body":{"nativeSrc":"5818:248:101","nodeType":"YulBlock","src":"5818:248:101","statements":[{"nativeSrc":"5828:26:101","nodeType":"YulAssignment","src":"5828:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5840:9:101","nodeType":"YulIdentifier","src":"5840:9:101"},{"kind":"number","nativeSrc":"5851:2:101","nodeType":"YulLiteral","src":"5851:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5836:3:101","nodeType":"YulIdentifier","src":"5836:3:101"},"nativeSrc":"5836:18:101","nodeType":"YulFunctionCall","src":"5836:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5828:4:101","nodeType":"YulIdentifier","src":"5828:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5875:9:101","nodeType":"YulIdentifier","src":"5875:9:101"},{"kind":"number","nativeSrc":"5886:1:101","nodeType":"YulLiteral","src":"5886:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5871:3:101","nodeType":"YulIdentifier","src":"5871:3:101"},"nativeSrc":"5871:17:101","nodeType":"YulFunctionCall","src":"5871:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5894:4:101","nodeType":"YulIdentifier","src":"5894:4:101"},{"name":"headStart","nativeSrc":"5900:9:101","nodeType":"YulIdentifier","src":"5900:9:101"}],"functionName":{"name":"sub","nativeSrc":"5890:3:101","nodeType":"YulIdentifier","src":"5890:3:101"},"nativeSrc":"5890:20:101","nodeType":"YulFunctionCall","src":"5890:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5864:6:101","nodeType":"YulIdentifier","src":"5864:6:101"},"nativeSrc":"5864:47:101","nodeType":"YulFunctionCall","src":"5864:47:101"},"nativeSrc":"5864:47:101","nodeType":"YulExpressionStatement","src":"5864:47:101"},{"nativeSrc":"5920:139:101","nodeType":"YulAssignment","src":"5920:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6054:4:101","nodeType":"YulIdentifier","src":"6054:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df_to_t_string_memory_ptr_fromStack","nativeSrc":"5928:124:101","nodeType":"YulIdentifier","src":"5928:124:101"},"nativeSrc":"5928:131:101","nodeType":"YulFunctionCall","src":"5928:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5920:4:101","nodeType":"YulIdentifier","src":"5920:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5647:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5798:9:101","nodeType":"YulTypedName","src":"5798:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5813:4:101","nodeType":"YulTypedName","src":"5813:4:101","type":""}],"src":"5647:419:101"},{"body":{"nativeSrc":"6117:97:101","nodeType":"YulBlock","src":"6117:97:101","statements":[{"nativeSrc":"6127:81:101","nodeType":"YulAssignment","src":"6127:81:101","value":{"arguments":[{"name":"value","nativeSrc":"6142:5:101","nodeType":"YulIdentifier","src":"6142:5:101"},{"kind":"number","nativeSrc":"6149:58:101","nodeType":"YulLiteral","src":"6149:58:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6138:3:101","nodeType":"YulIdentifier","src":"6138:3:101"},"nativeSrc":"6138:70:101","nodeType":"YulFunctionCall","src":"6138:70:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6127:7:101","nodeType":"YulIdentifier","src":"6127:7:101"}]}]},"name":"cleanup_t_uint224","nativeSrc":"6072:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6099:5:101","nodeType":"YulTypedName","src":"6099:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6109:7:101","nodeType":"YulTypedName","src":"6109:7:101","type":""}],"src":"6072:142:101"},{"body":{"nativeSrc":"6248:152:101","nodeType":"YulBlock","src":"6248:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6265:1:101","nodeType":"YulLiteral","src":"6265:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6268:77:101","nodeType":"YulLiteral","src":"6268:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6258:6:101","nodeType":"YulIdentifier","src":"6258:6:101"},"nativeSrc":"6258:88:101","nodeType":"YulFunctionCall","src":"6258:88:101"},"nativeSrc":"6258:88:101","nodeType":"YulExpressionStatement","src":"6258:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6362:1:101","nodeType":"YulLiteral","src":"6362:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6365:4:101","nodeType":"YulLiteral","src":"6365:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6355:6:101","nodeType":"YulIdentifier","src":"6355:6:101"},"nativeSrc":"6355:15:101","nodeType":"YulFunctionCall","src":"6355:15:101"},"nativeSrc":"6355:15:101","nodeType":"YulExpressionStatement","src":"6355:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6386:1:101","nodeType":"YulLiteral","src":"6386:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6389:4:101","nodeType":"YulLiteral","src":"6389:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6379:6:101","nodeType":"YulIdentifier","src":"6379:6:101"},"nativeSrc":"6379:15:101","nodeType":"YulFunctionCall","src":"6379:15:101"},"nativeSrc":"6379:15:101","nodeType":"YulExpressionStatement","src":"6379:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6220:180:101","nodeType":"YulFunctionDefinition","src":"6220:180:101"},{"body":{"nativeSrc":"6454:362:101","nodeType":"YulBlock","src":"6454:362:101","statements":[{"nativeSrc":"6464:25:101","nodeType":"YulAssignment","src":"6464:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6487:1:101","nodeType":"YulIdentifier","src":"6487:1:101"}],"functionName":{"name":"cleanup_t_uint224","nativeSrc":"6469:17:101","nodeType":"YulIdentifier","src":"6469:17:101"},"nativeSrc":"6469:20:101","nodeType":"YulFunctionCall","src":"6469:20:101"},"variableNames":[{"name":"x","nativeSrc":"6464:1:101","nodeType":"YulIdentifier","src":"6464:1:101"}]},{"nativeSrc":"6498:25:101","nodeType":"YulAssignment","src":"6498:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6521:1:101","nodeType":"YulIdentifier","src":"6521:1:101"}],"functionName":{"name":"cleanup_t_uint224","nativeSrc":"6503:17:101","nodeType":"YulIdentifier","src":"6503:17:101"},"nativeSrc":"6503:20:101","nodeType":"YulFunctionCall","src":"6503:20:101"},"variableNames":[{"name":"y","nativeSrc":"6498:1:101","nodeType":"YulIdentifier","src":"6498:1:101"}]},{"nativeSrc":"6532:28:101","nodeType":"YulVariableDeclaration","src":"6532:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6555:1:101","nodeType":"YulIdentifier","src":"6555:1:101"},{"name":"y","nativeSrc":"6558:1:101","nodeType":"YulIdentifier","src":"6558:1:101"}],"functionName":{"name":"mul","nativeSrc":"6551:3:101","nodeType":"YulIdentifier","src":"6551:3:101"},"nativeSrc":"6551:9:101","nodeType":"YulFunctionCall","src":"6551:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6536:11:101","nodeType":"YulTypedName","src":"6536:11:101","type":""}]},{"nativeSrc":"6569:41:101","nodeType":"YulAssignment","src":"6569:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6598:11:101","nodeType":"YulIdentifier","src":"6598:11:101"}],"functionName":{"name":"cleanup_t_uint224","nativeSrc":"6580:17:101","nodeType":"YulIdentifier","src":"6580:17:101"},"nativeSrc":"6580:30:101","nodeType":"YulFunctionCall","src":"6580:30:101"},"variableNames":[{"name":"product","nativeSrc":"6569:7:101","nodeType":"YulIdentifier","src":"6569:7:101"}]},{"body":{"nativeSrc":"6787:22:101","nodeType":"YulBlock","src":"6787:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6789:16:101","nodeType":"YulIdentifier","src":"6789:16:101"},"nativeSrc":"6789:18:101","nodeType":"YulFunctionCall","src":"6789:18:101"},"nativeSrc":"6789:18:101","nodeType":"YulExpressionStatement","src":"6789:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6720:1:101","nodeType":"YulIdentifier","src":"6720:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6713:6:101","nodeType":"YulIdentifier","src":"6713:6:101"},"nativeSrc":"6713:9:101","nodeType":"YulFunctionCall","src":"6713:9:101"},{"arguments":[{"name":"y","nativeSrc":"6743:1:101","nodeType":"YulIdentifier","src":"6743:1:101"},{"arguments":[{"name":"product","nativeSrc":"6750:7:101","nodeType":"YulIdentifier","src":"6750:7:101"},{"name":"x","nativeSrc":"6759:1:101","nodeType":"YulIdentifier","src":"6759:1:101"}],"functionName":{"name":"div","nativeSrc":"6746:3:101","nodeType":"YulIdentifier","src":"6746:3:101"},"nativeSrc":"6746:15:101","nodeType":"YulFunctionCall","src":"6746:15:101"}],"functionName":{"name":"eq","nativeSrc":"6740:2:101","nodeType":"YulIdentifier","src":"6740:2:101"},"nativeSrc":"6740:22:101","nodeType":"YulFunctionCall","src":"6740:22:101"}],"functionName":{"name":"or","nativeSrc":"6693:2:101","nodeType":"YulIdentifier","src":"6693:2:101"},"nativeSrc":"6693:83:101","nodeType":"YulFunctionCall","src":"6693:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6673:6:101","nodeType":"YulIdentifier","src":"6673:6:101"},"nativeSrc":"6673:113:101","nodeType":"YulFunctionCall","src":"6673:113:101"},"nativeSrc":"6670:139:101","nodeType":"YulIf","src":"6670:139:101"}]},"name":"checked_mul_t_uint224","nativeSrc":"6406:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6437:1:101","nodeType":"YulTypedName","src":"6437:1:101","type":""},{"name":"y","nativeSrc":"6440:1:101","nodeType":"YulTypedName","src":"6440:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6446:7:101","nodeType":"YulTypedName","src":"6446:7:101","type":""}],"src":"6406:410:101"},{"body":{"nativeSrc":"6864:143:101","nodeType":"YulBlock","src":"6864:143:101","statements":[{"nativeSrc":"6874:25:101","nodeType":"YulAssignment","src":"6874:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6897:1:101","nodeType":"YulIdentifier","src":"6897:1:101"}],"functionName":{"name":"cleanup_t_uint224","nativeSrc":"6879:17:101","nodeType":"YulIdentifier","src":"6879:17:101"},"nativeSrc":"6879:20:101","nodeType":"YulFunctionCall","src":"6879:20:101"},"variableNames":[{"name":"x","nativeSrc":"6874:1:101","nodeType":"YulIdentifier","src":"6874:1:101"}]},{"nativeSrc":"6908:25:101","nodeType":"YulAssignment","src":"6908:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6931:1:101","nodeType":"YulIdentifier","src":"6931:1:101"}],"functionName":{"name":"cleanup_t_uint224","nativeSrc":"6913:17:101","nodeType":"YulIdentifier","src":"6913:17:101"},"nativeSrc":"6913:20:101","nodeType":"YulFunctionCall","src":"6913:20:101"},"variableNames":[{"name":"y","nativeSrc":"6908:1:101","nodeType":"YulIdentifier","src":"6908:1:101"}]},{"body":{"nativeSrc":"6955:22:101","nodeType":"YulBlock","src":"6955:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"6957:16:101","nodeType":"YulIdentifier","src":"6957:16:101"},"nativeSrc":"6957:18:101","nodeType":"YulFunctionCall","src":"6957:18:101"},"nativeSrc":"6957:18:101","nodeType":"YulExpressionStatement","src":"6957:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"6952:1:101","nodeType":"YulIdentifier","src":"6952:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6945:6:101","nodeType":"YulIdentifier","src":"6945:6:101"},"nativeSrc":"6945:9:101","nodeType":"YulFunctionCall","src":"6945:9:101"},"nativeSrc":"6942:35:101","nodeType":"YulIf","src":"6942:35:101"},{"nativeSrc":"6987:14:101","nodeType":"YulAssignment","src":"6987:14:101","value":{"arguments":[{"name":"x","nativeSrc":"6996:1:101","nodeType":"YulIdentifier","src":"6996:1:101"},{"name":"y","nativeSrc":"6999:1:101","nodeType":"YulIdentifier","src":"6999:1:101"}],"functionName":{"name":"div","nativeSrc":"6992:3:101","nodeType":"YulIdentifier","src":"6992:3:101"},"nativeSrc":"6992:9:101","nodeType":"YulFunctionCall","src":"6992:9:101"},"variableNames":[{"name":"r","nativeSrc":"6987:1:101","nodeType":"YulIdentifier","src":"6987:1:101"}]}]},"name":"checked_div_t_uint224","nativeSrc":"6822:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6853:1:101","nodeType":"YulTypedName","src":"6853:1:101","type":""},{"name":"y","nativeSrc":"6856:1:101","nodeType":"YulTypedName","src":"6856:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"6862:1:101","nodeType":"YulTypedName","src":"6862:1:101","type":""}],"src":"6822:185:101"}]},"contents":"{\n\n    function cleanup_t_uint112(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffff)\n    }\n\n    function abi_encode_t_uint112_to_t_uint112_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint112(value))\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_uint112_t_uint112_t_uint32__to_t_uint112_t_uint112_t_uint32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint112_to_t_uint112_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint112_to_t_uint112_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function validator_revert_t_uint112(value) {\n        if iszero(eq(value, cleanup_t_uint112(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint112(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint112(value)\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256t_uint112t_uint112(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint112(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint112(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function mod_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df(memPtr) {\n\n        mstore(add(memPtr, 0), \"PancakeV2: OVERFLOW\")\n\n    }\n\n    function abi_encode_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_47c38718d0c6470d154463a6b081335b725692175cc621cf72fca8b0d9b990df_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint224(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_mul_t_uint224(x, y) -> product {\n        x := cleanup_t_uint224(x)\n        y := cleanup_t_uint224(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint224(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function checked_div_t_uint224(x, y) -> r {\n        x := cleanup_t_uint224(x)\n        y := cleanup_t_uint224(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610090575f3560e01c80635a3d5493116100635780635a3d5493146101435780637464fc3d1461014c578063abf8127214610155578063d21220a71461016a578063d9fc83c61461017d575f80fd5b80630902f1ac146100945780630dfe1681146100d1578063485cc955146100f05780635909c0d51461012d575b5f80fd5b6002546040516100c8916001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690610350565b60405180910390f35b5f546100e3906001600160a01b031681565b6040516100c89190610399565b61012b6100fe3660046103c8565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b005b61013660035481565b6040516100c89190610408565b61013660045481565b61013660055481565b61015d610190565b6040516100c89190610416565b6001546100e3906001600160a01b031681565b61012b61018b36600461044f565b6101a5565b5f6101a0640100000000426104c3565b905090565b6001600160701b0384118015906101c357506001600160701b038311155b6101e85760405162461bcd60e51b81526004016101df906104d6565b60405180910390fd5b5f6101f8640100000000426104c3565b60025490915063ffffffff600160e01b909104811682039081161580159061022857506001600160701b03841615155b801561023c57506001600160701b03831615155b156102a7578063ffffffff1661026485610255866102fa565b6001600160e01b031690610318565b600380546001600160e01b03929092169290920201905563ffffffff811661028f84610255876102fa565b600480546001600160e01b0392909216929092020190555b506002805463ffffffff909216600160e01b026001600160e01b036001600160701b03968716600160701b026001600160e01b031990941696909716959095179190911794909416929092179092555050565b5f610312600160701b6001600160701b03841661051b565b92915050565b5f61032c6001600160701b0383168461054d565b9392505050565b6001600160701b0381165b82525050565b63ffffffff811661033e565b6060810161035e8286610333565b61036b6020830185610333565b6103786040830184610344565b949350505050565b5f6001600160a01b038216610312565b61033e81610380565b602081016103128284610390565b6103b081610380565b81146103ba575f80fd5b50565b8035610312816103a7565b5f80604083850312156103dc576103dc5f80fd5b5f6103e785856103bd565b92505060206103f8858286016103bd565b9150509250929050565b8061033e565b602081016103128284610402565b602081016103128284610344565b806103b0565b803561031281610424565b6001600160701b0381166103b0565b803561031281610435565b5f805f8060808587031215610465576104655f80fd5b5f610470878761042a565b94505060206104818782880161042a565b935050604061049287828801610444565b92505060606104a387828801610444565b91505092959194509250565b634e487b7160e01b5f52601260045260245ffd5b5f826104d1576104d16104af565b500690565b6020808252810161031281601381527250616e63616b6556323a204f564552464c4f5760681b602082015260400190565b634e487b7160e01b5f52601160045260245ffd5b6001600160e01b03918216919081169082820290811690821583830485141761054657610546610507565b5092915050565b6001600160e01b0391821691165f82610568576105686104af565b50049056fea26469706673582212205e3fa6d9dc1cd1cf7e869c6a9930ae4a06cddbf694c51c245dcb32759777652864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x90 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A3D5493 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0xABF81272 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x16A JUMPI DUP1 PUSH4 0xD9FC83C6 EQ PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x902F1AC EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x12D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x70 SHL DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 PUSH2 0x350 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD PUSH2 0xE3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x399 JUMP JUMPDEST PUSH2 0x12B PUSH2 0xFE CALLDATASIZE PUSH1 0x4 PUSH2 0x3C8 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x136 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x408 JUMP JUMPDEST PUSH2 0x136 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x136 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x15D PUSH2 0x190 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x416 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xE3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x18B CALLDATASIZE PUSH1 0x4 PUSH2 0x44F JUMP JUMPDEST PUSH2 0x1A5 JUMP JUMPDEST PUSH0 PUSH2 0x1A0 PUSH5 0x100000000 TIMESTAMP PUSH2 0x4C3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x1C3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP4 GT ISZERO JUMPDEST PUSH2 0x1E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DF SWAP1 PUSH2 0x4D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1F8 PUSH5 0x100000000 TIMESTAMP PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP2 POP PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0xE0 SHL SWAP1 SWAP2 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x228 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x23C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x264 DUP6 PUSH2 0x255 DUP7 PUSH2 0x2FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 PUSH2 0x318 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x28F DUP5 PUSH2 0x255 DUP8 PUSH2 0x2FA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST POP PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xE0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB SWAP7 DUP8 AND PUSH1 0x1 PUSH1 0x70 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP7 SWAP1 SWAP8 AND SWAP6 SWAP1 SWAP6 OR SWAP2 SWAP1 SWAP2 OR SWAP5 SWAP1 SWAP5 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP3 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x312 PUSH1 0x1 PUSH1 0x70 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP5 AND PUSH2 0x51B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x32C PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP4 AND DUP5 PUSH2 0x54D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x35E DUP3 DUP7 PUSH2 0x333 JUMP JUMPDEST PUSH2 0x36B PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x333 JUMP JUMPDEST PUSH2 0x378 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x344 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x312 JUMP JUMPDEST PUSH2 0x33E DUP2 PUSH2 0x380 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x312 DUP3 DUP5 PUSH2 0x390 JUMP JUMPDEST PUSH2 0x3B0 DUP2 PUSH2 0x380 JUMP JUMPDEST DUP2 EQ PUSH2 0x3BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x312 DUP2 PUSH2 0x3A7 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x3E7 DUP6 DUP6 PUSH2 0x3BD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F8 DUP6 DUP3 DUP7 ADD PUSH2 0x3BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x312 DUP3 DUP5 PUSH2 0x402 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x312 DUP3 DUP5 PUSH2 0x344 JUMP JUMPDEST DUP1 PUSH2 0x3B0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x312 DUP2 PUSH2 0x424 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB DUP2 AND PUSH2 0x3B0 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x312 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x465 JUMPI PUSH2 0x465 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x470 DUP8 DUP8 PUSH2 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x481 DUP8 DUP3 DUP9 ADD PUSH2 0x42A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x492 DUP8 DUP3 DUP9 ADD PUSH2 0x444 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x4A3 DUP8 DUP3 DUP9 ADD PUSH2 0x444 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x4D1 JUMPI PUSH2 0x4D1 PUSH2 0x4AF JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x312 DUP2 PUSH1 0x13 DUP2 MSTORE PUSH19 0x50616E63616B6556323A204F564552464C4F57 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 MUL SWAP1 DUP2 AND SWAP1 DUP3 ISZERO DUP4 DUP4 DIV DUP6 EQ OR PUSH2 0x546 JUMPI PUSH2 0x546 PUSH2 0x507 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP2 DUP3 AND SWAP2 AND PUSH0 DUP3 PUSH2 0x568 JUMPI PUSH2 0x568 PUSH2 0x4AF JUMP JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MCOPY EXTCODEHASH 0xA6 0xD9 0xDC SHR 0xD1 0xCF PUSH31 0x869C6A9930AE4A06CDDBF694C51C245DCB32759777652864736F6C63430008 NOT STOP CALLER ","sourceMap":"1161:2090:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3022:227;3154:8;;3022:227;;;;-1:-1:-1;;;;;3154:8:84;;;;-1:-1:-1;;;3184:8:84;;;;;;-1:-1:-1;;;3224:18:84;;;;;3022:227;:::i;:::-;;;;;;;;1229:21;;;;;-1:-1:-1;;;;;1229:21:84;;;;;;;;;;:::i;1797:122::-;;;;;;:::i;:::-;1870:6;:16;;-1:-1:-1;;;;;1870:16:84;;;-1:-1:-1;;;;;;1870:16:84;;;;;;;;1896;;;;;;;;;;;1797:122;;;1552:35;;;;;;;;;;;;;:::i;1593:::-;;;;;;1634:20;;;;;;2895:121;;;:::i;:::-;;;;;;;:::i;1256:21::-;;;;;-1:-1:-1;;;;;1256:21:84;;;2001:888;;;;;;:::i;:::-;;:::i;2895:121::-;2951:6;2983:25;3001:7;2983:15;:25;:::i;:::-;2969:40;;2895:121;:::o;2001:888::-;-1:-1:-1;;;;;2118:29:84;;;;;:62;;-1:-1:-1;;;;;;2151:29:84;;;2118:62;2110:94;;;;-1:-1:-1;;;2110:94:84;;;;;;;:::i;:::-;;;;;;;;;2214:21;2245:25;2263:7;2245:15;:25;:::i;:::-;2343:18;;2214:57;;-1:-1:-1;2343:18:84;-1:-1:-1;;;2343:18:84;;;;;2326:35;;;2402:15;;;;;;:33;;-1:-1:-1;;;;;;2421:14:84;;;;2402:33;:51;;;;-1:-1:-1;;;;;;2439:14:84;;;;2402:51;2398:354;;;2617:11;2561:67;;2569:44;2603:9;2569:27;2586:9;2569:16;:27::i;:::-;-1:-1:-1;;;;;2569:33:84;;;:44::i;:::-;2537:20;:91;;-1:-1:-1;;;;;2561:53:84;;;;:67;;;;2537:91;;;2670:67;;;2678:44;2712:9;2678:27;2695:9;2678:16;:27::i;:44::-;2646:20;:91;;-1:-1:-1;;;;;2670:53:84;;;;:67;;;;2646:91;;;2398:354;-1:-1:-1;2771:8:84;:28;;2847:35;;;;-1:-1:-1;;;2847:35:84;-1:-1:-1;;;;;;;;;;2809:28:84;;;-1:-1:-1;;;2809:28:84;-1:-1:-1;;;;;;2809:28:84;;;2771;;;;2809;;;;;;;;2847:35;;;;;;;;;;;-1:-1:-1;;2001:888:84:o;865:118::-;915:9;940:17;-1:-1:-1;;;;;;;;940:10:84;;:17;:::i;:::-;936:21;865:118;-1:-1:-1;;865:118:84:o;1051:106::-;1111:9;1136:14;-1:-1:-1;;;;;1140:10:84;;1136:1;:14;:::i;:::-;1132:18;1051:106;-1:-1:-1;;;1051:106:84:o;127:118:101:-;-1:-1:-1;;;;;73:42:101;;214:24;209:3;202:37;127:118;;:::o;350:115::-;327:10;316:22;;435:23;251:93;471:438;656:2;641:18;;669:71;645:9;713:6;669:71;:::i;:::-;750:72;818:2;807:9;803:18;794:6;750:72;:::i;:::-;832:70;898:2;887:9;883:18;874:6;832:70;:::i;:::-;471:438;;;;;;:::o;1047:96::-;1084:7;-1:-1:-1;;;;;981:54:101;;1113:24;915:126;1149:118;1236:24;1254:5;1236:24;:::i;1273:222::-;1404:2;1389:18;;1417:71;1393:9;1461:6;1417:71;:::i;1828:122::-;1901:24;1919:5;1901:24;:::i;:::-;1894:5;1891:35;1881:63;;1940:1;1937;1930:12;1881:63;1828:122;:::o;1956:139::-;2027:20;;2056:33;2027:20;2056:33;:::i;2101:474::-;2169:6;2177;2226:2;2214:9;2205:7;2201:23;2197:32;2194:119;;;2232:79;1161:2090:84;;;2232:79:101;2352:1;2377:53;2422:7;2402:9;2377:53;:::i;:::-;2367:63;;2323:117;2479:2;2505:53;2550:7;2541:6;2530:9;2526:22;2505:53;:::i;:::-;2495:63;;2450:118;2101:474;;;;;:::o;2664:118::-;2769:5;2751:24;2581:77;2788:222;2919:2;2904:18;;2932:71;2908:9;2976:6;2932:71;:::i;3016:218::-;3145:2;3130:18;;3158:69;3134:9;3200:6;3158:69;:::i;3240:122::-;3331:5;3313:24;2581:77;3368:139;3439:20;;3468:33;3439:20;3468:33;:::i;3513:122::-;-1:-1:-1;;;;;73:42:101;;3586:24;7:114;3641:139;3712:20;;3741:33;3712:20;3741:33;:::i;3786:765::-;3872:6;3880;3888;3896;3945:3;3933:9;3924:7;3920:23;3916:33;3913:120;;;3952:79;1161:2090:84;;;3952:79:101;4072:1;4097:53;4142:7;4122:9;4097:53;:::i;:::-;4087:63;;4043:117;4199:2;4225:53;4270:7;4261:6;4250:9;4246:22;4225:53;:::i;:::-;4215:63;;4170:118;4327:2;4353:53;4398:7;4389:6;4378:9;4374:22;4353:53;:::i;:::-;4343:63;;4298:118;4455:2;4481:53;4526:7;4517:6;4506:9;4502:22;4481:53;:::i;:::-;4471:63;;4426:118;3786:765;;;;;;;:::o;4557:180::-;-1:-1:-1;;;4602:1:101;4595:88;4702:4;4699:1;4692:15;4726:4;4723:1;4716:15;4743:176;4775:1;4865;4855:35;;4870:18;;:::i;:::-;-1:-1:-1;4904:9:101;;4743:176::o;5647:419::-;5851:2;5864:47;;;5836:18;;5928:131;5836:18;5502:2;5031:19;;-1:-1:-1;;;5083:4:101;5074:14;;5217:45;5623:12;;;5275:366;6220:180;-1:-1:-1;;;6265:1:101;6258:88;6365:4;6362:1;6355:15;6389:4;6386:1;6379:15;6406:410;-1:-1:-1;;;;;6138:70:101;;;;;;;;6551:9;;;6138:70;;;;6713:9;;6746:15;;;6740:22;;6693:83;6670:139;;6789:18;;:::i;:::-;6454:362;6406:410;;;;:::o;6822:185::-;-1:-1:-1;;;;;6138:70:101;;;;;6862:1;6138:70;6942:35;;6957:18;;:::i;:::-;-1:-1:-1;6992:9:101;;6822:185::o"},"gasEstimates":{"creation":{"codeDepositCost":"288600","executionCost":"329","totalCost":"288929"},"external":{"currentBlockTimestamp()":"395","getReserves()":"infinite","initialize(address,address)":"infinite","kLast()":"2393","price0CumulativeLast()":"2438","price1CumulativeLast()":"2371","token0()":"infinite","token1()":"infinite","update(uint256,uint256,uint112,uint112)":"infinite"}},"methodIdentifiers":{"currentBlockTimestamp()":"abf81272","getReserves()":"0902f1ac","initialize(address,address)":"485cc955","kLast()":"7464fc3d","price0CumulativeLast()":"5909c0d5","price1CumulativeLast()":"5a3d5493","token0()":"0dfe1681","token1()":"d21220a7","update(uint256,uint256,uint112,uint112)":"d9fc83c6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"currentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"_reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"_reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"_blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance1\",\"type\":\"uint256\"},{\"internalType\":\"uint112\",\"name\":\"_reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"_reserve1\",\"type\":\"uint112\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/PancakePairHarness.sol\":\"PancakePairHarness\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/test/PancakePairHarness.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n// a library for performing various math operations\\n\\nlibrary Math {\\n    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\\n        z = x < y ? x : y;\\n    }\\n\\n    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\\n    function sqrt(uint256 y) internal pure returns (uint256 z) {\\n        if (y > 3) {\\n            z = y;\\n            uint256 x = y / 2 + 1;\\n            while (x < z) {\\n                z = x;\\n                x = (y / x + x) / 2;\\n            }\\n        } else if (y != 0) {\\n            z = 1;\\n        }\\n    }\\n}\\n\\n// range: [0, 2**112 - 1]\\n// resolution: 1 / 2**112\\n\\nlibrary UQ112x112 {\\n    //solhint-disable-next-line state-visibility\\n    uint224 constant Q112 = 2 ** 112;\\n\\n    // encode a uint112 as a UQ112x112\\n    function encode(uint112 y) internal pure returns (uint224 z) {\\n        z = uint224(y) * Q112; // never overflows\\n    }\\n\\n    // divide a UQ112x112 by a uint112, returning a UQ112x112\\n    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\\n        z = x / uint224(y);\\n    }\\n}\\n\\ncontract PancakePairHarness {\\n    using UQ112x112 for uint224;\\n\\n    address public token0;\\n    address public token1;\\n\\n    uint112 private reserve0; // uses single storage slot, accessible via getReserves\\n    uint112 private reserve1; // uses single storage slot, accessible via getReserves\\n    uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\\n\\n    uint256 public price0CumulativeLast;\\n    uint256 public price1CumulativeLast;\\n    uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\\n\\n    // called once by the factory at time of deployment\\n    function initialize(address _token0, address _token1) external {\\n        token0 = _token0;\\n        token1 = _token1;\\n    }\\n\\n    // update reserves and, on the first call per block, price accumulators\\n    function update(uint256 balance0, uint256 balance1, uint112 _reserve0, uint112 _reserve1) external {\\n        require(balance0 <= type(uint112).max && balance1 <= type(uint112).max, \\\"PancakeV2: OVERFLOW\\\");\\n        uint32 blockTimestamp = uint32(block.timestamp % 2 ** 32);\\n        unchecked {\\n            uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\\n            if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\\n                // * never overflows, and + overflow is desired\\n                price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;\\n                price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;\\n            }\\n        }\\n        reserve0 = uint112(balance0);\\n        reserve1 = uint112(balance1);\\n        blockTimestampLast = blockTimestamp;\\n    }\\n\\n    function currentBlockTimestamp() external view returns (uint32) {\\n        return uint32(block.timestamp % 2 ** 32);\\n    }\\n\\n    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {\\n        _reserve0 = reserve0;\\n        _reserve1 = reserve1;\\n        _blockTimestampLast = blockTimestampLast;\\n    }\\n}\\n\",\"keccak256\":\"0x745b3603309b8f6c73826777046e35321cdae207bcd9e87fa2fd7a6035c87037\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8532,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"token0","offset":0,"slot":"0","type":"t_address"},{"astId":8534,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"token1","offset":0,"slot":"1","type":"t_address"},{"astId":8536,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"reserve0","offset":0,"slot":"2","type":"t_uint112"},{"astId":8538,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"reserve1","offset":14,"slot":"2","type":"t_uint112"},{"astId":8540,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"blockTimestampLast","offset":28,"slot":"2","type":"t_uint32"},{"astId":8542,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"price0CumulativeLast","offset":0,"slot":"3","type":"t_uint256"},{"astId":8544,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"price1CumulativeLast","offset":0,"slot":"4","type":"t_uint256"},{"astId":8546,"contract":"contracts/test/PancakePairHarness.sol:PancakePairHarness","label":"kLast","offset":0,"slot":"5","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_uint112":{"encoding":"inplace","label":"uint112","numberOfBytes":"14"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{},"version":1}},"UQ112x112":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212209b8f521a6eab643f4d7b02b4a7700e9950cc151a807b9333b8a4a1308df6310964736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP12 DUP16 MSTORE BYTE PUSH15 0xAB643F4D7B02B4A7700E9950CC151A DUP1 PUSH28 0x9333B8A4A1308DF6310964736F6C6343000819003300000000000000 ","sourceMap":"714:445:84:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;714:445:84;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212209b8f521a6eab643f4d7b02b4a7700e9950cc151a807b9333b8a4a1308df6310964736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP12 DUP16 MSTORE BYTE PUSH15 0xAB643F4D7B02B4A7700E9950CC151A DUP1 PUSH28 0x9333B8A4A1308DF6310964736F6C6343000819003300000000000000 ","sourceMap":"714:445:84:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"encode(uint112)":"infinite","uqdiv(uint224,uint112)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/PancakePairHarness.sol\":\"UQ112x112\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/test/PancakePairHarness.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n// a library for performing various math operations\\n\\nlibrary Math {\\n    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\\n        z = x < y ? x : y;\\n    }\\n\\n    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\\n    function sqrt(uint256 y) internal pure returns (uint256 z) {\\n        if (y > 3) {\\n            z = y;\\n            uint256 x = y / 2 + 1;\\n            while (x < z) {\\n                z = x;\\n                x = (y / x + x) / 2;\\n            }\\n        } else if (y != 0) {\\n            z = 1;\\n        }\\n    }\\n}\\n\\n// range: [0, 2**112 - 1]\\n// resolution: 1 / 2**112\\n\\nlibrary UQ112x112 {\\n    //solhint-disable-next-line state-visibility\\n    uint224 constant Q112 = 2 ** 112;\\n\\n    // encode a uint112 as a UQ112x112\\n    function encode(uint112 y) internal pure returns (uint224 z) {\\n        z = uint224(y) * Q112; // never overflows\\n    }\\n\\n    // divide a UQ112x112 by a uint112, returning a UQ112x112\\n    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\\n        z = x / uint224(y);\\n    }\\n}\\n\\ncontract PancakePairHarness {\\n    using UQ112x112 for uint224;\\n\\n    address public token0;\\n    address public token1;\\n\\n    uint112 private reserve0; // uses single storage slot, accessible via getReserves\\n    uint112 private reserve1; // uses single storage slot, accessible via getReserves\\n    uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\\n\\n    uint256 public price0CumulativeLast;\\n    uint256 public price1CumulativeLast;\\n    uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\\n\\n    // called once by the factory at time of deployment\\n    function initialize(address _token0, address _token1) external {\\n        token0 = _token0;\\n        token1 = _token1;\\n    }\\n\\n    // update reserves and, on the first call per block, price accumulators\\n    function update(uint256 balance0, uint256 balance1, uint112 _reserve0, uint112 _reserve1) external {\\n        require(balance0 <= type(uint112).max && balance1 <= type(uint112).max, \\\"PancakeV2: OVERFLOW\\\");\\n        uint32 blockTimestamp = uint32(block.timestamp % 2 ** 32);\\n        unchecked {\\n            uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\\n            if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\\n                // * never overflows, and + overflow is desired\\n                price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;\\n                price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;\\n            }\\n        }\\n        reserve0 = uint112(balance0);\\n        reserve1 = uint112(balance1);\\n        blockTimestampLast = blockTimestamp;\\n    }\\n\\n    function currentBlockTimestamp() external view returns (uint32) {\\n        return uint32(block.timestamp % 2 ** 32);\\n    }\\n\\n    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {\\n        _reserve0 = reserve0;\\n        _reserve1 = reserve1;\\n        _blockTimestampLast = blockTimestampLast;\\n    }\\n}\\n\",\"keccak256\":\"0x745b3603309b8f6c73826777046e35321cdae207bcd9e87fa2fd7a6035c87037\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/VBEP20Harness.sol":{"VBEP20Harness":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"address","name":"underlying_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimalsInternal","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"faucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"@_7558":{"entryPoint":null,"id":7558,"parameterSlots":3,"returnSlots":0},"@_8741":{"entryPoint":null,"id":8741,"parameterSlots":4,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":292,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":355,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":415,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_address_fromMemory":{"entryPoint":468,"id":null,"parameterSlots":2,"returnSlots":4},"allocate_memory":{"entryPoint":213,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":240,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":774,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":432,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":744,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":678,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":837,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":281,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":634,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":169,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":614,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":149,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":727,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":692,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":448,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":397,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:9648:101","nodeType":"YulBlock","src":"0:9648:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2613:43:101","nodeType":"YulBlock","src":"2613:43:101","statements":[{"nativeSrc":"2623:27:101","nodeType":"YulAssignment","src":"2623:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2638:5:101","nodeType":"YulIdentifier","src":"2638:5:101"},{"kind":"number","nativeSrc":"2645:4:101","nodeType":"YulLiteral","src":"2645:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2634:3:101","nodeType":"YulIdentifier","src":"2634:3:101"},"nativeSrc":"2634:16:101","nodeType":"YulFunctionCall","src":"2634:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2623:7:101","nodeType":"YulIdentifier","src":"2623:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2570:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulTypedName","src":"2595:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2605:7:101","nodeType":"YulTypedName","src":"2605:7:101","type":""}],"src":"2570:86:101"},{"body":{"nativeSrc":"2703:77:101","nodeType":"YulBlock","src":"2703:77:101","statements":[{"body":{"nativeSrc":"2758:16:101","nodeType":"YulBlock","src":"2758:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2767:1:101","nodeType":"YulLiteral","src":"2767:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2770:1:101","nodeType":"YulLiteral","src":"2770:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2760:6:101","nodeType":"YulIdentifier","src":"2760:6:101"},"nativeSrc":"2760:12:101","nodeType":"YulFunctionCall","src":"2760:12:101"},"nativeSrc":"2760:12:101","nodeType":"YulExpressionStatement","src":"2760:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2726:5:101","nodeType":"YulIdentifier","src":"2726:5:101"},{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2733:15:101","nodeType":"YulIdentifier","src":"2733:15:101"},"nativeSrc":"2733:22:101","nodeType":"YulFunctionCall","src":"2733:22:101"}],"functionName":{"name":"eq","nativeSrc":"2723:2:101","nodeType":"YulIdentifier","src":"2723:2:101"},"nativeSrc":"2723:33:101","nodeType":"YulFunctionCall","src":"2723:33:101"}],"functionName":{"name":"iszero","nativeSrc":"2716:6:101","nodeType":"YulIdentifier","src":"2716:6:101"},"nativeSrc":"2716:41:101","nodeType":"YulFunctionCall","src":"2716:41:101"},"nativeSrc":"2713:61:101","nodeType":"YulIf","src":"2713:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"2662:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2696:5:101","nodeType":"YulTypedName","src":"2696:5:101","type":""}],"src":"2662:118:101"},{"body":{"nativeSrc":"2847:78:101","nodeType":"YulBlock","src":"2847:78:101","statements":[{"nativeSrc":"2857:22:101","nodeType":"YulAssignment","src":"2857:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"mload","nativeSrc":"2866:5:101","nodeType":"YulIdentifier","src":"2866:5:101"},"nativeSrc":"2866:13:101","nodeType":"YulFunctionCall","src":"2866:13:101"},"variableNames":[{"name":"value","nativeSrc":"2857:5:101","nodeType":"YulIdentifier","src":"2857:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2913:5:101","nodeType":"YulIdentifier","src":"2913:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2888:24:101","nodeType":"YulIdentifier","src":"2888:24:101"},"nativeSrc":"2888:31:101","nodeType":"YulFunctionCall","src":"2888:31:101"},"nativeSrc":"2888:31:101","nodeType":"YulExpressionStatement","src":"2888:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2786:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2825:6:101","nodeType":"YulTypedName","src":"2825:6:101","type":""},{"name":"end","nativeSrc":"2833:3:101","nodeType":"YulTypedName","src":"2833:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2841:5:101","nodeType":"YulTypedName","src":"2841:5:101","type":""}],"src":"2786:139:101"},{"body":{"nativeSrc":"2976:81:101","nodeType":"YulBlock","src":"2976:81:101","statements":[{"nativeSrc":"2986:65:101","nodeType":"YulAssignment","src":"2986:65:101","value":{"arguments":[{"name":"value","nativeSrc":"3001:5:101","nodeType":"YulIdentifier","src":"3001:5:101"},{"kind":"number","nativeSrc":"3008:42:101","nodeType":"YulLiteral","src":"3008:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2997:3:101","nodeType":"YulIdentifier","src":"2997:3:101"},"nativeSrc":"2997:54:101","nodeType":"YulFunctionCall","src":"2997:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2986:7:101","nodeType":"YulIdentifier","src":"2986:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2931:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2958:5:101","nodeType":"YulTypedName","src":"2958:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2968:7:101","nodeType":"YulTypedName","src":"2968:7:101","type":""}],"src":"2931:126:101"},{"body":{"nativeSrc":"3108:51:101","nodeType":"YulBlock","src":"3108:51:101","statements":[{"nativeSrc":"3118:35:101","nodeType":"YulAssignment","src":"3118:35:101","value":{"arguments":[{"name":"value","nativeSrc":"3147:5:101","nodeType":"YulIdentifier","src":"3147:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3129:17:101","nodeType":"YulIdentifier","src":"3129:17:101"},"nativeSrc":"3129:24:101","nodeType":"YulFunctionCall","src":"3129:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3118:7:101","nodeType":"YulIdentifier","src":"3118:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"3063:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3090:5:101","nodeType":"YulTypedName","src":"3090:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3100:7:101","nodeType":"YulTypedName","src":"3100:7:101","type":""}],"src":"3063:96:101"},{"body":{"nativeSrc":"3208:79:101","nodeType":"YulBlock","src":"3208:79:101","statements":[{"body":{"nativeSrc":"3265:16:101","nodeType":"YulBlock","src":"3265:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3274:1:101","nodeType":"YulLiteral","src":"3274:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3277:1:101","nodeType":"YulLiteral","src":"3277:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3267:6:101","nodeType":"YulIdentifier","src":"3267:6:101"},"nativeSrc":"3267:12:101","nodeType":"YulFunctionCall","src":"3267:12:101"},"nativeSrc":"3267:12:101","nodeType":"YulExpressionStatement","src":"3267:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3231:5:101","nodeType":"YulIdentifier","src":"3231:5:101"},{"arguments":[{"name":"value","nativeSrc":"3256:5:101","nodeType":"YulIdentifier","src":"3256:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3238:17:101","nodeType":"YulIdentifier","src":"3238:17:101"},"nativeSrc":"3238:24:101","nodeType":"YulFunctionCall","src":"3238:24:101"}],"functionName":{"name":"eq","nativeSrc":"3228:2:101","nodeType":"YulIdentifier","src":"3228:2:101"},"nativeSrc":"3228:35:101","nodeType":"YulFunctionCall","src":"3228:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3221:6:101","nodeType":"YulIdentifier","src":"3221:6:101"},"nativeSrc":"3221:43:101","nodeType":"YulFunctionCall","src":"3221:43:101"},"nativeSrc":"3218:63:101","nodeType":"YulIf","src":"3218:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"3165:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3201:5:101","nodeType":"YulTypedName","src":"3201:5:101","type":""}],"src":"3165:122:101"},{"body":{"nativeSrc":"3356:80:101","nodeType":"YulBlock","src":"3356:80:101","statements":[{"nativeSrc":"3366:22:101","nodeType":"YulAssignment","src":"3366:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"3381:6:101","nodeType":"YulIdentifier","src":"3381:6:101"}],"functionName":{"name":"mload","nativeSrc":"3375:5:101","nodeType":"YulIdentifier","src":"3375:5:101"},"nativeSrc":"3375:13:101","nodeType":"YulFunctionCall","src":"3375:13:101"},"variableNames":[{"name":"value","nativeSrc":"3366:5:101","nodeType":"YulIdentifier","src":"3366:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3424:5:101","nodeType":"YulIdentifier","src":"3424:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3397:26:101","nodeType":"YulIdentifier","src":"3397:26:101"},"nativeSrc":"3397:33:101","nodeType":"YulFunctionCall","src":"3397:33:101"},"nativeSrc":"3397:33:101","nodeType":"YulExpressionStatement","src":"3397:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"3293:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3334:6:101","nodeType":"YulTypedName","src":"3334:6:101","type":""},{"name":"end","nativeSrc":"3342:3:101","nodeType":"YulTypedName","src":"3342:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3350:5:101","nodeType":"YulTypedName","src":"3350:5:101","type":""}],"src":"3293:143:101"},{"body":{"nativeSrc":"3588:1016:101","nodeType":"YulBlock","src":"3588:1016:101","statements":[{"body":{"nativeSrc":"3635:83:101","nodeType":"YulBlock","src":"3635:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3637:77:101","nodeType":"YulIdentifier","src":"3637:77:101"},"nativeSrc":"3637:79:101","nodeType":"YulFunctionCall","src":"3637:79:101"},"nativeSrc":"3637:79:101","nodeType":"YulExpressionStatement","src":"3637:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3609:7:101","nodeType":"YulIdentifier","src":"3609:7:101"},{"name":"headStart","nativeSrc":"3618:9:101","nodeType":"YulIdentifier","src":"3618:9:101"}],"functionName":{"name":"sub","nativeSrc":"3605:3:101","nodeType":"YulIdentifier","src":"3605:3:101"},"nativeSrc":"3605:23:101","nodeType":"YulFunctionCall","src":"3605:23:101"},{"kind":"number","nativeSrc":"3630:3:101","nodeType":"YulLiteral","src":"3630:3:101","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3601:3:101","nodeType":"YulIdentifier","src":"3601:3:101"},"nativeSrc":"3601:33:101","nodeType":"YulFunctionCall","src":"3601:33:101"},"nativeSrc":"3598:120:101","nodeType":"YulIf","src":"3598:120:101"},{"nativeSrc":"3728:291:101","nodeType":"YulBlock","src":"3728:291:101","statements":[{"nativeSrc":"3743:38:101","nodeType":"YulVariableDeclaration","src":"3743:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3767:9:101","nodeType":"YulIdentifier","src":"3767:9:101"},{"kind":"number","nativeSrc":"3778:1:101","nodeType":"YulLiteral","src":"3778:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3763:3:101","nodeType":"YulIdentifier","src":"3763:3:101"},"nativeSrc":"3763:17:101","nodeType":"YulFunctionCall","src":"3763:17:101"}],"functionName":{"name":"mload","nativeSrc":"3757:5:101","nodeType":"YulIdentifier","src":"3757:5:101"},"nativeSrc":"3757:24:101","nodeType":"YulFunctionCall","src":"3757:24:101"},"variables":[{"name":"offset","nativeSrc":"3747:6:101","nodeType":"YulTypedName","src":"3747:6:101","type":""}]},{"body":{"nativeSrc":"3828:83:101","nodeType":"YulBlock","src":"3828:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3830:77:101","nodeType":"YulIdentifier","src":"3830:77:101"},"nativeSrc":"3830:79:101","nodeType":"YulFunctionCall","src":"3830:79:101"},"nativeSrc":"3830:79:101","nodeType":"YulExpressionStatement","src":"3830:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3800:6:101","nodeType":"YulIdentifier","src":"3800:6:101"},{"kind":"number","nativeSrc":"3808:18:101","nodeType":"YulLiteral","src":"3808:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3797:2:101","nodeType":"YulIdentifier","src":"3797:2:101"},"nativeSrc":"3797:30:101","nodeType":"YulFunctionCall","src":"3797:30:101"},"nativeSrc":"3794:117:101","nodeType":"YulIf","src":"3794:117:101"},{"nativeSrc":"3925:84:101","nodeType":"YulAssignment","src":"3925:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3981:9:101","nodeType":"YulIdentifier","src":"3981:9:101"},{"name":"offset","nativeSrc":"3992:6:101","nodeType":"YulIdentifier","src":"3992:6:101"}],"functionName":{"name":"add","nativeSrc":"3977:3:101","nodeType":"YulIdentifier","src":"3977:3:101"},"nativeSrc":"3977:22:101","nodeType":"YulFunctionCall","src":"3977:22:101"},{"name":"dataEnd","nativeSrc":"4001:7:101","nodeType":"YulIdentifier","src":"4001:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3935:41:101","nodeType":"YulIdentifier","src":"3935:41:101"},"nativeSrc":"3935:74:101","nodeType":"YulFunctionCall","src":"3935:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3925:6:101","nodeType":"YulIdentifier","src":"3925:6:101"}]}]},{"nativeSrc":"4029:292:101","nodeType":"YulBlock","src":"4029:292:101","statements":[{"nativeSrc":"4044:39:101","nodeType":"YulVariableDeclaration","src":"4044:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4068:9:101","nodeType":"YulIdentifier","src":"4068:9:101"},{"kind":"number","nativeSrc":"4079:2:101","nodeType":"YulLiteral","src":"4079:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4064:3:101","nodeType":"YulIdentifier","src":"4064:3:101"},"nativeSrc":"4064:18:101","nodeType":"YulFunctionCall","src":"4064:18:101"}],"functionName":{"name":"mload","nativeSrc":"4058:5:101","nodeType":"YulIdentifier","src":"4058:5:101"},"nativeSrc":"4058:25:101","nodeType":"YulFunctionCall","src":"4058:25:101"},"variables":[{"name":"offset","nativeSrc":"4048:6:101","nodeType":"YulTypedName","src":"4048:6:101","type":""}]},{"body":{"nativeSrc":"4130:83:101","nodeType":"YulBlock","src":"4130:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4132:77:101","nodeType":"YulIdentifier","src":"4132:77:101"},"nativeSrc":"4132:79:101","nodeType":"YulFunctionCall","src":"4132:79:101"},"nativeSrc":"4132:79:101","nodeType":"YulExpressionStatement","src":"4132:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4102:6:101","nodeType":"YulIdentifier","src":"4102:6:101"},{"kind":"number","nativeSrc":"4110:18:101","nodeType":"YulLiteral","src":"4110:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4099:2:101","nodeType":"YulIdentifier","src":"4099:2:101"},"nativeSrc":"4099:30:101","nodeType":"YulFunctionCall","src":"4099:30:101"},"nativeSrc":"4096:117:101","nodeType":"YulIf","src":"4096:117:101"},{"nativeSrc":"4227:84:101","nodeType":"YulAssignment","src":"4227:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4283:9:101","nodeType":"YulIdentifier","src":"4283:9:101"},{"name":"offset","nativeSrc":"4294:6:101","nodeType":"YulIdentifier","src":"4294:6:101"}],"functionName":{"name":"add","nativeSrc":"4279:3:101","nodeType":"YulIdentifier","src":"4279:3:101"},"nativeSrc":"4279:22:101","nodeType":"YulFunctionCall","src":"4279:22:101"},{"name":"dataEnd","nativeSrc":"4303:7:101","nodeType":"YulIdentifier","src":"4303:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"4237:41:101","nodeType":"YulIdentifier","src":"4237:41:101"},"nativeSrc":"4237:74:101","nodeType":"YulFunctionCall","src":"4237:74:101"},"variableNames":[{"name":"value1","nativeSrc":"4227:6:101","nodeType":"YulIdentifier","src":"4227:6:101"}]}]},{"nativeSrc":"4331:127:101","nodeType":"YulBlock","src":"4331:127:101","statements":[{"nativeSrc":"4346:16:101","nodeType":"YulVariableDeclaration","src":"4346:16:101","value":{"kind":"number","nativeSrc":"4360:2:101","nodeType":"YulLiteral","src":"4360:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4350:6:101","nodeType":"YulTypedName","src":"4350:6:101","type":""}]},{"nativeSrc":"4376:72:101","nodeType":"YulAssignment","src":"4376:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4420:9:101","nodeType":"YulIdentifier","src":"4420:9:101"},{"name":"offset","nativeSrc":"4431:6:101","nodeType":"YulIdentifier","src":"4431:6:101"}],"functionName":{"name":"add","nativeSrc":"4416:3:101","nodeType":"YulIdentifier","src":"4416:3:101"},"nativeSrc":"4416:22:101","nodeType":"YulFunctionCall","src":"4416:22:101"},{"name":"dataEnd","nativeSrc":"4440:7:101","nodeType":"YulIdentifier","src":"4440:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"4386:29:101","nodeType":"YulIdentifier","src":"4386:29:101"},"nativeSrc":"4386:62:101","nodeType":"YulFunctionCall","src":"4386:62:101"},"variableNames":[{"name":"value2","nativeSrc":"4376:6:101","nodeType":"YulIdentifier","src":"4376:6:101"}]}]},{"nativeSrc":"4468:129:101","nodeType":"YulBlock","src":"4468:129:101","statements":[{"nativeSrc":"4483:16:101","nodeType":"YulVariableDeclaration","src":"4483:16:101","value":{"kind":"number","nativeSrc":"4497:2:101","nodeType":"YulLiteral","src":"4497:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"4487:6:101","nodeType":"YulTypedName","src":"4487:6:101","type":""}]},{"nativeSrc":"4513:74:101","nodeType":"YulAssignment","src":"4513:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4559:9:101","nodeType":"YulIdentifier","src":"4559:9:101"},{"name":"offset","nativeSrc":"4570:6:101","nodeType":"YulIdentifier","src":"4570:6:101"}],"functionName":{"name":"add","nativeSrc":"4555:3:101","nodeType":"YulIdentifier","src":"4555:3:101"},"nativeSrc":"4555:22:101","nodeType":"YulFunctionCall","src":"4555:22:101"},{"name":"dataEnd","nativeSrc":"4579:7:101","nodeType":"YulIdentifier","src":"4579:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"4523:31:101","nodeType":"YulIdentifier","src":"4523:31:101"},"nativeSrc":"4523:64:101","nodeType":"YulFunctionCall","src":"4523:64:101"},"variableNames":[{"name":"value3","nativeSrc":"4513:6:101","nodeType":"YulIdentifier","src":"4513:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_address_fromMemory","nativeSrc":"3442:1162:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3534:9:101","nodeType":"YulTypedName","src":"3534:9:101","type":""},{"name":"dataEnd","nativeSrc":"3545:7:101","nodeType":"YulTypedName","src":"3545:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3557:6:101","nodeType":"YulTypedName","src":"3557:6:101","type":""},{"name":"value1","nativeSrc":"3565:6:101","nodeType":"YulTypedName","src":"3565:6:101","type":""},{"name":"value2","nativeSrc":"3573:6:101","nodeType":"YulTypedName","src":"3573:6:101","type":""},{"name":"value3","nativeSrc":"3581:6:101","nodeType":"YulTypedName","src":"3581:6:101","type":""}],"src":"3442:1162:101"},{"body":{"nativeSrc":"4669:40:101","nodeType":"YulBlock","src":"4669:40:101","statements":[{"nativeSrc":"4680:22:101","nodeType":"YulAssignment","src":"4680:22:101","value":{"arguments":[{"name":"value","nativeSrc":"4696:5:101","nodeType":"YulIdentifier","src":"4696:5:101"}],"functionName":{"name":"mload","nativeSrc":"4690:5:101","nodeType":"YulIdentifier","src":"4690:5:101"},"nativeSrc":"4690:12:101","nodeType":"YulFunctionCall","src":"4690:12:101"},"variableNames":[{"name":"length","nativeSrc":"4680:6:101","nodeType":"YulIdentifier","src":"4680:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"4610:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4652:5:101","nodeType":"YulTypedName","src":"4652:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4662:6:101","nodeType":"YulTypedName","src":"4662:6:101","type":""}],"src":"4610:99:101"},{"body":{"nativeSrc":"4743:152:101","nodeType":"YulBlock","src":"4743:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4760:1:101","nodeType":"YulLiteral","src":"4760:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4763:77:101","nodeType":"YulLiteral","src":"4763:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4753:6:101","nodeType":"YulIdentifier","src":"4753:6:101"},"nativeSrc":"4753:88:101","nodeType":"YulFunctionCall","src":"4753:88:101"},"nativeSrc":"4753:88:101","nodeType":"YulExpressionStatement","src":"4753:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4857:1:101","nodeType":"YulLiteral","src":"4857:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4860:4:101","nodeType":"YulLiteral","src":"4860:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4850:6:101","nodeType":"YulIdentifier","src":"4850:6:101"},"nativeSrc":"4850:15:101","nodeType":"YulFunctionCall","src":"4850:15:101"},"nativeSrc":"4850:15:101","nodeType":"YulExpressionStatement","src":"4850:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4881:1:101","nodeType":"YulLiteral","src":"4881:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4884:4:101","nodeType":"YulLiteral","src":"4884:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4874:6:101","nodeType":"YulIdentifier","src":"4874:6:101"},"nativeSrc":"4874:15:101","nodeType":"YulFunctionCall","src":"4874:15:101"},"nativeSrc":"4874:15:101","nodeType":"YulExpressionStatement","src":"4874:15:101"}]},"name":"panic_error_0x22","nativeSrc":"4715:180:101","nodeType":"YulFunctionDefinition","src":"4715:180:101"},{"body":{"nativeSrc":"4952:269:101","nodeType":"YulBlock","src":"4952:269:101","statements":[{"nativeSrc":"4962:22:101","nodeType":"YulAssignment","src":"4962:22:101","value":{"arguments":[{"name":"data","nativeSrc":"4976:4:101","nodeType":"YulIdentifier","src":"4976:4:101"},{"kind":"number","nativeSrc":"4982:1:101","nodeType":"YulLiteral","src":"4982:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4972:3:101","nodeType":"YulIdentifier","src":"4972:3:101"},"nativeSrc":"4972:12:101","nodeType":"YulFunctionCall","src":"4972:12:101"},"variableNames":[{"name":"length","nativeSrc":"4962:6:101","nodeType":"YulIdentifier","src":"4962:6:101"}]},{"nativeSrc":"4993:38:101","nodeType":"YulVariableDeclaration","src":"4993:38:101","value":{"arguments":[{"name":"data","nativeSrc":"5023:4:101","nodeType":"YulIdentifier","src":"5023:4:101"},{"kind":"number","nativeSrc":"5029:1:101","nodeType":"YulLiteral","src":"5029:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5019:3:101","nodeType":"YulIdentifier","src":"5019:3:101"},"nativeSrc":"5019:12:101","nodeType":"YulFunctionCall","src":"5019:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4997:18:101","nodeType":"YulTypedName","src":"4997:18:101","type":""}]},{"body":{"nativeSrc":"5070:51:101","nodeType":"YulBlock","src":"5070:51:101","statements":[{"nativeSrc":"5084:27:101","nodeType":"YulAssignment","src":"5084:27:101","value":{"arguments":[{"name":"length","nativeSrc":"5098:6:101","nodeType":"YulIdentifier","src":"5098:6:101"},{"kind":"number","nativeSrc":"5106:4:101","nodeType":"YulLiteral","src":"5106:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5094:3:101","nodeType":"YulIdentifier","src":"5094:3:101"},"nativeSrc":"5094:17:101","nodeType":"YulFunctionCall","src":"5094:17:101"},"variableNames":[{"name":"length","nativeSrc":"5084:6:101","nodeType":"YulIdentifier","src":"5084:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5050:18:101","nodeType":"YulIdentifier","src":"5050:18:101"}],"functionName":{"name":"iszero","nativeSrc":"5043:6:101","nodeType":"YulIdentifier","src":"5043:6:101"},"nativeSrc":"5043:26:101","nodeType":"YulFunctionCall","src":"5043:26:101"},"nativeSrc":"5040:81:101","nodeType":"YulIf","src":"5040:81:101"},{"body":{"nativeSrc":"5173:42:101","nodeType":"YulBlock","src":"5173:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"5187:16:101","nodeType":"YulIdentifier","src":"5187:16:101"},"nativeSrc":"5187:18:101","nodeType":"YulFunctionCall","src":"5187:18:101"},"nativeSrc":"5187:18:101","nodeType":"YulExpressionStatement","src":"5187:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5137:18:101","nodeType":"YulIdentifier","src":"5137:18:101"},{"arguments":[{"name":"length","nativeSrc":"5160:6:101","nodeType":"YulIdentifier","src":"5160:6:101"},{"kind":"number","nativeSrc":"5168:2:101","nodeType":"YulLiteral","src":"5168:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5157:2:101","nodeType":"YulIdentifier","src":"5157:2:101"},"nativeSrc":"5157:14:101","nodeType":"YulFunctionCall","src":"5157:14:101"}],"functionName":{"name":"eq","nativeSrc":"5134:2:101","nodeType":"YulIdentifier","src":"5134:2:101"},"nativeSrc":"5134:38:101","nodeType":"YulFunctionCall","src":"5134:38:101"},"nativeSrc":"5131:84:101","nodeType":"YulIf","src":"5131:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"4901:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4936:4:101","nodeType":"YulTypedName","src":"4936:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4945:6:101","nodeType":"YulTypedName","src":"4945:6:101","type":""}],"src":"4901:320:101"},{"body":{"nativeSrc":"5281:87:101","nodeType":"YulBlock","src":"5281:87:101","statements":[{"nativeSrc":"5291:11:101","nodeType":"YulAssignment","src":"5291:11:101","value":{"name":"ptr","nativeSrc":"5299:3:101","nodeType":"YulIdentifier","src":"5299:3:101"},"variableNames":[{"name":"data","nativeSrc":"5291:4:101","nodeType":"YulIdentifier","src":"5291:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5319:1:101","nodeType":"YulLiteral","src":"5319:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"5322:3:101","nodeType":"YulIdentifier","src":"5322:3:101"}],"functionName":{"name":"mstore","nativeSrc":"5312:6:101","nodeType":"YulIdentifier","src":"5312:6:101"},"nativeSrc":"5312:14:101","nodeType":"YulFunctionCall","src":"5312:14:101"},"nativeSrc":"5312:14:101","nodeType":"YulExpressionStatement","src":"5312:14:101"},{"nativeSrc":"5335:26:101","nodeType":"YulAssignment","src":"5335:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"5353:1:101","nodeType":"YulLiteral","src":"5353:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5356:4:101","nodeType":"YulLiteral","src":"5356:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5343:9:101","nodeType":"YulIdentifier","src":"5343:9:101"},"nativeSrc":"5343:18:101","nodeType":"YulFunctionCall","src":"5343:18:101"},"variableNames":[{"name":"data","nativeSrc":"5335:4:101","nodeType":"YulIdentifier","src":"5335:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"5227:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"5268:3:101","nodeType":"YulTypedName","src":"5268:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"5276:4:101","nodeType":"YulTypedName","src":"5276:4:101","type":""}],"src":"5227:141:101"},{"body":{"nativeSrc":"5418:49:101","nodeType":"YulBlock","src":"5418:49:101","statements":[{"nativeSrc":"5428:33:101","nodeType":"YulAssignment","src":"5428:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5446:5:101","nodeType":"YulIdentifier","src":"5446:5:101"},{"kind":"number","nativeSrc":"5453:2:101","nodeType":"YulLiteral","src":"5453:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"},"nativeSrc":"5442:14:101","nodeType":"YulFunctionCall","src":"5442:14:101"},{"kind":"number","nativeSrc":"5458:2:101","nodeType":"YulLiteral","src":"5458:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"5438:3:101","nodeType":"YulIdentifier","src":"5438:3:101"},"nativeSrc":"5438:23:101","nodeType":"YulFunctionCall","src":"5438:23:101"},"variableNames":[{"name":"result","nativeSrc":"5428:6:101","nodeType":"YulIdentifier","src":"5428:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"5374:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5401:5:101","nodeType":"YulTypedName","src":"5401:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5411:6:101","nodeType":"YulTypedName","src":"5411:6:101","type":""}],"src":"5374:93:101"},{"body":{"nativeSrc":"5526:54:101","nodeType":"YulBlock","src":"5526:54:101","statements":[{"nativeSrc":"5536:37:101","nodeType":"YulAssignment","src":"5536:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"5561:4:101","nodeType":"YulIdentifier","src":"5561:4:101"},{"name":"value","nativeSrc":"5567:5:101","nodeType":"YulIdentifier","src":"5567:5:101"}],"functionName":{"name":"shl","nativeSrc":"5557:3:101","nodeType":"YulIdentifier","src":"5557:3:101"},"nativeSrc":"5557:16:101","nodeType":"YulFunctionCall","src":"5557:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"5536:8:101","nodeType":"YulIdentifier","src":"5536:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"5473:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"5501:4:101","nodeType":"YulTypedName","src":"5501:4:101","type":""},{"name":"value","nativeSrc":"5507:5:101","nodeType":"YulTypedName","src":"5507:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"5517:8:101","nodeType":"YulTypedName","src":"5517:8:101","type":""}],"src":"5473:107:101"},{"body":{"nativeSrc":"5662:317:101","nodeType":"YulBlock","src":"5662:317:101","statements":[{"nativeSrc":"5672:35:101","nodeType":"YulVariableDeclaration","src":"5672:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5693:10:101","nodeType":"YulIdentifier","src":"5693:10:101"},{"kind":"number","nativeSrc":"5705:1:101","nodeType":"YulLiteral","src":"5705:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5689:3:101","nodeType":"YulIdentifier","src":"5689:3:101"},"nativeSrc":"5689:18:101","nodeType":"YulFunctionCall","src":"5689:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"5676:9:101","nodeType":"YulTypedName","src":"5676:9:101","type":""}]},{"nativeSrc":"5716:109:101","nodeType":"YulVariableDeclaration","src":"5716:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5747:9:101","nodeType":"YulIdentifier","src":"5747:9:101"},{"kind":"number","nativeSrc":"5758:66:101","nodeType":"YulLiteral","src":"5758:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5728:18:101","nodeType":"YulIdentifier","src":"5728:18:101"},"nativeSrc":"5728:97:101","nodeType":"YulFunctionCall","src":"5728:97:101"},"variables":[{"name":"mask","nativeSrc":"5720:4:101","nodeType":"YulTypedName","src":"5720:4:101","type":""}]},{"nativeSrc":"5834:51:101","nodeType":"YulAssignment","src":"5834:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5865:9:101","nodeType":"YulIdentifier","src":"5865:9:101"},{"name":"toInsert","nativeSrc":"5876:8:101","nodeType":"YulIdentifier","src":"5876:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5846:18:101","nodeType":"YulIdentifier","src":"5846:18:101"},"nativeSrc":"5846:39:101","nodeType":"YulFunctionCall","src":"5846:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"5834:8:101","nodeType":"YulIdentifier","src":"5834:8:101"}]},{"nativeSrc":"5894:30:101","nodeType":"YulAssignment","src":"5894:30:101","value":{"arguments":[{"name":"value","nativeSrc":"5907:5:101","nodeType":"YulIdentifier","src":"5907:5:101"},{"arguments":[{"name":"mask","nativeSrc":"5918:4:101","nodeType":"YulIdentifier","src":"5918:4:101"}],"functionName":{"name":"not","nativeSrc":"5914:3:101","nodeType":"YulIdentifier","src":"5914:3:101"},"nativeSrc":"5914:9:101","nodeType":"YulFunctionCall","src":"5914:9:101"}],"functionName":{"name":"and","nativeSrc":"5903:3:101","nodeType":"YulIdentifier","src":"5903:3:101"},"nativeSrc":"5903:21:101","nodeType":"YulFunctionCall","src":"5903:21:101"},"variableNames":[{"name":"value","nativeSrc":"5894:5:101","nodeType":"YulIdentifier","src":"5894:5:101"}]},{"nativeSrc":"5933:40:101","nodeType":"YulAssignment","src":"5933:40:101","value":{"arguments":[{"name":"value","nativeSrc":"5946:5:101","nodeType":"YulIdentifier","src":"5946:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"5957:8:101","nodeType":"YulIdentifier","src":"5957:8:101"},{"name":"mask","nativeSrc":"5967:4:101","nodeType":"YulIdentifier","src":"5967:4:101"}],"functionName":{"name":"and","nativeSrc":"5953:3:101","nodeType":"YulIdentifier","src":"5953:3:101"},"nativeSrc":"5953:19:101","nodeType":"YulFunctionCall","src":"5953:19:101"}],"functionName":{"name":"or","nativeSrc":"5943:2:101","nodeType":"YulIdentifier","src":"5943:2:101"},"nativeSrc":"5943:30:101","nodeType":"YulFunctionCall","src":"5943:30:101"},"variableNames":[{"name":"result","nativeSrc":"5933:6:101","nodeType":"YulIdentifier","src":"5933:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"5586:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5623:5:101","nodeType":"YulTypedName","src":"5623:5:101","type":""},{"name":"shiftBytes","nativeSrc":"5630:10:101","nodeType":"YulTypedName","src":"5630:10:101","type":""},{"name":"toInsert","nativeSrc":"5642:8:101","nodeType":"YulTypedName","src":"5642:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5655:6:101","nodeType":"YulTypedName","src":"5655:6:101","type":""}],"src":"5586:393:101"},{"body":{"nativeSrc":"6030:32:101","nodeType":"YulBlock","src":"6030:32:101","statements":[{"nativeSrc":"6040:16:101","nodeType":"YulAssignment","src":"6040:16:101","value":{"name":"value","nativeSrc":"6051:5:101","nodeType":"YulIdentifier","src":"6051:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"6040:7:101","nodeType":"YulIdentifier","src":"6040:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5985:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6012:5:101","nodeType":"YulTypedName","src":"6012:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6022:7:101","nodeType":"YulTypedName","src":"6022:7:101","type":""}],"src":"5985:77:101"},{"body":{"nativeSrc":"6100:28:101","nodeType":"YulBlock","src":"6100:28:101","statements":[{"nativeSrc":"6110:12:101","nodeType":"YulAssignment","src":"6110:12:101","value":{"name":"value","nativeSrc":"6117:5:101","nodeType":"YulIdentifier","src":"6117:5:101"},"variableNames":[{"name":"ret","nativeSrc":"6110:3:101","nodeType":"YulIdentifier","src":"6110:3:101"}]}]},"name":"identity","nativeSrc":"6068:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6086:5:101","nodeType":"YulTypedName","src":"6086:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"6096:3:101","nodeType":"YulTypedName","src":"6096:3:101","type":""}],"src":"6068:60:101"},{"body":{"nativeSrc":"6194:82:101","nodeType":"YulBlock","src":"6194:82:101","statements":[{"nativeSrc":"6204:66:101","nodeType":"YulAssignment","src":"6204:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6262:5:101","nodeType":"YulIdentifier","src":"6262:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6244:17:101","nodeType":"YulIdentifier","src":"6244:17:101"},"nativeSrc":"6244:24:101","nodeType":"YulFunctionCall","src":"6244:24:101"}],"functionName":{"name":"identity","nativeSrc":"6235:8:101","nodeType":"YulIdentifier","src":"6235:8:101"},"nativeSrc":"6235:34:101","nodeType":"YulFunctionCall","src":"6235:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6217:17:101","nodeType":"YulIdentifier","src":"6217:17:101"},"nativeSrc":"6217:53:101","nodeType":"YulFunctionCall","src":"6217:53:101"},"variableNames":[{"name":"converted","nativeSrc":"6204:9:101","nodeType":"YulIdentifier","src":"6204:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"6134:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6174:5:101","nodeType":"YulTypedName","src":"6174:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6184:9:101","nodeType":"YulTypedName","src":"6184:9:101","type":""}],"src":"6134:142:101"},{"body":{"nativeSrc":"6329:28:101","nodeType":"YulBlock","src":"6329:28:101","statements":[{"nativeSrc":"6339:12:101","nodeType":"YulAssignment","src":"6339:12:101","value":{"name":"value","nativeSrc":"6346:5:101","nodeType":"YulIdentifier","src":"6346:5:101"},"variableNames":[{"name":"ret","nativeSrc":"6339:3:101","nodeType":"YulIdentifier","src":"6339:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"6282:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6315:5:101","nodeType":"YulTypedName","src":"6315:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"6325:3:101","nodeType":"YulTypedName","src":"6325:3:101","type":""}],"src":"6282:75:101"},{"body":{"nativeSrc":"6439:193:101","nodeType":"YulBlock","src":"6439:193:101","statements":[{"nativeSrc":"6449:63:101","nodeType":"YulVariableDeclaration","src":"6449:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"6504:7:101","nodeType":"YulIdentifier","src":"6504:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"6473:30:101","nodeType":"YulIdentifier","src":"6473:30:101"},"nativeSrc":"6473:39:101","nodeType":"YulFunctionCall","src":"6473:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"6453:16:101","nodeType":"YulTypedName","src":"6453:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6528:4:101","nodeType":"YulIdentifier","src":"6528:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"6568:4:101","nodeType":"YulIdentifier","src":"6568:4:101"}],"functionName":{"name":"sload","nativeSrc":"6562:5:101","nodeType":"YulIdentifier","src":"6562:5:101"},"nativeSrc":"6562:11:101","nodeType":"YulFunctionCall","src":"6562:11:101"},{"name":"offset","nativeSrc":"6575:6:101","nodeType":"YulIdentifier","src":"6575:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"6607:16:101","nodeType":"YulIdentifier","src":"6607:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"6583:23:101","nodeType":"YulIdentifier","src":"6583:23:101"},"nativeSrc":"6583:41:101","nodeType":"YulFunctionCall","src":"6583:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"6534:27:101","nodeType":"YulIdentifier","src":"6534:27:101"},"nativeSrc":"6534:91:101","nodeType":"YulFunctionCall","src":"6534:91:101"}],"functionName":{"name":"sstore","nativeSrc":"6521:6:101","nodeType":"YulIdentifier","src":"6521:6:101"},"nativeSrc":"6521:105:101","nodeType":"YulFunctionCall","src":"6521:105:101"},"nativeSrc":"6521:105:101","nodeType":"YulExpressionStatement","src":"6521:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6363:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6416:4:101","nodeType":"YulTypedName","src":"6416:4:101","type":""},{"name":"offset","nativeSrc":"6422:6:101","nodeType":"YulTypedName","src":"6422:6:101","type":""},{"name":"value_0","nativeSrc":"6430:7:101","nodeType":"YulTypedName","src":"6430:7:101","type":""}],"src":"6363:269:101"},{"body":{"nativeSrc":"6687:24:101","nodeType":"YulBlock","src":"6687:24:101","statements":[{"nativeSrc":"6697:8:101","nodeType":"YulAssignment","src":"6697:8:101","value":{"kind":"number","nativeSrc":"6704:1:101","nodeType":"YulLiteral","src":"6704:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6697:3:101","nodeType":"YulIdentifier","src":"6697:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"6638:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6683:3:101","nodeType":"YulTypedName","src":"6683:3:101","type":""}],"src":"6638:73:101"},{"body":{"nativeSrc":"6770:136:101","nodeType":"YulBlock","src":"6770:136:101","statements":[{"nativeSrc":"6780:46:101","nodeType":"YulVariableDeclaration","src":"6780:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6794:30:101","nodeType":"YulIdentifier","src":"6794:30:101"},"nativeSrc":"6794:32:101","nodeType":"YulFunctionCall","src":"6794:32:101"},"variables":[{"name":"zero_0","nativeSrc":"6784:6:101","nodeType":"YulTypedName","src":"6784:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6879:4:101","nodeType":"YulIdentifier","src":"6879:4:101"},{"name":"offset","nativeSrc":"6885:6:101","nodeType":"YulIdentifier","src":"6885:6:101"},{"name":"zero_0","nativeSrc":"6893:6:101","nodeType":"YulIdentifier","src":"6893:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6835:43:101","nodeType":"YulIdentifier","src":"6835:43:101"},"nativeSrc":"6835:65:101","nodeType":"YulFunctionCall","src":"6835:65:101"},"nativeSrc":"6835:65:101","nodeType":"YulExpressionStatement","src":"6835:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6717:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6756:4:101","nodeType":"YulTypedName","src":"6756:4:101","type":""},{"name":"offset","nativeSrc":"6762:6:101","nodeType":"YulTypedName","src":"6762:6:101","type":""}],"src":"6717:189:101"},{"body":{"nativeSrc":"6962:136:101","nodeType":"YulBlock","src":"6962:136:101","statements":[{"body":{"nativeSrc":"7029:63:101","nodeType":"YulBlock","src":"7029:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"7073:5:101","nodeType":"YulIdentifier","src":"7073:5:101"},{"kind":"number","nativeSrc":"7080:1:101","nodeType":"YulLiteral","src":"7080:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"7043:29:101","nodeType":"YulIdentifier","src":"7043:29:101"},"nativeSrc":"7043:39:101","nodeType":"YulFunctionCall","src":"7043:39:101"},"nativeSrc":"7043:39:101","nodeType":"YulExpressionStatement","src":"7043:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6982:5:101","nodeType":"YulIdentifier","src":"6982:5:101"},{"name":"end","nativeSrc":"6989:3:101","nodeType":"YulIdentifier","src":"6989:3:101"}],"functionName":{"name":"lt","nativeSrc":"6979:2:101","nodeType":"YulIdentifier","src":"6979:2:101"},"nativeSrc":"6979:14:101","nodeType":"YulFunctionCall","src":"6979:14:101"},"nativeSrc":"6972:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"6994:26:101","nodeType":"YulBlock","src":"6994:26:101","statements":[{"nativeSrc":"6996:22:101","nodeType":"YulAssignment","src":"6996:22:101","value":{"arguments":[{"name":"start","nativeSrc":"7009:5:101","nodeType":"YulIdentifier","src":"7009:5:101"},{"kind":"number","nativeSrc":"7016:1:101","nodeType":"YulLiteral","src":"7016:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7005:3:101","nodeType":"YulIdentifier","src":"7005:3:101"},"nativeSrc":"7005:13:101","nodeType":"YulFunctionCall","src":"7005:13:101"},"variableNames":[{"name":"start","nativeSrc":"6996:5:101","nodeType":"YulIdentifier","src":"6996:5:101"}]}]},"pre":{"nativeSrc":"6976:2:101","nodeType":"YulBlock","src":"6976:2:101","statements":[]},"src":"6972:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6912:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6950:5:101","nodeType":"YulTypedName","src":"6950:5:101","type":""},{"name":"end","nativeSrc":"6957:3:101","nodeType":"YulTypedName","src":"6957:3:101","type":""}],"src":"6912:186:101"},{"body":{"nativeSrc":"7183:464:101","nodeType":"YulBlock","src":"7183:464:101","statements":[{"body":{"nativeSrc":"7209:431:101","nodeType":"YulBlock","src":"7209:431:101","statements":[{"nativeSrc":"7223:54:101","nodeType":"YulVariableDeclaration","src":"7223:54:101","value":{"arguments":[{"name":"array","nativeSrc":"7271:5:101","nodeType":"YulIdentifier","src":"7271:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"7239:31:101","nodeType":"YulIdentifier","src":"7239:31:101"},"nativeSrc":"7239:38:101","nodeType":"YulFunctionCall","src":"7239:38:101"},"variables":[{"name":"dataArea","nativeSrc":"7227:8:101","nodeType":"YulTypedName","src":"7227:8:101","type":""}]},{"nativeSrc":"7290:63:101","nodeType":"YulVariableDeclaration","src":"7290:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"7313:8:101","nodeType":"YulIdentifier","src":"7313:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"7341:10:101","nodeType":"YulIdentifier","src":"7341:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"7323:17:101","nodeType":"YulIdentifier","src":"7323:17:101"},"nativeSrc":"7323:29:101","nodeType":"YulFunctionCall","src":"7323:29:101"}],"functionName":{"name":"add","nativeSrc":"7309:3:101","nodeType":"YulIdentifier","src":"7309:3:101"},"nativeSrc":"7309:44:101","nodeType":"YulFunctionCall","src":"7309:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"7294:11:101","nodeType":"YulTypedName","src":"7294:11:101","type":""}]},{"body":{"nativeSrc":"7510:27:101","nodeType":"YulBlock","src":"7510:27:101","statements":[{"nativeSrc":"7512:23:101","nodeType":"YulAssignment","src":"7512:23:101","value":{"name":"dataArea","nativeSrc":"7527:8:101","nodeType":"YulIdentifier","src":"7527:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"7512:11:101","nodeType":"YulIdentifier","src":"7512:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"7494:10:101","nodeType":"YulIdentifier","src":"7494:10:101"},{"kind":"number","nativeSrc":"7506:2:101","nodeType":"YulLiteral","src":"7506:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"7491:2:101","nodeType":"YulIdentifier","src":"7491:2:101"},"nativeSrc":"7491:18:101","nodeType":"YulFunctionCall","src":"7491:18:101"},"nativeSrc":"7488:49:101","nodeType":"YulIf","src":"7488:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"7579:11:101","nodeType":"YulIdentifier","src":"7579:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"7596:8:101","nodeType":"YulIdentifier","src":"7596:8:101"},{"arguments":[{"name":"len","nativeSrc":"7624:3:101","nodeType":"YulIdentifier","src":"7624:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"7606:17:101","nodeType":"YulIdentifier","src":"7606:17:101"},"nativeSrc":"7606:22:101","nodeType":"YulFunctionCall","src":"7606:22:101"}],"functionName":{"name":"add","nativeSrc":"7592:3:101","nodeType":"YulIdentifier","src":"7592:3:101"},"nativeSrc":"7592:37:101","nodeType":"YulFunctionCall","src":"7592:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"7550:28:101","nodeType":"YulIdentifier","src":"7550:28:101"},"nativeSrc":"7550:80:101","nodeType":"YulFunctionCall","src":"7550:80:101"},"nativeSrc":"7550:80:101","nodeType":"YulExpressionStatement","src":"7550:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"7200:3:101","nodeType":"YulIdentifier","src":"7200:3:101"},{"kind":"number","nativeSrc":"7205:2:101","nodeType":"YulLiteral","src":"7205:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"7197:2:101","nodeType":"YulIdentifier","src":"7197:2:101"},"nativeSrc":"7197:11:101","nodeType":"YulFunctionCall","src":"7197:11:101"},"nativeSrc":"7194:446:101","nodeType":"YulIf","src":"7194:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7104:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"7159:5:101","nodeType":"YulTypedName","src":"7159:5:101","type":""},{"name":"len","nativeSrc":"7166:3:101","nodeType":"YulTypedName","src":"7166:3:101","type":""},{"name":"startIndex","nativeSrc":"7171:10:101","nodeType":"YulTypedName","src":"7171:10:101","type":""}],"src":"7104:543:101"},{"body":{"nativeSrc":"7716:54:101","nodeType":"YulBlock","src":"7716:54:101","statements":[{"nativeSrc":"7726:37:101","nodeType":"YulAssignment","src":"7726:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"7751:4:101","nodeType":"YulIdentifier","src":"7751:4:101"},{"name":"value","nativeSrc":"7757:5:101","nodeType":"YulIdentifier","src":"7757:5:101"}],"functionName":{"name":"shr","nativeSrc":"7747:3:101","nodeType":"YulIdentifier","src":"7747:3:101"},"nativeSrc":"7747:16:101","nodeType":"YulFunctionCall","src":"7747:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"7726:8:101","nodeType":"YulIdentifier","src":"7726:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"7653:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7691:4:101","nodeType":"YulTypedName","src":"7691:4:101","type":""},{"name":"value","nativeSrc":"7697:5:101","nodeType":"YulTypedName","src":"7697:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7707:8:101","nodeType":"YulTypedName","src":"7707:8:101","type":""}],"src":"7653:117:101"},{"body":{"nativeSrc":"7827:118:101","nodeType":"YulBlock","src":"7827:118:101","statements":[{"nativeSrc":"7837:68:101","nodeType":"YulVariableDeclaration","src":"7837:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7886:1:101","nodeType":"YulLiteral","src":"7886:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"7889:5:101","nodeType":"YulIdentifier","src":"7889:5:101"}],"functionName":{"name":"mul","nativeSrc":"7882:3:101","nodeType":"YulIdentifier","src":"7882:3:101"},"nativeSrc":"7882:13:101","nodeType":"YulFunctionCall","src":"7882:13:101"},{"arguments":[{"kind":"number","nativeSrc":"7901:1:101","nodeType":"YulLiteral","src":"7901:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7897:3:101","nodeType":"YulIdentifier","src":"7897:3:101"},"nativeSrc":"7897:6:101","nodeType":"YulFunctionCall","src":"7897:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7853:28:101","nodeType":"YulIdentifier","src":"7853:28:101"},"nativeSrc":"7853:51:101","nodeType":"YulFunctionCall","src":"7853:51:101"}],"functionName":{"name":"not","nativeSrc":"7849:3:101","nodeType":"YulIdentifier","src":"7849:3:101"},"nativeSrc":"7849:56:101","nodeType":"YulFunctionCall","src":"7849:56:101"},"variables":[{"name":"mask","nativeSrc":"7841:4:101","nodeType":"YulTypedName","src":"7841:4:101","type":""}]},{"nativeSrc":"7914:25:101","nodeType":"YulAssignment","src":"7914:25:101","value":{"arguments":[{"name":"data","nativeSrc":"7928:4:101","nodeType":"YulIdentifier","src":"7928:4:101"},{"name":"mask","nativeSrc":"7934:4:101","nodeType":"YulIdentifier","src":"7934:4:101"}],"functionName":{"name":"and","nativeSrc":"7924:3:101","nodeType":"YulIdentifier","src":"7924:3:101"},"nativeSrc":"7924:15:101","nodeType":"YulFunctionCall","src":"7924:15:101"},"variableNames":[{"name":"result","nativeSrc":"7914:6:101","nodeType":"YulIdentifier","src":"7914:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7776:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7804:4:101","nodeType":"YulTypedName","src":"7804:4:101","type":""},{"name":"bytes","nativeSrc":"7810:5:101","nodeType":"YulTypedName","src":"7810:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7820:6:101","nodeType":"YulTypedName","src":"7820:6:101","type":""}],"src":"7776:169:101"},{"body":{"nativeSrc":"8031:214:101","nodeType":"YulBlock","src":"8031:214:101","statements":[{"nativeSrc":"8164:37:101","nodeType":"YulAssignment","src":"8164:37:101","value":{"arguments":[{"name":"data","nativeSrc":"8191:4:101","nodeType":"YulIdentifier","src":"8191:4:101"},{"name":"len","nativeSrc":"8197:3:101","nodeType":"YulIdentifier","src":"8197:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8172:18:101","nodeType":"YulIdentifier","src":"8172:18:101"},"nativeSrc":"8172:29:101","nodeType":"YulFunctionCall","src":"8172:29:101"},"variableNames":[{"name":"data","nativeSrc":"8164:4:101","nodeType":"YulIdentifier","src":"8164:4:101"}]},{"nativeSrc":"8210:29:101","nodeType":"YulAssignment","src":"8210:29:101","value":{"arguments":[{"name":"data","nativeSrc":"8221:4:101","nodeType":"YulIdentifier","src":"8221:4:101"},{"arguments":[{"kind":"number","nativeSrc":"8231:1:101","nodeType":"YulLiteral","src":"8231:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"8234:3:101","nodeType":"YulIdentifier","src":"8234:3:101"}],"functionName":{"name":"mul","nativeSrc":"8227:3:101","nodeType":"YulIdentifier","src":"8227:3:101"},"nativeSrc":"8227:11:101","nodeType":"YulFunctionCall","src":"8227:11:101"}],"functionName":{"name":"or","nativeSrc":"8218:2:101","nodeType":"YulIdentifier","src":"8218:2:101"},"nativeSrc":"8218:21:101","nodeType":"YulFunctionCall","src":"8218:21:101"},"variableNames":[{"name":"used","nativeSrc":"8210:4:101","nodeType":"YulIdentifier","src":"8210:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7950:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"8012:4:101","nodeType":"YulTypedName","src":"8012:4:101","type":""},{"name":"len","nativeSrc":"8018:3:101","nodeType":"YulTypedName","src":"8018:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"8026:4:101","nodeType":"YulTypedName","src":"8026:4:101","type":""}],"src":"7950:295:101"},{"body":{"nativeSrc":"8342:1303:101","nodeType":"YulBlock","src":"8342:1303:101","statements":[{"nativeSrc":"8353:51:101","nodeType":"YulVariableDeclaration","src":"8353:51:101","value":{"arguments":[{"name":"src","nativeSrc":"8400:3:101","nodeType":"YulIdentifier","src":"8400:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"8367:32:101","nodeType":"YulIdentifier","src":"8367:32:101"},"nativeSrc":"8367:37:101","nodeType":"YulFunctionCall","src":"8367:37:101"},"variables":[{"name":"newLen","nativeSrc":"8357:6:101","nodeType":"YulTypedName","src":"8357:6:101","type":""}]},{"body":{"nativeSrc":"8489:22:101","nodeType":"YulBlock","src":"8489:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8491:16:101","nodeType":"YulIdentifier","src":"8491:16:101"},"nativeSrc":"8491:18:101","nodeType":"YulFunctionCall","src":"8491:18:101"},"nativeSrc":"8491:18:101","nodeType":"YulExpressionStatement","src":"8491:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"8461:6:101","nodeType":"YulIdentifier","src":"8461:6:101"},{"kind":"number","nativeSrc":"8469:18:101","nodeType":"YulLiteral","src":"8469:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8458:2:101","nodeType":"YulIdentifier","src":"8458:2:101"},"nativeSrc":"8458:30:101","nodeType":"YulFunctionCall","src":"8458:30:101"},"nativeSrc":"8455:56:101","nodeType":"YulIf","src":"8455:56:101"},{"nativeSrc":"8521:52:101","nodeType":"YulVariableDeclaration","src":"8521:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"sload","nativeSrc":"8561:5:101","nodeType":"YulIdentifier","src":"8561:5:101"},"nativeSrc":"8561:11:101","nodeType":"YulFunctionCall","src":"8561:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"8535:25:101","nodeType":"YulIdentifier","src":"8535:25:101"},"nativeSrc":"8535:38:101","nodeType":"YulFunctionCall","src":"8535:38:101"},"variables":[{"name":"oldLen","nativeSrc":"8525:6:101","nodeType":"YulTypedName","src":"8525:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8666:4:101","nodeType":"YulIdentifier","src":"8666:4:101"},{"name":"oldLen","nativeSrc":"8672:6:101","nodeType":"YulIdentifier","src":"8672:6:101"},{"name":"newLen","nativeSrc":"8680:6:101","nodeType":"YulIdentifier","src":"8680:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"8620:45:101","nodeType":"YulIdentifier","src":"8620:45:101"},"nativeSrc":"8620:67:101","nodeType":"YulFunctionCall","src":"8620:67:101"},"nativeSrc":"8620:67:101","nodeType":"YulExpressionStatement","src":"8620:67:101"},{"nativeSrc":"8697:18:101","nodeType":"YulVariableDeclaration","src":"8697:18:101","value":{"kind":"number","nativeSrc":"8714:1:101","nodeType":"YulLiteral","src":"8714:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8701:9:101","nodeType":"YulTypedName","src":"8701:9:101","type":""}]},{"nativeSrc":"8725:17:101","nodeType":"YulAssignment","src":"8725:17:101","value":{"kind":"number","nativeSrc":"8738:4:101","nodeType":"YulLiteral","src":"8738:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8725:9:101","nodeType":"YulIdentifier","src":"8725:9:101"}]},{"cases":[{"body":{"nativeSrc":"8789:611:101","nodeType":"YulBlock","src":"8789:611:101","statements":[{"nativeSrc":"8803:37:101","nodeType":"YulVariableDeclaration","src":"8803:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"8822:6:101","nodeType":"YulIdentifier","src":"8822:6:101"},{"arguments":[{"kind":"number","nativeSrc":"8834:4:101","nodeType":"YulLiteral","src":"8834:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8830:3:101","nodeType":"YulIdentifier","src":"8830:3:101"},"nativeSrc":"8830:9:101","nodeType":"YulFunctionCall","src":"8830:9:101"}],"functionName":{"name":"and","nativeSrc":"8818:3:101","nodeType":"YulIdentifier","src":"8818:3:101"},"nativeSrc":"8818:22:101","nodeType":"YulFunctionCall","src":"8818:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"8807:7:101","nodeType":"YulTypedName","src":"8807:7:101","type":""}]},{"nativeSrc":"8854:51:101","nodeType":"YulVariableDeclaration","src":"8854:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"8900:4:101","nodeType":"YulIdentifier","src":"8900:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8868:31:101","nodeType":"YulIdentifier","src":"8868:31:101"},"nativeSrc":"8868:37:101","nodeType":"YulFunctionCall","src":"8868:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"8858:6:101","nodeType":"YulTypedName","src":"8858:6:101","type":""}]},{"nativeSrc":"8918:10:101","nodeType":"YulVariableDeclaration","src":"8918:10:101","value":{"kind":"number","nativeSrc":"8927:1:101","nodeType":"YulLiteral","src":"8927:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8922:1:101","nodeType":"YulTypedName","src":"8922:1:101","type":""}]},{"body":{"nativeSrc":"8986:163:101","nodeType":"YulBlock","src":"8986:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"9011:6:101","nodeType":"YulIdentifier","src":"9011:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9029:3:101","nodeType":"YulIdentifier","src":"9029:3:101"},{"name":"srcOffset","nativeSrc":"9034:9:101","nodeType":"YulIdentifier","src":"9034:9:101"}],"functionName":{"name":"add","nativeSrc":"9025:3:101","nodeType":"YulIdentifier","src":"9025:3:101"},"nativeSrc":"9025:19:101","nodeType":"YulFunctionCall","src":"9025:19:101"}],"functionName":{"name":"mload","nativeSrc":"9019:5:101","nodeType":"YulIdentifier","src":"9019:5:101"},"nativeSrc":"9019:26:101","nodeType":"YulFunctionCall","src":"9019:26:101"}],"functionName":{"name":"sstore","nativeSrc":"9004:6:101","nodeType":"YulIdentifier","src":"9004:6:101"},"nativeSrc":"9004:42:101","nodeType":"YulFunctionCall","src":"9004:42:101"},"nativeSrc":"9004:42:101","nodeType":"YulExpressionStatement","src":"9004:42:101"},{"nativeSrc":"9063:24:101","nodeType":"YulAssignment","src":"9063:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"9077:6:101","nodeType":"YulIdentifier","src":"9077:6:101"},{"kind":"number","nativeSrc":"9085:1:101","nodeType":"YulLiteral","src":"9085:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9073:3:101","nodeType":"YulIdentifier","src":"9073:3:101"},"nativeSrc":"9073:14:101","nodeType":"YulFunctionCall","src":"9073:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"9063:6:101","nodeType":"YulIdentifier","src":"9063:6:101"}]},{"nativeSrc":"9104:31:101","nodeType":"YulAssignment","src":"9104:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"9121:9:101","nodeType":"YulIdentifier","src":"9121:9:101"},{"kind":"number","nativeSrc":"9132:2:101","nodeType":"YulLiteral","src":"9132:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9117:3:101","nodeType":"YulIdentifier","src":"9117:3:101"},"nativeSrc":"9117:18:101","nodeType":"YulFunctionCall","src":"9117:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"9104:9:101","nodeType":"YulIdentifier","src":"9104:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8952:1:101","nodeType":"YulIdentifier","src":"8952:1:101"},{"name":"loopEnd","nativeSrc":"8955:7:101","nodeType":"YulIdentifier","src":"8955:7:101"}],"functionName":{"name":"lt","nativeSrc":"8949:2:101","nodeType":"YulIdentifier","src":"8949:2:101"},"nativeSrc":"8949:14:101","nodeType":"YulFunctionCall","src":"8949:14:101"},"nativeSrc":"8941:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"8964:21:101","nodeType":"YulBlock","src":"8964:21:101","statements":[{"nativeSrc":"8966:17:101","nodeType":"YulAssignment","src":"8966:17:101","value":{"arguments":[{"name":"i","nativeSrc":"8975:1:101","nodeType":"YulIdentifier","src":"8975:1:101"},{"kind":"number","nativeSrc":"8978:4:101","nodeType":"YulLiteral","src":"8978:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8971:3:101","nodeType":"YulIdentifier","src":"8971:3:101"},"nativeSrc":"8971:12:101","nodeType":"YulFunctionCall","src":"8971:12:101"},"variableNames":[{"name":"i","nativeSrc":"8966:1:101","nodeType":"YulIdentifier","src":"8966:1:101"}]}]},"pre":{"nativeSrc":"8945:3:101","nodeType":"YulBlock","src":"8945:3:101","statements":[]},"src":"8941:208:101"},{"body":{"nativeSrc":"9185:156:101","nodeType":"YulBlock","src":"9185:156:101","statements":[{"nativeSrc":"9203:43:101","nodeType":"YulVariableDeclaration","src":"9203:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9230:3:101","nodeType":"YulIdentifier","src":"9230:3:101"},{"name":"srcOffset","nativeSrc":"9235:9:101","nodeType":"YulIdentifier","src":"9235:9:101"}],"functionName":{"name":"add","nativeSrc":"9226:3:101","nodeType":"YulIdentifier","src":"9226:3:101"},"nativeSrc":"9226:19:101","nodeType":"YulFunctionCall","src":"9226:19:101"}],"functionName":{"name":"mload","nativeSrc":"9220:5:101","nodeType":"YulIdentifier","src":"9220:5:101"},"nativeSrc":"9220:26:101","nodeType":"YulFunctionCall","src":"9220:26:101"},"variables":[{"name":"lastValue","nativeSrc":"9207:9:101","nodeType":"YulTypedName","src":"9207:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"9270:6:101","nodeType":"YulIdentifier","src":"9270:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"9297:9:101","nodeType":"YulIdentifier","src":"9297:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"9312:6:101","nodeType":"YulIdentifier","src":"9312:6:101"},{"kind":"number","nativeSrc":"9320:4:101","nodeType":"YulLiteral","src":"9320:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"9308:3:101","nodeType":"YulIdentifier","src":"9308:3:101"},"nativeSrc":"9308:17:101","nodeType":"YulFunctionCall","src":"9308:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"9278:18:101","nodeType":"YulIdentifier","src":"9278:18:101"},"nativeSrc":"9278:48:101","nodeType":"YulFunctionCall","src":"9278:48:101"}],"functionName":{"name":"sstore","nativeSrc":"9263:6:101","nodeType":"YulIdentifier","src":"9263:6:101"},"nativeSrc":"9263:64:101","nodeType":"YulFunctionCall","src":"9263:64:101"},"nativeSrc":"9263:64:101","nodeType":"YulExpressionStatement","src":"9263:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"9168:7:101","nodeType":"YulIdentifier","src":"9168:7:101"},{"name":"newLen","nativeSrc":"9177:6:101","nodeType":"YulIdentifier","src":"9177:6:101"}],"functionName":{"name":"lt","nativeSrc":"9165:2:101","nodeType":"YulIdentifier","src":"9165:2:101"},"nativeSrc":"9165:19:101","nodeType":"YulFunctionCall","src":"9165:19:101"},"nativeSrc":"9162:179:101","nodeType":"YulIf","src":"9162:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"9361:4:101","nodeType":"YulIdentifier","src":"9361:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"9375:6:101","nodeType":"YulIdentifier","src":"9375:6:101"},{"kind":"number","nativeSrc":"9383:1:101","nodeType":"YulLiteral","src":"9383:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"9371:3:101","nodeType":"YulIdentifier","src":"9371:3:101"},"nativeSrc":"9371:14:101","nodeType":"YulFunctionCall","src":"9371:14:101"},{"kind":"number","nativeSrc":"9387:1:101","nodeType":"YulLiteral","src":"9387:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9367:3:101","nodeType":"YulIdentifier","src":"9367:3:101"},"nativeSrc":"9367:22:101","nodeType":"YulFunctionCall","src":"9367:22:101"}],"functionName":{"name":"sstore","nativeSrc":"9354:6:101","nodeType":"YulIdentifier","src":"9354:6:101"},"nativeSrc":"9354:36:101","nodeType":"YulFunctionCall","src":"9354:36:101"},"nativeSrc":"9354:36:101","nodeType":"YulExpressionStatement","src":"9354:36:101"}]},"nativeSrc":"8782:618:101","nodeType":"YulCase","src":"8782:618:101","value":{"kind":"number","nativeSrc":"8787:1:101","nodeType":"YulLiteral","src":"8787:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9417:222:101","nodeType":"YulBlock","src":"9417:222:101","statements":[{"nativeSrc":"9431:14:101","nodeType":"YulVariableDeclaration","src":"9431:14:101","value":{"kind":"number","nativeSrc":"9444:1:101","nodeType":"YulLiteral","src":"9444:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"9435:5:101","nodeType":"YulTypedName","src":"9435:5:101","type":""}]},{"body":{"nativeSrc":"9468:67:101","nodeType":"YulBlock","src":"9468:67:101","statements":[{"nativeSrc":"9486:35:101","nodeType":"YulAssignment","src":"9486:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9505:3:101","nodeType":"YulIdentifier","src":"9505:3:101"},{"name":"srcOffset","nativeSrc":"9510:9:101","nodeType":"YulIdentifier","src":"9510:9:101"}],"functionName":{"name":"add","nativeSrc":"9501:3:101","nodeType":"YulIdentifier","src":"9501:3:101"},"nativeSrc":"9501:19:101","nodeType":"YulFunctionCall","src":"9501:19:101"}],"functionName":{"name":"mload","nativeSrc":"9495:5:101","nodeType":"YulIdentifier","src":"9495:5:101"},"nativeSrc":"9495:26:101","nodeType":"YulFunctionCall","src":"9495:26:101"},"variableNames":[{"name":"value","nativeSrc":"9486:5:101","nodeType":"YulIdentifier","src":"9486:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"9461:6:101","nodeType":"YulIdentifier","src":"9461:6:101"},"nativeSrc":"9458:77:101","nodeType":"YulIf","src":"9458:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"9555:4:101","nodeType":"YulIdentifier","src":"9555:4:101"},{"arguments":[{"name":"value","nativeSrc":"9614:5:101","nodeType":"YulIdentifier","src":"9614:5:101"},{"name":"newLen","nativeSrc":"9621:6:101","nodeType":"YulIdentifier","src":"9621:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"9561:52:101","nodeType":"YulIdentifier","src":"9561:52:101"},"nativeSrc":"9561:67:101","nodeType":"YulFunctionCall","src":"9561:67:101"}],"functionName":{"name":"sstore","nativeSrc":"9548:6:101","nodeType":"YulIdentifier","src":"9548:6:101"},"nativeSrc":"9548:81:101","nodeType":"YulFunctionCall","src":"9548:81:101"},"nativeSrc":"9548:81:101","nodeType":"YulExpressionStatement","src":"9548:81:101"}]},"nativeSrc":"9409:230:101","nodeType":"YulCase","src":"9409:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8762:6:101","nodeType":"YulIdentifier","src":"8762:6:101"},{"kind":"number","nativeSrc":"8770:2:101","nodeType":"YulLiteral","src":"8770:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8759:2:101","nodeType":"YulIdentifier","src":"8759:2:101"},"nativeSrc":"8759:14:101","nodeType":"YulFunctionCall","src":"8759:14:101"},"nativeSrc":"8752:887:101","nodeType":"YulSwitch","src":"8752:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"8250:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"8331:4:101","nodeType":"YulTypedName","src":"8331:4:101","type":""},{"name":"src","nativeSrc":"8337:3:101","nodeType":"YulTypedName","src":"8337:3:101","type":""}],"src":"8250:1395:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526005805460ff1916601217905534801561001c575f80fd5b50604051610f26380380610f2683398101604081905261003b916101d4565b8383838282600361004c8382610345565b5060046100598282610345565b5050600580546001600160a01b03909616610100026001600160a81b031990961660ff9093169290921794909417905550610404945050505050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156100ce576100ce610095565b6040525050565b5f6100df60405190565b90506100eb82826100a9565b919050565b5f6001600160401b0382111561010857610108610095565b601f19601f83011660200192915050565b8281835e505f910152565b5f610136610131846100f0565b6100d5565b905082815260208101848484011115610150576101505f80fd5b61015b848285610119565b509392505050565b5f82601f830112610175576101755f80fd5b8151610185848260208601610124565b949350505050565b60ff81165b811461019c575f80fd5b50565b80516101aa8161018d565b92915050565b5f6001600160a01b0382166101aa565b610192816101b0565b80516101aa816101c0565b5f805f80608085870312156101ea576101ea5f80fd5b84516001600160401b03811115610202576102025f80fd5b61020e87828801610163565b94505060208501516001600160401b0381111561022c5761022c5f80fd5b61023887828801610163565b93505060406102498782880161019f565b925050606061025a878288016101c9565b91505092959194509250565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061028e57607f821691505b6020821081036102a0576102a0610266565b50919050565b5f6101aa6102b18381565b90565b6102bd836102a6565b81545f1960089490940293841b1916921b91909117905550565b5f6102e38184846102b4565b505050565b81811015610302576102fa5f826102d7565b6001016102e8565b5050565b601f8211156102e3575f818152602090206020601f8501048101602085101561032c5750805b61033e6020601f8601048301826102e8565b5050505050565b81516001600160401b0381111561035e5761035e610095565b610368825461027a565b610373828285610306565b6020601f8311600181146103a5575f841561038e5750858201515b5f19600886021c19811660028602178655506103fc565b5f85815260208120601f198616915b828110156103d457888501518255602094850194600190920191016103b4565b868310156103ef57848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b610b15806104115f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063579158971161008857806395d89b411161006357806395d89b41146101e1578063a457c2d7146101e9578063a9059cbb146101fc578063dd62ed3e1461020f575f80fd5b8063579158971461017f5780636f307dc31461019457806370a08231146101b9575f80fd5b806323b872dd116100c357806323b872dd14610138578063313ce5671461014b578063395093511461015f5780634511bf6b14610172575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd14610127575b5f80fd5b6100f1610222565b6040516100fe9190610660565b60405180910390f35b61011a6101153660046106b7565b6102b2565b6040516100fe91906106fb565b6002545b6040516100fe919061070f565b61011a61014636600461071d565b6102cb565b60055460ff165b6040516100fe9190610772565b61011a61016d3660046106b7565b6102ee565b6005546101529060ff1681565b61019261018d366004610780565b61030f565b005b6005546101ac9061010090046001600160a01b031681565b6040516100fe91906107af565b61012b6101c73660046107bd565b6001600160a01b03165f9081526020819052604090205490565b6100f161031c565b61011a6101f73660046106b7565b61032b565b61011a61020a3660046106b7565b610370565b61012b61021d3660046107db565b61037d565b6060600380546102319061081f565b80601f016020809104026020016040519081016040528092919081815260200182805461025d9061081f565b80156102a85780601f1061027f576101008083540402835291602001916102a8565b820191905f5260205f20905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b5f336102bf8185856103a7565b60019150505b92915050565b5f336102d885828561045a565b6102e38585856104a2565b506001949350505050565b5f336102bf818585610300838361037d565b61030a919061085f565b6103a7565b6103193382610590565b50565b6060600480546102319061081f565b5f3381610338828661037d565b9050838110156103635760405162461bcd60e51b815260040161035a906108b6565b60405180910390fd5b6102e382868684036103a7565b5f336102bf8185856104a2565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103cd5760405162461bcd60e51b815260040161035a90610906565b6001600160a01b0382166103f35760405162461bcd60e51b815260040161035a90610954565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061044d90859061070f565b60405180910390a3505050565b5f610465848461037d565b90505f19811461049c578181101561048f5760405162461bcd60e51b815260040161035a9061099a565b61049c84848484036103a7565b50505050565b6001600160a01b0383166104c85760405162461bcd60e51b815260040161035a906109eb565b6001600160a01b0382166104ee5760405162461bcd60e51b815260040161035a90610a3a565b6001600160a01b0383165f90815260208190526040902054818110156105265760405162461bcd60e51b815260040161035a90610a8c565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058390869061070f565b60405180910390a361049c565b6001600160a01b0382166105b65760405162461bcd60e51b815260040161035a90610acf565b8060025f8282546105c7919061085f565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061061890859061070f565b60405180910390a35050565b8281835e505f910152565b5f610638825190565b80845260208401935061064f818560208601610624565b601f01601f19169290920192915050565b60208082528101610671818461062f565b9392505050565b5f6001600160a01b0382166102c5565b61069181610678565b8114610319575f80fd5b80356102c581610688565b80610691565b80356102c5816106a6565b5f80604083850312156106cb576106cb5f80fd5b5f6106d6858561069b565b92505060206106e7858286016106ac565b9150509250929050565b8015155b82525050565b602081016102c582846106f1565b806106f5565b602081016102c58284610709565b5f805f60608486031215610732576107325f80fd5b5f61073d868661069b565b935050602061074e8682870161069b565b925050604061075f868287016106ac565b9150509250925092565b60ff81166106f5565b602081016102c58284610769565b5f60208284031215610793576107935f80fd5b5f61079e84846106ac565b949350505050565b6106f581610678565b602081016102c582846107a6565b5f602082840312156107d0576107d05f80fd5b5f61079e848461069b565b5f80604083850312156107ef576107ef5f80fd5b5f6107fa858561069b565b92505060206106e78582860161069b565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061083357607f821691505b6020821081036108455761084561080b565b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102c5576102c561084b565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b602080825281016102c581610872565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015291506108af565b602080825281016102c5816108c6565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015291506108af565b602080825281016102c581610916565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b602080825281016102c581610964565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015291506108af565b602080825281016102c5816109aa565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015291506108af565b602080825281016102c5816109fb565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b602082015291506108af565b602080825281016102c581610a4a565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610993565b602080825281016102c581610a9c56fea26469706673582212201acc62b729b451166c6c4a8ef1452483b32dce86b8bd7f766788b1991ea2e60d64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xF26 CODESIZE SUB DUP1 PUSH2 0xF26 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x3B SWAP2 PUSH2 0x1D4 JUMP JUMPDEST DUP4 DUP4 DUP4 DUP3 DUP3 PUSH1 0x3 PUSH2 0x4C DUP4 DUP3 PUSH2 0x345 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x59 DUP3 DUP3 PUSH2 0x345 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH2 0x100 MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP7 AND PUSH1 0xFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP5 SWAP1 SWAP5 OR SWAP1 SSTORE POP PUSH2 0x404 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0xCE JUMPI PUSH2 0xCE PUSH2 0x95 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xDF PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xEB DUP3 DUP3 PUSH2 0xA9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x108 JUMPI PUSH2 0x108 PUSH2 0x95 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x136 PUSH2 0x131 DUP5 PUSH2 0xF0 JUMP JUMPDEST PUSH2 0xD5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x150 JUMPI PUSH2 0x150 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x15B DUP5 DUP3 DUP6 PUSH2 0x119 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x175 JUMPI PUSH2 0x175 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x185 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x124 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x19C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1AA DUP2 PUSH2 0x18D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x192 DUP2 PUSH2 0x1B0 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1AA DUP2 PUSH2 0x1C0 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1EA JUMPI PUSH2 0x1EA PUSH0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x202 JUMPI PUSH2 0x202 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x20E DUP8 DUP3 DUP9 ADD PUSH2 0x163 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x22C JUMPI PUSH2 0x22C PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x238 DUP8 DUP3 DUP9 ADD PUSH2 0x163 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x249 DUP8 DUP3 DUP9 ADD PUSH2 0x19F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x25A DUP8 DUP3 DUP9 ADD PUSH2 0x1C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x28E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2A0 JUMPI PUSH2 0x2A0 PUSH2 0x266 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1AA PUSH2 0x2B1 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2BD DUP4 PUSH2 0x2A6 JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x2E3 DUP2 DUP5 DUP5 PUSH2 0x2B4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x302 JUMPI PUSH2 0x2FA PUSH0 DUP3 PUSH2 0x2D7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2E8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2E3 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x32C JUMPI POP DUP1 JUMPDEST PUSH2 0x33E PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x2E8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x35E JUMPI PUSH2 0x35E PUSH2 0x95 JUMP JUMPDEST PUSH2 0x368 DUP3 SLOAD PUSH2 0x27A JUMP JUMPDEST PUSH2 0x373 DUP3 DUP3 DUP6 PUSH2 0x306 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3A5 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x38E JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x3FC JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3D4 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x3B4 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x3EF JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xB15 DUP1 PUSH2 0x411 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57915897 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x57915897 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x6F307DC3 EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x4511BF6B EQ PUSH2 0x172 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x127 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xF1 PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x660 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH2 0x11A PUSH2 0x146 CALLDATASIZE PUSH1 0x4 PUSH2 0x71D JUMP JUMPDEST PUSH2 0x2CB JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x11A PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x152 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x192 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x780 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST STOP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x1AC SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x7AF JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x7BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x31C JUMP JUMPDEST PUSH2 0x11A PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x32B JUMP JUMPDEST PUSH2 0x11A PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x21D CALLDATASIZE PUSH1 0x4 PUSH2 0x7DB JUMP JUMPDEST PUSH2 0x37D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x231 SWAP1 PUSH2 0x81F 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 0x25D SWAP1 PUSH2 0x81F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x28B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2BF DUP2 DUP6 DUP6 PUSH2 0x3A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2D8 DUP6 DUP3 DUP6 PUSH2 0x45A JUMP JUMPDEST PUSH2 0x2E3 DUP6 DUP6 DUP6 PUSH2 0x4A2 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2BF DUP2 DUP6 DUP6 PUSH2 0x300 DUP4 DUP4 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x85F JUMP JUMPDEST PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x319 CALLER DUP3 PUSH2 0x590 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x231 SWAP1 PUSH2 0x81F JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x338 DUP3 DUP7 PUSH2 0x37D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x363 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x8B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E3 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3A7 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2BF DUP2 DUP6 DUP6 PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x906 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x954 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x44D SWAP1 DUP6 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x465 DUP5 DUP5 PUSH2 0x37D JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x49C JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x48F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x49C DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3A7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0xA3A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x526 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x583 SWAP1 DUP7 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0xACF JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0x85F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x618 SWAP1 DUP6 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x638 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x64F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x624 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x671 DUP2 DUP5 PUSH2 0x62F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x691 DUP2 PUSH2 0x678 JUMP JUMPDEST DUP2 EQ PUSH2 0x319 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C5 DUP2 PUSH2 0x688 JUMP JUMPDEST DUP1 PUSH2 0x691 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C5 DUP2 PUSH2 0x6A6 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6CB JUMPI PUSH2 0x6CB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D6 DUP6 DUP6 PUSH2 0x69B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6E7 DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x6F1 JUMP JUMPDEST DUP1 PUSH2 0x6F5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x709 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x732 JUMPI PUSH2 0x732 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x73D DUP7 DUP7 PUSH2 0x69B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x74E DUP7 DUP3 DUP8 ADD PUSH2 0x69B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x75F DUP7 DUP3 DUP8 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x6F5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x769 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x793 JUMPI PUSH2 0x793 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x79E DUP5 DUP5 PUSH2 0x6AC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x6F5 DUP2 PUSH2 0x678 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7D0 JUMPI PUSH2 0x7D0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x79E DUP5 DUP5 PUSH2 0x69B JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7EF JUMPI PUSH2 0x7EF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x7FA DUP6 DUP6 PUSH2 0x69B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6E7 DUP6 DUP3 DUP7 ADD PUSH2 0x69B JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x833 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x845 JUMPI PUSH2 0x845 PUSH2 0x80B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2C5 JUMPI PUSH2 0x2C5 PUSH2 0x84B JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x872 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x964 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x9AA JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x993 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0xA9C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xCC PUSH3 0xB729B4 MLOAD AND PUSH13 0x6C4A8EF1452483B32DCE86B8BD PUSH32 0x766788B1991EA2E60D64736F6C63430008190033000000000000000000000000 ","sourceMap":"96:354:85:-:0;;;160:34:74;;;-1:-1:-1;;160:34:74;192:2;160:34;;;237:211:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;381:5;388:7;397:8;381:5;388:7;2046:5:11;:13;381:5:85;2046::11;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;-1:-1:-1;;306:16:74::1;:28:::0;;-1:-1:-1;;;;;417:24:85;;::::1;306:28:74;417:24:85;-1:-1:-1::0;;;;;;417:24:85;;;306:28:74::1;::::0;;::::1;417:24:85::0;;;;;;;::::1;::::0;;-1:-1:-1;96:354:85;;-1:-1:-1;;;;;96:354:85;688:180:101;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2662:118::-;2645:4;2634:16;;2733:22;2726:5;2723:33;2713:61;;2770:1;2767;2760:12;2713:61;2662:118;:::o;2786:139::-;2866:13;;2888:31;2866:13;2888:31;:::i;:::-;2786:139;;;;:::o;3063:96::-;3100:7;-1:-1:-1;;;;;2997:54:101;;3129:24;2931:126;3165:122;3238:24;3256:5;3238:24;:::i;3293:143::-;3375:13;;3397:33;3375:13;3397:33;:::i;3442:1162::-;3557:6;3565;3573;3581;3630:3;3618:9;3609:7;3605:23;3601:33;3598:120;;;3637:79;197:1;194;187:12;3637:79;3757:24;;-1:-1:-1;;;;;3797:30:101;;3794:117;;;3830:79;197:1;194;187:12;3830:79;3935:74;4001:7;3992:6;3981:9;3977:22;3935:74;:::i;:::-;3925:84;;3728:291;4079:2;4068:9;4064:18;4058:25;-1:-1:-1;;;;;4102:6:101;4099:30;4096:117;;;4132:79;197:1;194;187:12;4132:79;4237:74;4303:7;4294:6;4283:9;4279:22;4237:74;:::i;:::-;4227:84;;4029:292;4360:2;4386:62;4440:7;4431:6;4420:9;4416:22;4386:62;:::i;:::-;4376:72;;4331:127;4497:2;4523:64;4579:7;4570:6;4559:9;4555:22;4523:64;:::i;:::-;4513:74;;4468:129;3442:1162;;;;;;;:::o;4715:180::-;-1:-1:-1;;;4760:1:101;4753:88;4860:4;4857:1;4850:15;4884:4;4881:1;4874:15;4901:320;4982:1;4972:12;;5029:1;5019:12;;;5040:81;;5106:4;5098:6;5094:17;5084:27;;5040:81;5168:2;5160:6;5157:14;5137:18;5134:38;5131:84;;5187:18;;:::i;:::-;4952:269;4901:320;;;:::o;6134:142::-;6184:9;6217:53;6235:34;6262:5;6235:34;5985:77;6244:24;6051:5;5985:77;6363:269;6473:39;6504:7;6473:39;:::i;:::-;6562:11;;-1:-1:-1;;5705:1:101;5689:18;;;;5557:16;;;5914:9;5903:21;5557:16;;5943:30;;;;6521:105;;-1:-1:-1;6363:269:101:o;6717:189::-;6683:3;6835:65;6893:6;6885;6879:4;6835:65;:::i;:::-;6770:136;6717:189;;:::o;6912:186::-;6989:3;6982:5;6979:14;6972:120;;;7043:39;7080:1;7073:5;7043:39;:::i;:::-;7016:1;7005:13;6972:120;;;6912:186;;:::o;7104:543::-;7205:2;7200:3;7197:11;7194:446;;;5276:4;5312:14;;;5356:4;5343:18;;5458:2;5453;5442:14;;5438:23;7313:8;7309:44;7506:2;7494:10;7491:18;7488:49;;;-1:-1:-1;7527:8:101;7488:49;7550:80;5458:2;5453;5442:14;;5438:23;7596:8;7592:37;7579:11;7550:80;:::i;:::-;7209:431;;7104:543;;;:::o;8250:1395::-;4690:12;;-1:-1:-1;;;;;8461:6:101;8458:30;8455:56;;;8491:18;;:::i;:::-;8535:38;8567:4;8561:11;8535:38;:::i;:::-;8620:67;8680:6;8672;8666:4;8620:67;:::i;:::-;8738:4;8770:2;8759:14;;8787:1;8782:618;;;;9444:1;9461:6;9458:77;;;-1:-1:-1;9501:19:101;;;9495:26;9458:77;-1:-1:-1;;7886:1:101;7882:13;;7747:16;7849:56;7924:15;;8231:1;8227:11;;8218:21;9555:4;9548:81;9417:222;8752:887;;8782:618;5276:4;5312:14;;;5356:4;5343:18;;-1:-1:-1;;8818:22:101;;;8941:208;8955:7;8952:1;8949:14;8941:208;;;9025:19;;;9019:26;9004:42;;9132:2;9117:18;;;;9085:1;9073:14;;;;8971:12;8941:208;;;9177:6;9168:7;9165:19;9162:179;;;9226:19;;;9220:26;-1:-1:-1;;9320:4:101;9308:17;;7886:1;7882:13;7747:16;7849:56;7924:15;9263:64;;9162:179;9387:1;9383;9375:6;9371:14;9367:22;9361:4;9354:36;8789:611;;;8752:887;;8342:1303;;;8250:1395;;:::o;:::-;96:354:85;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":935,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_mint_1610":{"entryPoint":1424,"id":1610,"parameterSlots":2,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":1114,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transfer_1553":{"entryPoint":1186,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":893,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":690,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@decimalsInternal_7540":{"entryPoint":null,"id":7540,"parameterSlots":0,"returnSlots":0},"@decimals_7579":{"entryPoint":null,"id":7579,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":811,"id":1476,"parameterSlots":2,"returnSlots":1},"@faucet_7570":{"entryPoint":783,"id":7570,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_1435":{"entryPoint":750,"id":1435,"parameterSlots":2,"returnSlots":1},"@name_1261":{"entryPoint":546,"id":1261,"parameterSlots":0,"returnSlots":1},"@symbol_1271":{"entryPoint":796,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":715,"id":1406,"parameterSlots":3,"returnSlots":1},"@transfer_1330":{"entryPoint":880,"id":1330,"parameterSlots":2,"returnSlots":1},"@underlying_8720":{"entryPoint":null,"id":8720,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":1691,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1708,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2011,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1821,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1719,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":1920,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1958,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1777,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1583,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2555,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":2326,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":2404,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":2634,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2474,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":2246,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":2162,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":2716,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1801,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":1897,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1967,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1787,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1632,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2618,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2388,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2458,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2700,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2539,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2310,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2230,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2767,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1807,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":1906,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2143,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1656,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1572,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2079,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2123,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":2059,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1672,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1702,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:15263:101","nodeType":"YulBlock","src":"0:15263:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1282:35:101","nodeType":"YulBlock","src":"1282:35:101","statements":[{"nativeSrc":"1292:19:101","nodeType":"YulAssignment","src":"1292:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:101","nodeType":"YulLiteral","src":"1308:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:101","nodeType":"YulIdentifier","src":"1302:5:101"},"nativeSrc":"1302:9:101","nodeType":"YulFunctionCall","src":"1302:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:101","nodeType":"YulIdentifier","src":"1292:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:101","nodeType":"YulTypedName","src":"1275:6:101","type":""}],"src":"1242:75:101"},{"body":{"nativeSrc":"1412:28:101","nodeType":"YulBlock","src":"1412:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:101","nodeType":"YulLiteral","src":"1429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:101","nodeType":"YulLiteral","src":"1432:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:101","nodeType":"YulIdentifier","src":"1422:6:101"},"nativeSrc":"1422:12:101","nodeType":"YulFunctionCall","src":"1422:12:101"},"nativeSrc":"1422:12:101","nodeType":"YulExpressionStatement","src":"1422:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:101","nodeType":"YulFunctionDefinition","src":"1323:117:101"},{"body":{"nativeSrc":"1535:28:101","nodeType":"YulBlock","src":"1535:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:101","nodeType":"YulLiteral","src":"1552:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:101","nodeType":"YulLiteral","src":"1555:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:101","nodeType":"YulIdentifier","src":"1545:6:101"},"nativeSrc":"1545:12:101","nodeType":"YulFunctionCall","src":"1545:12:101"},"nativeSrc":"1545:12:101","nodeType":"YulExpressionStatement","src":"1545:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:101","nodeType":"YulFunctionDefinition","src":"1446:117:101"},{"body":{"nativeSrc":"1614:81:101","nodeType":"YulBlock","src":"1614:81:101","statements":[{"nativeSrc":"1624:65:101","nodeType":"YulAssignment","src":"1624:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:101","nodeType":"YulIdentifier","src":"1639:5:101"},{"kind":"number","nativeSrc":"1646:42:101","nodeType":"YulLiteral","src":"1646:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:101","nodeType":"YulIdentifier","src":"1635:3:101"},"nativeSrc":"1635:54:101","nodeType":"YulFunctionCall","src":"1635:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:101","nodeType":"YulIdentifier","src":"1624:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulTypedName","src":"1596:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:101","nodeType":"YulTypedName","src":"1606:7:101","type":""}],"src":"1569:126:101"},{"body":{"nativeSrc":"1746:51:101","nodeType":"YulBlock","src":"1746:51:101","statements":[{"nativeSrc":"1756:35:101","nodeType":"YulAssignment","src":"1756:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:101","nodeType":"YulIdentifier","src":"1785:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:101","nodeType":"YulIdentifier","src":"1767:17:101"},"nativeSrc":"1767:24:101","nodeType":"YulFunctionCall","src":"1767:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:101","nodeType":"YulIdentifier","src":"1756:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:101","nodeType":"YulTypedName","src":"1728:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:101","nodeType":"YulTypedName","src":"1738:7:101","type":""}],"src":"1701:96:101"},{"body":{"nativeSrc":"1846:79:101","nodeType":"YulBlock","src":"1846:79:101","statements":[{"body":{"nativeSrc":"1903:16:101","nodeType":"YulBlock","src":"1903:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:101","nodeType":"YulLiteral","src":"1912:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:101","nodeType":"YulLiteral","src":"1915:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:101","nodeType":"YulIdentifier","src":"1905:6:101"},"nativeSrc":"1905:12:101","nodeType":"YulFunctionCall","src":"1905:12:101"},"nativeSrc":"1905:12:101","nodeType":"YulExpressionStatement","src":"1905:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:101","nodeType":"YulIdentifier","src":"1869:5:101"},{"arguments":[{"name":"value","nativeSrc":"1894:5:101","nodeType":"YulIdentifier","src":"1894:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:101","nodeType":"YulIdentifier","src":"1876:17:101"},"nativeSrc":"1876:24:101","nodeType":"YulFunctionCall","src":"1876:24:101"}],"functionName":{"name":"eq","nativeSrc":"1866:2:101","nodeType":"YulIdentifier","src":"1866:2:101"},"nativeSrc":"1866:35:101","nodeType":"YulFunctionCall","src":"1866:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:101","nodeType":"YulIdentifier","src":"1859:6:101"},"nativeSrc":"1859:43:101","nodeType":"YulFunctionCall","src":"1859:43:101"},"nativeSrc":"1856:63:101","nodeType":"YulIf","src":"1856:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:101","nodeType":"YulTypedName","src":"1839:5:101","type":""}],"src":"1803:122:101"},{"body":{"nativeSrc":"1983:87:101","nodeType":"YulBlock","src":"1983:87:101","statements":[{"nativeSrc":"1993:29:101","nodeType":"YulAssignment","src":"1993:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:101","nodeType":"YulIdentifier","src":"2015:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:101","nodeType":"YulIdentifier","src":"2002:12:101"},"nativeSrc":"2002:20:101","nodeType":"YulFunctionCall","src":"2002:20:101"},"variableNames":[{"name":"value","nativeSrc":"1993:5:101","nodeType":"YulIdentifier","src":"1993:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:101","nodeType":"YulIdentifier","src":"2058:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:101","nodeType":"YulIdentifier","src":"2031:26:101"},"nativeSrc":"2031:33:101","nodeType":"YulFunctionCall","src":"2031:33:101"},"nativeSrc":"2031:33:101","nodeType":"YulExpressionStatement","src":"2031:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:101","nodeType":"YulTypedName","src":"1961:6:101","type":""},{"name":"end","nativeSrc":"1969:3:101","nodeType":"YulTypedName","src":"1969:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:101","nodeType":"YulTypedName","src":"1977:5:101","type":""}],"src":"1931:139:101"},{"body":{"nativeSrc":"2121:32:101","nodeType":"YulBlock","src":"2121:32:101","statements":[{"nativeSrc":"2131:16:101","nodeType":"YulAssignment","src":"2131:16:101","value":{"name":"value","nativeSrc":"2142:5:101","nodeType":"YulIdentifier","src":"2142:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:101","nodeType":"YulIdentifier","src":"2131:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:101","nodeType":"YulTypedName","src":"2103:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:101","nodeType":"YulTypedName","src":"2113:7:101","type":""}],"src":"2076:77:101"},{"body":{"nativeSrc":"2202:79:101","nodeType":"YulBlock","src":"2202:79:101","statements":[{"body":{"nativeSrc":"2259:16:101","nodeType":"YulBlock","src":"2259:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:101","nodeType":"YulLiteral","src":"2268:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:101","nodeType":"YulLiteral","src":"2271:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:101","nodeType":"YulIdentifier","src":"2261:6:101"},"nativeSrc":"2261:12:101","nodeType":"YulFunctionCall","src":"2261:12:101"},"nativeSrc":"2261:12:101","nodeType":"YulExpressionStatement","src":"2261:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:101","nodeType":"YulIdentifier","src":"2225:5:101"},{"arguments":[{"name":"value","nativeSrc":"2250:5:101","nodeType":"YulIdentifier","src":"2250:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:101","nodeType":"YulIdentifier","src":"2232:17:101"},"nativeSrc":"2232:24:101","nodeType":"YulFunctionCall","src":"2232:24:101"}],"functionName":{"name":"eq","nativeSrc":"2222:2:101","nodeType":"YulIdentifier","src":"2222:2:101"},"nativeSrc":"2222:35:101","nodeType":"YulFunctionCall","src":"2222:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:101","nodeType":"YulIdentifier","src":"2215:6:101"},"nativeSrc":"2215:43:101","nodeType":"YulFunctionCall","src":"2215:43:101"},"nativeSrc":"2212:63:101","nodeType":"YulIf","src":"2212:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:101","nodeType":"YulTypedName","src":"2195:5:101","type":""}],"src":"2159:122:101"},{"body":{"nativeSrc":"2339:87:101","nodeType":"YulBlock","src":"2339:87:101","statements":[{"nativeSrc":"2349:29:101","nodeType":"YulAssignment","src":"2349:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:101","nodeType":"YulIdentifier","src":"2371:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:101","nodeType":"YulIdentifier","src":"2358:12:101"},"nativeSrc":"2358:20:101","nodeType":"YulFunctionCall","src":"2358:20:101"},"variableNames":[{"name":"value","nativeSrc":"2349:5:101","nodeType":"YulIdentifier","src":"2349:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:101","nodeType":"YulIdentifier","src":"2414:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:101","nodeType":"YulIdentifier","src":"2387:26:101"},"nativeSrc":"2387:33:101","nodeType":"YulFunctionCall","src":"2387:33:101"},"nativeSrc":"2387:33:101","nodeType":"YulExpressionStatement","src":"2387:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:101","nodeType":"YulTypedName","src":"2317:6:101","type":""},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulTypedName","src":"2325:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:101","nodeType":"YulTypedName","src":"2333:5:101","type":""}],"src":"2287:139:101"},{"body":{"nativeSrc":"2515:391:101","nodeType":"YulBlock","src":"2515:391:101","statements":[{"body":{"nativeSrc":"2561:83:101","nodeType":"YulBlock","src":"2561:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:101","nodeType":"YulIdentifier","src":"2563:77:101"},"nativeSrc":"2563:79:101","nodeType":"YulFunctionCall","src":"2563:79:101"},"nativeSrc":"2563:79:101","nodeType":"YulExpressionStatement","src":"2563:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:101","nodeType":"YulIdentifier","src":"2536:7:101"},{"name":"headStart","nativeSrc":"2545:9:101","nodeType":"YulIdentifier","src":"2545:9:101"}],"functionName":{"name":"sub","nativeSrc":"2532:3:101","nodeType":"YulIdentifier","src":"2532:3:101"},"nativeSrc":"2532:23:101","nodeType":"YulFunctionCall","src":"2532:23:101"},{"kind":"number","nativeSrc":"2557:2:101","nodeType":"YulLiteral","src":"2557:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},"nativeSrc":"2528:32:101","nodeType":"YulFunctionCall","src":"2528:32:101"},"nativeSrc":"2525:119:101","nodeType":"YulIf","src":"2525:119:101"},{"nativeSrc":"2654:117:101","nodeType":"YulBlock","src":"2654:117:101","statements":[{"nativeSrc":"2669:15:101","nodeType":"YulVariableDeclaration","src":"2669:15:101","value":{"kind":"number","nativeSrc":"2683:1:101","nodeType":"YulLiteral","src":"2683:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:101","nodeType":"YulTypedName","src":"2673:6:101","type":""}]},{"nativeSrc":"2698:63:101","nodeType":"YulAssignment","src":"2698:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:101","nodeType":"YulIdentifier","src":"2733:9:101"},{"name":"offset","nativeSrc":"2744:6:101","nodeType":"YulIdentifier","src":"2744:6:101"}],"functionName":{"name":"add","nativeSrc":"2729:3:101","nodeType":"YulIdentifier","src":"2729:3:101"},"nativeSrc":"2729:22:101","nodeType":"YulFunctionCall","src":"2729:22:101"},{"name":"dataEnd","nativeSrc":"2753:7:101","nodeType":"YulIdentifier","src":"2753:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:101","nodeType":"YulIdentifier","src":"2708:20:101"},"nativeSrc":"2708:53:101","nodeType":"YulFunctionCall","src":"2708:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:101","nodeType":"YulIdentifier","src":"2698:6:101"}]}]},{"nativeSrc":"2781:118:101","nodeType":"YulBlock","src":"2781:118:101","statements":[{"nativeSrc":"2796:16:101","nodeType":"YulVariableDeclaration","src":"2796:16:101","value":{"kind":"number","nativeSrc":"2810:2:101","nodeType":"YulLiteral","src":"2810:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:101","nodeType":"YulTypedName","src":"2800:6:101","type":""}]},{"nativeSrc":"2826:63:101","nodeType":"YulAssignment","src":"2826:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:101","nodeType":"YulIdentifier","src":"2861:9:101"},{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"add","nativeSrc":"2857:3:101","nodeType":"YulIdentifier","src":"2857:3:101"},"nativeSrc":"2857:22:101","nodeType":"YulFunctionCall","src":"2857:22:101"},{"name":"dataEnd","nativeSrc":"2881:7:101","nodeType":"YulIdentifier","src":"2881:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:101","nodeType":"YulIdentifier","src":"2836:20:101"},"nativeSrc":"2836:53:101","nodeType":"YulFunctionCall","src":"2836:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:101","nodeType":"YulIdentifier","src":"2826:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:101","nodeType":"YulTypedName","src":"2477:9:101","type":""},{"name":"dataEnd","nativeSrc":"2488:7:101","nodeType":"YulTypedName","src":"2488:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:101","nodeType":"YulTypedName","src":"2500:6:101","type":""},{"name":"value1","nativeSrc":"2508:6:101","nodeType":"YulTypedName","src":"2508:6:101","type":""}],"src":"2432:474:101"},{"body":{"nativeSrc":"2954:48:101","nodeType":"YulBlock","src":"2954:48:101","statements":[{"nativeSrc":"2964:32:101","nodeType":"YulAssignment","src":"2964:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:101","nodeType":"YulIdentifier","src":"2989:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:101","nodeType":"YulIdentifier","src":"2982:6:101"},"nativeSrc":"2982:13:101","nodeType":"YulFunctionCall","src":"2982:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:21:101","nodeType":"YulFunctionCall","src":"2975:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:101","nodeType":"YulIdentifier","src":"2964:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:101","nodeType":"YulTypedName","src":"2936:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:101","nodeType":"YulTypedName","src":"2946:7:101","type":""}],"src":"2912:90:101"},{"body":{"nativeSrc":"3067:50:101","nodeType":"YulBlock","src":"3067:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:101","nodeType":"YulIdentifier","src":"3084:3:101"},{"arguments":[{"name":"value","nativeSrc":"3104:5:101","nodeType":"YulIdentifier","src":"3104:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:101","nodeType":"YulIdentifier","src":"3089:14:101"},"nativeSrc":"3089:21:101","nodeType":"YulFunctionCall","src":"3089:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:101","nodeType":"YulIdentifier","src":"3077:6:101"},"nativeSrc":"3077:34:101","nodeType":"YulFunctionCall","src":"3077:34:101"},"nativeSrc":"3077:34:101","nodeType":"YulExpressionStatement","src":"3077:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:101","nodeType":"YulTypedName","src":"3055:5:101","type":""},{"name":"pos","nativeSrc":"3062:3:101","nodeType":"YulTypedName","src":"3062:3:101","type":""}],"src":"3008:109:101"},{"body":{"nativeSrc":"3215:118:101","nodeType":"YulBlock","src":"3215:118:101","statements":[{"nativeSrc":"3225:26:101","nodeType":"YulAssignment","src":"3225:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:101","nodeType":"YulIdentifier","src":"3237:9:101"},{"kind":"number","nativeSrc":"3248:2:101","nodeType":"YulLiteral","src":"3248:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:101","nodeType":"YulIdentifier","src":"3233:3:101"},"nativeSrc":"3233:18:101","nodeType":"YulFunctionCall","src":"3233:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:101","nodeType":"YulIdentifier","src":"3225:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:101","nodeType":"YulIdentifier","src":"3299:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:101","nodeType":"YulIdentifier","src":"3312:9:101"},{"kind":"number","nativeSrc":"3323:1:101","nodeType":"YulLiteral","src":"3323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:101","nodeType":"YulIdentifier","src":"3308:3:101"},"nativeSrc":"3308:17:101","nodeType":"YulFunctionCall","src":"3308:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:101","nodeType":"YulIdentifier","src":"3261:37:101"},"nativeSrc":"3261:65:101","nodeType":"YulFunctionCall","src":"3261:65:101"},"nativeSrc":"3261:65:101","nodeType":"YulExpressionStatement","src":"3261:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:101","nodeType":"YulTypedName","src":"3187:9:101","type":""},{"name":"value0","nativeSrc":"3199:6:101","nodeType":"YulTypedName","src":"3199:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:101","nodeType":"YulTypedName","src":"3210:4:101","type":""}],"src":"3123:210:101"},{"body":{"nativeSrc":"3404:53:101","nodeType":"YulBlock","src":"3404:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:101","nodeType":"YulIdentifier","src":"3421:3:101"},{"arguments":[{"name":"value","nativeSrc":"3444:5:101","nodeType":"YulIdentifier","src":"3444:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:101","nodeType":"YulIdentifier","src":"3426:17:101"},"nativeSrc":"3426:24:101","nodeType":"YulFunctionCall","src":"3426:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:101","nodeType":"YulIdentifier","src":"3414:6:101"},"nativeSrc":"3414:37:101","nodeType":"YulFunctionCall","src":"3414:37:101"},"nativeSrc":"3414:37:101","nodeType":"YulExpressionStatement","src":"3414:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:101","nodeType":"YulTypedName","src":"3392:5:101","type":""},{"name":"pos","nativeSrc":"3399:3:101","nodeType":"YulTypedName","src":"3399:3:101","type":""}],"src":"3339:118:101"},{"body":{"nativeSrc":"3561:124:101","nodeType":"YulBlock","src":"3561:124:101","statements":[{"nativeSrc":"3571:26:101","nodeType":"YulAssignment","src":"3571:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:101","nodeType":"YulIdentifier","src":"3583:9:101"},{"kind":"number","nativeSrc":"3594:2:101","nodeType":"YulLiteral","src":"3594:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:101","nodeType":"YulIdentifier","src":"3579:3:101"},"nativeSrc":"3579:18:101","nodeType":"YulFunctionCall","src":"3579:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:101","nodeType":"YulIdentifier","src":"3571:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:101","nodeType":"YulIdentifier","src":"3651:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:101","nodeType":"YulIdentifier","src":"3664:9:101"},{"kind":"number","nativeSrc":"3675:1:101","nodeType":"YulLiteral","src":"3675:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:101","nodeType":"YulIdentifier","src":"3660:3:101"},"nativeSrc":"3660:17:101","nodeType":"YulFunctionCall","src":"3660:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:101","nodeType":"YulIdentifier","src":"3607:43:101"},"nativeSrc":"3607:71:101","nodeType":"YulFunctionCall","src":"3607:71:101"},"nativeSrc":"3607:71:101","nodeType":"YulExpressionStatement","src":"3607:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:101","nodeType":"YulTypedName","src":"3533:9:101","type":""},{"name":"value0","nativeSrc":"3545:6:101","nodeType":"YulTypedName","src":"3545:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:101","nodeType":"YulTypedName","src":"3556:4:101","type":""}],"src":"3463:222:101"},{"body":{"nativeSrc":"3791:519:101","nodeType":"YulBlock","src":"3791:519:101","statements":[{"body":{"nativeSrc":"3837:83:101","nodeType":"YulBlock","src":"3837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:101","nodeType":"YulIdentifier","src":"3839:77:101"},"nativeSrc":"3839:79:101","nodeType":"YulFunctionCall","src":"3839:79:101"},"nativeSrc":"3839:79:101","nodeType":"YulExpressionStatement","src":"3839:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:101","nodeType":"YulIdentifier","src":"3812:7:101"},{"name":"headStart","nativeSrc":"3821:9:101","nodeType":"YulIdentifier","src":"3821:9:101"}],"functionName":{"name":"sub","nativeSrc":"3808:3:101","nodeType":"YulIdentifier","src":"3808:3:101"},"nativeSrc":"3808:23:101","nodeType":"YulFunctionCall","src":"3808:23:101"},{"kind":"number","nativeSrc":"3833:2:101","nodeType":"YulLiteral","src":"3833:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:101","nodeType":"YulIdentifier","src":"3804:3:101"},"nativeSrc":"3804:32:101","nodeType":"YulFunctionCall","src":"3804:32:101"},"nativeSrc":"3801:119:101","nodeType":"YulIf","src":"3801:119:101"},{"nativeSrc":"3930:117:101","nodeType":"YulBlock","src":"3930:117:101","statements":[{"nativeSrc":"3945:15:101","nodeType":"YulVariableDeclaration","src":"3945:15:101","value":{"kind":"number","nativeSrc":"3959:1:101","nodeType":"YulLiteral","src":"3959:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:101","nodeType":"YulTypedName","src":"3949:6:101","type":""}]},{"nativeSrc":"3974:63:101","nodeType":"YulAssignment","src":"3974:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:101","nodeType":"YulIdentifier","src":"4009:9:101"},{"name":"offset","nativeSrc":"4020:6:101","nodeType":"YulIdentifier","src":"4020:6:101"}],"functionName":{"name":"add","nativeSrc":"4005:3:101","nodeType":"YulIdentifier","src":"4005:3:101"},"nativeSrc":"4005:22:101","nodeType":"YulFunctionCall","src":"4005:22:101"},{"name":"dataEnd","nativeSrc":"4029:7:101","nodeType":"YulIdentifier","src":"4029:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:101","nodeType":"YulIdentifier","src":"3984:20:101"},"nativeSrc":"3984:53:101","nodeType":"YulFunctionCall","src":"3984:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:101","nodeType":"YulIdentifier","src":"3974:6:101"}]}]},{"nativeSrc":"4057:118:101","nodeType":"YulBlock","src":"4057:118:101","statements":[{"nativeSrc":"4072:16:101","nodeType":"YulVariableDeclaration","src":"4072:16:101","value":{"kind":"number","nativeSrc":"4086:2:101","nodeType":"YulLiteral","src":"4086:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:101","nodeType":"YulTypedName","src":"4076:6:101","type":""}]},{"nativeSrc":"4102:63:101","nodeType":"YulAssignment","src":"4102:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:101","nodeType":"YulIdentifier","src":"4137:9:101"},{"name":"offset","nativeSrc":"4148:6:101","nodeType":"YulIdentifier","src":"4148:6:101"}],"functionName":{"name":"add","nativeSrc":"4133:3:101","nodeType":"YulIdentifier","src":"4133:3:101"},"nativeSrc":"4133:22:101","nodeType":"YulFunctionCall","src":"4133:22:101"},{"name":"dataEnd","nativeSrc":"4157:7:101","nodeType":"YulIdentifier","src":"4157:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:101","nodeType":"YulIdentifier","src":"4112:20:101"},"nativeSrc":"4112:53:101","nodeType":"YulFunctionCall","src":"4112:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:101","nodeType":"YulIdentifier","src":"4102:6:101"}]}]},{"nativeSrc":"4185:118:101","nodeType":"YulBlock","src":"4185:118:101","statements":[{"nativeSrc":"4200:16:101","nodeType":"YulVariableDeclaration","src":"4200:16:101","value":{"kind":"number","nativeSrc":"4214:2:101","nodeType":"YulLiteral","src":"4214:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:101","nodeType":"YulTypedName","src":"4204:6:101","type":""}]},{"nativeSrc":"4230:63:101","nodeType":"YulAssignment","src":"4230:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:101","nodeType":"YulIdentifier","src":"4265:9:101"},{"name":"offset","nativeSrc":"4276:6:101","nodeType":"YulIdentifier","src":"4276:6:101"}],"functionName":{"name":"add","nativeSrc":"4261:3:101","nodeType":"YulIdentifier","src":"4261:3:101"},"nativeSrc":"4261:22:101","nodeType":"YulFunctionCall","src":"4261:22:101"},{"name":"dataEnd","nativeSrc":"4285:7:101","nodeType":"YulIdentifier","src":"4285:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:101","nodeType":"YulIdentifier","src":"4240:20:101"},"nativeSrc":"4240:53:101","nodeType":"YulFunctionCall","src":"4240:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:101","nodeType":"YulIdentifier","src":"4230:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:101","nodeType":"YulTypedName","src":"3745:9:101","type":""},{"name":"dataEnd","nativeSrc":"3756:7:101","nodeType":"YulTypedName","src":"3756:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:101","nodeType":"YulTypedName","src":"3768:6:101","type":""},{"name":"value1","nativeSrc":"3776:6:101","nodeType":"YulTypedName","src":"3776:6:101","type":""},{"name":"value2","nativeSrc":"3784:6:101","nodeType":"YulTypedName","src":"3784:6:101","type":""}],"src":"3691:619:101"},{"body":{"nativeSrc":"4359:43:101","nodeType":"YulBlock","src":"4359:43:101","statements":[{"nativeSrc":"4369:27:101","nodeType":"YulAssignment","src":"4369:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:101","nodeType":"YulIdentifier","src":"4384:5:101"},{"kind":"number","nativeSrc":"4391:4:101","nodeType":"YulLiteral","src":"4391:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:101","nodeType":"YulIdentifier","src":"4380:3:101"},"nativeSrc":"4380:16:101","nodeType":"YulFunctionCall","src":"4380:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:101","nodeType":"YulIdentifier","src":"4369:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:101","nodeType":"YulTypedName","src":"4341:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:101","nodeType":"YulTypedName","src":"4351:7:101","type":""}],"src":"4316:86:101"},{"body":{"nativeSrc":"4469:51:101","nodeType":"YulBlock","src":"4469:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:101","nodeType":"YulIdentifier","src":"4486:3:101"},{"arguments":[{"name":"value","nativeSrc":"4507:5:101","nodeType":"YulIdentifier","src":"4507:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:101","nodeType":"YulIdentifier","src":"4491:15:101"},"nativeSrc":"4491:22:101","nodeType":"YulFunctionCall","src":"4491:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:101","nodeType":"YulIdentifier","src":"4479:6:101"},"nativeSrc":"4479:35:101","nodeType":"YulFunctionCall","src":"4479:35:101"},"nativeSrc":"4479:35:101","nodeType":"YulExpressionStatement","src":"4479:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:101","nodeType":"YulTypedName","src":"4457:5:101","type":""},{"name":"pos","nativeSrc":"4464:3:101","nodeType":"YulTypedName","src":"4464:3:101","type":""}],"src":"4408:112:101"},{"body":{"nativeSrc":"4620:120:101","nodeType":"YulBlock","src":"4620:120:101","statements":[{"nativeSrc":"4630:26:101","nodeType":"YulAssignment","src":"4630:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:101","nodeType":"YulIdentifier","src":"4642:9:101"},{"kind":"number","nativeSrc":"4653:2:101","nodeType":"YulLiteral","src":"4653:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:101","nodeType":"YulIdentifier","src":"4638:3:101"},"nativeSrc":"4638:18:101","nodeType":"YulFunctionCall","src":"4638:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:101","nodeType":"YulIdentifier","src":"4630:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:101","nodeType":"YulIdentifier","src":"4706:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:101","nodeType":"YulIdentifier","src":"4719:9:101"},{"kind":"number","nativeSrc":"4730:1:101","nodeType":"YulLiteral","src":"4730:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:101","nodeType":"YulIdentifier","src":"4715:3:101"},"nativeSrc":"4715:17:101","nodeType":"YulFunctionCall","src":"4715:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:101","nodeType":"YulIdentifier","src":"4666:39:101"},"nativeSrc":"4666:67:101","nodeType":"YulFunctionCall","src":"4666:67:101"},"nativeSrc":"4666:67:101","nodeType":"YulExpressionStatement","src":"4666:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:101","nodeType":"YulTypedName","src":"4592:9:101","type":""},{"name":"value0","nativeSrc":"4604:6:101","nodeType":"YulTypedName","src":"4604:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:101","nodeType":"YulTypedName","src":"4615:4:101","type":""}],"src":"4526:214:101"},{"body":{"nativeSrc":"4812:263:101","nodeType":"YulBlock","src":"4812:263:101","statements":[{"body":{"nativeSrc":"4858:83:101","nodeType":"YulBlock","src":"4858:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4860:77:101","nodeType":"YulIdentifier","src":"4860:77:101"},"nativeSrc":"4860:79:101","nodeType":"YulFunctionCall","src":"4860:79:101"},"nativeSrc":"4860:79:101","nodeType":"YulExpressionStatement","src":"4860:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4833:7:101","nodeType":"YulIdentifier","src":"4833:7:101"},{"name":"headStart","nativeSrc":"4842:9:101","nodeType":"YulIdentifier","src":"4842:9:101"}],"functionName":{"name":"sub","nativeSrc":"4829:3:101","nodeType":"YulIdentifier","src":"4829:3:101"},"nativeSrc":"4829:23:101","nodeType":"YulFunctionCall","src":"4829:23:101"},{"kind":"number","nativeSrc":"4854:2:101","nodeType":"YulLiteral","src":"4854:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4825:3:101","nodeType":"YulIdentifier","src":"4825:3:101"},"nativeSrc":"4825:32:101","nodeType":"YulFunctionCall","src":"4825:32:101"},"nativeSrc":"4822:119:101","nodeType":"YulIf","src":"4822:119:101"},{"nativeSrc":"4951:117:101","nodeType":"YulBlock","src":"4951:117:101","statements":[{"nativeSrc":"4966:15:101","nodeType":"YulVariableDeclaration","src":"4966:15:101","value":{"kind":"number","nativeSrc":"4980:1:101","nodeType":"YulLiteral","src":"4980:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4970:6:101","nodeType":"YulTypedName","src":"4970:6:101","type":""}]},{"nativeSrc":"4995:63:101","nodeType":"YulAssignment","src":"4995:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5030:9:101","nodeType":"YulIdentifier","src":"5030:9:101"},{"name":"offset","nativeSrc":"5041:6:101","nodeType":"YulIdentifier","src":"5041:6:101"}],"functionName":{"name":"add","nativeSrc":"5026:3:101","nodeType":"YulIdentifier","src":"5026:3:101"},"nativeSrc":"5026:22:101","nodeType":"YulFunctionCall","src":"5026:22:101"},{"name":"dataEnd","nativeSrc":"5050:7:101","nodeType":"YulIdentifier","src":"5050:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5005:20:101","nodeType":"YulIdentifier","src":"5005:20:101"},"nativeSrc":"5005:53:101","nodeType":"YulFunctionCall","src":"5005:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4995:6:101","nodeType":"YulIdentifier","src":"4995:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"4746:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4782:9:101","nodeType":"YulTypedName","src":"4782:9:101","type":""},{"name":"dataEnd","nativeSrc":"4793:7:101","nodeType":"YulTypedName","src":"4793:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4805:6:101","nodeType":"YulTypedName","src":"4805:6:101","type":""}],"src":"4746:329:101"},{"body":{"nativeSrc":"5146:53:101","nodeType":"YulBlock","src":"5146:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5163:3:101","nodeType":"YulIdentifier","src":"5163:3:101"},{"arguments":[{"name":"value","nativeSrc":"5186:5:101","nodeType":"YulIdentifier","src":"5186:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5168:17:101","nodeType":"YulIdentifier","src":"5168:17:101"},"nativeSrc":"5168:24:101","nodeType":"YulFunctionCall","src":"5168:24:101"}],"functionName":{"name":"mstore","nativeSrc":"5156:6:101","nodeType":"YulIdentifier","src":"5156:6:101"},"nativeSrc":"5156:37:101","nodeType":"YulFunctionCall","src":"5156:37:101"},"nativeSrc":"5156:37:101","nodeType":"YulExpressionStatement","src":"5156:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5081:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5134:5:101","nodeType":"YulTypedName","src":"5134:5:101","type":""},{"name":"pos","nativeSrc":"5141:3:101","nodeType":"YulTypedName","src":"5141:3:101","type":""}],"src":"5081:118:101"},{"body":{"nativeSrc":"5303:124:101","nodeType":"YulBlock","src":"5303:124:101","statements":[{"nativeSrc":"5313:26:101","nodeType":"YulAssignment","src":"5313:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5325:9:101","nodeType":"YulIdentifier","src":"5325:9:101"},{"kind":"number","nativeSrc":"5336:2:101","nodeType":"YulLiteral","src":"5336:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5321:3:101","nodeType":"YulIdentifier","src":"5321:3:101"},"nativeSrc":"5321:18:101","nodeType":"YulFunctionCall","src":"5321:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5313:4:101","nodeType":"YulIdentifier","src":"5313:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5393:6:101","nodeType":"YulIdentifier","src":"5393:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5406:9:101","nodeType":"YulIdentifier","src":"5406:9:101"},{"kind":"number","nativeSrc":"5417:1:101","nodeType":"YulLiteral","src":"5417:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5402:3:101","nodeType":"YulIdentifier","src":"5402:3:101"},"nativeSrc":"5402:17:101","nodeType":"YulFunctionCall","src":"5402:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5349:43:101","nodeType":"YulIdentifier","src":"5349:43:101"},"nativeSrc":"5349:71:101","nodeType":"YulFunctionCall","src":"5349:71:101"},"nativeSrc":"5349:71:101","nodeType":"YulExpressionStatement","src":"5349:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5205:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5275:9:101","nodeType":"YulTypedName","src":"5275:9:101","type":""},{"name":"value0","nativeSrc":"5287:6:101","nodeType":"YulTypedName","src":"5287:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5298:4:101","nodeType":"YulTypedName","src":"5298:4:101","type":""}],"src":"5205:222:101"},{"body":{"nativeSrc":"5499:263:101","nodeType":"YulBlock","src":"5499:263:101","statements":[{"body":{"nativeSrc":"5545:83:101","nodeType":"YulBlock","src":"5545:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5547:77:101","nodeType":"YulIdentifier","src":"5547:77:101"},"nativeSrc":"5547:79:101","nodeType":"YulFunctionCall","src":"5547:79:101"},"nativeSrc":"5547:79:101","nodeType":"YulExpressionStatement","src":"5547:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5520:7:101","nodeType":"YulIdentifier","src":"5520:7:101"},{"name":"headStart","nativeSrc":"5529:9:101","nodeType":"YulIdentifier","src":"5529:9:101"}],"functionName":{"name":"sub","nativeSrc":"5516:3:101","nodeType":"YulIdentifier","src":"5516:3:101"},"nativeSrc":"5516:23:101","nodeType":"YulFunctionCall","src":"5516:23:101"},{"kind":"number","nativeSrc":"5541:2:101","nodeType":"YulLiteral","src":"5541:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5512:3:101","nodeType":"YulIdentifier","src":"5512:3:101"},"nativeSrc":"5512:32:101","nodeType":"YulFunctionCall","src":"5512:32:101"},"nativeSrc":"5509:119:101","nodeType":"YulIf","src":"5509:119:101"},{"nativeSrc":"5638:117:101","nodeType":"YulBlock","src":"5638:117:101","statements":[{"nativeSrc":"5653:15:101","nodeType":"YulVariableDeclaration","src":"5653:15:101","value":{"kind":"number","nativeSrc":"5667:1:101","nodeType":"YulLiteral","src":"5667:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5657:6:101","nodeType":"YulTypedName","src":"5657:6:101","type":""}]},{"nativeSrc":"5682:63:101","nodeType":"YulAssignment","src":"5682:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5717:9:101","nodeType":"YulIdentifier","src":"5717:9:101"},{"name":"offset","nativeSrc":"5728:6:101","nodeType":"YulIdentifier","src":"5728:6:101"}],"functionName":{"name":"add","nativeSrc":"5713:3:101","nodeType":"YulIdentifier","src":"5713:3:101"},"nativeSrc":"5713:22:101","nodeType":"YulFunctionCall","src":"5713:22:101"},{"name":"dataEnd","nativeSrc":"5737:7:101","nodeType":"YulIdentifier","src":"5737:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5692:20:101","nodeType":"YulIdentifier","src":"5692:20:101"},"nativeSrc":"5692:53:101","nodeType":"YulFunctionCall","src":"5692:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5682:6:101","nodeType":"YulIdentifier","src":"5682:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5433:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5469:9:101","nodeType":"YulTypedName","src":"5469:9:101","type":""},{"name":"dataEnd","nativeSrc":"5480:7:101","nodeType":"YulTypedName","src":"5480:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5492:6:101","nodeType":"YulTypedName","src":"5492:6:101","type":""}],"src":"5433:329:101"},{"body":{"nativeSrc":"5851:391:101","nodeType":"YulBlock","src":"5851:391:101","statements":[{"body":{"nativeSrc":"5897:83:101","nodeType":"YulBlock","src":"5897:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5899:77:101","nodeType":"YulIdentifier","src":"5899:77:101"},"nativeSrc":"5899:79:101","nodeType":"YulFunctionCall","src":"5899:79:101"},"nativeSrc":"5899:79:101","nodeType":"YulExpressionStatement","src":"5899:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5872:7:101","nodeType":"YulIdentifier","src":"5872:7:101"},{"name":"headStart","nativeSrc":"5881:9:101","nodeType":"YulIdentifier","src":"5881:9:101"}],"functionName":{"name":"sub","nativeSrc":"5868:3:101","nodeType":"YulIdentifier","src":"5868:3:101"},"nativeSrc":"5868:23:101","nodeType":"YulFunctionCall","src":"5868:23:101"},{"kind":"number","nativeSrc":"5893:2:101","nodeType":"YulLiteral","src":"5893:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5864:3:101","nodeType":"YulIdentifier","src":"5864:3:101"},"nativeSrc":"5864:32:101","nodeType":"YulFunctionCall","src":"5864:32:101"},"nativeSrc":"5861:119:101","nodeType":"YulIf","src":"5861:119:101"},{"nativeSrc":"5990:117:101","nodeType":"YulBlock","src":"5990:117:101","statements":[{"nativeSrc":"6005:15:101","nodeType":"YulVariableDeclaration","src":"6005:15:101","value":{"kind":"number","nativeSrc":"6019:1:101","nodeType":"YulLiteral","src":"6019:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6009:6:101","nodeType":"YulTypedName","src":"6009:6:101","type":""}]},{"nativeSrc":"6034:63:101","nodeType":"YulAssignment","src":"6034:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6069:9:101","nodeType":"YulIdentifier","src":"6069:9:101"},{"name":"offset","nativeSrc":"6080:6:101","nodeType":"YulIdentifier","src":"6080:6:101"}],"functionName":{"name":"add","nativeSrc":"6065:3:101","nodeType":"YulIdentifier","src":"6065:3:101"},"nativeSrc":"6065:22:101","nodeType":"YulFunctionCall","src":"6065:22:101"},{"name":"dataEnd","nativeSrc":"6089:7:101","nodeType":"YulIdentifier","src":"6089:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6044:20:101","nodeType":"YulIdentifier","src":"6044:20:101"},"nativeSrc":"6044:53:101","nodeType":"YulFunctionCall","src":"6044:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6034:6:101","nodeType":"YulIdentifier","src":"6034:6:101"}]}]},{"nativeSrc":"6117:118:101","nodeType":"YulBlock","src":"6117:118:101","statements":[{"nativeSrc":"6132:16:101","nodeType":"YulVariableDeclaration","src":"6132:16:101","value":{"kind":"number","nativeSrc":"6146:2:101","nodeType":"YulLiteral","src":"6146:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6136:6:101","nodeType":"YulTypedName","src":"6136:6:101","type":""}]},{"nativeSrc":"6162:63:101","nodeType":"YulAssignment","src":"6162:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6197:9:101","nodeType":"YulIdentifier","src":"6197:9:101"},{"name":"offset","nativeSrc":"6208:6:101","nodeType":"YulIdentifier","src":"6208:6:101"}],"functionName":{"name":"add","nativeSrc":"6193:3:101","nodeType":"YulIdentifier","src":"6193:3:101"},"nativeSrc":"6193:22:101","nodeType":"YulFunctionCall","src":"6193:22:101"},{"name":"dataEnd","nativeSrc":"6217:7:101","nodeType":"YulIdentifier","src":"6217:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6172:20:101","nodeType":"YulIdentifier","src":"6172:20:101"},"nativeSrc":"6172:53:101","nodeType":"YulFunctionCall","src":"6172:53:101"},"variableNames":[{"name":"value1","nativeSrc":"6162:6:101","nodeType":"YulIdentifier","src":"6162:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5768:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5813:9:101","nodeType":"YulTypedName","src":"5813:9:101","type":""},{"name":"dataEnd","nativeSrc":"5824:7:101","nodeType":"YulTypedName","src":"5824:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5836:6:101","nodeType":"YulTypedName","src":"5836:6:101","type":""},{"name":"value1","nativeSrc":"5844:6:101","nodeType":"YulTypedName","src":"5844:6:101","type":""}],"src":"5768:474:101"},{"body":{"nativeSrc":"6276:152:101","nodeType":"YulBlock","src":"6276:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6293:1:101","nodeType":"YulLiteral","src":"6293:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6296:77:101","nodeType":"YulLiteral","src":"6296:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6286:6:101","nodeType":"YulIdentifier","src":"6286:6:101"},"nativeSrc":"6286:88:101","nodeType":"YulFunctionCall","src":"6286:88:101"},"nativeSrc":"6286:88:101","nodeType":"YulExpressionStatement","src":"6286:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6390:1:101","nodeType":"YulLiteral","src":"6390:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6393:4:101","nodeType":"YulLiteral","src":"6393:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6383:6:101","nodeType":"YulIdentifier","src":"6383:6:101"},"nativeSrc":"6383:15:101","nodeType":"YulFunctionCall","src":"6383:15:101"},"nativeSrc":"6383:15:101","nodeType":"YulExpressionStatement","src":"6383:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6414:1:101","nodeType":"YulLiteral","src":"6414:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6417:4:101","nodeType":"YulLiteral","src":"6417:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6407:6:101","nodeType":"YulIdentifier","src":"6407:6:101"},"nativeSrc":"6407:15:101","nodeType":"YulFunctionCall","src":"6407:15:101"},"nativeSrc":"6407:15:101","nodeType":"YulExpressionStatement","src":"6407:15:101"}]},"name":"panic_error_0x22","nativeSrc":"6248:180:101","nodeType":"YulFunctionDefinition","src":"6248:180:101"},{"body":{"nativeSrc":"6485:269:101","nodeType":"YulBlock","src":"6485:269:101","statements":[{"nativeSrc":"6495:22:101","nodeType":"YulAssignment","src":"6495:22:101","value":{"arguments":[{"name":"data","nativeSrc":"6509:4:101","nodeType":"YulIdentifier","src":"6509:4:101"},{"kind":"number","nativeSrc":"6515:1:101","nodeType":"YulLiteral","src":"6515:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"6505:3:101","nodeType":"YulIdentifier","src":"6505:3:101"},"nativeSrc":"6505:12:101","nodeType":"YulFunctionCall","src":"6505:12:101"},"variableNames":[{"name":"length","nativeSrc":"6495:6:101","nodeType":"YulIdentifier","src":"6495:6:101"}]},{"nativeSrc":"6526:38:101","nodeType":"YulVariableDeclaration","src":"6526:38:101","value":{"arguments":[{"name":"data","nativeSrc":"6556:4:101","nodeType":"YulIdentifier","src":"6556:4:101"},{"kind":"number","nativeSrc":"6562:1:101","nodeType":"YulLiteral","src":"6562:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6552:3:101","nodeType":"YulIdentifier","src":"6552:3:101"},"nativeSrc":"6552:12:101","nodeType":"YulFunctionCall","src":"6552:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6530:18:101","nodeType":"YulTypedName","src":"6530:18:101","type":""}]},{"body":{"nativeSrc":"6603:51:101","nodeType":"YulBlock","src":"6603:51:101","statements":[{"nativeSrc":"6617:27:101","nodeType":"YulAssignment","src":"6617:27:101","value":{"arguments":[{"name":"length","nativeSrc":"6631:6:101","nodeType":"YulIdentifier","src":"6631:6:101"},{"kind":"number","nativeSrc":"6639:4:101","nodeType":"YulLiteral","src":"6639:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6627:3:101","nodeType":"YulIdentifier","src":"6627:3:101"},"nativeSrc":"6627:17:101","nodeType":"YulFunctionCall","src":"6627:17:101"},"variableNames":[{"name":"length","nativeSrc":"6617:6:101","nodeType":"YulIdentifier","src":"6617:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6583:18:101","nodeType":"YulIdentifier","src":"6583:18:101"}],"functionName":{"name":"iszero","nativeSrc":"6576:6:101","nodeType":"YulIdentifier","src":"6576:6:101"},"nativeSrc":"6576:26:101","nodeType":"YulFunctionCall","src":"6576:26:101"},"nativeSrc":"6573:81:101","nodeType":"YulIf","src":"6573:81:101"},{"body":{"nativeSrc":"6706:42:101","nodeType":"YulBlock","src":"6706:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6720:16:101","nodeType":"YulIdentifier","src":"6720:16:101"},"nativeSrc":"6720:18:101","nodeType":"YulFunctionCall","src":"6720:18:101"},"nativeSrc":"6720:18:101","nodeType":"YulExpressionStatement","src":"6720:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6670:18:101","nodeType":"YulIdentifier","src":"6670:18:101"},{"arguments":[{"name":"length","nativeSrc":"6693:6:101","nodeType":"YulIdentifier","src":"6693:6:101"},{"kind":"number","nativeSrc":"6701:2:101","nodeType":"YulLiteral","src":"6701:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6690:2:101","nodeType":"YulIdentifier","src":"6690:2:101"},"nativeSrc":"6690:14:101","nodeType":"YulFunctionCall","src":"6690:14:101"}],"functionName":{"name":"eq","nativeSrc":"6667:2:101","nodeType":"YulIdentifier","src":"6667:2:101"},"nativeSrc":"6667:38:101","nodeType":"YulFunctionCall","src":"6667:38:101"},"nativeSrc":"6664:84:101","nodeType":"YulIf","src":"6664:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"6434:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6469:4:101","nodeType":"YulTypedName","src":"6469:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6478:6:101","nodeType":"YulTypedName","src":"6478:6:101","type":""}],"src":"6434:320:101"},{"body":{"nativeSrc":"6788:152:101","nodeType":"YulBlock","src":"6788:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6805:1:101","nodeType":"YulLiteral","src":"6805:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6808:77:101","nodeType":"YulLiteral","src":"6808:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6798:6:101","nodeType":"YulIdentifier","src":"6798:6:101"},"nativeSrc":"6798:88:101","nodeType":"YulFunctionCall","src":"6798:88:101"},"nativeSrc":"6798:88:101","nodeType":"YulExpressionStatement","src":"6798:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6902:1:101","nodeType":"YulLiteral","src":"6902:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6905:4:101","nodeType":"YulLiteral","src":"6905:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6895:6:101","nodeType":"YulIdentifier","src":"6895:6:101"},"nativeSrc":"6895:15:101","nodeType":"YulFunctionCall","src":"6895:15:101"},"nativeSrc":"6895:15:101","nodeType":"YulExpressionStatement","src":"6895:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6926:1:101","nodeType":"YulLiteral","src":"6926:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6929:4:101","nodeType":"YulLiteral","src":"6929:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6919:6:101","nodeType":"YulIdentifier","src":"6919:6:101"},"nativeSrc":"6919:15:101","nodeType":"YulFunctionCall","src":"6919:15:101"},"nativeSrc":"6919:15:101","nodeType":"YulExpressionStatement","src":"6919:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6760:180:101","nodeType":"YulFunctionDefinition","src":"6760:180:101"},{"body":{"nativeSrc":"6990:147:101","nodeType":"YulBlock","src":"6990:147:101","statements":[{"nativeSrc":"7000:25:101","nodeType":"YulAssignment","src":"7000:25:101","value":{"arguments":[{"name":"x","nativeSrc":"7023:1:101","nodeType":"YulIdentifier","src":"7023:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7005:17:101","nodeType":"YulIdentifier","src":"7005:17:101"},"nativeSrc":"7005:20:101","nodeType":"YulFunctionCall","src":"7005:20:101"},"variableNames":[{"name":"x","nativeSrc":"7000:1:101","nodeType":"YulIdentifier","src":"7000:1:101"}]},{"nativeSrc":"7034:25:101","nodeType":"YulAssignment","src":"7034:25:101","value":{"arguments":[{"name":"y","nativeSrc":"7057:1:101","nodeType":"YulIdentifier","src":"7057:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7039:17:101","nodeType":"YulIdentifier","src":"7039:17:101"},"nativeSrc":"7039:20:101","nodeType":"YulFunctionCall","src":"7039:20:101"},"variableNames":[{"name":"y","nativeSrc":"7034:1:101","nodeType":"YulIdentifier","src":"7034:1:101"}]},{"nativeSrc":"7068:16:101","nodeType":"YulAssignment","src":"7068:16:101","value":{"arguments":[{"name":"x","nativeSrc":"7079:1:101","nodeType":"YulIdentifier","src":"7079:1:101"},{"name":"y","nativeSrc":"7082:1:101","nodeType":"YulIdentifier","src":"7082:1:101"}],"functionName":{"name":"add","nativeSrc":"7075:3:101","nodeType":"YulIdentifier","src":"7075:3:101"},"nativeSrc":"7075:9:101","nodeType":"YulFunctionCall","src":"7075:9:101"},"variableNames":[{"name":"sum","nativeSrc":"7068:3:101","nodeType":"YulIdentifier","src":"7068:3:101"}]},{"body":{"nativeSrc":"7108:22:101","nodeType":"YulBlock","src":"7108:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7110:16:101","nodeType":"YulIdentifier","src":"7110:16:101"},"nativeSrc":"7110:18:101","nodeType":"YulFunctionCall","src":"7110:18:101"},"nativeSrc":"7110:18:101","nodeType":"YulExpressionStatement","src":"7110:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7100:1:101","nodeType":"YulIdentifier","src":"7100:1:101"},{"name":"sum","nativeSrc":"7103:3:101","nodeType":"YulIdentifier","src":"7103:3:101"}],"functionName":{"name":"gt","nativeSrc":"7097:2:101","nodeType":"YulIdentifier","src":"7097:2:101"},"nativeSrc":"7097:10:101","nodeType":"YulFunctionCall","src":"7097:10:101"},"nativeSrc":"7094:36:101","nodeType":"YulIf","src":"7094:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6946:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6977:1:101","nodeType":"YulTypedName","src":"6977:1:101","type":""},{"name":"y","nativeSrc":"6980:1:101","nodeType":"YulTypedName","src":"6980:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6986:3:101","nodeType":"YulTypedName","src":"6986:3:101","type":""}],"src":"6946:191:101"},{"body":{"nativeSrc":"7249:118:101","nodeType":"YulBlock","src":"7249:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7271:6:101","nodeType":"YulIdentifier","src":"7271:6:101"},{"kind":"number","nativeSrc":"7279:1:101","nodeType":"YulLiteral","src":"7279:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7267:3:101","nodeType":"YulIdentifier","src":"7267:3:101"},"nativeSrc":"7267:14:101","nodeType":"YulFunctionCall","src":"7267:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"7283:34:101","nodeType":"YulLiteral","src":"7283:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"7260:6:101","nodeType":"YulIdentifier","src":"7260:6:101"},"nativeSrc":"7260:58:101","nodeType":"YulFunctionCall","src":"7260:58:101"},"nativeSrc":"7260:58:101","nodeType":"YulExpressionStatement","src":"7260:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7339:6:101","nodeType":"YulIdentifier","src":"7339:6:101"},{"kind":"number","nativeSrc":"7347:2:101","nodeType":"YulLiteral","src":"7347:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7335:3:101","nodeType":"YulIdentifier","src":"7335:3:101"},"nativeSrc":"7335:15:101","nodeType":"YulFunctionCall","src":"7335:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"7352:7:101","nodeType":"YulLiteral","src":"7352:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"7328:6:101","nodeType":"YulIdentifier","src":"7328:6:101"},"nativeSrc":"7328:32:101","nodeType":"YulFunctionCall","src":"7328:32:101"},"nativeSrc":"7328:32:101","nodeType":"YulExpressionStatement","src":"7328:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7143:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7241:6:101","nodeType":"YulTypedName","src":"7241:6:101","type":""}],"src":"7143:224:101"},{"body":{"nativeSrc":"7519:220:101","nodeType":"YulBlock","src":"7519:220:101","statements":[{"nativeSrc":"7529:74:101","nodeType":"YulAssignment","src":"7529:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7595:3:101","nodeType":"YulIdentifier","src":"7595:3:101"},{"kind":"number","nativeSrc":"7600:2:101","nodeType":"YulLiteral","src":"7600:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7536:58:101","nodeType":"YulIdentifier","src":"7536:58:101"},"nativeSrc":"7536:67:101","nodeType":"YulFunctionCall","src":"7536:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7701:3:101","nodeType":"YulIdentifier","src":"7701:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7612:88:101","nodeType":"YulIdentifier","src":"7612:88:101"},"nativeSrc":"7612:93:101","nodeType":"YulFunctionCall","src":"7612:93:101"},"nativeSrc":"7612:93:101","nodeType":"YulExpressionStatement","src":"7612:93:101"},{"nativeSrc":"7714:19:101","nodeType":"YulAssignment","src":"7714:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7725:3:101","nodeType":"YulIdentifier","src":"7725:3:101"},{"kind":"number","nativeSrc":"7730:2:101","nodeType":"YulLiteral","src":"7730:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7721:3:101","nodeType":"YulIdentifier","src":"7721:3:101"},"nativeSrc":"7721:12:101","nodeType":"YulFunctionCall","src":"7721:12:101"},"variableNames":[{"name":"end","nativeSrc":"7714:3:101","nodeType":"YulIdentifier","src":"7714:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7373:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7507:3:101","nodeType":"YulTypedName","src":"7507:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7515:3:101","nodeType":"YulTypedName","src":"7515:3:101","type":""}],"src":"7373:366:101"},{"body":{"nativeSrc":"7916:248:101","nodeType":"YulBlock","src":"7916:248:101","statements":[{"nativeSrc":"7926:26:101","nodeType":"YulAssignment","src":"7926:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7938:9:101","nodeType":"YulIdentifier","src":"7938:9:101"},{"kind":"number","nativeSrc":"7949:2:101","nodeType":"YulLiteral","src":"7949:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7934:3:101","nodeType":"YulIdentifier","src":"7934:3:101"},"nativeSrc":"7934:18:101","nodeType":"YulFunctionCall","src":"7934:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7926:4:101","nodeType":"YulIdentifier","src":"7926:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7973:9:101","nodeType":"YulIdentifier","src":"7973:9:101"},{"kind":"number","nativeSrc":"7984:1:101","nodeType":"YulLiteral","src":"7984:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7969:3:101","nodeType":"YulIdentifier","src":"7969:3:101"},"nativeSrc":"7969:17:101","nodeType":"YulFunctionCall","src":"7969:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7992:4:101","nodeType":"YulIdentifier","src":"7992:4:101"},{"name":"headStart","nativeSrc":"7998:9:101","nodeType":"YulIdentifier","src":"7998:9:101"}],"functionName":{"name":"sub","nativeSrc":"7988:3:101","nodeType":"YulIdentifier","src":"7988:3:101"},"nativeSrc":"7988:20:101","nodeType":"YulFunctionCall","src":"7988:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7962:6:101","nodeType":"YulIdentifier","src":"7962:6:101"},"nativeSrc":"7962:47:101","nodeType":"YulFunctionCall","src":"7962:47:101"},"nativeSrc":"7962:47:101","nodeType":"YulExpressionStatement","src":"7962:47:101"},{"nativeSrc":"8018:139:101","nodeType":"YulAssignment","src":"8018:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"8152:4:101","nodeType":"YulIdentifier","src":"8152:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"8026:124:101","nodeType":"YulIdentifier","src":"8026:124:101"},"nativeSrc":"8026:131:101","nodeType":"YulFunctionCall","src":"8026:131:101"},"variableNames":[{"name":"tail","nativeSrc":"8018:4:101","nodeType":"YulIdentifier","src":"8018:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7745:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7896:9:101","nodeType":"YulTypedName","src":"7896:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7911:4:101","nodeType":"YulTypedName","src":"7911:4:101","type":""}],"src":"7745:419:101"},{"body":{"nativeSrc":"8276:117:101","nodeType":"YulBlock","src":"8276:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8298:6:101","nodeType":"YulIdentifier","src":"8298:6:101"},{"kind":"number","nativeSrc":"8306:1:101","nodeType":"YulLiteral","src":"8306:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8294:3:101","nodeType":"YulIdentifier","src":"8294:3:101"},"nativeSrc":"8294:14:101","nodeType":"YulFunctionCall","src":"8294:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"8310:34:101","nodeType":"YulLiteral","src":"8310:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"8287:6:101","nodeType":"YulIdentifier","src":"8287:6:101"},"nativeSrc":"8287:58:101","nodeType":"YulFunctionCall","src":"8287:58:101"},"nativeSrc":"8287:58:101","nodeType":"YulExpressionStatement","src":"8287:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8366:6:101","nodeType":"YulIdentifier","src":"8366:6:101"},{"kind":"number","nativeSrc":"8374:2:101","nodeType":"YulLiteral","src":"8374:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8362:3:101","nodeType":"YulIdentifier","src":"8362:3:101"},"nativeSrc":"8362:15:101","nodeType":"YulFunctionCall","src":"8362:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"8379:6:101","nodeType":"YulLiteral","src":"8379:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"8355:6:101","nodeType":"YulIdentifier","src":"8355:6:101"},"nativeSrc":"8355:31:101","nodeType":"YulFunctionCall","src":"8355:31:101"},"nativeSrc":"8355:31:101","nodeType":"YulExpressionStatement","src":"8355:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"8170:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8268:6:101","nodeType":"YulTypedName","src":"8268:6:101","type":""}],"src":"8170:223:101"},{"body":{"nativeSrc":"8545:220:101","nodeType":"YulBlock","src":"8545:220:101","statements":[{"nativeSrc":"8555:74:101","nodeType":"YulAssignment","src":"8555:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"8621:3:101","nodeType":"YulIdentifier","src":"8621:3:101"},{"kind":"number","nativeSrc":"8626:2:101","nodeType":"YulLiteral","src":"8626:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8562:58:101","nodeType":"YulIdentifier","src":"8562:58:101"},"nativeSrc":"8562:67:101","nodeType":"YulFunctionCall","src":"8562:67:101"},"variableNames":[{"name":"pos","nativeSrc":"8555:3:101","nodeType":"YulIdentifier","src":"8555:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8727:3:101","nodeType":"YulIdentifier","src":"8727:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"8638:88:101","nodeType":"YulIdentifier","src":"8638:88:101"},"nativeSrc":"8638:93:101","nodeType":"YulFunctionCall","src":"8638:93:101"},"nativeSrc":"8638:93:101","nodeType":"YulExpressionStatement","src":"8638:93:101"},{"nativeSrc":"8740:19:101","nodeType":"YulAssignment","src":"8740:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"8751:3:101","nodeType":"YulIdentifier","src":"8751:3:101"},{"kind":"number","nativeSrc":"8756:2:101","nodeType":"YulLiteral","src":"8756:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8747:3:101","nodeType":"YulIdentifier","src":"8747:3:101"},"nativeSrc":"8747:12:101","nodeType":"YulFunctionCall","src":"8747:12:101"},"variableNames":[{"name":"end","nativeSrc":"8740:3:101","nodeType":"YulIdentifier","src":"8740:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8399:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8533:3:101","nodeType":"YulTypedName","src":"8533:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8541:3:101","nodeType":"YulTypedName","src":"8541:3:101","type":""}],"src":"8399:366:101"},{"body":{"nativeSrc":"8942:248:101","nodeType":"YulBlock","src":"8942:248:101","statements":[{"nativeSrc":"8952:26:101","nodeType":"YulAssignment","src":"8952:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8964:9:101","nodeType":"YulIdentifier","src":"8964:9:101"},{"kind":"number","nativeSrc":"8975:2:101","nodeType":"YulLiteral","src":"8975:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8960:3:101","nodeType":"YulIdentifier","src":"8960:3:101"},"nativeSrc":"8960:18:101","nodeType":"YulFunctionCall","src":"8960:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8952:4:101","nodeType":"YulIdentifier","src":"8952:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8999:9:101","nodeType":"YulIdentifier","src":"8999:9:101"},{"kind":"number","nativeSrc":"9010:1:101","nodeType":"YulLiteral","src":"9010:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8995:3:101","nodeType":"YulIdentifier","src":"8995:3:101"},"nativeSrc":"8995:17:101","nodeType":"YulFunctionCall","src":"8995:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9018:4:101","nodeType":"YulIdentifier","src":"9018:4:101"},{"name":"headStart","nativeSrc":"9024:9:101","nodeType":"YulIdentifier","src":"9024:9:101"}],"functionName":{"name":"sub","nativeSrc":"9014:3:101","nodeType":"YulIdentifier","src":"9014:3:101"},"nativeSrc":"9014:20:101","nodeType":"YulFunctionCall","src":"9014:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8988:6:101","nodeType":"YulIdentifier","src":"8988:6:101"},"nativeSrc":"8988:47:101","nodeType":"YulFunctionCall","src":"8988:47:101"},"nativeSrc":"8988:47:101","nodeType":"YulExpressionStatement","src":"8988:47:101"},{"nativeSrc":"9044:139:101","nodeType":"YulAssignment","src":"9044:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9178:4:101","nodeType":"YulIdentifier","src":"9178:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"9052:124:101","nodeType":"YulIdentifier","src":"9052:124:101"},"nativeSrc":"9052:131:101","nodeType":"YulFunctionCall","src":"9052:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9044:4:101","nodeType":"YulIdentifier","src":"9044:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8771:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8922:9:101","nodeType":"YulTypedName","src":"8922:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8937:4:101","nodeType":"YulTypedName","src":"8937:4:101","type":""}],"src":"8771:419:101"},{"body":{"nativeSrc":"9302:115:101","nodeType":"YulBlock","src":"9302:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9324:6:101","nodeType":"YulIdentifier","src":"9324:6:101"},{"kind":"number","nativeSrc":"9332:1:101","nodeType":"YulLiteral","src":"9332:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9320:3:101","nodeType":"YulIdentifier","src":"9320:3:101"},"nativeSrc":"9320:14:101","nodeType":"YulFunctionCall","src":"9320:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"9336:34:101","nodeType":"YulLiteral","src":"9336:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"9313:6:101","nodeType":"YulIdentifier","src":"9313:6:101"},"nativeSrc":"9313:58:101","nodeType":"YulFunctionCall","src":"9313:58:101"},"nativeSrc":"9313:58:101","nodeType":"YulExpressionStatement","src":"9313:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9392:6:101","nodeType":"YulIdentifier","src":"9392:6:101"},{"kind":"number","nativeSrc":"9400:2:101","nodeType":"YulLiteral","src":"9400:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9388:3:101","nodeType":"YulIdentifier","src":"9388:3:101"},"nativeSrc":"9388:15:101","nodeType":"YulFunctionCall","src":"9388:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"9405:4:101","nodeType":"YulLiteral","src":"9405:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"9381:6:101","nodeType":"YulIdentifier","src":"9381:6:101"},"nativeSrc":"9381:29:101","nodeType":"YulFunctionCall","src":"9381:29:101"},"nativeSrc":"9381:29:101","nodeType":"YulExpressionStatement","src":"9381:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"9196:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9294:6:101","nodeType":"YulTypedName","src":"9294:6:101","type":""}],"src":"9196:221:101"},{"body":{"nativeSrc":"9569:220:101","nodeType":"YulBlock","src":"9569:220:101","statements":[{"nativeSrc":"9579:74:101","nodeType":"YulAssignment","src":"9579:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9645:3:101","nodeType":"YulIdentifier","src":"9645:3:101"},{"kind":"number","nativeSrc":"9650:2:101","nodeType":"YulLiteral","src":"9650:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9586:58:101","nodeType":"YulIdentifier","src":"9586:58:101"},"nativeSrc":"9586:67:101","nodeType":"YulFunctionCall","src":"9586:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9579:3:101","nodeType":"YulIdentifier","src":"9579:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9751:3:101","nodeType":"YulIdentifier","src":"9751:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"9662:88:101","nodeType":"YulIdentifier","src":"9662:88:101"},"nativeSrc":"9662:93:101","nodeType":"YulFunctionCall","src":"9662:93:101"},"nativeSrc":"9662:93:101","nodeType":"YulExpressionStatement","src":"9662:93:101"},{"nativeSrc":"9764:19:101","nodeType":"YulAssignment","src":"9764:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9775:3:101","nodeType":"YulIdentifier","src":"9775:3:101"},{"kind":"number","nativeSrc":"9780:2:101","nodeType":"YulLiteral","src":"9780:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9771:3:101","nodeType":"YulIdentifier","src":"9771:3:101"},"nativeSrc":"9771:12:101","nodeType":"YulFunctionCall","src":"9771:12:101"},"variableNames":[{"name":"end","nativeSrc":"9764:3:101","nodeType":"YulIdentifier","src":"9764:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9423:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9557:3:101","nodeType":"YulTypedName","src":"9557:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9565:3:101","nodeType":"YulTypedName","src":"9565:3:101","type":""}],"src":"9423:366:101"},{"body":{"nativeSrc":"9966:248:101","nodeType":"YulBlock","src":"9966:248:101","statements":[{"nativeSrc":"9976:26:101","nodeType":"YulAssignment","src":"9976:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9988:9:101","nodeType":"YulIdentifier","src":"9988:9:101"},{"kind":"number","nativeSrc":"9999:2:101","nodeType":"YulLiteral","src":"9999:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9984:3:101","nodeType":"YulIdentifier","src":"9984:3:101"},"nativeSrc":"9984:18:101","nodeType":"YulFunctionCall","src":"9984:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9976:4:101","nodeType":"YulIdentifier","src":"9976:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10023:9:101","nodeType":"YulIdentifier","src":"10023:9:101"},{"kind":"number","nativeSrc":"10034:1:101","nodeType":"YulLiteral","src":"10034:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10019:3:101","nodeType":"YulIdentifier","src":"10019:3:101"},"nativeSrc":"10019:17:101","nodeType":"YulFunctionCall","src":"10019:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10042:4:101","nodeType":"YulIdentifier","src":"10042:4:101"},{"name":"headStart","nativeSrc":"10048:9:101","nodeType":"YulIdentifier","src":"10048:9:101"}],"functionName":{"name":"sub","nativeSrc":"10038:3:101","nodeType":"YulIdentifier","src":"10038:3:101"},"nativeSrc":"10038:20:101","nodeType":"YulFunctionCall","src":"10038:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10012:6:101","nodeType":"YulIdentifier","src":"10012:6:101"},"nativeSrc":"10012:47:101","nodeType":"YulFunctionCall","src":"10012:47:101"},"nativeSrc":"10012:47:101","nodeType":"YulExpressionStatement","src":"10012:47:101"},{"nativeSrc":"10068:139:101","nodeType":"YulAssignment","src":"10068:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10202:4:101","nodeType":"YulIdentifier","src":"10202:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"10076:124:101","nodeType":"YulIdentifier","src":"10076:124:101"},"nativeSrc":"10076:131:101","nodeType":"YulFunctionCall","src":"10076:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10068:4:101","nodeType":"YulIdentifier","src":"10068:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9795:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9946:9:101","nodeType":"YulTypedName","src":"9946:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9961:4:101","nodeType":"YulTypedName","src":"9961:4:101","type":""}],"src":"9795:419:101"},{"body":{"nativeSrc":"10326:73:101","nodeType":"YulBlock","src":"10326:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10348:6:101","nodeType":"YulIdentifier","src":"10348:6:101"},{"kind":"number","nativeSrc":"10356:1:101","nodeType":"YulLiteral","src":"10356:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10344:3:101","nodeType":"YulIdentifier","src":"10344:3:101"},"nativeSrc":"10344:14:101","nodeType":"YulFunctionCall","src":"10344:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"10360:31:101","nodeType":"YulLiteral","src":"10360:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"10337:6:101","nodeType":"YulIdentifier","src":"10337:6:101"},"nativeSrc":"10337:55:101","nodeType":"YulFunctionCall","src":"10337:55:101"},"nativeSrc":"10337:55:101","nodeType":"YulExpressionStatement","src":"10337:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"10220:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10318:6:101","nodeType":"YulTypedName","src":"10318:6:101","type":""}],"src":"10220:179:101"},{"body":{"nativeSrc":"10551:220:101","nodeType":"YulBlock","src":"10551:220:101","statements":[{"nativeSrc":"10561:74:101","nodeType":"YulAssignment","src":"10561:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10627:3:101","nodeType":"YulIdentifier","src":"10627:3:101"},{"kind":"number","nativeSrc":"10632:2:101","nodeType":"YulLiteral","src":"10632:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10568:58:101","nodeType":"YulIdentifier","src":"10568:58:101"},"nativeSrc":"10568:67:101","nodeType":"YulFunctionCall","src":"10568:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10561:3:101","nodeType":"YulIdentifier","src":"10561:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10733:3:101","nodeType":"YulIdentifier","src":"10733:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"10644:88:101","nodeType":"YulIdentifier","src":"10644:88:101"},"nativeSrc":"10644:93:101","nodeType":"YulFunctionCall","src":"10644:93:101"},"nativeSrc":"10644:93:101","nodeType":"YulExpressionStatement","src":"10644:93:101"},{"nativeSrc":"10746:19:101","nodeType":"YulAssignment","src":"10746:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10757:3:101","nodeType":"YulIdentifier","src":"10757:3:101"},{"kind":"number","nativeSrc":"10762:2:101","nodeType":"YulLiteral","src":"10762:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10753:3:101","nodeType":"YulIdentifier","src":"10753:3:101"},"nativeSrc":"10753:12:101","nodeType":"YulFunctionCall","src":"10753:12:101"},"variableNames":[{"name":"end","nativeSrc":"10746:3:101","nodeType":"YulIdentifier","src":"10746:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10405:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10539:3:101","nodeType":"YulTypedName","src":"10539:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10547:3:101","nodeType":"YulTypedName","src":"10547:3:101","type":""}],"src":"10405:366:101"},{"body":{"nativeSrc":"10948:248:101","nodeType":"YulBlock","src":"10948:248:101","statements":[{"nativeSrc":"10958:26:101","nodeType":"YulAssignment","src":"10958:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10970:9:101","nodeType":"YulIdentifier","src":"10970:9:101"},{"kind":"number","nativeSrc":"10981:2:101","nodeType":"YulLiteral","src":"10981:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10966:3:101","nodeType":"YulIdentifier","src":"10966:3:101"},"nativeSrc":"10966:18:101","nodeType":"YulFunctionCall","src":"10966:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10958:4:101","nodeType":"YulIdentifier","src":"10958:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11005:9:101","nodeType":"YulIdentifier","src":"11005:9:101"},{"kind":"number","nativeSrc":"11016:1:101","nodeType":"YulLiteral","src":"11016:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11001:3:101","nodeType":"YulIdentifier","src":"11001:3:101"},"nativeSrc":"11001:17:101","nodeType":"YulFunctionCall","src":"11001:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11024:4:101","nodeType":"YulIdentifier","src":"11024:4:101"},{"name":"headStart","nativeSrc":"11030:9:101","nodeType":"YulIdentifier","src":"11030:9:101"}],"functionName":{"name":"sub","nativeSrc":"11020:3:101","nodeType":"YulIdentifier","src":"11020:3:101"},"nativeSrc":"11020:20:101","nodeType":"YulFunctionCall","src":"11020:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10994:6:101","nodeType":"YulIdentifier","src":"10994:6:101"},"nativeSrc":"10994:47:101","nodeType":"YulFunctionCall","src":"10994:47:101"},"nativeSrc":"10994:47:101","nodeType":"YulExpressionStatement","src":"10994:47:101"},{"nativeSrc":"11050:139:101","nodeType":"YulAssignment","src":"11050:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11184:4:101","nodeType":"YulIdentifier","src":"11184:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"11058:124:101","nodeType":"YulIdentifier","src":"11058:124:101"},"nativeSrc":"11058:131:101","nodeType":"YulFunctionCall","src":"11058:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11050:4:101","nodeType":"YulIdentifier","src":"11050:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10777:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10928:9:101","nodeType":"YulTypedName","src":"10928:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10943:4:101","nodeType":"YulTypedName","src":"10943:4:101","type":""}],"src":"10777:419:101"},{"body":{"nativeSrc":"11308:118:101","nodeType":"YulBlock","src":"11308:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11330:6:101","nodeType":"YulIdentifier","src":"11330:6:101"},{"kind":"number","nativeSrc":"11338:1:101","nodeType":"YulLiteral","src":"11338:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11326:3:101","nodeType":"YulIdentifier","src":"11326:3:101"},"nativeSrc":"11326:14:101","nodeType":"YulFunctionCall","src":"11326:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"11342:34:101","nodeType":"YulLiteral","src":"11342:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"11319:6:101","nodeType":"YulIdentifier","src":"11319:6:101"},"nativeSrc":"11319:58:101","nodeType":"YulFunctionCall","src":"11319:58:101"},"nativeSrc":"11319:58:101","nodeType":"YulExpressionStatement","src":"11319:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11398:6:101","nodeType":"YulIdentifier","src":"11398:6:101"},{"kind":"number","nativeSrc":"11406:2:101","nodeType":"YulLiteral","src":"11406:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11394:3:101","nodeType":"YulIdentifier","src":"11394:3:101"},"nativeSrc":"11394:15:101","nodeType":"YulFunctionCall","src":"11394:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"11411:7:101","nodeType":"YulLiteral","src":"11411:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"11387:6:101","nodeType":"YulIdentifier","src":"11387:6:101"},"nativeSrc":"11387:32:101","nodeType":"YulFunctionCall","src":"11387:32:101"},"nativeSrc":"11387:32:101","nodeType":"YulExpressionStatement","src":"11387:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"11202:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11300:6:101","nodeType":"YulTypedName","src":"11300:6:101","type":""}],"src":"11202:224:101"},{"body":{"nativeSrc":"11578:220:101","nodeType":"YulBlock","src":"11578:220:101","statements":[{"nativeSrc":"11588:74:101","nodeType":"YulAssignment","src":"11588:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11654:3:101","nodeType":"YulIdentifier","src":"11654:3:101"},{"kind":"number","nativeSrc":"11659:2:101","nodeType":"YulLiteral","src":"11659:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11595:58:101","nodeType":"YulIdentifier","src":"11595:58:101"},"nativeSrc":"11595:67:101","nodeType":"YulFunctionCall","src":"11595:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11588:3:101","nodeType":"YulIdentifier","src":"11588:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11760:3:101","nodeType":"YulIdentifier","src":"11760:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"11671:88:101","nodeType":"YulIdentifier","src":"11671:88:101"},"nativeSrc":"11671:93:101","nodeType":"YulFunctionCall","src":"11671:93:101"},"nativeSrc":"11671:93:101","nodeType":"YulExpressionStatement","src":"11671:93:101"},{"nativeSrc":"11773:19:101","nodeType":"YulAssignment","src":"11773:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11784:3:101","nodeType":"YulIdentifier","src":"11784:3:101"},{"kind":"number","nativeSrc":"11789:2:101","nodeType":"YulLiteral","src":"11789:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11780:3:101","nodeType":"YulIdentifier","src":"11780:3:101"},"nativeSrc":"11780:12:101","nodeType":"YulFunctionCall","src":"11780:12:101"},"variableNames":[{"name":"end","nativeSrc":"11773:3:101","nodeType":"YulIdentifier","src":"11773:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11432:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11566:3:101","nodeType":"YulTypedName","src":"11566:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11574:3:101","nodeType":"YulTypedName","src":"11574:3:101","type":""}],"src":"11432:366:101"},{"body":{"nativeSrc":"11975:248:101","nodeType":"YulBlock","src":"11975:248:101","statements":[{"nativeSrc":"11985:26:101","nodeType":"YulAssignment","src":"11985:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11997:9:101","nodeType":"YulIdentifier","src":"11997:9:101"},{"kind":"number","nativeSrc":"12008:2:101","nodeType":"YulLiteral","src":"12008:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11993:3:101","nodeType":"YulIdentifier","src":"11993:3:101"},"nativeSrc":"11993:18:101","nodeType":"YulFunctionCall","src":"11993:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11985:4:101","nodeType":"YulIdentifier","src":"11985:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12032:9:101","nodeType":"YulIdentifier","src":"12032:9:101"},{"kind":"number","nativeSrc":"12043:1:101","nodeType":"YulLiteral","src":"12043:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12028:3:101","nodeType":"YulIdentifier","src":"12028:3:101"},"nativeSrc":"12028:17:101","nodeType":"YulFunctionCall","src":"12028:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12051:4:101","nodeType":"YulIdentifier","src":"12051:4:101"},{"name":"headStart","nativeSrc":"12057:9:101","nodeType":"YulIdentifier","src":"12057:9:101"}],"functionName":{"name":"sub","nativeSrc":"12047:3:101","nodeType":"YulIdentifier","src":"12047:3:101"},"nativeSrc":"12047:20:101","nodeType":"YulFunctionCall","src":"12047:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12021:6:101","nodeType":"YulIdentifier","src":"12021:6:101"},"nativeSrc":"12021:47:101","nodeType":"YulFunctionCall","src":"12021:47:101"},"nativeSrc":"12021:47:101","nodeType":"YulExpressionStatement","src":"12021:47:101"},{"nativeSrc":"12077:139:101","nodeType":"YulAssignment","src":"12077:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12211:4:101","nodeType":"YulIdentifier","src":"12211:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"12085:124:101","nodeType":"YulIdentifier","src":"12085:124:101"},"nativeSrc":"12085:131:101","nodeType":"YulFunctionCall","src":"12085:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12077:4:101","nodeType":"YulIdentifier","src":"12077:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11804:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11955:9:101","nodeType":"YulTypedName","src":"11955:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11970:4:101","nodeType":"YulTypedName","src":"11970:4:101","type":""}],"src":"11804:419:101"},{"body":{"nativeSrc":"12335:116:101","nodeType":"YulBlock","src":"12335:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12357:6:101","nodeType":"YulIdentifier","src":"12357:6:101"},{"kind":"number","nativeSrc":"12365:1:101","nodeType":"YulLiteral","src":"12365:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12353:3:101","nodeType":"YulIdentifier","src":"12353:3:101"},"nativeSrc":"12353:14:101","nodeType":"YulFunctionCall","src":"12353:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"12369:34:101","nodeType":"YulLiteral","src":"12369:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"12346:6:101","nodeType":"YulIdentifier","src":"12346:6:101"},"nativeSrc":"12346:58:101","nodeType":"YulFunctionCall","src":"12346:58:101"},"nativeSrc":"12346:58:101","nodeType":"YulExpressionStatement","src":"12346:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12425:6:101","nodeType":"YulIdentifier","src":"12425:6:101"},{"kind":"number","nativeSrc":"12433:2:101","nodeType":"YulLiteral","src":"12433:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12421:3:101","nodeType":"YulIdentifier","src":"12421:3:101"},"nativeSrc":"12421:15:101","nodeType":"YulFunctionCall","src":"12421:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"12438:5:101","nodeType":"YulLiteral","src":"12438:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"12414:6:101","nodeType":"YulIdentifier","src":"12414:6:101"},"nativeSrc":"12414:30:101","nodeType":"YulFunctionCall","src":"12414:30:101"},"nativeSrc":"12414:30:101","nodeType":"YulExpressionStatement","src":"12414:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"12229:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12327:6:101","nodeType":"YulTypedName","src":"12327:6:101","type":""}],"src":"12229:222:101"},{"body":{"nativeSrc":"12603:220:101","nodeType":"YulBlock","src":"12603:220:101","statements":[{"nativeSrc":"12613:74:101","nodeType":"YulAssignment","src":"12613:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12679:3:101","nodeType":"YulIdentifier","src":"12679:3:101"},{"kind":"number","nativeSrc":"12684:2:101","nodeType":"YulLiteral","src":"12684:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12620:58:101","nodeType":"YulIdentifier","src":"12620:58:101"},"nativeSrc":"12620:67:101","nodeType":"YulFunctionCall","src":"12620:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12613:3:101","nodeType":"YulIdentifier","src":"12613:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12785:3:101","nodeType":"YulIdentifier","src":"12785:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"12696:88:101","nodeType":"YulIdentifier","src":"12696:88:101"},"nativeSrc":"12696:93:101","nodeType":"YulFunctionCall","src":"12696:93:101"},"nativeSrc":"12696:93:101","nodeType":"YulExpressionStatement","src":"12696:93:101"},{"nativeSrc":"12798:19:101","nodeType":"YulAssignment","src":"12798:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12809:3:101","nodeType":"YulIdentifier","src":"12809:3:101"},{"kind":"number","nativeSrc":"12814:2:101","nodeType":"YulLiteral","src":"12814:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12805:3:101","nodeType":"YulIdentifier","src":"12805:3:101"},"nativeSrc":"12805:12:101","nodeType":"YulFunctionCall","src":"12805:12:101"},"variableNames":[{"name":"end","nativeSrc":"12798:3:101","nodeType":"YulIdentifier","src":"12798:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12457:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12591:3:101","nodeType":"YulTypedName","src":"12591:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12599:3:101","nodeType":"YulTypedName","src":"12599:3:101","type":""}],"src":"12457:366:101"},{"body":{"nativeSrc":"13000:248:101","nodeType":"YulBlock","src":"13000:248:101","statements":[{"nativeSrc":"13010:26:101","nodeType":"YulAssignment","src":"13010:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13022:9:101","nodeType":"YulIdentifier","src":"13022:9:101"},{"kind":"number","nativeSrc":"13033:2:101","nodeType":"YulLiteral","src":"13033:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13018:3:101","nodeType":"YulIdentifier","src":"13018:3:101"},"nativeSrc":"13018:18:101","nodeType":"YulFunctionCall","src":"13018:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13010:4:101","nodeType":"YulIdentifier","src":"13010:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13057:9:101","nodeType":"YulIdentifier","src":"13057:9:101"},{"kind":"number","nativeSrc":"13068:1:101","nodeType":"YulLiteral","src":"13068:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13053:3:101","nodeType":"YulIdentifier","src":"13053:3:101"},"nativeSrc":"13053:17:101","nodeType":"YulFunctionCall","src":"13053:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13076:4:101","nodeType":"YulIdentifier","src":"13076:4:101"},{"name":"headStart","nativeSrc":"13082:9:101","nodeType":"YulIdentifier","src":"13082:9:101"}],"functionName":{"name":"sub","nativeSrc":"13072:3:101","nodeType":"YulIdentifier","src":"13072:3:101"},"nativeSrc":"13072:20:101","nodeType":"YulFunctionCall","src":"13072:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13046:6:101","nodeType":"YulIdentifier","src":"13046:6:101"},"nativeSrc":"13046:47:101","nodeType":"YulFunctionCall","src":"13046:47:101"},"nativeSrc":"13046:47:101","nodeType":"YulExpressionStatement","src":"13046:47:101"},{"nativeSrc":"13102:139:101","nodeType":"YulAssignment","src":"13102:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13236:4:101","nodeType":"YulIdentifier","src":"13236:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"13110:124:101","nodeType":"YulIdentifier","src":"13110:124:101"},"nativeSrc":"13110:131:101","nodeType":"YulFunctionCall","src":"13110:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13102:4:101","nodeType":"YulIdentifier","src":"13102:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12829:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12980:9:101","nodeType":"YulTypedName","src":"12980:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12995:4:101","nodeType":"YulTypedName","src":"12995:4:101","type":""}],"src":"12829:419:101"},{"body":{"nativeSrc":"13360:119:101","nodeType":"YulBlock","src":"13360:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13382:6:101","nodeType":"YulIdentifier","src":"13382:6:101"},{"kind":"number","nativeSrc":"13390:1:101","nodeType":"YulLiteral","src":"13390:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13378:3:101","nodeType":"YulIdentifier","src":"13378:3:101"},"nativeSrc":"13378:14:101","nodeType":"YulFunctionCall","src":"13378:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"13394:34:101","nodeType":"YulLiteral","src":"13394:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"13371:6:101","nodeType":"YulIdentifier","src":"13371:6:101"},"nativeSrc":"13371:58:101","nodeType":"YulFunctionCall","src":"13371:58:101"},"nativeSrc":"13371:58:101","nodeType":"YulExpressionStatement","src":"13371:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13450:6:101","nodeType":"YulIdentifier","src":"13450:6:101"},{"kind":"number","nativeSrc":"13458:2:101","nodeType":"YulLiteral","src":"13458:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13446:3:101","nodeType":"YulIdentifier","src":"13446:3:101"},"nativeSrc":"13446:15:101","nodeType":"YulFunctionCall","src":"13446:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"13463:8:101","nodeType":"YulLiteral","src":"13463:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"13439:6:101","nodeType":"YulIdentifier","src":"13439:6:101"},"nativeSrc":"13439:33:101","nodeType":"YulFunctionCall","src":"13439:33:101"},"nativeSrc":"13439:33:101","nodeType":"YulExpressionStatement","src":"13439:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13254:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13352:6:101","nodeType":"YulTypedName","src":"13352:6:101","type":""}],"src":"13254:225:101"},{"body":{"nativeSrc":"13631:220:101","nodeType":"YulBlock","src":"13631:220:101","statements":[{"nativeSrc":"13641:74:101","nodeType":"YulAssignment","src":"13641:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13707:3:101","nodeType":"YulIdentifier","src":"13707:3:101"},{"kind":"number","nativeSrc":"13712:2:101","nodeType":"YulLiteral","src":"13712:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13648:58:101","nodeType":"YulIdentifier","src":"13648:58:101"},"nativeSrc":"13648:67:101","nodeType":"YulFunctionCall","src":"13648:67:101"},"variableNames":[{"name":"pos","nativeSrc":"13641:3:101","nodeType":"YulIdentifier","src":"13641:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13813:3:101","nodeType":"YulIdentifier","src":"13813:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13724:88:101","nodeType":"YulIdentifier","src":"13724:88:101"},"nativeSrc":"13724:93:101","nodeType":"YulFunctionCall","src":"13724:93:101"},"nativeSrc":"13724:93:101","nodeType":"YulExpressionStatement","src":"13724:93:101"},{"nativeSrc":"13826:19:101","nodeType":"YulAssignment","src":"13826:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13837:3:101","nodeType":"YulIdentifier","src":"13837:3:101"},{"kind":"number","nativeSrc":"13842:2:101","nodeType":"YulLiteral","src":"13842:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13833:3:101","nodeType":"YulIdentifier","src":"13833:3:101"},"nativeSrc":"13833:12:101","nodeType":"YulFunctionCall","src":"13833:12:101"},"variableNames":[{"name":"end","nativeSrc":"13826:3:101","nodeType":"YulIdentifier","src":"13826:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13485:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13619:3:101","nodeType":"YulTypedName","src":"13619:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13627:3:101","nodeType":"YulTypedName","src":"13627:3:101","type":""}],"src":"13485:366:101"},{"body":{"nativeSrc":"14028:248:101","nodeType":"YulBlock","src":"14028:248:101","statements":[{"nativeSrc":"14038:26:101","nodeType":"YulAssignment","src":"14038:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"14050:9:101","nodeType":"YulIdentifier","src":"14050:9:101"},{"kind":"number","nativeSrc":"14061:2:101","nodeType":"YulLiteral","src":"14061:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14046:3:101","nodeType":"YulIdentifier","src":"14046:3:101"},"nativeSrc":"14046:18:101","nodeType":"YulFunctionCall","src":"14046:18:101"},"variableNames":[{"name":"tail","nativeSrc":"14038:4:101","nodeType":"YulIdentifier","src":"14038:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14085:9:101","nodeType":"YulIdentifier","src":"14085:9:101"},{"kind":"number","nativeSrc":"14096:1:101","nodeType":"YulLiteral","src":"14096:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14081:3:101","nodeType":"YulIdentifier","src":"14081:3:101"},"nativeSrc":"14081:17:101","nodeType":"YulFunctionCall","src":"14081:17:101"},{"arguments":[{"name":"tail","nativeSrc":"14104:4:101","nodeType":"YulIdentifier","src":"14104:4:101"},{"name":"headStart","nativeSrc":"14110:9:101","nodeType":"YulIdentifier","src":"14110:9:101"}],"functionName":{"name":"sub","nativeSrc":"14100:3:101","nodeType":"YulIdentifier","src":"14100:3:101"},"nativeSrc":"14100:20:101","nodeType":"YulFunctionCall","src":"14100:20:101"}],"functionName":{"name":"mstore","nativeSrc":"14074:6:101","nodeType":"YulIdentifier","src":"14074:6:101"},"nativeSrc":"14074:47:101","nodeType":"YulFunctionCall","src":"14074:47:101"},"nativeSrc":"14074:47:101","nodeType":"YulExpressionStatement","src":"14074:47:101"},{"nativeSrc":"14130:139:101","nodeType":"YulAssignment","src":"14130:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"14264:4:101","nodeType":"YulIdentifier","src":"14264:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"14138:124:101","nodeType":"YulIdentifier","src":"14138:124:101"},"nativeSrc":"14138:131:101","nodeType":"YulFunctionCall","src":"14138:131:101"},"variableNames":[{"name":"tail","nativeSrc":"14130:4:101","nodeType":"YulIdentifier","src":"14130:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13857:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14008:9:101","nodeType":"YulTypedName","src":"14008:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14023:4:101","nodeType":"YulTypedName","src":"14023:4:101","type":""}],"src":"13857:419:101"},{"body":{"nativeSrc":"14388:75:101","nodeType":"YulBlock","src":"14388:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14410:6:101","nodeType":"YulIdentifier","src":"14410:6:101"},{"kind":"number","nativeSrc":"14418:1:101","nodeType":"YulLiteral","src":"14418:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14406:3:101","nodeType":"YulIdentifier","src":"14406:3:101"},"nativeSrc":"14406:14:101","nodeType":"YulFunctionCall","src":"14406:14:101"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"14422:33:101","nodeType":"YulLiteral","src":"14422:33:101","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"14399:6:101","nodeType":"YulIdentifier","src":"14399:6:101"},"nativeSrc":"14399:57:101","nodeType":"YulFunctionCall","src":"14399:57:101"},"nativeSrc":"14399:57:101","nodeType":"YulExpressionStatement","src":"14399:57:101"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"14282:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14380:6:101","nodeType":"YulTypedName","src":"14380:6:101","type":""}],"src":"14282:181:101"},{"body":{"nativeSrc":"14615:220:101","nodeType":"YulBlock","src":"14615:220:101","statements":[{"nativeSrc":"14625:74:101","nodeType":"YulAssignment","src":"14625:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"14691:3:101","nodeType":"YulIdentifier","src":"14691:3:101"},{"kind":"number","nativeSrc":"14696:2:101","nodeType":"YulLiteral","src":"14696:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14632:58:101","nodeType":"YulIdentifier","src":"14632:58:101"},"nativeSrc":"14632:67:101","nodeType":"YulFunctionCall","src":"14632:67:101"},"variableNames":[{"name":"pos","nativeSrc":"14625:3:101","nodeType":"YulIdentifier","src":"14625:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14797:3:101","nodeType":"YulIdentifier","src":"14797:3:101"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"14708:88:101","nodeType":"YulIdentifier","src":"14708:88:101"},"nativeSrc":"14708:93:101","nodeType":"YulFunctionCall","src":"14708:93:101"},"nativeSrc":"14708:93:101","nodeType":"YulExpressionStatement","src":"14708:93:101"},{"nativeSrc":"14810:19:101","nodeType":"YulAssignment","src":"14810:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"14821:3:101","nodeType":"YulIdentifier","src":"14821:3:101"},{"kind":"number","nativeSrc":"14826:2:101","nodeType":"YulLiteral","src":"14826:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14817:3:101","nodeType":"YulIdentifier","src":"14817:3:101"},"nativeSrc":"14817:12:101","nodeType":"YulFunctionCall","src":"14817:12:101"},"variableNames":[{"name":"end","nativeSrc":"14810:3:101","nodeType":"YulIdentifier","src":"14810:3:101"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"14469:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14603:3:101","nodeType":"YulTypedName","src":"14603:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14611:3:101","nodeType":"YulTypedName","src":"14611:3:101","type":""}],"src":"14469:366:101"},{"body":{"nativeSrc":"15012:248:101","nodeType":"YulBlock","src":"15012:248:101","statements":[{"nativeSrc":"15022:26:101","nodeType":"YulAssignment","src":"15022:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"15034:9:101","nodeType":"YulIdentifier","src":"15034:9:101"},{"kind":"number","nativeSrc":"15045:2:101","nodeType":"YulLiteral","src":"15045:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15030:3:101","nodeType":"YulIdentifier","src":"15030:3:101"},"nativeSrc":"15030:18:101","nodeType":"YulFunctionCall","src":"15030:18:101"},"variableNames":[{"name":"tail","nativeSrc":"15022:4:101","nodeType":"YulIdentifier","src":"15022:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15069:9:101","nodeType":"YulIdentifier","src":"15069:9:101"},{"kind":"number","nativeSrc":"15080:1:101","nodeType":"YulLiteral","src":"15080:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15065:3:101","nodeType":"YulIdentifier","src":"15065:3:101"},"nativeSrc":"15065:17:101","nodeType":"YulFunctionCall","src":"15065:17:101"},{"arguments":[{"name":"tail","nativeSrc":"15088:4:101","nodeType":"YulIdentifier","src":"15088:4:101"},{"name":"headStart","nativeSrc":"15094:9:101","nodeType":"YulIdentifier","src":"15094:9:101"}],"functionName":{"name":"sub","nativeSrc":"15084:3:101","nodeType":"YulIdentifier","src":"15084:3:101"},"nativeSrc":"15084:20:101","nodeType":"YulFunctionCall","src":"15084:20:101"}],"functionName":{"name":"mstore","nativeSrc":"15058:6:101","nodeType":"YulIdentifier","src":"15058:6:101"},"nativeSrc":"15058:47:101","nodeType":"YulFunctionCall","src":"15058:47:101"},"nativeSrc":"15058:47:101","nodeType":"YulExpressionStatement","src":"15058:47:101"},{"nativeSrc":"15114:139:101","nodeType":"YulAssignment","src":"15114:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"15248:4:101","nodeType":"YulIdentifier","src":"15248:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"15122:124:101","nodeType":"YulIdentifier","src":"15122:124:101"},"nativeSrc":"15122:131:101","nodeType":"YulFunctionCall","src":"15122:131:101"},"variableNames":[{"name":"tail","nativeSrc":"15114:4:101","nodeType":"YulIdentifier","src":"15114:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14841:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14992:9:101","nodeType":"YulTypedName","src":"14992:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15007:4:101","nodeType":"YulTypedName","src":"15007:4:101","type":""}],"src":"14841:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063579158971161008857806395d89b411161006357806395d89b41146101e1578063a457c2d7146101e9578063a9059cbb146101fc578063dd62ed3e1461020f575f80fd5b8063579158971461017f5780636f307dc31461019457806370a08231146101b9575f80fd5b806323b872dd116100c357806323b872dd14610138578063313ce5671461014b578063395093511461015f5780634511bf6b14610172575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd14610127575b5f80fd5b6100f1610222565b6040516100fe9190610660565b60405180910390f35b61011a6101153660046106b7565b6102b2565b6040516100fe91906106fb565b6002545b6040516100fe919061070f565b61011a61014636600461071d565b6102cb565b60055460ff165b6040516100fe9190610772565b61011a61016d3660046106b7565b6102ee565b6005546101529060ff1681565b61019261018d366004610780565b61030f565b005b6005546101ac9061010090046001600160a01b031681565b6040516100fe91906107af565b61012b6101c73660046107bd565b6001600160a01b03165f9081526020819052604090205490565b6100f161031c565b61011a6101f73660046106b7565b61032b565b61011a61020a3660046106b7565b610370565b61012b61021d3660046107db565b61037d565b6060600380546102319061081f565b80601f016020809104026020016040519081016040528092919081815260200182805461025d9061081f565b80156102a85780601f1061027f576101008083540402835291602001916102a8565b820191905f5260205f20905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b5f336102bf8185856103a7565b60019150505b92915050565b5f336102d885828561045a565b6102e38585856104a2565b506001949350505050565b5f336102bf818585610300838361037d565b61030a919061085f565b6103a7565b6103193382610590565b50565b6060600480546102319061081f565b5f3381610338828661037d565b9050838110156103635760405162461bcd60e51b815260040161035a906108b6565b60405180910390fd5b6102e382868684036103a7565b5f336102bf8185856104a2565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103cd5760405162461bcd60e51b815260040161035a90610906565b6001600160a01b0382166103f35760405162461bcd60e51b815260040161035a90610954565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061044d90859061070f565b60405180910390a3505050565b5f610465848461037d565b90505f19811461049c578181101561048f5760405162461bcd60e51b815260040161035a9061099a565b61049c84848484036103a7565b50505050565b6001600160a01b0383166104c85760405162461bcd60e51b815260040161035a906109eb565b6001600160a01b0382166104ee5760405162461bcd60e51b815260040161035a90610a3a565b6001600160a01b0383165f90815260208190526040902054818110156105265760405162461bcd60e51b815260040161035a90610a8c565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058390869061070f565b60405180910390a361049c565b6001600160a01b0382166105b65760405162461bcd60e51b815260040161035a90610acf565b8060025f8282546105c7919061085f565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061061890859061070f565b60405180910390a35050565b8281835e505f910152565b5f610638825190565b80845260208401935061064f818560208601610624565b601f01601f19169290920192915050565b60208082528101610671818461062f565b9392505050565b5f6001600160a01b0382166102c5565b61069181610678565b8114610319575f80fd5b80356102c581610688565b80610691565b80356102c5816106a6565b5f80604083850312156106cb576106cb5f80fd5b5f6106d6858561069b565b92505060206106e7858286016106ac565b9150509250929050565b8015155b82525050565b602081016102c582846106f1565b806106f5565b602081016102c58284610709565b5f805f60608486031215610732576107325f80fd5b5f61073d868661069b565b935050602061074e8682870161069b565b925050604061075f868287016106ac565b9150509250925092565b60ff81166106f5565b602081016102c58284610769565b5f60208284031215610793576107935f80fd5b5f61079e84846106ac565b949350505050565b6106f581610678565b602081016102c582846107a6565b5f602082840312156107d0576107d05f80fd5b5f61079e848461069b565b5f80604083850312156107ef576107ef5f80fd5b5f6107fa858561069b565b92505060206106e78582860161069b565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061083357607f821691505b6020821081036108455761084561080b565b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102c5576102c561084b565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b602080825281016102c581610872565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015291506108af565b602080825281016102c5816108c6565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015291506108af565b602080825281016102c581610916565b601d81525f602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b602080825281016102c581610964565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015291506108af565b602080825281016102c5816109aa565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015291506108af565b602080825281016102c5816109fb565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b602082015291506108af565b602080825281016102c581610a4a565b601f81525f602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610993565b602080825281016102c581610a9c56fea26469706673582212201acc62b729b451166c6c4a8ef1452483b32dce86b8bd7f766788b1991ea2e60d64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xE5 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57915897 GT PUSH2 0x88 JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x20F JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x57915897 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x6F307DC3 EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14B JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x4511BF6B EQ PUSH2 0x172 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x127 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xF1 PUSH2 0x222 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x660 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH2 0x11A PUSH2 0x146 CALLDATASIZE PUSH1 0x4 PUSH2 0x71D JUMP JUMPDEST PUSH2 0x2CB JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x11A PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x152 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x192 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x780 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST STOP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x1AC SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x7AF JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x7BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xF1 PUSH2 0x31C JUMP JUMPDEST PUSH2 0x11A PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x32B JUMP JUMPDEST PUSH2 0x11A PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x6B7 JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH2 0x12B PUSH2 0x21D CALLDATASIZE PUSH1 0x4 PUSH2 0x7DB JUMP JUMPDEST PUSH2 0x37D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x231 SWAP1 PUSH2 0x81F 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 0x25D SWAP1 PUSH2 0x81F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x28B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2BF DUP2 DUP6 DUP6 PUSH2 0x3A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2D8 DUP6 DUP3 DUP6 PUSH2 0x45A JUMP JUMPDEST PUSH2 0x2E3 DUP6 DUP6 DUP6 PUSH2 0x4A2 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2BF DUP2 DUP6 DUP6 PUSH2 0x300 DUP4 DUP4 PUSH2 0x37D JUMP JUMPDEST PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x85F JUMP JUMPDEST PUSH2 0x3A7 JUMP JUMPDEST PUSH2 0x319 CALLER DUP3 PUSH2 0x590 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x231 SWAP1 PUSH2 0x81F JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x338 DUP3 DUP7 PUSH2 0x37D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x363 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x8B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E3 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3A7 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x2BF DUP2 DUP6 DUP6 PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x906 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x954 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x44D SWAP1 DUP6 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x465 DUP5 DUP5 PUSH2 0x37D JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x49C JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x48F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x99A JUMP JUMPDEST PUSH2 0x49C DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3A7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0xA3A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x526 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x583 SWAP1 DUP7 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP1 PUSH2 0xACF JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0x85F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x618 SWAP1 DUP6 SWAP1 PUSH2 0x70F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x638 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x64F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x624 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x671 DUP2 DUP5 PUSH2 0x62F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x691 DUP2 PUSH2 0x678 JUMP JUMPDEST DUP2 EQ PUSH2 0x319 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C5 DUP2 PUSH2 0x688 JUMP JUMPDEST DUP1 PUSH2 0x691 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C5 DUP2 PUSH2 0x6A6 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6CB JUMPI PUSH2 0x6CB PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D6 DUP6 DUP6 PUSH2 0x69B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6E7 DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x6F1 JUMP JUMPDEST DUP1 PUSH2 0x6F5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x709 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x732 JUMPI PUSH2 0x732 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x73D DUP7 DUP7 PUSH2 0x69B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x74E DUP7 DUP3 DUP8 ADD PUSH2 0x69B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x75F DUP7 DUP3 DUP8 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x6F5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x769 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x793 JUMPI PUSH2 0x793 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x79E DUP5 DUP5 PUSH2 0x6AC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x6F5 DUP2 PUSH2 0x678 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C5 DUP3 DUP5 PUSH2 0x7A6 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7D0 JUMPI PUSH2 0x7D0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x79E DUP5 DUP5 PUSH2 0x69B JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7EF JUMPI PUSH2 0x7EF PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x7FA DUP6 DUP6 PUSH2 0x69B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6E7 DUP6 DUP3 DUP7 ADD PUSH2 0x69B JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x833 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x845 JUMPI PUSH2 0x845 PUSH2 0x80B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2C5 JUMPI PUSH2 0x2C5 PUSH2 0x84B JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x872 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x8C6 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x964 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x9AA JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x993 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2C5 DUP2 PUSH2 0xA9C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xCC PUSH3 0xB729B4 MLOAD AND PUSH13 0x6C4A8EF1452483B32DCE86B8BD PUSH32 0x766788B1991EA2E60D64736F6C63430008190033000000000000000000000000 ","sourceMap":"96:354:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;436:105:74:-;518:16;;;;436:105;;;;;;;:::i;5854:234:11:-;;;;;;:::i;:::-;;:::i;160:34:74:-;;;;;;;;;347:83;;;;;;:::i;:::-;;:::i;:::-;;205:25:85;;;;;;;;-1:-1:-1;;;;;205:25:85;;;;;;;;;;:::i;3419:125:11:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:11;;5203:256;-1:-1:-1;;;;5203:256:11:o;5854:234::-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;347:83:74:-;398:25;404:10;416:6;398:5;:25::i;:::-;347:83;:::o;2369:102:11:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;8520:535;-1:-1:-1;;;;;8603:21:11;;8595:65;;;;-1:-1:-1;;;8595:65:11;;;;;;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:11;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;8520:535;;:::o;287:139:101:-;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;:::-;1143:86;923:313;-1:-1:-1;;;923:313:101:o;1701:96::-;1738:7;-1:-1:-1;;;;;1635:54:101;;1767:24;1569:126;1803:122;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1931:139;2002:20;;2031:33;2002:20;2031:33;:::i;2159:122::-;2250:5;2232:24;2076:77;2287:139;2358:20;;2387:33;2358:20;2387:33;:::i;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;96:354:85;;;2563:79:101;2683:1;2708:53;2753:7;2733:9;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;3008:109::-;2982:13;;2975:21;3089;3084:3;3077:34;3008:109;;:::o;3123:210::-;3248:2;3233:18;;3261:65;3237:9;3299:6;3261:65;:::i;3339:118::-;3444:5;3426:24;2076:77;3463:222;3594:2;3579:18;;3607:71;3583:9;3651:6;3607:71;:::i;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;96:354:85;;;3839:79:101;3959:1;3984:53;4029:7;4009:9;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4408:112::-;4391:4;4380:16;;4491:22;4316:86;4526:214;4653:2;4638:18;;4666:67;4642:9;4706:6;4666:67;:::i;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;96:354:85;;;4860:79:101;4980:1;5005:53;5050:7;5030:9;5005:53;:::i;:::-;4995:63;4746:329;-1:-1:-1;;;;4746:329:101:o;5081:118::-;5168:24;5186:5;5168:24;:::i;5205:222::-;5336:2;5321:18;;5349:71;5325:9;5393:6;5349:71;:::i;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;96:354:85;;;5547:79:101;5667:1;5692:53;5737:7;5717:9;5692:53;:::i;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;96:354:85;;;5899:79:101;6019:1;6044:53;6089:7;6069:9;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;6248:180::-;-1:-1:-1;;;6293:1:101;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:320;6515:1;6505:12;;6562:1;6552:12;;;6573:81;;6639:4;6631:6;6627:17;6617:27;;6573:81;6701:2;6693:6;6690:14;6670:18;6667:38;6664:84;;6720:18;;:::i;:::-;6485:269;6434:320;;;:::o;6760:180::-;-1:-1:-1;;;6805:1:101;6798:88;6905:4;6902:1;6895:15;6929:4;6926:1;6919:15;6946:191;7075:9;;;7097:10;;;7094:36;;;7110:18;;:::i;7373:366::-;7600:2;218:19;;7515:3;270:4;261:14;;7283:34;7260:58;;-1:-1:-1;;;7347:2:101;7335:15;;7328:32;7529:74;-1:-1:-1;7612:93:101;-1:-1:-1;7730:2:101;7721:12;;7373:366::o;7745:419::-;7949:2;7962:47;;;7934:18;;8026:131;7934:18;8026:131;:::i;8399:366::-;8626:2;218:19;;8541:3;270:4;261:14;;8310:34;8287:58;;-1:-1:-1;;;8374:2:101;8362:15;;8355:31;8555:74;-1:-1:-1;8638:93:101;8170:223;8771:419;8975:2;8988:47;;;8960:18;;9052:131;8960:18;9052:131;:::i;9423:366::-;9650:2;218:19;;9565:3;270:4;261:14;;9336:34;9313:58;;-1:-1:-1;;;9400:2:101;9388:15;;9381:29;9579:74;-1:-1:-1;9662:93:101;9196:221;9795:419;9999:2;10012:47;;;9984:18;;10076:131;9984:18;10076:131;:::i;10405:366::-;10632:2;218:19;;10547:3;270:4;261:14;;10360:31;10337:55;;10561:74;-1:-1:-1;10644:93:101;-1:-1:-1;10762:2:101;10753:12;;10405:366::o;10777:419::-;10981:2;10994:47;;;10966:18;;11058:131;10966:18;11058:131;:::i;11432:366::-;11659:2;218:19;;11574:3;270:4;261:14;;11342:34;11319:58;;-1:-1:-1;;;11406:2:101;11394:15;;11387:32;11588:74;-1:-1:-1;11671:93:101;11202:224;11804:419;12008:2;12021:47;;;11993:18;;12085:131;11993:18;12085:131;:::i;12457:366::-;12684:2;218:19;;12599:3;270:4;261:14;;12369:34;12346:58;;-1:-1:-1;;;12433:2:101;12421:15;;12414:30;12613:74;-1:-1:-1;12696:93:101;12229:222;12829:419;13033:2;13046:47;;;13018:18;;13110:131;13018:18;13110:131;:::i;13485:366::-;13712:2;218:19;;13627:3;270:4;261:14;;13394:34;13371:58;;-1:-1:-1;;;13458:2:101;13446:15;;13439:33;13641:74;-1:-1:-1;13724:93:101;13254:225;13857:419;14061:2;14074:47;;;14046:18;;14138:131;14046:18;14138:131;:::i;14469:366::-;14696:2;218:19;;14611:3;270:4;261:14;;14422:33;14399:57;;14625:74;-1:-1:-1;14708:93:101;14282:181;14841:419;15045:2;15058:47;;;15030:18;;15122:131;15030:18;15122:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"567400","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"2414","decimalsInternal()":"2475","decreaseAllowance(address,uint256)":"infinite","faucet(uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","symbol()":"infinite","totalSupply()":"2425","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","underlying()":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decimalsInternal()":"4511bf6b","decreaseAllowance(address,uint256)":"a457c2d7","faucet(uint256)":"57915897","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","underlying()":"6f307dc3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"underlying_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimalsInternal\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"faucet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlying\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"underlying()\":{\"notice\":\"Underlying asset for this VToken\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/VBEP20Harness.sol\":\"VBEP20Harness\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/test/BEP20Harness.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\ncontract BEP20Harness is ERC20 {\\n    uint8 public decimalsInternal = 18;\\n\\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) {\\n        decimalsInternal = decimals_;\\n    }\\n\\n    function faucet(uint256 amount) external {\\n        _mint(msg.sender, amount);\\n    }\\n\\n    function decimals() public view virtual override returns (uint8) {\\n        return decimalsInternal;\\n    }\\n}\\n\",\"keccak256\":\"0xb4b7d79a2e90fdd03b321d83628154f566cd23d0287b205828c855933909c0c4\",\"license\":\"BSD-3-Clause\"},\"contracts/test/VBEP20Harness.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"./BEP20Harness.sol\\\";\\n\\ncontract VBEP20Harness is BEP20Harness {\\n    /**\\n     * @notice Underlying asset for this VToken\\n     */\\n    address public underlying;\\n\\n    constructor(\\n        string memory name_,\\n        string memory symbol_,\\n        uint8 decimals,\\n        address underlying_\\n    ) BEP20Harness(name_, symbol_, decimals) {\\n        underlying = underlying_;\\n    }\\n}\\n\",\"keccak256\":\"0x59a6467be8a911819dc94f22a328c3190bd88e3f641c1a2e93cf0e158268b9b5\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"contracts/test/VBEP20Harness.sol:VBEP20Harness","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"contracts/test/VBEP20Harness.sol:VBEP20Harness","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"contracts/test/VBEP20Harness.sol:VBEP20Harness","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"contracts/test/VBEP20Harness.sol:VBEP20Harness","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"contracts/test/VBEP20Harness.sol:VBEP20Harness","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":7540,"contract":"contracts/test/VBEP20Harness.sol:VBEP20Harness","label":"decimalsInternal","offset":0,"slot":"5","type":"t_uint8"},{"astId":8720,"contract":"contracts/test/VBEP20Harness.sol:VBEP20Harness","label":"underlying","offset":1,"slot":"5","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{"underlying()":{"notice":"Underlying asset for this VToken"}},"version":1}}},"contracts/test/oracles/MockCorrelatedTokenOracle.sol":{"MockCorrelatedTokenOracle":{"abi":[{"inputs":[{"internalType":"address","name":"correlatedToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"address","name":"resilientOracle","type":"address"},{"internalType":"uint256","name":"annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"snapshotInterval","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"initialSnapshotTimestamp","type":"uint256"},{"internalType":"address","name":"accessControlManager","type":"address"},{"internalType":"uint256","name":"snapshotGap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidGrowthRate","type":"error"},{"inputs":[],"name":"InvalidInitialSnapshot","type":"error"},{"inputs":[],"name":"InvalidSnapshotMaxExchangeRate","type":"error"},{"inputs":[],"name":"InvalidTokenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newGrowthRatePerSecond","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldSnapshotInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSnapshotInterval","type":"uint256"}],"name":"GrowthRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldSnapshotGap","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newSnapshotGap","type":"uint256"}],"name":"SnapshotGapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxExchangeRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SnapshotUpdated","type":"event"},{"inputs":[],"name":"ACCESS_CONTROL_MANAGER","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORRELATED_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESILIENT_ORACLE","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNDERLYING_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxAllowedExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthRatePerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockUnderlyingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_annualGrowthRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotInterval","type":"uint256"}],"name":"setGrowthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMockUnderlyingAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotMaxExchangeRate","type":"uint256"},{"internalType":"uint256","name":"_snapshotTimestamp","type":"uint256"}],"name":"setSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_snapshotGap","type":"uint256"}],"name":"setSnapshotGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshotGap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotMaxExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snapshotTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateSnapshot","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"getMaxAllowedExchangeRate()":{"returns":{"_0":"maxExchangeRate Maximum allowed exchange rate"}},"getPrice(address)":{"custom:error":"InvalidTokenAddress error is thrown if the token address is invalid","params":{"asset":"Address of the token"},"returns":{"_0":"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate"}},"getUnderlyingAmount()":{"returns":{"_0":"underlyingAmount Amount of underlying token"}},"isCapped()":{"returns":{"_0":"isCapped Boolean indicating if the price is capped"}},"setGrowthRate(uint256,uint256)":{"custom:error":"InvalidGrowthRate error is thrown if the growth rate is invalid","custom:event":"Emits GrowthRateUpdated event on successful update of the growth rate","params":{"_annualGrowthRate":"The annual growth rate to set","_snapshotInterval":"The snapshot interval to set"}},"setSnapshot(uint256,uint256)":{"custom:event":"Emits SnapshotUpdated event on successful update of the snapshot","params":{"_snapshotMaxExchangeRate":"The exchange rate to set","_snapshotTimestamp":"The timestamp to set"}},"setSnapshotGap(uint256)":{"custom:event":"Emits SnapshotGapUpdated event on successful update of the snapshot gap","params":{"_snapshotGap":"The snapshot gap to set"}},"updateSnapshot()":{"custom:error":"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero","custom:event":"Emits SnapshotUpdated event on successful update of the snapshot"}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_6779":{"entryPoint":null,"id":6779,"parameterSlots":9,"returnSlots":0},"@_8783":{"entryPoint":null,"id":8783,"parameterSlots":9,"returnSlots":0},"@ensureNonzeroAddress_2165":{"entryPoint":288,"id":2165,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":367,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory":{"entryPoint":395,"id":null,"parameterSlots":2,"returnSlots":9},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":607,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":330,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":587,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":348,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":378,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3376:101","nodeType":"YulBlock","src":"0:3376:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"890:32:101","nodeType":"YulBlock","src":"890:32:101","statements":[{"nativeSrc":"900:16:101","nodeType":"YulAssignment","src":"900:16:101","value":{"name":"value","nativeSrc":"911:5:101","nodeType":"YulIdentifier","src":"911:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"900:7:101","nodeType":"YulIdentifier","src":"900:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"845:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"872:5:101","nodeType":"YulTypedName","src":"872:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"882:7:101","nodeType":"YulTypedName","src":"882:7:101","type":""}],"src":"845:77:101"},{"body":{"nativeSrc":"971:79:101","nodeType":"YulBlock","src":"971:79:101","statements":[{"body":{"nativeSrc":"1028:16:101","nodeType":"YulBlock","src":"1028:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1037:1:101","nodeType":"YulLiteral","src":"1037:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1040:1:101","nodeType":"YulLiteral","src":"1040:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1030:6:101","nodeType":"YulIdentifier","src":"1030:6:101"},"nativeSrc":"1030:12:101","nodeType":"YulFunctionCall","src":"1030:12:101"},"nativeSrc":"1030:12:101","nodeType":"YulExpressionStatement","src":"1030:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"994:5:101","nodeType":"YulIdentifier","src":"994:5:101"},{"arguments":[{"name":"value","nativeSrc":"1019:5:101","nodeType":"YulIdentifier","src":"1019:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1001:17:101","nodeType":"YulIdentifier","src":"1001:17:101"},"nativeSrc":"1001:24:101","nodeType":"YulFunctionCall","src":"1001:24:101"}],"functionName":{"name":"eq","nativeSrc":"991:2:101","nodeType":"YulIdentifier","src":"991:2:101"},"nativeSrc":"991:35:101","nodeType":"YulFunctionCall","src":"991:35:101"}],"functionName":{"name":"iszero","nativeSrc":"984:6:101","nodeType":"YulIdentifier","src":"984:6:101"},"nativeSrc":"984:43:101","nodeType":"YulFunctionCall","src":"984:43:101"},"nativeSrc":"981:63:101","nodeType":"YulIf","src":"981:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"928:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"964:5:101","nodeType":"YulTypedName","src":"964:5:101","type":""}],"src":"928:122:101"},{"body":{"nativeSrc":"1119:80:101","nodeType":"YulBlock","src":"1119:80:101","statements":[{"nativeSrc":"1129:22:101","nodeType":"YulAssignment","src":"1129:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"1144:6:101","nodeType":"YulIdentifier","src":"1144:6:101"}],"functionName":{"name":"mload","nativeSrc":"1138:5:101","nodeType":"YulIdentifier","src":"1138:5:101"},"nativeSrc":"1138:13:101","nodeType":"YulFunctionCall","src":"1138:13:101"},"variableNames":[{"name":"value","nativeSrc":"1129:5:101","nodeType":"YulIdentifier","src":"1129:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1187:5:101","nodeType":"YulIdentifier","src":"1187:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1160:26:101","nodeType":"YulIdentifier","src":"1160:26:101"},"nativeSrc":"1160:33:101","nodeType":"YulFunctionCall","src":"1160:33:101"},"nativeSrc":"1160:33:101","nodeType":"YulExpressionStatement","src":"1160:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"1056:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1097:6:101","nodeType":"YulTypedName","src":"1097:6:101","type":""},{"name":"end","nativeSrc":"1105:3:101","nodeType":"YulTypedName","src":"1105:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1113:5:101","nodeType":"YulTypedName","src":"1113:5:101","type":""}],"src":"1056:143:101"},{"body":{"nativeSrc":"1418:1392:101","nodeType":"YulBlock","src":"1418:1392:101","statements":[{"body":{"nativeSrc":"1465:83:101","nodeType":"YulBlock","src":"1465:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1467:77:101","nodeType":"YulIdentifier","src":"1467:77:101"},"nativeSrc":"1467:79:101","nodeType":"YulFunctionCall","src":"1467:79:101"},"nativeSrc":"1467:79:101","nodeType":"YulExpressionStatement","src":"1467:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:101","nodeType":"YulIdentifier","src":"1439:7:101"},{"name":"headStart","nativeSrc":"1448:9:101","nodeType":"YulIdentifier","src":"1448:9:101"}],"functionName":{"name":"sub","nativeSrc":"1435:3:101","nodeType":"YulIdentifier","src":"1435:3:101"},"nativeSrc":"1435:23:101","nodeType":"YulFunctionCall","src":"1435:23:101"},{"kind":"number","nativeSrc":"1460:3:101","nodeType":"YulLiteral","src":"1460:3:101","type":"","value":"288"}],"functionName":{"name":"slt","nativeSrc":"1431:3:101","nodeType":"YulIdentifier","src":"1431:3:101"},"nativeSrc":"1431:33:101","nodeType":"YulFunctionCall","src":"1431:33:101"},"nativeSrc":"1428:120:101","nodeType":"YulIf","src":"1428:120:101"},{"nativeSrc":"1558:128:101","nodeType":"YulBlock","src":"1558:128:101","statements":[{"nativeSrc":"1573:15:101","nodeType":"YulVariableDeclaration","src":"1573:15:101","value":{"kind":"number","nativeSrc":"1587:1:101","nodeType":"YulLiteral","src":"1587:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1577:6:101","nodeType":"YulTypedName","src":"1577:6:101","type":""}]},{"nativeSrc":"1602:74:101","nodeType":"YulAssignment","src":"1602:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1648:9:101","nodeType":"YulIdentifier","src":"1648:9:101"},{"name":"offset","nativeSrc":"1659:6:101","nodeType":"YulIdentifier","src":"1659:6:101"}],"functionName":{"name":"add","nativeSrc":"1644:3:101","nodeType":"YulIdentifier","src":"1644:3:101"},"nativeSrc":"1644:22:101","nodeType":"YulFunctionCall","src":"1644:22:101"},{"name":"dataEnd","nativeSrc":"1668:7:101","nodeType":"YulIdentifier","src":"1668:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1612:31:101","nodeType":"YulIdentifier","src":"1612:31:101"},"nativeSrc":"1612:64:101","nodeType":"YulFunctionCall","src":"1612:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1602:6:101","nodeType":"YulIdentifier","src":"1602:6:101"}]}]},{"nativeSrc":"1696:129:101","nodeType":"YulBlock","src":"1696:129:101","statements":[{"nativeSrc":"1711:16:101","nodeType":"YulVariableDeclaration","src":"1711:16:101","value":{"kind":"number","nativeSrc":"1725:2:101","nodeType":"YulLiteral","src":"1725:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1715:6:101","nodeType":"YulTypedName","src":"1715:6:101","type":""}]},{"nativeSrc":"1741:74:101","nodeType":"YulAssignment","src":"1741:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1787:9:101","nodeType":"YulIdentifier","src":"1787:9:101"},{"name":"offset","nativeSrc":"1798:6:101","nodeType":"YulIdentifier","src":"1798:6:101"}],"functionName":{"name":"add","nativeSrc":"1783:3:101","nodeType":"YulIdentifier","src":"1783:3:101"},"nativeSrc":"1783:22:101","nodeType":"YulFunctionCall","src":"1783:22:101"},{"name":"dataEnd","nativeSrc":"1807:7:101","nodeType":"YulIdentifier","src":"1807:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1751:31:101","nodeType":"YulIdentifier","src":"1751:31:101"},"nativeSrc":"1751:64:101","nodeType":"YulFunctionCall","src":"1751:64:101"},"variableNames":[{"name":"value1","nativeSrc":"1741:6:101","nodeType":"YulIdentifier","src":"1741:6:101"}]}]},{"nativeSrc":"1835:129:101","nodeType":"YulBlock","src":"1835:129:101","statements":[{"nativeSrc":"1850:16:101","nodeType":"YulVariableDeclaration","src":"1850:16:101","value":{"kind":"number","nativeSrc":"1864:2:101","nodeType":"YulLiteral","src":"1864:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}]},{"nativeSrc":"1880:74:101","nodeType":"YulAssignment","src":"1880:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1926:9:101","nodeType":"YulIdentifier","src":"1926:9:101"},{"name":"offset","nativeSrc":"1937:6:101","nodeType":"YulIdentifier","src":"1937:6:101"}],"functionName":{"name":"add","nativeSrc":"1922:3:101","nodeType":"YulIdentifier","src":"1922:3:101"},"nativeSrc":"1922:22:101","nodeType":"YulFunctionCall","src":"1922:22:101"},{"name":"dataEnd","nativeSrc":"1946:7:101","nodeType":"YulIdentifier","src":"1946:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1890:31:101","nodeType":"YulIdentifier","src":"1890:31:101"},"nativeSrc":"1890:64:101","nodeType":"YulFunctionCall","src":"1890:64:101"},"variableNames":[{"name":"value2","nativeSrc":"1880:6:101","nodeType":"YulIdentifier","src":"1880:6:101"}]}]},{"nativeSrc":"1974:129:101","nodeType":"YulBlock","src":"1974:129:101","statements":[{"nativeSrc":"1989:16:101","nodeType":"YulVariableDeclaration","src":"1989:16:101","value":{"kind":"number","nativeSrc":"2003:2:101","nodeType":"YulLiteral","src":"2003:2:101","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1993:6:101","nodeType":"YulTypedName","src":"1993:6:101","type":""}]},{"nativeSrc":"2019:74:101","nodeType":"YulAssignment","src":"2019:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2065:9:101","nodeType":"YulIdentifier","src":"2065:9:101"},{"name":"offset","nativeSrc":"2076:6:101","nodeType":"YulIdentifier","src":"2076:6:101"}],"functionName":{"name":"add","nativeSrc":"2061:3:101","nodeType":"YulIdentifier","src":"2061:3:101"},"nativeSrc":"2061:22:101","nodeType":"YulFunctionCall","src":"2061:22:101"},{"name":"dataEnd","nativeSrc":"2085:7:101","nodeType":"YulIdentifier","src":"2085:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2029:31:101","nodeType":"YulIdentifier","src":"2029:31:101"},"nativeSrc":"2029:64:101","nodeType":"YulFunctionCall","src":"2029:64:101"},"variableNames":[{"name":"value3","nativeSrc":"2019:6:101","nodeType":"YulIdentifier","src":"2019:6:101"}]}]},{"nativeSrc":"2113:130:101","nodeType":"YulBlock","src":"2113:130:101","statements":[{"nativeSrc":"2128:17:101","nodeType":"YulVariableDeclaration","src":"2128:17:101","value":{"kind":"number","nativeSrc":"2142:3:101","nodeType":"YulLiteral","src":"2142:3:101","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"2132:6:101","nodeType":"YulTypedName","src":"2132:6:101","type":""}]},{"nativeSrc":"2159:74:101","nodeType":"YulAssignment","src":"2159:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2205:9:101","nodeType":"YulIdentifier","src":"2205:9:101"},{"name":"offset","nativeSrc":"2216:6:101","nodeType":"YulIdentifier","src":"2216:6:101"}],"functionName":{"name":"add","nativeSrc":"2201:3:101","nodeType":"YulIdentifier","src":"2201:3:101"},"nativeSrc":"2201:22:101","nodeType":"YulFunctionCall","src":"2201:22:101"},{"name":"dataEnd","nativeSrc":"2225:7:101","nodeType":"YulIdentifier","src":"2225:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2169:31:101","nodeType":"YulIdentifier","src":"2169:31:101"},"nativeSrc":"2169:64:101","nodeType":"YulFunctionCall","src":"2169:64:101"},"variableNames":[{"name":"value4","nativeSrc":"2159:6:101","nodeType":"YulIdentifier","src":"2159:6:101"}]}]},{"nativeSrc":"2253:130:101","nodeType":"YulBlock","src":"2253:130:101","statements":[{"nativeSrc":"2268:17:101","nodeType":"YulVariableDeclaration","src":"2268:17:101","value":{"kind":"number","nativeSrc":"2282:3:101","nodeType":"YulLiteral","src":"2282:3:101","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"2272:6:101","nodeType":"YulTypedName","src":"2272:6:101","type":""}]},{"nativeSrc":"2299:74:101","nodeType":"YulAssignment","src":"2299:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2345:9:101","nodeType":"YulIdentifier","src":"2345:9:101"},{"name":"offset","nativeSrc":"2356:6:101","nodeType":"YulIdentifier","src":"2356:6:101"}],"functionName":{"name":"add","nativeSrc":"2341:3:101","nodeType":"YulIdentifier","src":"2341:3:101"},"nativeSrc":"2341:22:101","nodeType":"YulFunctionCall","src":"2341:22:101"},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulIdentifier","src":"2365:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2309:31:101","nodeType":"YulIdentifier","src":"2309:31:101"},"nativeSrc":"2309:64:101","nodeType":"YulFunctionCall","src":"2309:64:101"},"variableNames":[{"name":"value5","nativeSrc":"2299:6:101","nodeType":"YulIdentifier","src":"2299:6:101"}]}]},{"nativeSrc":"2393:130:101","nodeType":"YulBlock","src":"2393:130:101","statements":[{"nativeSrc":"2408:17:101","nodeType":"YulVariableDeclaration","src":"2408:17:101","value":{"kind":"number","nativeSrc":"2422:3:101","nodeType":"YulLiteral","src":"2422:3:101","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"2412:6:101","nodeType":"YulTypedName","src":"2412:6:101","type":""}]},{"nativeSrc":"2439:74:101","nodeType":"YulAssignment","src":"2439:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:101","nodeType":"YulIdentifier","src":"2485:9:101"},{"name":"offset","nativeSrc":"2496:6:101","nodeType":"YulIdentifier","src":"2496:6:101"}],"functionName":{"name":"add","nativeSrc":"2481:3:101","nodeType":"YulIdentifier","src":"2481:3:101"},"nativeSrc":"2481:22:101","nodeType":"YulFunctionCall","src":"2481:22:101"},{"name":"dataEnd","nativeSrc":"2505:7:101","nodeType":"YulIdentifier","src":"2505:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2449:31:101","nodeType":"YulIdentifier","src":"2449:31:101"},"nativeSrc":"2449:64:101","nodeType":"YulFunctionCall","src":"2449:64:101"},"variableNames":[{"name":"value6","nativeSrc":"2439:6:101","nodeType":"YulIdentifier","src":"2439:6:101"}]}]},{"nativeSrc":"2533:130:101","nodeType":"YulBlock","src":"2533:130:101","statements":[{"nativeSrc":"2548:17:101","nodeType":"YulVariableDeclaration","src":"2548:17:101","value":{"kind":"number","nativeSrc":"2562:3:101","nodeType":"YulLiteral","src":"2562:3:101","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"2552:6:101","nodeType":"YulTypedName","src":"2552:6:101","type":""}]},{"nativeSrc":"2579:74:101","nodeType":"YulAssignment","src":"2579:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2625:9:101","nodeType":"YulIdentifier","src":"2625:9:101"},{"name":"offset","nativeSrc":"2636:6:101","nodeType":"YulIdentifier","src":"2636:6:101"}],"functionName":{"name":"add","nativeSrc":"2621:3:101","nodeType":"YulIdentifier","src":"2621:3:101"},"nativeSrc":"2621:22:101","nodeType":"YulFunctionCall","src":"2621:22:101"},{"name":"dataEnd","nativeSrc":"2645:7:101","nodeType":"YulIdentifier","src":"2645:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2589:31:101","nodeType":"YulIdentifier","src":"2589:31:101"},"nativeSrc":"2589:64:101","nodeType":"YulFunctionCall","src":"2589:64:101"},"variableNames":[{"name":"value7","nativeSrc":"2579:6:101","nodeType":"YulIdentifier","src":"2579:6:101"}]}]},{"nativeSrc":"2673:130:101","nodeType":"YulBlock","src":"2673:130:101","statements":[{"nativeSrc":"2688:17:101","nodeType":"YulVariableDeclaration","src":"2688:17:101","value":{"kind":"number","nativeSrc":"2702:3:101","nodeType":"YulLiteral","src":"2702:3:101","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"2692:6:101","nodeType":"YulTypedName","src":"2692:6:101","type":""}]},{"nativeSrc":"2719:74:101","nodeType":"YulAssignment","src":"2719:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:101","nodeType":"YulIdentifier","src":"2765:9:101"},{"name":"offset","nativeSrc":"2776:6:101","nodeType":"YulIdentifier","src":"2776:6:101"}],"functionName":{"name":"add","nativeSrc":"2761:3:101","nodeType":"YulIdentifier","src":"2761:3:101"},"nativeSrc":"2761:22:101","nodeType":"YulFunctionCall","src":"2761:22:101"},{"name":"dataEnd","nativeSrc":"2785:7:101","nodeType":"YulIdentifier","src":"2785:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"2729:31:101","nodeType":"YulIdentifier","src":"2729:31:101"},"nativeSrc":"2729:64:101","nodeType":"YulFunctionCall","src":"2729:64:101"},"variableNames":[{"name":"value8","nativeSrc":"2719:6:101","nodeType":"YulIdentifier","src":"2719:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory","nativeSrc":"1205:1605:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1324:9:101","nodeType":"YulTypedName","src":"1324:9:101","type":""},{"name":"dataEnd","nativeSrc":"1335:7:101","nodeType":"YulTypedName","src":"1335:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""},{"name":"value1","nativeSrc":"1355:6:101","nodeType":"YulTypedName","src":"1355:6:101","type":""},{"name":"value2","nativeSrc":"1363:6:101","nodeType":"YulTypedName","src":"1363:6:101","type":""},{"name":"value3","nativeSrc":"1371:6:101","nodeType":"YulTypedName","src":"1371:6:101","type":""},{"name":"value4","nativeSrc":"1379:6:101","nodeType":"YulTypedName","src":"1379:6:101","type":""},{"name":"value5","nativeSrc":"1387:6:101","nodeType":"YulTypedName","src":"1387:6:101","type":""},{"name":"value6","nativeSrc":"1395:6:101","nodeType":"YulTypedName","src":"1395:6:101","type":""},{"name":"value7","nativeSrc":"1403:6:101","nodeType":"YulTypedName","src":"1403:6:101","type":""},{"name":"value8","nativeSrc":"1411:6:101","nodeType":"YulTypedName","src":"1411:6:101","type":""}],"src":"1205:1605:101"},{"body":{"nativeSrc":"2844:152:101","nodeType":"YulBlock","src":"2844:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2861:1:101","nodeType":"YulLiteral","src":"2861:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2864:77:101","nodeType":"YulLiteral","src":"2864:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2854:6:101","nodeType":"YulIdentifier","src":"2854:6:101"},"nativeSrc":"2854:88:101","nodeType":"YulFunctionCall","src":"2854:88:101"},"nativeSrc":"2854:88:101","nodeType":"YulExpressionStatement","src":"2854:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2958:1:101","nodeType":"YulLiteral","src":"2958:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"2961:4:101","nodeType":"YulLiteral","src":"2961:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:101","nodeType":"YulIdentifier","src":"2951:6:101"},"nativeSrc":"2951:15:101","nodeType":"YulFunctionCall","src":"2951:15:101"},"nativeSrc":"2951:15:101","nodeType":"YulExpressionStatement","src":"2951:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2982:1:101","nodeType":"YulLiteral","src":"2982:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2985:4:101","nodeType":"YulLiteral","src":"2985:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:15:101","nodeType":"YulFunctionCall","src":"2975:15:101"},"nativeSrc":"2975:15:101","nodeType":"YulExpressionStatement","src":"2975:15:101"}]},"name":"panic_error_0x12","nativeSrc":"2816:180:101","nodeType":"YulFunctionDefinition","src":"2816:180:101"},{"body":{"nativeSrc":"3030:152:101","nodeType":"YulBlock","src":"3030:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3047:1:101","nodeType":"YulLiteral","src":"3047:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3050:77:101","nodeType":"YulLiteral","src":"3050:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3040:6:101","nodeType":"YulIdentifier","src":"3040:6:101"},"nativeSrc":"3040:88:101","nodeType":"YulFunctionCall","src":"3040:88:101"},"nativeSrc":"3040:88:101","nodeType":"YulExpressionStatement","src":"3040:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:101","nodeType":"YulLiteral","src":"3144:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3147:4:101","nodeType":"YulLiteral","src":"3147:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3137:6:101","nodeType":"YulIdentifier","src":"3137:6:101"},"nativeSrc":"3137:15:101","nodeType":"YulFunctionCall","src":"3137:15:101"},"nativeSrc":"3137:15:101","nodeType":"YulExpressionStatement","src":"3137:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3168:1:101","nodeType":"YulLiteral","src":"3168:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3171:4:101","nodeType":"YulLiteral","src":"3171:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3161:6:101","nodeType":"YulIdentifier","src":"3161:6:101"},"nativeSrc":"3161:15:101","nodeType":"YulFunctionCall","src":"3161:15:101"},"nativeSrc":"3161:15:101","nodeType":"YulExpressionStatement","src":"3161:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3002:180:101","nodeType":"YulFunctionDefinition","src":"3002:180:101"},{"body":{"nativeSrc":"3230:143:101","nodeType":"YulBlock","src":"3230:143:101","statements":[{"nativeSrc":"3240:25:101","nodeType":"YulAssignment","src":"3240:25:101","value":{"arguments":[{"name":"x","nativeSrc":"3263:1:101","nodeType":"YulIdentifier","src":"3263:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3245:17:101","nodeType":"YulIdentifier","src":"3245:17:101"},"nativeSrc":"3245:20:101","nodeType":"YulFunctionCall","src":"3245:20:101"},"variableNames":[{"name":"x","nativeSrc":"3240:1:101","nodeType":"YulIdentifier","src":"3240:1:101"}]},{"nativeSrc":"3274:25:101","nodeType":"YulAssignment","src":"3274:25:101","value":{"arguments":[{"name":"y","nativeSrc":"3297:1:101","nodeType":"YulIdentifier","src":"3297:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3279:17:101","nodeType":"YulIdentifier","src":"3279:17:101"},"nativeSrc":"3279:20:101","nodeType":"YulFunctionCall","src":"3279:20:101"},"variableNames":[{"name":"y","nativeSrc":"3274:1:101","nodeType":"YulIdentifier","src":"3274:1:101"}]},{"body":{"nativeSrc":"3321:22:101","nodeType":"YulBlock","src":"3321:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"3323:16:101","nodeType":"YulIdentifier","src":"3323:16:101"},"nativeSrc":"3323:18:101","nodeType":"YulFunctionCall","src":"3323:18:101"},"nativeSrc":"3323:18:101","nodeType":"YulExpressionStatement","src":"3323:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"3318:1:101","nodeType":"YulIdentifier","src":"3318:1:101"}],"functionName":{"name":"iszero","nativeSrc":"3311:6:101","nodeType":"YulIdentifier","src":"3311:6:101"},"nativeSrc":"3311:9:101","nodeType":"YulFunctionCall","src":"3311:9:101"},"nativeSrc":"3308:35:101","nodeType":"YulIf","src":"3308:35:101"},{"nativeSrc":"3353:14:101","nodeType":"YulAssignment","src":"3353:14:101","value":{"arguments":[{"name":"x","nativeSrc":"3362:1:101","nodeType":"YulIdentifier","src":"3362:1:101"},{"name":"y","nativeSrc":"3365:1:101","nodeType":"YulIdentifier","src":"3365:1:101"}],"functionName":{"name":"div","nativeSrc":"3358:3:101","nodeType":"YulIdentifier","src":"3358:3:101"},"nativeSrc":"3358:9:101","nodeType":"YulFunctionCall","src":"3358:9:101"},"variableNames":[{"name":"r","nativeSrc":"3353:1:101","nodeType":"YulIdentifier","src":"3353:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"3188:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"3219:1:101","nodeType":"YulTypedName","src":"3219:1:101","type":""},{"name":"y","nativeSrc":"3222:1:101","nodeType":"YulTypedName","src":"3222:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"3228:1:101","nodeType":"YulTypedName","src":"3228:1:101","type":""}],"src":"3188:185:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_uint256t_uint256t_uint256t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 288) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 192\n\n            value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value7 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 256\n\n            value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610100604052348015610010575f80fd5b50604051610ffc380380610ffc83398101604081905261002f9161018b565b8888888888888888886100466301e133808761025f565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610120565b6100ce88610120565b6100d787610120565b6100e082610120565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05250610272975050505050505050565b6001600160a01b038116610147576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b6101658161014a565b8114610147575f80fd5b80516101568161015c565b80610165565b80516101568161017a565b5f805f805f805f805f6101208a8c0312156101a7576101a75f80fd5b5f6101b28c8c61016f565b99505060206101c38c828d0161016f565b98505060406101d48c828d0161016f565b97505060606101e58c828d01610180565b96505060806101f68c828d01610180565b95505060a06102078c828d01610180565b94505060c06102188c828d01610180565b93505060e06102298c828d0161016f565b92505061010061023b8c828d01610180565b9150509295985092959850929598565b634e487b7160e01b5f52601260045260245ffd5b5f8261026d5761026d61024b565b500490565b60805160a05160c05160e051610d266102d65f395f8181610194015261086501525f81816102620152818161057701526106f801525f8181610144015281816105a4015261072701525f8181610216015281816102b201526107a60152610d265ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c806369240426116100a9578063a4edcd4c1161006e578063a4edcd4c1461025d578063abb8561314610284578063ac5a693e1461028c578063bdf13af214610294578063df67747a1461029c575f80fd5b8063692404261461020957806369818a35146102115780637fc4e4a01461023857806399fd89391461024b5780639c43eb5414610254575f80fd5b806345be2dc7116100ef57806345be2dc71461018f5780635213f9c8146101c3578063596efe6f146101d8578063643d813d146101e1578063671528d4146101f4575f80fd5b806307d0413c1461012057806329db1be61461013f5780634169d2451461017357806341976e091461017c575b5f80fd5b61012960015481565b6040516101369190610916565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610943565b61012960045481565b61012961018a366004610972565b6102af565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b60405161013691906109b5565b6101d66101d13660046109d4565b610361565b005b61012960025481565b6101d66101ef3660046109f2565b6103d2565b6101fc6104a6565b6040516101369190610a34565b6101d66104e2565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101d66102463660046109f2565b61062f565b61012960055481565b61012960035481565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b600554610129565b6101295f5481565b6101296106a7565b6101d66102aa3660046109d4565b600555565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030c60055490565b90506001545f0361032757610320816106f4565b9392505050565b5f6103306106a7565b90505f818311801561034157508115155b61034b578261034d565b815b9050610358816106f4565b95945050505050565b61039f6040518060400160405280601781526020017f736574536e617073686f744761702875696e743235362900000000000000000081525061084c565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104106040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e7432353629000081525061084c565b5f546104206301e1338084610a6a565b5f81905515801561043057505f82115b8061044457505f8054118015610444575081155b15610462576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104979190610916565b60405180910390a45060015550565b5f6001545f036104b557505f90565b5f6104be6106a7565b9050805f036104ce575f91505090565b5f6104d860055490565b9190911192915050565b6001546003546104f29042610a7d565b10806104fe5750600154155b1561050557565b5f61050f60055490565b90505f61051a6106a7565b905060045481831161052c578261052e565b815b6105389190610a90565b6002819055426003555f0361056057604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105cc907f000000000000000000000000000000000000000000000000000000000000000090600401610943565b5f604051808303815f87803b1580156105e3575f80fd5b505af11580156105f5573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066d6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e74323536290000000081525061084c565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f80600354426106b79190610a7d565b90505f670de0b6b3a7640000825f546002546106d39190610aa3565b6106dd9190610aa3565b6106e79190610a6a565b6002546103209190610a90565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107629190610943565b602060405180830381865afa15801561077d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a19190610acd565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610804573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108289190610aff565b60ff16905061083881600a610c29565b6108428487610aa3565b6103589190610a6a565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061089c9033908690600401610c72565b602060405180830381865afa1580156108b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108db9190610ca5565b90508061090a57333083604051634a3fa29360e01b815260040161090193929190610cc3565b60405180910390fd5b5050565b805b82525050565b60208101610924828461090e565b92915050565b5f6001600160a01b038216610924565b6109108161092a565b60208101610924828461093a565b61095a8161092a565b8114610964575f80fd5b50565b803561092481610951565b5f60208284031215610985576109855f80fd5b5f6109908484610967565b949350505050565b5f6109248261092a565b5f61092482610998565b610910816109a2565b6020810161092482846109ac565b8061095a565b8035610924816109c3565b5f602082840312156109e7576109e75f80fd5b5f61099084846109c9565b5f8060408385031215610a0657610a065f80fd5b5f610a1185856109c9565b9250506020610a22858286016109c9565b9150509250929050565b801515610910565b602081016109248284610a2c565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610a7857610a78610a42565b500490565b8181038181111561092457610924610a56565b8082018082111561092457610924610a56565b818102808215838204851417610abb57610abb610a56565b5092915050565b8051610924816109c3565b5f60208284031215610ae057610ae05f80fd5b5f6109908484610ac2565b60ff811661095a565b805161092481610aeb565b5f60208284031215610b1257610b125f80fd5b5f6109908484610af4565b80825b6001851115610b5c57808604811115610b3b57610b3b610a56565b6001851615610b4957908102905b8002610b558560011c90565b9450610b20565b94509492505050565b5f82610b7357506001610320565b81610b7f57505f610320565b8160018114610b955760028114610b9f57610bcc565b6001915050610320565b60ff841115610bb057610bb0610a56565b8360020a915084821115610bc657610bc6610a56565b50610320565b5060208310610133831016604e8410600b8410161715610bff575081810a83811115610bfa57610bfa610a56565b610320565b610c0c8484846001610b1d565b92509050818404811115610c2257610c22610a56565b0292915050565b5f6103205f198484610b65565b8281835e505f910152565b5f610c4a825190565b808452602084019350610c61818560208601610c36565b601f01601f19169290920192915050565b60408101610c80828561093a565b81810360208301526109908184610c41565b80151561095a565b805161092481610c92565b5f60208284031215610cb857610cb85f80fd5b5f6109908484610c9a565b60608101610cd1828661093a565b610cde602083018561093a565b81810360408301526103588184610c4156fea26469706673582212202e05a42346b3fb4dbaa4e94119cb4d668e665059606ed583e448b7fe701e22c964736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xFFC CODESIZE SUB DUP1 PUSH2 0xFFC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x18B JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x46 PUSH4 0x1E13380 DUP8 PUSH2 0x25F JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x56 JUMPI POP PUSH0 DUP6 GT JUMPDEST DUP1 PUSH2 0x6A JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x6A JUMPI POP DUP5 ISZERO JUMPDEST ISZERO PUSH2 0x88 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x93 JUMPI POP DUP3 ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x9E JUMPI POP PUSH0 DUP6 GT JUMPDEST ISZERO PUSH2 0xBC JUMPI PUSH1 0x40 MLOAD PUSH4 0xB8A5589B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC5 DUP10 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xCE DUP9 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xD7 DUP8 PUSH2 0x120 JUMP JUMPDEST PUSH2 0xE0 DUP3 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP9 DUP10 AND PUSH1 0x80 MSTORE SWAP7 DUP9 AND PUSH1 0xA0 MSTORE SWAP5 DUP8 AND PUSH1 0xC0 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x2 SSTORE PUSH1 0x3 SSTORE POP PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE AND PUSH1 0xE0 MSTORE POP PUSH2 0x272 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x147 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165 DUP2 PUSH2 0x14A JUMP JUMPDEST DUP2 EQ PUSH2 0x147 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x15C JUMP JUMPDEST DUP1 PUSH2 0x165 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x156 DUP2 PUSH2 0x17A JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH2 0x120 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x1A7 JUMPI PUSH2 0x1A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1B2 DUP13 DUP13 PUSH2 0x16F JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x1C3 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x1D4 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x1E5 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x1F6 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x207 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 PUSH2 0x218 DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xE0 PUSH2 0x229 DUP13 DUP3 DUP14 ADD PUSH2 0x16F JUMP JUMPDEST SWAP3 POP POP PUSH2 0x100 PUSH2 0x23B DUP13 DUP3 DUP14 ADD PUSH2 0x180 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0x26D JUMPI PUSH2 0x26D PUSH2 0x24B JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0xD26 PUSH2 0x2D6 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH2 0x194 ADD MSTORE PUSH2 0x865 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x262 ADD MSTORE DUP2 DUP2 PUSH2 0x577 ADD MSTORE PUSH2 0x6F8 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x144 ADD MSTORE DUP2 DUP2 PUSH2 0x5A4 ADD MSTORE PUSH2 0x727 ADD MSTORE PUSH0 DUP2 DUP2 PUSH2 0x216 ADD MSTORE DUP2 DUP2 PUSH2 0x2B2 ADD MSTORE PUSH2 0x7A6 ADD MSTORE PUSH2 0xD26 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xDF67747A EQ PUSH2 0x29C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x99FD8939 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x254 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x17C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x943 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0x972 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x9B5 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x9D4 JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0x9F2 JUMP JUMPDEST PUSH2 0x3D2 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA34 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x4E2 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x246 CALLDATASIZE PUSH1 0x4 PUSH2 0x9F2 JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH2 0x129 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x129 JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6A7 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x9D4 JUMP JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30C PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x327 JUMPI PUSH2 0x320 DUP2 PUSH2 0x6F4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x330 PUSH2 0x6A7 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x341 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34B JUMPI DUP3 PUSH2 0x34D JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x358 DUP2 PUSH2 0x6F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x84C JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x410 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x84C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x420 PUSH4 0x1E13380 DUP5 PUSH2 0xA6A JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x430 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x444 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x444 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B5 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BE PUSH2 0x6A7 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CE JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D8 PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F2 SWAP1 TIMESTAMP PUSH2 0xA7D JUMP JUMPDEST LT DUP1 PUSH2 0x4FE JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x505 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50F PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x51A PUSH2 0x6A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x52C JUMPI DUP3 PUSH2 0x52E JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x538 SWAP2 SWAP1 PUSH2 0xA90 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x560 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5CC SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x943 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F5 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x84C JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x6B7 SWAP2 SWAP1 PUSH2 0xA7D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x6D3 SWAP2 SWAP1 PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x6DD SWAP2 SWAP1 PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x6E7 SWAP2 SWAP1 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x320 SWAP2 SWAP1 PUSH2 0xA90 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x762 SWAP2 SWAP1 PUSH2 0x943 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7A1 SWAP2 SWAP1 PUSH2 0xACD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x804 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x828 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x838 DUP2 PUSH1 0xA PUSH2 0xC29 JUMP JUMPDEST PUSH2 0x842 DUP5 DUP8 PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x358 SWAP2 SWAP1 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x89C SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC72 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8B7 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8DB SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x90A JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x901 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0x90E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x924 JUMP JUMPDEST PUSH2 0x910 DUP2 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0x93A JUMP JUMPDEST PUSH2 0x95A DUP2 PUSH2 0x92A JUMP JUMPDEST DUP2 EQ PUSH2 0x964 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x924 DUP2 PUSH2 0x951 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x985 JUMPI PUSH2 0x985 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0x967 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x924 DUP3 PUSH2 0x92A JUMP JUMPDEST PUSH0 PUSH2 0x924 DUP3 PUSH2 0x998 JUMP JUMPDEST PUSH2 0x910 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0x9AC JUMP JUMPDEST DUP1 PUSH2 0x95A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x924 DUP2 PUSH2 0x9C3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9E7 JUMPI PUSH2 0x9E7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0x9C9 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA06 JUMPI PUSH2 0xA06 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA11 DUP6 DUP6 PUSH2 0x9C9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA22 DUP6 DUP3 DUP7 ADD PUSH2 0x9C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x910 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0xA2C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xA78 JUMPI PUSH2 0xA78 PUSH2 0xA42 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x924 JUMPI PUSH2 0x924 PUSH2 0xA56 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x924 JUMPI PUSH2 0x924 PUSH2 0xA56 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xABB JUMPI PUSH2 0xABB PUSH2 0xA56 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x924 DUP2 PUSH2 0x9C3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0xAC2 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x95A JUMP JUMPDEST DUP1 MLOAD PUSH2 0x924 DUP2 PUSH2 0xAEB JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB12 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0xAF4 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xB5C JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xB3B JUMPI PUSH2 0xB3B PUSH2 0xA56 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xB49 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xB55 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB20 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xB73 JUMPI POP PUSH1 0x1 PUSH2 0x320 JUMP JUMPDEST DUP2 PUSH2 0xB7F JUMPI POP PUSH0 PUSH2 0x320 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xB95 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xB9F JUMPI PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x320 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xBB0 JUMPI PUSH2 0xBB0 PUSH2 0xA56 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xBC6 JUMPI PUSH2 0xBC6 PUSH2 0xA56 JUMP JUMPDEST POP PUSH2 0x320 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xBFF JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xBFA JUMPI PUSH2 0xBFA PUSH2 0xA56 JUMP JUMPDEST PUSH2 0x320 JUMP JUMPDEST PUSH2 0xC0C DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB1D JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC22 JUMPI PUSH2 0xC22 PUSH2 0xA56 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x320 PUSH0 NOT DUP5 DUP5 PUSH2 0xB65 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xC4A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xC61 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC36 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xC80 DUP3 DUP6 PUSH2 0x93A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x990 DUP2 DUP5 PUSH2 0xC41 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x95A JUMP JUMPDEST DUP1 MLOAD PUSH2 0x924 DUP2 PUSH2 0xC92 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH2 0xCB8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xCD1 DUP3 DUP7 PUSH2 0x93A JUMP JUMPDEST PUSH2 0xCDE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x93A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x358 DUP2 DUP5 PUSH2 0xC41 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E SDIV LOG4 0x23 CHAINID 0xB3 0xFB 0x4D 0xBA LOG4 0xE9 COINBASE NOT 0xCB 0x4D PUSH7 0x8E665059606ED5 DUP4 0xE4 BASEFEE 0xB7 INVALID PUSH17 0x1E22C964736F6C63430008190033000000 ","sourceMap":"155:1016:86:-:0;;;263:676;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;648:15;677;706;735:16;765;795:30;839:24;877:20;911:11;3527:36:67;408:10:17;735:16:86;3527:36:67;:::i;:::-;3505:19;:58;;;3579:24;:49;;;;;3627:1;3607:17;:21;3579:49;3578:106;;;;3656:1;3634:19;;:23;:49;;;;-1:-1:-1;3661:22:67;;3634:49;3574:150;;;3705:19;;-1:-1:-1;;;3705:19:67;;;;;;;;;;;3574:150;3740:36;;;:70;;-1:-1:-1;3780:30:67;;3740:70;3739:97;;;;;3835:1;3815:17;:21;3739:97;3735:159;;;3859:24;;-1:-1:-1;;;3859:24:67;;;;;;;;;;;3735:159;3904:38;3925:16;3904:20;:38::i;:::-;3952;3973:16;3952:20;:38::i;:::-;4000;4021:16;4000:20;:38::i;:::-;4048:43;4069:21;4048:20;:43::i;:::-;-1:-1:-1;;;;;4102:35:67;;;;;4147;;;;;4192:61;;;;;4263:16;:36;;;;4310:23;:57;4377:17;:45;-1:-1:-1;4432:11:67;:26;;;;4469:71;;;-1:-1:-1;155:1016:86;;-1:-1:-1;;;;;;;;155:1016:86;485:136:18;-1:-1:-1;;;;;548:22:18;;544:75;;589:23;;-1:-1:-1;;;589:23:18;;;;;;;;;;;544:75;485:136;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;928:122::-;1019:5;1001:24;845:77;1056:143;1138:13;;1160:33;1138:13;1160:33;:::i;1205:1605::-;1347:6;1355;1363;1371;1379;1387;1395;1403;1411;1460:3;1448:9;1439:7;1435:23;1431:33;1428:120;;;1467:79;197:1;194;187:12;1467:79;1587:1;1612:64;1668:7;1648:9;1612:64;:::i;:::-;1602:74;;1558:128;1725:2;1751:64;1807:7;1798:6;1787:9;1783:22;1751:64;:::i;:::-;1741:74;;1696:129;1864:2;1890:64;1946:7;1937:6;1926:9;1922:22;1890:64;:::i;:::-;1880:74;;1835:129;2003:2;2029:64;2085:7;2076:6;2065:9;2061:22;2029:64;:::i;:::-;2019:74;;1974:129;2142:3;2169:64;2225:7;2216:6;2205:9;2201:22;2169:64;:::i;:::-;2159:74;;2113:130;2282:3;2309:64;2365:7;2356:6;2345:9;2341:22;2309:64;:::i;:::-;2299:74;;2253:130;2422:3;2449:64;2505:7;2496:6;2485:9;2481:22;2449:64;:::i;:::-;2439:74;;2393:130;2562:3;2589:64;2645:7;2636:6;2625:9;2621:22;2589:64;:::i;:::-;2579:74;;2533:130;2702:3;2729:64;2785:7;2776:6;2765:9;2761:22;2729:64;:::i;:::-;2719:74;;2673:130;1205:1605;;;;;;;;;;;:::o;2816:180::-;-1:-1:-1;;;2861:1:101;2854:88;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3188:185;3228:1;3318;3308:35;;3323:18;;:::i;:::-;-1:-1:-1;3358:9:101;;3188:185::o;:::-;155:1016:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACCESS_CONTROL_MANAGER_6600":{"entryPoint":null,"id":6600,"parameterSlots":0,"returnSlots":0},"@CORRELATED_TOKEN_6589":{"entryPoint":null,"id":6589,"parameterSlots":0,"returnSlots":0},"@RESILIENT_ORACLE_6596":{"entryPoint":null,"id":6596,"parameterSlots":0,"returnSlots":0},"@UNDERLYING_TOKEN_6592":{"entryPoint":null,"id":6592,"parameterSlots":0,"returnSlots":0},"@_calculatePrice_7106":{"entryPoint":1780,"id":7106,"parameterSlots":1,"returnSlots":1},"@_checkAccessAllowed_7136":{"entryPoint":2124,"id":7136,"parameterSlots":1,"returnSlots":0},"@getMaxAllowedExchangeRate_7061":{"entryPoint":1703,"id":7061,"parameterSlots":0,"returnSlots":1},"@getPrice_7032":{"entryPoint":687,"id":7032,"parameterSlots":1,"returnSlots":1},"@getUnderlyingAmount_8802":{"entryPoint":null,"id":8802,"parameterSlots":0,"returnSlots":1},"@growthRatePerSecond_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@isCapped_6915":{"entryPoint":1190,"id":6915,"parameterSlots":0,"returnSlots":1},"@mockUnderlyingAmount_8750":{"entryPoint":null,"id":8750,"parameterSlots":0,"returnSlots":0},"@setGrowthRate_6860":{"entryPoint":978,"id":6860,"parameterSlots":2,"returnSlots":0},"@setMockUnderlyingAmount_8793":{"entryPoint":null,"id":8793,"parameterSlots":1,"returnSlots":0},"@setSnapshotGap_6880":{"entryPoint":865,"id":6880,"parameterSlots":1,"returnSlots":0},"@setSnapshot_6805":{"entryPoint":1583,"id":6805,"parameterSlots":2,"returnSlots":0},"@snapshotGap_6614":{"entryPoint":null,"id":6614,"parameterSlots":0,"returnSlots":0},"@snapshotInterval_6605":{"entryPoint":null,"id":6605,"parameterSlots":0,"returnSlots":0},"@snapshotMaxExchangeRate_6608":{"entryPoint":null,"id":6608,"parameterSlots":0,"returnSlots":0},"@snapshotTimestamp_6611":{"entryPoint":null,"id":6611,"parameterSlots":0,"returnSlots":0},"@updateSnapshot_6978":{"entryPoint":1250,"id":6978,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2407,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":3226,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2505,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":2754,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":2804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2418,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3237,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2516,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2765,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2546,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":2815,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2362,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2604,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack":{"entryPoint":2476,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3137,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2318,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2371,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3267,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3186,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed":{"entryPoint":2485,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2326,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2704,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":2666,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2845,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":3113,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2917,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2723,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2685,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2346,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address":{"entryPoint":2466,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2456,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3126,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2646,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2626,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":2385,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3218,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2499,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":2795,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12568:101","nodeType":"YulBlock","src":"0:12568:101","statements":[{"body":{"nativeSrc":"52:32:101","nodeType":"YulBlock","src":"52:32:101","statements":[{"nativeSrc":"62:16:101","nodeType":"YulAssignment","src":"62:16:101","value":{"name":"value","nativeSrc":"73:5:101","nodeType":"YulIdentifier","src":"73:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:101","nodeType":"YulIdentifier","src":"62:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:101","nodeType":"YulTypedName","src":"34:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:101","nodeType":"YulTypedName","src":"44:7:101","type":""}],"src":"7:77:101"},{"body":{"nativeSrc":"155:53:101","nodeType":"YulBlock","src":"155:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:101","nodeType":"YulIdentifier","src":"172:3:101"},{"arguments":[{"name":"value","nativeSrc":"195:5:101","nodeType":"YulIdentifier","src":"195:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:101","nodeType":"YulIdentifier","src":"177:17:101"},"nativeSrc":"177:24:101","nodeType":"YulFunctionCall","src":"177:24:101"}],"functionName":{"name":"mstore","nativeSrc":"165:6:101","nodeType":"YulIdentifier","src":"165:6:101"},"nativeSrc":"165:37:101","nodeType":"YulFunctionCall","src":"165:37:101"},"nativeSrc":"165:37:101","nodeType":"YulExpressionStatement","src":"165:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:101","nodeType":"YulTypedName","src":"143:5:101","type":""},{"name":"pos","nativeSrc":"150:3:101","nodeType":"YulTypedName","src":"150:3:101","type":""}],"src":"90:118:101"},{"body":{"nativeSrc":"312:124:101","nodeType":"YulBlock","src":"312:124:101","statements":[{"nativeSrc":"322:26:101","nodeType":"YulAssignment","src":"322:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:101","nodeType":"YulIdentifier","src":"334:9:101"},{"kind":"number","nativeSrc":"345:2:101","nodeType":"YulLiteral","src":"345:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:101","nodeType":"YulIdentifier","src":"330:3:101"},"nativeSrc":"330:18:101","nodeType":"YulFunctionCall","src":"330:18:101"},"variableNames":[{"name":"tail","nativeSrc":"322:4:101","nodeType":"YulIdentifier","src":"322:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:101","nodeType":"YulIdentifier","src":"402:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:101","nodeType":"YulIdentifier","src":"415:9:101"},{"kind":"number","nativeSrc":"426:1:101","nodeType":"YulLiteral","src":"426:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:101","nodeType":"YulIdentifier","src":"411:3:101"},"nativeSrc":"411:17:101","nodeType":"YulFunctionCall","src":"411:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:101","nodeType":"YulIdentifier","src":"358:43:101"},"nativeSrc":"358:71:101","nodeType":"YulFunctionCall","src":"358:71:101"},"nativeSrc":"358:71:101","nodeType":"YulExpressionStatement","src":"358:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:101","nodeType":"YulTypedName","src":"284:9:101","type":""},{"name":"value0","nativeSrc":"296:6:101","nodeType":"YulTypedName","src":"296:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:101","nodeType":"YulTypedName","src":"307:4:101","type":""}],"src":"214:222:101"},{"body":{"nativeSrc":"487:81:101","nodeType":"YulBlock","src":"487:81:101","statements":[{"nativeSrc":"497:65:101","nodeType":"YulAssignment","src":"497:65:101","value":{"arguments":[{"name":"value","nativeSrc":"512:5:101","nodeType":"YulIdentifier","src":"512:5:101"},{"kind":"number","nativeSrc":"519:42:101","nodeType":"YulLiteral","src":"519:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:101","nodeType":"YulIdentifier","src":"508:3:101"},"nativeSrc":"508:54:101","nodeType":"YulFunctionCall","src":"508:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:101","nodeType":"YulIdentifier","src":"497:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:101","nodeType":"YulTypedName","src":"469:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:101","nodeType":"YulTypedName","src":"479:7:101","type":""}],"src":"442:126:101"},{"body":{"nativeSrc":"619:51:101","nodeType":"YulBlock","src":"619:51:101","statements":[{"nativeSrc":"629:35:101","nodeType":"YulAssignment","src":"629:35:101","value":{"arguments":[{"name":"value","nativeSrc":"658:5:101","nodeType":"YulIdentifier","src":"658:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"640:17:101","nodeType":"YulIdentifier","src":"640:17:101"},"nativeSrc":"640:24:101","nodeType":"YulFunctionCall","src":"640:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"629:7:101","nodeType":"YulIdentifier","src":"629:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"574:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"601:5:101","nodeType":"YulTypedName","src":"601:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"611:7:101","nodeType":"YulTypedName","src":"611:7:101","type":""}],"src":"574:96:101"},{"body":{"nativeSrc":"741:53:101","nodeType":"YulBlock","src":"741:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"758:3:101","nodeType":"YulIdentifier","src":"758:3:101"},{"arguments":[{"name":"value","nativeSrc":"781:5:101","nodeType":"YulIdentifier","src":"781:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"763:17:101","nodeType":"YulIdentifier","src":"763:17:101"},"nativeSrc":"763:24:101","nodeType":"YulFunctionCall","src":"763:24:101"}],"functionName":{"name":"mstore","nativeSrc":"751:6:101","nodeType":"YulIdentifier","src":"751:6:101"},"nativeSrc":"751:37:101","nodeType":"YulFunctionCall","src":"751:37:101"},"nativeSrc":"751:37:101","nodeType":"YulExpressionStatement","src":"751:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"676:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"729:5:101","nodeType":"YulTypedName","src":"729:5:101","type":""},{"name":"pos","nativeSrc":"736:3:101","nodeType":"YulTypedName","src":"736:3:101","type":""}],"src":"676:118:101"},{"body":{"nativeSrc":"898:124:101","nodeType":"YulBlock","src":"898:124:101","statements":[{"nativeSrc":"908:26:101","nodeType":"YulAssignment","src":"908:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"920:9:101","nodeType":"YulIdentifier","src":"920:9:101"},{"kind":"number","nativeSrc":"931:2:101","nodeType":"YulLiteral","src":"931:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"916:3:101","nodeType":"YulIdentifier","src":"916:3:101"},"nativeSrc":"916:18:101","nodeType":"YulFunctionCall","src":"916:18:101"},"variableNames":[{"name":"tail","nativeSrc":"908:4:101","nodeType":"YulIdentifier","src":"908:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"988:6:101","nodeType":"YulIdentifier","src":"988:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1001:9:101","nodeType":"YulIdentifier","src":"1001:9:101"},{"kind":"number","nativeSrc":"1012:1:101","nodeType":"YulLiteral","src":"1012:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"997:3:101","nodeType":"YulIdentifier","src":"997:3:101"},"nativeSrc":"997:17:101","nodeType":"YulFunctionCall","src":"997:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"944:43:101","nodeType":"YulIdentifier","src":"944:43:101"},"nativeSrc":"944:71:101","nodeType":"YulFunctionCall","src":"944:71:101"},"nativeSrc":"944:71:101","nodeType":"YulExpressionStatement","src":"944:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"800:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"870:9:101","nodeType":"YulTypedName","src":"870:9:101","type":""},{"name":"value0","nativeSrc":"882:6:101","nodeType":"YulTypedName","src":"882:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"893:4:101","nodeType":"YulTypedName","src":"893:4:101","type":""}],"src":"800:222:101"},{"body":{"nativeSrc":"1068:35:101","nodeType":"YulBlock","src":"1068:35:101","statements":[{"nativeSrc":"1078:19:101","nodeType":"YulAssignment","src":"1078:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1094:2:101","nodeType":"YulLiteral","src":"1094:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1088:5:101","nodeType":"YulIdentifier","src":"1088:5:101"},"nativeSrc":"1088:9:101","nodeType":"YulFunctionCall","src":"1088:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1078:6:101","nodeType":"YulIdentifier","src":"1078:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1028:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1061:6:101","nodeType":"YulTypedName","src":"1061:6:101","type":""}],"src":"1028:75:101"},{"body":{"nativeSrc":"1198:28:101","nodeType":"YulBlock","src":"1198:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1215:1:101","nodeType":"YulLiteral","src":"1215:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1218:1:101","nodeType":"YulLiteral","src":"1218:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1208:6:101","nodeType":"YulIdentifier","src":"1208:6:101"},"nativeSrc":"1208:12:101","nodeType":"YulFunctionCall","src":"1208:12:101"},"nativeSrc":"1208:12:101","nodeType":"YulExpressionStatement","src":"1208:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1109:117:101","nodeType":"YulFunctionDefinition","src":"1109:117:101"},{"body":{"nativeSrc":"1321:28:101","nodeType":"YulBlock","src":"1321:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1338:1:101","nodeType":"YulLiteral","src":"1338:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1331:6:101","nodeType":"YulIdentifier","src":"1331:6:101"},"nativeSrc":"1331:12:101","nodeType":"YulFunctionCall","src":"1331:12:101"},"nativeSrc":"1331:12:101","nodeType":"YulExpressionStatement","src":"1331:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1232:117:101","nodeType":"YulFunctionDefinition","src":"1232:117:101"},{"body":{"nativeSrc":"1398:79:101","nodeType":"YulBlock","src":"1398:79:101","statements":[{"body":{"nativeSrc":"1455:16:101","nodeType":"YulBlock","src":"1455:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1464:1:101","nodeType":"YulLiteral","src":"1464:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1467:1:101","nodeType":"YulLiteral","src":"1467:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1457:6:101","nodeType":"YulIdentifier","src":"1457:6:101"},"nativeSrc":"1457:12:101","nodeType":"YulFunctionCall","src":"1457:12:101"},"nativeSrc":"1457:12:101","nodeType":"YulExpressionStatement","src":"1457:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1421:5:101","nodeType":"YulIdentifier","src":"1421:5:101"},{"arguments":[{"name":"value","nativeSrc":"1446:5:101","nodeType":"YulIdentifier","src":"1446:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1428:17:101","nodeType":"YulIdentifier","src":"1428:17:101"},"nativeSrc":"1428:24:101","nodeType":"YulFunctionCall","src":"1428:24:101"}],"functionName":{"name":"eq","nativeSrc":"1418:2:101","nodeType":"YulIdentifier","src":"1418:2:101"},"nativeSrc":"1418:35:101","nodeType":"YulFunctionCall","src":"1418:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1411:6:101","nodeType":"YulIdentifier","src":"1411:6:101"},"nativeSrc":"1411:43:101","nodeType":"YulFunctionCall","src":"1411:43:101"},"nativeSrc":"1408:63:101","nodeType":"YulIf","src":"1408:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1355:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1391:5:101","nodeType":"YulTypedName","src":"1391:5:101","type":""}],"src":"1355:122:101"},{"body":{"nativeSrc":"1535:87:101","nodeType":"YulBlock","src":"1535:87:101","statements":[{"nativeSrc":"1545:29:101","nodeType":"YulAssignment","src":"1545:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1567:6:101","nodeType":"YulIdentifier","src":"1567:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1554:12:101","nodeType":"YulIdentifier","src":"1554:12:101"},"nativeSrc":"1554:20:101","nodeType":"YulFunctionCall","src":"1554:20:101"},"variableNames":[{"name":"value","nativeSrc":"1545:5:101","nodeType":"YulIdentifier","src":"1545:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1610:5:101","nodeType":"YulIdentifier","src":"1610:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1583:26:101","nodeType":"YulIdentifier","src":"1583:26:101"},"nativeSrc":"1583:33:101","nodeType":"YulFunctionCall","src":"1583:33:101"},"nativeSrc":"1583:33:101","nodeType":"YulExpressionStatement","src":"1583:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1483:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1513:6:101","nodeType":"YulTypedName","src":"1513:6:101","type":""},{"name":"end","nativeSrc":"1521:3:101","nodeType":"YulTypedName","src":"1521:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1529:5:101","nodeType":"YulTypedName","src":"1529:5:101","type":""}],"src":"1483:139:101"},{"body":{"nativeSrc":"1694:263:101","nodeType":"YulBlock","src":"1694:263:101","statements":[{"body":{"nativeSrc":"1740:83:101","nodeType":"YulBlock","src":"1740:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1742:77:101","nodeType":"YulIdentifier","src":"1742:77:101"},"nativeSrc":"1742:79:101","nodeType":"YulFunctionCall","src":"1742:79:101"},"nativeSrc":"1742:79:101","nodeType":"YulExpressionStatement","src":"1742:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1715:7:101","nodeType":"YulIdentifier","src":"1715:7:101"},{"name":"headStart","nativeSrc":"1724:9:101","nodeType":"YulIdentifier","src":"1724:9:101"}],"functionName":{"name":"sub","nativeSrc":"1711:3:101","nodeType":"YulIdentifier","src":"1711:3:101"},"nativeSrc":"1711:23:101","nodeType":"YulFunctionCall","src":"1711:23:101"},{"kind":"number","nativeSrc":"1736:2:101","nodeType":"YulLiteral","src":"1736:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1707:3:101","nodeType":"YulIdentifier","src":"1707:3:101"},"nativeSrc":"1707:32:101","nodeType":"YulFunctionCall","src":"1707:32:101"},"nativeSrc":"1704:119:101","nodeType":"YulIf","src":"1704:119:101"},{"nativeSrc":"1833:117:101","nodeType":"YulBlock","src":"1833:117:101","statements":[{"nativeSrc":"1848:15:101","nodeType":"YulVariableDeclaration","src":"1848:15:101","value":{"kind":"number","nativeSrc":"1862:1:101","nodeType":"YulLiteral","src":"1862:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1852:6:101","nodeType":"YulTypedName","src":"1852:6:101","type":""}]},{"nativeSrc":"1877:63:101","nodeType":"YulAssignment","src":"1877:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1912:9:101","nodeType":"YulIdentifier","src":"1912:9:101"},{"name":"offset","nativeSrc":"1923:6:101","nodeType":"YulIdentifier","src":"1923:6:101"}],"functionName":{"name":"add","nativeSrc":"1908:3:101","nodeType":"YulIdentifier","src":"1908:3:101"},"nativeSrc":"1908:22:101","nodeType":"YulFunctionCall","src":"1908:22:101"},{"name":"dataEnd","nativeSrc":"1932:7:101","nodeType":"YulIdentifier","src":"1932:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1887:20:101","nodeType":"YulIdentifier","src":"1887:20:101"},"nativeSrc":"1887:53:101","nodeType":"YulFunctionCall","src":"1887:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1877:6:101","nodeType":"YulIdentifier","src":"1877:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1628:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1664:9:101","nodeType":"YulTypedName","src":"1664:9:101","type":""},{"name":"dataEnd","nativeSrc":"1675:7:101","nodeType":"YulTypedName","src":"1675:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1687:6:101","nodeType":"YulTypedName","src":"1687:6:101","type":""}],"src":"1628:329:101"},{"body":{"nativeSrc":"1995:28:101","nodeType":"YulBlock","src":"1995:28:101","statements":[{"nativeSrc":"2005:12:101","nodeType":"YulAssignment","src":"2005:12:101","value":{"name":"value","nativeSrc":"2012:5:101","nodeType":"YulIdentifier","src":"2012:5:101"},"variableNames":[{"name":"ret","nativeSrc":"2005:3:101","nodeType":"YulIdentifier","src":"2005:3:101"}]}]},"name":"identity","nativeSrc":"1963:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1981:5:101","nodeType":"YulTypedName","src":"1981:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1991:3:101","nodeType":"YulTypedName","src":"1991:3:101","type":""}],"src":"1963:60:101"},{"body":{"nativeSrc":"2089:82:101","nodeType":"YulBlock","src":"2089:82:101","statements":[{"nativeSrc":"2099:66:101","nodeType":"YulAssignment","src":"2099:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2157:5:101","nodeType":"YulIdentifier","src":"2157:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2139:17:101","nodeType":"YulIdentifier","src":"2139:17:101"},"nativeSrc":"2139:24:101","nodeType":"YulFunctionCall","src":"2139:24:101"}],"functionName":{"name":"identity","nativeSrc":"2130:8:101","nodeType":"YulIdentifier","src":"2130:8:101"},"nativeSrc":"2130:34:101","nodeType":"YulFunctionCall","src":"2130:34:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2112:17:101","nodeType":"YulIdentifier","src":"2112:17:101"},"nativeSrc":"2112:53:101","nodeType":"YulFunctionCall","src":"2112:53:101"},"variableNames":[{"name":"converted","nativeSrc":"2099:9:101","nodeType":"YulIdentifier","src":"2099:9:101"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2029:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:101","nodeType":"YulTypedName","src":"2069:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2079:9:101","nodeType":"YulTypedName","src":"2079:9:101","type":""}],"src":"2029:142:101"},{"body":{"nativeSrc":"2237:66:101","nodeType":"YulBlock","src":"2237:66:101","statements":[{"nativeSrc":"2247:50:101","nodeType":"YulAssignment","src":"2247:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2291:5:101","nodeType":"YulIdentifier","src":"2291:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2260:30:101","nodeType":"YulIdentifier","src":"2260:30:101"},"nativeSrc":"2260:37:101","nodeType":"YulFunctionCall","src":"2260:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2247:9:101","nodeType":"YulIdentifier","src":"2247:9:101"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2177:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2217:5:101","nodeType":"YulTypedName","src":"2217:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2227:9:101","nodeType":"YulTypedName","src":"2227:9:101","type":""}],"src":"2177:126:101"},{"body":{"nativeSrc":"2401:66:101","nodeType":"YulBlock","src":"2401:66:101","statements":[{"nativeSrc":"2411:50:101","nodeType":"YulAssignment","src":"2411:50:101","value":{"arguments":[{"name":"value","nativeSrc":"2455:5:101","nodeType":"YulIdentifier","src":"2455:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2424:30:101","nodeType":"YulIdentifier","src":"2424:30:101"},"nativeSrc":"2424:37:101","nodeType":"YulFunctionCall","src":"2424:37:101"},"variableNames":[{"name":"converted","nativeSrc":"2411:9:101","nodeType":"YulIdentifier","src":"2411:9:101"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2309:158:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2381:5:101","nodeType":"YulTypedName","src":"2381:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2391:9:101","nodeType":"YulTypedName","src":"2391:9:101","type":""}],"src":"2309:158:101"},{"body":{"nativeSrc":"2570:98:101","nodeType":"YulBlock","src":"2570:98:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2587:3:101","nodeType":"YulIdentifier","src":"2587:3:101"},{"arguments":[{"name":"value","nativeSrc":"2655:5:101","nodeType":"YulIdentifier","src":"2655:5:101"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address","nativeSrc":"2592:62:101","nodeType":"YulIdentifier","src":"2592:62:101"},"nativeSrc":"2592:69:101","nodeType":"YulFunctionCall","src":"2592:69:101"}],"functionName":{"name":"mstore","nativeSrc":"2580:6:101","nodeType":"YulIdentifier","src":"2580:6:101"},"nativeSrc":"2580:82:101","nodeType":"YulFunctionCall","src":"2580:82:101"},"nativeSrc":"2580:82:101","nodeType":"YulExpressionStatement","src":"2580:82:101"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2473:195:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2558:5:101","nodeType":"YulTypedName","src":"2558:5:101","type":""},{"name":"pos","nativeSrc":"2565:3:101","nodeType":"YulTypedName","src":"2565:3:101","type":""}],"src":"2473:195:101"},{"body":{"nativeSrc":"2804:156:101","nodeType":"YulBlock","src":"2804:156:101","statements":[{"nativeSrc":"2814:26:101","nodeType":"YulAssignment","src":"2814:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2826:9:101","nodeType":"YulIdentifier","src":"2826:9:101"},{"kind":"number","nativeSrc":"2837:2:101","nodeType":"YulLiteral","src":"2837:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2822:3:101","nodeType":"YulIdentifier","src":"2822:3:101"},"nativeSrc":"2822:18:101","nodeType":"YulFunctionCall","src":"2822:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2814:4:101","nodeType":"YulIdentifier","src":"2814:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2926:6:101","nodeType":"YulIdentifier","src":"2926:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2939:9:101","nodeType":"YulIdentifier","src":"2939:9:101"},{"kind":"number","nativeSrc":"2950:1:101","nodeType":"YulLiteral","src":"2950:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2935:3:101","nodeType":"YulIdentifier","src":"2935:3:101"},"nativeSrc":"2935:17:101","nodeType":"YulFunctionCall","src":"2935:17:101"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack","nativeSrc":"2850:75:101","nodeType":"YulIdentifier","src":"2850:75:101"},"nativeSrc":"2850:103:101","nodeType":"YulFunctionCall","src":"2850:103:101"},"nativeSrc":"2850:103:101","nodeType":"YulExpressionStatement","src":"2850:103:101"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed","nativeSrc":"2674:286:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2776:9:101","nodeType":"YulTypedName","src":"2776:9:101","type":""},{"name":"value0","nativeSrc":"2788:6:101","nodeType":"YulTypedName","src":"2788:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2799:4:101","nodeType":"YulTypedName","src":"2799:4:101","type":""}],"src":"2674:286:101"},{"body":{"nativeSrc":"3009:79:101","nodeType":"YulBlock","src":"3009:79:101","statements":[{"body":{"nativeSrc":"3066:16:101","nodeType":"YulBlock","src":"3066:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:101","nodeType":"YulLiteral","src":"3075:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:101","nodeType":"YulLiteral","src":"3078:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:101","nodeType":"YulIdentifier","src":"3068:6:101"},"nativeSrc":"3068:12:101","nodeType":"YulFunctionCall","src":"3068:12:101"},"nativeSrc":"3068:12:101","nodeType":"YulExpressionStatement","src":"3068:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3032:5:101","nodeType":"YulIdentifier","src":"3032:5:101"},{"arguments":[{"name":"value","nativeSrc":"3057:5:101","nodeType":"YulIdentifier","src":"3057:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3039:17:101","nodeType":"YulIdentifier","src":"3039:17:101"},"nativeSrc":"3039:24:101","nodeType":"YulFunctionCall","src":"3039:24:101"}],"functionName":{"name":"eq","nativeSrc":"3029:2:101","nodeType":"YulIdentifier","src":"3029:2:101"},"nativeSrc":"3029:35:101","nodeType":"YulFunctionCall","src":"3029:35:101"}],"functionName":{"name":"iszero","nativeSrc":"3022:6:101","nodeType":"YulIdentifier","src":"3022:6:101"},"nativeSrc":"3022:43:101","nodeType":"YulFunctionCall","src":"3022:43:101"},"nativeSrc":"3019:63:101","nodeType":"YulIf","src":"3019:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2966:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3002:5:101","nodeType":"YulTypedName","src":"3002:5:101","type":""}],"src":"2966:122:101"},{"body":{"nativeSrc":"3146:87:101","nodeType":"YulBlock","src":"3146:87:101","statements":[{"nativeSrc":"3156:29:101","nodeType":"YulAssignment","src":"3156:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"3178:6:101","nodeType":"YulIdentifier","src":"3178:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"3165:12:101","nodeType":"YulIdentifier","src":"3165:12:101"},"nativeSrc":"3165:20:101","nodeType":"YulFunctionCall","src":"3165:20:101"},"variableNames":[{"name":"value","nativeSrc":"3156:5:101","nodeType":"YulIdentifier","src":"3156:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3221:5:101","nodeType":"YulIdentifier","src":"3221:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3194:26:101","nodeType":"YulIdentifier","src":"3194:26:101"},"nativeSrc":"3194:33:101","nodeType":"YulFunctionCall","src":"3194:33:101"},"nativeSrc":"3194:33:101","nodeType":"YulExpressionStatement","src":"3194:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"3094:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3124:6:101","nodeType":"YulTypedName","src":"3124:6:101","type":""},{"name":"end","nativeSrc":"3132:3:101","nodeType":"YulTypedName","src":"3132:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3140:5:101","nodeType":"YulTypedName","src":"3140:5:101","type":""}],"src":"3094:139:101"},{"body":{"nativeSrc":"3305:263:101","nodeType":"YulBlock","src":"3305:263:101","statements":[{"body":{"nativeSrc":"3351:83:101","nodeType":"YulBlock","src":"3351:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3353:77:101","nodeType":"YulIdentifier","src":"3353:77:101"},"nativeSrc":"3353:79:101","nodeType":"YulFunctionCall","src":"3353:79:101"},"nativeSrc":"3353:79:101","nodeType":"YulExpressionStatement","src":"3353:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3326:7:101","nodeType":"YulIdentifier","src":"3326:7:101"},{"name":"headStart","nativeSrc":"3335:9:101","nodeType":"YulIdentifier","src":"3335:9:101"}],"functionName":{"name":"sub","nativeSrc":"3322:3:101","nodeType":"YulIdentifier","src":"3322:3:101"},"nativeSrc":"3322:23:101","nodeType":"YulFunctionCall","src":"3322:23:101"},{"kind":"number","nativeSrc":"3347:2:101","nodeType":"YulLiteral","src":"3347:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3318:3:101","nodeType":"YulIdentifier","src":"3318:3:101"},"nativeSrc":"3318:32:101","nodeType":"YulFunctionCall","src":"3318:32:101"},"nativeSrc":"3315:119:101","nodeType":"YulIf","src":"3315:119:101"},{"nativeSrc":"3444:117:101","nodeType":"YulBlock","src":"3444:117:101","statements":[{"nativeSrc":"3459:15:101","nodeType":"YulVariableDeclaration","src":"3459:15:101","value":{"kind":"number","nativeSrc":"3473:1:101","nodeType":"YulLiteral","src":"3473:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulTypedName","src":"3463:6:101","type":""}]},{"nativeSrc":"3488:63:101","nodeType":"YulAssignment","src":"3488:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3523:9:101","nodeType":"YulIdentifier","src":"3523:9:101"},{"name":"offset","nativeSrc":"3534:6:101","nodeType":"YulIdentifier","src":"3534:6:101"}],"functionName":{"name":"add","nativeSrc":"3519:3:101","nodeType":"YulIdentifier","src":"3519:3:101"},"nativeSrc":"3519:22:101","nodeType":"YulFunctionCall","src":"3519:22:101"},{"name":"dataEnd","nativeSrc":"3543:7:101","nodeType":"YulIdentifier","src":"3543:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3498:20:101","nodeType":"YulIdentifier","src":"3498:20:101"},"nativeSrc":"3498:53:101","nodeType":"YulFunctionCall","src":"3498:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3488:6:101","nodeType":"YulIdentifier","src":"3488:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3239:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3275:9:101","nodeType":"YulTypedName","src":"3275:9:101","type":""},{"name":"dataEnd","nativeSrc":"3286:7:101","nodeType":"YulTypedName","src":"3286:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3298:6:101","nodeType":"YulTypedName","src":"3298:6:101","type":""}],"src":"3239:329:101"},{"body":{"nativeSrc":"3657:391:101","nodeType":"YulBlock","src":"3657:391:101","statements":[{"body":{"nativeSrc":"3703:83:101","nodeType":"YulBlock","src":"3703:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3705:77:101","nodeType":"YulIdentifier","src":"3705:77:101"},"nativeSrc":"3705:79:101","nodeType":"YulFunctionCall","src":"3705:79:101"},"nativeSrc":"3705:79:101","nodeType":"YulExpressionStatement","src":"3705:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3678:7:101","nodeType":"YulIdentifier","src":"3678:7:101"},{"name":"headStart","nativeSrc":"3687:9:101","nodeType":"YulIdentifier","src":"3687:9:101"}],"functionName":{"name":"sub","nativeSrc":"3674:3:101","nodeType":"YulIdentifier","src":"3674:3:101"},"nativeSrc":"3674:23:101","nodeType":"YulFunctionCall","src":"3674:23:101"},{"kind":"number","nativeSrc":"3699:2:101","nodeType":"YulLiteral","src":"3699:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3670:3:101","nodeType":"YulIdentifier","src":"3670:3:101"},"nativeSrc":"3670:32:101","nodeType":"YulFunctionCall","src":"3670:32:101"},"nativeSrc":"3667:119:101","nodeType":"YulIf","src":"3667:119:101"},{"nativeSrc":"3796:117:101","nodeType":"YulBlock","src":"3796:117:101","statements":[{"nativeSrc":"3811:15:101","nodeType":"YulVariableDeclaration","src":"3811:15:101","value":{"kind":"number","nativeSrc":"3825:1:101","nodeType":"YulLiteral","src":"3825:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3815:6:101","nodeType":"YulTypedName","src":"3815:6:101","type":""}]},{"nativeSrc":"3840:63:101","nodeType":"YulAssignment","src":"3840:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3875:9:101","nodeType":"YulIdentifier","src":"3875:9:101"},{"name":"offset","nativeSrc":"3886:6:101","nodeType":"YulIdentifier","src":"3886:6:101"}],"functionName":{"name":"add","nativeSrc":"3871:3:101","nodeType":"YulIdentifier","src":"3871:3:101"},"nativeSrc":"3871:22:101","nodeType":"YulFunctionCall","src":"3871:22:101"},{"name":"dataEnd","nativeSrc":"3895:7:101","nodeType":"YulIdentifier","src":"3895:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3850:20:101","nodeType":"YulIdentifier","src":"3850:20:101"},"nativeSrc":"3850:53:101","nodeType":"YulFunctionCall","src":"3850:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3840:6:101","nodeType":"YulIdentifier","src":"3840:6:101"}]}]},{"nativeSrc":"3923:118:101","nodeType":"YulBlock","src":"3923:118:101","statements":[{"nativeSrc":"3938:16:101","nodeType":"YulVariableDeclaration","src":"3938:16:101","value":{"kind":"number","nativeSrc":"3952:2:101","nodeType":"YulLiteral","src":"3952:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3942:6:101","nodeType":"YulTypedName","src":"3942:6:101","type":""}]},{"nativeSrc":"3968:63:101","nodeType":"YulAssignment","src":"3968:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4003:9:101","nodeType":"YulIdentifier","src":"4003:9:101"},{"name":"offset","nativeSrc":"4014:6:101","nodeType":"YulIdentifier","src":"4014:6:101"}],"functionName":{"name":"add","nativeSrc":"3999:3:101","nodeType":"YulIdentifier","src":"3999:3:101"},"nativeSrc":"3999:22:101","nodeType":"YulFunctionCall","src":"3999:22:101"},{"name":"dataEnd","nativeSrc":"4023:7:101","nodeType":"YulIdentifier","src":"4023:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3978:20:101","nodeType":"YulIdentifier","src":"3978:20:101"},"nativeSrc":"3978:53:101","nodeType":"YulFunctionCall","src":"3978:53:101"},"variableNames":[{"name":"value1","nativeSrc":"3968:6:101","nodeType":"YulIdentifier","src":"3968:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"3574:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3619:9:101","nodeType":"YulTypedName","src":"3619:9:101","type":""},{"name":"dataEnd","nativeSrc":"3630:7:101","nodeType":"YulTypedName","src":"3630:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3642:6:101","nodeType":"YulTypedName","src":"3642:6:101","type":""},{"name":"value1","nativeSrc":"3650:6:101","nodeType":"YulTypedName","src":"3650:6:101","type":""}],"src":"3574:474:101"},{"body":{"nativeSrc":"4096:48:101","nodeType":"YulBlock","src":"4096:48:101","statements":[{"nativeSrc":"4106:32:101","nodeType":"YulAssignment","src":"4106:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4131:5:101","nodeType":"YulIdentifier","src":"4131:5:101"}],"functionName":{"name":"iszero","nativeSrc":"4124:6:101","nodeType":"YulIdentifier","src":"4124:6:101"},"nativeSrc":"4124:13:101","nodeType":"YulFunctionCall","src":"4124:13:101"}],"functionName":{"name":"iszero","nativeSrc":"4117:6:101","nodeType":"YulIdentifier","src":"4117:6:101"},"nativeSrc":"4117:21:101","nodeType":"YulFunctionCall","src":"4117:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4106:7:101","nodeType":"YulIdentifier","src":"4106:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"4054:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4078:5:101","nodeType":"YulTypedName","src":"4078:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4088:7:101","nodeType":"YulTypedName","src":"4088:7:101","type":""}],"src":"4054:90:101"},{"body":{"nativeSrc":"4209:50:101","nodeType":"YulBlock","src":"4209:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4226:3:101","nodeType":"YulIdentifier","src":"4226:3:101"},{"arguments":[{"name":"value","nativeSrc":"4246:5:101","nodeType":"YulIdentifier","src":"4246:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4231:14:101","nodeType":"YulIdentifier","src":"4231:14:101"},"nativeSrc":"4231:21:101","nodeType":"YulFunctionCall","src":"4231:21:101"}],"functionName":{"name":"mstore","nativeSrc":"4219:6:101","nodeType":"YulIdentifier","src":"4219:6:101"},"nativeSrc":"4219:34:101","nodeType":"YulFunctionCall","src":"4219:34:101"},"nativeSrc":"4219:34:101","nodeType":"YulExpressionStatement","src":"4219:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4150:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4197:5:101","nodeType":"YulTypedName","src":"4197:5:101","type":""},{"name":"pos","nativeSrc":"4204:3:101","nodeType":"YulTypedName","src":"4204:3:101","type":""}],"src":"4150:109:101"},{"body":{"nativeSrc":"4357:118:101","nodeType":"YulBlock","src":"4357:118:101","statements":[{"nativeSrc":"4367:26:101","nodeType":"YulAssignment","src":"4367:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4379:9:101","nodeType":"YulIdentifier","src":"4379:9:101"},{"kind":"number","nativeSrc":"4390:2:101","nodeType":"YulLiteral","src":"4390:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4375:3:101","nodeType":"YulIdentifier","src":"4375:3:101"},"nativeSrc":"4375:18:101","nodeType":"YulFunctionCall","src":"4375:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4367:4:101","nodeType":"YulIdentifier","src":"4367:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4441:6:101","nodeType":"YulIdentifier","src":"4441:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4454:9:101","nodeType":"YulIdentifier","src":"4454:9:101"},{"kind":"number","nativeSrc":"4465:1:101","nodeType":"YulLiteral","src":"4465:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4450:3:101","nodeType":"YulIdentifier","src":"4450:3:101"},"nativeSrc":"4450:17:101","nodeType":"YulFunctionCall","src":"4450:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4403:37:101","nodeType":"YulIdentifier","src":"4403:37:101"},"nativeSrc":"4403:65:101","nodeType":"YulFunctionCall","src":"4403:65:101"},"nativeSrc":"4403:65:101","nodeType":"YulExpressionStatement","src":"4403:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4265:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4329:9:101","nodeType":"YulTypedName","src":"4329:9:101","type":""},{"name":"value0","nativeSrc":"4341:6:101","nodeType":"YulTypedName","src":"4341:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4352:4:101","nodeType":"YulTypedName","src":"4352:4:101","type":""}],"src":"4265:210:101"},{"body":{"nativeSrc":"4574:66:101","nodeType":"YulBlock","src":"4574:66:101","statements":[{"nativeSrc":"4584:50:101","nodeType":"YulAssignment","src":"4584:50:101","value":{"arguments":[{"name":"value","nativeSrc":"4628:5:101","nodeType":"YulIdentifier","src":"4628:5:101"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4597:30:101","nodeType":"YulIdentifier","src":"4597:30:101"},"nativeSrc":"4597:37:101","nodeType":"YulFunctionCall","src":"4597:37:101"},"variableNames":[{"name":"converted","nativeSrc":"4584:9:101","nodeType":"YulIdentifier","src":"4584:9:101"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4481:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4554:5:101","nodeType":"YulTypedName","src":"4554:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4564:9:101","nodeType":"YulTypedName","src":"4564:9:101","type":""}],"src":"4481:159:101"},{"body":{"nativeSrc":"4744:99:101","nodeType":"YulBlock","src":"4744:99:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:101","nodeType":"YulIdentifier","src":"4761:3:101"},{"arguments":[{"name":"value","nativeSrc":"4830:5:101","nodeType":"YulIdentifier","src":"4830:5:101"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$3686_to_t_address","nativeSrc":"4766:63:101","nodeType":"YulIdentifier","src":"4766:63:101"},"nativeSrc":"4766:70:101","nodeType":"YulFunctionCall","src":"4766:70:101"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:101","nodeType":"YulIdentifier","src":"4754:6:101"},"nativeSrc":"4754:83:101","nodeType":"YulFunctionCall","src":"4754:83:101"},"nativeSrc":"4754:83:101","nodeType":"YulExpressionStatement","src":"4754:83:101"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"4646:197:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:101","nodeType":"YulTypedName","src":"4732:5:101","type":""},{"name":"pos","nativeSrc":"4739:3:101","nodeType":"YulTypedName","src":"4739:3:101","type":""}],"src":"4646:197:101"},{"body":{"nativeSrc":"4980:157:101","nodeType":"YulBlock","src":"4980:157:101","statements":[{"nativeSrc":"4990:26:101","nodeType":"YulAssignment","src":"4990:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5002:9:101","nodeType":"YulIdentifier","src":"5002:9:101"},{"kind":"number","nativeSrc":"5013:2:101","nodeType":"YulLiteral","src":"5013:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4998:3:101","nodeType":"YulIdentifier","src":"4998:3:101"},"nativeSrc":"4998:18:101","nodeType":"YulFunctionCall","src":"4998:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4990:4:101","nodeType":"YulIdentifier","src":"4990:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5103:6:101","nodeType":"YulIdentifier","src":"5103:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5116:9:101","nodeType":"YulIdentifier","src":"5116:9:101"},{"kind":"number","nativeSrc":"5127:1:101","nodeType":"YulLiteral","src":"5127:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5112:3:101","nodeType":"YulIdentifier","src":"5112:3:101"},"nativeSrc":"5112:17:101","nodeType":"YulFunctionCall","src":"5112:17:101"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack","nativeSrc":"5026:76:101","nodeType":"YulIdentifier","src":"5026:76:101"},"nativeSrc":"5026:104:101","nodeType":"YulFunctionCall","src":"5026:104:101"},"nativeSrc":"5026:104:101","nodeType":"YulExpressionStatement","src":"5026:104:101"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed","nativeSrc":"4849:288:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4952:9:101","nodeType":"YulTypedName","src":"4952:9:101","type":""},{"name":"value0","nativeSrc":"4964:6:101","nodeType":"YulTypedName","src":"4964:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:101","nodeType":"YulTypedName","src":"4975:4:101","type":""}],"src":"4849:288:101"},{"body":{"nativeSrc":"5171:152:101","nodeType":"YulBlock","src":"5171:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5188:1:101","nodeType":"YulLiteral","src":"5188:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5191:77:101","nodeType":"YulLiteral","src":"5191:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5181:6:101","nodeType":"YulIdentifier","src":"5181:6:101"},"nativeSrc":"5181:88:101","nodeType":"YulFunctionCall","src":"5181:88:101"},"nativeSrc":"5181:88:101","nodeType":"YulExpressionStatement","src":"5181:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5285:1:101","nodeType":"YulLiteral","src":"5285:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5288:4:101","nodeType":"YulLiteral","src":"5288:4:101","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:101","nodeType":"YulIdentifier","src":"5278:6:101"},"nativeSrc":"5278:15:101","nodeType":"YulFunctionCall","src":"5278:15:101"},"nativeSrc":"5278:15:101","nodeType":"YulExpressionStatement","src":"5278:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5309:1:101","nodeType":"YulLiteral","src":"5309:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5312:4:101","nodeType":"YulLiteral","src":"5312:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5302:6:101","nodeType":"YulIdentifier","src":"5302:6:101"},"nativeSrc":"5302:15:101","nodeType":"YulFunctionCall","src":"5302:15:101"},"nativeSrc":"5302:15:101","nodeType":"YulExpressionStatement","src":"5302:15:101"}]},"name":"panic_error_0x12","nativeSrc":"5143:180:101","nodeType":"YulFunctionDefinition","src":"5143:180:101"},{"body":{"nativeSrc":"5357:152:101","nodeType":"YulBlock","src":"5357:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5374:1:101","nodeType":"YulLiteral","src":"5374:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5377:77:101","nodeType":"YulLiteral","src":"5377:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5367:6:101","nodeType":"YulIdentifier","src":"5367:6:101"},"nativeSrc":"5367:88:101","nodeType":"YulFunctionCall","src":"5367:88:101"},"nativeSrc":"5367:88:101","nodeType":"YulExpressionStatement","src":"5367:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5471:1:101","nodeType":"YulLiteral","src":"5471:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5474:4:101","nodeType":"YulLiteral","src":"5474:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5464:6:101","nodeType":"YulIdentifier","src":"5464:6:101"},"nativeSrc":"5464:15:101","nodeType":"YulFunctionCall","src":"5464:15:101"},"nativeSrc":"5464:15:101","nodeType":"YulExpressionStatement","src":"5464:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5495:1:101","nodeType":"YulLiteral","src":"5495:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5498:4:101","nodeType":"YulLiteral","src":"5498:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5488:6:101","nodeType":"YulIdentifier","src":"5488:6:101"},"nativeSrc":"5488:15:101","nodeType":"YulFunctionCall","src":"5488:15:101"},"nativeSrc":"5488:15:101","nodeType":"YulExpressionStatement","src":"5488:15:101"}]},"name":"panic_error_0x11","nativeSrc":"5329:180:101","nodeType":"YulFunctionDefinition","src":"5329:180:101"},{"body":{"nativeSrc":"5557:143:101","nodeType":"YulBlock","src":"5557:143:101","statements":[{"nativeSrc":"5567:25:101","nodeType":"YulAssignment","src":"5567:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5590:1:101","nodeType":"YulIdentifier","src":"5590:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5572:17:101","nodeType":"YulIdentifier","src":"5572:17:101"},"nativeSrc":"5572:20:101","nodeType":"YulFunctionCall","src":"5572:20:101"},"variableNames":[{"name":"x","nativeSrc":"5567:1:101","nodeType":"YulIdentifier","src":"5567:1:101"}]},{"nativeSrc":"5601:25:101","nodeType":"YulAssignment","src":"5601:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5624:1:101","nodeType":"YulIdentifier","src":"5624:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5606:17:101","nodeType":"YulIdentifier","src":"5606:17:101"},"nativeSrc":"5606:20:101","nodeType":"YulFunctionCall","src":"5606:20:101"},"variableNames":[{"name":"y","nativeSrc":"5601:1:101","nodeType":"YulIdentifier","src":"5601:1:101"}]},{"body":{"nativeSrc":"5648:22:101","nodeType":"YulBlock","src":"5648:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"5650:16:101","nodeType":"YulIdentifier","src":"5650:16:101"},"nativeSrc":"5650:18:101","nodeType":"YulFunctionCall","src":"5650:18:101"},"nativeSrc":"5650:18:101","nodeType":"YulExpressionStatement","src":"5650:18:101"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"5645:1:101","nodeType":"YulIdentifier","src":"5645:1:101"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:101","nodeType":"YulIdentifier","src":"5638:6:101"},"nativeSrc":"5638:9:101","nodeType":"YulFunctionCall","src":"5638:9:101"},"nativeSrc":"5635:35:101","nodeType":"YulIf","src":"5635:35:101"},{"nativeSrc":"5680:14:101","nodeType":"YulAssignment","src":"5680:14:101","value":{"arguments":[{"name":"x","nativeSrc":"5689:1:101","nodeType":"YulIdentifier","src":"5689:1:101"},{"name":"y","nativeSrc":"5692:1:101","nodeType":"YulIdentifier","src":"5692:1:101"}],"functionName":{"name":"div","nativeSrc":"5685:3:101","nodeType":"YulIdentifier","src":"5685:3:101"},"nativeSrc":"5685:9:101","nodeType":"YulFunctionCall","src":"5685:9:101"},"variableNames":[{"name":"r","nativeSrc":"5680:1:101","nodeType":"YulIdentifier","src":"5680:1:101"}]}]},"name":"checked_div_t_uint256","nativeSrc":"5515:185:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5546:1:101","nodeType":"YulTypedName","src":"5546:1:101","type":""},{"name":"y","nativeSrc":"5549:1:101","nodeType":"YulTypedName","src":"5549:1:101","type":""}],"returnVariables":[{"name":"r","nativeSrc":"5555:1:101","nodeType":"YulTypedName","src":"5555:1:101","type":""}],"src":"5515:185:101"},{"body":{"nativeSrc":"5751:149:101","nodeType":"YulBlock","src":"5751:149:101","statements":[{"nativeSrc":"5761:25:101","nodeType":"YulAssignment","src":"5761:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5784:1:101","nodeType":"YulIdentifier","src":"5784:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5766:17:101","nodeType":"YulIdentifier","src":"5766:17:101"},"nativeSrc":"5766:20:101","nodeType":"YulFunctionCall","src":"5766:20:101"},"variableNames":[{"name":"x","nativeSrc":"5761:1:101","nodeType":"YulIdentifier","src":"5761:1:101"}]},{"nativeSrc":"5795:25:101","nodeType":"YulAssignment","src":"5795:25:101","value":{"arguments":[{"name":"y","nativeSrc":"5818:1:101","nodeType":"YulIdentifier","src":"5818:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5800:17:101","nodeType":"YulIdentifier","src":"5800:17:101"},"nativeSrc":"5800:20:101","nodeType":"YulFunctionCall","src":"5800:20:101"},"variableNames":[{"name":"y","nativeSrc":"5795:1:101","nodeType":"YulIdentifier","src":"5795:1:101"}]},{"nativeSrc":"5829:17:101","nodeType":"YulAssignment","src":"5829:17:101","value":{"arguments":[{"name":"x","nativeSrc":"5841:1:101","nodeType":"YulIdentifier","src":"5841:1:101"},{"name":"y","nativeSrc":"5844:1:101","nodeType":"YulIdentifier","src":"5844:1:101"}],"functionName":{"name":"sub","nativeSrc":"5837:3:101","nodeType":"YulIdentifier","src":"5837:3:101"},"nativeSrc":"5837:9:101","nodeType":"YulFunctionCall","src":"5837:9:101"},"variableNames":[{"name":"diff","nativeSrc":"5829:4:101","nodeType":"YulIdentifier","src":"5829:4:101"}]},{"body":{"nativeSrc":"5871:22:101","nodeType":"YulBlock","src":"5871:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"5873:16:101","nodeType":"YulIdentifier","src":"5873:16:101"},"nativeSrc":"5873:18:101","nodeType":"YulFunctionCall","src":"5873:18:101"},"nativeSrc":"5873:18:101","nodeType":"YulExpressionStatement","src":"5873:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"5862:4:101","nodeType":"YulIdentifier","src":"5862:4:101"},{"name":"x","nativeSrc":"5868:1:101","nodeType":"YulIdentifier","src":"5868:1:101"}],"functionName":{"name":"gt","nativeSrc":"5859:2:101","nodeType":"YulIdentifier","src":"5859:2:101"},"nativeSrc":"5859:11:101","nodeType":"YulFunctionCall","src":"5859:11:101"},"nativeSrc":"5856:37:101","nodeType":"YulIf","src":"5856:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"5706:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5737:1:101","nodeType":"YulTypedName","src":"5737:1:101","type":""},{"name":"y","nativeSrc":"5740:1:101","nodeType":"YulTypedName","src":"5740:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"5746:4:101","nodeType":"YulTypedName","src":"5746:4:101","type":""}],"src":"5706:194:101"},{"body":{"nativeSrc":"5950:147:101","nodeType":"YulBlock","src":"5950:147:101","statements":[{"nativeSrc":"5960:25:101","nodeType":"YulAssignment","src":"5960:25:101","value":{"arguments":[{"name":"x","nativeSrc":"5983:1:101","nodeType":"YulIdentifier","src":"5983:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5965:17:101","nodeType":"YulIdentifier","src":"5965:17:101"},"nativeSrc":"5965:20:101","nodeType":"YulFunctionCall","src":"5965:20:101"},"variableNames":[{"name":"x","nativeSrc":"5960:1:101","nodeType":"YulIdentifier","src":"5960:1:101"}]},{"nativeSrc":"5994:25:101","nodeType":"YulAssignment","src":"5994:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6017:1:101","nodeType":"YulIdentifier","src":"6017:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5999:17:101","nodeType":"YulIdentifier","src":"5999:17:101"},"nativeSrc":"5999:20:101","nodeType":"YulFunctionCall","src":"5999:20:101"},"variableNames":[{"name":"y","nativeSrc":"5994:1:101","nodeType":"YulIdentifier","src":"5994:1:101"}]},{"nativeSrc":"6028:16:101","nodeType":"YulAssignment","src":"6028:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6039:1:101","nodeType":"YulIdentifier","src":"6039:1:101"},{"name":"y","nativeSrc":"6042:1:101","nodeType":"YulIdentifier","src":"6042:1:101"}],"functionName":{"name":"add","nativeSrc":"6035:3:101","nodeType":"YulIdentifier","src":"6035:3:101"},"nativeSrc":"6035:9:101","nodeType":"YulFunctionCall","src":"6035:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"}]},{"body":{"nativeSrc":"6068:22:101","nodeType":"YulBlock","src":"6068:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6070:16:101","nodeType":"YulIdentifier","src":"6070:16:101"},"nativeSrc":"6070:18:101","nodeType":"YulFunctionCall","src":"6070:18:101"},"nativeSrc":"6070:18:101","nodeType":"YulExpressionStatement","src":"6070:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6060:1:101","nodeType":"YulIdentifier","src":"6060:1:101"},{"name":"sum","nativeSrc":"6063:3:101","nodeType":"YulIdentifier","src":"6063:3:101"}],"functionName":{"name":"gt","nativeSrc":"6057:2:101","nodeType":"YulIdentifier","src":"6057:2:101"},"nativeSrc":"6057:10:101","nodeType":"YulFunctionCall","src":"6057:10:101"},"nativeSrc":"6054:36:101","nodeType":"YulIf","src":"6054:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"5906:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5937:1:101","nodeType":"YulTypedName","src":"5937:1:101","type":""},{"name":"y","nativeSrc":"5940:1:101","nodeType":"YulTypedName","src":"5940:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5946:3:101","nodeType":"YulTypedName","src":"5946:3:101","type":""}],"src":"5906:191:101"},{"body":{"nativeSrc":"6151:362:101","nodeType":"YulBlock","src":"6151:362:101","statements":[{"nativeSrc":"6161:25:101","nodeType":"YulAssignment","src":"6161:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6184:1:101","nodeType":"YulIdentifier","src":"6184:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6166:17:101","nodeType":"YulIdentifier","src":"6166:17:101"},"nativeSrc":"6166:20:101","nodeType":"YulFunctionCall","src":"6166:20:101"},"variableNames":[{"name":"x","nativeSrc":"6161:1:101","nodeType":"YulIdentifier","src":"6161:1:101"}]},{"nativeSrc":"6195:25:101","nodeType":"YulAssignment","src":"6195:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6218:1:101","nodeType":"YulIdentifier","src":"6218:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6200:17:101","nodeType":"YulIdentifier","src":"6200:17:101"},"nativeSrc":"6200:20:101","nodeType":"YulFunctionCall","src":"6200:20:101"},"variableNames":[{"name":"y","nativeSrc":"6195:1:101","nodeType":"YulIdentifier","src":"6195:1:101"}]},{"nativeSrc":"6229:28:101","nodeType":"YulVariableDeclaration","src":"6229:28:101","value":{"arguments":[{"name":"x","nativeSrc":"6252:1:101","nodeType":"YulIdentifier","src":"6252:1:101"},{"name":"y","nativeSrc":"6255:1:101","nodeType":"YulIdentifier","src":"6255:1:101"}],"functionName":{"name":"mul","nativeSrc":"6248:3:101","nodeType":"YulIdentifier","src":"6248:3:101"},"nativeSrc":"6248:9:101","nodeType":"YulFunctionCall","src":"6248:9:101"},"variables":[{"name":"product_raw","nativeSrc":"6233:11:101","nodeType":"YulTypedName","src":"6233:11:101","type":""}]},{"nativeSrc":"6266:41:101","nodeType":"YulAssignment","src":"6266:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"6295:11:101","nodeType":"YulIdentifier","src":"6295:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6277:17:101","nodeType":"YulIdentifier","src":"6277:17:101"},"nativeSrc":"6277:30:101","nodeType":"YulFunctionCall","src":"6277:30:101"},"variableNames":[{"name":"product","nativeSrc":"6266:7:101","nodeType":"YulIdentifier","src":"6266:7:101"}]},{"body":{"nativeSrc":"6484:22:101","nodeType":"YulBlock","src":"6484:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6486:16:101","nodeType":"YulIdentifier","src":"6486:16:101"},"nativeSrc":"6486:18:101","nodeType":"YulFunctionCall","src":"6486:18:101"},"nativeSrc":"6486:18:101","nodeType":"YulExpressionStatement","src":"6486:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6417:1:101","nodeType":"YulIdentifier","src":"6417:1:101"}],"functionName":{"name":"iszero","nativeSrc":"6410:6:101","nodeType":"YulIdentifier","src":"6410:6:101"},"nativeSrc":"6410:9:101","nodeType":"YulFunctionCall","src":"6410:9:101"},{"arguments":[{"name":"y","nativeSrc":"6440:1:101","nodeType":"YulIdentifier","src":"6440:1:101"},{"arguments":[{"name":"product","nativeSrc":"6447:7:101","nodeType":"YulIdentifier","src":"6447:7:101"},{"name":"x","nativeSrc":"6456:1:101","nodeType":"YulIdentifier","src":"6456:1:101"}],"functionName":{"name":"div","nativeSrc":"6443:3:101","nodeType":"YulIdentifier","src":"6443:3:101"},"nativeSrc":"6443:15:101","nodeType":"YulFunctionCall","src":"6443:15:101"}],"functionName":{"name":"eq","nativeSrc":"6437:2:101","nodeType":"YulIdentifier","src":"6437:2:101"},"nativeSrc":"6437:22:101","nodeType":"YulFunctionCall","src":"6437:22:101"}],"functionName":{"name":"or","nativeSrc":"6390:2:101","nodeType":"YulIdentifier","src":"6390:2:101"},"nativeSrc":"6390:83:101","nodeType":"YulFunctionCall","src":"6390:83:101"}],"functionName":{"name":"iszero","nativeSrc":"6370:6:101","nodeType":"YulIdentifier","src":"6370:6:101"},"nativeSrc":"6370:113:101","nodeType":"YulFunctionCall","src":"6370:113:101"},"nativeSrc":"6367:139:101","nodeType":"YulIf","src":"6367:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"6103:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6134:1:101","nodeType":"YulTypedName","src":"6134:1:101","type":""},{"name":"y","nativeSrc":"6137:1:101","nodeType":"YulTypedName","src":"6137:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6143:7:101","nodeType":"YulTypedName","src":"6143:7:101","type":""}],"src":"6103:410:101"},{"body":{"nativeSrc":"6582:80:101","nodeType":"YulBlock","src":"6582:80:101","statements":[{"nativeSrc":"6592:22:101","nodeType":"YulAssignment","src":"6592:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"6607:6:101","nodeType":"YulIdentifier","src":"6607:6:101"}],"functionName":{"name":"mload","nativeSrc":"6601:5:101","nodeType":"YulIdentifier","src":"6601:5:101"},"nativeSrc":"6601:13:101","nodeType":"YulFunctionCall","src":"6601:13:101"},"variableNames":[{"name":"value","nativeSrc":"6592:5:101","nodeType":"YulIdentifier","src":"6592:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6650:5:101","nodeType":"YulIdentifier","src":"6650:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6623:26:101","nodeType":"YulIdentifier","src":"6623:26:101"},"nativeSrc":"6623:33:101","nodeType":"YulFunctionCall","src":"6623:33:101"},"nativeSrc":"6623:33:101","nodeType":"YulExpressionStatement","src":"6623:33:101"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6519:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6560:6:101","nodeType":"YulTypedName","src":"6560:6:101","type":""},{"name":"end","nativeSrc":"6568:3:101","nodeType":"YulTypedName","src":"6568:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6576:5:101","nodeType":"YulTypedName","src":"6576:5:101","type":""}],"src":"6519:143:101"},{"body":{"nativeSrc":"6745:274:101","nodeType":"YulBlock","src":"6745:274:101","statements":[{"body":{"nativeSrc":"6791:83:101","nodeType":"YulBlock","src":"6791:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6793:77:101","nodeType":"YulIdentifier","src":"6793:77:101"},"nativeSrc":"6793:79:101","nodeType":"YulFunctionCall","src":"6793:79:101"},"nativeSrc":"6793:79:101","nodeType":"YulExpressionStatement","src":"6793:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6766:7:101","nodeType":"YulIdentifier","src":"6766:7:101"},{"name":"headStart","nativeSrc":"6775:9:101","nodeType":"YulIdentifier","src":"6775:9:101"}],"functionName":{"name":"sub","nativeSrc":"6762:3:101","nodeType":"YulIdentifier","src":"6762:3:101"},"nativeSrc":"6762:23:101","nodeType":"YulFunctionCall","src":"6762:23:101"},{"kind":"number","nativeSrc":"6787:2:101","nodeType":"YulLiteral","src":"6787:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6758:3:101","nodeType":"YulIdentifier","src":"6758:3:101"},"nativeSrc":"6758:32:101","nodeType":"YulFunctionCall","src":"6758:32:101"},"nativeSrc":"6755:119:101","nodeType":"YulIf","src":"6755:119:101"},{"nativeSrc":"6884:128:101","nodeType":"YulBlock","src":"6884:128:101","statements":[{"nativeSrc":"6899:15:101","nodeType":"YulVariableDeclaration","src":"6899:15:101","value":{"kind":"number","nativeSrc":"6913:1:101","nodeType":"YulLiteral","src":"6913:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6903:6:101","nodeType":"YulTypedName","src":"6903:6:101","type":""}]},{"nativeSrc":"6928:74:101","nodeType":"YulAssignment","src":"6928:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6974:9:101","nodeType":"YulIdentifier","src":"6974:9:101"},{"name":"offset","nativeSrc":"6985:6:101","nodeType":"YulIdentifier","src":"6985:6:101"}],"functionName":{"name":"add","nativeSrc":"6970:3:101","nodeType":"YulIdentifier","src":"6970:3:101"},"nativeSrc":"6970:22:101","nodeType":"YulFunctionCall","src":"6970:22:101"},{"name":"dataEnd","nativeSrc":"6994:7:101","nodeType":"YulIdentifier","src":"6994:7:101"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"6938:31:101","nodeType":"YulIdentifier","src":"6938:31:101"},"nativeSrc":"6938:64:101","nodeType":"YulFunctionCall","src":"6938:64:101"},"variableNames":[{"name":"value0","nativeSrc":"6928:6:101","nodeType":"YulIdentifier","src":"6928:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6668:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6715:9:101","nodeType":"YulTypedName","src":"6715:9:101","type":""},{"name":"dataEnd","nativeSrc":"6726:7:101","nodeType":"YulTypedName","src":"6726:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6738:6:101","nodeType":"YulTypedName","src":"6738:6:101","type":""}],"src":"6668:351:101"},{"body":{"nativeSrc":"7068:43:101","nodeType":"YulBlock","src":"7068:43:101","statements":[{"nativeSrc":"7078:27:101","nodeType":"YulAssignment","src":"7078:27:101","value":{"arguments":[{"name":"value","nativeSrc":"7093:5:101","nodeType":"YulIdentifier","src":"7093:5:101"},{"kind":"number","nativeSrc":"7100:4:101","nodeType":"YulLiteral","src":"7100:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7089:3:101","nodeType":"YulIdentifier","src":"7089:3:101"},"nativeSrc":"7089:16:101","nodeType":"YulFunctionCall","src":"7089:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"7078:7:101","nodeType":"YulIdentifier","src":"7078:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7025:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7050:5:101","nodeType":"YulTypedName","src":"7050:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7060:7:101","nodeType":"YulTypedName","src":"7060:7:101","type":""}],"src":"7025:86:101"},{"body":{"nativeSrc":"7158:77:101","nodeType":"YulBlock","src":"7158:77:101","statements":[{"body":{"nativeSrc":"7213:16:101","nodeType":"YulBlock","src":"7213:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7222:1:101","nodeType":"YulLiteral","src":"7222:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7225:1:101","nodeType":"YulLiteral","src":"7225:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7215:6:101","nodeType":"YulIdentifier","src":"7215:6:101"},"nativeSrc":"7215:12:101","nodeType":"YulFunctionCall","src":"7215:12:101"},"nativeSrc":"7215:12:101","nodeType":"YulExpressionStatement","src":"7215:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7181:5:101","nodeType":"YulIdentifier","src":"7181:5:101"},{"arguments":[{"name":"value","nativeSrc":"7204:5:101","nodeType":"YulIdentifier","src":"7204:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7188:15:101","nodeType":"YulIdentifier","src":"7188:15:101"},"nativeSrc":"7188:22:101","nodeType":"YulFunctionCall","src":"7188:22:101"}],"functionName":{"name":"eq","nativeSrc":"7178:2:101","nodeType":"YulIdentifier","src":"7178:2:101"},"nativeSrc":"7178:33:101","nodeType":"YulFunctionCall","src":"7178:33:101"}],"functionName":{"name":"iszero","nativeSrc":"7171:6:101","nodeType":"YulIdentifier","src":"7171:6:101"},"nativeSrc":"7171:41:101","nodeType":"YulFunctionCall","src":"7171:41:101"},"nativeSrc":"7168:61:101","nodeType":"YulIf","src":"7168:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"7117:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7151:5:101","nodeType":"YulTypedName","src":"7151:5:101","type":""}],"src":"7117:118:101"},{"body":{"nativeSrc":"7302:78:101","nodeType":"YulBlock","src":"7302:78:101","statements":[{"nativeSrc":"7312:22:101","nodeType":"YulAssignment","src":"7312:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7327:6:101","nodeType":"YulIdentifier","src":"7327:6:101"}],"functionName":{"name":"mload","nativeSrc":"7321:5:101","nodeType":"YulIdentifier","src":"7321:5:101"},"nativeSrc":"7321:13:101","nodeType":"YulFunctionCall","src":"7321:13:101"},"variableNames":[{"name":"value","nativeSrc":"7312:5:101","nodeType":"YulIdentifier","src":"7312:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7368:5:101","nodeType":"YulIdentifier","src":"7368:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"7343:24:101","nodeType":"YulIdentifier","src":"7343:24:101"},"nativeSrc":"7343:31:101","nodeType":"YulFunctionCall","src":"7343:31:101"},"nativeSrc":"7343:31:101","nodeType":"YulExpressionStatement","src":"7343:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7241:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7280:6:101","nodeType":"YulTypedName","src":"7280:6:101","type":""},{"name":"end","nativeSrc":"7288:3:101","nodeType":"YulTypedName","src":"7288:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7296:5:101","nodeType":"YulTypedName","src":"7296:5:101","type":""}],"src":"7241:139:101"},{"body":{"nativeSrc":"7461:272:101","nodeType":"YulBlock","src":"7461:272:101","statements":[{"body":{"nativeSrc":"7507:83:101","nodeType":"YulBlock","src":"7507:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7509:77:101","nodeType":"YulIdentifier","src":"7509:77:101"},"nativeSrc":"7509:79:101","nodeType":"YulFunctionCall","src":"7509:79:101"},"nativeSrc":"7509:79:101","nodeType":"YulExpressionStatement","src":"7509:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7482:7:101","nodeType":"YulIdentifier","src":"7482:7:101"},{"name":"headStart","nativeSrc":"7491:9:101","nodeType":"YulIdentifier","src":"7491:9:101"}],"functionName":{"name":"sub","nativeSrc":"7478:3:101","nodeType":"YulIdentifier","src":"7478:3:101"},"nativeSrc":"7478:23:101","nodeType":"YulFunctionCall","src":"7478:23:101"},{"kind":"number","nativeSrc":"7503:2:101","nodeType":"YulLiteral","src":"7503:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7474:3:101","nodeType":"YulIdentifier","src":"7474:3:101"},"nativeSrc":"7474:32:101","nodeType":"YulFunctionCall","src":"7474:32:101"},"nativeSrc":"7471:119:101","nodeType":"YulIf","src":"7471:119:101"},{"nativeSrc":"7600:126:101","nodeType":"YulBlock","src":"7600:126:101","statements":[{"nativeSrc":"7615:15:101","nodeType":"YulVariableDeclaration","src":"7615:15:101","value":{"kind":"number","nativeSrc":"7629:1:101","nodeType":"YulLiteral","src":"7629:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7619:6:101","nodeType":"YulTypedName","src":"7619:6:101","type":""}]},{"nativeSrc":"7644:72:101","nodeType":"YulAssignment","src":"7644:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:101","nodeType":"YulIdentifier","src":"7688:9:101"},{"name":"offset","nativeSrc":"7699:6:101","nodeType":"YulIdentifier","src":"7699:6:101"}],"functionName":{"name":"add","nativeSrc":"7684:3:101","nodeType":"YulIdentifier","src":"7684:3:101"},"nativeSrc":"7684:22:101","nodeType":"YulFunctionCall","src":"7684:22:101"},{"name":"dataEnd","nativeSrc":"7708:7:101","nodeType":"YulIdentifier","src":"7708:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"7654:29:101","nodeType":"YulIdentifier","src":"7654:29:101"},"nativeSrc":"7654:62:101","nodeType":"YulFunctionCall","src":"7654:62:101"},"variableNames":[{"name":"value0","nativeSrc":"7644:6:101","nodeType":"YulIdentifier","src":"7644:6:101"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"7386:347:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7431:9:101","nodeType":"YulTypedName","src":"7431:9:101","type":""},{"name":"dataEnd","nativeSrc":"7442:7:101","nodeType":"YulTypedName","src":"7442:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7454:6:101","nodeType":"YulTypedName","src":"7454:6:101","type":""}],"src":"7386:347:101"},{"body":{"nativeSrc":"7790:51:101","nodeType":"YulBlock","src":"7790:51:101","statements":[{"nativeSrc":"7800:34:101","nodeType":"YulAssignment","src":"7800:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"7825:1:101","nodeType":"YulLiteral","src":"7825:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"7828:5:101","nodeType":"YulIdentifier","src":"7828:5:101"}],"functionName":{"name":"shr","nativeSrc":"7821:3:101","nodeType":"YulIdentifier","src":"7821:3:101"},"nativeSrc":"7821:13:101","nodeType":"YulFunctionCall","src":"7821:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"7800:8:101","nodeType":"YulIdentifier","src":"7800:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"7739:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7771:5:101","nodeType":"YulTypedName","src":"7771:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7781:8:101","nodeType":"YulTypedName","src":"7781:8:101","type":""}],"src":"7739:102:101"},{"body":{"nativeSrc":"7920:775:101","nodeType":"YulBlock","src":"7920:775:101","statements":[{"nativeSrc":"7930:15:101","nodeType":"YulAssignment","src":"7930:15:101","value":{"name":"_power","nativeSrc":"7939:6:101","nodeType":"YulIdentifier","src":"7939:6:101"},"variableNames":[{"name":"power","nativeSrc":"7930:5:101","nodeType":"YulIdentifier","src":"7930:5:101"}]},{"nativeSrc":"7954:14:101","nodeType":"YulAssignment","src":"7954:14:101","value":{"name":"_base","nativeSrc":"7963:5:101","nodeType":"YulIdentifier","src":"7963:5:101"},"variableNames":[{"name":"base","nativeSrc":"7954:4:101","nodeType":"YulIdentifier","src":"7954:4:101"}]},{"body":{"nativeSrc":"8012:677:101","nodeType":"YulBlock","src":"8012:677:101","statements":[{"body":{"nativeSrc":"8100:22:101","nodeType":"YulBlock","src":"8100:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8102:16:101","nodeType":"YulIdentifier","src":"8102:16:101"},"nativeSrc":"8102:18:101","nodeType":"YulFunctionCall","src":"8102:18:101"},"nativeSrc":"8102:18:101","nodeType":"YulExpressionStatement","src":"8102:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8078:4:101","nodeType":"YulIdentifier","src":"8078:4:101"},{"arguments":[{"name":"max","nativeSrc":"8088:3:101","nodeType":"YulIdentifier","src":"8088:3:101"},{"name":"base","nativeSrc":"8093:4:101","nodeType":"YulIdentifier","src":"8093:4:101"}],"functionName":{"name":"div","nativeSrc":"8084:3:101","nodeType":"YulIdentifier","src":"8084:3:101"},"nativeSrc":"8084:14:101","nodeType":"YulFunctionCall","src":"8084:14:101"}],"functionName":{"name":"gt","nativeSrc":"8075:2:101","nodeType":"YulIdentifier","src":"8075:2:101"},"nativeSrc":"8075:24:101","nodeType":"YulFunctionCall","src":"8075:24:101"},"nativeSrc":"8072:50:101","nodeType":"YulIf","src":"8072:50:101"},{"body":{"nativeSrc":"8167:419:101","nodeType":"YulBlock","src":"8167:419:101","statements":[{"nativeSrc":"8547:25:101","nodeType":"YulAssignment","src":"8547:25:101","value":{"arguments":[{"name":"power","nativeSrc":"8560:5:101","nodeType":"YulIdentifier","src":"8560:5:101"},{"name":"base","nativeSrc":"8567:4:101","nodeType":"YulIdentifier","src":"8567:4:101"}],"functionName":{"name":"mul","nativeSrc":"8556:3:101","nodeType":"YulIdentifier","src":"8556:3:101"},"nativeSrc":"8556:16:101","nodeType":"YulFunctionCall","src":"8556:16:101"},"variableNames":[{"name":"power","nativeSrc":"8547:5:101","nodeType":"YulIdentifier","src":"8547:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8142:8:101","nodeType":"YulIdentifier","src":"8142:8:101"},{"kind":"number","nativeSrc":"8152:1:101","nodeType":"YulLiteral","src":"8152:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8138:3:101","nodeType":"YulIdentifier","src":"8138:3:101"},"nativeSrc":"8138:16:101","nodeType":"YulFunctionCall","src":"8138:16:101"},"nativeSrc":"8135:451:101","nodeType":"YulIf","src":"8135:451:101"},{"nativeSrc":"8599:23:101","nodeType":"YulAssignment","src":"8599:23:101","value":{"arguments":[{"name":"base","nativeSrc":"8611:4:101","nodeType":"YulIdentifier","src":"8611:4:101"},{"name":"base","nativeSrc":"8617:4:101","nodeType":"YulIdentifier","src":"8617:4:101"}],"functionName":{"name":"mul","nativeSrc":"8607:3:101","nodeType":"YulIdentifier","src":"8607:3:101"},"nativeSrc":"8607:15:101","nodeType":"YulFunctionCall","src":"8607:15:101"},"variableNames":[{"name":"base","nativeSrc":"8599:4:101","nodeType":"YulIdentifier","src":"8599:4:101"}]},{"nativeSrc":"8635:44:101","nodeType":"YulAssignment","src":"8635:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"8670:8:101","nodeType":"YulIdentifier","src":"8670:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"8647:22:101","nodeType":"YulIdentifier","src":"8647:22:101"},"nativeSrc":"8647:32:101","nodeType":"YulFunctionCall","src":"8647:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"8635:8:101","nodeType":"YulIdentifier","src":"8635:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7988:8:101","nodeType":"YulIdentifier","src":"7988:8:101"},{"kind":"number","nativeSrc":"7998:1:101","nodeType":"YulLiteral","src":"7998:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"7985:2:101","nodeType":"YulIdentifier","src":"7985:2:101"},"nativeSrc":"7985:15:101","nodeType":"YulFunctionCall","src":"7985:15:101"},"nativeSrc":"7977:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"8001:2:101","nodeType":"YulBlock","src":"8001:2:101","statements":[]},"pre":{"nativeSrc":"7981:3:101","nodeType":"YulBlock","src":"7981:3:101","statements":[]},"src":"7977:712:101"}]},"name":"checked_exp_helper","nativeSrc":"7847:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"7875:6:101","nodeType":"YulTypedName","src":"7875:6:101","type":""},{"name":"_base","nativeSrc":"7883:5:101","nodeType":"YulTypedName","src":"7883:5:101","type":""},{"name":"exponent","nativeSrc":"7890:8:101","nodeType":"YulTypedName","src":"7890:8:101","type":""},{"name":"max","nativeSrc":"7900:3:101","nodeType":"YulTypedName","src":"7900:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7908:5:101","nodeType":"YulTypedName","src":"7908:5:101","type":""},{"name":"base","nativeSrc":"7915:4:101","nodeType":"YulTypedName","src":"7915:4:101","type":""}],"src":"7847:848:101"},{"body":{"nativeSrc":"8761:1013:101","nodeType":"YulBlock","src":"8761:1013:101","statements":[{"body":{"nativeSrc":"8956:20:101","nodeType":"YulBlock","src":"8956:20:101","statements":[{"nativeSrc":"8958:10:101","nodeType":"YulAssignment","src":"8958:10:101","value":{"kind":"number","nativeSrc":"8967:1:101","nodeType":"YulLiteral","src":"8967:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"8958:5:101","nodeType":"YulIdentifier","src":"8958:5:101"}]},{"nativeSrc":"8969:5:101","nodeType":"YulLeave","src":"8969:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"8946:8:101","nodeType":"YulIdentifier","src":"8946:8:101"}],"functionName":{"name":"iszero","nativeSrc":"8939:6:101","nodeType":"YulIdentifier","src":"8939:6:101"},"nativeSrc":"8939:16:101","nodeType":"YulFunctionCall","src":"8939:16:101"},"nativeSrc":"8936:40:101","nodeType":"YulIf","src":"8936:40:101"},{"body":{"nativeSrc":"9001:20:101","nodeType":"YulBlock","src":"9001:20:101","statements":[{"nativeSrc":"9003:10:101","nodeType":"YulAssignment","src":"9003:10:101","value":{"kind":"number","nativeSrc":"9012:1:101","nodeType":"YulLiteral","src":"9012:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"9003:5:101","nodeType":"YulIdentifier","src":"9003:5:101"}]},{"nativeSrc":"9014:5:101","nodeType":"YulLeave","src":"9014:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"8995:4:101","nodeType":"YulIdentifier","src":"8995:4:101"}],"functionName":{"name":"iszero","nativeSrc":"8988:6:101","nodeType":"YulIdentifier","src":"8988:6:101"},"nativeSrc":"8988:12:101","nodeType":"YulFunctionCall","src":"8988:12:101"},"nativeSrc":"8985:36:101","nodeType":"YulIf","src":"8985:36:101"},{"cases":[{"body":{"nativeSrc":"9131:20:101","nodeType":"YulBlock","src":"9131:20:101","statements":[{"nativeSrc":"9133:10:101","nodeType":"YulAssignment","src":"9133:10:101","value":{"kind":"number","nativeSrc":"9142:1:101","nodeType":"YulLiteral","src":"9142:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"9133:5:101","nodeType":"YulIdentifier","src":"9133:5:101"}]},{"nativeSrc":"9144:5:101","nodeType":"YulLeave","src":"9144:5:101"}]},"nativeSrc":"9124:27:101","nodeType":"YulCase","src":"9124:27:101","value":{"kind":"number","nativeSrc":"9129:1:101","nodeType":"YulLiteral","src":"9129:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"9175:176:101","nodeType":"YulBlock","src":"9175:176:101","statements":[{"body":{"nativeSrc":"9210:22:101","nodeType":"YulBlock","src":"9210:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9212:16:101","nodeType":"YulIdentifier","src":"9212:16:101"},"nativeSrc":"9212:18:101","nodeType":"YulFunctionCall","src":"9212:18:101"},"nativeSrc":"9212:18:101","nodeType":"YulExpressionStatement","src":"9212:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9195:8:101","nodeType":"YulIdentifier","src":"9195:8:101"},{"kind":"number","nativeSrc":"9205:3:101","nodeType":"YulLiteral","src":"9205:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"9192:2:101","nodeType":"YulIdentifier","src":"9192:2:101"},"nativeSrc":"9192:17:101","nodeType":"YulFunctionCall","src":"9192:17:101"},"nativeSrc":"9189:43:101","nodeType":"YulIf","src":"9189:43:101"},{"nativeSrc":"9245:25:101","nodeType":"YulAssignment","src":"9245:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"9258:1:101","nodeType":"YulLiteral","src":"9258:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"9261:8:101","nodeType":"YulIdentifier","src":"9261:8:101"}],"functionName":{"name":"exp","nativeSrc":"9254:3:101","nodeType":"YulIdentifier","src":"9254:3:101"},"nativeSrc":"9254:16:101","nodeType":"YulFunctionCall","src":"9254:16:101"},"variableNames":[{"name":"power","nativeSrc":"9245:5:101","nodeType":"YulIdentifier","src":"9245:5:101"}]},{"body":{"nativeSrc":"9301:22:101","nodeType":"YulBlock","src":"9301:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9303:16:101","nodeType":"YulIdentifier","src":"9303:16:101"},"nativeSrc":"9303:18:101","nodeType":"YulFunctionCall","src":"9303:18:101"},"nativeSrc":"9303:18:101","nodeType":"YulExpressionStatement","src":"9303:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9289:5:101","nodeType":"YulIdentifier","src":"9289:5:101"},{"name":"max","nativeSrc":"9296:3:101","nodeType":"YulIdentifier","src":"9296:3:101"}],"functionName":{"name":"gt","nativeSrc":"9286:2:101","nodeType":"YulIdentifier","src":"9286:2:101"},"nativeSrc":"9286:14:101","nodeType":"YulFunctionCall","src":"9286:14:101"},"nativeSrc":"9283:40:101","nodeType":"YulIf","src":"9283:40:101"},{"nativeSrc":"9336:5:101","nodeType":"YulLeave","src":"9336:5:101"}]},"nativeSrc":"9160:191:101","nodeType":"YulCase","src":"9160:191:101","value":{"kind":"number","nativeSrc":"9165:1:101","nodeType":"YulLiteral","src":"9165:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"9081:4:101","nodeType":"YulIdentifier","src":"9081:4:101"},"nativeSrc":"9074:277:101","nodeType":"YulSwitch","src":"9074:277:101"},{"body":{"nativeSrc":"9483:123:101","nodeType":"YulBlock","src":"9483:123:101","statements":[{"nativeSrc":"9497:28:101","nodeType":"YulAssignment","src":"9497:28:101","value":{"arguments":[{"name":"base","nativeSrc":"9510:4:101","nodeType":"YulIdentifier","src":"9510:4:101"},{"name":"exponent","nativeSrc":"9516:8:101","nodeType":"YulIdentifier","src":"9516:8:101"}],"functionName":{"name":"exp","nativeSrc":"9506:3:101","nodeType":"YulIdentifier","src":"9506:3:101"},"nativeSrc":"9506:19:101","nodeType":"YulFunctionCall","src":"9506:19:101"},"variableNames":[{"name":"power","nativeSrc":"9497:5:101","nodeType":"YulIdentifier","src":"9497:5:101"}]},{"body":{"nativeSrc":"9556:22:101","nodeType":"YulBlock","src":"9556:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9558:16:101","nodeType":"YulIdentifier","src":"9558:16:101"},"nativeSrc":"9558:18:101","nodeType":"YulFunctionCall","src":"9558:18:101"},"nativeSrc":"9558:18:101","nodeType":"YulExpressionStatement","src":"9558:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9544:5:101","nodeType":"YulIdentifier","src":"9544:5:101"},{"name":"max","nativeSrc":"9551:3:101","nodeType":"YulIdentifier","src":"9551:3:101"}],"functionName":{"name":"gt","nativeSrc":"9541:2:101","nodeType":"YulIdentifier","src":"9541:2:101"},"nativeSrc":"9541:14:101","nodeType":"YulFunctionCall","src":"9541:14:101"},"nativeSrc":"9538:40:101","nodeType":"YulIf","src":"9538:40:101"},{"nativeSrc":"9591:5:101","nodeType":"YulLeave","src":"9591:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9386:4:101","nodeType":"YulIdentifier","src":"9386:4:101"},{"kind":"number","nativeSrc":"9392:2:101","nodeType":"YulLiteral","src":"9392:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"9383:2:101","nodeType":"YulIdentifier","src":"9383:2:101"},"nativeSrc":"9383:12:101","nodeType":"YulFunctionCall","src":"9383:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"9400:8:101","nodeType":"YulIdentifier","src":"9400:8:101"},{"kind":"number","nativeSrc":"9410:2:101","nodeType":"YulLiteral","src":"9410:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"9397:2:101","nodeType":"YulIdentifier","src":"9397:2:101"},"nativeSrc":"9397:16:101","nodeType":"YulFunctionCall","src":"9397:16:101"}],"functionName":{"name":"and","nativeSrc":"9379:3:101","nodeType":"YulIdentifier","src":"9379:3:101"},"nativeSrc":"9379:35:101","nodeType":"YulFunctionCall","src":"9379:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"9435:4:101","nodeType":"YulIdentifier","src":"9435:4:101"},{"kind":"number","nativeSrc":"9441:3:101","nodeType":"YulLiteral","src":"9441:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"9432:2:101","nodeType":"YulIdentifier","src":"9432:2:101"},"nativeSrc":"9432:13:101","nodeType":"YulFunctionCall","src":"9432:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"9450:8:101","nodeType":"YulIdentifier","src":"9450:8:101"},{"kind":"number","nativeSrc":"9460:2:101","nodeType":"YulLiteral","src":"9460:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"9447:2:101","nodeType":"YulIdentifier","src":"9447:2:101"},"nativeSrc":"9447:16:101","nodeType":"YulFunctionCall","src":"9447:16:101"}],"functionName":{"name":"and","nativeSrc":"9428:3:101","nodeType":"YulIdentifier","src":"9428:3:101"},"nativeSrc":"9428:36:101","nodeType":"YulFunctionCall","src":"9428:36:101"}],"functionName":{"name":"or","nativeSrc":"9363:2:101","nodeType":"YulIdentifier","src":"9363:2:101"},"nativeSrc":"9363:111:101","nodeType":"YulFunctionCall","src":"9363:111:101"},"nativeSrc":"9360:246:101","nodeType":"YulIf","src":"9360:246:101"},{"nativeSrc":"9616:57:101","nodeType":"YulAssignment","src":"9616:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"9650:1:101","nodeType":"YulLiteral","src":"9650:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"9653:4:101","nodeType":"YulIdentifier","src":"9653:4:101"},{"name":"exponent","nativeSrc":"9659:8:101","nodeType":"YulIdentifier","src":"9659:8:101"},{"name":"max","nativeSrc":"9669:3:101","nodeType":"YulIdentifier","src":"9669:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"9631:18:101","nodeType":"YulIdentifier","src":"9631:18:101"},"nativeSrc":"9631:42:101","nodeType":"YulFunctionCall","src":"9631:42:101"},"variableNames":[{"name":"power","nativeSrc":"9616:5:101","nodeType":"YulIdentifier","src":"9616:5:101"},{"name":"base","nativeSrc":"9623:4:101","nodeType":"YulIdentifier","src":"9623:4:101"}]},{"body":{"nativeSrc":"9712:22:101","nodeType":"YulBlock","src":"9712:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9714:16:101","nodeType":"YulIdentifier","src":"9714:16:101"},"nativeSrc":"9714:18:101","nodeType":"YulFunctionCall","src":"9714:18:101"},"nativeSrc":"9714:18:101","nodeType":"YulExpressionStatement","src":"9714:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"9689:5:101","nodeType":"YulIdentifier","src":"9689:5:101"},{"arguments":[{"name":"max","nativeSrc":"9700:3:101","nodeType":"YulIdentifier","src":"9700:3:101"},{"name":"base","nativeSrc":"9705:4:101","nodeType":"YulIdentifier","src":"9705:4:101"}],"functionName":{"name":"div","nativeSrc":"9696:3:101","nodeType":"YulIdentifier","src":"9696:3:101"},"nativeSrc":"9696:14:101","nodeType":"YulFunctionCall","src":"9696:14:101"}],"functionName":{"name":"gt","nativeSrc":"9686:2:101","nodeType":"YulIdentifier","src":"9686:2:101"},"nativeSrc":"9686:25:101","nodeType":"YulFunctionCall","src":"9686:25:101"},"nativeSrc":"9683:51:101","nodeType":"YulIf","src":"9683:51:101"},{"nativeSrc":"9743:25:101","nodeType":"YulAssignment","src":"9743:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9756:5:101","nodeType":"YulIdentifier","src":"9756:5:101"},{"name":"base","nativeSrc":"9763:4:101","nodeType":"YulIdentifier","src":"9763:4:101"}],"functionName":{"name":"mul","nativeSrc":"9752:3:101","nodeType":"YulIdentifier","src":"9752:3:101"},"nativeSrc":"9752:16:101","nodeType":"YulFunctionCall","src":"9752:16:101"},"variableNames":[{"name":"power","nativeSrc":"9743:5:101","nodeType":"YulIdentifier","src":"9743:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"8701:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8731:4:101","nodeType":"YulTypedName","src":"8731:4:101","type":""},{"name":"exponent","nativeSrc":"8737:8:101","nodeType":"YulTypedName","src":"8737:8:101","type":""},{"name":"max","nativeSrc":"8747:3:101","nodeType":"YulTypedName","src":"8747:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8755:5:101","nodeType":"YulTypedName","src":"8755:5:101","type":""}],"src":"8701:1073:101"},{"body":{"nativeSrc":"9846:219:101","nodeType":"YulBlock","src":"9846:219:101","statements":[{"nativeSrc":"9856:31:101","nodeType":"YulAssignment","src":"9856:31:101","value":{"arguments":[{"name":"base","nativeSrc":"9882:4:101","nodeType":"YulIdentifier","src":"9882:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9864:17:101","nodeType":"YulIdentifier","src":"9864:17:101"},"nativeSrc":"9864:23:101","nodeType":"YulFunctionCall","src":"9864:23:101"},"variableNames":[{"name":"base","nativeSrc":"9856:4:101","nodeType":"YulIdentifier","src":"9856:4:101"}]},{"nativeSrc":"9896:39:101","nodeType":"YulAssignment","src":"9896:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"9926:8:101","nodeType":"YulIdentifier","src":"9926:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9908:17:101","nodeType":"YulIdentifier","src":"9908:17:101"},"nativeSrc":"9908:27:101","nodeType":"YulFunctionCall","src":"9908:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"9896:8:101","nodeType":"YulIdentifier","src":"9896:8:101"}]},{"nativeSrc":"9945:113:101","nodeType":"YulAssignment","src":"9945:113:101","value":{"arguments":[{"name":"base","nativeSrc":"9975:4:101","nodeType":"YulIdentifier","src":"9975:4:101"},{"name":"exponent","nativeSrc":"9981:8:101","nodeType":"YulIdentifier","src":"9981:8:101"},{"kind":"number","nativeSrc":"9991:66:101","nodeType":"YulLiteral","src":"9991:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"9954:20:101","nodeType":"YulIdentifier","src":"9954:20:101"},"nativeSrc":"9954:104:101","nodeType":"YulFunctionCall","src":"9954:104:101"},"variableNames":[{"name":"power","nativeSrc":"9945:5:101","nodeType":"YulIdentifier","src":"9945:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"9780:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"9821:4:101","nodeType":"YulTypedName","src":"9821:4:101","type":""},{"name":"exponent","nativeSrc":"9827:8:101","nodeType":"YulTypedName","src":"9827:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9840:5:101","nodeType":"YulTypedName","src":"9840:5:101","type":""}],"src":"9780:285:101"},{"body":{"nativeSrc":"10130:40:101","nodeType":"YulBlock","src":"10130:40:101","statements":[{"nativeSrc":"10141:22:101","nodeType":"YulAssignment","src":"10141:22:101","value":{"arguments":[{"name":"value","nativeSrc":"10157:5:101","nodeType":"YulIdentifier","src":"10157:5:101"}],"functionName":{"name":"mload","nativeSrc":"10151:5:101","nodeType":"YulIdentifier","src":"10151:5:101"},"nativeSrc":"10151:12:101","nodeType":"YulFunctionCall","src":"10151:12:101"},"variableNames":[{"name":"length","nativeSrc":"10141:6:101","nodeType":"YulIdentifier","src":"10141:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"10071:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10113:5:101","nodeType":"YulTypedName","src":"10113:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10123:6:101","nodeType":"YulTypedName","src":"10123:6:101","type":""}],"src":"10071:99:101"},{"body":{"nativeSrc":"10272:73:101","nodeType":"YulBlock","src":"10272:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10289:3:101","nodeType":"YulIdentifier","src":"10289:3:101"},{"name":"length","nativeSrc":"10294:6:101","nodeType":"YulIdentifier","src":"10294:6:101"}],"functionName":{"name":"mstore","nativeSrc":"10282:6:101","nodeType":"YulIdentifier","src":"10282:6:101"},"nativeSrc":"10282:19:101","nodeType":"YulFunctionCall","src":"10282:19:101"},"nativeSrc":"10282:19:101","nodeType":"YulExpressionStatement","src":"10282:19:101"},{"nativeSrc":"10310:29:101","nodeType":"YulAssignment","src":"10310:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"10329:3:101","nodeType":"YulIdentifier","src":"10329:3:101"},{"kind":"number","nativeSrc":"10334:4:101","nodeType":"YulLiteral","src":"10334:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10325:3:101","nodeType":"YulIdentifier","src":"10325:3:101"},"nativeSrc":"10325:14:101","nodeType":"YulFunctionCall","src":"10325:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"10310:11:101","nodeType":"YulIdentifier","src":"10310:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10176:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10244:3:101","nodeType":"YulTypedName","src":"10244:3:101","type":""},{"name":"length","nativeSrc":"10249:6:101","nodeType":"YulTypedName","src":"10249:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10260:11:101","nodeType":"YulTypedName","src":"10260:11:101","type":""}],"src":"10176:169:101"},{"body":{"nativeSrc":"10413:77:101","nodeType":"YulBlock","src":"10413:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10430:3:101","nodeType":"YulIdentifier","src":"10430:3:101"},{"name":"src","nativeSrc":"10435:3:101","nodeType":"YulIdentifier","src":"10435:3:101"},{"name":"length","nativeSrc":"10440:6:101","nodeType":"YulIdentifier","src":"10440:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"10424:5:101","nodeType":"YulIdentifier","src":"10424:5:101"},"nativeSrc":"10424:23:101","nodeType":"YulFunctionCall","src":"10424:23:101"},"nativeSrc":"10424:23:101","nodeType":"YulExpressionStatement","src":"10424:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10467:3:101","nodeType":"YulIdentifier","src":"10467:3:101"},{"name":"length","nativeSrc":"10472:6:101","nodeType":"YulIdentifier","src":"10472:6:101"}],"functionName":{"name":"add","nativeSrc":"10463:3:101","nodeType":"YulIdentifier","src":"10463:3:101"},"nativeSrc":"10463:16:101","nodeType":"YulFunctionCall","src":"10463:16:101"},{"kind":"number","nativeSrc":"10481:1:101","nodeType":"YulLiteral","src":"10481:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10456:6:101","nodeType":"YulIdentifier","src":"10456:6:101"},"nativeSrc":"10456:27:101","nodeType":"YulFunctionCall","src":"10456:27:101"},"nativeSrc":"10456:27:101","nodeType":"YulExpressionStatement","src":"10456:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10351:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10395:3:101","nodeType":"YulTypedName","src":"10395:3:101","type":""},{"name":"dst","nativeSrc":"10400:3:101","nodeType":"YulTypedName","src":"10400:3:101","type":""},{"name":"length","nativeSrc":"10405:6:101","nodeType":"YulTypedName","src":"10405:6:101","type":""}],"src":"10351:139:101"},{"body":{"nativeSrc":"10544:54:101","nodeType":"YulBlock","src":"10544:54:101","statements":[{"nativeSrc":"10554:38:101","nodeType":"YulAssignment","src":"10554:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10572:5:101","nodeType":"YulIdentifier","src":"10572:5:101"},{"kind":"number","nativeSrc":"10579:2:101","nodeType":"YulLiteral","src":"10579:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10568:3:101","nodeType":"YulIdentifier","src":"10568:3:101"},"nativeSrc":"10568:14:101","nodeType":"YulFunctionCall","src":"10568:14:101"},{"arguments":[{"kind":"number","nativeSrc":"10588:2:101","nodeType":"YulLiteral","src":"10588:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10584:3:101","nodeType":"YulIdentifier","src":"10584:3:101"},"nativeSrc":"10584:7:101","nodeType":"YulFunctionCall","src":"10584:7:101"}],"functionName":{"name":"and","nativeSrc":"10564:3:101","nodeType":"YulIdentifier","src":"10564:3:101"},"nativeSrc":"10564:28:101","nodeType":"YulFunctionCall","src":"10564:28:101"},"variableNames":[{"name":"result","nativeSrc":"10554:6:101","nodeType":"YulIdentifier","src":"10554:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"10496:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10527:5:101","nodeType":"YulTypedName","src":"10527:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10537:6:101","nodeType":"YulTypedName","src":"10537:6:101","type":""}],"src":"10496:102:101"},{"body":{"nativeSrc":"10696:285:101","nodeType":"YulBlock","src":"10696:285:101","statements":[{"nativeSrc":"10706:53:101","nodeType":"YulVariableDeclaration","src":"10706:53:101","value":{"arguments":[{"name":"value","nativeSrc":"10753:5:101","nodeType":"YulIdentifier","src":"10753:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"10720:32:101","nodeType":"YulIdentifier","src":"10720:32:101"},"nativeSrc":"10720:39:101","nodeType":"YulFunctionCall","src":"10720:39:101"},"variables":[{"name":"length","nativeSrc":"10710:6:101","nodeType":"YulTypedName","src":"10710:6:101","type":""}]},{"nativeSrc":"10768:78:101","nodeType":"YulAssignment","src":"10768:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"10834:3:101","nodeType":"YulIdentifier","src":"10834:3:101"},{"name":"length","nativeSrc":"10839:6:101","nodeType":"YulIdentifier","src":"10839:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10775:58:101","nodeType":"YulIdentifier","src":"10775:58:101"},"nativeSrc":"10775:71:101","nodeType":"YulFunctionCall","src":"10775:71:101"},"variableNames":[{"name":"pos","nativeSrc":"10768:3:101","nodeType":"YulIdentifier","src":"10768:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10894:5:101","nodeType":"YulIdentifier","src":"10894:5:101"},{"kind":"number","nativeSrc":"10901:4:101","nodeType":"YulLiteral","src":"10901:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10890:3:101","nodeType":"YulIdentifier","src":"10890:3:101"},"nativeSrc":"10890:16:101","nodeType":"YulFunctionCall","src":"10890:16:101"},{"name":"pos","nativeSrc":"10908:3:101","nodeType":"YulIdentifier","src":"10908:3:101"},{"name":"length","nativeSrc":"10913:6:101","nodeType":"YulIdentifier","src":"10913:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10855:34:101","nodeType":"YulIdentifier","src":"10855:34:101"},"nativeSrc":"10855:65:101","nodeType":"YulFunctionCall","src":"10855:65:101"},"nativeSrc":"10855:65:101","nodeType":"YulExpressionStatement","src":"10855:65:101"},{"nativeSrc":"10929:46:101","nodeType":"YulAssignment","src":"10929:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"10940:3:101","nodeType":"YulIdentifier","src":"10940:3:101"},{"arguments":[{"name":"length","nativeSrc":"10967:6:101","nodeType":"YulIdentifier","src":"10967:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10945:21:101","nodeType":"YulIdentifier","src":"10945:21:101"},"nativeSrc":"10945:29:101","nodeType":"YulFunctionCall","src":"10945:29:101"}],"functionName":{"name":"add","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},"nativeSrc":"10936:39:101","nodeType":"YulFunctionCall","src":"10936:39:101"},"variableNames":[{"name":"end","nativeSrc":"10929:3:101","nodeType":"YulIdentifier","src":"10929:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10604:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10677:5:101","nodeType":"YulTypedName","src":"10677:5:101","type":""},{"name":"pos","nativeSrc":"10684:3:101","nodeType":"YulTypedName","src":"10684:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10692:3:101","nodeType":"YulTypedName","src":"10692:3:101","type":""}],"src":"10604:377:101"},{"body":{"nativeSrc":"11133:277:101","nodeType":"YulBlock","src":"11133:277:101","statements":[{"nativeSrc":"11143:26:101","nodeType":"YulAssignment","src":"11143:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11155:9:101","nodeType":"YulIdentifier","src":"11155:9:101"},{"kind":"number","nativeSrc":"11166:2:101","nodeType":"YulLiteral","src":"11166:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11151:3:101","nodeType":"YulIdentifier","src":"11151:3:101"},"nativeSrc":"11151:18:101","nodeType":"YulFunctionCall","src":"11151:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11143:4:101","nodeType":"YulIdentifier","src":"11143:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11223:6:101","nodeType":"YulIdentifier","src":"11223:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"11236:9:101","nodeType":"YulIdentifier","src":"11236:9:101"},{"kind":"number","nativeSrc":"11247:1:101","nodeType":"YulLiteral","src":"11247:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11232:3:101","nodeType":"YulIdentifier","src":"11232:3:101"},"nativeSrc":"11232:17:101","nodeType":"YulFunctionCall","src":"11232:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11179:43:101","nodeType":"YulIdentifier","src":"11179:43:101"},"nativeSrc":"11179:71:101","nodeType":"YulFunctionCall","src":"11179:71:101"},"nativeSrc":"11179:71:101","nodeType":"YulExpressionStatement","src":"11179:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11271:9:101","nodeType":"YulIdentifier","src":"11271:9:101"},{"kind":"number","nativeSrc":"11282:2:101","nodeType":"YulLiteral","src":"11282:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11267:3:101","nodeType":"YulIdentifier","src":"11267:3:101"},"nativeSrc":"11267:18:101","nodeType":"YulFunctionCall","src":"11267:18:101"},{"arguments":[{"name":"tail","nativeSrc":"11291:4:101","nodeType":"YulIdentifier","src":"11291:4:101"},{"name":"headStart","nativeSrc":"11297:9:101","nodeType":"YulIdentifier","src":"11297:9:101"}],"functionName":{"name":"sub","nativeSrc":"11287:3:101","nodeType":"YulIdentifier","src":"11287:3:101"},"nativeSrc":"11287:20:101","nodeType":"YulFunctionCall","src":"11287:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11260:6:101","nodeType":"YulIdentifier","src":"11260:6:101"},"nativeSrc":"11260:48:101","nodeType":"YulFunctionCall","src":"11260:48:101"},"nativeSrc":"11260:48:101","nodeType":"YulExpressionStatement","src":"11260:48:101"},{"nativeSrc":"11317:86:101","nodeType":"YulAssignment","src":"11317:86:101","value":{"arguments":[{"name":"value1","nativeSrc":"11389:6:101","nodeType":"YulIdentifier","src":"11389:6:101"},{"name":"tail","nativeSrc":"11398:4:101","nodeType":"YulIdentifier","src":"11398:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"11325:63:101","nodeType":"YulIdentifier","src":"11325:63:101"},"nativeSrc":"11325:78:101","nodeType":"YulFunctionCall","src":"11325:78:101"},"variableNames":[{"name":"tail","nativeSrc":"11317:4:101","nodeType":"YulIdentifier","src":"11317:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10987:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11097:9:101","nodeType":"YulTypedName","src":"11097:9:101","type":""},{"name":"value1","nativeSrc":"11109:6:101","nodeType":"YulTypedName","src":"11109:6:101","type":""},{"name":"value0","nativeSrc":"11117:6:101","nodeType":"YulTypedName","src":"11117:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11128:4:101","nodeType":"YulTypedName","src":"11128:4:101","type":""}],"src":"10987:423:101"},{"body":{"nativeSrc":"11456:76:101","nodeType":"YulBlock","src":"11456:76:101","statements":[{"body":{"nativeSrc":"11510:16:101","nodeType":"YulBlock","src":"11510:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11519:1:101","nodeType":"YulLiteral","src":"11519:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"11522:1:101","nodeType":"YulLiteral","src":"11522:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11512:6:101","nodeType":"YulIdentifier","src":"11512:6:101"},"nativeSrc":"11512:12:101","nodeType":"YulFunctionCall","src":"11512:12:101"},"nativeSrc":"11512:12:101","nodeType":"YulExpressionStatement","src":"11512:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11479:5:101","nodeType":"YulIdentifier","src":"11479:5:101"},{"arguments":[{"name":"value","nativeSrc":"11501:5:101","nodeType":"YulIdentifier","src":"11501:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"11486:14:101","nodeType":"YulIdentifier","src":"11486:14:101"},"nativeSrc":"11486:21:101","nodeType":"YulFunctionCall","src":"11486:21:101"}],"functionName":{"name":"eq","nativeSrc":"11476:2:101","nodeType":"YulIdentifier","src":"11476:2:101"},"nativeSrc":"11476:32:101","nodeType":"YulFunctionCall","src":"11476:32:101"}],"functionName":{"name":"iszero","nativeSrc":"11469:6:101","nodeType":"YulIdentifier","src":"11469:6:101"},"nativeSrc":"11469:40:101","nodeType":"YulFunctionCall","src":"11469:40:101"},"nativeSrc":"11466:60:101","nodeType":"YulIf","src":"11466:60:101"}]},"name":"validator_revert_t_bool","nativeSrc":"11416:116:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11449:5:101","nodeType":"YulTypedName","src":"11449:5:101","type":""}],"src":"11416:116:101"},{"body":{"nativeSrc":"11598:77:101","nodeType":"YulBlock","src":"11598:77:101","statements":[{"nativeSrc":"11608:22:101","nodeType":"YulAssignment","src":"11608:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"11623:6:101","nodeType":"YulIdentifier","src":"11623:6:101"}],"functionName":{"name":"mload","nativeSrc":"11617:5:101","nodeType":"YulIdentifier","src":"11617:5:101"},"nativeSrc":"11617:13:101","nodeType":"YulFunctionCall","src":"11617:13:101"},"variableNames":[{"name":"value","nativeSrc":"11608:5:101","nodeType":"YulIdentifier","src":"11608:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11663:5:101","nodeType":"YulIdentifier","src":"11663:5:101"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"11639:23:101","nodeType":"YulIdentifier","src":"11639:23:101"},"nativeSrc":"11639:30:101","nodeType":"YulFunctionCall","src":"11639:30:101"},"nativeSrc":"11639:30:101","nodeType":"YulExpressionStatement","src":"11639:30:101"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11538:137:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11576:6:101","nodeType":"YulTypedName","src":"11576:6:101","type":""},{"name":"end","nativeSrc":"11584:3:101","nodeType":"YulTypedName","src":"11584:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11592:5:101","nodeType":"YulTypedName","src":"11592:5:101","type":""}],"src":"11538:137:101"},{"body":{"nativeSrc":"11755:271:101","nodeType":"YulBlock","src":"11755:271:101","statements":[{"body":{"nativeSrc":"11801:83:101","nodeType":"YulBlock","src":"11801:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11803:77:101","nodeType":"YulIdentifier","src":"11803:77:101"},"nativeSrc":"11803:79:101","nodeType":"YulFunctionCall","src":"11803:79:101"},"nativeSrc":"11803:79:101","nodeType":"YulExpressionStatement","src":"11803:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11776:7:101","nodeType":"YulIdentifier","src":"11776:7:101"},{"name":"headStart","nativeSrc":"11785:9:101","nodeType":"YulIdentifier","src":"11785:9:101"}],"functionName":{"name":"sub","nativeSrc":"11772:3:101","nodeType":"YulIdentifier","src":"11772:3:101"},"nativeSrc":"11772:23:101","nodeType":"YulFunctionCall","src":"11772:23:101"},{"kind":"number","nativeSrc":"11797:2:101","nodeType":"YulLiteral","src":"11797:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11768:3:101","nodeType":"YulIdentifier","src":"11768:3:101"},"nativeSrc":"11768:32:101","nodeType":"YulFunctionCall","src":"11768:32:101"},"nativeSrc":"11765:119:101","nodeType":"YulIf","src":"11765:119:101"},{"nativeSrc":"11894:125:101","nodeType":"YulBlock","src":"11894:125:101","statements":[{"nativeSrc":"11909:15:101","nodeType":"YulVariableDeclaration","src":"11909:15:101","value":{"kind":"number","nativeSrc":"11923:1:101","nodeType":"YulLiteral","src":"11923:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11913:6:101","nodeType":"YulTypedName","src":"11913:6:101","type":""}]},{"nativeSrc":"11938:71:101","nodeType":"YulAssignment","src":"11938:71:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11981:9:101","nodeType":"YulIdentifier","src":"11981:9:101"},{"name":"offset","nativeSrc":"11992:6:101","nodeType":"YulIdentifier","src":"11992:6:101"}],"functionName":{"name":"add","nativeSrc":"11977:3:101","nodeType":"YulIdentifier","src":"11977:3:101"},"nativeSrc":"11977:22:101","nodeType":"YulFunctionCall","src":"11977:22:101"},{"name":"dataEnd","nativeSrc":"12001:7:101","nodeType":"YulIdentifier","src":"12001:7:101"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"11948:28:101","nodeType":"YulIdentifier","src":"11948:28:101"},"nativeSrc":"11948:61:101","nodeType":"YulFunctionCall","src":"11948:61:101"},"variableNames":[{"name":"value0","nativeSrc":"11938:6:101","nodeType":"YulIdentifier","src":"11938:6:101"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"11681:345:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11725:9:101","nodeType":"YulTypedName","src":"11725:9:101","type":""},{"name":"dataEnd","nativeSrc":"11736:7:101","nodeType":"YulTypedName","src":"11736:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11748:6:101","nodeType":"YulTypedName","src":"11748:6:101","type":""}],"src":"11681:345:101"},{"body":{"nativeSrc":"12206:359:101","nodeType":"YulBlock","src":"12206:359:101","statements":[{"nativeSrc":"12216:26:101","nodeType":"YulAssignment","src":"12216:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12228:9:101","nodeType":"YulIdentifier","src":"12228:9:101"},{"kind":"number","nativeSrc":"12239:2:101","nodeType":"YulLiteral","src":"12239:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12224:3:101","nodeType":"YulIdentifier","src":"12224:3:101"},"nativeSrc":"12224:18:101","nodeType":"YulFunctionCall","src":"12224:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12216:4:101","nodeType":"YulIdentifier","src":"12216:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12296:6:101","nodeType":"YulIdentifier","src":"12296:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12309:9:101","nodeType":"YulIdentifier","src":"12309:9:101"},{"kind":"number","nativeSrc":"12320:1:101","nodeType":"YulLiteral","src":"12320:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12305:3:101","nodeType":"YulIdentifier","src":"12305:3:101"},"nativeSrc":"12305:17:101","nodeType":"YulFunctionCall","src":"12305:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12252:43:101","nodeType":"YulIdentifier","src":"12252:43:101"},"nativeSrc":"12252:71:101","nodeType":"YulFunctionCall","src":"12252:71:101"},"nativeSrc":"12252:71:101","nodeType":"YulExpressionStatement","src":"12252:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12377:6:101","nodeType":"YulIdentifier","src":"12377:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"12390:9:101","nodeType":"YulIdentifier","src":"12390:9:101"},{"kind":"number","nativeSrc":"12401:2:101","nodeType":"YulLiteral","src":"12401:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12386:3:101","nodeType":"YulIdentifier","src":"12386:3:101"},"nativeSrc":"12386:18:101","nodeType":"YulFunctionCall","src":"12386:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12333:43:101","nodeType":"YulIdentifier","src":"12333:43:101"},"nativeSrc":"12333:72:101","nodeType":"YulFunctionCall","src":"12333:72:101"},"nativeSrc":"12333:72:101","nodeType":"YulExpressionStatement","src":"12333:72:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12426:9:101","nodeType":"YulIdentifier","src":"12426:9:101"},{"kind":"number","nativeSrc":"12437:2:101","nodeType":"YulLiteral","src":"12437:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12422:3:101","nodeType":"YulIdentifier","src":"12422:3:101"},"nativeSrc":"12422:18:101","nodeType":"YulFunctionCall","src":"12422:18:101"},{"arguments":[{"name":"tail","nativeSrc":"12446:4:101","nodeType":"YulIdentifier","src":"12446:4:101"},{"name":"headStart","nativeSrc":"12452:9:101","nodeType":"YulIdentifier","src":"12452:9:101"}],"functionName":{"name":"sub","nativeSrc":"12442:3:101","nodeType":"YulIdentifier","src":"12442:3:101"},"nativeSrc":"12442:20:101","nodeType":"YulFunctionCall","src":"12442:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12415:6:101","nodeType":"YulIdentifier","src":"12415:6:101"},"nativeSrc":"12415:48:101","nodeType":"YulFunctionCall","src":"12415:48:101"},"nativeSrc":"12415:48:101","nodeType":"YulExpressionStatement","src":"12415:48:101"},{"nativeSrc":"12472:86:101","nodeType":"YulAssignment","src":"12472:86:101","value":{"arguments":[{"name":"value2","nativeSrc":"12544:6:101","nodeType":"YulIdentifier","src":"12544:6:101"},{"name":"tail","nativeSrc":"12553:4:101","nodeType":"YulIdentifier","src":"12553:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"12480:63:101","nodeType":"YulIdentifier","src":"12480:63:101"},"nativeSrc":"12480:78:101","nodeType":"YulFunctionCall","src":"12480:78:101"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:101","nodeType":"YulIdentifier","src":"12472:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12032:533:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12162:9:101","nodeType":"YulTypedName","src":"12162:9:101","type":""},{"name":"value2","nativeSrc":"12174:6:101","nodeType":"YulTypedName","src":"12174:6:101","type":""},{"name":"value1","nativeSrc":"12182:6:101","nodeType":"YulTypedName","src":"12182:6:101","type":""},{"name":"value0","nativeSrc":"12190:6:101","nodeType":"YulTypedName","src":"12190:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12201:4:101","nodeType":"YulTypedName","src":"12201:4:101","type":""}],"src":"12032:533:101"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$2125_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$2125__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$2125_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$3686_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$3686__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$3686_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"6589":[{"length":32,"start":534},{"length":32,"start":690},{"length":32,"start":1958}],"6592":[{"length":32,"start":324},{"length":32,"start":1444},{"length":32,"start":1831}],"6596":[{"length":32,"start":610},{"length":32,"start":1399},{"length":32,"start":1784}],"6600":[{"length":32,"start":404},{"length":32,"start":2149}]},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061011c575f3560e01c806369240426116100a9578063a4edcd4c1161006e578063a4edcd4c1461025d578063abb8561314610284578063ac5a693e1461028c578063bdf13af214610294578063df67747a1461029c575f80fd5b8063692404261461020957806369818a35146102115780637fc4e4a01461023857806399fd89391461024b5780639c43eb5414610254575f80fd5b806345be2dc7116100ef57806345be2dc71461018f5780635213f9c8146101c3578063596efe6f146101d8578063643d813d146101e1578063671528d4146101f4575f80fd5b806307d0413c1461012057806329db1be61461013f5780634169d2451461017357806341976e091461017c575b5f80fd5b61012960015481565b6040516101369190610916565b60405180910390f35b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516101369190610943565b61012960045481565b61012961018a366004610972565b6102af565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b60405161013691906109b5565b6101d66101d13660046109d4565b610361565b005b61012960025481565b6101d66101ef3660046109f2565b6103d2565b6101fc6104a6565b6040516101369190610a34565b6101d66104e2565b6101667f000000000000000000000000000000000000000000000000000000000000000081565b6101d66102463660046109f2565b61062f565b61012960055481565b61012960035481565b6101b67f000000000000000000000000000000000000000000000000000000000000000081565b600554610129565b6101295f5481565b6101296106a7565b6101d66102aa3660046109d4565b600555565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030c60055490565b90506001545f0361032757610320816106f4565b9392505050565b5f6103306106a7565b90505f818311801561034157508115155b61034b578261034d565b815b9050610358816106f4565b95945050505050565b61039f6040518060400160405280601781526020017f736574536e617073686f744761702875696e743235362900000000000000000081525061084c565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b6104106040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e7432353629000081525061084c565b5f546104206301e1338084610a6a565b5f81905515801561043057505f82115b8061044457505f8054118015610444575081155b15610462576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104979190610916565b60405180910390a45060015550565b5f6001545f036104b557505f90565b5f6104be6106a7565b9050805f036104ce575f91505090565b5f6104d860055490565b9190911192915050565b6001546003546104f29042610a7d565b10806104fe5750600154155b1561050557565b5f61050f60055490565b90505f61051a6106a7565b905060045481831161052c578261052e565b815b6105389190610a90565b6002819055426003555f0361056057604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105cc907f000000000000000000000000000000000000000000000000000000000000000090600401610943565b5f604051808303815f87803b1580156105e3575f80fd5b505af11580156105f5573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066d6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e74323536290000000081525061084c565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f80600354426106b79190610a7d565b90505f670de0b6b3a7640000825f546002546106d39190610aa3565b6106dd9190610aa3565b6106e79190610a6a565b6002546103209190610a90565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016107629190610943565b602060405180830381865afa15801561077d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a19190610acd565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610804573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108289190610aff565b60ff16905061083881600a610c29565b6108428487610aa3565b6103589190610a6a565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab9061089c9033908690600401610c72565b602060405180830381865afa1580156108b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108db9190610ca5565b90508061090a57333083604051634a3fa29360e01b815260040161090193929190610cc3565b60405180910390fd5b5050565b805b82525050565b60208101610924828461090e565b92915050565b5f6001600160a01b038216610924565b6109108161092a565b60208101610924828461093a565b61095a8161092a565b8114610964575f80fd5b50565b803561092481610951565b5f60208284031215610985576109855f80fd5b5f6109908484610967565b949350505050565b5f6109248261092a565b5f61092482610998565b610910816109a2565b6020810161092482846109ac565b8061095a565b8035610924816109c3565b5f602082840312156109e7576109e75f80fd5b5f61099084846109c9565b5f8060408385031215610a0657610a065f80fd5b5f610a1185856109c9565b9250506020610a22858286016109c9565b9150509250929050565b801515610910565b602081016109248284610a2c565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610a7857610a78610a42565b500490565b8181038181111561092457610924610a56565b8082018082111561092457610924610a56565b818102808215838204851417610abb57610abb610a56565b5092915050565b8051610924816109c3565b5f60208284031215610ae057610ae05f80fd5b5f6109908484610ac2565b60ff811661095a565b805161092481610aeb565b5f60208284031215610b1257610b125f80fd5b5f6109908484610af4565b80825b6001851115610b5c57808604811115610b3b57610b3b610a56565b6001851615610b4957908102905b8002610b558560011c90565b9450610b20565b94509492505050565b5f82610b7357506001610320565b81610b7f57505f610320565b8160018114610b955760028114610b9f57610bcc565b6001915050610320565b60ff841115610bb057610bb0610a56565b8360020a915084821115610bc657610bc6610a56565b50610320565b5060208310610133831016604e8410600b8410161715610bff575081810a83811115610bfa57610bfa610a56565b610320565b610c0c8484846001610b1d565b92509050818404811115610c2257610c22610a56565b0292915050565b5f6103205f198484610b65565b8281835e505f910152565b5f610c4a825190565b808452602084019350610c61818560208601610c36565b601f01601f19169290920192915050565b60408101610c80828561093a565b81810360208301526109908184610c41565b80151561095a565b805161092481610c92565b5f60208284031215610cb857610cb85f80fd5b5f6109908484610c9a565b60608101610cd1828661093a565b610cde602083018561093a565b81810360408301526103588184610c4156fea26469706673582212202e05a42346b3fb4dbaa4e94119cb4d668e665059606ed583e448b7fe701e22c964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11C JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x69240426 GT PUSH2 0xA9 JUMPI DUP1 PUSH4 0xA4EDCD4C GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xA4EDCD4C EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0xABB85613 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0xAC5A693E EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0xBDF13AF2 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xDF67747A EQ PUSH2 0x29C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x69240426 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x69818A35 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x7FC4E4A0 EQ PUSH2 0x238 JUMPI DUP1 PUSH4 0x99FD8939 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x9C43EB54 EQ PUSH2 0x254 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x45BE2DC7 GT PUSH2 0xEF JUMPI DUP1 PUSH4 0x45BE2DC7 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x5213F9C8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x596EFE6F EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x643D813D EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x671528D4 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D0413C EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x29DB1BE6 EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4169D245 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x17C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x129 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x943 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x18A CALLDATASIZE PUSH1 0x4 PUSH2 0x972 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x9B5 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x9D4 JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0x9F2 JUMP JUMPDEST PUSH2 0x3D2 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA34 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x4E2 JUMP JUMPDEST PUSH2 0x166 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x246 CALLDATASIZE PUSH1 0x4 PUSH2 0x9F2 JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH2 0x129 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1B6 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x129 JUMP JUMPDEST PUSH2 0x129 PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x6A7 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x9D4 JUMP JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF580583 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x30C PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x327 JUMPI PUSH2 0x320 DUP2 PUSH2 0x6F4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x330 PUSH2 0x6A7 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 DUP4 GT DUP1 ISZERO PUSH2 0x341 JUMPI POP DUP2 ISZERO ISZERO JUMPDEST PUSH2 0x34B JUMPI DUP3 PUSH2 0x34D JUMP JUMPDEST DUP2 JUMPDEST SWAP1 POP PUSH2 0x358 DUP2 PUSH2 0x6F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x39F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F744761702875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x84C JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xEB3716D3F8388C182853C1DC98B18931F3A600BBAB31F2FF48631F6412E4997F SWAP1 PUSH0 SWAP1 LOG3 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x410 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657447726F777468526174652875696E743235362C75696E74323536290000 DUP2 MSTORE POP PUSH2 0x84C JUMP JUMPDEST PUSH0 SLOAD PUSH2 0x420 PUSH4 0x1E13380 DUP5 PUSH2 0xA6A JUMP JUMPDEST PUSH0 DUP2 SWAP1 SSTORE ISZERO DUP1 ISZERO PUSH2 0x430 JUMPI POP PUSH0 DUP3 GT JUMPDEST DUP1 PUSH2 0x444 JUMPI POP PUSH0 DUP1 SLOAD GT DUP1 ISZERO PUSH2 0x444 JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH4 0x53B7E645 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH0 SLOAD DUP3 PUSH32 0xA65CBEB0E28A8803A912DAAC67C472C160AA01E2C988755FA424F290321DE608 DUP6 PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x916 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH1 0x1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD PUSH0 SUB PUSH2 0x4B5 JUMPI POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4BE PUSH2 0x6A7 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 SUB PUSH2 0x4CE JUMPI PUSH0 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x4D8 PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH2 0x4F2 SWAP1 TIMESTAMP PUSH2 0xA7D JUMP JUMPDEST LT DUP1 PUSH2 0x4FE JUMPI POP PUSH1 0x1 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x505 JUMPI JUMP JUMPDEST PUSH0 PUSH2 0x50F PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x51A PUSH2 0x6A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 DUP4 GT PUSH2 0x52C JUMPI DUP3 PUSH2 0x52E JUMP JUMPDEST DUP2 JUMPDEST PUSH2 0x538 SWAP2 SWAP1 PUSH2 0xA90 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x3 SSTORE PUSH0 SUB PUSH2 0x560 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F183887 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB62CAD69 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xB62CAD69 SWAP1 PUSH2 0x5CC SWAP1 PUSH32 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x943 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F5 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x3 SLOAD PUSH1 0x2 SLOAD PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x66D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574536E617073686F742875696E743235362C75696E743235362900000000 DUP2 MSTORE POP PUSH2 0x84C JUMP JUMPDEST PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 DUP4 SWAP1 PUSH32 0x2C8C8FCB8C77A0CA21DCC3AB8FC0ADE761557E76B1240CB40EBBEF9FCEE00F7D SWAP1 PUSH0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x6B7 SWAP2 SWAP1 PUSH2 0xA7D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH8 0xDE0B6B3A7640000 DUP3 PUSH0 SLOAD PUSH1 0x2 SLOAD PUSH2 0x6D3 SWAP2 SWAP1 PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x6DD SWAP2 SWAP1 PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x6E7 SWAP2 SWAP1 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x320 SWAP2 SWAP1 PUSH2 0xA90 JUMP JUMPDEST PUSH0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH32 0x0 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x762 SWAP2 SWAP1 PUSH2 0x943 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x7A1 SWAP2 SWAP1 PUSH2 0xACD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH32 0x0 SWAP1 POP PUSH0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x313CE567 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 0x804 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x828 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH2 0x838 DUP2 PUSH1 0xA PUSH2 0xC29 JUMP JUMPDEST PUSH2 0x842 DUP5 DUP8 PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x358 SWAP2 SWAP1 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x89C SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0xC72 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8B7 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 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 0x8DB SWAP2 SWAP1 PUSH2 0xCA5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x90A JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x901 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0x90E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x924 JUMP JUMPDEST PUSH2 0x910 DUP2 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0x93A JUMP JUMPDEST PUSH2 0x95A DUP2 PUSH2 0x92A JUMP JUMPDEST DUP2 EQ PUSH2 0x964 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x924 DUP2 PUSH2 0x951 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x985 JUMPI PUSH2 0x985 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0x967 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x924 DUP3 PUSH2 0x92A JUMP JUMPDEST PUSH0 PUSH2 0x924 DUP3 PUSH2 0x998 JUMP JUMPDEST PUSH2 0x910 DUP2 PUSH2 0x9A2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0x9AC JUMP JUMPDEST DUP1 PUSH2 0x95A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x924 DUP2 PUSH2 0x9C3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9E7 JUMPI PUSH2 0x9E7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0x9C9 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA06 JUMPI PUSH2 0xA06 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xA11 DUP6 DUP6 PUSH2 0x9C9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xA22 DUP6 DUP3 DUP7 ADD PUSH2 0x9C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x910 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x924 DUP3 DUP5 PUSH2 0xA2C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP3 PUSH2 0xA78 JUMPI PUSH2 0xA78 PUSH2 0xA42 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x924 JUMPI PUSH2 0x924 PUSH2 0xA56 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x924 JUMPI PUSH2 0x924 PUSH2 0xA56 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xABB JUMPI PUSH2 0xABB PUSH2 0xA56 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x924 DUP2 PUSH2 0x9C3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0xAC2 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x95A JUMP JUMPDEST DUP1 MLOAD PUSH2 0x924 DUP2 PUSH2 0xAEB JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB12 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0xAF4 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xB5C JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xB3B JUMPI PUSH2 0xB3B PUSH2 0xA56 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xB49 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0xB55 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0xB20 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0xB73 JUMPI POP PUSH1 0x1 PUSH2 0x320 JUMP JUMPDEST DUP2 PUSH2 0xB7F JUMPI POP PUSH0 PUSH2 0x320 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xB95 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xB9F JUMPI PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x320 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xBB0 JUMPI PUSH2 0xBB0 PUSH2 0xA56 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xBC6 JUMPI PUSH2 0xBC6 PUSH2 0xA56 JUMP JUMPDEST POP PUSH2 0x320 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xBFF JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0xBFA JUMPI PUSH2 0xBFA PUSH2 0xA56 JUMP JUMPDEST PUSH2 0x320 JUMP JUMPDEST PUSH2 0xC0C DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xB1D JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xC22 JUMPI PUSH2 0xC22 PUSH2 0xA56 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x320 PUSH0 NOT DUP5 DUP5 PUSH2 0xB65 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0xC4A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xC61 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xC36 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xC80 DUP3 DUP6 PUSH2 0x93A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x990 DUP2 DUP5 PUSH2 0xC41 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x95A JUMP JUMPDEST DUP1 MLOAD PUSH2 0x924 DUP2 PUSH2 0xC92 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB8 JUMPI PUSH2 0xCB8 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x990 DUP5 DUP5 PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xCD1 DUP3 DUP7 PUSH2 0x93A JUMP JUMPDEST PUSH2 0xCDE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x93A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x358 DUP2 DUP5 PUSH2 0xC41 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E SDIV LOG4 0x23 CHAINID 0xB3 0xFB 0x4D 0xBA LOG4 0xE9 COINBASE NOT 0xCB 0x4D PUSH7 0x8E665059606ED5 DUP4 0xE4 BASEFEE 0xB7 INVALID PUSH17 0x1E22C964736F6C63430008190033000000 ","sourceMap":"155:1016:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:31:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;1007:41;;;;;;;;;;;;:::i;1728:26::-;;;;;;8441:597;;;;;;:::i;:::-;;:::i;1225:63::-;;;;;;;;;;;;:::i;6379:216::-;;;;;;:::i;:::-;;:::i;:::-;;1543:38;;;;;;5566:610;;;;;;:::i;:::-;;:::i;6729:397::-;;;:::i;:::-;;;;;;;:::i;7400:694::-;;;:::i;911:41::-;;;;;4843:344;;;;;;:::i;:::-;;:::i;221:35:86:-;;;;;;1635:32:67;;;;;;1099:58;;;;;1055:114:86;1142:20;;1055:114;;1364:34:67;;;;;;9185:327;;;:::i;945:104:86:-;;;;;;:::i;:::-;1013:20;:29;945:104;8441:597:67;8504:7;8536:16;-1:-1:-1;;;;;8527:25:67;:5;-1:-1:-1;;;;;8527:25:67;;8523:59;;8561:21;;-1:-1:-1;;;8561:21:67;;;;;;;;;;;8523:59;8593:20;8616:21;1142:20:86;;;1055:114;8616:21:67;8593:44;;8652:16;;8672:1;8652:21;8648:88;;8696:29;8712:12;8696:15;:29::i;:::-;8689:36;8441:597;-1:-1:-1;;;8441:597:67:o;8648:88::-;8746:30;8779:27;:25;:27::i;:::-;8746:60;;8817:25;8861:22;8846:12;:37;:68;;;;-1:-1:-1;8887:27:67;;;8846:68;8845:134;;8967:12;8845:134;;;8930:22;8845:134;8817:162;;8997:34;9013:17;8997:15;:34::i;:::-;8990:41;8441:597;-1:-1:-1;;;;;8441:597:67:o;6379:216::-;6444:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;6525:11;;6506:45;;6538:12;;6525:11;6506:45;;;;;6562:11;:26;6379:216::o;5566:610::-;5662:53;;;;;;;;;;;;;;;;;;:19;:53::i;:::-;5725:30;5758:19;5810:36;408:10:17;5810:17:67;:36;:::i;:::-;5788:19;:58;;;5862:24;:49;;;;;5910:1;5890:17;:21;5862:49;5861:106;;;;5939:1;5917:19;;:23;:49;;;;-1:-1:-1;5944:22:67;;5917:49;5857:150;;;5988:19;;-1:-1:-1;;;5988:19:67;;;;;;;;;;;5857:150;6086:16;;6065:19;;6041:22;6023:99;6104:17;6023:99;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6133:16:67;:36;-1:-1:-1;5566:610:67:o;6729:397::-;6780:4;6800:16;;6820:1;6800:21;6796:64;;-1:-1:-1;6844:5:67;;6729:397::o;6796:64::-;6870:30;6903:27;:25;:27::i;:::-;6870:60;;6944:22;6970:1;6944:27;6940:70;;6994:5;6987:12;;;6729:397;:::o;6940:70::-;7020:20;7043:21;1142:20:86;;;1055:114;7043:21:67;7082:37;;;;;6729:397;-1:-1:-1;;6729:397:67:o;7400:694::-;7494:16;;7474:17;;7456:35;;:15;:35;:::i;:::-;:54;:79;;;-1:-1:-1;7514:16:67;;:21;7456:79;7452:92;;;7400:694::o;7452:92::-;7554:20;7577:21;1142:20:86;;;1055:114;7577:21:67;7554:44;;7608:30;7641:27;:25;:27::i;:::-;7608:60;;7811:11;;7733:22;7718:12;:37;:77;;7783:12;7718:77;;;7758:22;7718:77;7717:105;;;;:::i;:::-;7679:23;:143;;;7852:15;7832:17;:35;-1:-1:-1;7882:28:67;7878:73;;7919:32;;-1:-1:-1;;;7919:32:67;;;;;;;;;;;7878:73;7962:51;;-1:-1:-1;;;7962:51:67;;-1:-1:-1;;;;;7962:16:67;:33;;;;:51;;7996:16;;7962:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:17;;8044:23;;8028:59;;;;;;;;;;7442:652;;7400:694::o;4843:344::-;4945:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;5007:23;:50;;;5067:17;:38;;;5121:59;;5087:18;;5033:24;;5121:59;;-1:-1:-1;;5121:59:67;4843:344;;:::o;9185:327::-;9243:7;9262:19;9302:17;;9284:15;:35;;;;:::i;:::-;9262:57;;9329:23;9469:4;9442:11;9420:19;;9394:23;;:45;;;;:::i;:::-;:59;;;;:::i;:::-;9393:80;;;;:::i;:::-;9355:23;;:118;;;;:::i;9958:351::-;10028:7;10047:26;10076:16;-1:-1:-1;;;;;10076:25:67;;10102:16;10076:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10047:72;;10130:20;10168:16;10130:55;;10195:16;10214:5;-1:-1:-1;;;;;10214:14:67;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10195:35;;;-1:-1:-1;10287:14:67;10195:35;10287:2;:14;:::i;:::-;10249:33;10264:18;10249:12;:33;:::i;:::-;10248:54;;;;:::i;10523:283::-;10624:61;;-1:-1:-1;;;10624:61:67;;10601:20;;-1:-1:-1;;;;;10624:22:67;:38;;;;:61;;10663:10;;10675:9;;10624:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:84;;10701:15;10696:104;;10752:10;10772:4;10779:9;10739:50;;-1:-1:-1;;;10739:50:67;;;;;;;;;;:::i;:::-;;;;;;;;10696:104;10591:215;10523:283;:::o;90:118:101:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:222::-;345:2;330:18;;358:71;334:9;402:6;358:71;:::i;:::-;214:222;;;;:::o;574:96::-;611:7;-1:-1:-1;;;;;508:54:101;;640:24;442:126;676:118;763:24;781:5;763:24;:::i;800:222::-;931:2;916:18;;944:71;920:9;988:6;944:71;:::i;1355:122::-;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1554:20;;1583:33;1554:20;1583:33;:::i;1628:329::-;1687:6;1736:2;1724:9;1715:7;1711:23;1707:32;1704:119;;;1742:79;155:1016:86;;;1742:79:101;1862:1;1887:53;1932:7;1912:9;1887:53;:::i;:::-;1877:63;1628:329;-1:-1:-1;;;;1628:329:101:o;2177:126::-;2227:9;2260:37;2291:5;2260:37;:::i;2309:158::-;2391:9;2424:37;2455:5;2424:37;:::i;2473:195::-;2592:69;2655:5;2592:69;:::i;2674:286::-;2837:2;2822:18;;2850:103;2826:9;2926:6;2850:103;:::i;2966:122::-;3057:5;3039:24;7:77;3094:139;3165:20;;3194:33;3165:20;3194:33;:::i;3239:329::-;3298:6;3347:2;3335:9;3326:7;3322:23;3318:32;3315:119;;;3353:79;155:1016:86;;;3353:79:101;3473:1;3498:53;3543:7;3523:9;3498:53;:::i;3574:474::-;3642:6;3650;3699:2;3687:9;3678:7;3674:23;3670:32;3667:119;;;3705:79;155:1016:86;;;3705:79:101;3825:1;3850:53;3895:7;3875:9;3850:53;:::i;:::-;3840:63;;3796:117;3952:2;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3923:118;3574:474;;;;;:::o;4150:109::-;4124:13;;4117:21;4231;4054:90;4265:210;4390:2;4375:18;;4403:65;4379:9;4441:6;4403:65;:::i;5143:180::-;-1:-1:-1;;;5188:1:101;5181:88;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5329:180;-1:-1:-1;;;5374:1:101;5367:88;5474:4;5471:1;5464:15;5498:4;5495:1;5488:15;5515:185;5555:1;5645;5635:35;;5650:18;;:::i;:::-;-1:-1:-1;5685:9:101;;5515:185::o;5706:194::-;5837:9;;;5859:11;;;5856:37;;;5873:18;;:::i;5906:191::-;6035:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6103:410::-;6248:9;;;;6410;;6443:15;;;6437:22;;6390:83;6367:139;;6486:18;;:::i;:::-;6151:362;6103:410;;;;:::o;6519:143::-;6601:13;;6623:33;6601:13;6623:33;:::i;6668:351::-;6738:6;6787:2;6775:9;6766:7;6762:23;6758:32;6755:119;;;6793:79;155:1016:86;;;6793:79:101;6913:1;6938:64;6994:7;6974:9;6938:64;:::i;7117:118::-;7100:4;7089:16;;7188:22;7025:86;7241:139;7321:13;;7343:31;7321:13;7343:31;:::i;7386:347::-;7454:6;7503:2;7491:9;7482:7;7478:23;7474:32;7471:119;;;7509:79;155:1016:86;;;7509:79:101;7629:1;7654:62;7708:7;7688:9;7654:62;:::i;7847:848::-;7939:6;7963:5;7977:712;7998:1;7988:8;7985:15;7977:712;;;8093:4;8088:3;8084:14;8078:4;8075:24;8072:50;;;8102:18;;:::i;:::-;8152:1;8142:8;8138:16;8135:451;;;8556:16;;;;8135:451;8607:15;;8647:32;8670:8;7825:1;7821:13;;7739:102;8647:32;8635:44;;7977:712;;;7847:848;;;;;;;:::o;8701:1073::-;8755:5;8946:8;8936:40;;-1:-1:-1;8967:1:101;8969:5;;8936:40;8995:4;8985:36;;-1:-1:-1;9012:1:101;9014:5;;8985:36;9081:4;9129:1;9124:27;;;;9165:1;9160:191;;;;9074:277;;9124:27;9142:1;9133:10;;9144:5;;;9160:191;9205:3;9195:8;9192:17;9189:43;;;9212:18;;:::i;:::-;9261:8;9258:1;9254:16;9245:25;;9296:3;9289:5;9286:14;9283:40;;;9303:18;;:::i;:::-;9336:5;;;9074:277;;9460:2;9450:8;9447:16;9441:3;9435:4;9432:13;9428:36;9410:2;9400:8;9397:16;9392:2;9386:4;9383:12;9379:35;9363:111;9360:246;;;-1:-1:-1;9506:19:101;;;9541:14;;;9538:40;;;9558:18;;:::i;:::-;9591:5;;9360:246;9631:42;9669:3;9659:8;9653:4;9650:1;9631:42;:::i;:::-;9616:57;;;;9705:4;9700:3;9696:14;9689:5;9686:25;9683:51;;;9714:18;;:::i;:::-;9752:16;;8701:1073;-1:-1:-1;;8701:1073:101:o;9780:285::-;9840:5;9954:104;-1:-1:-1;;9981:8:101;9975:4;9954:104;:::i;10351:139::-;10440:6;10435:3;10430;10424:23;-1:-1:-1;10481:1:101;10463:16;;10456:27;10351:139::o;10604:377::-;10692:3;10720:39;10753:5;10151:12;;10071:99;10720:39;10282:19;;;10334:4;10325:14;;10768:78;;10855:65;10913:6;10908:3;10901:4;10894:5;10890:16;10855:65;:::i;:::-;10588:2;10568:14;-1:-1:-1;;10564:28:101;10936:39;;;;;;-1:-1:-1;;10604:377:101:o;10987:423::-;11166:2;11151:18;;11179:71;11155:9;11223:6;11179:71;:::i;:::-;11297:9;11291:4;11287:20;11282:2;11271:9;11267:18;11260:48;11325:78;11398:4;11389:6;11325:78;:::i;11416:116::-;4124:13;;4117:21;11486;4054:90;11538:137;11617:13;;11639:30;11617:13;11639:30;:::i;11681:345::-;11748:6;11797:2;11785:9;11776:7;11772:23;11768:32;11765:119;;;11803:79;155:1016:86;;;11803:79:101;11923:1;11948:61;12001:7;11981:9;11948:61;:::i;12032:533::-;12239:2;12224:18;;12252:71;12228:9;12296:6;12252:71;:::i;:::-;12333:72;12401:2;12390:9;12386:18;12377:6;12333:72;:::i;:::-;12452:9;12446:4;12442:20;12437:2;12426:9;12422:18;12415:48;12480:78;12553:4;12544:6;12480:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"673200","executionCost":"infinite","totalCost":"infinite"},"external":{"ACCESS_CONTROL_MANAGER()":"infinite","CORRELATED_TOKEN()":"infinite","RESILIENT_ORACLE()":"infinite","UNDERLYING_TOKEN()":"infinite","getMaxAllowedExchangeRate()":"infinite","getPrice(address)":"infinite","getUnderlyingAmount()":"2401","growthRatePerSecond()":"2425","isCapped()":"infinite","mockUnderlyingAmount()":"2449","setGrowthRate(uint256,uint256)":"infinite","setMockUnderlyingAmount(uint256)":"22533","setSnapshot(uint256,uint256)":"infinite","setSnapshotGap(uint256)":"infinite","snapshotGap()":"2428","snapshotInterval()":"2384","snapshotMaxExchangeRate()":"2427","snapshotTimestamp()":"2471","updateSnapshot()":"infinite"}},"methodIdentifiers":{"ACCESS_CONTROL_MANAGER()":"45be2dc7","CORRELATED_TOKEN()":"69818a35","RESILIENT_ORACLE()":"a4edcd4c","UNDERLYING_TOKEN()":"29db1be6","getMaxAllowedExchangeRate()":"bdf13af2","getPrice(address)":"41976e09","getUnderlyingAmount()":"abb85613","growthRatePerSecond()":"ac5a693e","isCapped()":"671528d4","mockUnderlyingAmount()":"99fd8939","setGrowthRate(uint256,uint256)":"643d813d","setMockUnderlyingAmount(uint256)":"df67747a","setSnapshot(uint256,uint256)":"7fc4e4a0","setSnapshotGap(uint256)":"5213f9c8","snapshotGap()":"4169d245","snapshotInterval()":"07d0413c","snapshotMaxExchangeRate()":"596efe6f","snapshotTimestamp()":"9c43eb54","updateSnapshot()":"69240426"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"correlatedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resilientOracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"snapshotInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialSnapshotTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"snapshotGap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidGrowthRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialSnapshot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSnapshotMaxExchangeRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newGrowthRatePerSecond\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSnapshotInterval\",\"type\":\"uint256\"}],\"name\":\"GrowthRateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldSnapshotGap\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newSnapshotGap\",\"type\":\"uint256\"}],\"name\":\"SnapshotGapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"maxExchangeRate\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SnapshotUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACCESS_CONTROL_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORRELATED_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESILIENT_ORACLE\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAllowedExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"growthRatePerSecond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockUnderlyingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_annualGrowthRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotInterval\",\"type\":\"uint256\"}],\"name\":\"setGrowthRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMockUnderlyingAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotMaxExchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_snapshotTimestamp\",\"type\":\"uint256\"}],\"name\":\"setSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_snapshotGap\",\"type\":\"uint256\"}],\"name\":\"setSnapshotGap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotGap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotMaxExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getMaxAllowedExchangeRate()\":{\"returns\":{\"_0\":\"maxExchangeRate Maximum allowed exchange rate\"}},\"getPrice(address)\":{\"custom:error\":\"InvalidTokenAddress error is thrown if the token address is invalid\",\"params\":{\"asset\":\"Address of the token\"},\"returns\":{\"_0\":\"price The price of the token in scaled decimal places. It can be capped to a maximum value taking into account the growth rate\"}},\"getUnderlyingAmount()\":{\"returns\":{\"_0\":\"underlyingAmount Amount of underlying token\"}},\"isCapped()\":{\"returns\":{\"_0\":\"isCapped Boolean indicating if the price is capped\"}},\"setGrowthRate(uint256,uint256)\":{\"custom:error\":\"InvalidGrowthRate error is thrown if the growth rate is invalid\",\"custom:event\":\"Emits GrowthRateUpdated event on successful update of the growth rate\",\"params\":{\"_annualGrowthRate\":\"The annual growth rate to set\",\"_snapshotInterval\":\"The snapshot interval to set\"}},\"setSnapshot(uint256,uint256)\":{\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\",\"params\":{\"_snapshotMaxExchangeRate\":\"The exchange rate to set\",\"_snapshotTimestamp\":\"The timestamp to set\"}},\"setSnapshotGap(uint256)\":{\"custom:event\":\"Emits SnapshotGapUpdated event on successful update of the snapshot gap\",\"params\":{\"_snapshotGap\":\"The snapshot gap to set\"}},\"updateSnapshot()\":{\"custom:error\":\"InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\",\"custom:event\":\"Emits SnapshotUpdated event on successful update of the snapshot\"}},\"version\":1},\"userdoc\":{\"errors\":{\"InvalidGrowthRate()\":[{\"notice\":\"Thrown if the growth rate is invalid\"}],\"InvalidInitialSnapshot()\":[{\"notice\":\"Thrown if the initial snapshot is invalid\"}],\"InvalidSnapshotMaxExchangeRate()\":[{\"notice\":\"Thrown if the max snapshot exchange rate is invalid\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Thrown if the token address is invalid\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"@notice Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"GrowthRateUpdated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the growth rate is updated\"},\"SnapshotGapUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot gap is updated\"},\"SnapshotUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the snapshot is updated\"}},\"kind\":\"user\",\"methods\":{\"ACCESS_CONTROL_MANAGER()\":{\"notice\":\"Address of the AccessControlManager contract\"},\"CORRELATED_TOKEN()\":{\"notice\":\"Address of the correlated token\"},\"RESILIENT_ORACLE()\":{\"notice\":\"Address of Resilient Oracle\"},\"UNDERLYING_TOKEN()\":{\"notice\":\"Address of the underlying token\"},\"getMaxAllowedExchangeRate()\":{\"notice\":\"Gets the maximum allowed exchange rate for token\"},\"getPrice(address)\":{\"notice\":\"Fetches the price of the token\"},\"getUnderlyingAmount()\":{\"notice\":\"Gets the underlying amount for correlated token\"},\"isCapped()\":{\"notice\":\"Returns if the price is capped\"},\"setGrowthRate(uint256,uint256)\":{\"notice\":\"Sets the growth rate and snapshot interval\"},\"setSnapshot(uint256,uint256)\":{\"notice\":\"Directly sets the snapshot exchange rate and timestamp\"},\"setSnapshotGap(uint256)\":{\"notice\":\"Sets the snapshot gap\"},\"snapshotGap()\":{\"notice\":\"Gap to add when updating the snapshot\"},\"snapshotInterval()\":{\"notice\":\"Snapshot update interval\"},\"snapshotMaxExchangeRate()\":{\"notice\":\"Last stored snapshot maximum exchange rate\"},\"snapshotTimestamp()\":{\"notice\":\"Last stored snapshot timestamp\"},\"updateSnapshot()\":{\"notice\":\"Updates the snapshot price and timestamp\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/oracles/MockCorrelatedTokenOracle.sol\":\"MockCorrelatedTokenOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICappedOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICappedOracle {\\n    function updateSnapshot() external;\\n}\\n\",\"keccak256\":\"0xad239e65b5e92b3486418c5ccca120247702251f9724cd96657c3cfdc7fedc31\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/oracles/common/CorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OracleInterface, ResilientOracleInterface } from \\\"../../interfaces/OracleInterface.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { SECONDS_PER_YEAR } from \\\"@venusprotocol/solidity-utilities/contracts/constants.sol\\\";\\nimport { IERC20Metadata } from \\\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\\\";\\nimport { ICappedOracle } from \\\"../../interfaces/ICappedOracle.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title CorrelatedTokenOracle\\n * @notice This oracle fetches the price of a token that is correlated to another token.\\n */\\nabstract contract CorrelatedTokenOracle is OracleInterface, ICappedOracle {\\n    /// @notice Address of the correlated token\\n    address public immutable CORRELATED_TOKEN;\\n\\n    /// @notice Address of the underlying token\\n    address public immutable UNDERLYING_TOKEN;\\n\\n    /// @notice Address of Resilient Oracle\\n    ResilientOracleInterface public immutable RESILIENT_ORACLE;\\n\\n    /// @notice Address of the AccessControlManager contract\\n    IAccessControlManagerV8 public immutable ACCESS_CONTROL_MANAGER;\\n\\n    //// @notice Growth rate percentage in seconds. Ex: 1e18 is 100%\\n    uint256 public growthRatePerSecond;\\n\\n    /// @notice Snapshot update interval\\n    uint256 public snapshotInterval;\\n\\n    /// @notice Last stored snapshot maximum exchange rate\\n    uint256 public snapshotMaxExchangeRate;\\n\\n    /// @notice Last stored snapshot timestamp\\n    uint256 public snapshotTimestamp;\\n\\n    /// @notice Gap to add when updating the snapshot\\n    uint256 public snapshotGap;\\n\\n    /// @notice Emitted when the snapshot is updated\\n    event SnapshotUpdated(uint256 indexed maxExchangeRate, uint256 indexed timestamp);\\n\\n    /// @notice Emitted when the growth rate is updated\\n    event GrowthRateUpdated(\\n        uint256 indexed oldGrowthRatePerSecond,\\n        uint256 indexed newGrowthRatePerSecond,\\n        uint256 indexed oldSnapshotInterval,\\n        uint256 newSnapshotInterval\\n    );\\n\\n    /// @notice Emitted when the snapshot gap is updated\\n    event SnapshotGapUpdated(uint256 indexed oldSnapshotGap, uint256 indexed newSnapshotGap);\\n\\n    /// @notice Thrown if the token address is invalid\\n    error InvalidTokenAddress();\\n\\n    /// @notice Thrown if the growth rate is invalid\\n    error InvalidGrowthRate();\\n\\n    /// @notice Thrown if the initial snapshot is invalid\\n    error InvalidInitialSnapshot();\\n\\n    /// @notice Thrown if the max snapshot exchange rate is invalid\\n    error InvalidSnapshotMaxExchangeRate();\\n\\n    /// @notice @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    /**\\n     * @notice Constructor for the implementation contract.\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:error InvalidInitialSnapshot error is thrown if the initial snapshot values are invalid\\n     */\\n    constructor(\\n        address _correlatedToken,\\n        address _underlyingToken,\\n        address _resilientOracle,\\n        uint256 _annualGrowthRate,\\n        uint256 _snapshotInterval,\\n        uint256 _initialSnapshotMaxExchangeRate,\\n        uint256 _initialSnapshotTimestamp,\\n        address _accessControlManager,\\n        uint256 _snapshotGap\\n    ) {\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        if ((_initialSnapshotMaxExchangeRate == 0 || _initialSnapshotTimestamp == 0) && _snapshotInterval > 0) {\\n            revert InvalidInitialSnapshot();\\n        }\\n\\n        ensureNonzeroAddress(_correlatedToken);\\n        ensureNonzeroAddress(_underlyingToken);\\n        ensureNonzeroAddress(_resilientOracle);\\n        ensureNonzeroAddress(_accessControlManager);\\n\\n        CORRELATED_TOKEN = _correlatedToken;\\n        UNDERLYING_TOKEN = _underlyingToken;\\n        RESILIENT_ORACLE = ResilientOracleInterface(_resilientOracle);\\n        snapshotInterval = _snapshotInterval;\\n\\n        snapshotMaxExchangeRate = _initialSnapshotMaxExchangeRate;\\n        snapshotTimestamp = _initialSnapshotTimestamp;\\n        snapshotGap = _snapshotGap;\\n\\n        ACCESS_CONTROL_MANAGER = IAccessControlManagerV8(_accessControlManager);\\n    }\\n\\n    /**\\n     * @notice Directly sets the snapshot exchange rate and timestamp\\n     * @param _snapshotMaxExchangeRate The exchange rate to set\\n     * @param _snapshotTimestamp The timestamp to set\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     */\\n    function setSnapshot(uint256 _snapshotMaxExchangeRate, uint256 _snapshotTimestamp) external {\\n        _checkAccessAllowed(\\\"setSnapshot(uint256,uint256)\\\");\\n\\n        snapshotMaxExchangeRate = _snapshotMaxExchangeRate;\\n        snapshotTimestamp = _snapshotTimestamp;\\n\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Sets the growth rate and snapshot interval\\n     * @param _annualGrowthRate The annual growth rate to set\\n     * @param _snapshotInterval The snapshot interval to set\\n     * @custom:error InvalidGrowthRate error is thrown if the growth rate is invalid\\n     * @custom:event Emits GrowthRateUpdated event on successful update of the growth rate\\n     */\\n    function setGrowthRate(uint256 _annualGrowthRate, uint256 _snapshotInterval) external {\\n        _checkAccessAllowed(\\\"setGrowthRate(uint256,uint256)\\\");\\n        uint256 oldGrowthRatePerSecond = growthRatePerSecond;\\n\\n        growthRatePerSecond = _annualGrowthRate / SECONDS_PER_YEAR;\\n\\n        if ((growthRatePerSecond == 0 && _snapshotInterval > 0) || (growthRatePerSecond > 0 && _snapshotInterval == 0))\\n            revert InvalidGrowthRate();\\n\\n        emit GrowthRateUpdated(oldGrowthRatePerSecond, growthRatePerSecond, snapshotInterval, _snapshotInterval);\\n\\n        snapshotInterval = _snapshotInterval;\\n    }\\n\\n    /**\\n     * @notice Sets the snapshot gap\\n     * @param _snapshotGap The snapshot gap to set\\n     * @custom:event Emits SnapshotGapUpdated event on successful update of the snapshot gap\\n     */\\n    function setSnapshotGap(uint256 _snapshotGap) external {\\n        _checkAccessAllowed(\\\"setSnapshotGap(uint256)\\\");\\n\\n        emit SnapshotGapUpdated(snapshotGap, _snapshotGap);\\n\\n        snapshotGap = _snapshotGap;\\n    }\\n\\n    /**\\n     * @notice Returns if the price is capped\\n     * @return isCapped Boolean indicating if the price is capped\\n     */\\n    function isCapped() external view virtual returns (bool) {\\n        if (snapshotInterval == 0) {\\n            return false;\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n        if (maxAllowedExchangeRate == 0) {\\n            return false;\\n        }\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        return exchangeRate > maxAllowedExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Updates the snapshot price and timestamp\\n     * @custom:event Emits SnapshotUpdated event on successful update of the snapshot\\n     * @custom:error InvalidSnapshotMaxExchangeRate error is thrown if the max snapshot exchange rate is zero\\n     */\\n    function updateSnapshot() public override {\\n        if (block.timestamp - snapshotTimestamp < snapshotInterval || snapshotInterval == 0) return;\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        snapshotMaxExchangeRate =\\n            (exchangeRate > maxAllowedExchangeRate ? maxAllowedExchangeRate : exchangeRate) +\\n            snapshotGap;\\n        snapshotTimestamp = block.timestamp;\\n\\n        if (snapshotMaxExchangeRate == 0) revert InvalidSnapshotMaxExchangeRate();\\n\\n        RESILIENT_ORACLE.updateAssetPrice(UNDERLYING_TOKEN);\\n        emit SnapshotUpdated(snapshotMaxExchangeRate, snapshotTimestamp);\\n    }\\n\\n    /**\\n     * @notice Fetches the price of the token\\n     * @param asset Address of the token\\n     * @return price The price of the token in scaled decimal places. It can be capped\\n     * to a maximum value taking into account the growth rate\\n     * @custom:error InvalidTokenAddress error is thrown if the token address is invalid\\n     */\\n    function getPrice(address asset) public view override returns (uint256) {\\n        if (asset != CORRELATED_TOKEN) revert InvalidTokenAddress();\\n\\n        uint256 exchangeRate = getUnderlyingAmount();\\n\\n        if (snapshotInterval == 0) {\\n            return _calculatePrice(exchangeRate);\\n        }\\n\\n        uint256 maxAllowedExchangeRate = getMaxAllowedExchangeRate();\\n\\n        uint256 finalExchangeRate = (exchangeRate > maxAllowedExchangeRate && maxAllowedExchangeRate != 0)\\n            ? maxAllowedExchangeRate\\n            : exchangeRate;\\n\\n        return _calculatePrice(finalExchangeRate);\\n    }\\n\\n    /**\\n     * @notice Gets the maximum allowed exchange rate for token\\n     * @return maxExchangeRate Maximum allowed exchange rate\\n     */\\n    function getMaxAllowedExchangeRate() public view returns (uint256) {\\n        uint256 timeElapsed = block.timestamp - snapshotTimestamp;\\n        uint256 maxExchangeRate = snapshotMaxExchangeRate +\\n            (snapshotMaxExchangeRate * growthRatePerSecond * timeElapsed) /\\n            1e18;\\n        return maxExchangeRate;\\n    }\\n\\n    /**\\n     * @notice Gets the underlying amount for correlated token\\n     * @return underlyingAmount Amount of underlying token\\n     */\\n    function getUnderlyingAmount() public view virtual returns (uint256);\\n\\n    /**\\n     * @notice Fetches price of the token based on an underlying exchange rate\\n     * @param exchangeRate The underlying exchange rate to use\\n     * @return price The price of the token in scaled decimal places\\n     */\\n    function _calculatePrice(uint256 exchangeRate) internal view returns (uint256) {\\n        uint256 underlyingUSDPrice = RESILIENT_ORACLE.getPrice(UNDERLYING_TOKEN);\\n\\n        IERC20Metadata token = IERC20Metadata(CORRELATED_TOKEN);\\n        uint256 decimals = token.decimals();\\n\\n        return (exchangeRate * underlyingUSDPrice) / (10 ** decimals);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     * @custom:error Unauthorized error is thrown if the call is not allowed\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = ACCESS_CONTROL_MANAGER.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x808b444fa4d1d440dc43de290f1eb59a64646ce9085028b286fa30346305872e\",\"license\":\"BSD-3-Clause\"},\"contracts/test/oracles/MockCorrelatedTokenOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { CorrelatedTokenOracle } from \\\"../../oracles/common/CorrelatedTokenOracle.sol\\\";\\n\\ncontract MockCorrelatedTokenOracle is CorrelatedTokenOracle {\\n    uint256 public mockUnderlyingAmount;\\n\\n    constructor(\\n        address correlatedToken,\\n        address underlyingToken,\\n        address resilientOracle,\\n        uint256 annualGrowthRate,\\n        uint256 snapshotInterval,\\n        uint256 initialSnapshotMaxExchangeRate,\\n        uint256 initialSnapshotTimestamp,\\n        address accessControlManager,\\n        uint256 snapshotGap\\n    )\\n        CorrelatedTokenOracle(\\n            correlatedToken,\\n            underlyingToken,\\n            resilientOracle,\\n            annualGrowthRate,\\n            snapshotInterval,\\n            initialSnapshotMaxExchangeRate,\\n            initialSnapshotTimestamp,\\n            accessControlManager,\\n            snapshotGap\\n        )\\n    {}\\n\\n    function setMockUnderlyingAmount(uint256 amount) external {\\n        mockUnderlyingAmount = amount;\\n    }\\n\\n    function getUnderlyingAmount() public view override returns (uint256) {\\n        return mockUnderlyingAmount;\\n    }\\n}\\n\",\"keccak256\":\"0xb54496dc92004b967806c7ad10cf2d1a2c2d2916efd306bb02f66dcbea7f28bd\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6602,"contract":"contracts/test/oracles/MockCorrelatedTokenOracle.sol:MockCorrelatedTokenOracle","label":"growthRatePerSecond","offset":0,"slot":"0","type":"t_uint256"},{"astId":6605,"contract":"contracts/test/oracles/MockCorrelatedTokenOracle.sol:MockCorrelatedTokenOracle","label":"snapshotInterval","offset":0,"slot":"1","type":"t_uint256"},{"astId":6608,"contract":"contracts/test/oracles/MockCorrelatedTokenOracle.sol:MockCorrelatedTokenOracle","label":"snapshotMaxExchangeRate","offset":0,"slot":"2","type":"t_uint256"},{"astId":6611,"contract":"contracts/test/oracles/MockCorrelatedTokenOracle.sol:MockCorrelatedTokenOracle","label":"snapshotTimestamp","offset":0,"slot":"3","type":"t_uint256"},{"astId":6614,"contract":"contracts/test/oracles/MockCorrelatedTokenOracle.sol:MockCorrelatedTokenOracle","label":"snapshotGap","offset":0,"slot":"4","type":"t_uint256"},{"astId":8750,"contract":"contracts/test/oracles/MockCorrelatedTokenOracle.sol:MockCorrelatedTokenOracle","label":"mockUnderlyingAmount","offset":0,"slot":"5","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"InvalidGrowthRate()":[{"notice":"Thrown if the growth rate is invalid"}],"InvalidInitialSnapshot()":[{"notice":"Thrown if the initial snapshot is invalid"}],"InvalidSnapshotMaxExchangeRate()":[{"notice":"Thrown if the max snapshot exchange rate is invalid"}],"InvalidTokenAddress()":[{"notice":"Thrown if the token address is invalid"}],"Unauthorized(address,address,string)":[{"notice":"@notice Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"GrowthRateUpdated(uint256,uint256,uint256,uint256)":{"notice":"Emitted when the growth rate is updated"},"SnapshotGapUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot gap is updated"},"SnapshotUpdated(uint256,uint256)":{"notice":"Emitted when the snapshot is updated"}},"kind":"user","methods":{"ACCESS_CONTROL_MANAGER()":{"notice":"Address of the AccessControlManager contract"},"CORRELATED_TOKEN()":{"notice":"Address of the correlated token"},"RESILIENT_ORACLE()":{"notice":"Address of Resilient Oracle"},"UNDERLYING_TOKEN()":{"notice":"Address of the underlying token"},"getMaxAllowedExchangeRate()":{"notice":"Gets the maximum allowed exchange rate for token"},"getPrice(address)":{"notice":"Fetches the price of the token"},"getUnderlyingAmount()":{"notice":"Gets the underlying amount for correlated token"},"isCapped()":{"notice":"Returns if the price is capped"},"setGrowthRate(uint256,uint256)":{"notice":"Sets the growth rate and snapshot interval"},"setSnapshot(uint256,uint256)":{"notice":"Directly sets the snapshot exchange rate and timestamp"},"setSnapshotGap(uint256)":{"notice":"Sets the snapshot gap"},"snapshotGap()":{"notice":"Gap to add when updating the snapshot"},"snapshotInterval()":{"notice":"Snapshot update interval"},"snapshotMaxExchangeRate()":{"notice":"Last stored snapshot maximum exchange rate"},"snapshotTimestamp()":{"notice":"Last stored snapshot timestamp"},"updateSnapshot()":{"notice":"Updates the snapshot price and timestamp"}},"version":1}}},"contracts/test/oracles/MockERC20.sol":{"MockERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1251":{"entryPoint":null,"id":1251,"parameterSlots":2,"returnSlots":0},"@_8835":{"entryPoint":null,"id":8835,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":280,"id":1781,"parameterSlots":3,"returnSlots":0},"@_mint_1610":{"entryPoint":122,"id":1610,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":428,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":491,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":550,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory":{"entryPoint":567,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1433,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1511,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":349,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":376,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1492,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":1118,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":1389,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":1190,"id":null,"parameterSlots":3,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":1402,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":844,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":818,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":757,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":907,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":417,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":713,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":305,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":1098,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":693,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":285,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":806,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":771,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":533,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:13622:101","nodeType":"YulBlock","src":"0:13622:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"423:28:101","nodeType":"YulBlock","src":"423:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:101","nodeType":"YulLiteral","src":"440:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:101","nodeType":"YulLiteral","src":"443:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:101","nodeType":"YulIdentifier","src":"433:6:101"},"nativeSrc":"433:12:101","nodeType":"YulFunctionCall","src":"433:12:101"},"nativeSrc":"433:12:101","nodeType":"YulExpressionStatement","src":"433:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:101","nodeType":"YulFunctionDefinition","src":"334:117:101"},{"body":{"nativeSrc":"546:28:101","nodeType":"YulBlock","src":"546:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:101","nodeType":"YulLiteral","src":"563:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:101","nodeType":"YulLiteral","src":"566:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:101","nodeType":"YulIdentifier","src":"556:6:101"},"nativeSrc":"556:12:101","nodeType":"YulFunctionCall","src":"556:12:101"},"nativeSrc":"556:12:101","nodeType":"YulExpressionStatement","src":"556:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:101","nodeType":"YulFunctionDefinition","src":"457:117:101"},{"body":{"nativeSrc":"628:54:101","nodeType":"YulBlock","src":"628:54:101","statements":[{"nativeSrc":"638:38:101","nodeType":"YulAssignment","src":"638:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:101","nodeType":"YulIdentifier","src":"656:5:101"},{"kind":"number","nativeSrc":"663:2:101","nodeType":"YulLiteral","src":"663:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:101","nodeType":"YulIdentifier","src":"652:3:101"},"nativeSrc":"652:14:101","nodeType":"YulFunctionCall","src":"652:14:101"},{"arguments":[{"kind":"number","nativeSrc":"672:2:101","nodeType":"YulLiteral","src":"672:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:101","nodeType":"YulIdentifier","src":"668:3:101"},"nativeSrc":"668:7:101","nodeType":"YulFunctionCall","src":"668:7:101"}],"functionName":{"name":"and","nativeSrc":"648:3:101","nodeType":"YulIdentifier","src":"648:3:101"},"nativeSrc":"648:28:101","nodeType":"YulFunctionCall","src":"648:28:101"},"variableNames":[{"name":"result","nativeSrc":"638:6:101","nodeType":"YulIdentifier","src":"638:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:101","nodeType":"YulTypedName","src":"611:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:101","nodeType":"YulTypedName","src":"621:6:101","type":""}],"src":"580:102:101"},{"body":{"nativeSrc":"716:152:101","nodeType":"YulBlock","src":"716:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:101","nodeType":"YulLiteral","src":"733:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:101","nodeType":"YulLiteral","src":"736:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:101","nodeType":"YulIdentifier","src":"726:6:101"},"nativeSrc":"726:88:101","nodeType":"YulFunctionCall","src":"726:88:101"},"nativeSrc":"726:88:101","nodeType":"YulExpressionStatement","src":"726:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:101","nodeType":"YulLiteral","src":"830:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:101","nodeType":"YulLiteral","src":"833:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:101","nodeType":"YulIdentifier","src":"823:6:101"},"nativeSrc":"823:15:101","nodeType":"YulFunctionCall","src":"823:15:101"},"nativeSrc":"823:15:101","nodeType":"YulExpressionStatement","src":"823:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:101","nodeType":"YulLiteral","src":"854:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:101","nodeType":"YulLiteral","src":"857:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:101","nodeType":"YulIdentifier","src":"847:6:101"},"nativeSrc":"847:15:101","nodeType":"YulFunctionCall","src":"847:15:101"},"nativeSrc":"847:15:101","nodeType":"YulExpressionStatement","src":"847:15:101"}]},"name":"panic_error_0x41","nativeSrc":"688:180:101","nodeType":"YulFunctionDefinition","src":"688:180:101"},{"body":{"nativeSrc":"917:238:101","nodeType":"YulBlock","src":"917:238:101","statements":[{"nativeSrc":"927:58:101","nodeType":"YulVariableDeclaration","src":"927:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:101","nodeType":"YulIdentifier","src":"949:6:101"},{"arguments":[{"name":"size","nativeSrc":"979:4:101","nodeType":"YulIdentifier","src":"979:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:101","nodeType":"YulIdentifier","src":"957:21:101"},"nativeSrc":"957:27:101","nodeType":"YulFunctionCall","src":"957:27:101"}],"functionName":{"name":"add","nativeSrc":"945:3:101","nodeType":"YulIdentifier","src":"945:3:101"},"nativeSrc":"945:40:101","nodeType":"YulFunctionCall","src":"945:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:101","nodeType":"YulTypedName","src":"931:10:101","type":""}]},{"body":{"nativeSrc":"1096:22:101","nodeType":"YulBlock","src":"1096:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:101","nodeType":"YulIdentifier","src":"1098:16:101"},"nativeSrc":"1098:18:101","nodeType":"YulFunctionCall","src":"1098:18:101"},"nativeSrc":"1098:18:101","nodeType":"YulExpressionStatement","src":"1098:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:101","nodeType":"YulIdentifier","src":"1039:10:101"},{"kind":"number","nativeSrc":"1051:18:101","nodeType":"YulLiteral","src":"1051:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:101","nodeType":"YulIdentifier","src":"1036:2:101"},"nativeSrc":"1036:34:101","nodeType":"YulFunctionCall","src":"1036:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:101","nodeType":"YulIdentifier","src":"1075:10:101"},{"name":"memPtr","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"}],"functionName":{"name":"lt","nativeSrc":"1072:2:101","nodeType":"YulIdentifier","src":"1072:2:101"},"nativeSrc":"1072:22:101","nodeType":"YulFunctionCall","src":"1072:22:101"}],"functionName":{"name":"or","nativeSrc":"1033:2:101","nodeType":"YulIdentifier","src":"1033:2:101"},"nativeSrc":"1033:62:101","nodeType":"YulFunctionCall","src":"1033:62:101"},"nativeSrc":"1030:88:101","nodeType":"YulIf","src":"1030:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:101","nodeType":"YulLiteral","src":"1134:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:101","nodeType":"YulIdentifier","src":"1138:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:101","nodeType":"YulIdentifier","src":"1127:6:101"},"nativeSrc":"1127:22:101","nodeType":"YulFunctionCall","src":"1127:22:101"},"nativeSrc":"1127:22:101","nodeType":"YulExpressionStatement","src":"1127:22:101"}]},"name":"finalize_allocation","nativeSrc":"874:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:101","nodeType":"YulTypedName","src":"903:6:101","type":""},{"name":"size","nativeSrc":"911:4:101","nodeType":"YulTypedName","src":"911:4:101","type":""}],"src":"874:281:101"},{"body":{"nativeSrc":"1202:88:101","nodeType":"YulBlock","src":"1202:88:101","statements":[{"nativeSrc":"1212:30:101","nodeType":"YulAssignment","src":"1212:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:101","nodeType":"YulIdentifier","src":"1222:18:101"},"nativeSrc":"1222:20:101","nodeType":"YulFunctionCall","src":"1222:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:101","nodeType":"YulIdentifier","src":"1212:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:101","nodeType":"YulIdentifier","src":"1271:6:101"},{"name":"size","nativeSrc":"1279:4:101","nodeType":"YulIdentifier","src":"1279:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:101","nodeType":"YulIdentifier","src":"1251:19:101"},"nativeSrc":"1251:33:101","nodeType":"YulFunctionCall","src":"1251:33:101"},"nativeSrc":"1251:33:101","nodeType":"YulExpressionStatement","src":"1251:33:101"}]},"name":"allocate_memory","nativeSrc":"1161:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:101","nodeType":"YulTypedName","src":"1186:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:101","nodeType":"YulTypedName","src":"1195:6:101","type":""}],"src":"1161:129:101"},{"body":{"nativeSrc":"1363:241:101","nodeType":"YulBlock","src":"1363:241:101","statements":[{"body":{"nativeSrc":"1468:22:101","nodeType":"YulBlock","src":"1468:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:101","nodeType":"YulIdentifier","src":"1470:16:101"},"nativeSrc":"1470:18:101","nodeType":"YulFunctionCall","src":"1470:18:101"},"nativeSrc":"1470:18:101","nodeType":"YulExpressionStatement","src":"1470:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:101","nodeType":"YulIdentifier","src":"1440:6:101"},{"kind":"number","nativeSrc":"1448:18:101","nodeType":"YulLiteral","src":"1448:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:101","nodeType":"YulIdentifier","src":"1437:2:101"},"nativeSrc":"1437:30:101","nodeType":"YulFunctionCall","src":"1437:30:101"},"nativeSrc":"1434:56:101","nodeType":"YulIf","src":"1434:56:101"},{"nativeSrc":"1500:37:101","nodeType":"YulAssignment","src":"1500:37:101","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:101","nodeType":"YulIdentifier","src":"1530:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:101","nodeType":"YulIdentifier","src":"1508:21:101"},"nativeSrc":"1508:29:101","nodeType":"YulFunctionCall","src":"1508:29:101"},"variableNames":[{"name":"size","nativeSrc":"1500:4:101","nodeType":"YulIdentifier","src":"1500:4:101"}]},{"nativeSrc":"1574:23:101","nodeType":"YulAssignment","src":"1574:23:101","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:101","nodeType":"YulIdentifier","src":"1586:4:101"},{"kind":"number","nativeSrc":"1592:4:101","nodeType":"YulLiteral","src":"1592:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:101","nodeType":"YulIdentifier","src":"1582:3:101"},"nativeSrc":"1582:15:101","nodeType":"YulFunctionCall","src":"1582:15:101"},"variableNames":[{"name":"size","nativeSrc":"1574:4:101","nodeType":"YulIdentifier","src":"1574:4:101"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:101","nodeType":"YulTypedName","src":"1347:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:101","nodeType":"YulTypedName","src":"1358:4:101","type":""}],"src":"1296:308:101"},{"body":{"nativeSrc":"1672:77:101","nodeType":"YulBlock","src":"1672:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1689:3:101","nodeType":"YulIdentifier","src":"1689:3:101"},{"name":"src","nativeSrc":"1694:3:101","nodeType":"YulIdentifier","src":"1694:3:101"},{"name":"length","nativeSrc":"1699:6:101","nodeType":"YulIdentifier","src":"1699:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"1683:5:101","nodeType":"YulIdentifier","src":"1683:5:101"},"nativeSrc":"1683:23:101","nodeType":"YulFunctionCall","src":"1683:23:101"},"nativeSrc":"1683:23:101","nodeType":"YulExpressionStatement","src":"1683:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1726:3:101","nodeType":"YulIdentifier","src":"1726:3:101"},{"name":"length","nativeSrc":"1731:6:101","nodeType":"YulIdentifier","src":"1731:6:101"}],"functionName":{"name":"add","nativeSrc":"1722:3:101","nodeType":"YulIdentifier","src":"1722:3:101"},"nativeSrc":"1722:16:101","nodeType":"YulFunctionCall","src":"1722:16:101"},{"kind":"number","nativeSrc":"1740:1:101","nodeType":"YulLiteral","src":"1740:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1715:6:101","nodeType":"YulIdentifier","src":"1715:6:101"},"nativeSrc":"1715:27:101","nodeType":"YulFunctionCall","src":"1715:27:101"},"nativeSrc":"1715:27:101","nodeType":"YulExpressionStatement","src":"1715:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:101","nodeType":"YulTypedName","src":"1654:3:101","type":""},{"name":"dst","nativeSrc":"1659:3:101","nodeType":"YulTypedName","src":"1659:3:101","type":""},{"name":"length","nativeSrc":"1664:6:101","nodeType":"YulTypedName","src":"1664:6:101","type":""}],"src":"1610:139:101"},{"body":{"nativeSrc":"1850:339:101","nodeType":"YulBlock","src":"1850:339:101","statements":[{"nativeSrc":"1860:75:101","nodeType":"YulAssignment","src":"1860:75:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1927:6:101","nodeType":"YulIdentifier","src":"1927:6:101"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1885:41:101","nodeType":"YulIdentifier","src":"1885:41:101"},"nativeSrc":"1885:49:101","nodeType":"YulFunctionCall","src":"1885:49:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"1869:15:101","nodeType":"YulIdentifier","src":"1869:15:101"},"nativeSrc":"1869:66:101","nodeType":"YulFunctionCall","src":"1869:66:101"},"variableNames":[{"name":"array","nativeSrc":"1860:5:101","nodeType":"YulIdentifier","src":"1860:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1951:5:101","nodeType":"YulIdentifier","src":"1951:5:101"},{"name":"length","nativeSrc":"1958:6:101","nodeType":"YulIdentifier","src":"1958:6:101"}],"functionName":{"name":"mstore","nativeSrc":"1944:6:101","nodeType":"YulIdentifier","src":"1944:6:101"},"nativeSrc":"1944:21:101","nodeType":"YulFunctionCall","src":"1944:21:101"},"nativeSrc":"1944:21:101","nodeType":"YulExpressionStatement","src":"1944:21:101"},{"nativeSrc":"1974:27:101","nodeType":"YulVariableDeclaration","src":"1974:27:101","value":{"arguments":[{"name":"array","nativeSrc":"1989:5:101","nodeType":"YulIdentifier","src":"1989:5:101"},{"kind":"number","nativeSrc":"1996:4:101","nodeType":"YulLiteral","src":"1996:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1985:3:101","nodeType":"YulIdentifier","src":"1985:3:101"},"nativeSrc":"1985:16:101","nodeType":"YulFunctionCall","src":"1985:16:101"},"variables":[{"name":"dst","nativeSrc":"1978:3:101","nodeType":"YulTypedName","src":"1978:3:101","type":""}]},{"body":{"nativeSrc":"2039:83:101","nodeType":"YulBlock","src":"2039:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2041:77:101","nodeType":"YulIdentifier","src":"2041:77:101"},"nativeSrc":"2041:79:101","nodeType":"YulFunctionCall","src":"2041:79:101"},"nativeSrc":"2041:79:101","nodeType":"YulExpressionStatement","src":"2041:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2020:3:101","nodeType":"YulIdentifier","src":"2020:3:101"},{"name":"length","nativeSrc":"2025:6:101","nodeType":"YulIdentifier","src":"2025:6:101"}],"functionName":{"name":"add","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"},"nativeSrc":"2016:16:101","nodeType":"YulFunctionCall","src":"2016:16:101"},{"name":"end","nativeSrc":"2034:3:101","nodeType":"YulIdentifier","src":"2034:3:101"}],"functionName":{"name":"gt","nativeSrc":"2013:2:101","nodeType":"YulIdentifier","src":"2013:2:101"},"nativeSrc":"2013:25:101","nodeType":"YulFunctionCall","src":"2013:25:101"},"nativeSrc":"2010:112:101","nodeType":"YulIf","src":"2010:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2166:3:101","nodeType":"YulIdentifier","src":"2166:3:101"},{"name":"dst","nativeSrc":"2171:3:101","nodeType":"YulIdentifier","src":"2171:3:101"},{"name":"length","nativeSrc":"2176:6:101","nodeType":"YulIdentifier","src":"2176:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2131:34:101","nodeType":"YulIdentifier","src":"2131:34:101"},"nativeSrc":"2131:52:101","nodeType":"YulFunctionCall","src":"2131:52:101"},"nativeSrc":"2131:52:101","nodeType":"YulExpressionStatement","src":"2131:52:101"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1755:434:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1823:3:101","nodeType":"YulTypedName","src":"1823:3:101","type":""},{"name":"length","nativeSrc":"1828:6:101","nodeType":"YulTypedName","src":"1828:6:101","type":""},{"name":"end","nativeSrc":"1836:3:101","nodeType":"YulTypedName","src":"1836:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1844:5:101","nodeType":"YulTypedName","src":"1844:5:101","type":""}],"src":"1755:434:101"},{"body":{"nativeSrc":"2282:282:101","nodeType":"YulBlock","src":"2282:282:101","statements":[{"body":{"nativeSrc":"2331:83:101","nodeType":"YulBlock","src":"2331:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2333:77:101","nodeType":"YulIdentifier","src":"2333:77:101"},"nativeSrc":"2333:79:101","nodeType":"YulFunctionCall","src":"2333:79:101"},"nativeSrc":"2333:79:101","nodeType":"YulExpressionStatement","src":"2333:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2310:6:101","nodeType":"YulIdentifier","src":"2310:6:101"},{"kind":"number","nativeSrc":"2318:4:101","nodeType":"YulLiteral","src":"2318:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2306:3:101","nodeType":"YulIdentifier","src":"2306:3:101"},"nativeSrc":"2306:17:101","nodeType":"YulFunctionCall","src":"2306:17:101"},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulIdentifier","src":"2325:3:101"}],"functionName":{"name":"slt","nativeSrc":"2302:3:101","nodeType":"YulIdentifier","src":"2302:3:101"},"nativeSrc":"2302:27:101","nodeType":"YulFunctionCall","src":"2302:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2295:6:101","nodeType":"YulIdentifier","src":"2295:6:101"},"nativeSrc":"2295:35:101","nodeType":"YulFunctionCall","src":"2295:35:101"},"nativeSrc":"2292:122:101","nodeType":"YulIf","src":"2292:122:101"},{"nativeSrc":"2423:27:101","nodeType":"YulVariableDeclaration","src":"2423:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2443:6:101","nodeType":"YulIdentifier","src":"2443:6:101"}],"functionName":{"name":"mload","nativeSrc":"2437:5:101","nodeType":"YulIdentifier","src":"2437:5:101"},"nativeSrc":"2437:13:101","nodeType":"YulFunctionCall","src":"2437:13:101"},"variables":[{"name":"length","nativeSrc":"2427:6:101","nodeType":"YulTypedName","src":"2427:6:101","type":""}]},{"nativeSrc":"2459:99:101","nodeType":"YulAssignment","src":"2459:99:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2531:6:101","nodeType":"YulIdentifier","src":"2531:6:101"},{"kind":"number","nativeSrc":"2539:4:101","nodeType":"YulLiteral","src":"2539:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2527:3:101","nodeType":"YulIdentifier","src":"2527:3:101"},"nativeSrc":"2527:17:101","nodeType":"YulFunctionCall","src":"2527:17:101"},{"name":"length","nativeSrc":"2546:6:101","nodeType":"YulIdentifier","src":"2546:6:101"},{"name":"end","nativeSrc":"2554:3:101","nodeType":"YulIdentifier","src":"2554:3:101"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2468:58:101","nodeType":"YulIdentifier","src":"2468:58:101"},"nativeSrc":"2468:90:101","nodeType":"YulFunctionCall","src":"2468:90:101"},"variableNames":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2209:355:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2260:6:101","nodeType":"YulTypedName","src":"2260:6:101","type":""},{"name":"end","nativeSrc":"2268:3:101","nodeType":"YulTypedName","src":"2268:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2276:5:101","nodeType":"YulTypedName","src":"2276:5:101","type":""}],"src":"2209:355:101"},{"body":{"nativeSrc":"2613:43:101","nodeType":"YulBlock","src":"2613:43:101","statements":[{"nativeSrc":"2623:27:101","nodeType":"YulAssignment","src":"2623:27:101","value":{"arguments":[{"name":"value","nativeSrc":"2638:5:101","nodeType":"YulIdentifier","src":"2638:5:101"},{"kind":"number","nativeSrc":"2645:4:101","nodeType":"YulLiteral","src":"2645:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2634:3:101","nodeType":"YulIdentifier","src":"2634:3:101"},"nativeSrc":"2634:16:101","nodeType":"YulFunctionCall","src":"2634:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2623:7:101","nodeType":"YulIdentifier","src":"2623:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2570:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2595:5:101","nodeType":"YulTypedName","src":"2595:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2605:7:101","nodeType":"YulTypedName","src":"2605:7:101","type":""}],"src":"2570:86:101"},{"body":{"nativeSrc":"2703:77:101","nodeType":"YulBlock","src":"2703:77:101","statements":[{"body":{"nativeSrc":"2758:16:101","nodeType":"YulBlock","src":"2758:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2767:1:101","nodeType":"YulLiteral","src":"2767:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2770:1:101","nodeType":"YulLiteral","src":"2770:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2760:6:101","nodeType":"YulIdentifier","src":"2760:6:101"},"nativeSrc":"2760:12:101","nodeType":"YulFunctionCall","src":"2760:12:101"},"nativeSrc":"2760:12:101","nodeType":"YulExpressionStatement","src":"2760:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2726:5:101","nodeType":"YulIdentifier","src":"2726:5:101"},{"arguments":[{"name":"value","nativeSrc":"2749:5:101","nodeType":"YulIdentifier","src":"2749:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2733:15:101","nodeType":"YulIdentifier","src":"2733:15:101"},"nativeSrc":"2733:22:101","nodeType":"YulFunctionCall","src":"2733:22:101"}],"functionName":{"name":"eq","nativeSrc":"2723:2:101","nodeType":"YulIdentifier","src":"2723:2:101"},"nativeSrc":"2723:33:101","nodeType":"YulFunctionCall","src":"2723:33:101"}],"functionName":{"name":"iszero","nativeSrc":"2716:6:101","nodeType":"YulIdentifier","src":"2716:6:101"},"nativeSrc":"2716:41:101","nodeType":"YulFunctionCall","src":"2716:41:101"},"nativeSrc":"2713:61:101","nodeType":"YulIf","src":"2713:61:101"}]},"name":"validator_revert_t_uint8","nativeSrc":"2662:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2696:5:101","nodeType":"YulTypedName","src":"2696:5:101","type":""}],"src":"2662:118:101"},{"body":{"nativeSrc":"2847:78:101","nodeType":"YulBlock","src":"2847:78:101","statements":[{"nativeSrc":"2857:22:101","nodeType":"YulAssignment","src":"2857:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"mload","nativeSrc":"2866:5:101","nodeType":"YulIdentifier","src":"2866:5:101"},"nativeSrc":"2866:13:101","nodeType":"YulFunctionCall","src":"2866:13:101"},"variableNames":[{"name":"value","nativeSrc":"2857:5:101","nodeType":"YulIdentifier","src":"2857:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2913:5:101","nodeType":"YulIdentifier","src":"2913:5:101"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2888:24:101","nodeType":"YulIdentifier","src":"2888:24:101"},"nativeSrc":"2888:31:101","nodeType":"YulFunctionCall","src":"2888:31:101"},"nativeSrc":"2888:31:101","nodeType":"YulExpressionStatement","src":"2888:31:101"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2786:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2825:6:101","nodeType":"YulTypedName","src":"2825:6:101","type":""},{"name":"end","nativeSrc":"2833:3:101","nodeType":"YulTypedName","src":"2833:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2841:5:101","nodeType":"YulTypedName","src":"2841:5:101","type":""}],"src":"2786:139:101"},{"body":{"nativeSrc":"3060:876:101","nodeType":"YulBlock","src":"3060:876:101","statements":[{"body":{"nativeSrc":"3106:83:101","nodeType":"YulBlock","src":"3106:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3108:77:101","nodeType":"YulIdentifier","src":"3108:77:101"},"nativeSrc":"3108:79:101","nodeType":"YulFunctionCall","src":"3108:79:101"},"nativeSrc":"3108:79:101","nodeType":"YulExpressionStatement","src":"3108:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3081:7:101","nodeType":"YulIdentifier","src":"3081:7:101"},{"name":"headStart","nativeSrc":"3090:9:101","nodeType":"YulIdentifier","src":"3090:9:101"}],"functionName":{"name":"sub","nativeSrc":"3077:3:101","nodeType":"YulIdentifier","src":"3077:3:101"},"nativeSrc":"3077:23:101","nodeType":"YulFunctionCall","src":"3077:23:101"},{"kind":"number","nativeSrc":"3102:2:101","nodeType":"YulLiteral","src":"3102:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3073:3:101","nodeType":"YulIdentifier","src":"3073:3:101"},"nativeSrc":"3073:32:101","nodeType":"YulFunctionCall","src":"3073:32:101"},"nativeSrc":"3070:119:101","nodeType":"YulIf","src":"3070:119:101"},{"nativeSrc":"3199:291:101","nodeType":"YulBlock","src":"3199:291:101","statements":[{"nativeSrc":"3214:38:101","nodeType":"YulVariableDeclaration","src":"3214:38:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3238:9:101","nodeType":"YulIdentifier","src":"3238:9:101"},{"kind":"number","nativeSrc":"3249:1:101","nodeType":"YulLiteral","src":"3249:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3234:3:101","nodeType":"YulIdentifier","src":"3234:3:101"},"nativeSrc":"3234:17:101","nodeType":"YulFunctionCall","src":"3234:17:101"}],"functionName":{"name":"mload","nativeSrc":"3228:5:101","nodeType":"YulIdentifier","src":"3228:5:101"},"nativeSrc":"3228:24:101","nodeType":"YulFunctionCall","src":"3228:24:101"},"variables":[{"name":"offset","nativeSrc":"3218:6:101","nodeType":"YulTypedName","src":"3218:6:101","type":""}]},{"body":{"nativeSrc":"3299:83:101","nodeType":"YulBlock","src":"3299:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3301:77:101","nodeType":"YulIdentifier","src":"3301:77:101"},"nativeSrc":"3301:79:101","nodeType":"YulFunctionCall","src":"3301:79:101"},"nativeSrc":"3301:79:101","nodeType":"YulExpressionStatement","src":"3301:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3271:6:101","nodeType":"YulIdentifier","src":"3271:6:101"},{"kind":"number","nativeSrc":"3279:18:101","nodeType":"YulLiteral","src":"3279:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3268:2:101","nodeType":"YulIdentifier","src":"3268:2:101"},"nativeSrc":"3268:30:101","nodeType":"YulFunctionCall","src":"3268:30:101"},"nativeSrc":"3265:117:101","nodeType":"YulIf","src":"3265:117:101"},{"nativeSrc":"3396:84:101","nodeType":"YulAssignment","src":"3396:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3452:9:101","nodeType":"YulIdentifier","src":"3452:9:101"},{"name":"offset","nativeSrc":"3463:6:101","nodeType":"YulIdentifier","src":"3463:6:101"}],"functionName":{"name":"add","nativeSrc":"3448:3:101","nodeType":"YulIdentifier","src":"3448:3:101"},"nativeSrc":"3448:22:101","nodeType":"YulFunctionCall","src":"3448:22:101"},{"name":"dataEnd","nativeSrc":"3472:7:101","nodeType":"YulIdentifier","src":"3472:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3406:41:101","nodeType":"YulIdentifier","src":"3406:41:101"},"nativeSrc":"3406:74:101","nodeType":"YulFunctionCall","src":"3406:74:101"},"variableNames":[{"name":"value0","nativeSrc":"3396:6:101","nodeType":"YulIdentifier","src":"3396:6:101"}]}]},{"nativeSrc":"3500:292:101","nodeType":"YulBlock","src":"3500:292:101","statements":[{"nativeSrc":"3515:39:101","nodeType":"YulVariableDeclaration","src":"3515:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3539:9:101","nodeType":"YulIdentifier","src":"3539:9:101"},{"kind":"number","nativeSrc":"3550:2:101","nodeType":"YulLiteral","src":"3550:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3535:3:101","nodeType":"YulIdentifier","src":"3535:3:101"},"nativeSrc":"3535:18:101","nodeType":"YulFunctionCall","src":"3535:18:101"}],"functionName":{"name":"mload","nativeSrc":"3529:5:101","nodeType":"YulIdentifier","src":"3529:5:101"},"nativeSrc":"3529:25:101","nodeType":"YulFunctionCall","src":"3529:25:101"},"variables":[{"name":"offset","nativeSrc":"3519:6:101","nodeType":"YulTypedName","src":"3519:6:101","type":""}]},{"body":{"nativeSrc":"3601:83:101","nodeType":"YulBlock","src":"3601:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3603:77:101","nodeType":"YulIdentifier","src":"3603:77:101"},"nativeSrc":"3603:79:101","nodeType":"YulFunctionCall","src":"3603:79:101"},"nativeSrc":"3603:79:101","nodeType":"YulExpressionStatement","src":"3603:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3573:6:101","nodeType":"YulIdentifier","src":"3573:6:101"},{"kind":"number","nativeSrc":"3581:18:101","nodeType":"YulLiteral","src":"3581:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3570:2:101","nodeType":"YulIdentifier","src":"3570:2:101"},"nativeSrc":"3570:30:101","nodeType":"YulFunctionCall","src":"3570:30:101"},"nativeSrc":"3567:117:101","nodeType":"YulIf","src":"3567:117:101"},{"nativeSrc":"3698:84:101","nodeType":"YulAssignment","src":"3698:84:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3754:9:101","nodeType":"YulIdentifier","src":"3754:9:101"},{"name":"offset","nativeSrc":"3765:6:101","nodeType":"YulIdentifier","src":"3765:6:101"}],"functionName":{"name":"add","nativeSrc":"3750:3:101","nodeType":"YulIdentifier","src":"3750:3:101"},"nativeSrc":"3750:22:101","nodeType":"YulFunctionCall","src":"3750:22:101"},{"name":"dataEnd","nativeSrc":"3774:7:101","nodeType":"YulIdentifier","src":"3774:7:101"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3708:41:101","nodeType":"YulIdentifier","src":"3708:41:101"},"nativeSrc":"3708:74:101","nodeType":"YulFunctionCall","src":"3708:74:101"},"variableNames":[{"name":"value1","nativeSrc":"3698:6:101","nodeType":"YulIdentifier","src":"3698:6:101"}]}]},{"nativeSrc":"3802:127:101","nodeType":"YulBlock","src":"3802:127:101","statements":[{"nativeSrc":"3817:16:101","nodeType":"YulVariableDeclaration","src":"3817:16:101","value":{"kind":"number","nativeSrc":"3831:2:101","nodeType":"YulLiteral","src":"3831:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3821:6:101","nodeType":"YulTypedName","src":"3821:6:101","type":""}]},{"nativeSrc":"3847:72:101","nodeType":"YulAssignment","src":"3847:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3891:9:101","nodeType":"YulIdentifier","src":"3891:9:101"},{"name":"offset","nativeSrc":"3902:6:101","nodeType":"YulIdentifier","src":"3902:6:101"}],"functionName":{"name":"add","nativeSrc":"3887:3:101","nodeType":"YulIdentifier","src":"3887:3:101"},"nativeSrc":"3887:22:101","nodeType":"YulFunctionCall","src":"3887:22:101"},{"name":"dataEnd","nativeSrc":"3911:7:101","nodeType":"YulIdentifier","src":"3911:7:101"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"3857:29:101","nodeType":"YulIdentifier","src":"3857:29:101"},"nativeSrc":"3857:62:101","nodeType":"YulFunctionCall","src":"3857:62:101"},"variableNames":[{"name":"value2","nativeSrc":"3847:6:101","nodeType":"YulIdentifier","src":"3847:6:101"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory","nativeSrc":"2931:1005:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3014:9:101","nodeType":"YulTypedName","src":"3014:9:101","type":""},{"name":"dataEnd","nativeSrc":"3025:7:101","nodeType":"YulTypedName","src":"3025:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3037:6:101","nodeType":"YulTypedName","src":"3037:6:101","type":""},{"name":"value1","nativeSrc":"3045:6:101","nodeType":"YulTypedName","src":"3045:6:101","type":""},{"name":"value2","nativeSrc":"3053:6:101","nodeType":"YulTypedName","src":"3053:6:101","type":""}],"src":"2931:1005:101"},{"body":{"nativeSrc":"4001:40:101","nodeType":"YulBlock","src":"4001:40:101","statements":[{"nativeSrc":"4012:22:101","nodeType":"YulAssignment","src":"4012:22:101","value":{"arguments":[{"name":"value","nativeSrc":"4028:5:101","nodeType":"YulIdentifier","src":"4028:5:101"}],"functionName":{"name":"mload","nativeSrc":"4022:5:101","nodeType":"YulIdentifier","src":"4022:5:101"},"nativeSrc":"4022:12:101","nodeType":"YulFunctionCall","src":"4022:12:101"},"variableNames":[{"name":"length","nativeSrc":"4012:6:101","nodeType":"YulIdentifier","src":"4012:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3942:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3984:5:101","nodeType":"YulTypedName","src":"3984:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3994:6:101","nodeType":"YulTypedName","src":"3994:6:101","type":""}],"src":"3942:99:101"},{"body":{"nativeSrc":"4075:152:101","nodeType":"YulBlock","src":"4075:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4092:1:101","nodeType":"YulLiteral","src":"4092:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4095:77:101","nodeType":"YulLiteral","src":"4095:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4085:6:101","nodeType":"YulIdentifier","src":"4085:6:101"},"nativeSrc":"4085:88:101","nodeType":"YulFunctionCall","src":"4085:88:101"},"nativeSrc":"4085:88:101","nodeType":"YulExpressionStatement","src":"4085:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4189:1:101","nodeType":"YulLiteral","src":"4189:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4192:4:101","nodeType":"YulLiteral","src":"4192:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4182:6:101","nodeType":"YulIdentifier","src":"4182:6:101"},"nativeSrc":"4182:15:101","nodeType":"YulFunctionCall","src":"4182:15:101"},"nativeSrc":"4182:15:101","nodeType":"YulExpressionStatement","src":"4182:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4213:1:101","nodeType":"YulLiteral","src":"4213:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4216:4:101","nodeType":"YulLiteral","src":"4216:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},"nativeSrc":"4206:15:101","nodeType":"YulFunctionCall","src":"4206:15:101"},"nativeSrc":"4206:15:101","nodeType":"YulExpressionStatement","src":"4206:15:101"}]},"name":"panic_error_0x22","nativeSrc":"4047:180:101","nodeType":"YulFunctionDefinition","src":"4047:180:101"},{"body":{"nativeSrc":"4284:269:101","nodeType":"YulBlock","src":"4284:269:101","statements":[{"nativeSrc":"4294:22:101","nodeType":"YulAssignment","src":"4294:22:101","value":{"arguments":[{"name":"data","nativeSrc":"4308:4:101","nodeType":"YulIdentifier","src":"4308:4:101"},{"kind":"number","nativeSrc":"4314:1:101","nodeType":"YulLiteral","src":"4314:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4304:3:101","nodeType":"YulIdentifier","src":"4304:3:101"},"nativeSrc":"4304:12:101","nodeType":"YulFunctionCall","src":"4304:12:101"},"variableNames":[{"name":"length","nativeSrc":"4294:6:101","nodeType":"YulIdentifier","src":"4294:6:101"}]},{"nativeSrc":"4325:38:101","nodeType":"YulVariableDeclaration","src":"4325:38:101","value":{"arguments":[{"name":"data","nativeSrc":"4355:4:101","nodeType":"YulIdentifier","src":"4355:4:101"},{"kind":"number","nativeSrc":"4361:1:101","nodeType":"YulLiteral","src":"4361:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4351:3:101","nodeType":"YulIdentifier","src":"4351:3:101"},"nativeSrc":"4351:12:101","nodeType":"YulFunctionCall","src":"4351:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4329:18:101","nodeType":"YulTypedName","src":"4329:18:101","type":""}]},{"body":{"nativeSrc":"4402:51:101","nodeType":"YulBlock","src":"4402:51:101","statements":[{"nativeSrc":"4416:27:101","nodeType":"YulAssignment","src":"4416:27:101","value":{"arguments":[{"name":"length","nativeSrc":"4430:6:101","nodeType":"YulIdentifier","src":"4430:6:101"},{"kind":"number","nativeSrc":"4438:4:101","nodeType":"YulLiteral","src":"4438:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4426:3:101","nodeType":"YulIdentifier","src":"4426:3:101"},"nativeSrc":"4426:17:101","nodeType":"YulFunctionCall","src":"4426:17:101"},"variableNames":[{"name":"length","nativeSrc":"4416:6:101","nodeType":"YulIdentifier","src":"4416:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4382:18:101","nodeType":"YulIdentifier","src":"4382:18:101"}],"functionName":{"name":"iszero","nativeSrc":"4375:6:101","nodeType":"YulIdentifier","src":"4375:6:101"},"nativeSrc":"4375:26:101","nodeType":"YulFunctionCall","src":"4375:26:101"},"nativeSrc":"4372:81:101","nodeType":"YulIf","src":"4372:81:101"},{"body":{"nativeSrc":"4505:42:101","nodeType":"YulBlock","src":"4505:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4519:16:101","nodeType":"YulIdentifier","src":"4519:16:101"},"nativeSrc":"4519:18:101","nodeType":"YulFunctionCall","src":"4519:18:101"},"nativeSrc":"4519:18:101","nodeType":"YulExpressionStatement","src":"4519:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4469:18:101","nodeType":"YulIdentifier","src":"4469:18:101"},{"arguments":[{"name":"length","nativeSrc":"4492:6:101","nodeType":"YulIdentifier","src":"4492:6:101"},{"kind":"number","nativeSrc":"4500:2:101","nodeType":"YulLiteral","src":"4500:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4489:2:101","nodeType":"YulIdentifier","src":"4489:2:101"},"nativeSrc":"4489:14:101","nodeType":"YulFunctionCall","src":"4489:14:101"}],"functionName":{"name":"eq","nativeSrc":"4466:2:101","nodeType":"YulIdentifier","src":"4466:2:101"},"nativeSrc":"4466:38:101","nodeType":"YulFunctionCall","src":"4466:38:101"},"nativeSrc":"4463:84:101","nodeType":"YulIf","src":"4463:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"4233:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4268:4:101","nodeType":"YulTypedName","src":"4268:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4277:6:101","nodeType":"YulTypedName","src":"4277:6:101","type":""}],"src":"4233:320:101"},{"body":{"nativeSrc":"4613:87:101","nodeType":"YulBlock","src":"4613:87:101","statements":[{"nativeSrc":"4623:11:101","nodeType":"YulAssignment","src":"4623:11:101","value":{"name":"ptr","nativeSrc":"4631:3:101","nodeType":"YulIdentifier","src":"4631:3:101"},"variableNames":[{"name":"data","nativeSrc":"4623:4:101","nodeType":"YulIdentifier","src":"4623:4:101"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4651:1:101","nodeType":"YulLiteral","src":"4651:1:101","type":"","value":"0"},{"name":"ptr","nativeSrc":"4654:3:101","nodeType":"YulIdentifier","src":"4654:3:101"}],"functionName":{"name":"mstore","nativeSrc":"4644:6:101","nodeType":"YulIdentifier","src":"4644:6:101"},"nativeSrc":"4644:14:101","nodeType":"YulFunctionCall","src":"4644:14:101"},"nativeSrc":"4644:14:101","nodeType":"YulExpressionStatement","src":"4644:14:101"},{"nativeSrc":"4667:26:101","nodeType":"YulAssignment","src":"4667:26:101","value":{"arguments":[{"kind":"number","nativeSrc":"4685:1:101","nodeType":"YulLiteral","src":"4685:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4688:4:101","nodeType":"YulLiteral","src":"4688:4:101","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4675:9:101","nodeType":"YulIdentifier","src":"4675:9:101"},"nativeSrc":"4675:18:101","nodeType":"YulFunctionCall","src":"4675:18:101"},"variableNames":[{"name":"data","nativeSrc":"4667:4:101","nodeType":"YulIdentifier","src":"4667:4:101"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4559:141:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4600:3:101","nodeType":"YulTypedName","src":"4600:3:101","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4608:4:101","nodeType":"YulTypedName","src":"4608:4:101","type":""}],"src":"4559:141:101"},{"body":{"nativeSrc":"4750:49:101","nodeType":"YulBlock","src":"4750:49:101","statements":[{"nativeSrc":"4760:33:101","nodeType":"YulAssignment","src":"4760:33:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4778:5:101","nodeType":"YulIdentifier","src":"4778:5:101"},{"kind":"number","nativeSrc":"4785:2:101","nodeType":"YulLiteral","src":"4785:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4774:3:101","nodeType":"YulIdentifier","src":"4774:3:101"},"nativeSrc":"4774:14:101","nodeType":"YulFunctionCall","src":"4774:14:101"},{"kind":"number","nativeSrc":"4790:2:101","nodeType":"YulLiteral","src":"4790:2:101","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4770:3:101","nodeType":"YulIdentifier","src":"4770:3:101"},"nativeSrc":"4770:23:101","nodeType":"YulFunctionCall","src":"4770:23:101"},"variableNames":[{"name":"result","nativeSrc":"4760:6:101","nodeType":"YulIdentifier","src":"4760:6:101"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4706:93:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4733:5:101","nodeType":"YulTypedName","src":"4733:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4743:6:101","nodeType":"YulTypedName","src":"4743:6:101","type":""}],"src":"4706:93:101"},{"body":{"nativeSrc":"4858:54:101","nodeType":"YulBlock","src":"4858:54:101","statements":[{"nativeSrc":"4868:37:101","nodeType":"YulAssignment","src":"4868:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"4893:4:101","nodeType":"YulIdentifier","src":"4893:4:101"},{"name":"value","nativeSrc":"4899:5:101","nodeType":"YulIdentifier","src":"4899:5:101"}],"functionName":{"name":"shl","nativeSrc":"4889:3:101","nodeType":"YulIdentifier","src":"4889:3:101"},"nativeSrc":"4889:16:101","nodeType":"YulFunctionCall","src":"4889:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"4868:8:101","nodeType":"YulIdentifier","src":"4868:8:101"}]}]},"name":"shift_left_dynamic","nativeSrc":"4805:107:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4833:4:101","nodeType":"YulTypedName","src":"4833:4:101","type":""},{"name":"value","nativeSrc":"4839:5:101","nodeType":"YulTypedName","src":"4839:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4849:8:101","nodeType":"YulTypedName","src":"4849:8:101","type":""}],"src":"4805:107:101"},{"body":{"nativeSrc":"4994:317:101","nodeType":"YulBlock","src":"4994:317:101","statements":[{"nativeSrc":"5004:35:101","nodeType":"YulVariableDeclaration","src":"5004:35:101","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5025:10:101","nodeType":"YulIdentifier","src":"5025:10:101"},{"kind":"number","nativeSrc":"5037:1:101","nodeType":"YulLiteral","src":"5037:1:101","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5021:3:101","nodeType":"YulIdentifier","src":"5021:3:101"},"nativeSrc":"5021:18:101","nodeType":"YulFunctionCall","src":"5021:18:101"},"variables":[{"name":"shiftBits","nativeSrc":"5008:9:101","nodeType":"YulTypedName","src":"5008:9:101","type":""}]},{"nativeSrc":"5048:109:101","nodeType":"YulVariableDeclaration","src":"5048:109:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5079:9:101","nodeType":"YulIdentifier","src":"5079:9:101"},{"kind":"number","nativeSrc":"5090:66:101","nodeType":"YulLiteral","src":"5090:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5060:18:101","nodeType":"YulIdentifier","src":"5060:18:101"},"nativeSrc":"5060:97:101","nodeType":"YulFunctionCall","src":"5060:97:101"},"variables":[{"name":"mask","nativeSrc":"5052:4:101","nodeType":"YulTypedName","src":"5052:4:101","type":""}]},{"nativeSrc":"5166:51:101","nodeType":"YulAssignment","src":"5166:51:101","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5197:9:101","nodeType":"YulIdentifier","src":"5197:9:101"},{"name":"toInsert","nativeSrc":"5208:8:101","nodeType":"YulIdentifier","src":"5208:8:101"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5178:18:101","nodeType":"YulIdentifier","src":"5178:18:101"},"nativeSrc":"5178:39:101","nodeType":"YulFunctionCall","src":"5178:39:101"},"variableNames":[{"name":"toInsert","nativeSrc":"5166:8:101","nodeType":"YulIdentifier","src":"5166:8:101"}]},{"nativeSrc":"5226:30:101","nodeType":"YulAssignment","src":"5226:30:101","value":{"arguments":[{"name":"value","nativeSrc":"5239:5:101","nodeType":"YulIdentifier","src":"5239:5:101"},{"arguments":[{"name":"mask","nativeSrc":"5250:4:101","nodeType":"YulIdentifier","src":"5250:4:101"}],"functionName":{"name":"not","nativeSrc":"5246:3:101","nodeType":"YulIdentifier","src":"5246:3:101"},"nativeSrc":"5246:9:101","nodeType":"YulFunctionCall","src":"5246:9:101"}],"functionName":{"name":"and","nativeSrc":"5235:3:101","nodeType":"YulIdentifier","src":"5235:3:101"},"nativeSrc":"5235:21:101","nodeType":"YulFunctionCall","src":"5235:21:101"},"variableNames":[{"name":"value","nativeSrc":"5226:5:101","nodeType":"YulIdentifier","src":"5226:5:101"}]},{"nativeSrc":"5265:40:101","nodeType":"YulAssignment","src":"5265:40:101","value":{"arguments":[{"name":"value","nativeSrc":"5278:5:101","nodeType":"YulIdentifier","src":"5278:5:101"},{"arguments":[{"name":"toInsert","nativeSrc":"5289:8:101","nodeType":"YulIdentifier","src":"5289:8:101"},{"name":"mask","nativeSrc":"5299:4:101","nodeType":"YulIdentifier","src":"5299:4:101"}],"functionName":{"name":"and","nativeSrc":"5285:3:101","nodeType":"YulIdentifier","src":"5285:3:101"},"nativeSrc":"5285:19:101","nodeType":"YulFunctionCall","src":"5285:19:101"}],"functionName":{"name":"or","nativeSrc":"5275:2:101","nodeType":"YulIdentifier","src":"5275:2:101"},"nativeSrc":"5275:30:101","nodeType":"YulFunctionCall","src":"5275:30:101"},"variableNames":[{"name":"result","nativeSrc":"5265:6:101","nodeType":"YulIdentifier","src":"5265:6:101"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"4918:393:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4955:5:101","nodeType":"YulTypedName","src":"4955:5:101","type":""},{"name":"shiftBytes","nativeSrc":"4962:10:101","nodeType":"YulTypedName","src":"4962:10:101","type":""},{"name":"toInsert","nativeSrc":"4974:8:101","nodeType":"YulTypedName","src":"4974:8:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4987:6:101","nodeType":"YulTypedName","src":"4987:6:101","type":""}],"src":"4918:393:101"},{"body":{"nativeSrc":"5362:32:101","nodeType":"YulBlock","src":"5362:32:101","statements":[{"nativeSrc":"5372:16:101","nodeType":"YulAssignment","src":"5372:16:101","value":{"name":"value","nativeSrc":"5383:5:101","nodeType":"YulIdentifier","src":"5383:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"5372:7:101","nodeType":"YulIdentifier","src":"5372:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5317:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5344:5:101","nodeType":"YulTypedName","src":"5344:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5354:7:101","nodeType":"YulTypedName","src":"5354:7:101","type":""}],"src":"5317:77:101"},{"body":{"nativeSrc":"5432:28:101","nodeType":"YulBlock","src":"5432:28:101","statements":[{"nativeSrc":"5442:12:101","nodeType":"YulAssignment","src":"5442:12:101","value":{"name":"value","nativeSrc":"5449:5:101","nodeType":"YulIdentifier","src":"5449:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"}]}]},"name":"identity","nativeSrc":"5400:60:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5418:5:101","nodeType":"YulTypedName","src":"5418:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5428:3:101","nodeType":"YulTypedName","src":"5428:3:101","type":""}],"src":"5400:60:101"},{"body":{"nativeSrc":"5526:82:101","nodeType":"YulBlock","src":"5526:82:101","statements":[{"nativeSrc":"5536:66:101","nodeType":"YulAssignment","src":"5536:66:101","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5594:5:101","nodeType":"YulIdentifier","src":"5594:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5576:17:101","nodeType":"YulIdentifier","src":"5576:17:101"},"nativeSrc":"5576:24:101","nodeType":"YulFunctionCall","src":"5576:24:101"}],"functionName":{"name":"identity","nativeSrc":"5567:8:101","nodeType":"YulIdentifier","src":"5567:8:101"},"nativeSrc":"5567:34:101","nodeType":"YulFunctionCall","src":"5567:34:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5549:17:101","nodeType":"YulIdentifier","src":"5549:17:101"},"nativeSrc":"5549:53:101","nodeType":"YulFunctionCall","src":"5549:53:101"},"variableNames":[{"name":"converted","nativeSrc":"5536:9:101","nodeType":"YulIdentifier","src":"5536:9:101"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5466:142:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5506:5:101","nodeType":"YulTypedName","src":"5506:5:101","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5516:9:101","nodeType":"YulTypedName","src":"5516:9:101","type":""}],"src":"5466:142:101"},{"body":{"nativeSrc":"5661:28:101","nodeType":"YulBlock","src":"5661:28:101","statements":[{"nativeSrc":"5671:12:101","nodeType":"YulAssignment","src":"5671:12:101","value":{"name":"value","nativeSrc":"5678:5:101","nodeType":"YulIdentifier","src":"5678:5:101"},"variableNames":[{"name":"ret","nativeSrc":"5671:3:101","nodeType":"YulIdentifier","src":"5671:3:101"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5614:75:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5647:5:101","nodeType":"YulTypedName","src":"5647:5:101","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5657:3:101","nodeType":"YulTypedName","src":"5657:3:101","type":""}],"src":"5614:75:101"},{"body":{"nativeSrc":"5771:193:101","nodeType":"YulBlock","src":"5771:193:101","statements":[{"nativeSrc":"5781:63:101","nodeType":"YulVariableDeclaration","src":"5781:63:101","value":{"arguments":[{"name":"value_0","nativeSrc":"5836:7:101","nodeType":"YulIdentifier","src":"5836:7:101"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5805:30:101","nodeType":"YulIdentifier","src":"5805:30:101"},"nativeSrc":"5805:39:101","nodeType":"YulFunctionCall","src":"5805:39:101"},"variables":[{"name":"convertedValue_0","nativeSrc":"5785:16:101","nodeType":"YulTypedName","src":"5785:16:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5860:4:101","nodeType":"YulIdentifier","src":"5860:4:101"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5900:4:101","nodeType":"YulIdentifier","src":"5900:4:101"}],"functionName":{"name":"sload","nativeSrc":"5894:5:101","nodeType":"YulIdentifier","src":"5894:5:101"},"nativeSrc":"5894:11:101","nodeType":"YulFunctionCall","src":"5894:11:101"},{"name":"offset","nativeSrc":"5907:6:101","nodeType":"YulIdentifier","src":"5907:6:101"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"5939:16:101","nodeType":"YulIdentifier","src":"5939:16:101"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"5915:23:101","nodeType":"YulIdentifier","src":"5915:23:101"},"nativeSrc":"5915:41:101","nodeType":"YulFunctionCall","src":"5915:41:101"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5866:27:101","nodeType":"YulIdentifier","src":"5866:27:101"},"nativeSrc":"5866:91:101","nodeType":"YulFunctionCall","src":"5866:91:101"}],"functionName":{"name":"sstore","nativeSrc":"5853:6:101","nodeType":"YulIdentifier","src":"5853:6:101"},"nativeSrc":"5853:105:101","nodeType":"YulFunctionCall","src":"5853:105:101"},"nativeSrc":"5853:105:101","nodeType":"YulExpressionStatement","src":"5853:105:101"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5695:269:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5748:4:101","nodeType":"YulTypedName","src":"5748:4:101","type":""},{"name":"offset","nativeSrc":"5754:6:101","nodeType":"YulTypedName","src":"5754:6:101","type":""},{"name":"value_0","nativeSrc":"5762:7:101","nodeType":"YulTypedName","src":"5762:7:101","type":""}],"src":"5695:269:101"},{"body":{"nativeSrc":"6019:24:101","nodeType":"YulBlock","src":"6019:24:101","statements":[{"nativeSrc":"6029:8:101","nodeType":"YulAssignment","src":"6029:8:101","value":{"kind":"number","nativeSrc":"6036:1:101","nodeType":"YulLiteral","src":"6036:1:101","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6029:3:101","nodeType":"YulIdentifier","src":"6029:3:101"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"5970:73:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6015:3:101","nodeType":"YulTypedName","src":"6015:3:101","type":""}],"src":"5970:73:101"},{"body":{"nativeSrc":"6102:136:101","nodeType":"YulBlock","src":"6102:136:101","statements":[{"nativeSrc":"6112:46:101","nodeType":"YulVariableDeclaration","src":"6112:46:101","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6126:30:101","nodeType":"YulIdentifier","src":"6126:30:101"},"nativeSrc":"6126:32:101","nodeType":"YulFunctionCall","src":"6126:32:101"},"variables":[{"name":"zero_0","nativeSrc":"6116:6:101","nodeType":"YulTypedName","src":"6116:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6211:4:101","nodeType":"YulIdentifier","src":"6211:4:101"},{"name":"offset","nativeSrc":"6217:6:101","nodeType":"YulIdentifier","src":"6217:6:101"},{"name":"zero_0","nativeSrc":"6225:6:101","nodeType":"YulIdentifier","src":"6225:6:101"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6167:43:101","nodeType":"YulIdentifier","src":"6167:43:101"},"nativeSrc":"6167:65:101","nodeType":"YulFunctionCall","src":"6167:65:101"},"nativeSrc":"6167:65:101","nodeType":"YulExpressionStatement","src":"6167:65:101"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6049:189:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6088:4:101","nodeType":"YulTypedName","src":"6088:4:101","type":""},{"name":"offset","nativeSrc":"6094:6:101","nodeType":"YulTypedName","src":"6094:6:101","type":""}],"src":"6049:189:101"},{"body":{"nativeSrc":"6294:136:101","nodeType":"YulBlock","src":"6294:136:101","statements":[{"body":{"nativeSrc":"6361:63:101","nodeType":"YulBlock","src":"6361:63:101","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6405:5:101","nodeType":"YulIdentifier","src":"6405:5:101"},{"kind":"number","nativeSrc":"6412:1:101","nodeType":"YulLiteral","src":"6412:1:101","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"6375:29:101","nodeType":"YulIdentifier","src":"6375:29:101"},"nativeSrc":"6375:39:101","nodeType":"YulFunctionCall","src":"6375:39:101"},"nativeSrc":"6375:39:101","nodeType":"YulExpressionStatement","src":"6375:39:101"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6314:5:101","nodeType":"YulIdentifier","src":"6314:5:101"},{"name":"end","nativeSrc":"6321:3:101","nodeType":"YulIdentifier","src":"6321:3:101"}],"functionName":{"name":"lt","nativeSrc":"6311:2:101","nodeType":"YulIdentifier","src":"6311:2:101"},"nativeSrc":"6311:14:101","nodeType":"YulFunctionCall","src":"6311:14:101"},"nativeSrc":"6304:120:101","nodeType":"YulForLoop","post":{"nativeSrc":"6326:26:101","nodeType":"YulBlock","src":"6326:26:101","statements":[{"nativeSrc":"6328:22:101","nodeType":"YulAssignment","src":"6328:22:101","value":{"arguments":[{"name":"start","nativeSrc":"6341:5:101","nodeType":"YulIdentifier","src":"6341:5:101"},{"kind":"number","nativeSrc":"6348:1:101","nodeType":"YulLiteral","src":"6348:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6337:3:101","nodeType":"YulIdentifier","src":"6337:3:101"},"nativeSrc":"6337:13:101","nodeType":"YulFunctionCall","src":"6337:13:101"},"variableNames":[{"name":"start","nativeSrc":"6328:5:101","nodeType":"YulIdentifier","src":"6328:5:101"}]}]},"pre":{"nativeSrc":"6308:2:101","nodeType":"YulBlock","src":"6308:2:101","statements":[]},"src":"6304:120:101"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6244:186:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6282:5:101","nodeType":"YulTypedName","src":"6282:5:101","type":""},{"name":"end","nativeSrc":"6289:3:101","nodeType":"YulTypedName","src":"6289:3:101","type":""}],"src":"6244:186:101"},{"body":{"nativeSrc":"6515:464:101","nodeType":"YulBlock","src":"6515:464:101","statements":[{"body":{"nativeSrc":"6541:431:101","nodeType":"YulBlock","src":"6541:431:101","statements":[{"nativeSrc":"6555:54:101","nodeType":"YulVariableDeclaration","src":"6555:54:101","value":{"arguments":[{"name":"array","nativeSrc":"6603:5:101","nodeType":"YulIdentifier","src":"6603:5:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6571:31:101","nodeType":"YulIdentifier","src":"6571:31:101"},"nativeSrc":"6571:38:101","nodeType":"YulFunctionCall","src":"6571:38:101"},"variables":[{"name":"dataArea","nativeSrc":"6559:8:101","nodeType":"YulTypedName","src":"6559:8:101","type":""}]},{"nativeSrc":"6622:63:101","nodeType":"YulVariableDeclaration","src":"6622:63:101","value":{"arguments":[{"name":"dataArea","nativeSrc":"6645:8:101","nodeType":"YulIdentifier","src":"6645:8:101"},{"arguments":[{"name":"startIndex","nativeSrc":"6673:10:101","nodeType":"YulIdentifier","src":"6673:10:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6655:17:101","nodeType":"YulIdentifier","src":"6655:17:101"},"nativeSrc":"6655:29:101","nodeType":"YulFunctionCall","src":"6655:29:101"}],"functionName":{"name":"add","nativeSrc":"6641:3:101","nodeType":"YulIdentifier","src":"6641:3:101"},"nativeSrc":"6641:44:101","nodeType":"YulFunctionCall","src":"6641:44:101"},"variables":[{"name":"deleteStart","nativeSrc":"6626:11:101","nodeType":"YulTypedName","src":"6626:11:101","type":""}]},{"body":{"nativeSrc":"6842:27:101","nodeType":"YulBlock","src":"6842:27:101","statements":[{"nativeSrc":"6844:23:101","nodeType":"YulAssignment","src":"6844:23:101","value":{"name":"dataArea","nativeSrc":"6859:8:101","nodeType":"YulIdentifier","src":"6859:8:101"},"variableNames":[{"name":"deleteStart","nativeSrc":"6844:11:101","nodeType":"YulIdentifier","src":"6844:11:101"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6826:10:101","nodeType":"YulIdentifier","src":"6826:10:101"},{"kind":"number","nativeSrc":"6838:2:101","nodeType":"YulLiteral","src":"6838:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6823:2:101","nodeType":"YulIdentifier","src":"6823:2:101"},"nativeSrc":"6823:18:101","nodeType":"YulFunctionCall","src":"6823:18:101"},"nativeSrc":"6820:49:101","nodeType":"YulIf","src":"6820:49:101"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"6911:11:101","nodeType":"YulIdentifier","src":"6911:11:101"},{"arguments":[{"name":"dataArea","nativeSrc":"6928:8:101","nodeType":"YulIdentifier","src":"6928:8:101"},{"arguments":[{"name":"len","nativeSrc":"6956:3:101","nodeType":"YulIdentifier","src":"6956:3:101"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6938:17:101","nodeType":"YulIdentifier","src":"6938:17:101"},"nativeSrc":"6938:22:101","nodeType":"YulFunctionCall","src":"6938:22:101"}],"functionName":{"name":"add","nativeSrc":"6924:3:101","nodeType":"YulIdentifier","src":"6924:3:101"},"nativeSrc":"6924:37:101","nodeType":"YulFunctionCall","src":"6924:37:101"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6882:28:101","nodeType":"YulIdentifier","src":"6882:28:101"},"nativeSrc":"6882:80:101","nodeType":"YulFunctionCall","src":"6882:80:101"},"nativeSrc":"6882:80:101","nodeType":"YulExpressionStatement","src":"6882:80:101"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6532:3:101","nodeType":"YulIdentifier","src":"6532:3:101"},{"kind":"number","nativeSrc":"6537:2:101","nodeType":"YulLiteral","src":"6537:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6529:2:101","nodeType":"YulIdentifier","src":"6529:2:101"},"nativeSrc":"6529:11:101","nodeType":"YulFunctionCall","src":"6529:11:101"},"nativeSrc":"6526:446:101","nodeType":"YulIf","src":"6526:446:101"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"6436:543:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"6491:5:101","nodeType":"YulTypedName","src":"6491:5:101","type":""},{"name":"len","nativeSrc":"6498:3:101","nodeType":"YulTypedName","src":"6498:3:101","type":""},{"name":"startIndex","nativeSrc":"6503:10:101","nodeType":"YulTypedName","src":"6503:10:101","type":""}],"src":"6436:543:101"},{"body":{"nativeSrc":"7048:54:101","nodeType":"YulBlock","src":"7048:54:101","statements":[{"nativeSrc":"7058:37:101","nodeType":"YulAssignment","src":"7058:37:101","value":{"arguments":[{"name":"bits","nativeSrc":"7083:4:101","nodeType":"YulIdentifier","src":"7083:4:101"},{"name":"value","nativeSrc":"7089:5:101","nodeType":"YulIdentifier","src":"7089:5:101"}],"functionName":{"name":"shr","nativeSrc":"7079:3:101","nodeType":"YulIdentifier","src":"7079:3:101"},"nativeSrc":"7079:16:101","nodeType":"YulFunctionCall","src":"7079:16:101"},"variableNames":[{"name":"newValue","nativeSrc":"7058:8:101","nodeType":"YulIdentifier","src":"7058:8:101"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"6985:117:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7023:4:101","nodeType":"YulTypedName","src":"7023:4:101","type":""},{"name":"value","nativeSrc":"7029:5:101","nodeType":"YulTypedName","src":"7029:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7039:8:101","nodeType":"YulTypedName","src":"7039:8:101","type":""}],"src":"6985:117:101"},{"body":{"nativeSrc":"7159:118:101","nodeType":"YulBlock","src":"7159:118:101","statements":[{"nativeSrc":"7169:68:101","nodeType":"YulVariableDeclaration","src":"7169:68:101","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7218:1:101","nodeType":"YulLiteral","src":"7218:1:101","type":"","value":"8"},{"name":"bytes","nativeSrc":"7221:5:101","nodeType":"YulIdentifier","src":"7221:5:101"}],"functionName":{"name":"mul","nativeSrc":"7214:3:101","nodeType":"YulIdentifier","src":"7214:3:101"},"nativeSrc":"7214:13:101","nodeType":"YulFunctionCall","src":"7214:13:101"},{"arguments":[{"kind":"number","nativeSrc":"7233:1:101","nodeType":"YulLiteral","src":"7233:1:101","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7229:3:101","nodeType":"YulIdentifier","src":"7229:3:101"},"nativeSrc":"7229:6:101","nodeType":"YulFunctionCall","src":"7229:6:101"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7185:28:101","nodeType":"YulIdentifier","src":"7185:28:101"},"nativeSrc":"7185:51:101","nodeType":"YulFunctionCall","src":"7185:51:101"}],"functionName":{"name":"not","nativeSrc":"7181:3:101","nodeType":"YulIdentifier","src":"7181:3:101"},"nativeSrc":"7181:56:101","nodeType":"YulFunctionCall","src":"7181:56:101"},"variables":[{"name":"mask","nativeSrc":"7173:4:101","nodeType":"YulTypedName","src":"7173:4:101","type":""}]},{"nativeSrc":"7246:25:101","nodeType":"YulAssignment","src":"7246:25:101","value":{"arguments":[{"name":"data","nativeSrc":"7260:4:101","nodeType":"YulIdentifier","src":"7260:4:101"},{"name":"mask","nativeSrc":"7266:4:101","nodeType":"YulIdentifier","src":"7266:4:101"}],"functionName":{"name":"and","nativeSrc":"7256:3:101","nodeType":"YulIdentifier","src":"7256:3:101"},"nativeSrc":"7256:15:101","nodeType":"YulFunctionCall","src":"7256:15:101"},"variableNames":[{"name":"result","nativeSrc":"7246:6:101","nodeType":"YulIdentifier","src":"7246:6:101"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7108:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7136:4:101","nodeType":"YulTypedName","src":"7136:4:101","type":""},{"name":"bytes","nativeSrc":"7142:5:101","nodeType":"YulTypedName","src":"7142:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7152:6:101","nodeType":"YulTypedName","src":"7152:6:101","type":""}],"src":"7108:169:101"},{"body":{"nativeSrc":"7363:214:101","nodeType":"YulBlock","src":"7363:214:101","statements":[{"nativeSrc":"7496:37:101","nodeType":"YulAssignment","src":"7496:37:101","value":{"arguments":[{"name":"data","nativeSrc":"7523:4:101","nodeType":"YulIdentifier","src":"7523:4:101"},{"name":"len","nativeSrc":"7529:3:101","nodeType":"YulIdentifier","src":"7529:3:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"7504:18:101","nodeType":"YulIdentifier","src":"7504:18:101"},"nativeSrc":"7504:29:101","nodeType":"YulFunctionCall","src":"7504:29:101"},"variableNames":[{"name":"data","nativeSrc":"7496:4:101","nodeType":"YulIdentifier","src":"7496:4:101"}]},{"nativeSrc":"7542:29:101","nodeType":"YulAssignment","src":"7542:29:101","value":{"arguments":[{"name":"data","nativeSrc":"7553:4:101","nodeType":"YulIdentifier","src":"7553:4:101"},{"arguments":[{"kind":"number","nativeSrc":"7563:1:101","nodeType":"YulLiteral","src":"7563:1:101","type":"","value":"2"},{"name":"len","nativeSrc":"7566:3:101","nodeType":"YulIdentifier","src":"7566:3:101"}],"functionName":{"name":"mul","nativeSrc":"7559:3:101","nodeType":"YulIdentifier","src":"7559:3:101"},"nativeSrc":"7559:11:101","nodeType":"YulFunctionCall","src":"7559:11:101"}],"functionName":{"name":"or","nativeSrc":"7550:2:101","nodeType":"YulIdentifier","src":"7550:2:101"},"nativeSrc":"7550:21:101","nodeType":"YulFunctionCall","src":"7550:21:101"},"variableNames":[{"name":"used","nativeSrc":"7542:4:101","nodeType":"YulIdentifier","src":"7542:4:101"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7282:295:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7344:4:101","nodeType":"YulTypedName","src":"7344:4:101","type":""},{"name":"len","nativeSrc":"7350:3:101","nodeType":"YulTypedName","src":"7350:3:101","type":""}],"returnVariables":[{"name":"used","nativeSrc":"7358:4:101","nodeType":"YulTypedName","src":"7358:4:101","type":""}],"src":"7282:295:101"},{"body":{"nativeSrc":"7674:1303:101","nodeType":"YulBlock","src":"7674:1303:101","statements":[{"nativeSrc":"7685:51:101","nodeType":"YulVariableDeclaration","src":"7685:51:101","value":{"arguments":[{"name":"src","nativeSrc":"7732:3:101","nodeType":"YulIdentifier","src":"7732:3:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7699:32:101","nodeType":"YulIdentifier","src":"7699:32:101"},"nativeSrc":"7699:37:101","nodeType":"YulFunctionCall","src":"7699:37:101"},"variables":[{"name":"newLen","nativeSrc":"7689:6:101","nodeType":"YulTypedName","src":"7689:6:101","type":""}]},{"body":{"nativeSrc":"7821:22:101","nodeType":"YulBlock","src":"7821:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7823:16:101","nodeType":"YulIdentifier","src":"7823:16:101"},"nativeSrc":"7823:18:101","nodeType":"YulFunctionCall","src":"7823:18:101"},"nativeSrc":"7823:18:101","nodeType":"YulExpressionStatement","src":"7823:18:101"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7793:6:101","nodeType":"YulIdentifier","src":"7793:6:101"},{"kind":"number","nativeSrc":"7801:18:101","nodeType":"YulLiteral","src":"7801:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7790:2:101","nodeType":"YulIdentifier","src":"7790:2:101"},"nativeSrc":"7790:30:101","nodeType":"YulFunctionCall","src":"7790:30:101"},"nativeSrc":"7787:56:101","nodeType":"YulIf","src":"7787:56:101"},{"nativeSrc":"7853:52:101","nodeType":"YulVariableDeclaration","src":"7853:52:101","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"7899:4:101","nodeType":"YulIdentifier","src":"7899:4:101"}],"functionName":{"name":"sload","nativeSrc":"7893:5:101","nodeType":"YulIdentifier","src":"7893:5:101"},"nativeSrc":"7893:11:101","nodeType":"YulFunctionCall","src":"7893:11:101"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7867:25:101","nodeType":"YulIdentifier","src":"7867:25:101"},"nativeSrc":"7867:38:101","nodeType":"YulFunctionCall","src":"7867:38:101"},"variables":[{"name":"oldLen","nativeSrc":"7857:6:101","nodeType":"YulTypedName","src":"7857:6:101","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7998:4:101","nodeType":"YulIdentifier","src":"7998:4:101"},{"name":"oldLen","nativeSrc":"8004:6:101","nodeType":"YulIdentifier","src":"8004:6:101"},{"name":"newLen","nativeSrc":"8012:6:101","nodeType":"YulIdentifier","src":"8012:6:101"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7952:45:101","nodeType":"YulIdentifier","src":"7952:45:101"},"nativeSrc":"7952:67:101","nodeType":"YulFunctionCall","src":"7952:67:101"},"nativeSrc":"7952:67:101","nodeType":"YulExpressionStatement","src":"7952:67:101"},{"nativeSrc":"8029:18:101","nodeType":"YulVariableDeclaration","src":"8029:18:101","value":{"kind":"number","nativeSrc":"8046:1:101","nodeType":"YulLiteral","src":"8046:1:101","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8033:9:101","nodeType":"YulTypedName","src":"8033:9:101","type":""}]},{"nativeSrc":"8057:17:101","nodeType":"YulAssignment","src":"8057:17:101","value":{"kind":"number","nativeSrc":"8070:4:101","nodeType":"YulLiteral","src":"8070:4:101","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8057:9:101","nodeType":"YulIdentifier","src":"8057:9:101"}]},{"cases":[{"body":{"nativeSrc":"8121:611:101","nodeType":"YulBlock","src":"8121:611:101","statements":[{"nativeSrc":"8135:37:101","nodeType":"YulVariableDeclaration","src":"8135:37:101","value":{"arguments":[{"name":"newLen","nativeSrc":"8154:6:101","nodeType":"YulIdentifier","src":"8154:6:101"},{"arguments":[{"kind":"number","nativeSrc":"8166:4:101","nodeType":"YulLiteral","src":"8166:4:101","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8162:3:101","nodeType":"YulIdentifier","src":"8162:3:101"},"nativeSrc":"8162:9:101","nodeType":"YulFunctionCall","src":"8162:9:101"}],"functionName":{"name":"and","nativeSrc":"8150:3:101","nodeType":"YulIdentifier","src":"8150:3:101"},"nativeSrc":"8150:22:101","nodeType":"YulFunctionCall","src":"8150:22:101"},"variables":[{"name":"loopEnd","nativeSrc":"8139:7:101","nodeType":"YulTypedName","src":"8139:7:101","type":""}]},{"nativeSrc":"8186:51:101","nodeType":"YulVariableDeclaration","src":"8186:51:101","value":{"arguments":[{"name":"slot","nativeSrc":"8232:4:101","nodeType":"YulIdentifier","src":"8232:4:101"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8200:31:101","nodeType":"YulIdentifier","src":"8200:31:101"},"nativeSrc":"8200:37:101","nodeType":"YulFunctionCall","src":"8200:37:101"},"variables":[{"name":"dstPtr","nativeSrc":"8190:6:101","nodeType":"YulTypedName","src":"8190:6:101","type":""}]},{"nativeSrc":"8250:10:101","nodeType":"YulVariableDeclaration","src":"8250:10:101","value":{"kind":"number","nativeSrc":"8259:1:101","nodeType":"YulLiteral","src":"8259:1:101","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8254:1:101","nodeType":"YulTypedName","src":"8254:1:101","type":""}]},{"body":{"nativeSrc":"8318:163:101","nodeType":"YulBlock","src":"8318:163:101","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8343:6:101","nodeType":"YulIdentifier","src":"8343:6:101"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8361:3:101","nodeType":"YulIdentifier","src":"8361:3:101"},{"name":"srcOffset","nativeSrc":"8366:9:101","nodeType":"YulIdentifier","src":"8366:9:101"}],"functionName":{"name":"add","nativeSrc":"8357:3:101","nodeType":"YulIdentifier","src":"8357:3:101"},"nativeSrc":"8357:19:101","nodeType":"YulFunctionCall","src":"8357:19:101"}],"functionName":{"name":"mload","nativeSrc":"8351:5:101","nodeType":"YulIdentifier","src":"8351:5:101"},"nativeSrc":"8351:26:101","nodeType":"YulFunctionCall","src":"8351:26:101"}],"functionName":{"name":"sstore","nativeSrc":"8336:6:101","nodeType":"YulIdentifier","src":"8336:6:101"},"nativeSrc":"8336:42:101","nodeType":"YulFunctionCall","src":"8336:42:101"},"nativeSrc":"8336:42:101","nodeType":"YulExpressionStatement","src":"8336:42:101"},{"nativeSrc":"8395:24:101","nodeType":"YulAssignment","src":"8395:24:101","value":{"arguments":[{"name":"dstPtr","nativeSrc":"8409:6:101","nodeType":"YulIdentifier","src":"8409:6:101"},{"kind":"number","nativeSrc":"8417:1:101","nodeType":"YulLiteral","src":"8417:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8405:3:101","nodeType":"YulIdentifier","src":"8405:3:101"},"nativeSrc":"8405:14:101","nodeType":"YulFunctionCall","src":"8405:14:101"},"variableNames":[{"name":"dstPtr","nativeSrc":"8395:6:101","nodeType":"YulIdentifier","src":"8395:6:101"}]},{"nativeSrc":"8436:31:101","nodeType":"YulAssignment","src":"8436:31:101","value":{"arguments":[{"name":"srcOffset","nativeSrc":"8453:9:101","nodeType":"YulIdentifier","src":"8453:9:101"},{"kind":"number","nativeSrc":"8464:2:101","nodeType":"YulLiteral","src":"8464:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8449:3:101","nodeType":"YulIdentifier","src":"8449:3:101"},"nativeSrc":"8449:18:101","nodeType":"YulFunctionCall","src":"8449:18:101"},"variableNames":[{"name":"srcOffset","nativeSrc":"8436:9:101","nodeType":"YulIdentifier","src":"8436:9:101"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8284:1:101","nodeType":"YulIdentifier","src":"8284:1:101"},{"name":"loopEnd","nativeSrc":"8287:7:101","nodeType":"YulIdentifier","src":"8287:7:101"}],"functionName":{"name":"lt","nativeSrc":"8281:2:101","nodeType":"YulIdentifier","src":"8281:2:101"},"nativeSrc":"8281:14:101","nodeType":"YulFunctionCall","src":"8281:14:101"},"nativeSrc":"8273:208:101","nodeType":"YulForLoop","post":{"nativeSrc":"8296:21:101","nodeType":"YulBlock","src":"8296:21:101","statements":[{"nativeSrc":"8298:17:101","nodeType":"YulAssignment","src":"8298:17:101","value":{"arguments":[{"name":"i","nativeSrc":"8307:1:101","nodeType":"YulIdentifier","src":"8307:1:101"},{"kind":"number","nativeSrc":"8310:4:101","nodeType":"YulLiteral","src":"8310:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8303:3:101","nodeType":"YulIdentifier","src":"8303:3:101"},"nativeSrc":"8303:12:101","nodeType":"YulFunctionCall","src":"8303:12:101"},"variableNames":[{"name":"i","nativeSrc":"8298:1:101","nodeType":"YulIdentifier","src":"8298:1:101"}]}]},"pre":{"nativeSrc":"8277:3:101","nodeType":"YulBlock","src":"8277:3:101","statements":[]},"src":"8273:208:101"},{"body":{"nativeSrc":"8517:156:101","nodeType":"YulBlock","src":"8517:156:101","statements":[{"nativeSrc":"8535:43:101","nodeType":"YulVariableDeclaration","src":"8535:43:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8562:3:101","nodeType":"YulIdentifier","src":"8562:3:101"},{"name":"srcOffset","nativeSrc":"8567:9:101","nodeType":"YulIdentifier","src":"8567:9:101"}],"functionName":{"name":"add","nativeSrc":"8558:3:101","nodeType":"YulIdentifier","src":"8558:3:101"},"nativeSrc":"8558:19:101","nodeType":"YulFunctionCall","src":"8558:19:101"}],"functionName":{"name":"mload","nativeSrc":"8552:5:101","nodeType":"YulIdentifier","src":"8552:5:101"},"nativeSrc":"8552:26:101","nodeType":"YulFunctionCall","src":"8552:26:101"},"variables":[{"name":"lastValue","nativeSrc":"8539:9:101","nodeType":"YulTypedName","src":"8539:9:101","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8602:6:101","nodeType":"YulIdentifier","src":"8602:6:101"},{"arguments":[{"name":"lastValue","nativeSrc":"8629:9:101","nodeType":"YulIdentifier","src":"8629:9:101"},{"arguments":[{"name":"newLen","nativeSrc":"8644:6:101","nodeType":"YulIdentifier","src":"8644:6:101"},{"kind":"number","nativeSrc":"8652:4:101","nodeType":"YulLiteral","src":"8652:4:101","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8640:3:101","nodeType":"YulIdentifier","src":"8640:3:101"},"nativeSrc":"8640:17:101","nodeType":"YulFunctionCall","src":"8640:17:101"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8610:18:101","nodeType":"YulIdentifier","src":"8610:18:101"},"nativeSrc":"8610:48:101","nodeType":"YulFunctionCall","src":"8610:48:101"}],"functionName":{"name":"sstore","nativeSrc":"8595:6:101","nodeType":"YulIdentifier","src":"8595:6:101"},"nativeSrc":"8595:64:101","nodeType":"YulFunctionCall","src":"8595:64:101"},"nativeSrc":"8595:64:101","nodeType":"YulExpressionStatement","src":"8595:64:101"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"8500:7:101","nodeType":"YulIdentifier","src":"8500:7:101"},{"name":"newLen","nativeSrc":"8509:6:101","nodeType":"YulIdentifier","src":"8509:6:101"}],"functionName":{"name":"lt","nativeSrc":"8497:2:101","nodeType":"YulIdentifier","src":"8497:2:101"},"nativeSrc":"8497:19:101","nodeType":"YulFunctionCall","src":"8497:19:101"},"nativeSrc":"8494:179:101","nodeType":"YulIf","src":"8494:179:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8693:4:101","nodeType":"YulIdentifier","src":"8693:4:101"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8707:6:101","nodeType":"YulIdentifier","src":"8707:6:101"},{"kind":"number","nativeSrc":"8715:1:101","nodeType":"YulLiteral","src":"8715:1:101","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8703:3:101","nodeType":"YulIdentifier","src":"8703:3:101"},"nativeSrc":"8703:14:101","nodeType":"YulFunctionCall","src":"8703:14:101"},{"kind":"number","nativeSrc":"8719:1:101","nodeType":"YulLiteral","src":"8719:1:101","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8699:3:101","nodeType":"YulIdentifier","src":"8699:3:101"},"nativeSrc":"8699:22:101","nodeType":"YulFunctionCall","src":"8699:22:101"}],"functionName":{"name":"sstore","nativeSrc":"8686:6:101","nodeType":"YulIdentifier","src":"8686:6:101"},"nativeSrc":"8686:36:101","nodeType":"YulFunctionCall","src":"8686:36:101"},"nativeSrc":"8686:36:101","nodeType":"YulExpressionStatement","src":"8686:36:101"}]},"nativeSrc":"8114:618:101","nodeType":"YulCase","src":"8114:618:101","value":{"kind":"number","nativeSrc":"8119:1:101","nodeType":"YulLiteral","src":"8119:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"8749:222:101","nodeType":"YulBlock","src":"8749:222:101","statements":[{"nativeSrc":"8763:14:101","nodeType":"YulVariableDeclaration","src":"8763:14:101","value":{"kind":"number","nativeSrc":"8776:1:101","nodeType":"YulLiteral","src":"8776:1:101","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8767:5:101","nodeType":"YulTypedName","src":"8767:5:101","type":""}]},{"body":{"nativeSrc":"8800:67:101","nodeType":"YulBlock","src":"8800:67:101","statements":[{"nativeSrc":"8818:35:101","nodeType":"YulAssignment","src":"8818:35:101","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8837:3:101","nodeType":"YulIdentifier","src":"8837:3:101"},{"name":"srcOffset","nativeSrc":"8842:9:101","nodeType":"YulIdentifier","src":"8842:9:101"}],"functionName":{"name":"add","nativeSrc":"8833:3:101","nodeType":"YulIdentifier","src":"8833:3:101"},"nativeSrc":"8833:19:101","nodeType":"YulFunctionCall","src":"8833:19:101"}],"functionName":{"name":"mload","nativeSrc":"8827:5:101","nodeType":"YulIdentifier","src":"8827:5:101"},"nativeSrc":"8827:26:101","nodeType":"YulFunctionCall","src":"8827:26:101"},"variableNames":[{"name":"value","nativeSrc":"8818:5:101","nodeType":"YulIdentifier","src":"8818:5:101"}]}]},"condition":{"name":"newLen","nativeSrc":"8793:6:101","nodeType":"YulIdentifier","src":"8793:6:101"},"nativeSrc":"8790:77:101","nodeType":"YulIf","src":"8790:77:101"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8887:4:101","nodeType":"YulIdentifier","src":"8887:4:101"},{"arguments":[{"name":"value","nativeSrc":"8946:5:101","nodeType":"YulIdentifier","src":"8946:5:101"},{"name":"newLen","nativeSrc":"8953:6:101","nodeType":"YulIdentifier","src":"8953:6:101"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8893:52:101","nodeType":"YulIdentifier","src":"8893:52:101"},"nativeSrc":"8893:67:101","nodeType":"YulFunctionCall","src":"8893:67:101"}],"functionName":{"name":"sstore","nativeSrc":"8880:6:101","nodeType":"YulIdentifier","src":"8880:6:101"},"nativeSrc":"8880:81:101","nodeType":"YulFunctionCall","src":"8880:81:101"},"nativeSrc":"8880:81:101","nodeType":"YulExpressionStatement","src":"8880:81:101"}]},"nativeSrc":"8741:230:101","nodeType":"YulCase","src":"8741:230:101","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8094:6:101","nodeType":"YulIdentifier","src":"8094:6:101"},{"kind":"number","nativeSrc":"8102:2:101","nodeType":"YulLiteral","src":"8102:2:101","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8091:2:101","nodeType":"YulIdentifier","src":"8091:2:101"},"nativeSrc":"8091:14:101","nodeType":"YulFunctionCall","src":"8091:14:101"},"nativeSrc":"8084:887:101","nodeType":"YulSwitch","src":"8084:887:101"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7582:1395:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7663:4:101","nodeType":"YulTypedName","src":"7663:4:101","type":""},{"name":"src","nativeSrc":"7669:3:101","nodeType":"YulTypedName","src":"7669:3:101","type":""}],"src":"7582:1395:101"},{"body":{"nativeSrc":"9011:152:101","nodeType":"YulBlock","src":"9011:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9028:1:101","nodeType":"YulLiteral","src":"9028:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9031:77:101","nodeType":"YulLiteral","src":"9031:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9021:6:101","nodeType":"YulIdentifier","src":"9021:6:101"},"nativeSrc":"9021:88:101","nodeType":"YulFunctionCall","src":"9021:88:101"},"nativeSrc":"9021:88:101","nodeType":"YulExpressionStatement","src":"9021:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9125:1:101","nodeType":"YulLiteral","src":"9125:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"9128:4:101","nodeType":"YulLiteral","src":"9128:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"9118:6:101","nodeType":"YulIdentifier","src":"9118:6:101"},"nativeSrc":"9118:15:101","nodeType":"YulFunctionCall","src":"9118:15:101"},"nativeSrc":"9118:15:101","nodeType":"YulExpressionStatement","src":"9118:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9149:1:101","nodeType":"YulLiteral","src":"9149:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"9152:4:101","nodeType":"YulLiteral","src":"9152:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9142:6:101","nodeType":"YulIdentifier","src":"9142:6:101"},"nativeSrc":"9142:15:101","nodeType":"YulFunctionCall","src":"9142:15:101"},"nativeSrc":"9142:15:101","nodeType":"YulExpressionStatement","src":"9142:15:101"}]},"name":"panic_error_0x11","nativeSrc":"8983:180:101","nodeType":"YulFunctionDefinition","src":"8983:180:101"},{"body":{"nativeSrc":"9220:51:101","nodeType":"YulBlock","src":"9220:51:101","statements":[{"nativeSrc":"9230:34:101","nodeType":"YulAssignment","src":"9230:34:101","value":{"arguments":[{"kind":"number","nativeSrc":"9255:1:101","nodeType":"YulLiteral","src":"9255:1:101","type":"","value":"1"},{"name":"value","nativeSrc":"9258:5:101","nodeType":"YulIdentifier","src":"9258:5:101"}],"functionName":{"name":"shr","nativeSrc":"9251:3:101","nodeType":"YulIdentifier","src":"9251:3:101"},"nativeSrc":"9251:13:101","nodeType":"YulFunctionCall","src":"9251:13:101"},"variableNames":[{"name":"newValue","nativeSrc":"9230:8:101","nodeType":"YulIdentifier","src":"9230:8:101"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"9169:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9201:5:101","nodeType":"YulTypedName","src":"9201:5:101","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"9211:8:101","nodeType":"YulTypedName","src":"9211:8:101","type":""}],"src":"9169:102:101"},{"body":{"nativeSrc":"9350:775:101","nodeType":"YulBlock","src":"9350:775:101","statements":[{"nativeSrc":"9360:15:101","nodeType":"YulAssignment","src":"9360:15:101","value":{"name":"_power","nativeSrc":"9369:6:101","nodeType":"YulIdentifier","src":"9369:6:101"},"variableNames":[{"name":"power","nativeSrc":"9360:5:101","nodeType":"YulIdentifier","src":"9360:5:101"}]},{"nativeSrc":"9384:14:101","nodeType":"YulAssignment","src":"9384:14:101","value":{"name":"_base","nativeSrc":"9393:5:101","nodeType":"YulIdentifier","src":"9393:5:101"},"variableNames":[{"name":"base","nativeSrc":"9384:4:101","nodeType":"YulIdentifier","src":"9384:4:101"}]},{"body":{"nativeSrc":"9442:677:101","nodeType":"YulBlock","src":"9442:677:101","statements":[{"body":{"nativeSrc":"9530:22:101","nodeType":"YulBlock","src":"9530:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9532:16:101","nodeType":"YulIdentifier","src":"9532:16:101"},"nativeSrc":"9532:18:101","nodeType":"YulFunctionCall","src":"9532:18:101"},"nativeSrc":"9532:18:101","nodeType":"YulExpressionStatement","src":"9532:18:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"9508:4:101","nodeType":"YulIdentifier","src":"9508:4:101"},{"arguments":[{"name":"max","nativeSrc":"9518:3:101","nodeType":"YulIdentifier","src":"9518:3:101"},{"name":"base","nativeSrc":"9523:4:101","nodeType":"YulIdentifier","src":"9523:4:101"}],"functionName":{"name":"div","nativeSrc":"9514:3:101","nodeType":"YulIdentifier","src":"9514:3:101"},"nativeSrc":"9514:14:101","nodeType":"YulFunctionCall","src":"9514:14:101"}],"functionName":{"name":"gt","nativeSrc":"9505:2:101","nodeType":"YulIdentifier","src":"9505:2:101"},"nativeSrc":"9505:24:101","nodeType":"YulFunctionCall","src":"9505:24:101"},"nativeSrc":"9502:50:101","nodeType":"YulIf","src":"9502:50:101"},{"body":{"nativeSrc":"9597:419:101","nodeType":"YulBlock","src":"9597:419:101","statements":[{"nativeSrc":"9977:25:101","nodeType":"YulAssignment","src":"9977:25:101","value":{"arguments":[{"name":"power","nativeSrc":"9990:5:101","nodeType":"YulIdentifier","src":"9990:5:101"},{"name":"base","nativeSrc":"9997:4:101","nodeType":"YulIdentifier","src":"9997:4:101"}],"functionName":{"name":"mul","nativeSrc":"9986:3:101","nodeType":"YulIdentifier","src":"9986:3:101"},"nativeSrc":"9986:16:101","nodeType":"YulFunctionCall","src":"9986:16:101"},"variableNames":[{"name":"power","nativeSrc":"9977:5:101","nodeType":"YulIdentifier","src":"9977:5:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9572:8:101","nodeType":"YulIdentifier","src":"9572:8:101"},{"kind":"number","nativeSrc":"9582:1:101","nodeType":"YulLiteral","src":"9582:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"9568:3:101","nodeType":"YulIdentifier","src":"9568:3:101"},"nativeSrc":"9568:16:101","nodeType":"YulFunctionCall","src":"9568:16:101"},"nativeSrc":"9565:451:101","nodeType":"YulIf","src":"9565:451:101"},{"nativeSrc":"10029:23:101","nodeType":"YulAssignment","src":"10029:23:101","value":{"arguments":[{"name":"base","nativeSrc":"10041:4:101","nodeType":"YulIdentifier","src":"10041:4:101"},{"name":"base","nativeSrc":"10047:4:101","nodeType":"YulIdentifier","src":"10047:4:101"}],"functionName":{"name":"mul","nativeSrc":"10037:3:101","nodeType":"YulIdentifier","src":"10037:3:101"},"nativeSrc":"10037:15:101","nodeType":"YulFunctionCall","src":"10037:15:101"},"variableNames":[{"name":"base","nativeSrc":"10029:4:101","nodeType":"YulIdentifier","src":"10029:4:101"}]},{"nativeSrc":"10065:44:101","nodeType":"YulAssignment","src":"10065:44:101","value":{"arguments":[{"name":"exponent","nativeSrc":"10100:8:101","nodeType":"YulIdentifier","src":"10100:8:101"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"10077:22:101","nodeType":"YulIdentifier","src":"10077:22:101"},"nativeSrc":"10077:32:101","nodeType":"YulFunctionCall","src":"10077:32:101"},"variableNames":[{"name":"exponent","nativeSrc":"10065:8:101","nodeType":"YulIdentifier","src":"10065:8:101"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"9418:8:101","nodeType":"YulIdentifier","src":"9418:8:101"},{"kind":"number","nativeSrc":"9428:1:101","nodeType":"YulLiteral","src":"9428:1:101","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"9415:2:101","nodeType":"YulIdentifier","src":"9415:2:101"},"nativeSrc":"9415:15:101","nodeType":"YulFunctionCall","src":"9415:15:101"},"nativeSrc":"9407:712:101","nodeType":"YulForLoop","post":{"nativeSrc":"9431:2:101","nodeType":"YulBlock","src":"9431:2:101","statements":[]},"pre":{"nativeSrc":"9411:3:101","nodeType":"YulBlock","src":"9411:3:101","statements":[]},"src":"9407:712:101"}]},"name":"checked_exp_helper","nativeSrc":"9277:848:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"9305:6:101","nodeType":"YulTypedName","src":"9305:6:101","type":""},{"name":"_base","nativeSrc":"9313:5:101","nodeType":"YulTypedName","src":"9313:5:101","type":""},{"name":"exponent","nativeSrc":"9320:8:101","nodeType":"YulTypedName","src":"9320:8:101","type":""},{"name":"max","nativeSrc":"9330:3:101","nodeType":"YulTypedName","src":"9330:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"9338:5:101","nodeType":"YulTypedName","src":"9338:5:101","type":""},{"name":"base","nativeSrc":"9345:4:101","nodeType":"YulTypedName","src":"9345:4:101","type":""}],"src":"9277:848:101"},{"body":{"nativeSrc":"10191:1013:101","nodeType":"YulBlock","src":"10191:1013:101","statements":[{"body":{"nativeSrc":"10386:20:101","nodeType":"YulBlock","src":"10386:20:101","statements":[{"nativeSrc":"10388:10:101","nodeType":"YulAssignment","src":"10388:10:101","value":{"kind":"number","nativeSrc":"10397:1:101","nodeType":"YulLiteral","src":"10397:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"10388:5:101","nodeType":"YulIdentifier","src":"10388:5:101"}]},{"nativeSrc":"10399:5:101","nodeType":"YulLeave","src":"10399:5:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"10376:8:101","nodeType":"YulIdentifier","src":"10376:8:101"}],"functionName":{"name":"iszero","nativeSrc":"10369:6:101","nodeType":"YulIdentifier","src":"10369:6:101"},"nativeSrc":"10369:16:101","nodeType":"YulFunctionCall","src":"10369:16:101"},"nativeSrc":"10366:40:101","nodeType":"YulIf","src":"10366:40:101"},{"body":{"nativeSrc":"10431:20:101","nodeType":"YulBlock","src":"10431:20:101","statements":[{"nativeSrc":"10433:10:101","nodeType":"YulAssignment","src":"10433:10:101","value":{"kind":"number","nativeSrc":"10442:1:101","nodeType":"YulLiteral","src":"10442:1:101","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"10433:5:101","nodeType":"YulIdentifier","src":"10433:5:101"}]},{"nativeSrc":"10444:5:101","nodeType":"YulLeave","src":"10444:5:101"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"10425:4:101","nodeType":"YulIdentifier","src":"10425:4:101"}],"functionName":{"name":"iszero","nativeSrc":"10418:6:101","nodeType":"YulIdentifier","src":"10418:6:101"},"nativeSrc":"10418:12:101","nodeType":"YulFunctionCall","src":"10418:12:101"},"nativeSrc":"10415:36:101","nodeType":"YulIf","src":"10415:36:101"},{"cases":[{"body":{"nativeSrc":"10561:20:101","nodeType":"YulBlock","src":"10561:20:101","statements":[{"nativeSrc":"10563:10:101","nodeType":"YulAssignment","src":"10563:10:101","value":{"kind":"number","nativeSrc":"10572:1:101","nodeType":"YulLiteral","src":"10572:1:101","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"10563:5:101","nodeType":"YulIdentifier","src":"10563:5:101"}]},{"nativeSrc":"10574:5:101","nodeType":"YulLeave","src":"10574:5:101"}]},"nativeSrc":"10554:27:101","nodeType":"YulCase","src":"10554:27:101","value":{"kind":"number","nativeSrc":"10559:1:101","nodeType":"YulLiteral","src":"10559:1:101","type":"","value":"1"}},{"body":{"nativeSrc":"10605:176:101","nodeType":"YulBlock","src":"10605:176:101","statements":[{"body":{"nativeSrc":"10640:22:101","nodeType":"YulBlock","src":"10640:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10642:16:101","nodeType":"YulIdentifier","src":"10642:16:101"},"nativeSrc":"10642:18:101","nodeType":"YulFunctionCall","src":"10642:18:101"},"nativeSrc":"10642:18:101","nodeType":"YulExpressionStatement","src":"10642:18:101"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"10625:8:101","nodeType":"YulIdentifier","src":"10625:8:101"},{"kind":"number","nativeSrc":"10635:3:101","nodeType":"YulLiteral","src":"10635:3:101","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"10622:2:101","nodeType":"YulIdentifier","src":"10622:2:101"},"nativeSrc":"10622:17:101","nodeType":"YulFunctionCall","src":"10622:17:101"},"nativeSrc":"10619:43:101","nodeType":"YulIf","src":"10619:43:101"},{"nativeSrc":"10675:25:101","nodeType":"YulAssignment","src":"10675:25:101","value":{"arguments":[{"kind":"number","nativeSrc":"10688:1:101","nodeType":"YulLiteral","src":"10688:1:101","type":"","value":"2"},{"name":"exponent","nativeSrc":"10691:8:101","nodeType":"YulIdentifier","src":"10691:8:101"}],"functionName":{"name":"exp","nativeSrc":"10684:3:101","nodeType":"YulIdentifier","src":"10684:3:101"},"nativeSrc":"10684:16:101","nodeType":"YulFunctionCall","src":"10684:16:101"},"variableNames":[{"name":"power","nativeSrc":"10675:5:101","nodeType":"YulIdentifier","src":"10675:5:101"}]},{"body":{"nativeSrc":"10731:22:101","nodeType":"YulBlock","src":"10731:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10733:16:101","nodeType":"YulIdentifier","src":"10733:16:101"},"nativeSrc":"10733:18:101","nodeType":"YulFunctionCall","src":"10733:18:101"},"nativeSrc":"10733:18:101","nodeType":"YulExpressionStatement","src":"10733:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10719:5:101","nodeType":"YulIdentifier","src":"10719:5:101"},{"name":"max","nativeSrc":"10726:3:101","nodeType":"YulIdentifier","src":"10726:3:101"}],"functionName":{"name":"gt","nativeSrc":"10716:2:101","nodeType":"YulIdentifier","src":"10716:2:101"},"nativeSrc":"10716:14:101","nodeType":"YulFunctionCall","src":"10716:14:101"},"nativeSrc":"10713:40:101","nodeType":"YulIf","src":"10713:40:101"},{"nativeSrc":"10766:5:101","nodeType":"YulLeave","src":"10766:5:101"}]},"nativeSrc":"10590:191:101","nodeType":"YulCase","src":"10590:191:101","value":{"kind":"number","nativeSrc":"10595:1:101","nodeType":"YulLiteral","src":"10595:1:101","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"10511:4:101","nodeType":"YulIdentifier","src":"10511:4:101"},"nativeSrc":"10504:277:101","nodeType":"YulSwitch","src":"10504:277:101"},{"body":{"nativeSrc":"10913:123:101","nodeType":"YulBlock","src":"10913:123:101","statements":[{"nativeSrc":"10927:28:101","nodeType":"YulAssignment","src":"10927:28:101","value":{"arguments":[{"name":"base","nativeSrc":"10940:4:101","nodeType":"YulIdentifier","src":"10940:4:101"},{"name":"exponent","nativeSrc":"10946:8:101","nodeType":"YulIdentifier","src":"10946:8:101"}],"functionName":{"name":"exp","nativeSrc":"10936:3:101","nodeType":"YulIdentifier","src":"10936:3:101"},"nativeSrc":"10936:19:101","nodeType":"YulFunctionCall","src":"10936:19:101"},"variableNames":[{"name":"power","nativeSrc":"10927:5:101","nodeType":"YulIdentifier","src":"10927:5:101"}]},{"body":{"nativeSrc":"10986:22:101","nodeType":"YulBlock","src":"10986:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10988:16:101","nodeType":"YulIdentifier","src":"10988:16:101"},"nativeSrc":"10988:18:101","nodeType":"YulFunctionCall","src":"10988:18:101"},"nativeSrc":"10988:18:101","nodeType":"YulExpressionStatement","src":"10988:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"10974:5:101","nodeType":"YulIdentifier","src":"10974:5:101"},{"name":"max","nativeSrc":"10981:3:101","nodeType":"YulIdentifier","src":"10981:3:101"}],"functionName":{"name":"gt","nativeSrc":"10971:2:101","nodeType":"YulIdentifier","src":"10971:2:101"},"nativeSrc":"10971:14:101","nodeType":"YulFunctionCall","src":"10971:14:101"},"nativeSrc":"10968:40:101","nodeType":"YulIf","src":"10968:40:101"},{"nativeSrc":"11021:5:101","nodeType":"YulLeave","src":"11021:5:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10816:4:101","nodeType":"YulIdentifier","src":"10816:4:101"},{"kind":"number","nativeSrc":"10822:2:101","nodeType":"YulLiteral","src":"10822:2:101","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"10813:2:101","nodeType":"YulIdentifier","src":"10813:2:101"},"nativeSrc":"10813:12:101","nodeType":"YulFunctionCall","src":"10813:12:101"},{"arguments":[{"name":"exponent","nativeSrc":"10830:8:101","nodeType":"YulIdentifier","src":"10830:8:101"},{"kind":"number","nativeSrc":"10840:2:101","nodeType":"YulLiteral","src":"10840:2:101","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"10827:2:101","nodeType":"YulIdentifier","src":"10827:2:101"},"nativeSrc":"10827:16:101","nodeType":"YulFunctionCall","src":"10827:16:101"}],"functionName":{"name":"and","nativeSrc":"10809:3:101","nodeType":"YulIdentifier","src":"10809:3:101"},"nativeSrc":"10809:35:101","nodeType":"YulFunctionCall","src":"10809:35:101"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"10865:4:101","nodeType":"YulIdentifier","src":"10865:4:101"},{"kind":"number","nativeSrc":"10871:3:101","nodeType":"YulLiteral","src":"10871:3:101","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"10862:2:101","nodeType":"YulIdentifier","src":"10862:2:101"},"nativeSrc":"10862:13:101","nodeType":"YulFunctionCall","src":"10862:13:101"},{"arguments":[{"name":"exponent","nativeSrc":"10880:8:101","nodeType":"YulIdentifier","src":"10880:8:101"},{"kind":"number","nativeSrc":"10890:2:101","nodeType":"YulLiteral","src":"10890:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10877:2:101","nodeType":"YulIdentifier","src":"10877:2:101"},"nativeSrc":"10877:16:101","nodeType":"YulFunctionCall","src":"10877:16:101"}],"functionName":{"name":"and","nativeSrc":"10858:3:101","nodeType":"YulIdentifier","src":"10858:3:101"},"nativeSrc":"10858:36:101","nodeType":"YulFunctionCall","src":"10858:36:101"}],"functionName":{"name":"or","nativeSrc":"10793:2:101","nodeType":"YulIdentifier","src":"10793:2:101"},"nativeSrc":"10793:111:101","nodeType":"YulFunctionCall","src":"10793:111:101"},"nativeSrc":"10790:246:101","nodeType":"YulIf","src":"10790:246:101"},{"nativeSrc":"11046:57:101","nodeType":"YulAssignment","src":"11046:57:101","value":{"arguments":[{"kind":"number","nativeSrc":"11080:1:101","nodeType":"YulLiteral","src":"11080:1:101","type":"","value":"1"},{"name":"base","nativeSrc":"11083:4:101","nodeType":"YulIdentifier","src":"11083:4:101"},{"name":"exponent","nativeSrc":"11089:8:101","nodeType":"YulIdentifier","src":"11089:8:101"},{"name":"max","nativeSrc":"11099:3:101","nodeType":"YulIdentifier","src":"11099:3:101"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"11061:18:101","nodeType":"YulIdentifier","src":"11061:18:101"},"nativeSrc":"11061:42:101","nodeType":"YulFunctionCall","src":"11061:42:101"},"variableNames":[{"name":"power","nativeSrc":"11046:5:101","nodeType":"YulIdentifier","src":"11046:5:101"},{"name":"base","nativeSrc":"11053:4:101","nodeType":"YulIdentifier","src":"11053:4:101"}]},{"body":{"nativeSrc":"11142:22:101","nodeType":"YulBlock","src":"11142:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11144:16:101","nodeType":"YulIdentifier","src":"11144:16:101"},"nativeSrc":"11144:18:101","nodeType":"YulFunctionCall","src":"11144:18:101"},"nativeSrc":"11144:18:101","nodeType":"YulExpressionStatement","src":"11144:18:101"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"11119:5:101","nodeType":"YulIdentifier","src":"11119:5:101"},{"arguments":[{"name":"max","nativeSrc":"11130:3:101","nodeType":"YulIdentifier","src":"11130:3:101"},{"name":"base","nativeSrc":"11135:4:101","nodeType":"YulIdentifier","src":"11135:4:101"}],"functionName":{"name":"div","nativeSrc":"11126:3:101","nodeType":"YulIdentifier","src":"11126:3:101"},"nativeSrc":"11126:14:101","nodeType":"YulFunctionCall","src":"11126:14:101"}],"functionName":{"name":"gt","nativeSrc":"11116:2:101","nodeType":"YulIdentifier","src":"11116:2:101"},"nativeSrc":"11116:25:101","nodeType":"YulFunctionCall","src":"11116:25:101"},"nativeSrc":"11113:51:101","nodeType":"YulIf","src":"11113:51:101"},{"nativeSrc":"11173:25:101","nodeType":"YulAssignment","src":"11173:25:101","value":{"arguments":[{"name":"power","nativeSrc":"11186:5:101","nodeType":"YulIdentifier","src":"11186:5:101"},{"name":"base","nativeSrc":"11193:4:101","nodeType":"YulIdentifier","src":"11193:4:101"}],"functionName":{"name":"mul","nativeSrc":"11182:3:101","nodeType":"YulIdentifier","src":"11182:3:101"},"nativeSrc":"11182:16:101","nodeType":"YulFunctionCall","src":"11182:16:101"},"variableNames":[{"name":"power","nativeSrc":"11173:5:101","nodeType":"YulIdentifier","src":"11173:5:101"}]}]},"name":"checked_exp_unsigned","nativeSrc":"10131:1073:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"10161:4:101","nodeType":"YulTypedName","src":"10161:4:101","type":""},{"name":"exponent","nativeSrc":"10167:8:101","nodeType":"YulTypedName","src":"10167:8:101","type":""},{"name":"max","nativeSrc":"10177:3:101","nodeType":"YulTypedName","src":"10177:3:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"10185:5:101","nodeType":"YulTypedName","src":"10185:5:101","type":""}],"src":"10131:1073:101"},{"body":{"nativeSrc":"11276:219:101","nodeType":"YulBlock","src":"11276:219:101","statements":[{"nativeSrc":"11286:31:101","nodeType":"YulAssignment","src":"11286:31:101","value":{"arguments":[{"name":"base","nativeSrc":"11312:4:101","nodeType":"YulIdentifier","src":"11312:4:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11294:17:101","nodeType":"YulIdentifier","src":"11294:17:101"},"nativeSrc":"11294:23:101","nodeType":"YulFunctionCall","src":"11294:23:101"},"variableNames":[{"name":"base","nativeSrc":"11286:4:101","nodeType":"YulIdentifier","src":"11286:4:101"}]},{"nativeSrc":"11326:39:101","nodeType":"YulAssignment","src":"11326:39:101","value":{"arguments":[{"name":"exponent","nativeSrc":"11356:8:101","nodeType":"YulIdentifier","src":"11356:8:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11338:17:101","nodeType":"YulIdentifier","src":"11338:17:101"},"nativeSrc":"11338:27:101","nodeType":"YulFunctionCall","src":"11338:27:101"},"variableNames":[{"name":"exponent","nativeSrc":"11326:8:101","nodeType":"YulIdentifier","src":"11326:8:101"}]},{"nativeSrc":"11375:113:101","nodeType":"YulAssignment","src":"11375:113:101","value":{"arguments":[{"name":"base","nativeSrc":"11405:4:101","nodeType":"YulIdentifier","src":"11405:4:101"},{"name":"exponent","nativeSrc":"11411:8:101","nodeType":"YulIdentifier","src":"11411:8:101"},{"kind":"number","nativeSrc":"11421:66:101","nodeType":"YulLiteral","src":"11421:66:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"11384:20:101","nodeType":"YulIdentifier","src":"11384:20:101"},"nativeSrc":"11384:104:101","nodeType":"YulFunctionCall","src":"11384:104:101"},"variableNames":[{"name":"power","nativeSrc":"11375:5:101","nodeType":"YulIdentifier","src":"11375:5:101"}]}]},"name":"checked_exp_t_uint256_t_uint256","nativeSrc":"11210:285:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"11251:4:101","nodeType":"YulTypedName","src":"11251:4:101","type":""},{"name":"exponent","nativeSrc":"11257:8:101","nodeType":"YulTypedName","src":"11257:8:101","type":""}],"returnVariables":[{"name":"power","nativeSrc":"11270:5:101","nodeType":"YulTypedName","src":"11270:5:101","type":""}],"src":"11210:285:101"},{"body":{"nativeSrc":"11549:362:101","nodeType":"YulBlock","src":"11549:362:101","statements":[{"nativeSrc":"11559:25:101","nodeType":"YulAssignment","src":"11559:25:101","value":{"arguments":[{"name":"x","nativeSrc":"11582:1:101","nodeType":"YulIdentifier","src":"11582:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11564:17:101","nodeType":"YulIdentifier","src":"11564:17:101"},"nativeSrc":"11564:20:101","nodeType":"YulFunctionCall","src":"11564:20:101"},"variableNames":[{"name":"x","nativeSrc":"11559:1:101","nodeType":"YulIdentifier","src":"11559:1:101"}]},{"nativeSrc":"11593:25:101","nodeType":"YulAssignment","src":"11593:25:101","value":{"arguments":[{"name":"y","nativeSrc":"11616:1:101","nodeType":"YulIdentifier","src":"11616:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11598:17:101","nodeType":"YulIdentifier","src":"11598:17:101"},"nativeSrc":"11598:20:101","nodeType":"YulFunctionCall","src":"11598:20:101"},"variableNames":[{"name":"y","nativeSrc":"11593:1:101","nodeType":"YulIdentifier","src":"11593:1:101"}]},{"nativeSrc":"11627:28:101","nodeType":"YulVariableDeclaration","src":"11627:28:101","value":{"arguments":[{"name":"x","nativeSrc":"11650:1:101","nodeType":"YulIdentifier","src":"11650:1:101"},{"name":"y","nativeSrc":"11653:1:101","nodeType":"YulIdentifier","src":"11653:1:101"}],"functionName":{"name":"mul","nativeSrc":"11646:3:101","nodeType":"YulIdentifier","src":"11646:3:101"},"nativeSrc":"11646:9:101","nodeType":"YulFunctionCall","src":"11646:9:101"},"variables":[{"name":"product_raw","nativeSrc":"11631:11:101","nodeType":"YulTypedName","src":"11631:11:101","type":""}]},{"nativeSrc":"11664:41:101","nodeType":"YulAssignment","src":"11664:41:101","value":{"arguments":[{"name":"product_raw","nativeSrc":"11693:11:101","nodeType":"YulIdentifier","src":"11693:11:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11675:17:101","nodeType":"YulIdentifier","src":"11675:17:101"},"nativeSrc":"11675:30:101","nodeType":"YulFunctionCall","src":"11675:30:101"},"variableNames":[{"name":"product","nativeSrc":"11664:7:101","nodeType":"YulIdentifier","src":"11664:7:101"}]},{"body":{"nativeSrc":"11882:22:101","nodeType":"YulBlock","src":"11882:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11884:16:101","nodeType":"YulIdentifier","src":"11884:16:101"},"nativeSrc":"11884:18:101","nodeType":"YulFunctionCall","src":"11884:18:101"},"nativeSrc":"11884:18:101","nodeType":"YulExpressionStatement","src":"11884:18:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"11815:1:101","nodeType":"YulIdentifier","src":"11815:1:101"}],"functionName":{"name":"iszero","nativeSrc":"11808:6:101","nodeType":"YulIdentifier","src":"11808:6:101"},"nativeSrc":"11808:9:101","nodeType":"YulFunctionCall","src":"11808:9:101"},{"arguments":[{"name":"y","nativeSrc":"11838:1:101","nodeType":"YulIdentifier","src":"11838:1:101"},{"arguments":[{"name":"product","nativeSrc":"11845:7:101","nodeType":"YulIdentifier","src":"11845:7:101"},{"name":"x","nativeSrc":"11854:1:101","nodeType":"YulIdentifier","src":"11854:1:101"}],"functionName":{"name":"div","nativeSrc":"11841:3:101","nodeType":"YulIdentifier","src":"11841:3:101"},"nativeSrc":"11841:15:101","nodeType":"YulFunctionCall","src":"11841:15:101"}],"functionName":{"name":"eq","nativeSrc":"11835:2:101","nodeType":"YulIdentifier","src":"11835:2:101"},"nativeSrc":"11835:22:101","nodeType":"YulFunctionCall","src":"11835:22:101"}],"functionName":{"name":"or","nativeSrc":"11788:2:101","nodeType":"YulIdentifier","src":"11788:2:101"},"nativeSrc":"11788:83:101","nodeType":"YulFunctionCall","src":"11788:83:101"}],"functionName":{"name":"iszero","nativeSrc":"11768:6:101","nodeType":"YulIdentifier","src":"11768:6:101"},"nativeSrc":"11768:113:101","nodeType":"YulFunctionCall","src":"11768:113:101"},"nativeSrc":"11765:139:101","nodeType":"YulIf","src":"11765:139:101"}]},"name":"checked_mul_t_uint256","nativeSrc":"11501:410:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11532:1:101","nodeType":"YulTypedName","src":"11532:1:101","type":""},{"name":"y","nativeSrc":"11535:1:101","nodeType":"YulTypedName","src":"11535:1:101","type":""}],"returnVariables":[{"name":"product","nativeSrc":"11541:7:101","nodeType":"YulTypedName","src":"11541:7:101","type":""}],"src":"11501:410:101"},{"body":{"nativeSrc":"12013:73:101","nodeType":"YulBlock","src":"12013:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12030:3:101","nodeType":"YulIdentifier","src":"12030:3:101"},{"name":"length","nativeSrc":"12035:6:101","nodeType":"YulIdentifier","src":"12035:6:101"}],"functionName":{"name":"mstore","nativeSrc":"12023:6:101","nodeType":"YulIdentifier","src":"12023:6:101"},"nativeSrc":"12023:19:101","nodeType":"YulFunctionCall","src":"12023:19:101"},"nativeSrc":"12023:19:101","nodeType":"YulExpressionStatement","src":"12023:19:101"},{"nativeSrc":"12051:29:101","nodeType":"YulAssignment","src":"12051:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"12070:3:101","nodeType":"YulIdentifier","src":"12070:3:101"},{"kind":"number","nativeSrc":"12075:4:101","nodeType":"YulLiteral","src":"12075:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12066:3:101","nodeType":"YulIdentifier","src":"12066:3:101"},"nativeSrc":"12066:14:101","nodeType":"YulFunctionCall","src":"12066:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"12051:11:101","nodeType":"YulIdentifier","src":"12051:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11917:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11985:3:101","nodeType":"YulTypedName","src":"11985:3:101","type":""},{"name":"length","nativeSrc":"11990:6:101","nodeType":"YulTypedName","src":"11990:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12001:11:101","nodeType":"YulTypedName","src":"12001:11:101","type":""}],"src":"11917:169:101"},{"body":{"nativeSrc":"12198:75:101","nodeType":"YulBlock","src":"12198:75:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12220:6:101","nodeType":"YulIdentifier","src":"12220:6:101"},{"kind":"number","nativeSrc":"12228:1:101","nodeType":"YulLiteral","src":"12228:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12216:3:101","nodeType":"YulIdentifier","src":"12216:3:101"},"nativeSrc":"12216:14:101","nodeType":"YulFunctionCall","src":"12216:14:101"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"12232:33:101","nodeType":"YulLiteral","src":"12232:33:101","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"12209:6:101","nodeType":"YulIdentifier","src":"12209:6:101"},"nativeSrc":"12209:57:101","nodeType":"YulFunctionCall","src":"12209:57:101"},"nativeSrc":"12209:57:101","nodeType":"YulExpressionStatement","src":"12209:57:101"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"12092:181:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12190:6:101","nodeType":"YulTypedName","src":"12190:6:101","type":""}],"src":"12092:181:101"},{"body":{"nativeSrc":"12425:220:101","nodeType":"YulBlock","src":"12425:220:101","statements":[{"nativeSrc":"12435:74:101","nodeType":"YulAssignment","src":"12435:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"12501:3:101","nodeType":"YulIdentifier","src":"12501:3:101"},{"kind":"number","nativeSrc":"12506:2:101","nodeType":"YulLiteral","src":"12506:2:101","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12442:58:101","nodeType":"YulIdentifier","src":"12442:58:101"},"nativeSrc":"12442:67:101","nodeType":"YulFunctionCall","src":"12442:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12435:3:101","nodeType":"YulIdentifier","src":"12435:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12607:3:101","nodeType":"YulIdentifier","src":"12607:3:101"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"12518:88:101","nodeType":"YulIdentifier","src":"12518:88:101"},"nativeSrc":"12518:93:101","nodeType":"YulFunctionCall","src":"12518:93:101"},"nativeSrc":"12518:93:101","nodeType":"YulExpressionStatement","src":"12518:93:101"},{"nativeSrc":"12620:19:101","nodeType":"YulAssignment","src":"12620:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12631:3:101","nodeType":"YulIdentifier","src":"12631:3:101"},{"kind":"number","nativeSrc":"12636:2:101","nodeType":"YulLiteral","src":"12636:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12627:3:101","nodeType":"YulIdentifier","src":"12627:3:101"},"nativeSrc":"12627:12:101","nodeType":"YulFunctionCall","src":"12627:12:101"},"variableNames":[{"name":"end","nativeSrc":"12620:3:101","nodeType":"YulIdentifier","src":"12620:3:101"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"12279:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12413:3:101","nodeType":"YulTypedName","src":"12413:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12421:3:101","nodeType":"YulTypedName","src":"12421:3:101","type":""}],"src":"12279:366:101"},{"body":{"nativeSrc":"12822:248:101","nodeType":"YulBlock","src":"12822:248:101","statements":[{"nativeSrc":"12832:26:101","nodeType":"YulAssignment","src":"12832:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12844:9:101","nodeType":"YulIdentifier","src":"12844:9:101"},{"kind":"number","nativeSrc":"12855:2:101","nodeType":"YulLiteral","src":"12855:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12840:3:101","nodeType":"YulIdentifier","src":"12840:3:101"},"nativeSrc":"12840:18:101","nodeType":"YulFunctionCall","src":"12840:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12832:4:101","nodeType":"YulIdentifier","src":"12832:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12879:9:101","nodeType":"YulIdentifier","src":"12879:9:101"},{"kind":"number","nativeSrc":"12890:1:101","nodeType":"YulLiteral","src":"12890:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12875:3:101","nodeType":"YulIdentifier","src":"12875:3:101"},"nativeSrc":"12875:17:101","nodeType":"YulFunctionCall","src":"12875:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12898:4:101","nodeType":"YulIdentifier","src":"12898:4:101"},{"name":"headStart","nativeSrc":"12904:9:101","nodeType":"YulIdentifier","src":"12904:9:101"}],"functionName":{"name":"sub","nativeSrc":"12894:3:101","nodeType":"YulIdentifier","src":"12894:3:101"},"nativeSrc":"12894:20:101","nodeType":"YulFunctionCall","src":"12894:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12868:6:101","nodeType":"YulIdentifier","src":"12868:6:101"},"nativeSrc":"12868:47:101","nodeType":"YulFunctionCall","src":"12868:47:101"},"nativeSrc":"12868:47:101","nodeType":"YulExpressionStatement","src":"12868:47:101"},{"nativeSrc":"12924:139:101","nodeType":"YulAssignment","src":"12924:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13058:4:101","nodeType":"YulIdentifier","src":"13058:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"12932:124:101","nodeType":"YulIdentifier","src":"12932:124:101"},"nativeSrc":"12932:131:101","nodeType":"YulFunctionCall","src":"12932:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12924:4:101","nodeType":"YulIdentifier","src":"12924:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12651:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12802:9:101","nodeType":"YulTypedName","src":"12802:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12817:4:101","nodeType":"YulTypedName","src":"12817:4:101","type":""}],"src":"12651:419:101"},{"body":{"nativeSrc":"13120:147:101","nodeType":"YulBlock","src":"13120:147:101","statements":[{"nativeSrc":"13130:25:101","nodeType":"YulAssignment","src":"13130:25:101","value":{"arguments":[{"name":"x","nativeSrc":"13153:1:101","nodeType":"YulIdentifier","src":"13153:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13135:17:101","nodeType":"YulIdentifier","src":"13135:17:101"},"nativeSrc":"13135:20:101","nodeType":"YulFunctionCall","src":"13135:20:101"},"variableNames":[{"name":"x","nativeSrc":"13130:1:101","nodeType":"YulIdentifier","src":"13130:1:101"}]},{"nativeSrc":"13164:25:101","nodeType":"YulAssignment","src":"13164:25:101","value":{"arguments":[{"name":"y","nativeSrc":"13187:1:101","nodeType":"YulIdentifier","src":"13187:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13169:17:101","nodeType":"YulIdentifier","src":"13169:17:101"},"nativeSrc":"13169:20:101","nodeType":"YulFunctionCall","src":"13169:20:101"},"variableNames":[{"name":"y","nativeSrc":"13164:1:101","nodeType":"YulIdentifier","src":"13164:1:101"}]},{"nativeSrc":"13198:16:101","nodeType":"YulAssignment","src":"13198:16:101","value":{"arguments":[{"name":"x","nativeSrc":"13209:1:101","nodeType":"YulIdentifier","src":"13209:1:101"},{"name":"y","nativeSrc":"13212:1:101","nodeType":"YulIdentifier","src":"13212:1:101"}],"functionName":{"name":"add","nativeSrc":"13205:3:101","nodeType":"YulIdentifier","src":"13205:3:101"},"nativeSrc":"13205:9:101","nodeType":"YulFunctionCall","src":"13205:9:101"},"variableNames":[{"name":"sum","nativeSrc":"13198:3:101","nodeType":"YulIdentifier","src":"13198:3:101"}]},{"body":{"nativeSrc":"13238:22:101","nodeType":"YulBlock","src":"13238:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"13240:16:101","nodeType":"YulIdentifier","src":"13240:16:101"},"nativeSrc":"13240:18:101","nodeType":"YulFunctionCall","src":"13240:18:101"},"nativeSrc":"13240:18:101","nodeType":"YulExpressionStatement","src":"13240:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"13230:1:101","nodeType":"YulIdentifier","src":"13230:1:101"},{"name":"sum","nativeSrc":"13233:3:101","nodeType":"YulIdentifier","src":"13233:3:101"}],"functionName":{"name":"gt","nativeSrc":"13227:2:101","nodeType":"YulIdentifier","src":"13227:2:101"},"nativeSrc":"13227:10:101","nodeType":"YulFunctionCall","src":"13227:10:101"},"nativeSrc":"13224:36:101","nodeType":"YulIf","src":"13224:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"13076:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"13107:1:101","nodeType":"YulTypedName","src":"13107:1:101","type":""},{"name":"y","nativeSrc":"13110:1:101","nodeType":"YulTypedName","src":"13110:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"13116:3:101","nodeType":"YulTypedName","src":"13116:3:101","type":""}],"src":"13076:191:101"},{"body":{"nativeSrc":"13338:53:101","nodeType":"YulBlock","src":"13338:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13355:3:101","nodeType":"YulIdentifier","src":"13355:3:101"},{"arguments":[{"name":"value","nativeSrc":"13378:5:101","nodeType":"YulIdentifier","src":"13378:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13360:17:101","nodeType":"YulIdentifier","src":"13360:17:101"},"nativeSrc":"13360:24:101","nodeType":"YulFunctionCall","src":"13360:24:101"}],"functionName":{"name":"mstore","nativeSrc":"13348:6:101","nodeType":"YulIdentifier","src":"13348:6:101"},"nativeSrc":"13348:37:101","nodeType":"YulFunctionCall","src":"13348:37:101"},"nativeSrc":"13348:37:101","nodeType":"YulExpressionStatement","src":"13348:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13273:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13326:5:101","nodeType":"YulTypedName","src":"13326:5:101","type":""},{"name":"pos","nativeSrc":"13333:3:101","nodeType":"YulTypedName","src":"13333:3:101","type":""}],"src":"13273:118:101"},{"body":{"nativeSrc":"13495:124:101","nodeType":"YulBlock","src":"13495:124:101","statements":[{"nativeSrc":"13505:26:101","nodeType":"YulAssignment","src":"13505:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13517:9:101","nodeType":"YulIdentifier","src":"13517:9:101"},{"kind":"number","nativeSrc":"13528:2:101","nodeType":"YulLiteral","src":"13528:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13513:3:101","nodeType":"YulIdentifier","src":"13513:3:101"},"nativeSrc":"13513:18:101","nodeType":"YulFunctionCall","src":"13513:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13505:4:101","nodeType":"YulIdentifier","src":"13505:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13585:6:101","nodeType":"YulIdentifier","src":"13585:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"13598:9:101","nodeType":"YulIdentifier","src":"13598:9:101"},{"kind":"number","nativeSrc":"13609:1:101","nodeType":"YulLiteral","src":"13609:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13594:3:101","nodeType":"YulIdentifier","src":"13594:3:101"},"nativeSrc":"13594:17:101","nodeType":"YulFunctionCall","src":"13594:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13541:43:101","nodeType":"YulIdentifier","src":"13541:43:101"},"nativeSrc":"13541:71:101","nodeType":"YulFunctionCall","src":"13541:71:101"},"nativeSrc":"13541:71:101","nodeType":"YulExpressionStatement","src":"13541:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"13397:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13467:9:101","nodeType":"YulTypedName","src":"13467:9:101","type":""},{"name":"value0","nativeSrc":"13479:6:101","nodeType":"YulTypedName","src":"13479:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13490:4:101","nodeType":"YulTypedName","src":"13490:4:101","type":""}],"src":"13397:222:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint256(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b50604051610f69380380610f6983398101604081905261002e91610237565b8282600361003c838261038b565b506004610049828261038b565b505050610072338260ff16600a610060919061056d565b61006d90620186a061057a565b61007a565b5050506105f3565b6001600160a01b0382166100a95760405162461bcd60e51b81526004016100a090610599565b60405180910390fd5b8060025f8282546100ba91906105d4565b90915550506001600160a01b0382165f81815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061010b9085906105e7565b60405180910390a35b5050565b505050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156101565761015661011d565b6040525050565b5f61016760405190565b90506101738282610131565b919050565b5f6001600160401b038211156101905761019061011d565b601f19601f83011660200192915050565b8281835e505f910152565b5f6101be6101b984610178565b61015d565b9050828152602081018484840111156101d8576101d85f80fd5b6101e38482856101a1565b509392505050565b5f82601f8301126101fd576101fd5f80fd5b815161020d8482602086016101ac565b949350505050565b60ff81168114610223575f80fd5b50565b805161023181610215565b92915050565b5f805f6060848603121561024c5761024c5f80fd5b83516001600160401b03811115610264576102645f80fd5b610270868287016101eb565b93505060208401516001600160401b0381111561028e5761028e5f80fd5b61029a868287016101eb565b92505060406102ab86828701610226565b9150509250925092565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806102dd57607f821691505b6020821081036102ef576102ef6102b5565b50919050565b5f6102316103008381565b90565b61030c836102f5565b81545f1960089490940293841b1916921b91909117905550565b5f610118818484610303565b81811015610114576103445f82610326565b600101610332565b601f821115610118575f818152602090206020601f850104810160208510156103725750805b6103846020601f860104830182610332565b5050505050565b81516001600160401b038111156103a4576103a461011d565b6103ae82546102c9565b6103b982828561034c565b6020601f8311600181146103eb575f84156103d45750858201515b5f19600886021c1981166002860217865550610442565b5f85815260208120601f198616915b8281101561041a57888501518255602094850194600190920191016103fa565b8683101561043557848901515f19601f89166008021c191682555b6001600288020188555050505b505050505050565b634e487b7160e01b5f52601160045260245ffd5b80825b600185111561049d5780860481111561047c5761047c61044a565b600185161561048a57908102905b80026104968560011c90565b9450610461565b94509492505050565b5f826104b457506001610566565b816104c057505f610566565b81600181146104d657600281146104e05761050d565b6001915050610566565b60ff8411156104f1576104f161044a565b8360020a9150848211156105075761050761044a565b50610566565b5060208310610133831016604e8410600b8410161715610540575081810a8381111561053b5761053b61044a565b610566565b61054d848484600161045e565b925090508184048111156105635761056361044a565b81025b9392505050565b5f6105665f1984846104a6565b8181028082158382048514176105925761059261044a565b5092915050565b6020808252810161023181601f81527f45524332303a206d696e7420746f20746865207a65726f206164647265737300602082015260400190565b808201808211156102315761023161044a565b81815260208101610231565b610969806106005f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea264697066735822122076cc94c5d816cad720d86bbf003c01761f0eb80b36246b47c4cca119453ae2a464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xF69 CODESIZE SUB DUP1 PUSH2 0xF69 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0x237 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH2 0x3C DUP4 DUP3 PUSH2 0x38B JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x49 DUP3 DUP3 PUSH2 0x38B JUMP JUMPDEST POP POP POP PUSH2 0x72 CALLER DUP3 PUSH1 0xFF AND PUSH1 0xA PUSH2 0x60 SWAP2 SWAP1 PUSH2 0x56D JUMP JUMPDEST PUSH2 0x6D SWAP1 PUSH3 0x186A0 PUSH2 0x57A JUMP JUMPDEST PUSH2 0x7A JUMP JUMPDEST POP POP POP PUSH2 0x5F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA0 SWAP1 PUSH2 0x599 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xBA SWAP2 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x10B SWAP1 DUP6 SWAP1 PUSH2 0x5E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x156 JUMPI PUSH2 0x156 PUSH2 0x11D JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x167 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x173 DUP3 DUP3 PUSH2 0x131 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x190 JUMPI PUSH2 0x190 PUSH2 0x11D JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x1BE PUSH2 0x1B9 DUP5 PUSH2 0x178 JUMP JUMPDEST PUSH2 0x15D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1D8 JUMPI PUSH2 0x1D8 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1E3 DUP5 DUP3 DUP6 PUSH2 0x1A1 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x20D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1AC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x223 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x231 DUP2 PUSH2 0x215 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24C JUMPI PUSH2 0x24C PUSH0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x264 JUMPI PUSH2 0x264 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x270 DUP7 DUP3 DUP8 ADD PUSH2 0x1EB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28E JUMPI PUSH2 0x28E PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x29A DUP7 DUP3 DUP8 ADD PUSH2 0x1EB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2AB DUP7 DUP3 DUP8 ADD PUSH2 0x226 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2DD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2EF JUMPI PUSH2 0x2EF PUSH2 0x2B5 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x231 PUSH2 0x300 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x30C DUP4 PUSH2 0x2F5 JUMP JUMPDEST DUP2 SLOAD PUSH0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x118 DUP2 DUP5 DUP5 PUSH2 0x303 JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x114 JUMPI PUSH2 0x344 PUSH0 DUP3 PUSH2 0x326 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x332 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x118 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x372 JUMPI POP DUP1 JUMPDEST PUSH2 0x384 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x332 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3A4 JUMPI PUSH2 0x3A4 PUSH2 0x11D JUMP JUMPDEST PUSH2 0x3AE DUP3 SLOAD PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x3B9 DUP3 DUP3 DUP6 PUSH2 0x34C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3EB JUMPI PUSH0 DUP5 ISZERO PUSH2 0x3D4 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x442 JUMP JUMPDEST PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x41A JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x3FA JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x435 JUMPI DUP5 DUP10 ADD MLOAD PUSH0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x49D JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x47C JUMPI PUSH2 0x47C PUSH2 0x44A JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x48A JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x496 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x461 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH2 0x4B4 JUMPI POP PUSH1 0x1 PUSH2 0x566 JUMP JUMPDEST DUP2 PUSH2 0x4C0 JUMPI POP PUSH0 PUSH2 0x566 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x4D6 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x4E0 JUMPI PUSH2 0x50D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x566 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x4F1 JUMPI PUSH2 0x4F1 PUSH2 0x44A JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x507 JUMPI PUSH2 0x507 PUSH2 0x44A JUMP JUMPDEST POP PUSH2 0x566 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x540 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x53B JUMPI PUSH2 0x53B PUSH2 0x44A JUMP JUMPDEST PUSH2 0x566 JUMP JUMPDEST PUSH2 0x54D DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x45E JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x563 JUMPI PUSH2 0x563 PUSH2 0x44A JUMP JUMPDEST DUP2 MUL JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x566 PUSH0 NOT DUP5 DUP5 PUSH2 0x4A6 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x592 JUMPI PUSH2 0x592 PUSH2 0x44A JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x231 DUP2 PUSH1 0x1F DUP2 MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x231 JUMPI PUSH2 0x231 PUSH2 0x44A JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0x231 JUMP JUMPDEST PUSH2 0x969 DUP1 PUSH2 0x600 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x184 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x10C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB2 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x240 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x649 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x657 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB2 PUSH2 0x284 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0x67D JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 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 0x1D2 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x21D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x21D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x200 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x30F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x24D DUP6 DUP3 DUP6 PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0x258 DUP6 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x275 DUP4 DUP4 PUSH2 0x2E5 JUMP JUMPDEST PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2A0 DUP3 DUP7 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x758 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x258 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x3B5 SWAP1 DUP6 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3CD DUP5 DUP5 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x404 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x806 JUMP JUMPDEST PUSH2 0x404 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x882 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x8D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x923 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x4EB SWAP1 DUP7 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x404 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x50C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x523 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x545 DUP2 DUP5 PUSH2 0x503 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x565 DUP2 PUSH2 0x54C JUMP JUMPDEST DUP2 EQ PUSH2 0x56F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x55C JUMP JUMPDEST DUP1 PUSH2 0x565 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x57D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x5AD DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5C8 JUMP JUMPDEST DUP1 PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5E0 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x609 JUMPI PUSH2 0x609 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x614 DUP7 DUP7 PUSH2 0x572 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x625 DUP7 DUP3 DUP8 ADD PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x636 DUP7 DUP3 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x640 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66A JUMPI PUSH2 0x66A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x675 DUP5 DUP5 PUSH2 0x572 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x691 JUMPI PUSH2 0x691 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x69C DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x572 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6E7 JUMPI PUSH2 0x6E7 PUSH2 0x6AD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x23A JUMPI PUSH2 0x23A PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x714 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x768 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH1 0x1D DUP2 MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x8E1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0xCC94C5D816CAD720D86BBF003C01761F0EB80B36246B47 0xC4 0xCC LOG1 NOT GASLIMIT GASPRICE 0xE2 LOG4 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"123:194:87:-:0;;;157:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;233:4;239:6;2046:5:11;:13;233:4:87;2046:5:11;:13;:::i;:::-;-1:-1:-1;2069:7:11;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;257:51:87::1;263:10;298:8;290:17;;284:2;:23;;;;:::i;:::-;275:32;::::0;:6:::1;:32;:::i;:::-;257:5;:51::i;:::-;157:158:::0;;;123:194;;8520:535:11;-1:-1:-1;;;;;8603:21:11;;8595:65;;;;-1:-1:-1;;;8595:65:11;;;;;;;:::i;:::-;;;;;;;;;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:11;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;9000:48;8520:535;;:::o;12073:91::-;;;;:::o;688:180:101:-;-1:-1:-1;;;733:1:101;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:101;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:101;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:101:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:101;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:101;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:101:o;1610:139::-;1699:6;1694:3;1689;1683:23;-1:-1:-1;1740:1:101;1722:16;;1715:27;1610:139::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;197:1;194;187:12;2041:79;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;197:1;194;187:12;2333:79;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;2209:355;-1:-1:-1;;;;2209:355:101:o;2662:118::-;2645:4;2634:16;;2726:5;2723:33;2713:61;;2770:1;2767;2760:12;2713:61;2662:118;:::o;2786:139::-;2866:13;;2888:31;2866:13;2888:31;:::i;:::-;2786:139;;;;:::o;2931:1005::-;3037:6;3045;3053;3102:2;3090:9;3081:7;3077:23;3073:32;3070:119;;;3108:79;197:1;194;187:12;3108:79;3228:24;;-1:-1:-1;;;;;3268:30:101;;3265:117;;;3301:79;197:1;194;187:12;3301:79;3406:74;3472:7;3463:6;3452:9;3448:22;3406:74;:::i;:::-;3396:84;;3199:291;3550:2;3539:9;3535:18;3529:25;-1:-1:-1;;;;;3573:6:101;3570:30;3567:117;;;3603:79;197:1;194;187:12;3603:79;3708:74;3774:7;3765:6;3754:9;3750:22;3708:74;:::i;:::-;3698:84;;3500:292;3831:2;3857:62;3911:7;3902:6;3891:9;3887:22;3857:62;:::i;:::-;3847:72;;3802:127;2931:1005;;;;;:::o;4047:180::-;-1:-1:-1;;;4092:1:101;4085:88;4192:4;4189:1;4182:15;4216:4;4213:1;4206:15;4233:320;4314:1;4304:12;;4361:1;4351:12;;;4372:81;;4438:4;4430:6;4426:17;4416:27;;4372:81;4500:2;4492:6;4489:14;4469:18;4466:38;4463:84;;4519:18;;:::i;:::-;4284:269;4233:320;;;:::o;5466:142::-;5516:9;5549:53;5567:34;5594:5;5567:34;5317:77;5576:24;5383:5;5317:77;5695:269;5805:39;5836:7;5805:39;:::i;:::-;5894:11;;-1:-1:-1;;5037:1:101;5021:18;;;;4889:16;;;5246:9;5235:21;4889:16;;5275:30;;;;5853:105;;-1:-1:-1;5695:269:101:o;6049:189::-;6015:3;6167:65;6225:6;6217;6211:4;6167:65;:::i;6244:186::-;6321:3;6314:5;6311:14;6304:120;;;6375:39;6412:1;6405:5;6375:39;:::i;:::-;6348:1;6337:13;6304:120;;6436:543;6537:2;6532:3;6529:11;6526:446;;;4608:4;4644:14;;;4688:4;4675:18;;4790:2;4785;4774:14;;4770:23;6645:8;6641:44;6838:2;6826:10;6823:18;6820:49;;;-1:-1:-1;6859:8:101;6820:49;6882:80;4790:2;4785;4774:14;;4770:23;6928:8;6924:37;6911:11;6882:80;:::i;:::-;6541:431;;6436:543;;;:::o;7582:1395::-;4022:12;;-1:-1:-1;;;;;7793:6:101;7790:30;7787:56;;;7823:18;;:::i;:::-;7867:38;7899:4;7893:11;7867:38;:::i;:::-;7952:67;8012:6;8004;7998:4;7952:67;:::i;:::-;8070:4;8102:2;8091:14;;8119:1;8114:618;;;;8776:1;8793:6;8790:77;;;-1:-1:-1;8833:19:101;;;8827:26;8790:77;-1:-1:-1;;7218:1:101;7214:13;;7079:16;7181:56;7256:15;;7563:1;7559:11;;7550:21;8887:4;8880:81;8749:222;8084:887;;8114:618;4608:4;4644:14;;;4688:4;4675:18;;-1:-1:-1;;8150:22:101;;;8273:208;8287:7;8284:1;8281:14;8273:208;;;8357:19;;;8351:26;8336:42;;8464:2;8449:18;;;;8417:1;8405:14;;;;8303:12;8273:208;;;8509:6;8500:7;8497:19;8494:179;;;8558:19;;;8552:26;-1:-1:-1;;8652:4:101;8640:17;;7218:1;7214:13;7079:16;7181:56;7256:15;8595:64;;8494:179;8719:1;8715;8707:6;8703:14;8699:22;8693:4;8686:36;8121:611;;;8084:887;;7674:1303;;;7582:1395;;:::o;8983:180::-;-1:-1:-1;;;9028:1:101;9021:88;9128:4;9125:1;9118:15;9152:4;9149:1;9142:15;9277:848;9369:6;9393:5;9407:712;9428:1;9418:8;9415:15;9407:712;;;9523:4;9518:3;9514:14;9508:4;9505:24;9502:50;;;9532:18;;:::i;:::-;9582:1;9572:8;9568:16;9565:451;;;9986:16;;;;9565:451;10037:15;;10077:32;10100:8;9255:1;9251:13;;9169:102;10077:32;10065:44;;9407:712;;;9277:848;;;;;;;:::o;10131:1073::-;10185:5;10376:8;10366:40;;-1:-1:-1;10397:1:101;10399:5;;10366:40;10425:4;10415:36;;-1:-1:-1;10442:1:101;10444:5;;10415:36;10511:4;10559:1;10554:27;;;;10595:1;10590:191;;;;10504:277;;10554:27;10572:1;10563:10;;10574:5;;;10590:191;10635:3;10625:8;10622:17;10619:43;;;10642:18;;:::i;:::-;10691:8;10688:1;10684:16;10675:25;;10726:3;10719:5;10716:14;10713:40;;;10733:18;;:::i;:::-;10766:5;;;10504:277;;10890:2;10880:8;10877:16;10871:3;10865:4;10862:13;10858:36;10840:2;10830:8;10827:16;10822:2;10816:4;10813:12;10809:35;10793:111;10790:246;;;-1:-1:-1;10936:19:101;;;10971:14;;;10968:40;;;10988:18;;:::i;:::-;11021:5;;10790:246;11061:42;11099:3;11089:8;11083:4;11080:1;11061:42;:::i;:::-;11046:57;;;;11135:4;11130:3;11126:14;11119:5;11116:25;11113:51;;;11144:18;;:::i;:::-;11182:16;;10131:1073;;;;;;:::o;11210:285::-;11270:5;11384:104;-1:-1:-1;;11411:8:101;11405:4;11384:104;:::i;11501:410::-;11646:9;;;;11808;;11841:15;;;11835:22;;11788:83;11765:139;;11884:18;;:::i;:::-;11549:362;11501:410;;;;:::o;12651:419::-;12855:2;12868:47;;;12840:18;;12932:131;12840:18;12506:2;12023:19;;12232:33;12075:4;12066:14;;12209:57;12627:12;;;12279:366;13076:191;13205:9;;;13227:10;;;13224:36;;;13240:18;;:::i;13397:222::-;13348:37;;;13528:2;13513:18;;13541:71;13273:118;13397:222;123:194:87;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1792":{"entryPoint":null,"id":1792,"parameterSlots":3,"returnSlots":0},"@_approve_1727":{"entryPoint":783,"id":1727,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1781":{"entryPoint":null,"id":1781,"parameterSlots":3,"returnSlots":0},"@_msgSender_1908":{"entryPoint":null,"id":1908,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1770":{"entryPoint":962,"id":1770,"parameterSlots":3,"returnSlots":0},"@_transfer_1553":{"entryPoint":1034,"id":1553,"parameterSlots":3,"returnSlots":0},"@allowance_1348":{"entryPoint":741,"id":1348,"parameterSlots":2,"returnSlots":1},"@approve_1373":{"entryPoint":551,"id":1373,"parameterSlots":2,"returnSlots":1},"@balanceOf_1305":{"entryPoint":null,"id":1305,"parameterSlots":1,"returnSlots":1},"@decimals_1281":{"entryPoint":null,"id":1281,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1476":{"entryPoint":659,"id":1476,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_1435":{"entryPoint":611,"id":1435,"parameterSlots":2,"returnSlots":1},"@name_1261":{"entryPoint":407,"id":1261,"parameterSlots":0,"returnSlots":1},"@symbol_1271":{"entryPoint":644,"id":1271,"parameterSlots":0,"returnSlots":1},"@totalSupply_1291":{"entryPoint":null,"id":1291,"parameterSlots":0,"returnSlots":1},"@transferFrom_1406":{"entryPoint":576,"id":1406,"parameterSlots":3,"returnSlots":1},"@transfer_1330":{"entryPoint":728,"id":1330,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1394,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1411,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1661,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1524,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1422,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1480,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1283,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2194,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":1976,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":2273,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2113,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":1896,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":1812,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1504,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":1600,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1490,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1332,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2257,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2038,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2054,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2339,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2178,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1880,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1510,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":1609,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1793,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1356,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1272,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1729,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":1773,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":1709,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1372,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1405,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13592:101","nodeType":"YulBlock","src":"0:13592:101","statements":[{"body":{"nativeSrc":"66:40:101","nodeType":"YulBlock","src":"66:40:101","statements":[{"nativeSrc":"77:22:101","nodeType":"YulAssignment","src":"77:22:101","value":{"arguments":[{"name":"value","nativeSrc":"93:5:101","nodeType":"YulIdentifier","src":"93:5:101"}],"functionName":{"name":"mload","nativeSrc":"87:5:101","nodeType":"YulIdentifier","src":"87:5:101"},"nativeSrc":"87:12:101","nodeType":"YulFunctionCall","src":"87:12:101"},"variableNames":[{"name":"length","nativeSrc":"77:6:101","nodeType":"YulIdentifier","src":"77:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:101","nodeType":"YulTypedName","src":"49:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:101","nodeType":"YulTypedName","src":"59:6:101","type":""}],"src":"7:99:101"},{"body":{"nativeSrc":"208:73:101","nodeType":"YulBlock","src":"208:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:101","nodeType":"YulIdentifier","src":"225:3:101"},{"name":"length","nativeSrc":"230:6:101","nodeType":"YulIdentifier","src":"230:6:101"}],"functionName":{"name":"mstore","nativeSrc":"218:6:101","nodeType":"YulIdentifier","src":"218:6:101"},"nativeSrc":"218:19:101","nodeType":"YulFunctionCall","src":"218:19:101"},"nativeSrc":"218:19:101","nodeType":"YulExpressionStatement","src":"218:19:101"},{"nativeSrc":"246:29:101","nodeType":"YulAssignment","src":"246:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:101","nodeType":"YulIdentifier","src":"265:3:101"},{"kind":"number","nativeSrc":"270:4:101","nodeType":"YulLiteral","src":"270:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:101","nodeType":"YulIdentifier","src":"261:3:101"},"nativeSrc":"261:14:101","nodeType":"YulFunctionCall","src":"261:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:101","nodeType":"YulIdentifier","src":"246:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:101","nodeType":"YulTypedName","src":"180:3:101","type":""},{"name":"length","nativeSrc":"185:6:101","nodeType":"YulTypedName","src":"185:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:101","nodeType":"YulTypedName","src":"196:11:101","type":""}],"src":"112:169:101"},{"body":{"nativeSrc":"349:77:101","nodeType":"YulBlock","src":"349:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:101","nodeType":"YulIdentifier","src":"366:3:101"},{"name":"src","nativeSrc":"371:3:101","nodeType":"YulIdentifier","src":"371:3:101"},{"name":"length","nativeSrc":"376:6:101","nodeType":"YulIdentifier","src":"376:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:101","nodeType":"YulIdentifier","src":"360:5:101"},"nativeSrc":"360:23:101","nodeType":"YulFunctionCall","src":"360:23:101"},"nativeSrc":"360:23:101","nodeType":"YulExpressionStatement","src":"360:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:101","nodeType":"YulIdentifier","src":"403:3:101"},{"name":"length","nativeSrc":"408:6:101","nodeType":"YulIdentifier","src":"408:6:101"}],"functionName":{"name":"add","nativeSrc":"399:3:101","nodeType":"YulIdentifier","src":"399:3:101"},"nativeSrc":"399:16:101","nodeType":"YulFunctionCall","src":"399:16:101"},{"kind":"number","nativeSrc":"417:1:101","nodeType":"YulLiteral","src":"417:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:101","nodeType":"YulIdentifier","src":"392:6:101"},"nativeSrc":"392:27:101","nodeType":"YulFunctionCall","src":"392:27:101"},"nativeSrc":"392:27:101","nodeType":"YulExpressionStatement","src":"392:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:101","nodeType":"YulTypedName","src":"331:3:101","type":""},{"name":"dst","nativeSrc":"336:3:101","nodeType":"YulTypedName","src":"336:3:101","type":""},{"name":"length","nativeSrc":"341:6:101","nodeType":"YulTypedName","src":"341:6:101","type":""}],"src":"287:139:101"},{"body":{"nativeSrc":"480:54:101","nodeType":"YulBlock","src":"480:54:101","statements":[{"nativeSrc":"490:38:101","nodeType":"YulAssignment","src":"490:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:101","nodeType":"YulIdentifier","src":"508:5:101"},{"kind":"number","nativeSrc":"515:2:101","nodeType":"YulLiteral","src":"515:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:101","nodeType":"YulIdentifier","src":"504:3:101"},"nativeSrc":"504:14:101","nodeType":"YulFunctionCall","src":"504:14:101"},{"arguments":[{"kind":"number","nativeSrc":"524:2:101","nodeType":"YulLiteral","src":"524:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:101","nodeType":"YulIdentifier","src":"520:3:101"},"nativeSrc":"520:7:101","nodeType":"YulFunctionCall","src":"520:7:101"}],"functionName":{"name":"and","nativeSrc":"500:3:101","nodeType":"YulIdentifier","src":"500:3:101"},"nativeSrc":"500:28:101","nodeType":"YulFunctionCall","src":"500:28:101"},"variableNames":[{"name":"result","nativeSrc":"490:6:101","nodeType":"YulIdentifier","src":"490:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:101","nodeType":"YulTypedName","src":"463:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:101","nodeType":"YulTypedName","src":"473:6:101","type":""}],"src":"432:102:101"},{"body":{"nativeSrc":"632:285:101","nodeType":"YulBlock","src":"632:285:101","statements":[{"nativeSrc":"642:53:101","nodeType":"YulVariableDeclaration","src":"642:53:101","value":{"arguments":[{"name":"value","nativeSrc":"689:5:101","nodeType":"YulIdentifier","src":"689:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:101","nodeType":"YulIdentifier","src":"656:32:101"},"nativeSrc":"656:39:101","nodeType":"YulFunctionCall","src":"656:39:101"},"variables":[{"name":"length","nativeSrc":"646:6:101","nodeType":"YulTypedName","src":"646:6:101","type":""}]},{"nativeSrc":"704:78:101","nodeType":"YulAssignment","src":"704:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:101","nodeType":"YulIdentifier","src":"770:3:101"},{"name":"length","nativeSrc":"775:6:101","nodeType":"YulIdentifier","src":"775:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:101","nodeType":"YulIdentifier","src":"711:58:101"},"nativeSrc":"711:71:101","nodeType":"YulFunctionCall","src":"711:71:101"},"variableNames":[{"name":"pos","nativeSrc":"704:3:101","nodeType":"YulIdentifier","src":"704:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:101","nodeType":"YulIdentifier","src":"830:5:101"},{"kind":"number","nativeSrc":"837:4:101","nodeType":"YulLiteral","src":"837:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:101","nodeType":"YulIdentifier","src":"826:3:101"},"nativeSrc":"826:16:101","nodeType":"YulFunctionCall","src":"826:16:101"},{"name":"pos","nativeSrc":"844:3:101","nodeType":"YulIdentifier","src":"844:3:101"},{"name":"length","nativeSrc":"849:6:101","nodeType":"YulIdentifier","src":"849:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:101","nodeType":"YulIdentifier","src":"791:34:101"},"nativeSrc":"791:65:101","nodeType":"YulFunctionCall","src":"791:65:101"},"nativeSrc":"791:65:101","nodeType":"YulExpressionStatement","src":"791:65:101"},{"nativeSrc":"865:46:101","nodeType":"YulAssignment","src":"865:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:101","nodeType":"YulIdentifier","src":"876:3:101"},{"arguments":[{"name":"length","nativeSrc":"903:6:101","nodeType":"YulIdentifier","src":"903:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:101","nodeType":"YulIdentifier","src":"881:21:101"},"nativeSrc":"881:29:101","nodeType":"YulFunctionCall","src":"881:29:101"}],"functionName":{"name":"add","nativeSrc":"872:3:101","nodeType":"YulIdentifier","src":"872:3:101"},"nativeSrc":"872:39:101","nodeType":"YulFunctionCall","src":"872:39:101"},"variableNames":[{"name":"end","nativeSrc":"865:3:101","nodeType":"YulIdentifier","src":"865:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:101","nodeType":"YulTypedName","src":"613:5:101","type":""},{"name":"pos","nativeSrc":"620:3:101","nodeType":"YulTypedName","src":"620:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:101","nodeType":"YulTypedName","src":"628:3:101","type":""}],"src":"540:377:101"},{"body":{"nativeSrc":"1041:195:101","nodeType":"YulBlock","src":"1041:195:101","statements":[{"nativeSrc":"1051:26:101","nodeType":"YulAssignment","src":"1051:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:101","nodeType":"YulIdentifier","src":"1063:9:101"},{"kind":"number","nativeSrc":"1074:2:101","nodeType":"YulLiteral","src":"1074:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:101","nodeType":"YulIdentifier","src":"1059:3:101"},"nativeSrc":"1059:18:101","nodeType":"YulFunctionCall","src":"1059:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:101","nodeType":"YulIdentifier","src":"1051:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:101","nodeType":"YulIdentifier","src":"1098:9:101"},{"kind":"number","nativeSrc":"1109:1:101","nodeType":"YulLiteral","src":"1109:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:101","nodeType":"YulIdentifier","src":"1094:3:101"},"nativeSrc":"1094:17:101","nodeType":"YulFunctionCall","src":"1094:17:101"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:101","nodeType":"YulIdentifier","src":"1117:4:101"},{"name":"headStart","nativeSrc":"1123:9:101","nodeType":"YulIdentifier","src":"1123:9:101"}],"functionName":{"name":"sub","nativeSrc":"1113:3:101","nodeType":"YulIdentifier","src":"1113:3:101"},"nativeSrc":"1113:20:101","nodeType":"YulFunctionCall","src":"1113:20:101"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:101","nodeType":"YulIdentifier","src":"1087:6:101"},"nativeSrc":"1087:47:101","nodeType":"YulFunctionCall","src":"1087:47:101"},"nativeSrc":"1087:47:101","nodeType":"YulExpressionStatement","src":"1087:47:101"},{"nativeSrc":"1143:86:101","nodeType":"YulAssignment","src":"1143:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:101","nodeType":"YulIdentifier","src":"1215:6:101"},{"name":"tail","nativeSrc":"1224:4:101","nodeType":"YulIdentifier","src":"1224:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:101","nodeType":"YulIdentifier","src":"1151:63:101"},"nativeSrc":"1151:78:101","nodeType":"YulFunctionCall","src":"1151:78:101"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:101","nodeType":"YulIdentifier","src":"1143:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:101","nodeType":"YulTypedName","src":"1013:9:101","type":""},{"name":"value0","nativeSrc":"1025:6:101","nodeType":"YulTypedName","src":"1025:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:101","nodeType":"YulTypedName","src":"1036:4:101","type":""}],"src":"923:313:101"},{"body":{"nativeSrc":"1282:35:101","nodeType":"YulBlock","src":"1282:35:101","statements":[{"nativeSrc":"1292:19:101","nodeType":"YulAssignment","src":"1292:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:101","nodeType":"YulLiteral","src":"1308:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:101","nodeType":"YulIdentifier","src":"1302:5:101"},"nativeSrc":"1302:9:101","nodeType":"YulFunctionCall","src":"1302:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:101","nodeType":"YulIdentifier","src":"1292:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:101","nodeType":"YulTypedName","src":"1275:6:101","type":""}],"src":"1242:75:101"},{"body":{"nativeSrc":"1412:28:101","nodeType":"YulBlock","src":"1412:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:101","nodeType":"YulLiteral","src":"1429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:101","nodeType":"YulLiteral","src":"1432:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:101","nodeType":"YulIdentifier","src":"1422:6:101"},"nativeSrc":"1422:12:101","nodeType":"YulFunctionCall","src":"1422:12:101"},"nativeSrc":"1422:12:101","nodeType":"YulExpressionStatement","src":"1422:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:101","nodeType":"YulFunctionDefinition","src":"1323:117:101"},{"body":{"nativeSrc":"1535:28:101","nodeType":"YulBlock","src":"1535:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:101","nodeType":"YulLiteral","src":"1552:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:101","nodeType":"YulLiteral","src":"1555:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:101","nodeType":"YulIdentifier","src":"1545:6:101"},"nativeSrc":"1545:12:101","nodeType":"YulFunctionCall","src":"1545:12:101"},"nativeSrc":"1545:12:101","nodeType":"YulExpressionStatement","src":"1545:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:101","nodeType":"YulFunctionDefinition","src":"1446:117:101"},{"body":{"nativeSrc":"1614:81:101","nodeType":"YulBlock","src":"1614:81:101","statements":[{"nativeSrc":"1624:65:101","nodeType":"YulAssignment","src":"1624:65:101","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:101","nodeType":"YulIdentifier","src":"1639:5:101"},{"kind":"number","nativeSrc":"1646:42:101","nodeType":"YulLiteral","src":"1646:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:101","nodeType":"YulIdentifier","src":"1635:3:101"},"nativeSrc":"1635:54:101","nodeType":"YulFunctionCall","src":"1635:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:101","nodeType":"YulIdentifier","src":"1624:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:101","nodeType":"YulTypedName","src":"1596:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:101","nodeType":"YulTypedName","src":"1606:7:101","type":""}],"src":"1569:126:101"},{"body":{"nativeSrc":"1746:51:101","nodeType":"YulBlock","src":"1746:51:101","statements":[{"nativeSrc":"1756:35:101","nodeType":"YulAssignment","src":"1756:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:101","nodeType":"YulIdentifier","src":"1785:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:101","nodeType":"YulIdentifier","src":"1767:17:101"},"nativeSrc":"1767:24:101","nodeType":"YulFunctionCall","src":"1767:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:101","nodeType":"YulIdentifier","src":"1756:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:101","nodeType":"YulTypedName","src":"1728:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:101","nodeType":"YulTypedName","src":"1738:7:101","type":""}],"src":"1701:96:101"},{"body":{"nativeSrc":"1846:79:101","nodeType":"YulBlock","src":"1846:79:101","statements":[{"body":{"nativeSrc":"1903:16:101","nodeType":"YulBlock","src":"1903:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:101","nodeType":"YulLiteral","src":"1912:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:101","nodeType":"YulLiteral","src":"1915:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:101","nodeType":"YulIdentifier","src":"1905:6:101"},"nativeSrc":"1905:12:101","nodeType":"YulFunctionCall","src":"1905:12:101"},"nativeSrc":"1905:12:101","nodeType":"YulExpressionStatement","src":"1905:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:101","nodeType":"YulIdentifier","src":"1869:5:101"},{"arguments":[{"name":"value","nativeSrc":"1894:5:101","nodeType":"YulIdentifier","src":"1894:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:101","nodeType":"YulIdentifier","src":"1876:17:101"},"nativeSrc":"1876:24:101","nodeType":"YulFunctionCall","src":"1876:24:101"}],"functionName":{"name":"eq","nativeSrc":"1866:2:101","nodeType":"YulIdentifier","src":"1866:2:101"},"nativeSrc":"1866:35:101","nodeType":"YulFunctionCall","src":"1866:35:101"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:101","nodeType":"YulIdentifier","src":"1859:6:101"},"nativeSrc":"1859:43:101","nodeType":"YulFunctionCall","src":"1859:43:101"},"nativeSrc":"1856:63:101","nodeType":"YulIf","src":"1856:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:101","nodeType":"YulTypedName","src":"1839:5:101","type":""}],"src":"1803:122:101"},{"body":{"nativeSrc":"1983:87:101","nodeType":"YulBlock","src":"1983:87:101","statements":[{"nativeSrc":"1993:29:101","nodeType":"YulAssignment","src":"1993:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:101","nodeType":"YulIdentifier","src":"2015:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:101","nodeType":"YulIdentifier","src":"2002:12:101"},"nativeSrc":"2002:20:101","nodeType":"YulFunctionCall","src":"2002:20:101"},"variableNames":[{"name":"value","nativeSrc":"1993:5:101","nodeType":"YulIdentifier","src":"1993:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:101","nodeType":"YulIdentifier","src":"2058:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:101","nodeType":"YulIdentifier","src":"2031:26:101"},"nativeSrc":"2031:33:101","nodeType":"YulFunctionCall","src":"2031:33:101"},"nativeSrc":"2031:33:101","nodeType":"YulExpressionStatement","src":"2031:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:101","nodeType":"YulTypedName","src":"1961:6:101","type":""},{"name":"end","nativeSrc":"1969:3:101","nodeType":"YulTypedName","src":"1969:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:101","nodeType":"YulTypedName","src":"1977:5:101","type":""}],"src":"1931:139:101"},{"body":{"nativeSrc":"2121:32:101","nodeType":"YulBlock","src":"2121:32:101","statements":[{"nativeSrc":"2131:16:101","nodeType":"YulAssignment","src":"2131:16:101","value":{"name":"value","nativeSrc":"2142:5:101","nodeType":"YulIdentifier","src":"2142:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:101","nodeType":"YulIdentifier","src":"2131:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:101","nodeType":"YulTypedName","src":"2103:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:101","nodeType":"YulTypedName","src":"2113:7:101","type":""}],"src":"2076:77:101"},{"body":{"nativeSrc":"2202:79:101","nodeType":"YulBlock","src":"2202:79:101","statements":[{"body":{"nativeSrc":"2259:16:101","nodeType":"YulBlock","src":"2259:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:101","nodeType":"YulLiteral","src":"2268:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:101","nodeType":"YulLiteral","src":"2271:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:101","nodeType":"YulIdentifier","src":"2261:6:101"},"nativeSrc":"2261:12:101","nodeType":"YulFunctionCall","src":"2261:12:101"},"nativeSrc":"2261:12:101","nodeType":"YulExpressionStatement","src":"2261:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:101","nodeType":"YulIdentifier","src":"2225:5:101"},{"arguments":[{"name":"value","nativeSrc":"2250:5:101","nodeType":"YulIdentifier","src":"2250:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:101","nodeType":"YulIdentifier","src":"2232:17:101"},"nativeSrc":"2232:24:101","nodeType":"YulFunctionCall","src":"2232:24:101"}],"functionName":{"name":"eq","nativeSrc":"2222:2:101","nodeType":"YulIdentifier","src":"2222:2:101"},"nativeSrc":"2222:35:101","nodeType":"YulFunctionCall","src":"2222:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:101","nodeType":"YulIdentifier","src":"2215:6:101"},"nativeSrc":"2215:43:101","nodeType":"YulFunctionCall","src":"2215:43:101"},"nativeSrc":"2212:63:101","nodeType":"YulIf","src":"2212:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:101","nodeType":"YulTypedName","src":"2195:5:101","type":""}],"src":"2159:122:101"},{"body":{"nativeSrc":"2339:87:101","nodeType":"YulBlock","src":"2339:87:101","statements":[{"nativeSrc":"2349:29:101","nodeType":"YulAssignment","src":"2349:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:101","nodeType":"YulIdentifier","src":"2371:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:101","nodeType":"YulIdentifier","src":"2358:12:101"},"nativeSrc":"2358:20:101","nodeType":"YulFunctionCall","src":"2358:20:101"},"variableNames":[{"name":"value","nativeSrc":"2349:5:101","nodeType":"YulIdentifier","src":"2349:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:101","nodeType":"YulIdentifier","src":"2414:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:101","nodeType":"YulIdentifier","src":"2387:26:101"},"nativeSrc":"2387:33:101","nodeType":"YulFunctionCall","src":"2387:33:101"},"nativeSrc":"2387:33:101","nodeType":"YulExpressionStatement","src":"2387:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:101","nodeType":"YulTypedName","src":"2317:6:101","type":""},{"name":"end","nativeSrc":"2325:3:101","nodeType":"YulTypedName","src":"2325:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:101","nodeType":"YulTypedName","src":"2333:5:101","type":""}],"src":"2287:139:101"},{"body":{"nativeSrc":"2515:391:101","nodeType":"YulBlock","src":"2515:391:101","statements":[{"body":{"nativeSrc":"2561:83:101","nodeType":"YulBlock","src":"2561:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:101","nodeType":"YulIdentifier","src":"2563:77:101"},"nativeSrc":"2563:79:101","nodeType":"YulFunctionCall","src":"2563:79:101"},"nativeSrc":"2563:79:101","nodeType":"YulExpressionStatement","src":"2563:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:101","nodeType":"YulIdentifier","src":"2536:7:101"},{"name":"headStart","nativeSrc":"2545:9:101","nodeType":"YulIdentifier","src":"2545:9:101"}],"functionName":{"name":"sub","nativeSrc":"2532:3:101","nodeType":"YulIdentifier","src":"2532:3:101"},"nativeSrc":"2532:23:101","nodeType":"YulFunctionCall","src":"2532:23:101"},{"kind":"number","nativeSrc":"2557:2:101","nodeType":"YulLiteral","src":"2557:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},"nativeSrc":"2528:32:101","nodeType":"YulFunctionCall","src":"2528:32:101"},"nativeSrc":"2525:119:101","nodeType":"YulIf","src":"2525:119:101"},{"nativeSrc":"2654:117:101","nodeType":"YulBlock","src":"2654:117:101","statements":[{"nativeSrc":"2669:15:101","nodeType":"YulVariableDeclaration","src":"2669:15:101","value":{"kind":"number","nativeSrc":"2683:1:101","nodeType":"YulLiteral","src":"2683:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:101","nodeType":"YulTypedName","src":"2673:6:101","type":""}]},{"nativeSrc":"2698:63:101","nodeType":"YulAssignment","src":"2698:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:101","nodeType":"YulIdentifier","src":"2733:9:101"},{"name":"offset","nativeSrc":"2744:6:101","nodeType":"YulIdentifier","src":"2744:6:101"}],"functionName":{"name":"add","nativeSrc":"2729:3:101","nodeType":"YulIdentifier","src":"2729:3:101"},"nativeSrc":"2729:22:101","nodeType":"YulFunctionCall","src":"2729:22:101"},{"name":"dataEnd","nativeSrc":"2753:7:101","nodeType":"YulIdentifier","src":"2753:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:101","nodeType":"YulIdentifier","src":"2708:20:101"},"nativeSrc":"2708:53:101","nodeType":"YulFunctionCall","src":"2708:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:101","nodeType":"YulIdentifier","src":"2698:6:101"}]}]},{"nativeSrc":"2781:118:101","nodeType":"YulBlock","src":"2781:118:101","statements":[{"nativeSrc":"2796:16:101","nodeType":"YulVariableDeclaration","src":"2796:16:101","value":{"kind":"number","nativeSrc":"2810:2:101","nodeType":"YulLiteral","src":"2810:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:101","nodeType":"YulTypedName","src":"2800:6:101","type":""}]},{"nativeSrc":"2826:63:101","nodeType":"YulAssignment","src":"2826:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:101","nodeType":"YulIdentifier","src":"2861:9:101"},{"name":"offset","nativeSrc":"2872:6:101","nodeType":"YulIdentifier","src":"2872:6:101"}],"functionName":{"name":"add","nativeSrc":"2857:3:101","nodeType":"YulIdentifier","src":"2857:3:101"},"nativeSrc":"2857:22:101","nodeType":"YulFunctionCall","src":"2857:22:101"},{"name":"dataEnd","nativeSrc":"2881:7:101","nodeType":"YulIdentifier","src":"2881:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:101","nodeType":"YulIdentifier","src":"2836:20:101"},"nativeSrc":"2836:53:101","nodeType":"YulFunctionCall","src":"2836:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:101","nodeType":"YulIdentifier","src":"2826:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:101","nodeType":"YulTypedName","src":"2477:9:101","type":""},{"name":"dataEnd","nativeSrc":"2488:7:101","nodeType":"YulTypedName","src":"2488:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:101","nodeType":"YulTypedName","src":"2500:6:101","type":""},{"name":"value1","nativeSrc":"2508:6:101","nodeType":"YulTypedName","src":"2508:6:101","type":""}],"src":"2432:474:101"},{"body":{"nativeSrc":"2954:48:101","nodeType":"YulBlock","src":"2954:48:101","statements":[{"nativeSrc":"2964:32:101","nodeType":"YulAssignment","src":"2964:32:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:101","nodeType":"YulIdentifier","src":"2989:5:101"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:101","nodeType":"YulIdentifier","src":"2982:6:101"},"nativeSrc":"2982:13:101","nodeType":"YulFunctionCall","src":"2982:13:101"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:101","nodeType":"YulIdentifier","src":"2975:6:101"},"nativeSrc":"2975:21:101","nodeType":"YulFunctionCall","src":"2975:21:101"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:101","nodeType":"YulIdentifier","src":"2964:7:101"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:101","nodeType":"YulTypedName","src":"2936:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:101","nodeType":"YulTypedName","src":"2946:7:101","type":""}],"src":"2912:90:101"},{"body":{"nativeSrc":"3067:50:101","nodeType":"YulBlock","src":"3067:50:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:101","nodeType":"YulIdentifier","src":"3084:3:101"},{"arguments":[{"name":"value","nativeSrc":"3104:5:101","nodeType":"YulIdentifier","src":"3104:5:101"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:101","nodeType":"YulIdentifier","src":"3089:14:101"},"nativeSrc":"3089:21:101","nodeType":"YulFunctionCall","src":"3089:21:101"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:101","nodeType":"YulIdentifier","src":"3077:6:101"},"nativeSrc":"3077:34:101","nodeType":"YulFunctionCall","src":"3077:34:101"},"nativeSrc":"3077:34:101","nodeType":"YulExpressionStatement","src":"3077:34:101"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:101","nodeType":"YulTypedName","src":"3055:5:101","type":""},{"name":"pos","nativeSrc":"3062:3:101","nodeType":"YulTypedName","src":"3062:3:101","type":""}],"src":"3008:109:101"},{"body":{"nativeSrc":"3215:118:101","nodeType":"YulBlock","src":"3215:118:101","statements":[{"nativeSrc":"3225:26:101","nodeType":"YulAssignment","src":"3225:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:101","nodeType":"YulIdentifier","src":"3237:9:101"},{"kind":"number","nativeSrc":"3248:2:101","nodeType":"YulLiteral","src":"3248:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:101","nodeType":"YulIdentifier","src":"3233:3:101"},"nativeSrc":"3233:18:101","nodeType":"YulFunctionCall","src":"3233:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:101","nodeType":"YulIdentifier","src":"3225:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:101","nodeType":"YulIdentifier","src":"3299:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:101","nodeType":"YulIdentifier","src":"3312:9:101"},{"kind":"number","nativeSrc":"3323:1:101","nodeType":"YulLiteral","src":"3323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:101","nodeType":"YulIdentifier","src":"3308:3:101"},"nativeSrc":"3308:17:101","nodeType":"YulFunctionCall","src":"3308:17:101"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:101","nodeType":"YulIdentifier","src":"3261:37:101"},"nativeSrc":"3261:65:101","nodeType":"YulFunctionCall","src":"3261:65:101"},"nativeSrc":"3261:65:101","nodeType":"YulExpressionStatement","src":"3261:65:101"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:101","nodeType":"YulTypedName","src":"3187:9:101","type":""},{"name":"value0","nativeSrc":"3199:6:101","nodeType":"YulTypedName","src":"3199:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:101","nodeType":"YulTypedName","src":"3210:4:101","type":""}],"src":"3123:210:101"},{"body":{"nativeSrc":"3404:53:101","nodeType":"YulBlock","src":"3404:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:101","nodeType":"YulIdentifier","src":"3421:3:101"},{"arguments":[{"name":"value","nativeSrc":"3444:5:101","nodeType":"YulIdentifier","src":"3444:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:101","nodeType":"YulIdentifier","src":"3426:17:101"},"nativeSrc":"3426:24:101","nodeType":"YulFunctionCall","src":"3426:24:101"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:101","nodeType":"YulIdentifier","src":"3414:6:101"},"nativeSrc":"3414:37:101","nodeType":"YulFunctionCall","src":"3414:37:101"},"nativeSrc":"3414:37:101","nodeType":"YulExpressionStatement","src":"3414:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:101","nodeType":"YulTypedName","src":"3392:5:101","type":""},{"name":"pos","nativeSrc":"3399:3:101","nodeType":"YulTypedName","src":"3399:3:101","type":""}],"src":"3339:118:101"},{"body":{"nativeSrc":"3561:124:101","nodeType":"YulBlock","src":"3561:124:101","statements":[{"nativeSrc":"3571:26:101","nodeType":"YulAssignment","src":"3571:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:101","nodeType":"YulIdentifier","src":"3583:9:101"},{"kind":"number","nativeSrc":"3594:2:101","nodeType":"YulLiteral","src":"3594:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:101","nodeType":"YulIdentifier","src":"3579:3:101"},"nativeSrc":"3579:18:101","nodeType":"YulFunctionCall","src":"3579:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:101","nodeType":"YulIdentifier","src":"3571:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:101","nodeType":"YulIdentifier","src":"3651:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:101","nodeType":"YulIdentifier","src":"3664:9:101"},{"kind":"number","nativeSrc":"3675:1:101","nodeType":"YulLiteral","src":"3675:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:101","nodeType":"YulIdentifier","src":"3660:3:101"},"nativeSrc":"3660:17:101","nodeType":"YulFunctionCall","src":"3660:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:101","nodeType":"YulIdentifier","src":"3607:43:101"},"nativeSrc":"3607:71:101","nodeType":"YulFunctionCall","src":"3607:71:101"},"nativeSrc":"3607:71:101","nodeType":"YulExpressionStatement","src":"3607:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:101","nodeType":"YulTypedName","src":"3533:9:101","type":""},{"name":"value0","nativeSrc":"3545:6:101","nodeType":"YulTypedName","src":"3545:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:101","nodeType":"YulTypedName","src":"3556:4:101","type":""}],"src":"3463:222:101"},{"body":{"nativeSrc":"3791:519:101","nodeType":"YulBlock","src":"3791:519:101","statements":[{"body":{"nativeSrc":"3837:83:101","nodeType":"YulBlock","src":"3837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:101","nodeType":"YulIdentifier","src":"3839:77:101"},"nativeSrc":"3839:79:101","nodeType":"YulFunctionCall","src":"3839:79:101"},"nativeSrc":"3839:79:101","nodeType":"YulExpressionStatement","src":"3839:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:101","nodeType":"YulIdentifier","src":"3812:7:101"},{"name":"headStart","nativeSrc":"3821:9:101","nodeType":"YulIdentifier","src":"3821:9:101"}],"functionName":{"name":"sub","nativeSrc":"3808:3:101","nodeType":"YulIdentifier","src":"3808:3:101"},"nativeSrc":"3808:23:101","nodeType":"YulFunctionCall","src":"3808:23:101"},{"kind":"number","nativeSrc":"3833:2:101","nodeType":"YulLiteral","src":"3833:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:101","nodeType":"YulIdentifier","src":"3804:3:101"},"nativeSrc":"3804:32:101","nodeType":"YulFunctionCall","src":"3804:32:101"},"nativeSrc":"3801:119:101","nodeType":"YulIf","src":"3801:119:101"},{"nativeSrc":"3930:117:101","nodeType":"YulBlock","src":"3930:117:101","statements":[{"nativeSrc":"3945:15:101","nodeType":"YulVariableDeclaration","src":"3945:15:101","value":{"kind":"number","nativeSrc":"3959:1:101","nodeType":"YulLiteral","src":"3959:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:101","nodeType":"YulTypedName","src":"3949:6:101","type":""}]},{"nativeSrc":"3974:63:101","nodeType":"YulAssignment","src":"3974:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:101","nodeType":"YulIdentifier","src":"4009:9:101"},{"name":"offset","nativeSrc":"4020:6:101","nodeType":"YulIdentifier","src":"4020:6:101"}],"functionName":{"name":"add","nativeSrc":"4005:3:101","nodeType":"YulIdentifier","src":"4005:3:101"},"nativeSrc":"4005:22:101","nodeType":"YulFunctionCall","src":"4005:22:101"},{"name":"dataEnd","nativeSrc":"4029:7:101","nodeType":"YulIdentifier","src":"4029:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:101","nodeType":"YulIdentifier","src":"3984:20:101"},"nativeSrc":"3984:53:101","nodeType":"YulFunctionCall","src":"3984:53:101"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:101","nodeType":"YulIdentifier","src":"3974:6:101"}]}]},{"nativeSrc":"4057:118:101","nodeType":"YulBlock","src":"4057:118:101","statements":[{"nativeSrc":"4072:16:101","nodeType":"YulVariableDeclaration","src":"4072:16:101","value":{"kind":"number","nativeSrc":"4086:2:101","nodeType":"YulLiteral","src":"4086:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:101","nodeType":"YulTypedName","src":"4076:6:101","type":""}]},{"nativeSrc":"4102:63:101","nodeType":"YulAssignment","src":"4102:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:101","nodeType":"YulIdentifier","src":"4137:9:101"},{"name":"offset","nativeSrc":"4148:6:101","nodeType":"YulIdentifier","src":"4148:6:101"}],"functionName":{"name":"add","nativeSrc":"4133:3:101","nodeType":"YulIdentifier","src":"4133:3:101"},"nativeSrc":"4133:22:101","nodeType":"YulFunctionCall","src":"4133:22:101"},{"name":"dataEnd","nativeSrc":"4157:7:101","nodeType":"YulIdentifier","src":"4157:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:101","nodeType":"YulIdentifier","src":"4112:20:101"},"nativeSrc":"4112:53:101","nodeType":"YulFunctionCall","src":"4112:53:101"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:101","nodeType":"YulIdentifier","src":"4102:6:101"}]}]},{"nativeSrc":"4185:118:101","nodeType":"YulBlock","src":"4185:118:101","statements":[{"nativeSrc":"4200:16:101","nodeType":"YulVariableDeclaration","src":"4200:16:101","value":{"kind":"number","nativeSrc":"4214:2:101","nodeType":"YulLiteral","src":"4214:2:101","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:101","nodeType":"YulTypedName","src":"4204:6:101","type":""}]},{"nativeSrc":"4230:63:101","nodeType":"YulAssignment","src":"4230:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:101","nodeType":"YulIdentifier","src":"4265:9:101"},{"name":"offset","nativeSrc":"4276:6:101","nodeType":"YulIdentifier","src":"4276:6:101"}],"functionName":{"name":"add","nativeSrc":"4261:3:101","nodeType":"YulIdentifier","src":"4261:3:101"},"nativeSrc":"4261:22:101","nodeType":"YulFunctionCall","src":"4261:22:101"},{"name":"dataEnd","nativeSrc":"4285:7:101","nodeType":"YulIdentifier","src":"4285:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:101","nodeType":"YulIdentifier","src":"4240:20:101"},"nativeSrc":"4240:53:101","nodeType":"YulFunctionCall","src":"4240:53:101"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:101","nodeType":"YulIdentifier","src":"4230:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:101","nodeType":"YulTypedName","src":"3745:9:101","type":""},{"name":"dataEnd","nativeSrc":"3756:7:101","nodeType":"YulTypedName","src":"3756:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:101","nodeType":"YulTypedName","src":"3768:6:101","type":""},{"name":"value1","nativeSrc":"3776:6:101","nodeType":"YulTypedName","src":"3776:6:101","type":""},{"name":"value2","nativeSrc":"3784:6:101","nodeType":"YulTypedName","src":"3784:6:101","type":""}],"src":"3691:619:101"},{"body":{"nativeSrc":"4359:43:101","nodeType":"YulBlock","src":"4359:43:101","statements":[{"nativeSrc":"4369:27:101","nodeType":"YulAssignment","src":"4369:27:101","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:101","nodeType":"YulIdentifier","src":"4384:5:101"},{"kind":"number","nativeSrc":"4391:4:101","nodeType":"YulLiteral","src":"4391:4:101","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:101","nodeType":"YulIdentifier","src":"4380:3:101"},"nativeSrc":"4380:16:101","nodeType":"YulFunctionCall","src":"4380:16:101"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:101","nodeType":"YulIdentifier","src":"4369:7:101"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:101","nodeType":"YulTypedName","src":"4341:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:101","nodeType":"YulTypedName","src":"4351:7:101","type":""}],"src":"4316:86:101"},{"body":{"nativeSrc":"4469:51:101","nodeType":"YulBlock","src":"4469:51:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:101","nodeType":"YulIdentifier","src":"4486:3:101"},{"arguments":[{"name":"value","nativeSrc":"4507:5:101","nodeType":"YulIdentifier","src":"4507:5:101"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:101","nodeType":"YulIdentifier","src":"4491:15:101"},"nativeSrc":"4491:22:101","nodeType":"YulFunctionCall","src":"4491:22:101"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:101","nodeType":"YulIdentifier","src":"4479:6:101"},"nativeSrc":"4479:35:101","nodeType":"YulFunctionCall","src":"4479:35:101"},"nativeSrc":"4479:35:101","nodeType":"YulExpressionStatement","src":"4479:35:101"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:101","nodeType":"YulTypedName","src":"4457:5:101","type":""},{"name":"pos","nativeSrc":"4464:3:101","nodeType":"YulTypedName","src":"4464:3:101","type":""}],"src":"4408:112:101"},{"body":{"nativeSrc":"4620:120:101","nodeType":"YulBlock","src":"4620:120:101","statements":[{"nativeSrc":"4630:26:101","nodeType":"YulAssignment","src":"4630:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:101","nodeType":"YulIdentifier","src":"4642:9:101"},{"kind":"number","nativeSrc":"4653:2:101","nodeType":"YulLiteral","src":"4653:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:101","nodeType":"YulIdentifier","src":"4638:3:101"},"nativeSrc":"4638:18:101","nodeType":"YulFunctionCall","src":"4638:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:101","nodeType":"YulIdentifier","src":"4630:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:101","nodeType":"YulIdentifier","src":"4706:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:101","nodeType":"YulIdentifier","src":"4719:9:101"},{"kind":"number","nativeSrc":"4730:1:101","nodeType":"YulLiteral","src":"4730:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:101","nodeType":"YulIdentifier","src":"4715:3:101"},"nativeSrc":"4715:17:101","nodeType":"YulFunctionCall","src":"4715:17:101"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:101","nodeType":"YulIdentifier","src":"4666:39:101"},"nativeSrc":"4666:67:101","nodeType":"YulFunctionCall","src":"4666:67:101"},"nativeSrc":"4666:67:101","nodeType":"YulExpressionStatement","src":"4666:67:101"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:101","nodeType":"YulTypedName","src":"4592:9:101","type":""},{"name":"value0","nativeSrc":"4604:6:101","nodeType":"YulTypedName","src":"4604:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:101","nodeType":"YulTypedName","src":"4615:4:101","type":""}],"src":"4526:214:101"},{"body":{"nativeSrc":"4812:263:101","nodeType":"YulBlock","src":"4812:263:101","statements":[{"body":{"nativeSrc":"4858:83:101","nodeType":"YulBlock","src":"4858:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4860:77:101","nodeType":"YulIdentifier","src":"4860:77:101"},"nativeSrc":"4860:79:101","nodeType":"YulFunctionCall","src":"4860:79:101"},"nativeSrc":"4860:79:101","nodeType":"YulExpressionStatement","src":"4860:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4833:7:101","nodeType":"YulIdentifier","src":"4833:7:101"},{"name":"headStart","nativeSrc":"4842:9:101","nodeType":"YulIdentifier","src":"4842:9:101"}],"functionName":{"name":"sub","nativeSrc":"4829:3:101","nodeType":"YulIdentifier","src":"4829:3:101"},"nativeSrc":"4829:23:101","nodeType":"YulFunctionCall","src":"4829:23:101"},{"kind":"number","nativeSrc":"4854:2:101","nodeType":"YulLiteral","src":"4854:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4825:3:101","nodeType":"YulIdentifier","src":"4825:3:101"},"nativeSrc":"4825:32:101","nodeType":"YulFunctionCall","src":"4825:32:101"},"nativeSrc":"4822:119:101","nodeType":"YulIf","src":"4822:119:101"},{"nativeSrc":"4951:117:101","nodeType":"YulBlock","src":"4951:117:101","statements":[{"nativeSrc":"4966:15:101","nodeType":"YulVariableDeclaration","src":"4966:15:101","value":{"kind":"number","nativeSrc":"4980:1:101","nodeType":"YulLiteral","src":"4980:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4970:6:101","nodeType":"YulTypedName","src":"4970:6:101","type":""}]},{"nativeSrc":"4995:63:101","nodeType":"YulAssignment","src":"4995:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5030:9:101","nodeType":"YulIdentifier","src":"5030:9:101"},{"name":"offset","nativeSrc":"5041:6:101","nodeType":"YulIdentifier","src":"5041:6:101"}],"functionName":{"name":"add","nativeSrc":"5026:3:101","nodeType":"YulIdentifier","src":"5026:3:101"},"nativeSrc":"5026:22:101","nodeType":"YulFunctionCall","src":"5026:22:101"},{"name":"dataEnd","nativeSrc":"5050:7:101","nodeType":"YulIdentifier","src":"5050:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5005:20:101","nodeType":"YulIdentifier","src":"5005:20:101"},"nativeSrc":"5005:53:101","nodeType":"YulFunctionCall","src":"5005:53:101"},"variableNames":[{"name":"value0","nativeSrc":"4995:6:101","nodeType":"YulIdentifier","src":"4995:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4746:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4782:9:101","nodeType":"YulTypedName","src":"4782:9:101","type":""},{"name":"dataEnd","nativeSrc":"4793:7:101","nodeType":"YulTypedName","src":"4793:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4805:6:101","nodeType":"YulTypedName","src":"4805:6:101","type":""}],"src":"4746:329:101"},{"body":{"nativeSrc":"5164:391:101","nodeType":"YulBlock","src":"5164:391:101","statements":[{"body":{"nativeSrc":"5210:83:101","nodeType":"YulBlock","src":"5210:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5212:77:101","nodeType":"YulIdentifier","src":"5212:77:101"},"nativeSrc":"5212:79:101","nodeType":"YulFunctionCall","src":"5212:79:101"},"nativeSrc":"5212:79:101","nodeType":"YulExpressionStatement","src":"5212:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5185:7:101","nodeType":"YulIdentifier","src":"5185:7:101"},{"name":"headStart","nativeSrc":"5194:9:101","nodeType":"YulIdentifier","src":"5194:9:101"}],"functionName":{"name":"sub","nativeSrc":"5181:3:101","nodeType":"YulIdentifier","src":"5181:3:101"},"nativeSrc":"5181:23:101","nodeType":"YulFunctionCall","src":"5181:23:101"},{"kind":"number","nativeSrc":"5206:2:101","nodeType":"YulLiteral","src":"5206:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5177:3:101","nodeType":"YulIdentifier","src":"5177:3:101"},"nativeSrc":"5177:32:101","nodeType":"YulFunctionCall","src":"5177:32:101"},"nativeSrc":"5174:119:101","nodeType":"YulIf","src":"5174:119:101"},{"nativeSrc":"5303:117:101","nodeType":"YulBlock","src":"5303:117:101","statements":[{"nativeSrc":"5318:15:101","nodeType":"YulVariableDeclaration","src":"5318:15:101","value":{"kind":"number","nativeSrc":"5332:1:101","nodeType":"YulLiteral","src":"5332:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5322:6:101","nodeType":"YulTypedName","src":"5322:6:101","type":""}]},{"nativeSrc":"5347:63:101","nodeType":"YulAssignment","src":"5347:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5382:9:101","nodeType":"YulIdentifier","src":"5382:9:101"},{"name":"offset","nativeSrc":"5393:6:101","nodeType":"YulIdentifier","src":"5393:6:101"}],"functionName":{"name":"add","nativeSrc":"5378:3:101","nodeType":"YulIdentifier","src":"5378:3:101"},"nativeSrc":"5378:22:101","nodeType":"YulFunctionCall","src":"5378:22:101"},{"name":"dataEnd","nativeSrc":"5402:7:101","nodeType":"YulIdentifier","src":"5402:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5357:20:101","nodeType":"YulIdentifier","src":"5357:20:101"},"nativeSrc":"5357:53:101","nodeType":"YulFunctionCall","src":"5357:53:101"},"variableNames":[{"name":"value0","nativeSrc":"5347:6:101","nodeType":"YulIdentifier","src":"5347:6:101"}]}]},{"nativeSrc":"5430:118:101","nodeType":"YulBlock","src":"5430:118:101","statements":[{"nativeSrc":"5445:16:101","nodeType":"YulVariableDeclaration","src":"5445:16:101","value":{"kind":"number","nativeSrc":"5459:2:101","nodeType":"YulLiteral","src":"5459:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5449:6:101","nodeType":"YulTypedName","src":"5449:6:101","type":""}]},{"nativeSrc":"5475:63:101","nodeType":"YulAssignment","src":"5475:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5510:9:101","nodeType":"YulIdentifier","src":"5510:9:101"},{"name":"offset","nativeSrc":"5521:6:101","nodeType":"YulIdentifier","src":"5521:6:101"}],"functionName":{"name":"add","nativeSrc":"5506:3:101","nodeType":"YulIdentifier","src":"5506:3:101"},"nativeSrc":"5506:22:101","nodeType":"YulFunctionCall","src":"5506:22:101"},{"name":"dataEnd","nativeSrc":"5530:7:101","nodeType":"YulIdentifier","src":"5530:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5485:20:101","nodeType":"YulIdentifier","src":"5485:20:101"},"nativeSrc":"5485:53:101","nodeType":"YulFunctionCall","src":"5485:53:101"},"variableNames":[{"name":"value1","nativeSrc":"5475:6:101","nodeType":"YulIdentifier","src":"5475:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5081:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5126:9:101","nodeType":"YulTypedName","src":"5126:9:101","type":""},{"name":"dataEnd","nativeSrc":"5137:7:101","nodeType":"YulTypedName","src":"5137:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5149:6:101","nodeType":"YulTypedName","src":"5149:6:101","type":""},{"name":"value1","nativeSrc":"5157:6:101","nodeType":"YulTypedName","src":"5157:6:101","type":""}],"src":"5081:474:101"},{"body":{"nativeSrc":"5589:152:101","nodeType":"YulBlock","src":"5589:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5606:1:101","nodeType":"YulLiteral","src":"5606:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5609:77:101","nodeType":"YulLiteral","src":"5609:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5599:6:101","nodeType":"YulIdentifier","src":"5599:6:101"},"nativeSrc":"5599:88:101","nodeType":"YulFunctionCall","src":"5599:88:101"},"nativeSrc":"5599:88:101","nodeType":"YulExpressionStatement","src":"5599:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5703:1:101","nodeType":"YulLiteral","src":"5703:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"5706:4:101","nodeType":"YulLiteral","src":"5706:4:101","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5696:6:101","nodeType":"YulIdentifier","src":"5696:6:101"},"nativeSrc":"5696:15:101","nodeType":"YulFunctionCall","src":"5696:15:101"},"nativeSrc":"5696:15:101","nodeType":"YulExpressionStatement","src":"5696:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5727:1:101","nodeType":"YulLiteral","src":"5727:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"5730:4:101","nodeType":"YulLiteral","src":"5730:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5720:6:101","nodeType":"YulIdentifier","src":"5720:6:101"},"nativeSrc":"5720:15:101","nodeType":"YulFunctionCall","src":"5720:15:101"},"nativeSrc":"5720:15:101","nodeType":"YulExpressionStatement","src":"5720:15:101"}]},"name":"panic_error_0x22","nativeSrc":"5561:180:101","nodeType":"YulFunctionDefinition","src":"5561:180:101"},{"body":{"nativeSrc":"5798:269:101","nodeType":"YulBlock","src":"5798:269:101","statements":[{"nativeSrc":"5808:22:101","nodeType":"YulAssignment","src":"5808:22:101","value":{"arguments":[{"name":"data","nativeSrc":"5822:4:101","nodeType":"YulIdentifier","src":"5822:4:101"},{"kind":"number","nativeSrc":"5828:1:101","nodeType":"YulLiteral","src":"5828:1:101","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"5818:3:101","nodeType":"YulIdentifier","src":"5818:3:101"},"nativeSrc":"5818:12:101","nodeType":"YulFunctionCall","src":"5818:12:101"},"variableNames":[{"name":"length","nativeSrc":"5808:6:101","nodeType":"YulIdentifier","src":"5808:6:101"}]},{"nativeSrc":"5839:38:101","nodeType":"YulVariableDeclaration","src":"5839:38:101","value":{"arguments":[{"name":"data","nativeSrc":"5869:4:101","nodeType":"YulIdentifier","src":"5869:4:101"},{"kind":"number","nativeSrc":"5875:1:101","nodeType":"YulLiteral","src":"5875:1:101","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5865:3:101","nodeType":"YulIdentifier","src":"5865:3:101"},"nativeSrc":"5865:12:101","nodeType":"YulFunctionCall","src":"5865:12:101"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5843:18:101","nodeType":"YulTypedName","src":"5843:18:101","type":""}]},{"body":{"nativeSrc":"5916:51:101","nodeType":"YulBlock","src":"5916:51:101","statements":[{"nativeSrc":"5930:27:101","nodeType":"YulAssignment","src":"5930:27:101","value":{"arguments":[{"name":"length","nativeSrc":"5944:6:101","nodeType":"YulIdentifier","src":"5944:6:101"},{"kind":"number","nativeSrc":"5952:4:101","nodeType":"YulLiteral","src":"5952:4:101","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5940:3:101","nodeType":"YulIdentifier","src":"5940:3:101"},"nativeSrc":"5940:17:101","nodeType":"YulFunctionCall","src":"5940:17:101"},"variableNames":[{"name":"length","nativeSrc":"5930:6:101","nodeType":"YulIdentifier","src":"5930:6:101"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5896:18:101","nodeType":"YulIdentifier","src":"5896:18:101"}],"functionName":{"name":"iszero","nativeSrc":"5889:6:101","nodeType":"YulIdentifier","src":"5889:6:101"},"nativeSrc":"5889:26:101","nodeType":"YulFunctionCall","src":"5889:26:101"},"nativeSrc":"5886:81:101","nodeType":"YulIf","src":"5886:81:101"},{"body":{"nativeSrc":"6019:42:101","nodeType":"YulBlock","src":"6019:42:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6033:16:101","nodeType":"YulIdentifier","src":"6033:16:101"},"nativeSrc":"6033:18:101","nodeType":"YulFunctionCall","src":"6033:18:101"},"nativeSrc":"6033:18:101","nodeType":"YulExpressionStatement","src":"6033:18:101"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5983:18:101","nodeType":"YulIdentifier","src":"5983:18:101"},{"arguments":[{"name":"length","nativeSrc":"6006:6:101","nodeType":"YulIdentifier","src":"6006:6:101"},{"kind":"number","nativeSrc":"6014:2:101","nodeType":"YulLiteral","src":"6014:2:101","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6003:2:101","nodeType":"YulIdentifier","src":"6003:2:101"},"nativeSrc":"6003:14:101","nodeType":"YulFunctionCall","src":"6003:14:101"}],"functionName":{"name":"eq","nativeSrc":"5980:2:101","nodeType":"YulIdentifier","src":"5980:2:101"},"nativeSrc":"5980:38:101","nodeType":"YulFunctionCall","src":"5980:38:101"},"nativeSrc":"5977:84:101","nodeType":"YulIf","src":"5977:84:101"}]},"name":"extract_byte_array_length","nativeSrc":"5747:320:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5782:4:101","nodeType":"YulTypedName","src":"5782:4:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5791:6:101","nodeType":"YulTypedName","src":"5791:6:101","type":""}],"src":"5747:320:101"},{"body":{"nativeSrc":"6101:152:101","nodeType":"YulBlock","src":"6101:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6118:1:101","nodeType":"YulLiteral","src":"6118:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6121:77:101","nodeType":"YulLiteral","src":"6121:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6111:6:101","nodeType":"YulIdentifier","src":"6111:6:101"},"nativeSrc":"6111:88:101","nodeType":"YulFunctionCall","src":"6111:88:101"},"nativeSrc":"6111:88:101","nodeType":"YulExpressionStatement","src":"6111:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6215:1:101","nodeType":"YulLiteral","src":"6215:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"6218:4:101","nodeType":"YulLiteral","src":"6218:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6208:6:101","nodeType":"YulIdentifier","src":"6208:6:101"},"nativeSrc":"6208:15:101","nodeType":"YulFunctionCall","src":"6208:15:101"},"nativeSrc":"6208:15:101","nodeType":"YulExpressionStatement","src":"6208:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6239:1:101","nodeType":"YulLiteral","src":"6239:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"6242:4:101","nodeType":"YulLiteral","src":"6242:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6232:6:101","nodeType":"YulIdentifier","src":"6232:6:101"},"nativeSrc":"6232:15:101","nodeType":"YulFunctionCall","src":"6232:15:101"},"nativeSrc":"6232:15:101","nodeType":"YulExpressionStatement","src":"6232:15:101"}]},"name":"panic_error_0x11","nativeSrc":"6073:180:101","nodeType":"YulFunctionDefinition","src":"6073:180:101"},{"body":{"nativeSrc":"6303:147:101","nodeType":"YulBlock","src":"6303:147:101","statements":[{"nativeSrc":"6313:25:101","nodeType":"YulAssignment","src":"6313:25:101","value":{"arguments":[{"name":"x","nativeSrc":"6336:1:101","nodeType":"YulIdentifier","src":"6336:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6318:17:101","nodeType":"YulIdentifier","src":"6318:17:101"},"nativeSrc":"6318:20:101","nodeType":"YulFunctionCall","src":"6318:20:101"},"variableNames":[{"name":"x","nativeSrc":"6313:1:101","nodeType":"YulIdentifier","src":"6313:1:101"}]},{"nativeSrc":"6347:25:101","nodeType":"YulAssignment","src":"6347:25:101","value":{"arguments":[{"name":"y","nativeSrc":"6370:1:101","nodeType":"YulIdentifier","src":"6370:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6352:17:101","nodeType":"YulIdentifier","src":"6352:17:101"},"nativeSrc":"6352:20:101","nodeType":"YulFunctionCall","src":"6352:20:101"},"variableNames":[{"name":"y","nativeSrc":"6347:1:101","nodeType":"YulIdentifier","src":"6347:1:101"}]},{"nativeSrc":"6381:16:101","nodeType":"YulAssignment","src":"6381:16:101","value":{"arguments":[{"name":"x","nativeSrc":"6392:1:101","nodeType":"YulIdentifier","src":"6392:1:101"},{"name":"y","nativeSrc":"6395:1:101","nodeType":"YulIdentifier","src":"6395:1:101"}],"functionName":{"name":"add","nativeSrc":"6388:3:101","nodeType":"YulIdentifier","src":"6388:3:101"},"nativeSrc":"6388:9:101","nodeType":"YulFunctionCall","src":"6388:9:101"},"variableNames":[{"name":"sum","nativeSrc":"6381:3:101","nodeType":"YulIdentifier","src":"6381:3:101"}]},{"body":{"nativeSrc":"6421:22:101","nodeType":"YulBlock","src":"6421:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6423:16:101","nodeType":"YulIdentifier","src":"6423:16:101"},"nativeSrc":"6423:18:101","nodeType":"YulFunctionCall","src":"6423:18:101"},"nativeSrc":"6423:18:101","nodeType":"YulExpressionStatement","src":"6423:18:101"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6413:1:101","nodeType":"YulIdentifier","src":"6413:1:101"},{"name":"sum","nativeSrc":"6416:3:101","nodeType":"YulIdentifier","src":"6416:3:101"}],"functionName":{"name":"gt","nativeSrc":"6410:2:101","nodeType":"YulIdentifier","src":"6410:2:101"},"nativeSrc":"6410:10:101","nodeType":"YulFunctionCall","src":"6410:10:101"},"nativeSrc":"6407:36:101","nodeType":"YulIf","src":"6407:36:101"}]},"name":"checked_add_t_uint256","nativeSrc":"6259:191:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6290:1:101","nodeType":"YulTypedName","src":"6290:1:101","type":""},{"name":"y","nativeSrc":"6293:1:101","nodeType":"YulTypedName","src":"6293:1:101","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6299:3:101","nodeType":"YulTypedName","src":"6299:3:101","type":""}],"src":"6259:191:101"},{"body":{"nativeSrc":"6562:118:101","nodeType":"YulBlock","src":"6562:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6584:6:101","nodeType":"YulIdentifier","src":"6584:6:101"},{"kind":"number","nativeSrc":"6592:1:101","nodeType":"YulLiteral","src":"6592:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6580:3:101","nodeType":"YulIdentifier","src":"6580:3:101"},"nativeSrc":"6580:14:101","nodeType":"YulFunctionCall","src":"6580:14:101"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"6596:34:101","nodeType":"YulLiteral","src":"6596:34:101","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"6573:6:101","nodeType":"YulIdentifier","src":"6573:6:101"},"nativeSrc":"6573:58:101","nodeType":"YulFunctionCall","src":"6573:58:101"},"nativeSrc":"6573:58:101","nodeType":"YulExpressionStatement","src":"6573:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6652:6:101","nodeType":"YulIdentifier","src":"6652:6:101"},{"kind":"number","nativeSrc":"6660:2:101","nodeType":"YulLiteral","src":"6660:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6648:3:101","nodeType":"YulIdentifier","src":"6648:3:101"},"nativeSrc":"6648:15:101","nodeType":"YulFunctionCall","src":"6648:15:101"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"6665:7:101","nodeType":"YulLiteral","src":"6665:7:101","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"6641:6:101","nodeType":"YulIdentifier","src":"6641:6:101"},"nativeSrc":"6641:32:101","nodeType":"YulFunctionCall","src":"6641:32:101"},"nativeSrc":"6641:32:101","nodeType":"YulExpressionStatement","src":"6641:32:101"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"6456:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6554:6:101","nodeType":"YulTypedName","src":"6554:6:101","type":""}],"src":"6456:224:101"},{"body":{"nativeSrc":"6832:220:101","nodeType":"YulBlock","src":"6832:220:101","statements":[{"nativeSrc":"6842:74:101","nodeType":"YulAssignment","src":"6842:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6908:3:101","nodeType":"YulIdentifier","src":"6908:3:101"},{"kind":"number","nativeSrc":"6913:2:101","nodeType":"YulLiteral","src":"6913:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6849:58:101","nodeType":"YulIdentifier","src":"6849:58:101"},"nativeSrc":"6849:67:101","nodeType":"YulFunctionCall","src":"6849:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6842:3:101","nodeType":"YulIdentifier","src":"6842:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7014:3:101","nodeType":"YulIdentifier","src":"7014:3:101"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"6925:88:101","nodeType":"YulIdentifier","src":"6925:88:101"},"nativeSrc":"6925:93:101","nodeType":"YulFunctionCall","src":"6925:93:101"},"nativeSrc":"6925:93:101","nodeType":"YulExpressionStatement","src":"6925:93:101"},{"nativeSrc":"7027:19:101","nodeType":"YulAssignment","src":"7027:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7038:3:101","nodeType":"YulIdentifier","src":"7038:3:101"},{"kind":"number","nativeSrc":"7043:2:101","nodeType":"YulLiteral","src":"7043:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7034:3:101","nodeType":"YulIdentifier","src":"7034:3:101"},"nativeSrc":"7034:12:101","nodeType":"YulFunctionCall","src":"7034:12:101"},"variableNames":[{"name":"end","nativeSrc":"7027:3:101","nodeType":"YulIdentifier","src":"7027:3:101"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"6686:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6820:3:101","nodeType":"YulTypedName","src":"6820:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6828:3:101","nodeType":"YulTypedName","src":"6828:3:101","type":""}],"src":"6686:366:101"},{"body":{"nativeSrc":"7229:248:101","nodeType":"YulBlock","src":"7229:248:101","statements":[{"nativeSrc":"7239:26:101","nodeType":"YulAssignment","src":"7239:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7251:9:101","nodeType":"YulIdentifier","src":"7251:9:101"},{"kind":"number","nativeSrc":"7262:2:101","nodeType":"YulLiteral","src":"7262:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7247:3:101","nodeType":"YulIdentifier","src":"7247:3:101"},"nativeSrc":"7247:18:101","nodeType":"YulFunctionCall","src":"7247:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7239:4:101","nodeType":"YulIdentifier","src":"7239:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7286:9:101","nodeType":"YulIdentifier","src":"7286:9:101"},{"kind":"number","nativeSrc":"7297:1:101","nodeType":"YulLiteral","src":"7297:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7282:3:101","nodeType":"YulIdentifier","src":"7282:3:101"},"nativeSrc":"7282:17:101","nodeType":"YulFunctionCall","src":"7282:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7305:4:101","nodeType":"YulIdentifier","src":"7305:4:101"},{"name":"headStart","nativeSrc":"7311:9:101","nodeType":"YulIdentifier","src":"7311:9:101"}],"functionName":{"name":"sub","nativeSrc":"7301:3:101","nodeType":"YulIdentifier","src":"7301:3:101"},"nativeSrc":"7301:20:101","nodeType":"YulFunctionCall","src":"7301:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7275:6:101","nodeType":"YulIdentifier","src":"7275:6:101"},"nativeSrc":"7275:47:101","nodeType":"YulFunctionCall","src":"7275:47:101"},"nativeSrc":"7275:47:101","nodeType":"YulExpressionStatement","src":"7275:47:101"},{"nativeSrc":"7331:139:101","nodeType":"YulAssignment","src":"7331:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"7465:4:101","nodeType":"YulIdentifier","src":"7465:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7339:124:101","nodeType":"YulIdentifier","src":"7339:124:101"},"nativeSrc":"7339:131:101","nodeType":"YulFunctionCall","src":"7339:131:101"},"variableNames":[{"name":"tail","nativeSrc":"7331:4:101","nodeType":"YulIdentifier","src":"7331:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7058:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7209:9:101","nodeType":"YulTypedName","src":"7209:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7224:4:101","nodeType":"YulTypedName","src":"7224:4:101","type":""}],"src":"7058:419:101"},{"body":{"nativeSrc":"7589:117:101","nodeType":"YulBlock","src":"7589:117:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7611:6:101","nodeType":"YulIdentifier","src":"7611:6:101"},{"kind":"number","nativeSrc":"7619:1:101","nodeType":"YulLiteral","src":"7619:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7607:3:101","nodeType":"YulIdentifier","src":"7607:3:101"},"nativeSrc":"7607:14:101","nodeType":"YulFunctionCall","src":"7607:14:101"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"7623:34:101","nodeType":"YulLiteral","src":"7623:34:101","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"7600:6:101","nodeType":"YulIdentifier","src":"7600:6:101"},"nativeSrc":"7600:58:101","nodeType":"YulFunctionCall","src":"7600:58:101"},"nativeSrc":"7600:58:101","nodeType":"YulExpressionStatement","src":"7600:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7679:6:101","nodeType":"YulIdentifier","src":"7679:6:101"},{"kind":"number","nativeSrc":"7687:2:101","nodeType":"YulLiteral","src":"7687:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7675:3:101","nodeType":"YulIdentifier","src":"7675:3:101"},"nativeSrc":"7675:15:101","nodeType":"YulFunctionCall","src":"7675:15:101"},{"hexValue":"72657373","kind":"string","nativeSrc":"7692:6:101","nodeType":"YulLiteral","src":"7692:6:101","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"7668:6:101","nodeType":"YulIdentifier","src":"7668:6:101"},"nativeSrc":"7668:31:101","nodeType":"YulFunctionCall","src":"7668:31:101"},"nativeSrc":"7668:31:101","nodeType":"YulExpressionStatement","src":"7668:31:101"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"7483:223:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7581:6:101","nodeType":"YulTypedName","src":"7581:6:101","type":""}],"src":"7483:223:101"},{"body":{"nativeSrc":"7858:220:101","nodeType":"YulBlock","src":"7858:220:101","statements":[{"nativeSrc":"7868:74:101","nodeType":"YulAssignment","src":"7868:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7934:3:101","nodeType":"YulIdentifier","src":"7934:3:101"},{"kind":"number","nativeSrc":"7939:2:101","nodeType":"YulLiteral","src":"7939:2:101","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7875:58:101","nodeType":"YulIdentifier","src":"7875:58:101"},"nativeSrc":"7875:67:101","nodeType":"YulFunctionCall","src":"7875:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7868:3:101","nodeType":"YulIdentifier","src":"7868:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8040:3:101","nodeType":"YulIdentifier","src":"8040:3:101"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"7951:88:101","nodeType":"YulIdentifier","src":"7951:88:101"},"nativeSrc":"7951:93:101","nodeType":"YulFunctionCall","src":"7951:93:101"},"nativeSrc":"7951:93:101","nodeType":"YulExpressionStatement","src":"7951:93:101"},{"nativeSrc":"8053:19:101","nodeType":"YulAssignment","src":"8053:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"8064:3:101","nodeType":"YulIdentifier","src":"8064:3:101"},{"kind":"number","nativeSrc":"8069:2:101","nodeType":"YulLiteral","src":"8069:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8060:3:101","nodeType":"YulIdentifier","src":"8060:3:101"},"nativeSrc":"8060:12:101","nodeType":"YulFunctionCall","src":"8060:12:101"},"variableNames":[{"name":"end","nativeSrc":"8053:3:101","nodeType":"YulIdentifier","src":"8053:3:101"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"7712:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7846:3:101","nodeType":"YulTypedName","src":"7846:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7854:3:101","nodeType":"YulTypedName","src":"7854:3:101","type":""}],"src":"7712:366:101"},{"body":{"nativeSrc":"8255:248:101","nodeType":"YulBlock","src":"8255:248:101","statements":[{"nativeSrc":"8265:26:101","nodeType":"YulAssignment","src":"8265:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8277:9:101","nodeType":"YulIdentifier","src":"8277:9:101"},{"kind":"number","nativeSrc":"8288:2:101","nodeType":"YulLiteral","src":"8288:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8273:3:101","nodeType":"YulIdentifier","src":"8273:3:101"},"nativeSrc":"8273:18:101","nodeType":"YulFunctionCall","src":"8273:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8265:4:101","nodeType":"YulIdentifier","src":"8265:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8312:9:101","nodeType":"YulIdentifier","src":"8312:9:101"},{"kind":"number","nativeSrc":"8323:1:101","nodeType":"YulLiteral","src":"8323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8308:3:101","nodeType":"YulIdentifier","src":"8308:3:101"},"nativeSrc":"8308:17:101","nodeType":"YulFunctionCall","src":"8308:17:101"},{"arguments":[{"name":"tail","nativeSrc":"8331:4:101","nodeType":"YulIdentifier","src":"8331:4:101"},{"name":"headStart","nativeSrc":"8337:9:101","nodeType":"YulIdentifier","src":"8337:9:101"}],"functionName":{"name":"sub","nativeSrc":"8327:3:101","nodeType":"YulIdentifier","src":"8327:3:101"},"nativeSrc":"8327:20:101","nodeType":"YulFunctionCall","src":"8327:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8301:6:101","nodeType":"YulIdentifier","src":"8301:6:101"},"nativeSrc":"8301:47:101","nodeType":"YulFunctionCall","src":"8301:47:101"},"nativeSrc":"8301:47:101","nodeType":"YulExpressionStatement","src":"8301:47:101"},{"nativeSrc":"8357:139:101","nodeType":"YulAssignment","src":"8357:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"8491:4:101","nodeType":"YulIdentifier","src":"8491:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8365:124:101","nodeType":"YulIdentifier","src":"8365:124:101"},"nativeSrc":"8365:131:101","nodeType":"YulFunctionCall","src":"8365:131:101"},"variableNames":[{"name":"tail","nativeSrc":"8357:4:101","nodeType":"YulIdentifier","src":"8357:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8084:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8235:9:101","nodeType":"YulTypedName","src":"8235:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8250:4:101","nodeType":"YulTypedName","src":"8250:4:101","type":""}],"src":"8084:419:101"},{"body":{"nativeSrc":"8615:115:101","nodeType":"YulBlock","src":"8615:115:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8637:6:101","nodeType":"YulIdentifier","src":"8637:6:101"},{"kind":"number","nativeSrc":"8645:1:101","nodeType":"YulLiteral","src":"8645:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8633:3:101","nodeType":"YulIdentifier","src":"8633:3:101"},"nativeSrc":"8633:14:101","nodeType":"YulFunctionCall","src":"8633:14:101"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"8649:34:101","nodeType":"YulLiteral","src":"8649:34:101","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"8626:6:101","nodeType":"YulIdentifier","src":"8626:6:101"},"nativeSrc":"8626:58:101","nodeType":"YulFunctionCall","src":"8626:58:101"},"nativeSrc":"8626:58:101","nodeType":"YulExpressionStatement","src":"8626:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8705:6:101","nodeType":"YulIdentifier","src":"8705:6:101"},{"kind":"number","nativeSrc":"8713:2:101","nodeType":"YulLiteral","src":"8713:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8701:3:101","nodeType":"YulIdentifier","src":"8701:3:101"},"nativeSrc":"8701:15:101","nodeType":"YulFunctionCall","src":"8701:15:101"},{"hexValue":"7373","kind":"string","nativeSrc":"8718:4:101","nodeType":"YulLiteral","src":"8718:4:101","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"8694:6:101","nodeType":"YulIdentifier","src":"8694:6:101"},"nativeSrc":"8694:29:101","nodeType":"YulFunctionCall","src":"8694:29:101"},"nativeSrc":"8694:29:101","nodeType":"YulExpressionStatement","src":"8694:29:101"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"8509:221:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8607:6:101","nodeType":"YulTypedName","src":"8607:6:101","type":""}],"src":"8509:221:101"},{"body":{"nativeSrc":"8882:220:101","nodeType":"YulBlock","src":"8882:220:101","statements":[{"nativeSrc":"8892:74:101","nodeType":"YulAssignment","src":"8892:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"8958:3:101","nodeType":"YulIdentifier","src":"8958:3:101"},{"kind":"number","nativeSrc":"8963:2:101","nodeType":"YulLiteral","src":"8963:2:101","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8899:58:101","nodeType":"YulIdentifier","src":"8899:58:101"},"nativeSrc":"8899:67:101","nodeType":"YulFunctionCall","src":"8899:67:101"},"variableNames":[{"name":"pos","nativeSrc":"8892:3:101","nodeType":"YulIdentifier","src":"8892:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9064:3:101","nodeType":"YulIdentifier","src":"9064:3:101"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"8975:88:101","nodeType":"YulIdentifier","src":"8975:88:101"},"nativeSrc":"8975:93:101","nodeType":"YulFunctionCall","src":"8975:93:101"},"nativeSrc":"8975:93:101","nodeType":"YulExpressionStatement","src":"8975:93:101"},{"nativeSrc":"9077:19:101","nodeType":"YulAssignment","src":"9077:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"9088:3:101","nodeType":"YulIdentifier","src":"9088:3:101"},{"kind":"number","nativeSrc":"9093:2:101","nodeType":"YulLiteral","src":"9093:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9084:3:101","nodeType":"YulIdentifier","src":"9084:3:101"},"nativeSrc":"9084:12:101","nodeType":"YulFunctionCall","src":"9084:12:101"},"variableNames":[{"name":"end","nativeSrc":"9077:3:101","nodeType":"YulIdentifier","src":"9077:3:101"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"8736:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8870:3:101","nodeType":"YulTypedName","src":"8870:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8878:3:101","nodeType":"YulTypedName","src":"8878:3:101","type":""}],"src":"8736:366:101"},{"body":{"nativeSrc":"9279:248:101","nodeType":"YulBlock","src":"9279:248:101","statements":[{"nativeSrc":"9289:26:101","nodeType":"YulAssignment","src":"9289:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9301:9:101","nodeType":"YulIdentifier","src":"9301:9:101"},{"kind":"number","nativeSrc":"9312:2:101","nodeType":"YulLiteral","src":"9312:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9297:3:101","nodeType":"YulIdentifier","src":"9297:3:101"},"nativeSrc":"9297:18:101","nodeType":"YulFunctionCall","src":"9297:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9289:4:101","nodeType":"YulIdentifier","src":"9289:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9336:9:101","nodeType":"YulIdentifier","src":"9336:9:101"},{"kind":"number","nativeSrc":"9347:1:101","nodeType":"YulLiteral","src":"9347:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9332:3:101","nodeType":"YulIdentifier","src":"9332:3:101"},"nativeSrc":"9332:17:101","nodeType":"YulFunctionCall","src":"9332:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9355:4:101","nodeType":"YulIdentifier","src":"9355:4:101"},{"name":"headStart","nativeSrc":"9361:9:101","nodeType":"YulIdentifier","src":"9361:9:101"}],"functionName":{"name":"sub","nativeSrc":"9351:3:101","nodeType":"YulIdentifier","src":"9351:3:101"},"nativeSrc":"9351:20:101","nodeType":"YulFunctionCall","src":"9351:20:101"}],"functionName":{"name":"mstore","nativeSrc":"9325:6:101","nodeType":"YulIdentifier","src":"9325:6:101"},"nativeSrc":"9325:47:101","nodeType":"YulFunctionCall","src":"9325:47:101"},"nativeSrc":"9325:47:101","nodeType":"YulExpressionStatement","src":"9325:47:101"},{"nativeSrc":"9381:139:101","nodeType":"YulAssignment","src":"9381:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9515:4:101","nodeType":"YulIdentifier","src":"9515:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9389:124:101","nodeType":"YulIdentifier","src":"9389:124:101"},"nativeSrc":"9389:131:101","nodeType":"YulFunctionCall","src":"9389:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9381:4:101","nodeType":"YulIdentifier","src":"9381:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9108:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9259:9:101","nodeType":"YulTypedName","src":"9259:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9274:4:101","nodeType":"YulTypedName","src":"9274:4:101","type":""}],"src":"9108:419:101"},{"body":{"nativeSrc":"9639:73:101","nodeType":"YulBlock","src":"9639:73:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9661:6:101","nodeType":"YulIdentifier","src":"9661:6:101"},{"kind":"number","nativeSrc":"9669:1:101","nodeType":"YulLiteral","src":"9669:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9657:3:101","nodeType":"YulIdentifier","src":"9657:3:101"},"nativeSrc":"9657:14:101","nodeType":"YulFunctionCall","src":"9657:14:101"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"9673:31:101","nodeType":"YulLiteral","src":"9673:31:101","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"9650:6:101","nodeType":"YulIdentifier","src":"9650:6:101"},"nativeSrc":"9650:55:101","nodeType":"YulFunctionCall","src":"9650:55:101"},"nativeSrc":"9650:55:101","nodeType":"YulExpressionStatement","src":"9650:55:101"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"9533:179:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9631:6:101","nodeType":"YulTypedName","src":"9631:6:101","type":""}],"src":"9533:179:101"},{"body":{"nativeSrc":"9864:220:101","nodeType":"YulBlock","src":"9864:220:101","statements":[{"nativeSrc":"9874:74:101","nodeType":"YulAssignment","src":"9874:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"9940:3:101","nodeType":"YulIdentifier","src":"9940:3:101"},{"kind":"number","nativeSrc":"9945:2:101","nodeType":"YulLiteral","src":"9945:2:101","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9881:58:101","nodeType":"YulIdentifier","src":"9881:58:101"},"nativeSrc":"9881:67:101","nodeType":"YulFunctionCall","src":"9881:67:101"},"variableNames":[{"name":"pos","nativeSrc":"9874:3:101","nodeType":"YulIdentifier","src":"9874:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10046:3:101","nodeType":"YulIdentifier","src":"10046:3:101"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"9957:88:101","nodeType":"YulIdentifier","src":"9957:88:101"},"nativeSrc":"9957:93:101","nodeType":"YulFunctionCall","src":"9957:93:101"},"nativeSrc":"9957:93:101","nodeType":"YulExpressionStatement","src":"9957:93:101"},{"nativeSrc":"10059:19:101","nodeType":"YulAssignment","src":"10059:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"10070:3:101","nodeType":"YulIdentifier","src":"10070:3:101"},{"kind":"number","nativeSrc":"10075:2:101","nodeType":"YulLiteral","src":"10075:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10066:3:101","nodeType":"YulIdentifier","src":"10066:3:101"},"nativeSrc":"10066:12:101","nodeType":"YulFunctionCall","src":"10066:12:101"},"variableNames":[{"name":"end","nativeSrc":"10059:3:101","nodeType":"YulIdentifier","src":"10059:3:101"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"9718:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9852:3:101","nodeType":"YulTypedName","src":"9852:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9860:3:101","nodeType":"YulTypedName","src":"9860:3:101","type":""}],"src":"9718:366:101"},{"body":{"nativeSrc":"10261:248:101","nodeType":"YulBlock","src":"10261:248:101","statements":[{"nativeSrc":"10271:26:101","nodeType":"YulAssignment","src":"10271:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10283:9:101","nodeType":"YulIdentifier","src":"10283:9:101"},{"kind":"number","nativeSrc":"10294:2:101","nodeType":"YulLiteral","src":"10294:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10279:3:101","nodeType":"YulIdentifier","src":"10279:3:101"},"nativeSrc":"10279:18:101","nodeType":"YulFunctionCall","src":"10279:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10271:4:101","nodeType":"YulIdentifier","src":"10271:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10318:9:101","nodeType":"YulIdentifier","src":"10318:9:101"},{"kind":"number","nativeSrc":"10329:1:101","nodeType":"YulLiteral","src":"10329:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10314:3:101","nodeType":"YulIdentifier","src":"10314:3:101"},"nativeSrc":"10314:17:101","nodeType":"YulFunctionCall","src":"10314:17:101"},{"arguments":[{"name":"tail","nativeSrc":"10337:4:101","nodeType":"YulIdentifier","src":"10337:4:101"},{"name":"headStart","nativeSrc":"10343:9:101","nodeType":"YulIdentifier","src":"10343:9:101"}],"functionName":{"name":"sub","nativeSrc":"10333:3:101","nodeType":"YulIdentifier","src":"10333:3:101"},"nativeSrc":"10333:20:101","nodeType":"YulFunctionCall","src":"10333:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10307:6:101","nodeType":"YulIdentifier","src":"10307:6:101"},"nativeSrc":"10307:47:101","nodeType":"YulFunctionCall","src":"10307:47:101"},"nativeSrc":"10307:47:101","nodeType":"YulExpressionStatement","src":"10307:47:101"},{"nativeSrc":"10363:139:101","nodeType":"YulAssignment","src":"10363:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"10497:4:101","nodeType":"YulIdentifier","src":"10497:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10371:124:101","nodeType":"YulIdentifier","src":"10371:124:101"},"nativeSrc":"10371:131:101","nodeType":"YulFunctionCall","src":"10371:131:101"},"variableNames":[{"name":"tail","nativeSrc":"10363:4:101","nodeType":"YulIdentifier","src":"10363:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10090:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10241:9:101","nodeType":"YulTypedName","src":"10241:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10256:4:101","nodeType":"YulTypedName","src":"10256:4:101","type":""}],"src":"10090:419:101"},{"body":{"nativeSrc":"10621:118:101","nodeType":"YulBlock","src":"10621:118:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10643:6:101","nodeType":"YulIdentifier","src":"10643:6:101"},{"kind":"number","nativeSrc":"10651:1:101","nodeType":"YulLiteral","src":"10651:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10639:3:101","nodeType":"YulIdentifier","src":"10639:3:101"},"nativeSrc":"10639:14:101","nodeType":"YulFunctionCall","src":"10639:14:101"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"10655:34:101","nodeType":"YulLiteral","src":"10655:34:101","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"10632:6:101","nodeType":"YulIdentifier","src":"10632:6:101"},"nativeSrc":"10632:58:101","nodeType":"YulFunctionCall","src":"10632:58:101"},"nativeSrc":"10632:58:101","nodeType":"YulExpressionStatement","src":"10632:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10711:6:101","nodeType":"YulIdentifier","src":"10711:6:101"},{"kind":"number","nativeSrc":"10719:2:101","nodeType":"YulLiteral","src":"10719:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10707:3:101","nodeType":"YulIdentifier","src":"10707:3:101"},"nativeSrc":"10707:15:101","nodeType":"YulFunctionCall","src":"10707:15:101"},{"hexValue":"6472657373","kind":"string","nativeSrc":"10724:7:101","nodeType":"YulLiteral","src":"10724:7:101","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"10700:6:101","nodeType":"YulIdentifier","src":"10700:6:101"},"nativeSrc":"10700:32:101","nodeType":"YulFunctionCall","src":"10700:32:101"},"nativeSrc":"10700:32:101","nodeType":"YulExpressionStatement","src":"10700:32:101"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"10515:224:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10613:6:101","nodeType":"YulTypedName","src":"10613:6:101","type":""}],"src":"10515:224:101"},{"body":{"nativeSrc":"10891:220:101","nodeType":"YulBlock","src":"10891:220:101","statements":[{"nativeSrc":"10901:74:101","nodeType":"YulAssignment","src":"10901:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10967:3:101","nodeType":"YulIdentifier","src":"10967:3:101"},{"kind":"number","nativeSrc":"10972:2:101","nodeType":"YulLiteral","src":"10972:2:101","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10908:58:101","nodeType":"YulIdentifier","src":"10908:58:101"},"nativeSrc":"10908:67:101","nodeType":"YulFunctionCall","src":"10908:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10901:3:101","nodeType":"YulIdentifier","src":"10901:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11073:3:101","nodeType":"YulIdentifier","src":"11073:3:101"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"10984:88:101","nodeType":"YulIdentifier","src":"10984:88:101"},"nativeSrc":"10984:93:101","nodeType":"YulFunctionCall","src":"10984:93:101"},"nativeSrc":"10984:93:101","nodeType":"YulExpressionStatement","src":"10984:93:101"},{"nativeSrc":"11086:19:101","nodeType":"YulAssignment","src":"11086:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11097:3:101","nodeType":"YulIdentifier","src":"11097:3:101"},{"kind":"number","nativeSrc":"11102:2:101","nodeType":"YulLiteral","src":"11102:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11093:3:101","nodeType":"YulIdentifier","src":"11093:3:101"},"nativeSrc":"11093:12:101","nodeType":"YulFunctionCall","src":"11093:12:101"},"variableNames":[{"name":"end","nativeSrc":"11086:3:101","nodeType":"YulIdentifier","src":"11086:3:101"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"10745:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10879:3:101","nodeType":"YulTypedName","src":"10879:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10887:3:101","nodeType":"YulTypedName","src":"10887:3:101","type":""}],"src":"10745:366:101"},{"body":{"nativeSrc":"11288:248:101","nodeType":"YulBlock","src":"11288:248:101","statements":[{"nativeSrc":"11298:26:101","nodeType":"YulAssignment","src":"11298:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11310:9:101","nodeType":"YulIdentifier","src":"11310:9:101"},{"kind":"number","nativeSrc":"11321:2:101","nodeType":"YulLiteral","src":"11321:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11306:3:101","nodeType":"YulIdentifier","src":"11306:3:101"},"nativeSrc":"11306:18:101","nodeType":"YulFunctionCall","src":"11306:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11298:4:101","nodeType":"YulIdentifier","src":"11298:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11345:9:101","nodeType":"YulIdentifier","src":"11345:9:101"},{"kind":"number","nativeSrc":"11356:1:101","nodeType":"YulLiteral","src":"11356:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11341:3:101","nodeType":"YulIdentifier","src":"11341:3:101"},"nativeSrc":"11341:17:101","nodeType":"YulFunctionCall","src":"11341:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11364:4:101","nodeType":"YulIdentifier","src":"11364:4:101"},{"name":"headStart","nativeSrc":"11370:9:101","nodeType":"YulIdentifier","src":"11370:9:101"}],"functionName":{"name":"sub","nativeSrc":"11360:3:101","nodeType":"YulIdentifier","src":"11360:3:101"},"nativeSrc":"11360:20:101","nodeType":"YulFunctionCall","src":"11360:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11334:6:101","nodeType":"YulIdentifier","src":"11334:6:101"},"nativeSrc":"11334:47:101","nodeType":"YulFunctionCall","src":"11334:47:101"},"nativeSrc":"11334:47:101","nodeType":"YulExpressionStatement","src":"11334:47:101"},{"nativeSrc":"11390:139:101","nodeType":"YulAssignment","src":"11390:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11524:4:101","nodeType":"YulIdentifier","src":"11524:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11398:124:101","nodeType":"YulIdentifier","src":"11398:124:101"},"nativeSrc":"11398:131:101","nodeType":"YulFunctionCall","src":"11398:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11390:4:101","nodeType":"YulIdentifier","src":"11390:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11117:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11268:9:101","nodeType":"YulTypedName","src":"11268:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11283:4:101","nodeType":"YulTypedName","src":"11283:4:101","type":""}],"src":"11117:419:101"},{"body":{"nativeSrc":"11648:116:101","nodeType":"YulBlock","src":"11648:116:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11670:6:101","nodeType":"YulIdentifier","src":"11670:6:101"},{"kind":"number","nativeSrc":"11678:1:101","nodeType":"YulLiteral","src":"11678:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11666:3:101","nodeType":"YulIdentifier","src":"11666:3:101"},"nativeSrc":"11666:14:101","nodeType":"YulFunctionCall","src":"11666:14:101"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"11682:34:101","nodeType":"YulLiteral","src":"11682:34:101","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"11659:6:101","nodeType":"YulIdentifier","src":"11659:6:101"},"nativeSrc":"11659:58:101","nodeType":"YulFunctionCall","src":"11659:58:101"},"nativeSrc":"11659:58:101","nodeType":"YulExpressionStatement","src":"11659:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11738:6:101","nodeType":"YulIdentifier","src":"11738:6:101"},{"kind":"number","nativeSrc":"11746:2:101","nodeType":"YulLiteral","src":"11746:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11734:3:101","nodeType":"YulIdentifier","src":"11734:3:101"},"nativeSrc":"11734:15:101","nodeType":"YulFunctionCall","src":"11734:15:101"},{"hexValue":"657373","kind":"string","nativeSrc":"11751:5:101","nodeType":"YulLiteral","src":"11751:5:101","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"11727:6:101","nodeType":"YulIdentifier","src":"11727:6:101"},"nativeSrc":"11727:30:101","nodeType":"YulFunctionCall","src":"11727:30:101"},"nativeSrc":"11727:30:101","nodeType":"YulExpressionStatement","src":"11727:30:101"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"11542:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11640:6:101","nodeType":"YulTypedName","src":"11640:6:101","type":""}],"src":"11542:222:101"},{"body":{"nativeSrc":"11916:220:101","nodeType":"YulBlock","src":"11916:220:101","statements":[{"nativeSrc":"11926:74:101","nodeType":"YulAssignment","src":"11926:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"11992:3:101","nodeType":"YulIdentifier","src":"11992:3:101"},{"kind":"number","nativeSrc":"11997:2:101","nodeType":"YulLiteral","src":"11997:2:101","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11933:58:101","nodeType":"YulIdentifier","src":"11933:58:101"},"nativeSrc":"11933:67:101","nodeType":"YulFunctionCall","src":"11933:67:101"},"variableNames":[{"name":"pos","nativeSrc":"11926:3:101","nodeType":"YulIdentifier","src":"11926:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12098:3:101","nodeType":"YulIdentifier","src":"12098:3:101"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"12009:88:101","nodeType":"YulIdentifier","src":"12009:88:101"},"nativeSrc":"12009:93:101","nodeType":"YulFunctionCall","src":"12009:93:101"},"nativeSrc":"12009:93:101","nodeType":"YulExpressionStatement","src":"12009:93:101"},{"nativeSrc":"12111:19:101","nodeType":"YulAssignment","src":"12111:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"12122:3:101","nodeType":"YulIdentifier","src":"12122:3:101"},{"kind":"number","nativeSrc":"12127:2:101","nodeType":"YulLiteral","src":"12127:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12118:3:101","nodeType":"YulIdentifier","src":"12118:3:101"},"nativeSrc":"12118:12:101","nodeType":"YulFunctionCall","src":"12118:12:101"},"variableNames":[{"name":"end","nativeSrc":"12111:3:101","nodeType":"YulIdentifier","src":"12111:3:101"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"11770:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11904:3:101","nodeType":"YulTypedName","src":"11904:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11912:3:101","nodeType":"YulTypedName","src":"11912:3:101","type":""}],"src":"11770:366:101"},{"body":{"nativeSrc":"12313:248:101","nodeType":"YulBlock","src":"12313:248:101","statements":[{"nativeSrc":"12323:26:101","nodeType":"YulAssignment","src":"12323:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"12335:9:101","nodeType":"YulIdentifier","src":"12335:9:101"},{"kind":"number","nativeSrc":"12346:2:101","nodeType":"YulLiteral","src":"12346:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12331:3:101","nodeType":"YulIdentifier","src":"12331:3:101"},"nativeSrc":"12331:18:101","nodeType":"YulFunctionCall","src":"12331:18:101"},"variableNames":[{"name":"tail","nativeSrc":"12323:4:101","nodeType":"YulIdentifier","src":"12323:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12370:9:101","nodeType":"YulIdentifier","src":"12370:9:101"},{"kind":"number","nativeSrc":"12381:1:101","nodeType":"YulLiteral","src":"12381:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12366:3:101","nodeType":"YulIdentifier","src":"12366:3:101"},"nativeSrc":"12366:17:101","nodeType":"YulFunctionCall","src":"12366:17:101"},{"arguments":[{"name":"tail","nativeSrc":"12389:4:101","nodeType":"YulIdentifier","src":"12389:4:101"},{"name":"headStart","nativeSrc":"12395:9:101","nodeType":"YulIdentifier","src":"12395:9:101"}],"functionName":{"name":"sub","nativeSrc":"12385:3:101","nodeType":"YulIdentifier","src":"12385:3:101"},"nativeSrc":"12385:20:101","nodeType":"YulFunctionCall","src":"12385:20:101"}],"functionName":{"name":"mstore","nativeSrc":"12359:6:101","nodeType":"YulIdentifier","src":"12359:6:101"},"nativeSrc":"12359:47:101","nodeType":"YulFunctionCall","src":"12359:47:101"},"nativeSrc":"12359:47:101","nodeType":"YulExpressionStatement","src":"12359:47:101"},{"nativeSrc":"12415:139:101","nodeType":"YulAssignment","src":"12415:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"12549:4:101","nodeType":"YulIdentifier","src":"12549:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12423:124:101","nodeType":"YulIdentifier","src":"12423:124:101"},"nativeSrc":"12423:131:101","nodeType":"YulFunctionCall","src":"12423:131:101"},"variableNames":[{"name":"tail","nativeSrc":"12415:4:101","nodeType":"YulIdentifier","src":"12415:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12142:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12293:9:101","nodeType":"YulTypedName","src":"12293:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12308:4:101","nodeType":"YulTypedName","src":"12308:4:101","type":""}],"src":"12142:419:101"},{"body":{"nativeSrc":"12673:119:101","nodeType":"YulBlock","src":"12673:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12695:6:101","nodeType":"YulIdentifier","src":"12695:6:101"},{"kind":"number","nativeSrc":"12703:1:101","nodeType":"YulLiteral","src":"12703:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12691:3:101","nodeType":"YulIdentifier","src":"12691:3:101"},"nativeSrc":"12691:14:101","nodeType":"YulFunctionCall","src":"12691:14:101"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"12707:34:101","nodeType":"YulLiteral","src":"12707:34:101","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"12684:6:101","nodeType":"YulIdentifier","src":"12684:6:101"},"nativeSrc":"12684:58:101","nodeType":"YulFunctionCall","src":"12684:58:101"},"nativeSrc":"12684:58:101","nodeType":"YulExpressionStatement","src":"12684:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12763:6:101","nodeType":"YulIdentifier","src":"12763:6:101"},{"kind":"number","nativeSrc":"12771:2:101","nodeType":"YulLiteral","src":"12771:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12759:3:101","nodeType":"YulIdentifier","src":"12759:3:101"},"nativeSrc":"12759:15:101","nodeType":"YulFunctionCall","src":"12759:15:101"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"12776:8:101","nodeType":"YulLiteral","src":"12776:8:101","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"12752:6:101","nodeType":"YulIdentifier","src":"12752:6:101"},"nativeSrc":"12752:33:101","nodeType":"YulFunctionCall","src":"12752:33:101"},"nativeSrc":"12752:33:101","nodeType":"YulExpressionStatement","src":"12752:33:101"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"12567:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12665:6:101","nodeType":"YulTypedName","src":"12665:6:101","type":""}],"src":"12567:225:101"},{"body":{"nativeSrc":"12944:220:101","nodeType":"YulBlock","src":"12944:220:101","statements":[{"nativeSrc":"12954:74:101","nodeType":"YulAssignment","src":"12954:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"13020:3:101","nodeType":"YulIdentifier","src":"13020:3:101"},{"kind":"number","nativeSrc":"13025:2:101","nodeType":"YulLiteral","src":"13025:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12961:58:101","nodeType":"YulIdentifier","src":"12961:58:101"},"nativeSrc":"12961:67:101","nodeType":"YulFunctionCall","src":"12961:67:101"},"variableNames":[{"name":"pos","nativeSrc":"12954:3:101","nodeType":"YulIdentifier","src":"12954:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13126:3:101","nodeType":"YulIdentifier","src":"13126:3:101"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13037:88:101","nodeType":"YulIdentifier","src":"13037:88:101"},"nativeSrc":"13037:93:101","nodeType":"YulFunctionCall","src":"13037:93:101"},"nativeSrc":"13037:93:101","nodeType":"YulExpressionStatement","src":"13037:93:101"},{"nativeSrc":"13139:19:101","nodeType":"YulAssignment","src":"13139:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"13150:3:101","nodeType":"YulIdentifier","src":"13150:3:101"},{"kind":"number","nativeSrc":"13155:2:101","nodeType":"YulLiteral","src":"13155:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13146:3:101","nodeType":"YulIdentifier","src":"13146:3:101"},"nativeSrc":"13146:12:101","nodeType":"YulFunctionCall","src":"13146:12:101"},"variableNames":[{"name":"end","nativeSrc":"13139:3:101","nodeType":"YulIdentifier","src":"13139:3:101"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"12798:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12932:3:101","nodeType":"YulTypedName","src":"12932:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12940:3:101","nodeType":"YulTypedName","src":"12940:3:101","type":""}],"src":"12798:366:101"},{"body":{"nativeSrc":"13341:248:101","nodeType":"YulBlock","src":"13341:248:101","statements":[{"nativeSrc":"13351:26:101","nodeType":"YulAssignment","src":"13351:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"13363:9:101","nodeType":"YulIdentifier","src":"13363:9:101"},{"kind":"number","nativeSrc":"13374:2:101","nodeType":"YulLiteral","src":"13374:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13359:3:101","nodeType":"YulIdentifier","src":"13359:3:101"},"nativeSrc":"13359:18:101","nodeType":"YulFunctionCall","src":"13359:18:101"},"variableNames":[{"name":"tail","nativeSrc":"13351:4:101","nodeType":"YulIdentifier","src":"13351:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13398:9:101","nodeType":"YulIdentifier","src":"13398:9:101"},{"kind":"number","nativeSrc":"13409:1:101","nodeType":"YulLiteral","src":"13409:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13394:3:101","nodeType":"YulIdentifier","src":"13394:3:101"},"nativeSrc":"13394:17:101","nodeType":"YulFunctionCall","src":"13394:17:101"},{"arguments":[{"name":"tail","nativeSrc":"13417:4:101","nodeType":"YulIdentifier","src":"13417:4:101"},{"name":"headStart","nativeSrc":"13423:9:101","nodeType":"YulIdentifier","src":"13423:9:101"}],"functionName":{"name":"sub","nativeSrc":"13413:3:101","nodeType":"YulIdentifier","src":"13413:3:101"},"nativeSrc":"13413:20:101","nodeType":"YulFunctionCall","src":"13413:20:101"}],"functionName":{"name":"mstore","nativeSrc":"13387:6:101","nodeType":"YulIdentifier","src":"13387:6:101"},"nativeSrc":"13387:47:101","nodeType":"YulFunctionCall","src":"13387:47:101"},"nativeSrc":"13387:47:101","nodeType":"YulExpressionStatement","src":"13387:47:101"},{"nativeSrc":"13443:139:101","nodeType":"YulAssignment","src":"13443:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"13577:4:101","nodeType":"YulIdentifier","src":"13577:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13451:124:101","nodeType":"YulIdentifier","src":"13451:124:101"},"nativeSrc":"13451:131:101","nodeType":"YulFunctionCall","src":"13451:131:101"},"variableNames":[{"name":"tail","nativeSrc":"13443:4:101","nodeType":"YulIdentifier","src":"13443:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13170:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13321:9:101","nodeType":"YulTypedName","src":"13321:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13336:4:101","nodeType":"YulTypedName","src":"13336:4:101","type":""}],"src":"13170:419:101"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011b57806370a082311461012e57806395d89b4114610156578063a457c2d71461015e578063a9059cbb14610171578063dd62ed3e14610184575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100e857806323b872dd146100f9578063313ce5671461010c575b5f80fd5b6100b2610197565b6040516100bf9190610534565b60405180910390f35b6100db6100d636600461058e565b610227565b6040516100bf91906105d2565b6002545b6040516100bf91906105e6565b6100db6101073660046105f4565b610240565b60126040516100bf9190610649565b6100db61012936600461058e565b610263565b6100ec61013c366004610657565b6001600160a01b03165f9081526020819052604090205490565b6100b2610284565b6100db61016c36600461058e565b610293565b6100db61017f36600461058e565b6102d8565b6100ec61019236600461067d565b6102e5565b6060600380546101a6906106c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101d2906106c1565b801561021d5780601f106101f45761010080835404028352916020019161021d565b820191905f5260205f20905b81548152906001019060200180831161020057829003601f168201915b5050505050905090565b5f3361023481858561030f565b60019150505b92915050565b5f3361024d8582856103c2565b61025885858561040a565b506001949350505050565b5f3361023481858561027583836102e5565b61027f9190610701565b61030f565b6060600480546101a6906106c1565b5f33816102a082866102e5565b9050838110156102cb5760405162461bcd60e51b81526004016102c290610758565b60405180910390fd5b610258828686840361030f565b5f3361023481858561040a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103355760405162461bcd60e51b81526004016102c2906107a8565b6001600160a01b03821661035b5760405162461bcd60e51b81526004016102c2906107f6565b6001600160a01b038084165f8181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103b59085906105e6565b60405180910390a3505050565b5f6103cd84846102e5565b90505f19811461040457818110156103f75760405162461bcd60e51b81526004016102c290610806565b610404848484840361030f565b50505050565b6001600160a01b0383166104305760405162461bcd60e51b81526004016102c290610882565b6001600160a01b0382166104565760405162461bcd60e51b81526004016102c2906108d1565b6001600160a01b0383165f908152602081905260409020548181101561048e5760405162461bcd60e51b81526004016102c290610923565b6001600160a01b038085165f8181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104eb9086906105e6565b60405180910390a3610404565b8281835e505f910152565b5f61050c825190565b8084526020840193506105238185602086016104f8565b601f01601f19169290920192915050565b602080825281016105458184610503565b9392505050565b5f6001600160a01b03821661023a565b6105658161054c565b811461056f575f80fd5b50565b803561023a8161055c565b80610565565b803561023a8161057d565b5f80604083850312156105a2576105a25f80fd5b5f6105ad8585610572565b92505060206105be85828601610583565b9150509250929050565b8015155b82525050565b6020810161023a82846105c8565b806105cc565b6020810161023a82846105e0565b5f805f60608486031215610609576106095f80fd5b5f6106148686610572565b935050602061062586828701610572565b925050604061063686828701610583565b9150509250925092565b60ff81166105cc565b6020810161023a8284610640565b5f6020828403121561066a5761066a5f80fd5b5f6106758484610572565b949350505050565b5f8060408385031215610691576106915f80fd5b5f61069c8585610572565b92505060206105be85828601610572565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806106d557607f821691505b6020821081036106e7576106e76106ad565b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561023a5761023a6106ed565b602581525f602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161023a81610714565b602481525f602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610751565b6020808252810161023a81610768565b602281525f602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610751565b6020808252810161023a816107b8565b6020808252810161023a81601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581525f602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610751565b6020808252810161023a81610841565b602381525f602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610751565b6020808252810161023a81610892565b602681525f602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610751565b6020808252810161023a816108e156fea264697066735822122076cc94c5d816cad720d86bbf003c01761f0eb80b36246b47c4cca119453ae2a464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x12E JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x184 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x10C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB2 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x240 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x649 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x657 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB2 PUSH2 0x284 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0xDB PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x58E JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0x67D JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 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 0x1D2 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x21D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x21D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x200 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x30F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x24D DUP6 DUP3 DUP6 PUSH2 0x3C2 JUMP JUMPDEST PUSH2 0x258 DUP6 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x275 DUP4 DUP4 PUSH2 0x2E5 JUMP JUMPDEST PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x701 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1A6 SWAP1 PUSH2 0x6C1 JUMP JUMPDEST PUSH0 CALLER DUP2 PUSH2 0x2A0 DUP3 DUP7 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x758 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x258 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST PUSH0 CALLER PUSH2 0x234 DUP2 DUP6 DUP6 PUSH2 0x40A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x35B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x7F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x3B5 SWAP1 DUP6 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3CD DUP5 DUP5 PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP PUSH0 NOT DUP2 EQ PUSH2 0x404 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x806 JUMP JUMPDEST PUSH2 0x404 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x30F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x882 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x8D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C2 SWAP1 PUSH2 0x923 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x4EB SWAP1 DUP7 SWAP1 PUSH2 0x5E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x404 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x50C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x523 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x545 DUP2 DUP5 PUSH2 0x503 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x565 DUP2 PUSH2 0x54C JUMP JUMPDEST DUP2 EQ PUSH2 0x56F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x55C JUMP JUMPDEST DUP1 PUSH2 0x565 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x23A DUP2 PUSH2 0x57D JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x5AD DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5C8 JUMP JUMPDEST DUP1 PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x5E0 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x609 JUMPI PUSH2 0x609 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x614 DUP7 DUP7 PUSH2 0x572 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x625 DUP7 DUP3 DUP8 ADD PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x636 DUP7 DUP3 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x5CC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x23A DUP3 DUP5 PUSH2 0x640 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66A JUMPI PUSH2 0x66A PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x675 DUP5 DUP5 PUSH2 0x572 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x691 JUMPI PUSH2 0x691 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x69C DUP6 DUP6 PUSH2 0x572 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5BE DUP6 DUP3 DUP7 ADD PUSH2 0x572 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x6D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6E7 JUMPI PUSH2 0x6E7 PUSH2 0x6AD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x23A JUMPI PUSH2 0x23A PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x714 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x768 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x7B8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH1 0x1D DUP2 MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x892 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x751 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x23A DUP2 PUSH2 0x8E1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0xCC94C5D816CAD720D86BBF003C01761F0EB80B36246B47 0xC4 0xCC LOG1 NOT GASLIMIT GASPRICE 0xE2 LOG4 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"123:194:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;3104:91::-;3186:2;3104:91;;;;;;:::i;5854:234::-;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:11;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:14;4581:32:11;734:10:14;4597:7:11;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:14;5356:38:11;5372:4;734:10:14;5387:6:11;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:11;;5203:256;-1:-1:-1;;;;5203:256:11:o;5854:234::-;5942:4;734:10:14;5996:64:11;734:10:14;6012:7:11;6049:10;6021:25;734:10:14;6012:7:11;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;734:10:14;6668:4:11;6749:25;734:10:14;6766:7:11;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:11;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:14;3873:28:11;734:10:14;3890:2:11;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:11;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:11;;10550:68;;;;-1:-1:-1;;;10550:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:11;;10628:68;;;;-1:-1:-1;;;10628:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:11;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:11;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:11;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:11;;7544:68;;;;-1:-1:-1;;;7544:68:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:11;;7622:64;;;;-1:-1:-1;;;7622:64:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:11;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:11;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:11;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;287:139:101;376:6;371:3;366;360:23;-1:-1:-1;417:1:101;399:16;;392:27;287:139::o;540:377::-;628:3;656:39;689:5;87:12;;7:99;656:39;218:19;;;270:4;261:14;;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;524:2;504:14;-1:-1:-1;;500:28:101;872:39;;;;;;-1:-1:-1;;540:377:101:o;923:313::-;1074:2;1087:47;;;1059:18;;1151:78;1059:18;1215:6;1151:78;:::i;:::-;1143:86;923:313;-1:-1:-1;;;923:313:101:o;1701:96::-;1738:7;-1:-1:-1;;;;;1635:54:101;;1767:24;1569:126;1803:122;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;2002:20;;2031:33;2002:20;2031:33;:::i;2159:122::-;2250:5;2232:24;2076:77;2287:139;2358:20;;2387:33;2358:20;2387:33;:::i;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;123:194:87;;;2563:79:101;2683:1;2708:53;2753:7;2733:9;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;3008:109::-;2982:13;;2975:21;3089;3084:3;3077:34;3008:109;;:::o;3123:210::-;3248:2;3233:18;;3261:65;3237:9;3299:6;3261:65;:::i;3339:118::-;3444:5;3426:24;2076:77;3463:222;3594:2;3579:18;;3607:71;3583:9;3651:6;3607:71;:::i;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;123:194:87;;;3839:79:101;3959:1;3984:53;4029:7;4009:9;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4408:112::-;4391:4;4380:16;;4491:22;4316:86;4526:214;4653:2;4638:18;;4666:67;4642:9;4706:6;4666:67;:::i;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;123:194:87;;;4860:79:101;4980:1;5005:53;5050:7;5030:9;5005:53;:::i;:::-;4995:63;4746:329;-1:-1:-1;;;;4746:329:101:o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;123:194:87;;;5212:79:101;5332:1;5357:53;5402:7;5382:9;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;5561:180::-;-1:-1:-1;;;5606:1:101;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:320;5828:1;5818:12;;5875:1;5865:12;;;5886:81;;5952:4;5944:6;5940:17;5930:27;;5886:81;6014:2;6006:6;6003:14;5983:18;5980:38;5977:84;;6033:18;;:::i;:::-;5798:269;5747:320;;;:::o;6073:180::-;-1:-1:-1;;;6118:1:101;6111:88;6218:4;6215:1;6208:15;6242:4;6239:1;6232:15;6259:191;6388:9;;;6410:10;;;6407:36;;;6423:18;;:::i;6686:366::-;6913:2;218:19;;6828:3;270:4;261:14;;6596:34;6573:58;;-1:-1:-1;;;6660:2:101;6648:15;;6641:32;6842:74;-1:-1:-1;6925:93:101;-1:-1:-1;7043:2:101;7034:12;;6686:366::o;7058:419::-;7262:2;7275:47;;;7247:18;;7339:131;7247:18;7339:131;:::i;7712:366::-;7939:2;218:19;;7854:3;270:4;261:14;;7623:34;7600:58;;-1:-1:-1;;;7687:2:101;7675:15;;7668:31;7868:74;-1:-1:-1;7951:93:101;7483:223;8084:419;8288:2;8301:47;;;8273:18;;8365:131;8273:18;8365:131;:::i;8736:366::-;8963:2;218:19;;8878:3;270:4;261:14;;8649:34;8626:58;;-1:-1:-1;;;8713:2:101;8701:15;;8694:29;8892:74;-1:-1:-1;8975:93:101;8509:221;9108:419;9312:2;9325:47;;;9297:18;;9389:131;9297:18;9389:131;:::i;10090:419::-;10294:2;10307:47;;;10279:18;;10371:131;10279:18;9945:2;218:19;;9673:31;270:4;261:14;;9650:55;10066:12;;;9718:366;10745;10972:2;218:19;;10887:3;270:4;261:14;;10655:34;10632:58;;-1:-1:-1;;;10719:2:101;10707:15;;10700:32;10901:74;-1:-1:-1;10984:93:101;10515:224;11117:419;11321:2;11334:47;;;11306:18;;11398:131;11306:18;11398:131;:::i;11770:366::-;11997:2;218:19;;11912:3;270:4;261:14;;11682:34;11659:58;;-1:-1:-1;;;11746:2:101;11734:15;;11727:30;11926:74;-1:-1:-1;12009:93:101;11542:222;12142:419;12346:2;12359:47;;;12331:18;;12423:131;12331:18;12423:131;:::i;12798:366::-;13025:2;218:19;;12940:3;270:4;261:14;;12707:34;12684:58;;-1:-1:-1;;;12771:2:101;12759:15;;12752:33;12954:74;-1:-1:-1;13037:93:101;12567:225;13170:419;13374:2;13387:47;;;13359:18;;13451:131;13359:18;13451:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"481800","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"351","decreaseAllowance(address,uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","symbol()":"infinite","totalSupply()":"2402","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/oracles/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/test/oracles/MockERC20.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\ncontract MockERC20 is ERC20 {\\n    constructor(string memory name, string memory symbol, uint8 decimals) ERC20(name, symbol) {\\n        _mint(msg.sender, 100000 * 10 ** uint256(decimals));\\n    }\\n}\\n\",\"keccak256\":\"0x776ded23bdbee69909c256e7df4f27d396a4d11f562adf2f30366ae8d1b0fcc6\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1222,"contract":"contracts/test/oracles/MockERC20.sol:MockERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":1228,"contract":"contracts/test/oracles/MockERC20.sol:MockERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1230,"contract":"contracts/test/oracles/MockERC20.sol:MockERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":1232,"contract":"contracts/test/oracles/MockERC20.sol:MockERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":1234,"contract":"contracts/test/oracles/MockERC20.sol:MockERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"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"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/oracles/MockResilientOracle.sol":{"MockOracle":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"prices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b506101b08061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003e575f3560e01c8062e4768b1461004257806341976e091461006d578063cfed246b146100ab575b5f80fd5b61006b61005036600461010e565b6001600160a01b039091165f90815260208190526040902055565b005b61009561007b366004610148565b6001600160a01b03165f9081526020819052604090205490565b6040516100a2919061016e565b60405180910390f35b6100956100b9366004610148565b5f6020819052908152604090205481565b5f6001600160a01b0382165b92915050565b6100e5816100ca565b81146100ef575f80fd5b50565b80356100d6816100dc565b806100e5565b80356100d6816100fd565b5f8060408385031215610122576101225f80fd5b5f61012d85856100f2565b925050602061013e85828601610103565b9150509250929050565b5f6020828403121561015b5761015b5f80fd5b5f61016684846100f2565b949350505050565b818152602081016100d656fea2646970667358221220f6f452d3be5a0675d070c54cc91893087f6405d75f5f51e4525dca55cf1fc60764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B0 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xE4768B EQ PUSH2 0x42 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0xAB JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH2 0x50 CALLDATASIZE PUSH1 0x4 PUSH2 0x10E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x148 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x148 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE5 DUP2 PUSH2 0xCA JUMP JUMPDEST DUP2 EQ PUSH2 0xEF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xD6 DUP2 PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH2 0xE5 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xD6 DUP2 PUSH2 0xFD JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x122 JUMPI PUSH2 0x122 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x12D DUP6 DUP6 PUSH2 0xF2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x13E DUP6 DUP3 DUP7 ADD PUSH2 0x103 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15B JUMPI PUSH2 0x15B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x166 DUP5 DUP5 PUSH2 0xF2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xD6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF6 DELEGATECALL MSTORE 0xD3 0xBE GAS MOD PUSH22 0xD070C54CC91893087F6405D75F5F51E4525DCA55CF1F 0xC6 SMOD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"114:298:88:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getPrice_8857":{"entryPoint":null,"id":8857,"parameterSlots":1,"returnSlots":1},"@prices_8845":{"entryPoint":null,"id":8845,"parameterSlots":0,"returnSlots":0},"@setPrice_8871":{"entryPoint":null,"id":8871,"parameterSlots":2,"returnSlots":0},"abi_decode_t_address":{"entryPoint":242,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":259,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":328,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":270,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":366,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":202,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":220,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":253,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2361:101","nodeType":"YulBlock","src":"0:2361:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"886:32:101","nodeType":"YulBlock","src":"886:32:101","statements":[{"nativeSrc":"896:16:101","nodeType":"YulAssignment","src":"896:16:101","value":{"name":"value","nativeSrc":"907:5:101","nodeType":"YulIdentifier","src":"907:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:101","nodeType":"YulIdentifier","src":"896:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:101","nodeType":"YulTypedName","src":"868:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:101","nodeType":"YulTypedName","src":"878:7:101","type":""}],"src":"841:77:101"},{"body":{"nativeSrc":"967:79:101","nodeType":"YulBlock","src":"967:79:101","statements":[{"body":{"nativeSrc":"1024:16:101","nodeType":"YulBlock","src":"1024:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:101","nodeType":"YulLiteral","src":"1033:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:101","nodeType":"YulLiteral","src":"1036:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:101","nodeType":"YulIdentifier","src":"1026:6:101"},"nativeSrc":"1026:12:101","nodeType":"YulFunctionCall","src":"1026:12:101"},"nativeSrc":"1026:12:101","nodeType":"YulExpressionStatement","src":"1026:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:101","nodeType":"YulIdentifier","src":"990:5:101"},{"arguments":[{"name":"value","nativeSrc":"1015:5:101","nodeType":"YulIdentifier","src":"1015:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:101","nodeType":"YulIdentifier","src":"997:17:101"},"nativeSrc":"997:24:101","nodeType":"YulFunctionCall","src":"997:24:101"}],"functionName":{"name":"eq","nativeSrc":"987:2:101","nodeType":"YulIdentifier","src":"987:2:101"},"nativeSrc":"987:35:101","nodeType":"YulFunctionCall","src":"987:35:101"}],"functionName":{"name":"iszero","nativeSrc":"980:6:101","nodeType":"YulIdentifier","src":"980:6:101"},"nativeSrc":"980:43:101","nodeType":"YulFunctionCall","src":"980:43:101"},"nativeSrc":"977:63:101","nodeType":"YulIf","src":"977:63:101"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:101","nodeType":"YulTypedName","src":"960:5:101","type":""}],"src":"924:122:101"},{"body":{"nativeSrc":"1104:87:101","nodeType":"YulBlock","src":"1104:87:101","statements":[{"nativeSrc":"1114:29:101","nodeType":"YulAssignment","src":"1114:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:101","nodeType":"YulIdentifier","src":"1123:12:101"},"nativeSrc":"1123:20:101","nodeType":"YulFunctionCall","src":"1123:20:101"},"variableNames":[{"name":"value","nativeSrc":"1114:5:101","nodeType":"YulIdentifier","src":"1114:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:101","nodeType":"YulIdentifier","src":"1179:5:101"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:101","nodeType":"YulIdentifier","src":"1152:26:101"},"nativeSrc":"1152:33:101","nodeType":"YulFunctionCall","src":"1152:33:101"},"nativeSrc":"1152:33:101","nodeType":"YulExpressionStatement","src":"1152:33:101"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:101","nodeType":"YulTypedName","src":"1082:6:101","type":""},{"name":"end","nativeSrc":"1090:3:101","nodeType":"YulTypedName","src":"1090:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:101","nodeType":"YulTypedName","src":"1098:5:101","type":""}],"src":"1052:139:101"},{"body":{"nativeSrc":"1280:391:101","nodeType":"YulBlock","src":"1280:391:101","statements":[{"body":{"nativeSrc":"1326:83:101","nodeType":"YulBlock","src":"1326:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1328:77:101","nodeType":"YulIdentifier","src":"1328:77:101"},"nativeSrc":"1328:79:101","nodeType":"YulFunctionCall","src":"1328:79:101"},"nativeSrc":"1328:79:101","nodeType":"YulExpressionStatement","src":"1328:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1301:7:101","nodeType":"YulIdentifier","src":"1301:7:101"},{"name":"headStart","nativeSrc":"1310:9:101","nodeType":"YulIdentifier","src":"1310:9:101"}],"functionName":{"name":"sub","nativeSrc":"1297:3:101","nodeType":"YulIdentifier","src":"1297:3:101"},"nativeSrc":"1297:23:101","nodeType":"YulFunctionCall","src":"1297:23:101"},{"kind":"number","nativeSrc":"1322:2:101","nodeType":"YulLiteral","src":"1322:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1293:3:101","nodeType":"YulIdentifier","src":"1293:3:101"},"nativeSrc":"1293:32:101","nodeType":"YulFunctionCall","src":"1293:32:101"},"nativeSrc":"1290:119:101","nodeType":"YulIf","src":"1290:119:101"},{"nativeSrc":"1419:117:101","nodeType":"YulBlock","src":"1419:117:101","statements":[{"nativeSrc":"1434:15:101","nodeType":"YulVariableDeclaration","src":"1434:15:101","value":{"kind":"number","nativeSrc":"1448:1:101","nodeType":"YulLiteral","src":"1448:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1438:6:101","nodeType":"YulTypedName","src":"1438:6:101","type":""}]},{"nativeSrc":"1463:63:101","nodeType":"YulAssignment","src":"1463:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1498:9:101","nodeType":"YulIdentifier","src":"1498:9:101"},{"name":"offset","nativeSrc":"1509:6:101","nodeType":"YulIdentifier","src":"1509:6:101"}],"functionName":{"name":"add","nativeSrc":"1494:3:101","nodeType":"YulIdentifier","src":"1494:3:101"},"nativeSrc":"1494:22:101","nodeType":"YulFunctionCall","src":"1494:22:101"},{"name":"dataEnd","nativeSrc":"1518:7:101","nodeType":"YulIdentifier","src":"1518:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1473:20:101","nodeType":"YulIdentifier","src":"1473:20:101"},"nativeSrc":"1473:53:101","nodeType":"YulFunctionCall","src":"1473:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1463:6:101","nodeType":"YulIdentifier","src":"1463:6:101"}]}]},{"nativeSrc":"1546:118:101","nodeType":"YulBlock","src":"1546:118:101","statements":[{"nativeSrc":"1561:16:101","nodeType":"YulVariableDeclaration","src":"1561:16:101","value":{"kind":"number","nativeSrc":"1575:2:101","nodeType":"YulLiteral","src":"1575:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1565:6:101","nodeType":"YulTypedName","src":"1565:6:101","type":""}]},{"nativeSrc":"1591:63:101","nodeType":"YulAssignment","src":"1591:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:101","nodeType":"YulIdentifier","src":"1626:9:101"},{"name":"offset","nativeSrc":"1637:6:101","nodeType":"YulIdentifier","src":"1637:6:101"}],"functionName":{"name":"add","nativeSrc":"1622:3:101","nodeType":"YulIdentifier","src":"1622:3:101"},"nativeSrc":"1622:22:101","nodeType":"YulFunctionCall","src":"1622:22:101"},{"name":"dataEnd","nativeSrc":"1646:7:101","nodeType":"YulIdentifier","src":"1646:7:101"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1601:20:101","nodeType":"YulIdentifier","src":"1601:20:101"},"nativeSrc":"1601:53:101","nodeType":"YulFunctionCall","src":"1601:53:101"},"variableNames":[{"name":"value1","nativeSrc":"1591:6:101","nodeType":"YulIdentifier","src":"1591:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1197:474:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1242:9:101","nodeType":"YulTypedName","src":"1242:9:101","type":""},{"name":"dataEnd","nativeSrc":"1253:7:101","nodeType":"YulTypedName","src":"1253:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1265:6:101","nodeType":"YulTypedName","src":"1265:6:101","type":""},{"name":"value1","nativeSrc":"1273:6:101","nodeType":"YulTypedName","src":"1273:6:101","type":""}],"src":"1197:474:101"},{"body":{"nativeSrc":"1743:263:101","nodeType":"YulBlock","src":"1743:263:101","statements":[{"body":{"nativeSrc":"1789:83:101","nodeType":"YulBlock","src":"1789:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1791:77:101","nodeType":"YulIdentifier","src":"1791:77:101"},"nativeSrc":"1791:79:101","nodeType":"YulFunctionCall","src":"1791:79:101"},"nativeSrc":"1791:79:101","nodeType":"YulExpressionStatement","src":"1791:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1764:7:101","nodeType":"YulIdentifier","src":"1764:7:101"},{"name":"headStart","nativeSrc":"1773:9:101","nodeType":"YulIdentifier","src":"1773:9:101"}],"functionName":{"name":"sub","nativeSrc":"1760:3:101","nodeType":"YulIdentifier","src":"1760:3:101"},"nativeSrc":"1760:23:101","nodeType":"YulFunctionCall","src":"1760:23:101"},{"kind":"number","nativeSrc":"1785:2:101","nodeType":"YulLiteral","src":"1785:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1756:3:101","nodeType":"YulIdentifier","src":"1756:3:101"},"nativeSrc":"1756:32:101","nodeType":"YulFunctionCall","src":"1756:32:101"},"nativeSrc":"1753:119:101","nodeType":"YulIf","src":"1753:119:101"},{"nativeSrc":"1882:117:101","nodeType":"YulBlock","src":"1882:117:101","statements":[{"nativeSrc":"1897:15:101","nodeType":"YulVariableDeclaration","src":"1897:15:101","value":{"kind":"number","nativeSrc":"1911:1:101","nodeType":"YulLiteral","src":"1911:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1901:6:101","nodeType":"YulTypedName","src":"1901:6:101","type":""}]},{"nativeSrc":"1926:63:101","nodeType":"YulAssignment","src":"1926:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1961:9:101","nodeType":"YulIdentifier","src":"1961:9:101"},{"name":"offset","nativeSrc":"1972:6:101","nodeType":"YulIdentifier","src":"1972:6:101"}],"functionName":{"name":"add","nativeSrc":"1957:3:101","nodeType":"YulIdentifier","src":"1957:3:101"},"nativeSrc":"1957:22:101","nodeType":"YulFunctionCall","src":"1957:22:101"},{"name":"dataEnd","nativeSrc":"1981:7:101","nodeType":"YulIdentifier","src":"1981:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1936:20:101","nodeType":"YulIdentifier","src":"1936:20:101"},"nativeSrc":"1936:53:101","nodeType":"YulFunctionCall","src":"1936:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1926:6:101","nodeType":"YulIdentifier","src":"1926:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1677:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1713:9:101","nodeType":"YulTypedName","src":"1713:9:101","type":""},{"name":"dataEnd","nativeSrc":"1724:7:101","nodeType":"YulTypedName","src":"1724:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1736:6:101","nodeType":"YulTypedName","src":"1736:6:101","type":""}],"src":"1677:329:101"},{"body":{"nativeSrc":"2077:53:101","nodeType":"YulBlock","src":"2077:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2094:3:101","nodeType":"YulIdentifier","src":"2094:3:101"},{"arguments":[{"name":"value","nativeSrc":"2117:5:101","nodeType":"YulIdentifier","src":"2117:5:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2099:17:101","nodeType":"YulIdentifier","src":"2099:17:101"},"nativeSrc":"2099:24:101","nodeType":"YulFunctionCall","src":"2099:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2087:6:101","nodeType":"YulIdentifier","src":"2087:6:101"},"nativeSrc":"2087:37:101","nodeType":"YulFunctionCall","src":"2087:37:101"},"nativeSrc":"2087:37:101","nodeType":"YulExpressionStatement","src":"2087:37:101"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2012:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2065:5:101","nodeType":"YulTypedName","src":"2065:5:101","type":""},{"name":"pos","nativeSrc":"2072:3:101","nodeType":"YulTypedName","src":"2072:3:101","type":""}],"src":"2012:118:101"},{"body":{"nativeSrc":"2234:124:101","nodeType":"YulBlock","src":"2234:124:101","statements":[{"nativeSrc":"2244:26:101","nodeType":"YulAssignment","src":"2244:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"2256:9:101","nodeType":"YulIdentifier","src":"2256:9:101"},{"kind":"number","nativeSrc":"2267:2:101","nodeType":"YulLiteral","src":"2267:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2252:3:101","nodeType":"YulIdentifier","src":"2252:3:101"},"nativeSrc":"2252:18:101","nodeType":"YulFunctionCall","src":"2252:18:101"},"variableNames":[{"name":"tail","nativeSrc":"2244:4:101","nodeType":"YulIdentifier","src":"2244:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2324:6:101","nodeType":"YulIdentifier","src":"2324:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"2337:9:101","nodeType":"YulIdentifier","src":"2337:9:101"},{"kind":"number","nativeSrc":"2348:1:101","nodeType":"YulLiteral","src":"2348:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2333:3:101","nodeType":"YulIdentifier","src":"2333:3:101"},"nativeSrc":"2333:17:101","nodeType":"YulFunctionCall","src":"2333:17:101"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2280:43:101","nodeType":"YulIdentifier","src":"2280:43:101"},"nativeSrc":"2280:71:101","nodeType":"YulFunctionCall","src":"2280:71:101"},"nativeSrc":"2280:71:101","nodeType":"YulExpressionStatement","src":"2280:71:101"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2136:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2206:9:101","nodeType":"YulTypedName","src":"2206:9:101","type":""},{"name":"value0","nativeSrc":"2218:6:101","nodeType":"YulTypedName","src":"2218:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2229:4:101","nodeType":"YulTypedName","src":"2229:4:101","type":""}],"src":"2136:222:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061003e575f3560e01c8062e4768b1461004257806341976e091461006d578063cfed246b146100ab575b5f80fd5b61006b61005036600461010e565b6001600160a01b039091165f90815260208190526040902055565b005b61009561007b366004610148565b6001600160a01b03165f9081526020819052604090205490565b6040516100a2919061016e565b60405180910390f35b6100956100b9366004610148565b5f6020819052908152604090205481565b5f6001600160a01b0382165b92915050565b6100e5816100ca565b81146100ef575f80fd5b50565b80356100d6816100dc565b806100e5565b80356100d6816100fd565b5f8060408385031215610122576101225f80fd5b5f61012d85856100f2565b925050602061013e85828601610103565b9150509250929050565b5f6020828403121561015b5761015b5f80fd5b5f61016684846100f2565b949350505050565b818152602081016100d656fea2646970667358221220f6f452d3be5a0675d070c54cc91893087f6405d75f5f51e4525dca55cf1fc60764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xE4768B EQ PUSH2 0x42 JUMPI DUP1 PUSH4 0x41976E09 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xCFED246B EQ PUSH2 0xAB JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH2 0x50 CALLDATASIZE PUSH1 0x4 PUSH2 0x10E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x148 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x16E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x148 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE5 DUP2 PUSH2 0xCA JUMP JUMPDEST DUP2 EQ PUSH2 0xEF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xD6 DUP2 PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH2 0xE5 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xD6 DUP2 PUSH2 0xFD JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x122 JUMPI PUSH2 0x122 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x12D DUP6 DUP6 PUSH2 0xF2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x13E DUP6 DUP3 DUP7 ADD PUSH2 0x103 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15B JUMPI PUSH2 0x15B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x166 DUP5 DUP5 PUSH2 0xF2 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xD6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF6 DELEGATECALL MSTORE 0xD3 0xBE GAS MOD PUSH22 0xD070C54CC91893087F6405D75F5F51E4525DCA55CF1F 0xC6 SMOD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"114:298:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;315:95;;;;;;:::i;:::-;-1:-1:-1;;;;;381:14:88;;;:6;:14;;;;;;;;;;:22;315:95;;;207:102;;;;;;:::i;:::-;-1:-1:-1;;;;;289:13:88;263:7;289:13;;;;;;;;;;;;207:102;;;;;;;;:::i;:::-;;;;;;;;159:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;466:96:101;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;767:20;;796:33;767:20;796:33;:::i;924:122::-;1015:5;997:24;841:77;1052:139;1123:20;;1152:33;1123:20;1152:33;:::i;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;114:298:88;;;1328:79:101;1448:1;1473:53;1518:7;1498:9;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:329::-;1736:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:119;;;1791:79;114:298:88;;;1791:79:101;1911:1;1936:53;1981:7;1961:9;1936:53;:::i;:::-;1926:63;1677:329;-1:-1:-1;;;;1677:329:101:o;2136:222::-;2087:37;;;2267:2;2252:18;;2280:71;2012:118"},"gasEstimates":{"creation":{"codeDepositCost":"86400","executionCost":"133","totalCost":"86533"},"external":{"getPrice(address)":"infinite","prices(address)":"infinite","setPrice(address,uint256)":"infinite"}},"methodIdentifiers":{"getPrice(address)":"41976e09","prices(address)":"cfed246b","setPrice(address,uint256)":"00e4768b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"prices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/oracles/MockResilientOracle.sol\":\"MockOracle\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"contracts/test/oracles/MockResilientOracle.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../../interfaces/OracleInterface.sol\\\";\\n\\ncontract MockOracle is OracleInterface {\\n    mapping(address => uint256) public prices;\\n\\n    function getPrice(address asset) external view returns (uint256) {\\n        return prices[asset];\\n    }\\n\\n    function setPrice(address vToken, uint256 price) public {\\n        prices[vToken] = price;\\n    }\\n}\\n\",\"keccak256\":\"0x6c1fd55755ac1f7a4e181b74e18484f5ebe07af9c8956b6c8947d499191fb2c7\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8845,"contract":"contracts/test/oracles/MockResilientOracle.sol:MockOracle","label":"prices","offset":0,"slot":"0","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_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor (address initialOwner) {\\n        _transferOwnership(initialOwner);\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8880,"contract":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.","kind":"dev","methods":{"proxiableUUID()":{"details":"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_9028":{"entryPoint":null,"id":9028,"parameterSlots":2,"returnSlots":0},"@_setImplementation_9097":{"entryPoint":274,"id":9097,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9142":{"entryPoint":122,"id":9142,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9112":{"entryPoint":165,"id":9112,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_9958":{"entryPoint":228,"id":9958,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_9993":{"entryPoint":368,"id":9993,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10073":{"entryPoint":null,"id":10073,"parameterSlots":1,"returnSlots":1},"@isContract_9748":{"entryPoint":null,"id":9748,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_10024":{"entryPoint":525,"id":10024,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":774,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":620,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":837,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":879,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1195,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1239,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1021,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1113,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1228,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1288,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1097,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1179,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":695,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":722,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":982,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":582,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":763,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":651,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1001,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":962,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":631,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":598,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8382:101","nodeType":"YulBlock","src":"0:8382:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"934:28:101","nodeType":"YulBlock","src":"934:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:101","nodeType":"YulLiteral","src":"951:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:101","nodeType":"YulLiteral","src":"954:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:101","nodeType":"YulIdentifier","src":"944:6:101"},"nativeSrc":"944:12:101","nodeType":"YulFunctionCall","src":"944:12:101"},"nativeSrc":"944:12:101","nodeType":"YulExpressionStatement","src":"944:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:101","nodeType":"YulFunctionDefinition","src":"845:117:101"},{"body":{"nativeSrc":"1057:28:101","nodeType":"YulBlock","src":"1057:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:101","nodeType":"YulLiteral","src":"1074:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:101","nodeType":"YulLiteral","src":"1077:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:101","nodeType":"YulIdentifier","src":"1067:6:101"},"nativeSrc":"1067:12:101","nodeType":"YulFunctionCall","src":"1067:12:101"},"nativeSrc":"1067:12:101","nodeType":"YulExpressionStatement","src":"1067:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:101","nodeType":"YulFunctionDefinition","src":"968:117:101"},{"body":{"nativeSrc":"1139:54:101","nodeType":"YulBlock","src":"1139:54:101","statements":[{"nativeSrc":"1149:38:101","nodeType":"YulAssignment","src":"1149:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:101","nodeType":"YulIdentifier","src":"1167:5:101"},{"kind":"number","nativeSrc":"1174:2:101","nodeType":"YulLiteral","src":"1174:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:101","nodeType":"YulIdentifier","src":"1163:3:101"},"nativeSrc":"1163:14:101","nodeType":"YulFunctionCall","src":"1163:14:101"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:101","nodeType":"YulLiteral","src":"1183:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:101","nodeType":"YulIdentifier","src":"1179:3:101"},"nativeSrc":"1179:7:101","nodeType":"YulFunctionCall","src":"1179:7:101"}],"functionName":{"name":"and","nativeSrc":"1159:3:101","nodeType":"YulIdentifier","src":"1159:3:101"},"nativeSrc":"1159:28:101","nodeType":"YulFunctionCall","src":"1159:28:101"},"variableNames":[{"name":"result","nativeSrc":"1149:6:101","nodeType":"YulIdentifier","src":"1149:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:101","nodeType":"YulTypedName","src":"1122:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:101","nodeType":"YulTypedName","src":"1132:6:101","type":""}],"src":"1091:102:101"},{"body":{"nativeSrc":"1227:152:101","nodeType":"YulBlock","src":"1227:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:101","nodeType":"YulLiteral","src":"1244:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:101","nodeType":"YulLiteral","src":"1247:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:101","nodeType":"YulIdentifier","src":"1237:6:101"},"nativeSrc":"1237:88:101","nodeType":"YulFunctionCall","src":"1237:88:101"},"nativeSrc":"1237:88:101","nodeType":"YulExpressionStatement","src":"1237:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:101","nodeType":"YulLiteral","src":"1344:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:101","nodeType":"YulIdentifier","src":"1334:6:101"},"nativeSrc":"1334:15:101","nodeType":"YulFunctionCall","src":"1334:15:101"},"nativeSrc":"1334:15:101","nodeType":"YulExpressionStatement","src":"1334:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:101","nodeType":"YulLiteral","src":"1365:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:101","nodeType":"YulLiteral","src":"1368:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:101","nodeType":"YulIdentifier","src":"1358:6:101"},"nativeSrc":"1358:15:101","nodeType":"YulFunctionCall","src":"1358:15:101"},"nativeSrc":"1358:15:101","nodeType":"YulExpressionStatement","src":"1358:15:101"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:101","nodeType":"YulFunctionDefinition","src":"1199:180:101"},{"body":{"nativeSrc":"1428:238:101","nodeType":"YulBlock","src":"1428:238:101","statements":[{"nativeSrc":"1438:58:101","nodeType":"YulVariableDeclaration","src":"1438:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:101","nodeType":"YulIdentifier","src":"1460:6:101"},{"arguments":[{"name":"size","nativeSrc":"1490:4:101","nodeType":"YulIdentifier","src":"1490:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:101","nodeType":"YulIdentifier","src":"1468:21:101"},"nativeSrc":"1468:27:101","nodeType":"YulFunctionCall","src":"1468:27:101"}],"functionName":{"name":"add","nativeSrc":"1456:3:101","nodeType":"YulIdentifier","src":"1456:3:101"},"nativeSrc":"1456:40:101","nodeType":"YulFunctionCall","src":"1456:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:101","nodeType":"YulTypedName","src":"1442:10:101","type":""}]},{"body":{"nativeSrc":"1607:22:101","nodeType":"YulBlock","src":"1607:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:101","nodeType":"YulIdentifier","src":"1609:16:101"},"nativeSrc":"1609:18:101","nodeType":"YulFunctionCall","src":"1609:18:101"},"nativeSrc":"1609:18:101","nodeType":"YulExpressionStatement","src":"1609:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:101","nodeType":"YulIdentifier","src":"1550:10:101"},{"kind":"number","nativeSrc":"1562:18:101","nodeType":"YulLiteral","src":"1562:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:101","nodeType":"YulIdentifier","src":"1547:2:101"},"nativeSrc":"1547:34:101","nodeType":"YulFunctionCall","src":"1547:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:101","nodeType":"YulIdentifier","src":"1586:10:101"},{"name":"memPtr","nativeSrc":"1598:6:101","nodeType":"YulIdentifier","src":"1598:6:101"}],"functionName":{"name":"lt","nativeSrc":"1583:2:101","nodeType":"YulIdentifier","src":"1583:2:101"},"nativeSrc":"1583:22:101","nodeType":"YulFunctionCall","src":"1583:22:101"}],"functionName":{"name":"or","nativeSrc":"1544:2:101","nodeType":"YulIdentifier","src":"1544:2:101"},"nativeSrc":"1544:62:101","nodeType":"YulFunctionCall","src":"1544:62:101"},"nativeSrc":"1541:88:101","nodeType":"YulIf","src":"1541:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:101","nodeType":"YulLiteral","src":"1645:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:101","nodeType":"YulIdentifier","src":"1649:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:101","nodeType":"YulIdentifier","src":"1638:6:101"},"nativeSrc":"1638:22:101","nodeType":"YulFunctionCall","src":"1638:22:101"},"nativeSrc":"1638:22:101","nodeType":"YulExpressionStatement","src":"1638:22:101"}]},"name":"finalize_allocation","nativeSrc":"1385:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:101","nodeType":"YulTypedName","src":"1414:6:101","type":""},{"name":"size","nativeSrc":"1422:4:101","nodeType":"YulTypedName","src":"1422:4:101","type":""}],"src":"1385:281:101"},{"body":{"nativeSrc":"1713:88:101","nodeType":"YulBlock","src":"1713:88:101","statements":[{"nativeSrc":"1723:30:101","nodeType":"YulAssignment","src":"1723:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:101","nodeType":"YulIdentifier","src":"1733:18:101"},"nativeSrc":"1733:20:101","nodeType":"YulFunctionCall","src":"1733:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:101","nodeType":"YulIdentifier","src":"1723:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:101","nodeType":"YulIdentifier","src":"1782:6:101"},{"name":"size","nativeSrc":"1790:4:101","nodeType":"YulIdentifier","src":"1790:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:101","nodeType":"YulIdentifier","src":"1762:19:101"},"nativeSrc":"1762:33:101","nodeType":"YulFunctionCall","src":"1762:33:101"},"nativeSrc":"1762:33:101","nodeType":"YulExpressionStatement","src":"1762:33:101"}]},"name":"allocate_memory","nativeSrc":"1672:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:101","nodeType":"YulTypedName","src":"1697:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:101","nodeType":"YulTypedName","src":"1706:6:101","type":""}],"src":"1672:129:101"},{"body":{"nativeSrc":"1873:241:101","nodeType":"YulBlock","src":"1873:241:101","statements":[{"body":{"nativeSrc":"1978:22:101","nodeType":"YulBlock","src":"1978:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:101","nodeType":"YulIdentifier","src":"1980:16:101"},"nativeSrc":"1980:18:101","nodeType":"YulFunctionCall","src":"1980:18:101"},"nativeSrc":"1980:18:101","nodeType":"YulExpressionStatement","src":"1980:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:101","nodeType":"YulIdentifier","src":"1950:6:101"},{"kind":"number","nativeSrc":"1958:18:101","nodeType":"YulLiteral","src":"1958:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:101","nodeType":"YulIdentifier","src":"1947:2:101"},"nativeSrc":"1947:30:101","nodeType":"YulFunctionCall","src":"1947:30:101"},"nativeSrc":"1944:56:101","nodeType":"YulIf","src":"1944:56:101"},{"nativeSrc":"2010:37:101","nodeType":"YulAssignment","src":"2010:37:101","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:101","nodeType":"YulIdentifier","src":"2040:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:101","nodeType":"YulIdentifier","src":"2018:21:101"},"nativeSrc":"2018:29:101","nodeType":"YulFunctionCall","src":"2018:29:101"},"variableNames":[{"name":"size","nativeSrc":"2010:4:101","nodeType":"YulIdentifier","src":"2010:4:101"}]},{"nativeSrc":"2084:23:101","nodeType":"YulAssignment","src":"2084:23:101","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:101","nodeType":"YulIdentifier","src":"2096:4:101"},{"kind":"number","nativeSrc":"2102:4:101","nodeType":"YulLiteral","src":"2102:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:101","nodeType":"YulIdentifier","src":"2092:3:101"},"nativeSrc":"2092:15:101","nodeType":"YulFunctionCall","src":"2092:15:101"},"variableNames":[{"name":"size","nativeSrc":"2084:4:101","nodeType":"YulIdentifier","src":"2084:4:101"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:101","nodeType":"YulTypedName","src":"1857:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:101","nodeType":"YulTypedName","src":"1868:4:101","type":""}],"src":"1807:307:101"},{"body":{"nativeSrc":"2182:77:101","nodeType":"YulBlock","src":"2182:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2199:3:101","nodeType":"YulIdentifier","src":"2199:3:101"},{"name":"src","nativeSrc":"2204:3:101","nodeType":"YulIdentifier","src":"2204:3:101"},{"name":"length","nativeSrc":"2209:6:101","nodeType":"YulIdentifier","src":"2209:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"2193:5:101","nodeType":"YulIdentifier","src":"2193:5:101"},"nativeSrc":"2193:23:101","nodeType":"YulFunctionCall","src":"2193:23:101"},"nativeSrc":"2193:23:101","nodeType":"YulExpressionStatement","src":"2193:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2236:3:101","nodeType":"YulIdentifier","src":"2236:3:101"},{"name":"length","nativeSrc":"2241:6:101","nodeType":"YulIdentifier","src":"2241:6:101"}],"functionName":{"name":"add","nativeSrc":"2232:3:101","nodeType":"YulIdentifier","src":"2232:3:101"},"nativeSrc":"2232:16:101","nodeType":"YulFunctionCall","src":"2232:16:101"},{"kind":"number","nativeSrc":"2250:1:101","nodeType":"YulLiteral","src":"2250:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:101","nodeType":"YulIdentifier","src":"2225:6:101"},"nativeSrc":"2225:27:101","nodeType":"YulFunctionCall","src":"2225:27:101"},"nativeSrc":"2225:27:101","nodeType":"YulExpressionStatement","src":"2225:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:101","nodeType":"YulTypedName","src":"2164:3:101","type":""},{"name":"dst","nativeSrc":"2169:3:101","nodeType":"YulTypedName","src":"2169:3:101","type":""},{"name":"length","nativeSrc":"2174:6:101","nodeType":"YulTypedName","src":"2174:6:101","type":""}],"src":"2120:139:101"},{"body":{"nativeSrc":"2359:338:101","nodeType":"YulBlock","src":"2359:338:101","statements":[{"nativeSrc":"2369:74:101","nodeType":"YulAssignment","src":"2369:74:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2435:6:101","nodeType":"YulIdentifier","src":"2435:6:101"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2394:40:101","nodeType":"YulIdentifier","src":"2394:40:101"},"nativeSrc":"2394:48:101","nodeType":"YulFunctionCall","src":"2394:48:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"2378:15:101","nodeType":"YulIdentifier","src":"2378:15:101"},"nativeSrc":"2378:65:101","nodeType":"YulFunctionCall","src":"2378:65:101"},"variableNames":[{"name":"array","nativeSrc":"2369:5:101","nodeType":"YulIdentifier","src":"2369:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"},{"name":"length","nativeSrc":"2466:6:101","nodeType":"YulIdentifier","src":"2466:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2452:6:101","nodeType":"YulIdentifier","src":"2452:6:101"},"nativeSrc":"2452:21:101","nodeType":"YulFunctionCall","src":"2452:21:101"},"nativeSrc":"2452:21:101","nodeType":"YulExpressionStatement","src":"2452:21:101"},{"nativeSrc":"2482:27:101","nodeType":"YulVariableDeclaration","src":"2482:27:101","value":{"arguments":[{"name":"array","nativeSrc":"2497:5:101","nodeType":"YulIdentifier","src":"2497:5:101"},{"kind":"number","nativeSrc":"2504:4:101","nodeType":"YulLiteral","src":"2504:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2493:3:101","nodeType":"YulIdentifier","src":"2493:3:101"},"nativeSrc":"2493:16:101","nodeType":"YulFunctionCall","src":"2493:16:101"},"variables":[{"name":"dst","nativeSrc":"2486:3:101","nodeType":"YulTypedName","src":"2486:3:101","type":""}]},{"body":{"nativeSrc":"2547:83:101","nodeType":"YulBlock","src":"2547:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2549:77:101","nodeType":"YulIdentifier","src":"2549:77:101"},"nativeSrc":"2549:79:101","nodeType":"YulFunctionCall","src":"2549:79:101"},"nativeSrc":"2549:79:101","nodeType":"YulExpressionStatement","src":"2549:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},{"name":"length","nativeSrc":"2533:6:101","nodeType":"YulIdentifier","src":"2533:6:101"}],"functionName":{"name":"add","nativeSrc":"2524:3:101","nodeType":"YulIdentifier","src":"2524:3:101"},"nativeSrc":"2524:16:101","nodeType":"YulFunctionCall","src":"2524:16:101"},{"name":"end","nativeSrc":"2542:3:101","nodeType":"YulIdentifier","src":"2542:3:101"}],"functionName":{"name":"gt","nativeSrc":"2521:2:101","nodeType":"YulIdentifier","src":"2521:2:101"},"nativeSrc":"2521:25:101","nodeType":"YulFunctionCall","src":"2521:25:101"},"nativeSrc":"2518:112:101","nodeType":"YulIf","src":"2518:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2674:3:101","nodeType":"YulIdentifier","src":"2674:3:101"},{"name":"dst","nativeSrc":"2679:3:101","nodeType":"YulIdentifier","src":"2679:3:101"},{"name":"length","nativeSrc":"2684:6:101","nodeType":"YulIdentifier","src":"2684:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2639:34:101","nodeType":"YulIdentifier","src":"2639:34:101"},"nativeSrc":"2639:52:101","nodeType":"YulFunctionCall","src":"2639:52:101"},"nativeSrc":"2639:52:101","nodeType":"YulExpressionStatement","src":"2639:52:101"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2265:432:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2332:3:101","nodeType":"YulTypedName","src":"2332:3:101","type":""},{"name":"length","nativeSrc":"2337:6:101","nodeType":"YulTypedName","src":"2337:6:101","type":""},{"name":"end","nativeSrc":"2345:3:101","nodeType":"YulTypedName","src":"2345:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2353:5:101","nodeType":"YulTypedName","src":"2353:5:101","type":""}],"src":"2265:432:101"},{"body":{"nativeSrc":"2788:281:101","nodeType":"YulBlock","src":"2788:281:101","statements":[{"body":{"nativeSrc":"2837:83:101","nodeType":"YulBlock","src":"2837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2839:77:101","nodeType":"YulIdentifier","src":"2839:77:101"},"nativeSrc":"2839:79:101","nodeType":"YulFunctionCall","src":"2839:79:101"},"nativeSrc":"2839:79:101","nodeType":"YulExpressionStatement","src":"2839:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2816:6:101","nodeType":"YulIdentifier","src":"2816:6:101"},{"kind":"number","nativeSrc":"2824:4:101","nodeType":"YulLiteral","src":"2824:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2812:3:101","nodeType":"YulIdentifier","src":"2812:3:101"},"nativeSrc":"2812:17:101","nodeType":"YulFunctionCall","src":"2812:17:101"},{"name":"end","nativeSrc":"2831:3:101","nodeType":"YulIdentifier","src":"2831:3:101"}],"functionName":{"name":"slt","nativeSrc":"2808:3:101","nodeType":"YulIdentifier","src":"2808:3:101"},"nativeSrc":"2808:27:101","nodeType":"YulFunctionCall","src":"2808:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2801:6:101","nodeType":"YulIdentifier","src":"2801:6:101"},"nativeSrc":"2801:35:101","nodeType":"YulFunctionCall","src":"2801:35:101"},"nativeSrc":"2798:122:101","nodeType":"YulIf","src":"2798:122:101"},{"nativeSrc":"2929:27:101","nodeType":"YulVariableDeclaration","src":"2929:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2949:6:101","nodeType":"YulIdentifier","src":"2949:6:101"}],"functionName":{"name":"mload","nativeSrc":"2943:5:101","nodeType":"YulIdentifier","src":"2943:5:101"},"nativeSrc":"2943:13:101","nodeType":"YulFunctionCall","src":"2943:13:101"},"variables":[{"name":"length","nativeSrc":"2933:6:101","nodeType":"YulTypedName","src":"2933:6:101","type":""}]},{"nativeSrc":"2965:98:101","nodeType":"YulAssignment","src":"2965:98:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3036:6:101","nodeType":"YulIdentifier","src":"3036:6:101"},{"kind":"number","nativeSrc":"3044:4:101","nodeType":"YulLiteral","src":"3044:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:101","nodeType":"YulIdentifier","src":"3032:3:101"},"nativeSrc":"3032:17:101","nodeType":"YulFunctionCall","src":"3032:17:101"},{"name":"length","nativeSrc":"3051:6:101","nodeType":"YulIdentifier","src":"3051:6:101"},{"name":"end","nativeSrc":"3059:3:101","nodeType":"YulIdentifier","src":"3059:3:101"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2974:57:101","nodeType":"YulIdentifier","src":"2974:57:101"},"nativeSrc":"2974:89:101","nodeType":"YulFunctionCall","src":"2974:89:101"},"variableNames":[{"name":"array","nativeSrc":"2965:5:101","nodeType":"YulIdentifier","src":"2965:5:101"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2716:353:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2766:6:101","nodeType":"YulTypedName","src":"2766:6:101","type":""},{"name":"end","nativeSrc":"2774:3:101","nodeType":"YulTypedName","src":"2774:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2782:5:101","nodeType":"YulTypedName","src":"2782:5:101","type":""}],"src":"2716:353:101"},{"body":{"nativeSrc":"3178:575:101","nodeType":"YulBlock","src":"3178:575:101","statements":[{"body":{"nativeSrc":"3224:83:101","nodeType":"YulBlock","src":"3224:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3226:77:101","nodeType":"YulIdentifier","src":"3226:77:101"},"nativeSrc":"3226:79:101","nodeType":"YulFunctionCall","src":"3226:79:101"},"nativeSrc":"3226:79:101","nodeType":"YulExpressionStatement","src":"3226:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3199:7:101","nodeType":"YulIdentifier","src":"3199:7:101"},{"name":"headStart","nativeSrc":"3208:9:101","nodeType":"YulIdentifier","src":"3208:9:101"}],"functionName":{"name":"sub","nativeSrc":"3195:3:101","nodeType":"YulIdentifier","src":"3195:3:101"},"nativeSrc":"3195:23:101","nodeType":"YulFunctionCall","src":"3195:23:101"},{"kind":"number","nativeSrc":"3220:2:101","nodeType":"YulLiteral","src":"3220:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3191:3:101","nodeType":"YulIdentifier","src":"3191:3:101"},"nativeSrc":"3191:32:101","nodeType":"YulFunctionCall","src":"3191:32:101"},"nativeSrc":"3188:119:101","nodeType":"YulIf","src":"3188:119:101"},{"nativeSrc":"3317:128:101","nodeType":"YulBlock","src":"3317:128:101","statements":[{"nativeSrc":"3332:15:101","nodeType":"YulVariableDeclaration","src":"3332:15:101","value":{"kind":"number","nativeSrc":"3346:1:101","nodeType":"YulLiteral","src":"3346:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3336:6:101","nodeType":"YulTypedName","src":"3336:6:101","type":""}]},{"nativeSrc":"3361:74:101","nodeType":"YulAssignment","src":"3361:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3407:9:101","nodeType":"YulIdentifier","src":"3407:9:101"},{"name":"offset","nativeSrc":"3418:6:101","nodeType":"YulIdentifier","src":"3418:6:101"}],"functionName":{"name":"add","nativeSrc":"3403:3:101","nodeType":"YulIdentifier","src":"3403:3:101"},"nativeSrc":"3403:22:101","nodeType":"YulFunctionCall","src":"3403:22:101"},{"name":"dataEnd","nativeSrc":"3427:7:101","nodeType":"YulIdentifier","src":"3427:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3371:31:101","nodeType":"YulIdentifier","src":"3371:31:101"},"nativeSrc":"3371:64:101","nodeType":"YulFunctionCall","src":"3371:64:101"},"variableNames":[{"name":"value0","nativeSrc":"3361:6:101","nodeType":"YulIdentifier","src":"3361:6:101"}]}]},{"nativeSrc":"3455:291:101","nodeType":"YulBlock","src":"3455:291:101","statements":[{"nativeSrc":"3470:39:101","nodeType":"YulVariableDeclaration","src":"3470:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3494:9:101","nodeType":"YulIdentifier","src":"3494:9:101"},{"kind":"number","nativeSrc":"3505:2:101","nodeType":"YulLiteral","src":"3505:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3490:3:101","nodeType":"YulIdentifier","src":"3490:3:101"},"nativeSrc":"3490:18:101","nodeType":"YulFunctionCall","src":"3490:18:101"}],"functionName":{"name":"mload","nativeSrc":"3484:5:101","nodeType":"YulIdentifier","src":"3484:5:101"},"nativeSrc":"3484:25:101","nodeType":"YulFunctionCall","src":"3484:25:101"},"variables":[{"name":"offset","nativeSrc":"3474:6:101","nodeType":"YulTypedName","src":"3474:6:101","type":""}]},{"body":{"nativeSrc":"3556:83:101","nodeType":"YulBlock","src":"3556:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3558:77:101","nodeType":"YulIdentifier","src":"3558:77:101"},"nativeSrc":"3558:79:101","nodeType":"YulFunctionCall","src":"3558:79:101"},"nativeSrc":"3558:79:101","nodeType":"YulExpressionStatement","src":"3558:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3528:6:101","nodeType":"YulIdentifier","src":"3528:6:101"},{"kind":"number","nativeSrc":"3536:18:101","nodeType":"YulLiteral","src":"3536:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3525:2:101","nodeType":"YulIdentifier","src":"3525:2:101"},"nativeSrc":"3525:30:101","nodeType":"YulFunctionCall","src":"3525:30:101"},"nativeSrc":"3522:117:101","nodeType":"YulIf","src":"3522:117:101"},{"nativeSrc":"3653:83:101","nodeType":"YulAssignment","src":"3653:83:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3708:9:101","nodeType":"YulIdentifier","src":"3708:9:101"},{"name":"offset","nativeSrc":"3719:6:101","nodeType":"YulIdentifier","src":"3719:6:101"}],"functionName":{"name":"add","nativeSrc":"3704:3:101","nodeType":"YulIdentifier","src":"3704:3:101"},"nativeSrc":"3704:22:101","nodeType":"YulFunctionCall","src":"3704:22:101"},{"name":"dataEnd","nativeSrc":"3728:7:101","nodeType":"YulIdentifier","src":"3728:7:101"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3663:40:101","nodeType":"YulIdentifier","src":"3663:40:101"},"nativeSrc":"3663:73:101","nodeType":"YulFunctionCall","src":"3663:73:101"},"variableNames":[{"name":"value1","nativeSrc":"3653:6:101","nodeType":"YulIdentifier","src":"3653:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3075:678:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3140:9:101","nodeType":"YulTypedName","src":"3140:9:101","type":""},{"name":"dataEnd","nativeSrc":"3151:7:101","nodeType":"YulTypedName","src":"3151:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3163:6:101","nodeType":"YulTypedName","src":"3163:6:101","type":""},{"name":"value1","nativeSrc":"3171:6:101","nodeType":"YulTypedName","src":"3171:6:101","type":""}],"src":"3075:678:101"},{"body":{"nativeSrc":"3804:32:101","nodeType":"YulBlock","src":"3804:32:101","statements":[{"nativeSrc":"3814:16:101","nodeType":"YulAssignment","src":"3814:16:101","value":{"name":"value","nativeSrc":"3825:5:101","nodeType":"YulIdentifier","src":"3825:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3814:7:101","nodeType":"YulIdentifier","src":"3814:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3759:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3786:5:101","nodeType":"YulTypedName","src":"3786:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3796:7:101","nodeType":"YulTypedName","src":"3796:7:101","type":""}],"src":"3759:77:101"},{"body":{"nativeSrc":"3870:152:101","nodeType":"YulBlock","src":"3870:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3887:1:101","nodeType":"YulLiteral","src":"3887:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3890:77:101","nodeType":"YulLiteral","src":"3890:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3880:6:101","nodeType":"YulIdentifier","src":"3880:6:101"},"nativeSrc":"3880:88:101","nodeType":"YulFunctionCall","src":"3880:88:101"},"nativeSrc":"3880:88:101","nodeType":"YulExpressionStatement","src":"3880:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3984:1:101","nodeType":"YulLiteral","src":"3984:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3987:4:101","nodeType":"YulLiteral","src":"3987:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3977:6:101","nodeType":"YulIdentifier","src":"3977:6:101"},"nativeSrc":"3977:15:101","nodeType":"YulFunctionCall","src":"3977:15:101"},"nativeSrc":"3977:15:101","nodeType":"YulExpressionStatement","src":"3977:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4008:1:101","nodeType":"YulLiteral","src":"4008:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4011:4:101","nodeType":"YulLiteral","src":"4011:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4001:6:101","nodeType":"YulIdentifier","src":"4001:6:101"},"nativeSrc":"4001:15:101","nodeType":"YulFunctionCall","src":"4001:15:101"},"nativeSrc":"4001:15:101","nodeType":"YulExpressionStatement","src":"4001:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3842:180:101","nodeType":"YulFunctionDefinition","src":"3842:180:101"},{"body":{"nativeSrc":"4073:149:101","nodeType":"YulBlock","src":"4073:149:101","statements":[{"nativeSrc":"4083:25:101","nodeType":"YulAssignment","src":"4083:25:101","value":{"arguments":[{"name":"x","nativeSrc":"4106:1:101","nodeType":"YulIdentifier","src":"4106:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4088:17:101","nodeType":"YulIdentifier","src":"4088:17:101"},"nativeSrc":"4088:20:101","nodeType":"YulFunctionCall","src":"4088:20:101"},"variableNames":[{"name":"x","nativeSrc":"4083:1:101","nodeType":"YulIdentifier","src":"4083:1:101"}]},{"nativeSrc":"4117:25:101","nodeType":"YulAssignment","src":"4117:25:101","value":{"arguments":[{"name":"y","nativeSrc":"4140:1:101","nodeType":"YulIdentifier","src":"4140:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4122:17:101","nodeType":"YulIdentifier","src":"4122:17:101"},"nativeSrc":"4122:20:101","nodeType":"YulFunctionCall","src":"4122:20:101"},"variableNames":[{"name":"y","nativeSrc":"4117:1:101","nodeType":"YulIdentifier","src":"4117:1:101"}]},{"nativeSrc":"4151:17:101","nodeType":"YulAssignment","src":"4151:17:101","value":{"arguments":[{"name":"x","nativeSrc":"4163:1:101","nodeType":"YulIdentifier","src":"4163:1:101"},{"name":"y","nativeSrc":"4166:1:101","nodeType":"YulIdentifier","src":"4166:1:101"}],"functionName":{"name":"sub","nativeSrc":"4159:3:101","nodeType":"YulIdentifier","src":"4159:3:101"},"nativeSrc":"4159:9:101","nodeType":"YulFunctionCall","src":"4159:9:101"},"variableNames":[{"name":"diff","nativeSrc":"4151:4:101","nodeType":"YulIdentifier","src":"4151:4:101"}]},{"body":{"nativeSrc":"4193:22:101","nodeType":"YulBlock","src":"4193:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4195:16:101","nodeType":"YulIdentifier","src":"4195:16:101"},"nativeSrc":"4195:18:101","nodeType":"YulFunctionCall","src":"4195:18:101"},"nativeSrc":"4195:18:101","nodeType":"YulExpressionStatement","src":"4195:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4184:4:101","nodeType":"YulIdentifier","src":"4184:4:101"},{"name":"x","nativeSrc":"4190:1:101","nodeType":"YulIdentifier","src":"4190:1:101"}],"functionName":{"name":"gt","nativeSrc":"4181:2:101","nodeType":"YulIdentifier","src":"4181:2:101"},"nativeSrc":"4181:11:101","nodeType":"YulFunctionCall","src":"4181:11:101"},"nativeSrc":"4178:37:101","nodeType":"YulIf","src":"4178:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"4028:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4059:1:101","nodeType":"YulTypedName","src":"4059:1:101","type":""},{"name":"y","nativeSrc":"4062:1:101","nodeType":"YulTypedName","src":"4062:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4068:4:101","nodeType":"YulTypedName","src":"4068:4:101","type":""}],"src":"4028:194:101"},{"body":{"nativeSrc":"4256:152:101","nodeType":"YulBlock","src":"4256:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4273:1:101","nodeType":"YulLiteral","src":"4273:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4276:77:101","nodeType":"YulLiteral","src":"4276:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4266:6:101","nodeType":"YulIdentifier","src":"4266:6:101"},"nativeSrc":"4266:88:101","nodeType":"YulFunctionCall","src":"4266:88:101"},"nativeSrc":"4266:88:101","nodeType":"YulExpressionStatement","src":"4266:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4370:1:101","nodeType":"YulLiteral","src":"4370:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4373:4:101","nodeType":"YulLiteral","src":"4373:4:101","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4363:6:101","nodeType":"YulIdentifier","src":"4363:6:101"},"nativeSrc":"4363:15:101","nodeType":"YulFunctionCall","src":"4363:15:101"},"nativeSrc":"4363:15:101","nodeType":"YulExpressionStatement","src":"4363:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4394:1:101","nodeType":"YulLiteral","src":"4394:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4397:4:101","nodeType":"YulLiteral","src":"4397:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4387:6:101","nodeType":"YulIdentifier","src":"4387:6:101"},"nativeSrc":"4387:15:101","nodeType":"YulFunctionCall","src":"4387:15:101"},"nativeSrc":"4387:15:101","nodeType":"YulExpressionStatement","src":"4387:15:101"}]},"name":"panic_error_0x01","nativeSrc":"4228:180:101","nodeType":"YulFunctionDefinition","src":"4228:180:101"},{"body":{"nativeSrc":"4510:73:101","nodeType":"YulBlock","src":"4510:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4527:3:101","nodeType":"YulIdentifier","src":"4527:3:101"},{"name":"length","nativeSrc":"4532:6:101","nodeType":"YulIdentifier","src":"4532:6:101"}],"functionName":{"name":"mstore","nativeSrc":"4520:6:101","nodeType":"YulIdentifier","src":"4520:6:101"},"nativeSrc":"4520:19:101","nodeType":"YulFunctionCall","src":"4520:19:101"},"nativeSrc":"4520:19:101","nodeType":"YulExpressionStatement","src":"4520:19:101"},{"nativeSrc":"4548:29:101","nodeType":"YulAssignment","src":"4548:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"4567:3:101","nodeType":"YulIdentifier","src":"4567:3:101"},{"kind":"number","nativeSrc":"4572:4:101","nodeType":"YulLiteral","src":"4572:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4563:3:101","nodeType":"YulIdentifier","src":"4563:3:101"},"nativeSrc":"4563:14:101","nodeType":"YulFunctionCall","src":"4563:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"4548:11:101","nodeType":"YulIdentifier","src":"4548:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4414:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4482:3:101","nodeType":"YulTypedName","src":"4482:3:101","type":""},{"name":"length","nativeSrc":"4487:6:101","nodeType":"YulTypedName","src":"4487:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4498:11:101","nodeType":"YulTypedName","src":"4498:11:101","type":""}],"src":"4414:169:101"},{"body":{"nativeSrc":"4695:126:101","nodeType":"YulBlock","src":"4695:126:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4717:6:101","nodeType":"YulIdentifier","src":"4717:6:101"},{"kind":"number","nativeSrc":"4725:1:101","nodeType":"YulLiteral","src":"4725:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4713:3:101","nodeType":"YulIdentifier","src":"4713:3:101"},"nativeSrc":"4713:14:101","nodeType":"YulFunctionCall","src":"4713:14:101"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"4729:34:101","nodeType":"YulLiteral","src":"4729:34:101","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"4706:6:101","nodeType":"YulIdentifier","src":"4706:6:101"},"nativeSrc":"4706:58:101","nodeType":"YulFunctionCall","src":"4706:58:101"},"nativeSrc":"4706:58:101","nodeType":"YulExpressionStatement","src":"4706:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4785:6:101","nodeType":"YulIdentifier","src":"4785:6:101"},{"kind":"number","nativeSrc":"4793:2:101","nodeType":"YulLiteral","src":"4793:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4781:3:101","nodeType":"YulIdentifier","src":"4781:3:101"},"nativeSrc":"4781:15:101","nodeType":"YulFunctionCall","src":"4781:15:101"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"4798:15:101","nodeType":"YulLiteral","src":"4798:15:101","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"4774:6:101","nodeType":"YulIdentifier","src":"4774:6:101"},"nativeSrc":"4774:40:101","nodeType":"YulFunctionCall","src":"4774:40:101"},"nativeSrc":"4774:40:101","nodeType":"YulExpressionStatement","src":"4774:40:101"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4589:232:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4687:6:101","nodeType":"YulTypedName","src":"4687:6:101","type":""}],"src":"4589:232:101"},{"body":{"nativeSrc":"4973:220:101","nodeType":"YulBlock","src":"4973:220:101","statements":[{"nativeSrc":"4983:74:101","nodeType":"YulAssignment","src":"4983:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5049:3:101","nodeType":"YulIdentifier","src":"5049:3:101"},{"kind":"number","nativeSrc":"5054:2:101","nodeType":"YulLiteral","src":"5054:2:101","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4990:58:101","nodeType":"YulIdentifier","src":"4990:58:101"},"nativeSrc":"4990:67:101","nodeType":"YulFunctionCall","src":"4990:67:101"},"variableNames":[{"name":"pos","nativeSrc":"4983:3:101","nodeType":"YulIdentifier","src":"4983:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5155:3:101","nodeType":"YulIdentifier","src":"5155:3:101"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5066:88:101","nodeType":"YulIdentifier","src":"5066:88:101"},"nativeSrc":"5066:93:101","nodeType":"YulFunctionCall","src":"5066:93:101"},"nativeSrc":"5066:93:101","nodeType":"YulExpressionStatement","src":"5066:93:101"},{"nativeSrc":"5168:19:101","nodeType":"YulAssignment","src":"5168:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5179:3:101","nodeType":"YulIdentifier","src":"5179:3:101"},{"kind":"number","nativeSrc":"5184:2:101","nodeType":"YulLiteral","src":"5184:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5175:3:101","nodeType":"YulIdentifier","src":"5175:3:101"},"nativeSrc":"5175:12:101","nodeType":"YulFunctionCall","src":"5175:12:101"},"variableNames":[{"name":"end","nativeSrc":"5168:3:101","nodeType":"YulIdentifier","src":"5168:3:101"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"4827:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4961:3:101","nodeType":"YulTypedName","src":"4961:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4969:3:101","nodeType":"YulTypedName","src":"4969:3:101","type":""}],"src":"4827:366:101"},{"body":{"nativeSrc":"5370:248:101","nodeType":"YulBlock","src":"5370:248:101","statements":[{"nativeSrc":"5380:26:101","nodeType":"YulAssignment","src":"5380:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5392:9:101","nodeType":"YulIdentifier","src":"5392:9:101"},{"kind":"number","nativeSrc":"5403:2:101","nodeType":"YulLiteral","src":"5403:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5388:3:101","nodeType":"YulIdentifier","src":"5388:3:101"},"nativeSrc":"5388:18:101","nodeType":"YulFunctionCall","src":"5388:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5380:4:101","nodeType":"YulIdentifier","src":"5380:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5427:9:101","nodeType":"YulIdentifier","src":"5427:9:101"},{"kind":"number","nativeSrc":"5438:1:101","nodeType":"YulLiteral","src":"5438:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5423:3:101","nodeType":"YulIdentifier","src":"5423:3:101"},"nativeSrc":"5423:17:101","nodeType":"YulFunctionCall","src":"5423:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5446:4:101","nodeType":"YulIdentifier","src":"5446:4:101"},{"name":"headStart","nativeSrc":"5452:9:101","nodeType":"YulIdentifier","src":"5452:9:101"}],"functionName":{"name":"sub","nativeSrc":"5442:3:101","nodeType":"YulIdentifier","src":"5442:3:101"},"nativeSrc":"5442:20:101","nodeType":"YulFunctionCall","src":"5442:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5416:6:101","nodeType":"YulIdentifier","src":"5416:6:101"},"nativeSrc":"5416:47:101","nodeType":"YulFunctionCall","src":"5416:47:101"},"nativeSrc":"5416:47:101","nodeType":"YulExpressionStatement","src":"5416:47:101"},{"nativeSrc":"5472:139:101","nodeType":"YulAssignment","src":"5472:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5606:4:101","nodeType":"YulIdentifier","src":"5606:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5480:124:101","nodeType":"YulIdentifier","src":"5480:124:101"},"nativeSrc":"5480:131:101","nodeType":"YulFunctionCall","src":"5480:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5472:4:101","nodeType":"YulIdentifier","src":"5472:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5199:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5350:9:101","nodeType":"YulTypedName","src":"5350:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5365:4:101","nodeType":"YulTypedName","src":"5365:4:101","type":""}],"src":"5199:419:101"},{"body":{"nativeSrc":"5730:119:101","nodeType":"YulBlock","src":"5730:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5752:6:101","nodeType":"YulIdentifier","src":"5752:6:101"},{"kind":"number","nativeSrc":"5760:1:101","nodeType":"YulLiteral","src":"5760:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5748:3:101","nodeType":"YulIdentifier","src":"5748:3:101"},"nativeSrc":"5748:14:101","nodeType":"YulFunctionCall","src":"5748:14:101"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"5764:34:101","nodeType":"YulLiteral","src":"5764:34:101","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"5741:6:101","nodeType":"YulIdentifier","src":"5741:6:101"},"nativeSrc":"5741:58:101","nodeType":"YulFunctionCall","src":"5741:58:101"},"nativeSrc":"5741:58:101","nodeType":"YulExpressionStatement","src":"5741:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5820:6:101","nodeType":"YulIdentifier","src":"5820:6:101"},{"kind":"number","nativeSrc":"5828:2:101","nodeType":"YulLiteral","src":"5828:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5816:3:101","nodeType":"YulIdentifier","src":"5816:3:101"},"nativeSrc":"5816:15:101","nodeType":"YulFunctionCall","src":"5816:15:101"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"5833:8:101","nodeType":"YulLiteral","src":"5833:8:101","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"5809:6:101","nodeType":"YulIdentifier","src":"5809:6:101"},"nativeSrc":"5809:33:101","nodeType":"YulFunctionCall","src":"5809:33:101"},"nativeSrc":"5809:33:101","nodeType":"YulExpressionStatement","src":"5809:33:101"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5624:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5722:6:101","nodeType":"YulTypedName","src":"5722:6:101","type":""}],"src":"5624:225:101"},{"body":{"nativeSrc":"6001:220:101","nodeType":"YulBlock","src":"6001:220:101","statements":[{"nativeSrc":"6011:74:101","nodeType":"YulAssignment","src":"6011:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6077:3:101","nodeType":"YulIdentifier","src":"6077:3:101"},{"kind":"number","nativeSrc":"6082:2:101","nodeType":"YulLiteral","src":"6082:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6018:58:101","nodeType":"YulIdentifier","src":"6018:58:101"},"nativeSrc":"6018:67:101","nodeType":"YulFunctionCall","src":"6018:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6011:3:101","nodeType":"YulIdentifier","src":"6011:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6183:3:101","nodeType":"YulIdentifier","src":"6183:3:101"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6094:88:101","nodeType":"YulIdentifier","src":"6094:88:101"},"nativeSrc":"6094:93:101","nodeType":"YulFunctionCall","src":"6094:93:101"},"nativeSrc":"6094:93:101","nodeType":"YulExpressionStatement","src":"6094:93:101"},{"nativeSrc":"6196:19:101","nodeType":"YulAssignment","src":"6196:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6207:3:101","nodeType":"YulIdentifier","src":"6207:3:101"},{"kind":"number","nativeSrc":"6212:2:101","nodeType":"YulLiteral","src":"6212:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6203:3:101","nodeType":"YulIdentifier","src":"6203:3:101"},"nativeSrc":"6203:12:101","nodeType":"YulFunctionCall","src":"6203:12:101"},"variableNames":[{"name":"end","nativeSrc":"6196:3:101","nodeType":"YulIdentifier","src":"6196:3:101"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"5855:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5989:3:101","nodeType":"YulTypedName","src":"5989:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5997:3:101","nodeType":"YulTypedName","src":"5997:3:101","type":""}],"src":"5855:366:101"},{"body":{"nativeSrc":"6398:248:101","nodeType":"YulBlock","src":"6398:248:101","statements":[{"nativeSrc":"6408:26:101","nodeType":"YulAssignment","src":"6408:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6420:9:101","nodeType":"YulIdentifier","src":"6420:9:101"},{"kind":"number","nativeSrc":"6431:2:101","nodeType":"YulLiteral","src":"6431:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6416:3:101","nodeType":"YulIdentifier","src":"6416:3:101"},"nativeSrc":"6416:18:101","nodeType":"YulFunctionCall","src":"6416:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6408:4:101","nodeType":"YulIdentifier","src":"6408:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6455:9:101","nodeType":"YulIdentifier","src":"6455:9:101"},{"kind":"number","nativeSrc":"6466:1:101","nodeType":"YulLiteral","src":"6466:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6451:3:101","nodeType":"YulIdentifier","src":"6451:3:101"},"nativeSrc":"6451:17:101","nodeType":"YulFunctionCall","src":"6451:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6474:4:101","nodeType":"YulIdentifier","src":"6474:4:101"},{"name":"headStart","nativeSrc":"6480:9:101","nodeType":"YulIdentifier","src":"6480:9:101"}],"functionName":{"name":"sub","nativeSrc":"6470:3:101","nodeType":"YulIdentifier","src":"6470:3:101"},"nativeSrc":"6470:20:101","nodeType":"YulFunctionCall","src":"6470:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6444:6:101","nodeType":"YulIdentifier","src":"6444:6:101"},"nativeSrc":"6444:47:101","nodeType":"YulFunctionCall","src":"6444:47:101"},"nativeSrc":"6444:47:101","nodeType":"YulExpressionStatement","src":"6444:47:101"},{"nativeSrc":"6500:139:101","nodeType":"YulAssignment","src":"6500:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6634:4:101","nodeType":"YulIdentifier","src":"6634:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6508:124:101","nodeType":"YulIdentifier","src":"6508:124:101"},"nativeSrc":"6508:131:101","nodeType":"YulFunctionCall","src":"6508:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6500:4:101","nodeType":"YulIdentifier","src":"6500:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6227:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6378:9:101","nodeType":"YulTypedName","src":"6378:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6393:4:101","nodeType":"YulTypedName","src":"6393:4:101","type":""}],"src":"6227:419:101"},{"body":{"nativeSrc":"6710:40:101","nodeType":"YulBlock","src":"6710:40:101","statements":[{"nativeSrc":"6721:22:101","nodeType":"YulAssignment","src":"6721:22:101","value":{"arguments":[{"name":"value","nativeSrc":"6737:5:101","nodeType":"YulIdentifier","src":"6737:5:101"}],"functionName":{"name":"mload","nativeSrc":"6731:5:101","nodeType":"YulIdentifier","src":"6731:5:101"},"nativeSrc":"6731:12:101","nodeType":"YulFunctionCall","src":"6731:12:101"},"variableNames":[{"name":"length","nativeSrc":"6721:6:101","nodeType":"YulIdentifier","src":"6721:6:101"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6652:98:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6693:5:101","nodeType":"YulTypedName","src":"6693:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6703:6:101","nodeType":"YulTypedName","src":"6703:6:101","type":""}],"src":"6652:98:101"},{"body":{"nativeSrc":"6869:34:101","nodeType":"YulBlock","src":"6869:34:101","statements":[{"nativeSrc":"6879:18:101","nodeType":"YulAssignment","src":"6879:18:101","value":{"name":"pos","nativeSrc":"6894:3:101","nodeType":"YulIdentifier","src":"6894:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"6879:11:101","nodeType":"YulIdentifier","src":"6879:11:101"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6756:147:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6841:3:101","nodeType":"YulTypedName","src":"6841:3:101","type":""},{"name":"length","nativeSrc":"6846:6:101","nodeType":"YulTypedName","src":"6846:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6857:11:101","nodeType":"YulTypedName","src":"6857:11:101","type":""}],"src":"6756:147:101"},{"body":{"nativeSrc":"7017:278:101","nodeType":"YulBlock","src":"7017:278:101","statements":[{"nativeSrc":"7027:52:101","nodeType":"YulVariableDeclaration","src":"7027:52:101","value":{"arguments":[{"name":"value","nativeSrc":"7073:5:101","nodeType":"YulIdentifier","src":"7073:5:101"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7041:31:101","nodeType":"YulIdentifier","src":"7041:31:101"},"nativeSrc":"7041:38:101","nodeType":"YulFunctionCall","src":"7041:38:101"},"variables":[{"name":"length","nativeSrc":"7031:6:101","nodeType":"YulTypedName","src":"7031:6:101","type":""}]},{"nativeSrc":"7088:95:101","nodeType":"YulAssignment","src":"7088:95:101","value":{"arguments":[{"name":"pos","nativeSrc":"7171:3:101","nodeType":"YulIdentifier","src":"7171:3:101"},{"name":"length","nativeSrc":"7176:6:101","nodeType":"YulIdentifier","src":"7176:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7095:75:101","nodeType":"YulIdentifier","src":"7095:75:101"},"nativeSrc":"7095:88:101","nodeType":"YulFunctionCall","src":"7095:88:101"},"variableNames":[{"name":"pos","nativeSrc":"7088:3:101","nodeType":"YulIdentifier","src":"7088:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7231:5:101","nodeType":"YulIdentifier","src":"7231:5:101"},{"kind":"number","nativeSrc":"7238:4:101","nodeType":"YulLiteral","src":"7238:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7227:3:101","nodeType":"YulIdentifier","src":"7227:3:101"},"nativeSrc":"7227:16:101","nodeType":"YulFunctionCall","src":"7227:16:101"},{"name":"pos","nativeSrc":"7245:3:101","nodeType":"YulIdentifier","src":"7245:3:101"},{"name":"length","nativeSrc":"7250:6:101","nodeType":"YulIdentifier","src":"7250:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7192:34:101","nodeType":"YulIdentifier","src":"7192:34:101"},"nativeSrc":"7192:65:101","nodeType":"YulFunctionCall","src":"7192:65:101"},"nativeSrc":"7192:65:101","nodeType":"YulExpressionStatement","src":"7192:65:101"},{"nativeSrc":"7266:23:101","nodeType":"YulAssignment","src":"7266:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"7277:3:101","nodeType":"YulIdentifier","src":"7277:3:101"},{"name":"length","nativeSrc":"7282:6:101","nodeType":"YulIdentifier","src":"7282:6:101"}],"functionName":{"name":"add","nativeSrc":"7273:3:101","nodeType":"YulIdentifier","src":"7273:3:101"},"nativeSrc":"7273:16:101","nodeType":"YulFunctionCall","src":"7273:16:101"},"variableNames":[{"name":"end","nativeSrc":"7266:3:101","nodeType":"YulIdentifier","src":"7266:3:101"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6909:386:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6998:5:101","nodeType":"YulTypedName","src":"6998:5:101","type":""},{"name":"pos","nativeSrc":"7005:3:101","nodeType":"YulTypedName","src":"7005:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7013:3:101","nodeType":"YulTypedName","src":"7013:3:101","type":""}],"src":"6909:386:101"},{"body":{"nativeSrc":"7435:137:101","nodeType":"YulBlock","src":"7435:137:101","statements":[{"nativeSrc":"7446:100:101","nodeType":"YulAssignment","src":"7446:100:101","value":{"arguments":[{"name":"value0","nativeSrc":"7533:6:101","nodeType":"YulIdentifier","src":"7533:6:101"},{"name":"pos","nativeSrc":"7542:3:101","nodeType":"YulIdentifier","src":"7542:3:101"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7453:79:101","nodeType":"YulIdentifier","src":"7453:79:101"},"nativeSrc":"7453:93:101","nodeType":"YulFunctionCall","src":"7453:93:101"},"variableNames":[{"name":"pos","nativeSrc":"7446:3:101","nodeType":"YulIdentifier","src":"7446:3:101"}]},{"nativeSrc":"7556:10:101","nodeType":"YulAssignment","src":"7556:10:101","value":{"name":"pos","nativeSrc":"7563:3:101","nodeType":"YulIdentifier","src":"7563:3:101"},"variableNames":[{"name":"end","nativeSrc":"7556:3:101","nodeType":"YulIdentifier","src":"7556:3:101"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7301:271:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7414:3:101","nodeType":"YulTypedName","src":"7414:3:101","type":""},{"name":"value0","nativeSrc":"7420:6:101","nodeType":"YulTypedName","src":"7420:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7431:3:101","nodeType":"YulTypedName","src":"7431:3:101","type":""}],"src":"7301:271:101"},{"body":{"nativeSrc":"7637:40:101","nodeType":"YulBlock","src":"7637:40:101","statements":[{"nativeSrc":"7648:22:101","nodeType":"YulAssignment","src":"7648:22:101","value":{"arguments":[{"name":"value","nativeSrc":"7664:5:101","nodeType":"YulIdentifier","src":"7664:5:101"}],"functionName":{"name":"mload","nativeSrc":"7658:5:101","nodeType":"YulIdentifier","src":"7658:5:101"},"nativeSrc":"7658:12:101","nodeType":"YulFunctionCall","src":"7658:12:101"},"variableNames":[{"name":"length","nativeSrc":"7648:6:101","nodeType":"YulIdentifier","src":"7648:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7578:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7620:5:101","nodeType":"YulTypedName","src":"7620:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7630:6:101","nodeType":"YulTypedName","src":"7630:6:101","type":""}],"src":"7578:99:101"},{"body":{"nativeSrc":"7775:285:101","nodeType":"YulBlock","src":"7775:285:101","statements":[{"nativeSrc":"7785:53:101","nodeType":"YulVariableDeclaration","src":"7785:53:101","value":{"arguments":[{"name":"value","nativeSrc":"7832:5:101","nodeType":"YulIdentifier","src":"7832:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7799:32:101","nodeType":"YulIdentifier","src":"7799:32:101"},"nativeSrc":"7799:39:101","nodeType":"YulFunctionCall","src":"7799:39:101"},"variables":[{"name":"length","nativeSrc":"7789:6:101","nodeType":"YulTypedName","src":"7789:6:101","type":""}]},{"nativeSrc":"7847:78:101","nodeType":"YulAssignment","src":"7847:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"7913:3:101","nodeType":"YulIdentifier","src":"7913:3:101"},{"name":"length","nativeSrc":"7918:6:101","nodeType":"YulIdentifier","src":"7918:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7854:58:101","nodeType":"YulIdentifier","src":"7854:58:101"},"nativeSrc":"7854:71:101","nodeType":"YulFunctionCall","src":"7854:71:101"},"variableNames":[{"name":"pos","nativeSrc":"7847:3:101","nodeType":"YulIdentifier","src":"7847:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7973:5:101","nodeType":"YulIdentifier","src":"7973:5:101"},{"kind":"number","nativeSrc":"7980:4:101","nodeType":"YulLiteral","src":"7980:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7969:3:101","nodeType":"YulIdentifier","src":"7969:3:101"},"nativeSrc":"7969:16:101","nodeType":"YulFunctionCall","src":"7969:16:101"},{"name":"pos","nativeSrc":"7987:3:101","nodeType":"YulIdentifier","src":"7987:3:101"},{"name":"length","nativeSrc":"7992:6:101","nodeType":"YulIdentifier","src":"7992:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7934:34:101","nodeType":"YulIdentifier","src":"7934:34:101"},"nativeSrc":"7934:65:101","nodeType":"YulFunctionCall","src":"7934:65:101"},"nativeSrc":"7934:65:101","nodeType":"YulExpressionStatement","src":"7934:65:101"},{"nativeSrc":"8008:46:101","nodeType":"YulAssignment","src":"8008:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"8019:3:101","nodeType":"YulIdentifier","src":"8019:3:101"},{"arguments":[{"name":"length","nativeSrc":"8046:6:101","nodeType":"YulIdentifier","src":"8046:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8024:21:101","nodeType":"YulIdentifier","src":"8024:21:101"},"nativeSrc":"8024:29:101","nodeType":"YulFunctionCall","src":"8024:29:101"}],"functionName":{"name":"add","nativeSrc":"8015:3:101","nodeType":"YulIdentifier","src":"8015:3:101"},"nativeSrc":"8015:39:101","nodeType":"YulFunctionCall","src":"8015:39:101"},"variableNames":[{"name":"end","nativeSrc":"8008:3:101","nodeType":"YulIdentifier","src":"8008:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"7683:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7756:5:101","nodeType":"YulTypedName","src":"7756:5:101","type":""},{"name":"pos","nativeSrc":"7763:3:101","nodeType":"YulTypedName","src":"7763:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7771:3:101","nodeType":"YulTypedName","src":"7771:3:101","type":""}],"src":"7683:377:101"},{"body":{"nativeSrc":"8184:195:101","nodeType":"YulBlock","src":"8184:195:101","statements":[{"nativeSrc":"8194:26:101","nodeType":"YulAssignment","src":"8194:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8206:9:101","nodeType":"YulIdentifier","src":"8206:9:101"},{"kind":"number","nativeSrc":"8217:2:101","nodeType":"YulLiteral","src":"8217:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8202:3:101","nodeType":"YulIdentifier","src":"8202:3:101"},"nativeSrc":"8202:18:101","nodeType":"YulFunctionCall","src":"8202:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8194:4:101","nodeType":"YulIdentifier","src":"8194:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8241:9:101","nodeType":"YulIdentifier","src":"8241:9:101"},{"kind":"number","nativeSrc":"8252:1:101","nodeType":"YulLiteral","src":"8252:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8237:3:101","nodeType":"YulIdentifier","src":"8237:3:101"},"nativeSrc":"8237:17:101","nodeType":"YulFunctionCall","src":"8237:17:101"},{"arguments":[{"name":"tail","nativeSrc":"8260:4:101","nodeType":"YulIdentifier","src":"8260:4:101"},{"name":"headStart","nativeSrc":"8266:9:101","nodeType":"YulIdentifier","src":"8266:9:101"}],"functionName":{"name":"sub","nativeSrc":"8256:3:101","nodeType":"YulIdentifier","src":"8256:3:101"},"nativeSrc":"8256:20:101","nodeType":"YulFunctionCall","src":"8256:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8230:6:101","nodeType":"YulIdentifier","src":"8230:6:101"},"nativeSrc":"8230:47:101","nodeType":"YulFunctionCall","src":"8230:47:101"},"nativeSrc":"8230:47:101","nodeType":"YulExpressionStatement","src":"8230:47:101"},{"nativeSrc":"8286:86:101","nodeType":"YulAssignment","src":"8286:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"8358:6:101","nodeType":"YulIdentifier","src":"8358:6:101"},{"name":"tail","nativeSrc":"8367:4:101","nodeType":"YulIdentifier","src":"8367:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8294:63:101","nodeType":"YulIdentifier","src":"8294:63:101"},"nativeSrc":"8294:78:101","nodeType":"YulFunctionCall","src":"8294:78:101"},"variableNames":[{"name":"tail","nativeSrc":"8286:4:101","nodeType":"YulIdentifier","src":"8286:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8066:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8156:9:101","nodeType":"YulTypedName","src":"8156:9:101","type":""},{"name":"value0","nativeSrc":"8168:6:101","nodeType":"YulTypedName","src":"8168:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8179:4:101","nodeType":"YulTypedName","src":"8179:4:101","type":""}],"src":"8066:313:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x01() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\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        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516106163803806106168339810160408190526100229161036f565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6103d6565b5f805160206105cf83398151915214610068576100686103e9565b61007382825f61007a565b5050610519565b610083836100a5565b5f8251118061008f5750805b156100a05761009e83836100e4565b505b505050565b6100ae81610112565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061010983836040518060600160405280602781526020016105ef60279139610170565b90505b92915050565b6001600160a01b0381163b6101425760405162461bcd60e51b815260040161013990610449565b60405180910390fd5b5f805160206105cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101995760405162461bcd60e51b81526004016101399061049b565b5f80856001600160a01b0316856040516101b391906104cc565b5f60405180830381855af49150503d805f81146101eb576040519150601f19603f3d011682016040523d82523d5f602084013e6101f0565b606091505b50909250905061020182828661020d565b925050505b9392505050565b6060831561021c575081610206565b82511561022c5782518084602001fd5b8160405162461bcd60e51b81526004016101399190610508565b5f6001600160a01b03821661010c565b61025f81610246565b8114610269575f80fd5b50565b805161010c81610256565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156102b0576102b0610277565b6040525050565b5f6102c160405190565b90506102cd828261028b565b919050565b5f6001600160401b038211156102ea576102ea610277565b601f19601f83011660200192915050565b8281835e505f910152565b5f610318610313846102d2565b6102b7565b905082815260208101848484011115610332576103325f80fd5b61033d8482856102fb565b509392505050565b5f82601f830112610357576103575f80fd5b8151610367848260208601610306565b949350505050565b5f8060408385031215610383576103835f80fd5b5f61038e858561026c565b92505060208301516001600160401b038111156103ac576103ac5f80fd5b6103b885828601610345565b9150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561010c5761010c6103c2565b634e487b7160e01b5f52600160045260245ffd5b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b6020808252810161010c816103fd565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610442565b6020808252810161010c81610459565b5f6104b4825190565b6104c28185602086016102fb565b9290920192915050565b5f61020682846104ab565b5f6104e0825190565b8084526020840193506104f78185602086016102fb565b601f01601f19169290920192915050565b6020808252810161010981846104d7565b60aa806105255f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220685391581ec7088fded0c77239b142e848a2993393b8f4a66f42ef818e3b719864736f6c63430008190033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x616 CODESIZE SUB DUP1 PUSH2 0x616 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x36F JUMP JUMPDEST PUSH2 0x4D PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x3D6 JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5CF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x68 JUMPI PUSH2 0x68 PUSH2 0x3E9 JUMP JUMPDEST PUSH2 0x73 DUP3 DUP3 PUSH0 PUSH2 0x7A JUMP JUMPDEST POP POP PUSH2 0x519 JUMP JUMPDEST PUSH2 0x83 DUP4 PUSH2 0xA5 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x8F JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xA0 JUMPI PUSH2 0x9E DUP4 DUP4 PUSH2 0xE4 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xAE DUP2 PUSH2 0x112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x109 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5EF PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x170 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x142 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP1 PUSH2 0x449 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5CF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x199 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP1 PUSH2 0x49B JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0x4CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1EB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x201 DUP3 DUP3 DUP7 PUSH2 0x20D JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x21C JUMPI POP DUP2 PUSH2 0x206 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x22C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP2 SWAP1 PUSH2 0x508 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10C JUMP JUMPDEST PUSH2 0x25F DUP2 PUSH2 0x246 JUMP JUMPDEST DUP2 EQ PUSH2 0x269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x10C DUP2 PUSH2 0x256 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2B0 JUMPI PUSH2 0x2B0 PUSH2 0x277 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C1 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x2CD DUP3 DUP3 PUSH2 0x28B JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2EA JUMPI PUSH2 0x2EA PUSH2 0x277 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x318 PUSH2 0x313 DUP5 PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x2B7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x332 JUMPI PUSH2 0x332 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x33D DUP5 DUP3 DUP6 PUSH2 0x2FB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x357 JUMPI PUSH2 0x357 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x367 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x306 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x383 JUMPI PUSH2 0x383 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x38E DUP6 DUP6 PUSH2 0x26C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3AC JUMPI PUSH2 0x3AC PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x3B8 DUP6 DUP3 DUP7 ADD PUSH2 0x345 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x10C JUMPI PUSH2 0x10C PUSH2 0x3C2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10C DUP2 PUSH2 0x3FD JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x442 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10C DUP2 PUSH2 0x459 JUMP JUMPDEST PUSH0 PUSH2 0x4B4 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4C2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x206 DUP3 DUP5 PUSH2 0x4AB JUMP JUMPDEST PUSH0 PUSH2 0x4E0 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x4F7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x109 DUP2 DUP5 PUSH2 0x4D7 JUMP JUMPDEST PUSH1 0xAA DUP1 PUSH2 0x525 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x57 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x52 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x70 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x5391581EC7088FDED0 0xC7 PUSH19 0x39B142E848A2993393B8F4A66F42EF818E3B71 SWAP9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"552:830:91:-:0;;;945:217;;;;;;;;;;;;;;;;;;:::i;:::-;1050:54;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:91;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;945:217;;552:830;;2188:295:92;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:92;;;;;;;;1902:152;:::o;6575:198:97:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:92:-;-1:-1:-1;;;;;1470:19:97;;;1610:95:92;;;;-1:-1:-1;;;1610:95:92;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:92;;-1:-1:-1;;;;;;1715:74:92;-1:-1:-1;;;;;1715:74:92;;;;;;;;;;1537:259::o;6959:387:97:-;7100:12;-1:-1:-1;;;;;1470:19:97;;;7124:69;;;;-1:-1:-1;;;7124:69:97;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:97;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:97;;-1:-1:-1;7204:67:97;-1:-1:-1;7288:51:97;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:97;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:97;;;;;;;;:::i;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:101;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:101;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:101;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:101:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:101;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:101;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:101:o;2120:139::-;2209:6;2204:3;2199;2193:23;-1:-1:-1;2250:1:101;2232:16;;2225:27;2120:139::o;2265:432::-;2353:5;2378:65;2394:48;2435:6;2394:48;:::i;:::-;2378:65;:::i;:::-;2369:74;;2466:6;2459:5;2452:21;2504:4;2497:5;2493:16;2542:3;2533:6;2528:3;2524:16;2521:25;2518:112;;;2549:79;197:1;194;187:12;2549:79;2639:52;2684:6;2679:3;2674;2639:52;:::i;:::-;2359:338;2265:432;;;;;:::o;2716:353::-;2782:5;2831:3;2824:4;2816:6;2812:17;2808:27;2798:122;;2839:79;197:1;194;187:12;2839:79;2949:6;2943:13;2974:89;3059:3;3051:6;3044:4;3036:6;3032:17;2974:89;:::i;:::-;2965:98;2716:353;-1:-1:-1;;;;2716:353:101:o;3075:678::-;3163:6;3171;3220:2;3208:9;3199:7;3195:23;3191:32;3188:119;;;3226:79;197:1;194;187:12;3226:79;3346:1;3371:64;3427:7;3407:9;3371:64;:::i;:::-;3361:74;;3317:128;3505:2;3494:9;3490:18;3484:25;-1:-1:-1;;;;;3528:6:101;3525:30;3522:117;;;3558:79;197:1;194;187:12;3558:79;3663:73;3728:7;3719:6;3708:9;3704:22;3663:73;:::i;:::-;3653:83;;3455:291;3075:678;;;;;:::o;3842:180::-;-1:-1:-1;;;3887:1:101;3880:88;3987:4;3984:1;3977:15;4011:4;4008:1;4001:15;4028:194;4159:9;;;4181:11;;;4178:37;;;4195:18;;:::i;4228:180::-;-1:-1:-1;;;4273:1:101;4266:88;4373:4;4370:1;4363:15;4397:4;4394:1;4387:15;4827:366;5054:2;4520:19;;4969:3;4572:4;4563:14;;4729:34;4706:58;;-1:-1:-1;;;4793:2:101;4781:15;;4774:40;4983:74;-1:-1:-1;5066:93:101;-1:-1:-1;5184:2:101;5175:12;;4827:366::o;5199:419::-;5403:2;5416:47;;;5388:18;;5480:131;5388:18;5480:131;:::i;5855:366::-;6082:2;4520:19;;5997:3;4572:4;4563:14;;5764:34;5741:58;;-1:-1:-1;;;5828:2:101;5816:15;;5809:33;6011:74;-1:-1:-1;6094:93:101;5624:225;6227:419;6431:2;6444:47;;;6416:18;;6508:131;6416:18;6508:131;:::i;6909:386::-;7013:3;7041:38;7073:5;6731:12;;6652:98;7041:38;7192:65;7250:6;7245:3;7238:4;7231:5;7227:16;7192:65;:::i;:::-;7273:16;;;;;6909:386;-1:-1:-1;;6909:386:101:o;7301:271::-;7431:3;7453:93;7542:3;7533:6;7453:93;:::i;7683:377::-;7771:3;7799:39;7832:5;6731:12;;6652:98;7799:39;4520:19;;;4572:4;4563:14;;7847:78;;7934:65;7992:6;7987:3;7980:4;7973:5;7969:16;7934:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:101;8015:39;;;;;;-1:-1:-1;;7683:377:101:o;8066:313::-;8217:2;8230:47;;;8202:18;;8294:78;8202:18;8358:6;8294:78;:::i;8066:313::-;552:830:91;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_9397":{"entryPoint":null,"id":9397,"parameterSlots":0,"returnSlots":0},"@_9405":{"entryPoint":null,"id":9405,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_9410":{"entryPoint":null,"id":9410,"parameterSlots":0,"returnSlots":0},"@_delegate_9370":{"entryPoint":87,"id":9370,"parameterSlots":1,"returnSlots":0},"@_fallback_9389":{"entryPoint":19,"id":9389,"parameterSlots":0,"returnSlots":0},"@_getImplementation_9073":{"entryPoint":null,"id":9073,"parameterSlots":0,"returnSlots":1},"@_implementation_9040":{"entryPoint":33,"id":9040,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_10073":{"entryPoint":null,"id":10073,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220685391581ec7088fded0c77239b142e848a2993393b8f4a66f42ef818e3b719864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x57 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x52 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x70 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x5391581EC7088FDED0 0xC7 PUSH19 0x39B142E848A2993393B8F4A66F42EF818E3B71 SWAP9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"552:830:91:-:0;;;;;;2903:11:93;:9;:11::i;:::-;552:830:91;;2680:11:93;2327:110;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;1240:140:91:-;1307:12;1338:35;1035:66:92;1385:54;-1:-1:-1;;;;;1385:54:92;;1306:140;1338:35:91;1331:42;;1240:140;:::o;953:895:93:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27"},"gasEstimates":{"creation":{"codeDepositCost":"34000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite"},"internal":{"_implementation()":"2155"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ERC1967Upgrade":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"delegatecall","details":"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{},"stateVariables":{"_ADMIN_SLOT":{"details":"Storage slot with the admin of the contract. This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is validated in the constructor."},"_BEACON_SLOT":{"details":"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"_IMPLEMENTATION_SLOT":{"details":"Storage slot with the address of the current implementation. This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is validated in the constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"delegatecall\",\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"This is the interface that {BeaconProxy} expects of its beacon.","kind":"dev","methods":{"implementation()":{"details":"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ProxyAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.","kind":"dev","methods":{"changeProxyAdmin(address,address)":{"details":"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`."},"getProxyAdmin(address)":{"details":"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"getProxyImplementation(address)":{"details":"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"details":"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`."},"upgradeAndCall(address,address,bytes)":{"details":"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_8897":{"entryPoint":null,"id":8897,"parameterSlots":1,"returnSlots":0},"@_9437":{"entryPoint":null,"id":9437,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_8977":{"entryPoint":63,"id":8977,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":182,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":193,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":142,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":160,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1199:101","nodeType":"YulBlock","src":"0:1199:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"922:274:101","nodeType":"YulBlock","src":"922:274:101","statements":[{"body":{"nativeSrc":"968:83:101","nodeType":"YulBlock","src":"968:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:101","nodeType":"YulIdentifier","src":"970:77:101"},"nativeSrc":"970:79:101","nodeType":"YulFunctionCall","src":"970:79:101"},"nativeSrc":"970:79:101","nodeType":"YulExpressionStatement","src":"970:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:101","nodeType":"YulIdentifier","src":"943:7:101"},{"name":"headStart","nativeSrc":"952:9:101","nodeType":"YulIdentifier","src":"952:9:101"}],"functionName":{"name":"sub","nativeSrc":"939:3:101","nodeType":"YulIdentifier","src":"939:3:101"},"nativeSrc":"939:23:101","nodeType":"YulFunctionCall","src":"939:23:101"},{"kind":"number","nativeSrc":"964:2:101","nodeType":"YulLiteral","src":"964:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:101","nodeType":"YulIdentifier","src":"935:3:101"},"nativeSrc":"935:32:101","nodeType":"YulFunctionCall","src":"935:32:101"},"nativeSrc":"932:119:101","nodeType":"YulIf","src":"932:119:101"},{"nativeSrc":"1061:128:101","nodeType":"YulBlock","src":"1061:128:101","statements":[{"nativeSrc":"1076:15:101","nodeType":"YulVariableDeclaration","src":"1076:15:101","value":{"kind":"number","nativeSrc":"1090:1:101","nodeType":"YulLiteral","src":"1090:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:101","nodeType":"YulTypedName","src":"1080:6:101","type":""}]},{"nativeSrc":"1105:74:101","nodeType":"YulAssignment","src":"1105:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:101","nodeType":"YulIdentifier","src":"1151:9:101"},{"name":"offset","nativeSrc":"1162:6:101","nodeType":"YulIdentifier","src":"1162:6:101"}],"functionName":{"name":"add","nativeSrc":"1147:3:101","nodeType":"YulIdentifier","src":"1147:3:101"},"nativeSrc":"1147:22:101","nodeType":"YulFunctionCall","src":"1147:22:101"},{"name":"dataEnd","nativeSrc":"1171:7:101","nodeType":"YulIdentifier","src":"1171:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:101","nodeType":"YulIdentifier","src":"1115:31:101"},"nativeSrc":"1115:64:101","nodeType":"YulFunctionCall","src":"1115:64:101"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:101","nodeType":"YulIdentifier","src":"1105:6:101"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:101","nodeType":"YulTypedName","src":"892:9:101","type":""},{"name":"dataEnd","nativeSrc":"903:7:101","nodeType":"YulTypedName","src":"903:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:101","nodeType":"YulTypedName","src":"915:6:101","type":""}],"src":"845:351:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b506040516108fd3803806108fd83398101604081905261002e916100c1565b806100388161003f565b50506100e7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6100a98161008e565b81146100b3575f80fd5b50565b805161009a816100a0565b5f602082840312156100d4576100d45f80fd5b5f6100df84846100b6565b949350505050565b610809806100f45f395ff3fe608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010357806399a88ec414610116578063f2fde38b14610135578063f3b7dead14610154575f80fd5b8063204e1c7a1461007d578063715018a6146100b25780637eff275e146100c85780638da5cb5b146100e7575b5f80fd5b348015610088575f80fd5b5061009c610097366004610494565b610173565b6040516100a991906104c1565b60405180910390f35b3480156100bd575f80fd5b506100c66101f3565b005b3480156100d3575f80fd5b506100c66100e23660046104e3565b610230565b3480156100f2575f80fd5b505f546001600160a01b031661009c565b6100c661011136600461060f565b6102b6565b348015610121575f80fd5b506100c66101303660046104e3565b610342565b348015610140575f80fd5b506100c661014f366004610675565b610397565b34801561015f575f80fd5b5061009c61016e366004610494565b6103f2565b5f805f836001600160a01b031660405161018c906106a6565b5f60405180830381855afa9150503d805f81146101c4576040519150601f19603f3d011682016040523d82523d5f602084013e6101c9565b606091505b5091509150816101d7575f80fd5b808060200190518101906101eb91906106bb565b949350505050565b5f546001600160a01b031633146102255760405162461bcd60e51b815260040161021c906106d9565b60405180910390fd5b61022e5f61040b565b565b5f546001600160a01b031633146102595760405162461bcd60e51b815260040161021c906106d9565b6040516308f2839760e41b81526001600160a01b03831690638f283970906102859084906004016104c1565b5f604051808303815f87803b15801561029c575f80fd5b505af11580156102ae573d5f803e3d5ffd5b505050505050565b5f546001600160a01b031633146102df5760405162461bcd60e51b815260040161021c906106d9565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061030f908690869060040161074f565b5f604051808303818588803b158015610326575f80fd5b505af1158015610338573d5f803e3d5ffd5b5050505050505050565b5f546001600160a01b0316331461036b5760405162461bcd60e51b815260040161021c906106d9565b604051631b2ce7f360e11b81526001600160a01b03831690633659cfe6906102859084906004016104c1565b5f546001600160a01b031633146103c05760405162461bcd60e51b815260040161021c906106d9565b6001600160a01b0381166103e65760405162461bcd60e51b815260040161021c9061076f565b6103ef8161040b565b50565b5f805f836001600160a01b031660405161018c906107c9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b5f6104668261045a565b61047f8161046c565b81146103ef575f80fd5b803561046681610476565b5f602082840312156104a7576104a75f80fd5b5f6101eb8484610489565b6104bb8161045a565b82525050565b6020810161046682846104b2565b61047f8161045a565b8035610466816104cf565b5f80604083850312156104f7576104f75f80fd5b5f6105028585610489565b9250506020610513858286016104d8565b9150509250929050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff821117156105575761055761051d565b6040525050565b5f61056860405190565b90506105748282610531565b919050565b5f67ffffffffffffffff8211156105925761059261051d565b601f19601f83011660200192915050565b82818337505f910152565b5f6105c06105bb84610579565b61055e565b9050828152602081018484840111156105da576105da5f80fd5b6105e58482856105a3565b509392505050565b5f82601f8301126105ff576105ff5f80fd5b81356101eb8482602086016105ae565b5f805f60608486031215610624576106245f80fd5b5f61062f8686610489565b9350506020610640868287016104d8565b925050604084013567ffffffffffffffff81111561065f5761065f5f80fd5b61066b868287016105ed565b9150509250925092565b5f60208284031215610688576106885f80fd5b5f6101eb84846104d8565b635c60da1b60e01b81525f5b5060040190565b5f61046682610693565b8051610466816104cf565b5f602082840312156106ce576106ce5f80fd5b5f6101eb84846106b0565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610466565b8281835e505f910152565b5f610727825190565b80845260208401935061073e818560208601610713565b601f01601f19169290920192915050565b6040810161075d82856104b2565b81810360208301526101eb818461071e565b6020808252810161046681602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b6303e1469160e61b81525f61069f565b5f610466826107b956fea264697066735822122052efb9a5616aadc832bd49eff728b329d78d855a8c605912f1e797370d8943ca64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x8FD CODESIZE SUB DUP1 PUSH2 0x8FD DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH2 0x38 DUP2 PUSH2 0x3F JUMP JUMPDEST POP POP PUSH2 0xE7 JUMP JUMPDEST PUSH0 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 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA9 DUP2 PUSH2 0x8E JUMP JUMPDEST DUP2 EQ PUSH2 0xB3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A DUP2 PUSH2 0xA0 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4 JUMPI PUSH2 0xD4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xDF DUP5 DUP5 PUSH2 0xB6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x809 DUP1 PUSH2 0xF4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4C JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x1F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x230 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9C JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x111 CALLDATASIZE PUSH1 0x4 PUSH2 0x60F JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x130 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x16E CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x6A6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1C4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1D7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x22E PUSH0 PUSH2 0x40B JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8F28397 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x30F SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x74F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x338 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x36B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x76F JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x40B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x7C9 JUMP JUMPDEST PUSH0 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 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x45A JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x46C JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x476 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A7 JUMPI PUSH2 0x4A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x489 JUMP JUMPDEST PUSH2 0x4BB DUP2 PUSH2 0x45A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x466 DUP3 DUP5 PUSH2 0x4B2 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x45A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F7 JUMPI PUSH2 0x4F7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x502 DUP6 DUP6 PUSH2 0x489 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x513 DUP6 DUP3 DUP7 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x557 JUMPI PUSH2 0x557 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x568 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x574 DUP3 DUP3 PUSH2 0x531 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x592 JUMPI PUSH2 0x592 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x5C0 PUSH2 0x5BB DUP5 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x55E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5DA JUMPI PUSH2 0x5DA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5E5 DUP5 DUP3 DUP6 PUSH2 0x5A3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5FF JUMPI PUSH2 0x5FF PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EB DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x62F DUP7 DUP7 PUSH2 0x489 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x640 DUP7 DUP3 DUP8 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x65F JUMPI PUSH2 0x65F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x66B DUP7 DUP3 DUP8 ADD PUSH2 0x5ED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x688 JUMPI PUSH2 0x688 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x4D8 JUMP JUMPDEST PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 JUMPDEST POP PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x693 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6CE JUMPI PUSH2 0x6CE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x466 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x727 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x73E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x713 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x75D DUP3 DUP6 PUSH2 0x4B2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1EB DUP2 DUP5 PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x466 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x3E14691 PUSH1 0xE6 SHL DUP2 MSTORE PUSH0 PUSH2 0x69F JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x7B9 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE 0xEF 0xB9 0xA5 PUSH2 0x6AAD 0xC8 ORIGIN 0xBD BLOBHASH 0xEF 0xF7 0x28 0xB3 0x29 0xD7 DUP14 DUP6 GAS DUP13 PUSH1 0x59 SLT CALL 0xE7 SWAP8 CALLDATACOPY 0xD DUP10 NUMBER 0xCA PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"435:2470:95:-:0;;;473:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;516:12;942:32:89;516:12:95;942:18:89;:32::i;:::-;897:84;473:59:95;435:2470;;2291:187:89;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:89;;;-1:-1:-1;;;;;;2399:17:89;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;521:35;466:96;-1:-1:-1;;466:96:101:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;197:1;194;187:12;970:79;1090:1;1115:64;1171:7;1151:9;1115:64;:::i;:::-;1105:74;845:351;-1:-1:-1;;;;845:351:101:o;:::-;435:2470:95;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_msgSender_10037":{"entryPoint":null,"id":10037,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_8977":{"entryPoint":1035,"id":8977,"parameterSlots":1,"returnSlots":0},"@changeProxyAdmin_9523":{"entryPoint":560,"id":9523,"parameterSlots":2,"returnSlots":0},"@getProxyAdmin_9505":{"entryPoint":1010,"id":9505,"parameterSlots":1,"returnSlots":1},"@getProxyImplementation_9471":{"entryPoint":371,"id":9471,"parameterSlots":1,"returnSlots":1},"@owner_8906":{"entryPoint":null,"id":8906,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_8934":{"entryPoint":499,"id":8934,"parameterSlots":0,"returnSlots":0},"@transferOwnership_8957":{"entryPoint":919,"id":8957,"parameterSlots":1,"returnSlots":0},"@upgradeAndCall_9565":{"entryPoint":694,"id":9565,"parameterSlots":3,"returnSlots":0},"@upgrade_9541":{"entryPoint":834,"id":9541,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":1454,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable_fromMemory":{"entryPoint":1712,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":1517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_TransparentUpgradeableProxy_$9730":{"entryPoint":1161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1653,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable_fromMemory":{"entryPoint":1723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730":{"entryPoint":1172,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730t_address":{"entryPoint":1251,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730t_addresst_bytes_memory_ptr":{"entryPoint":1551,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1202,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":1822,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1683,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1977,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1702,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1993,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1217,"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":1871,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1903,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1753,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1374,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1401,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":1114,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_TransparentUpgradeableProxy_$9730":{"entryPoint":1132,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1443,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":1811,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1329,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1309,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1231,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_TransparentUpgradeableProxy_$9730":{"entryPoint":1142,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12515:101","nodeType":"YulBlock","src":"0:12515:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"519:51:101","nodeType":"YulBlock","src":"519:51:101","statements":[{"nativeSrc":"529:35:101","nodeType":"YulAssignment","src":"529:35:101","value":{"arguments":[{"name":"value","nativeSrc":"558:5:101","nodeType":"YulIdentifier","src":"558:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"540:17:101","nodeType":"YulIdentifier","src":"540:17:101"},"nativeSrc":"540:24:101","nodeType":"YulFunctionCall","src":"540:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"529:7:101","nodeType":"YulIdentifier","src":"529:7:101"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"466:104:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"501:5:101","nodeType":"YulTypedName","src":"501:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"511:7:101","nodeType":"YulTypedName","src":"511:7:101","type":""}],"src":"466:104:101"},{"body":{"nativeSrc":"657:59:101","nodeType":"YulBlock","src":"657:59:101","statements":[{"nativeSrc":"667:43:101","nodeType":"YulAssignment","src":"667:43:101","value":{"arguments":[{"name":"value","nativeSrc":"704:5:101","nodeType":"YulIdentifier","src":"704:5:101"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"678:25:101","nodeType":"YulIdentifier","src":"678:25:101"},"nativeSrc":"678:32:101","nodeType":"YulFunctionCall","src":"678:32:101"},"variableNames":[{"name":"cleaned","nativeSrc":"667:7:101","nodeType":"YulIdentifier","src":"667:7:101"}]}]},"name":"cleanup_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"576:140:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"639:5:101","nodeType":"YulTypedName","src":"639:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"649:7:101","nodeType":"YulTypedName","src":"649:7:101","type":""}],"src":"576:140:101"},{"body":{"nativeSrc":"801:115:101","nodeType":"YulBlock","src":"801:115:101","statements":[{"body":{"nativeSrc":"894:16:101","nodeType":"YulBlock","src":"894:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"903:1:101","nodeType":"YulLiteral","src":"903:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"906:1:101","nodeType":"YulLiteral","src":"906:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"896:6:101","nodeType":"YulIdentifier","src":"896:6:101"},"nativeSrc":"896:12:101","nodeType":"YulFunctionCall","src":"896:12:101"},"nativeSrc":"896:12:101","nodeType":"YulExpressionStatement","src":"896:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"824:5:101","nodeType":"YulIdentifier","src":"824:5:101"},{"arguments":[{"name":"value","nativeSrc":"885:5:101","nodeType":"YulIdentifier","src":"885:5:101"}],"functionName":{"name":"cleanup_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"831:53:101","nodeType":"YulIdentifier","src":"831:53:101"},"nativeSrc":"831:60:101","nodeType":"YulFunctionCall","src":"831:60:101"}],"functionName":{"name":"eq","nativeSrc":"821:2:101","nodeType":"YulIdentifier","src":"821:2:101"},"nativeSrc":"821:71:101","nodeType":"YulFunctionCall","src":"821:71:101"}],"functionName":{"name":"iszero","nativeSrc":"814:6:101","nodeType":"YulIdentifier","src":"814:6:101"},"nativeSrc":"814:79:101","nodeType":"YulFunctionCall","src":"814:79:101"},"nativeSrc":"811:99:101","nodeType":"YulIf","src":"811:99:101"}]},"name":"validator_revert_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"722:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"794:5:101","nodeType":"YulTypedName","src":"794:5:101","type":""}],"src":"722:194:101"},{"body":{"nativeSrc":"1010:123:101","nodeType":"YulBlock","src":"1010:123:101","statements":[{"nativeSrc":"1020:29:101","nodeType":"YulAssignment","src":"1020:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1042:6:101","nodeType":"YulIdentifier","src":"1042:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1029:12:101","nodeType":"YulIdentifier","src":"1029:12:101"},"nativeSrc":"1029:20:101","nodeType":"YulFunctionCall","src":"1029:20:101"},"variableNames":[{"name":"value","nativeSrc":"1020:5:101","nodeType":"YulIdentifier","src":"1020:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1121:5:101","nodeType":"YulIdentifier","src":"1121:5:101"}],"functionName":{"name":"validator_revert_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"1058:62:101","nodeType":"YulIdentifier","src":"1058:62:101"},"nativeSrc":"1058:69:101","nodeType":"YulFunctionCall","src":"1058:69:101"},"nativeSrc":"1058:69:101","nodeType":"YulExpressionStatement","src":"1058:69:101"}]},"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"922:211:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"988:6:101","nodeType":"YulTypedName","src":"988:6:101","type":""},{"name":"end","nativeSrc":"996:3:101","nodeType":"YulTypedName","src":"996:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1004:5:101","nodeType":"YulTypedName","src":"1004:5:101","type":""}],"src":"922:211:101"},{"body":{"nativeSrc":"1241:299:101","nodeType":"YulBlock","src":"1241:299:101","statements":[{"body":{"nativeSrc":"1287:83:101","nodeType":"YulBlock","src":"1287:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1289:77:101","nodeType":"YulIdentifier","src":"1289:77:101"},"nativeSrc":"1289:79:101","nodeType":"YulFunctionCall","src":"1289:79:101"},"nativeSrc":"1289:79:101","nodeType":"YulExpressionStatement","src":"1289:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1262:7:101","nodeType":"YulIdentifier","src":"1262:7:101"},{"name":"headStart","nativeSrc":"1271:9:101","nodeType":"YulIdentifier","src":"1271:9:101"}],"functionName":{"name":"sub","nativeSrc":"1258:3:101","nodeType":"YulIdentifier","src":"1258:3:101"},"nativeSrc":"1258:23:101","nodeType":"YulFunctionCall","src":"1258:23:101"},{"kind":"number","nativeSrc":"1283:2:101","nodeType":"YulLiteral","src":"1283:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1254:3:101","nodeType":"YulIdentifier","src":"1254:3:101"},"nativeSrc":"1254:32:101","nodeType":"YulFunctionCall","src":"1254:32:101"},"nativeSrc":"1251:119:101","nodeType":"YulIf","src":"1251:119:101"},{"nativeSrc":"1380:153:101","nodeType":"YulBlock","src":"1380:153:101","statements":[{"nativeSrc":"1395:15:101","nodeType":"YulVariableDeclaration","src":"1395:15:101","value":{"kind":"number","nativeSrc":"1409:1:101","nodeType":"YulLiteral","src":"1409:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1399:6:101","nodeType":"YulTypedName","src":"1399:6:101","type":""}]},{"nativeSrc":"1424:99:101","nodeType":"YulAssignment","src":"1424:99:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1495:9:101","nodeType":"YulIdentifier","src":"1495:9:101"},{"name":"offset","nativeSrc":"1506:6:101","nodeType":"YulIdentifier","src":"1506:6:101"}],"functionName":{"name":"add","nativeSrc":"1491:3:101","nodeType":"YulIdentifier","src":"1491:3:101"},"nativeSrc":"1491:22:101","nodeType":"YulFunctionCall","src":"1491:22:101"},{"name":"dataEnd","nativeSrc":"1515:7:101","nodeType":"YulIdentifier","src":"1515:7:101"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"1434:56:101","nodeType":"YulIdentifier","src":"1434:56:101"},"nativeSrc":"1434:89:101","nodeType":"YulFunctionCall","src":"1434:89:101"},"variableNames":[{"name":"value0","nativeSrc":"1424:6:101","nodeType":"YulIdentifier","src":"1424:6:101"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"1139:401:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1211:9:101","nodeType":"YulTypedName","src":"1211:9:101","type":""},{"name":"dataEnd","nativeSrc":"1222:7:101","nodeType":"YulTypedName","src":"1222:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1234:6:101","nodeType":"YulTypedName","src":"1234:6:101","type":""}],"src":"1139:401:101"},{"body":{"nativeSrc":"1591:51:101","nodeType":"YulBlock","src":"1591:51:101","statements":[{"nativeSrc":"1601:35:101","nodeType":"YulAssignment","src":"1601:35:101","value":{"arguments":[{"name":"value","nativeSrc":"1630:5:101","nodeType":"YulIdentifier","src":"1630:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1612:17:101","nodeType":"YulIdentifier","src":"1612:17:101"},"nativeSrc":"1612:24:101","nodeType":"YulFunctionCall","src":"1612:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"1601:7:101","nodeType":"YulIdentifier","src":"1601:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"1546:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1573:5:101","nodeType":"YulTypedName","src":"1573:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1583:7:101","nodeType":"YulTypedName","src":"1583:7:101","type":""}],"src":"1546:96:101"},{"body":{"nativeSrc":"1713:53:101","nodeType":"YulBlock","src":"1713:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1730:3:101","nodeType":"YulIdentifier","src":"1730:3:101"},{"arguments":[{"name":"value","nativeSrc":"1753:5:101","nodeType":"YulIdentifier","src":"1753:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1735:17:101","nodeType":"YulIdentifier","src":"1735:17:101"},"nativeSrc":"1735:24:101","nodeType":"YulFunctionCall","src":"1735:24:101"}],"functionName":{"name":"mstore","nativeSrc":"1723:6:101","nodeType":"YulIdentifier","src":"1723:6:101"},"nativeSrc":"1723:37:101","nodeType":"YulFunctionCall","src":"1723:37:101"},"nativeSrc":"1723:37:101","nodeType":"YulExpressionStatement","src":"1723:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1648:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1701:5:101","nodeType":"YulTypedName","src":"1701:5:101","type":""},{"name":"pos","nativeSrc":"1708:3:101","nodeType":"YulTypedName","src":"1708:3:101","type":""}],"src":"1648:118:101"},{"body":{"nativeSrc":"1870:124:101","nodeType":"YulBlock","src":"1870:124:101","statements":[{"nativeSrc":"1880:26:101","nodeType":"YulAssignment","src":"1880:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"1892:9:101","nodeType":"YulIdentifier","src":"1892:9:101"},{"kind":"number","nativeSrc":"1903:2:101","nodeType":"YulLiteral","src":"1903:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1888:3:101","nodeType":"YulIdentifier","src":"1888:3:101"},"nativeSrc":"1888:18:101","nodeType":"YulFunctionCall","src":"1888:18:101"},"variableNames":[{"name":"tail","nativeSrc":"1880:4:101","nodeType":"YulIdentifier","src":"1880:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1960:6:101","nodeType":"YulIdentifier","src":"1960:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"1973:9:101","nodeType":"YulIdentifier","src":"1973:9:101"},{"kind":"number","nativeSrc":"1984:1:101","nodeType":"YulLiteral","src":"1984:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1969:3:101","nodeType":"YulIdentifier","src":"1969:3:101"},"nativeSrc":"1969:17:101","nodeType":"YulFunctionCall","src":"1969:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1916:43:101","nodeType":"YulIdentifier","src":"1916:43:101"},"nativeSrc":"1916:71:101","nodeType":"YulFunctionCall","src":"1916:71:101"},"nativeSrc":"1916:71:101","nodeType":"YulExpressionStatement","src":"1916:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1772:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1842:9:101","nodeType":"YulTypedName","src":"1842:9:101","type":""},{"name":"value0","nativeSrc":"1854:6:101","nodeType":"YulTypedName","src":"1854:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1865:4:101","nodeType":"YulTypedName","src":"1865:4:101","type":""}],"src":"1772:222:101"},{"body":{"nativeSrc":"2043:79:101","nodeType":"YulBlock","src":"2043:79:101","statements":[{"body":{"nativeSrc":"2100:16:101","nodeType":"YulBlock","src":"2100:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2109:1:101","nodeType":"YulLiteral","src":"2109:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2112:1:101","nodeType":"YulLiteral","src":"2112:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2102:6:101","nodeType":"YulIdentifier","src":"2102:6:101"},"nativeSrc":"2102:12:101","nodeType":"YulFunctionCall","src":"2102:12:101"},"nativeSrc":"2102:12:101","nodeType":"YulExpressionStatement","src":"2102:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2066:5:101","nodeType":"YulIdentifier","src":"2066:5:101"},{"arguments":[{"name":"value","nativeSrc":"2091:5:101","nodeType":"YulIdentifier","src":"2091:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2073:17:101","nodeType":"YulIdentifier","src":"2073:17:101"},"nativeSrc":"2073:24:101","nodeType":"YulFunctionCall","src":"2073:24:101"}],"functionName":{"name":"eq","nativeSrc":"2063:2:101","nodeType":"YulIdentifier","src":"2063:2:101"},"nativeSrc":"2063:35:101","nodeType":"YulFunctionCall","src":"2063:35:101"}],"functionName":{"name":"iszero","nativeSrc":"2056:6:101","nodeType":"YulIdentifier","src":"2056:6:101"},"nativeSrc":"2056:43:101","nodeType":"YulFunctionCall","src":"2056:43:101"},"nativeSrc":"2053:63:101","nodeType":"YulIf","src":"2053:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"2000:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2036:5:101","nodeType":"YulTypedName","src":"2036:5:101","type":""}],"src":"2000:122:101"},{"body":{"nativeSrc":"2180:87:101","nodeType":"YulBlock","src":"2180:87:101","statements":[{"nativeSrc":"2190:29:101","nodeType":"YulAssignment","src":"2190:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"2212:6:101","nodeType":"YulIdentifier","src":"2212:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"2199:12:101","nodeType":"YulIdentifier","src":"2199:12:101"},"nativeSrc":"2199:20:101","nodeType":"YulFunctionCall","src":"2199:20:101"},"variableNames":[{"name":"value","nativeSrc":"2190:5:101","nodeType":"YulIdentifier","src":"2190:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2255:5:101","nodeType":"YulIdentifier","src":"2255:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2228:26:101","nodeType":"YulIdentifier","src":"2228:26:101"},"nativeSrc":"2228:33:101","nodeType":"YulFunctionCall","src":"2228:33:101"},"nativeSrc":"2228:33:101","nodeType":"YulExpressionStatement","src":"2228:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"2128:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2158:6:101","nodeType":"YulTypedName","src":"2158:6:101","type":""},{"name":"end","nativeSrc":"2166:3:101","nodeType":"YulTypedName","src":"2166:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2174:5:101","nodeType":"YulTypedName","src":"2174:5:101","type":""}],"src":"2128:139:101"},{"body":{"nativeSrc":"2392:427:101","nodeType":"YulBlock","src":"2392:427:101","statements":[{"body":{"nativeSrc":"2438:83:101","nodeType":"YulBlock","src":"2438:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2440:77:101","nodeType":"YulIdentifier","src":"2440:77:101"},"nativeSrc":"2440:79:101","nodeType":"YulFunctionCall","src":"2440:79:101"},"nativeSrc":"2440:79:101","nodeType":"YulExpressionStatement","src":"2440:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2413:7:101","nodeType":"YulIdentifier","src":"2413:7:101"},{"name":"headStart","nativeSrc":"2422:9:101","nodeType":"YulIdentifier","src":"2422:9:101"}],"functionName":{"name":"sub","nativeSrc":"2409:3:101","nodeType":"YulIdentifier","src":"2409:3:101"},"nativeSrc":"2409:23:101","nodeType":"YulFunctionCall","src":"2409:23:101"},{"kind":"number","nativeSrc":"2434:2:101","nodeType":"YulLiteral","src":"2434:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2405:3:101","nodeType":"YulIdentifier","src":"2405:3:101"},"nativeSrc":"2405:32:101","nodeType":"YulFunctionCall","src":"2405:32:101"},"nativeSrc":"2402:119:101","nodeType":"YulIf","src":"2402:119:101"},{"nativeSrc":"2531:153:101","nodeType":"YulBlock","src":"2531:153:101","statements":[{"nativeSrc":"2546:15:101","nodeType":"YulVariableDeclaration","src":"2546:15:101","value":{"kind":"number","nativeSrc":"2560:1:101","nodeType":"YulLiteral","src":"2560:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2550:6:101","nodeType":"YulTypedName","src":"2550:6:101","type":""}]},{"nativeSrc":"2575:99:101","nodeType":"YulAssignment","src":"2575:99:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2646:9:101","nodeType":"YulIdentifier","src":"2646:9:101"},{"name":"offset","nativeSrc":"2657:6:101","nodeType":"YulIdentifier","src":"2657:6:101"}],"functionName":{"name":"add","nativeSrc":"2642:3:101","nodeType":"YulIdentifier","src":"2642:3:101"},"nativeSrc":"2642:22:101","nodeType":"YulFunctionCall","src":"2642:22:101"},{"name":"dataEnd","nativeSrc":"2666:7:101","nodeType":"YulIdentifier","src":"2666:7:101"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"2585:56:101","nodeType":"YulIdentifier","src":"2585:56:101"},"nativeSrc":"2585:89:101","nodeType":"YulFunctionCall","src":"2585:89:101"},"variableNames":[{"name":"value0","nativeSrc":"2575:6:101","nodeType":"YulIdentifier","src":"2575:6:101"}]}]},{"nativeSrc":"2694:118:101","nodeType":"YulBlock","src":"2694:118:101","statements":[{"nativeSrc":"2709:16:101","nodeType":"YulVariableDeclaration","src":"2709:16:101","value":{"kind":"number","nativeSrc":"2723:2:101","nodeType":"YulLiteral","src":"2723:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2713:6:101","nodeType":"YulTypedName","src":"2713:6:101","type":""}]},{"nativeSrc":"2739:63:101","nodeType":"YulAssignment","src":"2739:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2774:9:101","nodeType":"YulIdentifier","src":"2774:9:101"},{"name":"offset","nativeSrc":"2785:6:101","nodeType":"YulIdentifier","src":"2785:6:101"}],"functionName":{"name":"add","nativeSrc":"2770:3:101","nodeType":"YulIdentifier","src":"2770:3:101"},"nativeSrc":"2770:22:101","nodeType":"YulFunctionCall","src":"2770:22:101"},{"name":"dataEnd","nativeSrc":"2794:7:101","nodeType":"YulIdentifier","src":"2794:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2749:20:101","nodeType":"YulIdentifier","src":"2749:20:101"},"nativeSrc":"2749:53:101","nodeType":"YulFunctionCall","src":"2749:53:101"},"variableNames":[{"name":"value1","nativeSrc":"2739:6:101","nodeType":"YulIdentifier","src":"2739:6:101"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730t_address","nativeSrc":"2273:546:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2354:9:101","nodeType":"YulTypedName","src":"2354:9:101","type":""},{"name":"dataEnd","nativeSrc":"2365:7:101","nodeType":"YulTypedName","src":"2365:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2377:6:101","nodeType":"YulTypedName","src":"2377:6:101","type":""},{"name":"value1","nativeSrc":"2385:6:101","nodeType":"YulTypedName","src":"2385:6:101","type":""}],"src":"2273:546:101"},{"body":{"nativeSrc":"2914:28:101","nodeType":"YulBlock","src":"2914:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2931:1:101","nodeType":"YulLiteral","src":"2931:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"2934:1:101","nodeType":"YulLiteral","src":"2934:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2924:6:101","nodeType":"YulIdentifier","src":"2924:6:101"},"nativeSrc":"2924:12:101","nodeType":"YulFunctionCall","src":"2924:12:101"},"nativeSrc":"2924:12:101","nodeType":"YulExpressionStatement","src":"2924:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2825:117:101","nodeType":"YulFunctionDefinition","src":"2825:117:101"},{"body":{"nativeSrc":"3037:28:101","nodeType":"YulBlock","src":"3037:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3054:1:101","nodeType":"YulLiteral","src":"3054:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3057:1:101","nodeType":"YulLiteral","src":"3057:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3047:6:101","nodeType":"YulIdentifier","src":"3047:6:101"},"nativeSrc":"3047:12:101","nodeType":"YulFunctionCall","src":"3047:12:101"},"nativeSrc":"3047:12:101","nodeType":"YulExpressionStatement","src":"3047:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2948:117:101","nodeType":"YulFunctionDefinition","src":"2948:117:101"},{"body":{"nativeSrc":"3119:54:101","nodeType":"YulBlock","src":"3119:54:101","statements":[{"nativeSrc":"3129:38:101","nodeType":"YulAssignment","src":"3129:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3147:5:101","nodeType":"YulIdentifier","src":"3147:5:101"},{"kind":"number","nativeSrc":"3154:2:101","nodeType":"YulLiteral","src":"3154:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3143:3:101","nodeType":"YulIdentifier","src":"3143:3:101"},"nativeSrc":"3143:14:101","nodeType":"YulFunctionCall","src":"3143:14:101"},{"arguments":[{"kind":"number","nativeSrc":"3163:2:101","nodeType":"YulLiteral","src":"3163:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3159:3:101","nodeType":"YulIdentifier","src":"3159:3:101"},"nativeSrc":"3159:7:101","nodeType":"YulFunctionCall","src":"3159:7:101"}],"functionName":{"name":"and","nativeSrc":"3139:3:101","nodeType":"YulIdentifier","src":"3139:3:101"},"nativeSrc":"3139:28:101","nodeType":"YulFunctionCall","src":"3139:28:101"},"variableNames":[{"name":"result","nativeSrc":"3129:6:101","nodeType":"YulIdentifier","src":"3129:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3071:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3102:5:101","nodeType":"YulTypedName","src":"3102:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3112:6:101","nodeType":"YulTypedName","src":"3112:6:101","type":""}],"src":"3071:102:101"},{"body":{"nativeSrc":"3207:152:101","nodeType":"YulBlock","src":"3207:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3224:1:101","nodeType":"YulLiteral","src":"3224:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3227:77:101","nodeType":"YulLiteral","src":"3227:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3217:6:101","nodeType":"YulIdentifier","src":"3217:6:101"},"nativeSrc":"3217:88:101","nodeType":"YulFunctionCall","src":"3217:88:101"},"nativeSrc":"3217:88:101","nodeType":"YulExpressionStatement","src":"3217:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3321:1:101","nodeType":"YulLiteral","src":"3321:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"3324:4:101","nodeType":"YulLiteral","src":"3324:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3314:6:101","nodeType":"YulIdentifier","src":"3314:6:101"},"nativeSrc":"3314:15:101","nodeType":"YulFunctionCall","src":"3314:15:101"},"nativeSrc":"3314:15:101","nodeType":"YulExpressionStatement","src":"3314:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3345:1:101","nodeType":"YulLiteral","src":"3345:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"3348:4:101","nodeType":"YulLiteral","src":"3348:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3338:6:101","nodeType":"YulIdentifier","src":"3338:6:101"},"nativeSrc":"3338:15:101","nodeType":"YulFunctionCall","src":"3338:15:101"},"nativeSrc":"3338:15:101","nodeType":"YulExpressionStatement","src":"3338:15:101"}]},"name":"panic_error_0x41","nativeSrc":"3179:180:101","nodeType":"YulFunctionDefinition","src":"3179:180:101"},{"body":{"nativeSrc":"3408:238:101","nodeType":"YulBlock","src":"3408:238:101","statements":[{"nativeSrc":"3418:58:101","nodeType":"YulVariableDeclaration","src":"3418:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"3440:6:101","nodeType":"YulIdentifier","src":"3440:6:101"},{"arguments":[{"name":"size","nativeSrc":"3470:4:101","nodeType":"YulIdentifier","src":"3470:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3448:21:101","nodeType":"YulIdentifier","src":"3448:21:101"},"nativeSrc":"3448:27:101","nodeType":"YulFunctionCall","src":"3448:27:101"}],"functionName":{"name":"add","nativeSrc":"3436:3:101","nodeType":"YulIdentifier","src":"3436:3:101"},"nativeSrc":"3436:40:101","nodeType":"YulFunctionCall","src":"3436:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"3422:10:101","nodeType":"YulTypedName","src":"3422:10:101","type":""}]},{"body":{"nativeSrc":"3587:22:101","nodeType":"YulBlock","src":"3587:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3589:16:101","nodeType":"YulIdentifier","src":"3589:16:101"},"nativeSrc":"3589:18:101","nodeType":"YulFunctionCall","src":"3589:18:101"},"nativeSrc":"3589:18:101","nodeType":"YulExpressionStatement","src":"3589:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3530:10:101","nodeType":"YulIdentifier","src":"3530:10:101"},{"kind":"number","nativeSrc":"3542:18:101","nodeType":"YulLiteral","src":"3542:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3527:2:101","nodeType":"YulIdentifier","src":"3527:2:101"},"nativeSrc":"3527:34:101","nodeType":"YulFunctionCall","src":"3527:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3566:10:101","nodeType":"YulIdentifier","src":"3566:10:101"},{"name":"memPtr","nativeSrc":"3578:6:101","nodeType":"YulIdentifier","src":"3578:6:101"}],"functionName":{"name":"lt","nativeSrc":"3563:2:101","nodeType":"YulIdentifier","src":"3563:2:101"},"nativeSrc":"3563:22:101","nodeType":"YulFunctionCall","src":"3563:22:101"}],"functionName":{"name":"or","nativeSrc":"3524:2:101","nodeType":"YulIdentifier","src":"3524:2:101"},"nativeSrc":"3524:62:101","nodeType":"YulFunctionCall","src":"3524:62:101"},"nativeSrc":"3521:88:101","nodeType":"YulIf","src":"3521:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3625:2:101","nodeType":"YulLiteral","src":"3625:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3629:10:101","nodeType":"YulIdentifier","src":"3629:10:101"}],"functionName":{"name":"mstore","nativeSrc":"3618:6:101","nodeType":"YulIdentifier","src":"3618:6:101"},"nativeSrc":"3618:22:101","nodeType":"YulFunctionCall","src":"3618:22:101"},"nativeSrc":"3618:22:101","nodeType":"YulExpressionStatement","src":"3618:22:101"}]},"name":"finalize_allocation","nativeSrc":"3365:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3394:6:101","nodeType":"YulTypedName","src":"3394:6:101","type":""},{"name":"size","nativeSrc":"3402:4:101","nodeType":"YulTypedName","src":"3402:4:101","type":""}],"src":"3365:281:101"},{"body":{"nativeSrc":"3693:88:101","nodeType":"YulBlock","src":"3693:88:101","statements":[{"nativeSrc":"3703:30:101","nodeType":"YulAssignment","src":"3703:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"3713:18:101","nodeType":"YulIdentifier","src":"3713:18:101"},"nativeSrc":"3713:20:101","nodeType":"YulFunctionCall","src":"3713:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"3703:6:101","nodeType":"YulIdentifier","src":"3703:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3762:6:101","nodeType":"YulIdentifier","src":"3762:6:101"},{"name":"size","nativeSrc":"3770:4:101","nodeType":"YulIdentifier","src":"3770:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"3742:19:101","nodeType":"YulIdentifier","src":"3742:19:101"},"nativeSrc":"3742:33:101","nodeType":"YulFunctionCall","src":"3742:33:101"},"nativeSrc":"3742:33:101","nodeType":"YulExpressionStatement","src":"3742:33:101"}]},"name":"allocate_memory","nativeSrc":"3652:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"3677:4:101","nodeType":"YulTypedName","src":"3677:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"3686:6:101","nodeType":"YulTypedName","src":"3686:6:101","type":""}],"src":"3652:129:101"},{"body":{"nativeSrc":"3853:241:101","nodeType":"YulBlock","src":"3853:241:101","statements":[{"body":{"nativeSrc":"3958:22:101","nodeType":"YulBlock","src":"3958:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3960:16:101","nodeType":"YulIdentifier","src":"3960:16:101"},"nativeSrc":"3960:18:101","nodeType":"YulFunctionCall","src":"3960:18:101"},"nativeSrc":"3960:18:101","nodeType":"YulExpressionStatement","src":"3960:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3930:6:101","nodeType":"YulIdentifier","src":"3930:6:101"},{"kind":"number","nativeSrc":"3938:18:101","nodeType":"YulLiteral","src":"3938:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3927:2:101","nodeType":"YulIdentifier","src":"3927:2:101"},"nativeSrc":"3927:30:101","nodeType":"YulFunctionCall","src":"3927:30:101"},"nativeSrc":"3924:56:101","nodeType":"YulIf","src":"3924:56:101"},{"nativeSrc":"3990:37:101","nodeType":"YulAssignment","src":"3990:37:101","value":{"arguments":[{"name":"length","nativeSrc":"4020:6:101","nodeType":"YulIdentifier","src":"4020:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3998:21:101","nodeType":"YulIdentifier","src":"3998:21:101"},"nativeSrc":"3998:29:101","nodeType":"YulFunctionCall","src":"3998:29:101"},"variableNames":[{"name":"size","nativeSrc":"3990:4:101","nodeType":"YulIdentifier","src":"3990:4:101"}]},{"nativeSrc":"4064:23:101","nodeType":"YulAssignment","src":"4064:23:101","value":{"arguments":[{"name":"size","nativeSrc":"4076:4:101","nodeType":"YulIdentifier","src":"4076:4:101"},{"kind":"number","nativeSrc":"4082:4:101","nodeType":"YulLiteral","src":"4082:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4072:3:101","nodeType":"YulIdentifier","src":"4072:3:101"},"nativeSrc":"4072:15:101","nodeType":"YulFunctionCall","src":"4072:15:101"},"variableNames":[{"name":"size","nativeSrc":"4064:4:101","nodeType":"YulIdentifier","src":"4064:4:101"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"3787:307:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"3837:6:101","nodeType":"YulTypedName","src":"3837:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"3848:4:101","nodeType":"YulTypedName","src":"3848:4:101","type":""}],"src":"3787:307:101"},{"body":{"nativeSrc":"4164:84:101","nodeType":"YulBlock","src":"4164:84:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4188:3:101","nodeType":"YulIdentifier","src":"4188:3:101"},{"name":"src","nativeSrc":"4193:3:101","nodeType":"YulIdentifier","src":"4193:3:101"},{"name":"length","nativeSrc":"4198:6:101","nodeType":"YulIdentifier","src":"4198:6:101"}],"functionName":{"name":"calldatacopy","nativeSrc":"4175:12:101","nodeType":"YulIdentifier","src":"4175:12:101"},"nativeSrc":"4175:30:101","nodeType":"YulFunctionCall","src":"4175:30:101"},"nativeSrc":"4175:30:101","nodeType":"YulExpressionStatement","src":"4175:30:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4225:3:101","nodeType":"YulIdentifier","src":"4225:3:101"},{"name":"length","nativeSrc":"4230:6:101","nodeType":"YulIdentifier","src":"4230:6:101"}],"functionName":{"name":"add","nativeSrc":"4221:3:101","nodeType":"YulIdentifier","src":"4221:3:101"},"nativeSrc":"4221:16:101","nodeType":"YulFunctionCall","src":"4221:16:101"},{"kind":"number","nativeSrc":"4239:1:101","nodeType":"YulLiteral","src":"4239:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4214:6:101","nodeType":"YulIdentifier","src":"4214:6:101"},"nativeSrc":"4214:27:101","nodeType":"YulFunctionCall","src":"4214:27:101"},"nativeSrc":"4214:27:101","nodeType":"YulExpressionStatement","src":"4214:27:101"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4100:148:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4146:3:101","nodeType":"YulTypedName","src":"4146:3:101","type":""},{"name":"dst","nativeSrc":"4151:3:101","nodeType":"YulTypedName","src":"4151:3:101","type":""},{"name":"length","nativeSrc":"4156:6:101","nodeType":"YulTypedName","src":"4156:6:101","type":""}],"src":"4100:148:101"},{"body":{"nativeSrc":"4337:340:101","nodeType":"YulBlock","src":"4337:340:101","statements":[{"nativeSrc":"4347:74:101","nodeType":"YulAssignment","src":"4347:74:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4413:6:101","nodeType":"YulIdentifier","src":"4413:6:101"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"4372:40:101","nodeType":"YulIdentifier","src":"4372:40:101"},"nativeSrc":"4372:48:101","nodeType":"YulFunctionCall","src":"4372:48:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"4356:15:101","nodeType":"YulIdentifier","src":"4356:15:101"},"nativeSrc":"4356:65:101","nodeType":"YulFunctionCall","src":"4356:65:101"},"variableNames":[{"name":"array","nativeSrc":"4347:5:101","nodeType":"YulIdentifier","src":"4347:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"4437:5:101","nodeType":"YulIdentifier","src":"4437:5:101"},{"name":"length","nativeSrc":"4444:6:101","nodeType":"YulIdentifier","src":"4444:6:101"}],"functionName":{"name":"mstore","nativeSrc":"4430:6:101","nodeType":"YulIdentifier","src":"4430:6:101"},"nativeSrc":"4430:21:101","nodeType":"YulFunctionCall","src":"4430:21:101"},"nativeSrc":"4430:21:101","nodeType":"YulExpressionStatement","src":"4430:21:101"},{"nativeSrc":"4460:27:101","nodeType":"YulVariableDeclaration","src":"4460:27:101","value":{"arguments":[{"name":"array","nativeSrc":"4475:5:101","nodeType":"YulIdentifier","src":"4475:5:101"},{"kind":"number","nativeSrc":"4482:4:101","nodeType":"YulLiteral","src":"4482:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4471:3:101","nodeType":"YulIdentifier","src":"4471:3:101"},"nativeSrc":"4471:16:101","nodeType":"YulFunctionCall","src":"4471:16:101"},"variables":[{"name":"dst","nativeSrc":"4464:3:101","nodeType":"YulTypedName","src":"4464:3:101","type":""}]},{"body":{"nativeSrc":"4525:83:101","nodeType":"YulBlock","src":"4525:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"4527:77:101","nodeType":"YulIdentifier","src":"4527:77:101"},"nativeSrc":"4527:79:101","nodeType":"YulFunctionCall","src":"4527:79:101"},"nativeSrc":"4527:79:101","nodeType":"YulExpressionStatement","src":"4527:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4506:3:101","nodeType":"YulIdentifier","src":"4506:3:101"},{"name":"length","nativeSrc":"4511:6:101","nodeType":"YulIdentifier","src":"4511:6:101"}],"functionName":{"name":"add","nativeSrc":"4502:3:101","nodeType":"YulIdentifier","src":"4502:3:101"},"nativeSrc":"4502:16:101","nodeType":"YulFunctionCall","src":"4502:16:101"},{"name":"end","nativeSrc":"4520:3:101","nodeType":"YulIdentifier","src":"4520:3:101"}],"functionName":{"name":"gt","nativeSrc":"4499:2:101","nodeType":"YulIdentifier","src":"4499:2:101"},"nativeSrc":"4499:25:101","nodeType":"YulFunctionCall","src":"4499:25:101"},"nativeSrc":"4496:112:101","nodeType":"YulIf","src":"4496:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"4654:3:101","nodeType":"YulIdentifier","src":"4654:3:101"},{"name":"dst","nativeSrc":"4659:3:101","nodeType":"YulIdentifier","src":"4659:3:101"},{"name":"length","nativeSrc":"4664:6:101","nodeType":"YulIdentifier","src":"4664:6:101"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4617:36:101","nodeType":"YulIdentifier","src":"4617:36:101"},"nativeSrc":"4617:54:101","nodeType":"YulFunctionCall","src":"4617:54:101"},"nativeSrc":"4617:54:101","nodeType":"YulExpressionStatement","src":"4617:54:101"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"4254:423:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4310:3:101","nodeType":"YulTypedName","src":"4310:3:101","type":""},{"name":"length","nativeSrc":"4315:6:101","nodeType":"YulTypedName","src":"4315:6:101","type":""},{"name":"end","nativeSrc":"4323:3:101","nodeType":"YulTypedName","src":"4323:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4331:5:101","nodeType":"YulTypedName","src":"4331:5:101","type":""}],"src":"4254:423:101"},{"body":{"nativeSrc":"4757:277:101","nodeType":"YulBlock","src":"4757:277:101","statements":[{"body":{"nativeSrc":"4806:83:101","nodeType":"YulBlock","src":"4806:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4808:77:101","nodeType":"YulIdentifier","src":"4808:77:101"},"nativeSrc":"4808:79:101","nodeType":"YulFunctionCall","src":"4808:79:101"},"nativeSrc":"4808:79:101","nodeType":"YulExpressionStatement","src":"4808:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4785:6:101","nodeType":"YulIdentifier","src":"4785:6:101"},{"kind":"number","nativeSrc":"4793:4:101","nodeType":"YulLiteral","src":"4793:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4781:3:101","nodeType":"YulIdentifier","src":"4781:3:101"},"nativeSrc":"4781:17:101","nodeType":"YulFunctionCall","src":"4781:17:101"},{"name":"end","nativeSrc":"4800:3:101","nodeType":"YulIdentifier","src":"4800:3:101"}],"functionName":{"name":"slt","nativeSrc":"4777:3:101","nodeType":"YulIdentifier","src":"4777:3:101"},"nativeSrc":"4777:27:101","nodeType":"YulFunctionCall","src":"4777:27:101"}],"functionName":{"name":"iszero","nativeSrc":"4770:6:101","nodeType":"YulIdentifier","src":"4770:6:101"},"nativeSrc":"4770:35:101","nodeType":"YulFunctionCall","src":"4770:35:101"},"nativeSrc":"4767:122:101","nodeType":"YulIf","src":"4767:122:101"},{"nativeSrc":"4898:34:101","nodeType":"YulVariableDeclaration","src":"4898:34:101","value":{"arguments":[{"name":"offset","nativeSrc":"4925:6:101","nodeType":"YulIdentifier","src":"4925:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"4912:12:101","nodeType":"YulIdentifier","src":"4912:12:101"},"nativeSrc":"4912:20:101","nodeType":"YulFunctionCall","src":"4912:20:101"},"variables":[{"name":"length","nativeSrc":"4902:6:101","nodeType":"YulTypedName","src":"4902:6:101","type":""}]},{"nativeSrc":"4941:87:101","nodeType":"YulAssignment","src":"4941:87:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5001:6:101","nodeType":"YulIdentifier","src":"5001:6:101"},{"kind":"number","nativeSrc":"5009:4:101","nodeType":"YulLiteral","src":"5009:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4997:3:101","nodeType":"YulIdentifier","src":"4997:3:101"},"nativeSrc":"4997:17:101","nodeType":"YulFunctionCall","src":"4997:17:101"},{"name":"length","nativeSrc":"5016:6:101","nodeType":"YulIdentifier","src":"5016:6:101"},{"name":"end","nativeSrc":"5024:3:101","nodeType":"YulIdentifier","src":"5024:3:101"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"4950:46:101","nodeType":"YulIdentifier","src":"4950:46:101"},"nativeSrc":"4950:78:101","nodeType":"YulFunctionCall","src":"4950:78:101"},"variableNames":[{"name":"array","nativeSrc":"4941:5:101","nodeType":"YulIdentifier","src":"4941:5:101"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4696:338:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4735:6:101","nodeType":"YulTypedName","src":"4735:6:101","type":""},{"name":"end","nativeSrc":"4743:3:101","nodeType":"YulTypedName","src":"4743:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4751:5:101","nodeType":"YulTypedName","src":"4751:5:101","type":""}],"src":"4696:338:101"},{"body":{"nativeSrc":"5185:724:101","nodeType":"YulBlock","src":"5185:724:101","statements":[{"body":{"nativeSrc":"5231:83:101","nodeType":"YulBlock","src":"5231:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5233:77:101","nodeType":"YulIdentifier","src":"5233:77:101"},"nativeSrc":"5233:79:101","nodeType":"YulFunctionCall","src":"5233:79:101"},"nativeSrc":"5233:79:101","nodeType":"YulExpressionStatement","src":"5233:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5206:7:101","nodeType":"YulIdentifier","src":"5206:7:101"},{"name":"headStart","nativeSrc":"5215:9:101","nodeType":"YulIdentifier","src":"5215:9:101"}],"functionName":{"name":"sub","nativeSrc":"5202:3:101","nodeType":"YulIdentifier","src":"5202:3:101"},"nativeSrc":"5202:23:101","nodeType":"YulFunctionCall","src":"5202:23:101"},{"kind":"number","nativeSrc":"5227:2:101","nodeType":"YulLiteral","src":"5227:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5198:3:101","nodeType":"YulIdentifier","src":"5198:3:101"},"nativeSrc":"5198:32:101","nodeType":"YulFunctionCall","src":"5198:32:101"},"nativeSrc":"5195:119:101","nodeType":"YulIf","src":"5195:119:101"},{"nativeSrc":"5324:153:101","nodeType":"YulBlock","src":"5324:153:101","statements":[{"nativeSrc":"5339:15:101","nodeType":"YulVariableDeclaration","src":"5339:15:101","value":{"kind":"number","nativeSrc":"5353:1:101","nodeType":"YulLiteral","src":"5353:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5343:6:101","nodeType":"YulTypedName","src":"5343:6:101","type":""}]},{"nativeSrc":"5368:99:101","nodeType":"YulAssignment","src":"5368:99:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5439:9:101","nodeType":"YulIdentifier","src":"5439:9:101"},{"name":"offset","nativeSrc":"5450:6:101","nodeType":"YulIdentifier","src":"5450:6:101"}],"functionName":{"name":"add","nativeSrc":"5435:3:101","nodeType":"YulIdentifier","src":"5435:3:101"},"nativeSrc":"5435:22:101","nodeType":"YulFunctionCall","src":"5435:22:101"},{"name":"dataEnd","nativeSrc":"5459:7:101","nodeType":"YulIdentifier","src":"5459:7:101"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$9730","nativeSrc":"5378:56:101","nodeType":"YulIdentifier","src":"5378:56:101"},"nativeSrc":"5378:89:101","nodeType":"YulFunctionCall","src":"5378:89:101"},"variableNames":[{"name":"value0","nativeSrc":"5368:6:101","nodeType":"YulIdentifier","src":"5368:6:101"}]}]},{"nativeSrc":"5487:118:101","nodeType":"YulBlock","src":"5487:118:101","statements":[{"nativeSrc":"5502:16:101","nodeType":"YulVariableDeclaration","src":"5502:16:101","value":{"kind":"number","nativeSrc":"5516:2:101","nodeType":"YulLiteral","src":"5516:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5506:6:101","nodeType":"YulTypedName","src":"5506:6:101","type":""}]},{"nativeSrc":"5532:63:101","nodeType":"YulAssignment","src":"5532:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5567:9:101","nodeType":"YulIdentifier","src":"5567:9:101"},{"name":"offset","nativeSrc":"5578:6:101","nodeType":"YulIdentifier","src":"5578:6:101"}],"functionName":{"name":"add","nativeSrc":"5563:3:101","nodeType":"YulIdentifier","src":"5563:3:101"},"nativeSrc":"5563:22:101","nodeType":"YulFunctionCall","src":"5563:22:101"},{"name":"dataEnd","nativeSrc":"5587:7:101","nodeType":"YulIdentifier","src":"5587:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5542:20:101","nodeType":"YulIdentifier","src":"5542:20:101"},"nativeSrc":"5542:53:101","nodeType":"YulFunctionCall","src":"5542:53:101"},"variableNames":[{"name":"value1","nativeSrc":"5532:6:101","nodeType":"YulIdentifier","src":"5532:6:101"}]}]},{"nativeSrc":"5615:287:101","nodeType":"YulBlock","src":"5615:287:101","statements":[{"nativeSrc":"5630:46:101","nodeType":"YulVariableDeclaration","src":"5630:46:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5661:9:101","nodeType":"YulIdentifier","src":"5661:9:101"},{"kind":"number","nativeSrc":"5672:2:101","nodeType":"YulLiteral","src":"5672:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5657:3:101","nodeType":"YulIdentifier","src":"5657:3:101"},"nativeSrc":"5657:18:101","nodeType":"YulFunctionCall","src":"5657:18:101"}],"functionName":{"name":"calldataload","nativeSrc":"5644:12:101","nodeType":"YulIdentifier","src":"5644:12:101"},"nativeSrc":"5644:32:101","nodeType":"YulFunctionCall","src":"5644:32:101"},"variables":[{"name":"offset","nativeSrc":"5634:6:101","nodeType":"YulTypedName","src":"5634:6:101","type":""}]},{"body":{"nativeSrc":"5723:83:101","nodeType":"YulBlock","src":"5723:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5725:77:101","nodeType":"YulIdentifier","src":"5725:77:101"},"nativeSrc":"5725:79:101","nodeType":"YulFunctionCall","src":"5725:79:101"},"nativeSrc":"5725:79:101","nodeType":"YulExpressionStatement","src":"5725:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5695:6:101","nodeType":"YulIdentifier","src":"5695:6:101"},{"kind":"number","nativeSrc":"5703:18:101","nodeType":"YulLiteral","src":"5703:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5692:2:101","nodeType":"YulIdentifier","src":"5692:2:101"},"nativeSrc":"5692:30:101","nodeType":"YulFunctionCall","src":"5692:30:101"},"nativeSrc":"5689:117:101","nodeType":"YulIf","src":"5689:117:101"},{"nativeSrc":"5820:72:101","nodeType":"YulAssignment","src":"5820:72:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5864:9:101","nodeType":"YulIdentifier","src":"5864:9:101"},{"name":"offset","nativeSrc":"5875:6:101","nodeType":"YulIdentifier","src":"5875:6:101"}],"functionName":{"name":"add","nativeSrc":"5860:3:101","nodeType":"YulIdentifier","src":"5860:3:101"},"nativeSrc":"5860:22:101","nodeType":"YulFunctionCall","src":"5860:22:101"},{"name":"dataEnd","nativeSrc":"5884:7:101","nodeType":"YulIdentifier","src":"5884:7:101"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"5830:29:101","nodeType":"YulIdentifier","src":"5830:29:101"},"nativeSrc":"5830:62:101","nodeType":"YulFunctionCall","src":"5830:62:101"},"variableNames":[{"name":"value2","nativeSrc":"5820:6:101","nodeType":"YulIdentifier","src":"5820:6:101"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730t_addresst_bytes_memory_ptr","nativeSrc":"5040:869:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5139:9:101","nodeType":"YulTypedName","src":"5139:9:101","type":""},{"name":"dataEnd","nativeSrc":"5150:7:101","nodeType":"YulTypedName","src":"5150:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5162:6:101","nodeType":"YulTypedName","src":"5162:6:101","type":""},{"name":"value1","nativeSrc":"5170:6:101","nodeType":"YulTypedName","src":"5170:6:101","type":""},{"name":"value2","nativeSrc":"5178:6:101","nodeType":"YulTypedName","src":"5178:6:101","type":""}],"src":"5040:869:101"},{"body":{"nativeSrc":"5981:263:101","nodeType":"YulBlock","src":"5981:263:101","statements":[{"body":{"nativeSrc":"6027:83:101","nodeType":"YulBlock","src":"6027:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6029:77:101","nodeType":"YulIdentifier","src":"6029:77:101"},"nativeSrc":"6029:79:101","nodeType":"YulFunctionCall","src":"6029:79:101"},"nativeSrc":"6029:79:101","nodeType":"YulExpressionStatement","src":"6029:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6002:7:101","nodeType":"YulIdentifier","src":"6002:7:101"},{"name":"headStart","nativeSrc":"6011:9:101","nodeType":"YulIdentifier","src":"6011:9:101"}],"functionName":{"name":"sub","nativeSrc":"5998:3:101","nodeType":"YulIdentifier","src":"5998:3:101"},"nativeSrc":"5998:23:101","nodeType":"YulFunctionCall","src":"5998:23:101"},{"kind":"number","nativeSrc":"6023:2:101","nodeType":"YulLiteral","src":"6023:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5994:3:101","nodeType":"YulIdentifier","src":"5994:3:101"},"nativeSrc":"5994:32:101","nodeType":"YulFunctionCall","src":"5994:32:101"},"nativeSrc":"5991:119:101","nodeType":"YulIf","src":"5991:119:101"},{"nativeSrc":"6120:117:101","nodeType":"YulBlock","src":"6120:117:101","statements":[{"nativeSrc":"6135:15:101","nodeType":"YulVariableDeclaration","src":"6135:15:101","value":{"kind":"number","nativeSrc":"6149:1:101","nodeType":"YulLiteral","src":"6149:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6139:6:101","nodeType":"YulTypedName","src":"6139:6:101","type":""}]},{"nativeSrc":"6164:63:101","nodeType":"YulAssignment","src":"6164:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6199:9:101","nodeType":"YulIdentifier","src":"6199:9:101"},{"name":"offset","nativeSrc":"6210:6:101","nodeType":"YulIdentifier","src":"6210:6:101"}],"functionName":{"name":"add","nativeSrc":"6195:3:101","nodeType":"YulIdentifier","src":"6195:3:101"},"nativeSrc":"6195:22:101","nodeType":"YulFunctionCall","src":"6195:22:101"},{"name":"dataEnd","nativeSrc":"6219:7:101","nodeType":"YulIdentifier","src":"6219:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6174:20:101","nodeType":"YulIdentifier","src":"6174:20:101"},"nativeSrc":"6174:53:101","nodeType":"YulFunctionCall","src":"6174:53:101"},"variableNames":[{"name":"value0","nativeSrc":"6164:6:101","nodeType":"YulIdentifier","src":"6164:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5915:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5951:9:101","nodeType":"YulTypedName","src":"5951:9:101","type":""},{"name":"dataEnd","nativeSrc":"5962:7:101","nodeType":"YulTypedName","src":"5962:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5974:6:101","nodeType":"YulTypedName","src":"5974:6:101","type":""}],"src":"5915:329:101"},{"body":{"nativeSrc":"6363:34:101","nodeType":"YulBlock","src":"6363:34:101","statements":[{"nativeSrc":"6373:18:101","nodeType":"YulAssignment","src":"6373:18:101","value":{"name":"pos","nativeSrc":"6388:3:101","nodeType":"YulIdentifier","src":"6388:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"6373:11:101","nodeType":"YulIdentifier","src":"6373:11:101"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6250:147:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6335:3:101","nodeType":"YulTypedName","src":"6335:3:101","type":""},{"name":"length","nativeSrc":"6340:6:101","nodeType":"YulTypedName","src":"6340:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6351:11:101","nodeType":"YulTypedName","src":"6351:11:101","type":""}],"src":"6250:147:101"},{"body":{"nativeSrc":"6509:108:101","nodeType":"YulBlock","src":"6509:108:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6531:6:101","nodeType":"YulIdentifier","src":"6531:6:101"},{"kind":"number","nativeSrc":"6539:1:101","nodeType":"YulLiteral","src":"6539:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6527:3:101","nodeType":"YulIdentifier","src":"6527:3:101"},"nativeSrc":"6527:14:101","nodeType":"YulFunctionCall","src":"6527:14:101"},{"kind":"number","nativeSrc":"6543:66:101","nodeType":"YulLiteral","src":"6543:66:101","type":"","value":"0x5c60da1b00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"6520:6:101","nodeType":"YulIdentifier","src":"6520:6:101"},"nativeSrc":"6520:90:101","nodeType":"YulFunctionCall","src":"6520:90:101"},"nativeSrc":"6520:90:101","nodeType":"YulExpressionStatement","src":"6520:90:101"}]},"name":"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","nativeSrc":"6403:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6501:6:101","nodeType":"YulTypedName","src":"6501:6:101","type":""}],"src":"6403:214:101"},{"body":{"nativeSrc":"6786:235:101","nodeType":"YulBlock","src":"6786:235:101","statements":[{"nativeSrc":"6796:90:101","nodeType":"YulAssignment","src":"6796:90:101","value":{"arguments":[{"name":"pos","nativeSrc":"6879:3:101","nodeType":"YulIdentifier","src":"6879:3:101"},{"kind":"number","nativeSrc":"6884:1:101","nodeType":"YulLiteral","src":"6884:1:101","type":"","value":"4"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6803:75:101","nodeType":"YulIdentifier","src":"6803:75:101"},"nativeSrc":"6803:83:101","nodeType":"YulFunctionCall","src":"6803:83:101"},"variableNames":[{"name":"pos","nativeSrc":"6796:3:101","nodeType":"YulIdentifier","src":"6796:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6984:3:101","nodeType":"YulIdentifier","src":"6984:3:101"}],"functionName":{"name":"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","nativeSrc":"6895:88:101","nodeType":"YulIdentifier","src":"6895:88:101"},"nativeSrc":"6895:93:101","nodeType":"YulFunctionCall","src":"6895:93:101"},"nativeSrc":"6895:93:101","nodeType":"YulExpressionStatement","src":"6895:93:101"},{"nativeSrc":"6997:18:101","nodeType":"YulAssignment","src":"6997:18:101","value":{"arguments":[{"name":"pos","nativeSrc":"7008:3:101","nodeType":"YulIdentifier","src":"7008:3:101"},{"kind":"number","nativeSrc":"7013:1:101","nodeType":"YulLiteral","src":"7013:1:101","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7004:3:101","nodeType":"YulIdentifier","src":"7004:3:101"},"nativeSrc":"7004:11:101","nodeType":"YulFunctionCall","src":"7004:11:101"},"variableNames":[{"name":"end","nativeSrc":"6997:3:101","nodeType":"YulIdentifier","src":"6997:3:101"}]}]},"name":"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6623:398:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6774:3:101","nodeType":"YulTypedName","src":"6774:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6782:3:101","nodeType":"YulTypedName","src":"6782:3:101","type":""}],"src":"6623:398:101"},{"body":{"nativeSrc":"7215:191:101","nodeType":"YulBlock","src":"7215:191:101","statements":[{"nativeSrc":"7226:154:101","nodeType":"YulAssignment","src":"7226:154:101","value":{"arguments":[{"name":"pos","nativeSrc":"7376:3:101","nodeType":"YulIdentifier","src":"7376:3:101"}],"functionName":{"name":"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7233:141:101","nodeType":"YulIdentifier","src":"7233:141:101"},"nativeSrc":"7233:147:101","nodeType":"YulFunctionCall","src":"7233:147:101"},"variableNames":[{"name":"pos","nativeSrc":"7226:3:101","nodeType":"YulIdentifier","src":"7226:3:101"}]},{"nativeSrc":"7390:10:101","nodeType":"YulAssignment","src":"7390:10:101","value":{"name":"pos","nativeSrc":"7397:3:101","nodeType":"YulIdentifier","src":"7397:3:101"},"variableNames":[{"name":"end","nativeSrc":"7390:3:101","nodeType":"YulIdentifier","src":"7390:3:101"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7027:379:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7202:3:101","nodeType":"YulTypedName","src":"7202:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7211:3:101","nodeType":"YulTypedName","src":"7211:3:101","type":""}],"src":"7027:379:101"},{"body":{"nativeSrc":"7463:87:101","nodeType":"YulBlock","src":"7463:87:101","statements":[{"body":{"nativeSrc":"7528:16:101","nodeType":"YulBlock","src":"7528:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7537:1:101","nodeType":"YulLiteral","src":"7537:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"7540:1:101","nodeType":"YulLiteral","src":"7540:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7530:6:101","nodeType":"YulIdentifier","src":"7530:6:101"},"nativeSrc":"7530:12:101","nodeType":"YulFunctionCall","src":"7530:12:101"},"nativeSrc":"7530:12:101","nodeType":"YulExpressionStatement","src":"7530:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7486:5:101","nodeType":"YulIdentifier","src":"7486:5:101"},{"arguments":[{"name":"value","nativeSrc":"7519:5:101","nodeType":"YulIdentifier","src":"7519:5:101"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"7493:25:101","nodeType":"YulIdentifier","src":"7493:25:101"},"nativeSrc":"7493:32:101","nodeType":"YulFunctionCall","src":"7493:32:101"}],"functionName":{"name":"eq","nativeSrc":"7483:2:101","nodeType":"YulIdentifier","src":"7483:2:101"},"nativeSrc":"7483:43:101","nodeType":"YulFunctionCall","src":"7483:43:101"}],"functionName":{"name":"iszero","nativeSrc":"7476:6:101","nodeType":"YulIdentifier","src":"7476:6:101"},"nativeSrc":"7476:51:101","nodeType":"YulFunctionCall","src":"7476:51:101"},"nativeSrc":"7473:71:101","nodeType":"YulIf","src":"7473:71:101"}]},"name":"validator_revert_t_address_payable","nativeSrc":"7412:138:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7456:5:101","nodeType":"YulTypedName","src":"7456:5:101","type":""}],"src":"7412:138:101"},{"body":{"nativeSrc":"7627:88:101","nodeType":"YulBlock","src":"7627:88:101","statements":[{"nativeSrc":"7637:22:101","nodeType":"YulAssignment","src":"7637:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"7652:6:101","nodeType":"YulIdentifier","src":"7652:6:101"}],"functionName":{"name":"mload","nativeSrc":"7646:5:101","nodeType":"YulIdentifier","src":"7646:5:101"},"nativeSrc":"7646:13:101","nodeType":"YulFunctionCall","src":"7646:13:101"},"variableNames":[{"name":"value","nativeSrc":"7637:5:101","nodeType":"YulIdentifier","src":"7637:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7703:5:101","nodeType":"YulIdentifier","src":"7703:5:101"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"7668:34:101","nodeType":"YulIdentifier","src":"7668:34:101"},"nativeSrc":"7668:41:101","nodeType":"YulFunctionCall","src":"7668:41:101"},"nativeSrc":"7668:41:101","nodeType":"YulExpressionStatement","src":"7668:41:101"}]},"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"7556:159:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7605:6:101","nodeType":"YulTypedName","src":"7605:6:101","type":""},{"name":"end","nativeSrc":"7613:3:101","nodeType":"YulTypedName","src":"7613:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7621:5:101","nodeType":"YulTypedName","src":"7621:5:101","type":""}],"src":"7556:159:101"},{"body":{"nativeSrc":"7806:282:101","nodeType":"YulBlock","src":"7806:282:101","statements":[{"body":{"nativeSrc":"7852:83:101","nodeType":"YulBlock","src":"7852:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7854:77:101","nodeType":"YulIdentifier","src":"7854:77:101"},"nativeSrc":"7854:79:101","nodeType":"YulFunctionCall","src":"7854:79:101"},"nativeSrc":"7854:79:101","nodeType":"YulExpressionStatement","src":"7854:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7827:7:101","nodeType":"YulIdentifier","src":"7827:7:101"},{"name":"headStart","nativeSrc":"7836:9:101","nodeType":"YulIdentifier","src":"7836:9:101"}],"functionName":{"name":"sub","nativeSrc":"7823:3:101","nodeType":"YulIdentifier","src":"7823:3:101"},"nativeSrc":"7823:23:101","nodeType":"YulFunctionCall","src":"7823:23:101"},{"kind":"number","nativeSrc":"7848:2:101","nodeType":"YulLiteral","src":"7848:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7819:3:101","nodeType":"YulIdentifier","src":"7819:3:101"},"nativeSrc":"7819:32:101","nodeType":"YulFunctionCall","src":"7819:32:101"},"nativeSrc":"7816:119:101","nodeType":"YulIf","src":"7816:119:101"},{"nativeSrc":"7945:136:101","nodeType":"YulBlock","src":"7945:136:101","statements":[{"nativeSrc":"7960:15:101","nodeType":"YulVariableDeclaration","src":"7960:15:101","value":{"kind":"number","nativeSrc":"7974:1:101","nodeType":"YulLiteral","src":"7974:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7964:6:101","nodeType":"YulTypedName","src":"7964:6:101","type":""}]},{"nativeSrc":"7989:82:101","nodeType":"YulAssignment","src":"7989:82:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8043:9:101","nodeType":"YulIdentifier","src":"8043:9:101"},{"name":"offset","nativeSrc":"8054:6:101","nodeType":"YulIdentifier","src":"8054:6:101"}],"functionName":{"name":"add","nativeSrc":"8039:3:101","nodeType":"YulIdentifier","src":"8039:3:101"},"nativeSrc":"8039:22:101","nodeType":"YulFunctionCall","src":"8039:22:101"},{"name":"dataEnd","nativeSrc":"8063:7:101","nodeType":"YulIdentifier","src":"8063:7:101"}],"functionName":{"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"7999:39:101","nodeType":"YulIdentifier","src":"7999:39:101"},"nativeSrc":"7999:72:101","nodeType":"YulFunctionCall","src":"7999:72:101"},"variableNames":[{"name":"value0","nativeSrc":"7989:6:101","nodeType":"YulIdentifier","src":"7989:6:101"}]}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"7721:367:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7776:9:101","nodeType":"YulTypedName","src":"7776:9:101","type":""},{"name":"dataEnd","nativeSrc":"7787:7:101","nodeType":"YulTypedName","src":"7787:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7799:6:101","nodeType":"YulTypedName","src":"7799:6:101","type":""}],"src":"7721:367:101"},{"body":{"nativeSrc":"8190:73:101","nodeType":"YulBlock","src":"8190:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8207:3:101","nodeType":"YulIdentifier","src":"8207:3:101"},{"name":"length","nativeSrc":"8212:6:101","nodeType":"YulIdentifier","src":"8212:6:101"}],"functionName":{"name":"mstore","nativeSrc":"8200:6:101","nodeType":"YulIdentifier","src":"8200:6:101"},"nativeSrc":"8200:19:101","nodeType":"YulFunctionCall","src":"8200:19:101"},"nativeSrc":"8200:19:101","nodeType":"YulExpressionStatement","src":"8200:19:101"},{"nativeSrc":"8228:29:101","nodeType":"YulAssignment","src":"8228:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"8247:3:101","nodeType":"YulIdentifier","src":"8247:3:101"},{"kind":"number","nativeSrc":"8252:4:101","nodeType":"YulLiteral","src":"8252:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8243:3:101","nodeType":"YulIdentifier","src":"8243:3:101"},"nativeSrc":"8243:14:101","nodeType":"YulFunctionCall","src":"8243:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"8228:11:101","nodeType":"YulIdentifier","src":"8228:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8094:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8162:3:101","nodeType":"YulTypedName","src":"8162:3:101","type":""},{"name":"length","nativeSrc":"8167:6:101","nodeType":"YulTypedName","src":"8167:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8178:11:101","nodeType":"YulTypedName","src":"8178:11:101","type":""}],"src":"8094:169:101"},{"body":{"nativeSrc":"8375:76:101","nodeType":"YulBlock","src":"8375:76:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8397:6:101","nodeType":"YulIdentifier","src":"8397:6:101"},{"kind":"number","nativeSrc":"8405:1:101","nodeType":"YulLiteral","src":"8405:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8393:3:101","nodeType":"YulIdentifier","src":"8393:3:101"},"nativeSrc":"8393:14:101","nodeType":"YulFunctionCall","src":"8393:14:101"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"8409:34:101","nodeType":"YulLiteral","src":"8409:34:101","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"8386:6:101","nodeType":"YulIdentifier","src":"8386:6:101"},"nativeSrc":"8386:58:101","nodeType":"YulFunctionCall","src":"8386:58:101"},"nativeSrc":"8386:58:101","nodeType":"YulExpressionStatement","src":"8386:58:101"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"8269:182:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8367:6:101","nodeType":"YulTypedName","src":"8367:6:101","type":""}],"src":"8269:182:101"},{"body":{"nativeSrc":"8603:220:101","nodeType":"YulBlock","src":"8603:220:101","statements":[{"nativeSrc":"8613:74:101","nodeType":"YulAssignment","src":"8613:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"8679:3:101","nodeType":"YulIdentifier","src":"8679:3:101"},{"kind":"number","nativeSrc":"8684:2:101","nodeType":"YulLiteral","src":"8684:2:101","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8620:58:101","nodeType":"YulIdentifier","src":"8620:58:101"},"nativeSrc":"8620:67:101","nodeType":"YulFunctionCall","src":"8620:67:101"},"variableNames":[{"name":"pos","nativeSrc":"8613:3:101","nodeType":"YulIdentifier","src":"8613:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8785:3:101","nodeType":"YulIdentifier","src":"8785:3:101"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"8696:88:101","nodeType":"YulIdentifier","src":"8696:88:101"},"nativeSrc":"8696:93:101","nodeType":"YulFunctionCall","src":"8696:93:101"},"nativeSrc":"8696:93:101","nodeType":"YulExpressionStatement","src":"8696:93:101"},{"nativeSrc":"8798:19:101","nodeType":"YulAssignment","src":"8798:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"8809:3:101","nodeType":"YulIdentifier","src":"8809:3:101"},{"kind":"number","nativeSrc":"8814:2:101","nodeType":"YulLiteral","src":"8814:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8805:3:101","nodeType":"YulIdentifier","src":"8805:3:101"},"nativeSrc":"8805:12:101","nodeType":"YulFunctionCall","src":"8805:12:101"},"variableNames":[{"name":"end","nativeSrc":"8798:3:101","nodeType":"YulIdentifier","src":"8798:3:101"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"8457:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8591:3:101","nodeType":"YulTypedName","src":"8591:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8599:3:101","nodeType":"YulTypedName","src":"8599:3:101","type":""}],"src":"8457:366:101"},{"body":{"nativeSrc":"9000:248:101","nodeType":"YulBlock","src":"9000:248:101","statements":[{"nativeSrc":"9010:26:101","nodeType":"YulAssignment","src":"9010:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9022:9:101","nodeType":"YulIdentifier","src":"9022:9:101"},{"kind":"number","nativeSrc":"9033:2:101","nodeType":"YulLiteral","src":"9033:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9018:3:101","nodeType":"YulIdentifier","src":"9018:3:101"},"nativeSrc":"9018:18:101","nodeType":"YulFunctionCall","src":"9018:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9010:4:101","nodeType":"YulIdentifier","src":"9010:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9057:9:101","nodeType":"YulIdentifier","src":"9057:9:101"},{"kind":"number","nativeSrc":"9068:1:101","nodeType":"YulLiteral","src":"9068:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9053:3:101","nodeType":"YulIdentifier","src":"9053:3:101"},"nativeSrc":"9053:17:101","nodeType":"YulFunctionCall","src":"9053:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9076:4:101","nodeType":"YulIdentifier","src":"9076:4:101"},{"name":"headStart","nativeSrc":"9082:9:101","nodeType":"YulIdentifier","src":"9082:9:101"}],"functionName":{"name":"sub","nativeSrc":"9072:3:101","nodeType":"YulIdentifier","src":"9072:3:101"},"nativeSrc":"9072:20:101","nodeType":"YulFunctionCall","src":"9072:20:101"}],"functionName":{"name":"mstore","nativeSrc":"9046:6:101","nodeType":"YulIdentifier","src":"9046:6:101"},"nativeSrc":"9046:47:101","nodeType":"YulFunctionCall","src":"9046:47:101"},"nativeSrc":"9046:47:101","nodeType":"YulExpressionStatement","src":"9046:47:101"},{"nativeSrc":"9102:139:101","nodeType":"YulAssignment","src":"9102:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"9236:4:101","nodeType":"YulIdentifier","src":"9236:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"9110:124:101","nodeType":"YulIdentifier","src":"9110:124:101"},"nativeSrc":"9110:131:101","nodeType":"YulFunctionCall","src":"9110:131:101"},"variableNames":[{"name":"tail","nativeSrc":"9102:4:101","nodeType":"YulIdentifier","src":"9102:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8829:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8980:9:101","nodeType":"YulTypedName","src":"8980:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8995:4:101","nodeType":"YulTypedName","src":"8995:4:101","type":""}],"src":"8829:419:101"},{"body":{"nativeSrc":"9312:40:101","nodeType":"YulBlock","src":"9312:40:101","statements":[{"nativeSrc":"9323:22:101","nodeType":"YulAssignment","src":"9323:22:101","value":{"arguments":[{"name":"value","nativeSrc":"9339:5:101","nodeType":"YulIdentifier","src":"9339:5:101"}],"functionName":{"name":"mload","nativeSrc":"9333:5:101","nodeType":"YulIdentifier","src":"9333:5:101"},"nativeSrc":"9333:12:101","nodeType":"YulFunctionCall","src":"9333:12:101"},"variableNames":[{"name":"length","nativeSrc":"9323:6:101","nodeType":"YulIdentifier","src":"9323:6:101"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"9254:98:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9295:5:101","nodeType":"YulTypedName","src":"9295:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9305:6:101","nodeType":"YulTypedName","src":"9305:6:101","type":""}],"src":"9254:98:101"},{"body":{"nativeSrc":"9453:73:101","nodeType":"YulBlock","src":"9453:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9470:3:101","nodeType":"YulIdentifier","src":"9470:3:101"},{"name":"length","nativeSrc":"9475:6:101","nodeType":"YulIdentifier","src":"9475:6:101"}],"functionName":{"name":"mstore","nativeSrc":"9463:6:101","nodeType":"YulIdentifier","src":"9463:6:101"},"nativeSrc":"9463:19:101","nodeType":"YulFunctionCall","src":"9463:19:101"},"nativeSrc":"9463:19:101","nodeType":"YulExpressionStatement","src":"9463:19:101"},{"nativeSrc":"9491:29:101","nodeType":"YulAssignment","src":"9491:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"9510:3:101","nodeType":"YulIdentifier","src":"9510:3:101"},{"kind":"number","nativeSrc":"9515:4:101","nodeType":"YulLiteral","src":"9515:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9506:3:101","nodeType":"YulIdentifier","src":"9506:3:101"},"nativeSrc":"9506:14:101","nodeType":"YulFunctionCall","src":"9506:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"9491:11:101","nodeType":"YulIdentifier","src":"9491:11:101"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"9358:168:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9425:3:101","nodeType":"YulTypedName","src":"9425:3:101","type":""},{"name":"length","nativeSrc":"9430:6:101","nodeType":"YulTypedName","src":"9430:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"9441:11:101","nodeType":"YulTypedName","src":"9441:11:101","type":""}],"src":"9358:168:101"},{"body":{"nativeSrc":"9594:77:101","nodeType":"YulBlock","src":"9594:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"9611:3:101","nodeType":"YulIdentifier","src":"9611:3:101"},{"name":"src","nativeSrc":"9616:3:101","nodeType":"YulIdentifier","src":"9616:3:101"},{"name":"length","nativeSrc":"9621:6:101","nodeType":"YulIdentifier","src":"9621:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"9605:5:101","nodeType":"YulIdentifier","src":"9605:5:101"},"nativeSrc":"9605:23:101","nodeType":"YulFunctionCall","src":"9605:23:101"},"nativeSrc":"9605:23:101","nodeType":"YulExpressionStatement","src":"9605:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9648:3:101","nodeType":"YulIdentifier","src":"9648:3:101"},{"name":"length","nativeSrc":"9653:6:101","nodeType":"YulIdentifier","src":"9653:6:101"}],"functionName":{"name":"add","nativeSrc":"9644:3:101","nodeType":"YulIdentifier","src":"9644:3:101"},"nativeSrc":"9644:16:101","nodeType":"YulFunctionCall","src":"9644:16:101"},{"kind":"number","nativeSrc":"9662:1:101","nodeType":"YulLiteral","src":"9662:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9637:6:101","nodeType":"YulIdentifier","src":"9637:6:101"},"nativeSrc":"9637:27:101","nodeType":"YulFunctionCall","src":"9637:27:101"},"nativeSrc":"9637:27:101","nodeType":"YulExpressionStatement","src":"9637:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9532:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9576:3:101","nodeType":"YulTypedName","src":"9576:3:101","type":""},{"name":"dst","nativeSrc":"9581:3:101","nodeType":"YulTypedName","src":"9581:3:101","type":""},{"name":"length","nativeSrc":"9586:6:101","nodeType":"YulTypedName","src":"9586:6:101","type":""}],"src":"9532:139:101"},{"body":{"nativeSrc":"9767:283:101","nodeType":"YulBlock","src":"9767:283:101","statements":[{"nativeSrc":"9777:52:101","nodeType":"YulVariableDeclaration","src":"9777:52:101","value":{"arguments":[{"name":"value","nativeSrc":"9823:5:101","nodeType":"YulIdentifier","src":"9823:5:101"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"9791:31:101","nodeType":"YulIdentifier","src":"9791:31:101"},"nativeSrc":"9791:38:101","nodeType":"YulFunctionCall","src":"9791:38:101"},"variables":[{"name":"length","nativeSrc":"9781:6:101","nodeType":"YulTypedName","src":"9781:6:101","type":""}]},{"nativeSrc":"9838:77:101","nodeType":"YulAssignment","src":"9838:77:101","value":{"arguments":[{"name":"pos","nativeSrc":"9903:3:101","nodeType":"YulIdentifier","src":"9903:3:101"},{"name":"length","nativeSrc":"9908:6:101","nodeType":"YulIdentifier","src":"9908:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"9845:57:101","nodeType":"YulIdentifier","src":"9845:57:101"},"nativeSrc":"9845:70:101","nodeType":"YulFunctionCall","src":"9845:70:101"},"variableNames":[{"name":"pos","nativeSrc":"9838:3:101","nodeType":"YulIdentifier","src":"9838:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9963:5:101","nodeType":"YulIdentifier","src":"9963:5:101"},{"kind":"number","nativeSrc":"9970:4:101","nodeType":"YulLiteral","src":"9970:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9959:3:101","nodeType":"YulIdentifier","src":"9959:3:101"},"nativeSrc":"9959:16:101","nodeType":"YulFunctionCall","src":"9959:16:101"},{"name":"pos","nativeSrc":"9977:3:101","nodeType":"YulIdentifier","src":"9977:3:101"},{"name":"length","nativeSrc":"9982:6:101","nodeType":"YulIdentifier","src":"9982:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9924:34:101","nodeType":"YulIdentifier","src":"9924:34:101"},"nativeSrc":"9924:65:101","nodeType":"YulFunctionCall","src":"9924:65:101"},"nativeSrc":"9924:65:101","nodeType":"YulExpressionStatement","src":"9924:65:101"},{"nativeSrc":"9998:46:101","nodeType":"YulAssignment","src":"9998:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"10009:3:101","nodeType":"YulIdentifier","src":"10009:3:101"},{"arguments":[{"name":"length","nativeSrc":"10036:6:101","nodeType":"YulIdentifier","src":"10036:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10014:21:101","nodeType":"YulIdentifier","src":"10014:21:101"},"nativeSrc":"10014:29:101","nodeType":"YulFunctionCall","src":"10014:29:101"}],"functionName":{"name":"add","nativeSrc":"10005:3:101","nodeType":"YulIdentifier","src":"10005:3:101"},"nativeSrc":"10005:39:101","nodeType":"YulFunctionCall","src":"10005:39:101"},"variableNames":[{"name":"end","nativeSrc":"9998:3:101","nodeType":"YulIdentifier","src":"9998:3:101"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"9677:373:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9748:5:101","nodeType":"YulTypedName","src":"9748:5:101","type":""},{"name":"pos","nativeSrc":"9755:3:101","nodeType":"YulTypedName","src":"9755:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9763:3:101","nodeType":"YulTypedName","src":"9763:3:101","type":""}],"src":"9677:373:101"},{"body":{"nativeSrc":"10200:275:101","nodeType":"YulBlock","src":"10200:275:101","statements":[{"nativeSrc":"10210:26:101","nodeType":"YulAssignment","src":"10210:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"10222:9:101","nodeType":"YulIdentifier","src":"10222:9:101"},{"kind":"number","nativeSrc":"10233:2:101","nodeType":"YulLiteral","src":"10233:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10218:3:101","nodeType":"YulIdentifier","src":"10218:3:101"},"nativeSrc":"10218:18:101","nodeType":"YulFunctionCall","src":"10218:18:101"},"variableNames":[{"name":"tail","nativeSrc":"10210:4:101","nodeType":"YulIdentifier","src":"10210:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10290:6:101","nodeType":"YulIdentifier","src":"10290:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"10303:9:101","nodeType":"YulIdentifier","src":"10303:9:101"},{"kind":"number","nativeSrc":"10314:1:101","nodeType":"YulLiteral","src":"10314:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10299:3:101","nodeType":"YulIdentifier","src":"10299:3:101"},"nativeSrc":"10299:17:101","nodeType":"YulFunctionCall","src":"10299:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10246:43:101","nodeType":"YulIdentifier","src":"10246:43:101"},"nativeSrc":"10246:71:101","nodeType":"YulFunctionCall","src":"10246:71:101"},"nativeSrc":"10246:71:101","nodeType":"YulExpressionStatement","src":"10246:71:101"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10338:9:101","nodeType":"YulIdentifier","src":"10338:9:101"},{"kind":"number","nativeSrc":"10349:2:101","nodeType":"YulLiteral","src":"10349:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10334:3:101","nodeType":"YulIdentifier","src":"10334:3:101"},"nativeSrc":"10334:18:101","nodeType":"YulFunctionCall","src":"10334:18:101"},{"arguments":[{"name":"tail","nativeSrc":"10358:4:101","nodeType":"YulIdentifier","src":"10358:4:101"},{"name":"headStart","nativeSrc":"10364:9:101","nodeType":"YulIdentifier","src":"10364:9:101"}],"functionName":{"name":"sub","nativeSrc":"10354:3:101","nodeType":"YulIdentifier","src":"10354:3:101"},"nativeSrc":"10354:20:101","nodeType":"YulFunctionCall","src":"10354:20:101"}],"functionName":{"name":"mstore","nativeSrc":"10327:6:101","nodeType":"YulIdentifier","src":"10327:6:101"},"nativeSrc":"10327:48:101","nodeType":"YulFunctionCall","src":"10327:48:101"},"nativeSrc":"10327:48:101","nodeType":"YulExpressionStatement","src":"10327:48:101"},{"nativeSrc":"10384:84:101","nodeType":"YulAssignment","src":"10384:84:101","value":{"arguments":[{"name":"value1","nativeSrc":"10454:6:101","nodeType":"YulIdentifier","src":"10454:6:101"},{"name":"tail","nativeSrc":"10463:4:101","nodeType":"YulIdentifier","src":"10463:4:101"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"10392:61:101","nodeType":"YulIdentifier","src":"10392:61:101"},"nativeSrc":"10392:76:101","nodeType":"YulFunctionCall","src":"10392:76:101"},"variableNames":[{"name":"tail","nativeSrc":"10384:4:101","nodeType":"YulIdentifier","src":"10384:4:101"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"10056:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10164:9:101","nodeType":"YulTypedName","src":"10164:9:101","type":""},{"name":"value1","nativeSrc":"10176:6:101","nodeType":"YulTypedName","src":"10176:6:101","type":""},{"name":"value0","nativeSrc":"10184:6:101","nodeType":"YulTypedName","src":"10184:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10195:4:101","nodeType":"YulTypedName","src":"10195:4:101","type":""}],"src":"10056:419:101"},{"body":{"nativeSrc":"10587:119:101","nodeType":"YulBlock","src":"10587:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10609:6:101","nodeType":"YulIdentifier","src":"10609:6:101"},{"kind":"number","nativeSrc":"10617:1:101","nodeType":"YulLiteral","src":"10617:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10605:3:101","nodeType":"YulIdentifier","src":"10605:3:101"},"nativeSrc":"10605:14:101","nodeType":"YulFunctionCall","src":"10605:14:101"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"10621:34:101","nodeType":"YulLiteral","src":"10621:34:101","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"10598:6:101","nodeType":"YulIdentifier","src":"10598:6:101"},"nativeSrc":"10598:58:101","nodeType":"YulFunctionCall","src":"10598:58:101"},"nativeSrc":"10598:58:101","nodeType":"YulExpressionStatement","src":"10598:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10677:6:101","nodeType":"YulIdentifier","src":"10677:6:101"},{"kind":"number","nativeSrc":"10685:2:101","nodeType":"YulLiteral","src":"10685:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10673:3:101","nodeType":"YulIdentifier","src":"10673:3:101"},"nativeSrc":"10673:15:101","nodeType":"YulFunctionCall","src":"10673:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"10690:8:101","nodeType":"YulLiteral","src":"10690:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"10666:6:101","nodeType":"YulIdentifier","src":"10666:6:101"},"nativeSrc":"10666:33:101","nodeType":"YulFunctionCall","src":"10666:33:101"},"nativeSrc":"10666:33:101","nodeType":"YulExpressionStatement","src":"10666:33:101"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"10481:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10579:6:101","nodeType":"YulTypedName","src":"10579:6:101","type":""}],"src":"10481:225:101"},{"body":{"nativeSrc":"10858:220:101","nodeType":"YulBlock","src":"10858:220:101","statements":[{"nativeSrc":"10868:74:101","nodeType":"YulAssignment","src":"10868:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"10934:3:101","nodeType":"YulIdentifier","src":"10934:3:101"},{"kind":"number","nativeSrc":"10939:2:101","nodeType":"YulLiteral","src":"10939:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10875:58:101","nodeType":"YulIdentifier","src":"10875:58:101"},"nativeSrc":"10875:67:101","nodeType":"YulFunctionCall","src":"10875:67:101"},"variableNames":[{"name":"pos","nativeSrc":"10868:3:101","nodeType":"YulIdentifier","src":"10868:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11040:3:101","nodeType":"YulIdentifier","src":"11040:3:101"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"10951:88:101","nodeType":"YulIdentifier","src":"10951:88:101"},"nativeSrc":"10951:93:101","nodeType":"YulFunctionCall","src":"10951:93:101"},"nativeSrc":"10951:93:101","nodeType":"YulExpressionStatement","src":"10951:93:101"},{"nativeSrc":"11053:19:101","nodeType":"YulAssignment","src":"11053:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"11064:3:101","nodeType":"YulIdentifier","src":"11064:3:101"},{"kind":"number","nativeSrc":"11069:2:101","nodeType":"YulLiteral","src":"11069:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11060:3:101","nodeType":"YulIdentifier","src":"11060:3:101"},"nativeSrc":"11060:12:101","nodeType":"YulFunctionCall","src":"11060:12:101"},"variableNames":[{"name":"end","nativeSrc":"11053:3:101","nodeType":"YulIdentifier","src":"11053:3:101"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"10712:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10846:3:101","nodeType":"YulTypedName","src":"10846:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10854:3:101","nodeType":"YulTypedName","src":"10854:3:101","type":""}],"src":"10712:366:101"},{"body":{"nativeSrc":"11255:248:101","nodeType":"YulBlock","src":"11255:248:101","statements":[{"nativeSrc":"11265:26:101","nodeType":"YulAssignment","src":"11265:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"11277:9:101","nodeType":"YulIdentifier","src":"11277:9:101"},{"kind":"number","nativeSrc":"11288:2:101","nodeType":"YulLiteral","src":"11288:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11273:3:101","nodeType":"YulIdentifier","src":"11273:3:101"},"nativeSrc":"11273:18:101","nodeType":"YulFunctionCall","src":"11273:18:101"},"variableNames":[{"name":"tail","nativeSrc":"11265:4:101","nodeType":"YulIdentifier","src":"11265:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11312:9:101","nodeType":"YulIdentifier","src":"11312:9:101"},{"kind":"number","nativeSrc":"11323:1:101","nodeType":"YulLiteral","src":"11323:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11308:3:101","nodeType":"YulIdentifier","src":"11308:3:101"},"nativeSrc":"11308:17:101","nodeType":"YulFunctionCall","src":"11308:17:101"},{"arguments":[{"name":"tail","nativeSrc":"11331:4:101","nodeType":"YulIdentifier","src":"11331:4:101"},{"name":"headStart","nativeSrc":"11337:9:101","nodeType":"YulIdentifier","src":"11337:9:101"}],"functionName":{"name":"sub","nativeSrc":"11327:3:101","nodeType":"YulIdentifier","src":"11327:3:101"},"nativeSrc":"11327:20:101","nodeType":"YulFunctionCall","src":"11327:20:101"}],"functionName":{"name":"mstore","nativeSrc":"11301:6:101","nodeType":"YulIdentifier","src":"11301:6:101"},"nativeSrc":"11301:47:101","nodeType":"YulFunctionCall","src":"11301:47:101"},"nativeSrc":"11301:47:101","nodeType":"YulExpressionStatement","src":"11301:47:101"},{"nativeSrc":"11357:139:101","nodeType":"YulAssignment","src":"11357:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"11491:4:101","nodeType":"YulIdentifier","src":"11491:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"11365:124:101","nodeType":"YulIdentifier","src":"11365:124:101"},"nativeSrc":"11365:131:101","nodeType":"YulFunctionCall","src":"11365:131:101"},"variableNames":[{"name":"tail","nativeSrc":"11357:4:101","nodeType":"YulIdentifier","src":"11357:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11084:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11235:9:101","nodeType":"YulTypedName","src":"11235:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11250:4:101","nodeType":"YulTypedName","src":"11250:4:101","type":""}],"src":"11084:419:101"},{"body":{"nativeSrc":"11615:108:101","nodeType":"YulBlock","src":"11615:108:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11637:6:101","nodeType":"YulIdentifier","src":"11637:6:101"},{"kind":"number","nativeSrc":"11645:1:101","nodeType":"YulLiteral","src":"11645:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11633:3:101","nodeType":"YulIdentifier","src":"11633:3:101"},"nativeSrc":"11633:14:101","nodeType":"YulFunctionCall","src":"11633:14:101"},{"kind":"number","nativeSrc":"11649:66:101","nodeType":"YulLiteral","src":"11649:66:101","type":"","value":"0xf851a44000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"11626:6:101","nodeType":"YulIdentifier","src":"11626:6:101"},"nativeSrc":"11626:90:101","nodeType":"YulFunctionCall","src":"11626:90:101"},"nativeSrc":"11626:90:101","nodeType":"YulExpressionStatement","src":"11626:90:101"}]},"name":"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","nativeSrc":"11509:214:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11607:6:101","nodeType":"YulTypedName","src":"11607:6:101","type":""}],"src":"11509:214:101"},{"body":{"nativeSrc":"11892:235:101","nodeType":"YulBlock","src":"11892:235:101","statements":[{"nativeSrc":"11902:90:101","nodeType":"YulAssignment","src":"11902:90:101","value":{"arguments":[{"name":"pos","nativeSrc":"11985:3:101","nodeType":"YulIdentifier","src":"11985:3:101"},{"kind":"number","nativeSrc":"11990:1:101","nodeType":"YulLiteral","src":"11990:1:101","type":"","value":"4"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11909:75:101","nodeType":"YulIdentifier","src":"11909:75:101"},"nativeSrc":"11909:83:101","nodeType":"YulFunctionCall","src":"11909:83:101"},"variableNames":[{"name":"pos","nativeSrc":"11902:3:101","nodeType":"YulIdentifier","src":"11902:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12090:3:101","nodeType":"YulIdentifier","src":"12090:3:101"}],"functionName":{"name":"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","nativeSrc":"12001:88:101","nodeType":"YulIdentifier","src":"12001:88:101"},"nativeSrc":"12001:93:101","nodeType":"YulFunctionCall","src":"12001:93:101"},"nativeSrc":"12001:93:101","nodeType":"YulExpressionStatement","src":"12001:93:101"},{"nativeSrc":"12103:18:101","nodeType":"YulAssignment","src":"12103:18:101","value":{"arguments":[{"name":"pos","nativeSrc":"12114:3:101","nodeType":"YulIdentifier","src":"12114:3:101"},{"kind":"number","nativeSrc":"12119:1:101","nodeType":"YulLiteral","src":"12119:1:101","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"12110:3:101","nodeType":"YulIdentifier","src":"12110:3:101"},"nativeSrc":"12110:11:101","nodeType":"YulFunctionCall","src":"12110:11:101"},"variableNames":[{"name":"end","nativeSrc":"12103:3:101","nodeType":"YulIdentifier","src":"12103:3:101"}]}]},"name":"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11729:398:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11880:3:101","nodeType":"YulTypedName","src":"11880:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11888:3:101","nodeType":"YulTypedName","src":"11888:3:101","type":""}],"src":"11729:398:101"},{"body":{"nativeSrc":"12321:191:101","nodeType":"YulBlock","src":"12321:191:101","statements":[{"nativeSrc":"12332:154:101","nodeType":"YulAssignment","src":"12332:154:101","value":{"arguments":[{"name":"pos","nativeSrc":"12482:3:101","nodeType":"YulIdentifier","src":"12482:3:101"}],"functionName":{"name":"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12339:141:101","nodeType":"YulIdentifier","src":"12339:141:101"},"nativeSrc":"12339:147:101","nodeType":"YulFunctionCall","src":"12339:147:101"},"variableNames":[{"name":"pos","nativeSrc":"12332:3:101","nodeType":"YulIdentifier","src":"12332:3:101"}]},{"nativeSrc":"12496:10:101","nodeType":"YulAssignment","src":"12496:10:101","value":{"name":"pos","nativeSrc":"12503:3:101","nodeType":"YulIdentifier","src":"12503:3:101"},"variableNames":[{"name":"end","nativeSrc":"12496:3:101","nodeType":"YulIdentifier","src":"12496:3:101"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12133:379:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12308:3:101","nodeType":"YulTypedName","src":"12308:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12317:3:101","nodeType":"YulTypedName","src":"12317:3:101","type":""}],"src":"12133:379:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_contract$_TransparentUpgradeableProxy_$9730(value) -> cleaned {\n        cleaned := cleanup_t_address_payable(value)\n    }\n\n    function validator_revert_t_contract$_TransparentUpgradeableProxy_$9730(value) {\n        if iszero(eq(value, cleanup_t_contract$_TransparentUpgradeableProxy_$9730(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_TransparentUpgradeableProxy_$9730(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_TransparentUpgradeableProxy_$9730(value)\n    }\n\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$9730(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730t_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$9730(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$9730t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$9730(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29(memPtr) {\n\n        mstore(add(memPtr, 0), 0x5c60da1b00000000000000000000000000000000000000000000000000000000)\n\n    }\n\n    function abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 4)\n        store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29(pos)\n        end := add(pos, 4)\n    }\n\n    function abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n        pos := abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        end := pos\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_payable_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_payable_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\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        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7(memPtr) {\n\n        mstore(add(memPtr, 0), 0xf851a44000000000000000000000000000000000000000000000000000000000)\n\n    }\n\n    function abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 4)\n        store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7(pos)\n        end := add(pos, 4)\n    }\n\n    function abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n        pos := abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        end := pos\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010357806399a88ec414610116578063f2fde38b14610135578063f3b7dead14610154575f80fd5b8063204e1c7a1461007d578063715018a6146100b25780637eff275e146100c85780638da5cb5b146100e7575b5f80fd5b348015610088575f80fd5b5061009c610097366004610494565b610173565b6040516100a991906104c1565b60405180910390f35b3480156100bd575f80fd5b506100c66101f3565b005b3480156100d3575f80fd5b506100c66100e23660046104e3565b610230565b3480156100f2575f80fd5b505f546001600160a01b031661009c565b6100c661011136600461060f565b6102b6565b348015610121575f80fd5b506100c66101303660046104e3565b610342565b348015610140575f80fd5b506100c661014f366004610675565b610397565b34801561015f575f80fd5b5061009c61016e366004610494565b6103f2565b5f805f836001600160a01b031660405161018c906106a6565b5f60405180830381855afa9150503d805f81146101c4576040519150601f19603f3d011682016040523d82523d5f602084013e6101c9565b606091505b5091509150816101d7575f80fd5b808060200190518101906101eb91906106bb565b949350505050565b5f546001600160a01b031633146102255760405162461bcd60e51b815260040161021c906106d9565b60405180910390fd5b61022e5f61040b565b565b5f546001600160a01b031633146102595760405162461bcd60e51b815260040161021c906106d9565b6040516308f2839760e41b81526001600160a01b03831690638f283970906102859084906004016104c1565b5f604051808303815f87803b15801561029c575f80fd5b505af11580156102ae573d5f803e3d5ffd5b505050505050565b5f546001600160a01b031633146102df5760405162461bcd60e51b815260040161021c906106d9565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061030f908690869060040161074f565b5f604051808303818588803b158015610326575f80fd5b505af1158015610338573d5f803e3d5ffd5b5050505050505050565b5f546001600160a01b0316331461036b5760405162461bcd60e51b815260040161021c906106d9565b604051631b2ce7f360e11b81526001600160a01b03831690633659cfe6906102859084906004016104c1565b5f546001600160a01b031633146103c05760405162461bcd60e51b815260040161021c906106d9565b6001600160a01b0381166103e65760405162461bcd60e51b815260040161021c9061076f565b6103ef8161040b565b50565b5f805f836001600160a01b031660405161018c906107c9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b5f6104668261045a565b61047f8161046c565b81146103ef575f80fd5b803561046681610476565b5f602082840312156104a7576104a75f80fd5b5f6101eb8484610489565b6104bb8161045a565b82525050565b6020810161046682846104b2565b61047f8161045a565b8035610466816104cf565b5f80604083850312156104f7576104f75f80fd5b5f6105028585610489565b9250506020610513858286016104d8565b9150509250929050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff821117156105575761055761051d565b6040525050565b5f61056860405190565b90506105748282610531565b919050565b5f67ffffffffffffffff8211156105925761059261051d565b601f19601f83011660200192915050565b82818337505f910152565b5f6105c06105bb84610579565b61055e565b9050828152602081018484840111156105da576105da5f80fd5b6105e58482856105a3565b509392505050565b5f82601f8301126105ff576105ff5f80fd5b81356101eb8482602086016105ae565b5f805f60608486031215610624576106245f80fd5b5f61062f8686610489565b9350506020610640868287016104d8565b925050604084013567ffffffffffffffff81111561065f5761065f5f80fd5b61066b868287016105ed565b9150509250925092565b5f60208284031215610688576106885f80fd5b5f6101eb84846104d8565b635c60da1b60e01b81525f5b5060040190565b5f61046682610693565b8051610466816104cf565b5f602082840312156106ce576106ce5f80fd5b5f6101eb84846106b0565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610466565b8281835e505f910152565b5f610727825190565b80845260208401935061073e818560208601610713565b601f01601f19169290920192915050565b6040810161075d82856104b2565b81810360208301526101eb818461071e565b6020808252810161046681602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b6303e1469160e61b81525f61069f565b5f610466826107b956fea264697066735822122052efb9a5616aadc832bd49eff728b329d78d855a8c605912f1e797370d8943ca64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4C JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x1F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x230 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9C JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x111 CALLDATASIZE PUSH1 0x4 PUSH2 0x60F JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x130 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x16E CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x6A6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1C4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1D7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x22E PUSH0 PUSH2 0x40B JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8F28397 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x30F SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x74F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x338 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x36B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x76F JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x40B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x7C9 JUMP JUMPDEST PUSH0 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 PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x45A JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x46C JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x476 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A7 JUMPI PUSH2 0x4A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x489 JUMP JUMPDEST PUSH2 0x4BB DUP2 PUSH2 0x45A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x466 DUP3 DUP5 PUSH2 0x4B2 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x45A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F7 JUMPI PUSH2 0x4F7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x502 DUP6 DUP6 PUSH2 0x489 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x513 DUP6 DUP3 DUP7 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x557 JUMPI PUSH2 0x557 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x568 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x574 DUP3 DUP3 PUSH2 0x531 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x592 JUMPI PUSH2 0x592 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x5C0 PUSH2 0x5BB DUP5 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x55E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5DA JUMPI PUSH2 0x5DA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5E5 DUP5 DUP3 DUP6 PUSH2 0x5A3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5FF JUMPI PUSH2 0x5FF PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EB DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x62F DUP7 DUP7 PUSH2 0x489 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x640 DUP7 DUP3 DUP8 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x65F JUMPI PUSH2 0x65F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x66B DUP7 DUP3 DUP8 ADD PUSH2 0x5ED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x688 JUMPI PUSH2 0x688 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x4D8 JUMP JUMPDEST PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 JUMPDEST POP PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x693 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6CE JUMPI PUSH2 0x6CE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x466 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x727 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x73E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x713 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x75D DUP3 DUP6 PUSH2 0x4B2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1EB DUP2 DUP5 PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x466 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x3E14691 PUSH1 0xE6 SHL DUP2 MSTORE PUSH0 PUSH2 0x69F JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x7B9 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE 0xEF 0xB9 0xA5 PUSH2 0x6AAD 0xC8 ORIGIN 0xBD BLOBHASH 0xEF 0xF7 0x28 0xB3 0x29 0xD7 DUP14 DUP6 GAS DUP13 PUSH1 0x59 SLT CALL 0xE7 SWAP8 CALLDATACOPY 0xD DUP10 NUMBER 0xCA PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"435:2470:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;701:437;;;;;;;;;;-1:-1:-1;701:437:95;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:101:89;;;;;;;;;;;;;:::i;:::-;;1891:148:95;;;;;;;;;;-1:-1:-1;1891:148:95;;;;;:::i;:::-;;:::i;1057:85:89:-;;;;;;;;;;-1:-1:-1;1103:7:89;1129:6;-1:-1:-1;;;;;1129:6:89;1057:85;;2659:244:95;;;;;;:::i;:::-;;:::i;2244:149::-;;;;;;;;;;-1:-1:-1;2244:149:95;;;;;:::i;:::-;;:::i;1939:198:89:-;;;;;;;;;;-1:-1:-1;1939:198:89;;;;;:::i;:::-;;:::i;1298:419:95:-;;;;;;;;;;-1:-1:-1;1298:419:95;;;;;:::i;:::-;;:::i;701:437::-;797:7;974:12;988:23;1023:5;-1:-1:-1;;;;;1015:25:95;:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:82;;;;1073:7;1065:16;;;;;;1109:10;1098:33;;;;;;;;;;;;:::i;:::-;1091:40;701:437;-1:-1:-1;;;;701:437:95:o;1689:101:89:-;1103:7;1129:6;-1:-1:-1;;;;;1129:6:89;719:10:98;1269:23:89;1261:68;;;;-1:-1:-1;;;1261:68:89;;;;;;;:::i;:::-;;;;;;;;;1753:30:::1;1780:1;1753:18;:30::i;:::-;1689:101::o:0;1891:148:95:-;1103:7:89;1129:6;-1:-1:-1;;;;;1129:6:89;719:10:98;1269:23:89;1261:68;;;;-1:-1:-1;;;1261:68:89;;;;;;;:::i;:::-;2005:27:95::1;::::0;-1:-1:-1;;;2005:27:95;;-1:-1:-1;;;;;2005:17:95;::::1;::::0;::::1;::::0;:27:::1;::::0;2023:8;;2005:27:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1891:148:::0;;:::o;2659:244::-;1103:7:89;1129:6;-1:-1:-1;;;;;1129:6:89;719:10:98;1269:23:89;1261:68;;;;-1:-1:-1;;;1261:68:89;;;;;;;:::i;:::-;2834:62:95::1;::::0;-1:-1:-1;;;2834:62:95;;-1:-1:-1;;;;;2834:22:95;::::1;::::0;::::1;::::0;2864:9:::1;::::0;2834:62:::1;::::0;2875:14;;2891:4;;2834:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2659:244:::0;;;:::o;2244:149::-;1103:7:89;1129:6;-1:-1:-1;;;;;1129:6:89;719:10:98;1269:23:89;1261:68;;;;-1:-1:-1;;;1261:68:89;;;;;;;:::i;:::-;2355:31:95::1;::::0;-1:-1:-1;;;2355:31:95;;-1:-1:-1;;;;;2355:15:95;::::1;::::0;::::1;::::0;:31:::1;::::0;2371:14;;2355:31:::1;;;:::i;1939:198:89:-:0;1103:7;1129:6;-1:-1:-1;;;;;1129:6:89;719:10:98;1269:23:89;1261:68;;;;-1:-1:-1;;;1261:68:89;;;;;;;:::i;:::-;-1:-1:-1;;;;;2027:22:89;::::1;2019:73;;;;-1:-1:-1::0;;;2019:73:89::1;;;;;;;:::i;:::-;2102:28;2121:8;2102:18;:28::i;:::-;1939:198:::0;:::o;1298:419:95:-;1385:7;1553:12;1567:23;1602:5;-1:-1:-1;;;;;1594:25:95;:40;;;;;:::i;2291:187:89:-;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:89;;;-1:-1:-1;;;;;;2399:17:89;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;466:104:101:-;511:7;-1:-1:-1;;;;;400:54:101;;540:24;529:35;466:104;-1:-1:-1;;466:104:101:o;576:140::-;649:7;678:32;704:5;678:32;:::i;722:194::-;831:60;885:5;831:60;:::i;:::-;824:5;821:71;811:99;;906:1;903;896:12;922:211;1029:20;;1058:69;1029:20;1058:69;:::i;1139:401::-;1234:6;1283:2;1271:9;1262:7;1258:23;1254:32;1251:119;;;1289:79;435:2470:95;;;1289:79:101;1409:1;1434:89;1515:7;1495:9;1434:89;:::i;1648:118::-;1735:24;1753:5;1735:24;:::i;:::-;1730:3;1723:37;1648:118;;:::o;1772:222::-;1903:2;1888:18;;1916:71;1892:9;1960:6;1916:71;:::i;2000:122::-;2073:24;2091:5;2073:24;:::i;2128:139::-;2199:20;;2228:33;2199:20;2228:33;:::i;2273:546::-;2377:6;2385;2434:2;2422:9;2413:7;2409:23;2405:32;2402:119;;;2440:79;435:2470:95;;;2440:79:101;2560:1;2585:89;2666:7;2646:9;2585:89;:::i;:::-;2575:99;;2531:153;2723:2;2749:53;2794:7;2785:6;2774:9;2770:22;2749:53;:::i;:::-;2739:63;;2694:118;2273:546;;;;;:::o;3179:180::-;-1:-1:-1;;;3224:1:101;3217:88;3324:4;3321:1;3314:15;3348:4;3345:1;3338:15;3365:281;-1:-1:-1;;3163:2:101;3143:14;;3139:28;3440:6;3436:40;3578:6;3566:10;3563:22;3542:18;3530:10;3527:34;3524:62;3521:88;;;3589:18;;:::i;:::-;3625:2;3618:22;-1:-1:-1;;3365:281:101:o;3652:129::-;3686:6;3713:20;73:2;67:9;;7:75;3713:20;3703:30;;3742:33;3770:4;3762:6;3742:33;:::i;:::-;3652:129;;;:::o;3787:307::-;3848:4;3938:18;3930:6;3927:30;3924:56;;;3960:18;;:::i;:::-;-1:-1:-1;;3163:2:101;3143:14;;3139:28;4082:4;4072:15;;3787:307;-1:-1:-1;;3787:307:101:o;4100:148::-;4198:6;4193:3;4188;4175:30;-1:-1:-1;4239:1:101;4221:16;;4214:27;4100:148::o;4254:423::-;4331:5;4356:65;4372:48;4413:6;4372:48;:::i;:::-;4356:65;:::i;:::-;4347:74;;4444:6;4437:5;4430:21;4482:4;4475:5;4471:16;4520:3;4511:6;4506:3;4502:16;4499:25;4496:112;;;4527:79;435:2470:95;;;4527:79:101;4617:54;4664:6;4659:3;4654;4617:54;:::i;:::-;4337:340;4254:423;;;;;:::o;4696:338::-;4751:5;4800:3;4793:4;4785:6;4781:17;4777:27;4767:122;;4808:79;435:2470:95;;;4808:79:101;4925:6;4912:20;4950:78;5024:3;5016:6;5009:4;5001:6;4997:17;4950:78;:::i;5040:869::-;5162:6;5170;5178;5227:2;5215:9;5206:7;5202:23;5198:32;5195:119;;;5233:79;435:2470:95;;;5233:79:101;5353:1;5378:89;5459:7;5439:9;5378:89;:::i;:::-;5368:99;;5324:153;5516:2;5542:53;5587:7;5578:6;5567:9;5563:22;5542:53;:::i;:::-;5532:63;;5487:118;5672:2;5661:9;5657:18;5644:32;5703:18;5695:6;5692:30;5689:117;;;5725:79;435:2470:95;;;5725:79:101;5830:62;5884:7;5875:6;5864:9;5860:22;5830:62;:::i;:::-;5820:72;;5615:287;5040:869;;;;;:::o;5915:329::-;5974:6;6023:2;6011:9;6002:7;5998:23;5994:32;5991:119;;;6029:79;435:2470:95;;;6029:79:101;6149:1;6174:53;6219:7;6199:9;6174:53;:::i;6623:398::-;-1:-1:-1;;;6520:90:101;;6782:3;6895:93;-1:-1:-1;7013:1:101;7004:11;;6623:398::o;7027:379::-;7211:3;7233:147;7376:3;7233:147;:::i;7556:159::-;7646:13;;7668:41;7646:13;7668:41;:::i;7721:367::-;7799:6;7848:2;7836:9;7827:7;7823:23;7819:32;7816:119;;;7854:79;435:2470:95;;;7854:79:101;7974:1;7999:72;8063:7;8043:9;7999:72;:::i;8829:419::-;9033:2;9046:47;;;9018:18;;;8200:19;;;8409:34;8243:14;;;8386:58;8805:12;;;9110:131;8457:366;9532:139;9621:6;9616:3;9611;9605:23;-1:-1:-1;9662:1:101;9644:16;;9637:27;9532:139::o;9677:373::-;9763:3;9791:38;9823:5;9333:12;;9254:98;9791:38;8200:19;;;8252:4;8243:14;;9838:77;;9924:65;9982:6;9977:3;9970:4;9963:5;9959:16;9924:65;:::i;:::-;3163:2;3143:14;-1:-1:-1;;3139:28:101;10005:39;;;;;;-1:-1:-1;;9677:373:101:o;10056:419::-;10233:2;10218:18;;10246:71;10222:9;10290:6;10246:71;:::i;:::-;10364:9;10358:4;10354:20;10349:2;10338:9;10334:18;10327:48;10392:76;10463:4;10454:6;10392:76;:::i;11084:419::-;11288:2;11301:47;;;11273:18;;11365:131;11273:18;10939:2;8200:19;;10621:34;8252:4;8243:14;;10598:58;-1:-1:-1;;;10673:15:101;;;10666:33;11060:12;;;10712:366;11729:398;-1:-1:-1;;;11626:90:101;;11888:3;12001:93;11509:214;12133:379;12317:3;12339:147;12482:3;12339:147;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"411400","executionCost":"infinite","totalCost":"infinite"},"external":{"changeProxyAdmin(address,address)":"infinite","getProxyAdmin(address)":"infinite","getProxyImplementation(address)":"infinite","owner()":"infinite","renounceOwnership()":"28133","transferOwnership(address)":"infinite","upgrade(address,address)":"infinite","upgradeAndCall(address,address,bytes)":"infinite"}},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","getProxyAdmin(address)":"f3b7dead","getProxyImplementation(address)":"204e1c7a","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"details\":\"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`.\"},\"getProxyAdmin(address)\":{\"details\":\"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"getProxyImplementation(address)\":{\"details\":\"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgrade(address,address)\":{\"details\":\"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor (address initialOwner) {\\n        _transferOwnership(initialOwner);\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./TransparentUpgradeableProxy.sol\\\";\\nimport \\\"../../access/Ownable.sol\\\";\\n\\n/**\\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\\n */\\ncontract ProxyAdmin is Ownable {\\n\\n    constructor (address initialOwner) Ownable(initialOwner) {}\\n\\n    /**\\n     * @dev Returns the current implementation of `proxy`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n        // We need to manually run the static call since the getter cannot be flagged as view\\n        // bytes4(keccak256(\\\"implementation()\\\")) == 0x5c60da1b\\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"5c60da1b\\\");\\n        require(success);\\n        return abi.decode(returndata, (address));\\n    }\\n\\n    /**\\n     * @dev Returns the current admin of `proxy`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n        // We need to manually run the static call since the getter cannot be flagged as view\\n        // bytes4(keccak256(\\\"admin()\\\")) == 0xf851a440\\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"f851a440\\\");\\n        require(success);\\n        return abi.decode(returndata, (address));\\n    }\\n\\n    /**\\n     * @dev Changes the admin of `proxy` to `newAdmin`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the current admin of `proxy`.\\n     */\\n    function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\\n        proxy.changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\\n        proxy.upgradeTo(implementation);\\n    }\\n\\n    /**\\n     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\\n     * {TransparentUpgradeableProxy-upgradeToAndCall}.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function upgradeAndCall(\\n        TransparentUpgradeableProxy proxy,\\n        address implementation,\\n        bytes memory data\\n    ) public payable virtual onlyOwner {\\n        proxy.upgradeToAndCall{value: msg.value}(implementation, data);\\n    }\\n}\\n\",\"keccak256\":\"0x754888b9c9ab5525343460b0a4fa2e2f4fca9b6a7e0e7ddea4154e2b1182a45d\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _changeAdmin(admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n     */\\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\\n        _changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8880,"contract":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol:ProxyAdmin","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"TransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"changeAdmin(address)":{"details":"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_9028":{"entryPoint":null,"id":9028,"parameterSlots":2,"returnSlots":0},"@_9607":{"entryPoint":null,"id":9607,"parameterSlots":3,"returnSlots":0},"@_changeAdmin_9262":{"entryPoint":250,"id":9262,"parameterSlots":1,"returnSlots":0},"@_getAdmin_9219":{"entryPoint":null,"id":9219,"parameterSlots":0,"returnSlots":1},"@_setAdmin_9245":{"entryPoint":457,"id":9245,"parameterSlots":1,"returnSlots":0},"@_setImplementation_9097":{"entryPoint":553,"id":9097,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9142":{"entryPoint":207,"id":9142,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9112":{"entryPoint":348,"id":9112,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_9958":{"entryPoint":411,"id":9958,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_9993":{"entryPoint":612,"id":9993,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10073":{"entryPoint":null,"id":10073,"parameterSlots":1,"returnSlots":1},"@isContract_9748":{"entryPoint":null,"id":9748,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_10024":{"entryPoint":769,"id":10024,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1015,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":861,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1078,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1120,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1280,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1622,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack":{"entryPoint":1322,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1407,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1496,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1611,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1295,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1391,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1480,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1562,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":936,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":963,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1241,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":826,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1004,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":892,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1260,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":1221,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":872,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":842,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10028:101","nodeType":"YulBlock","src":"0:10028:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"934:28:101","nodeType":"YulBlock","src":"934:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:101","nodeType":"YulLiteral","src":"951:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:101","nodeType":"YulLiteral","src":"954:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:101","nodeType":"YulIdentifier","src":"944:6:101"},"nativeSrc":"944:12:101","nodeType":"YulFunctionCall","src":"944:12:101"},"nativeSrc":"944:12:101","nodeType":"YulExpressionStatement","src":"944:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:101","nodeType":"YulFunctionDefinition","src":"845:117:101"},{"body":{"nativeSrc":"1057:28:101","nodeType":"YulBlock","src":"1057:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:101","nodeType":"YulLiteral","src":"1074:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:101","nodeType":"YulLiteral","src":"1077:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:101","nodeType":"YulIdentifier","src":"1067:6:101"},"nativeSrc":"1067:12:101","nodeType":"YulFunctionCall","src":"1067:12:101"},"nativeSrc":"1067:12:101","nodeType":"YulExpressionStatement","src":"1067:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:101","nodeType":"YulFunctionDefinition","src":"968:117:101"},{"body":{"nativeSrc":"1139:54:101","nodeType":"YulBlock","src":"1139:54:101","statements":[{"nativeSrc":"1149:38:101","nodeType":"YulAssignment","src":"1149:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:101","nodeType":"YulIdentifier","src":"1167:5:101"},{"kind":"number","nativeSrc":"1174:2:101","nodeType":"YulLiteral","src":"1174:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:101","nodeType":"YulIdentifier","src":"1163:3:101"},"nativeSrc":"1163:14:101","nodeType":"YulFunctionCall","src":"1163:14:101"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:101","nodeType":"YulLiteral","src":"1183:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:101","nodeType":"YulIdentifier","src":"1179:3:101"},"nativeSrc":"1179:7:101","nodeType":"YulFunctionCall","src":"1179:7:101"}],"functionName":{"name":"and","nativeSrc":"1159:3:101","nodeType":"YulIdentifier","src":"1159:3:101"},"nativeSrc":"1159:28:101","nodeType":"YulFunctionCall","src":"1159:28:101"},"variableNames":[{"name":"result","nativeSrc":"1149:6:101","nodeType":"YulIdentifier","src":"1149:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:101","nodeType":"YulTypedName","src":"1122:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:101","nodeType":"YulTypedName","src":"1132:6:101","type":""}],"src":"1091:102:101"},{"body":{"nativeSrc":"1227:152:101","nodeType":"YulBlock","src":"1227:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:101","nodeType":"YulLiteral","src":"1244:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:101","nodeType":"YulLiteral","src":"1247:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:101","nodeType":"YulIdentifier","src":"1237:6:101"},"nativeSrc":"1237:88:101","nodeType":"YulFunctionCall","src":"1237:88:101"},"nativeSrc":"1237:88:101","nodeType":"YulExpressionStatement","src":"1237:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:101","nodeType":"YulLiteral","src":"1344:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:101","nodeType":"YulIdentifier","src":"1334:6:101"},"nativeSrc":"1334:15:101","nodeType":"YulFunctionCall","src":"1334:15:101"},"nativeSrc":"1334:15:101","nodeType":"YulExpressionStatement","src":"1334:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:101","nodeType":"YulLiteral","src":"1365:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:101","nodeType":"YulLiteral","src":"1368:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:101","nodeType":"YulIdentifier","src":"1358:6:101"},"nativeSrc":"1358:15:101","nodeType":"YulFunctionCall","src":"1358:15:101"},"nativeSrc":"1358:15:101","nodeType":"YulExpressionStatement","src":"1358:15:101"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:101","nodeType":"YulFunctionDefinition","src":"1199:180:101"},{"body":{"nativeSrc":"1428:238:101","nodeType":"YulBlock","src":"1428:238:101","statements":[{"nativeSrc":"1438:58:101","nodeType":"YulVariableDeclaration","src":"1438:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:101","nodeType":"YulIdentifier","src":"1460:6:101"},{"arguments":[{"name":"size","nativeSrc":"1490:4:101","nodeType":"YulIdentifier","src":"1490:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:101","nodeType":"YulIdentifier","src":"1468:21:101"},"nativeSrc":"1468:27:101","nodeType":"YulFunctionCall","src":"1468:27:101"}],"functionName":{"name":"add","nativeSrc":"1456:3:101","nodeType":"YulIdentifier","src":"1456:3:101"},"nativeSrc":"1456:40:101","nodeType":"YulFunctionCall","src":"1456:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:101","nodeType":"YulTypedName","src":"1442:10:101","type":""}]},{"body":{"nativeSrc":"1607:22:101","nodeType":"YulBlock","src":"1607:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:101","nodeType":"YulIdentifier","src":"1609:16:101"},"nativeSrc":"1609:18:101","nodeType":"YulFunctionCall","src":"1609:18:101"},"nativeSrc":"1609:18:101","nodeType":"YulExpressionStatement","src":"1609:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:101","nodeType":"YulIdentifier","src":"1550:10:101"},{"kind":"number","nativeSrc":"1562:18:101","nodeType":"YulLiteral","src":"1562:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:101","nodeType":"YulIdentifier","src":"1547:2:101"},"nativeSrc":"1547:34:101","nodeType":"YulFunctionCall","src":"1547:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:101","nodeType":"YulIdentifier","src":"1586:10:101"},{"name":"memPtr","nativeSrc":"1598:6:101","nodeType":"YulIdentifier","src":"1598:6:101"}],"functionName":{"name":"lt","nativeSrc":"1583:2:101","nodeType":"YulIdentifier","src":"1583:2:101"},"nativeSrc":"1583:22:101","nodeType":"YulFunctionCall","src":"1583:22:101"}],"functionName":{"name":"or","nativeSrc":"1544:2:101","nodeType":"YulIdentifier","src":"1544:2:101"},"nativeSrc":"1544:62:101","nodeType":"YulFunctionCall","src":"1544:62:101"},"nativeSrc":"1541:88:101","nodeType":"YulIf","src":"1541:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:101","nodeType":"YulLiteral","src":"1645:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:101","nodeType":"YulIdentifier","src":"1649:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:101","nodeType":"YulIdentifier","src":"1638:6:101"},"nativeSrc":"1638:22:101","nodeType":"YulFunctionCall","src":"1638:22:101"},"nativeSrc":"1638:22:101","nodeType":"YulExpressionStatement","src":"1638:22:101"}]},"name":"finalize_allocation","nativeSrc":"1385:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:101","nodeType":"YulTypedName","src":"1414:6:101","type":""},{"name":"size","nativeSrc":"1422:4:101","nodeType":"YulTypedName","src":"1422:4:101","type":""}],"src":"1385:281:101"},{"body":{"nativeSrc":"1713:88:101","nodeType":"YulBlock","src":"1713:88:101","statements":[{"nativeSrc":"1723:30:101","nodeType":"YulAssignment","src":"1723:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:101","nodeType":"YulIdentifier","src":"1733:18:101"},"nativeSrc":"1733:20:101","nodeType":"YulFunctionCall","src":"1733:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:101","nodeType":"YulIdentifier","src":"1723:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:101","nodeType":"YulIdentifier","src":"1782:6:101"},{"name":"size","nativeSrc":"1790:4:101","nodeType":"YulIdentifier","src":"1790:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:101","nodeType":"YulIdentifier","src":"1762:19:101"},"nativeSrc":"1762:33:101","nodeType":"YulFunctionCall","src":"1762:33:101"},"nativeSrc":"1762:33:101","nodeType":"YulExpressionStatement","src":"1762:33:101"}]},"name":"allocate_memory","nativeSrc":"1672:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:101","nodeType":"YulTypedName","src":"1697:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:101","nodeType":"YulTypedName","src":"1706:6:101","type":""}],"src":"1672:129:101"},{"body":{"nativeSrc":"1873:241:101","nodeType":"YulBlock","src":"1873:241:101","statements":[{"body":{"nativeSrc":"1978:22:101","nodeType":"YulBlock","src":"1978:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:101","nodeType":"YulIdentifier","src":"1980:16:101"},"nativeSrc":"1980:18:101","nodeType":"YulFunctionCall","src":"1980:18:101"},"nativeSrc":"1980:18:101","nodeType":"YulExpressionStatement","src":"1980:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:101","nodeType":"YulIdentifier","src":"1950:6:101"},{"kind":"number","nativeSrc":"1958:18:101","nodeType":"YulLiteral","src":"1958:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:101","nodeType":"YulIdentifier","src":"1947:2:101"},"nativeSrc":"1947:30:101","nodeType":"YulFunctionCall","src":"1947:30:101"},"nativeSrc":"1944:56:101","nodeType":"YulIf","src":"1944:56:101"},{"nativeSrc":"2010:37:101","nodeType":"YulAssignment","src":"2010:37:101","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:101","nodeType":"YulIdentifier","src":"2040:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:101","nodeType":"YulIdentifier","src":"2018:21:101"},"nativeSrc":"2018:29:101","nodeType":"YulFunctionCall","src":"2018:29:101"},"variableNames":[{"name":"size","nativeSrc":"2010:4:101","nodeType":"YulIdentifier","src":"2010:4:101"}]},{"nativeSrc":"2084:23:101","nodeType":"YulAssignment","src":"2084:23:101","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:101","nodeType":"YulIdentifier","src":"2096:4:101"},{"kind":"number","nativeSrc":"2102:4:101","nodeType":"YulLiteral","src":"2102:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:101","nodeType":"YulIdentifier","src":"2092:3:101"},"nativeSrc":"2092:15:101","nodeType":"YulFunctionCall","src":"2092:15:101"},"variableNames":[{"name":"size","nativeSrc":"2084:4:101","nodeType":"YulIdentifier","src":"2084:4:101"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:101","nodeType":"YulTypedName","src":"1857:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:101","nodeType":"YulTypedName","src":"1868:4:101","type":""}],"src":"1807:307:101"},{"body":{"nativeSrc":"2182:77:101","nodeType":"YulBlock","src":"2182:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2199:3:101","nodeType":"YulIdentifier","src":"2199:3:101"},{"name":"src","nativeSrc":"2204:3:101","nodeType":"YulIdentifier","src":"2204:3:101"},{"name":"length","nativeSrc":"2209:6:101","nodeType":"YulIdentifier","src":"2209:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"2193:5:101","nodeType":"YulIdentifier","src":"2193:5:101"},"nativeSrc":"2193:23:101","nodeType":"YulFunctionCall","src":"2193:23:101"},"nativeSrc":"2193:23:101","nodeType":"YulExpressionStatement","src":"2193:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2236:3:101","nodeType":"YulIdentifier","src":"2236:3:101"},{"name":"length","nativeSrc":"2241:6:101","nodeType":"YulIdentifier","src":"2241:6:101"}],"functionName":{"name":"add","nativeSrc":"2232:3:101","nodeType":"YulIdentifier","src":"2232:3:101"},"nativeSrc":"2232:16:101","nodeType":"YulFunctionCall","src":"2232:16:101"},{"kind":"number","nativeSrc":"2250:1:101","nodeType":"YulLiteral","src":"2250:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:101","nodeType":"YulIdentifier","src":"2225:6:101"},"nativeSrc":"2225:27:101","nodeType":"YulFunctionCall","src":"2225:27:101"},"nativeSrc":"2225:27:101","nodeType":"YulExpressionStatement","src":"2225:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:101","nodeType":"YulTypedName","src":"2164:3:101","type":""},{"name":"dst","nativeSrc":"2169:3:101","nodeType":"YulTypedName","src":"2169:3:101","type":""},{"name":"length","nativeSrc":"2174:6:101","nodeType":"YulTypedName","src":"2174:6:101","type":""}],"src":"2120:139:101"},{"body":{"nativeSrc":"2359:338:101","nodeType":"YulBlock","src":"2359:338:101","statements":[{"nativeSrc":"2369:74:101","nodeType":"YulAssignment","src":"2369:74:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2435:6:101","nodeType":"YulIdentifier","src":"2435:6:101"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2394:40:101","nodeType":"YulIdentifier","src":"2394:40:101"},"nativeSrc":"2394:48:101","nodeType":"YulFunctionCall","src":"2394:48:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"2378:15:101","nodeType":"YulIdentifier","src":"2378:15:101"},"nativeSrc":"2378:65:101","nodeType":"YulFunctionCall","src":"2378:65:101"},"variableNames":[{"name":"array","nativeSrc":"2369:5:101","nodeType":"YulIdentifier","src":"2369:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"},{"name":"length","nativeSrc":"2466:6:101","nodeType":"YulIdentifier","src":"2466:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2452:6:101","nodeType":"YulIdentifier","src":"2452:6:101"},"nativeSrc":"2452:21:101","nodeType":"YulFunctionCall","src":"2452:21:101"},"nativeSrc":"2452:21:101","nodeType":"YulExpressionStatement","src":"2452:21:101"},{"nativeSrc":"2482:27:101","nodeType":"YulVariableDeclaration","src":"2482:27:101","value":{"arguments":[{"name":"array","nativeSrc":"2497:5:101","nodeType":"YulIdentifier","src":"2497:5:101"},{"kind":"number","nativeSrc":"2504:4:101","nodeType":"YulLiteral","src":"2504:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2493:3:101","nodeType":"YulIdentifier","src":"2493:3:101"},"nativeSrc":"2493:16:101","nodeType":"YulFunctionCall","src":"2493:16:101"},"variables":[{"name":"dst","nativeSrc":"2486:3:101","nodeType":"YulTypedName","src":"2486:3:101","type":""}]},{"body":{"nativeSrc":"2547:83:101","nodeType":"YulBlock","src":"2547:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2549:77:101","nodeType":"YulIdentifier","src":"2549:77:101"},"nativeSrc":"2549:79:101","nodeType":"YulFunctionCall","src":"2549:79:101"},"nativeSrc":"2549:79:101","nodeType":"YulExpressionStatement","src":"2549:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},{"name":"length","nativeSrc":"2533:6:101","nodeType":"YulIdentifier","src":"2533:6:101"}],"functionName":{"name":"add","nativeSrc":"2524:3:101","nodeType":"YulIdentifier","src":"2524:3:101"},"nativeSrc":"2524:16:101","nodeType":"YulFunctionCall","src":"2524:16:101"},{"name":"end","nativeSrc":"2542:3:101","nodeType":"YulIdentifier","src":"2542:3:101"}],"functionName":{"name":"gt","nativeSrc":"2521:2:101","nodeType":"YulIdentifier","src":"2521:2:101"},"nativeSrc":"2521:25:101","nodeType":"YulFunctionCall","src":"2521:25:101"},"nativeSrc":"2518:112:101","nodeType":"YulIf","src":"2518:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2674:3:101","nodeType":"YulIdentifier","src":"2674:3:101"},{"name":"dst","nativeSrc":"2679:3:101","nodeType":"YulIdentifier","src":"2679:3:101"},{"name":"length","nativeSrc":"2684:6:101","nodeType":"YulIdentifier","src":"2684:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2639:34:101","nodeType":"YulIdentifier","src":"2639:34:101"},"nativeSrc":"2639:52:101","nodeType":"YulFunctionCall","src":"2639:52:101"},"nativeSrc":"2639:52:101","nodeType":"YulExpressionStatement","src":"2639:52:101"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2265:432:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2332:3:101","nodeType":"YulTypedName","src":"2332:3:101","type":""},{"name":"length","nativeSrc":"2337:6:101","nodeType":"YulTypedName","src":"2337:6:101","type":""},{"name":"end","nativeSrc":"2345:3:101","nodeType":"YulTypedName","src":"2345:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2353:5:101","nodeType":"YulTypedName","src":"2353:5:101","type":""}],"src":"2265:432:101"},{"body":{"nativeSrc":"2788:281:101","nodeType":"YulBlock","src":"2788:281:101","statements":[{"body":{"nativeSrc":"2837:83:101","nodeType":"YulBlock","src":"2837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2839:77:101","nodeType":"YulIdentifier","src":"2839:77:101"},"nativeSrc":"2839:79:101","nodeType":"YulFunctionCall","src":"2839:79:101"},"nativeSrc":"2839:79:101","nodeType":"YulExpressionStatement","src":"2839:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2816:6:101","nodeType":"YulIdentifier","src":"2816:6:101"},{"kind":"number","nativeSrc":"2824:4:101","nodeType":"YulLiteral","src":"2824:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2812:3:101","nodeType":"YulIdentifier","src":"2812:3:101"},"nativeSrc":"2812:17:101","nodeType":"YulFunctionCall","src":"2812:17:101"},{"name":"end","nativeSrc":"2831:3:101","nodeType":"YulIdentifier","src":"2831:3:101"}],"functionName":{"name":"slt","nativeSrc":"2808:3:101","nodeType":"YulIdentifier","src":"2808:3:101"},"nativeSrc":"2808:27:101","nodeType":"YulFunctionCall","src":"2808:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2801:6:101","nodeType":"YulIdentifier","src":"2801:6:101"},"nativeSrc":"2801:35:101","nodeType":"YulFunctionCall","src":"2801:35:101"},"nativeSrc":"2798:122:101","nodeType":"YulIf","src":"2798:122:101"},{"nativeSrc":"2929:27:101","nodeType":"YulVariableDeclaration","src":"2929:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2949:6:101","nodeType":"YulIdentifier","src":"2949:6:101"}],"functionName":{"name":"mload","nativeSrc":"2943:5:101","nodeType":"YulIdentifier","src":"2943:5:101"},"nativeSrc":"2943:13:101","nodeType":"YulFunctionCall","src":"2943:13:101"},"variables":[{"name":"length","nativeSrc":"2933:6:101","nodeType":"YulTypedName","src":"2933:6:101","type":""}]},{"nativeSrc":"2965:98:101","nodeType":"YulAssignment","src":"2965:98:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3036:6:101","nodeType":"YulIdentifier","src":"3036:6:101"},{"kind":"number","nativeSrc":"3044:4:101","nodeType":"YulLiteral","src":"3044:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:101","nodeType":"YulIdentifier","src":"3032:3:101"},"nativeSrc":"3032:17:101","nodeType":"YulFunctionCall","src":"3032:17:101"},{"name":"length","nativeSrc":"3051:6:101","nodeType":"YulIdentifier","src":"3051:6:101"},{"name":"end","nativeSrc":"3059:3:101","nodeType":"YulIdentifier","src":"3059:3:101"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2974:57:101","nodeType":"YulIdentifier","src":"2974:57:101"},"nativeSrc":"2974:89:101","nodeType":"YulFunctionCall","src":"2974:89:101"},"variableNames":[{"name":"array","nativeSrc":"2965:5:101","nodeType":"YulIdentifier","src":"2965:5:101"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2716:353:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2766:6:101","nodeType":"YulTypedName","src":"2766:6:101","type":""},{"name":"end","nativeSrc":"2774:3:101","nodeType":"YulTypedName","src":"2774:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2782:5:101","nodeType":"YulTypedName","src":"2782:5:101","type":""}],"src":"2716:353:101"},{"body":{"nativeSrc":"3195:714:101","nodeType":"YulBlock","src":"3195:714:101","statements":[{"body":{"nativeSrc":"3241:83:101","nodeType":"YulBlock","src":"3241:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3243:77:101","nodeType":"YulIdentifier","src":"3243:77:101"},"nativeSrc":"3243:79:101","nodeType":"YulFunctionCall","src":"3243:79:101"},"nativeSrc":"3243:79:101","nodeType":"YulExpressionStatement","src":"3243:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3216:7:101","nodeType":"YulIdentifier","src":"3216:7:101"},{"name":"headStart","nativeSrc":"3225:9:101","nodeType":"YulIdentifier","src":"3225:9:101"}],"functionName":{"name":"sub","nativeSrc":"3212:3:101","nodeType":"YulIdentifier","src":"3212:3:101"},"nativeSrc":"3212:23:101","nodeType":"YulFunctionCall","src":"3212:23:101"},{"kind":"number","nativeSrc":"3237:2:101","nodeType":"YulLiteral","src":"3237:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3208:3:101","nodeType":"YulIdentifier","src":"3208:3:101"},"nativeSrc":"3208:32:101","nodeType":"YulFunctionCall","src":"3208:32:101"},"nativeSrc":"3205:119:101","nodeType":"YulIf","src":"3205:119:101"},{"nativeSrc":"3334:128:101","nodeType":"YulBlock","src":"3334:128:101","statements":[{"nativeSrc":"3349:15:101","nodeType":"YulVariableDeclaration","src":"3349:15:101","value":{"kind":"number","nativeSrc":"3363:1:101","nodeType":"YulLiteral","src":"3363:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3353:6:101","nodeType":"YulTypedName","src":"3353:6:101","type":""}]},{"nativeSrc":"3378:74:101","nodeType":"YulAssignment","src":"3378:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3424:9:101","nodeType":"YulIdentifier","src":"3424:9:101"},{"name":"offset","nativeSrc":"3435:6:101","nodeType":"YulIdentifier","src":"3435:6:101"}],"functionName":{"name":"add","nativeSrc":"3420:3:101","nodeType":"YulIdentifier","src":"3420:3:101"},"nativeSrc":"3420:22:101","nodeType":"YulFunctionCall","src":"3420:22:101"},{"name":"dataEnd","nativeSrc":"3444:7:101","nodeType":"YulIdentifier","src":"3444:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3388:31:101","nodeType":"YulIdentifier","src":"3388:31:101"},"nativeSrc":"3388:64:101","nodeType":"YulFunctionCall","src":"3388:64:101"},"variableNames":[{"name":"value0","nativeSrc":"3378:6:101","nodeType":"YulIdentifier","src":"3378:6:101"}]}]},{"nativeSrc":"3472:129:101","nodeType":"YulBlock","src":"3472:129:101","statements":[{"nativeSrc":"3487:16:101","nodeType":"YulVariableDeclaration","src":"3487:16:101","value":{"kind":"number","nativeSrc":"3501:2:101","nodeType":"YulLiteral","src":"3501:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3491:6:101","nodeType":"YulTypedName","src":"3491:6:101","type":""}]},{"nativeSrc":"3517:74:101","nodeType":"YulAssignment","src":"3517:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3563:9:101","nodeType":"YulIdentifier","src":"3563:9:101"},{"name":"offset","nativeSrc":"3574:6:101","nodeType":"YulIdentifier","src":"3574:6:101"}],"functionName":{"name":"add","nativeSrc":"3559:3:101","nodeType":"YulIdentifier","src":"3559:3:101"},"nativeSrc":"3559:22:101","nodeType":"YulFunctionCall","src":"3559:22:101"},{"name":"dataEnd","nativeSrc":"3583:7:101","nodeType":"YulIdentifier","src":"3583:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3527:31:101","nodeType":"YulIdentifier","src":"3527:31:101"},"nativeSrc":"3527:64:101","nodeType":"YulFunctionCall","src":"3527:64:101"},"variableNames":[{"name":"value1","nativeSrc":"3517:6:101","nodeType":"YulIdentifier","src":"3517:6:101"}]}]},{"nativeSrc":"3611:291:101","nodeType":"YulBlock","src":"3611:291:101","statements":[{"nativeSrc":"3626:39:101","nodeType":"YulVariableDeclaration","src":"3626:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3650:9:101","nodeType":"YulIdentifier","src":"3650:9:101"},{"kind":"number","nativeSrc":"3661:2:101","nodeType":"YulLiteral","src":"3661:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3646:3:101","nodeType":"YulIdentifier","src":"3646:3:101"},"nativeSrc":"3646:18:101","nodeType":"YulFunctionCall","src":"3646:18:101"}],"functionName":{"name":"mload","nativeSrc":"3640:5:101","nodeType":"YulIdentifier","src":"3640:5:101"},"nativeSrc":"3640:25:101","nodeType":"YulFunctionCall","src":"3640:25:101"},"variables":[{"name":"offset","nativeSrc":"3630:6:101","nodeType":"YulTypedName","src":"3630:6:101","type":""}]},{"body":{"nativeSrc":"3712:83:101","nodeType":"YulBlock","src":"3712:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3714:77:101","nodeType":"YulIdentifier","src":"3714:77:101"},"nativeSrc":"3714:79:101","nodeType":"YulFunctionCall","src":"3714:79:101"},"nativeSrc":"3714:79:101","nodeType":"YulExpressionStatement","src":"3714:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3684:6:101","nodeType":"YulIdentifier","src":"3684:6:101"},{"kind":"number","nativeSrc":"3692:18:101","nodeType":"YulLiteral","src":"3692:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3681:2:101","nodeType":"YulIdentifier","src":"3681:2:101"},"nativeSrc":"3681:30:101","nodeType":"YulFunctionCall","src":"3681:30:101"},"nativeSrc":"3678:117:101","nodeType":"YulIf","src":"3678:117:101"},{"nativeSrc":"3809:83:101","nodeType":"YulAssignment","src":"3809:83:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3864:9:101","nodeType":"YulIdentifier","src":"3864:9:101"},{"name":"offset","nativeSrc":"3875:6:101","nodeType":"YulIdentifier","src":"3875:6:101"}],"functionName":{"name":"add","nativeSrc":"3860:3:101","nodeType":"YulIdentifier","src":"3860:3:101"},"nativeSrc":"3860:22:101","nodeType":"YulFunctionCall","src":"3860:22:101"},{"name":"dataEnd","nativeSrc":"3884:7:101","nodeType":"YulIdentifier","src":"3884:7:101"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3819:40:101","nodeType":"YulIdentifier","src":"3819:40:101"},"nativeSrc":"3819:73:101","nodeType":"YulFunctionCall","src":"3819:73:101"},"variableNames":[{"name":"value2","nativeSrc":"3809:6:101","nodeType":"YulIdentifier","src":"3809:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3075:834:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3149:9:101","nodeType":"YulTypedName","src":"3149:9:101","type":""},{"name":"dataEnd","nativeSrc":"3160:7:101","nodeType":"YulTypedName","src":"3160:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3172:6:101","nodeType":"YulTypedName","src":"3172:6:101","type":""},{"name":"value1","nativeSrc":"3180:6:101","nodeType":"YulTypedName","src":"3180:6:101","type":""},{"name":"value2","nativeSrc":"3188:6:101","nodeType":"YulTypedName","src":"3188:6:101","type":""}],"src":"3075:834:101"},{"body":{"nativeSrc":"3960:32:101","nodeType":"YulBlock","src":"3960:32:101","statements":[{"nativeSrc":"3970:16:101","nodeType":"YulAssignment","src":"3970:16:101","value":{"name":"value","nativeSrc":"3981:5:101","nodeType":"YulIdentifier","src":"3981:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3970:7:101","nodeType":"YulIdentifier","src":"3970:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3915:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3942:5:101","nodeType":"YulTypedName","src":"3942:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3952:7:101","nodeType":"YulTypedName","src":"3952:7:101","type":""}],"src":"3915:77:101"},{"body":{"nativeSrc":"4026:152:101","nodeType":"YulBlock","src":"4026:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4043:1:101","nodeType":"YulLiteral","src":"4043:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4046:77:101","nodeType":"YulLiteral","src":"4046:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4036:6:101","nodeType":"YulIdentifier","src":"4036:6:101"},"nativeSrc":"4036:88:101","nodeType":"YulFunctionCall","src":"4036:88:101"},"nativeSrc":"4036:88:101","nodeType":"YulExpressionStatement","src":"4036:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4140:1:101","nodeType":"YulLiteral","src":"4140:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4143:4:101","nodeType":"YulLiteral","src":"4143:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4133:6:101","nodeType":"YulIdentifier","src":"4133:6:101"},"nativeSrc":"4133:15:101","nodeType":"YulFunctionCall","src":"4133:15:101"},"nativeSrc":"4133:15:101","nodeType":"YulExpressionStatement","src":"4133:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4164:1:101","nodeType":"YulLiteral","src":"4164:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4167:4:101","nodeType":"YulLiteral","src":"4167:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4157:6:101","nodeType":"YulIdentifier","src":"4157:6:101"},"nativeSrc":"4157:15:101","nodeType":"YulFunctionCall","src":"4157:15:101"},"nativeSrc":"4157:15:101","nodeType":"YulExpressionStatement","src":"4157:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3998:180:101","nodeType":"YulFunctionDefinition","src":"3998:180:101"},{"body":{"nativeSrc":"4229:149:101","nodeType":"YulBlock","src":"4229:149:101","statements":[{"nativeSrc":"4239:25:101","nodeType":"YulAssignment","src":"4239:25:101","value":{"arguments":[{"name":"x","nativeSrc":"4262:1:101","nodeType":"YulIdentifier","src":"4262:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4244:17:101","nodeType":"YulIdentifier","src":"4244:17:101"},"nativeSrc":"4244:20:101","nodeType":"YulFunctionCall","src":"4244:20:101"},"variableNames":[{"name":"x","nativeSrc":"4239:1:101","nodeType":"YulIdentifier","src":"4239:1:101"}]},{"nativeSrc":"4273:25:101","nodeType":"YulAssignment","src":"4273:25:101","value":{"arguments":[{"name":"y","nativeSrc":"4296:1:101","nodeType":"YulIdentifier","src":"4296:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4278:17:101","nodeType":"YulIdentifier","src":"4278:17:101"},"nativeSrc":"4278:20:101","nodeType":"YulFunctionCall","src":"4278:20:101"},"variableNames":[{"name":"y","nativeSrc":"4273:1:101","nodeType":"YulIdentifier","src":"4273:1:101"}]},{"nativeSrc":"4307:17:101","nodeType":"YulAssignment","src":"4307:17:101","value":{"arguments":[{"name":"x","nativeSrc":"4319:1:101","nodeType":"YulIdentifier","src":"4319:1:101"},{"name":"y","nativeSrc":"4322:1:101","nodeType":"YulIdentifier","src":"4322:1:101"}],"functionName":{"name":"sub","nativeSrc":"4315:3:101","nodeType":"YulIdentifier","src":"4315:3:101"},"nativeSrc":"4315:9:101","nodeType":"YulFunctionCall","src":"4315:9:101"},"variableNames":[{"name":"diff","nativeSrc":"4307:4:101","nodeType":"YulIdentifier","src":"4307:4:101"}]},{"body":{"nativeSrc":"4349:22:101","nodeType":"YulBlock","src":"4349:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4351:16:101","nodeType":"YulIdentifier","src":"4351:16:101"},"nativeSrc":"4351:18:101","nodeType":"YulFunctionCall","src":"4351:18:101"},"nativeSrc":"4351:18:101","nodeType":"YulExpressionStatement","src":"4351:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4340:4:101","nodeType":"YulIdentifier","src":"4340:4:101"},{"name":"x","nativeSrc":"4346:1:101","nodeType":"YulIdentifier","src":"4346:1:101"}],"functionName":{"name":"gt","nativeSrc":"4337:2:101","nodeType":"YulIdentifier","src":"4337:2:101"},"nativeSrc":"4337:11:101","nodeType":"YulFunctionCall","src":"4337:11:101"},"nativeSrc":"4334:37:101","nodeType":"YulIf","src":"4334:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"4184:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4215:1:101","nodeType":"YulTypedName","src":"4215:1:101","type":""},{"name":"y","nativeSrc":"4218:1:101","nodeType":"YulTypedName","src":"4218:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4224:4:101","nodeType":"YulTypedName","src":"4224:4:101","type":""}],"src":"4184:194:101"},{"body":{"nativeSrc":"4412:152:101","nodeType":"YulBlock","src":"4412:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4429:1:101","nodeType":"YulLiteral","src":"4429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4432:77:101","nodeType":"YulLiteral","src":"4432:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4422:6:101","nodeType":"YulIdentifier","src":"4422:6:101"},"nativeSrc":"4422:88:101","nodeType":"YulFunctionCall","src":"4422:88:101"},"nativeSrc":"4422:88:101","nodeType":"YulExpressionStatement","src":"4422:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4526:1:101","nodeType":"YulLiteral","src":"4526:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4529:4:101","nodeType":"YulLiteral","src":"4529:4:101","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4519:6:101","nodeType":"YulIdentifier","src":"4519:6:101"},"nativeSrc":"4519:15:101","nodeType":"YulFunctionCall","src":"4519:15:101"},"nativeSrc":"4519:15:101","nodeType":"YulExpressionStatement","src":"4519:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4550:1:101","nodeType":"YulLiteral","src":"4550:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4553:4:101","nodeType":"YulLiteral","src":"4553:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4543:6:101","nodeType":"YulIdentifier","src":"4543:6:101"},"nativeSrc":"4543:15:101","nodeType":"YulFunctionCall","src":"4543:15:101"},"nativeSrc":"4543:15:101","nodeType":"YulExpressionStatement","src":"4543:15:101"}]},"name":"panic_error_0x01","nativeSrc":"4384:180:101","nodeType":"YulFunctionDefinition","src":"4384:180:101"},{"body":{"nativeSrc":"4635:53:101","nodeType":"YulBlock","src":"4635:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4652:3:101","nodeType":"YulIdentifier","src":"4652:3:101"},{"arguments":[{"name":"value","nativeSrc":"4675:5:101","nodeType":"YulIdentifier","src":"4675:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4657:17:101","nodeType":"YulIdentifier","src":"4657:17:101"},"nativeSrc":"4657:24:101","nodeType":"YulFunctionCall","src":"4657:24:101"}],"functionName":{"name":"mstore","nativeSrc":"4645:6:101","nodeType":"YulIdentifier","src":"4645:6:101"},"nativeSrc":"4645:37:101","nodeType":"YulFunctionCall","src":"4645:37:101"},"nativeSrc":"4645:37:101","nodeType":"YulExpressionStatement","src":"4645:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4570:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4623:5:101","nodeType":"YulTypedName","src":"4623:5:101","type":""},{"name":"pos","nativeSrc":"4630:3:101","nodeType":"YulTypedName","src":"4630:3:101","type":""}],"src":"4570:118:101"},{"body":{"nativeSrc":"4820:206:101","nodeType":"YulBlock","src":"4820:206:101","statements":[{"nativeSrc":"4830:26:101","nodeType":"YulAssignment","src":"4830:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4842:9:101","nodeType":"YulIdentifier","src":"4842:9:101"},{"kind":"number","nativeSrc":"4853:2:101","nodeType":"YulLiteral","src":"4853:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4838:3:101","nodeType":"YulIdentifier","src":"4838:3:101"},"nativeSrc":"4838:18:101","nodeType":"YulFunctionCall","src":"4838:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4830:4:101","nodeType":"YulIdentifier","src":"4830:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4910:6:101","nodeType":"YulIdentifier","src":"4910:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4923:9:101","nodeType":"YulIdentifier","src":"4923:9:101"},{"kind":"number","nativeSrc":"4934:1:101","nodeType":"YulLiteral","src":"4934:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4919:3:101","nodeType":"YulIdentifier","src":"4919:3:101"},"nativeSrc":"4919:17:101","nodeType":"YulFunctionCall","src":"4919:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4866:43:101","nodeType":"YulIdentifier","src":"4866:43:101"},"nativeSrc":"4866:71:101","nodeType":"YulFunctionCall","src":"4866:71:101"},"nativeSrc":"4866:71:101","nodeType":"YulExpressionStatement","src":"4866:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4991:6:101","nodeType":"YulIdentifier","src":"4991:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5004:9:101","nodeType":"YulIdentifier","src":"5004:9:101"},{"kind":"number","nativeSrc":"5015:2:101","nodeType":"YulLiteral","src":"5015:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5000:3:101","nodeType":"YulIdentifier","src":"5000:3:101"},"nativeSrc":"5000:18:101","nodeType":"YulFunctionCall","src":"5000:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4947:43:101","nodeType":"YulIdentifier","src":"4947:43:101"},"nativeSrc":"4947:72:101","nodeType":"YulFunctionCall","src":"4947:72:101"},"nativeSrc":"4947:72:101","nodeType":"YulExpressionStatement","src":"4947:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4694:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4784:9:101","nodeType":"YulTypedName","src":"4784:9:101","type":""},{"name":"value1","nativeSrc":"4796:6:101","nodeType":"YulTypedName","src":"4796:6:101","type":""},{"name":"value0","nativeSrc":"4804:6:101","nodeType":"YulTypedName","src":"4804:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4815:4:101","nodeType":"YulTypedName","src":"4815:4:101","type":""}],"src":"4694:332:101"},{"body":{"nativeSrc":"5128:73:101","nodeType":"YulBlock","src":"5128:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5145:3:101","nodeType":"YulIdentifier","src":"5145:3:101"},{"name":"length","nativeSrc":"5150:6:101","nodeType":"YulIdentifier","src":"5150:6:101"}],"functionName":{"name":"mstore","nativeSrc":"5138:6:101","nodeType":"YulIdentifier","src":"5138:6:101"},"nativeSrc":"5138:19:101","nodeType":"YulFunctionCall","src":"5138:19:101"},"nativeSrc":"5138:19:101","nodeType":"YulExpressionStatement","src":"5138:19:101"},{"nativeSrc":"5166:29:101","nodeType":"YulAssignment","src":"5166:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"5185:3:101","nodeType":"YulIdentifier","src":"5185:3:101"},{"kind":"number","nativeSrc":"5190:4:101","nodeType":"YulLiteral","src":"5190:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5181:3:101","nodeType":"YulIdentifier","src":"5181:3:101"},"nativeSrc":"5181:14:101","nodeType":"YulFunctionCall","src":"5181:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"5166:11:101","nodeType":"YulIdentifier","src":"5166:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5032:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5100:3:101","nodeType":"YulTypedName","src":"5100:3:101","type":""},{"name":"length","nativeSrc":"5105:6:101","nodeType":"YulTypedName","src":"5105:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5116:11:101","nodeType":"YulTypedName","src":"5116:11:101","type":""}],"src":"5032:169:101"},{"body":{"nativeSrc":"5313:119:101","nodeType":"YulBlock","src":"5313:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5335:6:101","nodeType":"YulIdentifier","src":"5335:6:101"},{"kind":"number","nativeSrc":"5343:1:101","nodeType":"YulLiteral","src":"5343:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5331:3:101","nodeType":"YulIdentifier","src":"5331:3:101"},"nativeSrc":"5331:14:101","nodeType":"YulFunctionCall","src":"5331:14:101"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"5347:34:101","nodeType":"YulLiteral","src":"5347:34:101","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"5324:6:101","nodeType":"YulIdentifier","src":"5324:6:101"},"nativeSrc":"5324:58:101","nodeType":"YulFunctionCall","src":"5324:58:101"},"nativeSrc":"5324:58:101","nodeType":"YulExpressionStatement","src":"5324:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5403:6:101","nodeType":"YulIdentifier","src":"5403:6:101"},{"kind":"number","nativeSrc":"5411:2:101","nodeType":"YulLiteral","src":"5411:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5399:3:101","nodeType":"YulIdentifier","src":"5399:3:101"},"nativeSrc":"5399:15:101","nodeType":"YulFunctionCall","src":"5399:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"5416:8:101","nodeType":"YulLiteral","src":"5416:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"5392:6:101","nodeType":"YulIdentifier","src":"5392:6:101"},"nativeSrc":"5392:33:101","nodeType":"YulFunctionCall","src":"5392:33:101"},"nativeSrc":"5392:33:101","nodeType":"YulExpressionStatement","src":"5392:33:101"}]},"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5207:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5305:6:101","nodeType":"YulTypedName","src":"5305:6:101","type":""}],"src":"5207:225:101"},{"body":{"nativeSrc":"5584:220:101","nodeType":"YulBlock","src":"5584:220:101","statements":[{"nativeSrc":"5594:74:101","nodeType":"YulAssignment","src":"5594:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5660:3:101","nodeType":"YulIdentifier","src":"5660:3:101"},{"kind":"number","nativeSrc":"5665:2:101","nodeType":"YulLiteral","src":"5665:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5601:58:101","nodeType":"YulIdentifier","src":"5601:58:101"},"nativeSrc":"5601:67:101","nodeType":"YulFunctionCall","src":"5601:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5594:3:101","nodeType":"YulIdentifier","src":"5594:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5766:3:101","nodeType":"YulIdentifier","src":"5766:3:101"}],"functionName":{"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5677:88:101","nodeType":"YulIdentifier","src":"5677:88:101"},"nativeSrc":"5677:93:101","nodeType":"YulFunctionCall","src":"5677:93:101"},"nativeSrc":"5677:93:101","nodeType":"YulExpressionStatement","src":"5677:93:101"},{"nativeSrc":"5779:19:101","nodeType":"YulAssignment","src":"5779:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5790:3:101","nodeType":"YulIdentifier","src":"5790:3:101"},{"kind":"number","nativeSrc":"5795:2:101","nodeType":"YulLiteral","src":"5795:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5786:3:101","nodeType":"YulIdentifier","src":"5786:3:101"},"nativeSrc":"5786:12:101","nodeType":"YulFunctionCall","src":"5786:12:101"},"variableNames":[{"name":"end","nativeSrc":"5779:3:101","nodeType":"YulIdentifier","src":"5779:3:101"}]}]},"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"5438:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5572:3:101","nodeType":"YulTypedName","src":"5572:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5580:3:101","nodeType":"YulTypedName","src":"5580:3:101","type":""}],"src":"5438:366:101"},{"body":{"nativeSrc":"5981:248:101","nodeType":"YulBlock","src":"5981:248:101","statements":[{"nativeSrc":"5991:26:101","nodeType":"YulAssignment","src":"5991:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6003:9:101","nodeType":"YulIdentifier","src":"6003:9:101"},{"kind":"number","nativeSrc":"6014:2:101","nodeType":"YulLiteral","src":"6014:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5999:3:101","nodeType":"YulIdentifier","src":"5999:3:101"},"nativeSrc":"5999:18:101","nodeType":"YulFunctionCall","src":"5999:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5991:4:101","nodeType":"YulIdentifier","src":"5991:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6038:9:101","nodeType":"YulIdentifier","src":"6038:9:101"},{"kind":"number","nativeSrc":"6049:1:101","nodeType":"YulLiteral","src":"6049:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6034:3:101","nodeType":"YulIdentifier","src":"6034:3:101"},"nativeSrc":"6034:17:101","nodeType":"YulFunctionCall","src":"6034:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6057:4:101","nodeType":"YulIdentifier","src":"6057:4:101"},{"name":"headStart","nativeSrc":"6063:9:101","nodeType":"YulIdentifier","src":"6063:9:101"}],"functionName":{"name":"sub","nativeSrc":"6053:3:101","nodeType":"YulIdentifier","src":"6053:3:101"},"nativeSrc":"6053:20:101","nodeType":"YulFunctionCall","src":"6053:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6027:6:101","nodeType":"YulIdentifier","src":"6027:6:101"},"nativeSrc":"6027:47:101","nodeType":"YulFunctionCall","src":"6027:47:101"},"nativeSrc":"6027:47:101","nodeType":"YulExpressionStatement","src":"6027:47:101"},{"nativeSrc":"6083:139:101","nodeType":"YulAssignment","src":"6083:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6217:4:101","nodeType":"YulIdentifier","src":"6217:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"6091:124:101","nodeType":"YulIdentifier","src":"6091:124:101"},"nativeSrc":"6091:131:101","nodeType":"YulFunctionCall","src":"6091:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6083:4:101","nodeType":"YulIdentifier","src":"6083:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5810:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5961:9:101","nodeType":"YulTypedName","src":"5961:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5976:4:101","nodeType":"YulTypedName","src":"5976:4:101","type":""}],"src":"5810:419:101"},{"body":{"nativeSrc":"6341:126:101","nodeType":"YulBlock","src":"6341:126:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6363:6:101","nodeType":"YulIdentifier","src":"6363:6:101"},{"kind":"number","nativeSrc":"6371:1:101","nodeType":"YulLiteral","src":"6371:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6359:3:101","nodeType":"YulIdentifier","src":"6359:3:101"},"nativeSrc":"6359:14:101","nodeType":"YulFunctionCall","src":"6359:14:101"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"6375:34:101","nodeType":"YulLiteral","src":"6375:34:101","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"6352:6:101","nodeType":"YulIdentifier","src":"6352:6:101"},"nativeSrc":"6352:58:101","nodeType":"YulFunctionCall","src":"6352:58:101"},"nativeSrc":"6352:58:101","nodeType":"YulExpressionStatement","src":"6352:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6431:6:101","nodeType":"YulIdentifier","src":"6431:6:101"},{"kind":"number","nativeSrc":"6439:2:101","nodeType":"YulLiteral","src":"6439:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6427:3:101","nodeType":"YulIdentifier","src":"6427:3:101"},"nativeSrc":"6427:15:101","nodeType":"YulFunctionCall","src":"6427:15:101"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"6444:15:101","nodeType":"YulLiteral","src":"6444:15:101","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"6420:6:101","nodeType":"YulIdentifier","src":"6420:6:101"},"nativeSrc":"6420:40:101","nodeType":"YulFunctionCall","src":"6420:40:101"},"nativeSrc":"6420:40:101","nodeType":"YulExpressionStatement","src":"6420:40:101"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6235:232:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6333:6:101","nodeType":"YulTypedName","src":"6333:6:101","type":""}],"src":"6235:232:101"},{"body":{"nativeSrc":"6619:220:101","nodeType":"YulBlock","src":"6619:220:101","statements":[{"nativeSrc":"6629:74:101","nodeType":"YulAssignment","src":"6629:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6695:3:101","nodeType":"YulIdentifier","src":"6695:3:101"},{"kind":"number","nativeSrc":"6700:2:101","nodeType":"YulLiteral","src":"6700:2:101","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6636:58:101","nodeType":"YulIdentifier","src":"6636:58:101"},"nativeSrc":"6636:67:101","nodeType":"YulFunctionCall","src":"6636:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6629:3:101","nodeType":"YulIdentifier","src":"6629:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6801:3:101","nodeType":"YulIdentifier","src":"6801:3:101"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6712:88:101","nodeType":"YulIdentifier","src":"6712:88:101"},"nativeSrc":"6712:93:101","nodeType":"YulFunctionCall","src":"6712:93:101"},"nativeSrc":"6712:93:101","nodeType":"YulExpressionStatement","src":"6712:93:101"},{"nativeSrc":"6814:19:101","nodeType":"YulAssignment","src":"6814:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6825:3:101","nodeType":"YulIdentifier","src":"6825:3:101"},{"kind":"number","nativeSrc":"6830:2:101","nodeType":"YulLiteral","src":"6830:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6821:3:101","nodeType":"YulIdentifier","src":"6821:3:101"},"nativeSrc":"6821:12:101","nodeType":"YulFunctionCall","src":"6821:12:101"},"variableNames":[{"name":"end","nativeSrc":"6814:3:101","nodeType":"YulIdentifier","src":"6814:3:101"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6473:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6607:3:101","nodeType":"YulTypedName","src":"6607:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6615:3:101","nodeType":"YulTypedName","src":"6615:3:101","type":""}],"src":"6473:366:101"},{"body":{"nativeSrc":"7016:248:101","nodeType":"YulBlock","src":"7016:248:101","statements":[{"nativeSrc":"7026:26:101","nodeType":"YulAssignment","src":"7026:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7038:9:101","nodeType":"YulIdentifier","src":"7038:9:101"},{"kind":"number","nativeSrc":"7049:2:101","nodeType":"YulLiteral","src":"7049:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7034:3:101","nodeType":"YulIdentifier","src":"7034:3:101"},"nativeSrc":"7034:18:101","nodeType":"YulFunctionCall","src":"7034:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7026:4:101","nodeType":"YulIdentifier","src":"7026:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7073:9:101","nodeType":"YulIdentifier","src":"7073:9:101"},{"kind":"number","nativeSrc":"7084:1:101","nodeType":"YulLiteral","src":"7084:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7069:3:101","nodeType":"YulIdentifier","src":"7069:3:101"},"nativeSrc":"7069:17:101","nodeType":"YulFunctionCall","src":"7069:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7092:4:101","nodeType":"YulIdentifier","src":"7092:4:101"},{"name":"headStart","nativeSrc":"7098:9:101","nodeType":"YulIdentifier","src":"7098:9:101"}],"functionName":{"name":"sub","nativeSrc":"7088:3:101","nodeType":"YulIdentifier","src":"7088:3:101"},"nativeSrc":"7088:20:101","nodeType":"YulFunctionCall","src":"7088:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7062:6:101","nodeType":"YulIdentifier","src":"7062:6:101"},"nativeSrc":"7062:47:101","nodeType":"YulFunctionCall","src":"7062:47:101"},"nativeSrc":"7062:47:101","nodeType":"YulExpressionStatement","src":"7062:47:101"},{"nativeSrc":"7118:139:101","nodeType":"YulAssignment","src":"7118:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"7252:4:101","nodeType":"YulIdentifier","src":"7252:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"7126:124:101","nodeType":"YulIdentifier","src":"7126:124:101"},"nativeSrc":"7126:131:101","nodeType":"YulFunctionCall","src":"7126:131:101"},"variableNames":[{"name":"tail","nativeSrc":"7118:4:101","nodeType":"YulIdentifier","src":"7118:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6845:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6996:9:101","nodeType":"YulTypedName","src":"6996:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7011:4:101","nodeType":"YulTypedName","src":"7011:4:101","type":""}],"src":"6845:419:101"},{"body":{"nativeSrc":"7376:119:101","nodeType":"YulBlock","src":"7376:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7398:6:101","nodeType":"YulIdentifier","src":"7398:6:101"},{"kind":"number","nativeSrc":"7406:1:101","nodeType":"YulLiteral","src":"7406:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7394:3:101","nodeType":"YulIdentifier","src":"7394:3:101"},"nativeSrc":"7394:14:101","nodeType":"YulFunctionCall","src":"7394:14:101"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"7410:34:101","nodeType":"YulLiteral","src":"7410:34:101","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"7387:6:101","nodeType":"YulIdentifier","src":"7387:6:101"},"nativeSrc":"7387:58:101","nodeType":"YulFunctionCall","src":"7387:58:101"},"nativeSrc":"7387:58:101","nodeType":"YulExpressionStatement","src":"7387:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7466:6:101","nodeType":"YulIdentifier","src":"7466:6:101"},{"kind":"number","nativeSrc":"7474:2:101","nodeType":"YulLiteral","src":"7474:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7462:3:101","nodeType":"YulIdentifier","src":"7462:3:101"},"nativeSrc":"7462:15:101","nodeType":"YulFunctionCall","src":"7462:15:101"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"7479:8:101","nodeType":"YulLiteral","src":"7479:8:101","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"7455:6:101","nodeType":"YulIdentifier","src":"7455:6:101"},"nativeSrc":"7455:33:101","nodeType":"YulFunctionCall","src":"7455:33:101"},"nativeSrc":"7455:33:101","nodeType":"YulExpressionStatement","src":"7455:33:101"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7270:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7368:6:101","nodeType":"YulTypedName","src":"7368:6:101","type":""}],"src":"7270:225:101"},{"body":{"nativeSrc":"7647:220:101","nodeType":"YulBlock","src":"7647:220:101","statements":[{"nativeSrc":"7657:74:101","nodeType":"YulAssignment","src":"7657:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7723:3:101","nodeType":"YulIdentifier","src":"7723:3:101"},{"kind":"number","nativeSrc":"7728:2:101","nodeType":"YulLiteral","src":"7728:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7664:58:101","nodeType":"YulIdentifier","src":"7664:58:101"},"nativeSrc":"7664:67:101","nodeType":"YulFunctionCall","src":"7664:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7657:3:101","nodeType":"YulIdentifier","src":"7657:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7829:3:101","nodeType":"YulIdentifier","src":"7829:3:101"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7740:88:101","nodeType":"YulIdentifier","src":"7740:88:101"},"nativeSrc":"7740:93:101","nodeType":"YulFunctionCall","src":"7740:93:101"},"nativeSrc":"7740:93:101","nodeType":"YulExpressionStatement","src":"7740:93:101"},{"nativeSrc":"7842:19:101","nodeType":"YulAssignment","src":"7842:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7853:3:101","nodeType":"YulIdentifier","src":"7853:3:101"},{"kind":"number","nativeSrc":"7858:2:101","nodeType":"YulLiteral","src":"7858:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7849:3:101","nodeType":"YulIdentifier","src":"7849:3:101"},"nativeSrc":"7849:12:101","nodeType":"YulFunctionCall","src":"7849:12:101"},"variableNames":[{"name":"end","nativeSrc":"7842:3:101","nodeType":"YulIdentifier","src":"7842:3:101"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7501:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7635:3:101","nodeType":"YulTypedName","src":"7635:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7643:3:101","nodeType":"YulTypedName","src":"7643:3:101","type":""}],"src":"7501:366:101"},{"body":{"nativeSrc":"8044:248:101","nodeType":"YulBlock","src":"8044:248:101","statements":[{"nativeSrc":"8054:26:101","nodeType":"YulAssignment","src":"8054:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8066:9:101","nodeType":"YulIdentifier","src":"8066:9:101"},{"kind":"number","nativeSrc":"8077:2:101","nodeType":"YulLiteral","src":"8077:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8062:3:101","nodeType":"YulIdentifier","src":"8062:3:101"},"nativeSrc":"8062:18:101","nodeType":"YulFunctionCall","src":"8062:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8054:4:101","nodeType":"YulIdentifier","src":"8054:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8101:9:101","nodeType":"YulIdentifier","src":"8101:9:101"},{"kind":"number","nativeSrc":"8112:1:101","nodeType":"YulLiteral","src":"8112:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8097:3:101","nodeType":"YulIdentifier","src":"8097:3:101"},"nativeSrc":"8097:17:101","nodeType":"YulFunctionCall","src":"8097:17:101"},{"arguments":[{"name":"tail","nativeSrc":"8120:4:101","nodeType":"YulIdentifier","src":"8120:4:101"},{"name":"headStart","nativeSrc":"8126:9:101","nodeType":"YulIdentifier","src":"8126:9:101"}],"functionName":{"name":"sub","nativeSrc":"8116:3:101","nodeType":"YulIdentifier","src":"8116:3:101"},"nativeSrc":"8116:20:101","nodeType":"YulFunctionCall","src":"8116:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8090:6:101","nodeType":"YulIdentifier","src":"8090:6:101"},"nativeSrc":"8090:47:101","nodeType":"YulFunctionCall","src":"8090:47:101"},"nativeSrc":"8090:47:101","nodeType":"YulExpressionStatement","src":"8090:47:101"},{"nativeSrc":"8146:139:101","nodeType":"YulAssignment","src":"8146:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"8280:4:101","nodeType":"YulIdentifier","src":"8280:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"8154:124:101","nodeType":"YulIdentifier","src":"8154:124:101"},"nativeSrc":"8154:131:101","nodeType":"YulFunctionCall","src":"8154:131:101"},"variableNames":[{"name":"tail","nativeSrc":"8146:4:101","nodeType":"YulIdentifier","src":"8146:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7873:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8024:9:101","nodeType":"YulTypedName","src":"8024:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8039:4:101","nodeType":"YulTypedName","src":"8039:4:101","type":""}],"src":"7873:419:101"},{"body":{"nativeSrc":"8356:40:101","nodeType":"YulBlock","src":"8356:40:101","statements":[{"nativeSrc":"8367:22:101","nodeType":"YulAssignment","src":"8367:22:101","value":{"arguments":[{"name":"value","nativeSrc":"8383:5:101","nodeType":"YulIdentifier","src":"8383:5:101"}],"functionName":{"name":"mload","nativeSrc":"8377:5:101","nodeType":"YulIdentifier","src":"8377:5:101"},"nativeSrc":"8377:12:101","nodeType":"YulFunctionCall","src":"8377:12:101"},"variableNames":[{"name":"length","nativeSrc":"8367:6:101","nodeType":"YulIdentifier","src":"8367:6:101"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8298:98:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8339:5:101","nodeType":"YulTypedName","src":"8339:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8349:6:101","nodeType":"YulTypedName","src":"8349:6:101","type":""}],"src":"8298:98:101"},{"body":{"nativeSrc":"8515:34:101","nodeType":"YulBlock","src":"8515:34:101","statements":[{"nativeSrc":"8525:18:101","nodeType":"YulAssignment","src":"8525:18:101","value":{"name":"pos","nativeSrc":"8540:3:101","nodeType":"YulIdentifier","src":"8540:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"8525:11:101","nodeType":"YulIdentifier","src":"8525:11:101"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8402:147:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8487:3:101","nodeType":"YulTypedName","src":"8487:3:101","type":""},{"name":"length","nativeSrc":"8492:6:101","nodeType":"YulTypedName","src":"8492:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8503:11:101","nodeType":"YulTypedName","src":"8503:11:101","type":""}],"src":"8402:147:101"},{"body":{"nativeSrc":"8663:278:101","nodeType":"YulBlock","src":"8663:278:101","statements":[{"nativeSrc":"8673:52:101","nodeType":"YulVariableDeclaration","src":"8673:52:101","value":{"arguments":[{"name":"value","nativeSrc":"8719:5:101","nodeType":"YulIdentifier","src":"8719:5:101"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8687:31:101","nodeType":"YulIdentifier","src":"8687:31:101"},"nativeSrc":"8687:38:101","nodeType":"YulFunctionCall","src":"8687:38:101"},"variables":[{"name":"length","nativeSrc":"8677:6:101","nodeType":"YulTypedName","src":"8677:6:101","type":""}]},{"nativeSrc":"8734:95:101","nodeType":"YulAssignment","src":"8734:95:101","value":{"arguments":[{"name":"pos","nativeSrc":"8817:3:101","nodeType":"YulIdentifier","src":"8817:3:101"},{"name":"length","nativeSrc":"8822:6:101","nodeType":"YulIdentifier","src":"8822:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8741:75:101","nodeType":"YulIdentifier","src":"8741:75:101"},"nativeSrc":"8741:88:101","nodeType":"YulFunctionCall","src":"8741:88:101"},"variableNames":[{"name":"pos","nativeSrc":"8734:3:101","nodeType":"YulIdentifier","src":"8734:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8877:5:101","nodeType":"YulIdentifier","src":"8877:5:101"},{"kind":"number","nativeSrc":"8884:4:101","nodeType":"YulLiteral","src":"8884:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8873:3:101","nodeType":"YulIdentifier","src":"8873:3:101"},"nativeSrc":"8873:16:101","nodeType":"YulFunctionCall","src":"8873:16:101"},{"name":"pos","nativeSrc":"8891:3:101","nodeType":"YulIdentifier","src":"8891:3:101"},{"name":"length","nativeSrc":"8896:6:101","nodeType":"YulIdentifier","src":"8896:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8838:34:101","nodeType":"YulIdentifier","src":"8838:34:101"},"nativeSrc":"8838:65:101","nodeType":"YulFunctionCall","src":"8838:65:101"},"nativeSrc":"8838:65:101","nodeType":"YulExpressionStatement","src":"8838:65:101"},{"nativeSrc":"8912:23:101","nodeType":"YulAssignment","src":"8912:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"8923:3:101","nodeType":"YulIdentifier","src":"8923:3:101"},{"name":"length","nativeSrc":"8928:6:101","nodeType":"YulIdentifier","src":"8928:6:101"}],"functionName":{"name":"add","nativeSrc":"8919:3:101","nodeType":"YulIdentifier","src":"8919:3:101"},"nativeSrc":"8919:16:101","nodeType":"YulFunctionCall","src":"8919:16:101"},"variableNames":[{"name":"end","nativeSrc":"8912:3:101","nodeType":"YulIdentifier","src":"8912:3:101"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8555:386:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8644:5:101","nodeType":"YulTypedName","src":"8644:5:101","type":""},{"name":"pos","nativeSrc":"8651:3:101","nodeType":"YulTypedName","src":"8651:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8659:3:101","nodeType":"YulTypedName","src":"8659:3:101","type":""}],"src":"8555:386:101"},{"body":{"nativeSrc":"9081:137:101","nodeType":"YulBlock","src":"9081:137:101","statements":[{"nativeSrc":"9092:100:101","nodeType":"YulAssignment","src":"9092:100:101","value":{"arguments":[{"name":"value0","nativeSrc":"9179:6:101","nodeType":"YulIdentifier","src":"9179:6:101"},{"name":"pos","nativeSrc":"9188:3:101","nodeType":"YulIdentifier","src":"9188:3:101"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"9099:79:101","nodeType":"YulIdentifier","src":"9099:79:101"},"nativeSrc":"9099:93:101","nodeType":"YulFunctionCall","src":"9099:93:101"},"variableNames":[{"name":"pos","nativeSrc":"9092:3:101","nodeType":"YulIdentifier","src":"9092:3:101"}]},{"nativeSrc":"9202:10:101","nodeType":"YulAssignment","src":"9202:10:101","value":{"name":"pos","nativeSrc":"9209:3:101","nodeType":"YulIdentifier","src":"9209:3:101"},"variableNames":[{"name":"end","nativeSrc":"9202:3:101","nodeType":"YulIdentifier","src":"9202:3:101"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"8947:271:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9060:3:101","nodeType":"YulTypedName","src":"9060:3:101","type":""},{"name":"value0","nativeSrc":"9066:6:101","nodeType":"YulTypedName","src":"9066:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9077:3:101","nodeType":"YulTypedName","src":"9077:3:101","type":""}],"src":"8947:271:101"},{"body":{"nativeSrc":"9283:40:101","nodeType":"YulBlock","src":"9283:40:101","statements":[{"nativeSrc":"9294:22:101","nodeType":"YulAssignment","src":"9294:22:101","value":{"arguments":[{"name":"value","nativeSrc":"9310:5:101","nodeType":"YulIdentifier","src":"9310:5:101"}],"functionName":{"name":"mload","nativeSrc":"9304:5:101","nodeType":"YulIdentifier","src":"9304:5:101"},"nativeSrc":"9304:12:101","nodeType":"YulFunctionCall","src":"9304:12:101"},"variableNames":[{"name":"length","nativeSrc":"9294:6:101","nodeType":"YulIdentifier","src":"9294:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"9224:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9266:5:101","nodeType":"YulTypedName","src":"9266:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9276:6:101","nodeType":"YulTypedName","src":"9276:6:101","type":""}],"src":"9224:99:101"},{"body":{"nativeSrc":"9421:285:101","nodeType":"YulBlock","src":"9421:285:101","statements":[{"nativeSrc":"9431:53:101","nodeType":"YulVariableDeclaration","src":"9431:53:101","value":{"arguments":[{"name":"value","nativeSrc":"9478:5:101","nodeType":"YulIdentifier","src":"9478:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"9445:32:101","nodeType":"YulIdentifier","src":"9445:32:101"},"nativeSrc":"9445:39:101","nodeType":"YulFunctionCall","src":"9445:39:101"},"variables":[{"name":"length","nativeSrc":"9435:6:101","nodeType":"YulTypedName","src":"9435:6:101","type":""}]},{"nativeSrc":"9493:78:101","nodeType":"YulAssignment","src":"9493:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"9559:3:101","nodeType":"YulIdentifier","src":"9559:3:101"},{"name":"length","nativeSrc":"9564:6:101","nodeType":"YulIdentifier","src":"9564:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9500:58:101","nodeType":"YulIdentifier","src":"9500:58:101"},"nativeSrc":"9500:71:101","nodeType":"YulFunctionCall","src":"9500:71:101"},"variableNames":[{"name":"pos","nativeSrc":"9493:3:101","nodeType":"YulIdentifier","src":"9493:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9619:5:101","nodeType":"YulIdentifier","src":"9619:5:101"},{"kind":"number","nativeSrc":"9626:4:101","nodeType":"YulLiteral","src":"9626:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9615:3:101","nodeType":"YulIdentifier","src":"9615:3:101"},"nativeSrc":"9615:16:101","nodeType":"YulFunctionCall","src":"9615:16:101"},{"name":"pos","nativeSrc":"9633:3:101","nodeType":"YulIdentifier","src":"9633:3:101"},{"name":"length","nativeSrc":"9638:6:101","nodeType":"YulIdentifier","src":"9638:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9580:34:101","nodeType":"YulIdentifier","src":"9580:34:101"},"nativeSrc":"9580:65:101","nodeType":"YulFunctionCall","src":"9580:65:101"},"nativeSrc":"9580:65:101","nodeType":"YulExpressionStatement","src":"9580:65:101"},{"nativeSrc":"9654:46:101","nodeType":"YulAssignment","src":"9654:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"9665:3:101","nodeType":"YulIdentifier","src":"9665:3:101"},{"arguments":[{"name":"length","nativeSrc":"9692:6:101","nodeType":"YulIdentifier","src":"9692:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9670:21:101","nodeType":"YulIdentifier","src":"9670:21:101"},"nativeSrc":"9670:29:101","nodeType":"YulFunctionCall","src":"9670:29:101"}],"functionName":{"name":"add","nativeSrc":"9661:3:101","nodeType":"YulIdentifier","src":"9661:3:101"},"nativeSrc":"9661:39:101","nodeType":"YulFunctionCall","src":"9661:39:101"},"variableNames":[{"name":"end","nativeSrc":"9654:3:101","nodeType":"YulIdentifier","src":"9654:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9329:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9402:5:101","nodeType":"YulTypedName","src":"9402:5:101","type":""},{"name":"pos","nativeSrc":"9409:3:101","nodeType":"YulTypedName","src":"9409:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9417:3:101","nodeType":"YulTypedName","src":"9417:3:101","type":""}],"src":"9329:377:101"},{"body":{"nativeSrc":"9830:195:101","nodeType":"YulBlock","src":"9830:195:101","statements":[{"nativeSrc":"9840:26:101","nodeType":"YulAssignment","src":"9840:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9852:9:101","nodeType":"YulIdentifier","src":"9852:9:101"},{"kind":"number","nativeSrc":"9863:2:101","nodeType":"YulLiteral","src":"9863:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9848:3:101","nodeType":"YulIdentifier","src":"9848:3:101"},"nativeSrc":"9848:18:101","nodeType":"YulFunctionCall","src":"9848:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9840:4:101","nodeType":"YulIdentifier","src":"9840:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9887:9:101","nodeType":"YulIdentifier","src":"9887:9:101"},{"kind":"number","nativeSrc":"9898:1:101","nodeType":"YulLiteral","src":"9898:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9883:3:101","nodeType":"YulIdentifier","src":"9883:3:101"},"nativeSrc":"9883:17:101","nodeType":"YulFunctionCall","src":"9883:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9906:4:101","nodeType":"YulIdentifier","src":"9906:4:101"},{"name":"headStart","nativeSrc":"9912:9:101","nodeType":"YulIdentifier","src":"9912:9:101"}],"functionName":{"name":"sub","nativeSrc":"9902:3:101","nodeType":"YulIdentifier","src":"9902:3:101"},"nativeSrc":"9902:20:101","nodeType":"YulFunctionCall","src":"9902:20:101"}],"functionName":{"name":"mstore","nativeSrc":"9876:6:101","nodeType":"YulIdentifier","src":"9876:6:101"},"nativeSrc":"9876:47:101","nodeType":"YulFunctionCall","src":"9876:47:101"},"nativeSrc":"9876:47:101","nodeType":"YulExpressionStatement","src":"9876:47:101"},{"nativeSrc":"9932:86:101","nodeType":"YulAssignment","src":"9932:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"10004:6:101","nodeType":"YulIdentifier","src":"10004:6:101"},{"name":"tail","nativeSrc":"10013:4:101","nodeType":"YulIdentifier","src":"10013:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9940:63:101","nodeType":"YulIdentifier","src":"9940:63:101"},"nativeSrc":"9940:78:101","nodeType":"YulFunctionCall","src":"9940:78:101"},"variableNames":[{"name":"tail","nativeSrc":"9932:4:101","nodeType":"YulIdentifier","src":"9932:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9712:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9802:9:101","nodeType":"YulTypedName","src":"9802:9:101","type":""},{"name":"value0","nativeSrc":"9814:6:101","nodeType":"YulTypedName","src":"9814:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9825:4:101","nodeType":"YulTypedName","src":"9825:4:101","type":""}],"src":"9712:313:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x01() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new admin is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\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        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052604051610fc2380380610fc283398101604081905261002291610460565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6104d9565b5f80516020610f7b8339815191521461006a5761006a6104ec565b61007582825f6100cf565b506100a3905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046104d9565b5f80516020610f5b833981519152146100be576100be6104ec565b6100c7826100fa565b505050610698565b6100d88361015c565b5f825111806100e45750805b156100f5576100f3838361019b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6101395f80516020610f5b833981519152546001600160a01b031690565b8260405161014892919061050f565b60405180910390a1610159816101c9565b50565b61016581610229565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606101c08383604051806060016040528060278152602001610f9b60279139610264565b90505b92915050565b6001600160a01b0381166101f85760405162461bcd60e51b81526004016101ef9061056f565b60405180910390fd5b805f80516020610f5b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102505760405162461bcd60e51b81526004016101ef906105c8565b805f80516020610f7b833981519152610208565b60606001600160a01b0384163b61028d5760405162461bcd60e51b81526004016101ef9061061a565b5f80856001600160a01b0316856040516102a7919061064b565b5f60405180830381855af49150503d805f81146102df576040519150601f19603f3d011682016040523d82523d5f602084013e6102e4565b606091505b5090925090506102f5828286610301565b925050505b9392505050565b606083156103105750816102fa565b8251156103205782518084602001fd5b8160405162461bcd60e51b81526004016101ef9190610687565b5f6001600160a01b0382166101c3565b6103538161033a565b8114610159575f80fd5b80516101c38161034a565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156103a1576103a1610368565b6040525050565b5f6103b260405190565b90506103be828261037c565b919050565b5f6001600160401b038211156103db576103db610368565b601f19601f83011660200192915050565b8281835e505f910152565b5f610409610404846103c3565b6103a8565b905082815260208101848484011115610423576104235f80fd5b61042e8482856103ec565b509392505050565b5f82601f830112610448576104485f80fd5b81516104588482602086016103f7565b949350505050565b5f805f60608486031215610475576104755f80fd5b5f610480868661035d565b93505060206104918682870161035d565b92505060408401516001600160401b038111156104af576104af5f80fd5b6104bb86828701610436565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101c3576101c36104c5565b634e487b7160e01b5f52600160045260245ffd5b6105098161033a565b82525050565b6040810161051d8285610500565b6102fa6020830184610500565b602681525f602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016101c38161052a565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529150610568565b602080825281016101c38161057f565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610568565b602080825281016101c3816105d8565b5f610633825190565b6106418185602086016103ec565b9290920192915050565b5f6102fa828461062a565b5f61065f825190565b8084526020840193506106768185602086016103ec565b601f01601f19169290920192915050565b602080825281016101c08184610656565b6108b6806106a55f395ff3fe60806040526004361061004d575f3560e01c80633659cfe6146100645780634f1ef286146100835780635c60da1b146100965780638f283970146100c0578063f851a440146100df5761005c565b3661005c5761005a6100f3565b005b61005a6100f3565b34801561006f575f80fd5b5061005a61007e366004610571565b61010d565b61005a6100913660046105e5565b610148565b3480156100a1575f80fd5b506100aa6101ae565b6040516100b7919061064b565b60405180910390f35b3480156100cb575f80fd5b5061005a6100da366004610571565b6101de565b3480156100ea575f80fd5b506100aa6101fe565b6100fb61021e565b61010b610106610256565b61025f565b565b61011561027d565b6001600160a01b031633036101405761013d8160405180602001604052805f8152505f6102af565b50565b61013d6100f3565b61015061027d565b6001600160a01b031633036101a6576101a18383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102af915050565b505050565b6101a16100f3565b5f6101b761027d565b6001600160a01b031633036101d3576101ce610256565b905090565b6101db6100f3565b90565b6101e661027d565b6001600160a01b031633036101405761013d816102d9565b5f61020761027d565b6001600160a01b031633036101d3576101ce61027d565b61022661027d565b6001600160a01b0316330361010b5760405162461bcd60e51b815260040161024d90610659565b60405180910390fd5b5f6101ce610322565b365f80375f80365f845af43d5f803e808015610279573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102b883610349565b5f825111806102c45750805b156101a1576102d38383610388565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61030261027d565b826040516103119291906106c5565b60405180910390a161013d816103b6565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102a0565b61035281610420565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103ad838360405180606001604052806027815260200161085a6027913961046e565b90505b92915050565b6001600160a01b0381166103dc5760405162461bcd60e51b815260040161024d90610725565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6104475760405162461bcd60e51b815260040161024d9061077e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103ff565b60606001600160a01b0384163b6104975760405162461bcd60e51b815260040161024d906107d0565b5f80856001600160a01b0316856040516104b1919061080c565b5f60405180830381855af49150503d805f81146104e9576040519150601f19603f3d011682016040523d82523d5f602084013e6104ee565b606091505b50915091506104fe82828661050a565b925050505b9392505050565b60608315610519575081610503565b8251156105295782518084602001fd5b8160405162461bcd60e51b815260040161024d9190610848565b5f6001600160a01b0382166103b0565b61055c81610543565b811461013d575f80fd5b80356103b081610553565b5f60208284031215610584576105845f80fd5b5f61058f8484610566565b949350505050565b5f8083601f8401126105aa576105aa5f80fd5b50813567ffffffffffffffff8111156105c4576105c45f80fd5b6020830191508360018202830111156105de576105de5f80fd5b9250929050565b5f805f604084860312156105fa576105fa5f80fd5b5f6106058686610566565b935050602084013567ffffffffffffffff811115610624576106245f80fd5b61063086828701610597565b92509250509250925092565b61064581610543565b82525050565b602081016103b0828461063c565b602080825281016103b081604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106d3828561063c565b610503602083018461063c565b602681525f602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103b0816106e0565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b6020820152915061071e565b602080825281016103b081610735565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b6020820152915061071e565b602080825281016103b08161078e565b8281835e505f910152565b5f6107f4825190565b6108028185602086016107e0565b9290920192915050565b5f61050382846107eb565b5f610820825190565b8084526020840193506108378185602086016107e0565b601f01601f19169290920192915050565b602080825281016103ad818461081756fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205c293cb82dd5d5b7228e518d5479dbf5bd70b6685ce9647aa6d360a311c6735064736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xFC2 CODESIZE SUB DUP1 PUSH2 0xFC2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x460 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x4D9 JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF7B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6A JUMPI PUSH2 0x6A PUSH2 0x4EC JUMP JUMPDEST PUSH2 0x75 DUP3 DUP3 PUSH0 PUSH2 0xCF JUMP JUMPDEST POP PUSH2 0xA3 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x4D9 JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF5B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xBE JUMPI PUSH2 0xBE PUSH2 0x4EC JUMP JUMPDEST PUSH2 0xC7 DUP3 PUSH2 0xFA JUMP JUMPDEST POP POP POP PUSH2 0x698 JUMP JUMPDEST PUSH2 0xD8 DUP4 PUSH2 0x15C JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0xE4 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xF5 JUMPI PUSH2 0xF3 DUP4 DUP4 PUSH2 0x19B JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x139 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF5B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x148 SWAP3 SWAP2 SWAP1 PUSH2 0x50F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x159 DUP2 PUSH2 0x1C9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x165 DUP2 PUSH2 0x229 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1C0 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF9B PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x264 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP1 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF5B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x250 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP1 PUSH2 0x5C8 JUMP JUMPDEST DUP1 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF7B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x208 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x28D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP1 PUSH2 0x61A JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2F5 DUP3 DUP3 DUP7 PUSH2 0x301 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x310 JUMPI POP DUP2 PUSH2 0x2FA JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x320 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP2 SWAP1 PUSH2 0x687 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1C3 JUMP JUMPDEST PUSH2 0x353 DUP2 PUSH2 0x33A JUMP JUMPDEST DUP2 EQ PUSH2 0x159 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x1C3 DUP2 PUSH2 0x34A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x3A1 JUMPI PUSH2 0x3A1 PUSH2 0x368 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3B2 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x3BE DUP3 DUP3 PUSH2 0x37C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3DB JUMPI PUSH2 0x3DB PUSH2 0x368 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x409 PUSH2 0x404 DUP5 PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x423 JUMPI PUSH2 0x423 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x42E DUP5 DUP3 DUP6 PUSH2 0x3EC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x448 JUMPI PUSH2 0x448 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x458 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3F7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x475 JUMPI PUSH2 0x475 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x480 DUP7 DUP7 PUSH2 0x35D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x491 DUP7 DUP3 DUP8 ADD PUSH2 0x35D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4AF JUMPI PUSH2 0x4AF PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x4BB DUP7 DUP3 DUP8 ADD PUSH2 0x436 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1C3 JUMPI PUSH2 0x1C3 PUSH2 0x4C5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x509 DUP2 PUSH2 0x33A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x51D DUP3 DUP6 PUSH2 0x500 JUMP JUMPDEST PUSH2 0x2FA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x500 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C3 DUP2 PUSH2 0x52A JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x568 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C3 DUP2 PUSH2 0x57F JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x568 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C3 DUP2 PUSH2 0x5D8 JUMP JUMPDEST PUSH0 PUSH2 0x633 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x641 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3EC JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FA DUP3 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH0 PUSH2 0x65F DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x676 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0 DUP2 DUP5 PUSH2 0x656 JUMP JUMPDEST PUSH2 0x8B6 DUP1 PUSH2 0x6A5 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xDF JUMPI PUSH2 0x5C JUMP JUMPDEST CALLDATASIZE PUSH2 0x5C JUMPI PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0x7E CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST PUSH2 0x5A PUSH2 0x91 CALLDATASIZE PUSH1 0x4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x148 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB7 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1FE JUMP JUMPDEST PUSH2 0xFB PUSH2 0x21E JUMP JUMPDEST PUSH2 0x10B PUSH2 0x106 PUSH2 0x256 JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x115 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2AF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x13D PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x150 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1A6 JUMPI PUSH2 0x1A1 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2AF SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0xF3 JUMP JUMPDEST PUSH0 PUSH2 0x1B7 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x256 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0xF3 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH2 0x2D9 JUMP JUMPDEST PUSH0 PUSH2 0x207 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x27D JUMP JUMPDEST PUSH2 0x226 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x10B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CE PUSH2 0x322 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x279 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B8 DUP4 PUSH2 0x349 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x2C4 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A1 JUMPI PUSH2 0x2D3 DUP4 DUP4 PUSH2 0x388 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x302 PUSH2 0x27D JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP3 SWAP2 SWAP1 PUSH2 0x6C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x13D DUP2 PUSH2 0x3B6 JUMP JUMPDEST PUSH0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x2A0 JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3AD DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x85A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x46E JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x725 JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x447 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x77E JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x7D0 JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4E9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4FE DUP3 DUP3 DUP7 PUSH2 0x50A JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x519 JUMPI POP DUP2 PUSH2 0x503 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x529 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x848 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x55C DUP2 PUSH2 0x543 JUMP JUMPDEST DUP2 EQ PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B0 DUP2 PUSH2 0x553 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x584 JUMPI PUSH2 0x584 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58F DUP5 DUP5 PUSH2 0x566 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x5AA JUMPI PUSH2 0x5AA PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5C4 JUMPI PUSH2 0x5C4 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x5DE JUMPI PUSH2 0x5DE PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5FA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x605 DUP7 DUP7 PUSH2 0x566 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x630 DUP7 DUP3 DUP8 ADD PUSH2 0x597 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x645 DUP2 PUSH2 0x543 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3B0 DUP3 DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x6D3 DUP3 DUP6 PUSH2 0x63C JUMP JUMPDEST PUSH2 0x503 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x6E0 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x735 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x78E JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7F4 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x802 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x503 DUP3 DUP5 PUSH2 0x7EB JUMP JUMPDEST PUSH0 PUSH2 0x820 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x837 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3AD DUP2 DUP5 PUSH2 0x817 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212205C293C 0xB8 0x2D 0xD5 0xD5 0xB7 0x22 DUP15 MLOAD DUP14 SLOAD PUSH26 0xDBF5BD70B6685CE9647AA6D360A311C6735064736F6C63430008 NOT STOP CALLER 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1634:3556:96:-:0;;;1908:254;;;;;;;;;;;;;;;;;;:::i;:::-;2023:6;2031:5;1050:54:91;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:91;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2078:45:96::1;::::0;-1:-1:-1;2122:1:96::1;2086:32;2078:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2055:69:96::1;2048:77;;;;:::i;:::-;2135:20;2148:6:::0;2135:12:::1;:20::i;:::-;1908:254:::0;;;1634:3556;;2188:295:92;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;4637:135::-;4701:35;4714:11;-1:-1:-1;;;;;;;;;;;4191:45:92;-1:-1:-1;;;;;4191:45:92;;4113:130;4714:11;4727:8;4701:35;;;;;;;:::i;:::-;;;;;;;;4746:19;4756:8;4746:9;:19::i;:::-;4637:135;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:92;;;;;;;;1902:152;:::o;6575:198:97:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:92:-;-1:-1:-1;;;;;4388:22:92;;4380:73;;;;-1:-1:-1;;;4380:73:92;;;;;;;:::i;:::-;;;;;;;;;4511:8;-1:-1:-1;;;;;;;;;;;4463:39:92;:56;;-1:-1:-1;;;;;;4463:56:92;-1:-1:-1;;;;;4463:56:92;;;;;;;;;;-1:-1:-1;4325:201:92:o;1537:259::-;-1:-1:-1;;;;;1470:19:97;;;1610:95:92;;;;-1:-1:-1;;;1610:95:92;;;;;;;:::i;:::-;1772:17;-1:-1:-1;;;;;;;;;;;1715:48:92;1599:147:99;6959:387:97;7100:12;-1:-1:-1;;;;;1470:19:97;;;7124:69;;;;-1:-1:-1;;;7124:69:97;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:97;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:97;;-1:-1:-1;7204:67:97;-1:-1:-1;7288:51:97;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:97;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:97;;;;;;;;:::i;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:101;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:101;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:101;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:101:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:101;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:101;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:101:o;2120:139::-;2209:6;2204:3;2199;2193:23;-1:-1:-1;2250:1:101;2232:16;;2225:27;2120:139::o;2265:432::-;2353:5;2378:65;2394:48;2435:6;2394:48;:::i;:::-;2378:65;:::i;:::-;2369:74;;2466:6;2459:5;2452:21;2504:4;2497:5;2493:16;2542:3;2533:6;2528:3;2524:16;2521:25;2518:112;;;2549:79;197:1;194;187:12;2549:79;2639:52;2684:6;2679:3;2674;2639:52;:::i;:::-;2359:338;2265:432;;;;;:::o;2716:353::-;2782:5;2831:3;2824:4;2816:6;2812:17;2808:27;2798:122;;2839:79;197:1;194;187:12;2839:79;2949:6;2943:13;2974:89;3059:3;3051:6;3044:4;3036:6;3032:17;2974:89;:::i;:::-;2965:98;2716:353;-1:-1:-1;;;;2716:353:101:o;3075:834::-;3172:6;3180;3188;3237:2;3225:9;3216:7;3212:23;3208:32;3205:119;;;3243:79;197:1;194;187:12;3243:79;3363:1;3388:64;3444:7;3424:9;3388:64;:::i;:::-;3378:74;;3334:128;3501:2;3527:64;3583:7;3574:6;3563:9;3559:22;3527:64;:::i;:::-;3517:74;;3472:129;3661:2;3650:9;3646:18;3640:25;-1:-1:-1;;;;;3684:6:101;3681:30;3678:117;;;3714:79;197:1;194;187:12;3714:79;3819:73;3884:7;3875:6;3864:9;3860:22;3819:73;:::i;:::-;3809:83;;3611:291;3075:834;;;;;:::o;3998:180::-;-1:-1:-1;;;4043:1:101;4036:88;4143:4;4140:1;4133:15;4167:4;4164:1;4157:15;4184:194;4315:9;;;4337:11;;;4334:37;;;4351:18;;:::i;4384:180::-;-1:-1:-1;;;4429:1:101;4422:88;4529:4;4526:1;4519:15;4553:4;4550:1;4543:15;4570:118;4657:24;4675:5;4657:24;:::i;:::-;4652:3;4645:37;4570:118;;:::o;4694:332::-;4853:2;4838:18;;4866:71;4842:9;4910:6;4866:71;:::i;:::-;4947:72;5015:2;5004:9;5000:18;4991:6;4947:72;:::i;5438:366::-;5665:2;5138:19;;5580:3;5190:4;5181:14;;5347:34;5324:58;;-1:-1:-1;;;5411:2:101;5399:15;;5392:33;5594:74;-1:-1:-1;5677:93:101;-1:-1:-1;5795:2:101;5786:12;;5438:366::o;5810:419::-;6014:2;6027:47;;;5999:18;;6091:131;5999:18;6091:131;:::i;6473:366::-;6700:2;5138:19;;6615:3;5190:4;5181:14;;6375:34;6352:58;;-1:-1:-1;;;6439:2:101;6427:15;;6420:40;6629:74;-1:-1:-1;6712:93:101;6235:232;6845:419;7049:2;7062:47;;;7034:18;;7126:131;7034:18;7126:131;:::i;7501:366::-;7728:2;5138:19;;7643:3;5190:4;5181:14;;7410:34;7387:58;;-1:-1:-1;;;7474:2:101;7462:15;;7455:33;7657:74;-1:-1:-1;7740:93:101;7270:225;7873:419;8077:2;8090:47;;;8062:18;;8154:131;8062:18;8154:131;:::i;8555:386::-;8659:3;8687:38;8719:5;8377:12;;8298:98;8687:38;8838:65;8896:6;8891:3;8884:4;8877:5;8873:16;8838:65;:::i;:::-;8919:16;;;;;8555:386;-1:-1:-1;;8555:386:101:o;8947:271::-;9077:3;9099:93;9188:3;9179:6;9099:93;:::i;9329:377::-;9417:3;9445:39;9478:5;8377:12;;8298:98;9445:39;5138:19;;;5190:4;5181:14;;9493:78;;9580:65;9638:6;9633:3;9626:4;9619:5;9615:16;9580:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:101;9661:39;;;;;;-1:-1:-1;;9329:377:101:o;9712:313::-;9863:2;9876:47;;;9848:18;;9940:78;9848:18;10004:6;9940:78;:::i;9712:313::-;1634:3556:96;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_9397":{"entryPoint":null,"id":9397,"parameterSlots":0,"returnSlots":0},"@_9405":{"entryPoint":null,"id":9405,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_9410":{"entryPoint":null,"id":9410,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_9729":{"entryPoint":542,"id":9729,"parameterSlots":0,"returnSlots":0},"@_changeAdmin_9262":{"entryPoint":729,"id":9262,"parameterSlots":1,"returnSlots":0},"@_delegate_9370":{"entryPoint":607,"id":9370,"parameterSlots":1,"returnSlots":0},"@_fallback_9389":{"entryPoint":243,"id":9389,"parameterSlots":0,"returnSlots":0},"@_getAdmin_9219":{"entryPoint":637,"id":9219,"parameterSlots":0,"returnSlots":1},"@_getImplementation_9073":{"entryPoint":802,"id":9073,"parameterSlots":0,"returnSlots":1},"@_implementation_9040":{"entryPoint":598,"id":9040,"parameterSlots":0,"returnSlots":1},"@_setAdmin_9245":{"entryPoint":950,"id":9245,"parameterSlots":1,"returnSlots":0},"@_setImplementation_9097":{"entryPoint":1056,"id":9097,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9142":{"entryPoint":687,"id":9142,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9112":{"entryPoint":841,"id":9112,"parameterSlots":1,"returnSlots":0},"@admin_9637":{"entryPoint":510,"id":9637,"parameterSlots":0,"returnSlots":1},"@changeAdmin_9664":{"entryPoint":478,"id":9664,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_9958":{"entryPoint":904,"id":9958,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_9993":{"entryPoint":1134,"id":9993,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10073":{"entryPoint":null,"id":10073,"parameterSlots":1,"returnSlots":1},"@implementation_9651":{"entryPoint":430,"id":9651,"parameterSlots":0,"returnSlots":1},"@isContract_9748":{"entryPoint":null,"id":9748,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_9699":{"entryPoint":328,"id":9699,"parameterSlots":3,"returnSlots":0},"@upgradeTo_9682":{"entryPoint":269,"id":9682,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_10024":{"entryPoint":1290,"id":10024,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1382,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1431,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":1393,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1509,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1596,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2027,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack":{"entryPoint":1760,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1845,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1934,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2060,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1611,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1733,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2120,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1829,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1918,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2000,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1625,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1347,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2016,"id":null,"parameterSlots":3,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1363,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9826:101","nodeType":"YulBlock","src":"0:9826:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"907:263:101","nodeType":"YulBlock","src":"907:263:101","statements":[{"body":{"nativeSrc":"953:83:101","nodeType":"YulBlock","src":"953:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:101","nodeType":"YulIdentifier","src":"955:77:101"},"nativeSrc":"955:79:101","nodeType":"YulFunctionCall","src":"955:79:101"},"nativeSrc":"955:79:101","nodeType":"YulExpressionStatement","src":"955:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:101","nodeType":"YulIdentifier","src":"928:7:101"},{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulIdentifier","src":"937:9:101"}],"functionName":{"name":"sub","nativeSrc":"924:3:101","nodeType":"YulIdentifier","src":"924:3:101"},"nativeSrc":"924:23:101","nodeType":"YulFunctionCall","src":"924:23:101"},{"kind":"number","nativeSrc":"949:2:101","nodeType":"YulLiteral","src":"949:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:101","nodeType":"YulIdentifier","src":"920:3:101"},"nativeSrc":"920:32:101","nodeType":"YulFunctionCall","src":"920:32:101"},"nativeSrc":"917:119:101","nodeType":"YulIf","src":"917:119:101"},{"nativeSrc":"1046:117:101","nodeType":"YulBlock","src":"1046:117:101","statements":[{"nativeSrc":"1061:15:101","nodeType":"YulVariableDeclaration","src":"1061:15:101","value":{"kind":"number","nativeSrc":"1075:1:101","nodeType":"YulLiteral","src":"1075:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:101","nodeType":"YulTypedName","src":"1065:6:101","type":""}]},{"nativeSrc":"1090:63:101","nodeType":"YulAssignment","src":"1090:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:101","nodeType":"YulIdentifier","src":"1125:9:101"},{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"add","nativeSrc":"1121:3:101","nodeType":"YulIdentifier","src":"1121:3:101"},"nativeSrc":"1121:22:101","nodeType":"YulFunctionCall","src":"1121:22:101"},{"name":"dataEnd","nativeSrc":"1145:7:101","nodeType":"YulIdentifier","src":"1145:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:101","nodeType":"YulIdentifier","src":"1100:20:101"},"nativeSrc":"1100:53:101","nodeType":"YulFunctionCall","src":"1100:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:101","nodeType":"YulIdentifier","src":"1090:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:101","nodeType":"YulTypedName","src":"877:9:101","type":""},{"name":"dataEnd","nativeSrc":"888:7:101","nodeType":"YulTypedName","src":"888:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:101","nodeType":"YulTypedName","src":"900:6:101","type":""}],"src":"841:329:101"},{"body":{"nativeSrc":"1265:28:101","nodeType":"YulBlock","src":"1265:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1282:1:101","nodeType":"YulLiteral","src":"1282:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1285:1:101","nodeType":"YulLiteral","src":"1285:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1275:6:101","nodeType":"YulIdentifier","src":"1275:6:101"},"nativeSrc":"1275:12:101","nodeType":"YulFunctionCall","src":"1275:12:101"},"nativeSrc":"1275:12:101","nodeType":"YulExpressionStatement","src":"1275:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1176:117:101","nodeType":"YulFunctionDefinition","src":"1176:117:101"},{"body":{"nativeSrc":"1388:28:101","nodeType":"YulBlock","src":"1388:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1405:1:101","nodeType":"YulLiteral","src":"1405:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1408:1:101","nodeType":"YulLiteral","src":"1408:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1398:6:101","nodeType":"YulIdentifier","src":"1398:6:101"},"nativeSrc":"1398:12:101","nodeType":"YulFunctionCall","src":"1398:12:101"},"nativeSrc":"1398:12:101","nodeType":"YulExpressionStatement","src":"1398:12:101"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1299:117:101","nodeType":"YulFunctionDefinition","src":"1299:117:101"},{"body":{"nativeSrc":"1511:28:101","nodeType":"YulBlock","src":"1511:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1528:1:101","nodeType":"YulLiteral","src":"1528:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1531:1:101","nodeType":"YulLiteral","src":"1531:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1521:6:101","nodeType":"YulIdentifier","src":"1521:6:101"},"nativeSrc":"1521:12:101","nodeType":"YulFunctionCall","src":"1521:12:101"},"nativeSrc":"1521:12:101","nodeType":"YulExpressionStatement","src":"1521:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1422:117:101","nodeType":"YulFunctionDefinition","src":"1422:117:101"},{"body":{"nativeSrc":"1632:478:101","nodeType":"YulBlock","src":"1632:478:101","statements":[{"body":{"nativeSrc":"1681:83:101","nodeType":"YulBlock","src":"1681:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1683:77:101","nodeType":"YulIdentifier","src":"1683:77:101"},"nativeSrc":"1683:79:101","nodeType":"YulFunctionCall","src":"1683:79:101"},"nativeSrc":"1683:79:101","nodeType":"YulExpressionStatement","src":"1683:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1660:6:101","nodeType":"YulIdentifier","src":"1660:6:101"},{"kind":"number","nativeSrc":"1668:4:101","nodeType":"YulLiteral","src":"1668:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1656:3:101","nodeType":"YulIdentifier","src":"1656:3:101"},"nativeSrc":"1656:17:101","nodeType":"YulFunctionCall","src":"1656:17:101"},{"name":"end","nativeSrc":"1675:3:101","nodeType":"YulIdentifier","src":"1675:3:101"}],"functionName":{"name":"slt","nativeSrc":"1652:3:101","nodeType":"YulIdentifier","src":"1652:3:101"},"nativeSrc":"1652:27:101","nodeType":"YulFunctionCall","src":"1652:27:101"}],"functionName":{"name":"iszero","nativeSrc":"1645:6:101","nodeType":"YulIdentifier","src":"1645:6:101"},"nativeSrc":"1645:35:101","nodeType":"YulFunctionCall","src":"1645:35:101"},"nativeSrc":"1642:122:101","nodeType":"YulIf","src":"1642:122:101"},{"nativeSrc":"1773:30:101","nodeType":"YulAssignment","src":"1773:30:101","value":{"arguments":[{"name":"offset","nativeSrc":"1796:6:101","nodeType":"YulIdentifier","src":"1796:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1783:12:101","nodeType":"YulIdentifier","src":"1783:12:101"},"nativeSrc":"1783:20:101","nodeType":"YulFunctionCall","src":"1783:20:101"},"variableNames":[{"name":"length","nativeSrc":"1773:6:101","nodeType":"YulIdentifier","src":"1773:6:101"}]},{"body":{"nativeSrc":"1846:83:101","nodeType":"YulBlock","src":"1846:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1848:77:101","nodeType":"YulIdentifier","src":"1848:77:101"},"nativeSrc":"1848:79:101","nodeType":"YulFunctionCall","src":"1848:79:101"},"nativeSrc":"1848:79:101","nodeType":"YulExpressionStatement","src":"1848:79:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1818:6:101","nodeType":"YulIdentifier","src":"1818:6:101"},{"kind":"number","nativeSrc":"1826:18:101","nodeType":"YulLiteral","src":"1826:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1815:2:101","nodeType":"YulIdentifier","src":"1815:2:101"},"nativeSrc":"1815:30:101","nodeType":"YulFunctionCall","src":"1815:30:101"},"nativeSrc":"1812:117:101","nodeType":"YulIf","src":"1812:117:101"},{"nativeSrc":"1938:29:101","nodeType":"YulAssignment","src":"1938:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:101","nodeType":"YulIdentifier","src":"1954:6:101"},{"kind":"number","nativeSrc":"1962:4:101","nodeType":"YulLiteral","src":"1962:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1950:3:101","nodeType":"YulIdentifier","src":"1950:3:101"},"nativeSrc":"1950:17:101","nodeType":"YulFunctionCall","src":"1950:17:101"},"variableNames":[{"name":"arrayPos","nativeSrc":"1938:8:101","nodeType":"YulIdentifier","src":"1938:8:101"}]},{"body":{"nativeSrc":"2021:83:101","nodeType":"YulBlock","src":"2021:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2023:77:101","nodeType":"YulIdentifier","src":"2023:77:101"},"nativeSrc":"2023:79:101","nodeType":"YulFunctionCall","src":"2023:79:101"},"nativeSrc":"2023:79:101","nodeType":"YulExpressionStatement","src":"2023:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1986:8:101","nodeType":"YulIdentifier","src":"1986:8:101"},{"arguments":[{"name":"length","nativeSrc":"2000:6:101","nodeType":"YulIdentifier","src":"2000:6:101"},{"kind":"number","nativeSrc":"2008:4:101","nodeType":"YulLiteral","src":"2008:4:101","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1996:3:101","nodeType":"YulIdentifier","src":"1996:3:101"},"nativeSrc":"1996:17:101","nodeType":"YulFunctionCall","src":"1996:17:101"}],"functionName":{"name":"add","nativeSrc":"1982:3:101","nodeType":"YulIdentifier","src":"1982:3:101"},"nativeSrc":"1982:32:101","nodeType":"YulFunctionCall","src":"1982:32:101"},{"name":"end","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"}],"functionName":{"name":"gt","nativeSrc":"1979:2:101","nodeType":"YulIdentifier","src":"1979:2:101"},"nativeSrc":"1979:41:101","nodeType":"YulFunctionCall","src":"1979:41:101"},"nativeSrc":"1976:128:101","nodeType":"YulIf","src":"1976:128:101"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1558:552:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1599:6:101","nodeType":"YulTypedName","src":"1599:6:101","type":""},{"name":"end","nativeSrc":"1607:3:101","nodeType":"YulTypedName","src":"1607:3:101","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1615:8:101","nodeType":"YulTypedName","src":"1615:8:101","type":""},{"name":"length","nativeSrc":"1625:6:101","nodeType":"YulTypedName","src":"1625:6:101","type":""}],"src":"1558:552:101"},{"body":{"nativeSrc":"2218:570:101","nodeType":"YulBlock","src":"2218:570:101","statements":[{"body":{"nativeSrc":"2264:83:101","nodeType":"YulBlock","src":"2264:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2266:77:101","nodeType":"YulIdentifier","src":"2266:77:101"},"nativeSrc":"2266:79:101","nodeType":"YulFunctionCall","src":"2266:79:101"},"nativeSrc":"2266:79:101","nodeType":"YulExpressionStatement","src":"2266:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2239:7:101","nodeType":"YulIdentifier","src":"2239:7:101"},{"name":"headStart","nativeSrc":"2248:9:101","nodeType":"YulIdentifier","src":"2248:9:101"}],"functionName":{"name":"sub","nativeSrc":"2235:3:101","nodeType":"YulIdentifier","src":"2235:3:101"},"nativeSrc":"2235:23:101","nodeType":"YulFunctionCall","src":"2235:23:101"},{"kind":"number","nativeSrc":"2260:2:101","nodeType":"YulLiteral","src":"2260:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2231:3:101","nodeType":"YulIdentifier","src":"2231:3:101"},"nativeSrc":"2231:32:101","nodeType":"YulFunctionCall","src":"2231:32:101"},"nativeSrc":"2228:119:101","nodeType":"YulIf","src":"2228:119:101"},{"nativeSrc":"2357:117:101","nodeType":"YulBlock","src":"2357:117:101","statements":[{"nativeSrc":"2372:15:101","nodeType":"YulVariableDeclaration","src":"2372:15:101","value":{"kind":"number","nativeSrc":"2386:1:101","nodeType":"YulLiteral","src":"2386:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2376:6:101","nodeType":"YulTypedName","src":"2376:6:101","type":""}]},{"nativeSrc":"2401:63:101","nodeType":"YulAssignment","src":"2401:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2436:9:101","nodeType":"YulIdentifier","src":"2436:9:101"},{"name":"offset","nativeSrc":"2447:6:101","nodeType":"YulIdentifier","src":"2447:6:101"}],"functionName":{"name":"add","nativeSrc":"2432:3:101","nodeType":"YulIdentifier","src":"2432:3:101"},"nativeSrc":"2432:22:101","nodeType":"YulFunctionCall","src":"2432:22:101"},{"name":"dataEnd","nativeSrc":"2456:7:101","nodeType":"YulIdentifier","src":"2456:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2411:20:101","nodeType":"YulIdentifier","src":"2411:20:101"},"nativeSrc":"2411:53:101","nodeType":"YulFunctionCall","src":"2411:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2401:6:101","nodeType":"YulIdentifier","src":"2401:6:101"}]}]},{"nativeSrc":"2484:297:101","nodeType":"YulBlock","src":"2484:297:101","statements":[{"nativeSrc":"2499:46:101","nodeType":"YulVariableDeclaration","src":"2499:46:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2530:9:101","nodeType":"YulIdentifier","src":"2530:9:101"},{"kind":"number","nativeSrc":"2541:2:101","nodeType":"YulLiteral","src":"2541:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2526:3:101","nodeType":"YulIdentifier","src":"2526:3:101"},"nativeSrc":"2526:18:101","nodeType":"YulFunctionCall","src":"2526:18:101"}],"functionName":{"name":"calldataload","nativeSrc":"2513:12:101","nodeType":"YulIdentifier","src":"2513:12:101"},"nativeSrc":"2513:32:101","nodeType":"YulFunctionCall","src":"2513:32:101"},"variables":[{"name":"offset","nativeSrc":"2503:6:101","nodeType":"YulTypedName","src":"2503:6:101","type":""}]},{"body":{"nativeSrc":"2592:83:101","nodeType":"YulBlock","src":"2592:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2594:77:101","nodeType":"YulIdentifier","src":"2594:77:101"},"nativeSrc":"2594:79:101","nodeType":"YulFunctionCall","src":"2594:79:101"},"nativeSrc":"2594:79:101","nodeType":"YulExpressionStatement","src":"2594:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2564:6:101","nodeType":"YulIdentifier","src":"2564:6:101"},{"kind":"number","nativeSrc":"2572:18:101","nodeType":"YulLiteral","src":"2572:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2561:2:101","nodeType":"YulIdentifier","src":"2561:2:101"},"nativeSrc":"2561:30:101","nodeType":"YulFunctionCall","src":"2561:30:101"},"nativeSrc":"2558:117:101","nodeType":"YulIf","src":"2558:117:101"},{"nativeSrc":"2689:82:101","nodeType":"YulAssignment","src":"2689:82:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2743:9:101","nodeType":"YulIdentifier","src":"2743:9:101"},{"name":"offset","nativeSrc":"2754:6:101","nodeType":"YulIdentifier","src":"2754:6:101"}],"functionName":{"name":"add","nativeSrc":"2739:3:101","nodeType":"YulIdentifier","src":"2739:3:101"},"nativeSrc":"2739:22:101","nodeType":"YulFunctionCall","src":"2739:22:101"},{"name":"dataEnd","nativeSrc":"2763:7:101","nodeType":"YulIdentifier","src":"2763:7:101"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2707:31:101","nodeType":"YulIdentifier","src":"2707:31:101"},"nativeSrc":"2707:64:101","nodeType":"YulFunctionCall","src":"2707:64:101"},"variableNames":[{"name":"value1","nativeSrc":"2689:6:101","nodeType":"YulIdentifier","src":"2689:6:101"},{"name":"value2","nativeSrc":"2697:6:101","nodeType":"YulIdentifier","src":"2697:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"2116:672:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2172:9:101","nodeType":"YulTypedName","src":"2172:9:101","type":""},{"name":"dataEnd","nativeSrc":"2183:7:101","nodeType":"YulTypedName","src":"2183:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2195:6:101","nodeType":"YulTypedName","src":"2195:6:101","type":""},{"name":"value1","nativeSrc":"2203:6:101","nodeType":"YulTypedName","src":"2203:6:101","type":""},{"name":"value2","nativeSrc":"2211:6:101","nodeType":"YulTypedName","src":"2211:6:101","type":""}],"src":"2116:672:101"},{"body":{"nativeSrc":"2859:53:101","nodeType":"YulBlock","src":"2859:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2876:3:101","nodeType":"YulIdentifier","src":"2876:3:101"},{"arguments":[{"name":"value","nativeSrc":"2899:5:101","nodeType":"YulIdentifier","src":"2899:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2881:17:101","nodeType":"YulIdentifier","src":"2881:17:101"},"nativeSrc":"2881:24:101","nodeType":"YulFunctionCall","src":"2881:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2869:6:101","nodeType":"YulIdentifier","src":"2869:6:101"},"nativeSrc":"2869:37:101","nodeType":"YulFunctionCall","src":"2869:37:101"},"nativeSrc":"2869:37:101","nodeType":"YulExpressionStatement","src":"2869:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2794:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2847:5:101","nodeType":"YulTypedName","src":"2847:5:101","type":""},{"name":"pos","nativeSrc":"2854:3:101","nodeType":"YulTypedName","src":"2854:3:101","type":""}],"src":"2794:118:101"},{"body":{"nativeSrc":"3016:124:101","nodeType":"YulBlock","src":"3016:124:101","statements":[{"nativeSrc":"3026:26:101","nodeType":"YulAssignment","src":"3026:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3038:9:101","nodeType":"YulIdentifier","src":"3038:9:101"},{"kind":"number","nativeSrc":"3049:2:101","nodeType":"YulLiteral","src":"3049:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3034:3:101","nodeType":"YulIdentifier","src":"3034:3:101"},"nativeSrc":"3034:18:101","nodeType":"YulFunctionCall","src":"3034:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3026:4:101","nodeType":"YulIdentifier","src":"3026:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3106:6:101","nodeType":"YulIdentifier","src":"3106:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3119:9:101","nodeType":"YulIdentifier","src":"3119:9:101"},{"kind":"number","nativeSrc":"3130:1:101","nodeType":"YulLiteral","src":"3130:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3115:3:101","nodeType":"YulIdentifier","src":"3115:3:101"},"nativeSrc":"3115:17:101","nodeType":"YulFunctionCall","src":"3115:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3062:43:101","nodeType":"YulIdentifier","src":"3062:43:101"},"nativeSrc":"3062:71:101","nodeType":"YulFunctionCall","src":"3062:71:101"},"nativeSrc":"3062:71:101","nodeType":"YulExpressionStatement","src":"3062:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2918:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2988:9:101","nodeType":"YulTypedName","src":"2988:9:101","type":""},{"name":"value0","nativeSrc":"3000:6:101","nodeType":"YulTypedName","src":"3000:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3011:4:101","nodeType":"YulTypedName","src":"3011:4:101","type":""}],"src":"2918:222:101"},{"body":{"nativeSrc":"3242:73:101","nodeType":"YulBlock","src":"3242:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3259:3:101","nodeType":"YulIdentifier","src":"3259:3:101"},{"name":"length","nativeSrc":"3264:6:101","nodeType":"YulIdentifier","src":"3264:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3252:6:101","nodeType":"YulIdentifier","src":"3252:6:101"},"nativeSrc":"3252:19:101","nodeType":"YulFunctionCall","src":"3252:19:101"},"nativeSrc":"3252:19:101","nodeType":"YulExpressionStatement","src":"3252:19:101"},{"nativeSrc":"3280:29:101","nodeType":"YulAssignment","src":"3280:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"3299:3:101","nodeType":"YulIdentifier","src":"3299:3:101"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3295:3:101","nodeType":"YulIdentifier","src":"3295:3:101"},"nativeSrc":"3295:14:101","nodeType":"YulFunctionCall","src":"3295:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"3280:11:101","nodeType":"YulIdentifier","src":"3280:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3146:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3214:3:101","nodeType":"YulTypedName","src":"3214:3:101","type":""},{"name":"length","nativeSrc":"3219:6:101","nodeType":"YulTypedName","src":"3219:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3230:11:101","nodeType":"YulTypedName","src":"3230:11:101","type":""}],"src":"3146:169:101"},{"body":{"nativeSrc":"3427:184:101","nodeType":"YulBlock","src":"3427:184:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3449:6:101","nodeType":"YulIdentifier","src":"3449:6:101"},{"kind":"number","nativeSrc":"3457:1:101","nodeType":"YulLiteral","src":"3457:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3445:3:101","nodeType":"YulIdentifier","src":"3445:3:101"},"nativeSrc":"3445:14:101","nodeType":"YulFunctionCall","src":"3445:14:101"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"3461:34:101","nodeType":"YulLiteral","src":"3461:34:101","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"3438:6:101","nodeType":"YulIdentifier","src":"3438:6:101"},"nativeSrc":"3438:58:101","nodeType":"YulFunctionCall","src":"3438:58:101"},"nativeSrc":"3438:58:101","nodeType":"YulExpressionStatement","src":"3438:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3517:6:101","nodeType":"YulIdentifier","src":"3517:6:101"},{"kind":"number","nativeSrc":"3525:2:101","nodeType":"YulLiteral","src":"3525:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3513:3:101","nodeType":"YulIdentifier","src":"3513:3:101"},"nativeSrc":"3513:15:101","nodeType":"YulFunctionCall","src":"3513:15:101"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"3530:34:101","nodeType":"YulLiteral","src":"3530:34:101","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:101","nodeType":"YulIdentifier","src":"3506:6:101"},"nativeSrc":"3506:59:101","nodeType":"YulFunctionCall","src":"3506:59:101"},"nativeSrc":"3506:59:101","nodeType":"YulExpressionStatement","src":"3506:59:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3586:6:101","nodeType":"YulIdentifier","src":"3586:6:101"},{"kind":"number","nativeSrc":"3594:2:101","nodeType":"YulLiteral","src":"3594:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3582:3:101","nodeType":"YulIdentifier","src":"3582:3:101"},"nativeSrc":"3582:15:101","nodeType":"YulFunctionCall","src":"3582:15:101"},{"hexValue":"6574","kind":"string","nativeSrc":"3599:4:101","nodeType":"YulLiteral","src":"3599:4:101","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"3575:6:101","nodeType":"YulIdentifier","src":"3575:6:101"},"nativeSrc":"3575:29:101","nodeType":"YulFunctionCall","src":"3575:29:101"},"nativeSrc":"3575:29:101","nodeType":"YulExpressionStatement","src":"3575:29:101"}]},"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3321:290:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3419:6:101","nodeType":"YulTypedName","src":"3419:6:101","type":""}],"src":"3321:290:101"},{"body":{"nativeSrc":"3763:220:101","nodeType":"YulBlock","src":"3763:220:101","statements":[{"nativeSrc":"3773:74:101","nodeType":"YulAssignment","src":"3773:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"3839:3:101","nodeType":"YulIdentifier","src":"3839:3:101"},{"kind":"number","nativeSrc":"3844:2:101","nodeType":"YulLiteral","src":"3844:2:101","type":"","value":"66"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3780:58:101","nodeType":"YulIdentifier","src":"3780:58:101"},"nativeSrc":"3780:67:101","nodeType":"YulFunctionCall","src":"3780:67:101"},"variableNames":[{"name":"pos","nativeSrc":"3773:3:101","nodeType":"YulIdentifier","src":"3773:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3945:3:101","nodeType":"YulIdentifier","src":"3945:3:101"}],"functionName":{"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3856:88:101","nodeType":"YulIdentifier","src":"3856:88:101"},"nativeSrc":"3856:93:101","nodeType":"YulFunctionCall","src":"3856:93:101"},"nativeSrc":"3856:93:101","nodeType":"YulExpressionStatement","src":"3856:93:101"},{"nativeSrc":"3958:19:101","nodeType":"YulAssignment","src":"3958:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"3969:3:101","nodeType":"YulIdentifier","src":"3969:3:101"},{"kind":"number","nativeSrc":"3974:2:101","nodeType":"YulLiteral","src":"3974:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3965:3:101","nodeType":"YulIdentifier","src":"3965:3:101"},"nativeSrc":"3965:12:101","nodeType":"YulFunctionCall","src":"3965:12:101"},"variableNames":[{"name":"end","nativeSrc":"3958:3:101","nodeType":"YulIdentifier","src":"3958:3:101"}]}]},"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"3617:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3751:3:101","nodeType":"YulTypedName","src":"3751:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3759:3:101","nodeType":"YulTypedName","src":"3759:3:101","type":""}],"src":"3617:366:101"},{"body":{"nativeSrc":"4160:248:101","nodeType":"YulBlock","src":"4160:248:101","statements":[{"nativeSrc":"4170:26:101","nodeType":"YulAssignment","src":"4170:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4182:9:101","nodeType":"YulIdentifier","src":"4182:9:101"},{"kind":"number","nativeSrc":"4193:2:101","nodeType":"YulLiteral","src":"4193:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4178:3:101","nodeType":"YulIdentifier","src":"4178:3:101"},"nativeSrc":"4178:18:101","nodeType":"YulFunctionCall","src":"4178:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4170:4:101","nodeType":"YulIdentifier","src":"4170:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4217:9:101","nodeType":"YulIdentifier","src":"4217:9:101"},{"kind":"number","nativeSrc":"4228:1:101","nodeType":"YulLiteral","src":"4228:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4213:3:101","nodeType":"YulIdentifier","src":"4213:3:101"},"nativeSrc":"4213:17:101","nodeType":"YulFunctionCall","src":"4213:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4236:4:101","nodeType":"YulIdentifier","src":"4236:4:101"},{"name":"headStart","nativeSrc":"4242:9:101","nodeType":"YulIdentifier","src":"4242:9:101"}],"functionName":{"name":"sub","nativeSrc":"4232:3:101","nodeType":"YulIdentifier","src":"4232:3:101"},"nativeSrc":"4232:20:101","nodeType":"YulFunctionCall","src":"4232:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},"nativeSrc":"4206:47:101","nodeType":"YulFunctionCall","src":"4206:47:101"},"nativeSrc":"4206:47:101","nodeType":"YulExpressionStatement","src":"4206:47:101"},{"nativeSrc":"4262:139:101","nodeType":"YulAssignment","src":"4262:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"4396:4:101","nodeType":"YulIdentifier","src":"4396:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"4270:124:101","nodeType":"YulIdentifier","src":"4270:124:101"},"nativeSrc":"4270:131:101","nodeType":"YulFunctionCall","src":"4270:131:101"},"variableNames":[{"name":"tail","nativeSrc":"4262:4:101","nodeType":"YulIdentifier","src":"4262:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3989:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4140:9:101","nodeType":"YulTypedName","src":"4140:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:101","nodeType":"YulTypedName","src":"4155:4:101","type":""}],"src":"3989:419:101"},{"body":{"nativeSrc":"4540:206:101","nodeType":"YulBlock","src":"4540:206:101","statements":[{"nativeSrc":"4550:26:101","nodeType":"YulAssignment","src":"4550:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4562:9:101","nodeType":"YulIdentifier","src":"4562:9:101"},{"kind":"number","nativeSrc":"4573:2:101","nodeType":"YulLiteral","src":"4573:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4558:3:101","nodeType":"YulIdentifier","src":"4558:3:101"},"nativeSrc":"4558:18:101","nodeType":"YulFunctionCall","src":"4558:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4550:4:101","nodeType":"YulIdentifier","src":"4550:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4630:6:101","nodeType":"YulIdentifier","src":"4630:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4643:9:101","nodeType":"YulIdentifier","src":"4643:9:101"},{"kind":"number","nativeSrc":"4654:1:101","nodeType":"YulLiteral","src":"4654:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4639:3:101","nodeType":"YulIdentifier","src":"4639:3:101"},"nativeSrc":"4639:17:101","nodeType":"YulFunctionCall","src":"4639:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4586:43:101","nodeType":"YulIdentifier","src":"4586:43:101"},"nativeSrc":"4586:71:101","nodeType":"YulFunctionCall","src":"4586:71:101"},"nativeSrc":"4586:71:101","nodeType":"YulExpressionStatement","src":"4586:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4711:6:101","nodeType":"YulIdentifier","src":"4711:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4724:9:101","nodeType":"YulIdentifier","src":"4724:9:101"},{"kind":"number","nativeSrc":"4735:2:101","nodeType":"YulLiteral","src":"4735:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4720:3:101","nodeType":"YulIdentifier","src":"4720:3:101"},"nativeSrc":"4720:18:101","nodeType":"YulFunctionCall","src":"4720:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4667:43:101","nodeType":"YulIdentifier","src":"4667:43:101"},"nativeSrc":"4667:72:101","nodeType":"YulFunctionCall","src":"4667:72:101"},"nativeSrc":"4667:72:101","nodeType":"YulExpressionStatement","src":"4667:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4414:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4504:9:101","nodeType":"YulTypedName","src":"4504:9:101","type":""},{"name":"value1","nativeSrc":"4516:6:101","nodeType":"YulTypedName","src":"4516:6:101","type":""},{"name":"value0","nativeSrc":"4524:6:101","nodeType":"YulTypedName","src":"4524:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4535:4:101","nodeType":"YulTypedName","src":"4535:4:101","type":""}],"src":"4414:332:101"},{"body":{"nativeSrc":"4858:119:101","nodeType":"YulBlock","src":"4858:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4880:6:101","nodeType":"YulIdentifier","src":"4880:6:101"},{"kind":"number","nativeSrc":"4888:1:101","nodeType":"YulLiteral","src":"4888:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4876:3:101","nodeType":"YulIdentifier","src":"4876:3:101"},"nativeSrc":"4876:14:101","nodeType":"YulFunctionCall","src":"4876:14:101"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"4892:34:101","nodeType":"YulLiteral","src":"4892:34:101","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"4869:6:101","nodeType":"YulIdentifier","src":"4869:6:101"},"nativeSrc":"4869:58:101","nodeType":"YulFunctionCall","src":"4869:58:101"},"nativeSrc":"4869:58:101","nodeType":"YulExpressionStatement","src":"4869:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4948:6:101","nodeType":"YulIdentifier","src":"4948:6:101"},{"kind":"number","nativeSrc":"4956:2:101","nodeType":"YulLiteral","src":"4956:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4944:3:101","nodeType":"YulIdentifier","src":"4944:3:101"},"nativeSrc":"4944:15:101","nodeType":"YulFunctionCall","src":"4944:15:101"},{"hexValue":"646472657373","kind":"string","nativeSrc":"4961:8:101","nodeType":"YulLiteral","src":"4961:8:101","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"4937:6:101","nodeType":"YulIdentifier","src":"4937:6:101"},"nativeSrc":"4937:33:101","nodeType":"YulFunctionCall","src":"4937:33:101"},"nativeSrc":"4937:33:101","nodeType":"YulExpressionStatement","src":"4937:33:101"}]},"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"4752:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4850:6:101","nodeType":"YulTypedName","src":"4850:6:101","type":""}],"src":"4752:225:101"},{"body":{"nativeSrc":"5129:220:101","nodeType":"YulBlock","src":"5129:220:101","statements":[{"nativeSrc":"5139:74:101","nodeType":"YulAssignment","src":"5139:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5205:3:101","nodeType":"YulIdentifier","src":"5205:3:101"},{"kind":"number","nativeSrc":"5210:2:101","nodeType":"YulLiteral","src":"5210:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5146:58:101","nodeType":"YulIdentifier","src":"5146:58:101"},"nativeSrc":"5146:67:101","nodeType":"YulFunctionCall","src":"5146:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5139:3:101","nodeType":"YulIdentifier","src":"5139:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5311:3:101","nodeType":"YulIdentifier","src":"5311:3:101"}],"functionName":{"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5222:88:101","nodeType":"YulIdentifier","src":"5222:88:101"},"nativeSrc":"5222:93:101","nodeType":"YulFunctionCall","src":"5222:93:101"},"nativeSrc":"5222:93:101","nodeType":"YulExpressionStatement","src":"5222:93:101"},{"nativeSrc":"5324:19:101","nodeType":"YulAssignment","src":"5324:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5335:3:101","nodeType":"YulIdentifier","src":"5335:3:101"},{"kind":"number","nativeSrc":"5340:2:101","nodeType":"YulLiteral","src":"5340:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5331:3:101","nodeType":"YulIdentifier","src":"5331:3:101"},"nativeSrc":"5331:12:101","nodeType":"YulFunctionCall","src":"5331:12:101"},"variableNames":[{"name":"end","nativeSrc":"5324:3:101","nodeType":"YulIdentifier","src":"5324:3:101"}]}]},"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"4983:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5117:3:101","nodeType":"YulTypedName","src":"5117:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5125:3:101","nodeType":"YulTypedName","src":"5125:3:101","type":""}],"src":"4983:366:101"},{"body":{"nativeSrc":"5526:248:101","nodeType":"YulBlock","src":"5526:248:101","statements":[{"nativeSrc":"5536:26:101","nodeType":"YulAssignment","src":"5536:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5548:9:101","nodeType":"YulIdentifier","src":"5548:9:101"},{"kind":"number","nativeSrc":"5559:2:101","nodeType":"YulLiteral","src":"5559:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5544:3:101","nodeType":"YulIdentifier","src":"5544:3:101"},"nativeSrc":"5544:18:101","nodeType":"YulFunctionCall","src":"5544:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5536:4:101","nodeType":"YulIdentifier","src":"5536:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5583:9:101","nodeType":"YulIdentifier","src":"5583:9:101"},{"kind":"number","nativeSrc":"5594:1:101","nodeType":"YulLiteral","src":"5594:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5579:3:101","nodeType":"YulIdentifier","src":"5579:3:101"},"nativeSrc":"5579:17:101","nodeType":"YulFunctionCall","src":"5579:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5602:4:101","nodeType":"YulIdentifier","src":"5602:4:101"},{"name":"headStart","nativeSrc":"5608:9:101","nodeType":"YulIdentifier","src":"5608:9:101"}],"functionName":{"name":"sub","nativeSrc":"5598:3:101","nodeType":"YulIdentifier","src":"5598:3:101"},"nativeSrc":"5598:20:101","nodeType":"YulFunctionCall","src":"5598:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5572:6:101","nodeType":"YulIdentifier","src":"5572:6:101"},"nativeSrc":"5572:47:101","nodeType":"YulFunctionCall","src":"5572:47:101"},"nativeSrc":"5572:47:101","nodeType":"YulExpressionStatement","src":"5572:47:101"},{"nativeSrc":"5628:139:101","nodeType":"YulAssignment","src":"5628:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5762:4:101","nodeType":"YulIdentifier","src":"5762:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"5636:124:101","nodeType":"YulIdentifier","src":"5636:124:101"},"nativeSrc":"5636:131:101","nodeType":"YulFunctionCall","src":"5636:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5628:4:101","nodeType":"YulIdentifier","src":"5628:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5355:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5506:9:101","nodeType":"YulTypedName","src":"5506:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5521:4:101","nodeType":"YulTypedName","src":"5521:4:101","type":""}],"src":"5355:419:101"},{"body":{"nativeSrc":"5886:126:101","nodeType":"YulBlock","src":"5886:126:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5908:6:101","nodeType":"YulIdentifier","src":"5908:6:101"},{"kind":"number","nativeSrc":"5916:1:101","nodeType":"YulLiteral","src":"5916:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5904:3:101","nodeType":"YulIdentifier","src":"5904:3:101"},"nativeSrc":"5904:14:101","nodeType":"YulFunctionCall","src":"5904:14:101"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"5920:34:101","nodeType":"YulLiteral","src":"5920:34:101","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"5897:6:101","nodeType":"YulIdentifier","src":"5897:6:101"},"nativeSrc":"5897:58:101","nodeType":"YulFunctionCall","src":"5897:58:101"},"nativeSrc":"5897:58:101","nodeType":"YulExpressionStatement","src":"5897:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5976:6:101","nodeType":"YulIdentifier","src":"5976:6:101"},{"kind":"number","nativeSrc":"5984:2:101","nodeType":"YulLiteral","src":"5984:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5972:3:101","nodeType":"YulIdentifier","src":"5972:3:101"},"nativeSrc":"5972:15:101","nodeType":"YulFunctionCall","src":"5972:15:101"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"5989:15:101","nodeType":"YulLiteral","src":"5989:15:101","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"5965:6:101","nodeType":"YulIdentifier","src":"5965:6:101"},"nativeSrc":"5965:40:101","nodeType":"YulFunctionCall","src":"5965:40:101"},"nativeSrc":"5965:40:101","nodeType":"YulExpressionStatement","src":"5965:40:101"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5780:232:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5878:6:101","nodeType":"YulTypedName","src":"5878:6:101","type":""}],"src":"5780:232:101"},{"body":{"nativeSrc":"6164:220:101","nodeType":"YulBlock","src":"6164:220:101","statements":[{"nativeSrc":"6174:74:101","nodeType":"YulAssignment","src":"6174:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6240:3:101","nodeType":"YulIdentifier","src":"6240:3:101"},{"kind":"number","nativeSrc":"6245:2:101","nodeType":"YulLiteral","src":"6245:2:101","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6181:58:101","nodeType":"YulIdentifier","src":"6181:58:101"},"nativeSrc":"6181:67:101","nodeType":"YulFunctionCall","src":"6181:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6174:3:101","nodeType":"YulIdentifier","src":"6174:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6346:3:101","nodeType":"YulIdentifier","src":"6346:3:101"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6257:88:101","nodeType":"YulIdentifier","src":"6257:88:101"},"nativeSrc":"6257:93:101","nodeType":"YulFunctionCall","src":"6257:93:101"},"nativeSrc":"6257:93:101","nodeType":"YulExpressionStatement","src":"6257:93:101"},{"nativeSrc":"6359:19:101","nodeType":"YulAssignment","src":"6359:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6370:3:101","nodeType":"YulIdentifier","src":"6370:3:101"},{"kind":"number","nativeSrc":"6375:2:101","nodeType":"YulLiteral","src":"6375:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6366:3:101","nodeType":"YulIdentifier","src":"6366:3:101"},"nativeSrc":"6366:12:101","nodeType":"YulFunctionCall","src":"6366:12:101"},"variableNames":[{"name":"end","nativeSrc":"6359:3:101","nodeType":"YulIdentifier","src":"6359:3:101"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6018:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6152:3:101","nodeType":"YulTypedName","src":"6152:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6160:3:101","nodeType":"YulTypedName","src":"6160:3:101","type":""}],"src":"6018:366:101"},{"body":{"nativeSrc":"6561:248:101","nodeType":"YulBlock","src":"6561:248:101","statements":[{"nativeSrc":"6571:26:101","nodeType":"YulAssignment","src":"6571:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6583:9:101","nodeType":"YulIdentifier","src":"6583:9:101"},{"kind":"number","nativeSrc":"6594:2:101","nodeType":"YulLiteral","src":"6594:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6579:3:101","nodeType":"YulIdentifier","src":"6579:3:101"},"nativeSrc":"6579:18:101","nodeType":"YulFunctionCall","src":"6579:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6571:4:101","nodeType":"YulIdentifier","src":"6571:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6618:9:101","nodeType":"YulIdentifier","src":"6618:9:101"},{"kind":"number","nativeSrc":"6629:1:101","nodeType":"YulLiteral","src":"6629:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6614:3:101","nodeType":"YulIdentifier","src":"6614:3:101"},"nativeSrc":"6614:17:101","nodeType":"YulFunctionCall","src":"6614:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6637:4:101","nodeType":"YulIdentifier","src":"6637:4:101"},{"name":"headStart","nativeSrc":"6643:9:101","nodeType":"YulIdentifier","src":"6643:9:101"}],"functionName":{"name":"sub","nativeSrc":"6633:3:101","nodeType":"YulIdentifier","src":"6633:3:101"},"nativeSrc":"6633:20:101","nodeType":"YulFunctionCall","src":"6633:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6607:6:101","nodeType":"YulIdentifier","src":"6607:6:101"},"nativeSrc":"6607:47:101","nodeType":"YulFunctionCall","src":"6607:47:101"},"nativeSrc":"6607:47:101","nodeType":"YulExpressionStatement","src":"6607:47:101"},{"nativeSrc":"6663:139:101","nodeType":"YulAssignment","src":"6663:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6797:4:101","nodeType":"YulIdentifier","src":"6797:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6671:124:101","nodeType":"YulIdentifier","src":"6671:124:101"},"nativeSrc":"6671:131:101","nodeType":"YulFunctionCall","src":"6671:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6663:4:101","nodeType":"YulIdentifier","src":"6663:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6390:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6541:9:101","nodeType":"YulTypedName","src":"6541:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6556:4:101","nodeType":"YulTypedName","src":"6556:4:101","type":""}],"src":"6390:419:101"},{"body":{"nativeSrc":"6921:119:101","nodeType":"YulBlock","src":"6921:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6943:6:101","nodeType":"YulIdentifier","src":"6943:6:101"},{"kind":"number","nativeSrc":"6951:1:101","nodeType":"YulLiteral","src":"6951:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6939:3:101","nodeType":"YulIdentifier","src":"6939:3:101"},"nativeSrc":"6939:14:101","nodeType":"YulFunctionCall","src":"6939:14:101"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"6955:34:101","nodeType":"YulLiteral","src":"6955:34:101","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"6932:6:101","nodeType":"YulIdentifier","src":"6932:6:101"},"nativeSrc":"6932:58:101","nodeType":"YulFunctionCall","src":"6932:58:101"},"nativeSrc":"6932:58:101","nodeType":"YulExpressionStatement","src":"6932:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7011:6:101","nodeType":"YulIdentifier","src":"7011:6:101"},{"kind":"number","nativeSrc":"7019:2:101","nodeType":"YulLiteral","src":"7019:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7007:3:101","nodeType":"YulIdentifier","src":"7007:3:101"},"nativeSrc":"7007:15:101","nodeType":"YulFunctionCall","src":"7007:15:101"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"7024:8:101","nodeType":"YulLiteral","src":"7024:8:101","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"7000:6:101","nodeType":"YulIdentifier","src":"7000:6:101"},"nativeSrc":"7000:33:101","nodeType":"YulFunctionCall","src":"7000:33:101"},"nativeSrc":"7000:33:101","nodeType":"YulExpressionStatement","src":"7000:33:101"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6815:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6913:6:101","nodeType":"YulTypedName","src":"6913:6:101","type":""}],"src":"6815:225:101"},{"body":{"nativeSrc":"7192:220:101","nodeType":"YulBlock","src":"7192:220:101","statements":[{"nativeSrc":"7202:74:101","nodeType":"YulAssignment","src":"7202:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"7268:3:101","nodeType":"YulIdentifier","src":"7268:3:101"},{"kind":"number","nativeSrc":"7273:2:101","nodeType":"YulLiteral","src":"7273:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7209:58:101","nodeType":"YulIdentifier","src":"7209:58:101"},"nativeSrc":"7209:67:101","nodeType":"YulFunctionCall","src":"7209:67:101"},"variableNames":[{"name":"pos","nativeSrc":"7202:3:101","nodeType":"YulIdentifier","src":"7202:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7374:3:101","nodeType":"YulIdentifier","src":"7374:3:101"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7285:88:101","nodeType":"YulIdentifier","src":"7285:88:101"},"nativeSrc":"7285:93:101","nodeType":"YulFunctionCall","src":"7285:93:101"},"nativeSrc":"7285:93:101","nodeType":"YulExpressionStatement","src":"7285:93:101"},{"nativeSrc":"7387:19:101","nodeType":"YulAssignment","src":"7387:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"7398:3:101","nodeType":"YulIdentifier","src":"7398:3:101"},{"kind":"number","nativeSrc":"7403:2:101","nodeType":"YulLiteral","src":"7403:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7394:3:101","nodeType":"YulIdentifier","src":"7394:3:101"},"nativeSrc":"7394:12:101","nodeType":"YulFunctionCall","src":"7394:12:101"},"variableNames":[{"name":"end","nativeSrc":"7387:3:101","nodeType":"YulIdentifier","src":"7387:3:101"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7046:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7180:3:101","nodeType":"YulTypedName","src":"7180:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7188:3:101","nodeType":"YulTypedName","src":"7188:3:101","type":""}],"src":"7046:366:101"},{"body":{"nativeSrc":"7589:248:101","nodeType":"YulBlock","src":"7589:248:101","statements":[{"nativeSrc":"7599:26:101","nodeType":"YulAssignment","src":"7599:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7611:9:101","nodeType":"YulIdentifier","src":"7611:9:101"},{"kind":"number","nativeSrc":"7622:2:101","nodeType":"YulLiteral","src":"7622:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7607:3:101","nodeType":"YulIdentifier","src":"7607:3:101"},"nativeSrc":"7607:18:101","nodeType":"YulFunctionCall","src":"7607:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7599:4:101","nodeType":"YulIdentifier","src":"7599:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7646:9:101","nodeType":"YulIdentifier","src":"7646:9:101"},{"kind":"number","nativeSrc":"7657:1:101","nodeType":"YulLiteral","src":"7657:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7642:3:101","nodeType":"YulIdentifier","src":"7642:3:101"},"nativeSrc":"7642:17:101","nodeType":"YulFunctionCall","src":"7642:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7665:4:101","nodeType":"YulIdentifier","src":"7665:4:101"},{"name":"headStart","nativeSrc":"7671:9:101","nodeType":"YulIdentifier","src":"7671:9:101"}],"functionName":{"name":"sub","nativeSrc":"7661:3:101","nodeType":"YulIdentifier","src":"7661:3:101"},"nativeSrc":"7661:20:101","nodeType":"YulFunctionCall","src":"7661:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7635:6:101","nodeType":"YulIdentifier","src":"7635:6:101"},"nativeSrc":"7635:47:101","nodeType":"YulFunctionCall","src":"7635:47:101"},"nativeSrc":"7635:47:101","nodeType":"YulExpressionStatement","src":"7635:47:101"},{"nativeSrc":"7691:139:101","nodeType":"YulAssignment","src":"7691:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"7825:4:101","nodeType":"YulIdentifier","src":"7825:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7699:124:101","nodeType":"YulIdentifier","src":"7699:124:101"},"nativeSrc":"7699:131:101","nodeType":"YulFunctionCall","src":"7699:131:101"},"variableNames":[{"name":"tail","nativeSrc":"7691:4:101","nodeType":"YulIdentifier","src":"7691:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7418:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7569:9:101","nodeType":"YulTypedName","src":"7569:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7584:4:101","nodeType":"YulTypedName","src":"7584:4:101","type":""}],"src":"7418:419:101"},{"body":{"nativeSrc":"7901:40:101","nodeType":"YulBlock","src":"7901:40:101","statements":[{"nativeSrc":"7912:22:101","nodeType":"YulAssignment","src":"7912:22:101","value":{"arguments":[{"name":"value","nativeSrc":"7928:5:101","nodeType":"YulIdentifier","src":"7928:5:101"}],"functionName":{"name":"mload","nativeSrc":"7922:5:101","nodeType":"YulIdentifier","src":"7922:5:101"},"nativeSrc":"7922:12:101","nodeType":"YulFunctionCall","src":"7922:12:101"},"variableNames":[{"name":"length","nativeSrc":"7912:6:101","nodeType":"YulIdentifier","src":"7912:6:101"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7843:98:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7884:5:101","nodeType":"YulTypedName","src":"7884:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7894:6:101","nodeType":"YulTypedName","src":"7894:6:101","type":""}],"src":"7843:98:101"},{"body":{"nativeSrc":"8060:34:101","nodeType":"YulBlock","src":"8060:34:101","statements":[{"nativeSrc":"8070:18:101","nodeType":"YulAssignment","src":"8070:18:101","value":{"name":"pos","nativeSrc":"8085:3:101","nodeType":"YulIdentifier","src":"8085:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"8070:11:101","nodeType":"YulIdentifier","src":"8070:11:101"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7947:147:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8032:3:101","nodeType":"YulTypedName","src":"8032:3:101","type":""},{"name":"length","nativeSrc":"8037:6:101","nodeType":"YulTypedName","src":"8037:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8048:11:101","nodeType":"YulTypedName","src":"8048:11:101","type":""}],"src":"7947:147:101"},{"body":{"nativeSrc":"8162:77:101","nodeType":"YulBlock","src":"8162:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"8179:3:101","nodeType":"YulIdentifier","src":"8179:3:101"},{"name":"src","nativeSrc":"8184:3:101","nodeType":"YulIdentifier","src":"8184:3:101"},{"name":"length","nativeSrc":"8189:6:101","nodeType":"YulIdentifier","src":"8189:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"8173:5:101","nodeType":"YulIdentifier","src":"8173:5:101"},"nativeSrc":"8173:23:101","nodeType":"YulFunctionCall","src":"8173:23:101"},"nativeSrc":"8173:23:101","nodeType":"YulExpressionStatement","src":"8173:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8216:3:101","nodeType":"YulIdentifier","src":"8216:3:101"},{"name":"length","nativeSrc":"8221:6:101","nodeType":"YulIdentifier","src":"8221:6:101"}],"functionName":{"name":"add","nativeSrc":"8212:3:101","nodeType":"YulIdentifier","src":"8212:3:101"},"nativeSrc":"8212:16:101","nodeType":"YulFunctionCall","src":"8212:16:101"},{"kind":"number","nativeSrc":"8230:1:101","nodeType":"YulLiteral","src":"8230:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8205:6:101","nodeType":"YulIdentifier","src":"8205:6:101"},"nativeSrc":"8205:27:101","nodeType":"YulFunctionCall","src":"8205:27:101"},"nativeSrc":"8205:27:101","nodeType":"YulExpressionStatement","src":"8205:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8100:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8144:3:101","nodeType":"YulTypedName","src":"8144:3:101","type":""},{"name":"dst","nativeSrc":"8149:3:101","nodeType":"YulTypedName","src":"8149:3:101","type":""},{"name":"length","nativeSrc":"8154:6:101","nodeType":"YulTypedName","src":"8154:6:101","type":""}],"src":"8100:139:101"},{"body":{"nativeSrc":"8353:278:101","nodeType":"YulBlock","src":"8353:278:101","statements":[{"nativeSrc":"8363:52:101","nodeType":"YulVariableDeclaration","src":"8363:52:101","value":{"arguments":[{"name":"value","nativeSrc":"8409:5:101","nodeType":"YulIdentifier","src":"8409:5:101"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8377:31:101","nodeType":"YulIdentifier","src":"8377:31:101"},"nativeSrc":"8377:38:101","nodeType":"YulFunctionCall","src":"8377:38:101"},"variables":[{"name":"length","nativeSrc":"8367:6:101","nodeType":"YulTypedName","src":"8367:6:101","type":""}]},{"nativeSrc":"8424:95:101","nodeType":"YulAssignment","src":"8424:95:101","value":{"arguments":[{"name":"pos","nativeSrc":"8507:3:101","nodeType":"YulIdentifier","src":"8507:3:101"},{"name":"length","nativeSrc":"8512:6:101","nodeType":"YulIdentifier","src":"8512:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8431:75:101","nodeType":"YulIdentifier","src":"8431:75:101"},"nativeSrc":"8431:88:101","nodeType":"YulFunctionCall","src":"8431:88:101"},"variableNames":[{"name":"pos","nativeSrc":"8424:3:101","nodeType":"YulIdentifier","src":"8424:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8567:5:101","nodeType":"YulIdentifier","src":"8567:5:101"},{"kind":"number","nativeSrc":"8574:4:101","nodeType":"YulLiteral","src":"8574:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8563:3:101","nodeType":"YulIdentifier","src":"8563:3:101"},"nativeSrc":"8563:16:101","nodeType":"YulFunctionCall","src":"8563:16:101"},{"name":"pos","nativeSrc":"8581:3:101","nodeType":"YulIdentifier","src":"8581:3:101"},{"name":"length","nativeSrc":"8586:6:101","nodeType":"YulIdentifier","src":"8586:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8528:34:101","nodeType":"YulIdentifier","src":"8528:34:101"},"nativeSrc":"8528:65:101","nodeType":"YulFunctionCall","src":"8528:65:101"},"nativeSrc":"8528:65:101","nodeType":"YulExpressionStatement","src":"8528:65:101"},{"nativeSrc":"8602:23:101","nodeType":"YulAssignment","src":"8602:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"8613:3:101","nodeType":"YulIdentifier","src":"8613:3:101"},{"name":"length","nativeSrc":"8618:6:101","nodeType":"YulIdentifier","src":"8618:6:101"}],"functionName":{"name":"add","nativeSrc":"8609:3:101","nodeType":"YulIdentifier","src":"8609:3:101"},"nativeSrc":"8609:16:101","nodeType":"YulFunctionCall","src":"8609:16:101"},"variableNames":[{"name":"end","nativeSrc":"8602:3:101","nodeType":"YulIdentifier","src":"8602:3:101"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8245:386:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8334:5:101","nodeType":"YulTypedName","src":"8334:5:101","type":""},{"name":"pos","nativeSrc":"8341:3:101","nodeType":"YulTypedName","src":"8341:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8349:3:101","nodeType":"YulTypedName","src":"8349:3:101","type":""}],"src":"8245:386:101"},{"body":{"nativeSrc":"8771:137:101","nodeType":"YulBlock","src":"8771:137:101","statements":[{"nativeSrc":"8782:100:101","nodeType":"YulAssignment","src":"8782:100:101","value":{"arguments":[{"name":"value0","nativeSrc":"8869:6:101","nodeType":"YulIdentifier","src":"8869:6:101"},{"name":"pos","nativeSrc":"8878:3:101","nodeType":"YulIdentifier","src":"8878:3:101"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8789:79:101","nodeType":"YulIdentifier","src":"8789:79:101"},"nativeSrc":"8789:93:101","nodeType":"YulFunctionCall","src":"8789:93:101"},"variableNames":[{"name":"pos","nativeSrc":"8782:3:101","nodeType":"YulIdentifier","src":"8782:3:101"}]},{"nativeSrc":"8892:10:101","nodeType":"YulAssignment","src":"8892:10:101","value":{"name":"pos","nativeSrc":"8899:3:101","nodeType":"YulIdentifier","src":"8899:3:101"},"variableNames":[{"name":"end","nativeSrc":"8892:3:101","nodeType":"YulIdentifier","src":"8892:3:101"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"8637:271:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8750:3:101","nodeType":"YulTypedName","src":"8750:3:101","type":""},{"name":"value0","nativeSrc":"8756:6:101","nodeType":"YulTypedName","src":"8756:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8767:3:101","nodeType":"YulTypedName","src":"8767:3:101","type":""}],"src":"8637:271:101"},{"body":{"nativeSrc":"8973:40:101","nodeType":"YulBlock","src":"8973:40:101","statements":[{"nativeSrc":"8984:22:101","nodeType":"YulAssignment","src":"8984:22:101","value":{"arguments":[{"name":"value","nativeSrc":"9000:5:101","nodeType":"YulIdentifier","src":"9000:5:101"}],"functionName":{"name":"mload","nativeSrc":"8994:5:101","nodeType":"YulIdentifier","src":"8994:5:101"},"nativeSrc":"8994:12:101","nodeType":"YulFunctionCall","src":"8994:12:101"},"variableNames":[{"name":"length","nativeSrc":"8984:6:101","nodeType":"YulIdentifier","src":"8984:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"8914:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8956:5:101","nodeType":"YulTypedName","src":"8956:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8966:6:101","nodeType":"YulTypedName","src":"8966:6:101","type":""}],"src":"8914:99:101"},{"body":{"nativeSrc":"9067:54:101","nodeType":"YulBlock","src":"9067:54:101","statements":[{"nativeSrc":"9077:38:101","nodeType":"YulAssignment","src":"9077:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9095:5:101","nodeType":"YulIdentifier","src":"9095:5:101"},{"kind":"number","nativeSrc":"9102:2:101","nodeType":"YulLiteral","src":"9102:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9091:3:101","nodeType":"YulIdentifier","src":"9091:3:101"},"nativeSrc":"9091:14:101","nodeType":"YulFunctionCall","src":"9091:14:101"},{"arguments":[{"kind":"number","nativeSrc":"9111:2:101","nodeType":"YulLiteral","src":"9111:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9107:3:101","nodeType":"YulIdentifier","src":"9107:3:101"},"nativeSrc":"9107:7:101","nodeType":"YulFunctionCall","src":"9107:7:101"}],"functionName":{"name":"and","nativeSrc":"9087:3:101","nodeType":"YulIdentifier","src":"9087:3:101"},"nativeSrc":"9087:28:101","nodeType":"YulFunctionCall","src":"9087:28:101"},"variableNames":[{"name":"result","nativeSrc":"9077:6:101","nodeType":"YulIdentifier","src":"9077:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9019:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9050:5:101","nodeType":"YulTypedName","src":"9050:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9060:6:101","nodeType":"YulTypedName","src":"9060:6:101","type":""}],"src":"9019:102:101"},{"body":{"nativeSrc":"9219:285:101","nodeType":"YulBlock","src":"9219:285:101","statements":[{"nativeSrc":"9229:53:101","nodeType":"YulVariableDeclaration","src":"9229:53:101","value":{"arguments":[{"name":"value","nativeSrc":"9276:5:101","nodeType":"YulIdentifier","src":"9276:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"9243:32:101","nodeType":"YulIdentifier","src":"9243:32:101"},"nativeSrc":"9243:39:101","nodeType":"YulFunctionCall","src":"9243:39:101"},"variables":[{"name":"length","nativeSrc":"9233:6:101","nodeType":"YulTypedName","src":"9233:6:101","type":""}]},{"nativeSrc":"9291:78:101","nodeType":"YulAssignment","src":"9291:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"9357:3:101","nodeType":"YulIdentifier","src":"9357:3:101"},{"name":"length","nativeSrc":"9362:6:101","nodeType":"YulIdentifier","src":"9362:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9298:58:101","nodeType":"YulIdentifier","src":"9298:58:101"},"nativeSrc":"9298:71:101","nodeType":"YulFunctionCall","src":"9298:71:101"},"variableNames":[{"name":"pos","nativeSrc":"9291:3:101","nodeType":"YulIdentifier","src":"9291:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9417:5:101","nodeType":"YulIdentifier","src":"9417:5:101"},{"kind":"number","nativeSrc":"9424:4:101","nodeType":"YulLiteral","src":"9424:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9413:3:101","nodeType":"YulIdentifier","src":"9413:3:101"},"nativeSrc":"9413:16:101","nodeType":"YulFunctionCall","src":"9413:16:101"},{"name":"pos","nativeSrc":"9431:3:101","nodeType":"YulIdentifier","src":"9431:3:101"},{"name":"length","nativeSrc":"9436:6:101","nodeType":"YulIdentifier","src":"9436:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9378:34:101","nodeType":"YulIdentifier","src":"9378:34:101"},"nativeSrc":"9378:65:101","nodeType":"YulFunctionCall","src":"9378:65:101"},"nativeSrc":"9378:65:101","nodeType":"YulExpressionStatement","src":"9378:65:101"},{"nativeSrc":"9452:46:101","nodeType":"YulAssignment","src":"9452:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"9463:3:101","nodeType":"YulIdentifier","src":"9463:3:101"},{"arguments":[{"name":"length","nativeSrc":"9490:6:101","nodeType":"YulIdentifier","src":"9490:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9468:21:101","nodeType":"YulIdentifier","src":"9468:21:101"},"nativeSrc":"9468:29:101","nodeType":"YulFunctionCall","src":"9468:29:101"}],"functionName":{"name":"add","nativeSrc":"9459:3:101","nodeType":"YulIdentifier","src":"9459:3:101"},"nativeSrc":"9459:39:101","nodeType":"YulFunctionCall","src":"9459:39:101"},"variableNames":[{"name":"end","nativeSrc":"9452:3:101","nodeType":"YulIdentifier","src":"9452:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9127:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9200:5:101","nodeType":"YulTypedName","src":"9200:5:101","type":""},{"name":"pos","nativeSrc":"9207:3:101","nodeType":"YulTypedName","src":"9207:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9215:3:101","nodeType":"YulTypedName","src":"9215:3:101","type":""}],"src":"9127:377:101"},{"body":{"nativeSrc":"9628:195:101","nodeType":"YulBlock","src":"9628:195:101","statements":[{"nativeSrc":"9638:26:101","nodeType":"YulAssignment","src":"9638:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"9650:9:101","nodeType":"YulIdentifier","src":"9650:9:101"},{"kind":"number","nativeSrc":"9661:2:101","nodeType":"YulLiteral","src":"9661:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9646:3:101","nodeType":"YulIdentifier","src":"9646:3:101"},"nativeSrc":"9646:18:101","nodeType":"YulFunctionCall","src":"9646:18:101"},"variableNames":[{"name":"tail","nativeSrc":"9638:4:101","nodeType":"YulIdentifier","src":"9638:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9685:9:101","nodeType":"YulIdentifier","src":"9685:9:101"},{"kind":"number","nativeSrc":"9696:1:101","nodeType":"YulLiteral","src":"9696:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9681:3:101","nodeType":"YulIdentifier","src":"9681:3:101"},"nativeSrc":"9681:17:101","nodeType":"YulFunctionCall","src":"9681:17:101"},{"arguments":[{"name":"tail","nativeSrc":"9704:4:101","nodeType":"YulIdentifier","src":"9704:4:101"},{"name":"headStart","nativeSrc":"9710:9:101","nodeType":"YulIdentifier","src":"9710:9:101"}],"functionName":{"name":"sub","nativeSrc":"9700:3:101","nodeType":"YulIdentifier","src":"9700:3:101"},"nativeSrc":"9700:20:101","nodeType":"YulFunctionCall","src":"9700:20:101"}],"functionName":{"name":"mstore","nativeSrc":"9674:6:101","nodeType":"YulIdentifier","src":"9674:6:101"},"nativeSrc":"9674:47:101","nodeType":"YulFunctionCall","src":"9674:47:101"},"nativeSrc":"9674:47:101","nodeType":"YulExpressionStatement","src":"9674:47:101"},{"nativeSrc":"9730:86:101","nodeType":"YulAssignment","src":"9730:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"9802:6:101","nodeType":"YulIdentifier","src":"9802:6:101"},{"name":"tail","nativeSrc":"9811:4:101","nodeType":"YulIdentifier","src":"9811:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9738:63:101","nodeType":"YulIdentifier","src":"9738:63:101"},"nativeSrc":"9738:78:101","nodeType":"YulFunctionCall","src":"9738:78:101"},"variableNames":[{"name":"tail","nativeSrc":"9730:4:101","nodeType":"YulIdentifier","src":"9730:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9510:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9600:9:101","nodeType":"YulTypedName","src":"9600:9:101","type":""},{"name":"value0","nativeSrc":"9612:6:101","nodeType":"YulTypedName","src":"9612:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9623:4:101","nodeType":"YulTypedName","src":"9623:4:101","type":""}],"src":"9510:313:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(memPtr) {\n\n        mstore(add(memPtr, 0), \"TransparentUpgradeableProxy: adm\")\n\n        mstore(add(memPtr, 32), \"in cannot fallback to proxy targ\")\n\n        mstore(add(memPtr, 64), \"et\")\n\n    }\n\n    function abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n        store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(pos)\n        end := add(pos, 96)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new admin is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\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        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004d575f3560e01c80633659cfe6146100645780634f1ef286146100835780635c60da1b146100965780638f283970146100c0578063f851a440146100df5761005c565b3661005c5761005a6100f3565b005b61005a6100f3565b34801561006f575f80fd5b5061005a61007e366004610571565b61010d565b61005a6100913660046105e5565b610148565b3480156100a1575f80fd5b506100aa6101ae565b6040516100b7919061064b565b60405180910390f35b3480156100cb575f80fd5b5061005a6100da366004610571565b6101de565b3480156100ea575f80fd5b506100aa6101fe565b6100fb61021e565b61010b610106610256565b61025f565b565b61011561027d565b6001600160a01b031633036101405761013d8160405180602001604052805f8152505f6102af565b50565b61013d6100f3565b61015061027d565b6001600160a01b031633036101a6576101a18383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102af915050565b505050565b6101a16100f3565b5f6101b761027d565b6001600160a01b031633036101d3576101ce610256565b905090565b6101db6100f3565b90565b6101e661027d565b6001600160a01b031633036101405761013d816102d9565b5f61020761027d565b6001600160a01b031633036101d3576101ce61027d565b61022661027d565b6001600160a01b0316330361010b5760405162461bcd60e51b815260040161024d90610659565b60405180910390fd5b5f6101ce610322565b365f80375f80365f845af43d5f803e808015610279573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102b883610349565b5f825111806102c45750805b156101a1576102d38383610388565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61030261027d565b826040516103119291906106c5565b60405180910390a161013d816103b6565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102a0565b61035281610420565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103ad838360405180606001604052806027815260200161085a6027913961046e565b90505b92915050565b6001600160a01b0381166103dc5760405162461bcd60e51b815260040161024d90610725565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6104475760405162461bcd60e51b815260040161024d9061077e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103ff565b60606001600160a01b0384163b6104975760405162461bcd60e51b815260040161024d906107d0565b5f80856001600160a01b0316856040516104b1919061080c565b5f60405180830381855af49150503d805f81146104e9576040519150601f19603f3d011682016040523d82523d5f602084013e6104ee565b606091505b50915091506104fe82828661050a565b925050505b9392505050565b60608315610519575081610503565b8251156105295782518084602001fd5b8160405162461bcd60e51b815260040161024d9190610848565b5f6001600160a01b0382166103b0565b61055c81610543565b811461013d575f80fd5b80356103b081610553565b5f60208284031215610584576105845f80fd5b5f61058f8484610566565b949350505050565b5f8083601f8401126105aa576105aa5f80fd5b50813567ffffffffffffffff8111156105c4576105c45f80fd5b6020830191508360018202830111156105de576105de5f80fd5b9250929050565b5f805f604084860312156105fa576105fa5f80fd5b5f6106058686610566565b935050602084013567ffffffffffffffff811115610624576106245f80fd5b61063086828701610597565b92509250509250925092565b61064581610543565b82525050565b602081016103b0828461063c565b602080825281016103b081604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106d3828561063c565b610503602083018461063c565b602681525f602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103b0816106e0565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b6020820152915061071e565b602080825281016103b081610735565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b6020820152915061071e565b602080825281016103b08161078e565b8281835e505f910152565b5f6107f4825190565b6108028185602086016107e0565b9290920192915050565b5f61050382846107eb565b5f610820825190565b8084526020840193506108378185602086016107e0565b601f01601f19169290920192915050565b602080825281016103ad818461081756fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205c293cb82dd5d5b7228e518d5479dbf5bd70b6685ce9647aa6d360a311c6735064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xDF JUMPI PUSH2 0x5C JUMP JUMPDEST CALLDATASIZE PUSH2 0x5C JUMPI PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0x7E CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST PUSH2 0x5A PUSH2 0x91 CALLDATASIZE PUSH1 0x4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x148 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB7 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1FE JUMP JUMPDEST PUSH2 0xFB PUSH2 0x21E JUMP JUMPDEST PUSH2 0x10B PUSH2 0x106 PUSH2 0x256 JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x115 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2AF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x13D PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x150 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1A6 JUMPI PUSH2 0x1A1 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2AF SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0xF3 JUMP JUMPDEST PUSH0 PUSH2 0x1B7 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x256 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0xF3 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH2 0x2D9 JUMP JUMPDEST PUSH0 PUSH2 0x207 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x27D JUMP JUMPDEST PUSH2 0x226 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x10B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CE PUSH2 0x322 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x279 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B8 DUP4 PUSH2 0x349 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x2C4 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A1 JUMPI PUSH2 0x2D3 DUP4 DUP4 PUSH2 0x388 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x302 PUSH2 0x27D JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP3 SWAP2 SWAP1 PUSH2 0x6C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x13D DUP2 PUSH2 0x3B6 JUMP JUMPDEST PUSH0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x2A0 JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3AD DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x85A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x46E JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x725 JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x447 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x77E JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x7D0 JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4E9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4FE DUP3 DUP3 DUP7 PUSH2 0x50A JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x519 JUMPI POP DUP2 PUSH2 0x503 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x529 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x848 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x55C DUP2 PUSH2 0x543 JUMP JUMPDEST DUP2 EQ PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B0 DUP2 PUSH2 0x553 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x584 JUMPI PUSH2 0x584 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58F DUP5 DUP5 PUSH2 0x566 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x5AA JUMPI PUSH2 0x5AA PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5C4 JUMPI PUSH2 0x5C4 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x5DE JUMPI PUSH2 0x5DE PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5FA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x605 DUP7 DUP7 PUSH2 0x566 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x630 DUP7 DUP3 DUP8 ADD PUSH2 0x597 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x645 DUP2 PUSH2 0x543 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3B0 DUP3 DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x6D3 DUP3 DUP6 PUSH2 0x63C JUMP JUMPDEST PUSH2 0x503 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x6E0 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x735 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x78E JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7F4 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x802 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x503 DUP3 DUP5 PUSH2 0x7EB JUMP JUMPDEST PUSH0 PUSH2 0x820 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x837 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3AD DUP2 DUP5 PUSH2 0x817 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212205C293C 0xB8 0x2D 0xD5 0xD5 0xB7 0x22 DUP15 MLOAD DUP14 SLOAD PUSH26 0xDBF5BD70B6685CE9647AA6D360A311C6735064736F6C63430008 NOT STOP CALLER ","sourceMap":"1634:3556:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:93;:9;:11::i;:::-;1634:3556:96;;2680:11:93;:9;:11::i;4032:134:96:-;;;;;;;;;;-1:-1:-1;4032:134:96;;;;;:::i;:::-;;:::i;4542:164::-;;;;;;:::i;:::-;;:::i;3435:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3769:103;;;;;;;;;;-1:-1:-1;3769:103:96;;;;;:::i;:::-;;:::i;2879:96::-;;;;;;;;;;;;;:::i;2327:110:93:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4032:134:96:-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:96;:10;:25;2332:99;;4105:54:::1;4123:17;4142:9;;;;;;;;;;;::::0;4153:5:::1;4105:17;:54::i;:::-;4032:134:::0;:::o;2332:99::-;2409:11;:9;:11::i;4542:164::-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:96;:10;:25;2332:99;;4651:48:::1;4669:17;4688:4;;4651:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4694:4:96::1;::::0;-1:-1:-1;4651:17:96::1;::::0;-1:-1:-1;;4651:48:96:i:1;:::-;4542:164:::0;;;:::o;2332:99::-;2409:11;:9;:11::i;3435:129::-;3487:23;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:96;:10;:25;2332:99;;3540:17:::1;:15;:17::i;:::-;3522:35;;3435:129:::0;:::o;2332:99::-;2409:11;:9;:11::i;:::-;3435:129;:::o;3769:103::-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:96;:10;:25;2332:99;;3843:22:::1;3856:8;3843:12;:22::i;2879:96::-:0;2922:14;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:96;:10;:25;2332:99;;2957:11:::1;:9;:11::i;4981:207::-:0;5066:11;:9;:11::i;:::-;-1:-1:-1;;;;;5052:25:96;:10;:25;5044:104;;;;-1:-1:-1;;;5044:104:96;;;;;;;:::i;:::-;;;;;;;;1240:140:91;1307:12;1338:35;:33;:35::i;953:895:93:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;4113:130:92;4165:7;3847:66;4191:39;:45;-1:-1:-1;;;;;4191:45:92;;4113:130;-1:-1:-1;4113:130:92:o;2188:295::-;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;4637:135::-;4701:35;4714:11;:9;:11::i;:::-;4727:8;4701:35;;;;;;;:::i;:::-;;;;;;;;4746:19;4756:8;4746:9;:19::i;1306:140::-;1359:7;1035:66;1385:48;1599:147:99;1902:152:92;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:92;;;;;;;;1902:152;:::o;6575:198:97:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:92:-;-1:-1:-1;;;;;4388:22:92;;4380:73;;;;-1:-1:-1;;;4380:73:92;;;;;;;:::i;:::-;4511:8;3847:66;4463:39;:56;;-1:-1:-1;;;;;;4463:56:92;-1:-1:-1;;;;;4463:56:92;;;;;;;;;;-1:-1:-1;4325:201:92:o;1537:259::-;-1:-1:-1;;;;;1470:19:97;;;1610:95:92;;;;-1:-1:-1;;;1610:95:92;;;;;;;:::i;:::-;1772:17;1035:66;1715:48;1599:147:99;6959:387:97;7100:12;-1:-1:-1;;;;;1470:19:97;;;7124:69;;;;-1:-1:-1;;;7124:69:97;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:97;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:97;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:97;;;;;;;;:::i;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;197:1;194;187:12;955:79;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:101:o;1558:552::-;1615:8;1625:6;1675:3;1668:4;1660:6;1656:17;1652:27;1642:122;;1683:79;197:1;194;187:12;1683:79;-1:-1:-1;1783:20:101;;1826:18;1815:30;;1812:117;;;1848:79;197:1;194;187:12;1848:79;1962:4;1954:6;1950:17;1938:29;;2016:3;2008:4;2000:6;1996:17;1986:8;1982:32;1979:41;1976:128;;;2023:79;197:1;194;187:12;2023:79;1558:552;;;;;:::o;2116:672::-;2195:6;2203;2211;2260:2;2248:9;2239:7;2235:23;2231:32;2228:119;;;2266:79;197:1;194;187:12;2266:79;2386:1;2411:53;2456:7;2436:9;2411:53;:::i;:::-;2401:63;;2357:117;2541:2;2530:9;2526:18;2513:32;2572:18;2564:6;2561:30;2558:117;;;2594:79;197:1;194;187:12;2594:79;2707:64;2763:7;2754:6;2743:9;2739:22;2707:64;:::i;:::-;2689:82;;;;2484:297;2116:672;;;;;:::o;2794:118::-;2881:24;2899:5;2881:24;:::i;:::-;2876:3;2869:37;2794:118;;:::o;2918:222::-;3049:2;3034:18;;3062:71;3038:9;3106:6;3062:71;:::i;3989:419::-;4193:2;4206:47;;;4178:18;;4270:131;4178:18;3844:2;3252:19;;3461:34;3304:4;3295:14;;3438:58;3530:34;3513:15;;;3506:59;-1:-1:-1;;;3582:15:101;;;3575:29;3965:12;;;3617:366;4414:332;4573:2;4558:18;;4586:71;4562:9;4630:6;4586:71;:::i;:::-;4667:72;4735:2;4724:9;4720:18;4711:6;4667:72;:::i;4983:366::-;5210:2;3252:19;;5125:3;3304:4;3295:14;;4892:34;4869:58;;-1:-1:-1;;;4956:2:101;4944:15;;4937:33;5139:74;-1:-1:-1;5222:93:101;-1:-1:-1;5340:2:101;5331:12;;4983:366::o;5355:419::-;5559:2;5572:47;;;5544:18;;5636:131;5544:18;5636:131;:::i;6018:366::-;6245:2;3252:19;;6160:3;3304:4;3295:14;;5920:34;5897:58;;-1:-1:-1;;;5984:2:101;5972:15;;5965:40;6174:74;-1:-1:-1;6257:93:101;5780:232;6390:419;6594:2;6607:47;;;6579:18;;6671:131;6579:18;6671:131;:::i;7046:366::-;7273:2;3252:19;;7188:3;3304:4;3295:14;;6955:34;6932:58;;-1:-1:-1;;;7019:2:101;7007:15;;7000:33;7202:74;-1:-1:-1;7285:93:101;6815:225;7418:419;7622:2;7635:47;;;7607:18;;7699:131;7607:18;7699:131;:::i;8100:139::-;8189:6;8184:3;8179;8173:23;-1:-1:-1;8230:1:101;8212:16;;8205:27;8100:139::o;8245:386::-;8349:3;8377:38;8409:5;7922:12;;7843:98;8377:38;8528:65;8586:6;8581:3;8574:4;8567:5;8563:16;8528:65;:::i;:::-;8609:16;;;;;8245:386;-1:-1:-1;;8245:386:101:o;8637:271::-;8767:3;8789:93;8878:3;8869:6;8789:93;:::i;9127:377::-;9215:3;9243:39;9276:5;7922:12;;7843:98;9243:39;3252:19;;;3304:4;3295:14;;9291:78;;9378:65;9436:6;9431:3;9424:4;9417:5;9413:16;9378:65;:::i;:::-;9111:2;9091:14;-1:-1:-1;;9087:28:101;9459:39;;;;;;-1:-1:-1;;9127:377:101:o;9510:313::-;9661:2;9674:47;;;9646:18;;9738:78;9646:18;9802:6;9738:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"446000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","changeAdmin(address)":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"changeAdmin(address)\":{\"details\":\"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _changeAdmin(admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n     */\\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\\n        _changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"Address":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212205c768d1ab1fcb877a584e313c755c7cecca6f4bc56649d3ee4218c3dccc27e0064736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD PUSH23 0x8D1AB1FCB877A584E313C755C7CECCA6F4BC56649D3EE4 0x21 DUP13 RETURNDATASIZE 0xCC 0xC2 PUSH31 0x64736F6C6343000819003300000000000000000000000000000000000000 ","sourceMap":"199:8061:97:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;199:8061:97;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212205c768d1ab1fcb877a584e313c755c7cecca6f4bc56649d3ee4218c3dccc27e0064736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD PUSH23 0x8D1AB1FCB877A584E313C755C7CECCA6F4BC56649D3EE4 0x21 DUP13 RETURNDATASIZE 0xCC 0xC2 PUSH31 0x64736F6C6343000819003300000000000000000000000000000000000000 ","sourceMap":"199:8061:97:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":\"Address\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":\"Context\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"devdoc":{"details":"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d32d7c56d2e04212c059bcf647456ad34541dac7ac40fccab9210dc4638ab2db64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 0x2D PUSH29 0x56D2E04212C059BCF647456AD34541DAC7AC40FCCAB9210DC4638AB2DB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"1264:1219:99:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1264:1219:99;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d32d7c56d2e04212c059bcf647456ad34541dac7ac40fccab9210dc4638ab2db64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 0x2D PUSH29 0x56D2E04212C059BCF647456AD34541DAC7AC40FCCAB9210DC4638AB2DB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"1264:1219:99:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"getAddressSlot(bytes32)":"infinite","getBooleanSlot(bytes32)":"infinite","getBytes32Slot(bytes32)":"infinite","getUint256Slot(bytes32)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"OptimizedTransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_10163":{"entryPoint":null,"id":10163,"parameterSlots":3,"returnSlots":0},"@_9028":{"entryPoint":null,"id":9028,"parameterSlots":2,"returnSlots":0},"@_setImplementation_9097":{"entryPoint":439,"id":9097,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9142":{"entryPoint":287,"id":9142,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9112":{"entryPoint":330,"id":9112,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_9958":{"entryPoint":393,"id":9958,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_9993":{"entryPoint":533,"id":9993,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10073":{"entryPoint":null,"id":10073,"parameterSlots":1,"returnSlots":1},"@isContract_9748":{"entryPoint":null,"id":9748,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_10024":{"entryPoint":690,"id":10024,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":939,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":785,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1002,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1044,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1204,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1420,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1464,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1246,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1338,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1453,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1219,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1513,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1322,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1404,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":860,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":887,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1165,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":747,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":928,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":816,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1184,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":1145,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":796,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":763,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9000:101","nodeType":"YulBlock","src":"0:9000:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"759:80:101","nodeType":"YulBlock","src":"759:80:101","statements":[{"nativeSrc":"769:22:101","nodeType":"YulAssignment","src":"769:22:101","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:101","nodeType":"YulIdentifier","src":"784:6:101"}],"functionName":{"name":"mload","nativeSrc":"778:5:101","nodeType":"YulIdentifier","src":"778:5:101"},"nativeSrc":"778:13:101","nodeType":"YulFunctionCall","src":"778:13:101"},"variableNames":[{"name":"value","nativeSrc":"769:5:101","nodeType":"YulIdentifier","src":"769:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:101","nodeType":"YulIdentifier","src":"827:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:101","nodeType":"YulIdentifier","src":"800:26:101"},"nativeSrc":"800:33:101","nodeType":"YulFunctionCall","src":"800:33:101"},"nativeSrc":"800:33:101","nodeType":"YulExpressionStatement","src":"800:33:101"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:101","nodeType":"YulTypedName","src":"737:6:101","type":""},{"name":"end","nativeSrc":"745:3:101","nodeType":"YulTypedName","src":"745:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:101","nodeType":"YulTypedName","src":"753:5:101","type":""}],"src":"696:143:101"},{"body":{"nativeSrc":"934:28:101","nodeType":"YulBlock","src":"934:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:101","nodeType":"YulLiteral","src":"951:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:101","nodeType":"YulLiteral","src":"954:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:101","nodeType":"YulIdentifier","src":"944:6:101"},"nativeSrc":"944:12:101","nodeType":"YulFunctionCall","src":"944:12:101"},"nativeSrc":"944:12:101","nodeType":"YulExpressionStatement","src":"944:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:101","nodeType":"YulFunctionDefinition","src":"845:117:101"},{"body":{"nativeSrc":"1057:28:101","nodeType":"YulBlock","src":"1057:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:101","nodeType":"YulLiteral","src":"1074:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:101","nodeType":"YulLiteral","src":"1077:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:101","nodeType":"YulIdentifier","src":"1067:6:101"},"nativeSrc":"1067:12:101","nodeType":"YulFunctionCall","src":"1067:12:101"},"nativeSrc":"1067:12:101","nodeType":"YulExpressionStatement","src":"1067:12:101"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:101","nodeType":"YulFunctionDefinition","src":"968:117:101"},{"body":{"nativeSrc":"1139:54:101","nodeType":"YulBlock","src":"1139:54:101","statements":[{"nativeSrc":"1149:38:101","nodeType":"YulAssignment","src":"1149:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:101","nodeType":"YulIdentifier","src":"1167:5:101"},{"kind":"number","nativeSrc":"1174:2:101","nodeType":"YulLiteral","src":"1174:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:101","nodeType":"YulIdentifier","src":"1163:3:101"},"nativeSrc":"1163:14:101","nodeType":"YulFunctionCall","src":"1163:14:101"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:101","nodeType":"YulLiteral","src":"1183:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:101","nodeType":"YulIdentifier","src":"1179:3:101"},"nativeSrc":"1179:7:101","nodeType":"YulFunctionCall","src":"1179:7:101"}],"functionName":{"name":"and","nativeSrc":"1159:3:101","nodeType":"YulIdentifier","src":"1159:3:101"},"nativeSrc":"1159:28:101","nodeType":"YulFunctionCall","src":"1159:28:101"},"variableNames":[{"name":"result","nativeSrc":"1149:6:101","nodeType":"YulIdentifier","src":"1149:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:101","nodeType":"YulTypedName","src":"1122:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:101","nodeType":"YulTypedName","src":"1132:6:101","type":""}],"src":"1091:102:101"},{"body":{"nativeSrc":"1227:152:101","nodeType":"YulBlock","src":"1227:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:101","nodeType":"YulLiteral","src":"1244:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:101","nodeType":"YulLiteral","src":"1247:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:101","nodeType":"YulIdentifier","src":"1237:6:101"},"nativeSrc":"1237:88:101","nodeType":"YulFunctionCall","src":"1237:88:101"},"nativeSrc":"1237:88:101","nodeType":"YulExpressionStatement","src":"1237:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:101","nodeType":"YulLiteral","src":"1341:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:101","nodeType":"YulLiteral","src":"1344:4:101","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:101","nodeType":"YulIdentifier","src":"1334:6:101"},"nativeSrc":"1334:15:101","nodeType":"YulFunctionCall","src":"1334:15:101"},"nativeSrc":"1334:15:101","nodeType":"YulExpressionStatement","src":"1334:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:101","nodeType":"YulLiteral","src":"1365:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:101","nodeType":"YulLiteral","src":"1368:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:101","nodeType":"YulIdentifier","src":"1358:6:101"},"nativeSrc":"1358:15:101","nodeType":"YulFunctionCall","src":"1358:15:101"},"nativeSrc":"1358:15:101","nodeType":"YulExpressionStatement","src":"1358:15:101"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:101","nodeType":"YulFunctionDefinition","src":"1199:180:101"},{"body":{"nativeSrc":"1428:238:101","nodeType":"YulBlock","src":"1428:238:101","statements":[{"nativeSrc":"1438:58:101","nodeType":"YulVariableDeclaration","src":"1438:58:101","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:101","nodeType":"YulIdentifier","src":"1460:6:101"},{"arguments":[{"name":"size","nativeSrc":"1490:4:101","nodeType":"YulIdentifier","src":"1490:4:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:101","nodeType":"YulIdentifier","src":"1468:21:101"},"nativeSrc":"1468:27:101","nodeType":"YulFunctionCall","src":"1468:27:101"}],"functionName":{"name":"add","nativeSrc":"1456:3:101","nodeType":"YulIdentifier","src":"1456:3:101"},"nativeSrc":"1456:40:101","nodeType":"YulFunctionCall","src":"1456:40:101"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:101","nodeType":"YulTypedName","src":"1442:10:101","type":""}]},{"body":{"nativeSrc":"1607:22:101","nodeType":"YulBlock","src":"1607:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:101","nodeType":"YulIdentifier","src":"1609:16:101"},"nativeSrc":"1609:18:101","nodeType":"YulFunctionCall","src":"1609:18:101"},"nativeSrc":"1609:18:101","nodeType":"YulExpressionStatement","src":"1609:18:101"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:101","nodeType":"YulIdentifier","src":"1550:10:101"},{"kind":"number","nativeSrc":"1562:18:101","nodeType":"YulLiteral","src":"1562:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:101","nodeType":"YulIdentifier","src":"1547:2:101"},"nativeSrc":"1547:34:101","nodeType":"YulFunctionCall","src":"1547:34:101"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:101","nodeType":"YulIdentifier","src":"1586:10:101"},{"name":"memPtr","nativeSrc":"1598:6:101","nodeType":"YulIdentifier","src":"1598:6:101"}],"functionName":{"name":"lt","nativeSrc":"1583:2:101","nodeType":"YulIdentifier","src":"1583:2:101"},"nativeSrc":"1583:22:101","nodeType":"YulFunctionCall","src":"1583:22:101"}],"functionName":{"name":"or","nativeSrc":"1544:2:101","nodeType":"YulIdentifier","src":"1544:2:101"},"nativeSrc":"1544:62:101","nodeType":"YulFunctionCall","src":"1544:62:101"},"nativeSrc":"1541:88:101","nodeType":"YulIf","src":"1541:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:101","nodeType":"YulLiteral","src":"1645:2:101","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:101","nodeType":"YulIdentifier","src":"1649:10:101"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:101","nodeType":"YulIdentifier","src":"1638:6:101"},"nativeSrc":"1638:22:101","nodeType":"YulFunctionCall","src":"1638:22:101"},"nativeSrc":"1638:22:101","nodeType":"YulExpressionStatement","src":"1638:22:101"}]},"name":"finalize_allocation","nativeSrc":"1385:281:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:101","nodeType":"YulTypedName","src":"1414:6:101","type":""},{"name":"size","nativeSrc":"1422:4:101","nodeType":"YulTypedName","src":"1422:4:101","type":""}],"src":"1385:281:101"},{"body":{"nativeSrc":"1713:88:101","nodeType":"YulBlock","src":"1713:88:101","statements":[{"nativeSrc":"1723:30:101","nodeType":"YulAssignment","src":"1723:30:101","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:101","nodeType":"YulIdentifier","src":"1733:18:101"},"nativeSrc":"1733:20:101","nodeType":"YulFunctionCall","src":"1733:20:101"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:101","nodeType":"YulIdentifier","src":"1723:6:101"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:101","nodeType":"YulIdentifier","src":"1782:6:101"},{"name":"size","nativeSrc":"1790:4:101","nodeType":"YulIdentifier","src":"1790:4:101"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:101","nodeType":"YulIdentifier","src":"1762:19:101"},"nativeSrc":"1762:33:101","nodeType":"YulFunctionCall","src":"1762:33:101"},"nativeSrc":"1762:33:101","nodeType":"YulExpressionStatement","src":"1762:33:101"}]},"name":"allocate_memory","nativeSrc":"1672:129:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:101","nodeType":"YulTypedName","src":"1697:4:101","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:101","nodeType":"YulTypedName","src":"1706:6:101","type":""}],"src":"1672:129:101"},{"body":{"nativeSrc":"1873:241:101","nodeType":"YulBlock","src":"1873:241:101","statements":[{"body":{"nativeSrc":"1978:22:101","nodeType":"YulBlock","src":"1978:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:101","nodeType":"YulIdentifier","src":"1980:16:101"},"nativeSrc":"1980:18:101","nodeType":"YulFunctionCall","src":"1980:18:101"},"nativeSrc":"1980:18:101","nodeType":"YulExpressionStatement","src":"1980:18:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:101","nodeType":"YulIdentifier","src":"1950:6:101"},{"kind":"number","nativeSrc":"1958:18:101","nodeType":"YulLiteral","src":"1958:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:101","nodeType":"YulIdentifier","src":"1947:2:101"},"nativeSrc":"1947:30:101","nodeType":"YulFunctionCall","src":"1947:30:101"},"nativeSrc":"1944:56:101","nodeType":"YulIf","src":"1944:56:101"},{"nativeSrc":"2010:37:101","nodeType":"YulAssignment","src":"2010:37:101","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:101","nodeType":"YulIdentifier","src":"2040:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:101","nodeType":"YulIdentifier","src":"2018:21:101"},"nativeSrc":"2018:29:101","nodeType":"YulFunctionCall","src":"2018:29:101"},"variableNames":[{"name":"size","nativeSrc":"2010:4:101","nodeType":"YulIdentifier","src":"2010:4:101"}]},{"nativeSrc":"2084:23:101","nodeType":"YulAssignment","src":"2084:23:101","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:101","nodeType":"YulIdentifier","src":"2096:4:101"},{"kind":"number","nativeSrc":"2102:4:101","nodeType":"YulLiteral","src":"2102:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:101","nodeType":"YulIdentifier","src":"2092:3:101"},"nativeSrc":"2092:15:101","nodeType":"YulFunctionCall","src":"2092:15:101"},"variableNames":[{"name":"size","nativeSrc":"2084:4:101","nodeType":"YulIdentifier","src":"2084:4:101"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:101","nodeType":"YulTypedName","src":"1857:6:101","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:101","nodeType":"YulTypedName","src":"1868:4:101","type":""}],"src":"1807:307:101"},{"body":{"nativeSrc":"2182:77:101","nodeType":"YulBlock","src":"2182:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2199:3:101","nodeType":"YulIdentifier","src":"2199:3:101"},{"name":"src","nativeSrc":"2204:3:101","nodeType":"YulIdentifier","src":"2204:3:101"},{"name":"length","nativeSrc":"2209:6:101","nodeType":"YulIdentifier","src":"2209:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"2193:5:101","nodeType":"YulIdentifier","src":"2193:5:101"},"nativeSrc":"2193:23:101","nodeType":"YulFunctionCall","src":"2193:23:101"},"nativeSrc":"2193:23:101","nodeType":"YulExpressionStatement","src":"2193:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2236:3:101","nodeType":"YulIdentifier","src":"2236:3:101"},{"name":"length","nativeSrc":"2241:6:101","nodeType":"YulIdentifier","src":"2241:6:101"}],"functionName":{"name":"add","nativeSrc":"2232:3:101","nodeType":"YulIdentifier","src":"2232:3:101"},"nativeSrc":"2232:16:101","nodeType":"YulFunctionCall","src":"2232:16:101"},{"kind":"number","nativeSrc":"2250:1:101","nodeType":"YulLiteral","src":"2250:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:101","nodeType":"YulIdentifier","src":"2225:6:101"},"nativeSrc":"2225:27:101","nodeType":"YulFunctionCall","src":"2225:27:101"},"nativeSrc":"2225:27:101","nodeType":"YulExpressionStatement","src":"2225:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:101","nodeType":"YulTypedName","src":"2164:3:101","type":""},{"name":"dst","nativeSrc":"2169:3:101","nodeType":"YulTypedName","src":"2169:3:101","type":""},{"name":"length","nativeSrc":"2174:6:101","nodeType":"YulTypedName","src":"2174:6:101","type":""}],"src":"2120:139:101"},{"body":{"nativeSrc":"2359:338:101","nodeType":"YulBlock","src":"2359:338:101","statements":[{"nativeSrc":"2369:74:101","nodeType":"YulAssignment","src":"2369:74:101","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2435:6:101","nodeType":"YulIdentifier","src":"2435:6:101"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2394:40:101","nodeType":"YulIdentifier","src":"2394:40:101"},"nativeSrc":"2394:48:101","nodeType":"YulFunctionCall","src":"2394:48:101"}],"functionName":{"name":"allocate_memory","nativeSrc":"2378:15:101","nodeType":"YulIdentifier","src":"2378:15:101"},"nativeSrc":"2378:65:101","nodeType":"YulFunctionCall","src":"2378:65:101"},"variableNames":[{"name":"array","nativeSrc":"2369:5:101","nodeType":"YulIdentifier","src":"2369:5:101"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2459:5:101","nodeType":"YulIdentifier","src":"2459:5:101"},{"name":"length","nativeSrc":"2466:6:101","nodeType":"YulIdentifier","src":"2466:6:101"}],"functionName":{"name":"mstore","nativeSrc":"2452:6:101","nodeType":"YulIdentifier","src":"2452:6:101"},"nativeSrc":"2452:21:101","nodeType":"YulFunctionCall","src":"2452:21:101"},"nativeSrc":"2452:21:101","nodeType":"YulExpressionStatement","src":"2452:21:101"},{"nativeSrc":"2482:27:101","nodeType":"YulVariableDeclaration","src":"2482:27:101","value":{"arguments":[{"name":"array","nativeSrc":"2497:5:101","nodeType":"YulIdentifier","src":"2497:5:101"},{"kind":"number","nativeSrc":"2504:4:101","nodeType":"YulLiteral","src":"2504:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2493:3:101","nodeType":"YulIdentifier","src":"2493:3:101"},"nativeSrc":"2493:16:101","nodeType":"YulFunctionCall","src":"2493:16:101"},"variables":[{"name":"dst","nativeSrc":"2486:3:101","nodeType":"YulTypedName","src":"2486:3:101","type":""}]},{"body":{"nativeSrc":"2547:83:101","nodeType":"YulBlock","src":"2547:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2549:77:101","nodeType":"YulIdentifier","src":"2549:77:101"},"nativeSrc":"2549:79:101","nodeType":"YulFunctionCall","src":"2549:79:101"},"nativeSrc":"2549:79:101","nodeType":"YulExpressionStatement","src":"2549:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2528:3:101","nodeType":"YulIdentifier","src":"2528:3:101"},{"name":"length","nativeSrc":"2533:6:101","nodeType":"YulIdentifier","src":"2533:6:101"}],"functionName":{"name":"add","nativeSrc":"2524:3:101","nodeType":"YulIdentifier","src":"2524:3:101"},"nativeSrc":"2524:16:101","nodeType":"YulFunctionCall","src":"2524:16:101"},{"name":"end","nativeSrc":"2542:3:101","nodeType":"YulIdentifier","src":"2542:3:101"}],"functionName":{"name":"gt","nativeSrc":"2521:2:101","nodeType":"YulIdentifier","src":"2521:2:101"},"nativeSrc":"2521:25:101","nodeType":"YulFunctionCall","src":"2521:25:101"},"nativeSrc":"2518:112:101","nodeType":"YulIf","src":"2518:112:101"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2674:3:101","nodeType":"YulIdentifier","src":"2674:3:101"},{"name":"dst","nativeSrc":"2679:3:101","nodeType":"YulIdentifier","src":"2679:3:101"},{"name":"length","nativeSrc":"2684:6:101","nodeType":"YulIdentifier","src":"2684:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2639:34:101","nodeType":"YulIdentifier","src":"2639:34:101"},"nativeSrc":"2639:52:101","nodeType":"YulFunctionCall","src":"2639:52:101"},"nativeSrc":"2639:52:101","nodeType":"YulExpressionStatement","src":"2639:52:101"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2265:432:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2332:3:101","nodeType":"YulTypedName","src":"2332:3:101","type":""},{"name":"length","nativeSrc":"2337:6:101","nodeType":"YulTypedName","src":"2337:6:101","type":""},{"name":"end","nativeSrc":"2345:3:101","nodeType":"YulTypedName","src":"2345:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2353:5:101","nodeType":"YulTypedName","src":"2353:5:101","type":""}],"src":"2265:432:101"},{"body":{"nativeSrc":"2788:281:101","nodeType":"YulBlock","src":"2788:281:101","statements":[{"body":{"nativeSrc":"2837:83:101","nodeType":"YulBlock","src":"2837:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2839:77:101","nodeType":"YulIdentifier","src":"2839:77:101"},"nativeSrc":"2839:79:101","nodeType":"YulFunctionCall","src":"2839:79:101"},"nativeSrc":"2839:79:101","nodeType":"YulExpressionStatement","src":"2839:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2816:6:101","nodeType":"YulIdentifier","src":"2816:6:101"},{"kind":"number","nativeSrc":"2824:4:101","nodeType":"YulLiteral","src":"2824:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2812:3:101","nodeType":"YulIdentifier","src":"2812:3:101"},"nativeSrc":"2812:17:101","nodeType":"YulFunctionCall","src":"2812:17:101"},{"name":"end","nativeSrc":"2831:3:101","nodeType":"YulIdentifier","src":"2831:3:101"}],"functionName":{"name":"slt","nativeSrc":"2808:3:101","nodeType":"YulIdentifier","src":"2808:3:101"},"nativeSrc":"2808:27:101","nodeType":"YulFunctionCall","src":"2808:27:101"}],"functionName":{"name":"iszero","nativeSrc":"2801:6:101","nodeType":"YulIdentifier","src":"2801:6:101"},"nativeSrc":"2801:35:101","nodeType":"YulFunctionCall","src":"2801:35:101"},"nativeSrc":"2798:122:101","nodeType":"YulIf","src":"2798:122:101"},{"nativeSrc":"2929:27:101","nodeType":"YulVariableDeclaration","src":"2929:27:101","value":{"arguments":[{"name":"offset","nativeSrc":"2949:6:101","nodeType":"YulIdentifier","src":"2949:6:101"}],"functionName":{"name":"mload","nativeSrc":"2943:5:101","nodeType":"YulIdentifier","src":"2943:5:101"},"nativeSrc":"2943:13:101","nodeType":"YulFunctionCall","src":"2943:13:101"},"variables":[{"name":"length","nativeSrc":"2933:6:101","nodeType":"YulTypedName","src":"2933:6:101","type":""}]},{"nativeSrc":"2965:98:101","nodeType":"YulAssignment","src":"2965:98:101","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3036:6:101","nodeType":"YulIdentifier","src":"3036:6:101"},{"kind":"number","nativeSrc":"3044:4:101","nodeType":"YulLiteral","src":"3044:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:101","nodeType":"YulIdentifier","src":"3032:3:101"},"nativeSrc":"3032:17:101","nodeType":"YulFunctionCall","src":"3032:17:101"},{"name":"length","nativeSrc":"3051:6:101","nodeType":"YulIdentifier","src":"3051:6:101"},{"name":"end","nativeSrc":"3059:3:101","nodeType":"YulIdentifier","src":"3059:3:101"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2974:57:101","nodeType":"YulIdentifier","src":"2974:57:101"},"nativeSrc":"2974:89:101","nodeType":"YulFunctionCall","src":"2974:89:101"},"variableNames":[{"name":"array","nativeSrc":"2965:5:101","nodeType":"YulIdentifier","src":"2965:5:101"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2716:353:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2766:6:101","nodeType":"YulTypedName","src":"2766:6:101","type":""},{"name":"end","nativeSrc":"2774:3:101","nodeType":"YulTypedName","src":"2774:3:101","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2782:5:101","nodeType":"YulTypedName","src":"2782:5:101","type":""}],"src":"2716:353:101"},{"body":{"nativeSrc":"3195:714:101","nodeType":"YulBlock","src":"3195:714:101","statements":[{"body":{"nativeSrc":"3241:83:101","nodeType":"YulBlock","src":"3241:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3243:77:101","nodeType":"YulIdentifier","src":"3243:77:101"},"nativeSrc":"3243:79:101","nodeType":"YulFunctionCall","src":"3243:79:101"},"nativeSrc":"3243:79:101","nodeType":"YulExpressionStatement","src":"3243:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3216:7:101","nodeType":"YulIdentifier","src":"3216:7:101"},{"name":"headStart","nativeSrc":"3225:9:101","nodeType":"YulIdentifier","src":"3225:9:101"}],"functionName":{"name":"sub","nativeSrc":"3212:3:101","nodeType":"YulIdentifier","src":"3212:3:101"},"nativeSrc":"3212:23:101","nodeType":"YulFunctionCall","src":"3212:23:101"},{"kind":"number","nativeSrc":"3237:2:101","nodeType":"YulLiteral","src":"3237:2:101","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3208:3:101","nodeType":"YulIdentifier","src":"3208:3:101"},"nativeSrc":"3208:32:101","nodeType":"YulFunctionCall","src":"3208:32:101"},"nativeSrc":"3205:119:101","nodeType":"YulIf","src":"3205:119:101"},{"nativeSrc":"3334:128:101","nodeType":"YulBlock","src":"3334:128:101","statements":[{"nativeSrc":"3349:15:101","nodeType":"YulVariableDeclaration","src":"3349:15:101","value":{"kind":"number","nativeSrc":"3363:1:101","nodeType":"YulLiteral","src":"3363:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3353:6:101","nodeType":"YulTypedName","src":"3353:6:101","type":""}]},{"nativeSrc":"3378:74:101","nodeType":"YulAssignment","src":"3378:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3424:9:101","nodeType":"YulIdentifier","src":"3424:9:101"},{"name":"offset","nativeSrc":"3435:6:101","nodeType":"YulIdentifier","src":"3435:6:101"}],"functionName":{"name":"add","nativeSrc":"3420:3:101","nodeType":"YulIdentifier","src":"3420:3:101"},"nativeSrc":"3420:22:101","nodeType":"YulFunctionCall","src":"3420:22:101"},{"name":"dataEnd","nativeSrc":"3444:7:101","nodeType":"YulIdentifier","src":"3444:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3388:31:101","nodeType":"YulIdentifier","src":"3388:31:101"},"nativeSrc":"3388:64:101","nodeType":"YulFunctionCall","src":"3388:64:101"},"variableNames":[{"name":"value0","nativeSrc":"3378:6:101","nodeType":"YulIdentifier","src":"3378:6:101"}]}]},{"nativeSrc":"3472:129:101","nodeType":"YulBlock","src":"3472:129:101","statements":[{"nativeSrc":"3487:16:101","nodeType":"YulVariableDeclaration","src":"3487:16:101","value":{"kind":"number","nativeSrc":"3501:2:101","nodeType":"YulLiteral","src":"3501:2:101","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3491:6:101","nodeType":"YulTypedName","src":"3491:6:101","type":""}]},{"nativeSrc":"3517:74:101","nodeType":"YulAssignment","src":"3517:74:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3563:9:101","nodeType":"YulIdentifier","src":"3563:9:101"},{"name":"offset","nativeSrc":"3574:6:101","nodeType":"YulIdentifier","src":"3574:6:101"}],"functionName":{"name":"add","nativeSrc":"3559:3:101","nodeType":"YulIdentifier","src":"3559:3:101"},"nativeSrc":"3559:22:101","nodeType":"YulFunctionCall","src":"3559:22:101"},{"name":"dataEnd","nativeSrc":"3583:7:101","nodeType":"YulIdentifier","src":"3583:7:101"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3527:31:101","nodeType":"YulIdentifier","src":"3527:31:101"},"nativeSrc":"3527:64:101","nodeType":"YulFunctionCall","src":"3527:64:101"},"variableNames":[{"name":"value1","nativeSrc":"3517:6:101","nodeType":"YulIdentifier","src":"3517:6:101"}]}]},{"nativeSrc":"3611:291:101","nodeType":"YulBlock","src":"3611:291:101","statements":[{"nativeSrc":"3626:39:101","nodeType":"YulVariableDeclaration","src":"3626:39:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3650:9:101","nodeType":"YulIdentifier","src":"3650:9:101"},{"kind":"number","nativeSrc":"3661:2:101","nodeType":"YulLiteral","src":"3661:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3646:3:101","nodeType":"YulIdentifier","src":"3646:3:101"},"nativeSrc":"3646:18:101","nodeType":"YulFunctionCall","src":"3646:18:101"}],"functionName":{"name":"mload","nativeSrc":"3640:5:101","nodeType":"YulIdentifier","src":"3640:5:101"},"nativeSrc":"3640:25:101","nodeType":"YulFunctionCall","src":"3640:25:101"},"variables":[{"name":"offset","nativeSrc":"3630:6:101","nodeType":"YulTypedName","src":"3630:6:101","type":""}]},{"body":{"nativeSrc":"3712:83:101","nodeType":"YulBlock","src":"3712:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3714:77:101","nodeType":"YulIdentifier","src":"3714:77:101"},"nativeSrc":"3714:79:101","nodeType":"YulFunctionCall","src":"3714:79:101"},"nativeSrc":"3714:79:101","nodeType":"YulExpressionStatement","src":"3714:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3684:6:101","nodeType":"YulIdentifier","src":"3684:6:101"},{"kind":"number","nativeSrc":"3692:18:101","nodeType":"YulLiteral","src":"3692:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3681:2:101","nodeType":"YulIdentifier","src":"3681:2:101"},"nativeSrc":"3681:30:101","nodeType":"YulFunctionCall","src":"3681:30:101"},"nativeSrc":"3678:117:101","nodeType":"YulIf","src":"3678:117:101"},{"nativeSrc":"3809:83:101","nodeType":"YulAssignment","src":"3809:83:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3864:9:101","nodeType":"YulIdentifier","src":"3864:9:101"},{"name":"offset","nativeSrc":"3875:6:101","nodeType":"YulIdentifier","src":"3875:6:101"}],"functionName":{"name":"add","nativeSrc":"3860:3:101","nodeType":"YulIdentifier","src":"3860:3:101"},"nativeSrc":"3860:22:101","nodeType":"YulFunctionCall","src":"3860:22:101"},{"name":"dataEnd","nativeSrc":"3884:7:101","nodeType":"YulIdentifier","src":"3884:7:101"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3819:40:101","nodeType":"YulIdentifier","src":"3819:40:101"},"nativeSrc":"3819:73:101","nodeType":"YulFunctionCall","src":"3819:73:101"},"variableNames":[{"name":"value2","nativeSrc":"3809:6:101","nodeType":"YulIdentifier","src":"3809:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3075:834:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3149:9:101","nodeType":"YulTypedName","src":"3149:9:101","type":""},{"name":"dataEnd","nativeSrc":"3160:7:101","nodeType":"YulTypedName","src":"3160:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3172:6:101","nodeType":"YulTypedName","src":"3172:6:101","type":""},{"name":"value1","nativeSrc":"3180:6:101","nodeType":"YulTypedName","src":"3180:6:101","type":""},{"name":"value2","nativeSrc":"3188:6:101","nodeType":"YulTypedName","src":"3188:6:101","type":""}],"src":"3075:834:101"},{"body":{"nativeSrc":"3960:32:101","nodeType":"YulBlock","src":"3960:32:101","statements":[{"nativeSrc":"3970:16:101","nodeType":"YulAssignment","src":"3970:16:101","value":{"name":"value","nativeSrc":"3981:5:101","nodeType":"YulIdentifier","src":"3981:5:101"},"variableNames":[{"name":"cleaned","nativeSrc":"3970:7:101","nodeType":"YulIdentifier","src":"3970:7:101"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3915:77:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3942:5:101","nodeType":"YulTypedName","src":"3942:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3952:7:101","nodeType":"YulTypedName","src":"3952:7:101","type":""}],"src":"3915:77:101"},{"body":{"nativeSrc":"4026:152:101","nodeType":"YulBlock","src":"4026:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4043:1:101","nodeType":"YulLiteral","src":"4043:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4046:77:101","nodeType":"YulLiteral","src":"4046:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4036:6:101","nodeType":"YulIdentifier","src":"4036:6:101"},"nativeSrc":"4036:88:101","nodeType":"YulFunctionCall","src":"4036:88:101"},"nativeSrc":"4036:88:101","nodeType":"YulExpressionStatement","src":"4036:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4140:1:101","nodeType":"YulLiteral","src":"4140:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4143:4:101","nodeType":"YulLiteral","src":"4143:4:101","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4133:6:101","nodeType":"YulIdentifier","src":"4133:6:101"},"nativeSrc":"4133:15:101","nodeType":"YulFunctionCall","src":"4133:15:101"},"nativeSrc":"4133:15:101","nodeType":"YulExpressionStatement","src":"4133:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4164:1:101","nodeType":"YulLiteral","src":"4164:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4167:4:101","nodeType":"YulLiteral","src":"4167:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4157:6:101","nodeType":"YulIdentifier","src":"4157:6:101"},"nativeSrc":"4157:15:101","nodeType":"YulFunctionCall","src":"4157:15:101"},"nativeSrc":"4157:15:101","nodeType":"YulExpressionStatement","src":"4157:15:101"}]},"name":"panic_error_0x11","nativeSrc":"3998:180:101","nodeType":"YulFunctionDefinition","src":"3998:180:101"},{"body":{"nativeSrc":"4229:149:101","nodeType":"YulBlock","src":"4229:149:101","statements":[{"nativeSrc":"4239:25:101","nodeType":"YulAssignment","src":"4239:25:101","value":{"arguments":[{"name":"x","nativeSrc":"4262:1:101","nodeType":"YulIdentifier","src":"4262:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4244:17:101","nodeType":"YulIdentifier","src":"4244:17:101"},"nativeSrc":"4244:20:101","nodeType":"YulFunctionCall","src":"4244:20:101"},"variableNames":[{"name":"x","nativeSrc":"4239:1:101","nodeType":"YulIdentifier","src":"4239:1:101"}]},{"nativeSrc":"4273:25:101","nodeType":"YulAssignment","src":"4273:25:101","value":{"arguments":[{"name":"y","nativeSrc":"4296:1:101","nodeType":"YulIdentifier","src":"4296:1:101"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4278:17:101","nodeType":"YulIdentifier","src":"4278:17:101"},"nativeSrc":"4278:20:101","nodeType":"YulFunctionCall","src":"4278:20:101"},"variableNames":[{"name":"y","nativeSrc":"4273:1:101","nodeType":"YulIdentifier","src":"4273:1:101"}]},{"nativeSrc":"4307:17:101","nodeType":"YulAssignment","src":"4307:17:101","value":{"arguments":[{"name":"x","nativeSrc":"4319:1:101","nodeType":"YulIdentifier","src":"4319:1:101"},{"name":"y","nativeSrc":"4322:1:101","nodeType":"YulIdentifier","src":"4322:1:101"}],"functionName":{"name":"sub","nativeSrc":"4315:3:101","nodeType":"YulIdentifier","src":"4315:3:101"},"nativeSrc":"4315:9:101","nodeType":"YulFunctionCall","src":"4315:9:101"},"variableNames":[{"name":"diff","nativeSrc":"4307:4:101","nodeType":"YulIdentifier","src":"4307:4:101"}]},{"body":{"nativeSrc":"4349:22:101","nodeType":"YulBlock","src":"4349:22:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4351:16:101","nodeType":"YulIdentifier","src":"4351:16:101"},"nativeSrc":"4351:18:101","nodeType":"YulFunctionCall","src":"4351:18:101"},"nativeSrc":"4351:18:101","nodeType":"YulExpressionStatement","src":"4351:18:101"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4340:4:101","nodeType":"YulIdentifier","src":"4340:4:101"},{"name":"x","nativeSrc":"4346:1:101","nodeType":"YulIdentifier","src":"4346:1:101"}],"functionName":{"name":"gt","nativeSrc":"4337:2:101","nodeType":"YulIdentifier","src":"4337:2:101"},"nativeSrc":"4337:11:101","nodeType":"YulFunctionCall","src":"4337:11:101"},"nativeSrc":"4334:37:101","nodeType":"YulIf","src":"4334:37:101"}]},"name":"checked_sub_t_uint256","nativeSrc":"4184:194:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4215:1:101","nodeType":"YulTypedName","src":"4215:1:101","type":""},{"name":"y","nativeSrc":"4218:1:101","nodeType":"YulTypedName","src":"4218:1:101","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4224:4:101","nodeType":"YulTypedName","src":"4224:4:101","type":""}],"src":"4184:194:101"},{"body":{"nativeSrc":"4412:152:101","nodeType":"YulBlock","src":"4412:152:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4429:1:101","nodeType":"YulLiteral","src":"4429:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4432:77:101","nodeType":"YulLiteral","src":"4432:77:101","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4422:6:101","nodeType":"YulIdentifier","src":"4422:6:101"},"nativeSrc":"4422:88:101","nodeType":"YulFunctionCall","src":"4422:88:101"},"nativeSrc":"4422:88:101","nodeType":"YulExpressionStatement","src":"4422:88:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4526:1:101","nodeType":"YulLiteral","src":"4526:1:101","type":"","value":"4"},{"kind":"number","nativeSrc":"4529:4:101","nodeType":"YulLiteral","src":"4529:4:101","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4519:6:101","nodeType":"YulIdentifier","src":"4519:6:101"},"nativeSrc":"4519:15:101","nodeType":"YulFunctionCall","src":"4519:15:101"},"nativeSrc":"4519:15:101","nodeType":"YulExpressionStatement","src":"4519:15:101"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4550:1:101","nodeType":"YulLiteral","src":"4550:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"4553:4:101","nodeType":"YulLiteral","src":"4553:4:101","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4543:6:101","nodeType":"YulIdentifier","src":"4543:6:101"},"nativeSrc":"4543:15:101","nodeType":"YulFunctionCall","src":"4543:15:101"},"nativeSrc":"4543:15:101","nodeType":"YulExpressionStatement","src":"4543:15:101"}]},"name":"panic_error_0x01","nativeSrc":"4384:180:101","nodeType":"YulFunctionDefinition","src":"4384:180:101"},{"body":{"nativeSrc":"4635:53:101","nodeType":"YulBlock","src":"4635:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4652:3:101","nodeType":"YulIdentifier","src":"4652:3:101"},{"arguments":[{"name":"value","nativeSrc":"4675:5:101","nodeType":"YulIdentifier","src":"4675:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4657:17:101","nodeType":"YulIdentifier","src":"4657:17:101"},"nativeSrc":"4657:24:101","nodeType":"YulFunctionCall","src":"4657:24:101"}],"functionName":{"name":"mstore","nativeSrc":"4645:6:101","nodeType":"YulIdentifier","src":"4645:6:101"},"nativeSrc":"4645:37:101","nodeType":"YulFunctionCall","src":"4645:37:101"},"nativeSrc":"4645:37:101","nodeType":"YulExpressionStatement","src":"4645:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4570:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4623:5:101","nodeType":"YulTypedName","src":"4623:5:101","type":""},{"name":"pos","nativeSrc":"4630:3:101","nodeType":"YulTypedName","src":"4630:3:101","type":""}],"src":"4570:118:101"},{"body":{"nativeSrc":"4820:206:101","nodeType":"YulBlock","src":"4820:206:101","statements":[{"nativeSrc":"4830:26:101","nodeType":"YulAssignment","src":"4830:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4842:9:101","nodeType":"YulIdentifier","src":"4842:9:101"},{"kind":"number","nativeSrc":"4853:2:101","nodeType":"YulLiteral","src":"4853:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4838:3:101","nodeType":"YulIdentifier","src":"4838:3:101"},"nativeSrc":"4838:18:101","nodeType":"YulFunctionCall","src":"4838:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4830:4:101","nodeType":"YulIdentifier","src":"4830:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4910:6:101","nodeType":"YulIdentifier","src":"4910:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"4923:9:101","nodeType":"YulIdentifier","src":"4923:9:101"},{"kind":"number","nativeSrc":"4934:1:101","nodeType":"YulLiteral","src":"4934:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4919:3:101","nodeType":"YulIdentifier","src":"4919:3:101"},"nativeSrc":"4919:17:101","nodeType":"YulFunctionCall","src":"4919:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4866:43:101","nodeType":"YulIdentifier","src":"4866:43:101"},"nativeSrc":"4866:71:101","nodeType":"YulFunctionCall","src":"4866:71:101"},"nativeSrc":"4866:71:101","nodeType":"YulExpressionStatement","src":"4866:71:101"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4991:6:101","nodeType":"YulIdentifier","src":"4991:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"5004:9:101","nodeType":"YulIdentifier","src":"5004:9:101"},{"kind":"number","nativeSrc":"5015:2:101","nodeType":"YulLiteral","src":"5015:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5000:3:101","nodeType":"YulIdentifier","src":"5000:3:101"},"nativeSrc":"5000:18:101","nodeType":"YulFunctionCall","src":"5000:18:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4947:43:101","nodeType":"YulIdentifier","src":"4947:43:101"},"nativeSrc":"4947:72:101","nodeType":"YulFunctionCall","src":"4947:72:101"},"nativeSrc":"4947:72:101","nodeType":"YulExpressionStatement","src":"4947:72:101"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4694:332:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4784:9:101","nodeType":"YulTypedName","src":"4784:9:101","type":""},{"name":"value1","nativeSrc":"4796:6:101","nodeType":"YulTypedName","src":"4796:6:101","type":""},{"name":"value0","nativeSrc":"4804:6:101","nodeType":"YulTypedName","src":"4804:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4815:4:101","nodeType":"YulTypedName","src":"4815:4:101","type":""}],"src":"4694:332:101"},{"body":{"nativeSrc":"5128:73:101","nodeType":"YulBlock","src":"5128:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5145:3:101","nodeType":"YulIdentifier","src":"5145:3:101"},{"name":"length","nativeSrc":"5150:6:101","nodeType":"YulIdentifier","src":"5150:6:101"}],"functionName":{"name":"mstore","nativeSrc":"5138:6:101","nodeType":"YulIdentifier","src":"5138:6:101"},"nativeSrc":"5138:19:101","nodeType":"YulFunctionCall","src":"5138:19:101"},"nativeSrc":"5138:19:101","nodeType":"YulExpressionStatement","src":"5138:19:101"},{"nativeSrc":"5166:29:101","nodeType":"YulAssignment","src":"5166:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"5185:3:101","nodeType":"YulIdentifier","src":"5185:3:101"},{"kind":"number","nativeSrc":"5190:4:101","nodeType":"YulLiteral","src":"5190:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5181:3:101","nodeType":"YulIdentifier","src":"5181:3:101"},"nativeSrc":"5181:14:101","nodeType":"YulFunctionCall","src":"5181:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"5166:11:101","nodeType":"YulIdentifier","src":"5166:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5032:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5100:3:101","nodeType":"YulTypedName","src":"5100:3:101","type":""},{"name":"length","nativeSrc":"5105:6:101","nodeType":"YulTypedName","src":"5105:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5116:11:101","nodeType":"YulTypedName","src":"5116:11:101","type":""}],"src":"5032:169:101"},{"body":{"nativeSrc":"5313:126:101","nodeType":"YulBlock","src":"5313:126:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5335:6:101","nodeType":"YulIdentifier","src":"5335:6:101"},{"kind":"number","nativeSrc":"5343:1:101","nodeType":"YulLiteral","src":"5343:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5331:3:101","nodeType":"YulIdentifier","src":"5331:3:101"},"nativeSrc":"5331:14:101","nodeType":"YulFunctionCall","src":"5331:14:101"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"5347:34:101","nodeType":"YulLiteral","src":"5347:34:101","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"5324:6:101","nodeType":"YulIdentifier","src":"5324:6:101"},"nativeSrc":"5324:58:101","nodeType":"YulFunctionCall","src":"5324:58:101"},"nativeSrc":"5324:58:101","nodeType":"YulExpressionStatement","src":"5324:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5403:6:101","nodeType":"YulIdentifier","src":"5403:6:101"},{"kind":"number","nativeSrc":"5411:2:101","nodeType":"YulLiteral","src":"5411:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5399:3:101","nodeType":"YulIdentifier","src":"5399:3:101"},"nativeSrc":"5399:15:101","nodeType":"YulFunctionCall","src":"5399:15:101"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"5416:15:101","nodeType":"YulLiteral","src":"5416:15:101","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"5392:6:101","nodeType":"YulIdentifier","src":"5392:6:101"},"nativeSrc":"5392:40:101","nodeType":"YulFunctionCall","src":"5392:40:101"},"nativeSrc":"5392:40:101","nodeType":"YulExpressionStatement","src":"5392:40:101"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5207:232:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5305:6:101","nodeType":"YulTypedName","src":"5305:6:101","type":""}],"src":"5207:232:101"},{"body":{"nativeSrc":"5591:220:101","nodeType":"YulBlock","src":"5591:220:101","statements":[{"nativeSrc":"5601:74:101","nodeType":"YulAssignment","src":"5601:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5667:3:101","nodeType":"YulIdentifier","src":"5667:3:101"},{"kind":"number","nativeSrc":"5672:2:101","nodeType":"YulLiteral","src":"5672:2:101","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5608:58:101","nodeType":"YulIdentifier","src":"5608:58:101"},"nativeSrc":"5608:67:101","nodeType":"YulFunctionCall","src":"5608:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5601:3:101","nodeType":"YulIdentifier","src":"5601:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5773:3:101","nodeType":"YulIdentifier","src":"5773:3:101"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5684:88:101","nodeType":"YulIdentifier","src":"5684:88:101"},"nativeSrc":"5684:93:101","nodeType":"YulFunctionCall","src":"5684:93:101"},"nativeSrc":"5684:93:101","nodeType":"YulExpressionStatement","src":"5684:93:101"},{"nativeSrc":"5786:19:101","nodeType":"YulAssignment","src":"5786:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5797:3:101","nodeType":"YulIdentifier","src":"5797:3:101"},{"kind":"number","nativeSrc":"5802:2:101","nodeType":"YulLiteral","src":"5802:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5793:3:101","nodeType":"YulIdentifier","src":"5793:3:101"},"nativeSrc":"5793:12:101","nodeType":"YulFunctionCall","src":"5793:12:101"},"variableNames":[{"name":"end","nativeSrc":"5786:3:101","nodeType":"YulIdentifier","src":"5786:3:101"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5445:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5579:3:101","nodeType":"YulTypedName","src":"5579:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5587:3:101","nodeType":"YulTypedName","src":"5587:3:101","type":""}],"src":"5445:366:101"},{"body":{"nativeSrc":"5988:248:101","nodeType":"YulBlock","src":"5988:248:101","statements":[{"nativeSrc":"5998:26:101","nodeType":"YulAssignment","src":"5998:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6010:9:101","nodeType":"YulIdentifier","src":"6010:9:101"},{"kind":"number","nativeSrc":"6021:2:101","nodeType":"YulLiteral","src":"6021:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6006:3:101","nodeType":"YulIdentifier","src":"6006:3:101"},"nativeSrc":"6006:18:101","nodeType":"YulFunctionCall","src":"6006:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5998:4:101","nodeType":"YulIdentifier","src":"5998:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6045:9:101","nodeType":"YulIdentifier","src":"6045:9:101"},{"kind":"number","nativeSrc":"6056:1:101","nodeType":"YulLiteral","src":"6056:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6041:3:101","nodeType":"YulIdentifier","src":"6041:3:101"},"nativeSrc":"6041:17:101","nodeType":"YulFunctionCall","src":"6041:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6064:4:101","nodeType":"YulIdentifier","src":"6064:4:101"},{"name":"headStart","nativeSrc":"6070:9:101","nodeType":"YulIdentifier","src":"6070:9:101"}],"functionName":{"name":"sub","nativeSrc":"6060:3:101","nodeType":"YulIdentifier","src":"6060:3:101"},"nativeSrc":"6060:20:101","nodeType":"YulFunctionCall","src":"6060:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6034:6:101","nodeType":"YulIdentifier","src":"6034:6:101"},"nativeSrc":"6034:47:101","nodeType":"YulFunctionCall","src":"6034:47:101"},"nativeSrc":"6034:47:101","nodeType":"YulExpressionStatement","src":"6034:47:101"},{"nativeSrc":"6090:139:101","nodeType":"YulAssignment","src":"6090:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6224:4:101","nodeType":"YulIdentifier","src":"6224:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6098:124:101","nodeType":"YulIdentifier","src":"6098:124:101"},"nativeSrc":"6098:131:101","nodeType":"YulFunctionCall","src":"6098:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6090:4:101","nodeType":"YulIdentifier","src":"6090:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5817:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5968:9:101","nodeType":"YulTypedName","src":"5968:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5983:4:101","nodeType":"YulTypedName","src":"5983:4:101","type":""}],"src":"5817:419:101"},{"body":{"nativeSrc":"6348:119:101","nodeType":"YulBlock","src":"6348:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6370:6:101","nodeType":"YulIdentifier","src":"6370:6:101"},{"kind":"number","nativeSrc":"6378:1:101","nodeType":"YulLiteral","src":"6378:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6366:3:101","nodeType":"YulIdentifier","src":"6366:3:101"},"nativeSrc":"6366:14:101","nodeType":"YulFunctionCall","src":"6366:14:101"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"6382:34:101","nodeType":"YulLiteral","src":"6382:34:101","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"6359:6:101","nodeType":"YulIdentifier","src":"6359:6:101"},"nativeSrc":"6359:58:101","nodeType":"YulFunctionCall","src":"6359:58:101"},"nativeSrc":"6359:58:101","nodeType":"YulExpressionStatement","src":"6359:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6438:6:101","nodeType":"YulIdentifier","src":"6438:6:101"},{"kind":"number","nativeSrc":"6446:2:101","nodeType":"YulLiteral","src":"6446:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6434:3:101","nodeType":"YulIdentifier","src":"6434:3:101"},"nativeSrc":"6434:15:101","nodeType":"YulFunctionCall","src":"6434:15:101"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"6451:8:101","nodeType":"YulLiteral","src":"6451:8:101","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"6427:6:101","nodeType":"YulIdentifier","src":"6427:6:101"},"nativeSrc":"6427:33:101","nodeType":"YulFunctionCall","src":"6427:33:101"},"nativeSrc":"6427:33:101","nodeType":"YulExpressionStatement","src":"6427:33:101"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6242:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6340:6:101","nodeType":"YulTypedName","src":"6340:6:101","type":""}],"src":"6242:225:101"},{"body":{"nativeSrc":"6619:220:101","nodeType":"YulBlock","src":"6619:220:101","statements":[{"nativeSrc":"6629:74:101","nodeType":"YulAssignment","src":"6629:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"6695:3:101","nodeType":"YulIdentifier","src":"6695:3:101"},{"kind":"number","nativeSrc":"6700:2:101","nodeType":"YulLiteral","src":"6700:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6636:58:101","nodeType":"YulIdentifier","src":"6636:58:101"},"nativeSrc":"6636:67:101","nodeType":"YulFunctionCall","src":"6636:67:101"},"variableNames":[{"name":"pos","nativeSrc":"6629:3:101","nodeType":"YulIdentifier","src":"6629:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6801:3:101","nodeType":"YulIdentifier","src":"6801:3:101"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6712:88:101","nodeType":"YulIdentifier","src":"6712:88:101"},"nativeSrc":"6712:93:101","nodeType":"YulFunctionCall","src":"6712:93:101"},"nativeSrc":"6712:93:101","nodeType":"YulExpressionStatement","src":"6712:93:101"},{"nativeSrc":"6814:19:101","nodeType":"YulAssignment","src":"6814:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6825:3:101","nodeType":"YulIdentifier","src":"6825:3:101"},{"kind":"number","nativeSrc":"6830:2:101","nodeType":"YulLiteral","src":"6830:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6821:3:101","nodeType":"YulIdentifier","src":"6821:3:101"},"nativeSrc":"6821:12:101","nodeType":"YulFunctionCall","src":"6821:12:101"},"variableNames":[{"name":"end","nativeSrc":"6814:3:101","nodeType":"YulIdentifier","src":"6814:3:101"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6473:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6607:3:101","nodeType":"YulTypedName","src":"6607:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6615:3:101","nodeType":"YulTypedName","src":"6615:3:101","type":""}],"src":"6473:366:101"},{"body":{"nativeSrc":"7016:248:101","nodeType":"YulBlock","src":"7016:248:101","statements":[{"nativeSrc":"7026:26:101","nodeType":"YulAssignment","src":"7026:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"7038:9:101","nodeType":"YulIdentifier","src":"7038:9:101"},{"kind":"number","nativeSrc":"7049:2:101","nodeType":"YulLiteral","src":"7049:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7034:3:101","nodeType":"YulIdentifier","src":"7034:3:101"},"nativeSrc":"7034:18:101","nodeType":"YulFunctionCall","src":"7034:18:101"},"variableNames":[{"name":"tail","nativeSrc":"7026:4:101","nodeType":"YulIdentifier","src":"7026:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7073:9:101","nodeType":"YulIdentifier","src":"7073:9:101"},{"kind":"number","nativeSrc":"7084:1:101","nodeType":"YulLiteral","src":"7084:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7069:3:101","nodeType":"YulIdentifier","src":"7069:3:101"},"nativeSrc":"7069:17:101","nodeType":"YulFunctionCall","src":"7069:17:101"},{"arguments":[{"name":"tail","nativeSrc":"7092:4:101","nodeType":"YulIdentifier","src":"7092:4:101"},{"name":"headStart","nativeSrc":"7098:9:101","nodeType":"YulIdentifier","src":"7098:9:101"}],"functionName":{"name":"sub","nativeSrc":"7088:3:101","nodeType":"YulIdentifier","src":"7088:3:101"},"nativeSrc":"7088:20:101","nodeType":"YulFunctionCall","src":"7088:20:101"}],"functionName":{"name":"mstore","nativeSrc":"7062:6:101","nodeType":"YulIdentifier","src":"7062:6:101"},"nativeSrc":"7062:47:101","nodeType":"YulFunctionCall","src":"7062:47:101"},"nativeSrc":"7062:47:101","nodeType":"YulExpressionStatement","src":"7062:47:101"},{"nativeSrc":"7118:139:101","nodeType":"YulAssignment","src":"7118:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"7252:4:101","nodeType":"YulIdentifier","src":"7252:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7126:124:101","nodeType":"YulIdentifier","src":"7126:124:101"},"nativeSrc":"7126:131:101","nodeType":"YulFunctionCall","src":"7126:131:101"},"variableNames":[{"name":"tail","nativeSrc":"7118:4:101","nodeType":"YulIdentifier","src":"7118:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6845:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6996:9:101","nodeType":"YulTypedName","src":"6996:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7011:4:101","nodeType":"YulTypedName","src":"7011:4:101","type":""}],"src":"6845:419:101"},{"body":{"nativeSrc":"7328:40:101","nodeType":"YulBlock","src":"7328:40:101","statements":[{"nativeSrc":"7339:22:101","nodeType":"YulAssignment","src":"7339:22:101","value":{"arguments":[{"name":"value","nativeSrc":"7355:5:101","nodeType":"YulIdentifier","src":"7355:5:101"}],"functionName":{"name":"mload","nativeSrc":"7349:5:101","nodeType":"YulIdentifier","src":"7349:5:101"},"nativeSrc":"7349:12:101","nodeType":"YulFunctionCall","src":"7349:12:101"},"variableNames":[{"name":"length","nativeSrc":"7339:6:101","nodeType":"YulIdentifier","src":"7339:6:101"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7270:98:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7311:5:101","nodeType":"YulTypedName","src":"7311:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7321:6:101","nodeType":"YulTypedName","src":"7321:6:101","type":""}],"src":"7270:98:101"},{"body":{"nativeSrc":"7487:34:101","nodeType":"YulBlock","src":"7487:34:101","statements":[{"nativeSrc":"7497:18:101","nodeType":"YulAssignment","src":"7497:18:101","value":{"name":"pos","nativeSrc":"7512:3:101","nodeType":"YulIdentifier","src":"7512:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"7497:11:101","nodeType":"YulIdentifier","src":"7497:11:101"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7374:147:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7459:3:101","nodeType":"YulTypedName","src":"7459:3:101","type":""},{"name":"length","nativeSrc":"7464:6:101","nodeType":"YulTypedName","src":"7464:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7475:11:101","nodeType":"YulTypedName","src":"7475:11:101","type":""}],"src":"7374:147:101"},{"body":{"nativeSrc":"7635:278:101","nodeType":"YulBlock","src":"7635:278:101","statements":[{"nativeSrc":"7645:52:101","nodeType":"YulVariableDeclaration","src":"7645:52:101","value":{"arguments":[{"name":"value","nativeSrc":"7691:5:101","nodeType":"YulIdentifier","src":"7691:5:101"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7659:31:101","nodeType":"YulIdentifier","src":"7659:31:101"},"nativeSrc":"7659:38:101","nodeType":"YulFunctionCall","src":"7659:38:101"},"variables":[{"name":"length","nativeSrc":"7649:6:101","nodeType":"YulTypedName","src":"7649:6:101","type":""}]},{"nativeSrc":"7706:95:101","nodeType":"YulAssignment","src":"7706:95:101","value":{"arguments":[{"name":"pos","nativeSrc":"7789:3:101","nodeType":"YulIdentifier","src":"7789:3:101"},{"name":"length","nativeSrc":"7794:6:101","nodeType":"YulIdentifier","src":"7794:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7713:75:101","nodeType":"YulIdentifier","src":"7713:75:101"},"nativeSrc":"7713:88:101","nodeType":"YulFunctionCall","src":"7713:88:101"},"variableNames":[{"name":"pos","nativeSrc":"7706:3:101","nodeType":"YulIdentifier","src":"7706:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7849:5:101","nodeType":"YulIdentifier","src":"7849:5:101"},{"kind":"number","nativeSrc":"7856:4:101","nodeType":"YulLiteral","src":"7856:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7845:3:101","nodeType":"YulIdentifier","src":"7845:3:101"},"nativeSrc":"7845:16:101","nodeType":"YulFunctionCall","src":"7845:16:101"},{"name":"pos","nativeSrc":"7863:3:101","nodeType":"YulIdentifier","src":"7863:3:101"},{"name":"length","nativeSrc":"7868:6:101","nodeType":"YulIdentifier","src":"7868:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7810:34:101","nodeType":"YulIdentifier","src":"7810:34:101"},"nativeSrc":"7810:65:101","nodeType":"YulFunctionCall","src":"7810:65:101"},"nativeSrc":"7810:65:101","nodeType":"YulExpressionStatement","src":"7810:65:101"},{"nativeSrc":"7884:23:101","nodeType":"YulAssignment","src":"7884:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"7895:3:101","nodeType":"YulIdentifier","src":"7895:3:101"},{"name":"length","nativeSrc":"7900:6:101","nodeType":"YulIdentifier","src":"7900:6:101"}],"functionName":{"name":"add","nativeSrc":"7891:3:101","nodeType":"YulIdentifier","src":"7891:3:101"},"nativeSrc":"7891:16:101","nodeType":"YulFunctionCall","src":"7891:16:101"},"variableNames":[{"name":"end","nativeSrc":"7884:3:101","nodeType":"YulIdentifier","src":"7884:3:101"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7527:386:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7616:5:101","nodeType":"YulTypedName","src":"7616:5:101","type":""},{"name":"pos","nativeSrc":"7623:3:101","nodeType":"YulTypedName","src":"7623:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7631:3:101","nodeType":"YulTypedName","src":"7631:3:101","type":""}],"src":"7527:386:101"},{"body":{"nativeSrc":"8053:137:101","nodeType":"YulBlock","src":"8053:137:101","statements":[{"nativeSrc":"8064:100:101","nodeType":"YulAssignment","src":"8064:100:101","value":{"arguments":[{"name":"value0","nativeSrc":"8151:6:101","nodeType":"YulIdentifier","src":"8151:6:101"},{"name":"pos","nativeSrc":"8160:3:101","nodeType":"YulIdentifier","src":"8160:3:101"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8071:79:101","nodeType":"YulIdentifier","src":"8071:79:101"},"nativeSrc":"8071:93:101","nodeType":"YulFunctionCall","src":"8071:93:101"},"variableNames":[{"name":"pos","nativeSrc":"8064:3:101","nodeType":"YulIdentifier","src":"8064:3:101"}]},{"nativeSrc":"8174:10:101","nodeType":"YulAssignment","src":"8174:10:101","value":{"name":"pos","nativeSrc":"8181:3:101","nodeType":"YulIdentifier","src":"8181:3:101"},"variableNames":[{"name":"end","nativeSrc":"8174:3:101","nodeType":"YulIdentifier","src":"8174:3:101"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7919:271:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8032:3:101","nodeType":"YulTypedName","src":"8032:3:101","type":""},{"name":"value0","nativeSrc":"8038:6:101","nodeType":"YulTypedName","src":"8038:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8049:3:101","nodeType":"YulTypedName","src":"8049:3:101","type":""}],"src":"7919:271:101"},{"body":{"nativeSrc":"8255:40:101","nodeType":"YulBlock","src":"8255:40:101","statements":[{"nativeSrc":"8266:22:101","nodeType":"YulAssignment","src":"8266:22:101","value":{"arguments":[{"name":"value","nativeSrc":"8282:5:101","nodeType":"YulIdentifier","src":"8282:5:101"}],"functionName":{"name":"mload","nativeSrc":"8276:5:101","nodeType":"YulIdentifier","src":"8276:5:101"},"nativeSrc":"8276:12:101","nodeType":"YulFunctionCall","src":"8276:12:101"},"variableNames":[{"name":"length","nativeSrc":"8266:6:101","nodeType":"YulIdentifier","src":"8266:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"8196:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8238:5:101","nodeType":"YulTypedName","src":"8238:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8248:6:101","nodeType":"YulTypedName","src":"8248:6:101","type":""}],"src":"8196:99:101"},{"body":{"nativeSrc":"8393:285:101","nodeType":"YulBlock","src":"8393:285:101","statements":[{"nativeSrc":"8403:53:101","nodeType":"YulVariableDeclaration","src":"8403:53:101","value":{"arguments":[{"name":"value","nativeSrc":"8450:5:101","nodeType":"YulIdentifier","src":"8450:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"8417:32:101","nodeType":"YulIdentifier","src":"8417:32:101"},"nativeSrc":"8417:39:101","nodeType":"YulFunctionCall","src":"8417:39:101"},"variables":[{"name":"length","nativeSrc":"8407:6:101","nodeType":"YulTypedName","src":"8407:6:101","type":""}]},{"nativeSrc":"8465:78:101","nodeType":"YulAssignment","src":"8465:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"8531:3:101","nodeType":"YulIdentifier","src":"8531:3:101"},{"name":"length","nativeSrc":"8536:6:101","nodeType":"YulIdentifier","src":"8536:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8472:58:101","nodeType":"YulIdentifier","src":"8472:58:101"},"nativeSrc":"8472:71:101","nodeType":"YulFunctionCall","src":"8472:71:101"},"variableNames":[{"name":"pos","nativeSrc":"8465:3:101","nodeType":"YulIdentifier","src":"8465:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8591:5:101","nodeType":"YulIdentifier","src":"8591:5:101"},{"kind":"number","nativeSrc":"8598:4:101","nodeType":"YulLiteral","src":"8598:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8587:3:101","nodeType":"YulIdentifier","src":"8587:3:101"},"nativeSrc":"8587:16:101","nodeType":"YulFunctionCall","src":"8587:16:101"},{"name":"pos","nativeSrc":"8605:3:101","nodeType":"YulIdentifier","src":"8605:3:101"},{"name":"length","nativeSrc":"8610:6:101","nodeType":"YulIdentifier","src":"8610:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8552:34:101","nodeType":"YulIdentifier","src":"8552:34:101"},"nativeSrc":"8552:65:101","nodeType":"YulFunctionCall","src":"8552:65:101"},"nativeSrc":"8552:65:101","nodeType":"YulExpressionStatement","src":"8552:65:101"},{"nativeSrc":"8626:46:101","nodeType":"YulAssignment","src":"8626:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"8637:3:101","nodeType":"YulIdentifier","src":"8637:3:101"},{"arguments":[{"name":"length","nativeSrc":"8664:6:101","nodeType":"YulIdentifier","src":"8664:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8642:21:101","nodeType":"YulIdentifier","src":"8642:21:101"},"nativeSrc":"8642:29:101","nodeType":"YulFunctionCall","src":"8642:29:101"}],"functionName":{"name":"add","nativeSrc":"8633:3:101","nodeType":"YulIdentifier","src":"8633:3:101"},"nativeSrc":"8633:39:101","nodeType":"YulFunctionCall","src":"8633:39:101"},"variableNames":[{"name":"end","nativeSrc":"8626:3:101","nodeType":"YulIdentifier","src":"8626:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8301:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8374:5:101","nodeType":"YulTypedName","src":"8374:5:101","type":""},{"name":"pos","nativeSrc":"8381:3:101","nodeType":"YulTypedName","src":"8381:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8389:3:101","nodeType":"YulTypedName","src":"8389:3:101","type":""}],"src":"8301:377:101"},{"body":{"nativeSrc":"8802:195:101","nodeType":"YulBlock","src":"8802:195:101","statements":[{"nativeSrc":"8812:26:101","nodeType":"YulAssignment","src":"8812:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8824:9:101","nodeType":"YulIdentifier","src":"8824:9:101"},{"kind":"number","nativeSrc":"8835:2:101","nodeType":"YulLiteral","src":"8835:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8820:3:101","nodeType":"YulIdentifier","src":"8820:3:101"},"nativeSrc":"8820:18:101","nodeType":"YulFunctionCall","src":"8820:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8812:4:101","nodeType":"YulIdentifier","src":"8812:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8859:9:101","nodeType":"YulIdentifier","src":"8859:9:101"},{"kind":"number","nativeSrc":"8870:1:101","nodeType":"YulLiteral","src":"8870:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8855:3:101","nodeType":"YulIdentifier","src":"8855:3:101"},"nativeSrc":"8855:17:101","nodeType":"YulFunctionCall","src":"8855:17:101"},{"arguments":[{"name":"tail","nativeSrc":"8878:4:101","nodeType":"YulIdentifier","src":"8878:4:101"},{"name":"headStart","nativeSrc":"8884:9:101","nodeType":"YulIdentifier","src":"8884:9:101"}],"functionName":{"name":"sub","nativeSrc":"8874:3:101","nodeType":"YulIdentifier","src":"8874:3:101"},"nativeSrc":"8874:20:101","nodeType":"YulFunctionCall","src":"8874:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8848:6:101","nodeType":"YulIdentifier","src":"8848:6:101"},"nativeSrc":"8848:47:101","nodeType":"YulFunctionCall","src":"8848:47:101"},"nativeSrc":"8848:47:101","nodeType":"YulExpressionStatement","src":"8848:47:101"},{"nativeSrc":"8904:86:101","nodeType":"YulAssignment","src":"8904:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"8976:6:101","nodeType":"YulIdentifier","src":"8976:6:101"},{"name":"tail","nativeSrc":"8985:4:101","nodeType":"YulIdentifier","src":"8985:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8912:63:101","nodeType":"YulIdentifier","src":"8912:63:101"},"nativeSrc":"8912:78:101","nodeType":"YulFunctionCall","src":"8912:78:101"},"variableNames":[{"name":"tail","nativeSrc":"8904:4:101","nodeType":"YulIdentifier","src":"8904:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8684:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8774:9:101","nodeType":"YulTypedName","src":"8774:9:101","type":""},{"name":"value0","nativeSrc":"8786:6:101","nodeType":"YulTypedName","src":"8786:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8797:4:101","nodeType":"YulTypedName","src":"8797:4:101","type":""}],"src":"8684:313:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x01() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\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        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051610e6b380380610e6b83398101604081905261002291610414565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61048d565b5f80516020610e248339815191521461006a5761006a6104a0565b61007582825f61011f565b506100a3905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461048d565b5f80516020610e04833981519152146100be576100be6104a0565b6001600160a01b0382166080525f80516020610e048339815191528281556040517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f9061010e905f9086906104c3565b60405180910390a1505050506105fa565b6101288361014a565b5f825111806101345750805b15610145576101438383610189565b505b505050565b610153816101b7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606101ae8383604051806060016040528060278152602001610e4460279139610215565b90505b92915050565b6001600160a01b0381163b6101e75760405162461bcd60e51b81526004016101de9061052a565b60405180910390fd5b5f80516020610e2483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61023e5760405162461bcd60e51b81526004016101de9061057c565b5f80856001600160a01b03168560405161025891906105ad565b5f60405180830381855af49150503d805f8114610290576040519150601f19603f3d011682016040523d82523d5f602084013e610295565b606091505b5090925090506102a68282866102b2565b925050505b9392505050565b606083156102c15750816102ab565b8251156102d15782518084602001fd5b8160405162461bcd60e51b81526004016101de91906105e9565b5f6001600160a01b0382166101b1565b610304816102eb565b811461030e575f80fd5b50565b80516101b1816102fb565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156103555761035561031c565b6040525050565b5f61036660405190565b90506103728282610330565b919050565b5f6001600160401b0382111561038f5761038f61031c565b601f19601f83011660200192915050565b8281835e505f910152565b5f6103bd6103b884610377565b61035c565b9050828152602081018484840111156103d7576103d75f80fd5b6103e28482856103a0565b509392505050565b5f82601f8301126103fc576103fc5f80fd5b815161040c8482602086016103ab565b949350505050565b5f805f60608486031215610429576104295f80fd5b5f6104348686610311565b935050602061044586828701610311565b92505060408401516001600160401b03811115610463576104635f80fd5b61046f868287016103ea565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101b1576101b1610479565b634e487b7160e01b5f52600160045260245ffd5b6104bd816102eb565b82525050565b604081016104d182856104b4565b6102ab60208301846104b4565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016101b1816104de565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610523565b602080825281016101b18161053a565b5f610595825190565b6105a38185602086016103a0565b9290920192915050565b5f6102ab828461058c565b5f6105c1825190565b8084526020840193506105d88185602086016103a0565b601f01601f19169290920192915050565b602080825281016101ae81846105b8565b6080516107d06106345f395f818160e501528181610139015281816101b90152818161020201528181610233015261025701526107d05ff3fe608060405260043610610042575f3560e01c80633659cfe6146100595780634f1ef286146100785780635c60da1b1461008b578063f851a440146100b557610051565b366100515761004f6100c9565b005b61004f6100c9565b348015610064575f80fd5b5061004f6100733660046104f8565b6100e3565b61004f61008636600461056c565b610137565b348015610096575f80fd5b5061009f6101b6565b6040516100ac91906105d2565b60405180910390f35b3480156100c0575f80fd5b5061009f6101ff565b6100d1610255565b6100e16100dc6102a6565b6102d8565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361012f5761012c8160405180602001604052805f8152505f6102f6565b50565b61012c6100c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101ae576101a98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102f6915050565b505050565b6101a96100c9565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f4576101ef6102a6565b905090565b6101fc6100c9565b90565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f457507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e15760405162461bcd60e51b815260040161029d906105e0565b60405180910390fd5b5f6101ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f80375f80365f845af43d5f803e8080156102f2573d5ff35b3d5ffd5b6102ff83610320565b5f8251118061030b5750805b156101a95761031a838361035f565b50505050565b6103298161038d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103848383604051806060016040528060278152602001610774602791396103f5565b90505b92915050565b6001600160a01b0381163b6103b45760405162461bcd60e51b815260040161029d90610698565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61041e5760405162461bcd60e51b815260040161029d906106ea565b5f80856001600160a01b0316856040516104389190610726565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b5091509150610485828286610491565b925050505b9392505050565b606083156104a057508161048a565b8251156104b05782518084602001fd5b8160405162461bcd60e51b815260040161029d9190610762565b5f6001600160a01b038216610387565b6104e3816104ca565b811461012c575f80fd5b8035610387816104da565b5f6020828403121561050b5761050b5f80fd5b5f61051684846104ed565b949350505050565b5f8083601f840112610531576105315f80fd5b50813567ffffffffffffffff81111561054b5761054b5f80fd5b602083019150836001820283011115610565576105655f80fd5b9250929050565b5f805f60408486031215610581576105815f80fd5b5f61058c86866104ed565b935050602084013567ffffffffffffffff8111156105ab576105ab5f80fd5b6105b78682870161051e565b92509250509250925092565b6105cc816104ca565b82525050565b6020810161038782846105c3565b6020808252810161038781604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016103878161064c565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610691565b60208082528101610387816106a8565b8281835e505f910152565b5f61070e825190565b61071c8185602086016106fa565b9290920192915050565b5f61048a8284610705565b5f61073a825190565b8084526020840193506107518185602086016106fa565b601f01601f19169290920192915050565b60208082528101610384818461073156fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122070dadc04f09b7d1888a2301532e36ca47743df400bf011def63b2d9d260ee30e64736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE6B CODESIZE SUB DUP1 PUSH2 0xE6B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x414 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x48D JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE24 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6A JUMPI PUSH2 0x6A PUSH2 0x4A0 JUMP JUMPDEST PUSH2 0x75 DUP3 DUP3 PUSH0 PUSH2 0x11F JUMP JUMPDEST POP PUSH2 0xA3 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x48D JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xBE JUMPI PUSH2 0xBE PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 DUP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP1 PUSH2 0x10E SWAP1 PUSH0 SWAP1 DUP7 SWAP1 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x128 DUP4 PUSH2 0x14A JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x134 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x145 JUMPI PUSH2 0x143 DUP4 DUP4 PUSH2 0x189 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x153 DUP2 PUSH2 0x1B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1AE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE44 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x215 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x1E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DE SWAP1 PUSH2 0x52A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE24 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x23E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DE SWAP1 PUSH2 0x57C JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x258 SWAP2 SWAP1 PUSH2 0x5AD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x295 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2A6 DUP3 DUP3 DUP7 PUSH2 0x2B2 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2C1 JUMPI POP DUP2 PUSH2 0x2AB JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2D1 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x5E9 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x304 DUP2 PUSH2 0x2EB JUMP JUMPDEST DUP2 EQ PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B1 DUP2 PUSH2 0x2FB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x366 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x372 DUP3 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x38F JUMPI PUSH2 0x38F PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x3BD PUSH2 0x3B8 DUP5 PUSH2 0x377 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x3D7 JUMPI PUSH2 0x3D7 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x3E2 DUP5 DUP3 DUP6 PUSH2 0x3A0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3FC JUMPI PUSH2 0x3FC PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x40C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3AB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x429 JUMPI PUSH2 0x429 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x434 DUP7 DUP7 PUSH2 0x311 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x445 DUP7 DUP3 DUP8 ADD PUSH2 0x311 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x463 JUMPI PUSH2 0x463 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x46F DUP7 DUP3 DUP8 ADD PUSH2 0x3EA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1B1 JUMPI PUSH2 0x1B1 PUSH2 0x479 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x4BD DUP2 PUSH2 0x2EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4D1 DUP3 DUP6 PUSH2 0x4B4 JUMP JUMPDEST PUSH2 0x2AB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4B4 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B1 DUP2 PUSH2 0x4DE JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x523 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B1 DUP2 PUSH2 0x53A JUMP JUMPDEST PUSH0 PUSH2 0x595 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5A3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3A0 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2AB DUP3 DUP5 PUSH2 0x58C JUMP JUMPDEST PUSH0 PUSH2 0x5C1 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x5D8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1AE DUP2 DUP5 PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x7D0 PUSH2 0x634 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH1 0xE5 ADD MSTORE DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x1B9 ADD MSTORE DUP2 DUP2 PUSH2 0x202 ADD MSTORE DUP2 DUP2 PUSH2 0x233 ADD MSTORE PUSH2 0x257 ADD MSTORE PUSH2 0x7D0 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x42 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xB5 JUMPI PUSH2 0x51 JUMP JUMPDEST CALLDATASIZE PUSH2 0x51 JUMPI PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F PUSH2 0x73 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F8 JUMP JUMPDEST PUSH2 0xE3 JUMP JUMPDEST PUSH2 0x4F PUSH2 0x86 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x137 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1FF JUMP JUMPDEST PUSH2 0xD1 PUSH2 0x255 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0xDC PUSH2 0x2A6 JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x12F JUMPI PUSH2 0x12C DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2F6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x12C PUSH2 0xC9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1AE JUMPI PUSH2 0x1A9 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2F6 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0xC9 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI PUSH2 0x1EF PUSH2 0x2A6 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0xC9 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0xE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x5E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EF PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2F2 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH2 0x2FF DUP4 PUSH2 0x320 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x30B JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x31A DUP4 DUP4 PUSH2 0x35F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x329 DUP2 PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x384 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x774 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3F5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x698 JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x6EA JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x438 SWAP2 SWAP1 PUSH2 0x726 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x475 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x485 DUP3 DUP3 DUP7 PUSH2 0x491 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A0 JUMPI POP DUP2 PUSH2 0x48A JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x4B0 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x762 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x387 JUMP JUMPDEST PUSH2 0x4E3 DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP2 EQ PUSH2 0x12C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x387 DUP2 PUSH2 0x4DA JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50B JUMPI PUSH2 0x50B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x516 DUP5 DUP5 PUSH2 0x4ED JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x531 JUMPI PUSH2 0x531 PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x54B JUMPI PUSH2 0x54B PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x565 JUMPI PUSH2 0x565 PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x581 JUMPI PUSH2 0x581 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58C DUP7 DUP7 PUSH2 0x4ED JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH2 0x5AB PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5B7 DUP7 DUP3 DUP8 ADD PUSH2 0x51E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x5CC DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x387 DUP3 DUP5 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x6A8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x70E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x71C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x48A DUP3 DUP5 PUSH2 0x705 JUMP JUMPDEST PUSH0 PUSH2 0x73A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x751 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x384 DUP2 DUP5 PUSH2 0x731 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122070DADC DIV CREATE SWAP12 PUSH30 0x1888A2301532E36CA47743DF400BF011DEF63B2D9D260EE30E64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1653:3648:100:-:0;;;1976:499;;;;;;;;;;;;;;;;;;:::i;:::-;2091:6;2099:5;1050:54:91;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:91;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2146:45:100::1;::::0;-1:-1:-1;2190:1:100::1;2154:32;2146:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2123:69:100::1;2116:77;;;;:::i;:::-;-1:-1:-1::0;;;;;2203:15:100;::::1;;::::0;-1:-1:-1;;;;;;;;;;;2392:20:100;;;2436:32:::1;::::0;::::1;::::0;::::1;::::0;2277:12:::1;::::0;2212:6;;2436:32:::1;:::i;:::-;;;;;;;;2106:369;1976:499:::0;;;1653:3648;;2188:295:92;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:92;;;;;;;;1902:152;:::o;6575:198:97:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:92:-;-1:-1:-1;;;;;1470:19:97;;;1610:95:92;;;;-1:-1:-1;;;1610:95:92;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:92;;-1:-1:-1;;;;;;1715:74:92;-1:-1:-1;;;;;1715:74:92;;;;;;;;;;1537:259::o;6959:387:97:-;7100:12;-1:-1:-1;;;;;1470:19:97;;;7124:69;;;;-1:-1:-1;;;7124:69:97;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:97;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:97;;-1:-1:-1;7204:67:97;-1:-1:-1;7288:51:97;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:97;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:97;;;;;;;;:::i;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:101;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:101;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:101;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:101:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:101;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:101;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:101:o;2120:139::-;2209:6;2204:3;2199;2193:23;-1:-1:-1;2250:1:101;2232:16;;2225:27;2120:139::o;2265:432::-;2353:5;2378:65;2394:48;2435:6;2394:48;:::i;:::-;2378:65;:::i;:::-;2369:74;;2466:6;2459:5;2452:21;2504:4;2497:5;2493:16;2542:3;2533:6;2528:3;2524:16;2521:25;2518:112;;;2549:79;197:1;194;187:12;2549:79;2639:52;2684:6;2679:3;2674;2639:52;:::i;:::-;2359:338;2265:432;;;;;:::o;2716:353::-;2782:5;2831:3;2824:4;2816:6;2812:17;2808:27;2798:122;;2839:79;197:1;194;187:12;2839:79;2949:6;2943:13;2974:89;3059:3;3051:6;3044:4;3036:6;3032:17;2974:89;:::i;:::-;2965:98;2716:353;-1:-1:-1;;;;2716:353:101:o;3075:834::-;3172:6;3180;3188;3237:2;3225:9;3216:7;3212:23;3208:32;3205:119;;;3243:79;197:1;194;187:12;3243:79;3363:1;3388:64;3444:7;3424:9;3388:64;:::i;:::-;3378:74;;3334:128;3501:2;3527:64;3583:7;3574:6;3563:9;3559:22;3527:64;:::i;:::-;3517:74;;3472:129;3661:2;3650:9;3646:18;3640:25;-1:-1:-1;;;;;3684:6:101;3681:30;3678:117;;;3714:79;197:1;194;187:12;3714:79;3819:73;3884:7;3875:6;3864:9;3860:22;3819:73;:::i;:::-;3809:83;;3611:291;3075:834;;;;;:::o;3998:180::-;-1:-1:-1;;;4043:1:101;4036:88;4143:4;4140:1;4133:15;4167:4;4164:1;4157:15;4184:194;4315:9;;;4337:11;;;4334:37;;;4351:18;;:::i;4384:180::-;-1:-1:-1;;;4429:1:101;4422:88;4529:4;4526:1;4519:15;4553:4;4550:1;4543:15;4570:118;4657:24;4675:5;4657:24;:::i;:::-;4652:3;4645:37;4570:118;;:::o;4694:332::-;4853:2;4838:18;;4866:71;4842:9;4910:6;4866:71;:::i;:::-;4947:72;5015:2;5004:9;5000:18;4991:6;4947:72;:::i;5445:366::-;5672:2;5138:19;;5587:3;5190:4;5181:14;;5347:34;5324:58;;-1:-1:-1;;;5411:2:101;5399:15;;5392:40;5601:74;-1:-1:-1;5684:93:101;-1:-1:-1;5802:2:101;5793:12;;5445:366::o;5817:419::-;6021:2;6034:47;;;6006:18;;6098:131;6006:18;6098:131;:::i;6473:366::-;6700:2;5138:19;;6615:3;5190:4;5181:14;;6382:34;6359:58;;-1:-1:-1;;;6446:2:101;6434:15;;6427:33;6629:74;-1:-1:-1;6712:93:101;6242:225;6845:419;7049:2;7062:47;;;7034:18;;7126:131;7034:18;7126:131;:::i;7527:386::-;7631:3;7659:38;7691:5;7349:12;;7270:98;7659:38;7810:65;7868:6;7863:3;7856:4;7849:5;7845:16;7810:65;:::i;:::-;7891:16;;;;;7527:386;-1:-1:-1;;7527:386:101:o;7919:271::-;8049:3;8071:93;8160:3;8151:6;8071:93;:::i;8301:377::-;8389:3;8417:39;8450:5;7349:12;;7270:98;8417:39;5138:19;;;5190:4;5181:14;;8465:78;;8552:65;8610:6;8605:3;8598:4;8591:5;8587:16;8552:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:101;8633:39;;;;;;-1:-1:-1;;8301:377:101:o;8684:313::-;8835:2;8848:47;;;8820:18;;8912:78;8820:18;8976:6;8912:78;:::i;8684:313::-;1653:3648:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_9397":{"entryPoint":null,"id":9397,"parameterSlots":0,"returnSlots":0},"@_9405":{"entryPoint":null,"id":9405,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_10272":{"entryPoint":597,"id":10272,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_9410":{"entryPoint":null,"id":9410,"parameterSlots":0,"returnSlots":0},"@_delegate_9370":{"entryPoint":728,"id":9370,"parameterSlots":1,"returnSlots":0},"@_fallback_9389":{"entryPoint":201,"id":9389,"parameterSlots":0,"returnSlots":0},"@_getAdmin_10281":{"entryPoint":null,"id":10281,"parameterSlots":0,"returnSlots":1},"@_getImplementation_9073":{"entryPoint":null,"id":9073,"parameterSlots":0,"returnSlots":1},"@_implementation_9040":{"entryPoint":678,"id":9040,"parameterSlots":0,"returnSlots":1},"@_setImplementation_9097":{"entryPoint":909,"id":9097,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9142":{"entryPoint":758,"id":9142,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9112":{"entryPoint":800,"id":9112,"parameterSlots":1,"returnSlots":0},"@admin_10193":{"entryPoint":511,"id":10193,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_9958":{"entryPoint":863,"id":9958,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_9993":{"entryPoint":1013,"id":9993,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10073":{"entryPoint":null,"id":10073,"parameterSlots":1,"returnSlots":1},"@implementation_10207":{"entryPoint":438,"id":10207,"parameterSlots":0,"returnSlots":1},"@isContract_9748":{"entryPoint":null,"id":9748,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_10242":{"entryPoint":311,"id":10242,"parameterSlots":3,"returnSlots":0},"@upgradeTo_10225":{"entryPoint":227,"id":10225,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_10024":{"entryPoint":1169,"id":10024,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1261,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1310,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":1272,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1388,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1475,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1797,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1841,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1612,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1704,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1830,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1490,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1688,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1770,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1504,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1226,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1786,"id":null,"parameterSlots":3,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1242,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8460:101","nodeType":"YulBlock","src":"0:8460:101","statements":[{"body":{"nativeSrc":"47:35:101","nodeType":"YulBlock","src":"47:35:101","statements":[{"nativeSrc":"57:19:101","nodeType":"YulAssignment","src":"57:19:101","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:101","nodeType":"YulLiteral","src":"73:2:101","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:101","nodeType":"YulIdentifier","src":"67:5:101"},"nativeSrc":"67:9:101","nodeType":"YulFunctionCall","src":"67:9:101"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:101","nodeType":"YulIdentifier","src":"57:6:101"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:101","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:101","nodeType":"YulTypedName","src":"40:6:101","type":""}],"src":"7:75:101"},{"body":{"nativeSrc":"177:28:101","nodeType":"YulBlock","src":"177:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:101","nodeType":"YulLiteral","src":"194:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:101","nodeType":"YulLiteral","src":"197:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:101","nodeType":"YulIdentifier","src":"187:6:101"},"nativeSrc":"187:12:101","nodeType":"YulFunctionCall","src":"187:12:101"},"nativeSrc":"187:12:101","nodeType":"YulExpressionStatement","src":"187:12:101"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:101","nodeType":"YulFunctionDefinition","src":"88:117:101"},{"body":{"nativeSrc":"300:28:101","nodeType":"YulBlock","src":"300:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:101","nodeType":"YulLiteral","src":"317:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:101","nodeType":"YulLiteral","src":"320:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:101","nodeType":"YulIdentifier","src":"310:6:101"},"nativeSrc":"310:12:101","nodeType":"YulFunctionCall","src":"310:12:101"},"nativeSrc":"310:12:101","nodeType":"YulExpressionStatement","src":"310:12:101"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:101","nodeType":"YulFunctionDefinition","src":"211:117:101"},{"body":{"nativeSrc":"379:81:101","nodeType":"YulBlock","src":"379:81:101","statements":[{"nativeSrc":"389:65:101","nodeType":"YulAssignment","src":"389:65:101","value":{"arguments":[{"name":"value","nativeSrc":"404:5:101","nodeType":"YulIdentifier","src":"404:5:101"},{"kind":"number","nativeSrc":"411:42:101","nodeType":"YulLiteral","src":"411:42:101","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:101","nodeType":"YulIdentifier","src":"400:3:101"},"nativeSrc":"400:54:101","nodeType":"YulFunctionCall","src":"400:54:101"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:101","nodeType":"YulIdentifier","src":"389:7:101"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:101","nodeType":"YulTypedName","src":"361:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:101","nodeType":"YulTypedName","src":"371:7:101","type":""}],"src":"334:126:101"},{"body":{"nativeSrc":"511:51:101","nodeType":"YulBlock","src":"511:51:101","statements":[{"nativeSrc":"521:35:101","nodeType":"YulAssignment","src":"521:35:101","value":{"arguments":[{"name":"value","nativeSrc":"550:5:101","nodeType":"YulIdentifier","src":"550:5:101"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:101","nodeType":"YulIdentifier","src":"532:17:101"},"nativeSrc":"532:24:101","nodeType":"YulFunctionCall","src":"532:24:101"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:101","nodeType":"YulIdentifier","src":"521:7:101"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:101","nodeType":"YulTypedName","src":"493:5:101","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:101","nodeType":"YulTypedName","src":"503:7:101","type":""}],"src":"466:96:101"},{"body":{"nativeSrc":"611:79:101","nodeType":"YulBlock","src":"611:79:101","statements":[{"body":{"nativeSrc":"668:16:101","nodeType":"YulBlock","src":"668:16:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:101","nodeType":"YulLiteral","src":"677:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:101","nodeType":"YulLiteral","src":"680:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:101","nodeType":"YulIdentifier","src":"670:6:101"},"nativeSrc":"670:12:101","nodeType":"YulFunctionCall","src":"670:12:101"},"nativeSrc":"670:12:101","nodeType":"YulExpressionStatement","src":"670:12:101"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:101","nodeType":"YulIdentifier","src":"634:5:101"},{"arguments":[{"name":"value","nativeSrc":"659:5:101","nodeType":"YulIdentifier","src":"659:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:101","nodeType":"YulIdentifier","src":"641:17:101"},"nativeSrc":"641:24:101","nodeType":"YulFunctionCall","src":"641:24:101"}],"functionName":{"name":"eq","nativeSrc":"631:2:101","nodeType":"YulIdentifier","src":"631:2:101"},"nativeSrc":"631:35:101","nodeType":"YulFunctionCall","src":"631:35:101"}],"functionName":{"name":"iszero","nativeSrc":"624:6:101","nodeType":"YulIdentifier","src":"624:6:101"},"nativeSrc":"624:43:101","nodeType":"YulFunctionCall","src":"624:43:101"},"nativeSrc":"621:63:101","nodeType":"YulIf","src":"621:63:101"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:101","nodeType":"YulTypedName","src":"604:5:101","type":""}],"src":"568:122:101"},{"body":{"nativeSrc":"748:87:101","nodeType":"YulBlock","src":"748:87:101","statements":[{"nativeSrc":"758:29:101","nodeType":"YulAssignment","src":"758:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:101","nodeType":"YulIdentifier","src":"780:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:101","nodeType":"YulIdentifier","src":"767:12:101"},"nativeSrc":"767:20:101","nodeType":"YulFunctionCall","src":"767:20:101"},"variableNames":[{"name":"value","nativeSrc":"758:5:101","nodeType":"YulIdentifier","src":"758:5:101"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:101","nodeType":"YulIdentifier","src":"823:5:101"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:101","nodeType":"YulIdentifier","src":"796:26:101"},"nativeSrc":"796:33:101","nodeType":"YulFunctionCall","src":"796:33:101"},"nativeSrc":"796:33:101","nodeType":"YulExpressionStatement","src":"796:33:101"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:101","nodeType":"YulTypedName","src":"726:6:101","type":""},{"name":"end","nativeSrc":"734:3:101","nodeType":"YulTypedName","src":"734:3:101","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:101","nodeType":"YulTypedName","src":"742:5:101","type":""}],"src":"696:139:101"},{"body":{"nativeSrc":"907:263:101","nodeType":"YulBlock","src":"907:263:101","statements":[{"body":{"nativeSrc":"953:83:101","nodeType":"YulBlock","src":"953:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:101","nodeType":"YulIdentifier","src":"955:77:101"},"nativeSrc":"955:79:101","nodeType":"YulFunctionCall","src":"955:79:101"},"nativeSrc":"955:79:101","nodeType":"YulExpressionStatement","src":"955:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:101","nodeType":"YulIdentifier","src":"928:7:101"},{"name":"headStart","nativeSrc":"937:9:101","nodeType":"YulIdentifier","src":"937:9:101"}],"functionName":{"name":"sub","nativeSrc":"924:3:101","nodeType":"YulIdentifier","src":"924:3:101"},"nativeSrc":"924:23:101","nodeType":"YulFunctionCall","src":"924:23:101"},{"kind":"number","nativeSrc":"949:2:101","nodeType":"YulLiteral","src":"949:2:101","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:101","nodeType":"YulIdentifier","src":"920:3:101"},"nativeSrc":"920:32:101","nodeType":"YulFunctionCall","src":"920:32:101"},"nativeSrc":"917:119:101","nodeType":"YulIf","src":"917:119:101"},{"nativeSrc":"1046:117:101","nodeType":"YulBlock","src":"1046:117:101","statements":[{"nativeSrc":"1061:15:101","nodeType":"YulVariableDeclaration","src":"1061:15:101","value":{"kind":"number","nativeSrc":"1075:1:101","nodeType":"YulLiteral","src":"1075:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:101","nodeType":"YulTypedName","src":"1065:6:101","type":""}]},{"nativeSrc":"1090:63:101","nodeType":"YulAssignment","src":"1090:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:101","nodeType":"YulIdentifier","src":"1125:9:101"},{"name":"offset","nativeSrc":"1136:6:101","nodeType":"YulIdentifier","src":"1136:6:101"}],"functionName":{"name":"add","nativeSrc":"1121:3:101","nodeType":"YulIdentifier","src":"1121:3:101"},"nativeSrc":"1121:22:101","nodeType":"YulFunctionCall","src":"1121:22:101"},{"name":"dataEnd","nativeSrc":"1145:7:101","nodeType":"YulIdentifier","src":"1145:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:101","nodeType":"YulIdentifier","src":"1100:20:101"},"nativeSrc":"1100:53:101","nodeType":"YulFunctionCall","src":"1100:53:101"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:101","nodeType":"YulIdentifier","src":"1090:6:101"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:101","nodeType":"YulTypedName","src":"877:9:101","type":""},{"name":"dataEnd","nativeSrc":"888:7:101","nodeType":"YulTypedName","src":"888:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:101","nodeType":"YulTypedName","src":"900:6:101","type":""}],"src":"841:329:101"},{"body":{"nativeSrc":"1265:28:101","nodeType":"YulBlock","src":"1265:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1282:1:101","nodeType":"YulLiteral","src":"1282:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1285:1:101","nodeType":"YulLiteral","src":"1285:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1275:6:101","nodeType":"YulIdentifier","src":"1275:6:101"},"nativeSrc":"1275:12:101","nodeType":"YulFunctionCall","src":"1275:12:101"},"nativeSrc":"1275:12:101","nodeType":"YulExpressionStatement","src":"1275:12:101"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1176:117:101","nodeType":"YulFunctionDefinition","src":"1176:117:101"},{"body":{"nativeSrc":"1388:28:101","nodeType":"YulBlock","src":"1388:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1405:1:101","nodeType":"YulLiteral","src":"1405:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1408:1:101","nodeType":"YulLiteral","src":"1408:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1398:6:101","nodeType":"YulIdentifier","src":"1398:6:101"},"nativeSrc":"1398:12:101","nodeType":"YulFunctionCall","src":"1398:12:101"},"nativeSrc":"1398:12:101","nodeType":"YulExpressionStatement","src":"1398:12:101"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1299:117:101","nodeType":"YulFunctionDefinition","src":"1299:117:101"},{"body":{"nativeSrc":"1511:28:101","nodeType":"YulBlock","src":"1511:28:101","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1528:1:101","nodeType":"YulLiteral","src":"1528:1:101","type":"","value":"0"},{"kind":"number","nativeSrc":"1531:1:101","nodeType":"YulLiteral","src":"1531:1:101","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1521:6:101","nodeType":"YulIdentifier","src":"1521:6:101"},"nativeSrc":"1521:12:101","nodeType":"YulFunctionCall","src":"1521:12:101"},"nativeSrc":"1521:12:101","nodeType":"YulExpressionStatement","src":"1521:12:101"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1422:117:101","nodeType":"YulFunctionDefinition","src":"1422:117:101"},{"body":{"nativeSrc":"1632:478:101","nodeType":"YulBlock","src":"1632:478:101","statements":[{"body":{"nativeSrc":"1681:83:101","nodeType":"YulBlock","src":"1681:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1683:77:101","nodeType":"YulIdentifier","src":"1683:77:101"},"nativeSrc":"1683:79:101","nodeType":"YulFunctionCall","src":"1683:79:101"},"nativeSrc":"1683:79:101","nodeType":"YulExpressionStatement","src":"1683:79:101"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1660:6:101","nodeType":"YulIdentifier","src":"1660:6:101"},{"kind":"number","nativeSrc":"1668:4:101","nodeType":"YulLiteral","src":"1668:4:101","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1656:3:101","nodeType":"YulIdentifier","src":"1656:3:101"},"nativeSrc":"1656:17:101","nodeType":"YulFunctionCall","src":"1656:17:101"},{"name":"end","nativeSrc":"1675:3:101","nodeType":"YulIdentifier","src":"1675:3:101"}],"functionName":{"name":"slt","nativeSrc":"1652:3:101","nodeType":"YulIdentifier","src":"1652:3:101"},"nativeSrc":"1652:27:101","nodeType":"YulFunctionCall","src":"1652:27:101"}],"functionName":{"name":"iszero","nativeSrc":"1645:6:101","nodeType":"YulIdentifier","src":"1645:6:101"},"nativeSrc":"1645:35:101","nodeType":"YulFunctionCall","src":"1645:35:101"},"nativeSrc":"1642:122:101","nodeType":"YulIf","src":"1642:122:101"},{"nativeSrc":"1773:30:101","nodeType":"YulAssignment","src":"1773:30:101","value":{"arguments":[{"name":"offset","nativeSrc":"1796:6:101","nodeType":"YulIdentifier","src":"1796:6:101"}],"functionName":{"name":"calldataload","nativeSrc":"1783:12:101","nodeType":"YulIdentifier","src":"1783:12:101"},"nativeSrc":"1783:20:101","nodeType":"YulFunctionCall","src":"1783:20:101"},"variableNames":[{"name":"length","nativeSrc":"1773:6:101","nodeType":"YulIdentifier","src":"1773:6:101"}]},{"body":{"nativeSrc":"1846:83:101","nodeType":"YulBlock","src":"1846:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1848:77:101","nodeType":"YulIdentifier","src":"1848:77:101"},"nativeSrc":"1848:79:101","nodeType":"YulFunctionCall","src":"1848:79:101"},"nativeSrc":"1848:79:101","nodeType":"YulExpressionStatement","src":"1848:79:101"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1818:6:101","nodeType":"YulIdentifier","src":"1818:6:101"},{"kind":"number","nativeSrc":"1826:18:101","nodeType":"YulLiteral","src":"1826:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1815:2:101","nodeType":"YulIdentifier","src":"1815:2:101"},"nativeSrc":"1815:30:101","nodeType":"YulFunctionCall","src":"1815:30:101"},"nativeSrc":"1812:117:101","nodeType":"YulIf","src":"1812:117:101"},{"nativeSrc":"1938:29:101","nodeType":"YulAssignment","src":"1938:29:101","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:101","nodeType":"YulIdentifier","src":"1954:6:101"},{"kind":"number","nativeSrc":"1962:4:101","nodeType":"YulLiteral","src":"1962:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1950:3:101","nodeType":"YulIdentifier","src":"1950:3:101"},"nativeSrc":"1950:17:101","nodeType":"YulFunctionCall","src":"1950:17:101"},"variableNames":[{"name":"arrayPos","nativeSrc":"1938:8:101","nodeType":"YulIdentifier","src":"1938:8:101"}]},{"body":{"nativeSrc":"2021:83:101","nodeType":"YulBlock","src":"2021:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2023:77:101","nodeType":"YulIdentifier","src":"2023:77:101"},"nativeSrc":"2023:79:101","nodeType":"YulFunctionCall","src":"2023:79:101"},"nativeSrc":"2023:79:101","nodeType":"YulExpressionStatement","src":"2023:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1986:8:101","nodeType":"YulIdentifier","src":"1986:8:101"},{"arguments":[{"name":"length","nativeSrc":"2000:6:101","nodeType":"YulIdentifier","src":"2000:6:101"},{"kind":"number","nativeSrc":"2008:4:101","nodeType":"YulLiteral","src":"2008:4:101","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1996:3:101","nodeType":"YulIdentifier","src":"1996:3:101"},"nativeSrc":"1996:17:101","nodeType":"YulFunctionCall","src":"1996:17:101"}],"functionName":{"name":"add","nativeSrc":"1982:3:101","nodeType":"YulIdentifier","src":"1982:3:101"},"nativeSrc":"1982:32:101","nodeType":"YulFunctionCall","src":"1982:32:101"},{"name":"end","nativeSrc":"2016:3:101","nodeType":"YulIdentifier","src":"2016:3:101"}],"functionName":{"name":"gt","nativeSrc":"1979:2:101","nodeType":"YulIdentifier","src":"1979:2:101"},"nativeSrc":"1979:41:101","nodeType":"YulFunctionCall","src":"1979:41:101"},"nativeSrc":"1976:128:101","nodeType":"YulIf","src":"1976:128:101"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1558:552:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1599:6:101","nodeType":"YulTypedName","src":"1599:6:101","type":""},{"name":"end","nativeSrc":"1607:3:101","nodeType":"YulTypedName","src":"1607:3:101","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1615:8:101","nodeType":"YulTypedName","src":"1615:8:101","type":""},{"name":"length","nativeSrc":"1625:6:101","nodeType":"YulTypedName","src":"1625:6:101","type":""}],"src":"1558:552:101"},{"body":{"nativeSrc":"2218:570:101","nodeType":"YulBlock","src":"2218:570:101","statements":[{"body":{"nativeSrc":"2264:83:101","nodeType":"YulBlock","src":"2264:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2266:77:101","nodeType":"YulIdentifier","src":"2266:77:101"},"nativeSrc":"2266:79:101","nodeType":"YulFunctionCall","src":"2266:79:101"},"nativeSrc":"2266:79:101","nodeType":"YulExpressionStatement","src":"2266:79:101"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2239:7:101","nodeType":"YulIdentifier","src":"2239:7:101"},{"name":"headStart","nativeSrc":"2248:9:101","nodeType":"YulIdentifier","src":"2248:9:101"}],"functionName":{"name":"sub","nativeSrc":"2235:3:101","nodeType":"YulIdentifier","src":"2235:3:101"},"nativeSrc":"2235:23:101","nodeType":"YulFunctionCall","src":"2235:23:101"},{"kind":"number","nativeSrc":"2260:2:101","nodeType":"YulLiteral","src":"2260:2:101","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2231:3:101","nodeType":"YulIdentifier","src":"2231:3:101"},"nativeSrc":"2231:32:101","nodeType":"YulFunctionCall","src":"2231:32:101"},"nativeSrc":"2228:119:101","nodeType":"YulIf","src":"2228:119:101"},{"nativeSrc":"2357:117:101","nodeType":"YulBlock","src":"2357:117:101","statements":[{"nativeSrc":"2372:15:101","nodeType":"YulVariableDeclaration","src":"2372:15:101","value":{"kind":"number","nativeSrc":"2386:1:101","nodeType":"YulLiteral","src":"2386:1:101","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2376:6:101","nodeType":"YulTypedName","src":"2376:6:101","type":""}]},{"nativeSrc":"2401:63:101","nodeType":"YulAssignment","src":"2401:63:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2436:9:101","nodeType":"YulIdentifier","src":"2436:9:101"},{"name":"offset","nativeSrc":"2447:6:101","nodeType":"YulIdentifier","src":"2447:6:101"}],"functionName":{"name":"add","nativeSrc":"2432:3:101","nodeType":"YulIdentifier","src":"2432:3:101"},"nativeSrc":"2432:22:101","nodeType":"YulFunctionCall","src":"2432:22:101"},{"name":"dataEnd","nativeSrc":"2456:7:101","nodeType":"YulIdentifier","src":"2456:7:101"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2411:20:101","nodeType":"YulIdentifier","src":"2411:20:101"},"nativeSrc":"2411:53:101","nodeType":"YulFunctionCall","src":"2411:53:101"},"variableNames":[{"name":"value0","nativeSrc":"2401:6:101","nodeType":"YulIdentifier","src":"2401:6:101"}]}]},{"nativeSrc":"2484:297:101","nodeType":"YulBlock","src":"2484:297:101","statements":[{"nativeSrc":"2499:46:101","nodeType":"YulVariableDeclaration","src":"2499:46:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2530:9:101","nodeType":"YulIdentifier","src":"2530:9:101"},{"kind":"number","nativeSrc":"2541:2:101","nodeType":"YulLiteral","src":"2541:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2526:3:101","nodeType":"YulIdentifier","src":"2526:3:101"},"nativeSrc":"2526:18:101","nodeType":"YulFunctionCall","src":"2526:18:101"}],"functionName":{"name":"calldataload","nativeSrc":"2513:12:101","nodeType":"YulIdentifier","src":"2513:12:101"},"nativeSrc":"2513:32:101","nodeType":"YulFunctionCall","src":"2513:32:101"},"variables":[{"name":"offset","nativeSrc":"2503:6:101","nodeType":"YulTypedName","src":"2503:6:101","type":""}]},{"body":{"nativeSrc":"2592:83:101","nodeType":"YulBlock","src":"2592:83:101","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2594:77:101","nodeType":"YulIdentifier","src":"2594:77:101"},"nativeSrc":"2594:79:101","nodeType":"YulFunctionCall","src":"2594:79:101"},"nativeSrc":"2594:79:101","nodeType":"YulExpressionStatement","src":"2594:79:101"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2564:6:101","nodeType":"YulIdentifier","src":"2564:6:101"},{"kind":"number","nativeSrc":"2572:18:101","nodeType":"YulLiteral","src":"2572:18:101","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2561:2:101","nodeType":"YulIdentifier","src":"2561:2:101"},"nativeSrc":"2561:30:101","nodeType":"YulFunctionCall","src":"2561:30:101"},"nativeSrc":"2558:117:101","nodeType":"YulIf","src":"2558:117:101"},{"nativeSrc":"2689:82:101","nodeType":"YulAssignment","src":"2689:82:101","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2743:9:101","nodeType":"YulIdentifier","src":"2743:9:101"},{"name":"offset","nativeSrc":"2754:6:101","nodeType":"YulIdentifier","src":"2754:6:101"}],"functionName":{"name":"add","nativeSrc":"2739:3:101","nodeType":"YulIdentifier","src":"2739:3:101"},"nativeSrc":"2739:22:101","nodeType":"YulFunctionCall","src":"2739:22:101"},{"name":"dataEnd","nativeSrc":"2763:7:101","nodeType":"YulIdentifier","src":"2763:7:101"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2707:31:101","nodeType":"YulIdentifier","src":"2707:31:101"},"nativeSrc":"2707:64:101","nodeType":"YulFunctionCall","src":"2707:64:101"},"variableNames":[{"name":"value1","nativeSrc":"2689:6:101","nodeType":"YulIdentifier","src":"2689:6:101"},{"name":"value2","nativeSrc":"2697:6:101","nodeType":"YulIdentifier","src":"2697:6:101"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"2116:672:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2172:9:101","nodeType":"YulTypedName","src":"2172:9:101","type":""},{"name":"dataEnd","nativeSrc":"2183:7:101","nodeType":"YulTypedName","src":"2183:7:101","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2195:6:101","nodeType":"YulTypedName","src":"2195:6:101","type":""},{"name":"value1","nativeSrc":"2203:6:101","nodeType":"YulTypedName","src":"2203:6:101","type":""},{"name":"value2","nativeSrc":"2211:6:101","nodeType":"YulTypedName","src":"2211:6:101","type":""}],"src":"2116:672:101"},{"body":{"nativeSrc":"2859:53:101","nodeType":"YulBlock","src":"2859:53:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2876:3:101","nodeType":"YulIdentifier","src":"2876:3:101"},{"arguments":[{"name":"value","nativeSrc":"2899:5:101","nodeType":"YulIdentifier","src":"2899:5:101"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2881:17:101","nodeType":"YulIdentifier","src":"2881:17:101"},"nativeSrc":"2881:24:101","nodeType":"YulFunctionCall","src":"2881:24:101"}],"functionName":{"name":"mstore","nativeSrc":"2869:6:101","nodeType":"YulIdentifier","src":"2869:6:101"},"nativeSrc":"2869:37:101","nodeType":"YulFunctionCall","src":"2869:37:101"},"nativeSrc":"2869:37:101","nodeType":"YulExpressionStatement","src":"2869:37:101"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2794:118:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2847:5:101","nodeType":"YulTypedName","src":"2847:5:101","type":""},{"name":"pos","nativeSrc":"2854:3:101","nodeType":"YulTypedName","src":"2854:3:101","type":""}],"src":"2794:118:101"},{"body":{"nativeSrc":"3016:124:101","nodeType":"YulBlock","src":"3016:124:101","statements":[{"nativeSrc":"3026:26:101","nodeType":"YulAssignment","src":"3026:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"3038:9:101","nodeType":"YulIdentifier","src":"3038:9:101"},{"kind":"number","nativeSrc":"3049:2:101","nodeType":"YulLiteral","src":"3049:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3034:3:101","nodeType":"YulIdentifier","src":"3034:3:101"},"nativeSrc":"3034:18:101","nodeType":"YulFunctionCall","src":"3034:18:101"},"variableNames":[{"name":"tail","nativeSrc":"3026:4:101","nodeType":"YulIdentifier","src":"3026:4:101"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3106:6:101","nodeType":"YulIdentifier","src":"3106:6:101"},{"arguments":[{"name":"headStart","nativeSrc":"3119:9:101","nodeType":"YulIdentifier","src":"3119:9:101"},{"kind":"number","nativeSrc":"3130:1:101","nodeType":"YulLiteral","src":"3130:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3115:3:101","nodeType":"YulIdentifier","src":"3115:3:101"},"nativeSrc":"3115:17:101","nodeType":"YulFunctionCall","src":"3115:17:101"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3062:43:101","nodeType":"YulIdentifier","src":"3062:43:101"},"nativeSrc":"3062:71:101","nodeType":"YulFunctionCall","src":"3062:71:101"},"nativeSrc":"3062:71:101","nodeType":"YulExpressionStatement","src":"3062:71:101"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2918:222:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2988:9:101","nodeType":"YulTypedName","src":"2988:9:101","type":""},{"name":"value0","nativeSrc":"3000:6:101","nodeType":"YulTypedName","src":"3000:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3011:4:101","nodeType":"YulTypedName","src":"3011:4:101","type":""}],"src":"2918:222:101"},{"body":{"nativeSrc":"3242:73:101","nodeType":"YulBlock","src":"3242:73:101","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3259:3:101","nodeType":"YulIdentifier","src":"3259:3:101"},{"name":"length","nativeSrc":"3264:6:101","nodeType":"YulIdentifier","src":"3264:6:101"}],"functionName":{"name":"mstore","nativeSrc":"3252:6:101","nodeType":"YulIdentifier","src":"3252:6:101"},"nativeSrc":"3252:19:101","nodeType":"YulFunctionCall","src":"3252:19:101"},"nativeSrc":"3252:19:101","nodeType":"YulExpressionStatement","src":"3252:19:101"},{"nativeSrc":"3280:29:101","nodeType":"YulAssignment","src":"3280:29:101","value":{"arguments":[{"name":"pos","nativeSrc":"3299:3:101","nodeType":"YulIdentifier","src":"3299:3:101"},{"kind":"number","nativeSrc":"3304:4:101","nodeType":"YulLiteral","src":"3304:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3295:3:101","nodeType":"YulIdentifier","src":"3295:3:101"},"nativeSrc":"3295:14:101","nodeType":"YulFunctionCall","src":"3295:14:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"3280:11:101","nodeType":"YulIdentifier","src":"3280:11:101"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3146:169:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3214:3:101","nodeType":"YulTypedName","src":"3214:3:101","type":""},{"name":"length","nativeSrc":"3219:6:101","nodeType":"YulTypedName","src":"3219:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3230:11:101","nodeType":"YulTypedName","src":"3230:11:101","type":""}],"src":"3146:169:101"},{"body":{"nativeSrc":"3427:184:101","nodeType":"YulBlock","src":"3427:184:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3449:6:101","nodeType":"YulIdentifier","src":"3449:6:101"},{"kind":"number","nativeSrc":"3457:1:101","nodeType":"YulLiteral","src":"3457:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3445:3:101","nodeType":"YulIdentifier","src":"3445:3:101"},"nativeSrc":"3445:14:101","nodeType":"YulFunctionCall","src":"3445:14:101"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"3461:34:101","nodeType":"YulLiteral","src":"3461:34:101","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"3438:6:101","nodeType":"YulIdentifier","src":"3438:6:101"},"nativeSrc":"3438:58:101","nodeType":"YulFunctionCall","src":"3438:58:101"},"nativeSrc":"3438:58:101","nodeType":"YulExpressionStatement","src":"3438:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3517:6:101","nodeType":"YulIdentifier","src":"3517:6:101"},{"kind":"number","nativeSrc":"3525:2:101","nodeType":"YulLiteral","src":"3525:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3513:3:101","nodeType":"YulIdentifier","src":"3513:3:101"},"nativeSrc":"3513:15:101","nodeType":"YulFunctionCall","src":"3513:15:101"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"3530:34:101","nodeType":"YulLiteral","src":"3530:34:101","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:101","nodeType":"YulIdentifier","src":"3506:6:101"},"nativeSrc":"3506:59:101","nodeType":"YulFunctionCall","src":"3506:59:101"},"nativeSrc":"3506:59:101","nodeType":"YulExpressionStatement","src":"3506:59:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3586:6:101","nodeType":"YulIdentifier","src":"3586:6:101"},{"kind":"number","nativeSrc":"3594:2:101","nodeType":"YulLiteral","src":"3594:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3582:3:101","nodeType":"YulIdentifier","src":"3582:3:101"},"nativeSrc":"3582:15:101","nodeType":"YulFunctionCall","src":"3582:15:101"},{"hexValue":"6574","kind":"string","nativeSrc":"3599:4:101","nodeType":"YulLiteral","src":"3599:4:101","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"3575:6:101","nodeType":"YulIdentifier","src":"3575:6:101"},"nativeSrc":"3575:29:101","nodeType":"YulFunctionCall","src":"3575:29:101"},"nativeSrc":"3575:29:101","nodeType":"YulExpressionStatement","src":"3575:29:101"}]},"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3321:290:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3419:6:101","nodeType":"YulTypedName","src":"3419:6:101","type":""}],"src":"3321:290:101"},{"body":{"nativeSrc":"3763:220:101","nodeType":"YulBlock","src":"3763:220:101","statements":[{"nativeSrc":"3773:74:101","nodeType":"YulAssignment","src":"3773:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"3839:3:101","nodeType":"YulIdentifier","src":"3839:3:101"},{"kind":"number","nativeSrc":"3844:2:101","nodeType":"YulLiteral","src":"3844:2:101","type":"","value":"66"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3780:58:101","nodeType":"YulIdentifier","src":"3780:58:101"},"nativeSrc":"3780:67:101","nodeType":"YulFunctionCall","src":"3780:67:101"},"variableNames":[{"name":"pos","nativeSrc":"3773:3:101","nodeType":"YulIdentifier","src":"3773:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3945:3:101","nodeType":"YulIdentifier","src":"3945:3:101"}],"functionName":{"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3856:88:101","nodeType":"YulIdentifier","src":"3856:88:101"},"nativeSrc":"3856:93:101","nodeType":"YulFunctionCall","src":"3856:93:101"},"nativeSrc":"3856:93:101","nodeType":"YulExpressionStatement","src":"3856:93:101"},{"nativeSrc":"3958:19:101","nodeType":"YulAssignment","src":"3958:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"3969:3:101","nodeType":"YulIdentifier","src":"3969:3:101"},{"kind":"number","nativeSrc":"3974:2:101","nodeType":"YulLiteral","src":"3974:2:101","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3965:3:101","nodeType":"YulIdentifier","src":"3965:3:101"},"nativeSrc":"3965:12:101","nodeType":"YulFunctionCall","src":"3965:12:101"},"variableNames":[{"name":"end","nativeSrc":"3958:3:101","nodeType":"YulIdentifier","src":"3958:3:101"}]}]},"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"3617:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3751:3:101","nodeType":"YulTypedName","src":"3751:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3759:3:101","nodeType":"YulTypedName","src":"3759:3:101","type":""}],"src":"3617:366:101"},{"body":{"nativeSrc":"4160:248:101","nodeType":"YulBlock","src":"4160:248:101","statements":[{"nativeSrc":"4170:26:101","nodeType":"YulAssignment","src":"4170:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"4182:9:101","nodeType":"YulIdentifier","src":"4182:9:101"},{"kind":"number","nativeSrc":"4193:2:101","nodeType":"YulLiteral","src":"4193:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4178:3:101","nodeType":"YulIdentifier","src":"4178:3:101"},"nativeSrc":"4178:18:101","nodeType":"YulFunctionCall","src":"4178:18:101"},"variableNames":[{"name":"tail","nativeSrc":"4170:4:101","nodeType":"YulIdentifier","src":"4170:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4217:9:101","nodeType":"YulIdentifier","src":"4217:9:101"},{"kind":"number","nativeSrc":"4228:1:101","nodeType":"YulLiteral","src":"4228:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4213:3:101","nodeType":"YulIdentifier","src":"4213:3:101"},"nativeSrc":"4213:17:101","nodeType":"YulFunctionCall","src":"4213:17:101"},{"arguments":[{"name":"tail","nativeSrc":"4236:4:101","nodeType":"YulIdentifier","src":"4236:4:101"},{"name":"headStart","nativeSrc":"4242:9:101","nodeType":"YulIdentifier","src":"4242:9:101"}],"functionName":{"name":"sub","nativeSrc":"4232:3:101","nodeType":"YulIdentifier","src":"4232:3:101"},"nativeSrc":"4232:20:101","nodeType":"YulFunctionCall","src":"4232:20:101"}],"functionName":{"name":"mstore","nativeSrc":"4206:6:101","nodeType":"YulIdentifier","src":"4206:6:101"},"nativeSrc":"4206:47:101","nodeType":"YulFunctionCall","src":"4206:47:101"},"nativeSrc":"4206:47:101","nodeType":"YulExpressionStatement","src":"4206:47:101"},{"nativeSrc":"4262:139:101","nodeType":"YulAssignment","src":"4262:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"4396:4:101","nodeType":"YulIdentifier","src":"4396:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"4270:124:101","nodeType":"YulIdentifier","src":"4270:124:101"},"nativeSrc":"4270:131:101","nodeType":"YulFunctionCall","src":"4270:131:101"},"variableNames":[{"name":"tail","nativeSrc":"4262:4:101","nodeType":"YulIdentifier","src":"4262:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3989:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4140:9:101","nodeType":"YulTypedName","src":"4140:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:101","nodeType":"YulTypedName","src":"4155:4:101","type":""}],"src":"3989:419:101"},{"body":{"nativeSrc":"4520:126:101","nodeType":"YulBlock","src":"4520:126:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4542:6:101","nodeType":"YulIdentifier","src":"4542:6:101"},{"kind":"number","nativeSrc":"4550:1:101","nodeType":"YulLiteral","src":"4550:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4538:3:101","nodeType":"YulIdentifier","src":"4538:3:101"},"nativeSrc":"4538:14:101","nodeType":"YulFunctionCall","src":"4538:14:101"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"4554:34:101","nodeType":"YulLiteral","src":"4554:34:101","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"4531:6:101","nodeType":"YulIdentifier","src":"4531:6:101"},"nativeSrc":"4531:58:101","nodeType":"YulFunctionCall","src":"4531:58:101"},"nativeSrc":"4531:58:101","nodeType":"YulExpressionStatement","src":"4531:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4610:6:101","nodeType":"YulIdentifier","src":"4610:6:101"},{"kind":"number","nativeSrc":"4618:2:101","nodeType":"YulLiteral","src":"4618:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4606:3:101","nodeType":"YulIdentifier","src":"4606:3:101"},"nativeSrc":"4606:15:101","nodeType":"YulFunctionCall","src":"4606:15:101"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"4623:15:101","nodeType":"YulLiteral","src":"4623:15:101","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"4599:6:101","nodeType":"YulIdentifier","src":"4599:6:101"},"nativeSrc":"4599:40:101","nodeType":"YulFunctionCall","src":"4599:40:101"},"nativeSrc":"4599:40:101","nodeType":"YulExpressionStatement","src":"4599:40:101"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4414:232:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4512:6:101","nodeType":"YulTypedName","src":"4512:6:101","type":""}],"src":"4414:232:101"},{"body":{"nativeSrc":"4798:220:101","nodeType":"YulBlock","src":"4798:220:101","statements":[{"nativeSrc":"4808:74:101","nodeType":"YulAssignment","src":"4808:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"4874:3:101","nodeType":"YulIdentifier","src":"4874:3:101"},{"kind":"number","nativeSrc":"4879:2:101","nodeType":"YulLiteral","src":"4879:2:101","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4815:58:101","nodeType":"YulIdentifier","src":"4815:58:101"},"nativeSrc":"4815:67:101","nodeType":"YulFunctionCall","src":"4815:67:101"},"variableNames":[{"name":"pos","nativeSrc":"4808:3:101","nodeType":"YulIdentifier","src":"4808:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4980:3:101","nodeType":"YulIdentifier","src":"4980:3:101"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4891:88:101","nodeType":"YulIdentifier","src":"4891:88:101"},"nativeSrc":"4891:93:101","nodeType":"YulFunctionCall","src":"4891:93:101"},"nativeSrc":"4891:93:101","nodeType":"YulExpressionStatement","src":"4891:93:101"},{"nativeSrc":"4993:19:101","nodeType":"YulAssignment","src":"4993:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"5004:3:101","nodeType":"YulIdentifier","src":"5004:3:101"},{"kind":"number","nativeSrc":"5009:2:101","nodeType":"YulLiteral","src":"5009:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5000:3:101","nodeType":"YulIdentifier","src":"5000:3:101"},"nativeSrc":"5000:12:101","nodeType":"YulFunctionCall","src":"5000:12:101"},"variableNames":[{"name":"end","nativeSrc":"4993:3:101","nodeType":"YulIdentifier","src":"4993:3:101"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"4652:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4786:3:101","nodeType":"YulTypedName","src":"4786:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4794:3:101","nodeType":"YulTypedName","src":"4794:3:101","type":""}],"src":"4652:366:101"},{"body":{"nativeSrc":"5195:248:101","nodeType":"YulBlock","src":"5195:248:101","statements":[{"nativeSrc":"5205:26:101","nodeType":"YulAssignment","src":"5205:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"5217:9:101","nodeType":"YulIdentifier","src":"5217:9:101"},{"kind":"number","nativeSrc":"5228:2:101","nodeType":"YulLiteral","src":"5228:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5213:3:101","nodeType":"YulIdentifier","src":"5213:3:101"},"nativeSrc":"5213:18:101","nodeType":"YulFunctionCall","src":"5213:18:101"},"variableNames":[{"name":"tail","nativeSrc":"5205:4:101","nodeType":"YulIdentifier","src":"5205:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5252:9:101","nodeType":"YulIdentifier","src":"5252:9:101"},{"kind":"number","nativeSrc":"5263:1:101","nodeType":"YulLiteral","src":"5263:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5248:3:101","nodeType":"YulIdentifier","src":"5248:3:101"},"nativeSrc":"5248:17:101","nodeType":"YulFunctionCall","src":"5248:17:101"},{"arguments":[{"name":"tail","nativeSrc":"5271:4:101","nodeType":"YulIdentifier","src":"5271:4:101"},{"name":"headStart","nativeSrc":"5277:9:101","nodeType":"YulIdentifier","src":"5277:9:101"}],"functionName":{"name":"sub","nativeSrc":"5267:3:101","nodeType":"YulIdentifier","src":"5267:3:101"},"nativeSrc":"5267:20:101","nodeType":"YulFunctionCall","src":"5267:20:101"}],"functionName":{"name":"mstore","nativeSrc":"5241:6:101","nodeType":"YulIdentifier","src":"5241:6:101"},"nativeSrc":"5241:47:101","nodeType":"YulFunctionCall","src":"5241:47:101"},"nativeSrc":"5241:47:101","nodeType":"YulExpressionStatement","src":"5241:47:101"},{"nativeSrc":"5297:139:101","nodeType":"YulAssignment","src":"5297:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"5431:4:101","nodeType":"YulIdentifier","src":"5431:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5305:124:101","nodeType":"YulIdentifier","src":"5305:124:101"},"nativeSrc":"5305:131:101","nodeType":"YulFunctionCall","src":"5305:131:101"},"variableNames":[{"name":"tail","nativeSrc":"5297:4:101","nodeType":"YulIdentifier","src":"5297:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5024:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5175:9:101","nodeType":"YulTypedName","src":"5175:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5190:4:101","nodeType":"YulTypedName","src":"5190:4:101","type":""}],"src":"5024:419:101"},{"body":{"nativeSrc":"5555:119:101","nodeType":"YulBlock","src":"5555:119:101","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5577:6:101","nodeType":"YulIdentifier","src":"5577:6:101"},{"kind":"number","nativeSrc":"5585:1:101","nodeType":"YulLiteral","src":"5585:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5573:3:101","nodeType":"YulIdentifier","src":"5573:3:101"},"nativeSrc":"5573:14:101","nodeType":"YulFunctionCall","src":"5573:14:101"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"5589:34:101","nodeType":"YulLiteral","src":"5589:34:101","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"5566:6:101","nodeType":"YulIdentifier","src":"5566:6:101"},"nativeSrc":"5566:58:101","nodeType":"YulFunctionCall","src":"5566:58:101"},"nativeSrc":"5566:58:101","nodeType":"YulExpressionStatement","src":"5566:58:101"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5645:6:101","nodeType":"YulIdentifier","src":"5645:6:101"},{"kind":"number","nativeSrc":"5653:2:101","nodeType":"YulLiteral","src":"5653:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5641:3:101","nodeType":"YulIdentifier","src":"5641:3:101"},"nativeSrc":"5641:15:101","nodeType":"YulFunctionCall","src":"5641:15:101"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"5658:8:101","nodeType":"YulLiteral","src":"5658:8:101","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"5634:6:101","nodeType":"YulIdentifier","src":"5634:6:101"},"nativeSrc":"5634:33:101","nodeType":"YulFunctionCall","src":"5634:33:101"},"nativeSrc":"5634:33:101","nodeType":"YulExpressionStatement","src":"5634:33:101"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5449:225:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5547:6:101","nodeType":"YulTypedName","src":"5547:6:101","type":""}],"src":"5449:225:101"},{"body":{"nativeSrc":"5826:220:101","nodeType":"YulBlock","src":"5826:220:101","statements":[{"nativeSrc":"5836:74:101","nodeType":"YulAssignment","src":"5836:74:101","value":{"arguments":[{"name":"pos","nativeSrc":"5902:3:101","nodeType":"YulIdentifier","src":"5902:3:101"},{"kind":"number","nativeSrc":"5907:2:101","nodeType":"YulLiteral","src":"5907:2:101","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5843:58:101","nodeType":"YulIdentifier","src":"5843:58:101"},"nativeSrc":"5843:67:101","nodeType":"YulFunctionCall","src":"5843:67:101"},"variableNames":[{"name":"pos","nativeSrc":"5836:3:101","nodeType":"YulIdentifier","src":"5836:3:101"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6008:3:101","nodeType":"YulIdentifier","src":"6008:3:101"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5919:88:101","nodeType":"YulIdentifier","src":"5919:88:101"},"nativeSrc":"5919:93:101","nodeType":"YulFunctionCall","src":"5919:93:101"},"nativeSrc":"5919:93:101","nodeType":"YulExpressionStatement","src":"5919:93:101"},{"nativeSrc":"6021:19:101","nodeType":"YulAssignment","src":"6021:19:101","value":{"arguments":[{"name":"pos","nativeSrc":"6032:3:101","nodeType":"YulIdentifier","src":"6032:3:101"},{"kind":"number","nativeSrc":"6037:2:101","nodeType":"YulLiteral","src":"6037:2:101","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6028:3:101","nodeType":"YulIdentifier","src":"6028:3:101"},"nativeSrc":"6028:12:101","nodeType":"YulFunctionCall","src":"6028:12:101"},"variableNames":[{"name":"end","nativeSrc":"6021:3:101","nodeType":"YulIdentifier","src":"6021:3:101"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"5680:366:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5814:3:101","nodeType":"YulTypedName","src":"5814:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5822:3:101","nodeType":"YulTypedName","src":"5822:3:101","type":""}],"src":"5680:366:101"},{"body":{"nativeSrc":"6223:248:101","nodeType":"YulBlock","src":"6223:248:101","statements":[{"nativeSrc":"6233:26:101","nodeType":"YulAssignment","src":"6233:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"6245:9:101","nodeType":"YulIdentifier","src":"6245:9:101"},{"kind":"number","nativeSrc":"6256:2:101","nodeType":"YulLiteral","src":"6256:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6241:3:101","nodeType":"YulIdentifier","src":"6241:3:101"},"nativeSrc":"6241:18:101","nodeType":"YulFunctionCall","src":"6241:18:101"},"variableNames":[{"name":"tail","nativeSrc":"6233:4:101","nodeType":"YulIdentifier","src":"6233:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6280:9:101","nodeType":"YulIdentifier","src":"6280:9:101"},{"kind":"number","nativeSrc":"6291:1:101","nodeType":"YulLiteral","src":"6291:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6276:3:101","nodeType":"YulIdentifier","src":"6276:3:101"},"nativeSrc":"6276:17:101","nodeType":"YulFunctionCall","src":"6276:17:101"},{"arguments":[{"name":"tail","nativeSrc":"6299:4:101","nodeType":"YulIdentifier","src":"6299:4:101"},{"name":"headStart","nativeSrc":"6305:9:101","nodeType":"YulIdentifier","src":"6305:9:101"}],"functionName":{"name":"sub","nativeSrc":"6295:3:101","nodeType":"YulIdentifier","src":"6295:3:101"},"nativeSrc":"6295:20:101","nodeType":"YulFunctionCall","src":"6295:20:101"}],"functionName":{"name":"mstore","nativeSrc":"6269:6:101","nodeType":"YulIdentifier","src":"6269:6:101"},"nativeSrc":"6269:47:101","nodeType":"YulFunctionCall","src":"6269:47:101"},"nativeSrc":"6269:47:101","nodeType":"YulExpressionStatement","src":"6269:47:101"},{"nativeSrc":"6325:139:101","nodeType":"YulAssignment","src":"6325:139:101","value":{"arguments":[{"name":"tail","nativeSrc":"6459:4:101","nodeType":"YulIdentifier","src":"6459:4:101"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6333:124:101","nodeType":"YulIdentifier","src":"6333:124:101"},"nativeSrc":"6333:131:101","nodeType":"YulFunctionCall","src":"6333:131:101"},"variableNames":[{"name":"tail","nativeSrc":"6325:4:101","nodeType":"YulIdentifier","src":"6325:4:101"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6052:419:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6203:9:101","nodeType":"YulTypedName","src":"6203:9:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6218:4:101","nodeType":"YulTypedName","src":"6218:4:101","type":""}],"src":"6052:419:101"},{"body":{"nativeSrc":"6535:40:101","nodeType":"YulBlock","src":"6535:40:101","statements":[{"nativeSrc":"6546:22:101","nodeType":"YulAssignment","src":"6546:22:101","value":{"arguments":[{"name":"value","nativeSrc":"6562:5:101","nodeType":"YulIdentifier","src":"6562:5:101"}],"functionName":{"name":"mload","nativeSrc":"6556:5:101","nodeType":"YulIdentifier","src":"6556:5:101"},"nativeSrc":"6556:12:101","nodeType":"YulFunctionCall","src":"6556:12:101"},"variableNames":[{"name":"length","nativeSrc":"6546:6:101","nodeType":"YulIdentifier","src":"6546:6:101"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6477:98:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6518:5:101","nodeType":"YulTypedName","src":"6518:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6528:6:101","nodeType":"YulTypedName","src":"6528:6:101","type":""}],"src":"6477:98:101"},{"body":{"nativeSrc":"6694:34:101","nodeType":"YulBlock","src":"6694:34:101","statements":[{"nativeSrc":"6704:18:101","nodeType":"YulAssignment","src":"6704:18:101","value":{"name":"pos","nativeSrc":"6719:3:101","nodeType":"YulIdentifier","src":"6719:3:101"},"variableNames":[{"name":"updated_pos","nativeSrc":"6704:11:101","nodeType":"YulIdentifier","src":"6704:11:101"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6581:147:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6666:3:101","nodeType":"YulTypedName","src":"6666:3:101","type":""},{"name":"length","nativeSrc":"6671:6:101","nodeType":"YulTypedName","src":"6671:6:101","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6682:11:101","nodeType":"YulTypedName","src":"6682:11:101","type":""}],"src":"6581:147:101"},{"body":{"nativeSrc":"6796:77:101","nodeType":"YulBlock","src":"6796:77:101","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"6813:3:101","nodeType":"YulIdentifier","src":"6813:3:101"},{"name":"src","nativeSrc":"6818:3:101","nodeType":"YulIdentifier","src":"6818:3:101"},{"name":"length","nativeSrc":"6823:6:101","nodeType":"YulIdentifier","src":"6823:6:101"}],"functionName":{"name":"mcopy","nativeSrc":"6807:5:101","nodeType":"YulIdentifier","src":"6807:5:101"},"nativeSrc":"6807:23:101","nodeType":"YulFunctionCall","src":"6807:23:101"},"nativeSrc":"6807:23:101","nodeType":"YulExpressionStatement","src":"6807:23:101"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6850:3:101","nodeType":"YulIdentifier","src":"6850:3:101"},{"name":"length","nativeSrc":"6855:6:101","nodeType":"YulIdentifier","src":"6855:6:101"}],"functionName":{"name":"add","nativeSrc":"6846:3:101","nodeType":"YulIdentifier","src":"6846:3:101"},"nativeSrc":"6846:16:101","nodeType":"YulFunctionCall","src":"6846:16:101"},{"kind":"number","nativeSrc":"6864:1:101","nodeType":"YulLiteral","src":"6864:1:101","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6839:6:101","nodeType":"YulIdentifier","src":"6839:6:101"},"nativeSrc":"6839:27:101","nodeType":"YulFunctionCall","src":"6839:27:101"},"nativeSrc":"6839:27:101","nodeType":"YulExpressionStatement","src":"6839:27:101"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6734:139:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6778:3:101","nodeType":"YulTypedName","src":"6778:3:101","type":""},{"name":"dst","nativeSrc":"6783:3:101","nodeType":"YulTypedName","src":"6783:3:101","type":""},{"name":"length","nativeSrc":"6788:6:101","nodeType":"YulTypedName","src":"6788:6:101","type":""}],"src":"6734:139:101"},{"body":{"nativeSrc":"6987:278:101","nodeType":"YulBlock","src":"6987:278:101","statements":[{"nativeSrc":"6997:52:101","nodeType":"YulVariableDeclaration","src":"6997:52:101","value":{"arguments":[{"name":"value","nativeSrc":"7043:5:101","nodeType":"YulIdentifier","src":"7043:5:101"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7011:31:101","nodeType":"YulIdentifier","src":"7011:31:101"},"nativeSrc":"7011:38:101","nodeType":"YulFunctionCall","src":"7011:38:101"},"variables":[{"name":"length","nativeSrc":"7001:6:101","nodeType":"YulTypedName","src":"7001:6:101","type":""}]},{"nativeSrc":"7058:95:101","nodeType":"YulAssignment","src":"7058:95:101","value":{"arguments":[{"name":"pos","nativeSrc":"7141:3:101","nodeType":"YulIdentifier","src":"7141:3:101"},{"name":"length","nativeSrc":"7146:6:101","nodeType":"YulIdentifier","src":"7146:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7065:75:101","nodeType":"YulIdentifier","src":"7065:75:101"},"nativeSrc":"7065:88:101","nodeType":"YulFunctionCall","src":"7065:88:101"},"variableNames":[{"name":"pos","nativeSrc":"7058:3:101","nodeType":"YulIdentifier","src":"7058:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7201:5:101","nodeType":"YulIdentifier","src":"7201:5:101"},{"kind":"number","nativeSrc":"7208:4:101","nodeType":"YulLiteral","src":"7208:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7197:3:101","nodeType":"YulIdentifier","src":"7197:3:101"},"nativeSrc":"7197:16:101","nodeType":"YulFunctionCall","src":"7197:16:101"},{"name":"pos","nativeSrc":"7215:3:101","nodeType":"YulIdentifier","src":"7215:3:101"},{"name":"length","nativeSrc":"7220:6:101","nodeType":"YulIdentifier","src":"7220:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7162:34:101","nodeType":"YulIdentifier","src":"7162:34:101"},"nativeSrc":"7162:65:101","nodeType":"YulFunctionCall","src":"7162:65:101"},"nativeSrc":"7162:65:101","nodeType":"YulExpressionStatement","src":"7162:65:101"},{"nativeSrc":"7236:23:101","nodeType":"YulAssignment","src":"7236:23:101","value":{"arguments":[{"name":"pos","nativeSrc":"7247:3:101","nodeType":"YulIdentifier","src":"7247:3:101"},{"name":"length","nativeSrc":"7252:6:101","nodeType":"YulIdentifier","src":"7252:6:101"}],"functionName":{"name":"add","nativeSrc":"7243:3:101","nodeType":"YulIdentifier","src":"7243:3:101"},"nativeSrc":"7243:16:101","nodeType":"YulFunctionCall","src":"7243:16:101"},"variableNames":[{"name":"end","nativeSrc":"7236:3:101","nodeType":"YulIdentifier","src":"7236:3:101"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6879:386:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6968:5:101","nodeType":"YulTypedName","src":"6968:5:101","type":""},{"name":"pos","nativeSrc":"6975:3:101","nodeType":"YulTypedName","src":"6975:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6983:3:101","nodeType":"YulTypedName","src":"6983:3:101","type":""}],"src":"6879:386:101"},{"body":{"nativeSrc":"7405:137:101","nodeType":"YulBlock","src":"7405:137:101","statements":[{"nativeSrc":"7416:100:101","nodeType":"YulAssignment","src":"7416:100:101","value":{"arguments":[{"name":"value0","nativeSrc":"7503:6:101","nodeType":"YulIdentifier","src":"7503:6:101"},{"name":"pos","nativeSrc":"7512:3:101","nodeType":"YulIdentifier","src":"7512:3:101"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7423:79:101","nodeType":"YulIdentifier","src":"7423:79:101"},"nativeSrc":"7423:93:101","nodeType":"YulFunctionCall","src":"7423:93:101"},"variableNames":[{"name":"pos","nativeSrc":"7416:3:101","nodeType":"YulIdentifier","src":"7416:3:101"}]},{"nativeSrc":"7526:10:101","nodeType":"YulAssignment","src":"7526:10:101","value":{"name":"pos","nativeSrc":"7533:3:101","nodeType":"YulIdentifier","src":"7533:3:101"},"variableNames":[{"name":"end","nativeSrc":"7526:3:101","nodeType":"YulIdentifier","src":"7526:3:101"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7271:271:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7384:3:101","nodeType":"YulTypedName","src":"7384:3:101","type":""},{"name":"value0","nativeSrc":"7390:6:101","nodeType":"YulTypedName","src":"7390:6:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7401:3:101","nodeType":"YulTypedName","src":"7401:3:101","type":""}],"src":"7271:271:101"},{"body":{"nativeSrc":"7607:40:101","nodeType":"YulBlock","src":"7607:40:101","statements":[{"nativeSrc":"7618:22:101","nodeType":"YulAssignment","src":"7618:22:101","value":{"arguments":[{"name":"value","nativeSrc":"7634:5:101","nodeType":"YulIdentifier","src":"7634:5:101"}],"functionName":{"name":"mload","nativeSrc":"7628:5:101","nodeType":"YulIdentifier","src":"7628:5:101"},"nativeSrc":"7628:12:101","nodeType":"YulFunctionCall","src":"7628:12:101"},"variableNames":[{"name":"length","nativeSrc":"7618:6:101","nodeType":"YulIdentifier","src":"7618:6:101"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7548:99:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7590:5:101","nodeType":"YulTypedName","src":"7590:5:101","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7600:6:101","nodeType":"YulTypedName","src":"7600:6:101","type":""}],"src":"7548:99:101"},{"body":{"nativeSrc":"7701:54:101","nodeType":"YulBlock","src":"7701:54:101","statements":[{"nativeSrc":"7711:38:101","nodeType":"YulAssignment","src":"7711:38:101","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7729:5:101","nodeType":"YulIdentifier","src":"7729:5:101"},{"kind":"number","nativeSrc":"7736:2:101","nodeType":"YulLiteral","src":"7736:2:101","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7725:3:101","nodeType":"YulIdentifier","src":"7725:3:101"},"nativeSrc":"7725:14:101","nodeType":"YulFunctionCall","src":"7725:14:101"},{"arguments":[{"kind":"number","nativeSrc":"7745:2:101","nodeType":"YulLiteral","src":"7745:2:101","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7741:3:101","nodeType":"YulIdentifier","src":"7741:3:101"},"nativeSrc":"7741:7:101","nodeType":"YulFunctionCall","src":"7741:7:101"}],"functionName":{"name":"and","nativeSrc":"7721:3:101","nodeType":"YulIdentifier","src":"7721:3:101"},"nativeSrc":"7721:28:101","nodeType":"YulFunctionCall","src":"7721:28:101"},"variableNames":[{"name":"result","nativeSrc":"7711:6:101","nodeType":"YulIdentifier","src":"7711:6:101"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7653:102:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7684:5:101","nodeType":"YulTypedName","src":"7684:5:101","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7694:6:101","nodeType":"YulTypedName","src":"7694:6:101","type":""}],"src":"7653:102:101"},{"body":{"nativeSrc":"7853:285:101","nodeType":"YulBlock","src":"7853:285:101","statements":[{"nativeSrc":"7863:53:101","nodeType":"YulVariableDeclaration","src":"7863:53:101","value":{"arguments":[{"name":"value","nativeSrc":"7910:5:101","nodeType":"YulIdentifier","src":"7910:5:101"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7877:32:101","nodeType":"YulIdentifier","src":"7877:32:101"},"nativeSrc":"7877:39:101","nodeType":"YulFunctionCall","src":"7877:39:101"},"variables":[{"name":"length","nativeSrc":"7867:6:101","nodeType":"YulTypedName","src":"7867:6:101","type":""}]},{"nativeSrc":"7925:78:101","nodeType":"YulAssignment","src":"7925:78:101","value":{"arguments":[{"name":"pos","nativeSrc":"7991:3:101","nodeType":"YulIdentifier","src":"7991:3:101"},{"name":"length","nativeSrc":"7996:6:101","nodeType":"YulIdentifier","src":"7996:6:101"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7932:58:101","nodeType":"YulIdentifier","src":"7932:58:101"},"nativeSrc":"7932:71:101","nodeType":"YulFunctionCall","src":"7932:71:101"},"variableNames":[{"name":"pos","nativeSrc":"7925:3:101","nodeType":"YulIdentifier","src":"7925:3:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8051:5:101","nodeType":"YulIdentifier","src":"8051:5:101"},{"kind":"number","nativeSrc":"8058:4:101","nodeType":"YulLiteral","src":"8058:4:101","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8047:3:101","nodeType":"YulIdentifier","src":"8047:3:101"},"nativeSrc":"8047:16:101","nodeType":"YulFunctionCall","src":"8047:16:101"},{"name":"pos","nativeSrc":"8065:3:101","nodeType":"YulIdentifier","src":"8065:3:101"},{"name":"length","nativeSrc":"8070:6:101","nodeType":"YulIdentifier","src":"8070:6:101"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8012:34:101","nodeType":"YulIdentifier","src":"8012:34:101"},"nativeSrc":"8012:65:101","nodeType":"YulFunctionCall","src":"8012:65:101"},"nativeSrc":"8012:65:101","nodeType":"YulExpressionStatement","src":"8012:65:101"},{"nativeSrc":"8086:46:101","nodeType":"YulAssignment","src":"8086:46:101","value":{"arguments":[{"name":"pos","nativeSrc":"8097:3:101","nodeType":"YulIdentifier","src":"8097:3:101"},{"arguments":[{"name":"length","nativeSrc":"8124:6:101","nodeType":"YulIdentifier","src":"8124:6:101"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8102:21:101","nodeType":"YulIdentifier","src":"8102:21:101"},"nativeSrc":"8102:29:101","nodeType":"YulFunctionCall","src":"8102:29:101"}],"functionName":{"name":"add","nativeSrc":"8093:3:101","nodeType":"YulIdentifier","src":"8093:3:101"},"nativeSrc":"8093:39:101","nodeType":"YulFunctionCall","src":"8093:39:101"},"variableNames":[{"name":"end","nativeSrc":"8086:3:101","nodeType":"YulIdentifier","src":"8086:3:101"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"7761:377:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7834:5:101","nodeType":"YulTypedName","src":"7834:5:101","type":""},{"name":"pos","nativeSrc":"7841:3:101","nodeType":"YulTypedName","src":"7841:3:101","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7849:3:101","nodeType":"YulTypedName","src":"7849:3:101","type":""}],"src":"7761:377:101"},{"body":{"nativeSrc":"8262:195:101","nodeType":"YulBlock","src":"8262:195:101","statements":[{"nativeSrc":"8272:26:101","nodeType":"YulAssignment","src":"8272:26:101","value":{"arguments":[{"name":"headStart","nativeSrc":"8284:9:101","nodeType":"YulIdentifier","src":"8284:9:101"},{"kind":"number","nativeSrc":"8295:2:101","nodeType":"YulLiteral","src":"8295:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8280:3:101","nodeType":"YulIdentifier","src":"8280:3:101"},"nativeSrc":"8280:18:101","nodeType":"YulFunctionCall","src":"8280:18:101"},"variableNames":[{"name":"tail","nativeSrc":"8272:4:101","nodeType":"YulIdentifier","src":"8272:4:101"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8319:9:101","nodeType":"YulIdentifier","src":"8319:9:101"},{"kind":"number","nativeSrc":"8330:1:101","nodeType":"YulLiteral","src":"8330:1:101","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8315:3:101","nodeType":"YulIdentifier","src":"8315:3:101"},"nativeSrc":"8315:17:101","nodeType":"YulFunctionCall","src":"8315:17:101"},{"arguments":[{"name":"tail","nativeSrc":"8338:4:101","nodeType":"YulIdentifier","src":"8338:4:101"},{"name":"headStart","nativeSrc":"8344:9:101","nodeType":"YulIdentifier","src":"8344:9:101"}],"functionName":{"name":"sub","nativeSrc":"8334:3:101","nodeType":"YulIdentifier","src":"8334:3:101"},"nativeSrc":"8334:20:101","nodeType":"YulFunctionCall","src":"8334:20:101"}],"functionName":{"name":"mstore","nativeSrc":"8308:6:101","nodeType":"YulIdentifier","src":"8308:6:101"},"nativeSrc":"8308:47:101","nodeType":"YulFunctionCall","src":"8308:47:101"},"nativeSrc":"8308:47:101","nodeType":"YulExpressionStatement","src":"8308:47:101"},{"nativeSrc":"8364:86:101","nodeType":"YulAssignment","src":"8364:86:101","value":{"arguments":[{"name":"value0","nativeSrc":"8436:6:101","nodeType":"YulIdentifier","src":"8436:6:101"},{"name":"tail","nativeSrc":"8445:4:101","nodeType":"YulIdentifier","src":"8445:4:101"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8372:63:101","nodeType":"YulIdentifier","src":"8372:63:101"},"nativeSrc":"8372:78:101","nodeType":"YulFunctionCall","src":"8372:78:101"},"variableNames":[{"name":"tail","nativeSrc":"8364:4:101","nodeType":"YulIdentifier","src":"8364:4:101"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8144:313:101","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8234:9:101","nodeType":"YulTypedName","src":"8234:9:101","type":""},{"name":"value0","nativeSrc":"8246:6:101","nodeType":"YulTypedName","src":"8246:6:101","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8257:4:101","nodeType":"YulTypedName","src":"8257:4:101","type":""}],"src":"8144:313:101"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(memPtr) {\n\n        mstore(add(memPtr, 0), \"TransparentUpgradeableProxy: adm\")\n\n        mstore(add(memPtr, 32), \"in cannot fallback to proxy targ\")\n\n        mstore(add(memPtr, 64), \"et\")\n\n    }\n\n    function abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n        store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(pos)\n        end := add(pos, 96)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        mcopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\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        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":101,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"10115":[{"length":32,"start":229},{"length":32,"start":313},{"length":32,"start":441},{"length":32,"start":514},{"length":32,"start":563},{"length":32,"start":599}]},"linkReferences":{},"object":"608060405260043610610042575f3560e01c80633659cfe6146100595780634f1ef286146100785780635c60da1b1461008b578063f851a440146100b557610051565b366100515761004f6100c9565b005b61004f6100c9565b348015610064575f80fd5b5061004f6100733660046104f8565b6100e3565b61004f61008636600461056c565b610137565b348015610096575f80fd5b5061009f6101b6565b6040516100ac91906105d2565b60405180910390f35b3480156100c0575f80fd5b5061009f6101ff565b6100d1610255565b6100e16100dc6102a6565b6102d8565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361012f5761012c8160405180602001604052805f8152505f6102f6565b50565b61012c6100c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101ae576101a98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102f6915050565b505050565b6101a96100c9565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f4576101ef6102a6565b905090565b6101fc6100c9565b90565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f457507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e15760405162461bcd60e51b815260040161029d906105e0565b60405180910390fd5b5f6101ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f80375f80365f845af43d5f803e8080156102f2573d5ff35b3d5ffd5b6102ff83610320565b5f8251118061030b5750805b156101a95761031a838361035f565b50505050565b6103298161038d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103848383604051806060016040528060278152602001610774602791396103f5565b90505b92915050565b6001600160a01b0381163b6103b45760405162461bcd60e51b815260040161029d90610698565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61041e5760405162461bcd60e51b815260040161029d906106ea565b5f80856001600160a01b0316856040516104389190610726565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b5091509150610485828286610491565b925050505b9392505050565b606083156104a057508161048a565b8251156104b05782518084602001fd5b8160405162461bcd60e51b815260040161029d9190610762565b5f6001600160a01b038216610387565b6104e3816104ca565b811461012c575f80fd5b8035610387816104da565b5f6020828403121561050b5761050b5f80fd5b5f61051684846104ed565b949350505050565b5f8083601f840112610531576105315f80fd5b50813567ffffffffffffffff81111561054b5761054b5f80fd5b602083019150836001820283011115610565576105655f80fd5b9250929050565b5f805f60408486031215610581576105815f80fd5b5f61058c86866104ed565b935050602084013567ffffffffffffffff8111156105ab576105ab5f80fd5b6105b78682870161051e565b92509250509250925092565b6105cc816104ca565b82525050565b6020810161038782846105c3565b6020808252810161038781604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016103878161064c565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610691565b60208082528101610387816106a8565b8281835e505f910152565b5f61070e825190565b61071c8185602086016106fa565b9290920192915050565b5f61048a8284610705565b5f61073a825190565b8084526020840193506107518185602086016106fa565b601f01601f19169290920192915050565b60208082528101610384818461073156fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122070dadc04f09b7d1888a2301532e36ca47743df400bf011def63b2d9d260ee30e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x42 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xB5 JUMPI PUSH2 0x51 JUMP JUMPDEST CALLDATASIZE PUSH2 0x51 JUMPI PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F PUSH2 0x73 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F8 JUMP JUMPDEST PUSH2 0xE3 JUMP JUMPDEST PUSH2 0x4F PUSH2 0x86 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x137 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1FF JUMP JUMPDEST PUSH2 0xD1 PUSH2 0x255 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0xDC PUSH2 0x2A6 JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x12F JUMPI PUSH2 0x12C DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2F6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x12C PUSH2 0xC9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1AE JUMPI PUSH2 0x1A9 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2F6 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0xC9 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI PUSH2 0x1EF PUSH2 0x2A6 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0xC9 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0xE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x5E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EF PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2F2 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH2 0x2FF DUP4 PUSH2 0x320 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x30B JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x31A DUP4 DUP4 PUSH2 0x35F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x329 DUP2 PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x384 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x774 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3F5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x698 JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x6EA JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x438 SWAP2 SWAP1 PUSH2 0x726 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x475 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x485 DUP3 DUP3 DUP7 PUSH2 0x491 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A0 JUMPI POP DUP2 PUSH2 0x48A JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x4B0 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x762 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x387 JUMP JUMPDEST PUSH2 0x4E3 DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP2 EQ PUSH2 0x12C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x387 DUP2 PUSH2 0x4DA JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50B JUMPI PUSH2 0x50B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x516 DUP5 DUP5 PUSH2 0x4ED JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x531 JUMPI PUSH2 0x531 PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x54B JUMPI PUSH2 0x54B PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x565 JUMPI PUSH2 0x565 PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x581 JUMPI PUSH2 0x581 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58C DUP7 DUP7 PUSH2 0x4ED JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH2 0x5AB PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5B7 DUP7 DUP3 DUP8 ADD PUSH2 0x51E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x5CC DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x387 DUP3 DUP5 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x6A8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x70E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x71C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x48A DUP3 DUP5 PUSH2 0x705 JUMP JUMPDEST PUSH0 PUSH2 0x73A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x751 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x384 DUP2 DUP5 PUSH2 0x731 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122070DADC DIV CREATE SWAP12 PUSH30 0x1888A2301532E36CA47743DF400BF011DEF63B2D9D260EE30E64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"1653:3648:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:93;:9;:11::i;:::-;1653:3648:100;;2680:11:93;:9;:11::i;4037:134:100:-;;;;;;;;;;-1:-1:-1;4037:134:100;;;;;:::i;:::-;;:::i;4547:164::-;;;;;;:::i;:::-;;:::i;3748:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3192:96;;;;;;;;;;;;;:::i;2327:110:93:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4037:134:100:-;5286:6;-1:-1:-1;;;;;2649:25:100;:10;:25;2645:99;;4110:54:::1;4128:17;4147:9;;;;;;;;;;;::::0;4158:5:::1;4110:17;:54::i;:::-;4037:134:::0;:::o;2645:99::-;2722:11;:9;:11::i;4547:164::-;5286:6;-1:-1:-1;;;;;2649:25:100;:10;:25;2645:99;;4656:48:::1;4674:17;4693:4;;4656:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4699:4:100::1;::::0;-1:-1:-1;4656:17:100::1;::::0;-1:-1:-1;;4656:48:100:i:1;:::-;4547:164:::0;;;:::o;2645:99::-;2722:11;:9;:11::i;3748:129::-;3800:23;5286:6;-1:-1:-1;;;;;2649:25:100;:10;:25;2645:99;;3853:17:::1;:15;:17::i;:::-;3835:35;;3748:129:::0;:::o;2645:99::-;2722:11;:9;:11::i;:::-;3748:129;:::o;3192:96::-;3235:14;5286:6;-1:-1:-1;;;;;2649:25:100;:10;:25;2645:99;;-1:-1:-1;5286:6:100;;3748:129::o;4986:207::-;5286:6;-1:-1:-1;;;;;5057:25:100;:10;:25;5049:104;;;;-1:-1:-1;;;5049:104:100;;;;;;;:::i;:::-;;;;;;;;1240:140:91;1307:12;1338:35;1035:66:92;1385:54;-1:-1:-1;;;;;1385:54:92;;1306:140;953:895:93;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;2188:295:92;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:92;;;;;;;;1902:152;:::o;6575:198:97:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:92:-;-1:-1:-1;;;;;1470:19:97;;;1610:95:92;;;;-1:-1:-1;;;1610:95:92;;;;;;;:::i;:::-;1035:66;1715:74;;-1:-1:-1;;;;;;1715:74:92;-1:-1:-1;;;;;1715:74:92;;;;;;;;;;1537:259::o;6959:387:97:-;7100:12;-1:-1:-1;;;;;1470:19:97;;;7124:69;;;;-1:-1:-1;;;7124:69:97;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:97;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:97;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:97;;;;;;;;:::i;466:96:101:-;503:7;-1:-1:-1;;;;;400:54:101;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;197:1;194;187:12;955:79;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:101:o;1558:552::-;1615:8;1625:6;1675:3;1668:4;1660:6;1656:17;1652:27;1642:122;;1683:79;197:1;194;187:12;1683:79;-1:-1:-1;1783:20:101;;1826:18;1815:30;;1812:117;;;1848:79;197:1;194;187:12;1848:79;1962:4;1954:6;1950:17;1938:29;;2016:3;2008:4;2000:6;1996:17;1986:8;1982:32;1979:41;1976:128;;;2023:79;197:1;194;187:12;2023:79;1558:552;;;;;:::o;2116:672::-;2195:6;2203;2211;2260:2;2248:9;2239:7;2235:23;2231:32;2228:119;;;2266:79;197:1;194;187:12;2266:79;2386:1;2411:53;2456:7;2436:9;2411:53;:::i;:::-;2401:63;;2357:117;2541:2;2530:9;2526:18;2513:32;2572:18;2564:6;2561:30;2558:117;;;2594:79;197:1;194;187:12;2594:79;2707:64;2763:7;2754:6;2743:9;2739:22;2707:64;:::i;:::-;2689:82;;;;2484:297;2116:672;;;;;:::o;2794:118::-;2881:24;2899:5;2881:24;:::i;:::-;2876:3;2869:37;2794:118;;:::o;2918:222::-;3049:2;3034:18;;3062:71;3038:9;3106:6;3062:71;:::i;3989:419::-;4193:2;4206:47;;;4178:18;;4270:131;4178:18;3844:2;3252:19;;3461:34;3304:4;3295:14;;3438:58;3530:34;3513:15;;;3506:59;-1:-1:-1;;;3582:15:101;;;3575:29;3965:12;;;3617:366;4652;4879:2;3252:19;;4794:3;3304:4;3295:14;;4554:34;4531:58;;-1:-1:-1;;;4618:2:101;4606:15;;4599:40;4808:74;-1:-1:-1;4891:93:101;-1:-1:-1;5009:2:101;5000:12;;4652:366::o;5024:419::-;5228:2;5241:47;;;5213:18;;5305:131;5213:18;5305:131;:::i;5680:366::-;5907:2;3252:19;;5822:3;3304:4;3295:14;;5589:34;5566:58;;-1:-1:-1;;;5653:2:101;5641:15;;5634:33;5836:74;-1:-1:-1;5919:93:101;5449:225;6052:419;6256:2;6269:47;;;6241:18;;6333:131;6241:18;6333:131;:::i;6734:139::-;6823:6;6818:3;6813;6807:23;-1:-1:-1;6864:1:101;6846:16;;6839:27;6734:139::o;6879:386::-;6983:3;7011:38;7043:5;6556:12;;6477:98;7011:38;7162:65;7220:6;7215:3;7208:4;7201:5;7197:16;7162:65;:::i;:::-;7243:16;;;;;6879:386;-1:-1:-1;;6879:386:101:o;7271:271::-;7401:3;7423:93;7512:3;7503:6;7423:93;:::i;7761:377::-;7849:3;7877:39;7910:5;6556:12;;6477:98;7877:39;3252:19;;;3304:4;3295:14;;7925:78;;8012:65;8070:6;8065:3;8058:4;8051:5;8047:16;8012:65;:::i;:::-;7745:2;7725:14;-1:-1:-1;;7721:28:101;8093:39;;;;;;-1:-1:-1;;7761:377:101:o;8144:313::-;8295:2;8308:47;;;8280:18;;8372:78;8280:18;8436:6;8372:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"400000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite","_getAdmin()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":\"OptimizedTransparentUpgradeableProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\\n    address internal immutable _ADMIN;\\n\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _ADMIN = admin_;\\n\\n        // still store it to work with EIP-1967\\n        bytes32 slot = _ADMIN_SLOT;\\n        // solhint-disable-next-line no-inline-assembly\\n        assembly {\\n            sstore(slot, admin_)\\n        }\\n        emit AdminChanged(address(0), admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n\\n    function _getAdmin() internal view virtual override returns (address) {\\n        return _ADMIN;\\n    }\\n}\\n\",\"keccak256\":\"0xa30117644e27fa5b49e162aae2f62b36c1aca02f801b8c594d46e2024963a534\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}}}}}